tis-min-browser-portable icon

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: x64
  • signature_date:
  • size: 151.17 Mo
  • homepage : minbrowser.org/

package           : tis-min-browser-portable
version           : 1.35.3-1
architecture      : x64
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      : 4367ba3f-a790-458a-8c8b-9ad027a97eba
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:53:04.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         : URkT+EWMVlg46GCfUbtfc5/P7cwBJoBkO+Vwmyt0NvGMW7X95Fe1uqejhumadqp/LtrCRmIxN2qrLFoq/pBkxYHvhJ7Bn59WBURH9i+cJ00EprVIwQEUrl9zzGC6ymGXvxOf+29b4A0l/I04jUaF5c+WR4Si54DDrNHmdYCdBCFMIYeziRK1DJghiOIKuBRnceut2hCNmMajncMWjVZmmAMILGPcyYuRizQ7SnyMagcThu27sRJIGs1IH+jW77uFsUkE3oI2pHDo7LxHpQ/Fn32qLQRaattCEbwand2Okuc3dNCdwV6Gm02NsJmoUx4nprCXDYpKIBBmCnI3cVVz6A==

# -*- 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()

2110b46ab141b225ab6de52a46926e309832c319de892e528d35bc7867426d43 : Min-v1.35.3-windows-arm64.zip
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
6901b19cef26f01cb63d03c53e60cc980077b3b5b953753ff7f2e6b7fc2d266d : WAPT/control
d978e81ba025b5901af34c282524bd7f83365a31313dade74e602507b1612c9b : WAPT/icon.png
59b4df64269bee2c92eec89f1a1cb226632508d056b91a98747d3393cbaae56f : luti.json
b15033d35b645dac41d3a2cf3a6b854357e05a71ed5f7f7053324b0d036856e2 : setup.py
4a6b22488add7bdb0c61e15b6ca4ec22c4a46ab638baeadc6773a58b4347144e : update_package.py