fix(linux/build): terminate xorriso -alter_date_r path list with -- (M1.1 iter32)
Some checks failed
Build SilverMetal Linux ISO (reproducibility-gated) / builder-image (push) Successful in 1s
Build SilverMetal Linux ISO (reproducibility-gated) / build-and-verify (push) Failing after 37m14s

Run #4279 hit:

    xorriso : FAILURE : Cannot find path '/-volume_date' in loaded ISO image
    xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'

`-alter_date_r type timestring iso_rr_path [***]` takes a
variable-length path list. xorriso terminates that list either at the
end of the command line or at a literal `--`. Without the terminator,
the next intended option (`-volume_date`) is consumed as another path
to set mtime on, blows up because there's no node called
`/-volume_date`, and FAILURE-severity propagates to a hard exit.

Add `--` after the `/` argument to close the path list. -volume_date c/m
then take effect as expected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-07 23:10:02 +01:00
parent d354040bd6
commit 5e5026088d

View File

@@ -228,13 +228,18 @@ post_process_for_reproducibility() {
# step (run #4278's TOC diff caught both: 21:27 vs 21:44).
# `-volume_date` covers the volume-descriptor-level dates that
# xorriso also stamps on -commit.
# `-alter_date_r` takes a variable-length path list and needs `--`
# to terminate it — without that, the next `-volume_date` is
# interpreted as a path, producing
# FAILURE : Cannot find path '/-volume_date' in loaded ISO image
# (caught on run #4279).
sudo --non-interactive xorriso \
-return_with SORRY 0 \
-indev "${iso_file}" \
-outdev "${new_iso}" \
-boot_image any keep \
-update "${new_sqfs}" /live/filesystem.squashfs \
-alter_date_r m "=${SOURCE_DATE_EPOCH}" / \
-alter_date_r m "=${SOURCE_DATE_EPOCH}" / -- \
-volume_date c "=${SOURCE_DATE_EPOCH}" \
-volume_date m "=${SOURCE_DATE_EPOCH}" \
-commit