=================================================================== RCS file: /cvs/openbsd/fw_update/fw_install.sh,v retrieving revision 1.12 retrieving revision 1.14 diff -u -r1.12 -r1.14 --- openbsd/fw_update/fw_install.sh 2021/10/17 20:29:01 1.12 +++ openbsd/fw_update/fw_install.sh 2021/10/17 23:25:14 1.14 @@ -80,6 +80,16 @@ VERSION="${VNAME%.*}${VNAME#*.}" FWDIR="$VNAME" +# TODO: We need the firmware for the system we just installed +# not the one we booted from. For example: +# * booting from a snapshot bsd.rd that thinks it is the 7.0 release +# will install the firmware from the 7.0 directory instead of +# from the snapshots dir. +# If they're using sysupgrade, then the installer kernel will be correct. +# If we're doing this in the installer we can check what they picked +# for downloading sets and use that value. +# Otherwise, the fw_update after first boot will fix it up for us. + HTTP_FWDIR=$FWDIR set -- $(scan_dmesg "/^OpenBSD $VNAME\([^ ]*\).*$/s//\1/p") [[ $1 == -!(stable) ]] && HTTP_FWDIR=snapshots @@ -177,7 +187,7 @@ while read c g; do case $c in - @cwd) cwd=$g + @cwd) cwd="${DESTDIR}/$g" ;; @*) continue ;; @@ -200,7 +210,7 @@ # TODO: Add some details about the install to +CONTENTS like pkg_add # TODO: Or, maybe we save the firmware someplace and make pkg_add reinstall echo "Installing $_f" - tar -zxphf "$_tmpsrc/$_f" -C /etc "firmware/*" + tar -zxphf "$_tmpsrc/$_f" -C "${DESTDIR}/etc" "firmware/*" mkdir -p ${PKGDIR}/${_f%.tgz}/ tar -zxphf "$_tmpsrc/$_f" -C "${PKGDIR}/${_f%.tgz}" "+*" ed -s "${PKGDIR}/${_f%.tgz}/+CONTENTS" <