From 5e5026088d64bed63bfe95457e5ffba63e17dd5d Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Thu, 7 May 2026 23:10:02 +0100 Subject: [PATCH] fix(linux/build): terminate xorriso -alter_date_r path list with -- (M1.1 iter32) 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) --- linux/build/scripts/build-inner.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linux/build/scripts/build-inner.sh b/linux/build/scripts/build-inner.sh index 27c9880..bff27fa 100755 --- a/linux/build/scripts/build-inner.sh +++ b/linux/build/scripts/build-inner.sh @@ -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