I am continually getting messages from freebsd-update cron like this:
******************************************************************************
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 9.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
The following files will be removed as part of updating to 9.3-RELEASE-p45:
********************************************************************************
I can run freebsd-update fetch and install all day long with reboots and uname still reports 9.3-RELEASE-p43.
For fun I installed lsof and I can reproduce Matt’s problem exactly.
So does uname(3) or uname(1) report on the kernel or does it simply report back an environment variable? It looks to me like the latter and perhaps there is something about this p43 to p45 update that is not setting this environment variable up.
Both "freebsd-update cron" and “lsof" don’t seem to think the upgrade/patch has occurred. In the case "freebsd-update cron” every day it reports by email that some update is required to get to p43. Is this a bug?
Ian
> On Sep 22, 2016, at 7:01 AM, Steve O'Hara-Smith <st...@sohara.org> wrote:
>
> On Thu, 22 Sep 2016 06:14:28 -0400
> Ian Jefferson <ij...@sandbox.ca> wrote:
>
>> I was having a similar issue with freebsd-update not being aware (able?)
>> to patch up to 9.3-RELEASE-p45.
>
> Not all updates change the kernel so it is very possible for the
> kernel version (which uname reports) to be older than the latest update
> installed. In 10.3 there's freebsd-version which reports the system version
> as distinct from the kernel version to resolve this problem, I'm not sure
> if it has been backported to 9.3 though - try it and see.
>
Thanks,
It doesn’t seem like freebsd-version is backported to 9.3 but I’m not sure that would fix the freebsd-update problem nor the lsof issue either.
I also found this:
"The updates distributed by freebsd-update do not always involve the kernel. It is not necessary to rebuild a custom kernel if the kernel sources have not been modified by freebsd-update install. However, freebsd-update will always update/usr/src/sys/conf/newvers.sh. The current patch level, as indicated by the -p number reported by uname -r, is obtained from this file. Rebuilding a custom kernel, even if nothing else changed, allows uname to accurately report the current patch level of the system. This is particularly helpful when maintaining multiple systems, as it allows for a quick assessment of the updates installed in each one. “
here: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html
Indeed it looks to me like /usr/src/sys/conf/newvers.sh on my system “knows” that I am at patch level 45 but freebsd-update doesn’t nor does uname. I think you are saying that uname get’s its information from the kernel but that is contradicted by the handbook points above so I’m unclear and regardless freebsd-update seems broken in this patch.
My newvers.sh file contains the following:
TYPE="FreeBSD"
REVISION="9.3"
BRANCH="RELEASE-p45"
if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
BRANCH=${BRANCH_OVERRIDE}
fi
RELEASE="${REVISION}-${BRANCH}"
VERSION="${TYPE} ${RELEASE}”
I suppose the ultimate answer is we need to move off 9.3 since it is just about EOL anyway but I wonder… if freebsd-update is confused will it perform the upgrade correctly?
Ian
> It doesn’t seem like freebsd-version is backported to 9.3 but I’m not
> sure that would fix the freebsd-update problem nor the lsof issue either.
It was part of a fix for that problem - in 9.3 the kernel version
is all there is later a userspace version was added along with
freebsd-version.
> I also found this:
>
> "The updates distributed by freebsd-update do not always involve the
> kernel. It is not necessary to rebuild a custom kernel if the kernel
> sources have not been modified by freebsd-update install. However,
> freebsd-update will always update/usr/src/sys/conf/newvers.sh. The
> current patch level, as indicated by the -p number reported by uname -r,
> is obtained from this file. Rebuilding a custom kernel, even if nothing
> else changed, allows uname to accurately report the current patch level
> of the system. This is particularly helpful when maintaining multiple
> systems, as it allows for a quick assessment of the updates installed in
> each one. “
Yep that's the full version.
> Indeed it looks to me like /usr/src/sys/conf/newvers.sh on my system
> “knows” that I am at patch level 45 but freebsd-update doesn’t nor does
> uname.
Right - so if you do a kernel build and install then the whole
system will know about it otherwise it's just tucked away in an unused
source file.
> I think you are saying that uname get’s its information from the
> kernel but that is contradicted by the handbook points above so I’m
> unclear and regardless freebsd-update seems broken in this patch.
Yep uname gets the version data from the kernel, which gets it from
newvers.sh when the kernel is built - which is what that handbook section
is telling you in a roundabout and not entirely clear way.
> I suppose the ultimate answer is we need to move off 9.3 since it is just
> about EOL anyway but I wonder… if freebsd-update is confused will it
> perform the upgrade correctly?
Yes it will.
--
Steve O'Hara-Smith <st...@sohara.org>
No. That update updated various system libraries & utilities, but not
the kernel. The message about patch level comes from the kernel, so it
reports it is still at -p43. I see the same thing with this update & w/
various earlier updates that didn't update the kernel. No problema at
all, relax ;-) ....
--
William A. Mahaffey III
----------------------------------------------------------------------
"The M1 Garand is without doubt the finest implement of war
ever devised by man."
-- Gen. George S. Patton Jr.