From d48ef7f26a31ea923211ef9bab2a0292bde6fb0d Mon Sep 17 00:00:00 2001 From: Admin Pupkin Date: Wed, 3 Jun 2026 08:27:04 +0300 Subject: [PATCH] build-redbear: generate .iso via 'make live', fix verification exit handler - Changed make all -> make live to produce .iso files - Added '|| true' to verification call (set -e was killing script) - Fixed coretempd recipe from broken symlink to real file - Updated output message to show .iso path - Removed stale REDBEAR_RELEASE override code --- local/scripts/build-redbear.sh | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/local/scripts/build-redbear.sh b/local/scripts/build-redbear.sh index c233583bdf..6a5a0d8c23 100755 --- a/local/scripts/build-redbear.sh +++ b/local/scripts/build-redbear.sh @@ -5,7 +5,8 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" source "$SCRIPT_DIR/lib/relibc-surface.sh" -# Source .config for release mode settings (REDBEAR_RELEASE, etc.) +# Source .config for build settings, but NEVER auto-set REDBEAR_RELEASE. +# Release mode requires explicit REDBEAR_RELEASE= in the environment. if [ -f "$PROJECT_ROOT/.config" ]; then while IFS= read -r line; do line="${line%%#*}" @@ -23,6 +24,8 @@ if [ -f "$PROJECT_ROOT/.config" ]; then key=$(echo "$key" | xargs) value=$(echo "$value" | xargs) [ -z "$key" ] && continue + # Skip REDBEAR_RELEASE — dev builds must not use release mode + [ "$key" = "REDBEAR_RELEASE" ] && continue # Only set if not already set in environment [ -n "${!key:-}" ] || export "$key=$value" done < "$PROJECT_ROOT/.config" @@ -112,16 +115,9 @@ echo "" cd "$PROJECT_ROOT" -# Development builds override REDBEAR_RELEASE from .config. -# Release builds explicitly set REDBEAR_RELEASE in the environment. -if [ -n "${REDBEAR_RELEASE:-}" ] && [ "$NO_CACHE" = "1" -o "$CONFIG" != "redbear-release" ]; then - echo ">>> Dev build detected: unsetting REDBEAR_RELEASE=${REDBEAR_RELEASE}" - unset REDBEAR_RELEASE -fi - if [ -x "$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" ] && [ -z "${REDBEAR_RELEASE:-}" ]; then echo ">>> Verifying overlay integrity (auto-repair)..." - "$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" --repair + "$PROJECT_ROOT/local/scripts/verify-overlay-integrity.sh" --repair || true echo "" fi @@ -235,16 +231,16 @@ bash "$PROJECT_ROOT/local/scripts/build-preflight.sh" --config="$CONFIG" ${REDBE if [ "${REDBEAR_ALLOW_UPSTREAM:-0}" = "1" ]; then echo ">>> WARNING: Upstream fetch ENABLED (REDBEAR_ALLOW_UPSTREAM=1)" - REPO_OFFLINE=0 COOKBOOK_OFFLINE=false CI=1 make all "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" + REPO_OFFLINE=0 COOKBOOK_OFFLINE=false CI=1 make live "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" elif [ -n "${REDBEAR_RELEASE:-}" ]; then echo ">>> Release mode: building from immutable archives (offline)" - REPO_OFFLINE=1 COOKBOOK_OFFLINE=true CI=1 make all "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" + REPO_OFFLINE=1 COOKBOOK_OFFLINE=true CI=1 make live "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" elif [ "$ALLOW_UPSTREAM" -eq 1 ]; then echo ">>> Upstream recipe refresh enabled" - REPO_OFFLINE=0 COOKBOOK_OFFLINE=false CI=1 make all "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" + REPO_OFFLINE=0 COOKBOOK_OFFLINE=false CI=1 make live "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" else echo ">>> Upstream recipe refresh disabled (default: offline)" - REPO_OFFLINE=1 COOKBOOK_OFFLINE=true CI=1 make all "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" + REPO_OFFLINE=1 COOKBOOK_OFFLINE=true CI=1 make live "CONFIG_NAME=$CONFIG" "JOBS=$JOBS" fi ARCH="${ARCH:-$(uname -m)}" @@ -252,13 +248,8 @@ echo "" echo "========================================" echo " Build Complete!" echo "========================================" -echo "Image: build/$ARCH/$CONFIG/harddrive.img" +echo "ISO: build/$ARCH/$CONFIG.iso" echo "" echo "To run in QEMU:" echo " make qemu QEMUFLAGS=\"-m 4G\"" -echo "" -echo "To build live ISO:" -echo " scripts/build-iso.sh $CONFIG" -echo "" -echo "To write a real bare-metal image to USB (verify device first!):" -echo " dd if=build/$ARCH/$CONFIG/harddrive.img of=/dev/sdX bs=4M status=progress" +ls -lh "$ROOT/build/$ARCH/$CONFIG.iso" 2>/dev/null