[PATCH 2/7] release/combined: Compress installation image

Demi Marie Obenour
2025-10-29T10:14:28Z

This will be needed once the B partitions are added. Otherwise,
tar2ext4's size limit is exceeded.

The timeout is increased to account for the very slow compression
process.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
---
release/checks/integration/meson.build | 2 +-
release/combined/eosimages.nix | 14 +++++++++-----
2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/release/checks/integration/meson.build b/release/checks/integration/meson.build
index 7bf8f51e4c762d2279ed6064ae1a87cb9b07494c..eb2860c6871b1067891c07ff7f4ac634cb4af458 100644
--- a/release/checks/integration/meson.build
+++ b/release/checks/integration/meson.build
@@ -13,6 +13,6 @@ lib = static_library('spectrum-integration-test', 'lib.c')

foreach test : ['appimage', 'late-serial', 'networking', 'portal']
test(test, executable(test, test + '.c', link_with : lib),
- timeout : 400,
+ timeout : 800,
args : [run_qemu])
endforeach
diff --git a/release/combined/eosimages.nix b/release/combined/eosimages.nix
index 0ac4c48374e7098a2b91f61fc07cebb2042ffbdc..ba44d9cd82d55d491293ed36cc0402db8ebd3ffe 100644
--- a/release/combined/eosimages.nix
+++ b/release/combined/eosimages.nix
@@ -12,11 +12,15 @@ runCommand "eosimages.img" {
unsafeDiscardReferences = { out = true; };
dontFixup = true;
} ''
+ set -o pipefail
mkdir dir
cd dir
- ln -s $image $imageName
- sha256sum $imageName > $imageName.sha256
- tar -chf $NIX_BUILD_TOP/eosimages.tar *
- tar2ext4 -i $NIX_BUILD_TOP/eosimages.tar -o $out
- e2label $out eosimages
+ ln -s -- "$image" "$imageName"
+ sha256sum -- "$imageName" > "$imageName.sha256" &
+ pid=$!
+ gzip -9 < "$image" > "$imageName.gz"
+ sha256sum -- "$imageName.gz" > "$imageName.gz.sha256"
+ wait "$pid"
+ tar -ch -- "$imageName.gz" "$imageName.gz.sha256" "$imageName.sha256" | tar2ext4 -o "$out"
+ e2label "$out" eosimages
'') (_: {})

--
2.51.2