AnyDesk
Silent install package for AnyDesk
7.1.1-14
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-14
- 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: debian(>=10),ubuntu(>=18)
- impacted_process: AnyDesk
- architecture: x64
- signature_date:
- size: 14.72 Mo
- installed_size: 4.04 Mo
- homepage : https://anydesk.com
package : tis-anydesk
version : 7.1.1-14
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 : debian(>=10),ubuntu(>=18)
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 : 70d63483-0faa-43fc-975e-0d667d3dcd40
valid_from :
valid_until :
forced_install_on :
changelog : https://download.anydesk.com/changelog.txt
min_os_version :
max_os_version :
icon_sha256sum : 61e27edac9e3eeb15cdea6114a0bc2f09a150e39add65fde398c03cd322aab0e
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2025-10-31T08:19:49.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 : YvC6ZyKBv7gYpmlFadSJYAubRYQVMRWQIiVH0D+RzmhLTXz/jKFwnSmoR348fwFnsqS6rRmxhgvYA9ZOZUgPR//E2ZbQflkwWJV8luI11AlDmLGZoUmsVpf2IKwn6HgaLW+ln2904gBkxLMySrVhs49k/2RxADrRN3ALsZLE6FhhHdeyzY/PcSP6sxMDher10DUJKvpXnQkJSl6v4663imh64CS7B8/l6tJXCqae37egFLer0WgJV371JHdLcqMYFsvHneezbUAD7bdbJN/l49x+JAc8C82nCQTWbmyLxIw2aQ/7LxGWPB1M/fuEzIGGoCEDASbFv3tx8DSyonKqFw==
# -*- coding: utf-8 -*-
from setuphelpers import *
def install():
update_apt()
install_apt('xdg-utils libpolkit-gobject-1-0')
bin_name = glob.glob("anydesk_*_amd64.deb")[0]
install_deb(bin_name)
def uninstall():
uninstall_apt("anydesk")
# -*- coding: utf-8 -*-
from setuphelpers import *
from io import BytesIO
import gzip
import os
import re
class DebianPackagesParser:
def __init__(self, file):
file_text = self.__read_input(file)
file_text = self.__remove_pgp_key(file_text)
packages = file_text.split("\n\n")
self.raw_pkg_info = []
if len(packages[0]):
self.raw_pkg_info = [self.__get_raw_info(pkg) for pkg in packages]
def __read_input(self, input_obj):
"""Ensures valid input type"""
if type(input_obj) is not str:
raise TypeError("input must be string or string path to file")
elif os.path.exists(os.path.abspath(input_obj)):
with open(input_obj, "r", encoding="utf8") as f:
file_text = f.read().strip()
return file_text
else:
return input_obj.strip()
def __remove_pgp_key(self, text):
gpg_regex = re.compile(r"^-----BEGIN PGP PUBLIC KEY BLOCK-----[a-zA-Z\d\n\/.:+= ]+-----END PGP PUBLIC KEY BLOCK-----$", flags=re.MULTILINE)
return re.sub(gpg_regex, '', text)
def __get_raw_info(self, text):
"""Parses a Debian control file and returns raw dictionary"""
split_regex = re.compile(r"^[A-Za-z0-9-]+:\s", flags=re.MULTILINE)
keys = [key[:-2].lower() for key in split_regex.findall(text)]
values = [value.strip() for value in re.split(split_regex, text)[1:]]
if values:
return dict(zip(keys, values))
else:
raise ValueError("file or text don't match Debian Control File schema")
def get_all_dep_version_package(list_package, package_name, all_dep):
"""Recursively get all dependencies of a given package."""
# Get the latest version of the package
last_package = sorted([u for u in list_package if u['package'] == package_name],
key=lambda p: Version(p['version']), reverse=True)
if not last_package:
return # Exit if the package is not found
last_package = last_package[0]
# Add the last package to the dependencies list
if last_package not in all_dep:
all_dep.append(last_package)
# Parse the dependencies
dependencies = last_package.get('depends', '').split(',')
for dep_group in dependencies:
dep_candidates = dep_group.split('|')
# Pick the first available candidate
for dep in dep_candidates:
dep_name = dep.split('(')[0].strip()
# Recursively fetch dependencies for this package
get_all_dep_version_package(list_package, dep_name, all_dep)
def download_all_dependencies(list_package, package_name, urldepot, proxies=None):
"""Download all dependencies of a package."""
all_dep = []
# Fetch all dependencies of the package
get_all_dep_version_package(list_package, package_name, all_dep)
# Create the list of URLs for all dependencies
list_deb = [urldepot + '/' + u['filename'] for u in all_dep]
# Download each dependency
for f in list_deb:
filename = f.split('/')[-1]
if not isfile(filename):
print(f"Download URL is: {f}")
wget(f, filename, proxies=proxies)
else:
print(f"{filename} already exists.")
def get_package_version(input_obj):
parts = input_obj.split(':', 1)
if len(parts) == 2:
epoch, version = parts
else:
epoch, version = 0, parts[0]
for i in "+~":
version = version.split(i)[0]
return epoch, version
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies_from_wapt_console()
if not proxies:
proxies = get_proxies()
app_name = control.name
base_url = 'https://deb.anydesk.com'
dist = "all"
arch = "amd64"
package_name = "anydesk"
# We remove all deb file first
for deb in glob.glob('*.deb'):
remove_file(deb)
urldepot = f"{base_url}/dists/{dist}/main/binary-{arch}/Packages.gz"
print(f"Repo url is {urldepot}")
with gzip.open(BytesIO(wgets(urldepot, proxies=proxies))) as f:
data = f.read().decode('utf-8')
list_package = DebianPackagesParser(data).raw_pkg_info
# Getting latest version of the package
last_package = sorted([u for u in list_package if u['package'] == package_name], key=lambda p: (Version(p['version'])), reverse=True)[0]
epoch, version = get_package_version(last_package['version'])
print(f"Latest {app_name} version is: {version}")
download_all_dependencies(list_package, package_name, base_url, 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
978a3ab5fd0584d59135fbf87d9ed3605febfa8ed880ababa3d4ffbcf5dcc022 : WAPT/control
61e27edac9e3eeb15cdea6114a0bc2f09a150e39add65fde398c03cd322aab0e : WAPT/icon.png
c784034bf1b44c68c25962ef39a15cb66f22323003514e19ae766494f582c452 : anydesk_7.1.1_amd64.deb
2557dcec14bfebc957d50419b662a8aa4f12709891e002887f25c95b930667ae : luti.json
0579321a9551ae9a6dd87484b0a30e0e3fb8f141cb75e3446d47641a2538f85f : setup.py
94f25b0ba4b8f03336beb1212c47e54274f5496bb327790dfc2cecd7bafa2397 : update_package.py