#!/bin/sh
# DF-5801 fix validation:
#  1. push fix.diff into guest /usr/src and apply with patch(1)
#  2. build + install a single-fix kernel
#  3. reboot into it
# (rig rebuild + run happens in fix_run.sh)
set -e
HERE=$(cd "$(dirname "$0")" && pwd)
PORT=8091

/usr/bin/python3 -m http.server $PORT --bind 0.0.0.0 --directory "$HERE" >/dev/null 2>&1 &
HTTPD=$!
trap 'kill $HTTPD 2>/dev/null' EXIT
sleep 1

dfbsd-qemu/vm.sh run_root "cd /usr/src && fetch -o /tmp/df5801.diff http://10.0.2.2:$PORT/fix.diff && patch -C -p1 < /tmp/df5801.diff && patch -p1 < /tmp/df5801.diff && grep -n 'Sanitize the range' sys/vm/vm_page.c"
dfbsd-qemu/vm.sh run_root 'cd /usr/src && make -j6 buildkernel KERNCONF=X86_64_GENERIC && make installkernel' 2>&1 | tail -5
