Remote Repository TFTP
Paquet d’installation silencieuse pour Remote Repository TFTP
2.6.1.17654-1
System and network
System and network
- package: tis-remote-repo-tftp
- name: Remote Repository TFTP
- version: 2.6.1.17654-1
- categories: System and network
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Ingrid TALBOT
- locale: all
- target_os: windows
- architecture: x64
- signature_date:
- size: 1.01 Mo
- homepage : https://www.wapt.fr/en/doc/wapt-wads
package : tis-remote-repo-tftp
version : 2.6.1.17654-1
architecture : x64
section : base
priority : optional
name : Remote Repository TFTP
categories : System and network
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Ingrid TALBOT
description : Package for installing WaptTFTPServer for remote repositories agents
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources :
installed_size :
impacted_process :
description_fr : Paquet pour l'installation de WaptTFTPServer pour les agents de dépôts distants
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor :
keywords : tftp,wapt
licence :
homepage : https://www.wapt.fr/en/doc/wapt-wads
package_uuid : 59fdc03f-08ee-4720-94e0-1e210de822a4
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 29f1849f2f6845086ee6dd95bcaeae5cb0438ab7435b1af6d30d57f520a5cfe3
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2026-01-24T17:12:36.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 : A7lU7GZ/ScKyBUmxvJXy1DEkW4NwwmOA/t1K4ib1ZcDNsxp/w899GbujdLmIaxul5JGXNUoXxS1GhbKxdlsMIfr81g4fL6o9ExeNnkucmF2GqDrm2eAAodL8oh+ZPPk8Rx940eNknKNZeoNKjJ7jIkFltdYFVoSvVCW/PCqCrQyQa/sj4l70kbtsROaIWUBiCpg68SyJMBKEkULCYSEhK31ntfItIzPzXdnj+nryMg1pOtQYNHamYZSFC4mCqsJfYDqCKirOEuTTMeeS2lUXGyEGDjTDoB4HuEpuOzYyvqGlnWmjEL4mn4Nmgrf7WdJ4q69zU9o3Lhu+Z3TY7ri5+g==
# -*- coding: utf-8 -*-
from setuphelpers import *
bin_name = "wapttftpserver.exe"
service_name = "WaptTFTPServer"
def install():
tftp_bin = os.path.join(WAPT.wapt_base_dir, bin_name)
if service_installed(service_name):
uninstall()
killalltasks(bin_name)
filecopyto(bin_name, tftp_bin)
print("Apply WaptTFTPServer config")
repo_path = inifile_readstring(WAPT.config_filename, "repo-sync", "local_repo_path") or makepath(WAPT.wapt_base_dir, "repository")
tftp_path = makepath(repo_path, "wads", "pxe")
mkdirs(tftp_path)
server_conf_dir = makepath(WAPT.wapt_base_dir, "conf")
server_ini = makepath(server_conf_dir, "waptserver.ini")
mkdirs(server_conf_dir)
inifile_writestring(server_ini, "tftpserver", "service_name", service_name)
inifile_writestring(server_ini, "tftpserver", "root_dir", tftp_path)
print("Add WaptTFTPServer firewall rule")
run(f'netsh advfirewall firewall add rule name="{service_name}" dir=in action=allow program="{tftp_bin}" enable=yes')
print("Create WaptTFTPServer service")
if not service_installed(service_name):
# run(rf'"{tftp_bin}" /install --service_name={service_name} --root_dir="{tftp_path}"')
print(run(rf'"{tftp_bin}" /install'))
if not service_is_running(service_name):
service_start(service_name)
def audit():
"""
Vérifie que tous les composants nécessaires pour WaptTFTPServer sont présents
et correctement configurés.
"""
errors = []
# 1. Vérification du binaire principal
tftp_bin = os.path.join(WAPT.wapt_base_dir, bin_name)
if not isfile(tftp_bin):
errors.append(f"Binaire manquant: {tftp_bin}")
# 2. Vérification du répertoire de configuration
server_conf_dir = makepath(WAPT.wapt_base_dir, "conf")
if not isdir(server_conf_dir):
errors.append(f"Répertoire de configuration manquant: {server_conf_dir}")
# 3. Vérification du fichier de configuration
server_ini = makepath(server_conf_dir, "waptserver.ini")
if not isfile(server_ini):
errors.append(f"Fichier de configuration manquant: {server_ini}")
else:
# Vérification des paramètres dans le fichier ini
configured_service = inifile_readstring(server_ini, "tftpserver", "service_name")
if not configured_service:
errors.append(f"Paramètre 'service_name' manquant dans: {server_ini}")
configured_root = inifile_readstring(server_ini, "tftpserver", "root_dir")
if not configured_root:
errors.append(f"Paramètre 'root_dir' manquant dans: {server_ini}")
elif not isdir(configured_root):
errors.append(f"Répertoire TFTP root manquant: {configured_root}")
# 4. Vérification du répertoire TFTP
repo_path = inifile_readstring(WAPT.config_filename, "repo-sync", "local_repo_path") or makepath(WAPT.wapt_base_dir, "repository")
tftp_path = makepath(repo_path, "wads", "pxe")
if not isdir(tftp_path):
errors.append(f"Répertoire TFTP manquant: {tftp_path}")
# 5. Vérification du service Windows
if not service_installed(service_name):
errors.append(f"Service Windows non installé: {service_name}")
elif not service_is_running(service_name):
errors.append(f"Service Windows non démarré: {service_name}")
# Retour du résultat
if errors:
error_msg = "Erreurs détectées:\n" + "\n".join(f" - {err}" for err in errors)
print(error_msg)
return "ERROR"
else:
return "OK"
def uninstall():
tftp_bin = os.path.join(WAPT.wapt_base_dir, bin_name)
server_conf_dir = makepath(WAPT.wapt_base_dir, "conf")
print("Remove WaptTFTPServer service")
if service_installed(service_name):
if service_is_running(service_name):
service_stop(service_name)
print(run(rf'"{tftp_bin}" /uninstall'))
print("Remove WaptTFTPServer firewall rule")
run(f'netsh advfirewall firewall delete rule name="{service_name}" program="{tftp_bin}"')
remove_file(tftp_bin)
if len(glob.glob(server_conf_dir + os.sep + "*")) <= 1:
remove_tree(server_conf_dir)
from setuphelpers import *
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
download_url = "https://wapt.tranquil.it/wapt/releases/latest/bin/win64/wapttftpserver.exe"
latest_bin = download_url.split("/")[-1]
# Deleting binaries
for f in glob.glob("*.exe") + glob.glob("*.msi"):
print("Removing: %s" % f)
remove_file(f)
# Downloading latest binaries
print("Download URL is: %s" % download_url)
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(download_url, latest_bin, proxies=proxies)
else:
print("Binary is present: %s" % latest_bin)
# Changing version of the package
version = get_version_from_binary(latest_bin, "FileVersion")
if Version(version) > Version(control.get_software_version()):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Validating or not update-package-sources
return package_updated
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
c4928bb51845e6be9353765df80b7bd72e1cb5dc1d77c68f90766d7cd872f187 : WAPT/control
29f1849f2f6845086ee6dd95bcaeae5cb0438ab7435b1af6d30d57f520a5cfe3 : WAPT/icon.png
6f32da40f448aecbdd836b896213a9a1f31acd0ad6aad07be2a55a2635a44d03 : luti.json
3761b85d9aa4c50ad6e228bec6bcb77c598ee92e18d005b124b6cb5584a410a9 : setup.py
27d1c4fab224fdf66f728ab34aa7636dfd7fb5cab01c009f0613731e48e7c256 : update_package.py
7519a12b5d673ce04d4c497475bcd35b0b7f80cfc9de699bf74c2689e1891074 : wapttftpserver.exe