OpenRSAT
Paquet d’installation silencieuse pour OpenRSAT
0.4.51.2
Utilities
Security
System and network
Utilities
Security
System and network
- package: tis-openrsat
- name: OpenRSAT
- version: 0.4.51.2
- categories: Utilities,Security,System and network
- maintainer: WAPT Team,Tranquil IT,Louis Persin,Thomas Prud'homme
- locale: all
- target_os: macos
- architecture: x64
- signature_date:
- size: 8.59 Mo
package : tis-openrsat
version : 0.4.51.2
architecture : x64
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 : PROD
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 : 26afe314-704a-4579-b67c-cddb86c260ca
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 03ea977bb46ee771b0e00d075fd36c1b185129a40260935db691719e6f42483d
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-10-28T21:38:33.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 : BKQqJhmMGo2r8MFPiwPfw+5MR92cJNsve4y6jkTBYIebFpa1VGJkyxaS+d6LLw4VV/Bz1c/DtAqdn1AuuLTZtsNr4Rto0RyRVNEwA/m20bBi/sOecze6yMhf3gjUv6CVEfrJMbePOE1dJ+hsEqS+GbU3yCdrAiw4iqUNMsHZm/IvThayq3DWbnqmlqfMRBRWGmQlRqp2olQFxHVb10gd5rdFgf1vNyQIlvNU2/fvxMl7UvLzjtLuWireqyxW2ZvyCbEKBVYdRncTE6SIX00/U/Pe+aFzbZ16sLRNkL9puzU68I7lp1B09oWaXHDj5qA1+cHTsZYdXFf2Ulj8avf1Wg==
# -*- coding: utf-8 -*-
from setuphelpers import *
path = '/Applications/OpenRSAT.app'
name = 'OpenRSAT'
def install():
if isdir(path):
remove_tree(path)
install_dmg("./OpenRSAT.dmg")
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"
# -*- coding: utf-8 -*-
from setuphelpers import *
import os
build_folder = r'/var/build'
git = r'git'
lazbuild = r'/opt/lazarus_4_0/lazarus/lazbuild'
name = 'OpenRSAT'
package_version=2
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')
tag = tag.strip()
# 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_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','/opt/lazarus_4_0/fpc/bin/x86_64-darwin/windres')
# Download mORMot2 static requirements
print("Download mORMot2 static")
wget('http://srvtemplates.ad.tranquil.it/binary_cache/mormot2static-2.3.stable.7z','mormot2static.7z', sha256='97c6e3ed9df42fb37911289b41761192b1cc56c1ff2c412609027a2560b31e56')
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_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-intel {build_folder}/sources/OpenRSAT.lpi --ws=cocoa")
# Update package version
print("Update package version")
version = f"{tag[1:]}.{package_version}"
control.set_software_version(version)
control.save_control_to_wapt()
# Create icon set
print("Create icon set")
mkdirs('./WAPT/MyIcon.iconset')
for size in [16, 32, 64, 128, 256, 512]:
run("sips -z %i %i %s --out %s" % (size, size, "./WAPT/icon_1024.png", "./WAPT/MyIcon.iconset/icon_%ix%i.png" % (size, size)))
run("sips -z %i %i %s --out %s" % (size*2, size*2, "./WAPT/icon_1024.png", "./WAPT/MyIcon.iconset/icon_%ix%i@2.png" % (size, size)))
run("iconutil -c icns ./WAPT/MyIcon.iconset")
# WAPT PAckage prepare
if not isdir(f"./OpenRSAT.app/Contents/MacOS/lib"):
mkdirs(f"./OpenRSAT.app/Contents/MacOS/lib")
if not isdir(f"./OpenRSAT.app/Contents/Resources"):
mkdirs(f"./OpenRSAT.app/Contents/Resources")
print("Copy files")
filecopyto(f"./WAPT/MyIcon.icns", "./OpenRSAT.app/Contents/Resources/icon.icns")
remove_tree(f"./WAPT/MyIcon.iconset")
filecopyto(f"{build_folder}/bin/macosx-intel/OpenRSAT", "./OpenRSAT.app/Contents/MacOS/OpenRSAT")
filecopyto(f"/opt/wapt/lib/libssl.dylib", "./OpenRSAT.app/Contents/MacOS/lib/libssl.dylib")
filecopyto(f"/opt/wapt/lib/libcrypto.dylib", "./OpenRSAT.app/Contents/MacOS/lib/libcrypto.dylib")
print("Write plist file")
with open(f"./OpenRSAT.app/Contents/Info.plist", "w") as f:
f.write(info_plist % control.get_software_version())
print("Update binaries permissions")
run(f"chmod 755 ./OpenRSAT.app/Contents/MacOS/OpenRSAT")
if isfile("./OpenRSAT.app/Contents/MacOS/lib/libssl.dylib"):
run(f"chmod 755 ./OpenRSAT.app/Contents/MacOS/lib/libssl.dylib")
if isfile("./OpenRSAT.app/Contents/MacOS/lib/libcrypto.dylib"):
run(f"chmod 755 ./OpenRSAT.app/Contents/MacOS/lib/libcrypto.dylib")
mkdirs(f"./OpenRSATBuild")
shutil.move("./OpenRSAT.app", "./OpenRSATBuild")
run(f"ln -s /Applications ./OpenRSATBuild")
print("Create dmg")
run(f'hdiutil create -volname "OpenRSAT" -srcfolder "./OpenRSATBuild" -ov -format UDZO "./OpenRSAT.dmg"')
remove_tree(f"./OpenRSATBuild")
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>"""
820c1d6b44e19fbf06fd7eb47d85e952ae2512dadc2585f5b7c9670e5056278e : OpenRSAT.dmg
f0eb31e23e3825c6ee393f247bde6335d5dcc16a35ebb00751b3d8466f397f8c : WAPT/MyIcon.icns
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
869bbd5365cf8ddc95e3f1dd0b631802dacb4ccbc3cd35e11c55a09c7e528eef : WAPT/control
03ea977bb46ee771b0e00d075fd36c1b185129a40260935db691719e6f42483d : WAPT/icon.png
622aebdc7fdd71f4cb62388430a5c7aea3286dc596fec1d720dc86d2a8a1e2f4 : WAPT/icon_1024.png
40bb8d03f5464c7c8b99492953106998c9e47cffc9c6873a2a7b6fe308300e1b : luti.json
5e9508a31c34fc754c41ddae6aadc3ad0923932e7714b2453bf7b5b6f0a4c9e7 : setup.py
3ebdbacfbc4971d1a05433b24956fc56d63147177a0342bef48ab5b92a54e284 : update_package.py