diff --git a/local/scripts/build-redbear.sh b/local/scripts/build-redbear.sh index 183bf0a5e6..9e435e11ee 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.4" +BUILD_REDBEAR_VERSION="1.5" # ── Colorized output ────────────────────────────────── # Enabled only on a TTY with NO_COLOR unset, so redirected build logs and CI @@ -1060,10 +1060,20 @@ 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 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 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 icu" + PRECOOK_PKGS="relibc base redoxfs userutils 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 +# (which rm's their repo pkgar + target) reliably re-publishes them via the +# single-recipe `repo cook` path — the same recovery relibc already relies on. +# Without this they cook "successful" inside `make live`'s nonstop graph but +# lose their stage.toml before publish (repo marks them outdated -> installer +# fails with `Package "base" not found`). The `[ ! -f repo/$pkg.pkgar ]` guard +# below makes this zero-cost on builds where they were not invalidated. +# bootstrap is intentionally omitted: it is part of the base recipe, not a +# standalone cookable package. for pkg in $PRECOOK_PKGS; do if [ ! -f "$PROJECT_ROOT/repo/x86_64-unknown-redox/$pkg.pkgar" ]; then echo " cooking $pkg..."