tis-putty icon

PuTTY

Paquet d'installation silencieuse pour PuTTY

0.84.0.0-12
System and network
System and network

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-putty
  • name: PuTTY
  • version: 0.84.0.0-12
  • categories: System and network
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Simon Tatham
  • licence: opensource_free,cpe:/a:mit:x11_license,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: pageant,plink,pscp,psftp,putty,puttygen
  • architecture: x64
  • signature_date:
  • size: 3.86 Mo
  • installed_size: 5.79 Mo
  • homepage : https://www.chiark.greenend.org.uk/~sgtatham/putty/

package           : tis-putty
version           : 0.84.0.0-12
architecture      : x64
section           : base
priority          : optional
name              : PuTTY
categories        : System and network
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : PuTTY is a free and open-source terminal emulator, serial console and network file transfer application
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
installed_size    : 5785289
impacted_process  : pageant,plink,pscp,psftp,putty,puttygen
description_fr    : PuTTY est un émulateur de terminal doublé d'un client pour les protocoles SSH, Telnet, rlogin, et TCP brut
description_pl    : PuTTY to darmowy i open-source'owy emulator terminala, konsola szeregowa i aplikacja do przesyłania plików w sieci
description_de    : PuTTY ist ein kostenloser und quelloffener Terminalemulator, eine serielle Konsole und eine Anwendung zur Dateiübertragung im Netzwerk
description_es    : PuTTY es un emulador de terminal gratuito y de código abierto, una consola serie y una aplicación de transferencia de archivos en red
description_pt    : PuTTY é um emulador de terminal gratuito e de código aberto, consola série e aplicação de transferência de ficheiros em rede
description_it    : PuTTY è un emulatore di terminale, una console seriale e un'applicazione per il trasferimento di file in rete gratuita e open-source
description_nl    : PuTTY is een gratis en open-source terminal emulator, seriële console en netwerk bestandsoverdracht applicatie
description_ru    : PuTTY - это бесплатный эмулятор терминала с открытым исходным кодом, последовательная консоль и приложение для передачи файлов по сети
audit_schedule    : 
editor            : Simon Tatham
keywords          : putty,tty,terminal,emulator,console,network,scp,ssh,telnet,rlogin
licence           : opensource_free,cpe:/a:mit:x11_license,wapt_public
homepage          : https://www.chiark.greenend.org.uk/~sgtatham/putty/
package_uuid      : c28b3d71-fcd9-4de2-8b1f-361ab47f0658
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html
min_os_version    : 5.1
max_os_version    : 
icon_sha256sum    : 11fe77671fd02e8f58809a2ab1edd6d6801233b5597015ff7452d69b21ab6acb
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-05-22T10:56:44.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         : hI/WvsOPdlBZ/2lttArSwRr3iQbWnoBwJZ/STpHzJ4bwpgQdxCu65kU/F47Z4nQlar1kpM45aw0bZ0B4uNcgoWZsR/kP04X6mpBMXmT0i6SQCchVm2HF7YyIckt3gGTxgSmUxEWduxSTJP9Nvj/omwNwAc/SJgtxbBWLHIkFqAVIVPEdCRFvri+X19C8/4X4zDBxBWBDg4xNJ5uTJQTMtmb06JpTkR+HgHC1ryL5kUVQ9rvTFb85vCiHHtKD2SlAudC8Oi8GRBihxNy5yqFNcGbkmzMGNn8LKR7Ii+1eEdBwxUxbyCFmvPwvSW6AEyQ6h8mJ6VN8vo3e9SzCdtDqQg==

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

def remove_putty_if_install_with_exe():
    if uninstall_key_exists("PuTTY_is1"):
        killalltasks(control.impacted_process.split(","))
        # uninstaller cannot be silenced by design (cf putty.iss), so we remove stuff by hand
        # run('"%s" /VERYSILENT /SUPPRESSMSGBOXES' % os.path.join(programfiles32,'putty','unins000.exe'))
        if isdir(install_location("PuTTY_is1")):
            remove_tree(install_location("PuTTY_is1"))
        registry_delete(HKEY_LOCAL_MACHINE, "SOFTWARE\\Classes\\PuTTYPrivateKey", None)
        if iswin64():
            registry_delete(HKEY_LOCAL_MACHINE, "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PuTTY_is1", None)
        else:
            registry_delete(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\PuTTY_is1", None)
        putty_link = makepath(winshell.programs(common=1), "PuTTY")
        if isdir(putty_link):
            remove_tree(putty_link)
        unregister_uninstall("Putty_is1")


def install():

    # Uninstalling the EXE versions of the software
    remove_putty_if_install_with_exe()
    # Initializing variables
    package_version = control.version.split("-", 1)[0]
    bin_name = glob.glob("putty-*-installer.msi")[0]

    # Force uninstalling older versions of the software
    for to_uninstall in installed_softwares(name="^PuTTY"):
        if to_uninstall["publisher"]=="Simon Tatham" and Version(to_uninstall["version"]) < Version(control.get_software_version()) or force:
            print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
            killalltasks(ensure_list(control.impacted_process))
            try:
                run(uninstall_cmd(to_uninstall["key"]))
                wait_uninstallkey_absent(to_uninstall["key"], max_loop=60, raise_on_timeout=True)
            except Exception as e:
                print(e)
                time.sleep(60)
                unregister_uninstall(to_uninstall["key"], win64app=to_uninstall["win64"])
                if isdir(to_uninstall["install_location"]):
                    remove_tree(to_uninstall["install_location"])

    # Installing the package
    install_msi_if_needed(
        bin_name,
        min_version=package_version,
    )


def session_setup():
    remove_user_programs_menu_folder("PuTTY (64-bit)")
    remove_user_programs_menu_folder("PuTTY")


def uninstall():
    remove_programs_menu_folder("PuTTY (64-bit)")
    remove_programs_menu_folder("PuTTY")


def remove_user_programs_menu_folder(folder):
    """Remove a folder from the start menu of current user

    Args:
        folder(str): folder to remove
    """
    user_programs_menu_folder = makepath(winshell.programs(common=0), folder)
    if isdir(user_programs_menu_folder):
        remove_tree(user_programs_menu_folder)

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


def update_package():
    
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
        
    download_dict = {
        "windows-x64": "https://the.earth.li/~sgtatham/putty/latest/w64/",
        "windows-x86": "https://the.earth.li/~sgtatham/putty/latest/w32/",
        "windows-arm64": "https://the.earth.li/~sgtatham/putty/latest/wa64/",
    }
    architecture = ensure_list(control.architecture)[0]
    if architecture =='arm':
        architecture='arm64'
        
    url = download_dict["windows-" + architecture]
    
    # Getting latest version from official sources
    print("URL used is: %s" % url)
    for bs_search in bs_find_all(url, "a", "href", proxies=proxies):
        if "installer.msi" in bs_search["href"]:
            latest_bin = bs_search["href"]
            version = latest_bin.rsplit("-")[-2]
            download_url = url + bs_search["href"]
            break

    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    print("Download URL is: %s" % download_url)
    
    print("Downloading: %s" % latest_bin)
    wget(download_url, latest_bin, proxies=proxies)
    
    version_from_file = get_version_from_binary(latest_bin)
    
    control.set_software_version(version_from_file)
    control.save_control_to_wapt()

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
6acf5e4b00f1deb6105b9a198c8df29467a0af246017ebe140d3704fb72143df : WAPT/control
11fe77671fd02e8f58809a2ab1edd6d6801233b5597015ff7452d69b21ab6acb : WAPT/icon.png
60d221be5d702b4de2a9b0f8cf025db661782f0225e7e3885c0a0b2933d7c6d5 : luti.json
190d00150e67ad3ff51af4b50e76a3ab97b863a34efd50472627b17c0cf4102b : putty-64bit-0.84-installer.msi
3dddbc80e3f8771f9fb53d613ae4c82551f25e86b8f81fc3b2cc20290fe73de5 : setup.py
d7985fc85a158314f1c46098d4dd431e736142587a18856cc870798ed1e71d04 : update_package.py