X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fos-release.xml;h=a5f1a917a8eb70e924c86526acfcec99ebcf283a;hb=2028f1cd928142fd57fa63464f63102373c72bbc;hp=b5f42b2eeccef7092669ec4609f9a32a3b9c94e7;hpb=6bd212771129d00cf7b42d6774a6b81547569384;p=elogind.git
diff --git a/man/os-release.xml b/man/os-release.xml
index b5f42b2ee..a5f1a917a 100644
--- a/man/os-release.xml
+++ b/man/os-release.xml
@@ -9,16 +9,16 @@
Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Lesser General Public License for more details.
- You should have received a copy of the GNU General Public License
+ You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see .
-->
@@ -58,23 +58,42 @@
contains operating system identification data.
The basic file format of
- os-release 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.
+ os-release 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.
/etc/os-release contains
data that is defined by the operating system vendor
and should not be changed by the administrator.
- Depending on the operating system other
- configuration files might be checked for OS
- identification as well, however only as
- fallback.
+ As this file only encodes names and identifiers
+ it should not be localized.
+
+ The file /etc/os-release might
+ be a symlink to another file, but it is important that
+ the file is available from earliest boot on, and hence
+ must be located on the root file system.
+
+ For a longer rationale for
+ /etc/os-release please refer to
+ the Announcement of /etc/os-release.
@@ -90,10 +109,10 @@
A string identifying
the operating system, without a
- version string, and not necessarily
- suitable for presentation to the
- user. If not set defaults to
- Linux. Example:
+ version component, and suitable for
+ presentation to the user. If not set
+ defaults to
+ NAME=Linux. Example:
NAME=Fedora or
NAME="Debian
GNU/Linux".
@@ -104,35 +123,86 @@
A string identifying
the operating system version,
- excluding any name information and
- suitable for presentation to the
- user. Example:
- VERSION=15 or
- VERSION="15
- (Rawhide)".
+ excluding any OS name information,
+ possibly including a release code
+ name, and suitable for presentation to
+ the user. This field is
+ optional. Example:
+ VERSION=17 or
+ VERSION="17 (Beefy
+ Miracle)".
ID=
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. If
- not set defaults to
- linux. Example:
- ID=fedora.
+ suitable for processing by scripts or
+ usage in generated file names. If not
+ set defaults to
+ ID=linux. Example:
+ ID=fedora or
+ ID=debian.
+
+
+
+ ID_LIKE=
+
+ A space-separated list
+ of operating system identifiers in the
+ same syntax as the
+ ID= setting. Should
+ list identifiers of operating systems
+ that are closely related to the local
+ operating system in regards to
+ packaging and programming interfaces,
+ for example listing one or more
+ OS identifiers the local
+ OS is a derivative from. An
+ OS should generally only list other OS
+ identifiers it itself is a derivative
+ from, and not any OSes that
+ are derived from it, but symmetric
+ relationships are possible. Build
+ scripts and similar should check this
+ variable if they need to identify the
+ local operating system and the value
+ of ID= is not
+ recognized. Operating systems should
+ be listed in order of how closely the
+ local operating system relates to the
+ listed ones, starting with the
+ closest. This field is
+ optional. Example: for an operating
+ system with
+ ID=centos an
+ assignment of ID_LIKE="rhel
+ fedora" would be
+ appropriate. For an operating system
+ with ID=ubuntu an
+ assignment of
+ ID_LIKE=debian is
+ appropriate.
VERSION_ID=
A lower-case string
- (mostly numeric) identifying the
- operating system version, excluding
- any name information and suitable for
- processing by scripts. Example:
- VERSION_ID=15.
+ (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 name, and
+ suitable for processing by scripts or
+ usage in generated file names. This
+ field is optional. Example:
+ VERSION_ID=17 or
+ VERSION_ID=11.04.
@@ -141,11 +211,12 @@
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 Linux. Example:
- PRETTY_NAME=Fedora 15
- (Rawhide).
+ not contain a release code name or OS
+ version of some kind, as suitable. If
+ not set defaults to
+ PRETTY_NAME="Linux". Example:
+ PRETTY_NAME="Fedora 17 (Beefy
+ Miracle)".
@@ -153,47 +224,126 @@
A suggested
presentation color when showing the
- distribution name on the console. This
+ OS name on the console. This
should be specified as string suitable
for inclusion in the ESC [ m
ANSI/ECMA-48 escape code for setting
- graphical rendition. Example:
- ANSI_COLOR=0;31 for
- red, or
- ANSI_COLOR=1;34 for
- light blue.
+ graphical rendition. This field is
+ optional. Example:
+ ANSI_COLOR="0;31"
+ for red, or
+ ANSI_COLOR="1;34"
+ for light blue.
+
+
+
+ CPE_NAME=
+
+ A CPE name for the
+ operating system, following the Common
+ Platform Enumeration
+ Specification as proposed by
+ the MITRE Corporation. This field
+ is optional. Example:
+ CPE_NAME="cpe:/o:fedoraproject:fedora:17"
+
+
+
+
+ HOME_URL=
+ SUPPORT_URL=
+ BUG_REPORT_URL=
+
+ Links to resources on
+ the Internet related the operating
+ system. HOME_URL=
+ should refer to the homepage of the of
+ operating system, or alternatively
+ some homepage of the specific version
+ of the operating
+ system. SUPPORT_URL=
+ should refer to the main support page
+ for the operating system, if there is
+ any. This is primarily intended for
+ operating systems which vendors
+ provide support
+ for. BUG_REPORT_URL=
+ should refer to the main bug reporting
+ page for the operating system, if
+ there is any. This is primarily
+ intended for operating systems that
+ rely on community QA. These settings
+ are optional, and providing only some
+ of these settings is common. These
+ URLs are intended to be exposed in
+ "About this system" UIs behind links
+ with captions such as "About this
+ Operating System", "Obtain Support"
+ resp. "Report a Bug". The values should
+ be in RFC3986
+ format, and should be
+ http: or
+ https: URLs, and
+ possibly mailto: or
+ tel:. Only one URL
+ shall be listed in each setting. If
+ multiple resources need to be
+ referenced it is recommended to
+ provide an online landing page linking
+ all available resources. Examples:
+ HOME_URL="https://fedoraproject.org/"
+ and
+ BUG_REPORT_URL="https://bugzilla.redhat.com/"
+
+
- If you interpreting this file from code or a
- shell script, use the ID and VERSION_ID fields. When
- looking for an OS identification string for
- presentation to the user use the PRETTY_STRING
- field.
+ 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, possibly with
+ ID_LIKE as fallback for ID. When looking for an OS
+ identification string for presentation to the user use
+ the PRETTY_NAME field.
Note that operating system vendors may choose
not to provide version information, for example to
- accomodate for rolling releases. In this case VERSION
+ accommodate for rolling releases. In this case VERSION
and VERSION_ID may be unset. Applications should not
rely on these fields to be set.
+
+ Operating system vendors may extend the file
+ format and introduce new fields. It is highly
+ recommended to prefix new fields with an OS specific
+ name in order to avoid name clashes. Applications
+ reading this file must ignore unknown fields. Example:
+ DEBIAN_BTS="debbugs://bugs.debian.org/"
Example
NAME=Fedora
-VERSION=15 (Rawhide)
+VERSION="17 (Beefy Miracle)"
ID=fedora
-VERSION_ID=15
-PRETTY_NAME=Fedora 15 (Rawhide)
-ANSI_COLOR=0;34
+VERSION_ID=17
+PRETTY_NAME="Fedora 17 (Beefy Miracle)"
+ANSI_COLOR="0;34"
+CPE_NAME="cpe:/o:fedoraproject:fedora:17"
+HOME_URL="https://fedoraproject.org/"
+BUG_REPORT_URL="https://bugzilla.redhat.com/"
See Also
systemd1,
- lsb_release1
+ lsb_release1,
+ hostname5,
+ machine-id5,
+ machine-info5