On Tue, Mar 01, 2022 at 10:06:10AM +0100, Stefan Hagen wrote:
> Stefan Hagen wrote (2022-02-28 22:16 CET):
> > Theo de Raadt wrote (2022-02-28 18:02 CET):
> > > When you run sysupgrade, you want the firmwares matching what you are
> > > installing.
> > > 
> > > The system you are running right now is irrelevant.  It's drivers
> > > have already loaded the firmwares they need, and a reboot into new
> > > bsd.rd is about to happen.
> > > 
> > > So why does there continue to be conversation about the current
> > > system release?  It is irrelevant.
> > 
> > Good point. This diff should be better then. It's not trying to reuse 
> > NEXT_VERSION or _KERN based on beta/current tag guesswork, but gets
> > all information from the target kernel.
> > 
> > If config -ao should not be used, here a version with what(1):
> 
> Again with correct amount of [ and ] and the use of what(1) with the sed
> tips from Leon.
> 
> I tested:
> Upgrade 69 -> 70
> Upgrade 70 -> 71-beta
> Upgrade 70-current -> 71-beta
> Upgrade 71-beta -> 71-beta
> 
> It did the right thing in all those cases.
> 
> OK?

This looks pretty much like what I came up with, although I used
[[:blank]] similarly to what sthen@ suggested, but either way.

OK afresh1@

> 
> Best Regards,
> Stefan
> 
> Index: sysupgrade.sh
> ===================================================================
> RCS file: /home/cvs/src/usr.sbin/sysupgrade/sysupgrade.sh,v
> retrieving revision 1.45
> diff -u -p -u -p -r1.45 sysupgrade.sh
> --- sysupgrade.sh     11 Feb 2022 12:58:18 -0000      1.45
> +++ sysupgrade.sh     1 Mar 2022 08:50:40 -0000
> @@ -123,10 +123,8 @@ fi
>  
>  if $SNAP; then
>       URL=${MIRROR}/snapshots/${ARCH}/
> -     FW_URL=http://firmware.openbsd.org/firmware/snapshots/
>  else
>       URL=${MIRROR}/${NEXT_VERSION}/${ARCH}/
> -     FW_URL=http://firmware.openbsd.org/firmware/${NEXT_VERSION}/
>  fi
>  
>  install -d -o 0 -g 0 -m 0755 ${SETSDIR}
> @@ -196,7 +194,15 @@ __EOT
>  fi
>  
>  echo Fetching updated firmware.
> -fw_update -p ${FW_URL} || true
> +set -A _NEXTKERNV -- $(what bsd |
> +     sed -n '2s/^    OpenBSD \([1-9][0-9]*\.[0-9]\)\([^ ]*\).*/\1 \2/p')
> +
> +if [[ ${_NEXTKERNV[1]} == '-current' ]]; then
> +     FW_URL=http://firmware.openbsd.org/firmware/snapshots/
> +else
> +     FW_URL=http://firmware.openbsd.org/firmware/${_NEXTKERNV[0]}/
> +fi
> +VNAME="${_NEXTKERNV[0]}" fw_update -p ${FW_URL} || true
>  
>  install -F -m 700 bsd.rd /bsd.upgrade
>  logger -t sysupgrade -p kern.info "installed new /bsd.upgrade. Old kernel 
> version: $(sysctl -n kern.version)"
> 

-- 
andrew

If your computer says, "Printer out of Paper," this problem cannot
      be resolved by continuously clicking the "OK" button.

Reply via email to