From 5dbbaaf22c4ca3d3399fa2bdabeeb6651e7db50b Mon Sep 17 00:00:00 2001 From: sysadmin Date: Mon, 8 Jun 2026 21:08:33 +0100 Subject: [PATCH] fix(windows/build): drop oscdimg -bootdata inner quotes (PS arg mangling) Stages 1-5 pass; oscdimg failed with Error 123 because PowerShell doubled the embedded quotes in -bootdata. Work paths have no spaces, so omit the inner quotes around etfsboot.com/efisys.bin entirely. Co-Authored-By: Claude Opus 4.8 --- windows/installer/build.ps1 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/windows/installer/build.ps1 b/windows/installer/build.ps1 index 32499ce..eb151b6 100644 --- a/windows/installer/build.ps1 +++ b/windows/installer/build.ps1 @@ -144,9 +144,12 @@ function Invoke-Repack { $etfs = Join-Path $isoRoot 'boot\etfsboot.com' $efi = Join-Path $isoRoot 'efi\microsoft\boot\efisys.bin' if (-not (Test-Path $efi)) { throw "missing UEFI boot image: $efi" } - $bootdata = '2#p0,e,b"{0}"#pEF,e,b"{1}"' -f $etfs, $efi + # Work paths have no spaces (SYSTEM TEMP / runner temp), so omit oscdimg's + # inner quotes around the boot images -- otherwise PowerShell mangles the + # native -bootdata arg into doubled quotes (oscdimg Error 123). + $bootdata = "2#p0,e,b$etfs#pEF,e,b$efi" if (Test-Path $OutputIso) { Remove-Item $OutputIso -Force } - & $oscdimg -m -o -u2 -udfver102 -l"SILVERMETAL" "-bootdata:$bootdata" $isoRoot $OutputIso + & $oscdimg -m -o -u2 -udfver102 -lSILVERMETAL "-bootdata:$bootdata" $isoRoot $OutputIso if ($LASTEXITCODE -ne 0) { throw "oscdimg failed ($LASTEXITCODE)" } }