AnyDesk
Silent install package for AnyDesk
7.1.1-13
Utilities
Utilities
Preprod packages are packages built on LUTI.
They remain in PREPROD usually for 5 days, after which a new VirusTotal scan is performed.
If the package passes this last check, it is promoted to PROD and published on the store.
- package: tis-anydesk
- name: AnyDesk
- version: 7.1.1-13
- categories: Utilities
- maintainer: WAPT Team,Tranquil IT,Bertrand Lemoigne,Gaëtan Segat,Jimmy PELÉ,Clément BAZIRET
- editor: AnyDesk Software GmbH
- licence: proprietary_restricted,wapt_public
- locale: all
- target_os: redhat_based
- impacted_process: AnyDesk
- architecture: x64
- signature_date:
- size: 14.66 Mo
- installed_size: 4.04 Mo
- homepage : https://anydesk.com
package : tis-anydesk
version : 7.1.1-13
architecture : x64
section : base
priority : optional
name : AnyDesk
categories : Utilities
maintainer : WAPT Team,Tranquil IT,Bertrand Lemoigne,Gaëtan Segat,Jimmy PELÉ,Clément BAZIRET
description : AnyDesk is a remote desktop application distributed by AnyDesk Software GmbH. The proprietary software program provides platform independent remote access to personal computers and other devices running the host application
depends :
conflicts :
maturity : PREPROD
locale : all
target_os : redhat_based
min_wapt_version : 2.3
sources : https://anydesk.com/downloads
installed_size : 4038720
impacted_process : AnyDesk
description_fr : AnyDesk est une application de bureau à distance distribuée par AnyDesk Software GmbH. Le logiciel propriétaire fournit un accès à distance indépendant de la plate-forme aux ordinateurs personnels et autres appareils exécutant l'application hôte
description_pl : AnyDesk to aplikacja zdalnego pulpitu dystrybuowana przez AnyDesk Software GmbH. To zastrzeżone oprogramowanie zapewnia niezależny od platformy zdalny dostęp do komputerów osobistych i innych urządzeń z uruchomioną aplikacją hosta
description_de : AnyDesk ist eine von der AnyDesk Software GmbH vertriebene Remote-Desktop-Anwendung. Das proprietäre Softwareprogramm ermöglicht einen plattformunabhängigen Fernzugriff auf Personal Computer und andere Geräte, auf denen die Host-Anwendung
description_es : AnyDesk es una aplicación de escritorio remoto distribuida por AnyDesk Software GmbH. El programa de software propietario proporciona acceso remoto independiente de la plataforma a ordenadores personales y otros dispositivos que ejecutan la aplicación host
description_pt : AnyDesk é uma aplicação de ambiente de trabalho remoto distribuída pela AnyDesk Software GmbH. O programa de software proprietário fornece acesso remoto independente da plataforma a computadores pessoais e outros dispositivos que executam a aplicação anfitriã
description_it : AnyDesk è un'applicazione di desktop remoto distribuita da AnyDesk Software GmbH. Il programma software proprietario fornisce un accesso remoto indipendente dalla piattaforma ai personal computer e ad altri dispositivi che eseguono l'applicazione host
description_nl : AnyDesk is een toepassing voor bureaublad op afstand, gedistribueerd door AnyDesk Software GmbH. Het eigen softwareprogramma biedt platformonafhankelijke toegang op afstand tot personal computers en andere apparaten waarop de hosttoepassing
description_ru : AnyDesk - это приложение для удаленного рабочего стола, распространяемое компанией AnyDesk Software GmbH. Проприетарное программное обеспечение обеспечивает независимый от платформы удаленный доступ к персональным компьютерам и другим устройствам, на которых запущено хост-приложение
audit_schedule :
editor : AnyDesk Software GmbH
keywords : anydesk,remote,desktop,application,remote,access,personal,computers,computer
licence : proprietary_restricted,wapt_public
homepage : https://anydesk.com
package_uuid : 765e4934-2bc2-476b-a027-77a62d13e5d3
valid_from :
valid_until :
forced_install_on :
changelog : https://download.anydesk.com/changelog.txt
min_os_version : 8
max_os_version :
icon_sha256sum : 61e27edac9e3eeb15cdea6114a0bc2f09a150e39add65fde398c03cd322aab0e
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2025-10-30T16:17:39.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : PxDJV3WEE7LIx12r3fJQLHnxqnNb6Yx+h7PMfyny4KCkBss07YWMCMI7TQdZYGeNpI8Kmi/kOCCf9hrQjMFlG+iLTg5VEyz6Cun1X+C4Gyyh0kyQAg0A6TbWGU8UuxGYmRK77L75ztG41TCONyQF+9HA+Ag6tEC4OlVyOmtj6WR+ItmgkVtmWviUKi2YpMg5NNPurot4yowD+gsOoYHLYYKxTND4KUkTwhYcv2JXrmJ56NSm32BqrYV7k13LygP6AmAP32Y5nsuY9DiVtm4AMdOXkT4e8DwVy0tq7eImONSINOhofwzsbBnf6fbVSwy4t1JI1kZVQCd2fFYVP0gRzQ==
# -*- coding: utf-8 -*-
from setuphelpers import *
def install():
bin_name = glob.glob("anydesk_*.rpm")[0]
if get_distrib_linux() == 'fedora':
install_yum(bin_name)
else:
install_rpm(bin_name)
def uninstall():
uninstall_yum("anydesk")
# -*- coding: utf-8 -*-
from setuphelpers import *
from io import BytesIO
import gzip
import xml.etree.ElementTree as ET
RPM_NS = {
"common": "http://linux.duke.edu/metadata/common",
"rpm": "http://linux.duke.edu/metadata/rpm",
"repo": "http://linux.duke.edu/metadata/repo",
}
def fetch_primary_xml_url(repo_base, proxies=None):
repomd_url = f"{repo_base}/repodata/repomd.xml"
repomd = wgets(repomd_url, proxies=proxies)
if isinstance(repomd, bytes):
repomd = repomd.decode("utf-8")
root = ET.fromstring(repomd)
data_primary = root.find(".//repo:data[@type='primary']", RPM_NS)
if data_primary is None:
error("primary metadata not found in repomd.xml")
loc = data_primary.find("repo:location", RPM_NS)
href = loc.attrib.get("href")
if not href:
error("primary location href missing in repomd.xml")
return f"{repo_base}/{href}"
class RPMPackagesParser:
def __init__(self, file):
self.root = ET.fromstring(file)
self.raw_pkg_info = self._parse()
def _parse(self):
out = []
for pkg in self.root.findall("common:package", RPM_NS):
ver = pkg.find("common:version", RPM_NS)
fmt = pkg.find("common:format", RPM_NS)
requires = []
if fmt is not None:
reqs = fmt.find("rpm:requires", RPM_NS)
if reqs is not None:
for e in reqs.findall("rpm:entry", RPM_NS):
n = e.attrib.get("name")
if n:
requires.append(n)
out.append({
"name": pkg.findtext("common:name", default="", namespaces=RPM_NS),
"arch": pkg.findtext("common:arch", default="", namespaces=RPM_NS),
"epoch": ver.attrib.get("epoch") or "0",
"version": ver.attrib.get("ver", ""),
"release": ver.attrib.get("rel", ""),
"filename": pkg.find("common:location", RPM_NS).attrib.get("href", ""),
"summary": pkg.findtext("common:summary", default="", namespaces=RPM_NS),
"description": pkg.findtext("common:description", default="", namespaces=RPM_NS),
"url": pkg.findtext("common:url", default="", namespaces=RPM_NS),
"checksum": pkg.findtext("common:checksum", default="", namespaces=RPM_NS),
"dependencies": requires,
})
return out
def rpm_sort_key(p):
return (
int(p.get("epoch", "0") or "0"),
Version(p.get("version", "")),
Version(p.get("release", "0"))
)
def get_all_dep_version_package(list_package, package_name, all_dep):
cand = sorted([p for p in list_package if p["name"] == package_name], key=rpm_sort_key, reverse=True)
if not cand:
return
pkg = cand[0]
if pkg not in all_dep:
all_dep.append(pkg)
for dep in pkg.get("dependencies", []):
get_all_dep_version_package(list_package, dep, all_dep)
def download_all_dependencies(list_package, package_name, repo_base, proxies=None):
all_dep = []
get_all_dep_version_package(list_package, package_name, all_dep)
for p in all_dep:
url = f"{repo_base}/{p['filename']}"
fn = url.rsplit("/", 1)[-1]
if not isfile(fn):
print(f"Download URL is: {url}")
wget(url, fn, proxies=proxies)
else:
print(f"{fn} already exists.")
def update_package():
package_updated = False
proxies = get_proxies_from_wapt_console() or get_proxies()
app_name = control.name
arch = "x86_64"
repo_base = f"http://rpm.anydesk.com/rhel/{arch}"
primary_url = fetch_primary_xml_url(repo_base, proxies=proxies)
print(f"Repo primary metadata: {primary_url}")
with gzip.open(BytesIO(wgets(primary_url, proxies=proxies))) as f:
data = f.read().decode('utf-8')
pkgs = RPMPackagesParser(data).raw_pkg_info
package_name = "anydesk"
last_pkg = sorted([p for p in pkgs if p["name"] == package_name], key=rpm_sort_key, reverse=True)[0]
epoch, version, release = last_pkg["epoch"], last_pkg["version"], last_pkg["release"]
print(f"Latest {app_name} version is: {version}-{release} (epoch {epoch})")
download_all_dependencies(pkgs, package_name, repo_base, proxies)
# Changing version of the package
if Version(version) > Version(control.get_software_version()):
print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
package_updated = True
else:
print(f"Software version up-to-date ({Version(version)})")
control.set_software_version(version)
control.save_control_to_wapt()
return package_updated
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
0f002779ba16dc4b8e9bc21e56477f2151501d2af90b78e9eb720e189cfc71b7 : WAPT/control
61e27edac9e3eeb15cdea6114a0bc2f09a150e39add65fde398c03cd322aab0e : WAPT/icon.png
06e4097a7a8b724247083ca8475dcd90b4b51787878794304844269f246d4642 : anydesk_7.1.1-1_x86_64.rpm
5592c923d57e88b99348fa4e7dfcaa204f0543d7d4cefcf4e15dc02a4f5c830c : luti.json
fa5b9e692e878e18a68bfd30addafd484920142bd076076e27d51d43f9c4bb91 : setup.py
a1cf85b77045995f7f5882f94e2d6f1743d3fdbb4de2a36ee7b49ac92b455c20 : update_package.py