where does uname get version number?

John aqqa11 at earthlink.net
Thu Apr 17 03:40:59 UTC 2014

-----Original Message-----
>From: Eduardo Morras <emorrasg at yahoo.es>
>Sent: Apr 16, 2014 4:04 AM
>To: freebsd-questions at freebsd.org
>Cc: John <aqqa11 at earthlink.net>
>Subject: Re: where does uname get version number?
>On Wed, 16 Apr 2014 03:28:13 -0400 (GMT-04:00)
>John <aqqa11 at earthlink.net> wrote:
>> After a rocky upgrade from 9.1-RELEASE(-p10) to 9.2-RELEASE, all
>> files I checked are now in 9.2-RELEASE-p3.  For example:
>> /usr/src/sys/conf/newvers.sh contains:
>> TYPE="FreeBSD"
>> REVISION="9.2"
>> /etc/hosts contains:
>> # $FreeBSD: release/9.2.0/etc/hosts 109997 2003-01-28 21:29:23Z
>> # dbaker $
>> and the kernel contains the new version:
>> # strings /boot/kernel/kernel | grep RELEASE|grep 9
>> @(#)FreeBSD 9.2-RELEASE-p4 #0: Tue Apr  8 18:08:22 UTC 2014
>> FreeBSD 9.2-RELEASE-p4 #0: Tue Apr  8 18:08:22 UTC 2014
>> 9.2-RELEASE-p4
>> However, uname somehow shows the wrong version:
>> # uname -a
>> FreeBSD localhost.localdomain 9.1-RELEASE FreeBSD 9.1-RELEASE #0
>> r243825: Tue Dec  4 09:23:10 UTC 2012     root at
>> farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>> So where does uname get the version number from?  Which file(s) might
>> not have been upgraded?  Thank you!
>There was a thread about it last october. I c&p part of my answer here:
>From uname and uname(3) man pages,
>"An environment variable composed of the string UNAME_ followed by any
> flag to the uname utility (except for -a) will allow the corresponding
> data to be set to the contents of the environment variable."
>The -a flag behave as though the options -m, -n, -r, -s, and -v were specified. Freebsd-update can modify /root/.profile or better, /etc/profile, adding those environment variables with correct and update values.

Thank you!  My current /etc/profile is the default one, its content is:

# $FreeBSD: release/9.2.0/etc/profile 208116 2010-05-15 17:49:56Z jilles $
... comments omitted here.
# mesg y
LANG=en_US.UTF-8;     export LANG
GDM_LANG=en_US.UTF-8;  export GDM_LANG

My /root/.profile is also the default one, its content is:

# $FreeBSD: release/9.2.0/etc/root/dot.profile 199243 2009-11-13 05:54:55Z ed $
export PATH
export HOME
export TERM
export PAGER

Do you want me to add the following to /etc/profile ?

UNAME_v="FreeBSD 9.2-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC"
export UNAME_v
export UNAME_r

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?

I also tried:

# unsetenv UNAME_r 

but "uname -r" still shows the incorrect "9.1-RELEASE" even though all other files mentioned above are in "9.2-RELEASE".

So still, where did uname get that incorrect version number?

More information about the freebsd-questions mailing list