- package: tis-signal-desktop
- name: Signal
- version: 7.68.0-15
- categories: Messaging
- maintainer: WAPT Team,Jimmy PELÉ
- editor: Signal Foundation,Signal Messenger LLC
- licence: GPLv3
- locale: all
- target_os: windows
- impacted_process: signal
- architecture: x64
- signature_date:
- size: 172.92 Mo
- homepage : https://signal.org/
package : tis-signal-desktop
version : 7.68.0-15
architecture : x64
section : base
priority : optional
name : Signal
categories : Messaging
maintainer : WAPT Team,Jimmy PELÉ
description : Signal is a cross-platform encrypted messaging service. It uses the Internet to send one-to-one and group messages, which can include files, voice notes, images and videos.
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.1
sources : https://signal.org/download/
installed_size :
impacted_process : signal
description_fr : Signal permet de communiquer (appels vocaux et vidéo, messages texte ou médias) de façon chiffrée et sécurisée.
description_pl : Signal to wieloplatformowa usługa szyfrowania wiadomości. Wykorzystuje Internet do wysyłania wiadomości od jednego do drugiego i grupowych, które mogą zawierać pliki, notatki głosowe, obrazy i filmy
description_de : Signal ist ein plattformübergreifender verschlüsselter Nachrichtendienst. Er nutzt das Internet, um Einzel- und Gruppennachrichten zu versenden, die Dateien, Sprachnotizen, Bilder und Videos enthalten können
description_es : Signal es un servicio de mensajería encriptada multiplataforma. Utiliza Internet para enviar mensajes uno a uno y en grupo, que pueden incluir archivos, notas de voz, imágenes y vídeos
description_pt : O sinal é um serviço de mensagens encriptadas multiplataforma. Utiliza a Internet para enviar mensagens individuais e de grupo, que podem incluir ficheiros, notas de voz, imagens e vídeos
description_it : Signal è un servizio di messaggistica criptata multipiattaforma. Utilizza Internet per inviare messaggi individuali e di gruppo, che possono includere file, note vocali, immagini e video
description_nl : Signal is een platformonafhankelijke versleutelde berichtendienst. Het gebruikt het internet om één-op-één-berichten en groepsberichten te versturen, die bestanden, spraaknotities, afbeeldingen en video's kunnen bevatten
description_ru : Signal - это кросс-платформенная служба обмена зашифрованными сообщениями. Он использует Интернет для отправки индивидуальных и групповых сообщений, которые могут включать файлы, голосовые заметки, изображения и видео
audit_schedule :
editor : Signal Foundation,Signal Messenger LLC
keywords :
licence : GPLv3
homepage : https://signal.org/
package_uuid : 6ba12074-a9f4-4c17-b68f-3fbbe3d25147
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 10.0
max_os_version :
icon_sha256sum : 3adb886fd11d1ac878e24c20600a8c65721098a0607e1723638e5719c9805539
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-09-02T01:11:42.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 : WIUygH+GOdiuJu7ehl8YKp3/Kd1xiS/LnRElPljL0c0x3bRAyi92uXHM0MxalfZsicX8uRLkvQzWTEiUoOH8s1wmoS1XJQvAJhjKQMvrljJ3KOQjoZwAj2Y0REAl+zmdc9znuewrOmerzexpqwVOOCingnFFztcy2sVS3dkooT6LdSPJ/7CNQtBTnqlkBHOw8X9sZbq8OenOaQkcie8Ttgqnb/drT1v1BcSBp+Kl+mt0NJPb6+5tKVeIGbPFL+DO8KKvLf4Ailh93xyjldkVcEKPIuRaObz1oEhw+UTyxb/HsNzkkG0pPvrUFuBP1x9upyeBJnIZxwA/yT7XszXyLA==
# -*- coding: utf-8 -*-
from setuphelpers import *
app_dir_name = "signal-desktop"
app_user_dir = makepath(user_local_appdata, "Programs", app_dir_name)
app_user_uninstall = makepath(app_user_dir, "Uninstall Signal.exe")
app_user_uninstall_cmd = f'"{app_user_uninstall}" /S'
app_user_updater = makepath(user_local_appdata, "signal-desktop-updater")
app_sys_dir = makepath(programfiles32, app_dir_name)
app_sys_path = makepath(app_sys_dir, "Signal.exe")
def install():
# Specific app values
package_version = control.get_software_version()
bin_zip_string = f"signal-desktop-win-x64-{package_version}.zip"
killalltasks(control.get_impacted_process_list())
# Installing the package
if isdir(app_sys_dir):
remove_tree(app_sys_dir)
unzip(bin_zip_string, makepath(programfiles32))
create_programs_menu_shortcut("Signal", app_sys_path)
def uninstall():
# Uninstalling the package
if isdir(app_sys_dir):
remove_tree(app_sys_dir)
remove_programs_menu_shortcut("Signal")
def session_setup():
print("Disabling: auto update check")
if isdir(app_user_updater):
remove_tree(app_user_updater)
print("Uninstalling from user environnement if installed")
if isfile(app_user_uninstall):
print("Running " + app_user_uninstall_cmd)
run(app_user_uninstall_cmd)
remove_user_programs_menu_shortcut("Signal")
# -*- coding: utf-8 -*-
from setuphelpers import *
from waptutils import create_recursive_zip
import waptlicences
import re
app_dir_name = "signal-desktop"
seven_zip_path = makepath(programfiles, "7-Zip", "7z.exe")
def read_file(filepath):
with open(filepath, 'r', encoding='utf-8') as file:
content = file.read()
return content
def find_version(filename):
version = re.search('version: .*', read_file(filename)).group(0)
return version.split(':')[-1].strip()
def make_portable_install(latest_bin):
archive_filename = latest_bin.replace('.exe', '.zip')
print("Generate zip file with .exe file")
if isdir(app_dir_name):
remove_tree(app_dir_name)
mkdirs(app_dir_name)
try:
# Unzip the exe file
run(f'"{seven_zip_path}" e {latest_bin} -o{app_dir_name}')
# Remove useless files extracted
files_to_delete = ("nsExec.dll", "nsis7z.dll", "nsProcess.dll", "SpiderBanner.dll", "StdUtils.dll", "System.dll", "WinShell.dll")
for file in files_to_delete:
remove_file(makepath(app_dir_name, file))
# Unzip the archive app-64.7z inside the extracted .exe
app_7zip = makepath(app_dir_name, "app-64.7z")
run(f'"{seven_zip_path}" x {app_7zip} -o{app_dir_name}\\')
remove_file(app_7zip)
# Make the zip file
create_recursive_zip(archive_filename, app_dir_name, target_root=app_dir_name)
except:
error("Unabled to generate the zip file !")
# Delete the folder
remove_tree(app_dir_name)
# Deleting outdated zip file
for f in glob.glob("*.zip"):
if f != archive_filename:
remove_file(f)
print("The zip file is correctly generated !")
def update_package():
print("Download/Update package content from upstream binary sources")
# Declaring local variables
package_updated = False
proxies = get_proxies_from_wapt_console()
if not proxies:
proxies = get_proxies()
app_name = control.name
os_dict_yaml = { 'windows' : 'latest', 'darwin' : 'latest-mac' }
yaml_download = f"https://updates.signal.org/desktop/{os_dict_yaml[control.target_os]}.yml"
yaml_file = 'latest.yml'
print(f"Downloading the yaml file: {yaml_download}")
wget(yaml_download, yaml_file, proxies=proxies)
# WAPT for the moment as no yaml parser
# This part can be improved in the future
version = find_version(yaml_file)
latest_bin = f"signal-desktop-win-x64-{version}.exe"
url_dl = f"https://updates.signal.org/desktop/{latest_bin}"
print(f"Latest {app_name} version is: {version}")
print(f"Download URL is: {url_dl}")
# Downloading latest binaries
if not isfile(latest_bin):
print("Downloading: " + latest_bin)
wget(url_dl, latest_bin, proxies=proxies)
else:
print(f"Binary is present: {latest_bin}")
# Deleting outdated binaries
for f in glob.glob('*.exe'):
if Version(get_version_from_binary(f)) < Version(version):
remove_file(f)
expected_issuer = 'Signal Messenger, LLC'
sign_name = waptlicences.check_exe_signing_certificate(latest_bin)[0]
if sign_name != expected_issuer:
error(f'Bad issuer {sign_name} != {expected_issuer} ')
make_portable_install(latest_bin)
# 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})")
package_updated = True
else:
print(f"Software version up-to-date ({version})")
control.set_software_version(get_version_from_binary(latest_bin))
control.save_control_to_wapt()
# Deleting all binaries
for f in glob.glob("*.exe"):
remove_file(f)
remove_file(yaml_file)
# Validating update-package-sources
return package_updated
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
4812a28b2557b2ce3fe3ce5ea67c42e0164ca04232a97e13b8fda297fbf4502a : WAPT/control
3adb886fd11d1ac878e24c20600a8c65721098a0607e1723638e5719c9805539 : WAPT/icon.png
151935a3b1739237e09496b759f72c04df20628aa9fcc48a5c9c9051449c38d9 : luti.json
2393e0d5d737c0950066ddd9ad1479638de64b8e2881d8adf170963f8cc4c8c8 : setup.py
6d65364a7747815a8cd212ef442777b926519dff92deeecd887993a83deddce6 : signal-desktop-win-x64-7.68.0.zip
8ecd59b09bed222ae4eeb065654c02a3a84d250561699c5416de63be978324ce : update_package.py