build: Packages/ directory with 91 pkgar files + auto-sync script

Packages/ is the canonical binary package repository for Red Bear OS.
Contains stage.pkgar copies of all built packages (91 files).

New scripts:
- local/scripts/sync-packages.sh: syncs built pkgar → Packages/
- make packages-sync: run sync
- make packages-list: list package count

Future: cache-auto will auto-sync to Packages/ after each build.
This commit is contained in:
2026-04-28 12:50:21 +01:00
parent f405070d2c
commit 17e5852919
93 changed files with 47 additions and 0 deletions
+1
View File
@@ -81,3 +81,4 @@ local/cache/pkgar/
# Red Bear git-tracked build cache (survives make clean)
!local/cache/pkgar/
!local/cache/pkgar/**
Packages/redbear-firmware.pkgar
+2
View File
@@ -224,3 +224,5 @@ FORCE:
# Wireshark
wireshark: FORCE
wireshark $(BUILD)/network.pcap
packages-sync: ; @bash local/scripts/sync-packages.sh
packages-list: ; @ls -la Packages/*.pkgar 2>/dev/null | wc -l && echo "pkgar files in Packages/"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# Red Bear OS — Package Repository Sync
# Copies all built stage.pkgar files to Packages/ directory.
# This is the canonical binary package repository for Red Bear OS.
#
# Usage:
# ./local/scripts/sync-packages.sh Sync all built packages
# ./local/scripts/sync-packages.sh --verify Verify package integrity
set -euo pipefail
cd "$(dirname "$0")/../.."
PKG_DIR="Packages"
mkdir -p "${PKG_DIR}"
if [ "${1:-}" = "--verify" ]; then
echo "=== Package Integrity Check ==="
ok=0; bad=0
for pkgar in "${PKG_DIR}"/*.pkgar; do
[ -f "$pkgar" ] || continue
pkg=$(basename "$pkgar" .pkgar)
if [ -s "$pkgar" ]; then
ok=$((ok+1))
else
echo " EMPTY: $pkg"
bad=$((bad+1))
fi
done
echo "Valid: $ok, Empty: $bad"
exit $bad
fi
echo "=== Syncing Packages ==="
count=0
while IFS= read -r pkgar; do
pkg_path=$(dirname "$(dirname "$(dirname "$pkgar")")")
pkg=$(basename "$pkg_path")
dest="${PKG_DIR}/${pkg}.pkgar"
if [ ! -f "$dest" ] || [ "$pkgar" -nt "$dest" ]; then
cp "$pkgar" "$dest" && count=$((count+1))
fi
done < <(find recipes local/recipes -name "stage.pkgar" -path "*/target/x86_64-unknown-redox/*" 2>/dev/null)
echo "Synced $count packages to ${PKG_DIR}/"
echo "Total: $(ls ${PKG_DIR}/*.pkgar 2>/dev/null | wc -l) pkgar files"