Download raw body.
sysupgrade -c
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
sysupgrade -c