[lsb-discuss] Re: New uname option to query exact OS distribution

Dr. Giovanni A. Orlando gorlando at futuretg.com
Sun Aug 22 21:11:42 PDT 2004


Markus Kuhn wrote:

>Feature proposal for POSIX uname:
>  
>
Hi,

    I like this proposal, but I prefer to maintain "-o" (OS) instead of 
"-d" (Distro).

    However, when approved must be POSIX complaint.

Thanks,
Giovanni

>At present, the 'uname -o' command simply gives GNU/Linux for any of the
>many Linux distributions. Since these distributions differ often very
>significantly, it would be useful if uname could also identify the OS
>distribution and version that it came with. I believe, the granularity
>of the fields provided traditionally by uname is no longer sufficient
>and additional fields are necessary to distinguish between exact
>distribution variants of the same operating system. The presence of the
>lsb_release in the LSB Core specification is an indication that uname as
>currently defined by POSIX no longer fulfills its role adequately.
>
>I propose to review uname and extend it appropriately such that other
>new non-POSIX OS identification mechanisms such as lsb_release become
>unnecessary. As a start, I suggest to add new command line options to
>uname to distinguish between operating system distributions:
>
>For example, this could look like:
>
>$ uname -d
>SuSE Linux Professional 9.1 (DVD 32-bit)
>$ uname -d
>Red Hat Linux 9
>
>The information could be split up further into four fields:
>
>  - DISTRIB_VENDOR. This is the commonly used colloquial shortname of
>    the vendor or organization that prepared the installable OS
>    distribution. Colloquial should mean that this name should be free
>    of legal designators (i.e. use "Sun" and not "Sun Microsystems Inc.").
>    (e.g. "SuSE", "Red Hat", "Novell", "Sun", "IBM", "Mandrake", "Debian")
>
>  - DISTRIB_PRODUCT: This is the product name, without the vendor
>    name (which typically precedes it immediately), and also without the
>    version number (which typically follows immediately afterwards).
>    (e.g. "Linux", "Linux Professional", "Enterprise Server",
>    "Terminal Server", "Home Edition")
>
>  - DISTRIB_RELEASE: Typically a dot-separated list of integer
>    numbers. Where this is a release date instead of a version number,
>    the ISO 8601 notation should be used.
>    (e.g., "8", "9.1", "2004-12-31")
>
>  - DISTRIB_ATTRIBUTES (optional): This is a list of optional attributes
>    such as CPU type, installation source medium, regional variant, etc.
>    that distinguish several available variants of the same product version.
>    The individual attribute in this list should not contain any whitespace
>    or parenthesis and should be separated by a single whitespace.
>    (e.g., "DVD 32-bit", "FTP i586", "CD Amiga nocrypto")
>
>These fields can be made individually accessable:
>
>$ uname -d
>SuSE Linux Professional 9.1 (DVD 32-bit)
>$ uname -dv
>SuSE
>$ uname -dp
>Linux Professional
>$ uname -dr
>9.1
>$ uname -da
>DVD 32-bit
>
>The suggested output format is very simple:
>
>If DISTRIB_ATTRIBUTES is non-empty
>
>  "%s %s %s (%s)\n", DISTRIB_VENDOR, DISTRIB_PRODUCT, DISTRIB_RELEASE, DISTRIB_ATTRIBUTES
>
>otherwise
>
>  "%s %s %s\n", DISTRIB_VENDOR, DISTRIB_PRODUCT, DISTRIB_RELEASE
>
>Note: I deliberately did not include in this proposal an extra field for
>a release code name (as can be queried via 'lsb_release -c'). Most
>vendors do not use or publish such release project code names. They also
>add no information beyond DISTRIB_RELEASE and lack the temporal ordering
>implied by a version number.
>
>Suggested implementation for uname in GNU coreutils:
>
>There is little point in trying to autodetect this, as there is no
>portable and predictable way yet to find out this information (uname -d
>is meant to become exactly that). The person preparing uname for
>inclusion into a distribution package will have to manually provide
>values for these four fields in a configuration file. To ensure that
>this is not forgotten, the uname distribution should refuse to compile
>out of the box, until these values have been configured.
>
>Related files:
>
>  /etc/*-release, /etc/issue, /etc/issue.net, /etc/motd, /usr/bin/lsb_release
>
>Related specifications:
>
>  - http://www.opengroup.org/onlinepubs/009695399/utilities/uname.html
>  - http://www.opengroup.org/onlinepubs/009695399/functions/uname.html
>  - http://www.linuxbase.org/spec/booksets/LSB-Core/LSB-Core.html#LSBRELEASE
>  - http://cvs.openpkg.org/openpkg-src/openpkg/platform
>
>Markus
>
>  
>


-- 

-- 

--
Check FT Websites ... 
http://www.futuretg.com  - ftp://ftp.futuretg.com
http://www.FTLinuxCourse.com
	http://www.FTLinuxCourse.com/Certification
http://www.rpmparadaise.org
http://GNULinuxUtilities.com
http://www.YourPersonalOperatingSystem.com

--





More information about the lsb-discuss mailing list