tis-7zip icon

7-Zip

Paquet d’installation silencieuse pour 7-Zip

26.0-46
Utilities
Utilities

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-7zip
  • name: 7-Zip
  • version: 26.0-46
  • categories: Utilities
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Igor Pavlov
  • licence: opensource_free,cpe:/a:bsd:bsd_license,cpe:/a:gnu:lgpl_v3,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: 7z,7zFM,7zG
  • architecture: x64
  • signature_date:
  • size: 1.64 Mo
  • installed_size: 5.77 Mo
  • homepage : https://www.7-zip.org/

package           : tis-7zip
version           : 26.0-46
architecture      : x64
section           : base
priority          : optional
name              : 7-Zip
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : 7-Zip is a free and open-source file archiver with a high compression ratio
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.1
sources           : https://www.7-zip.org/download.html
installed_size    : 5774712
impacted_process  : 7z,7zFM,7zG
description_fr    : 7-Zip est un logiciel gratuit et open source d'archivage de fichiers avec un taux de compression élevé
description_pl    : 7-Zip to darmowy i open-source'owy archiwizator plików o wysokim stopniu kompresji
description_de    : 7-Zip ist ein Datenkompressionsprogramm mit einer hohen Kompressionsrate
description_es    : 7-Zip es un archivador de ficheros con una alta relación de compresión
description_pt    : O 7-Zip é um compactador de arquivos com alta taxa de compressão
description_it    : 7-Zip è un archiviatore di file gratuito e open-source con un elevato rapporto di compressione
description_nl    : 7-Zip is een gratis en open-source bestands-archiver met een hoge compressieverhouding
description_ru    : 7-Zip свободный файловый архиватор с высокой степенью сжатия данных
audit_schedule    : 
editor            : Igor Pavlov
keywords          : 7zip,7,zip,7-zip,file,archiver,high,compression,ratio
licence           : opensource_free,cpe:/a:bsd:bsd_license,cpe:/a:gnu:lgpl_v3,wapt_public
homepage          : https://www.7-zip.org/
package_uuid      : 2187ab50-7460-4862-8a4d-66087dac86f1
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.7-zip.org/history.txt
min_os_version    : 5.0
max_os_version    : 
icon_sha256sum    : eddc038d3625902b6ddeaabd13dd91529e8d457ffbd0c554f96d343ae243a67a
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-02-12T13:59:18.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         : nL/ujI27RNZ1oWZ6pU8cwMafz71r8vxydlzGMTbA0TI6ae1BdA3gyR/BoR0nf9tLrpxZHq7bwH7yZEC/QiAVDChofJOiuHqPAxjxdRSZ1ZBTiIYIY8w0FVsbIhCaQ1W/vpWkj9+I3xdep30SoQUeM8mtsGXWuhJ6vm5c5Y0x0hdAGP/Y5+wsIZtkZFuUw1WEw9ZbbI3WbGNJOsiTIReFHqyxXxfAUJ7Atn0FYJmNRLa44sxk94pPvK7FpieF7EJaCP8l0YmIVbo9YFmVTcTFK1ZxfN5stYwWVXvNu6FoB/y0mKFDj5RYbAGFoRih7+FL9Tr9KTrqUoN1wrKkSsjAbA==

# -*- coding: utf-8 -*-
from setuphelpers import *

ext_file_association = [
    ".7z",
    ".zip",
    ".rar",
    ".001",
    # ".cab",
    # ".iso",
    ".xz",
    ".txz",
    ".lzma",
    ".tar",
    ".cpio",
    ".bz2",
    ".bzip2",
    ".tbz2",
    ".tbz",
    ".gz",
    ".gzip",
    ".tgz",
    ".tpz",
    ".z",
    ".taz",
    ".lzh",
    ".lha",
    ".rpm",
    ".deb",
    ".arj",
    # ".vhd",
    # ".vhdx",
    ".wim",
    ".swm",
    # ".esd",
    # ".fat",
    # ".ntfs",
    ".dmg",
    ".hfs",
    ".xar",
    ".squashfs",
    ".apfs",
]
app_dir = makepath(programfiles, "7-Zip")


def install():
    # Uninstalling other versions of the software (including switching from MSI to EXE)
    for to_uninstall in installed_softwares(name="^7-Zip"):
        if Version(to_uninstall["version"]) != Version(control.get_software_version()) or force:
            print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
            try:
                killalltasks(ensure_list(control.impacted_process))
                run(uninstall_cmd(to_uninstall["key"]))
                wait_uninstallkey_absent(to_uninstall["key"])
            except Exception as e:
                print(e)
                print("Remove failed: %s (%s)\nContinuing..." % (to_uninstall["name"], to_uninstall["version"]))

    # Installing the software
    bin_name = glob.glob("7z*.exe")[0]
    install_exe_if_needed(
        bin_name,
        "/S",
        "7-Zip",
        min_version=control.version.split("-", 1)[0],
    )

    # File association for 7-Zip
    for ext in ext_file_association:
        register_ext(
            "7-zip",
            ext,
            '"%s" "%%1"' % (makepath(app_dir, "7zFM.exe")),
            icon="%s,1" % (makepath(app_dir, "7z.dll")),
        )

    # Adding 7z in path
    add_to_system_path(app_dir)


def uninstall():
    # Deleting 7z from path
    remove_from_system_path(app_dir)

    # Removing any remaining files
    if isdir(app_dir):
        killalltasks(ensure_list(control.impacted_process))
        # killalltasks("explorer") # can help
        remove_tree(app_dir)

# -*- coding: utf-8 -*-
from setuphelpers import *
import requests

r""" PS C:\waptdev\wapt-packages\7zip> wapt-get list-registry zip --json
{
 "output":[],
 "config_filename":"C:\\Program Files (x86)\\wapt\\wapt-get.ini",
 "result":[
  {
   "key":"7-Zip",
   "name":"7-Zip 22.01 (x64)",
   "version":"22.01",
   "install_date":"",
   "install_location":"C:\\Program Files\\7-Zip\\",
   "uninstall_string":"\"C:\\Program Files\\7-Zip\\Uninstall.exe\"",
   "publisher":"Igor Pavlov",
   "system_component":0,
   "win64":true
  },
  {
   "key":"{23170F69-40C1-2702-2201-000001000000}",
   "name":"7-Zip 22.01 (x64 edition)",
   "version":"22.01.00.0",
   "install_date":"2023-06-20 00:00:00",
   "install_location":"",
   "uninstall_string":"MsiExec.exe /I{23170F69-40C1-2702-2201-000001000000}",
   "publisher":"Igor Pavlov",
   "system_component":0,
   "win64":true
  },
  {
   "key":"{23170F69-40C1-2702-2300-000001000000}",
   "name":"7-Zip 23.00 (x64 edition)",
   "version":"23.00.00.0",
   "install_date":"2023-05-17 00:00:00",
   "install_location":"",
   "uninstall_string":"MsiExec.exe /I{23170F69-40C1-2702-2300-000001000000}",
   "publisher":"Igor Pavlov",
   "system_component":0,
   "win64":true
  }
 ]
} """


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    url = "https://www.7-zip.org/download.html"
    download_dict = {
        "windows-x64": "https://www.7-zip.org/a/7znodotversion-x64.exe",
        "windows-arm64": "https://www.7-zip.org/a/7znodotversion-arm64.exe",
        "windows-x86": "https://www.7-zip.org/a/7znodotversion.exe",
        "linux-x64": "https://www.7-zip.org/a/7znodotversion-linux-x64.tar.xz",
        "linux-arm64": "https://www.7-zip.org/a/7znodotversion-linux-arm64.tar.xz",
        "darwin-all": "https://www.7-zip.org/a/7znodotversion-mac.tar.xz",
    }

    # Getting latest version from official sources
    print("URL used is: %s" % url)
    for bs_search in bs_find_all(url, "b", proxies=proxies):
        if "Download 7-Zip " in bs_search.text and not "beta" in bs_search.text:
            version = bs_search.text.split("Zip ")[-1].split(" (")[0]
            nodotversion = version.replace(".", "")
            download_url = download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]].replace("nodotversion", nodotversion)
            latest_bin = download_url.split("/")[-1]
            if requests.head(download_url, proxies=proxies, allow_redirects=True).status_code == 200:
                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)

    # Checking version from file
    version_from_file = get_version_from_binary(latest_bin)
    if Version(version_from_file, 4) != Version(version, 4) and version_from_file != "":
        print("Changing version to the version number of the binary (from: %s to: %s)" % (version, version_from_file))
        # os.rename(latest_bin, latest_bin.replace(version, version_from_file))
        version = version_from_file
    else:
        print("Binary file version corresponds to online 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()

    # Deleting outdated binaries
    remove_outdated_binaries(latest_bin)

    # Validating or not update-package-sources
    return package_updated

6fe18d5b3080e39678cabfa6cef12cfb25086377389b803a36a3c43236a8a82c : 7z2600-x64.exe
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
33ce061c37bebc0b34e8f588a1895ba0481f623ec713eac408a8fc52270996f4 : WAPT/changelog.txt
e4843e7ff8170cc1463ff903063c08ebdd5eb8c40f941d19532ec022c16a0f1d : WAPT/control
eddc038d3625902b6ddeaabd13dd91529e8d457ffbd0c554f96d343ae243a67a : WAPT/icon.png
9c0f761bb3e1f0c17d1331ebace7a18b4fbe5fb468d4653cfb2ea690135292ea : luti.json
dc19494b10ca1c642d0b2b7cd3c80b0a36227f7689bda6755c22824da16c02eb : setup.py
d2c02826b56271babf41b36478a48d95a670b30af33db5986f797b8feca8080f : update_package.py

https://www.7-zip.org/history.txt
22.1-45
===
ignore beta version
switch to exe install
making sure version exists in update_package
.cab files should not be opened with 7z by default

21.07-40   
===
Add 7z to path
translating control

21.07-38
===
Now fixing mismatching software architectures
Reordered ext_file_association (to match with the software displaying) and no longer assiociate vhd* ext
min_wapt_version  : 2.0

21.07-36
===
Switching update_package() to update_package.py