
Emacs
Paquet d’installation silencieuse pour Emacs
30.2-1
- package: tis-emacs-portable
- name: Emacs
- version: 30.2-1
- maintainer: Amel FRADJ
- licence: Appendix A GNU GENERAL PUBLIC LICENSE
- target_os: windows
- architecture: x64
- signature_date:
- size: 78.41 Mo
- homepage : https://www.gnu.org/software/emacs/
package : tis-emacs-portable
version : 30.2-1
architecture : x64
section : base
priority : optional
name : Emacs
categories :
maintainer : Amel FRADJ
description : Text editor and development environment
depends :
conflicts :
maturity : PROD
locale :
target_os : windows
min_wapt_version :
sources : https://mirror.cyberbits.eu/gnu/emacs/windows/
installed_size :
impacted_process :
description_fr : Éditeur de textes et environnement de développement
description_pl : Edytor tekstu i środowisko programistyczne
description_de : Texteditor und Entwicklungsumgebung
description_es : Editor de texto y entorno de desarrollo
description_pt : Editor de texto e ambiente de desenvolvimento
description_it : Editor di testo e ambiente di sviluppo
description_nl : Teksteditor en ontwikkelomgeving
description_ru : Текстовый редактор и среда разработки
audit_schedule :
editor :
keywords :
licence : Appendix A GNU GENERAL PUBLIC LICENSE
homepage : https://www.gnu.org/software/emacs/
package_uuid : 30cee236-d8fe-4ecd-b93d-bb0ba9fc4149
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : b410f985f597b26aaa1036b1f579ce1a765c1d8a9efd34f94a5045329bf74c92
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-08-20T02:00:16.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 : ccqgEsqe9gKKj4TnRmdS9pC5ij+uqtYdyDBkC+XyN86GFcHZh2NOo7OVaDBAswNLcuDBcnBxzbnkpWRWO+NPQpW/005QcfZTYmf4s/BoCP5hQlBEOEq0pp9yGQ4fQS1MJYlEYKjybPQxLAFEsU0WyTRpnr5JPWbo38QBUQpJ3Ltwjbf9Zf95Sh9OWMw4HDoSCC50pSQDBNVLR4MB1MYqku8HD+eqVNr+z0XEGZ1sSNxn31NsaIz80kj9v2BCOV8ZFKiNPFkGRzwmMSFmp0CI+Xxz0bvjR3Hfalf93aq1nqmK3YH2hQj0bXE6BX6dr2lBtpJk3vDcqsw4sJeNiJg1uQ==
# -*- coding: utf-8 -*-
from setuphelpers import *
import glob
import os
app_name = "emacs"
app_dir = makepath(programfiles, app_name)
def find_installed_path():
# Recherche de l'emplacement de l'application installée
for dirpath, dirnames, filenames in os.walk(app_dir):
for filename in filenames:
if filename == "runemacs.exe":
return dirpath
return None
def install():
bin_name = glob.glob('*.exe')[0]
app_path = makepath(app_dir, bin_name)
# Installing software
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir) and force:
remove_tree(app_dir)
mkdirs(app_dir)
filecopyto(bin_name, app_path)
# Running the silent installation
run(f'"{app_path}" /S')
# Creating shortcuts
installed_path = find_installed_path()
if installed_path:
create_desktop_shortcut(app_name, target=makepath(installed_path, "runemacs.exe"))
create_programs_menu_shortcut(app_name, target=makepath(installed_path, "runemacs.exe"))
else:
print("Erreur: Impossible de trouver l'emplacement de l'application installée.")
def uninstall():
# Uninstalling software
killalltasks(ensure_list(control.impacted_process))
for uninstall in installed_softwares('emacs'):
uninstall_string = uninstall.get("uninstall_string", "")
print(f"Uninstalling emacs: {uninstall_string}")
run(f"{uninstall_string} --uninstall --uninstall -s")
wait_uninstallkey_absent(uninstall['key'],max_loop=600)
if isdir(app_dir):
remove_tree(app_dir)
# Removing shortcuts
remove_desktop_shortcut(app_name)
remove_programs_menu_shortcut(app_name)
from setuphelpers import *
from setupdevhelpers import *
def update_package():
# Déclaration des variables locales
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
base_url = "https://mirror.cyberbits.eu/gnu/emacs/windows/"
tr = sorted(table_to_list(bs_find(base_url, 'table')))
latest_dir = max(tr)
latest_url = base_url + latest_dir
find_all = bs_find_all(latest_url,"a","href")
for find in find_all:
if find["href"].endswith(".exe"):
latest_bin = find["href"].split("/")[-1]
download_url = latest_url + latest_bin
version = latest_bin.split("-")[1]
print(f"Dernière version trouvée : emacs-{version}")
print(f"URL de téléchargement de l'installateur : {download_url}")
# Supprimer les anciens fichiers installateurs
for f in glob.glob("*.exe"):
if f != latest_bin:
remove_file(f)
# Télécharger le dernier installateur
wget(download_url, latest_bin, proxies=proxies)
# Mettre à jour la version du logiciel dans le fichier de contrôle
control.set_software_version(version)
control.save_control_to_wapt()
def table_to_list(table):
result = []
for row in table.find_all('tr')[1:]:
td = row.find_all('td')[1].get_text(strip = True)
if td.startswith("emacs-"):
result.append(td)
return result
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
d823b95d2973069c06ee4965a4380e97b41a541e835cd2cf93958a618bcb91d1 : WAPT/control
b410f985f597b26aaa1036b1f579ce1a765c1d8a9efd34f94a5045329bf74c92 : WAPT/icon.png
b44ff2d39e7fcfc7d195be79ecdcef9e5ec1adfe3af941f5bdaffba327e680aa : emacs-30.2-installer.exe
0380ea2e7cc69099a91ecbe8afde9990e45111169b4c228c73d4f609021c586b : luti.json
b91dc04bb951a9e6ac1aee6c0db571e8ff56358b1bf68930582caabdf0bcc425 : setup.py
1125401a09b57dd73f395a3750922350a0fa4e3935563ea4034fea4a17a85452 : update_package.py