From: Stuart Henderson Subject: Re: sysupgrade -c To: Manuel Giraud Cc: tech Date: Fri, 3 Jul 2026 14:11:16 +0100 On 2026/07/03 14:15, Manuel Giraud wrote: > Stuart Henderson 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? yes.