diff --git a/local/scripts/build-redbear.sh b/local/scripts/build-redbear.sh index 9e435e11ee..59ed39fc4b 100755 --- a/local/scripts/build-redbear.sh +++ b/local/scripts/build-redbear.sh @@ -9,7 +9,7 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" # REDBEAR_VERSION (which tracks the OS release derived from the git branch). # Starts at 1.0 and is bumped AUTOMATICALLY on every change by the pre-commit # git hook (local/scripts/bump-build-version.sh); do not edit the minor by hand. -BUILD_REDBEAR_VERSION="1.5" +BUILD_REDBEAR_VERSION="1.6" # ── Colorized output ────────────────────────────────── # Enabled only on a TTY with NO_COLOR unset, so redirected build logs and CI @@ -865,7 +865,14 @@ if [ "$NO_CACHE" != "1" ]; then # any driver/acpi/base edit). For a genuine relibc *C-ABI* break — a libc # struct/inline baked into a compiled consumer, which is rare — force a full # clean rebuild with `--no-cache`. - ABI_CRITICAL_PKGS="base redoxfs userutils bootstrap" + # base-initfs builds the STATIC boot-critical binaries baked into the initfs + # (init, logd, ramfs, randd, zerod, acpid, pcid, vesad, fbcond, …). It is a + # `custom` recipe whose content-hash cache does NOT track the boot-ABI crates + # (relibc/libredox/syscall/redox-scheme), so a boot-ABI change leaves it + # "cached" with stale binaries — pid1 `init` then dies at boot with a bogus + # "memory allocation failed" (ABI skew), never reaching login. It must relink + # alongside base/redoxfs/userutils whenever the boot ABI changes. + ABI_CRITICAL_PKGS="base base-initfs redoxfs userutils bootstrap" _boot_abi_changed=0 [ "$relibc_rebuilding" = "1" ] && _boot_abi_changed=1 [ "$USERSPACE_RUNTIME_STALE" = "1" ] && _boot_abi_changed=1 @@ -1060,9 +1067,9 @@ if [ "$CONFIG" = "redbear-full" ]; then # configure fails ("Could not find a package configuration file provided by # Qt6Qml"), aborting the whole build. Pre-cook the Qt stack IN ORDER, before # sddm/kwin, so every Qt6 CMake package is cached in the sysroot first. - PRECOOK_PKGS="relibc base redoxfs userutils icu llvm21 libclc mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt qtbase qtshadertools qtdeclarative qtsvg qtwayland sddm redbear-compositor redbear-greeter" + PRECOOK_PKGS="relibc base redoxfs userutils base-initfs icu llvm21 libclc mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt qtbase qtshadertools qtdeclarative qtsvg qtwayland sddm redbear-compositor redbear-greeter" else - PRECOOK_PKGS="relibc base redoxfs userutils icu" + PRECOOK_PKGS="relibc base redoxfs userutils base-initfs icu" fi # NB: base/redoxfs/userutils are added to the pre-cook set so the boot-ABI # "relink ONLY the static initfs-critical binaries" invalidation above