tis-7zip

25.1-45
7-Zip is a free and open-source file archiver with a high compression ratio
43856 downloads
Download
See build result See VirusTotal scan
tis-7zip icon
  • package : tis-7zip
  • name : 7-Zip
  • version : 25.1-45
  • 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 : x86
  • signature_date : 2025-08-07 12:02
  • size : 1.35 Mo
  • installed_size : 5.77 Mo
  • homepage : https://www.7-zip.org/
package           : tis-7zip
version           : 25.1-45
architecture      : x86
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          : PROD
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      : d348c46c-ea2d-4cfd-9d56-075b62cfc967
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            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-08-07T12:02:25.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         : UpzZ0VNBVotGm3dbQv9XQUXUDmEzMO6RHqDMO+qq2RmTXzXFDH7Y2jtECdD1hB+OTpX2hEwlwW/hkqnvT1/CcQeOx9/GBC0LMY5P1MJJCuqV5onY3omjt4iE7mjpXVx/abJExMLYy+IBZuSQJYbVEiNiJIgioEl2YoOyLgSth11AywrSNYpNdrkwT1mnMq0iBzOdEQqGC3bIrWBKcgy3DwS01wJsL1iDLrZKaQjI/Z0TXd2Sgd9T4YkmnvEo0F2D01JTUn0nvUn7bo7FHH1qLHzOuP3UlVci+14zrHGrTYhgiQQfipcwNbnLIotzP9YxprQHHVdR/8Sea/xO3mxBQg==
# -*- 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
b96831eec5928384f0543d6b57c1f802952a0f2668e662882c0a785a2b52fb3b : 7z2501.exe
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
33ce061c37bebc0b34e8f588a1895ba0481f623ec713eac408a8fc52270996f4 : WAPT/changelog.txt
8441be617d4a7bee406cc2ce2d87d55e4c9746d01e2b9871bc60fb756ce2d207 : WAPT/control
eddc038d3625902b6ddeaabd13dd91529e8d457ffbd0c554f96d343ae243a67a : WAPT/icon.png
9f5d1eef22b1bd0a2e7e05d909191452650f0249e8e1fb4c21e0bf16ae150194 : luti.json
dc19494b10ca1c642d0b2b7cd3c80b0a36227f7689bda6755c22824da16c02eb : setup.py
d2c02826b56271babf41b36478a48d95a670b30af33db5986f797b8feca8080f : update_package.py
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