[systemd-commits] 2 commits - man/os-release.xml

Lennart Poettering lennart at kemper.freedesktop.org
Tue Feb 14 08:31:57 PST 2012


 man/os-release.xml |  137 +++++++++++++++++++++++++++++++++++------------------
 1 file changed, 91 insertions(+), 46 deletions(-)

New commits:
commit 88ce72297a59e82601c47e00559454f343d7dc56
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Feb 14 17:25:55 2012 +0100

    man: define more precisely the format of /etc/os-release

diff --git a/man/os-release.xml b/man/os-release.xml
index 7f7ce14..7d79972 100644
--- a/man/os-release.xml
+++ b/man/os-release.xml
@@ -58,18 +58,37 @@
                 contains operating system identification data.</para>
 
                 <para>The basic file format of
-                <filename>os-release</filename> is a
-                newline-separated list of environment-like
-                shell-compatible variable assignments. It is possible
-                to source the configuration from shell scripts,
-                however, beyond mere variable assignments no shell
-                features are supported, allowing applications to read
-                the file without implementing a shell compatible
-                execution engine.</para>
+                <filename>os-release</filename> is a newline-separated
+                list of environment-like shell-compatible variable
+                assignments. It is possible to source the
+                configuration from shell scripts, however, beyond mere
+                variable assignments no shell features are supported
+                (this means variable expansion is explicitly not
+                supported), allowing applications to read the file
+                without implementing a shell compatible execution
+                engine. Variable assignment values should be enclosed
+                in double or single quotes if they include spaces,
+                semicolons or other special characters outside of A-Z,
+                a-z, 0-9. All strings should be in UTF-8 format, and
+                non-printable characters should not be used. If double
+                or single quotes or backslashes are to be used within
+                variable assignments they should be escaped with
+                backslashes, following shell style. It is not
+                supported to concatenate multiple individually quoted
+                strings. Lines beginning with "#" shall be ignored as
+                comments.</para>
 
                 <para><filename>/etc/os-release</filename> contains
                 data that is defined by the operating system vendor
                 and should not be changed by the administrator.</para>
+
+                <para>As this file only encodes names and identifiers
+                it should not be localized.</para>
+
+                <para>For a longer rationale for
+                <filename>/etc/os-release</filename> please refer to
+                the <ulink
+                url="http://0pointer.de/blog/projects/os-release">Announcement of <filename>/etc/os-release</filename></ulink>.</para>
         </refsect1>
 
         <refsect1>
@@ -99,27 +118,30 @@
 
                                 <listitem><para>A string identifying
                                 the operating system version,
-                                excluding any OS name information, and
-                                suitable for presentation to the
-                                user. This field is optional. Example:
+                                excluding any OS name information,
+                                possibly including a release code
+                                name, and suitable for presentation to
+                                the user. This field is
+                                optional. Example:
                                 <literal>VERSION=17</literal> or
-                                <literal>VERSION="17
-                                (Beefy Miracle)"</literal>.</para></listitem>
+                                <literal>VERSION="17 (Beefy
+                                Miracle)"</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>ID=</varname></term>
 
                                 <listitem><para>A lower-case string
-                                (no spaces or other characters outside of
-                                0-9, a-z, ".", "_" and "-") identifying
-                                the operating system, excluding any
-                                version information and suitable for
-                                processing by scripts or usage in
-                                generated file names. If not set
-                                defaults to
+                                (no spaces or other characters outside
+                                of 0-9, a-z, ".", "_" and "-")
+                                identifying the operating system,
+                                excluding any version information and
+                                suitable for processing by scripts or
+                                usage in generated file names. If not
+                                set defaults to
                                 <literal>ID=linux</literal>. Example:
-                                <literal>ID=fedora</literal>.</para></listitem>
+                                <literal>ID=fedora</literal> or
+                                <literal>ID=debian</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -130,7 +152,7 @@
                                 characters outside of 0-9, a-z, ".",
                                 "_" and "-") identifying the operating
                                 system version, excluding any OS name
-                                information or release code names, and
+                                information or release code name, and
                                 suitable for processing by scripts or
                                 usage in generated file names. This
                                 field is optional. Example:
@@ -144,11 +166,12 @@
                                 <listitem><para>A pretty operating
                                 system name in a format suitable for
                                 presentation to the user. May or may
-                                not contain an OS version of some
-                                kind, as suitable. If not set defaults
-                                to <literal>PRETTY_NAME="Linux"</literal>. Example:
-                                <literal>PRETTY_NAME="Fedora 17
-                                (Beefy Miracle)"</literal>.</para></listitem>
+                                not contain a release code name or OS
+                                version of some kind, as suitable. If
+                                not set defaults to
+                                <literal>PRETTY_NAME="Linux"</literal>. Example:
+                                <literal>PRETTY_NAME="Fedora 17 (Beefy
+                                Miracle)"</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -202,7 +225,7 @@
                 <programlisting>NAME=Fedora
 VERSION="17 (Beefy Miracle)"
 ID=fedora
-VERSION_ID=15
+VERSION_ID=17
 PRETTY_NAME="Fedora 17 (Beefy Miracle)"
 ANSI_COLOR="0;34"
 CPE_NAME="cpe:/o:fedoraproject:fedora:17"</programlisting>

commit f8045772bd4e555a486fc9f440c80c9fad006fb7
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Feb 14 17:01:49 2012 +0100

    man: document CPE field in os-release file

diff --git a/man/os-release.xml b/man/os-release.xml
index f503b23..7f7ce14 100644
--- a/man/os-release.xml
+++ b/man/os-release.xml
@@ -85,10 +85,10 @@
 
                                 <listitem><para>A string identifying
                                 the operating system, without a
-                                version string, and not necessarily
-                                suitable for presentation to the
-                                user. If not set defaults to
-                                <literal>Linux</literal>. Example:
+                                version component, and suitable for
+                                presentation to the user. If not set
+                                defaults to
+                                <literal>NAME=Linux</literal>. Example:
                                 <literal>NAME=Fedora</literal> or
                                 <literal>NAME="Debian
                                 GNU/Linux"</literal>.</para></listitem>
@@ -99,25 +99,26 @@
 
                                 <listitem><para>A string identifying
                                 the operating system version,
-                                excluding any name information and
+                                excluding any OS name information, and
                                 suitable for presentation to the
-                                user. Example:
-                                <literal>VERSION=15</literal> or
-                                <literal>VERSION="15
-                                (Rawhide)"</literal>.</para></listitem>
+                                user. This field is optional. Example:
+                                <literal>VERSION=17</literal> or
+                                <literal>VERSION="17
+                                (Beefy Miracle)"</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>ID=</varname></term>
 
                                 <listitem><para>A lower-case string
-                                (no spaces) identifying the operating
-                                system, excluding any version
-                                information and suitable for
+                                (no spaces or other characters outside of
+                                0-9, a-z, ".", "_" and "-") identifying
+                                the operating system, excluding any
+                                version information and suitable for
                                 processing by scripts or usage in
                                 generated file names. If not set
                                 defaults to
-                                <literal>linux</literal>. Example:
+                                <literal>ID=linux</literal>. Example:
                                 <literal>ID=fedora</literal>.</para></listitem>
                         </varlistentry>
 
@@ -125,11 +126,16 @@
                                 <term><varname>VERSION_ID=</varname></term>
 
                                 <listitem><para>A lower-case string
-                                (mostly numeric, no spaces) identifying the
-                                operating system version, excluding
-                                any name information and suitable for
-                                processing by scripts or usage in generated file names. Example:
-                                <literal>VERSION_ID=15</literal>.</para></listitem>
+                                (mostly numeric, no spaces or other
+                                characters outside of 0-9, a-z, ".",
+                                "_" and "-") identifying the operating
+                                system version, excluding any OS name
+                                information or release code names, and
+                                suitable for processing by scripts or
+                                usage in generated file names. This
+                                field is optional. Example:
+                                <literal>VERSION_ID=17</literal> or
+                                <literal>VERSION_ID=11.04</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -140,9 +146,9 @@
                                 presentation to the user. May or may
                                 not contain an OS version of some
                                 kind, as suitable. If not set defaults
-                                to <literal>Linux</literal>. Example:
-                                <literal>PRETTY_NAME="Fedora 15
-                                (Rawhide)"</literal>.</para></listitem>
+                                to <literal>PRETTY_NAME="Linux"</literal>. Example:
+                                <literal>PRETTY_NAME="Fedora 17
+                                (Beefy Miracle)"</literal>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -154,15 +160,30 @@
                                 should be specified as string suitable
                                 for inclusion in the ESC [ m
                                 ANSI/ECMA-48 escape code for setting
-                                graphical rendition. Example:
-                                <literal>ANSI_COLOR="0;31"</literal> for
-                                red, or
-                                <literal>ANSI_COLOR="1;34"</literal> for
-                                light blue.</para></listitem>
+                                graphical rendition. This field is
+                                optional. Example:
+                                <literal>ANSI_COLOR="0;31"</literal>
+                                for red, or
+                                <literal>ANSI_COLOR="1;34"</literal>
+                                for light blue.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>CPE_NAME=</varname></term>
+
+                                <listitem><para>A CPE name for the
+                                operating system, following the <ulink
+                                url="http://cpe.mitre.org/specification/">Common
+                                Platform Enumeration
+                                Specification</ulink> as proposed by
+                                the MITRE Corporation. This field
+                                is optional. Example:
+                                <literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
+                                </para></listitem>
                         </varlistentry>
                 </variablelist>
 
-                <para>If you are reading this file from code or a
+                <para>If you are reading this file from C code or a
                 shell script to determine the OS or a specific version
                 of it, use the ID and VERSION_ID fields. When looking
                 for an OS identification string for presentation to
@@ -179,11 +200,12 @@
                 <title>Example</title>
 
                 <programlisting>NAME=Fedora
-VERSION="15 (Rawhide)"
+VERSION="17 (Beefy Miracle)"
 ID=fedora
 VERSION_ID=15
-PRETTY_NAME="Fedora 15 (Rawhide)"
-ANSI_COLOR="0;34"</programlisting>
+PRETTY_NAME="Fedora 17 (Beefy Miracle)"
+ANSI_COLOR="0;34"
+CPE_NAME="cpe:/o:fedoraproject:fedora:17"</programlisting>
         </refsect1>
 
         <refsect1>



More information about the systemd-commits mailing list