Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Apr 2014 12:59:24 -0400 (GMT-04:00)
From:      John <aqqa11@earthlink.net>
To:        FreeBSD questions <freebsd-questions@freebsd.org>
Subject:   Re: where does uname get version number?
Message-ID:  <9530580.1397840364718.JavaMail.root@mswamui-backed.atl.sa.earthlink.net>

next in thread | raw e-mail | index | archive | help



-----Original Message-----
>From: John <aqqa11@earthlink.net>
>Sent: Apr 18, 2014 12:51 PM
>To: FreeBSD questions <freebsd-questions@freebsd.org>
>Subject: Re: where does uname get version number?
>
>
>
>
>-----Original Message-----
>>From: Trond Endrest=C3=B8l <Trond.Endrestol@fagskolen.gjovik.no>
>>Sent: Apr 18, 2014 9:38 AM
>>To: John <aqqa11@earthlink.net>
>>Cc: FreeBSD questions <freebsd-questions@freebsd.org>
>>Subject: Re: where does uname get version number?
>>
>>On Fri, 18 Apr 2014 00:48-0400, John wrote:
>>
>>> -----Original Message-----
>>> >From: Eduardo Morras <emorrasg@yahoo.es>
>>> >Sent: Apr 17, 2014 3:07 AM
>>> >To: freebsd-questions@freebsd.org
>>> >Subject: Re: where does uname get version number?
>>> >
>>> >On Wed, 16 Apr 2014 23:39:06 -0400 (GMT-04:00)
>>> >John wrote:
>>> >
>>> >> Do you want me to add the following to /etc/profile ?
>>> >>=20
>>> >> UNAME_v=3D"FreeBSD 9.2-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC
>>> >> 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC"
>>> >> export UNAME_v UNAME_r=3D"9.2-RELEASE"
>>> >> export UNAME_r
>>> >>=20
>>> >> But, then do I have to manually change this version number
>>> >> in /etc/profile for each upgrade in the future?  That would be quite
>>> >> a hassle for each upgrade to -p5, -p6, ... etc.  Is that the way to
>>> >> go?
>>> >
>>> >No, freebsd-update should update your /etc/profile and UNAME_* system =
vars.
>>> >
>>> >>=20
>>> >> I also tried:
>>> >>=20
>>> >> # unsetenv UNAME_r=20
>>> >>=20
>>> >> but "uname -r" still shows the incorrect "9.1-RELEASE" even though
>>> >> all other files mentioned above are in "9.2-RELEASE".
>>> >>=20
>>> >> So still, where did uname get that incorrect version number?
>>> >
>>> >If there's no UNAME_* defined, you undefined it with #unsetenv, uname =
reads them from /usr/obj/usr/src/sys/$KERNEL/vers{ion,.c} files. Trond sugg=
est to delete them before rebuilding, so they get updated too, nice suggest=
ion. Mine sets different information in UNAME_* and vers{ion,.c} files. Thi=
s discrepancy should be avoided.
>>> >
>>> >---   ---
>>>=20
>>> Thanks.  I don't have the folder /usr/obj/usr/src/sys/ .  Under /usr/ob=
j/usr/src/ I only see two folders: lib32 and tmp.
>>>=20
>>> I did find a file /usr/obj/lib32/usr/src/include/vers.c , that contains=
 the incorrect version:
>>>=20
>>> #define SCCSSTR "@(#)FreeBSD 9.1-RELEASE #0: Mon Jan 21 15:45:14 UTC 20=
13"
>>> #define VERSTR "FreeBSD 9.1-RELEASE #0: Mon Jan 21 15:45:14 UTC 2013\n =
   root@:/usr/obj/lib32/usr/src/include\n"
>>> #define RELSTR "9.1-RELEASE"
>>>=20
>>> That's closer now!  However, I never compiled the kernel, I only=20
>>> installed 9.0-RELEASE and ran freebsd-update to upgrade to=20
>>> 9.2-RELEASE, so don't know how these /usr/obj files were produced. =20
>>> I installed virtualbox before, maybe that produced /usr/obj ?
>>>=20
>>> Anyway, I have deleted these folders /usr/src/ and /usr/obj/ , then=20
>>> ran svn to install /usr/src/ , and then rebooted.  Yet "uname -a"=20
>>> still says the incorrect 9.1-RELEASE.  Now I don't even have=20
>>> /usr/obj , where does uname get that incorrect version now?
>>
>>If I understand this at all, freebsd-update simply downloads and=20
>>installs precompiled bits and pieces of the base system, including the=20
>>kernel. The system needs to be rebooted manually to be able to use an=20
>>updated kernel and other long running pieces like init(8).
>>
>>Checking out a new working copy of the source tree using svn is only=20
>>the first step of a multi-step approach of updating the base system=20
>>using the source tree; the remaining steps being compiling the world=20
>>and the kernel, installing the kernel, rebooting the system, and if=20
>>all goes well, install world, merge any changes to the config files,=20
>>and optionally delete obsolete stuff, before doing the final reboot.=20
>>
>>Yes, always perform the final reboot to verify that the system is able=20
>>to reboot in case of a panic at a later stage.
>>
>>If the new kernel didn't load well, simply reboot, interrupt the boot=20
>>loader, unload the bad kernel, load the old kernel=20
>>(/boot/kernel.old/kernel), and boot the system, followed by=20
>>mv /boot/kernel /boot/kernel.bad, and=20
>>mv /boot/kernel.old /boot/kernel.
>>
>>Next time, it's sufficient to update the working copy (svn up=20
>>/usr/src), rather than erasing /usr/src and do a complete checkout,=20
>>before performing the remaining steps as outlined above.
>>
>>I haven't tried freebsd-update at all, I've always done my upgrades=20
>>using the source, I do find it strange that the new kernel doesn't=20
>>identify itself as being newer than the previous kernel.
>>
>>And why must freebsd-update fiddle with the UNAME_* env vars?
>>
>>--=20
>
>Thanks for the clarification!  I don't compile kernel, I only installed 9.=
1-RELEASE and binary upgraded to 9.2-RELEASE using freebsd-update.  (I'm wo=
rried about the lifetime of the SSD in my laptop so am trying to avoid comp=
iling, but that's a side topic.)
>
>I now totally deleted /usr/src (and /usr/obj), because I don't need them n=
ow as I now install virtualbox from pkg.
>
>But after rebooting, "uname -a" still shows 9.1-RELEASE.  As mentioned bef=
ore, all files such as kernel etc are in 9.2, where does uname get that inc=
orrect version now?

>>And why must freebsd-update fiddle with the UNAME_* env vars?

Sorry forgot to answer your question, someone kindly suggested I might have=
 defined the UNAME_* vars incorrectly in /etc/profile etc, that will lead u=
name to report incorrect version, so asked me to look into that.  Turned ou=
t I never defined that.  So it's still a mystery where does uname get the i=
ncorrect version 9.1, while all files such as kernel etc contains 9.2.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9530580.1397840364718.JavaMail.root>