[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