Files
RedBear-OS/local/scripts/check-upstream-releases.sh
vasilito 5851974b20 feat: build system transition to release fork + archive hardening
Release fork infrastructure:
- REDBEAR_RELEASE=0.1.1 with offline enforcement (fetch/distclean/unfetch blocked)
- 195 BLAKE3-verified source archives in standard format
- Atomic provisioning via provision-release.sh (staging + .complete sentry)
- 5-phase improvement plan: restore format auto-detection, source tree
  validation (validate-source-trees.py), archive-map.json, REPO_BINARY fallback

Archive normalization:
- Removed 87 duplicate/unversioned archives from shared pool
- Regenerated all archives in consistent format with source/ + recipe.toml
- BLAKE3SUMS and manifest.json generated from stable tarball set

Patch management:
- verify-patches.sh: pre-sync dry-run report (OK/REVERSED/CONFLICT)
- 121 upstream-absorbed patches moved to absorbed/ directories
- 43 active patches verified clean against rebased sources
- Stress test: base updated to upstream HEAD, relibc reset and patched

Compilation fixes:
- relibc: Vec imports in redox-rt (proc.rs, lib.rs, sys.rs)
- relibc: unsafe from_raw_parts in mod.rs (2024 edition)
- fetch.rs: rev comparison handles short/full hash prefixes
- kibi recipe: corrected rev mismatch

New scripts: restore-sources.sh, provision-release.sh, verify-sources-archived.sh,
check-upstream-releases.sh, validate-source-trees.py, verify-patches.sh,
repair-archive-format.sh, generate-manifest.py

Documentation: AGENTS.md, README.md, local/AGENTS.md updated for release fork model
2026-05-02 01:41:17 +01:00

71 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# check-upstream-releases.sh — Check for new Redox OS snapshots (read-only).
#
# Usage:
# ./local/scripts/check-upstream-releases.sh
#
# Queries Redox GitLab tags via git ls-remote.
# Prints snapshots newer than the current baseline.
# ZERO side effects — no clones, no disk writes, no state changes.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
REDOX_URL="${REDOX_URL:-https://gitlab.redox-os.org/redox-os/redox.git}"
MANIFEST="$PROJECT_ROOT/sources/redbear-0.1.0/manifest.txt"
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
BLUE='\033[1;34m'
NC='\033[0m'
echo -e "${BLUE}Red Bear OS — Upstream Release Check${NC}"
echo ""
# Get our baseline
if [ -f "$MANIFEST" ]; then
BASELINE=$(head -3 "$MANIFEST" | grep 'Build system' | awk '{print $NF}' 2>/dev/null || echo "unknown")
echo "Baseline: Red Bear OS 0.1.0 (build system: $BASELINE)"
else
echo "Baseline: unknown (manifest not found at $MANIFEST)"
fi
# Get baseline date from manifest or git
if [ -f "$MANIFEST" ]; then
BASELINE_DATE=$(head -6 "$MANIFEST" | grep 'Generated' | sed 's/.*Generated: //' | head -1 2>/dev/null || echo "2026-05-01")
else
BASELINE_DATE="2026-05-01"
fi
echo "Baseline date: $BASELINE_DATE"
echo ""
# Query Redox tags
echo "Checking: $REDOX_URL"
echo ""
TAGS=$(git ls-remote --tags "$REDOX_URL" 2>/dev/null | grep -oP 'refs/tags/\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -20 || echo "")
if [ -z "$TAGS" ]; then
echo -e "${YELLOW}Could not query Redox tags. Is the network available?${NC}"
echo "URL: $REDOX_URL"
exit 0
fi
echo "Redox releases available:"
echo "$TAGS" | while read -r tag; do
marker=""
if [ "$tag" = "0.9.0" ]; then
marker=" (current upstream stable)"
fi
echo " $tag$marker"
done
echo ""
echo "To evaluate a release:"
echo " ./local/scripts/provision-release.sh --ref=<tag> --release=0.2.0 --dry-run"
echo ""
echo "To rebase on a release:"
echo " ./local/scripts/provision-release.sh --ref=<tag> --release=0.2.0"