Les paquets PREPROD sont des paquets construits via LUTI.
Ils restent généralement 5 jours en PREPROD, après quoi un scan VirusTotal est effectué.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.
- package: tis-mullvad-browser
- name: Mullvad Browser
- version: 14.5.7-0
- categories: Internet,Security
- maintainer: WAPT Team,Tranquil IT,Clément Baziret
- editor: Mullvad
- licence: opensource_free,cpe:/a:mozilla:public_license_2.0,wapt_public
- locale: all
- target_os: windows
- impacted_process: mullvadbrowser
- architecture: x64
- signature_date:
- size: 94.99 Mo
- installed_size: 495.32 Mo
- homepage : https://mullvad.net/fr/browser
- depends:
package : tis-mullvad-browser
version : 14.5.7-0
architecture : x64
section : base
priority : optional
name : Mullvad Browser
categories : Internet,Security
maintainer : WAPT Team,Tranquil IT,Clément Baziret
description : Mullvad Browser is Tor Browser without the Tor Network - that allows anyone to take advantage of all the privacy features Tor created
depends : tis-7zip
conflicts :
maturity : PREPROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources : https://github.com/mullvad/mullvad-browser/releases
installed_size : 495317957
impacted_process : mullvadbrowser
description_fr : Mullvad Browser est un navigateur Tor sans le réseau Tor - qui permet à n'importe qui de profiter de toutes les fonctionnalités de confidentialité créées par Tor
description_pl : Mullvad Browser to przeglądarka Tor bez sieci Tor - która pozwala każdemu korzystać ze wszystkich funkcji prywatności stworzonych przez Tor
description_de : Mullvad Browser ist ein Tor-Browser ohne das Tor-Netzwerk, der es jedem erlaubt, alle Vorteile der Privatsphäre zu nutzen, die Tor geschaffen hat
description_es : Mullvad Browser es el Navegador Tor sin la Red Tor - que permite a cualquiera aprovechar todas las características de privacidad que Tor creó
description_pt : O Mullvad Browser é o Tor Browser sem a rede Tor - que permite a qualquer pessoa tirar partido de todas as funcionalidades de privacidade que o Tor criou
description_it : Mullvad Browser è un browser Tor senza la rete Tor, che permette a chiunque di sfruttare tutte le caratteristiche di privacy create da Tor
description_nl : Mullvad Browser is Tor Browser zonder het Tor Netwerk - waarmee iedereen kan profiteren van alle privacyfuncties die Tor heeft gecreëerd
description_ru : Mullvad Browser - это Tor Browser без сети Tor, который позволяет любому воспользоваться всеми возможностями конфиденциальности, созданными Tor
audit_schedule :
editor : Mullvad
keywords : mullvad,browser,tor,network,privacy
licence : opensource_free,cpe:/a:mozilla:public_license_2.0,wapt_public
homepage : https://mullvad.net/fr/browser
package_uuid : 33a4d2af-0bb4-4ae4-85c8-d8f3cd477a17
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : b5986b3ccc217e1bc0e9ced367ce55ef2ea8293e7d527c09be84e3c7cd6eef23
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2025-09-16T13:03:32.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 : RLD+iZRCd3XGO3ctBATLVVSR6vxlMUPbPWUuJlH0PA1qHQxsb9NhF11/TdcaOtzDg75L+FcKClsOK8A6gSXsBWznO6Uzx1IKn+p88o/eyfs5qqoNU0/hpAx6eIrT+HxfgzjPsxO8Cky53R3p+27N0SJvh+yriCp35C1XFRruolrz7pTLrsq/dJcdFuwuTvFiHsN+fTSTb0VWEGnqlzjy+lswYUp+QJfjPFEwlouB7oIohp0/qdXWdj/7Liyq6sSPlQ6tAz3QIsFxJCoaZD3thkRHzjaGLBFcTn2hrM4L+ID+JDos5ajBRTdi+FCM+Y8LvUH6XhZLNdk/ZpRJN74Gcw==
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import unzip_with_7zip
"""
The .exe of mullvad browser installs in the user appdata. There is an option to install it in
standalone but it is only accessible via GUI so we are doing a portable install
https://mullvad.net/fr/help/install-mullvad-browser#windows-install
Before using this package, make sure that the profiles are saved during an update
"""
app_name = "MullvadBrowser"
app_dir = makepath(programfiles, app_name)
app_path = makepath(app_dir, f"mullvadbrowser.exe")
icon_path = app_path
audit_version = False
def get_installed_version(app_path):
return get_file_properties(app_path).get("FileVersion", "")
def install():
# Declaring local variables
zip_name = glob.glob(f"mullvad-browser-windows-x86_64-*.exe")[0]
unzip_dest = app_name
unzipped_dir = app_name
# Installing software
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir) and force:
remove_tree(app_dir)
mkdirs(app_dir)
print("Extracting: %s to: %s" % (zip_name, app_dir))
unzip_with_7zip(zip_name, unzip_dest)
copytree2(unzipped_dir, app_dir, onreplace=default_overwrite)
# Creating custom shortcuts
create_desktop_shortcut(app_name, target=app_path)
create_programs_menu_shortcut(app_name, target=app_path)
def audit():
# Auditing software
audit_status = "OK"
installed_version = get_installed_version(app_path)
if Version(installed_version) < Version(control.get_software_version()) and audit_version:
print("%s is installed in version (%s) instead of (%s)" % (app_name, installed_version, control.get_software_version()))
audit_status = "WARNING"
elif isdir(app_dir) and not dir_is_empty(app_dir):
print("%s (%s) is installed" % (app_name, installed_version))
audit_status = "OK"
else:
print("%s is not installed" % app_name)
audit_status = "ERROR"
return audit_status
def uninstall():
# Uninstalling software
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir):
remove_tree(app_dir)
# Removing shortcuts
remove_desktop_shortcut(app_name)
remove_programs_menu_shortcut(app_name)
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies_from_wapt_console()
if not proxies:
proxies = get_proxies()
api_url = "https://api.github.com/repos/mullvad/mullvad-browser/releases/latest"
update_dict = {
"windows-x64": ".exe",
"macos-x64": ".dmg",
"debian_based-x64": ".tar.xz",
}
# Getting latest version information from official sources
print("API used is: %s" % api_url)
json_load = wgets(api_url, proxies=proxies, as_json=True)
version = json_load["tag_name"].replace("v", "").replace(".windows", "")
for to_download in json_load["assets"]:
if to_download["name"].endswith(update_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]):
download_url = to_download["browser_download_url"]
latest_bin = to_download["name"]
break
# Downloading latest binaries
print("Latest %s version is: %s" % (control.name, version))
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)
# Deleting outdated binaries
remove_outdated_binaries(latest_bin)
# Checking version from file
if get_os_name() == "Windows" and "windows" in control.target_os.lower():
version_from_file = get_version_from_binary(latest_bin)
if Version(version_from_file, 4) == Version(version, 4):
print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
else:
error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")
# Changing version of the package
if Version(version, 4) > Version(control.get_software_version(), 4):
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 update-package-sources
return package_updated
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
fe3ce3bbb20d5d6fb7e61ca1e5f67ab3b5c18f5a5473fbf95c24b3e7397a4ed9 : WAPT/control
b5986b3ccc217e1bc0e9ced367ce55ef2ea8293e7d527c09be84e3c7cd6eef23 : WAPT/icon.png
1e9984f1eeeb443c9d8736b302a23c1d5f0e7f83420a02f7c9fb2bcd738c70bb : luti.json
8e0bb947caf332a150511b78ff82d05ad5dd4dec8677fa1837a26f6558f017c8 : mullvad-browser-windows-x86_64-14.5.7.exe
21c3a9296b56707caa45bd338b8a3c1c6cc543cfd5ffc7705a5ab1de3605c661 : setup.py
a4b1f7b47506e51967b7ee222800ac43a9737967ecd3310fbd08f5cee2a79f31 : update_package.py