From 5ee3ab2fd638aba9d00ab3c0c8b586a07d525cdc Mon Sep 17 00:00:00 2001 From: Patrick Gniza Date: Sun, 28 Jun 2026 19:49:25 +0000 Subject: [PATCH] =?UTF-8?q?Payload=20Images=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Payload-Images.md | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 Payload-Images.md diff --git a/Payload-Images.md b/Payload-Images.md new file mode 100644 index 0000000..2ab826c --- /dev/null +++ b/Payload-Images.md @@ -0,0 +1,135 @@ +# Payload Images + +Payload images are reusable intermediate images containing extracted installer content. + +--- + +## Windows Payload + +Directory: + +```text +romexis-payload/ +``` + +Purpose: + +- download official Windows installer +- extract required InstallShield CAB components +- build `/opt/romexis` +- extract MSSQL initialization SQL files +- write `/opt/romexis/version` + +Output contract: + +```text +/opt/romexis +/opt/romexis-mssql-db +/opt/romexis/version +/opt/romexis/server/RomexisServer.jar +``` + +The payload must not contain architecture-specific runtime libraries like Chilkat. + +--- + +## Version File + +Supported Windows installer URLs are maintained in: + +```text +romexis-payload/romexis-versions.env +``` + +Example: + +```text +6_5_3_444_203=https://content.planmeca.com/files/Planmeca_Romexis_6.5.3.444.203_Win.zip +``` + +--- + +## Copy Map + +Installer extraction is controlled by: + +```text +romexis-payload/romexis-copy-map.tsv +``` + +Format: + +```text +SourceDestination +``` + +Example: + +```text +Server_jar /opt/romexis/server +Server_Program_64bit/server/*.xml /opt/romexis/server +``` + +When this mapping changes, all payload versions should be rebuilt because the extracted runtime layout may change. + +--- + +## Firebird Payload + +Directory: + +```text +romexis-firebird-payload/ +``` + +Purpose: + +- download official macOS DMG +- extract PKG payloads +- collect Firebird database SQL scripts +- collect original backup/restore helper scripts +- include `romexis_new.fdb` as reference/template + +Output contract: + +```text +/opt/romexis-firebird-db/version +/opt/romexis-firebird-db/scripts +/opt/romexis-firebird-db/tools +/opt/romexis-firebird-db/templates +/opt/romexis-firebird-db/layout +``` + +Important files: + +```text +/opt/romexis-firebird-db/scripts/rxdb.sh +/opt/romexis-firebird-db/scripts/rxupd.sh +/opt/romexis-firebird-db/scripts/RX_Base_10fb_MAC.sql +/opt/romexis-firebird-db/scripts/RX_Update_653.sql +/opt/romexis-firebird-db/tools/Romexis_Firebird_Backup.sh +/opt/romexis-firebird-db/tools/Romexis_Firebird_Restore.sh +/opt/romexis-firebird-db/templates/romexis_new.fdb +``` + +--- + +## Inspecting a Payload Image + +If a payload image is based on `scratch`, it may not have a shell. + +Use: + +```bash +docker save gitea.buchhorster.de/patrick/romexis-firebird-payload:latest -o payload.tar +mkdir payload rootfs +tar -xf payload.tar -C payload +tar -xf payload//layer.tar -C rootfs +find rootfs/opt -type f | sort +``` + +If the image includes a shell: + +```bash +docker run --rm -it --entrypoint sh gitea.buchhorster.de/patrick/romexis-firebird-payload:latest +```