]> git.ipfire.org Git - thirdparty/systemd.git/blob - man/os-release.xml
relicense to LGPLv2.1 (with exceptions)
[thirdparty/systemd.git] / man / os-release.xml
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
3 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
4 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
5
6 <!--
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU Lesser General Public License as published by
13 the Free Software Foundation; either version 2.1 of the License, or
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 Lesser General Public License for more details.
20
21 You should have received a copy of the GNU Lesser General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23 -->
24
25 <refentry id="os-release">
26 <refentryinfo>
27 <title>os-release</title>
28 <productname>systemd</productname>
29
30 <authorgroup>
31 <author>
32 <contrib>Developer</contrib>
33 <firstname>Lennart</firstname>
34 <surname>Poettering</surname>
35 <email>lennart@poettering.net</email>
36 </author>
37 </authorgroup>
38 </refentryinfo>
39
40 <refmeta>
41 <refentrytitle>os-release</refentrytitle>
42 <manvolnum>5</manvolnum>
43 </refmeta>
44
45 <refnamediv>
46 <refname>os-release</refname>
47 <refpurpose>Operating system identification</refpurpose>
48 </refnamediv>
49
50 <refsynopsisdiv>
51 <para><filename>/etc/os-release</filename></para>
52 </refsynopsisdiv>
53
54 <refsect1>
55 <title>Description</title>
56
57 <para>The <filename>/etc/os-release</filename> file
58 contains operating system identification data.</para>
59
60 <para>The basic file format of
61 <filename>os-release</filename> is a newline-separated
62 list of environment-like shell-compatible variable
63 assignments. It is possible to source the
64 configuration from shell scripts, however, beyond mere
65 variable assignments no shell features are supported
66 (this means variable expansion is explicitly not
67 supported), allowing applications to read the file
68 without implementing a shell compatible execution
69 engine. Variable assignment values should be enclosed
70 in double or single quotes if they include spaces,
71 semicolons or other special characters outside of A-Z,
72 a-z, 0-9. All strings should be in UTF-8 format, and
73 non-printable characters should not be used. If double
74 or single quotes or backslashes are to be used within
75 variable assignments they should be escaped with
76 backslashes, following shell style. It is not
77 supported to concatenate multiple individually quoted
78 strings. Lines beginning with "#" shall be ignored as
79 comments.</para>
80
81 <para><filename>/etc/os-release</filename> contains
82 data that is defined by the operating system vendor
83 and should not be changed by the administrator.</para>
84
85 <para>As this file only encodes names and identifiers
86 it should not be localized.</para>
87
88 <para>The file <filename>/etc/os-release</filename> might
89 be a symlink to another file, but it is important that
90 the file is available from earliest boot on, and hence
91 must be located on the root file system.</para>
92
93 <para>For a longer rationale for
94 <filename>/etc/os-release</filename> please refer to
95 the <ulink
96 url="http://0pointer.de/blog/projects/os-release">Announcement of <filename>/etc/os-release</filename></ulink>.</para>
97 </refsect1>
98
99 <refsect1>
100 <title>Options</title>
101
102 <para>The following OS identifications parameters may be set using
103 <filename>/etc/os-release</filename>:</para>
104
105 <variablelist>
106
107 <varlistentry>
108 <term><varname>NAME=</varname></term>
109
110 <listitem><para>A string identifying
111 the operating system, without a
112 version component, and suitable for
113 presentation to the user. If not set
114 defaults to
115 <literal>NAME=Linux</literal>. Example:
116 <literal>NAME=Fedora</literal> or
117 <literal>NAME="Debian
118 GNU/Linux"</literal>.</para></listitem>
119 </varlistentry>
120
121 <varlistentry>
122 <term><varname>VERSION=</varname></term>
123
124 <listitem><para>A string identifying
125 the operating system version,
126 excluding any OS name information,
127 possibly including a release code
128 name, and suitable for presentation to
129 the user. This field is
130 optional. Example:
131 <literal>VERSION=17</literal> or
132 <literal>VERSION="17 (Beefy
133 Miracle)"</literal>.</para></listitem>
134 </varlistentry>
135
136 <varlistentry>
137 <term><varname>ID=</varname></term>
138
139 <listitem><para>A lower-case string
140 (no spaces or other characters outside
141 of 0-9, a-z, ".", "_" and "-")
142 identifying the operating system,
143 excluding any version information and
144 suitable for processing by scripts or
145 usage in generated file names. If not
146 set defaults to
147 <literal>ID=linux</literal>. Example:
148 <literal>ID=fedora</literal> or
149 <literal>ID=debian</literal>.</para></listitem>
150 </varlistentry>
151
152 <varlistentry>
153 <term><varname>ID_LIKE=</varname></term>
154
155 <listitem><para>A space-separated list
156 of operating system identifiers in the
157 same syntax as the
158 <varname>ID=</varname> setting. Should
159 list identifiers of operating systems
160 that are closely related to the local
161 operating system in regards to
162 packaging and programming interfaces,
163 for example listing one or more
164 OS identifiers the local
165 OS is a derivative from. An
166 OS should generally only list other OS
167 identifiers it itself is a derivative
168 from, and not any OSes that
169 are derived from it, but symmetric
170 relationships are possible. Build
171 scripts and similar should check this
172 variable if they need to identify the
173 local operating system and the value
174 of <varname>ID=</varname> is not
175 recognized. Operating systems should
176 be listed in order of how closely the
177 local operating system relates to the
178 listed ones, starting with the
179 closest. This field is
180 optional. Example: for an operating
181 system with
182 <literal>ID=centos</literal> an
183 assignment of <literal>ID_LIKE="rhel
184 fedora"</literal> would be
185 appropriate. For an operating system
186 with <literal>ID=ubuntu</literal> an
187 assignment of
188 <literal>ID_LIKE=debian</literal> is
189 appropriate.</para></listitem>
190 </varlistentry>
191
192 <varlistentry>
193 <term><varname>VERSION_ID=</varname></term>
194
195 <listitem><para>A lower-case string
196 (mostly numeric, no spaces or other
197 characters outside of 0-9, a-z, ".",
198 "_" and "-") identifying the operating
199 system version, excluding any OS name
200 information or release code name, and
201 suitable for processing by scripts or
202 usage in generated file names. This
203 field is optional. Example:
204 <literal>VERSION_ID=17</literal> or
205 <literal>VERSION_ID=11.04</literal>.</para></listitem>
206 </varlistentry>
207
208 <varlistentry>
209 <term><varname>PRETTY_NAME=</varname></term>
210
211 <listitem><para>A pretty operating
212 system name in a format suitable for
213 presentation to the user. May or may
214 not contain a release code name or OS
215 version of some kind, as suitable. If
216 not set defaults to
217 <literal>PRETTY_NAME="Linux"</literal>. Example:
218 <literal>PRETTY_NAME="Fedora 17 (Beefy
219 Miracle)"</literal>.</para></listitem>
220 </varlistentry>
221
222 <varlistentry>
223 <term><varname>ANSI_COLOR=</varname></term>
224
225 <listitem><para>A suggested
226 presentation color when showing the
227 OS name on the console. This
228 should be specified as string suitable
229 for inclusion in the ESC [ m
230 ANSI/ECMA-48 escape code for setting
231 graphical rendition. This field is
232 optional. Example:
233 <literal>ANSI_COLOR="0;31"</literal>
234 for red, or
235 <literal>ANSI_COLOR="1;34"</literal>
236 for light blue.</para></listitem>
237 </varlistentry>
238
239 <varlistentry>
240 <term><varname>CPE_NAME=</varname></term>
241
242 <listitem><para>A CPE name for the
243 operating system, following the <ulink
244 url="http://cpe.mitre.org/specification/">Common
245 Platform Enumeration
246 Specification</ulink> as proposed by
247 the MITRE Corporation. This field
248 is optional. Example:
249 <literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
250 </para></listitem>
251 </varlistentry>
252
253 <varlistentry>
254 <term><varname>HOME_URL=</varname></term>
255 <term><varname>SUPPORT_URL=</varname></term>
256 <term><varname>BUG_REPORT_URL=</varname></term>
257
258 <listitem><para>Links to resources on
259 the Internet related the operating
260 system. <varname>HOME_URL=</varname>
261 should refer to the homepage of the of
262 operating system, or alternatively
263 some homepage of the specific version
264 of the operating
265 system. <varname>SUPPORT_URL=</varname>
266 should refer to the main support page
267 for the operating system, if there is
268 any. This is primarily intended for
269 operating systems which vendors
270 provide support
271 for. <varname>BUG_REPORT_URL=</varname>
272 should refer to the main bug reporting
273 page for the operating system, if
274 there is any. This is primarily
275 intended for operating systems that
276 rely on community QA. These settings
277 are optional, and providing only some
278 of these settings is common. These
279 URLs are intended to be exposed in
280 "About this system" UIs behind links
281 with captions such as "About this
282 Operating System", "Obtain Support"
283 resp. "Report a Bug". The values should
284 be in <ulink
285 url="https://tools.ietf.org/html/rfc3986">RFC3986
286 format</ulink>, and should be
287 <literal>http:</literal> or
288 <literal>https:</literal> URLs, and
289 possibly <literal>mailto:</literal> or
290 <literal>tel:</literal>. Only one URL
291 shall be listed in each setting. If
292 multiple resources need to be
293 referenced it is recommended to
294 provide an online landing page linking
295 all available resources. Examples:
296 <literal>HOME_URL="https://fedoraproject.org/"</literal>
297 and
298 <literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal></para></listitem>
299 </varlistentry>
300
301
302 </variablelist>
303
304 <para>If you are reading this file from C code or a
305 shell script to determine the OS or a specific version
306 of it, use the ID and VERSION_ID fields, possibly with
307 ID_LIKE as fallback for ID. When looking for an OS
308 identification string for presentation to the user use
309 the PRETTY_NAME field.</para>
310
311 <para>Note that operating system vendors may choose
312 not to provide version information, for example to
313 accommodate for rolling releases. In this case VERSION
314 and VERSION_ID may be unset. Applications should not
315 rely on these fields to be set.</para>
316
317 <para>Operating system vendors may extend the file
318 format and introduce new fields. It is highly
319 recommended to prefix new fields with an OS specific
320 name in order to avoid name clashes. Applications
321 reading this file must ignore unknown fields. Example:
322 <literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal></para>
323 </refsect1>
324
325 <refsect1>
326 <title>Example</title>
327
328 <programlisting>NAME=Fedora
329 VERSION="17 (Beefy Miracle)"
330 ID=fedora
331 VERSION_ID=17
332 PRETTY_NAME="Fedora 17 (Beefy Miracle)"
333 ANSI_COLOR="0;34"
334 CPE_NAME="cpe:/o:fedoraproject:fedora:17"
335 HOME_URL="https://fedoraproject.org/"
336 BUG_REPORT_URL="https://bugzilla.redhat.com/"</programlisting>
337 </refsect1>
338
339 <refsect1>
340 <title>See Also</title>
341 <para>
342 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
343 <citerefentry><refentrytitle>lsb_release</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
344 <citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
345 <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
346 <citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>
347 </para>
348 </refsect1>
349
350 </refentry>