=================================================================== RCS file: /cvs/openbsd/fw_update/fw_install.sh,v retrieving revision 1.11 retrieving revision 1.14 diff -u -r1.11 -r1.14 --- openbsd/fw_update/fw_install.sh 2021/10/17 03:07:48 1.11 +++ 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 @@ -91,7 +101,7 @@ fw_update() { local _tmpsrc _f _remove _r - local _src=$FWURL _t=Get _cfile="$_tmpsrc/SHA256" _srclocal=false + local _src=$FWURL _t=Get _cfile="/tmp/SHA256" _srclocal=false local _drivers=$( last='' ftp -D "Detecting" -Vmo- $PATTERNS | @@ -122,8 +132,6 @@ [[ ! -d $_tmpsrc ]] && _issue="Cannot create prefetch area" && fail - cd "$_tmpsrc" - ! $_unpriv ftp -D "$_t" -Vmo - "$_src/SHA256.sig" >"$_cfile.sig" && _issue="Cannot fetch SHA256.sig" && fail @@ -179,7 +187,7 @@ while read c g; do case $c in - @cwd) cwd=$g + @cwd) cwd="${DESTDIR}/$g" ;; @*) continue ;; @@ -202,9 +210,9 @@ # 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 "$_f" -C /etc "firmware/*" + tar -zxphf "$_tmpsrc/$_f" -C "${DESTDIR}/etc" "firmware/*" mkdir -p ${PKGDIR}/${_f%.tgz}/ - tar -zxphf "$_f" -C "${PKGDIR}/${_f%.tgz}" "+*" + tar -zxphf "$_tmpsrc/$_f" -C "${PKGDIR}/${_f%.tgz}" "+*" ed -s "${PKGDIR}/${_f%.tgz}/+CONTENTS" <