<refsynopsisdiv>
<para><filename>/etc/os-release</filename></para>
+ <para><filename>/usr/lib/os-release</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
- <para>The <filename>/etc/os-release</filename> file
- contains operating system identification data.</para>
+ <para>The <filename>/etc/os-release</filename> and
+ <filename>/usr/lib/os-release</filename> files contain
+ operating system identification data.</para>
<para>The basic file format of
<filename>os-release</filename> is a newline-separated
(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,
+ engine. Variable assignment values must 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>
+ a-z, 0-9. Shell special characters ("$", quotes,
+ backslash, backtick) must be escaped with backslashes,
+ following shell style. All strings should be in UTF-8
+ format, and non-printable characters should not be used.
+ It is not supported to concatenate multiple individually
+ quoted strings. Lines beginning with "#" shall be
+ ignored as comments.</para>
+
+ <para>The file <filename>/etc/os-release</filename>
+ takes precedence over
+ <filename>/usr/lib/os-release</filename>. Applications
+ should check for the former, and exclusively use its
+ data if it exists, and only fall back to
+ <filename>/usr/lib/os-release</filename> if it is
+ missing. Applications should not read data from both
+ files at the same
+ time. <filename>/usr/lib/os-release</filename> is the
+ recommended place to store OS release information as
+ part of vendor trees.
+ <filename>/etc/os-release</filename> should be a
+ relative symlink to
+ <filename>/usr/lib/os-release</filename>,
+ to provide compatibility with applications only
+ looking at <filename>/etc</filename>. A relative
+ symlink instead of an absolute symlink is
+ necessary to avoid breaking the link in a chroot or
+ initrd environment such as dracut.</para>
+
+ <para><filename>os-release</filename> contains data
+ that is defined by the operating system vendor and
+ should generally not be changed by the
+ administrator.</para>
<para>As this file only encodes names and identifiers
it should not be localized.</para>
- <para>The file <filename>/etc/os-release</filename> might
- be a symlink to another file, but it is important that
+ <para>The <filename>/etc/os-release</filename> and
+ <filename>/usr/lib/os-release</filename> files might
+ be symlinks to other files, but it is important that
the file is available from earliest boot on, and hence
must be located on the root file system.</para>
<para>For a longer rationale for
- <filename>/etc/os-release</filename> please refer to
+ <filename>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>
<title>Options</title>
<para>The following OS identifications parameters may be set using
- <filename>/etc/os-release</filename>:</para>
+ <filename>os-release</filename>:</para>
<variablelist>
<term><varname>HOME_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
+ <term><varname>PRIVACY_POLICY_URL=</varname></term>
<listitem><para>Links to resources on
the Internet related the operating
page for the operating system, if
there is any. This is primarily
intended for operating systems that
- rely on community QA. These settings
+ rely on community QA.
+ <varname>PRIVACY_POLICY_URL=</varname>
+ should refer to the main privacy policy
+ page for the operation system, if there
+ is any. 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",
- and "Report a Bug". The values should
- be in <ulink
+ "Report a Bug", or "Privacy Policy". The
+ values should be in <ulink
url="https://tools.ietf.org/html/rfc3986">RFC3986
format</ulink>, and should be
<literal>http:</literal> or