5851974b20
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
71 lines
2.0 KiB
Bash
Executable File
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"
|