chiark / gitweb /
man: add hostnamed chassis type "embedded" to machine-info(5)
[elogind.git] / man / os-release.xml
index c1dd62f7156d2c1c978eab7229d522d0681cf565..b4cbeba39558f6f6ca86776a85ff8e061a87a600 100644 (file)
 
         <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>