tis-openrsat icon

OpenRSAT

Paquet d’installation silencieuse pour OpenRSAT

0.4.13
Utilities
Security
System and network
Utilities
Security
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 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-openrsat
  • name: OpenRSAT
  • version: 0.4.13
  • categories: Utilities,Security,System and network
  • maintainer: WAPT Team,Tranquil IT,Louis Persin,Thomas Prud'homme
  • locale: all
  • target_os: macos
  • architecture: arm
  • signature_date:
  • size: 4.65 Mo

package           : tis-openrsat
version           : 0.4.13
architecture      : arm
section           : base
priority          : optional
name              : OpenRSAT
categories        : Utilities,Security,System and network
maintainer        : WAPT Team,Tranquil IT,Louis Persin,Thomas Prud'homme
description       : 
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : macos
min_wapt_version  : 2.3
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      : 250c8d06-cc42-437a-82db-aea0468d55cb
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 03ea977bb46ee771b0e00d075fd36c1b185129a40260935db691719e6f42483d
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2025-10-14T08:11:20.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         : MEPAC2Ebeh2uAM1f7Jgvihh5r4D06WNgWnbjiCD9BztW5bZo5X9GrU6q/D9q8w1e+Ro+rrY8kgOtm+Fqzy3cKGBijmcWxUtJN9A/3kErwVbJqWIuPTw8nPdXVSkFEE269KggfA2jl4z29TZCHfNRzWmY/ZkUdBwhYWbWbm7Hdi4YUleSPUPTKvNdpY8+Bva+4T58nW/C8N9MkI/VYdRdRlhFGUUAULtZ9EqcTuzxtnl9ivUXeBYFzerEkd7vLWoqOOCusa7IWkTuhFbtmk0SSes15bzR4J6lYFR9LzNnQ+D4l/iaZyTs6Di6U707uDaRcH/VCSkk61aV2FNzUu4mTQ==

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

path = '/Applications/openrsat.app'
name = 'OpenRSAT'

def install():
    if not isdir(f"{path}/Contents/MacOS"):
        mkdirs(f"{path}/Contents/MacOS")

    filecopyto(name, f"{path}/Contents/MacOS/{name}")
    run(f"chmod 755 {path}/Contents/MacOS/{name}")

    with open(f"{path}/Contents/Info.plist", "w") as f:
        f.write(info_plist % control.get_software_version())


def uninstall():
    if isdir(path):
        remove_tree(path)


def audit():
    if not isfile(f"{path}/Contents/MacOS/{name}"):
        print("erreur file not found")
        return "ERROR"
    else:
        return "OK"


info_plist = fr"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleName</key>
    <string>{name}</string>
        <key>CFBundleShortVersionString</key>
    <string>%s</string>
    <key>CFBundleExecutable</key>
    <string>{name}</string>
    <key>CFBundleIconFile</key>
    <string>icon.icns</string>
    <key>CFBundleIdentifier</key>
    <string>it.tranquil.{name.lower()}</string>
    <key>NSHighResolutionCapable</key>
    <true/>
</dict>
</plist>"""

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

build_folder = r'/var/build'
git = r'git'
lazbuild = r'/Users/buildbot/lazarus_4_0/lazarus/lazbuild'

def update_package():
    # Remove old build folder
    if isdir(build_folder):
        print(f"Old build folder exists ({build_folder}). Remove it.")
        remove_tree(build_folder)
    
    mkdirs(build_folder)

    # Clone OpenRSAT repository
    print("Clone OpenRSAT repository.")
    run(f"{git} clone https://github.com/tranquilit/OpenRSAT.git {build_folder}")

    # Retrieve last tag
    print("Retrieve last tag.")
    tag = run(fr'{git} -C {build_folder} describe --tags --abbrev=0')

    # Checkout to last tag
    print(f"Last tag found ({tag}). Checkout to this tag.")
    run(fr'{git} -C {build_folder} checkout {tag}')
    
    # Update submodules
    print("Update submodules")
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/mORMot2"')
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/pltis_uicomponents"')
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/pltis_tsmbios"')
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/pltis_utils"')
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/pltis_virtualtrees"')
    run(fr'{git} -C {build_folder} submodule update --progress --init -- "submodules/metadarkstyle"')
    
    # Patch pltis_uicomponents
    print("Patch pltis_uicomponents")
    f = open(fr'{build_folder}/submodules/pltis_uicomponents/src/standard/tis.ui.lvlgraphcontrol.pas','r')
    filedata = f.read()
    f.close()
    newdata = filedata.replace("Laz_AVL_Tree","AVL_Tree")
    f = open(fr'{build_folder}/submodules/pltis_uicomponents/src/standard/tis.ui.lvlgraphcontrol.pas','w')
    f.write(newdata)
    f.close()

    # Copy windres
    print("Copy windres.")
    filecopyto('/usr/local/bin/windres','/Users/buildbot/lazarus_4_0/fpc/bin/aarch64-darwin/windres')

    # Download mORMot2 static requirements
    print("Download mORMot2 static")
    wget('https://synopse.info/files/mormot2static.7z','mormot2static.7z')
    run('/usr/local/bin/7zz x -y mormot2static.7z -ostatic')
    remove_tree(fr'{build_folder}/submodules/mORMot2/static')
    os.rename('static', fr'{build_folder}/submodules/mORMot2/static')
    remove_file('mormot2static.7z')

    # Add required package to Lazarus IDE
    print("Add required package to Lazarus IDE")
    run(f'{lazbuild} --add-package-link {build_folder}/submodules/mORMot2/packages/lazarus/mormot2.lpk --ws=cocoa')
    run(f'{lazbuild} --add-package-link {build_folder}/submodules/pltis_uicomponents/pack/pltis_uicomponents.lpk --ws=cocoa')
    run(f'{lazbuild} --add-package-link {build_folder}/submodules/pltis_tsmbios/Packages/tsmbios.lpk')
    run(f'{lazbuild} --add-package-link {build_folder}/submodules/pltis_utils/pltis_utils.lpk ')
    run(f'{lazbuild} --add-package {build_folder}/submodules/pltis_virtualtrees/virtualtreeview_package.lpk')
    run(f'{lazbuild} --add-package {build_folder}/submodules/metadarkstyle/metadarkstyle.lpk')
    run(f'{lazbuild} --add-package {build_folder}/submodules/metadarkstyle/metadarkstyledsgn.lpk')
    run(f'{lazbuild} --add-package-link {build_folder}/packages/OpenRSATCore/OpenRSATCore.lpk')

    # Build Lazarus project
    print("Build lazarus project")
    run(f"{lazbuild} --build-mode=macosx-arm64 {build_folder}/sources/OpenRSAT.lpi --ws=cocoa")
    
    # WAPT PAckage prepare
    filecopyto(f"{build_folder}/bin/macosx-arm64/OpenRSAT", "OpenRSAT")

    # Update package version
    print("Update package version")
    version = tag[1:]
    control.set_software_version(version)
    control.save_control_to_wapt()

e2ba15a24eadabe3572f505cbeb4c24edb57c04ebbc94299ba87cce878aefcab : OpenRSAT
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
6ace9bfe967d613edf7be25bbee44dfd4024c0f77b33bc10ecb43a05a045d077 : WAPT/control
03ea977bb46ee771b0e00d075fd36c1b185129a40260935db691719e6f42483d : WAPT/icon.png
6725fb7eaf874d39ca3611bd917e24957d8ef5811546a3963e024aebbcc14c51 : luti.json
d2c22bb898db847a770fdb1991c44c92d7d043c95d900717cf29b3f02216bcf8 : setup.py
51b5eec786a696a8316d38c76f5009559e1a9625be6c6e6ba3029c70e1789883 : update_package.py