chiark / gitweb /
libsystemd: fix compiler warning in property_get_set_callbacks_run()
[elogind.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 209:
4
5         * A new component "systemd-networkd" has been added that can
6           be used to configure local network interfaces statically or
7           via DHCP. It is capable of bringing up bridges, VLANs, and
8           bonding. Currently, no hook-ups for interactive network
9           configuration are provided. Use this for your initrd,
10           container, embedded, or server setup if you need a simple,
11           yet powerful, network configuration solution. This
12           configuration subsystem is quite nifty, as it allows wildcard
13           hotplug matching in interfaces. For example, with a single
14           configuration snippet, you can configure that all Ethernet
15           interfaces showing up are automatically added to a bridge,
16           or similar. It supports link-sensing and more.
17
18         * A new tool "systemd-socket-proxyd" has been added which can
19           act as a bidirectional proxy for TCP sockets. This is
20           useful for adding socket activation support to services that
21           do not actually support socket activation, including virtual
22           machines and the like.
23
24         * Add a new tool to save/restore rfkill state on
25           shutdown/boot.
26
27         * Save/restore state of keyboard backlights in addition to
28           display backlights on shutdown/boot.
29
30         * udev learned a new SECLABEL{} construct to label device
31           nodes with a specific security label when they appear. For
32           now, only SECLABEL{selinux} is supported, but the syntax is
33           prepared for additional security frameworks.
34
35         * udev gained a new scheme to configure link-level attributes
36           from files in /etc/systemd/network/*.link. These files can
37           match against MAC address, device path, driver name and type,
38           and will apply attributes like the naming policy, link speed,
39           MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC
40           address assignment policy (randomized, ...).
41
42         * When the User= switch is used in a unit file, also
43           initialize $SHELL= based on the user database entry.
44
45         * systemd no longer depends on libdbus. All communication is
46           now done with sd-bus, systemd's low-level bus library
47           implementation.
48
49         * kdbus support has been added to PID 1 itself. When kdbus is
50           enabled, this causes PID 1 to set up the system bus and
51           enable support for a new ".busname" unit type that
52           encapsulates bus name activation on kdbus. It works a little
53           bit like ".socket" units, except for bus names. A new
54           generator has been added that converts classic dbus1 service
55           activation files automatically into native systemd .busname
56           and .service units.
57
58         * sd-bus: add a light-weight vtable implementation that allows
59           defining objects on the bus with a simple static const
60           vtable array of its methods, signals and properties.
61
62         * systemd will not generate or install static dbus
63           introspection data anymore to /usr/share/dbus-1/interfaces,
64           as the precise format of these files is unclear, and
65           nothing makes use of it.
66
67         * A proxy daemon is now provided to proxy clients connecting
68           via classic D-Bus AF_UNIX sockets to kdbus, to provide full
69           compatibility with classic D-Bus.
70
71         * A bus driver implementation has been added that supports the
72           classic D-Bus bus driver calls on kdbus, also for
73           compatibility purposes.
74
75         * A new API "sd-event.h" has been added that implements a
76           minimal event loop API built around epoll. It provides a
77           couple of features that direct epoll usage is lacking:
78           prioritization of events, scales to large numbers of timer
79           events, per-event timer slack (accuracy), system-wide
80           coalescing of timer events, exit handlers, watchdog
81           supervision support using systemd's sd_notify() API, child
82           process handling.
83
84         * A new API "sd-rntl.h" has been added that provides an API
85           around the route netlink interface of the kernel, similar in
86           style to "sd-bus.h".
87
88         * A new API "sd-dhcp-client.h" has been added that provides a
89           small DHCPv4 client-side implementation. This is used by
90           "systemd-networkd".
91
92         * There is a new kernel command line option
93           "systemd.restore_state=0|1". When set to "0", none of the
94           systemd tools will restore saved runtime state to hardware
95           devices. More specifically, the rfkill and backlight states
96           are not restored.
97
98         * The FsckPassNo= compatibility option in mount/service units
99           has been removed. The fstab generator will now add the
100           necessary dependencies automatically, and does not require
101           PID1's support for that anymore.
102
103         * journalctl gained a new switch, --list-boots, that lists
104           recent boots with their times and boot IDs.
105
106         * The various tools like systemctl, loginctl, timedatectl,
107           busctl, systemd-run, ... have gained a new switch "-M" to
108           connect to a specific, local OS container (as direct
109           connection, without requiring SSH). This works on any
110           container that is registered with machined, such as those
111           created by libvirt-lxc or nspawn.
112
113         * systemd-run and systemd-analyze also gained support for "-H"
114           to connect to remote hosts via SSH. This is particularly
115           useful for systemd-run because it enables queuing of jobs
116           onto remote systems.
117
118         * machinectl gained a new command "login" to open a getty
119           login in any local container. This works with any container
120           that is registered with machined (such as those created by
121           libvirt-lxc or nspawn), and which runs systemd inside.
122
123         * machinectl gained a new "reboot" command that may be used to
124           trigger a reboot on a specific container that is registered
125           with machined. This works on any container that runs an init
126           system of some kind.
127
128         * systemctl gained a new "list-timers" command to print a nice
129           listing of installed timer units with the times they elapse
130           next.
131
132         * Alternative reboot() parameters may now be specified on the
133           "systemctl reboot" command line and are passed to the
134           reboot() system call.
135
136         * systemctl gained a new --job-mode= switch to configure the
137           mode to queue a job with. This is a more generic version of
138           --fail, --irreversible, and --ignore-dependencies, which are
139           still available but not advertised anymore.
140
141         * /etc/systemd/system.conf gained new settings to configure
142           various default timeouts of units, as well as the default
143           start limit interval and burst. These may still be overridden
144           within each Unit.
145
146         * PID1 will now export on the bus profile data of the security
147           policy upload process (such as the SELinux policy upload to
148           the kernel).
149
150         * journald: when forwarding logs to the console, include
151           timestamps (following the setting in
152           /sys/module/printk/parameters/time).
153
154         * OnCalendar= in timer units now understands the special
155           strings "yearly" and "annually". (Both are equivalent)
156
157         * The accuracy of timer units is now configurable with the new
158           AccuracySec= setting. It defaults to 1min.
159
160         * A new dependency type JoinsNamespaceOf= has been added that
161           allows running two services within the same /tmp and network
162           namespace, if PrivateNetwork= or PrivateTmp= are used.
163
164         * A new command "cat" has been added to systemctl. It outputs
165           the original unit file of a unit, and concatenates the
166           contents of additional "drop-in" unit file snippets, so that
167           the full configuration is shown.
168
169         * systemctl now supports globbing on the various "list-xyz"
170           commands, like "list-units" or "list-sockets", as well as on
171           those commands which take multiple unit names.
172
173         * journalctl's --unit= switch gained support for globbing.
174
175         * All systemd daemons now make use of the watchdog logic so
176           that systemd automatically notices when they hang.
177
178         * If the $container_ttys environment variable is set,
179           getty-generator will automatically spawn a getty for each
180           listed tty. This is useful for container managers to request
181           login gettys to be spawned on as many ttys as needed.
182
183         * %h, %s, %U specifier support is not available anymore when
184           used in unit files for PID 1. This is because NSS calls are
185           not safe from PID 1. They stay available for --user
186           instances of systemd, and as special case for the root user.
187
188         * loginctl gained a new "--no-legend" switch to turn off output
189           of the legend text.
190
191         * The "sd-login.h" API gained three new calls:
192           sd_session_is_remote(), sd_session_get_remote_user(),
193           sd_session_get_remote_host() to query information about
194           remote sessions.
195
196         * The udev hardware database now also carries vendor/product
197           information of SDIO devices.
198
199         * The "sd-daemon.h" API gained a new sd_watchdog_enabled() to
200           determine whether watchdog notifications are requested by
201           the system manager.
202
203         * Socket-activated per-connection services now include a
204           short description of the connection parameters in the
205           description.
206
207         * tmpfiles gained a new "--boot" option. When this is not used,
208           only lines where the command character is not suffixed with
209           "!" are executed. When this option is specified, those
210           options are executed too. This partitions tmpfiles
211           directives into those that can be safely executed at any
212           time, and those which should be run only at boot (for
213           example, a line that creates /run/nologin).
214
215         * A new API "sd-resolve.h" has been added which provides a simple
216           asynchronous wrapper around glibc NSS host name resolution
217           calls, such as getaddrinfo(). In contrast to glibc's
218           getaddrinfo_a(), it does not use signals. In contrast to most
219           other asynchronous name resolution libraries, this one does
220           not reimplement DNS, but reuses NSS, so that alternate
221           host name resolution systems continue to work, such as mDNS,
222           LDAP, etc. This API is based on libasyncns, but it has been
223           cleaned up for inclusion in systemd.
224
225         * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h",
226           "sd-daemon.h" are no longer found in individual libraries
227           libsystemd-journal.so, libsystemd-login.so,
228           libsystemd-id128.so, libsystemd-daemon.so. Instead, we have
229           merged them into a single library, libsystemd.so, which
230           provides all symbols. The reason for this is cyclic
231           dependencies, as these libraries tend to use each other's
232           symbols. So far, we've managed to workaround that by linking
233           a copy of a good part of our code into each of these
234           libraries again and again, which, however, makes certain
235           things hard to do, like sharing static variables. Also, it
236           substantially increases footprint. With this change, there
237           is only one library for the basic APIs systemd
238           provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h",
239           "sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this
240           library as well, however are subject to the --enable-kdbus
241           switch (see below). Note that "sd-dhcp-client.h" is not part
242           of this library (this is because it only consumes, never
243           provides, services of/to other APIs). To make the transition
244           easy from the separate libraries to the unified one, we
245           provide the --enable-compat-libs compile-time switch which
246           will generate stub libraries that are compatible with the
247           old ones but redirect all calls to the new one.
248
249         * All of the kdbus logic and the new APIs "sd-bus.h",
250           "sd-memfd.h", "sd-event.h", "sd-rtnl.h", "sd-resolve.h",
251           and "sd-utf8.h" are compile-time optional via the
252           "--enable-kdbus" switch, and they are not compiled in by
253           default. To make use of kdbus, you have to explicitly enable
254           the switch. Note however, that neither the kernel nor the
255           userspace API for all of this is considered stable yet. We
256           want to maintain the freedom to still change the APIs for
257           now. By specifying this build-time switch, you acknowledge
258           that you are aware of the instability of the current
259           APIs.
260
261         * Also, note that while kdbus is pretty much complete,
262           it lacks one thing: proper policy support. This means you
263           can build a fully working system with all features; however,
264           it will be highly insecure. Policy support will be added in
265           one of the next releases, at the same time that we will
266           declare the APIs stable.
267
268         * When the kernel command-line argument "kdbus" is specified,
269           systemd will automatically load the kdbus.ko kernel module. At
270           this stage of development, it is only useful for testing kdbus
271           and should not be used in production. Note: if "--enable-kdbus"
272           is specified, and the kdbus.ko kernel module is available, and
273           "kdbus" is added to the kernel command line, the entire system
274           runs with kdbus instead of dbus-daemon, with the above mentioned
275           problem of missing the system policy enforcement. Also a future
276           version of kdbus.ko or a newer systemd will not be compatible with
277           each other, and will unlikely be able to boot the machine if only
278           one of them is updated.
279
280         * systemctl gained a new "import-environment" command which
281           uploads the caller's environment (or parts thereof) into the
282           service manager so that it is inherited by services started
283           by the manager. This is useful to upload variables like
284           $DISPLAY into the user service manager.
285
286         * A new PrivateDevices= switch has been added to service units
287           which allows running a service with a namespaced /dev
288           directory that does not contain any device nodes for
289           physical devices. More specifically, it only includes devices
290           such as /dev/null, /dev/urandom, and /dev/zero which are API
291           entry points.
292
293         * logind has been extended to support behaviour like VT
294           switching on seats that do not support a VT. This makes
295           multi-session available on seats that are not the first seat
296           (seat0), and on systems where kernel support for VTs has
297           been disabled at compile-time.
298
299         * If a process holds a delay lock for system sleep or shutdown
300           and fails to release it in time, we will now log its
301           identity. This makes it easier to identify processes that
302           cause slow suspends or power-offs.
303
304         * When parsing /etc/crypttab, support for a new key-slot=
305           option as supported by Debian is added. It allows indicating
306           which LUKS slot to use on disk, speeding up key loading.
307
308         * The sd_journald_sendv() API call has been checked and
309           officially declared to be async-signal-safe so that it may
310           be invoked from signal handlers for logging purposes.
311
312         * Boot-time status output is now enabled automatically after a
313           short timeout if boot does not progress, in order to give
314           the user an indication what she or he is waiting for.
315
316         * The boot-time output has been improved to show how much time
317           remains until jobs expire.
318
319         * The KillMode= switch in service units gained a new possible
320           value "mixed". If set, and the unit is shut down, then the
321           initial SIGTERM signal is sent only to the main daemon
322           process, while the following SIGKILL signal is sent to
323           all remaining processes of the service.
324
325         * When a scope unit is registered, a new property "Controller"
326           may be set. If set to a valid bus name, systemd will send a
327           RequestStop() signal to this name when it would like to shut
328           down the scope. This may be used to hook manager logic into
329           the shutdown logic of scope units. Also, scope units may now
330           be put in a special "abandoned" state, in which case the
331           manager process which created them takes no further
332           responsibilities for it.
333
334         * When reading unit files, systemd will now verify
335           the access mode of these files, and warn about certain
336           suspicious combinations. This has been added to make it
337           easier to track down packaging bugs where unit files are
338           marked executable or world-writable.
339
340         * systemd-nspawn gained a new "--setenv=" switch to set
341           container-wide environment variables. The similar option in
342           systemd-activate was renamed from "--environment=" to
343           "--setenv=" for consistency.
344
345         * systemd-nspawn has been updated to create a new kdbus domain
346           for each container that is invoked, thus allowing each
347           container to have its own set of system and user buses,
348           independent of the host.
349
350         * systemd-nspawn gained a new --drop-capability= switch to run
351           the container with less capabilities than the default. Both
352           --drop-capability= and --capability= now take the special
353           string "all" for dropping or keeping all capabilities.
354
355         * systemd-nspawn gained new switches for executing containers
356           with specific SELinux labels set.
357
358         * systemd-nspawn gained a new --quiet switch to not generate
359           any additional output but the container's own console
360           output.
361
362         * systemd-nspawn gained a new --share-system switch to run a
363           container without PID namespacing enabled.
364
365         * systemd-nspawn gained a new --register= switch to control
366           whether the container is registered with systemd-machined or
367           not. This is useful for containers that do not run full
368           OS images, but only specific apps.
369
370         * systemd-nspawn gained a new --keep-unit which may be used
371           when invoked as the only program from a service unit, and
372           results in registration of the unit service itself in
373           systemd-machined, instead of a newly opened scope unit.
374
375         * systemd-nspawn gained a new --network-interface= switch for
376           moving arbitrary interfaces to the container. The new
377           --network-veth switch creates a virtual Ethernet connection
378           between host and container. The new --network-bridge=
379           switch then allows assigning the host side of this virtual
380           Ethernet connection to a bridge device.
381
382         * systemd-nspawn gained a new --personality= switch for
383           setting the kernel personality for the container. This is
384           useful when running a 32bit container on a 64bit host. A
385           similar option Personality= is now also available in service
386           units.
387
388         * logind will now also track a "Desktop" identifier for each
389           session which encodes the desktop environment of it. This is
390           useful for desktop environments that want to identify
391           multiple running sessions of itself easily.
392
393         * A new SELinuxContext= setting for service units has been
394           added that allows setting a specific SELinux execution
395           context for a service.
396
397         * Most systemd client tools will now honour $SYSTEMD_LESS for
398           settings of the "less" pager. By default, these tools will
399           override $LESS to allow certain operations to work, such as
400           jump-to-the-end. With $SYSTEMD_LESS, it is possible to
401           influence this logic.
402
403         * systemd's "seccomp" hook-up has been changed to make use of
404           the libseccomp library instead of using its own
405           implementation. This has benefits for portability among
406           other things.
407
408         * For usage together with SystemCallFilter=, a new
409           SystemCallErrorNumber= setting has been introduced that
410           allows configuration of a system error number to return on
411           filtered system calls, instead of immediately killing the
412           process. Also, SystemCallArchitectures= has been added to
413           limit access to system calls of a particular architecture
414           (in order to turn off support for unused secondary
415           architectures). There is also a global
416           SystemCallArchitectures= setting in system.conf now to turn
417           off support for non-native system calls system-wide.
418
419         Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov,
420         Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera,
421         Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters,
422         Cristian Rodríguez, Daniel Buch, Daniele Medri, Daniel J
423         Walsh, Daniel Mack, Dan McGee, Dave Reisner, David Coppa,
424         David Herrmann, David Strauss, Djalal Harouni, Dmitry Pisklov,
425         Elia Pinto, Florian Weimer, George McCollister, Goffredo
426         Baroncelli, Greg Kroah-Hartman, Hendrik Brueckner, Igor
427         Zhbanov, Jan Engelhardt, Jan Janssen, Jason A. Donenfeld,
428         Jason St. John, Jasper St. Pierre, Jóhann B. Guðmundsson, Jose
429         Ignacio Naranjo, Karel Zak, Kay Sievers, Kristian Høgsberg,
430         Lennart Poettering, Lubomir Rintel, Lukas Nykryn, Lukasz
431         Skalski, Łukasz Stelmach, Luke Shumaker, Mantas Mikulėnas,
432         Marc-Antoine Perennou, Marcel Holtmann, Marcos Felipe Rasia de
433         Mello, Marko Myllynen, Martin Pitt, Matthew Monaco, Michael
434         Marineau, Michael Scherer, Michał Górny, Michal Sekletar,
435         Michele Curti, Oleksii Shevchuk, Olivier Brunel, Patrik Flykt,
436         Pavel Holica, Raudi, Richard Marko, Ronny Chevalier, Sébastien
437         Luttringer, Sergey Ptashnick, Shawn Landden, Simon Peeters,
438         Stefan Beller, Susant Sahani, Sylvain Plantefeve, Sylvia Else,
439         Tero Roponen, Thomas Bächler, Thomas Hindoe Paaboel Andersen,
440         Tom Gundersen, Umut Tezduyar Lindskog, Unai Uribarri, Václav
441         Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang
442         Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek
443
444         -- Berlin, 2014-02-20
445
446 CHANGES WITH 208:
447
448         * logind has gained support for facilitating privileged input
449           and drm device access for unprivileged clients. This work is
450           useful to allow Wayland display servers (and similar
451           programs, such as kmscon) to run under the user's ID and
452           access input and drm devices which are normally
453           protected. When this is used (and the kernel is new enough)
454           logind will "mute" IO on the file descriptors passed to
455           Wayland as long as it is in the background and "unmute" it
456           if it returns into the foreground. This allows secure
457           session switching without allowing background sessions to
458           eavesdrop on input and display data. This also introduces
459           session switching support if VT support is turned off in the
460           kernel, and on seats that are not seat0.
461
462         * A new kernel command line option luks.options= is understood
463           now which allows specifiying LUKS options for usage for LUKS
464           encrypted partitions specified with luks.uuid=.
465
466         * tmpfiles.d(5) snippets may now use specifier expansion in
467           path names. More specifically %m, %b, %H, %v, are now
468           replaced by the local machine id, boot id, hostname, and
469           kernel version number.
470
471         * A new tmpfiles.d(5) command "m" has been introduced which
472           may be used to change the owner/group/access mode of a file
473           or directory if it exists, but do nothing if it doesn't.
474
475         * This release removes high-level support for the
476           MemorySoftLimit= cgroup setting. The underlying kernel
477           cgroup attribute memory.soft_limit= is currently badly
478           designed and likely to be removed from the kernel API in its
479           current form, hence we shouldn't expose it for now.
480
481         * The memory.use_hierarchy cgroup attribute is now enabled for
482           all cgroups systemd creates in the memory cgroup
483           hierarchy. This option is likely to be come the built-in
484           default in the kernel anyway, and the non-hierarchial mode
485           never made much sense in the intrinsically hierarchial
486           cgroup system.
487
488         * A new field _SYSTEMD_SLICE= is logged along with all journal
489           messages containing the slice a message was generated
490           from. This is useful to allow easy per-customer filtering of
491           logs among other things.
492
493         * systemd-journald will no longer adjust the group of journal
494           files it creates to the "systemd-journal" group. Instead we
495           rely on the journal directory to be owned by the
496           "systemd-journal" group, and its setgid bit set, so that the
497           kernel file system layer will automatically enforce that
498           journal files inherit this group assignment. The reason for
499           this change is that we cannot allow NSS look-ups from
500           journald which would be necessary to resolve
501           "systemd-journal" to a numeric GID, because this might
502           create deadlocks if NSS involves synchronous queries to
503           other daemons (such as nscd, or sssd) which in turn are
504           logging clients of journald and might block on it, which
505           would then dead lock. A tmpfiles.d(5) snippet included in
506           systemd will make sure the setgid bit and group are
507           properly set on the journal directory if it exists on every
508           boot. However, we recommend adjusting it manually after
509           upgrades too (or from RPM scriptlets), so that the change is
510           not delayed until next reboot.
511
512         * Backlight and random seed files in /var/lib/ have moved into
513           the /var/lib/systemd/ directory, in order to centralize all
514           systemd generated files in one directory.
515
516         * Boot time performance measurements (as displayed by
517           "systemd-analyze" for example) will now read ACPI 5.0 FPDT
518           performance information if that's available to determine how
519           much time BIOS and boot loader initialization required. With
520           a sufficiently new BIOS you hence no longer need to boot
521           with Gummiboot to get access to such information.
522
523         Contributions from: Andrey Borzenkov, Chen Jie, Colin Walters,
524         Cristian Rodríguez, Dave Reisner, David Herrmann, David
525         Mackey, David Strauss, Eelco Dolstra, Evan Callicoat, Gao
526         feng, Harald Hoyer, Jimmie Tauriainen, Kay Sievers, Lennart
527         Poettering, Lukas Nykryn, Mantas Mikulėnas, Martin Pitt,
528         Michael Scherer, Michał Górny, Mike Gilbert, Patrick McCarty,
529         Sebastian Ott, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
530
531         -- Berlin, 2013-10-02
532
533 CHANGES WITH 207:
534
535         * The Restart= option for services now understands a new
536           on-watchdog setting, which will restart the service
537           automatically if the service stops sending out watchdog keep
538           alive messages (as configured with WatchdogSec=).
539
540         * The getty generator (which is responsible for bringing up a
541           getty on configured serial consoles) will no longer only
542           start a getty on the primary kernel console but on all
543           others, too. This makes the order in which console= is
544           specified on the kernel command line less important.
545
546         * libsystemd-logind gained a new sd_session_get_vt() call to
547           retrieve the VT number of a session.
548
549         * If the option "tries=0" is set for an entry of /etc/crypttab
550           its passphrase is queried indefinitely instead of any
551           maximum number of tries.
552
553         * If a service with a configure PID file terminates its PID
554           file will now be removed automatically if it still exists
555           afterwards. This should put an end to stale PID files.
556
557         * systemd-run will now also take relative binary path names
558           for execution and no longer insists on absolute paths.
559
560         * InaccessibleDirectories= and ReadOnlyDirectories= now take
561           paths that are optionally prefixed with "-" to indicate that
562           it should not be considered a failure if they don't exist.
563
564         * journalctl -o (and similar commands) now understands a new
565           output mode "short-precise", it is similar to "short" but
566           shows timestamps with usec accuracy.
567
568         * The option "discard" (as known from Debian) is now
569           synonymous to "allow-discards" in /etc/crypttab. In fact,
570           "discard" is preferred now (since it is easier to remember
571           and type).
572
573         * Some licensing clean-ups were made, so that more code is now
574           LGPL-2.1 licensed than before.
575
576         * A minimal tool to save/restore the display backlight
577           brightness across reboots has been added. It will store the
578           backlight setting as late as possible at shutdown, and
579           restore it as early as possible during reboot.
580
581         * A logic to automatically discover and enable home and swap
582           partitions on GPT disks has been added. With this in place
583           /etc/fstab becomes optional for many setups as systemd can
584           discover certain partitions located on the root disk
585           automatically. Home partitions are recognized under their
586           GPT type ID 933ac7e12eb44f13b8440e14e2aef915. Swap
587           partitions are recognized under their GPT type ID
588           0657fd6da4ab43c484e50933c84b4f4f.
589
590         * systemd will no longer pass any environment from the kernel
591           or initrd to system services. If you want to set an
592           environment for all services, do so via the kernel command
593           line systemd.setenv= assignment.
594
595         * The systemd-sysctl tool no longer natively reads the file
596           /etc/sysctl.conf. If desired, the file should be symlinked
597           from /etc/sysctl.d/99-sysctl.conf. Apart from providing
598           legacy support by a symlink rather than built-in code, it
599           also makes the otherwise hidden order of application of the
600           different files visible. (Note that this partly reverts to a
601           pre-198 application order of sysctl knobs!)
602
603         * The "systemctl set-log-level" and "systemctl dump" commands
604           have been moved to systemd-analyze.
605
606         * systemd-run learned the new --remain-after-exit switch,
607           which causes the scope unit not to be cleaned up
608           automatically after the process terminated.
609
610         * tmpfiles learned a new --exclude-prefix= switch to exclude
611           certain paths from operation.
612
613         * journald will now automatically flush all messages to disk
614           as soon as a message of the log priorities CRIT, ALERT or
615           EMERG is received.
616
617         Contributions from: Andrew Cook, Brandon Philips, Christian
618         Hesse, Christoph Junghans, Colin Walters, Daniel Schaal,
619         Daniel Wallace, Dave Reisner, David Herrmann, Gao feng, George
620         McCollister, Giovanni Campagna, Hannes Reinecke, Harald Hoyer,
621         Herczeg Zsolt, Holger Hans Peter Freyther, Jan Engelhardt,
622         Jesper Larsen, Kay Sievers, Khem Raj, Lennart Poettering,
623         Lukas Nykryn, Maciej Wereski, Mantas Mikulėnas, Marcel
624         Holtmann, Martin Pitt, Michael Biebl, Michael Marineau,
625         Michael Scherer, Michael Stapelberg, Michal Sekletar, Michał
626         Górny, Olivier Brunel, Ondrej Balaz, Ronny Chevalier, Shawn
627         Landden, Steven Hiscocks, Thomas Bächler, Thomas Hindoe
628         Paaboel Andersen, Tom Gundersen, Umut Tezduyar, WANG Chao,
629         William Giokas, Zbigniew Jędrzejewski-Szmek
630
631         -- Berlin, 2013-09-13
632
633 CHANGES WITH 206:
634
635         * The documentation has been updated to cover the various new
636           concepts introduced with 205.
637
638         * Unit files now understand the new %v specifier which
639           resolves to the kernel version string as returned by "uname
640           -r".
641
642         * systemctl now supports filtering the unit list output by
643           load state, active state and sub state, using the new
644           --state= parameter.
645
646         * "systemctl status" will now show the results of the
647           condition checks (like ConditionPathExists= and similar) of
648           the last start attempts of the unit. They are also logged to
649           the journal.
650
651         * "journalctl -b" may now be used to look for boot output of a
652           specific boot. Try "journalctl -b -1" for the previous boot,
653           but the syntax is substantially more powerful.
654
655         * "journalctl --show-cursor" has been added which prints the
656           cursor string the last shown log line. This may then be used
657           with the new "journalctl --after-cursor=" switch to continue
658           browsing logs from that point on.
659
660         * "journalctl --force" may now be used to force regeneration
661           of an FSS key.
662
663         * Creation of "dead" device nodes has been moved from udev
664           into kmod and tmpfiles. Previously, udev would read the kmod
665           databases to pre-generate dead device nodes based on meta
666           information contained in kernel modules, so that these would
667           be auto-loaded on access rather then at boot. As this
668           doesn't really have much to do with the exposing actual
669           kernel devices to userspace this has always been slightly
670           alien in the udev codebase. Following the new scheme kmod
671           will now generate a runtime snippet for tmpfiles from the
672           module meta information and it now is tmpfiles' job to the
673           create the nodes. This also allows overriding access and
674           other parameters for the nodes using the usual tmpfiles
675           facilities. As side effect this allows us to remove the
676           CAP_SYS_MKNOD capability bit from udevd entirely.
677
678         * logind's device ACLs may now be applied to these "dead"
679           devices nodes too, thus finally allowing managed access to
680           devices such as /dev/snd/sequencer whithout loading the
681           backing module right-away.
682
683         * A new RPM macro has been added that may be used to apply
684           tmpfiles configuration during package installation.
685
686         * systemd-detect-virt and ConditionVirtualization= now can
687           detect User-Mode-Linux machines (UML).
688
689         * journald will now implicitly log the effective capabilities
690           set of processes in the message metadata.
691
692         * systemd-cryptsetup has gained support for TrueCrypt volumes.
693
694         * The initrd interface has been simplified (more specifically,
695           support for passing performance data via environment
696           variables and fsck results via files in /run has been
697           removed). These features were non-essential, and are
698           nowadays available in a much nicer way by having systemd in
699           the initrd serialize its state and have the hosts systemd
700           deserialize it again.
701
702         * The udev "keymap" data files and tools to apply keyboard
703           specific mappings of scan to key codes, and force-release
704           scan code lists have been entirely replaced by a udev
705           "keyboard" builtin and a hwdb data file.
706
707         * systemd will now honour the kernel's "quiet" command line
708           argument also during late shutdown, resulting in a
709           completely silent shutdown when used.
710
711         * There's now an option to control the SO_REUSEPORT socket
712           option in .socket units.
713
714         * Instance units will now automatically get a per-template
715           subslice of system.slice unless something else is explicitly
716           configured. For example, instances of sshd@.service will now
717           implicitly be placed in system-sshd.slice rather than
718           system.slice as before.
719
720         * Test coverage support may now be enabled at build time.
721
722         Contributions from: Dave Reisner, Frederic Crozat, Harald
723         Hoyer, Holger Hans Peter Freyther, Jan Engelhardt, Jan
724         Janssen, Jason St. John, Jesper Larsen, Kay Sievers, Lennart
725         Poettering, Lukas Nykryn, Maciej Wereski, Martin Pitt, Michael
726         Olbrich, Ramkumar Ramachandra, Ross Lagerwall, Shawn Landden,
727         Thomas H.P. Andersen, Tom Gundersen, Tomasz Torcz, William
728         Giokas, Zbigniew Jędrzejewski-Szmek
729
730         -- Berlin, 2013-07-23
731
732 CHANGES WITH 205:
733
734         * Two new unit types have been introduced:
735
736           Scope units are very similar to service units, however, are
737           created out of pre-existing processes -- instead of PID 1
738           forking off the processes. By using scope units it is
739           possible for system services and applications to group their
740           own child processes (worker processes) in a powerful way
741           which then maybe used to organize them, or kill them
742           together, or apply resource limits on them.
743
744           Slice units may be used to partition system resources in an
745           hierarchial fashion and then assign other units to them. By
746           default there are now three slices: system.slice (for all
747           system services), user.slice (for all user sessions),
748           machine.slice (for VMs and containers).
749
750           Slices and scopes have been introduced primarily in
751           context of the work to move cgroup handling to a
752           single-writer scheme, where only PID 1
753           creates/removes/manages cgroups.
754
755         * There's a new concept of "transient" units. In contrast to
756           normal units these units are created via an API at runtime,
757           not from configuration from disk. More specifically this
758           means it is now possible to run arbitrary programs as
759           independent services, with all execution parameters passed
760           in via bus APIs rather than read from disk. Transient units
761           make systemd substantially more dynamic then it ever was,
762           and useful as a general batch manager.
763
764         * logind has been updated to make use of scope and slice units
765           for managing user sessions. As a user logs in he will get
766           his own private slice unit, to which all sessions are added
767           as scope units. We also added support for automatically
768           adding an instance of user@.service for the user into the
769           slice. Effectively logind will no longer create cgroup
770           hierarchies on its own now, it will defer entirely to PID 1
771           for this by means of scope, service and slice units. Since
772           user sessions this way become entities managed by PID 1
773           the output of "systemctl" is now a lot more comprehensive.
774
775         * A new mini-daemon "systemd-machined" has been added which
776           may be used by virtualization managers to register local
777           VMs/containers. nspawn has been updated accordingly, and
778           libvirt will be updated shortly. machined will collect a bit
779           of meta information about the VMs/containers, and assign
780           them their own scope unit (see above). The collected
781           meta-data is then made available via the "machinectl" tool,
782           and exposed in "ps" and similar tools. machined/machinectl
783           is compile-time optional.
784
785         * As discussed earlier, the low-level cgroup configuration
786           options ControlGroup=, ControlGroupModify=,
787           ControlGroupPersistent=, ControlGroupAttribute= have been
788           removed. Please use high-level attribute settings instead as
789           well as slice units.
790
791         * A new bus call SetUnitProperties() has been added to alter
792           various runtime parameters of a unit. This is primarily
793           useful to alter cgroup parameters dynamically in a nice way,
794           but will be extended later on to make more properties
795           modifiable at runtime. systemctl gained a new set-properties
796           command that wraps this call.
797
798         * A new tool "systemd-run" has been added which can be used to
799           run arbitrary command lines as transient services or scopes,
800           while configuring a number of settings via the command
801           line. This tool is currently very basic, however already
802           very useful. We plan to extend this tool to even allow
803           queuing of execution jobs with time triggers from the
804           command line, similar in fashion to "at".
805
806         * nspawn will now inform the user explicitly that kernels with
807           audit enabled break containers, and suggest the user to turn
808           off audit.
809
810         * Support for detecting the IMA and AppArmor security
811           frameworks with ConditionSecurity= has been added.
812
813         * journalctl gained a new "-k" switch for showing only kernel
814           messages, mimicking dmesg output; in addition to "--user"
815           and "--system" switches for showing only user's own logs
816           and system logs.
817
818         * systemd-delta can now show information about drop-in
819           snippets extending unit files.
820
821         * libsystemd-bus has been substantially updated but is still
822           not available as public API.
823
824         * systemd will now look for the "debug" argument on the kernel
825           command line and enable debug logging, similar to
826           "systemd.log_level=debug" already did before.
827
828         * "systemctl set-default", "systemctl get-default" has been
829           added to configure the default.target symlink, which
830           controls what to boot into by default.
831
832         * "systemctl set-log-level" has been added as a convenient
833           way to raise and lower systemd logging threshold.
834
835         * "systemd-analyze plot" will now show the time the various
836           generators needed for execution, as well as information
837           about the unit file loading.
838
839         * libsystemd-journal gained a new sd_journal_open_files() call
840           for opening specific journal files. journactl also gained a
841           new switch to expose this new functionality. Previously we
842           only supported opening all files from a directory, or all
843           files from the system, as opening individual files only is
844           racy due to journal file rotation.
845
846         * systemd gained the new DefaultEnvironment= setting in
847           /etc/systemd/system.conf to set environment variables for
848           all services.
849
850         * If a privileged process logs a journal message with the
851           OBJECT_PID= field set, then journald will automatically
852           augment this with additional OBJECT_UID=, OBJECT_GID=,
853           OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if
854           system services want to log events about specific client
855           processes. journactl/systemctl has been updated to make use
856           of this information if all log messages regarding a specific
857           unit is requested.
858
859         Contributions from: Auke Kok, Chengwei Yang, Colin Walters,
860         Cristian Rodríguez, Daniel Albers, Daniel Wallace, Dave
861         Reisner, David Coppa, David King, David Strauss, Eelco
862         Dolstra, Gabriel de Perthuis, Harald Hoyer, Jan Alexander
863         Steffens, Jan Engelhardt, Jan Janssen, Jason St. John, Johan
864         Heikkilä, Karel Zak, Karol Lewandowski, Kay Sievers, Lennart
865         Poettering, Lukas Nykryn, Mantas Mikulėnas, Marius Vollmer,
866         Martin Pitt, Michael Biebl, Michael Olbrich, Michael Tremer,
867         Michal Schmidt, Michał Bartoszkiewicz, Nirbheek Chauhan,
868         Pierre Neidhardt, Ross Burton, Ross Lagerwall, Sean McGovern,
869         Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar,
870         Václav Pavlín, Zachary Cook, Zbigniew Jędrzejewski-Szmek,
871         Łukasz Stelmach, 장동준
872
873 CHANGES WITH 204:
874
875         * The Python bindings gained some minimal support for the APIs
876           exposed by libsystemd-logind.
877
878         * ConditionSecurity= gained support for detecting SMACK. Since
879           this condition already supports SELinux and AppArmor we only
880           miss IMA for this. Patches welcome!
881
882         Contributions from: Karol Lewandowski, Lennart Poettering,
883         Zbigniew Jędrzejewski-Szmek
884
885 CHANGES WITH 203:
886
887         * systemd-nspawn will now create /etc/resolv.conf if
888           necessary, before bind-mounting the host's file onto it.
889
890         * systemd-nspawn will now store meta information about a
891           container on the container's cgroup as extended attribute
892           fields, including the root directory.
893
894         * The cgroup hierarchy has been reworked in many ways. All
895           objects any of the components systemd creates in the cgroup
896           tree are now suffixed. More specifically, user sessions are
897           now placed in cgroups suffixed with ".session", users in
898           cgroups suffixed with ".user", and nspawn containers in
899           cgroups suffixed with ".nspawn". Furthermore, all cgroup
900           names are now escaped in a simple scheme to avoid collision
901           of userspace object names with kernel filenames. This work
902           is preparation for making these objects relocatable in the
903           cgroup tree, in order to allow easy resource partitioning of
904           these objects without causing naming conflicts.
905
906         * systemctl list-dependencies gained the new switches
907           --plain, --reverse, --after and --before.
908
909         * systemd-inhibit now shows the process name of processes that
910           have taken an inhibitor lock.
911
912         * nss-myhostname will now also resolve "localhost"
913           implicitly. This makes /etc/hosts an optional file and
914           nicely handles that on IPv6 ::1 maps to both "localhost" and
915           the local hostname.
916
917         * libsystemd-logind.so gained a new call
918           sd_get_machine_names() to enumerate running containers and
919           VMs (currently only supported by very new libvirt and
920           nspawn). sd_login_monitor can now be used to watch
921           VMs/containers coming and going.
922
923         * .include is not allowed recursively anymore, and only in
924           unit files. Usually it is better to use drop-in snippets in
925           .d/*.conf anyway, as introduced with systemd 198.
926
927         * systemd-analyze gained a new "critical-chain" command that
928           determines the slowest chain of units run during system
929           boot-up. It is very useful for tracking down where
930           optimizing boot time is the most beneficial.
931
932         * systemd will no longer allow manipulating service paths in
933           the name=systemd:/system cgroup tree using ControlGroup= in
934           units. (But is still fine with it in all other dirs.)
935
936         * There's a new systemd-nspawn@.service service file that may
937           be used to easily run nspawn containers as system
938           services. With the container's root directory in
939           /var/lib/container/foobar it is now sufficient to run
940           "systemctl start systemd-nspawn@foobar.service" to boot it.
941
942         * systemd-cgls gained a new parameter "--machine" to list only
943           the processes within a certain container.
944
945         * ConditionSecurity= now can check for "apparmor". We still
946           are lacking checks for SMACK and IMA for this condition
947           check though. Patches welcome!
948
949         * A new configuration file /etc/systemd/sleep.conf has been
950           added that may be used to configure which kernel operation
951           systemd is supposed to execute when "suspend", "hibernate"
952           or "hybrid-sleep" is requested. This makes the new kernel
953           "freeze" state accessible to the user.
954
955         * ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
956           the passed argument if applicable.
957
958         Contributions from: Auke Kok, Colin Guthrie, Colin Walters,
959         Cristian Rodríguez, Daniel Buch, Daniel Wallace, Dave Reisner,
960         Evangelos Foutras, Greg Kroah-Hartman, Harald Hoyer, Josh
961         Triplett, Kay Sievers, Lennart Poettering, Lukas Nykryn,
962         MUNEDA Takahiro, Mantas Mikulėnas, Mirco Tischler, Nathaniel
963         Chen, Nirbheek Chauhan, Ronny Chevalier, Ross Lagerwall, Tom
964         Gundersen, Umut Tezduyar, Ville Skyttä, Zbigniew
965         Jędrzejewski-Szmek
966
967 CHANGES WITH 202:
968
969         * The output of 'systemctl list-jobs' got some polishing. The
970           '--type=' argument may now be passed more than once. A new
971           command 'systemctl list-sockets' has been added which shows
972           a list of kernel sockets systemd is listening on with the
973           socket units they belong to, plus the units these socket
974           units activate.
975
976         * The experimental libsystemd-bus library got substantial
977           updates to work in conjunction with the (also experimental)
978           kdbus kernel project. It works well enough to exchange
979           messages with some sophistication. Note that kdbus is not
980           ready yet, and the library is mostly an elaborate test case
981           for now, and not installable.
982
983         * systemd gained a new unit 'systemd-static-nodes.service'
984           that generates static device nodes earlier during boot, and
985           can run in conjunction with udev.
986
987         * libsystemd-login gained a new call sd_pid_get_user_unit()
988           to retrieve the user systemd unit a process is running
989           in. This is useful for systems where systemd is used as
990           session manager.
991
992         * systemd-nspawn now places all containers in the new /machine
993           top-level cgroup directory in the name=systemd
994           hierarchy. libvirt will soon do the same, so that we get a
995           uniform separation of /system, /user and /machine for system
996           services, user processes and containers/virtual
997           machines. This new cgroup hierarchy is also useful to stick
998           stable names to specific container instances, which can be
999           recognized later this way (this name may be controlled
1000           via systemd-nspawn's new -M switch). libsystemd-login also
1001           gained a new call sd_pid_get_machine_name() to retrieve the
1002           name of the container/VM a specific process belongs to.
1003
1004         * bootchart can now store its data in the journal.
1005
1006         * libsystemd-journal gained a new call
1007           sd_journal_add_conjunction() for AND expressions to the
1008           matching logic. This can be used to express more complex
1009           logical expressions.
1010
1011         * journactl can now take multiple --unit= and --user-unit=
1012           switches.
1013
1014         * The cryptsetup logic now understands the "luks.key=" kernel
1015           command line switch for specifying a file to read the
1016           decryption key from. Also, if a configured key file is not
1017           found the tool will now automatically fall back to prompting
1018           the user.
1019
1020         * Python systemd.journal module was updated to wrap recently
1021           added functions from libsystemd-journal. The interface was
1022           changed to bring the low level interface in s.j._Reader
1023           closer to the C API, and the high level interface in
1024           s.j.Reader was updated to wrap and convert all data about
1025           an entry.
1026
1027         Contributions from: Anatol Pomozov, Auke Kok, Harald Hoyer,
1028         Henrik Grindal Bakken, Josh Triplett, Kay Sievers, Lennart
1029         Poettering, Lukas Nykryn, Mantas Mikulėnas Marius Vollmer,
1030         Martin Jansa, Martin Pitt, Michael Biebl, Michal Schmidt,
1031         Mirco Tischler, Pali Rohar, Simon Peeters, Steven Hiscocks,
1032         Tom Gundersen, Zbigniew Jędrzejewski-Szmek
1033
1034 CHANGES WITH 201:
1035
1036         * journalctl --update-catalog now understands a new --root=
1037           option to operate on catalogs found in a different root
1038           directory.
1039
1040         * During shutdown after systemd has terminated all running
1041           services a final killing loop kills all remaining left-over
1042           processes. We will now print the name of these processes
1043           when we send SIGKILL to them, since this usually indicates a
1044           problem.
1045
1046         * If /etc/crypttab refers to password files stored on
1047           configured mount points automatic dependencies will now be
1048           generated to ensure the specific mount is established first
1049           before the key file is attempted to be read.
1050
1051         * 'systemctl status' will now show information about the
1052           network sockets a socket unit is listening on.
1053
1054         * 'systemctl status' will also shown information about any
1055           drop-in configuration file for units. (Drop-In configuration
1056           files in this context are files such as
1057           /etc/systemd/systemd/foobar.service.d/*.conf)
1058
1059         * systemd-cgtop now optionally shows summed up CPU times of
1060           cgroups. Press '%' while running cgtop to switch between
1061           percentage and absolute mode. This is useful to determine
1062           which cgroups use up the most CPU time over the entire
1063           runtime of the system. systemd-cgtop has also been updated
1064           to be 'pipeable' for processing with further shell tools.
1065
1066         * 'hostnamectl set-hostname' will now allow setting of FQDN
1067           hostnames.
1068
1069         * The formatting and parsing of time span values has been
1070           changed. The parser now understands fractional expressions
1071           such as "5.5h". The formatter will now output fractional
1072           expressions for all time spans under 1min, i.e. "5.123456s"
1073           rather than "5s 123ms 456us". For time spans under 1s
1074           millisecond values are shown, for those under 1ms
1075           microsecond values are shown. This should greatly improve
1076           all time-related output of systemd.
1077
1078         * libsystemd-login and libsystemd-journal gained new
1079           functions for querying the poll() events mask and poll()
1080           timeout value for integration into arbitrary event
1081           loops.
1082
1083         * localectl gained the ability to list available X11 keymaps
1084           (models, layouts, variants, options).
1085
1086         * 'systemd-analyze dot' gained the ability to filter for
1087           specific units via shell-style globs, to create smaller,
1088           more useful graphs. I.e. it's now possible to create simple
1089           graphs of all the dependencies between only target units, or
1090           of all units that Avahi has dependencies with.
1091
1092         Contributions from: Cristian Rodríguez, Dr. Tilmann Bubeck,
1093         Harald Hoyer, Holger Hans Peter Freyther, Kay Sievers, Kelly
1094         Anderson, Koen Kooi, Lennart Poettering, Maksim Melnikau,
1095         Marc-Antoine Perennou, Marius Vollmer, Martin Pitt, Michal
1096         Schmidt, Oleksii Shevchuk, Ronny Chevalier, Simon McVittie,
1097         Steven Hiscocks, Thomas Weißschuh, Umut Tezduyar, Václav
1098         Pavlín, Zbigniew Jędrzejewski-Szmek, Łukasz Stelmach
1099
1100 CHANGES WITH 200:
1101
1102         * The boot-time readahead implementation for rotating media
1103           will now read the read-ahead data in multiple passes which
1104           consist of all read requests made in equidistant time
1105           intervals. This means instead of strictly reading read-ahead
1106           data in its physical order on disk we now try to find a
1107           middle ground between physical and access time order.
1108
1109         * /etc/os-release files gained a new BUILD_ID= field for usage
1110           on operating systems that provide continuous builds of OS
1111           images.
1112
1113         Contributions from: Auke Kok, Eelco Dolstra, Kay Sievers,
1114         Lennart Poettering, Lukas Nykryn, Martin Pitt, Václav Pavlín
1115         William Douglas, Zbigniew Jędrzejewski-Szmek
1116
1117 CHANGES WITH 199:
1118
1119         * systemd-python gained an API exposing libsystemd-daemon.
1120
1121         * The SMACK setup logic gained support for uploading CIPSO
1122           security policy.
1123
1124         * Behaviour of PrivateTmp=, ReadWriteDirectories=,
1125           ReadOnlyDirectories= and InaccessibleDirectories= has
1126           changed. The private /tmp and /var/tmp directories are now
1127           shared by all processes of a service (which means
1128           ExecStartPre= may now leave data in /tmp that ExecStart= of
1129           the same service can still access). When a service is
1130           stopped its temporary directories are immediately deleted
1131           (normal clean-up with tmpfiles is still done in addition to
1132           this though).
1133
1134         * By default, systemd will now set a couple of sysctl
1135           variables in the kernel: the safe sysrq options are turned
1136           on, IP route verification is turned on, and source routing
1137           disabled. The recently added hardlink and softlink
1138           protection of the kernel is turned on. These settings should
1139           be reasonably safe, and good defaults for all new systems.
1140
1141         * The predictable network naming logic may now be turned off
1142           with a new kernel command line switch: net.ifnames=0.
1143
1144         * A new libsystemd-bus module has been added that implements a
1145           pretty complete D-Bus client library. For details see:
1146
1147           http://lists.freedesktop.org/archives/systemd-devel/2013-March/009797.html
1148
1149         * journald will now explicitly flush the journal files to disk
1150           at the latest 5min after each write. The file will then also
1151           be marked offline until the next write. This should increase
1152           reliability in case of a crash. The synchronization delay
1153           can be configured via SyncIntervalSec= in journald.conf.
1154
1155         * There's a new remote-fs-setup.target unit that can be used
1156           to pull in specific services when at least one remote file
1157           system is to be mounted.
1158
1159         * There are new targets timers.target and paths.target as
1160           canonical targets to pull user timer and path units in
1161           from. This complements sockets.target with a similar
1162           purpose for socket units.
1163
1164         * libudev gained a new call udev_device_set_attribute_value()
1165           to set sysfs attributes of a device.
1166
1167         * The udev daemon now sets the default number of worker
1168           processes executed in parallel based on the number of available
1169           CPUs instead of the amount of available RAM. This is supposed
1170           to provide a more reliable default and limit a too aggressive
1171           paralellism for setups with 1000s of devices connected.
1172
1173         Contributions from: Auke Kok, Colin Walters, Cristian
1174         Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
1175         Reinecke, Harald Hoyer, Jan Alexander Steffens, Jan
1176         Engelhardt, Josh Triplett, Kay Sievers, Lennart Poettering,
1177         Mantas Mikulėnas, Martin Pitt, Mathieu Bridon, Michael Biebl,
1178         Michal Schmidt, Michal Sekletar, Miklos Vajna, Nathaniel Chen,
1179         Oleksii Shevchuk, Ozan Çağlayan, Thomas Hindoe Paaboel
1180         Andersen, Tollef Fog Heen, Tom Gundersen, Umut Tezduyar,
1181         Zbigniew Jędrzejewski-Szmek
1182
1183 CHANGES WITH 198:
1184
1185         * Configuration of unit files may now be extended via drop-in
1186           files without having to edit/override the unit files
1187           themselves. More specifically, if the administrator wants to
1188           change one value for a service file foobar.service he can
1189           now do so by dropping in a configuration snippet into
1190           /etc/systemd/system/foobar.service.d/*.conf. The unit logic
1191           will load all these snippets and apply them on top of the
1192           main unit configuration file, possibly extending or
1193           overriding its settings. Using these drop-in snippets is
1194           generally nicer than the two earlier options for changing
1195           unit files locally: copying the files from
1196           /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
1197           them there; or creating a new file in /etc/systemd/system/
1198           that incorporates the original one via ".include". Drop-in
1199           snippets into these .d/ directories can be placed in any
1200           directory systemd looks for units in, and the usual
1201           overriding semantics between /usr/lib, /etc and /run apply
1202           for them too.
1203
1204         * Most unit file settings which take lists of items can now be
1205           reset by assigning the empty string to them. For example,
1206           normally, settings such as Environment=FOO=BAR append a new
1207           environment variable assignment to the environment block,
1208           each time they are used. By assigning Environment= the empty
1209           string the environment block can be reset to empty. This is
1210           particularly useful with the .d/*.conf drop-in snippets
1211           mentioned above, since this adds the ability to reset list
1212           settings from vendor unit files via these drop-ins.
1213
1214         * systemctl gained a new "list-dependencies" command for
1215           listing the dependencies of a unit recursively.
1216
1217         * Inhibitors are now honored and listed by "systemctl
1218           suspend", "systemctl poweroff" (and similar) too, not only
1219           GNOME. These commands will also list active sessions by
1220           other users.
1221
1222         * Resource limits (as exposed by the various control group
1223           controllers) can now be controlled dynamically at runtime
1224           for all units. More specifically, you can now use a command
1225           like "systemctl set-cgroup-attr foobar.service cpu.shares
1226           2000" to alter the CPU shares a specific service gets. These
1227           settings are stored persistently on disk, and thus allow the
1228           administrator to easily adjust the resource usage of
1229           services with a few simple commands. This dynamic resource
1230           management logic is also available to other programs via the
1231           bus. Almost any kernel cgroup attribute and controller is
1232           supported.
1233
1234         * systemd-vconsole-setup will now copy all font settings to
1235           all allocated VTs, where it previously applied them only to
1236           the foreground VT.
1237
1238         * libsystemd-login gained the new sd_session_get_tty() API
1239           call.
1240
1241         * This release drops support for a few legacy or
1242           distribution-specific LSB facility names when parsing init
1243           scripts: $x-display-manager, $mail-transfer-agent,
1244           $mail-transport-agent, $mail-transfer-agent, $smtp,
1245           $null. Also, the mail-transfer-agent.target unit backing
1246           this has been removed. Distributions which want to retain
1247           compatibility with this should carry the burden for
1248           supporting this themselves and patch support for these back
1249           in, if they really need to. Also, the facilities $syslog and
1250           $local_fs are now ignored, since systemd does not support
1251           early-boot LSB init scripts anymore, and these facilities
1252           are implied anyway for normal services. syslog.target has
1253           also been removed.
1254
1255         * There are new bus calls on PID1's Manager object for
1256           cancelling jobs, and removing snapshot units. Previously,
1257           both calls were only available on the Job and Snapshot
1258           objects themselves.
1259
1260         * systemd-journal-gatewayd gained SSL support.
1261
1262         * The various "environment" files, such as /etc/locale.conf
1263           now support continuation lines with a backslash ("\") as
1264           last character in the line, similar in style (but different)
1265           to how this is supported in shells.
1266
1267         * For normal user processes the _SYSTEMD_USER_UNIT= field is
1268           now implicitly appended to every log entry logged. systemctl
1269           has been updated to filter by this field when operating on a
1270           user systemd instance.
1271
1272         * nspawn will now implicitly add the CAP_AUDIT_WRITE and
1273           CAP_AUDIT_CONTROL capabilities to the capabilities set for
1274           the container. This makes it easier to boot unmodified
1275           Fedora systems in a container, which however still requires
1276           audit=0 to be passed on the kernel command line. Auditing in
1277           kernel and userspace is unfortunately still too broken in
1278           context of containers, hence we recommend compiling it out
1279           of the kernel or using audit=0. Hopefully this will be fixed
1280           one day for good in the kernel.
1281
1282         * nspawn gained the new --bind= and --bind-ro= parameters to
1283           bind mount specific directories from the host into the
1284           container.
1285
1286         * nspawn will now mount its own devpts file system instance
1287           into the container, in order not to leak pty devices from
1288           the host into the container.
1289
1290         * systemd will now read the firmware boot time performance
1291           information from the EFI variables, if the used boot loader
1292           supports this, and takes it into account for boot performance
1293           analysis via "systemd-analyze". This is currently supported
1294           only in conjunction with Gummiboot, but could be supported
1295           by other boot loaders too. For details see:
1296
1297           http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
1298
1299         * A new generator has been added that automatically mounts the
1300           EFI System Partition (ESP) to /boot, if that directory
1301           exists, is empty, and no other file system has been
1302           configured to be mounted there.
1303
1304         * logind will now send out PrepareForSleep(false) out
1305           unconditionally, after coming back from suspend. This may be
1306           used by applications as asynchronous notification for
1307           system resume events.
1308
1309         * "systemctl unlock-sessions" has been added, that allows
1310           unlocking the screens of all user sessions at once, similar
1311           how "systemctl lock-sessions" already locked all users
1312           sessions. This is backed by a new D-Bus call UnlockSessions().
1313
1314         * "loginctl seat-status" will now show the master device of a
1315           seat. (i.e. the device of a seat that needs to be around for
1316           the seat to be considered available, usually the graphics
1317           card).
1318
1319         * tmpfiles gained a new "X" line type, that allows
1320           configuration of files and directories (with wildcards) that
1321           shall be excluded from automatic cleanup ("aging").
1322
1323         * udev default rules set the device node permissions now only
1324           at "add" events, and do not change them any longer with a
1325           later "change" event.
1326
1327         * The log messages for lid events and power/sleep keypresses
1328           now carry a message ID.
1329
1330         * We now have a substantially larger unit test suite, but this
1331           continues to be work in progress.
1332
1333         * udevadm hwdb gained a new --root= parameter to change the
1334           root directory to operate relative to.
1335
1336         * logind will now issue a background sync() request to the kernel
1337           early at shutdown, so that dirty buffers are flushed to disk early
1338           instead of at the last moment, in order to optimize shutdown
1339           times a little.
1340
1341         * A new bootctl tool has been added that is an interface for
1342           certain boot loader operations. This is currently a preview
1343           and is likely to be extended into a small mechanism daemon
1344           like timedated, localed, hostnamed, and can be used by
1345           graphical UIs to enumerate available boot options, and
1346           request boot into firmware operations.
1347
1348         * systemd-bootchart has been relicensed to LGPLv2.1+ to match
1349           the rest of the package. It also has been updated to work
1350           correctly in initrds.
1351
1352         * Policykit previously has been runtime optional, and is now
1353           also compile time optional via a configure switch.
1354
1355         * systemd-analyze has been reimplemented in C. Also "systemctl
1356           dot" has moved into systemd-analyze.
1357
1358         * "systemctl status" with no further parameters will now print
1359           the status of all active or failed units.
1360
1361         * Operations such as "systemctl start" can now be executed
1362           with a new mode "--irreversible" which may be used to queue
1363           operations that cannot accidentally be reversed by a later
1364           job queuing. This is by default used to make shutdown
1365           requests more robust.
1366
1367         * The Python API of systemd now gained a new module for
1368           reading journal files.
1369
1370         * A new tool kernel-install has been added that can install
1371           kernel images according to the Boot Loader Specification:
1372
1373           http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
1374
1375         * Boot time console output has been improved to provide
1376           animated boot time output for hanging jobs.
1377
1378         * A new tool systemd-activate has been added which can be used
1379           to test socket activation with, directly from the command
1380           line. This should make it much easier to test and debug
1381           socket activation in daemons.
1382
1383         * journalctl gained a new "--reverse" (or -r) option to show
1384           journal output in reverse order (i.e. newest line first).
1385
1386         * journalctl gained a new "--pager-end" (or -e) option to jump
1387           to immediately jump to the end of the journal in the
1388           pager. This is only supported in conjunction with "less".
1389
1390         * journalctl gained a new "--user-unit=" option, that works
1391           similar to "--unit=" but filters for user units rather than
1392           system units.
1393
1394         * A number of unit files to ease adoption of systemd in
1395           initrds has been added. This moves some minimal logic from
1396           the various initrd implementations into systemd proper.
1397
1398         * The journal files are now owned by a new group
1399           "systemd-journal", which exists specifically to allow access
1400           to the journal, and nothing else. Previously, we used the
1401           "adm" group for that, which however possibly covers more
1402           than just journal/log file access. This new group is now
1403           already used by systemd-journal-gatewayd to ensure this
1404           daemon gets access to the journal files and as little else
1405           as possible. Note that "make install" will also set FS ACLs
1406           up for /var/log/journal to give "adm" and "wheel" read
1407           access to it, in addition to "systemd-journal" which owns
1408           the journal files. We recommend that packaging scripts also
1409           add read access to "adm" + "wheel" to /var/log/journal, and
1410           all existing/future journal files. To normal users and
1411           administrators little changes, however packagers need to
1412           ensure to create the "systemd-journal" system group at
1413           package installation time.
1414
1415         * The systemd-journal-gatewayd now runs as unprivileged user
1416           systemd-journal-gateway:systemd-journal-gateway. Packaging
1417           scripts need to create these system user/group at
1418           installation time.
1419
1420         * timedated now exposes a new boolean property CanNTP that
1421           indicates whether a local NTP service is available or not.
1422
1423         * systemd-detect-virt will now also detect xen PVs
1424
1425         * The pstore file system is now mounted by default, if it is
1426           available.
1427
1428         * In addition to the SELinux and IMA policies we will now also
1429           load SMACK policies at early boot.
1430
1431         Contributions from: Adel Gadllah, Aleksander Morgado, Auke
1432         Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
1433         Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
1434         Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
1435         Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
1436         Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
1437         Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
1438         Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
1439         Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
1440         Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
1441         Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
1442         Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
1443         Gundersen, Umut Tezduyar, William Giokas, Zbigniew
1444         Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
1445
1446 CHANGES WITH 197:
1447
1448         * Timer units now support calendar time events in addition to
1449           monotonic time events. That means you can now trigger a unit
1450           based on a calendar time specification such as "Thu,Fri
1451           2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
1452           or fifth day of any month of the year 2013, given that it is
1453           a thursday or friday. This brings timer event support
1454           considerably closer to cron's capabilities. For details on
1455           the supported calendar time specification language see
1456           systemd.time(7).
1457
1458         * udev now supports a number of different naming policies for
1459           network interfaces for predictable names, and a combination
1460           of these policies is now the default. Please see this wiki
1461           document for details:
1462
1463           http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
1464
1465         * Auke Kok's bootchart implementation has been added to the
1466           systemd tree. It's an optional component that can graph the
1467           boot in quite some detail. It's one of the best bootchart
1468           implementations around and minimal in its code and
1469           dependencies.
1470
1471         * nss-myhostname has been integrated into the systemd source
1472           tree. nss-myhostname guarantees that the local hostname
1473           always stays resolvable via NSS. It has been a weak
1474           requirement of systemd-hostnamed since a long time, and
1475           since its code is actually trivial we decided to just
1476           include it in systemd's source tree. It can be turned off
1477           with a configure switch.
1478
1479         * The read-ahead logic is now capable of properly detecting
1480           whether a btrfs file system is on SSD or rotating media, in
1481           order to optimize the read-ahead scheme. Previously, it was
1482           only capable of detecting this on traditional file systems
1483           such as ext4.
1484
1485         * In udev, additional device properties are now read from the
1486           IAB in addition to the OUI database. Also, Bluetooth company
1487           identities are attached to the devices as well.
1488
1489         * In service files %U may be used as specifier that is
1490           replaced by the configured user name of the service.
1491
1492         * nspawn may now be invoked without a controlling TTY. This
1493           makes it suitable for invocation as its own service. This
1494           may be used to set up a simple containerized server system
1495           using only core OS tools.
1496
1497         * systemd and nspawn can now accept socket file descriptors
1498           when they are started for socket activation. This enables
1499           implementation of socket activated nspawn
1500           containers. i.e. think about autospawning an entire OS image
1501           when the first SSH or HTTP connection is received. We expect
1502           that similar functionality will also be added to libvirt-lxc
1503           eventually.
1504
1505         * journalctl will now suppress ANSI color codes when
1506           presenting log data.
1507
1508         * systemctl will no longer show control group information for
1509           a unit if a the control group is empty anyway.
1510
1511         * logind can now automatically suspend/hibernate/shutdown the
1512           system on idle.
1513
1514         * /etc/machine-info and hostnamed now also expose the chassis
1515           type of the system. This can be used to determine whether
1516           the local system is a laptop, desktop, handset or
1517           tablet. This information may either be configured by the
1518           user/vendor or is automatically determined from ACPI and DMI
1519           information if possible.
1520
1521         * A number of PolicyKit actions are now bound together with
1522           "imply" rules. This should simplify creating UIs because
1523           many actions will now authenticate similar ones as well.
1524
1525         * Unit files learnt a new condition ConditionACPower= which
1526           may be used to conditionalize a unit depending on whether an
1527           AC power source is connected or not, of whether the system
1528           is running on battery power.
1529
1530         * systemctl gained a new "is-failed" verb that may be used in
1531           shell scripts and suchlike to check whether a specific unit
1532           is in the "failed" state.
1533
1534         * The EnvironmentFile= setting in unit files now supports file
1535           globbing, and can hence be used to easily read a number of
1536           environment files at once.
1537
1538         * systemd will no longer detect and recognize specific
1539           distributions. All distribution-specific #ifdeffery has been
1540           removed, systemd is now fully generic and
1541           distribution-agnostic. Effectively, not too much is lost as
1542           a lot of the code is still accessible via explicit configure
1543           switches. However, support for some distribution specific
1544           legacy configuration file formats has been dropped. We
1545           recommend distributions to simply adopt the configuration
1546           files everybody else uses now and convert the old
1547           configuration from packaging scripts. Most distributions
1548           already did that. If that's not possible or desirable,
1549           distributions are welcome to forward port the specific
1550           pieces of code locally from the git history.
1551
1552         * When logging a message about a unit systemd will now always
1553           log the unit name in the message meta data.
1554
1555         * localectl will now also discover system locale data that is
1556           not stored in locale archives, but directly unpacked.
1557
1558         * logind will no longer unconditionally use framebuffer
1559           devices as seat masters, i.e. as devices that are required
1560           to be existing before a seat is considered preset. Instead,
1561           it will now look for all devices that are tagged as
1562           "seat-master" in udev. By default framebuffer devices will
1563           be marked as such, but depending on local systems other
1564           devices might be marked as well. This may be used to
1565           integrate graphics cards using closed source drivers (such
1566           as NVidia ones) more nicely into logind. Note however, that
1567           we recommend using the open source NVidia drivers instead,
1568           and no udev rules for the closed-source drivers will be
1569           shipped from us upstream.
1570
1571         Contributions from: Adam Williamson, Alessandro Crismani, Auke
1572         Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
1573         Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
1574         Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
1575         Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
1576         Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
1577         Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
1578         Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
1579         Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
1580         Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
1581         Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
1582         Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
1583         Jędrzejewski-Szmek
1584
1585 CHANGES WITH 196:
1586
1587         * udev gained support for loading additional device properties
1588           from an indexed database that is keyed by vendor/product IDs
1589           and similar device identifiers. For the beginning this
1590           "hwdb" is populated with data from the well-known PCI and
1591           USB database, but also includes PNP, ACPI and OID data. In
1592           the longer run this indexed database shall grow into
1593           becoming the one central database for non-essential
1594           userspace device metadata. Previously, data from the PCI/USB
1595           database was only attached to select devices, since the
1596           lookup was a relatively expensive operation due to O(n) time
1597           complexity (with n being the number of entries in the
1598           database). Since this is now O(1), we decided to add in this
1599           data for all devices where this is available, by
1600           default. Note that the indexed database needs to be rebuilt
1601           when new data files are installed. To achieve this you need
1602           to update your packaging scripts to invoke "udevadm hwdb
1603           --update" after installation of hwdb data files. For
1604           RPM-based distributions we introduced the new
1605           %udev_hwdb_update macro for this purpose.
1606
1607         * The Journal gained support for the "Message Catalog", an
1608           indexed database to link up additional information with
1609           journal entries. For further details please check:
1610
1611           http://www.freedesktop.org/wiki/Software/systemd/catalog
1612
1613           The indexed message catalog database also needs to be
1614           rebuilt after installation of message catalog files. Use
1615           "journalctl --update-catalog" for this. For RPM-based
1616           distributions we introduced the %journal_catalog_update
1617           macro for this purpose.
1618
1619         * The Python Journal bindings gained support for the standard
1620           Python logging framework.
1621
1622         * The Journal API gained new functions for checking whether
1623           the underlying file system of a journal file is capable of
1624           properly reporting file change notifications, or whether
1625           applications that want to reflect journal changes "live"
1626           need to recheck journal files continuously in appropriate
1627           time intervals.
1628
1629         * It is now possible to set the "age" field for tmpfiles
1630           entries to 0, indicating that files matching this entry
1631           shall always be removed when the directories are cleaned up.
1632
1633         * coredumpctl gained a new "gdb" verb which invokes gdb
1634           right-away on the selected coredump.
1635
1636         * There's now support for "hybrid sleep" on kernels that
1637           support this, in addition to "suspend" and "hibernate". Use
1638           "systemctl hybrid-sleep" to make use of this.
1639
1640         * logind's HandleSuspendKey= setting (and related settings)
1641           now gained support for a new "lock" setting to simply
1642           request the screen lock on all local sessions, instead of
1643           actually executing a suspend or hibernation.
1644
1645         * systemd will now mount the EFI variables file system by
1646           default.
1647
1648         * Socket units now gained support for configuration of the
1649           SMACK security label.
1650
1651         * timedatectl will now output the time of the last and next
1652           daylight saving change.
1653
1654         * We dropped support for various legacy and distro-specific
1655           concepts, such as insserv, early-boot SysV services
1656           (i.e. those for non-standard runlevels such as 'b' or 'S')
1657           or ArchLinux /etc/rc.conf support. We recommend the
1658           distributions who still need support this to either continue
1659           to maintain the necessary patches downstream, or find a
1660           different solution. (Talk to us if you have questions!)
1661
1662         * Various systemd components will now bypass PolicyKit checks
1663           for root and otherwise handle properly if PolicyKit is not
1664           found to be around. This should fix most issues for
1665           PolicyKit-less systems. Quite frankly this should have been
1666           this way since day one. It is absolutely our intention to
1667           make systemd work fine on PolicyKit-less systems, and we
1668           consider it a bug if something doesn't work as it should if
1669           PolicyKit is not around.
1670
1671         * For embedded systems it is now possible to build udev and
1672           systemd without blkid and/or kmod support.
1673
1674         * "systemctl switch-root" is now capable of switching root
1675           more than once. I.e. in addition to transitions from the
1676           initrd to the host OS it is now possible to transition to
1677           further OS images from the host. This is useful to implement
1678           offline updating tools.
1679
1680         * Various other additions have been made to the RPM macros
1681           shipped with systemd. Use %udev_rules_update() after
1682           installing new udev rules files. %_udevhwdbdir,
1683           %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
1684           %_sysctldir are now available which resolve to the right
1685           directories for packages to place various data files in.
1686
1687         * journalctl gained the new --full switch (in addition to
1688           --all, to disable ellipsation for long messages.
1689
1690         Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
1691         Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
1692         Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
1693         Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
1694         Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
1695         Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
1696         Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
1697         Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
1698         Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
1699
1700 CHANGES WITH 195:
1701
1702         * journalctl gained new --since= and --until= switches to
1703           filter by time. It also now supports nice filtering for
1704           units via --unit=/-u.
1705
1706         * Type=oneshot services may use ExecReload= and do the
1707           right thing.
1708
1709         * The journal daemon now supports time-based rotation and
1710           vacuuming, in addition to the usual disk-space based
1711           rotation.
1712
1713         * The journal will now index the available field values for
1714           each field name. This enables clients to show pretty drop
1715           downs of available match values when filtering. The bash
1716           completion of journalctl has been updated
1717           accordingly. journalctl gained a new switch -F to list all
1718           values a certain field takes in the journal database.
1719
1720         * More service events are now written as structured messages
1721           to the journal, and made recognizable via message IDs.
1722
1723         * The timedated, localed and hostnamed mini-services which
1724           previously only provided support for changing time, locale
1725           and hostname settings from graphical DEs such as GNOME now
1726           also have a minimal (but very useful) text-based client
1727           utility each. This is probably the nicest way to changing
1728           these settings from the command line now, especially since
1729           it lists available options and is fully integrated with bash
1730           completion.
1731
1732         * There's now a new tool "systemd-coredumpctl" to list and
1733           extract coredumps from the journal.
1734
1735         * We now install a README each in /var/log/ and
1736           /etc/rc.d/init.d explaining where the system logs and init
1737           scripts went. This hopefully should help folks who go to
1738           that dirs and look into the otherwise now empty void and
1739           scratch their heads.
1740
1741         * When user-services are invoked (by systemd --user) the
1742           $MANAGERPID env var is set to the PID of systemd.
1743
1744         * SIGRTMIN+24 when sent to a --user instance will now result
1745           in immediate termination of systemd.
1746
1747         * gatewayd received numerous feature additions such as a
1748           "follow" mode, for live syncing and filtering.
1749
1750         * browse.html now allows filtering and showing detailed
1751           information on specific entries. Keyboard navigation and
1752           mouse screen support has been added.
1753
1754         * gatewayd/journalctl now supports HTML5/JSON
1755           Server-Sent-Events as output.
1756
1757         * The SysV init script compatibility logic will now
1758           heuristically determine whether a script supports the
1759           "reload" verb, and only then make this available as
1760           "systemctl reload".
1761
1762         * "systemctl status --follow" has been removed, use "journalctl
1763           -u" instead.
1764
1765         * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
1766           have been removed since they are hardly useful to be
1767           configured.
1768
1769         * And I'd like to take the opportunity to specifically mention
1770           Zbigniew for his great contributions. Zbigniew, you rock!
1771
1772         Contributions from: Andrew Eikum, Christian Hesse, Colin
1773         Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
1774         Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
1775         Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
1776         Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
1777         Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
1778         Jędrzejewski-Szmek, Сковорода Никита Андреевич
1779
1780 CHANGES WITH 194:
1781
1782         * If /etc/vconsole.conf is non-existent or empty we will no
1783           longer load any console font or key map at boot by
1784           default. Instead the kernel defaults will be left
1785           intact. This is definitely the right thing to do, as no
1786           configuration should mean no configuration, and hard-coding
1787           font names that are different on all archs is probably a bad
1788           idea. Also, the kernel default key map and font should be
1789           good enough for most cases anyway, and mostly identical to
1790           the userspace fonts/key maps we previously overloaded them
1791           with. If distributions want to continue to default to a
1792           non-kernel font or key map they should ship a default
1793           /etc/vconsole.conf with the appropriate contents.
1794
1795         Contributions from: Colin Walters, Daniel J Walsh, Dave
1796         Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
1797         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
1798
1799 CHANGES WITH 193:
1800
1801         * journalctl gained a new --cursor= switch to show entries
1802           starting from the specified location in the journal.
1803
1804         * We now enforce a size limit on journal entry fields exported
1805           with "-o json" in journalctl. Fields larger than 4K will be
1806           assigned null. This can be turned off with --all.
1807
1808         * An (optional) journal gateway daemon is now available as
1809           "systemd-journal-gatewayd.service". This service provides
1810           access to the journal via HTTP and JSON. This functionality
1811           will be used to implement live log synchronization in both
1812           pull and push modes, but has various other users too, such
1813           as easy log access for debugging of embedded devices. Right
1814           now it is already useful to retrieve the journal via HTTP:
1815
1816           # systemctl start systemd-journal-gatewayd.service
1817           # wget http://localhost:19531/entries
1818
1819           This will download the journal contents in a
1820           /var/log/messages compatible format. The same as JSON:
1821
1822           # curl -H"Accept: application/json" http://localhost:19531/entries
1823
1824           This service is also accessible via a web browser where a
1825           single static HTML5 app is served that uses the JSON logic
1826           to enable the user to do some basic browsing of the
1827           journal. This will be extended later on. Here's an example
1828           screenshot of this app in its current state:
1829
1830           http://0pointer.de/public/journal-gatewayd
1831
1832         Contributions from: Kay Sievers, Lennart Poettering, Robert
1833         Milasan, Tom Gundersen
1834
1835 CHANGES WITH 192:
1836
1837         * The bash completion logic is now available for journalctl
1838           too.
1839
1840         * We don't mount the "cpuset" controller anymore together with
1841           "cpu" and "cpuacct", as "cpuset" groups generally cannot be
1842           started if no parameters are assigned to it. "cpuset" hence
1843           broke code that assumed it it could create "cpu" groups and
1844           just start them.
1845
1846         * journalctl -f will now subscribe to terminal size changes,
1847           and line break accordingly.
1848
1849         Contributions from: Dave Reisner, Kay Sievers, Lennart
1850         Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
1851
1852 CHANGES WITH 191:
1853
1854         * nspawn will now create a symlink /etc/localtime in the
1855           container environment, copying the host's timezone
1856           setting. Previously this has been done via a bind mount, but
1857           since symlinks cannot be bind mounted this has now been
1858           changed to create/update the appropriate symlink.
1859
1860         * journalctl -n's line number argument is now optional, and
1861           will default to 10 if omitted.
1862
1863         * journald will now log the maximum size the journal files may
1864           take up on disk. This is particularly useful if the default
1865           built-in logic of determining this parameter from the file
1866           system size is used. Use "systemctl status
1867           systemd-journald.service" to see this information.
1868
1869         * The multi-seat X wrapper tool has been stripped down. As X
1870           is now capable of enumerating graphics devices via udev in a
1871           seat-aware way the wrapper is not strictly necessary
1872           anymore. A stripped down temporary stop-gap is still shipped
1873           until the upstream display managers have been updated to
1874           fully support the new X logic. Expect this wrapper to be
1875           removed entirely in one of the next releases.
1876
1877         * HandleSleepKey= in logind.conf has been split up into
1878           HandleSuspendKey= and HandleHibernateKey=. The old setting
1879           is not available anymore. X11 and the kernel are
1880           distuingishing between these keys and we should too. This
1881           also means the inhibition lock for these keys has been split
1882           into two.
1883
1884         Contributions from: Dave Airlie, Eelco Dolstra, Lennart
1885         Poettering, Lukas Nykryn, Václav Pavlín
1886
1887 CHANGES WITH 190:
1888
1889         * Whenever a unit changes state we'll now log this to the
1890           journal and show along the unit's own log output in
1891           "systemctl status".
1892
1893         * ConditionPathIsMountPoint= can now properly detect bind
1894           mount points too. (Previously, a bind mount of one file
1895           system to another place in the same file system could not be
1896           detected as mount, since they shared struct stat's st_dev
1897           field.)
1898
1899         * We will now mount the cgroup controllers cpu, cpuacct,
1900           cpuset and the controllers net_cls, net_prio together by
1901           default.
1902
1903         * nspawn containers will now have a virtualized boot
1904           ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
1905           over with a randomized ID at container initialization). This
1906           has the effect of making "journalctl -b" do the right thing
1907           in a container.
1908
1909         * The JSON output journal serialization has been updated not
1910           to generate "endless" list objects anymore, but rather one
1911           JSON object per line. This is more in line how most JSON
1912           parsers expect JSON objects. The new output mode
1913           "json-pretty" has been added to provide similar output, but
1914           neatly aligned for readability by humans.
1915
1916         * We dropped all explicit sync() invocations in the shutdown
1917           code. The kernel does this implicitly anyway in the kernel
1918           reboot() syscall. halt(8)'s -n option is now a compatibility
1919           no-op.
1920
1921         * We now support virtualized reboot() in containers, as
1922           supported by newer kernels. We will fall back to exit() if
1923           CAP_SYS_REBOOT is not available to the container. Also,
1924           nspawn makes use of this now and will actually reboot the
1925           container if the containerized OS asks for that.
1926
1927         * journalctl will only show local log output by default
1928           now. Use --merge (-m) to show remote log output, too.
1929
1930         * libsystemd-journal gained the new sd_journal_get_usage()
1931           call to determine the current disk usage of all journal
1932           files. This is exposed in the new "journalctl --disk-usage"
1933           command.
1934
1935         * journald gained a new configuration setting SplitMode= in
1936           journald.conf which may be used to control how user journals
1937           are split off. See journald.conf(5) for details.
1938
1939         * A new condition type ConditionFileNotEmpty= has been added.
1940
1941         * tmpfiles' "w" lines now support file globbing, to write
1942           multiple files at once.
1943
1944         * We added Python bindings for the journal submission
1945           APIs. More Python APIs for a number of selected APIs will
1946           likely follow. Note that we intend to add native bindings
1947           only for the Python language, as we consider it common
1948           enough to deserve bindings shipped within systemd. There are
1949           various projects outside of systemd that provide bindings
1950           for languages such as PHP or Lua.
1951
1952         * Many conditions will now resolve specifiers such as %i. In
1953           addition, PathChanged= and related directives of .path units
1954           now support specifiers as well.
1955
1956         * There's now a new RPM macro definition for the system preset
1957           dir: %_presetdir.
1958
1959         * journald will now warn if it can't forward a message to the
1960           syslog daemon because it's socket is full.
1961
1962         * timedated will no longer write or process /etc/timezone,
1963           except on Debian. As we do not support late mounted /usr
1964           anymore /etc/localtime always being a symlink is now safe,
1965           and hence the information in /etc/timezone is not necessary
1966           anymore.
1967
1968         * logind will now always reserve one VT for a text getty (VT6
1969           by default). Previously if more than 6 X sessions where
1970           started they took up all the VTs with auto-spawned gettys,
1971           so that no text gettys were available anymore.
1972
1973         * udev will now automatically inform the btrfs kernel logic
1974           about btrfs RAID components showing up. This should make
1975           simple hotplug based btrfs RAID assembly work.
1976
1977         * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
1978           (but not for its children which will stay at the kernel
1979           default). This should allow setups with a lot more listening
1980           sockets.
1981
1982         * systemd will now always pass the configured timezone to the
1983           kernel at boot. timedated will do the same when the timezone
1984           is changed.
1985
1986         * logind's inhibition logic has been updated. By default,
1987           logind will now handle the lid switch, the power and sleep
1988           keys all the time, even in graphical sessions. If DEs want
1989           to handle these events on their own they should take the new
1990           handle-power-key, handle-sleep-key and handle-lid-switch
1991           inhibitors during their runtime. A simple way to achiveve
1992           that is to invoke the DE wrapped in an invocation of:
1993
1994           systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
1995
1996         * Access to unit operations is now checked via SELinux taking
1997           the unit file label and client process label into account.
1998
1999         * systemd will now notify the administrator in the journal
2000           when he over-mounts a non-empty directory.
2001
2002         * There are new specifiers that are resolved in unit files,
2003           for the host name (%H), the machine ID (%m) and the boot ID
2004           (%b).
2005
2006         Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
2007         Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
2008         Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
2009         Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
2010         Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
2011         Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
2012         Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
2013
2014 CHANGES WITH 189:
2015
2016         * Support for reading structured kernel messages from
2017           /dev/kmsg has now been added and is enabled by default.
2018
2019         * Support for reading kernel messages from /proc/kmsg has now
2020           been removed. If you want kernel messages in the journal
2021           make sure to run a recent kernel (>= 3.5) that supports
2022           reading structured messages from /dev/kmsg (see
2023           above). /proc/kmsg is now exclusive property of classic
2024           syslog daemons again.
2025
2026         * The libudev API gained the new
2027           udev_device_new_from_device_id() call.
2028
2029         * The logic for file system namespace (ReadOnlyDirectory=,
2030           ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
2031           require pivot_root() anymore. This means fewer temporary
2032           directories are created below /tmp for this feature.
2033
2034         * nspawn containers will now see and receive all submounts
2035           made on the host OS below the root file system of the
2036           container.
2037
2038         * Forward Secure Sealing is now supported for Journal files,
2039           which provide cryptographical sealing of journal files so
2040           that attackers cannot alter log history anymore without this
2041           being detectable. Lennart will soon post a blog story about
2042           this explaining it in more detail.
2043
2044         * There are two new service settings RestartPreventExitStatus=
2045           and SuccessExitStatus= which allow configuration of exit
2046           status (exit code or signal) which will be excepted from the
2047           restart logic, resp. consider successful.
2048
2049         * journalctl gained the new --verify switch that can be used
2050           to check the integrity of the structure of journal files and
2051           (if Forward Secure Sealing is enabled) the contents of
2052           journal files.
2053
2054         * nspawn containers will now be run with /dev/stdin, /dev/fd/
2055           and similar symlinks pre-created. This makes running shells
2056           as container init process a lot more fun.
2057
2058         * The fstab support can now handle PARTUUID= and PARTLABEL=
2059           entries.
2060
2061         * A new ConditionHost= condition has been added to match
2062           against the hostname (with globs) and machine ID. This is
2063           useful for clusters where a single OS image is used to
2064           provision a large number of hosts which shall run slightly
2065           different sets of services.
2066
2067         * Services which hit the restart limit will now be placed in a
2068           failure state.
2069
2070         Contributions from: Bertram Poettering, Dave Reisner, Huang
2071         Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
2072         Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
2073
2074 CHANGES WITH 188:
2075
2076         * When running in --user mode systemd will now become a
2077           subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
2078           tree a lot more organized.
2079
2080         * A new PartOf= unit dependency type has been introduced that
2081           may be used to group services in a natural way.
2082
2083         * "systemctl enable" may now be used to enable instances of
2084           services.
2085
2086         * journalctl now prints error log levels in red, and
2087           warning/notice log levels in bright white. It also supports
2088           filtering by log level now.
2089
2090         * cgtop gained a new -n switch (similar to top), to configure
2091           the maximum number of iterations to run for. It also gained
2092           -b, to run in batch mode (accepting no input).
2093
2094         * The suffix ".service" may now be omitted on most systemctl
2095           command lines involving service unit names.
2096
2097         * There's a new bus call in logind to lock all sessions, as
2098           well as a loginctl verb for it "lock-sessions".
2099
2100         * libsystemd-logind.so gained a new call sd_journal_perror()
2101           that works similar to libc perror() but logs to the journal
2102           and encodes structured information about the error number.
2103
2104         * /etc/crypttab entries now understand the new keyfile-size=
2105           option.
2106
2107         * shutdown(8) now can send a (configurable) wall message when
2108           a shutdown is cancelled.
2109
2110         * The mount propagation mode for the root file system will now
2111           default to "shared", which is useful to make containers work
2112           nicely out-of-the-box so that they receive new mounts from
2113           the host. This can be undone locally by running "mount
2114           --make-rprivate /" if needed.
2115
2116         * The prefdm.service file has been removed. Distributions
2117           should maintain this unit downstream if they intend to keep
2118           it around. However, we recommend writing normal unit files
2119           for display managers instead.
2120
2121         * Since systemd is a crucial part of the OS we will now
2122           default to a number of compiler switches that improve
2123           security (hardening) such as read-only relocations, stack
2124           protection, and suchlike.
2125
2126         * The TimeoutSec= setting for services is now split into
2127           TimeoutStartSec= and TimeoutStopSec= to allow configuration
2128           of individual time outs for the start and the stop phase of
2129           the service.
2130
2131         Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
2132         Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
2133         Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
2134         Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
2135         Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
2136         Gundersen, Zbigniew Jędrzejewski-Szmek
2137
2138 CHANGES WITH 187:
2139
2140         * The journal and id128 C APIs are now fully documented as man
2141           pages.
2142
2143         * Extra safety checks have been added when transitioning from
2144           the initial RAM disk to the main system to avoid accidental
2145           data loss.
2146
2147         * /etc/crypttab entries now understand the new keyfile-offset=
2148           option.
2149
2150         * systemctl -t can now be used to filter by unit load state.
2151
2152         * The journal C API gained the new sd_journal_wait() call to
2153           make writing synchronous journal clients easier.
2154
2155         * journalctl gained the new -D switch to show journals from a
2156           specific directory.
2157
2158         * journalctl now displays a special marker between log
2159           messages of two different boots.
2160
2161         * The journal is now explicitly flushed to /var via a service
2162           systemd-journal-flush.service, rather than implicitly simply
2163           by seeing /var/log/journal to be writable.
2164
2165         * journalctl (and the journal C APIs) can now match for much
2166           more complex expressions, with alternatives and
2167           disjunctions.
2168
2169         * When transitioning from the initial RAM disk to the main
2170           system we will now kill all processes in a killing spree to
2171           ensure no processes stay around by accident.
2172
2173         * Three new specifiers may be used in unit files: %u, %h, %s
2174           resolve to the user name, user home directory resp. user
2175           shell. This is useful for running systemd user instances.
2176
2177         * We now automatically rotate journal files if their data
2178           object hash table gets a fill level > 75%. We also size the
2179           hash table based on the configured maximum file size. This
2180           together should lower hash collisions drastically and thus
2181           speed things up a bit.
2182
2183         * journalctl gained the new "--header" switch to introspect
2184           header data of journal files.
2185
2186         * A new setting SystemCallFilters= has been added to services
2187           which may be used to apply blacklists or whitelists to
2188           system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
2189
2190         * nspawn gained a new --link-journal= switch (and quicker: -j)
2191           to link the container journal with the host. This makes it
2192           very easy to centralize log viewing on the host for all
2193           guests while still keeping the journal files separated.
2194
2195         * Many bugfixes and optimizations
2196
2197         Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
2198         Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
2199         Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
2200         Jędrzejewski-Szmek
2201
2202 CHANGES WITH 186:
2203
2204         * Several tools now understand kernel command line arguments,
2205           which are only read when run in an initial RAM disk. They
2206           usually follow closely their normal counterparts, but are
2207           prefixed with rd.
2208
2209         * There's a new tool to analyze the readahead files that are
2210           automatically generated at boot. Use:
2211
2212           /usr/lib/systemd/systemd-readahead analyze /.readahead
2213
2214         * We now provide an early debug shell on tty9 if this enabled. Use:
2215
2216           systemctl enable debug-shell.service
2217
2218         * All plymouth related units have been moved into the Plymouth
2219           package. Please make sure to upgrade your Plymouth version
2220           as well.
2221
2222         * systemd-tmpfiles now supports getting passed the basename of
2223           a configuration file only, in which case it will look for it
2224           in all appropriate directories automatically.
2225
2226         * udevadm info now takes a /dev or /sys path as argument, and
2227           does the right thing. Example:
2228
2229           udevadm info /dev/sda
2230           udevadm info /sys/class/block/sda
2231
2232         * systemctl now prints a warning if a unit is stopped but a
2233           unit that might trigger it continues to run. Example: a
2234           service is stopped but the socket that activates it is left
2235           running.
2236
2237         * "systemctl status" will now mention if the log output was
2238           shortened due to rotation since a service has been started.
2239
2240         * The journal API now exposes functions to determine the
2241           "cutoff" times due to rotation.
2242
2243         * journald now understands SIGUSR1 and SIGUSR2 for triggering
2244           immediately flushing of runtime logs to /var if possible,
2245           resp. for triggering immediate rotation of the journal
2246           files.
2247
2248         * It is now considered an error if a service is attempted to
2249           be stopped that is not loaded.
2250
2251         * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
2252
2253         * systemd-analyze now supports Python 3
2254
2255         * tmpfiles now supports cleaning up directories via aging
2256           where the first level dirs are always kept around but
2257           directories beneath it automatically aged. This is enabled
2258           by prefixing the age field with '~'.
2259
2260         * Seat objects now expose CanGraphical, CanTTY properties
2261           which is required to deal with very fast bootups where the
2262           display manager might be running before the graphics drivers
2263           completed initialization.
2264
2265         * Seat objects now expose a State property.
2266
2267         * We now include RPM macros for service enabling/disabling
2268           based on the preset logic. We recommend RPM based
2269           distributions to make use of these macros if possible. This
2270           makes it simpler to reuse RPM spec files across
2271           distributions.
2272
2273         * We now make sure that the collected systemd unit name is
2274           always valid when services log to the journal via
2275           STDOUT/STDERR.
2276
2277         * There's a new man page kernel-command-line(7) detailing all
2278           command line options we understand.
2279
2280         * The fstab generator may now be disabled at boot by passing
2281           fstab=0 on the kernel command line.
2282
2283         * A new kernel command line option modules-load= is now understood
2284           to load a specific kernel module statically, early at boot.
2285
2286         * Unit names specified on the systemctl command line are now
2287           automatically escaped as needed. Also, if file system or
2288           device paths are specified they are automatically turned
2289           into the appropriate mount or device unit names. Example:
2290
2291           systemctl status /home
2292           systemctl status /dev/sda
2293
2294         * The SysVConsole= configuration option has been removed from
2295           system.conf parsing.
2296
2297         * The SysV search path is no longer exported on the D-Bus
2298           Manager object.
2299
2300         * The Names= option is been removed from unit file parsing.
2301
2302         * There's a new man page bootup(7) detailing the boot process.
2303
2304         * Every unit and every generator we ship with systemd now
2305           comes with full documentation. The self-explanatory boot is
2306           complete.
2307
2308         * A couple of services gained "systemd-" prefixes in their
2309           name if they wrap systemd code, rather than only external
2310           code. Among them fsck@.service which is now
2311           systemd-fsck@.service.
2312
2313         * The HaveWatchdog property has been removed from the D-Bus
2314           Manager object.
2315
2316         * systemd.confirm_spawn= on the kernel command line should now
2317           work sensibly.
2318
2319         * There's a new man page crypttab(5) which details all options
2320           we actually understand.
2321
2322         * systemd-nspawn gained a new --capability= switch to pass
2323           additional capabilities to the container.
2324
2325         * timedated will now read known NTP implementation unit names
2326           from /usr/lib/systemd/ntp-units.d/*.list,
2327           systemd-timedated-ntp.target has been removed.
2328
2329         * journalctl gained a new switch "-b" that lists log data of
2330           the current boot only.
2331
2332         * The notify socket is in the abstract namespace again, in
2333           order to support daemons which chroot() at start-up.
2334
2335         * There is a new Storage= configuration option for journald
2336           which allows configuration of where log data should go. This
2337           also provides a way to disable journal logging entirely, so
2338           that data collected is only forwarded to the console, the
2339           kernel log buffer or another syslog implementation.
2340
2341         * Many bugfixes and optimizations
2342
2343         Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
2344         David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
2345         Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
2346         Shawn Landden, Tom Gundersen
2347
2348 CHANGES WITH 185:
2349
2350         * "systemctl help <unit>" now shows the man page if one is
2351           available.
2352
2353         * Several new man pages have been added.
2354
2355         * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
2356           MaxLevelConsole= can now be specified in
2357           journald.conf. These options allow reducing the amount of
2358           data stored on disk or forwarded by the log level.
2359
2360         * TimerSlackNSec= can now be specified in system.conf for
2361           PID1. This allows system-wide power savings.
2362
2363         Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
2364         Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
2365         Matthias Clasen
2366
2367 CHANGES WITH 184:
2368
2369         * logind is now capable of (optionally) handling power and
2370           sleep keys as well as the lid switch.
2371
2372         * journalctl now understands the syntax "journalctl
2373           /usr/bin/avahi-daemon" to get all log output of a specific
2374           daemon.
2375
2376         * CapabilityBoundingSet= in system.conf now also influences
2377           the capability bound set of usermode helpers of the kernel.
2378
2379         Contributions from: Daniel Drake, Daniel J. Walsh, Gert
2380         Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
2381         Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
2382         Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
2383
2384 CHANGES WITH 183:
2385
2386         * Note that we skipped 139 releases here in order to set the
2387           new version to something that is greater than both udev's
2388           and systemd's most recent version number.
2389
2390         * udev: all udev sources are merged into the systemd source tree now.
2391           All future udev development will happen in the systemd tree. It
2392           is still fully supported to use the udev daemon and tools without
2393           systemd running, like in initramfs or other init systems. Building
2394           udev though, will require the *build* of the systemd tree, but
2395           udev can be properly *run* without systemd.
2396
2397         * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
2398           should be used to create dead device nodes as workarounds for broken
2399           subsystems.
2400
2401         * udev: RUN+="socket:..."  and udev_monitor_new_from_socket() is
2402           no longer supported. udev_monitor_new_from_netlink() needs to be
2403           used to subscribe to events.
2404
2405         * udev: when udevd is started by systemd, processes which are left
2406           behind by forking them off of udev rules, are unconditionally cleaned
2407           up and killed now after the event handling has finished. Services or
2408           daemons must be started as systemd services. Services can be
2409           pulled-in by udev to get started, but they can no longer be directly
2410           forked by udev rules.
2411
2412         * udev: the daemon binary is called systemd-udevd now and installed
2413           in /usr/lib/systemd/. Standalone builds or non-systemd systems need
2414           to adapt to that, create symlink, or rename the binary after building
2415           it.
2416
2417         * libudev no longer provides these symbols:
2418             udev_monitor_from_socket()
2419             udev_queue_get_failed_list_entry()
2420             udev_get_{dev,sys,run}_path()
2421           The versions number was bumped and symbol versioning introduced.
2422
2423         * systemd-loginctl and systemd-journalctl have been renamed
2424           to loginctl and journalctl to match systemctl.
2425
2426         * The config files: /etc/systemd/systemd-logind.conf and
2427           /etc/systemd/systemd-journald.conf have been renamed to
2428           logind.conf and journald.conf. Package updates should rename
2429           the files to the new names on upgrade.
2430
2431         * For almost all files the license is now LGPL2.1+, changed
2432           from the previous GPL2.0+. Exceptions are some minor stuff
2433           of udev (which will be changed to LGPL2.1 eventually, too),
2434           and the MIT licensed sd-daemon.[ch] library that is suitable
2435           to be used as drop-in files.
2436
2437         * systemd and logind now handle system sleep states, in
2438           particular suspending and hibernating.
2439
2440         * logind now implements a sleep/shutdown/idle inhibiting logic
2441           suitable for a variety of uses. Soonishly Lennart will blog
2442           about this in more detail.
2443
2444         * var-run.mount and var-lock.mount are no longer provided
2445           (which prevously bind mounted these directories to their new
2446           places). Distributions which have not converted these
2447           directories to symlinks should consider stealing these files
2448           from git history and add them downstream.
2449
2450         * We introduced the Documentation= field for units and added
2451           this to all our shipped units. This is useful to make it
2452           easier to explore the boot and the purpose of the various
2453           units.
2454
2455         * All smaller setup units (such as
2456           systemd-vconsole-setup.service) now detect properly if they
2457           are run in a container and are skipped when
2458           appropriate. This guarantees an entirely noise-free boot in
2459           Linux container environments such as systemd-nspawn.
2460
2461         * A framework for implementing offline system updates is now
2462           integrated, for details see:
2463           http://freedesktop.org/wiki/Software/systemd/SystemUpdates
2464
2465         * A new service type Type=idle is available now which helps us
2466           avoiding ugly interleaving of getty output and boot status
2467           messages.
2468
2469         * There's now a system-wide CapabilityBoundingSet= option to
2470           globally reduce the set of capabilities for the
2471           system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
2472           CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
2473           even CAP_NET_ADMIN system-wide for secure systems.
2474
2475         * There are now system-wide DefaultLimitXXX= options to
2476           globally change the defaults of the various resource limits
2477           for all units started by PID 1.
2478
2479         * Harald Hoyer's systemd test suite has been integrated into
2480           systemd which allows easy testing of systemd builds in qemu
2481           and nspawn. (This is really awesome! Ask us for details!)
2482
2483         * The fstab parser is now implemented as generator, not inside
2484           of PID 1 anymore.
2485
2486         * systemctl will now warn you if .mount units generated from
2487           /etc/fstab are out of date due to changes in fstab that
2488           haven't been read by systemd yet.
2489
2490         * systemd is now suitable for usage in initrds. Dracut has
2491           already been updated to make use of this. With this in place
2492           initrds get a slight bit faster but primarily are much
2493           easier to introspect and debug since "systemctl status" in
2494           the host system can be used to introspect initrd services,
2495           and the journal from the initrd is kept around too.
2496
2497         * systemd-delta has been added, a tool to explore differences
2498           between user/admin configuration and vendor defaults.
2499
2500         * PrivateTmp= now affects both /tmp and /var/tmp.
2501
2502         * Boot time status messages are now much prettier and feature
2503           proper english language. Booting up systemd has never been
2504           so sexy.
2505
2506         * Read-ahead pack files now include the inode number of all
2507           files to pre-cache. When the inode changes the pre-caching
2508           is not attempted. This should be nicer to deal with updated
2509           packages which might result in changes of read-ahead
2510           patterns.
2511
2512         * We now temporaritly lower the kernel's read_ahead_kb variable
2513           when collecting read-ahead data to ensure the kernel's
2514           built-in read-ahead does not add noise to our measurements
2515           of necessary blocks to pre-cache.
2516
2517         * There's now RequiresMountsFor= to add automatic dependencies
2518           for all mounts necessary for a specific file system path.
2519
2520         * MountAuto= and SwapAuto= have been removed from
2521           system.conf. Mounting file systems at boot has to take place
2522           in systemd now.
2523
2524         * nspawn now learned a new switch --uuid= to set the machine
2525           ID on the command line.
2526
2527         * nspawn now learned the -b switch to automatically search
2528           for an init system.
2529
2530         * vt102 is now the default TERM for serial TTYs, upgraded from
2531           vt100.
2532
2533         * systemd-logind now works on VT-less systems.
2534
2535         * The build tree has been reorganized. The individual
2536           components now have directories of their own.
2537
2538         * A new condition type ConditionPathIsReadWrite= is now available.
2539
2540         * nspawn learned the new -C switch to create cgroups for the
2541           container in other hierarchies.
2542
2543         * We now have support for hardware watchdogs, configurable in
2544           system.conf.
2545
2546         * The scheduled shutdown logic now has a public API.
2547
2548         * We now mount /tmp as tmpfs by default, but this can be
2549           masked and /etc/fstab can override it.
2550
2551         * Since udisks doesn't make use of /media anymore we are not
2552           mounting a tmpfs on it anymore.
2553
2554         * journalctl gained a new --local switch to only interleave
2555           locally generated journal files.
2556
2557         * We can now load the IMA policy at boot automatically.
2558
2559         * The GTK tools have been split off into a systemd-ui.
2560
2561         Contributions from: Andreas Schwab, Auke Kok, Ayan George,
2562         Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
2563         Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
2564         Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
2565         Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
2566         Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
2567         A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
2568         Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
2569         Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
2570         Gundersen
2571
2572 CHANGES WITH 44:
2573
2574         * This is mostly a bugfix release
2575
2576         * Support optional initialization of the machine ID from the
2577           KVM or container configured UUID.
2578
2579         * Support immediate reboots with "systemctl reboot -ff"
2580
2581         * Show /etc/os-release data in systemd-analyze output
2582
2583         * Many bugfixes for the journal, including endianness fixes and
2584           ensuring that disk space enforcement works
2585
2586         * sd-login.h is C++ comptaible again
2587
2588         * Extend the /etc/os-release format on request of the Debian
2589           folks
2590
2591         * We now refuse non-UTF8 strings used in various configuration
2592           and unit files. This is done to ensure we don't pass invalid
2593           data over D-Bus or expose it elsewhere.
2594
2595         * Register Mimo USB Screens as suitable for automatic seat
2596           configuration
2597
2598         * Read SELinux client context from journal clients in a race
2599           free fashion
2600
2601         * Reorder configuration file lookup order. /etc now always
2602           overrides /run in order to allow the administrator to always
2603           and unconditionally override vendor supplied or
2604           automatically generated data.
2605
2606         * The various user visible bits of the journal now have man
2607           pages. We still lack man pages for the journal API calls
2608           however.
2609
2610         * We now ship all man pages in HTML format again in the
2611           tarball.
2612
2613         Contributions from: Dave Reisner, Dirk Eibach, Frederic
2614         Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
2615         Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
2616         Reding
2617
2618 CHANGES WITH 43:
2619
2620         * This is mostly a bugfix release
2621
2622         * systems lacking /etc/os-release  are no longer supported.
2623
2624         * Various functionality updates to libsystemd-login.so
2625
2626         * Track class of PAM logins to distuingish greeters from
2627           normal user logins.
2628
2629         Contributions from: Kay Sievers, Lennart Poettering, Michael
2630         Biebl
2631
2632 CHANGES WITH 42:
2633
2634         * This is an important bugfix release for v41.
2635
2636         * Building man pages is now optional which should be useful
2637           for those building systemd from git but unwilling to install
2638           xsltproc.
2639
2640         * Watchdog support for supervising services is now usable. In
2641           a future release support for hardware watchdogs
2642           (i.e. /dev/watchdog) will be added building on this.
2643
2644         * Service start rate limiting is now configurable and can be
2645           turned off per service. When a start rate limit is hit a
2646           reboot can automatically be triggered.
2647
2648         * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
2649
2650         Contributions from: Benjamin Franzke, Bill Nottingham,
2651         Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
2652         Schmidt, Michał Górny, Piotr Drąg
2653
2654 CHANGES WITH 41:
2655
2656         * The systemd binary is installed /usr/lib/systemd/systemd now;
2657           An existing /sbin/init symlink needs to be adapted with the
2658           package update.
2659
2660         * The code that loads kernel modules has been ported to invoke
2661           libkmod directly, instead of modprobe. This means we do not
2662           support systems with module-init-tools anymore.
2663
2664         * Watchdog support is now already useful, but still not
2665           complete.
2666
2667         * A new kernel command line option systemd.setenv= is
2668           understood to set system wide environment variables
2669           dynamically at boot.
2670
2671         * We now limit the set of capabilities of systemd-journald.
2672
2673         * We now set SIGPIPE to ignore by default, since it only is
2674           useful in shell pipelines, and has little use in general
2675           code. This can be disabled with IgnoreSIPIPE=no in unit
2676           files.
2677
2678         Contributions from: Benjamin Franzke, Kay Sievers, Lennart
2679         Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
2680         William Douglas
2681
2682 CHANGES WITH 40:
2683
2684         * This is mostly a bugfix release
2685
2686         * We now expose the reason why a service failed in the
2687           "Result" D-Bus property.
2688
2689         * Rudimentary service watchdog support (will be completed over
2690           the next few releases.)
2691
2692         * When systemd forks off in order execute some service we will
2693           now immediately changes its argv[0] to reflect which process
2694           it will execute. This is useful to minimize the time window
2695           with a generic argv[0], which makes bootcharts more useful
2696
2697         Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
2698         Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
2699         Mike Kazantsev, Ray Strode
2700
2701 CHANGES WITH 39:
2702
2703         * This is mostly a test release, but incorporates many
2704           bugfixes.
2705
2706         * New systemd-cgtop tool to show control groups by their
2707           resource usage.
2708
2709         * Linking against libacl for ACLs is optional again. If
2710           disabled, support tracking device access for active logins
2711           goes becomes unavailable, and so does access to the user
2712           journals by the respective users.
2713
2714         * If a group "adm" exists, journal files are automatically
2715           owned by them, thus allow members of this group full access
2716           to the system journal as well as all user journals.
2717
2718         * The journal now stores the SELinux context of the logging
2719           client for all entries.
2720
2721         * Add C++ inclusion guards to all public headers
2722
2723         * New output mode "cat" in the journal to print only text
2724           messages, without any meta data like date or time.
2725
2726         * Include tiny X server wrapper as a temporary stop-gap to
2727           teach XOrg udev display enumeration. This is used by display
2728           managers such as gdm, and will go away as soon as XOrg
2729           learned native udev hotplugging for display devices.
2730
2731         * Add new systemd-cat tool for executing arbitrary programs
2732           with STDERR/STDOUT connected to the journal. Can also act as
2733           BSD logger replacement, and does so by default.
2734
2735         * Optionally store all locally generated coredumps in the
2736           journal along with meta data.
2737
2738         * systemd-tmpfiles learnt four new commands: n, L, c, b, for
2739           writing short strings to files (for usage for /sys), and for
2740           creating symlinks, character and block device nodes.
2741
2742         * New unit file option ControlGroupPersistent= to make cgroups
2743           persistent, following the mechanisms outlined in
2744           http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
2745
2746         * Support multiple local RTCs in a sane way
2747
2748         * No longer monopolize IO when replaying readahead data on
2749           rotating disks, since we might starve non-file-system IO to
2750           death, since fanotify() will not see accesses done by blkid,
2751           or fsck.
2752
2753         * Don't show kernel threads in systemd-cgls anymore, unless
2754           requested with new -k switch.
2755
2756         Contributions from: Dan Horák, Kay Sievers, Lennart
2757         Poettering, Michal Schmidt
2758
2759 CHANGES WITH 38:
2760
2761         * This is mostly a test release, but incorporates many
2762           bugfixes.
2763
2764         * The git repository moved to:
2765           git://anongit.freedesktop.org/systemd/systemd
2766           ssh://git.freedesktop.org/git/systemd/systemd
2767
2768         * First release with the journal
2769           http://0pointer.de/blog/projects/the-journal.html
2770
2771         * The journal replaces both systemd-kmsg-syslogd and
2772           systemd-stdout-bridge.
2773
2774         * New sd_pid_get_unit() API call in libsystemd-logind
2775
2776         * Many systemadm clean-ups
2777
2778         * Introduce remote-fs-pre.target which is ordered before all
2779           remote mounts and may be used to start services before all
2780           remote mounts.
2781
2782         * Added Mageia support
2783
2784         * Add bash completion for systemd-loginctl
2785
2786         * Actively monitor PID file creation for daemons which exit in
2787           the parent process before having finished writing the PID
2788           file in the daemon process. Daemons which do this need to be
2789           fixed (i.e. PID file creation must have finished before the
2790           parent exits), but we now react a bit more gracefully to them.
2791
2792         * Add colourful boot output, mimicking the well-known output
2793           of existing distributions.
2794
2795         * New option PassCredentials= for socket units, for
2796           compatibility with a recent kernel ABI breakage.
2797
2798         * /etc/rc.local is now hooked in via a generator binary, and
2799           thus will no longer act as synchronization point during
2800           boot.
2801
2802         * systemctl list-unit-files now supports --root=.
2803
2804         * systemd-tmpfiles now understands two new commands: z, Z for
2805           relabelling files according to the SELinux database. This is
2806           useful to apply SELinux labels to specific files in /sys,
2807           among other things.
2808
2809         * Output of SysV services is now forwarded to both the console
2810           and the journal by default, not only just the console.
2811
2812         * New man pages for all APIs from libsystemd-login.
2813
2814         * The build tree got reorganized and a the build system is a
2815           lot more modular allowing embedded setups to specifically
2816           select the components of systemd they are interested in.
2817
2818         * Support for Linux systems lacking the kernel VT subsystem is
2819           restored.
2820
2821         * configure's --with-rootdir= got renamed to
2822           --with-rootprefix= to follow the naming used by udev and
2823           kmod
2824
2825         * Unless specified otherwise we'll now install to /usr instead
2826           of /usr/local by default.
2827
2828         * Processes with '@' in argv[0][0] are now excluded from the
2829           final shut-down killing spree, following the logic explained
2830           in:
2831           http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
2832
2833         * All processes remaining in a service cgroup when we enter
2834           the START or START_PRE states are now killed with
2835           SIGKILL. That means it is no longer possible to spawn
2836           background processes from ExecStart= lines (which was never
2837           supported anyway, and bad style).
2838
2839         * New PropagateReloadTo=/PropagateReloadFrom= options to bind
2840           reloading of units together.
2841
2842         Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
2843         Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
2844         Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
2845         Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
2846         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek