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