From b85f3d1fddc965bf10e3f6392888da1d33dff5ea Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 20 Mar 2026 08:40:38 +0100 Subject: [PATCH] wip --- docs/CHANGELOG.md | 25 ++++++++++++++++++++++++- src/iso/build-iso-arch.sh | 22 +++++++++++++++++----- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index a7ae3f4..644b4b9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,9 +2,32 @@ --- +## V29 2026-03-20 07:36:03 + +**Fix brace expansion failure in ISO build script causing missing directories** + +### Changes: +- Fixed `src/iso/build-iso-arch.sh`: replaced all bash brace expansions in `mkdir -p` + with explicit individual `mkdir -p` calls. Brace expansion (`{a,b,c}`) was silently + not expanding when the script was invoked via `sudo bash`, causing critical directories + like `/var/lib/dpack/repos/` to never be created. This was the root cause of the + `iso.rootfs.repos` test failure — the repos `cp -a` had nowhere to copy into. + - Line 61: `${ISO_DIR}/{EFI/BOOT,LiveOS,boot}` → explicit mkdir calls + - Lines 67-70: `${ROOTFS}/{bin,boot,...}` and nested var/ structure → explicit calls +- Previous V28 fixes (chmod a+rX, sudo test, debug logging) remain in place. + +### Plan deviation/changes: +- None + +### What is missing/needs polish: +- `qemu.kernel_boots` and `qemu.reaches_userspace` still expected failures — no real + kernel built yet (Phase 4 deliverable). ISO uses placeholder BOOTX64.EFI. + +--- + ## V28 2026-03-20 07:26:46 -**Fix package repos missing from ISO and harden squashfs test checks** +**Fix package repos permissions and harden squashfs test checks** ### Changes: - Fixed `src/iso/build-iso-arch.sh`: package repos copied into ISO now get `chmod -R a+rX` diff --git a/src/iso/build-iso-arch.sh b/src/iso/build-iso-arch.sh index 49716aa..3ada126 100755 --- a/src/iso/build-iso-arch.sh +++ b/src/iso/build-iso-arch.sh @@ -58,16 +58,28 @@ done # --- Clean previous build ---------------------------------------------------- info "Cleaning previous build..." rm -rf "${BUILD_DIR}" -mkdir -p "${ROOTFS}" "${ISO_DIR}"/{EFI/BOOT,LiveOS,boot} +mkdir -p "${ROOTFS}" +mkdir -p "${ISO_DIR}/EFI/BOOT" "${ISO_DIR}/LiveOS" "${ISO_DIR}/boot" # --- Create the live root filesystem ----------------------------------------- info "Creating live root filesystem..." # Create FHS directory structure -mkdir -p "${ROOTFS}"/{bin,boot,dev,etc/{rc.d,sysconfig},home,lib,lib64,mnt,opt} -mkdir -p "${ROOTFS}"/{proc,root,run,sbin,srv,sys,tmp} -mkdir -p "${ROOTFS}"/usr/{bin,include,lib,lib64,sbin,share/{man,doc}} -mkdir -p "${ROOTFS}"/var/{cache,lib/{dpack/{db,repos}},log,lock,run,spool,tmp} +mkdir -p "${ROOTFS}/bin" "${ROOTFS}/boot" "${ROOTFS}/dev" +mkdir -p "${ROOTFS}/etc/rc.d" "${ROOTFS}/etc/sysconfig" +mkdir -p "${ROOTFS}/home" "${ROOTFS}/lib" "${ROOTFS}/lib64" "${ROOTFS}/mnt" "${ROOTFS}/opt" +mkdir -p "${ROOTFS}/proc" "${ROOTFS}/root" "${ROOTFS}/run" "${ROOTFS}/sbin" +mkdir -p "${ROOTFS}/srv" "${ROOTFS}/sys" "${ROOTFS}/tmp" +mkdir -p "${ROOTFS}/usr/bin" "${ROOTFS}/usr/include" "${ROOTFS}/usr/lib" "${ROOTFS}/usr/lib64" +mkdir -p "${ROOTFS}/usr/sbin" "${ROOTFS}/usr/share/man" "${ROOTFS}/usr/share/doc" +mkdir -p "${ROOTFS}/var/cache" +mkdir -p "${ROOTFS}/var/lib/dpack/db" +mkdir -p "${ROOTFS}/var/lib/dpack/repos" +mkdir -p "${ROOTFS}/var/log" +mkdir -p "${ROOTFS}/var/lock" +mkdir -p "${ROOTFS}/var/run" +mkdir -p "${ROOTFS}/var/spool" +mkdir -p "${ROOTFS}/var/tmp" mkdir -p "${ROOTFS}"/install # --- Check if we have a pre-built base system --------------------------------