build-redbear.sh: pre-cook base/redoxfs/userutils to fix installer "Package base not found"
The boot-ABI invalidation ("relink ONLY the static initfs-critical binaries:
base redoxfs userutils bootstrap") rm's each package's repo pkgar + target to
force a relink. Only relibc was in PRECOOK_PKGS, so only relibc got re-published
via the reliable single-recipe `repo cook` path. base/redoxfs/userutils cook
"successful" inside `make live`'s nonstop graph but lose their stage.toml before
publish, so repo marks them outdated and never publishes base.pkgar — the
installer then fails with `Package PackageName("base") not found` at image
assembly (mk/disk.mk).
Add base/redoxfs/userutils to the pre-cook set (both configs, ordered after
relibc which they depend on). The `[ ! -f repo/$pkg.pkgar ]` guard makes it
zero-cost when they were not invalidated. bootstrap is omitted (part of the
base recipe, not a standalone package).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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..."
|
||||
|
||||
Reference in New Issue
Block a user