- pins OpenBSD 8.0 tarballs (sha256) and Linux 7.3.4 as the port targets
- scripts/fetch-sources.sh (C3SL primary, cdn fallback), scripts/vendorize.sh
- scripts/{kernel-config,build-kernel}.sh for the VM-lab kernel
36 lines
1.9 KiB
Bash
Executable File
36 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Stage pristine OpenBSD 8.0 sources used by port tasks into _vendor/upstream.
|
|
# Run after fetch-sources.sh. Output tree is gitignored; IDS.txt records each
|
|
# file's $OpenBSD: tag for rebase forensics.
|
|
set -euo pipefail
|
|
REPO="$(cd "$(dirname "$0")/.." && pwd)"
|
|
V="$REPO/_vendor/openbsd"; U="$REPO/_vendor/upstream"
|
|
SYS_K=(net/pf.c net/pf_ioctl.c net/pf_norm.c net/pf_if.c net/pf_lb.c net/pf_ruleset.c
|
|
net/pf_table.c net/pf_osfp.c net/pf_syncookies.c net/pfvar.h net/pfvar_priv.h
|
|
net/if_pflog.c net/if_pflog.h net/ifq.c net/ifq.h net/hfsc.c net/hfsc.h
|
|
net/fq_codel.c net/fq_codel.h netinet/ip_divert.c netinet/ip_divert.h
|
|
net/radix.c net/radix.h net/radix_node.h net/rtable.c net/rtable.h
|
|
sys/tree.h sys/queue.h sys/param.h sys/hash.h)
|
|
SRC_K=(sbin/pfctl/parse.y sbin/pfctl/pfctl.c sbin/pfctl/pfctl.h sbin/pfctl/pfctl_parser.c
|
|
sbin/pfctl/pfctl_parser.h sbin/pfctl/pfctl_optimize.c sbin/pfctl/pfctl_print.c
|
|
sbin/pfctl/pfctl_osfp.c sbin/pfctl/pfctl_queue.c sbin/pfctl/pfctl_radix.c
|
|
sbin/pfctl/pfctl_table.c sbin/pfctl/pfctl_snmp.c sbin/pfctl/pf_print_state.c
|
|
sbin/pfctl/pfctl.8 include/net/pfvar.h include/net/if_pflog.h)
|
|
|
|
rm -rf "$U"; mkdir -p "$U/sys/net" "$U/sys/sys" "$U/sys/netinet" "$U/sbin/pfctl" "$U/include/net"
|
|
for f in "${SYS_K[@]}"; do
|
|
if ! tar xzf "$V/sys.tar.gz" -C "$U" "./sys/$f" "sys/$f" 2>/dev/null; then
|
|
echo "WARN: sys/$f not found in 8.0-sys" >&2
|
|
fi
|
|
done
|
|
for f in "${SRC_K[@]}"; do
|
|
tar xzf "$V/src.tar.gz" -C "$U" "./$f" "$f" 2>/dev/null || echo "WARN: $f not found in 8.0-src" >&2
|
|
done
|
|
find "$U" -type f \( -name '*.c' -o -name '*.h' -o -name '*.y' -o -name '*.8' \) | sort | while read -r p; do
|
|
tag=$(grep -m1 -oE '\$OpenBSD: [^$]*\$' "$p" | head -1 | sed 's/\$OpenBSD: //;s/ \$//')
|
|
echo "${p#$U/} :: ${tag:-NO-ID}"
|
|
done > "$U/IDS.txt"
|
|
n=$(find "$U" -type f \( -name '*.c' -o -name '*.h' -o -name '*.y' \) | wc -l)
|
|
echo "staged $n files -> $U (IDS.txt)"
|
|
[ "$n" -ge 30 ]
|