uname -a default options
Gordon Bergling
gbergling at gmail.com
Wed Aug 21 19:22:35 UTC 2019
Hi Rod,
after reading the POSIX spec [1] I agree that the default options behind „-a" can not be changed.
While reading the source of usr.bin/uname/uname.c I recognized that FreeBSD’s uname is getting its information from sysctl calls. Can you point me to right direction where in sys/ the sysctl „kern.version“ (KERN_VERSION internally) is set?
I would like create a small patch that changes „-v“
from "FreeBSD 12.0-STABLE r351343 GENERIC“
to „r351343 GENERIC“ for a further discussion.
Kind Regards,
Gordon
[1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/uname.html
> Am 17.08.2019 um 18:16 schrieb Rodney W. Grimes <freebsd-rwg at gndrsh.dnsmgr.net>:
>
>> On Sat, 2019-08-17 at 15:08 +0200, Gordon Bergling wrote:
>>> Hello List,
>>>
>>> "uname -a" is currently mapping the -a option to ?-mnrsv?, which
>>> results in something similar like
>>>
>>> $ uname -a
>>> FreeBSD lion.0xfce3.net <http://lion.0xfce3.net/> 12.0-STABLE FreeBSD
>>> 12.0-STABLE r350835 GENERIC amd64
>>>
>>> What would you think about reducing the option mapping for ?-a? to ?-
>>> vmn? , which would result in a less repetitive version string like
>>> the one below.
>>>
>>> $ uname -vmn
>>> lion.0xfce3.net <http://lion.0xfce3.net/> FreeBSD 12.0-STABLE r350835
>>> GENERIC amd64
>>>
>>> Adapting this would be trivial, but before I hack something together,
>>> I would like to get some feedback if such a change would be welcomed?
>>>
>>> Best regards,
>>>
>>> Gordon
>>>
>>
>> I think there are likely very many existing scripts in the world that
>> parse the output of uname -a and would break if the fields moved around
>> or disappeared.
>
> I agree that we should not change the output of uname -a, for one
> it is a POSIX spec'ed command, though I would not expect scripts
> to be parsing the output of -a, they should actually invoke the
> more specific item(s) they need and parse those, a much less error
> prone methods.
>
> I would however like to note that Linux (or atleast Ubuntu 19.04)
> has a man page that -a says "All of the below" and are infact returning
> more info than the Posix man page which says -a is -mnrsv
>
> rgrimes at mgmt:~$ uname -a
> Linux mgmt 5.1.0-rc2+ #14 SMP Sun Aug 4 09:23:12 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
> rgrimes at mgmt:~$ man uname
> rgrimes at mgmt:~$ uname -mnrsv
> Linux mgmt 5.1.0-rc2+ #14 SMP Sun Aug 4 09:23:12 UTC 2019 x86_64
> rgrimes at mgmt:~$ uname -m
> x86_64
> rgrimes at mgmt:~$ uname -n
> mgmt
> rgrimes at mgmt:~$ uname -r
> 5.1.0-rc2+
> rgrimes at mgmt:~$ uname -s
> Linux
> rgrimes at mgmt:~$ uname -v
> #14 SMP Sun Aug 4 09:23:12 UTC 2019
>
> FreeBSD:
> root {1003}# uname -a
> FreeBSD w530a.dnsmgr.net 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64
> root {1004}# uname -m
> amd64
> root {1005}# uname -n
> w530a.dnsmgr.net
> root {1006}# uname -r
> 12.0-RELEASE
> root {1007}# uname -s
> FreeBSD
> root {1008}# uname -v
> FreeBSD 12.0-RELEASE r341666 GENERIC
>
> So it is really our -v string that is full of redundant
> data that MAY want to be evaluated for trimming.
>
> --
> Rod Grimes rgrimes at freebsd.org
More information about the freebsd-hackers
mailing list