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
This commit is contained in:
2026-06-03 08:27:04 +03:00
parent 02fcc15f2a
commit d48ef7f26a
+11 -20
View File
@@ -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