tis-wapt-python310-relocatable icon

tis-wapt-python310-relocatable

Paquet d’installation silencieuse pour tis-wapt-python310-relocatable

3.10.19-39

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un scan VirusTotal est effectué.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-wapt-python310-relocatable
  • version: 3.10.19-39
  • maintainer: sfonteneau
  • locale: all
  • target_os: windows
  • architecture: x86
  • signature_date:
  • size: 8.52 Mo

package           : tis-wapt-python310-relocatable
version           : 3.10.19-39
architecture      : x86
section           : base
priority          : optional
name              : 
categories        : 
maintainer        : sfonteneau
description       : Package for tis-python-3.10-tranquilit
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.0
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : Paquet pour tis-python-3.10-tranquilit
description_pl    : Pakiet dla tis-python-3.10-tranquilit
description_de    : Paket für tis-python-3.10-tranquilit
description_es    : Paquete para tis-python-3.10-tranquilit
description_pt    : Pacote para tis-python-3.10-tranquilit
description_it    : Pacchetto per tis-python-3.10-tranquilit
description_nl    : Pakket voor tis-python-3.10-tranquilit
description_ru    : Пакет для tis-python-3.10-tranquilit
audit_schedule    : 
editor            : 
keywords          : 
licence           : 
homepage          : 
package_uuid      : 48c712d7-5342-4291-a83c-6337733b9e60
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : b55b23fa81945c6cd4c2f4f114188aa9f8f3d0c3cbb9fb353b2803ffbb67b43b
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2025-10-14T15:36:06.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         : GEgWkPIdPV5YNkluP3yluaPjnilDW9Jqe7o3fPAyxYz1DjD0n330En7T3vzJ+wYeev9qK31weoXbqZ2ZwMoFDgyTkTlojkSx2aBJPCBvAEb60djBvq8JkMNV90qOjFF97mNx8d1D264QC8rtoAJPmYSZddxF3dAFGBQo52eO+jJLIIX0pKF88frP/QlHhcsULwSG6YmgRy0xvPqPu8uxTPbeTiU+xGPrexE6qVJ422RV/htLkYBHsFcuo8LsEGj1Nqa8XXYpF6co3ko2Ob8BH4mScq68r/UKnpkpAgyZN58N6CS9Z83uEuBb6PxZ3cxPBeYR+Vz+pZ7KgyNZ1r5SqA==

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


def install():
    unzip('Python-windows_amd64-x86.zip',r'c:\pythonwapt-x86')


def uninstall():
    pass

# -*- coding: utf-8 -*-
from setupdevhelpers import *
import os
import shutil
import os
import glob
import distro
import platform

python_name_file = str(platform.system().lower() + '_' + platform.machine().lower() + '_' + '_'.join([u.split('.')[0] for u in distro.linux_distribution(False) if u][:2])).strip('_')


def update_package():

    colum1 = bs_find_all('https://www.python.org/downloads/source/','div','class',"column")[0].findAll('li')
    versionpython = None
    for entry in colum1:
        if versionpython:
            continue
        if not hasattr(entry,'contents'):
            continue
        for i in entry.contents :
            if not hasattr(i,'contents'):
                continue
            v = [t for t in i.contents if str(t).startswith('Python 3.10')]
            if v:
                versionpython = v[0].split(' ')[1]
                break

    openssl_version = '3.5.4'

    #Download and extract python source
    wget(f'https://www.python.org/ftp/python/{versionpython}/Python-{versionpython}.tgz',f'Python-{versionpython}.tgz')
    unzip_with_7zip(f'Python-{versionpython}.tgz',f'Python-{versionpython}-tar')
    unzip_with_7zip(rf'Python-{versionpython}-tar\Python-{versionpython}.tar','.')

    remove_tree(f'Python-{versionpython}-tar')
    remove_file(f'Python-{versionpython}.tgz')

    #Download and extract openssl source
    wget(rf'https://github.com/openssl/openssl/releases/download/openssl-{openssl_version}/openssl-{openssl_version}.tar.gz',rf'openssl-{openssl_version}.tar.gz')
    unzip_with_7zip(rf'openssl-{openssl_version}.tar.gz',rf'openssl-{openssl_version}-tar')
    unzip_with_7zip(rf'openssl-{openssl_version}-tar\openssl-{openssl_version}.tar','.')
    remove_tree(rf'openssl-{openssl_version}-tar')
    remove_file(rf'openssl-{openssl_version}.tar.gz')

    if not isfile(r'C:\Program Files\NASM\nasm.exe'):
        error(r'C:\Program Files\NASM\nasm.exe not found')

    run(rf'Python-{versionpython}\PCbuild\get_externals.bat',timeout=5000)

    with open(rf'openssl-{openssl_version}\Configurations\60-custom.conf','w') as f:
        f.write(data_custom)

    add_to_system_path(r'C:\Program Files\NASM')

    #run(rf'cd openssl-{openssl_version} & set path=C:\Program Files\NASM;%path% &"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat" &"C:\Strawberry\perl\bin\perl.exe" configure VC-WIN64A-rtt & nmake',timeout=1200)
    run(rf'cd openssl-{openssl_version} & set path=C:\Program Files\NASM;%path% &"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat" &"C:\Strawberry\perl\bin\perl.exe" configure VC-WIN32-rtt & nmake',timeout=5000)

    name_openssl_folder = glob.glob(rf'Python-{versionpython}\externals\openssl-bin-*')[0].split('\\')[-1]

    shutil.move(rf'Python-{versionpython}\externals\{name_openssl_folder}\win32',rf'Python-{versionpython}\externals\{name_openssl_folder}\win32old')
    shutil.move(rf'openssl-{openssl_version}',rf'Python-{versionpython}\externals\{name_openssl_folder}\win32')
    filecopyto(rf'Python-{versionpython}\externals\{name_openssl_folder}\win32old\include\applink.c',rf'Python-{versionpython}\externals\{name_openssl_folder}\win32\include\applink.c')


    with open(makepath(f'Python-{versionpython}','PCbuild','openssl.props'), 'r') as f:
        data=f.read()
    data = data.replace(r"<_DLLSuffix>-1_1</_DLLSuffix>",r"<_DLLSuffix>-3</_DLLSuffix>")
    with open(makepath(f'Python-{versionpython}','PCbuild','openssl.props'), 'w') as f:
        f.write(data)

    run(rf'Python-{versionpython}\PCbuild\build.bat -p Win32 -t Rebuild',timeout=5000)

    run(rf'"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\msbuild.exe" "%s\Python-{versionpython}\Tools\msi\make_zip.proj" /t:Build   /p:OutputPath="%s"' % (basedir,basedir))

    name_generate = glob.glob('*.zip')[0]
    os.rename(name_generate,'Python-%s-x86.zip' % python_name_file)

    remove_tree(f'Python-{versionpython}')
    commit_count = params.get("commit_count",0)
    control.version = "%s-%s" % (Version(versionpython), commit_count)
    control.save_control_to_wapt()



data_custom = r"""## -*- mode: perl; -*-
## Personal configuration targets

my %targets = (
    "VC-WIN32-rtt" => {
        inherit_from     => [ "VC-WIN32" ],
        cflags           => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v},
        lflags           => "/nologo /release",
    },
    "VC-WIN64A-rtt" => {
        inherit_from     => [ "VC-WIN64A" ],
        cflags           => sub{my $v=pop; $v=~ s/\/MD/\/MT/ig; return $v},
        lflags           => "/nologo /release",
    },
);"""

3d032d77e29ef18ee25e2b62b162fa8ff2ffb2104fe1aab70ec08244e9290ed8 : Python-windows_amd64-x86.zip
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
1a259cf3b81044bfc62bef9c71cfa977681f554bd82485943bba8178a171498a : WAPT/control
b55b23fa81945c6cd4c2f4f114188aa9f8f3d0c3cbb9fb353b2803ffbb67b43b : WAPT/icon.png
e150b89b0ba88fced08ee262c140c6390e7afce03619bf1eedb6aab995a8a4f3 : luti.json
4c0a76cc205d327705708bfd829cc36e3dedb49fe87298baae8c20d71c88524c : setup.py
4184c694d11a01406d1005b85071b60f442d4ebd4a0a551fa4ab5857662817de : update_package.py