Index | Thread | Search

From:
Manuel Giraud <manuel@ledu-giraud.fr>
Subject:
Re: sysupgrade -c
To:
tech <tech@openbsd.org>
Date:
Fri, 03 Jul 2026 14:15:33 +0200

Download raw body.

Thread
Stuart Henderson <stu@spacehopper.org> writes:

> On 2026/07/03 09:40, Manuel Giraud wrote:
>> Hi,
>> 
>> From a discussion on misc@ some days ago, here's my attempt at
>> supporting a "check new version" feature in sysupgrade:
>> 
>> Index: sysupgrade.8
>> ===================================================================
>> RCS file: /cvs/src/usr.sbin/sysupgrade/sysupgrade.8,v
>> diff -u -p -r1.23 sysupgrade.8
>> --- sysupgrade.8	11 Nov 2025 15:18:30 -0000	1.23
>> +++ sysupgrade.8	3 Jul 2026 07:33:14 -0000
>> @@ -22,7 +22,7 @@
>>  .Nd upgrade system to the next release or a new snapshot
>>  .Sh SYNOPSIS
>>  .Nm
>> -.Op Fl fkns
>> +.Op Fl cfkns
>>  .Op Fl b Ar base-directory
>>  .Op Fl R Ar version
>>  .Op Ar installurl | path
>> @@ -54,6 +54,9 @@ Download files to
>>  .Ar base-directory Ns / Ns Pa _sysupgrade
>>  instead of
>>  .Pa /home/_sysupgrade .
>> +.It Fl c
>> +Print availability of a new version.
>> +The sets are not downloaded.
>>  .It Fl f
>>  For snapshots, force an already applied upgrade.
>>  This option has no effect on releases.
>> Index: sysupgrade.sh
>> ===================================================================
>> RCS file: /cvs/src/usr.sbin/sysupgrade/sysupgrade.sh,v
>> diff -u -p -r1.62 sysupgrade.sh
>> --- sysupgrade.sh	21 Mar 2026 01:34:25 -0000	1.62
>> +++ sysupgrade.sh	3 Jul 2026 07:33:14 -0000
>> @@ -74,6 +74,7 @@ rmel() {
>>  
>>  SNAP=false
>>  FILE=false
>> +CHECK=false
>>  FORCE=false
>>  FORCE_VERSION=false
>>  KEEP=false
>> @@ -83,9 +84,10 @@ WHAT='release'
>>  VERSION=$(uname -r)
>>  NEXT_VERSION=$(echo ${VERSION} + 0.1 | bc)
>>  
>> -while getopts b:fknrR:s arg; do
>> +while getopts b:cfknrR:s arg; do
>>  	case ${arg} in
>>  	b)	SETSDIR=${OPTARG}/_sysupgrade;;
>> +	c)	CHECK=true;;
>>  	f)	FORCE=true;;
>>  	k)	KEEP=true;;
>>  	n)	REBOOT=false;;
>> @@ -186,10 +188,22 @@ unpriv cksum -qC SHA256 BUILDINFO
>>  if [[ -e /var/db/installed.BUILDINFO ]]; then
>>  	installed_build_ts=$(cut -f3 -d' ' /var/db/installed.BUILDINFO)
>>  	build_ts=$(cut -f3 -d' ' BUILDINFO)
>> -	if (( $build_ts <= $installed_build_ts )) && ! $FORCE; then
>> +	if $CHECK; then
>> +	    build_human_ts=$(cut -f5- -d' ' BUILDINFO)
>> +	    if (( $build_ts > $installed_build_ts )); then
>> +		echo "A new version ($build_human_ts) is available."
>> +		exit 0
>> +	    else
>> +		echo "No new version available."
>
> I'd recommend no new version -> no output (like syspatch -c does),
> so it can be used in cron without an extra | grep -v.

Ok but then I think I should also tame the verbosity of ftp when using
this flag, no?
-- 
Manuel Giraud