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