Commit dc748cb2 authored by Tollef Fog Heen's avatar Tollef Fog Heen
Browse files

Merge tag 'v44' into upstream-fixes

systemd 44
parents e2ea61e3 16f1239e
......@@ -103,4 +103,6 @@ stamp-*
/Makefile
ltmain.sh
*.tar.xz
*.tar.gz
*.tar.bz2
libtool
......@@ -21,7 +21,7 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = po
LIBSYSTEMD_LOGIN_CURRENT=2
LIBSYSTEMD_LOGIN_REVISION=0
LIBSYSTEMD_LOGIN_REVISION=1
LIBSYSTEMD_LOGIN_AGE=2
LIBSYSTEMD_DAEMON_CURRENT=0
......@@ -29,11 +29,11 @@ LIBSYSTEMD_DAEMON_REVISION=1
LIBSYSTEMD_DAEMON_AGE=0
LIBSYSTEMD_ID128_CURRENT=0
LIBSYSTEMD_ID128_REVISION=2
LIBSYSTEMD_ID128_REVISION=3
LIBSYSTEMD_ID128_AGE=0
LIBSYSTEMD_JOURNAL_CURRENT=0
LIBSYSTEMD_JOURNAL_REVISION=2
LIBSYSTEMD_JOURNAL_REVISION=3
LIBSYSTEMD_JOURNAL_AGE=0
# Dirs of external packages
......@@ -468,7 +468,8 @@ libsystemd_basic_la_SOURCES = \
src/socket-util.c \
src/log.c \
src/ratelimit.c \
src/exit-status.c
src/exit-status.c \
src/utf8.c
libsystemd_basic_la_CFLAGS = \
$(AM_CFLAGS) \
......@@ -649,7 +650,8 @@ EXTRA_DIST += \
src/dbus-loop.h \
src/spawn-agent.h \
src/acl-util.h \
src/logs-show.h
src/logs-show.h \
src/utf8.h
MANPAGES = \
man/systemd.1 \
......@@ -672,6 +674,7 @@ MANPAGES = \
man/systemd.device.5 \
man/systemd.snapshot.5 \
man/systemd.exec.5 \
man/systemd.special.7 \
man/daemon.7 \
man/runlevel.8 \
man/telinit.8 \
......@@ -688,7 +691,11 @@ MANPAGES = \
man/machine-info.5 \
man/modules-load.d.5 \
man/sysctl.d.5 \
man/systemd-ask-password.1
man/systemd-ask-password.1 \
man/systemd-cat.1 \
man/systemd-machine-id-setup.1 \
man/systemd-journald.conf.5 \
man/systemd-journalctl.1
MANPAGES_ALIAS = \
man/reboot.8 \
......@@ -699,32 +706,23 @@ man/reboot.8: man/halt.8
man/poweroff.8: man/halt.8
man/init.1: man/systemd.1
if ENABLE_MANPAGES
dist_man_MANS = \
$(MANPAGES) \
$(MANPAGES_ALIAS)
nodist_man_MANS = \
man/systemd.special.7
XML_FILES = \
${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubst %.7,%.xml,${patsubst %.8,%.xml,$(MANPAGES)}}}}}
XML_IN_FILES = \
${patsubst %.1,%.xml.in,${patsubst %.3,%.xml.in,${patsubst %.5,%.xml.in,${patsubst %.7,%.xml.in,${patsubst %.8,%.xml.in,$(nodist_man_MANS)}}}}}
if ENABLE_MANPAGES
man_MANS = \
$(MANPAGES) \
$(MANPAGES_ALIAS)
dist_noinst_DATA = \
noinst_DATA = \
${XML_FILES:.xml=.html}
nodist_noinst_DATA = \
${XML_IN_FILES:.xml.in=.html}
endif
EXTRA_DIST += \
$(XML_FILES) \
$(XML_IN_FILES) \
${nodist_man_MANS:=.in} \
${XML_IN_FILES:.xml.in=.html.in}
endif
${XML_FILES:.xml=.html} \
$(MANPAGES) \
$(MANPAGES_ALIAS)
systemd_SOURCES = \
src/main.c
......@@ -2064,6 +2062,10 @@ MANPAGES_ALIAS += \
man/sd_login_monitor_get_fd.3 \
man/sd_session_get_uid.3 \
man/sd_session_get_seat.3 \
man/sd_session_get_service.3 \
man/sd_session_get_type.3 \
man/sd_session_get_class.3 \
man/sd_session_get_display.3 \
man/sd_pid_get_owner_uid.3 \
man/sd_pid_get_unit.3 \
man/sd_uid_is_on_seat.3 \
......@@ -2079,6 +2081,10 @@ man/sd_login_monitor_flush.3: man/sd_login_monitor_new.3
man/sd_login_monitor_get_fd.3: man/sd_login_monitor_new.3
man/sd_session_get_uid.3: man/sd_session_is_active.3
man/sd_session_get_seat.3: man/sd_session_is_active.3
man/sd_session_get_service.3: man/sd_session_is_active.3
man/sd_session_get_type.3: man/sd_session_is_active.3
man/sd_session_get_class.3: man/sd_session_is_active.3
man/sd_session_get_display.3: man/sd_session_is_active.3
man/sd_pid_get_owner_uid.3: man/sd_pid_get_session.3
man/sd_pid_get_unit.3: man/sd_pid_get_session.3
man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3
......@@ -2178,7 +2184,6 @@ CLEANFILES += \
$(nodist_systemunit_DATA) \
$(nodist_userunit_DATA) \
$(nodist_man_MANS) \
${XML_IN_FILES:.xml.in=.html} \
$(pkgconfigdata_DATA) \
$(pkgconfiglib_DATA) \
$(nodist_polkitpolicy_DATA) \
......@@ -2201,61 +2206,31 @@ XSLTPROC_PROCESS_MAN = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
XSLTPROC_PROCESS_MAN_IN = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o ${@:.in=} $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< && \
mv ${@:.in=} $@
XSLTPROC_PROCESS_HTML = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
XSLTPROC_PROCESS_HTML_IN = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(XSLTPROC) -o ${@:.in=} $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $< && \
mv ${@:.in=} $@
man/%.1: man/%.xml
$(XSLTPROC_PROCESS_MAN)
man/%.1.in: man/%.xml.in
$(XSLTPROC_PROCESS_MAN)
man/%.3: man/%.xml
$(XSLTPROC_PROCESS_MAN)
man/%.3.in: man/%.xml.in
$(XSLTPROC_PROCESS_MAN)
man/%.5: man/%.xml
$(XSLTPROC_PROCESS_MAN)
man/%.5.in: man/%.xml.in
$(XSLTPROC_PROCESS_MAN)
man/%.7: man/%.xml
$(XSLTPROC_PROCESS_MAN)
man/%.7.in: man/%.xml.in
$(XSLTPROC_PROCESS_MAN_IN)
man/%.8: man/%.xml
$(XSLTPROC_PROCESS_MAN)
man/%.8.in: man/%.xml.in
$(XSLTPROC_PROCESS_MAN_IN)
man/%.html: man/%.xml
$(XSLTPROC_PROCESS_HTML)
man/%.html.in: man/%.xml.in
$(XSLTPROC_PROCESS_HTML_IN)
CLEANFILES += \
$(dist_man_MANS) \
${nodist_man_MANS:=.in} \
${XML_FILES:.xml=.html} \
${XML_IN_FILES:.xml.in=.html.in}
${XML_FILES:.xml=.html}
endif
DBUS_PREPROCESS = $(CPP) -P $(DBUS_CFLAGS) -imacros dbus/dbus-protocol.h
......@@ -2517,8 +2492,8 @@ DISTCHECK_CONFIGURE_FLAGS = \
--with-dbusinterfacedir=$$dc_install_base/$(dbusinterfacedir) \
--with-udevrulesdir=$$dc_install_base/$(udevrulesdir) \
--with-pamlibdir=$$dc_install_base/$(pamlibdir) \
--with-rootprefix=$$dc_install_base/$(prefix)
--with-rootprefix=$$dc_install_base \
--disable-split-usr
upload: all distcheck
cp -v systemd-$(VERSION).tar.xz /home/lennart/git.fedora/systemd/
......
systemd System and Service Manager
CHANGES WITH 44:
* This is mostly a bugfix release
* Support optional initialization of the machine ID from the
KVM or container configured UUID.
* Support immediate reboots with "systemctl reboot -ff"
* Show /etc/os-release data in systemd-analyze output
* Many bugfixes for the journal, including endianess fixes and
ensuring that disk space enforcement works
* sd-login.h is C++ comptaible again
* Extend the /etc/os-release format on request of the Debian
folks
* We now refuse non-UTF8 strings used in various configuration
and unit files. This is done to ensure we don't pass invalid
data over D-Bus or expose it elsewhere.
* Register Mimo USB Screens as suitable for automatic seat
configuration
* Read SELinux client context from journal clients in a race
free fashion
* Reorder configuration file lookup order. /etc now always
overrides /run in order to allow the administrator to always
and unconditionally override vendor supplied or
automatically generated data.
* The various user visible bits of the journal now have man
pages. We still lack man pages for the journal API calls
however.
* We now ship all man pages in HTML format again in the
tarball.
Contributions from: Dave Reisner, Dirk Eibach, Frederic
Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
Reding
CHANGES WITH 43:
* This is mostly a bugfix release
......
......@@ -2,9 +2,6 @@ Bugfixes:
* swap units that are activated by one name but shown in the kernel under another are semi-broken
* NM should pull in network.target (PENDING)
https://bugzilla.redhat.com/show_bug.cgi?id=692008
* make anaconda write timeout=0 for encrypted devices
* service: pid file reading after reload doesn't work, since we don't reset the pid variable
......@@ -21,26 +18,68 @@ Bugfixes:
Features:
* systemctl reboot -ff should trigger an immediate reboot
* journald: make configurable "store-on-var", "store-on-run", "dont-store", "auto"
(store-persistent, store-volatile?)
* Add ConditionReadWriteFileSystem= so that systemd-sysctl doesn't get executed when /proc/sys is read-only
* unset container= and container_uuid= for child processes
* when bind mounting /etc/machine-id, do so from /run/machine-id
* introduce mix of BindTo and Requisite
* journalctl: show multiline log messages sanely, expand tabs, and show all valid utf8 messages
* introduce NeedsMounts= or so to create .mount dependencies automatically for a specific path
* add DeleteSocketsOnStop=yes|no option to socket units
* add shutdown inhibit API for usage by libvirt and friends
* journal: store euid in journal if it differs from uid
* support chrony in addition to ntpd in timedated
* journal: extend sd-journal.h logging calls to implicitly log function names/line numbers/...
* document crypttab(5)
* There's currently no way to cancel fsck (used to be possible via C-c or c on the console)
* hook up /dev/watchdog with main event loop for embedded, server uses
* when dumping cgroup contents, include main/control PID of a service, explicitly
* keep an eye on https://bugzilla.gnome.org/show_bug.cgi?id=670100
* D-Bus: always pass cred data along each message
* journal: work on https://fedoraproject.org/wiki/Features/systemd-journal
* journal: allow turning off logging entirely
* journal: sanely deal with entries which are larger than the individual file size, but where the componets would fit
* add command to systemctl to plot dependency graph as tree (see rhbz 795365)
* make logind reserve tty10 or so for text logins, so that gdm never picks it up
* add option to sockets to avoid activation. Instead just drop packets/connections, see http://cyberelk.net/tim/2012/02/15/portreserve-systemd-solution/
* isolate for getty is still broken, due to logind
* default unix qlen is too small (10). bump sysctl? add sockopt?
* support units generated by a generator and placed in /run/systemd/system/; the directory is
currently ignored because it is empty before the generatores are executed
* let 'systemctl reboot' called as non-root talk to logind instead of systemd, to get polkit
system policy in the loop of privilege checking, so normal users can possibly use /sbin/reboot
* Possibly, detect whether SysV init scripts can do reloading by looking for "echo Usage:" lines
* figure out whether we should leave dbus around during shutdown
* support closing all fds via RLIMIT_NOFILE instead of /proc, in order to make chroot stuff work.
* add interface to allow immediate rotation of the journal, and even flushing.
* don't log coredumps of PID 1 into the journal
* if a journal file is corrupt, rotate it and create a new one
* dbus: in fedora, make the machine a symlink to /etc/machine-id
* journald: reuse XZ context
......@@ -49,8 +88,6 @@ Features:
* write RPM spec macros for presets
* write man pages for systemd-cat
* journal: write man pages for API
* journal: OR matches are borked
......@@ -83,7 +120,7 @@ Features:
* support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
* allow per-entry control on /var vs. /run (think incognito browser mode)
* journal: allow per-entry control on /var vs. /run (think incognito browser mode)
* clean up session cgroups that remain after logout (think sshd), but eventually run empty
......@@ -95,15 +132,13 @@ Features:
* document that %% can be used to write % in a string that is specifier extended
* check utf8 everywhere
* when an instanced service exits, remove its parent cgroup too if possible.
* Make libselinux, libattr, libcap, libdl dependencies only of the tools which actually need them.
* as Tom Gundersen pointed out there's a always a dep loop if people use crypto file systems with random keys
* unset container= in PID1?
* unset container=, container_uuid= in PID1?
* automatically escape unit names passed on the service (i.e. think "systemctl start serial-getty.service@serial/by-path/jshdfjsdfhkjh" being automatically escaped as necessary.
......@@ -114,10 +149,6 @@ Features:
* add an option to make mounts private/shareable and so on, enable this for root by default
* internal restart counter for units (focus on auto-respawn)
* finer-grained auto-respawn settings (rate-limit)
* be able to specify a forced restart of service A where service B depends on, in case B
needs to be auto-respawned?
......@@ -127,15 +158,13 @@ Features:
* something like ConditionExec= or ExecStartPre= without failure state
* service restart retry configuration
* tmpfiles: apply "x" on "D" too (see patch from William Douglas)
* don't set $HOME in services unless requested
* hide PAM/TCPWrap options in fragment parser when compile time disabled
* when we automatically restart a service, ensure we retsart its rdeps, too.
* when we automatically restart a service, ensure we restart its rdeps, too.
* allow Type=simple with PIDFile=
https://bugzilla.redhat.com/show_bug.cgi?id=723942
......@@ -243,8 +272,6 @@ Features:
* io priority during initialization
* if a service fails too often, make the service enter failed mode, and the socket, too.
* systemctl list-jobs - show dependencies
* add systemctl switch to dump transaction without executing it
......@@ -265,13 +292,10 @@ External:
* systemd --user
PR_SET_CHILD_REAPER patch: https://lkml.org/lkml/2011/7/28/426
(patch in linux-next, on the way to the next kernel)
* fix alsa mixer restore to not print error when no config is stored
* udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
* snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
* gnome-shell python script/glxinfo/is-accelerated must die
* make cryptsetup lower --iter-time
......@@ -287,9 +311,6 @@ External:
* patch kernel for cpu feature modalias for autoloading aes/kvm/...
(patches in linux-next, on the way to the next kernel)
* kernel: add /proc/sys file exposing CAP_LAST_CAP? sysconf?
merged: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=73efc0394e148d0e15583e13712637831f926720
* kernel: add device_type = "fb", "fbcon" to class "graphics"
Regularly:
......
......@@ -17,7 +17,7 @@
AC_PREREQ(2.63)
AC_INIT([systemd],[43],[systemd-devel@lists.freedesktop.org])
AC_INIT([systemd],[44],[systemd-devel@lists.freedesktop.org])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
......@@ -335,6 +335,7 @@ if test "x$enable_logind" != "xno"; then
have_logind=yes
fi
AM_CONDITIONAL(ENABLE_LOGIND, [test "$have_logind" = "yes"])
AS_IF([test "$have_logind" = "yes"], [ AC_DEFINE(HAVE_LOGIND, [1], [Logind support available]) ])
have_hostnamed=no
AC_ARG_ENABLE(hostnamed, AS_HELP_STRING([--disable-hostnamed], [disable hostname daemon]))
......@@ -395,7 +396,7 @@ AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
AC_PATH_PROG([M4], [m4])
AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinuxi, mandriva, meego, mageia, angstrom or other]))
AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, mandriva, meego, mageia, angstrom or other]))
if test "z$with_distro" = "z"; then
if test "$cross_compiling" = yes; then
AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)])
......@@ -654,5 +655,5 @@ AC_MSG_RESULT([
D-Bus system dir: ${with_dbussystemservicedir}
D-Bus interfaces dir: ${with_dbusinterfacedir}
Split /usr: ${enable_split_usr}
Build man pages: ${have_manpages}
man pages: ${have_manpages}
])
systemd.special.7.in
systemd.special.html.in
......@@ -46,9 +46,9 @@
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/binfmt.d/*.conf</filename></para>
<para><filename>/etc/binfmt.d/*.conf</filename></para>
<para><filename>/run/binfmt.d/*.conf</filename></para>
<para><filename>/usr/lib/binfmt.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
......
......@@ -81,6 +81,11 @@
a more useful replacement for the
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call POSIX specifies.</para>
<para>The
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool may be used by installer tools to initialize the
machine ID at install time.</para>
</refsect1>
<refsect1>
......@@ -127,6 +132,7 @@ id[8] = (id[8] &amp; 0x3F) | 0x80;</programlisting>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
......
......@@ -130,7 +130,7 @@
<refsect1>
<title>Example</title>
<programlisting>PRETTY_NAME="Lennart's Computer"
<programlisting>PRETTY_HOSTNAME="Lennart's Computer"
ICON_NAME=computer-laptop</programlisting>
</refsect1>
......
......@@ -46,9 +46,9 @@
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/modules-load.d/*.conf</filename></para>
<para><filename>/etc/modules-load.d/*.conf</filename></para>
<para><filename>/run/modules-load.d/*.conf</filename></para>
<para><filename>/usr/lib/modules-load.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
......
......@@ -85,6 +85,11 @@
<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
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
the <ulink
......@@ -144,6 +149,46 @@
<literal>ID=debian</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ID_LIKE=</varname></term>
<listitem><para>A space-separated list
of operating system identifiers in the
same syntax as the
<varname>ID=</varname> 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 <varname>ID=</varname> 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
<literal>ID=centos</literal> an
assignment of <literal>ID_LIKE="rhel
fedora"</literal> would be
appropriate. For an operating system
with <literal>ID=ubuntu</literal> an
assignment of
<literal>ID_LIKE=debian</literal> is
appropriate.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VERSION_ID=</varname></term>
......@@ -179,7 +224,7 @@
<listitem><para>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
......@@ -204,19 +249,77 @@
<literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>HOME_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
<listitem><para>Links to resources on
the Internet related the operating
system. <varname>HOME_URL=</varname>
should refer to the homepage of the of
operating system, or alternatively
some homepage of the specific version
of the operating
system. <varname>SUPPORT_URL=</varname>
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. <varname>BUG_REPORT_URL=</varname>
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 <ulink
url="https://tools.ietf.org/html/rfc3986">RFC3986
format</ulink>, and should be
<literal>http:</literal> or
<literal>https:</literal> URLs, and
possibly <literal>mailto:</literal> or
<literal>tel:</literal>. 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:
<literal>HOME_URL="https://fedoraproject.org/"</literal>
and
<literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal></para></listitem>
</varlistentry>
</variablelist>
<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
the user use the PRETTY_NAME field.</para>
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