Min
Paquet d’installation silencieuse pour Min
1.35.3-1
Les paquets PREPROD sont des paquets construits via LUTI.
Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.
- package: tis-min-browser-portable
- name: Min
- version: 1.35.3-1
- maintainer: Amel FRADJ
- licence: Apache-2.0 license
- target_os: windows
- architecture: x86
- signature_date:
- size: 130.35 Mo
- homepage : minbrowser.org/
package : tis-min-browser-portable
version : 1.35.3-1
architecture : x86
section : base
priority : optional
name : Min
categories :
maintainer : Amel FRADJ
description : Min is a smarter, faster web browser
depends :
conflicts :
maturity : PREPROD
locale :
target_os : windows
min_wapt_version :
sources :
installed_size :
impacted_process :
description_fr : Min est un navigateur web plus intelligent et plus rapide
description_pl : Min to inteligentniejsza i szybsza przeglądarka internetowa
description_de : Min ist ein intelligenter, schneller Webbrowser
description_es : Min es un navegador web más rápido e inteligente
description_pt : O Min é um navegador Web mais inteligente e mais rápido
description_it : Min è un browser web più intelligente e più veloce
description_nl : Min is een slimmere, snellere webbrowser
description_ru : Min - более умный и быстрый веб-браузер
audit_schedule :
editor :
keywords :
licence : Apache-2.0 license
homepage : minbrowser.org/
package_uuid : 197ec3e1-6587-4fa6-98e1-a5518742f45f
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : d978e81ba025b5901af34c282524bd7f83365a31313dade74e602507b1612c9b
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2026-01-25T20:55:43.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 : hUjRLFEtii9fZ4O/3vgA8mvGgo3iJks78+IX1/0J7uxJYaaJjf3k0ZkYsJpfkXXKegBOAEpKEcypCkAZlRRKfunl9fc9vN21RCuPHsVf8oba5IIlxir2C84ot/adBeq50kz/JIsuuNJIvtM9foIK0r4lk8GK22Sizj3Egw20AOZPXPQ3Z13psuH3Ycv1rM/ZeMvXW8eRBOfYx+M5n8FXDIzGyCiYbQKRRFTUeNY74irRQgFCHR+4qMo99ZtjiB9WvdxM6eKPMiNXkNzHjdB9BqONKq/+Qh8aGfNrCnE6qyno+M9jKleHLHHxZCevsJEi7P1fOfvtJwaZbDoORKtGKg==
# -*- coding: utf-8 -*-
from setuphelpers import *
import glob
import os
app_name = "Min"
editor_dir = makepath(programfiles, "Min")
app_dir = makepath(editor_dir, "Min")
app_path = makepath(app_dir, "Min.exe")
audit_version = False
def get_installed_version(app_path):
return get_file_properties(app_path).get("FileVersion", "")
def install():
# Rechercher le fichier zip correspondant
zip_name = glob.glob("Min-*.zip")
if not zip_name:
print("Error: No zip file found matching 'Min-*.zip'")
return
else:
zip_name = zip_name[0]
# Déterminer le nom du répertoire après extraction
unzipped_dir = "Min" # Répertoire temporaire pour l'extraction
# Tuer les processus impactés
killalltasks(ensure_list(control.impacted_process))
# Supprimer les anciennes installations si nécessaire
if isdir(app_dir) and force:
remove_tree(app_dir)
mkdirs(app_dir)
print(f"Extracting: {zip_name} to: {unzipped_dir}")
unzip(zip_name, unzipped_dir)
# Trouver le répertoire extrait qui contient le fichier Min.exe
extracted_path = None
for root, dirs, files in os.walk(unzipped_dir):
if "Min.exe" in files:
extracted_path = root
break
if not extracted_path:
print("Error: Min.exe not found after extraction.")
return
print(f"Copy Min from {extracted_path} to {app_dir}")
copytree2(extracted_path, app_dir, onreplace=default_overwrite)
# Création des raccourcis
create_desktop_shortcut(app_name, target=app_path)
create_programs_menu_shortcut(app_name, target=app_path)
def audit():
# Audit du logiciel
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():
# Désinstallation du logiciel
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir):
remove_tree(app_dir)
if dir_is_empty(editor_dir):
remove_tree(editor_dir)
# Suppression des raccourcis
remove_desktop_shortcut(app_name)
remove_programs_menu_shortcut(app_name)
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import json
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
def update_package():
result = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
dict_arch = {
"x64" : "-windows-arm64.zip",
"x86" : "-windows-ia32.zip"
}
git_repo = "minbrowser/min"
url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
# Getting latest version information from official sources
print("API used is: %s" % url_api)
json_load = json.loads(wgets(url_api, proxies=proxies))
for download in json_load["assets"]:
if download["browser_download_url"].endswith('.zip') and dict_arch[control.architecture] in download["browser_download_url"] :
url_dl = download["browser_download_url"]
version = json_load["tag_name"].replace("v","")
filename = download["name"]
break
if not isfile(filename):
package_updated = True
wget(url_dl,filename,proxies=proxies)
#nettoyer les fichiers temporaires
for f in glob.glob('*.zip'):
if f != filename:
remove_file(f)
control.set_software_version(version)
control.save_control_to_wapt()
860ab3d008595dca5f674a5263cd4f6910b1a747ef9369849a3f67e95e2eda7b : Min-v1.35.3-windows-ia32.zip
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
44d44bc5e2d8a471c0eb36714a6c34ab6848634e8ddee64bf4d2e7fe6e0f1606 : WAPT/control
d978e81ba025b5901af34c282524bd7f83365a31313dade74e602507b1612c9b : WAPT/icon.png
5458e3a660d07cc3e68bd8b86622ad4f64a7b2159bdec138358877faf21c7cec : luti.json
b15033d35b645dac41d3a2cf3a6b854357e05a71ed5f7f7053324b0d036856e2 : setup.py
4a6b22488add7bdb0c61e15b6ca4ec22c4a46ab638baeadc6773a58b4347144e : update_package.py