diff --git a/openup b/openup index 1144bd8..ff7d955 100755 --- a/openup +++ b/openup @@ -247,18 +247,21 @@ check_vuxml() { do_i_need_to_reboot() { # XXX hardcoded PKG_DBDIR - local kern_time booted_time + local osversion=$(sysctl -n kern.osversion) + local kern_version=$(sysctl -n kern.version | head -1) + local booted_version=$(what -s /bsd | tail -1 | tr -d '\t') + local booted_time=$(sysctl -n kern.boottime) + local kern_time=$(stat -qf "%Um" /bsd) + local warn=0 # Check /bsd.booted first if available due to kernel relinking if [ -e /bsd.booted ]; then - booted_time=$(stat -qf "%Um" /bsd.booted) - kern_time=$(stat -qf "%Um" /bsd) + [ X"${kern_version}" != X"${booted_version}" ] && warn=1 else - booted_time=$(sysctl -n kern.boottime) - kern_time=$(stat -qf "%Um" /bsd) + [ "${booted_time}" -lt "${kern_time}" ] && warn=1 fi - if [ "${booted_time}" -lt "${kern_time}" ]; then + if [ ${warn} -gt 0 ]; then pr_err pr_err "System must be rebooted after the last kernel update" pr_err @@ -280,7 +283,7 @@ fi set -A _REL -- $(sysctl -n kern.version | sed 's/^OpenBSD \([0-9]\.[0-9]\)\([^ ]*\).*/\1 \2/;q') _REL_INT="$(echo ${_REL[0]} | tr -d '.')" _OPENUP_MINREL=60 -_OPENUP_VERSION=30 +_OPENUP_VERSION=31 if [ -n "${_REL[1]}" -a "${_REL[1]}" != "-stable" ]; then _badrel=1; fi if [ "${_REL_INT}" -lt "${_OPENUP_MINREL}" ]; then _badrel=1; fi if [ -n "${_badrel}" ]; then