secubox-openwrt/secubox-tools/sync-openwrt-packages.sh
CyberMind-FR 7481c8acfc fix: Build mitmproxy from Python source for aarch64
- Update mitmproxy to v11.1.3
- Build from Python source (no prebuilt arm64 binaries)
- Add Python dependencies
- Add mitmproxy to local-build.sh and sync-openwrt-packages.sh
- Set PKGARCH:=all for Python package

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 14:32:59 +01:00

89 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Copies the freshly built packages from the OpenWrt build tree
# into the firmware release directory so they are included alongside the other
# SecuBox packages (mirrors what the GitHub Actions jobs expect).
set -euo pipefail
REPO_ROOT=$(cd "$(dirname "$0")/.." && pwd)
ARCH_NAME="${ARCH_NAME:-aarch64_cortex-a72}"
OPENWRT_BIN_DIR="${OPENWRT_BIN_DIR:-$REPO_ROOT/secubox-tools/openwrt/bin/packages/$ARCH_NAME}"
FIRMWARE_DIR="${FIRMWARE_DIR:-$REPO_ROOT/secubox-tools/build/firmware/mochabin/packages}"
mkdir -p "$FIRMWARE_DIR"
declare -a COPIED_FILES=()
copy_package() {
local pattern="$1"
local label="$2"
local src
# Search recursively in OPENWRT_BIN_DIR (packages are in base/, packages/ subdirs)
src=$(find "$OPENWRT_BIN_DIR" -name "$pattern" -print -quit 2>/dev/null || true)
if [[ -z "$src" ]]; then
echo "⚠️ $label not found in $OPENWRT_BIN_DIR"
return 0
fi
local dest="$FIRMWARE_DIR/$(basename "$src")"
cp -f "$src" "$dest"
COPIED_FILES+=("$dest")
echo "✅ Copied $label$dest"
}
update_checksums() {
local sha_file="$FIRMWARE_DIR/SHA256SUMS"
local tmp
tmp=$(mktemp)
if [[ -f "$sha_file" ]]; then
# Remove old entries for packages we're updating
grep -v -E 'netifyd_|crowdsec|ndpid_|nodogsplash_|secubox-' "$sha_file" > "$tmp" || true
fi
for pkg in "${COPIED_FILES[@]}"; do
(cd "$(dirname "$pkg")" && sha256sum "$(basename "$pkg")") >> "$tmp"
done
sort -u "$tmp" > "$sha_file"
rm -f "$tmp"
}
echo "📦 Syncing OpenWrt packages for $ARCH_NAME..."
echo ""
# DPI Engines
copy_package 'netifyd_*.ipk' "Netifyd DPI engine"
copy_package 'ndpid_*.ipk' "nDPId DPI engine"
# Security
copy_package 'crowdsec_*.ipk' "CrowdSec core"
copy_package 'crowdsec-firewall-bouncer_*.ipk' "CrowdSec firewall bouncer"
# Captive Portal
copy_package 'secubox-app-nodogsplash_*.ipk' "Nodogsplash captive portal"
# HTTPS Proxy
copy_package 'secubox-app-mitmproxy_*.ipk' "mitmproxy HTTPS proxy"
# SecuBox Core packages
copy_package 'secubox-core_*.ipk' "SecuBox Core"
copy_package 'secubox-app_*.ipk' "SecuBox App"
# LuCI apps
copy_package 'luci-app-secubox_*.ipk' "LuCI SecuBox"
copy_package 'luci-app-secubox-admin_*.ipk' "LuCI SecuBox Admin"
copy_package 'luci-app-secubox-netifyd_*.ipk' "LuCI Netifyd Dashboard"
copy_package 'luci-app-ndpid_*.ipk' "LuCI nDPId Dashboard"
copy_package 'luci-theme-secubox_*.ipk' "LuCI SecuBox Theme"
echo ""
if [[ ${#COPIED_FILES[@]} -gt 0 ]]; then
update_checksums
echo "📦 Firmware packages directory ($FIRMWARE_DIR):"
ls -1 "$FIRMWARE_DIR"/*.ipk 2>/dev/null | xargs -n1 basename | sort
echo ""
echo "✅ Synced ${#COPIED_FILES[@]} packages"
else
echo "⚠️ No packages copied"
fi