chiark / gitweb /
build-sys: change all HAVE_DECL_ macros to HAVE_
[elogind.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 235:
4
5         * A new modprobe.d drop-in is now shipped by default that sets the
6           bonding module option max_bonds=0. This overrides the kernel default,
7           to avoid conflicts and ambiguity as to whether or not bond0 should be
8           managed by systemd-networkd or not. This resolves multiple issues
9           with bond0 properties not being applied, when bond0 is configured
10           with systemd-networkd. Distributors may choose to not package this,
11           however in that case users will be prevented from correctly managing
12           bond0 interface using systemd-networkd.
13
14         * systemd-analyze gained new verbs "get-log-level" and "get-log-target"
15           which print the logging level and target of the system manager. They
16           complement the existing "set-log-level" and "set-log-target" verbs
17           used to change those values.
18
19         * journald.conf gained a new boolean setting ReadKMsg= which defaults
20           to on. If turned off kernel log messages will not be read by
21           systemd-journald or included in the logs. It also gained a new
22           setting LineMax= for configuring the maximum line length in
23           STDOUT/STDERR log streams. The new default for this value is 48K, up
24           from the previous hardcoded 2048.
25
26         * A new unit setting RuntimeDirectoryPreserve= has been added, which
27           allows more detailed control of what to do with a runtime directory
28           configured with RuntimeDirectory= (i.e. a directory below /run or
29           $XDG_RUNTIME_DIR) after a unit is stopped.
30
31         * The RuntimeDirectory= setting for units gained support for creating
32           deeper subdirectories below /run or $XDG_RUNTIME_DIR, instead of just
33           one top-level directory.
34
35         * Units gained new options StateDirectory=, CacheDirectory=,
36           LogsDirectory= and ConfigurationDirectory= which are closely related
37           to RuntimeDirectory= but manage per-service directories below
38           /var/lib, /var/cache, /var/log and /etc. By making use of them it is
39           possible to write unit files which when activated automatically gain
40           properly owned service specific directories in these locations, thus
41           making unit files self-contained and increasing compatibility with
42           stateless systems and factory reset where /etc or /var are
43           unpopulated at boot. Matching these new settings there's also
44           StateDirectoryMode=, CacheDirectoryMode=, LogsDirectoryMode=,
45           ConfigurationDirectoryMode= for configuring the access mode of these
46           directories. These settings are particularly useful in combination
47           with DynamicUser=yes as they provide secure, properly-owned,
48           writable, and stateful locations for storage, excluded from the
49           sandbox that such services live in otherwise.
50
51         * Automake support has been removed from this release. systemd is now
52           Meson-only.
53
54         * systemd-journald will now aggressively cache client metadata during
55           runtime, speeding up log write performance under pressure. This comes
56           at a small price though: as much of the metadata is read
57           asynchronously from /proc/ (and isn't implicitly attached to log
58           datagrams by the kernel, like UID/GID/PID/SELinux are) this means the
59           metadata stored alongside a log entry might be slightly
60           out-of-date. Previously it could only be slightly newer than the log
61           message. The time window is small however, and given that the kernel
62           is unlikely to be improved anytime soon in this regard, this appears
63           acceptable to us.
64
65         * nss-myhostname/systemd-resolved will now by default synthesize an
66           A/AAAA resource record for the "_gateway" hostname, pointing to the
67           current default IP gateway. Previously it did that for the "gateway"
68           name, hampering adoption, as some distributions wanted to leave that
69           host name open for local use. The old behaviour may still be
70           requested at build time.
71
72         * systemd-networkd's [Address] section in .network files gained a new
73           Scope= setting for configuring the IP address scope. The [Network]
74           section gained a new boolean setting ConfigureWithoutCarrier= that
75           tells systemd-networkd to ignore link sensing when configuring the
76           device. The [DHCP] section gained a new Anonymize= boolean option for
77           turning on a number of options suggested in RFC 7844. A new
78           [RoutingPolicyRule] section has been added for configuring the IP
79           routing policy. The [Route] section has gained support for a new
80           Type= setting which permits configuring
81           blackhole/unreachable/prohibit routes.
82
83         * The [VRF] section in .netdev files gained a new Table= setting for
84           configuring the routing table to use. The [Tunnel] section gained a
85           new Independent= boolean field for configuring tunnels independent of
86           an underlying network interface. The [Bridge] section gained a new
87           GroupForwardMask= option for configuration of propagation of link
88           local frames between bridge ports.
89
90         * The WakeOnLan= setting in .link files gained support for a number of
91           new modes. A new TCP6SegmentationOffload= setting has been added for
92           configuring TCP/IPv6 hardware segmentation offload.
93
94         * The IPv6 RA sender implementation may now optionally send out RDNSS
95           and RDNSSL records to supply DNS configuration to peers.
96
97         * systemd-nspawn gained support for a new --system-call-filter= command
98           line option for adding and removing entries in the default system
99           call filter it applies. Moreover systemd-nspawn has been changed to
100           implement a system call whitelist instead of a blacklist.
101
102         * systemd-run gained support for a new --pipe command line option. If
103           used the STDIN/STDOUT/STDERR file descriptors passed to systemd-run
104           are directly passed on to the activated transient service
105           executable. This allows invoking arbitrary processes as systemd
106           services (for example to take benefit of dependency management,
107           accounting management, resource management or log management that is
108           done automatically for services) — while still allowing them to be
109           integrated in a classic UNIX shell pipeline.
110
111         * When a service sends RELOAD=1 via sd_notify() and reload propagation
112           using ReloadPropagationTo= is configured, a reload is now propagated
113           to configured units. (Previously this was only done on explicitly
114           requested reloads, using "systemctl reload" or an equivalent
115           command.)
116
117         * For each service unit a restart counter is now kept: it is increased
118           each time the service is restarted due to Restart=, and may be
119           queried using "systemctl show -p NRestarts …".
120
121         * New system call filter groups @aio, @sync, @chown, @setuid, @memlock,
122           @signal and @timer have been added, for usage with SystemCallFilter=
123           in unit files and the new --system-call-filter= command line option
124           of systemd-nspawn (see above).
125
126         * ExecStart= lines in unit files gained two new modifiers: when a
127           command line is prefixed with "!" the command will be executed as
128           configured, except for the credentials applied by
129           setuid()/setgid()/setgroups(). It is very similar to the pre-existing
130           "+", but does still apply namespacing options unlike "+". There's
131           also "!!" now, which is mostly identical, but becomes a NOP on
132           systems that support ambient capabilities. This is useful to write
133           unit files that work with ambient capabilities where possible but
134           automatically fall back to traditional privilege dropping mechanisms
135           on systems where this is not supported.
136
137         * ListenNetlink= settings in socket units now support RDMA netlink
138           sockets.
139
140         * A new unit file setting LockPersonality= has been added which permits
141           locking down the chosen execution domain ("personality") of a service
142           during runtime.
143
144         * A new special target "getty-pre.target" has been added, which is
145           ordered before all text logins, and may be used to order services
146           before textual logins acquire access to the console.
147
148         * systemd will now attempt to load the virtio-rng.ko kernel module very
149           early on if a VM environment supporting this is detected. This should
150           improve entropy during early boot in virtualized environments.
151
152         * A _netdev option is now supported in /etc/crypttab that operates in a
153           similar way as the same option in /etc/fstab: it permits configuring
154           encrypted devices that need to be ordered after the network is up.
155           Following this logic, two new special targets
156           remote-cryptsetup-pre.target and remote-cryptsetup.target have been
157           added that are to cryptsetup.target what remote-fs.target and
158           remote-fs-pre.target are to local-fs.target.
159
160         * Service units gained a new UnsetEnvironment= setting which permits
161           unsetting specific environment variables for services that are
162           normally passed to it (for example in order to mask out locale
163           settings for specific services that can't deal with it).
164
165         * Units acquired a new boolean option IPAccounting=. When turned on, IP
166           traffic accounting (packet count as well as byte count) is done for
167           the service, and shown as part of "systemctl status" or "systemd-run
168           --wait".
169
170         * Service units acquired two new options IPAddressAllow= and
171           IPAddressDeny=, taking a list of IPv4 or IPv6 addresses and masks,
172           for configuring a simple IP access control list for all sockets of
173           the unit. These options are available also on .slice and .socket
174           units, permitting flexible access list configuration for individual
175           services as well as groups of services (as defined by a slice unit),
176           including system-wide. Note that IP ACLs configured this way are
177           enforced on every single IPv4 and IPv6 socket created by any process
178           of the service unit, and apply to ingress as well as egress traffic.
179
180         * If CPUAccounting= or IPAccounting= is turned on for a unit a new
181           structured log message is generated each time the unit is stopped,
182           containing information about the consumed resources of this
183           invocation.
184
185         * A new setting KeyringMode= has been added to unit files, which may be
186           used to control how the kernel keyring is set up for executed
187           processes.
188
189         * "systemctl poweroff", "systemctl reboot", "systemctl halt",
190           "systemctl kexec" and "systemctl exit" are now always asynchronous in
191           behaviour (that is: these commands return immediately after the
192           operation was enqueued instead of waiting for the operation to
193           complete). Previously, "systemctl poweroff" and "systemctl reboot"
194           were asynchronous on systems using systemd-logind (i.e. almost
195           always, and like they were on sysvinit), and the other three commands
196           were unconditionally synchronous. With this release this is cleaned
197           up, and callers will see the same asynchronous behaviour on all
198           systems for all five operations.
199
200         * systemd-logind gained new Halt() and CanHalt() bus calls for halting
201           the system.
202
203         * .timer units now accept calendar specifications in other timezones
204           than UTC or the local timezone.
205
206         * The tmpfiles snippet var.conf has been changed to create
207           /var/log/btmp with access mode 0660 instead of 0600. It was owned by
208           the "utmp" group already, and it appears to be generally understood
209           that members of "utmp" can modify/flush the utmp/wtmp/lastlog/btmp
210           databases. Previously this was implemented correctly for all these
211           databases excepts btmp, which has been opened up like this now
212           too. Note that while the other databases are world-readable
213           (i.e. 0644), btmp is not and remains more restrictive.
214
215         * The systemd-resolve tool gained a new --reset-server-features
216           switch. When invoked like this systemd-resolved will forget
217           everything it learnt about the features supported by the configured
218           upstream DNS servers, and restarts the feature probing logic on the
219           next resolver look-up for them at the highest feature level
220           again.
221
222         * The status dump systemd-resolved sends to the logs upon receiving
223           SIGUSR1 now also includes information about all DNS servers it is
224           configured to use, and the features levels it probed for them.
225
226         Contributions from: Abdó Roig-Maranges, Alan Jenkins, Alexander
227         Kuleshov, Andreas Rammhold, Andrew Jeddeloh, Andrew Soutar, Ansgar
228         Burchardt, Beniamino Galvani, Benjamin Berg, Benjamin Robin, Charles
229         Huber, Christian Hesse, Daniel Berrange, Daniel Kahn Gillmor, Daniel
230         Mack, Daniel Rusek, Daniel Șerbănescu, Davide Cavalca, Dimitri John
231         Ledkov, Diogo Pereira, Djalal Harouni, Dmitriy Geels, Dmitry Torokhov,
232         ettavolt, Evgeny Vereshchagin, Fabio Kung, Felipe Sateler, Franck Bui,
233         Hans de Goede, Harald Hoyer, Insun Pyo, Ivan Kurnosov, Ivan Shapovalov,
234         Jakub Wilk, Jan Synacek, Jason Gunthorpe, Jeremy Bicha, Jérémy Rosen,
235         John Lin, jonasBoss, Jonathan Lebon, Jonathan Teh, Jon Ringle, Jörg
236         Thalheim, Jouke Witteveen, juga0, Justin Capella, Justin Michaud,
237         Kai-Heng Feng, Lennart Poettering, Lion Yang, Luca Bruno, Lucas
238         Werkmeister, Lukáš Nykrýn, Marcel Hollerbach, Marcus Lundblad, Martin
239         Pitt, Michael Biebl, Michael Grzeschik, Michal Sekletar, Mike Gilbert,
240         Neil Brown, Nicolas Iooss, Patrik Flykt, pEJipE, Piotr Drąg, Russell
241         Stuart, S. Fan, Shengyao Xue, Stefan Pietsch, Susant Sahani, Tejun Heo,
242         Thomas Miller, Thomas Sailer, Tobias Hunger, Tomasz Pala, Tom
243         Gundersen, Tommi Rantala, Topi Miettinen, Torstein Husebø, userwithuid,
244         Vasilis Liaskovitis, Vito Caputo, WaLyong Cho, William Douglas, Xiang
245         Fan, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
246
247         — Berlin, 2017-10-06
248
249 CHANGES WITH 234:
250
251         * Meson is now supported as build system in addition to Automake. It is
252           our plan to remove Automake in one of our next releases, so that
253           Meson becomes our exclusive build system. Hence, please start using
254           the Meson build system in your downstream packaging. There's plenty
255           of documentation around how to use Meson, the extremely brief
256           summary:
257
258               ./autogen.sh && ./configure && make && sudo make install
259
260           becomes:
261
262               meson build && ninja -C build && sudo ninja -C build install
263
264         * Unit files gained support for a new JobRunningTimeoutUSec= setting,
265           which permits configuring a timeout on the time a job is
266           running. This is particularly useful for setting timeouts on jobs for
267           .device units.
268
269         * Unit files gained two new options ConditionUser= and ConditionGroup=
270           for conditionalizing units based on the identity of the user/group
271           running a systemd user instance.
272
273         * systemd-networkd now understands a new FlowLabel= setting in the
274           [VXLAN] section of .network files, as well as a Priority= in
275           [Bridge], GVRP= + MVRP= + LooseBinding= + ReorderHeader= in [VLAN]
276           and GatewayOnlink= + IPv6Preference= + Protocol= in [Route]. It also
277           gained support for configuration of GENEVE links, and IPv6 address
278           labels. The [Network] section gained the new IPv6ProxyNDP= setting.
279
280         * .link files now understand a new Port= setting.
281
282         * systemd-networkd's DHCP support gained support for DHCP option 119
283           (domain search list).
284
285         * systemd-networkd gained support for serving IPv6 address ranges using
286           the Router Advertisment protocol. The new .network configuration
287           section [IPv6Prefix] may be used to configure the ranges to
288           serve. This is implemented based on a new, minimal, native server
289           implementation of RA.
290
291         * journalctl's --output= switch gained support for a new parameter
292           "short-iso-precise" for a mode where timestamps are shown as precise
293           ISO date values.
294
295         * systemd-udevd's "net_id" builtin may now generate stable network
296           interface names from IBM PowerVM VIO devices as well as ACPI platform
297           devices.
298
299         * MulticastDNS support in systemd-resolved may now be explicitly
300           enabled/disabled using the new MulticastDNS= configuration file
301           option.
302
303         * systemd-resolved may now optionally use libidn2 instead of the libidn
304           for processing internationalized domain names. Support for libidn2
305           should be considered experimental and should not be enabled by
306           default yet.
307
308         * "machinectl pull-tar" and related call may now do verification of
309           downloaded images using SUSE-style .sha256 checksum files in addition
310           to the already existing support for validating using Ubuntu-style
311           SHA256SUMS files.
312
313         * sd-bus gained support for a new sd_bus_message_appendv() call which
314           is va_list equivalent of sd_bus_message_append().
315
316         * sd-boot gained support for validating images using SHIM/MOK.
317
318         * The SMACK code learnt support for "onlycap".
319
320         * systemd-mount --umount is now much smarter in figuring out how to
321           properly unmount a device given its mount or device path.
322
323         * The code to call libnss_dns as a fallback from libnss_resolve when
324           the communication with systemd-resolved fails was removed. This
325           fallback was redundant and interfered with the [!UNAVAIL=return]
326           suffix. See nss-resolve(8) for the recommended configuration.
327
328         * systemd-logind may now be restarted without losing state. It stores
329           the file descriptors for devices it manages in the system manager
330           using the FDSTORE= mechanism. Please note that further changes in
331           other components may be required to make use of this (for example
332           Xorg has code to listen for stops of systemd-logind and terminate
333           itself when logind is stopped or restarted, in order to avoid using
334           stale file descriptors for graphical devices, which is now
335           counterproductive and must be reverted in order for restarts of
336           systemd-logind to be safe. See
337           https://cgit.freedesktop.org/xorg/xserver/commit/?id=dc48bd653c7e101.)
338
339         * All kernel install plugins are called with the environment variable
340           KERNEL_INSTALL_MACHINE_ID which is set to the machine ID given by
341           /etc/machine-id. If the file is missing or empty, the variable is
342           empty and BOOT_DIR_ABS is the path of a temporary directory which is
343           removed after all the plugins exit. So, if KERNEL_INSTALL_MACHINE_ID
344           is empty, all plugins should not put anything in BOOT_DIR_ABS.
345
346         Contributions from: Adrian Heine né Lang, Aggelos Avgerinos, Alexander
347         Kurtz, Alexandros Frantzis, Alexey Brodkin, Alex Lu, Amir Pakdel, Amir
348         Yalon, Anchor Cat, Anthony Parsons, Bastien Nocera, Benjamin Gilbert,
349         Benjamin Robin, Boucman, Charles Plessy, Chris Chiu, Chris Lamb,
350         Christian Brauner, Christian Hesse, Colin Walters, Daniel Drake,
351         Danielle Church, Daniel Molkentin, Daniel Rusek, Daniel Wang, Davide
352         Cavalca, David Herrmann, David Michael, Dax Kelson, Dimitri John
353         Ledkov, Djalal Harouni, Dušan Kazik, Elias Probst, Evgeny Vereshchagin,
354         Federico Di Pierro, Felipe Sateler, Felix Zhang, Franck Bui, Gary
355         Tierney, George McCollister, Giedrius Statkevičius, Hans de Goede,
356         hecke, Hendrik Westerberg, Hristo Venev, Ian Wienand, Insun Pyo, Ivan
357         Shapovalov, James Cowgill, James Hemsing, Janne Heß, Jan Synacek, Jason
358         Reeder, João Paulo Rechi Vita, John Paul Adrian Glaubitz, Jörg
359         Thalheim, Josef Andersson, Josef Gajdusek, Julian Mehne, Kai Krakow,
360         Krzysztof Jackiewicz, Lars Karlitski, Lennart Poettering, Lluís Gili,
361         Lucas Werkmeister, Lukáš Nykrýn, Łukasz Stelmach, Mantas Mikulėnas,
362         Marcin Bachry, Marcus Cooper, Mark Stosberg, Martin Pitt, Matija Skala,
363         Matt Clarkson, Matthew Garrett, Matthias Greiner, Matthijs van Duin,
364         Max Resch, Michael Biebl, Michal Koutný, Michal Sekletar, Michal
365         Soltys, Michal Suchanek, Mike Gilbert, Nate Clark, Nathaniel R. Lewis,
366         Neil Brown, Nikolai Kondrashov, Pascal S. de Kloe, Pat Riehecky, Patrik
367         Flykt, Paul Kocialkowski, Peter Hutterer, Philip Withnall, Piotr
368         Szydełko, Rafael Fontenelle, Ray Strode, Richard Maw, Roelf Wichertjes,
369         Ronny Chevalier, Sarang S. Dalal, Sjoerd Simons, slodki, Stefan
370         Schweter, Susant Sahani, Ted Wood, Thomas Blume, Thomas Haller, Thomas
371         H. P. Andersen, Timothée Ravier, Tobias Jungel, Tobias Stoeckmann, Tom
372         Gundersen, Tom Yan, Torstein Husebø, Umut Tezduyar Lindskog,
373         userwithuid, Vito Caputo, Waldemar Brodkorb, WaLyong Cho, Yu, Li-Yu,
374         Yusuke Nojima, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Дамјан
375         Георгиевски
376
377         — Berlin, 2017-07-12
378
379 CHANGES WITH 233:
380
381         * The "hybrid" control group mode has been modified to improve
382           compatibility with "legacy" cgroups-v1 setups. Specifically, the
383           "hybrid" setup of /sys/fs/cgroup is now pretty much identical to
384           "legacy" (including /sys/fs/cgroup/systemd as "name=systemd" named
385           cgroups-v1 hierarchy), the only externally visible change being that
386           the cgroups-v2 hierarchy is also mounted, to
387           /sys/fs/cgroup/unified. This should provide a large degree of
388           compatibility with "legacy" cgroups-v1, while taking benefit of the
389           better management capabilities of cgroups-v2.
390
391         * The default control group setup mode may be selected both a boot-time
392           via a set of kernel command line parameters (specifically:
393           systemd.unified_cgroup_hierarchy= and
394           systemd.legacy_systemd_cgroup_controller=), as well as a compile-time
395           default selected on the configure command line
396           (--with-default-hierarchy=). The upstream default is "hybrid"
397           (i.e. the cgroups-v1 + cgroups-v2 mixture discussed above) now, but
398           this will change in a future systemd version to be "unified" (pure
399           cgroups-v2 mode). The third option for the compile time option is
400           "legacy", to enter pure cgroups-v1 mode. We recommend downstream
401           distributions to default to "hybrid" mode for release distributions,
402           starting with v233. We recommend "unified" for development
403           distributions (specifically: distributions such as Fedora's rawhide)
404           as that's where things are headed in the long run. Use "legacy" for
405           greatest stability and compatibility only.
406
407         * Note one current limitation of "unified" and "hybrid" control group
408           setup modes: the kernel currently does not permit the systemd --user
409           instance (i.e. unprivileged code) to migrate processes between two
410           disconnected cgroup subtrees, even if both are managed and owned by
411           the user. This effectively means "systemd-run --user --scope" doesn't
412           work when invoked from outside of any "systemd --user" service or
413           scope. Specifically, it is not supported from session scopes. We are
414           working on fixing this in a future systemd version. (See #3388 for
415           further details about this.)
416
417         * DBus policy files are now installed into /usr rather than /etc. Make
418           sure your system has dbus >= 1.9.18 running before upgrading to this
419           version, or override the install path with --with-dbuspolicydir= .
420
421         * All python scripts shipped with systemd (specifically: the various
422           tests written in Python) now require Python 3.
423
424         * systemd unit tests can now run standalone (without the source or
425           build directories), and can be installed into /usr/lib/systemd/tests/
426           with 'make install-tests'.
427
428         * Note that from this version on, CONFIG_CRYPTO_USER_API_HASH,
429           CONFIG_CRYPTO_HMAC and CONFIG_CRYPTO_SHA256 need to be enabled in the
430           kernel.
431
432         * Support for the %c, %r, %R specifiers in unit files has been
433           removed. Specifiers are not supposed to be dependent on configuration
434           in the unit file itself (so that they resolve the same regardless
435           where used in the unit files), but these specifiers were influenced
436           by the Slice= option.
437
438         * The shell invoked by debug-shell.service now defaults to /bin/sh in
439           all cases. If distributions want to use a different shell for this
440           purpose (for example Fedora's /sbin/sushell) they need to specify
441           this explicitly at configure time using --with-debug-shell=.
442
443         * The confirmation spawn prompt has been reworked to offer the
444           following choices:
445
446            (c)ontinue, proceed without asking anymore
447            (D)ump, show the state of the unit
448            (f)ail, don't execute the command and pretend it failed
449            (h)elp
450            (i)nfo, show a short summary of the unit
451            (j)obs, show jobs that are in progress
452            (s)kip, don't execute the command and pretend it succeeded
453            (y)es, execute the command
454
455           The 'n' choice for the confirmation spawn prompt has been removed,
456           because its meaning was confusing.
457
458           The prompt may now also be redirected to an alternative console by
459           specifying the console as parameter to systemd.confirm_spawn=.
460
461         * Services of Type=notify require a READY=1 notification to be sent
462           during startup. If no such message is sent, the service now fails,
463           even if the main process exited with a successful exit code.
464
465         * Services that fail to start up correctly now always have their
466           ExecStopPost= commands executed. Previously, they'd enter "failed"
467           state directly, without executing these commands.
468
469         * The option MulticastDNS= of network configuration files has acquired
470           an actual implementation. With MulticastDNS=yes a host can resolve
471           names of remote hosts and reply to mDNS A and AAAA requests.
472
473         * When units are about to be started an additional check is now done to
474           ensure that all dependencies of type BindsTo= (when used in
475           combination with After=) have been started.
476
477         * systemd-analyze gained a new verb "syscall-filter" which shows which
478           system call groups are defined for the SystemCallFilter= unit file
479           setting, and which system calls they contain.
480
481         * A new system call filter group "@filesystem" has been added,
482           consisting of various file system related system calls. Group
483           "@reboot" has been added, covering reboot, kexec and shutdown related
484           calls. Finally, group "@swap" has been added covering swap
485           configuration related calls.
486
487         * A new unit file option RestrictNamespaces= has been added that may be
488           used to restrict access to the various process namespace types the
489           Linux kernel provides. Specifically, it may be used to take away the
490           right for a service unit to create additional file system, network,
491           user, and other namespaces. This sandboxing option is particularly
492           relevant due to the high amount of recently discovered namespacing
493           related vulnerabilities in the kernel.
494
495         * systemd-udev's .link files gained support for a new AutoNegotiation=
496           setting for configuring Ethernet auto-negotiation.
497
498         * systemd-networkd's .network files gained support for a new
499           ListenPort= setting in the [DHCP] section to explicitly configure the
500           UDP client port the DHCP client shall listen on.
501
502         * .network files gained a new Unmanaged= boolean setting for explicitly
503           excluding one or more interfaces from management by systemd-networkd.
504
505         * The systemd-networkd ProxyARP= option has been renamed to
506           IPV4ProxyARP=. Similarly, VXLAN-specific option ARPProxy= has been
507           renamed to ReduceARPProxy=. The old names continue to be available
508           for compatibility.
509
510         * systemd-networkd gained support for configuring IPv6 Proxy NDP
511           addresses via the new IPv6ProxyNDPAddress= .network file setting.
512
513         * systemd-networkd's bonding device support gained support for two new
514           configuration options ActiveSlave= and PrimarySlave=.
515
516         * The various options in the [Match] section of .network files gained
517           support for negative matching.
518
519         * New systemd-specific mount options are now understood in /etc/fstab:
520
521           x-systemd.mount-timeout= may be used to configure the maximum
522           permitted runtime of the mount command.
523
524           x-systemd.device-bound may be set to bind a mount point to its
525           backing device unit, in order to automatically remove a mount point
526           if its backing device is unplugged. This option may also be
527           configured through the new SYSTEMD_MOUNT_DEVICE_BOUND udev property
528           on the block device, which is now automatically set for all CDROM
529           drives, so that mounted CDs are automatically unmounted when they are
530           removed from the drive.
531
532           x-systemd.after= and x-systemd.before= may be used to explicitly
533           order a mount after or before another unit or mount point.
534
535         * Enqueued start jobs for device units are now automatically garbage
536           collected if there are no jobs waiting for them anymore.
537
538         * systemctl list-jobs gained two new switches: with --after, for every
539           queued job the jobs it's waiting for are shown; with --before the
540           jobs which it's blocking are shown.
541
542         * systemd-nspawn gained support for ephemeral boots from disk images
543           (or in other words: --ephemeral and --image= may now be
544           combined). Moreover, ephemeral boots are now supported for normal
545           directories, even if the backing file system is not btrfs. Of course,
546           if the file system does not support file system snapshots or
547           reflinks, the initial copy operation will be relatively expensive, but
548           this should still be suitable for many use cases.
549
550         * Calendar time specifications in .timer units now support
551           specifications relative to the end of a month by using "~" instead of
552           "-" as separator between month and day. For example, "*-02~03" means
553           "the third last day in February". In addition a new syntax for
554           repeated events has been added using the "/" character. For example,
555           "9..17/2:00" means "every two hours from 9am to 5pm".
556
557         * systemd-socket-proxyd gained a new parameter --connections-max= for
558           configuring the maximum number of concurrent connections.
559
560         * sd-id128 gained a new API for generating unique IDs for the host in a
561           way that does not leak the machine ID. Specifically,
562           sd_id128_get_machine_app_specific() derives an ID based on the
563           machine ID a in well-defined, non-reversible, stable way. This is
564           useful whenever an identifier for the host is needed but where the
565           identifier shall not be useful to identify the system beyond the
566           scope of the application itself. (Internally this uses HMAC-SHA256 as
567           keyed hash function using the machine ID as input.)
568
569         * NotifyAccess= gained a new supported value "exec". When set
570           notifications are accepted from all processes systemd itself invoked,
571           including all control processes.
572
573         * .nspawn files gained support for defining overlay mounts using the
574           Overlay= and OverlayReadOnly= options. Previously this functionality
575           was only available on the systemd-nspawn command line.
576
577         * systemd-nspawn's --bind= and --overlay= options gained support for
578           bind/overlay mounts whose source lies within the container tree by
579           prefixing the source path with "+".
580
581         * systemd-nspawn's --bind= and --overlay= options gained support for
582           automatically allocating a temporary source directory in /var/tmp
583           that is removed when the container dies. Specifically, if the source
584           directory is specified as empty string this mechanism is selected. An
585           example usage is --overlay=+/var::/var, which creates an overlay
586           mount based on the original /var contained in the image, overlayed
587           with a temporary directory in the host's /var/tmp. This way changes
588           to /var are automatically flushed when the container shuts down.
589
590         * systemd-nspawn --image= option does now permit raw file system block
591           devices (in addition to images containing partition tables, as
592           before).
593
594         * The disk image dissection logic in systemd-nspawn gained support for
595           automatically setting up LUKS encrypted as well as Verity protected
596           partitions. When a container is booted from an encrypted image the
597           passphrase is queried at start-up time. When a container with Verity
598           data is started, the root hash is search in a ".roothash" file
599           accompanying the disk image (alternatively, pass the root hash via
600           the new --root-hash= command line option).
601
602         * A new tool /usr/lib/systemd/systemd-dissect has been added that may
603           be used to dissect disk images the same way as systemd-nspawn does
604           it, following the Bootable Partition Specification. It may even be
605           used to mount disk images with complex partition setups (including
606           LUKS and Verity partitions) to a local host directory, in order to
607           inspect them. This tool is not considered public API (yet), and is
608           thus not installed into /usr/bin. Please do not rely on its
609           existence, since it might go away or be changed in later systemd
610           versions.
611
612         * A new generator "systemd-verity-generator" has been added, similar in
613           style to "systemd-cryptsetup-generator", permitting automatic setup of
614           Verity root partitions when systemd boots up. In order to make use of
615           this your partition setup should follow the Discoverable Partitions
616           Specification, and the GPT partition ID of the root file system
617           partition should be identical to the upper 128bit of the Verity root
618           hash. The GPT partition ID of the Verity partition protecting it
619           should be the lower 128bit of the Verity root hash. If the partition
620           image follows this model it is sufficient to specify a single
621           "roothash=" kernel command line argument to both configure which root
622           image and verity partition to use as well as the root hash for
623           it. Note that systemd-nspawn's Verity support follows the same
624           semantics, meaning that disk images with proper Verity data in place
625           may be booted in containers with systemd-nspawn as well as on
626           physical systems via the verity generator. Also note that the "mkosi"
627           tool available at https://github.com/systemd/mkosi has been updated
628           to generate Verity protected disk images following this scheme. In
629           fact, it has been updated to generate disk images that optionally
630           implement a complete UEFI SecureBoot trust chain, involving a signed
631           kernel and initrd image that incorporates such a root hash as well as
632           a Verity-enabled root partition.
633
634         * The hardware database (hwdb) udev supports has been updated to carry
635           accelerometer quirks.
636
637         * All system services are now run with a fresh kernel keyring set up
638           for them. The invocation ID is stored by default in it, thus
639           providing a safe, non-overridable way to determine the invocation
640           ID of each service.
641
642         * Service unit files gained new BindPaths= and BindReadOnlyPaths=
643           options for bind mounting arbitrary paths in a service-specific
644           way. When these options are used, arbitrary host or service files and
645           directories may be mounted to arbitrary locations in the service's
646           view.
647
648         * Documentation has been added that lists all of systemd's low-level
649           environment variables:
650
651           https://github.com/systemd/systemd/blob/master/ENVIRONMENT.md
652
653         * sd-daemon gained a new API sd_is_socket_sockaddr() for determining
654           whether a specific socket file descriptor matches a specified socket
655           address.
656
657         * systemd-firstboot has been updated to check for the
658           systemd.firstboot= kernel command line option. It accepts a boolean
659           and when set to false the first boot questions are skipped.
660
661         * systemd-fstab-generator has been updated to check for the
662           systemd.volatile= kernel command line option, which either takes an
663           optional boolean parameter or the special value "state". If used the
664           system may be booted in a "volatile" boot mode. Specifically,
665           "systemd.volatile" is used, the root directory will be mounted as
666           tmpfs, and only /usr is mounted from the actual root file system. If
667           "systemd.volatile=state" is used, the root directory will be mounted
668           as usual, but /var is mounted as tmpfs. This concept provides similar
669           functionality as systemd-nspawn's --volatile= option, but provides it
670           on physical boots. Use this option for implementing stateless
671           systems, or testing systems with all state and/or configuration reset
672           to the defaults. (Note though that many distributions are not
673           prepared to boot up without a populated /etc or /var, though.)
674
675         * systemd-gpt-auto-generator gained support for LUKS encrypted root
676           partitions. Previously it only supported LUKS encrypted partitions
677           for all other uses, except for the root partition itself.
678
679         * Socket units gained support for listening on AF_VSOCK sockets for
680           communication in virtualized QEMU environments.
681
682         * The "configure" script gained a new option --with-fallback-hostname=
683           for specifying the fallback hostname to use if none is configured in
684           /etc/hostname. For example, by specifying
685           --with-fallback-hostname=fedora it is possible to default to a
686           hostname of "fedora" on pristine installations.
687
688         * systemd-cgls gained support for a new --unit= switch for listing only
689           the control groups of a specific unit. Similar --user-unit= has been
690           added for listing only the control groups of a specific user unit.
691
692         * systemd-mount gained a new --umount switch for unmounting a mount or
693           automount point (and all mount/automount points below it).
694
695         * systemd will now refuse full configuration reloads (via systemctl
696           daemon-reload and related calls) unless at least 16MiB of free space
697           are available in /run. This is a safety precaution in order to ensure
698           that generators can safely operate after the reload completed.
699
700         * A new unit file option RootImage= has been added, which has a similar
701           effect as RootDirectory= but mounts the service's root directory from
702           a disk image instead of plain directory. This logic reuses the same
703           image dissection and mount logic that systemd-nspawn already uses,
704           and hence supports any disk images systemd-nspawn supports, including
705           those following the Discoverable Partition Specification, as well as
706           Verity enabled images. This option enables systemd to run system
707           services directly off disk images acting as resource bundles,
708           possibly even including full integrity data.
709
710         * A new MountAPIVFS= unit file option has been added, taking a boolean
711           argument. If enabled /proc, /sys and /dev (collectively called the
712           "API VFS") will be mounted for the service. This is only relevant if
713           RootDirectory= or RootImage= is used for the service, as these mounts
714           are of course in place in the host mount namespace anyway.
715
716         * systemd-nspawn gained support for a new --pivot-root= switch. If
717           specified the root directory within the container image is pivoted to
718           the specified mount point, while the original root disk is moved to a
719           different place. This option enables booting of ostree images
720           directly with systemd-nspawn.
721
722         * The systemd build scripts will no longer complain if the NTP server
723           addresses are not changed from the defaults. Google now supports
724           these NTP servers officially. We still recommend downstreams to
725           properly register an NTP pool with the NTP pool project though.
726
727         * coredumpctl gained a new "--reverse" option for printing the list
728           of coredumps in reverse order.
729
730         * coredumpctl will now show additional information about truncated and
731           inaccessible coredumps, as well as coredumps that are still being
732           processed. It also gained a new --quiet switch for suppressing
733           additional informational message in its output.
734
735         * coredumpctl gained support for only showing coredumps newer and/or
736           older than specific timestamps, using the new --since= and --until=
737           options, reminiscent of journalctl's options by the same name.
738
739         * The systemd-coredump logic has been improved so that it may be reused
740           to collect backtraces in non-compiled languages, for example in
741           scripting languages such as Python.
742
743         * machinectl will now show the UID shift of local containers, if user
744           namespacing is enabled for them.
745
746         * systemd will now optionally run "environment generator" binaries at
747           configuration load time. They may be used to add environment
748           variables to the environment block passed to services invoked. One
749           user environment generator is shipped by default that sets up
750           environment variables based on files dropped into /etc/environment.d
751           and ~/.config/environment.d/.
752
753         * systemd-resolved now includes the new, recently published 2017 DNSSEC
754           root key (KSK).
755
756         * hostnamed has been updated to report a new chassis type of
757           "convertible" to cover "foldable" laptops that can both act as a
758           tablet and as a laptop, such as various Lenovo Yoga devices.
759
760         Contributions from: Adrián López, Alexander Galanin, Alexander
761         Kochetkov, Alexandros Frantzis, Andrey Ulanov, Antoine Eiche, Baruch
762         Siach, Bastien Nocera, Benjamin Robin, Björn, Brandon Philips, Cédric
763         Schieli, Charles (Chas) Williams, Christian Hesse, Daniele Medri,
764         Daniel Drake, Daniel Rusek, Daniel Wagner, Dan Streetman, Dave Reisner,
765         David Glasser, David Herrmann, David Michael, Djalal Harouni, Dmitry
766         Khlebnikov, Dmitry Rozhkov, Dongsu Park, Douglas Christman, Earnestly,
767         Emil Soleyman, Eric Cook, Evgeny Vereshchagin, Felipe Sateler, Fionn
768         Cleary, Florian Klink, Francesco Brozzu, Franck Bui, Gabriel Rauter,
769         Gianluca Boiano, Giedrius Statkevičius, Graeme Lawes, Hans de Goede,
770         Harald Hoyer, Ian Kelling, Ivan Shapovalov, Jakub Wilk, Janne Heß, Jan
771         Synacek, Jason Reeder, Jonathan Boulle, Jörg Thalheim, Jouke Witteveen,
772         Karl Kraus, Kees Cook, Keith Busch, Kieran Colford, kilian-k, Lennart
773         Poettering, Lubomir Rintel, Lucas Werkmeister, Lukas Rusak, Maarten de
774         Vries, Maks Naumov, Mantas Mikulėnas, Marc-Andre Lureau, Marcin Bachry,
775         Mark Stosberg, Martin Ejdestig, Martin Pitt, Mauricio Faria de
776         Oliveira, micah, Michael Biebl, Michael Shields, Michal Schmidt, Michal
777         Sekletar, Michel Kraus, Mike Gilbert, Mikko Ylinen, Mirza Krak,
778         Namhyung Kim, nikolaof, peoronoob, Peter Hutterer, Peter Körner, Philip
779         Withnall, Piotr Drąg, Ray Strode, Reverend Homer, Rike-Benjamin
780         Schuppner, Robert Kreuzer, Ronny Chevalier, Ruslan Bilovol, sammynx,
781         Sergey Ptashnick, Sergiusz Urbaniak, Stefan Berger, Stefan Hajnoczi,
782         Stefan Schweter, Stuart McLaren, Susant Sahani, Sylvain Plantefève,
783         Taylor Smock, Tejun Heo, Thomas Blume, Thomas H. P. Andersen, Tibor
784         Nagy, Tobias Stoeckmann, Tom Gundersen, Torstein Husebø, Viktar
785         Vaŭčkievič, Viktor Mihajlovski, Vitaly Sulimov, Waldemar Brodkorb,
786         Walter Garcia-Fontes, Wim de With, Yassine Imounachen, Yi EungJun,
787         YunQiang Su, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Александр
788         Тихонов
789
790         — Berlin, 2017-03-01
791
792 CHANGES WITH 232:
793
794         * udev now runs with MemoryDenyWriteExecute=, RestrictRealtime= and
795           RestrictAddressFamilies= enabled. These sandboxing options should
796           generally be compatible with the various external udev call-out
797           binaries we are aware of, however there may be exceptions, in
798           particular when exotic languages for these call-outs are used. In
799           this case, consider turning off these settings locally.
800
801         * The new RemoveIPC= option can be used to remove IPC objects owned by
802           the user or group of a service when that service exits.
803
804         * The new ProtectKernelModules= option can be used to disable explicit
805           load and unload operations of kernel modules by a service. In
806           addition access to /usr/lib/modules is removed if this option is set.
807
808         * ProtectSystem= option gained a new value "strict", which causes the
809           whole file system tree with the exception of /dev, /proc, and /sys,
810           to be remounted read-only for a service.
811
812         * The new ProtectKernelTunables= option can be used to disable
813           modification of configuration files in /sys and /proc by a service.
814           Various directories and files are remounted read-only, so access is
815           restricted even if the file permissions would allow it.
816
817         * The new ProtectControlGroups= option can be used to disable write
818           access by a service to /sys/fs/cgroup.
819
820         * Various systemd services have been hardened with
821           ProtectKernelTunables=yes, ProtectControlGroups=yes,
822           RestrictAddressFamilies=.
823
824         * Support for dynamically creating users for the lifetime of a service
825           has been added. If DynamicUser=yes is specified, user and group IDs
826           will be allocated from the range 61184..65519 for the lifetime of the
827           service. They can be resolved using the new nss-systemd.so NSS
828           module. The module must be enabled in /etc/nsswitch.conf. Services
829           started in this way have PrivateTmp= and RemoveIPC= enabled, so that
830           any resources allocated by the service will be cleaned up when the
831           service exits. They also have ProtectHome=read-only and
832           ProtectSystem=strict enabled, so they are not able to make any
833           permanent modifications to the system.
834
835         * The nss-systemd module also always resolves root and nobody, making
836           it possible to have no /etc/passwd or /etc/group files in minimal
837           container or chroot environments.
838
839         * Services may be started with their own user namespace using the new
840           boolean PrivateUsers= option. Only root, nobody, and the uid/gid
841           under which the service is running are mapped. All other users are
842           mapped to nobody.
843
844         * Support for the cgroup namespace has been added to systemd-nspawn. If
845           supported by kernel, the container system started by systemd-nspawn
846           will have its own view of the cgroup hierarchy. This new behaviour
847           can be disabled using $SYSTEMD_NSPAWN_USE_CGNS environment variable.
848
849         * The new MemorySwapMax= option can be used to limit the maximum swap
850           usage under the unified cgroup hierarchy.
851
852         * Support for the CPU controller in the unified cgroup hierarchy has
853           been added, via the CPUWeight=, CPUStartupWeight=, CPUAccounting=
854           options. This controller requires out-of-tree patches for the kernel
855           and the support is provisional.
856
857         * Mount and automount units may now be created transiently
858           (i.e. dynamically at runtime via the bus API, instead of requiring
859           unit files in the file system).
860
861         * systemd-mount is a new tool which may mount file systems – much like
862           mount(8), optionally pulling in additional dependencies through
863           transient .mount and .automount units. For example, this tool
864           automatically runs fsck on a backing block device before mounting,
865           and allows the automount logic to be used dynamically from the
866           command line for establishing mount points. This tool is particularly
867           useful when dealing with removable media, as it will ensure fsck is
868           run – if necessary – before the first access and that the file system
869           is quickly unmounted after each access by utilizing the automount
870           logic. This maximizes the chance that the file system on the
871           removable media stays in a clean state, and if it isn't in a clean
872           state is fixed automatically.
873
874         * LazyUnmount=yes option for mount units has been added to expose the
875           umount --lazy option. Similarly, ForceUnmount=yes exposes the --force
876           option.
877
878         * /efi will be used as the mount point of the EFI boot partition, if
879           the directory is present, and the mount point was not configured
880           through other means (e.g. fstab). If /efi directory does not exist,
881           /boot will be used as before. This makes it easier to automatically
882           mount the EFI partition on systems where /boot is used for something
883           else.
884
885         * When operating on GPT disk images for containers, systemd-nspawn will
886           now mount the ESP to /boot or /efi according to the same rules as PID
887           1 running on a host. This allows tools like "bootctl" to operate
888           correctly within such containers, in order to make container images
889           bootable on physical systems.
890
891         * disk/by-id and disk/by-path symlinks are now created for NVMe drives.
892
893         * Two new user session targets have been added to support running
894           graphical sessions under the systemd --user instance:
895           graphical-session.target and graphical-session-pre.target. See
896           systemd.special(7) for a description of how those targets should be
897           used.
898
899         * The vconsole initialization code has been significantly reworked to
900           use KD_FONT_OP_GET/SET ioctls instead of KD_FONT_OP_COPY and better
901           support unicode keymaps. Font and keymap configuration will now be
902           copied to all allocated virtual consoles.
903
904         * FreeBSD's bhyve virtualization is now detected.
905
906         * Information recorded in the journal for core dumps now includes the
907           contents of /proc/mountinfo and the command line of the process at
908           the top of the process hierarchy (which is usually the init process
909           of the container).
910
911         * systemd-journal-gatewayd learned the --directory= option to serve
912           files from the specified location.
913
914         * journalctl --root=… can be used to peruse the journal in the
915           /var/log/ directories inside of a container tree. This is similar to
916           the existing --machine= option, but does not require the container to
917           be active.
918
919         * The hardware database has been extended to support
920           ID_INPUT_TRACKBALL, used in addition to ID_INPUT_MOUSE to identify
921           trackball devices.
922
923           MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL hwdb property has been added to
924           specify the click rate for mice which include a horizontal wheel with
925           a click rate that is different than the one for the vertical wheel.
926
927         * systemd-run gained a new --wait option that makes service execution
928           synchronous. (Specifically, the command will not return until the
929           specified service binary exited.)
930
931         * systemctl gained a new --wait option that causes the start command to
932           wait until the units being started have terminated again.
933
934         * A new journal output mode "short-full" has been added which displays
935           timestamps with abbreviated English day names and adds a timezone
936           suffix. Those timestamps include more information than the default
937           "short" output mode, and can be passed directly to journalctl's
938           --since= and --until= options.
939
940         * /etc/resolv.conf will be bind-mounted into containers started by
941           systemd-nspawn, if possible, so any changes to resolv.conf contents
942           are automatically propagated to the container.
943
944         * The number of instances for socket-activated services originating
945           from a single IP address can be limited with
946           MaxConnectionsPerSource=, extending the existing setting of
947           MaxConnections=.
948
949         * systemd-networkd gained support for vcan ("Virtual CAN") interface
950           configuration.
951
952         * .netdev and .network configuration can now be extended through
953           drop-ins.
954
955         * UDP Segmentation Offload, TCP Segmentation Offload, Generic
956           Segmentation Offload, Generic Receive Offload, Large Receive Offload
957           can be enabled and disabled using the new UDPSegmentationOffload=,
958           TCPSegmentationOffload=, GenericSegmentationOffload=,
959           GenericReceiveOffload=, LargeReceiveOffload= options in the
960           [Link] section of .link files.
961
962         * The Spanning Tree Protocol, Priority, Aging Time, and the Default
963           Port VLAN ID can be configured for bridge devices using the new STP=,
964           Priority=, AgeingTimeSec=, and DefaultPVID= settings in the [Bridge]
965           section of .netdev files.
966
967         * The route table to which routes received over DHCP or RA should be
968           added can be configured with the new RouteTable= option in the [DHCP]
969           and [IPv6AcceptRA] sections of .network files.
970
971         * The Address Resolution Protocol can be disabled on links managed by
972           systemd-networkd using the ARP=no setting in the [Link] section of
973           .network files.
974
975         * New environment variables $SERVICE_RESULT, $EXIT_CODE and
976           $EXIT_STATUS are set for ExecStop= and ExecStopPost= commands, and
977           encode information about the result and exit codes of the current
978           service runtime cycle.
979
980         * systemd-sysctl will now configure kernel parameters in the order
981           they occur in the configuration files. This matches what sysctl
982           has been traditionally doing.
983
984         * kernel-install "plugins" that are executed to perform various
985           tasks after a new kernel is added and before an old one is removed
986           can now return a special value to terminate the procedure and
987           prevent any later plugins from running.
988
989         * Journald's SplitMode=login setting has been deprecated. It has been
990           removed from documentation, and its use is discouraged. In a future
991           release it will be completely removed, and made equivalent to current
992           default of SplitMode=uid.
993
994         * Storage=both option setting in /etc/systemd/coredump.conf has been
995           removed. With fast LZ4 compression storing the core dump twice is not
996           useful.
997
998         * The --share-system systemd-nspawn option has been replaced with an
999           (undocumented) variable $SYSTEMD_NSPAWN_SHARE_SYSTEM, but the use of
1000           this functionality is discouraged. In addition the variables
1001           $SYSTEMD_NSPAWN_SHARE_NS_IPC, $SYSTEMD_NSPAWN_SHARE_NS_PID,
1002           $SYSTEMD_NSPAWN_SHARE_NS_UTS may be used to control the unsharing of
1003           individual namespaces.
1004
1005         * "machinectl list" now shows the IP address of running containers in
1006           the output, as well as OS release information.
1007
1008         * "loginctl list" now shows the TTY of each session in the output.
1009
1010         * sd-bus gained new API calls sd_bus_track_set_recursive(),
1011           sd_bus_track_get_recursive(), sd_bus_track_count_name(),
1012           sd_bus_track_count_sender(). They permit usage of sd_bus_track peer
1013           tracking objects in a "recursive" mode, where a single client can be
1014           counted multiple times, if it takes multiple references.
1015
1016         * sd-bus gained new API calls sd_bus_set_exit_on_disconnect() and
1017           sd_bus_get_exit_on_disconnect(). They may be used to to make a
1018           process using sd-bus automatically exit if the bus connection is
1019           severed.
1020
1021         * Bus clients of the service manager may now "pin" loaded units into
1022           memory, by taking an explicit reference on them. This is useful to
1023           ensure the client can retrieve runtime data about the service even
1024           after the service completed execution. Taking such a reference is
1025           available only for privileged clients and should be helpful to watch
1026           running services in a race-free manner, and in particular collect
1027           information about exit statuses and results.
1028
1029         * The nss-resolve module has been changed to strictly return UNAVAIL
1030           when communication via D-Bus with resolved failed, and NOTFOUND when
1031           a lookup completed but was negative. This means it is now possible to
1032           neatly configure fallbacks using nsswitch.conf result checking
1033           expressions. Taking benefit of this, the new recommended
1034           configuration line for the "hosts" entry in /etc/nsswitch.conf is:
1035
1036               hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
1037
1038         * A new setting CtrlAltDelBurstAction= has been added to
1039           /etc/systemd/system.conf which may be used to configure the precise
1040           behaviour if the user on the console presses Ctrl-Alt-Del more often
1041           than 7 times in 2s. Previously this would unconditionally result in
1042           an expedited, immediate reboot. With this new setting the precise
1043           operation may be configured in more detail, and also turned off
1044           entirely.
1045
1046         * In .netdev files two new settings RemoteChecksumTx= and
1047           RemoteChecksumRx= are now understood that permit configuring the
1048           remote checksumming logic for VXLAN networks.
1049
1050         * The service manager learnt a new "invocation ID" concept for invoked
1051           services. Each runtime cycle of a service will get a new invocation
1052           ID (a 128bit random UUID) assigned that identifies the current
1053           run of the service uniquely and globally. A new invocation ID
1054           is generated each time a service starts up. The journal will store
1055           the invocation ID of a service along with any logged messages, thus
1056           making the invocation ID useful for matching the online runtime of a
1057           service with the offline log data it generated in a safe way without
1058           relying on synchronized timestamps. In many ways this new service
1059           invocation ID concept is similar to the kernel's boot ID concept that
1060           uniquely and globally identifies the runtime of each boot. The
1061           invocation ID of a service is passed to the service itself via an
1062           environment variable ($INVOCATION_ID). A new bus call
1063           GetUnitByInvocationID() has been added that is similar to GetUnit()
1064           but instead of retrieving the bus path for a unit by its name
1065           retrieves it by its invocation ID. The returned path is valid only as
1066           long as the passed invocation ID is current.
1067
1068         * systemd-resolved gained a new "DNSStubListener" setting in
1069           resolved.conf. It either takes a boolean value or the special values
1070           "udp" and "tcp", and configures whether to enable the stub DNS
1071           listener on 127.0.0.53:53.
1072
1073         * IP addresses configured via networkd may now carry additional
1074           configuration settings supported by the kernel. New options include:
1075           HomeAddress=, DuplicateAddressDetection=, ManageTemporaryAddress=,
1076           PrefixRoute=, AutoJoin=.
1077
1078         * The PAM configuration fragment file for "user@.service" shipped with
1079           systemd (i.e. the --user instance of systemd) has been stripped to
1080           the minimum necessary to make the system boot. Previously, it
1081           contained Fedora-specific stanzas that did not apply to other
1082           distributions. It is expected that downstream distributions add
1083           additional configuration lines, matching their needs to this file,
1084           using it only as rough template of what systemd itself needs. Note
1085           that this reduced fragment does not even include an invocation of
1086           pam_limits which most distributions probably want to add, even though
1087           systemd itself does not need it. (There's also the new build time
1088           option --with-pamconfdir=no to disable installation of the PAM
1089           fragment entirely.)
1090
1091         * If PrivateDevices=yes is set for a service the CAP_SYS_RAWIO
1092           capability is now also dropped from its set (in addition to
1093           CAP_SYS_MKNOD as before).
1094
1095         * In service unit files it is now possible to connect a specific named
1096           file descriptor with stdin/stdout/stdout of an executed service. The
1097           name may be specified in matching .socket units using the
1098           FileDescriptorName= setting.
1099
1100         * A number of journal settings may now be configured on the kernel
1101           command line. Specifically, the following options are now understood:
1102           systemd.journald.max_level_console=,
1103           systemd.journald.max_level_store=,
1104           systemd.journald.max_level_syslog=, systemd.journald.max_level_kmsg=,
1105           systemd.journald.max_level_wall=.
1106
1107         * "systemctl is-enabled --full" will now show by which symlinks a unit
1108           file is enabled in the unit dependency tree.
1109
1110         * Support for VeraCrypt encrypted partitions has been added to the
1111           "cryptsetup" logic and /etc/crypttab.
1112
1113         * systemd-detect-virt gained support for a new --private-users switch
1114           that checks whether the invoking processes are running inside a user
1115           namespace. Similar, a new special value "private-users" for the
1116           existing ConditionVirtualization= setting has been added, permitting
1117           skipping of specific units in user namespace environments.
1118
1119         Contributions from: Alban Crequy, Alexander Kuleshov, Alfie John,
1120         Andreas Henriksson, Andrew Jeddeloh, Balázs Úr, Bart Rulon, Benjamin
1121         Richter, Ben Gamari, Ben Harris, Brian J. Murrell, Christian Brauner,
1122         Christian Rebischke, Clinton Roy, Colin Walters, Cristian Rodríguez,
1123         Daniel Hahler, Daniel Mack, Daniel Maixner, Daniel Rusek, Dan Dedrick,
1124         Davide Cavalca, David Herrmann, David Michael, Dennis Wassenberg,
1125         Djalal Harouni, Dongsu Park, Douglas Christman, Elias Probst, Eric
1126         Cook, Erik Karlsson, Evgeny Vereshchagin, Felipe Sateler, Felix Zhang,
1127         Franck Bui, George Hilliard, Giuseppe Scrivano, HATAYAMA Daisuke,
1128         Heikki Kemppainen, Hendrik Brueckner, hi117, Ismo Puustinen, Ivan
1129         Shapovalov, Jakub Filak, Jakub Wilk, Jan Synacek, Jason Kölker,
1130         Jean-Sébastien Bour, Jiří Pírko, Jonathan Boulle, Jorge Niedbalski,
1131         Keith Busch, kristbaum, Kyle Russell, Lans Zhang, Lennart Poettering,
1132         Leonardo Brondani Schenkel, Lucas Werkmeister, Luca Bruno, Lukáš
1133         Nykrýn, Maciek Borzecki, Mantas Mikulėnas, Marc-Antoine Perennou,
1134         Marcel Holtmann, Marcos Mello, Martin Ejdestig, Martin Pitt, Matej
1135         Habrnal, Maxime de Roucy, Michael Biebl, Michael Chapman, Michael Hoy,
1136         Michael Olbrich, Michael Pope, Michal Sekletar, Michal Soltys, Mike
1137         Gilbert, Nick Owens, Patrik Flykt, Paweł Szewczyk, Peter Hutterer,
1138         Piotr Drąg, Reid Price, Richard W.M. Jones, Roman Stingler, Ronny
1139         Chevalier, Seraphime Kirkovski, Stefan Schweter, Steve Muir, Susant
1140         Sahani, Tejun Heo, Thomas Blume, Thomas H. P. Andersen, Tiago Levit,
1141         Tobias Jungel, Tomáš Janoušek, Topi Miettinen, Torstein Husebø, Umut
1142         Tezduyar Lindskog, Vito Caputo, WaLyong Cho, Wilhelm Schuster, Yann
1143         E. MORIN, Yi EungJun, Yuki Inoguchi, Yu Watanabe, Zbigniew
1144         Jędrzejewski-Szmek, Zeal Jagannatha
1145
1146         — Santa Fe, 2016-11-03
1147
1148 CHANGES WITH 231:
1149
1150         * In service units the various ExecXYZ= settings have been extended
1151           with an additional special character as first argument of the
1152           assigned value: if the character '+' is used the specified command
1153           line it will be run with full privileges, regardless of User=,
1154           Group=, CapabilityBoundingSet= and similar options. The effect is
1155           similar to the existing PermissionsStartOnly= option, but allows
1156           configuration of this concept for each executed command line
1157           independently.
1158
1159         * Services may now alter the service watchdog timeout at runtime by
1160           sending a WATCHDOG_USEC= message via sd_notify().
1161
1162         * MemoryLimit= and related unit settings now optionally take percentage
1163           specifications. The percentage is taken relative to the amount of
1164           physical memory in the system (or in case of containers, the assigned
1165           amount of memory). This allows scaling service resources neatly with
1166           the amount of RAM available on the system. Similarly, systemd-logind's
1167           RuntimeDirectorySize= option now also optionally takes percentage
1168           values.
1169
1170         * In similar fashion TasksMax= takes percentage values now, too. The
1171           value is taken relative to the configured maximum number of processes
1172           on the system. The per-service task maximum has been changed to 15%
1173           using this functionality. (Effectively this is an increase of 512 →
1174           4915 for service units, given the kernel's default pid_max setting.)
1175
1176         * Calendar time specifications in .timer units now understand a ".."
1177           syntax for time ranges. Example: "4..7:10" may now be used for
1178           defining a timer that is triggered at 4:10am, 5:10am, 6:10am and
1179           7:10am every day.
1180
1181         * The InaccessableDirectories=, ReadOnlyDirectories= and
1182           ReadWriteDirectories= unit file settings have been renamed to
1183           InaccessablePaths=, ReadOnlyPaths= and ReadWritePaths= and may now be
1184           applied to all kinds of file nodes, and not just directories, with
1185           the exception of symlinks. Specifically these settings may now be
1186           used on block and character device nodes, UNIX sockets and FIFOS as
1187           well as regular files. The old names of these settings remain
1188           available for compatibility.
1189
1190         * systemd will now log about all service processes it kills forcibly
1191           (using SIGKILL) because they remained after the clean shutdown phase
1192           of the service completed. This should help identifying services that
1193           shut down uncleanly. Moreover if KillUserProcesses= is enabled in
1194           systemd-logind's configuration a similar log message is generated for
1195           processes killed at the end of each session due to this setting.
1196
1197         * systemd will now set the $JOURNAL_STREAM environment variable for all
1198           services whose stdout/stderr are connected to the Journal (which
1199           effectively means by default: all services). The variable contains
1200           the device and inode number of the file descriptor used for
1201           stdout/stderr. This may be used by invoked programs to detect whether
1202           their stdout/stderr is connected to the Journal, in which case they
1203           can switch over to direct Journal communication, thus being able to
1204           pass extended, structured metadata along with their log messages. As
1205           one example, this is now used by glib's logging primitives.
1206
1207         * When using systemd's default tmp.mount unit for /tmp, the mount point
1208           will now be established with the "nosuid" and "nodev" options. This
1209           avoids privilege escalation attacks that put traps and exploits into
1210           /tmp.  However, this might cause problems if you e. g. put container
1211           images or overlays into /tmp; if you need this, override tmp.mount's
1212           "Options=" with a drop-in, or mount /tmp from /etc/fstab with your
1213           desired options.
1214
1215         * systemd now supports the "memory" cgroup controller also on
1216           cgroupsv2.
1217
1218         * The systemd-cgtop tool now optionally takes a control group path as
1219           command line argument. If specified, the control group list shown is
1220           limited to subgroups of that group.
1221
1222         * The SystemCallFilter= unit file setting gained support for
1223           pre-defined, named system call filter sets. For example
1224           SystemCallFilter=@clock is now an effective way to make all clock
1225           changing-related system calls unavailable to a service. A number of
1226           similar pre-defined groups are defined. Writing system call filters
1227           for system services is simplified substantially with this new
1228           concept. Accordingly, all of systemd's own, long-running services now
1229           enable system call filtering based on this, by default.
1230
1231         * A new service setting MemoryDenyWriteExecute= has been added, taking
1232           a boolean value. If turned on, a service may no longer create memory
1233           mappings that are writable and executable at the same time. This
1234           enhances security for services where this is enabled as it becomes
1235           harder to dynamically write and then execute memory in exploited
1236           service processes. This option has been enabled for all of systemd's
1237           own long-running services.
1238
1239         * A new RestrictRealtime= service setting has been added, taking a
1240           boolean argument. If set the service's processes may no longer
1241           acquire realtime scheduling. This improves security as realtime
1242           scheduling may otherwise be used to easily freeze the system.
1243
1244         * systemd-nspawn gained a new switch --notify-ready= taking a boolean
1245           value. This may be used for requesting that the system manager inside
1246           of the container reports start-up completion to nspawn which then
1247           propagates this notification further to the service manager
1248           supervising nspawn itself. A related option NotifyReady= in .nspawn
1249           files has been added too. This functionality allows ordering of the
1250           start-up of multiple containers using the usual systemd ordering
1251           primitives.
1252
1253         * machinectl gained a new command "stop" that is an alias for
1254           "terminate".
1255
1256         * systemd-resolved gained support for contacting DNS servers on
1257           link-local IPv6 addresses.
1258
1259         * If systemd-resolved receives the SIGUSR2 signal it will now flush all
1260           its caches. A method call for requesting the same operation has been
1261           added to the bus API too, and is made available via "systemd-resolve
1262           --flush-caches".
1263
1264         * systemd-resolve gained a new --status switch. If passed a brief
1265           summary of the used DNS configuration with per-interface information
1266           is shown.
1267
1268         * resolved.conf gained a new Cache= boolean option, defaulting to
1269           on. If turned off local DNS caching is disabled. This comes with a
1270           performance penalty in particular when DNSSEC is enabled. Note that
1271           resolved disables its internal caching implicitly anyway, when the
1272           configured DNS server is on a host-local IP address such as ::1 or
1273           127.0.0.1, thus automatically avoiding double local caching.
1274
1275         * systemd-resolved now listens on the local IP address 127.0.0.53:53
1276           for DNS requests. This improves compatibility with local programs
1277           that do not use the libc NSS or systemd-resolved's bus APIs for name
1278           resolution. This minimal DNS service is only available to local
1279           programs and does not implement the full DNS protocol, but enough to
1280           cover local DNS clients. A new, static resolv.conf file, listing just
1281           this DNS server is now shipped in /usr/lib/systemd/resolv.conf. It is
1282           now recommended to make /etc/resolv.conf a symlink to this file in
1283           order to route all DNS lookups to systemd-resolved, regardless if
1284           done via NSS, the bus API or raw DNS packets. Note that this local
1285           DNS service is not as fully featured as the libc NSS or
1286           systemd-resolved's bus APIs. For example, as unicast DNS cannot be
1287           used to deliver link-local address information (as this implies
1288           sending a local interface index along), LLMNR/mDNS support via this
1289           interface is severely restricted. It is thus strongly recommended for
1290           all applications to use the libc NSS API or native systemd-resolved
1291           bus API instead.
1292
1293         * systemd-networkd's bridge support learned a new setting
1294           VLANFiltering= for controlling VLAN filtering. Moreover a new section
1295           in .network files has been added for configuring VLAN bridging in
1296           more detail: VLAN=, EgressUntagged=, PVID= in [BridgeVLAN].
1297
1298         * systemd-networkd's IPv6 Router Advertisement code now makes use of
1299           the DNSSL and RDNSS options. This means IPv6 DNS configuration may
1300           now be acquired without relying on DHCPv6. Two new options
1301           UseDomains= and UseDNS= have been added to configure this behaviour.
1302
1303         * systemd-networkd's IPv6AcceptRouterAdvertisements= option has been
1304           renamed IPv6AcceptRA=, without altering its behaviour. The old
1305           setting name remains available for compatibility reasons.
1306
1307         * The systemd-networkd VTI/VTI6 tunneling support gained new options
1308           Key=, InputKey= and OutputKey=.
1309
1310         * systemd-networkd gained support for VRF ("Virtual Routing Function")
1311           interface configuration.
1312
1313         * "systemctl edit" may now be used to create new unit files by
1314           specifying the --force switch.
1315
1316         * sd-event gained a new function sd_event_get_iteration() for
1317           requesting the current iteration counter of the event loop. It starts
1318           at zero and is increased by one with each event loop iteration.
1319
1320         * A new rpm macro %systemd_ordering is provided by the macros.systemd
1321           file. It can be used in lieu of %systemd_requires in packages which
1322           don't use any systemd functionality and are intended to be installed
1323           in minimal containers without systemd present. This macro provides
1324           ordering dependencies to ensure that if the package is installed in
1325           the same rpm transaction as systemd, systemd will be installed before
1326           the scriptlets for the package are executed, allowing unit presets
1327           to be handled.
1328
1329           New macros %_systemdgeneratordir and %_systemdusergeneratordir have
1330           been added to simplify packaging of generators.
1331
1332         * The os-release file gained VERSION_CODENAME field for the
1333           distribution nickname (e.g. VERSION_CODENAME=woody).
1334
1335         * New udev property UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG=1
1336           can be set to disable parsing of metadata and the creation
1337           of persistent symlinks for that device.
1338
1339         * The v230 change to tag framebuffer devices (/dev/fb*) with "uaccess"
1340           to make them available to logged-in users has been reverted.
1341
1342         * Much of the common code of the various systemd components is now
1343           built into an internal shared library libsystemd-shared-231.so
1344           (incorporating the systemd version number in the name, to be updated
1345           with future releases) that the components link to. This should
1346           decrease systemd footprint both in memory during runtime and on
1347           disk. Note that the shared library is not for public use, and is
1348           neither API not ABI stable, but is likely to change with every new
1349           released update. Packagers need to make sure that binaries
1350           linking to libsystemd-shared.so are updated in step with the
1351           library.
1352
1353         * Configuration for "mkosi" is now part of the systemd
1354           repository. mkosi is a tool to easily build legacy-free OS images,
1355           and is available on github: https://github.com/systemd/mkosi. If
1356           "mkosi" is invoked in the build tree a new raw OS image is generated
1357           incorporating the systemd sources currently being worked on and a
1358           clean, fresh distribution installation. The generated OS image may be
1359           booted up with "systemd-nspawn -b -i", qemu-kvm or on any physical
1360           UEFI PC. This functionality is particularly useful to easily test
1361           local changes made to systemd in a pristine, defined environment. See
1362           HACKING for details.
1363
1364         * configure learned the --with-support-url= option to specify the
1365           distribution's bugtracker.
1366
1367         Contributions from: Alban Crequy, Alessandro Puccetti, Alessio Igor
1368         Bogani, Alexander Kuleshov, Alexander Kurtz, Alex Gaynor, Andika
1369         Triwidada, Andreas Pokorny, Andreas Rammhold, Andrew Jeddeloh, Ansgar
1370         Burchardt, Atrotors, Benjamin Drung, Brian Boylston, Christian Hesse,
1371         Christian Rebischke, Daniele Medri, Daniel Mack, Dave Reisner, David
1372         Herrmann, David Michael, Djalal Harouni, Douglas Christman, Elias
1373         Probst, Evgeny Vereshchagin, Federico Mena Quintero, Felipe Sateler,
1374         Franck Bui, Harald Hoyer, Ian Lee, Ivan Shapovalov, Jakub Wilk, Jan
1375         Janssen, Jean-Sébastien Bour, John Paul Adrian Glaubitz, Jouke
1376         Witteveen, Kai Ruhnau, kpengboy, Kyle Walker, Lénaïc Huard, Lennart
1377         Poettering, Luca Bruno, Lukas Lösche, Lukáš Nykrýn, mahkoh, Marcel
1378         Holtmann, Martin Pitt, Marty Plummer, Matthieu Codron, Max Prokhorov,
1379         Michael Biebl, Michael Karcher, Michael Olbrich, Michał Bartoszkiewicz,
1380         Michal Sekletar, Michal Soltys, Minkyung, Muhammet Kara, mulkieran,
1381         Otto Wallenius, Pablo Lezaeta Reyes, Peter Hutterer, Ronny Chevalier,
1382         Rusty Bird, Stef Walter, Susant Sahani, Tejun Heo, Thomas Blume, Thomas
1383         Haller, Thomas H. P. Andersen, Tobias Jungel, Tom Gundersen, Tom Yan,
1384         Topi Miettinen, Torstein Husebø, Valentin Vidić, Viktar Vaŭčkievič,
1385         WaLyong Cho, Weng Xuetian, Werner Fink, Zbigniew Jędrzejewski-Szmek
1386
1387         — Berlin, 2016-07-25
1388
1389 CHANGES WITH 230:
1390
1391         * DNSSEC is now turned on by default in systemd-resolved (in
1392           "allow-downgrade" mode), but may be turned off during compile time by
1393           passing "--with-default-dnssec=no" to "configure" (and of course,
1394           during runtime with DNSSEC= in resolved.conf). We recommend
1395           downstreams to leave this on at least during development cycles and
1396           report any issues with the DNSSEC logic upstream. We are very
1397           interested in collecting feedback about the DNSSEC validator and its
1398           limitations in the wild. Note however, that DNSSEC support is
1399           probably nothing downstreams should turn on in stable distros just
1400           yet, as it might create incompatibilities with a few DNS servers and
1401           networks. We tried hard to make sure we downgrade to non-DNSSEC mode
1402           automatically whenever we detect such incompatible setups, but there
1403           might be systems we do not cover yet. Hence: please help us testing
1404           the DNSSEC code, leave this on where you can, report back, but then
1405           again don't consider turning this on in your stable, LTS or
1406           production release just yet. (Note that you have to enable
1407           nss-resolve in /etc/nsswitch.conf, to actually use systemd-resolved
1408           and its DNSSEC mode for host name resolution from local
1409           applications.)
1410
1411         * systemd-resolve conveniently resolves DANE records with the --tlsa
1412           option and OPENPGPKEY records with the --openpgp option. It also
1413           supports dumping raw DNS record data via the new --raw= switch.
1414
1415         * systemd-logind will now by default terminate user processes that are
1416           part of the user session scope unit (session-XX.scope) when the user
1417           logs out. This behavior is controlled by the KillUserProcesses=
1418           setting in logind.conf, and the previous default of "no" is now
1419           changed to "yes". This means that user sessions will be properly
1420           cleaned up after, but additional steps are necessary to allow
1421           intentionally long-running processes to survive logout.
1422
1423           While the user is logged in at least once, user@.service is running,
1424           and any service that should survive the end of any individual login
1425           session can be started at a user service or scope using systemd-run.
1426           systemd-run(1) man page has been extended with an example which shows
1427           how to run screen in a scope unit underneath user@.service. The same
1428           command works for tmux.
1429
1430           After the user logs out of all sessions, user@.service will be
1431           terminated too, by default, unless the user has "lingering" enabled.
1432           To effectively allow users to run long-term tasks even if they are
1433           logged out, lingering must be enabled for them. See loginctl(1) for
1434           details. The default polkit policy was modified to allow users to
1435           set lingering for themselves without authentication.
1436
1437           Previous defaults can be restored at compile time by the
1438           --without-kill-user-processes option to "configure".
1439
1440         * systemd-logind gained new configuration settings SessionsMax= and
1441           InhibitorsMax=, both with a default of 8192. It will not register new
1442           user sessions or inhibitors above this limit.
1443
1444         * systemd-logind will now reload configuration on SIGHUP.
1445
1446         * The unified cgroup hierarchy added in Linux 4.5 is now supported.
1447           Use systemd.unified_cgroup_hierarchy=1 on the kernel command line to
1448           enable. Also, support for the "io" cgroup controller in the unified
1449           hierarchy has been added, so that the "memory", "pids" and "io" are
1450           now the controllers that are supported on the unified hierarchy.
1451
1452           WARNING: it is not possible to use previous systemd versions with
1453           systemd.unified_cgroup_hierarchy=1 and the new kernel. Therefore it
1454           is necessary to also update systemd in the initramfs if using the
1455           unified hierarchy. An updated SELinux policy is also required.
1456
1457         * LLDP support has been extended, and both passive (receive-only) and
1458           active (sender) modes are supported. Passive mode ("routers-only") is
1459           enabled by default in systemd-networkd. Active LLDP mode is enabled
1460           by default for containers on the internal network. The "networkctl
1461           lldp" command may be used to list information gathered. "networkctl
1462           status" will also show basic LLDP information on connected peers now.
1463
1464         * The IAID and DUID unique identifier sent in DHCP requests may now be
1465           configured for the system and each .network file managed by
1466           systemd-networkd using the DUIDType=, DUIDRawData=, IAID= options.
1467
1468         * systemd-networkd gained support for configuring proxy ARP support for
1469           each interface, via the ProxyArp= setting in .network files. It also
1470           gained support for configuring the multicast querier feature of
1471           bridge devices, via the new MulticastQuerier= setting in .netdev
1472           files. Similarly, snooping on the IGMP traffic can be controlled
1473           via the new setting MulticastSnooping=.
1474
1475           A new setting PreferredLifetime= has been added for addresses
1476           configured in .network file to configure the lifetime intended for an
1477           address.
1478
1479           The systemd-networkd DHCP server gained the option EmitRouter=, which
1480           defaults to yes, to configure whether the DHCP Option 3 (Router)
1481           should be emitted.
1482
1483         * The testing tool /usr/lib/systemd/systemd-activate is renamed to
1484           systemd-socket-activate and installed into /usr/bin. It is now fully
1485           supported.
1486
1487         * systemd-journald now uses separate threads to flush changes to disk
1488           when closing journal files, thus reducing impact of slow disk I/O on
1489           logging performance.
1490
1491         * The sd-journal API gained two new calls
1492           sd_journal_open_directory_fd() and sd_journal_open_files_fd() which
1493           can be used to open journal files using file descriptors instead of
1494           file or directory paths. sd_journal_open_container() has been
1495           deprecated, sd_journal_open_directory_fd() should be used instead
1496           with the flag SD_JOURNAL_OS_ROOT.
1497
1498         * journalctl learned a new output mode "-o short-unix" that outputs log
1499           lines prefixed by their UNIX time (i.e. seconds since Jan 1st, 1970
1500           UTC). It also gained support for a new --no-hostname setting to
1501           suppress the hostname column in the family of "short" output modes.
1502
1503         * systemd-ask-password now optionally skips printing of the password to
1504           stdout with --no-output which can be useful in scripts.
1505
1506         * Framebuffer devices (/dev/fb*) and 3D printers and scanners
1507           (devices tagged with ID_MAKER_TOOL) are now tagged with
1508           "uaccess" and are available to logged in users.
1509
1510         * The DeviceAllow= unit setting now supports specifiers (with "%").
1511
1512         * "systemctl show" gained a new --value switch, which allows print a
1513           only the contents of a specific unit property, without also printing
1514           the property's name. Similar support was added to "show*" verbs
1515           of loginctl and machinectl that output "key=value" lists.
1516
1517         * A new unit type "generated" was added for files dynamically generated
1518           by generator tools. Similarly, a new unit type "transient" is used
1519           for unit files created using the runtime API. "systemctl enable" will
1520           refuse to operate on such files.
1521
1522         * A new command "systemctl revert" has been added that may be used to
1523           revert to the vendor version of a unit file, in case local changes
1524           have been made by adding drop-ins or overriding the unit file.
1525
1526         * "machinectl clean" gained a new verb to automatically remove all or
1527           just hidden container images.
1528
1529         * systemd-tmpfiles gained support for a new line type "e" for emptying
1530           directories, if they exist, without creating them if they don't.
1531
1532         * systemd-nspawn gained support for automatically patching the UID/GIDs
1533           of the owners and the ACLs of all files and directories in a
1534           container tree to match the UID/GID user namespacing range selected
1535           for the container invocation. This mode is enabled via the new
1536           --private-users-chown switch. It also gained support for
1537           automatically choosing a free, previously unused UID/GID range when
1538           starting a container, via the new --private-users=pick setting (which
1539           implies --private-users-chown). Together, these options for the first
1540           time make user namespacing for nspawn containers fully automatic and
1541           thus deployable. The systemd-nspawn@.service template unit file has
1542           been changed to use this functionality by default.
1543
1544         * systemd-nspawn gained a new --network-zone= switch, that allows
1545           creating ad-hoc virtual Ethernet links between multiple containers,
1546           that only exist as long as at least one container referencing them is
1547           running. This allows easy connecting of multiple containers with a
1548           common link that implements an Ethernet broadcast domain. Each of
1549           these network "zones" may be named relatively freely by the user, and
1550           may be referenced by any number of containers, but each container may
1551           only reference one of these "zones". On the lower level, this is
1552           implemented by an automatically managed bridge network interface for
1553           each zone, that is created when the first container referencing its
1554           zone is created and removed when the last one referencing its zone
1555           terminates.
1556
1557         * The default start timeout may now be configured on the kernel command
1558           line via systemd.default_timeout_start_sec=. It was already
1559           configurable via the DefaultTimeoutStartSec= option in
1560           /etc/systemd/system.conf.
1561
1562         * Socket units gained a new TriggerLimitIntervalSec= and
1563           TriggerLimitBurst= setting to configure a limit on the activation
1564           rate of the socket unit.
1565
1566         * The LimitNICE= setting now optionally takes normal UNIX nice values
1567           in addition to the raw integer limit value. If the specified
1568           parameter is prefixed with "+" or "-" and is in the range -20..19 the
1569           value is understood as UNIX nice value. If not prefixed like this it
1570           is understood as raw RLIMIT_NICE limit.
1571
1572         * Note that the effect of the PrivateDevices= unit file setting changed
1573           slightly with this release: the per-device /dev file system will be
1574           mounted read-only from this version on, and will have "noexec"
1575           set. This (minor) change of behavior might cause some (exceptional)
1576           legacy software to break, when PrivateDevices=yes is set for its
1577           service. Please leave PrivateDevices= off if you run into problems
1578           with this.
1579
1580         * systemd-bootchart has been split out to a separate repository:
1581           https://github.com/systemd/systemd-bootchart
1582
1583         * systemd-bus-proxyd has been removed, as kdbus is unlikely to still be
1584           merged into the kernel in its current form.
1585
1586         * The compatibility libraries libsystemd-daemon.so,
1587           libsystemd-journal.so, libsystemd-id128.so, and libsystemd-login.so
1588           which have been deprecated since systemd-209 have been removed along
1589           with the corresponding pkg-config files. All symbols provided by
1590           those libraries are provided by libsystemd.so.
1591
1592         * The Capabilities= unit file setting has been removed (it is ignored
1593           for backwards compatibility). AmbientCapabilities= and
1594           CapabilityBoundingSet= should be used instead.
1595
1596         * A new special target has been added, initrd-root-device.target,
1597           which creates a synchronization point for dependencies of the root
1598           device in early userspace. Initramfs builders must ensure that this
1599           target is now included in early userspace.
1600
1601         Contributions from: Alban Crequy, Alexander Kuleshov, Alexander Shopov,
1602         Alex Crawford, Andre Klärner, Andrew Eikum, Beniamino Galvani, Benjamin
1603         Robin, Biao Lu, Bjørnar Ness, Calvin Owens, Christian Hesse, Clemens
1604         Gruber, Colin Guthrie, Daniel Drake, Daniele Medri, Daniel J Walsh,
1605         Daniel Mack, Dan Nicholson, daurnimator, David Herrmann, David
1606         R. Hedges, Elias Probst, Emmanuel Gil Peyrot, EMOziko, Evgeny
1607         Vereshchagin, Federico, Felipe Sateler, Filipe Brandenburger, Franck
1608         Bui, frankheckenbach, gdamjan, Georgia Brikis, Harald Hoyer, Hendrik
1609         Brueckner, Hristo Venev, Iago López Galeiras, Ian Kelling, Ismo
1610         Puustinen, Jakub Wilk, Jaroslav Škarvada, Jeff Huang, Joel Holdsworth,
1611         John Paul Adrian Glaubitz, Jonathan Boulle, kayrus, Klearchos
1612         Chaloulos, Kyle Russell, Lars Uebernickel, Lennart Poettering, Lubomir
1613         Rintel, Lukáš Nykrýn, Mantas Mikulėnas, Marcel Holtmann, Martin Pitt,
1614         Michael Biebl, michaelolbrich, Michał Bartoszkiewicz, Michal Koutný,
1615         Michal Sekletar, Mike Frysinger, Mike Gilbert, Mingcong Bai, Ming Lin,
1616         mulkieran, muzena, Nalin Dahyabhai, Naohiro Aota, Nathan McSween,
1617         Nicolas Braud-Santoni, Patrik Flykt, Peter Hutterer, Peter Mattern,
1618         Petr Lautrbach, Petros Angelatos, Piotr Drąg, Rabin Vincent, Robert
1619         Węcławski, Ronny Chevalier, Samuel Tardieu, Stefan Saraev, Stefan
1620         Schallenberg aka nafets227, Steven Siloti, Susant Sahani, Sylvain
1621         Plantefève, Taylor Smock, Tejun Heo, Thomas Blume, Thomas Haller,
1622         Thomas H. P. Andersen, Tobias Klauser, Tom Gundersen, topimiettinen,
1623         Torstein Husebø, Umut Tezduyar Lindskog, Uwe Kleine-König, Victor Toso,
1624         Vinay Kulkarni, Vito Caputo, Vittorio G (VittGam), Vladimir Panteleev,
1625         Wieland Hoffmann, Wouter Verhelst, Yu Watanabe, Zbigniew
1626         Jędrzejewski-Szmek
1627
1628         — Fairfax, 2016-05-21
1629
1630 CHANGES WITH 229:
1631
1632         * The systemd-resolved DNS resolver service has gained a substantial
1633           set of new features, most prominently it may now act as a DNSSEC
1634           validating stub resolver. DNSSEC mode is currently turned off by
1635           default, but is expected to be turned on by default in one of the
1636           next releases. For now, we invite everybody to test the DNSSEC logic
1637           by setting DNSSEC=allow-downgrade in /etc/systemd/resolved.conf. The
1638           service also gained a full set of D-Bus interfaces, including calls
1639           to configure DNS and DNSSEC settings per link (for use by external
1640           network management software). systemd-resolved and systemd-networkd
1641           now distinguish between "search" and "routing" domains. The former
1642           are used to qualify single-label names, the latter are used purely
1643           for routing lookups within certain domains to specific links.
1644           resolved now also synthesizes RRs for all entries from /etc/hosts.
1645
1646         * The systemd-resolve tool (which is a client utility for
1647           systemd-resolved) has been improved considerably and is now fully
1648           supported and documented. Hence it has moved from /usr/lib/systemd to
1649           /usr/bin.
1650
1651         * /dev/disk/by-path/ symlink support has been (re-)added for virtio
1652           devices.
1653
1654         * The coredump collection logic has been reworked: when a coredump is
1655           collected it is now written to disk, compressed and processed
1656           (including stacktrace extraction) from a new instantiated service
1657           systemd-coredump@.service, instead of directly from the
1658           /proc/sys/kernel/core_pattern hook we provide. This is beneficial as
1659           processing large coredumps can take up a substantial amount of
1660           resources and time, and this previously happened entirely outside of
1661           systemd's service supervision. With the new logic the core_pattern
1662           hook only does minimal metadata collection before passing off control
1663           to the new instantiated service, which is configured with a time
1664           limit, a nice level and other settings to minimize negative impact on
1665           the rest of the system. Also note that the new logic will honour the
1666           RLIMIT_CORE setting of the crashed process, which now allows users
1667           and processes to turn off coredumping for their processes by setting
1668           this limit.
1669
1670         * The RLIMIT_CORE resource limit now defaults to "unlimited" for PID 1
1671           and all forked processes by default. Previously, PID 1 would leave
1672           the setting at "0" for all processes, as set by the kernel. Note that
1673           the resource limit traditionally has no effect on the generated
1674           coredumps on the system if the /proc/sys/kernel/core_pattern hook
1675           logic is used. Since the limit is now honoured (see above) its
1676           default has been changed so that the coredumping logic is enabled by
1677           default for all processes, while allowing specific opt-out.
1678
1679         * When the stacktrace is extracted from processes of system users, this
1680           is now done as "systemd-coredump" user, in order to sandbox this
1681           potentially security sensitive parsing operation. (Note that when
1682           processing coredumps of normal users this is done under the user ID
1683           of process that crashed, as before.) Packagers should take notice
1684           that it is now necessary to create the "systemd-coredump" system user
1685           and group at package installation time.
1686
1687         * The systemd-activate socket activation testing tool gained support
1688           for SOCK_DGRAM and SOCK_SEQPACKET sockets using the new --datagram
1689           and --seqpacket switches. It also has been extended to support both
1690           new-style and inetd-style file descriptor passing. Use the new
1691           --inetd switch to request inetd-style file descriptor passing.
1692
1693         * Most systemd tools now honor a new $SYSTEMD_COLORS environment
1694           variable, which takes a boolean value. If set to false, ANSI color
1695           output is disabled in the tools even when run on a terminal that
1696           supports it.
1697
1698         * The VXLAN support in networkd now supports two new settings
1699           DestinationPort= and PortRange=.
1700
1701         * A new systemd.machine_id= kernel command line switch has been added,
1702           that may be used to set the machine ID in /etc/machine-id if it is
1703           not initialized yet. This command line option has no effect if the
1704           file is already initialized.
1705
1706         * systemd-nspawn gained a new --as-pid2 switch that invokes any
1707           specified command line as PID 2 rather than PID 1 in the
1708           container. In this mode PID 1 is a minimal stub init process that
1709           implements the special POSIX and Linux semantics of PID 1 regarding
1710           signal and child process management. Note that this stub init process
1711           is implemented in nspawn itself and requires no support from the
1712           container image. This new logic is useful to support running
1713           arbitrary commands in the container, as normal processes are
1714           generally not prepared to run as PID 1.
1715
1716         * systemd-nspawn gained a new --chdir= switch for setting the current
1717           working directory for the process started in the container.
1718
1719         * "journalctl /dev/sda" will now output all kernel log messages for
1720           specified device from the current boot, in addition to all devices
1721           that are parents of it. This should make log output about devices
1722           pretty useful, as long as kernel drivers attach enough metadata to
1723           the log messages. (The usual SATA drivers do.)
1724
1725         * The sd-journal API gained two new calls
1726           sd_journal_has_runtime_files() and sd_journal_has_persistent_files()
1727           that report whether log data from /run or /var has been found.
1728
1729         * journalctl gained a new switch "--fields" that prints all journal
1730           record field names currently in use in the journal.  This is backed
1731           by two new sd-journal API calls sd_journal_enumerate_fields() and
1732           sd_journal_restart_fields().
1733
1734         * Most configurable timeouts in systemd now expect an argument of
1735           "infinity" to turn them off, instead of "0" as before. The semantics
1736           from now on is that a timeout of "0" means "now", and "infinity"
1737           means "never". To maintain backwards compatibility, "0" continues to
1738           turn off previously existing timeout settings.
1739
1740         * "systemctl reload-or-try-restart" has been renamed to "systemctl
1741           try-reload-or-restart" to clarify what it actually does: the "try"
1742           logic applies to both reloading and restarting, not just restarting.
1743           The old name continues to be accepted for compatibility.
1744
1745         * On boot-up, when PID 1 detects that the system clock is behind the
1746           release date of the systemd version in use, the clock is now set
1747           to the latter. Previously, this was already done in timesyncd, in order
1748           to avoid running with clocks set to the various clock epochs such as
1749           1902, 1938 or 1970. With this change the logic is now done in PID 1
1750           in addition to timesyncd during early boot-up, so that it is enforced
1751           before the first process is spawned by systemd. Note that the logic
1752           in timesyncd remains, as it is more comprehensive and ensures
1753           clock monotonicity by maintaining a persistent timestamp file in
1754           /var. Since /var is generally not available in earliest boot or the
1755           initrd, this part of the logic remains in timesyncd, and is not done
1756           by PID 1.
1757
1758         * Support for tweaking details in net_cls.class_id through the
1759           NetClass= configuration directive has been removed, as the kernel
1760           people have decided to deprecate that controller in cgroup v2.
1761           Userspace tools such as nftables are moving over to setting rules
1762           that are specific to the full cgroup path of a task, which obsoletes
1763           these controllers anyway. The NetClass= directive is kept around for
1764           legacy compatibility reasons. For a more in-depth description of the
1765           kernel change, please refer to the respective upstream commit:
1766
1767             https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bd1060a1d671
1768
1769         * A new service setting RuntimeMaxSec= has been added that may be used
1770           to specify a maximum runtime for a service. If the timeout is hit, the
1771           service is terminated and put into a failure state.
1772
1773         * A new service setting AmbientCapabilities= has been added. It allows
1774           configuration of additional Linux process capabilities that are
1775           passed to the activated processes. This is only available on very
1776           recent kernels.
1777
1778         * The process resource limit settings in service units may now be used
1779           to configure hard and soft limits individually.
1780
1781         * The various libsystemd APIs such as sd-bus or sd-event now publicly
1782           expose support for gcc's __attribute__((cleanup())) C extension.
1783           Specifically, for many object destructor functions alternative
1784           versions have been added that have names suffixed with "p" and take a
1785           pointer to a pointer to the object to destroy, instead of just a
1786           pointer to the object itself. This is useful because these destructor
1787           functions may be used directly as parameters to the cleanup
1788           construct. Internally, systemd has been a heavy user of this GCC
1789           extension for a long time, and with this change similar support is
1790           now available to consumers of the library outside of systemd. Note
1791           that by using this extension in your sources compatibility with old
1792           and strictly ANSI compatible C compilers is lost. However, all gcc or
1793           LLVM versions of recent years support this extension.
1794
1795         * Timer units gained support for a new setting RandomizedDelaySec= that
1796           allows configuring some additional randomized delay to the configured
1797           time. This is useful to spread out timer events to avoid load peaks in
1798           clusters or larger setups.
1799
1800         * Calendar time specifications now support sub-second accuracy.
1801
1802         * Socket units now support listening on SCTP and UDP-lite protocol
1803           sockets.
1804
1805         * The sd-event API now comes with a full set of man pages.
1806
1807         * Older versions of systemd contained experimental support for
1808           compressing journal files and coredumps with the LZ4 compressor that
1809           was not compatible with the lz4 binary (due to API limitations of the
1810           lz4 library). This support has been removed; only support for files
1811           compatible with the lz4 binary remains. This LZ4 logic is now
1812           officially supported and no longer considered experimental.
1813
1814         * The dkr image import logic has been removed again from importd. dkr's
1815           micro-services focus doesn't fit into the machine image focus of
1816           importd, and quickly got out of date with the upstream dkr API.
1817
1818         * Creation of the /run/lock/lockdev/ directory was dropped from
1819           tmpfiles.d/legacy.conf. Better locking mechanisms like flock() have
1820           been available for many years. If you still need this, you need to
1821           create your own tmpfiles.d config file with:
1822
1823                   d /run/lock/lockdev 0775 root lock -
1824
1825         Contributions from: Abdo Roig-Maranges, Alban Crequy, Aleksander
1826         Adamowski, Alexander Kuleshov, Andreas Pokorny, Andrei Borzenkov,
1827         Andrew Wilcox, Arthur Clement, Beniamino Galvani, Casey Schaufler,
1828         Chris Atkinson, Chris Mayo, Christian Hesse, Damjan Georgievski, Dan
1829         Dedrick, Daniele Medri, Daniel J Walsh, Daniel Korostil, Daniel Mack,
1830         David Herrmann, Dimitri John Ledkov, Dominik Hannen, Douglas Christman,
1831         Evgeny Vereshchagin, Filipe Brandenburger, Franck Bui, Gabor Kelemen,
1832         Harald Hoyer, Hayden Walles, Helmut Grohne, Henrik Kaare Poulsen,
1833         Hristo Venev, Hui Wang, Indrajit Raychaudhuri, Ismo Puustinen, Jakub
1834         Wilk, Jan Alexander Steffens (heftig), Jan Engelhardt, Jan Synacek,
1835         Joost Bremmer, Jorgen Schaefer, Karel Zak, Klearchos Chaloulos,
1836         lc85446, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel
1837         Holtmann, Martin Pitt, Michael Biebl, Michael Olbrich, Michael Scherer,
1838         Michał Górny, Michal Sekletar, Nicolas Cornu, Nicolas Iooss, Nils
1839         Carlson, nmartensen, nnz1024, Patrick Ohly, Peter Hutterer, Phillip Sz,
1840         Ronny Chevalier, Samu Kallio, Shawn Landden, Stef Walter, Susant
1841         Sahani, Sylvain Plantefève, Tadej Janež, Thomas Hindoe Paaboel
1842         Andersen, Tom Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito
1843         Caputo, WaLyong Cho, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
1844
1845         — Berlin, 2016-02-11
1846
1847 CHANGES WITH 228:
1848
1849         * A number of properties previously only settable in unit
1850           files are now also available as properties to set when
1851           creating transient units programmatically via the bus, as it
1852           is exposed with systemd-run's --property=
1853           setting. Specifically, these are: SyslogIdentifier=,
1854           SyslogLevelPrefix=, TimerSlackNSec=, OOMScoreAdjust=,
1855           EnvironmentFile=, ReadWriteDirectories=,
1856           ReadOnlyDirectories=, InaccessibleDirectories=,
1857           ProtectSystem=, ProtectHome=, RuntimeDirectory=.
1858
1859         * When creating transient services via the bus API it is now
1860           possible to pass in a set of file descriptors to use as
1861           STDIN/STDOUT/STDERR for the invoked process.
1862
1863         * Slice units may now be created transiently via the bus APIs,
1864           similar to the way service and scope units may already be
1865           created transiently.
1866
1867         * Wherever systemd expects a calendar timestamp specification
1868           (like in journalctl's --since= and --until= switches) UTC
1869           timestamps are now supported. Timestamps suffixed with "UTC"
1870           are now considered to be in Universal Time Coordinated
1871           instead of the local timezone. Also, timestamps may now
1872           optionally be specified with sub-second accuracy. Both of
1873           these additions also apply to recurring calendar event
1874           specification, such as OnCalendar= in timer units.
1875
1876         * journalctl gained a new "--sync" switch that asks the
1877           journal daemon to write all so far unwritten log messages to
1878           disk and sync the files, before returning.
1879
1880         * systemd-tmpfiles learned two new line types "q" and "Q" that
1881           operate like "v", but also set up a basic btrfs quota
1882           hierarchy when used on a btrfs file system with quota
1883           enabled.
1884
1885         * tmpfiles' "v", "q" and "Q" will now create a plain directory
1886           instead of a subvolume (even on a btrfs file system) if the
1887           root directory is a plain directory, and not a
1888           subvolume. This should simplify things with certain chroot()
1889           environments which are not aware of the concept of btrfs
1890           subvolumes.
1891
1892         * systemd-detect-virt gained a new --chroot switch to detect
1893           whether execution takes place in a chroot() environment.
1894
1895         * CPUAffinity= now takes CPU index ranges in addition to
1896           individual indexes.
1897
1898         * The various memory-related resource limit settings (such as
1899           LimitAS=) now understand the usual K, M, G, ... suffixes to
1900           the base of 1024 (IEC). Similar, the time-related resource
1901           limit settings understand the usual min, h, day, ...
1902           suffixes now.
1903
1904         * There's a new system.conf setting DefaultTasksMax= to
1905           control the default TasksMax= setting for services and
1906           scopes running on the system. (TasksMax= is the primary
1907           setting that exposes the "pids" cgroup controller on systemd
1908           and was introduced in the previous systemd release.) The
1909           setting now defaults to 512, which means services that are
1910           not explicitly configured otherwise will only be able to
1911           create 512 processes or threads at maximum, from this
1912           version on. Note that this means that thread- or
1913           process-heavy services might need to be reconfigured to set
1914           TasksMax= to a higher value. It is sufficient to set
1915           TasksMax= in these specific unit files to a higher value, or
1916           even "infinity". Similar, there's now a logind.conf setting
1917           UserTasksMax= that defaults to 4096 and limits the total
1918           number of processes or tasks each user may own
1919           concurrently. nspawn containers also have the TasksMax=
1920           value set by default now, to 8192. Note that all of this
1921           only has an effect if the "pids" cgroup controller is
1922           enabled in the kernel. The general benefit of these changes
1923           should be a more robust and safer system, that provides a
1924           certain amount of per-service fork() bomb protection.
1925
1926         * systemd-nspawn gained the new --network-veth-extra= switch
1927           to define additional and arbitrarily-named virtual Ethernet
1928           links between the host and the container.
1929
1930         * A new service execution setting PassEnvironment= has been
1931           added that allows importing select environment variables
1932           from PID1's environment block into the environment block of
1933           the service.
1934
1935         * Timer units gained support for a new RemainAfterElapse=
1936           setting which takes a boolean argument. It defaults to on,
1937           exposing behaviour unchanged to previous releases. If set to
1938           off, timer units are unloaded after they elapsed if they
1939           cannot elapse again. This is particularly useful for
1940           transient timer units, which shall not stay around longer
1941           than until they first elapse.
1942
1943         * systemd will now bump the net.unix.max_dgram_qlen to 512 by
1944           default now (the kernel default is 16). This is beneficial
1945           for avoiding blocking on AF_UNIX/SOCK_DGRAM sockets since it
1946           allows substantially larger numbers of queued
1947           datagrams. This should increase the capability of systemd to
1948           parallelize boot-up, as logging and sd_notify() are unlikely
1949           to stall execution anymore. If you need to change the value
1950           from the new defaults, use the usual sysctl.d/ snippets.
1951
1952         * The compression framing format used by the journal or
1953           coredump processing has changed to be in line with what the
1954           official LZ4 tools generate. LZ4 compression support in
1955           systemd was considered unsupported previously, as the format
1956           was not compatible with the normal tools. With this release
1957           this has changed now, and it is hence safe for downstream
1958           distributions to turn it on. While not compressing as well
1959           as the XZ, LZ4 is substantially faster, which makes
1960           it a good default choice for the compression logic in the
1961           journal and in coredump handling.
1962
1963         * Any reference to /etc/mtab has been dropped from
1964           systemd. The file has been obsolete since a while, but
1965           systemd refused to work on systems where it was incorrectly
1966           set up (it should be a symlink or non-existent). Please make
1967           sure to update to util-linux 2.27.1 or newer in conjunction
1968           with this systemd release, which also drops any reference to
1969           /etc/mtab. If you maintain a distribution make sure that no
1970           software you package still references it, as this is a
1971           likely source of bugs. There's also a glibc bug pending,
1972           asking for removal of any reference to this obsolete file:
1973
1974           https://sourceware.org/bugzilla/show_bug.cgi?id=19108
1975
1976           Note that only util-linux versions built with
1977           --enable-libmount-force-mountinfo are supported.
1978
1979         * Support for the ".snapshot" unit type has been removed. This
1980           feature turned out to be little useful and little used, and
1981           has now been removed from the core and from systemctl.
1982
1983         * The dependency types RequiresOverridable= and
1984           RequisiteOverridable= have been removed from systemd. They
1985           have been used only very sparingly to our knowledge and
1986           other options that provide a similar effect (such as
1987           systemctl --mode=ignore-dependencies) are much more useful
1988           and commonly used. Moreover, they were only half-way
1989           implemented as the option to control behaviour regarding
1990           these dependencies was never added to systemctl. By removing
1991           these dependency types the execution engine becomes a bit
1992           simpler. Unit files that use these dependencies should be
1993           changed to use the non-Overridable dependency types
1994           instead. In fact, when parsing unit files with these
1995           options, that's what systemd will automatically convert them
1996           too, but it will also warn, asking users to fix the unit
1997           files accordingly. Removal of these dependency types should
1998           only affect a negligible number of unit files in the wild.
1999
2000         * Behaviour of networkd's IPForward= option changed
2001           (again). It will no longer maintain a per-interface setting,
2002           but propagate one way from interfaces where this is enabled
2003           to the global kernel setting. The global setting will be
2004           enabled when requested by a network that is set up, but
2005           never be disabled again. This change was made to make sure
2006           IPv4 and IPv6 behaviour regarding packet forwarding is
2007           similar (as the Linux IPv6 stack does not support
2008           per-interface control of this setting) and to minimize
2009           surprises.
2010
2011         * In unit files the behaviour of %u, %U, %h, %s has
2012           changed. These specifiers will now unconditionally resolve
2013           to the various user database fields of the user that the
2014           systemd instance is running as, instead of the user
2015           configured in the specific unit via User=. Note that this
2016           effectively doesn't change much, as resolving of these
2017           specifiers was already turned off in the --system instance
2018           of systemd, as we cannot do NSS lookups from PID 1. In the
2019           --user instance of systemd these specifiers where correctly
2020           resolved, but hardly made any sense, since the user instance
2021           lacks privileges to do user switches anyway, and User= is
2022           hence useless. Moreover, even in the --user instance of
2023           systemd behaviour was awkward as it would only take settings
2024           from User= assignment placed before the specifier into
2025           account. In order to unify and simplify the logic around
2026           this the specifiers will now always resolve to the
2027           credentials of the user invoking the manager (which in case
2028           of PID 1 is the root user).
2029
2030         Contributions from: Andrew Jones, Beniamino Galvani, Boyuan
2031         Yang, Daniel Machon, Daniel Mack, David Herrmann, David
2032         Reynolds, David Strauss, Dongsu Park, Evgeny Vereshchagin,
2033         Felipe Sateler, Filipe Brandenburger, Franck Bui, Hristo
2034         Venev, Iago López Galeiras, Jan Engelhardt, Jan Janssen, Jan
2035         Synacek, Jesus Ornelas Aguayo, Karel Zak, kayrus, Kay Sievers,
2036         Lennart Poettering, Liu Yuan Yuan, Mantas Mikulėnas, Marcel
2037         Holtmann, Marcin Bachry, Marcos Alano, Marcos Mello, Mark
2038         Theunissen, Martin Pitt, Michael Marineau, Michael Olbrich,
2039         Michal Schmidt, Michal Sekletar, Mirco Tischler, Nick Owens,
2040         Nicolas Cornu, Patrik Flykt, Peter Hutterer, reverendhomer,
2041         Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Shawn Landden,
2042         Susant Sahani, Thomas Haller, Thomas Hindoe Paaboel Andersen,
2043         Tom Gundersen, Torstein Husebø, Vito Caputo, Zbigniew
2044         Jędrzejewski-Szmek
2045
2046         — Berlin, 2015-11-18
2047
2048 CHANGES WITH 227:
2049
2050         * systemd now depends on util-linux v2.27. More specifically,
2051           the newly added mount monitor feature in libmount now
2052           replaces systemd's former own implementation.
2053
2054         * libmount mandates /etc/mtab not to be regular file, and
2055           systemd now enforces this condition at early boot.
2056           /etc/mtab has been deprecated and warned about for a very
2057           long time, so systems running systemd should already have
2058           stopped having this file around as anything else than a
2059           symlink to /proc/self/mounts.
2060
2061         * Support for the "pids" cgroup controller has been added.  It
2062           allows accounting the number of tasks in a cgroup and
2063           enforcing limits on it. This adds two new setting
2064           TasksAccounting= and TasksMax= to each unit, as well as a
2065           global option DefaultTasksAccounting=.
2066
2067         * Support for the "net_cls" cgroup controller has been added.
2068           It allows assigning a net class ID to each task in the
2069           cgroup, which can then be used in firewall rules and traffic
2070           shaping configurations. Note that the kernel netfilter net
2071           class code does not currently work reliably for ingress
2072           packets on unestablished sockets.
2073
2074           This adds a new config directive called NetClass= to CGroup
2075           enabled units. Allowed values are positive numbers for fixed
2076           assignments and "auto" for picking a free value
2077           automatically.
2078
2079         * 'systemctl is-system-running' now returns 'offline' if the
2080           system is not booted with systemd. This command can now be
2081           used as a substitute for 'systemd-notify --booted'.
2082
2083         * Watchdog timeouts have been increased to 3 minutes for all
2084           in-tree service files. Apparently, disk IO issues are more
2085           frequent than we hoped, and user reported >1 minute waiting
2086           for disk IO.
2087
2088         * 'machine-id-commit' functionality has been merged into
2089           'machine-id-setup --commit'. The separate binary has been
2090           removed.
2091
2092         * The WorkingDirectory= directive in unit files may now be set
2093           to the special value '~'. In this case, the working
2094           directory is set to the home directory of the user
2095           configured in User=.
2096
2097         * "machinectl shell" will now open the shell in the home
2098           directory of the selected user by default.
2099
2100         * The CrashChVT= configuration file setting is renamed to
2101           CrashChangeVT=, following our usual logic of not
2102           abbreviating unnecessarily. The old directive is still
2103           supported for compat reasons. Also, this directive now takes
2104           an integer value between 1 and 63, or a boolean value. The
2105           formerly supported '-1' value for disabling stays around for
2106           compat reasons.
2107
2108         * The PrivateTmp=, PrivateDevices=, PrivateNetwork=,
2109           NoNewPrivileges=, TTYPath=, WorkingDirectory= and
2110           RootDirectory= properties can now be set for transient
2111           units.
2112
2113         * The systemd-analyze tool gained a new "set-log-target" verb
2114           to change the logging target the system manager logs to
2115           dynamically during runtime. This is similar to how
2116           "systemd-analyze set-log-level" already changes the log
2117           level.
2118
2119         * In nspawn /sys is now mounted as tmpfs, with only a selected
2120           set of subdirectories mounted in from the real sysfs. This
2121           enhances security slightly, and is useful for ensuring user
2122           namespaces work correctly.
2123
2124         * Support for USB FunctionFS activation has been added. This
2125           allows implementation of USB gadget services that are
2126           activated as soon as they are requested, so that they don't
2127           have to run continuously, similar to classic socket
2128           activation.
2129
2130         * The "systemctl exit" command now optionally takes an
2131           additional parameter that sets the exit code to return from
2132           the systemd manager when exiting. This is only relevant when
2133           running the systemd user instance, or when running the
2134           system instance in a container.
2135
2136         * sd-bus gained the new API calls sd_bus_path_encode_many()
2137           and sd_bus_path_decode_many() that allow easy encoding and
2138           decoding of multiple identifier strings inside a D-Bus
2139           object path. Another new call sd_bus_default_flush_close()
2140           has been added to flush and close per-thread default
2141           connections.
2142
2143         * systemd-cgtop gained support for a -M/--machine= switch to
2144           show the control groups within a certain container only.
2145
2146         * "systemctl kill" gained support for an optional --fail
2147           switch. If specified the requested operation will fail of no
2148           processes have been killed, because the unit had no
2149           processes attached, or similar.
2150
2151         * A new systemd.crash_reboot=1 kernel command line option has
2152           been added that triggers a reboot after crashing. This can
2153           also be set through CrashReboot= in systemd.conf.
2154
2155         * The RuntimeDirectory= setting now understands unit
2156           specifiers like %i or %f.
2157
2158         * A new (still internal) library API sd-ipv4acd has been added,
2159           that implements address conflict detection for IPv4. It's
2160           based on code from sd-ipv4ll, and will be useful for
2161           detecting DHCP address conflicts.
2162
2163         * File descriptors passed during socket activation may now be
2164           named. A new API sd_listen_fds_with_names() is added to
2165           access the names.  The default names may be overridden,
2166           either in the .socket file using the FileDescriptorName=
2167           parameter, or by passing FDNAME= when storing the file
2168           descriptors using sd_notify().
2169
2170         * systemd-networkd gained support for:
2171
2172             - Setting the IPv6 Router Advertisement settings via
2173               IPv6AcceptRouterAdvertisements= in .network files.
2174
2175             - Configuring the HelloTimeSec=, MaxAgeSec= and
2176               ForwardDelaySec= bridge parameters in .netdev files.
2177
2178             - Configuring PreferredSource= for static routes in
2179               .network files.
2180
2181         * The "ask-password" framework used to query for LUKS harddisk
2182           passwords or SSL passwords during boot gained support for
2183           caching passwords in the kernel keyring, if it is
2184           available. This makes sure that the user only has to type in
2185           a passphrase once if there are multiple objects to unlock
2186           with the same one. Previously, such password caching was
2187           available only when Plymouth was used; this moves the
2188           caching logic into the systemd codebase itself. The
2189           "systemd-ask-password" utility gained a new --keyname=
2190           switch to control which kernel keyring key to use for
2191           caching a password in. This functionality is also useful for
2192           enabling display managers such as gdm to automatically
2193           unlock the user's GNOME keyring if its passphrase, the
2194           user's password and the harddisk password are the same, if
2195           gdm-autologin is used.
2196
2197         * When downloading tar or raw images using "machinectl
2198           pull-tar" or "machinectl pull-raw", a matching ".nspawn"
2199           file is now also downloaded, if it is available and stored
2200           next to the image file.
2201
2202         * Units of type ".socket" gained a new boolean setting
2203           Writable= which is only useful in conjunction with
2204           ListenSpecial=. If true, enables opening the specified
2205           special file in O_RDWR mode rather than O_RDONLY mode.
2206
2207         * systemd-rfkill has been reworked to become a singleton
2208           service that is activated through /dev/rfkill on each rfkill
2209           state change and saves the settings to disk. This way,
2210           systemd-rfkill is now compatible with devices that exist
2211           only intermittendly, and even restores state if the previous
2212           system shutdown was abrupt rather than clean.
2213
2214         * The journal daemon gained support for vacuuming old journal
2215           files controlled by the number of files that shall remain,
2216           in addition to the already existing control by size and by
2217           date. This is useful as journal interleaving performance
2218           degrades with too many separate journal files, and allows
2219           putting an effective limit on them. The new setting defaults
2220           to 100, but this may be changed by setting SystemMaxFiles=
2221           and RuntimeMaxFiles= in journald.conf. Also, the
2222           "journalctl" tool gained the new --vacuum-files= switch to
2223           manually vacuum journal files to leave only the specified
2224           number of files in place.
2225
2226         * udev will now create /dev/disk/by-path links for ATA devices
2227           on kernels where that is supported.
2228
2229         * Galician, Serbian, Turkish and Korean translations were added.
2230
2231         Contributions from: Aaro Koskinen, Alban Crequy, Beniamino
2232         Galvani, Benjamin Robin, Branislav Blaskovic, Chen-Han Hsiao
2233         (Stanley), Daniel Buch, Daniel Machon, Daniel Mack, David
2234         Herrmann, David Milburn, doubleodoug, Evgeny Vereshchagin,
2235         Felipe Franciosi, Filipe Brandenburger, Fran Dieguez, Gabriel
2236         de Perthuis, Georg Müller, Hans de Goede, Hendrik Brueckner,
2237         Ivan Shapovalov, Jacob Keller, Jan Engelhardt, Jan Janssen,
2238         Jan Synacek, Jens Kuske, Karel Zak, Kay Sievers, Krzesimir
2239         Nowak, Krzysztof Kotlenga, Lars Uebernickel, Lennart
2240         Poettering, Lukas Nykryn, Łukasz Stelmach, Maciej Wereski,
2241         Marcel Holtmann, Marius Thesing, Martin Pitt, Michael Biebl,
2242         Michael Gebetsroither, Michal Schmidt, Michal Sekletar, Mike
2243         Gilbert, Muhammet Kara, nazgul77, Nicolas Cornu, NoXPhasma,
2244         Olof Johansson, Patrik Flykt, Pawel Szewczyk, reverendhomer,
2245         Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Susant Sahani,
2246         Sylvain Plantefève, Thomas Haller, Thomas Hindoe Paaboel
2247         Andersen, Tom Gundersen, Tom Lyon, Viktar Vauchkevich,
2248         Zbigniew Jędrzejewski-Szmek, Марко М. Костић
2249
2250         — Berlin, 2015-10-07
2251
2252 CHANGES WITH 226:
2253
2254         * The DHCP implementation of systemd-networkd gained a set of
2255           new features:
2256
2257           - The DHCP server now supports emitting DNS and NTP
2258             information. It may be enabled and configured via
2259             EmitDNS=, DNS=, EmitNTP=, and NTP=. If transmission of DNS
2260             and NTP information is enabled, but no servers are
2261             configured, the corresponding uplink information (if there
2262             is any) is propagated.
2263
2264           - Server and client now support transmission and reception
2265             of timezone information. It can be configured via the
2266             newly introduced network options UseTimezone=,
2267             EmitTimezone=, and Timezone=.  Transmission of timezone
2268             information is enabled between host and containers by
2269             default now: the container will change its local timezone
2270             to what the host has set.
2271
2272           - Lease timeouts can now be configured via
2273             MaxLeaseTimeSec= and DefaultLeaseTimeSec=.
2274
2275           - The DHCP server improved on the stability of
2276             leases. Clients are more likely to get the same lease
2277             information back, even if the server loses state.
2278
2279           - The DHCP server supports two new configuration options to
2280             control the lease address pool metrics, PoolOffset= and
2281             PoolSize=.
2282
2283         * The encapsulation limit of tunnels in systemd-networkd may
2284           now be configured via 'EncapsulationLimit='. It allows
2285           modifying the maximum additional levels of encapsulation
2286           that are permitted to be prepended to a packet.
2287
2288         * systemd now supports the concept of user buses replacing
2289           session buses, if used with dbus-1.10 (and enabled via dbus
2290           --enable-user-session). It previously only supported this on
2291           kdbus-enabled systems, and this release expands this to
2292           'dbus-daemon' systems.
2293
2294         * systemd-networkd now supports predictable interface names
2295           for virtio devices.
2296
2297         * systemd now optionally supports the new Linux kernel
2298           "unified" control group hierarchy. If enabled via the kernel
2299           command-line option 'systemd.unified_cgroup_hierarchy=1',
2300           systemd will try to mount the unified cgroup hierarchy
2301           directly on /sys/fs/cgroup. If not enabled, or not
2302           available, systemd will fall back to the legacy cgroup
2303           hierarchy setup, as before. Host system and containers can
2304           mix and match legacy and unified hierarchies as they
2305           wish. nspawn understands the $UNIFIED_CGROUP_HIERARCHY
2306           environment variable to individually select the hierarchy to
2307           use for executed containers. By default, nspawn will use the
2308           unified hierarchy for the containers if the host uses the
2309           unified hierarchy, and the legacy hierarchy otherwise.
2310           Please note that at this point the unified hierarchy is an
2311           experimental kernel feature and is likely to change in one
2312           of the next kernel releases.  Therefore, it should not be
2313           enabled by default in downstream distributions yet. The
2314           minimum required kernel version for the unified hierarchy to
2315           work is 4.2. Note that when the unified hierarchy is used
2316           for the first time delegated access to controllers is
2317           safe. Because of this systemd-nspawn containers will get
2318           access to controllers now, as will systemd user
2319           sessions. This means containers and user sessions may now
2320           manage their own resources, partitioning up what the system
2321           grants them.
2322
2323         * A new special scope unit "init.scope" has been introduced
2324           that encapsulates PID 1 of the system. It may be used to
2325           determine resource usage and enforce resource limits on PID
2326           1 itself. PID 1 hence moved out of the root of the control
2327           group tree.
2328
2329         * The cgtop tool gained support for filtering out kernel
2330           threads when counting tasks in a control group. Also, the
2331           count of processes is now recursively summed up by
2332           default. Two options -k and --recursive= have been added to
2333           revert to old behaviour. The tool has also been updated to
2334           work correctly in containers now.
2335
2336         * systemd-nspawn's --bind= and --bind-ro= options have been
2337           extended to allow creation of non-recursive bind mounts.
2338
2339         * libsystemd gained two new calls sd_pid_get_cgroup() and
2340           sd_peer_get_cgroup() which return the control group path of
2341           a process or peer of a connected AF_UNIX socket. This
2342           function call is particularly useful when implementing
2343           delegated subtrees support in the control group hierarchy.
2344
2345         * The "sd-event" event loop API of libsystemd now supports
2346           correct dequeuing of real-time signals, without losing
2347           signal events.
2348
2349         * When systemd requests a PolicyKit decision when managing
2350           units it will now add additional fields to the request,
2351           including unit name and desired operation. This enables more
2352           powerful PolicyKit policies, that make decisions depending
2353           on these parameters.
2354
2355         * nspawn learnt support for .nspawn settings files, that may
2356           accompany the image files or directories of containers, and
2357           may contain additional settings for the container. This is
2358           an alternative to configuring container parameters via the
2359           nspawn command line.
2360
2361         Contributions from: Cristian Rodríguez, Daniel Mack, David
2362         Herrmann, Eugene Yakubovich, Evgeny Vereshchagin, Filipe
2363         Brandenburger, Hans de Goede, Jan Alexander Steffens, Jan
2364         Synacek, Kay Sievers, Lennart Poettering, Mangix, Marcel
2365         Holtmann, Martin Pitt, Michael Biebl, Michael Chapman, Michal
2366         Sekletar, Peter Hutterer, Piotr Drąg, reverendhomer, Robin
2367         Hack, Susant Sahani, Sylvain Pasche, Thomas Hindoe Paaboel
2368         Andersen, Tom Gundersen, Torstein Husebø
2369
2370         — Berlin, 2015-09-08
2371
2372 CHANGES WITH 225:
2373
2374         * machinectl gained a new verb 'shell' which opens a fresh
2375           shell on the target container or the host. It is similar to
2376           the existing 'login' command of machinectl, but spawns the
2377           shell directly without prompting for username or
2378           password. The pseudo machine '.host' now refers to the local
2379           host and is used by default. Hence, 'machinectl shell' can
2380           be used as replacement for 'su -' which spawns a session as
2381           a fresh systemd unit in a way that is fully isolated from
2382           the originating session.
2383
2384         * systemd-networkd learned to cope with private-zone DHCP
2385           options and allows other programs to query the values.
2386
2387         * SELinux access control when enabling/disabling units is no
2388           longer enforced with this release. The previous
2389           implementation was incorrect, and a new corrected
2390           implementation is not yet available. As unit file operations
2391           are still protected via PolicyKit and D-Bus policy this is
2392           not a security problem. Yet, distributions which care about
2393           optimal SELinux support should probably not stabilize on
2394           this release.
2395
2396         * sd-bus gained support for matches of type "arg0has=", that
2397           test for membership of strings in string arrays sent in bus
2398           messages.
2399
2400         * systemd-resolved now dumps the contents of its DNS and LLMNR
2401           caches to the logs on reception of the SIGUSR1 signal. This
2402           is useful to debug DNS behaviour.
2403
2404         * The coredumpctl tool gained a new --directory= option to
2405           operate on journal files in a specific directory.
2406
2407         * "systemctl reboot" and related commands gained a new
2408           "--message=" option which may be used to set a free-text
2409           wall message when shutting down or rebooting the
2410           system. This message is also logged, which is useful for
2411           figuring out the reason for a reboot or shutdown a
2412           posteriori.
2413
2414         * The "systemd-resolve-host" tool's -i switch now takes
2415           network interface numbers as alternative to interface names.
2416
2417         * A new unit file setting for services has been introduced:
2418           UtmpMode= allows configuration of how precisely systemd
2419           handles utmp and wtmp entries for the service if this is
2420           enabled. This allows writing services that appear similar to
2421           user sessions in the output of the "w", "who", "last" and
2422           "lastlog" tools.
2423
2424         * systemd-resolved will now locally synthesize DNS resource
2425           records for the "localhost" and "gateway" domains as well as
2426           the local hostname. This should ensure that clients querying
2427           RRs via resolved will get similar results as those going via
2428           NSS, if nss-myhostname is enabled.
2429
2430         Contributions from: Alastair Hughes, Alex Crawford, Daniel
2431         Mack, David Herrmann, Dimitri John Ledkov, Eric Kostrowski,
2432         Evgeny Vereshchagin, Felipe Sateler, HATAYAMA Daisuke, Jan
2433         Pokorný, Jan Synacek, Johnny Robeson, Karel Zak, Kay Sievers,
2434         Kefeng Wang, Lennart Poettering, Major Hayden, Marcel
2435         Holtmann, Markus Elfring, Martin Mikkelsen, Martin Pitt, Matt
2436         Turner, Maxim Mikityanskiy, Michael Biebl, Namhyung Kim,
2437         Nicolas Cornu, Owen W. Taylor, Patrik Flykt, Peter Hutterer,
2438         reverendhomer, Richard Maw, Ronny Chevalier, Seth Jennings,
2439         Stef Walter, Susant Sahani, Thomas Blume, Thomas Hindoe
2440         Paaboel Andersen, Thomas Meyer, Tom Gundersen, Vincent Batts,
2441         WaLyong Cho, Zbigniew Jędrzejewski-Szmek
2442
2443         — Berlin, 2015-08-27
2444
2445 CHANGES WITH 224:
2446
2447         * The systemd-efi-boot-generator functionality was merged into
2448           systemd-gpt-auto-generator.
2449
2450         * systemd-networkd now supports Group Policy for vxlan
2451           devices. It can be enabled via the new boolean configuration
2452           option called 'GroupPolicyExtension='.
2453
2454         Contributions from: Andreas Kempf, Christian Hesse, Daniel Mack, David
2455         Herrmann, Herman Fries, Johannes Nixdorf, Kay Sievers, Lennart
2456         Poettering, Peter Hutterer, Susant Sahani, Tom Gundersen
2457
2458         — Berlin, 2015-07-31
2459
2460 CHANGES WITH 223:
2461
2462         * The python-systemd code has been removed from the systemd repository.
2463           A new repository has been created which accommodates the code from
2464           now on, and we kindly ask distributions to create a separate package
2465           for this: https://github.com/systemd/python-systemd
2466
2467         * The systemd daemon will now reload its main configuration
2468           (/etc/systemd/system.conf) on daemon-reload.
2469
2470         * sd-dhcp now exposes vendor specific extensions via
2471           sd_dhcp_lease_get_vendor_specific().
2472
2473         * systemd-networkd gained a number of new configuration options.
2474
2475           - A new boolean configuration option for TAP devices called
2476             'VNetHeader='. If set, the IFF_VNET_HDR flag is set for the
2477             device, thus allowing to send and receive GSO packets.
2478
2479           - A new tunnel configuration option called 'CopyDSCP='.
2480             If enabled, the DSCP field of ip6 tunnels is copied into the
2481             decapsulated packet.
2482
2483           - A set of boolean bridge configuration options were added.
2484             'UseBPDU=', 'HairPin=', 'FastLeave=', 'AllowPortToBeRoot=',
2485             and 'UnicastFlood=' are now parsed by networkd and applied to the
2486             respective bridge link device via the respective IFLA_BRPORT_*
2487             netlink attribute.
2488
2489           - A new string configuration option to override the hostname sent
2490             to a DHCP server, called 'Hostname='. If set and 'SendHostname='
2491             is true, networkd will use the configured hostname instead of the
2492             system hostname when sending DHCP requests.
2493
2494           - A new tunnel configuration option called 'IPv6FlowLabel='. If set,
2495             networkd will configure the IPv6 flow-label of the tunnel device
2496             according to RFC2460.
2497
2498           - The 'macvtap' virtual network devices are now supported, similar to
2499             the already supported 'macvlan' devices.
2500
2501         * systemd-resolved now implements RFC5452 to improve resilience against
2502           cache poisoning. Additionally, source port randomization is enabled
2503           by default to further protect against DNS spoofing attacks.
2504
2505         * nss-mymachines now supports translating UIDs and GIDs of running
2506           containers with user-namespaces enabled. If a container 'foo'
2507           translates a host uid 'UID' to the container uid 'TUID', then
2508           nss-mymachines will also map uid 'UID' to/from username 'vu-foo-TUID'
2509           (with 'foo' and 'TUID' replaced accordingly). Similarly, groups are
2510           mapped as 'vg-foo-TGID'.
2511
2512         Contributions from: Beniamino Galvani, cee1, Christian Hesse, Daniel
2513         Buch, Daniel Mack, daurnimator, David Herrmann, Dimitri John Ledkov,
2514         HATAYAMA Daisuke, Ivan Shapovalov, Jan Alexander Steffens (heftig),
2515         Johan Ouwerkerk, Jose Carlos Venegas Munoz, Karel Zak, Kay Sievers,
2516         Lennart Poettering, Lidong Zhong, Martin Pitt, Michael Biebl, Michael
2517         Olbrich, Michal Schmidt, Michal Sekletar, Mike Gilbert, Namhyung Kim,
2518         Nick Owens, Peter Hutterer, Richard Maw, Steven Allen, Sungbae Yoo,
2519         Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel Andersen, Tom
2520         Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito Caputo,
2521         Vivenzio Pagliari, Zbigniew Jędrzejewski-Szmek
2522
2523         — Berlin, 2015-07-29
2524
2525 CHANGES WITH 222:
2526
2527         * udev does not longer support the WAIT_FOR_SYSFS= key in udev rules.
2528           There are no known issues with current sysfs, and udev does not need
2529           or should be used to work around such bugs.
2530
2531         * udev does no longer enable USB HID power management. Several reports
2532           indicate, that some devices cannot handle that setting.
2533
2534         * The udev accelerometer helper was removed. The functionality
2535           is now fully included in iio-sensor-proxy. But this means,
2536           older iio-sensor-proxy versions will no longer provide
2537           accelerometer/orientation data with this systemd version.
2538           Please upgrade iio-sensor-proxy to version 1.0.
2539
2540         * networkd gained a new configuration option IPv6PrivacyExtensions=
2541           which enables IPv6 privacy extensions (RFC 4941, "Privacy Extensions
2542           for Stateless Address") on selected networks.
2543
2544         * For the sake of fewer build-time dependencies and less code in the
2545           main repository, the python bindings are about to be removed in the
2546           next release. A new repository has been created which accommodates
2547           the code from now on, and we kindly ask distributions to create a
2548           separate package for this. The removal will take place in v223.
2549
2550             https://github.com/systemd/python-systemd
2551
2552         Contributions from: Abdo Roig-Maranges, Andrew Eikum, Bastien Nocera,
2553         Cédric Delmas, Christian Hesse, Christos Trochalakis, Daniel Mack,
2554         daurnimator, David Herrmann, Dimitri John Ledkov, Eric Biggers, Eric
2555         Cook, Felipe Sateler, Geert Jansen, Gerd Hoffmann, Gianpaolo Macario,
2556         Greg Kroah-Hartman, Iago López Galeiras, Jan Alexander Steffens
2557         (heftig), Jan Engelhardt, Jay Strict, Kay Sievers, Lennart Poettering,
2558         Markus Knetschke, Martin Pitt, Michael Biebl, Michael Marineau, Michal
2559         Sekletar, Miguel Bernal Marin, Peter Hutterer, Richard Maw, rinrinne,
2560         Susant Sahani, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
2561         Husebø, Vedran Miletić, WaLyong Cho, Zbigniew Jędrzejewski-Szmek
2562
2563         — Berlin, 2015-07-07
2564
2565 CHANGES WITH 221:
2566
2567         * The sd-bus.h and sd-event.h APIs have now been declared
2568           stable and have been added to the official interface of
2569           libsystemd.so. sd-bus implements an alternative D-Bus client
2570           library, that is relatively easy to use, very efficient and
2571           supports both classic D-Bus as well as kdbus as transport
2572           backend. sd-event is a generic event loop abstraction that
2573           is built around Linux epoll, but adds features such as event
2574           prioritization or efficient timer handling. Both APIs are good
2575           choices for C programs looking for a bus and/or event loop
2576           implementation that is minimal and does not have to be
2577           portable to other kernels.
2578
2579         * kdbus support is no longer compile-time optional. It is now
2580           always built-in. However, it can still be disabled at
2581           runtime using the kdbus=0 kernel command line setting, and
2582           that setting may be changed to default to off, by specifying
2583           --disable-kdbus at build-time. Note though that the kernel
2584           command line setting has no effect if the kdbus.ko kernel
2585           module is not installed, in which case kdbus is (obviously)
2586           also disabled. We encourage all downstream distributions to
2587           begin testing kdbus by adding it to the kernel images in the
2588           development distributions, and leaving kdbus support in
2589           systemd enabled.
2590
2591         * The minimal required util-linux version has been bumped to
2592           2.26.
2593
2594         * Support for chkconfig (--enable-chkconfig) was removed in
2595           favor of calling an abstraction tool
2596           /lib/systemd/systemd-sysv-install. This needs to be
2597           implemented for your distribution. See "SYSV INIT.D SCRIPTS"
2598           in README for details.
2599
2600         * If there's a systemd unit and a SysV init script for the
2601           same service name, and the user executes "systemctl enable"
2602           for it (or a related call), then this will now enable both
2603           (or execute the related operation on both), not just the
2604           unit.
2605
2606         * The libudev API documentation has been converted from gtkdoc
2607           into man pages.
2608
2609         * gudev has been removed from the systemd tree, it is now an
2610           external project.
2611
2612         * The systemd-cgtop tool learnt a new --raw switch to generate
2613           "raw" (machine parsable) output.
2614
2615         * networkd's IPForwarding= .network file setting learnt the
2616           new setting "kernel", which ensures that networkd does not
2617           change the IP forwarding sysctl from the default kernel
2618           state.
2619
2620         * The systemd-logind bus API now exposes a new boolean
2621           property "Docked" that reports whether logind considers the
2622           system "docked", i.e. connected to a docking station or not.
2623
2624         Contributions from: Alex Crawford, Andreas Pokorny, Andrei
2625         Borzenkov, Charles Duffy, Colin Guthrie, Cristian Rodríguez,
2626         Daniele Medri, Daniel Hahler, Daniel Mack, David Herrmann,
2627         David Mohr, Dimitri John Ledkov, Djalal Harouni, dslul, Ed
2628         Swierk, Eric Cook, Filipe Brandenburger, Gianpaolo Macario,
2629         Harald Hoyer, Iago López Galeiras, Igor Vuk, Jan Synacek,
2630         Jason Pleau, Jason S. McMullan, Jean Delvare, Jeff Huang,
2631         Jonathan Boulle, Karel Zak, Kay Sievers, kloun, Lennart
2632         Poettering, Marc-Antoine Perennou, Marcel Holtmann, Mario
2633         Limonciello, Martin Pitt, Michael Biebl, Michael Olbrich,
2634         Michal Schmidt, Mike Gilbert, Nick Owens, Pablo Lezaeta Reyes,
2635         Patrick Donnelly, Pavel Odvody, Peter Hutterer, Philip
2636         Withnall, Ronny Chevalier, Simon McVittie, Susant Sahani,
2637         Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
2638         Husebø, Umut Tezduyar Lindskog, Viktar Vauchkevich, Werner
2639         Fink, Zbigniew Jędrzejewski-Szmek
2640
2641         — Berlin, 2015-06-19
2642
2643 CHANGES WITH 220:
2644
2645         * The gudev library has been extracted into a separate repository
2646           available at: https://git.gnome.org/browse/libgudev/
2647           It is now managed as part of the Gnome project. Distributions
2648           are recommended to pass --disable-gudev to systemd and use
2649           gudev from the Gnome project instead. gudev is still included
2650           in systemd, for now. It will be removed soon, though. Please
2651           also see the announcement-thread on systemd-devel:
2652           https://lists.freedesktop.org/archives/systemd-devel/2015-May/032070.html
2653
2654         * systemd now exposes a CPUUsageNSec= property for each
2655           service unit on the bus, that contains the overall consumed
2656           CPU time of a service (the sum of what each process of the
2657           service consumed). This value is only available if
2658           CPUAccounting= is turned on for a service, and is then shown
2659           in the "systemctl status" output.
2660
2661         * Support for configuring alternative mappings of the old SysV
2662           runlevels to systemd targets has been removed. They are now
2663           hardcoded in a way that runlevels 2, 3, 4 all map to
2664           multi-user.target and 5 to graphical.target (which
2665           previously was already the default behaviour).
2666
2667         * The auto-mounter logic gained support for mount point
2668           expiry, using a new TimeoutIdleSec= setting in .automount
2669           units. (Also available as x-systemd.idle-timeout= in /etc/fstab).
2670
2671         * The EFI System Partition (ESP) as mounted to /boot by
2672           systemd-efi-boot-generator will now be unmounted
2673           automatically after 2 minutes of not being used. This should
2674           minimize the risk of ESP corruptions.
2675
2676         * New /etc/fstab options x-systemd.requires= and
2677           x-systemd.requires-mounts-for= are now supported to express
2678           additional dependencies for mounts. This is useful for
2679           journalling file systems that support external journal
2680           devices or overlay file systems that require underlying file
2681           systems to be mounted.
2682
2683         * systemd does not support direct live-upgrades (via systemctl
2684           daemon-reexec) from versions older than v44 anymore. As no
2685           distribution we are aware of shipped such old versions in a
2686           stable release this should not be problematic.
2687
2688         * When systemd forks off a new per-connection service instance
2689           it will now set the $REMOTE_ADDR environment variable to the
2690           remote IP address, and $REMOTE_PORT environment variable to
2691           the remote IP port. This behaviour is similar to the
2692           corresponding environment variables defined by CGI.
2693
2694         * systemd-networkd gained support for uplink failure
2695           detection. The BindCarrier= option allows binding interface
2696           configuration dynamically to the link sense of other
2697           interfaces. This is useful to achieve behaviour like in
2698           network switches.
2699
2700         * systemd-networkd gained support for configuring the DHCP
2701           client identifier to use when requesting leases.
2702
2703         * systemd-networkd now has a per-network UseNTP= option to
2704           configure whether NTP server information acquired via DHCP
2705           is passed on to services like systemd-timesyncd.
2706
2707         * systemd-networkd gained support for vti6 tunnels.
2708
2709         * Note that systemd-networkd manages the sysctl variable
2710           /proc/sys/net/ipv[46]/conf/*/forwarding for each interface
2711           it is configured for since v219. The variable controls IP
2712           forwarding, and is a per-interface alternative to the global
2713           /proc/sys/net/ipv[46]/ip_forward. This setting is
2714           configurable in the IPForward= option, which defaults to
2715           "no". This means if networkd is used for an interface it is
2716           no longer sufficient to set the global sysctl option to turn
2717           on IP forwarding! Instead, the .network file option
2718           IPForward= needs to be turned on! Note that the
2719           implementation of this behaviour was broken in v219 and has
2720           been fixed in v220.
2721
2722         * Many bonding and vxlan options are now configurable in
2723           systemd-networkd.
2724
2725         * systemd-nspawn gained a new --property= setting to set unit
2726           properties for the container scope. This is useful for
2727           setting resource parameters (e.g. "CPUShares=500") on
2728           containers started from the command line.
2729
2730         * systemd-nspawn gained a new --private-users= switch to make
2731           use of user namespacing available on recent Linux kernels.
2732
2733         * systemd-nspawn may now be called as part of a shell pipeline
2734           in which case the pipes used for stdin and stdout are passed
2735           directly to the process invoked in the container, without
2736           indirection via a pseudo tty.
2737
2738         * systemd-nspawn gained a new switch to control the UNIX
2739           signal to use when killing the init process of the container
2740           when shutting down.
2741
2742         * systemd-nspawn gained a new --overlay= switch for mounting
2743           overlay file systems into the container using the new kernel
2744           overlayfs support.
2745
2746         * When a container image is imported via systemd-importd and
2747           the host file system is not btrfs, a loopback block device
2748           file is created in /var/lib/machines.raw with a btrfs file
2749           system inside. It is then mounted to /var/lib/machines to
2750           enable btrfs features for container management. The loopback
2751           file and btrfs file system is grown as needed when container
2752           images are imported via systemd-importd.
2753
2754         * systemd-machined/systemd-importd gained support for btrfs
2755           quota, to enforce container disk space limits on disk. This
2756           is exposed in "machinectl set-limit".
2757
2758         * systemd-importd now can import containers from local .tar,
2759           .raw and .qcow2 images, and export them to .tar and .raw. It
2760           can also import dkr v2 images now from the network (on top
2761           of v1 as before).
2762
2763         * systemd-importd gained support for verifying downloaded
2764           images with gpg2 (previously only gpg1 was supported).
2765
2766         * systemd-machined, systemd-logind, systemd: most bus calls
2767           are now accessible to unprivileged processes via
2768           PolicyKit. Also, systemd-logind will now allow users to kill
2769           their own sessions without further privileges or
2770           authorization.
2771
2772         * systemd-shutdownd has been removed. This service was
2773           previously responsible for implementing scheduled shutdowns
2774           as exposed in /usr/bin/shutdown's time parameter. This
2775           functionality has now been moved into systemd-logind and is
2776           accessible via a bus interface.
2777
2778         * "systemctl reboot" gained a new switch --firmware-setup that
2779           can be used to reboot into the EFI firmware setup, if that
2780           is available. systemd-logind now exposes an API on the bus
2781           to trigger such reboots, in case graphical desktop UIs want
2782           to cover this functionality.
2783
2784         * "systemctl enable", "systemctl disable" and "systemctl mask"
2785           now support a new "--now" switch. If specified the units
2786           that are enabled will also be started, and the ones
2787           disabled/masked also stopped.
2788
2789         * The Gummiboot EFI boot loader tool has been merged into
2790           systemd, and renamed to "systemd-boot". The bootctl tool has been
2791           updated to support systemd-boot.
2792
2793         * An EFI kernel stub has been added that may be used to create
2794           kernel EFI binaries that contain not only the actual kernel,
2795           but also an initrd, boot splash, command line and OS release
2796           information. This combined binary can then be signed as a
2797           single image, so that the firmware can verify it all in one
2798           step. systemd-boot has special support for EFI binaries created
2799           like this and can extract OS release information from them
2800           and show them in the boot menu. This functionality is useful
2801           to implement cryptographically verified boot schemes.
2802
2803         * Optional support has been added to systemd-fsck to pass
2804           fsck's progress report to an AF_UNIX socket in the file
2805           system.
2806
2807         * udev will no longer create device symlinks for all block
2808           devices by default. A blacklist for excluding special block
2809           devices from this logic has been turned into a whitelist
2810           that requires picking block devices explicitly that require
2811           device symlinks.
2812
2813         * A new (currently still internal) API sd-device.h has been
2814           added to libsystemd. This modernized API is supposed to
2815           replace libudev eventually. In fact, already much of libudev
2816           is now just a wrapper around sd-device.h.
2817
2818         * A new hwdb database for storing metadata about pointing
2819           stick devices has been added.
2820
2821         * systemd-tmpfiles gained support for setting file attributes
2822           similar to the "chattr" tool with new 'h' and 'H' lines.
2823
2824         * systemd-journald will no longer unconditionally set the
2825           btrfs NOCOW flag on new journal files. This is instead done
2826           with tmpfiles snippet using the new 'h' line type. This
2827           allows easy disabling of this logic, by masking the
2828           journal-nocow.conf tmpfiles file.
2829
2830         * systemd-journald will now translate audit message types to
2831           human readable identifiers when writing them to the
2832           journal. This should improve readability of audit messages.
2833
2834         * The LUKS logic gained support for the offset= and skip=
2835           options in /etc/crypttab, as previously implemented by
2836           Debian.
2837
2838         * /usr/lib/os-release gained a new optional field VARIANT= for
2839           distributions that support multiple variants (such as a
2840           desktop edition, a server edition, ...)
2841
2842         Contributions from: Aaro Koskinen, Adam Goode, Alban Crequy,
2843         Alberto Fanjul Alonso, Alexander Sverdlin, Alex Puchades, Alin
2844         Rauta, Alison Chaiken, Andrew Jones, Arend van Spriel,
2845         Benedikt Morbach, Benjamin Franzke, Benjamin Tissoires, Blaž
2846         Tomažič, Chris Morgan, Chris Morin, Colin Walters, Cristian
2847         Rodríguez, Daniel Buch, Daniel Drake, Daniele Medri, Daniel
2848         Mack, Daniel Mustieles, daurnimator, Davide Bettio, David
2849         Herrmann, David Strauss, Didier Roche, Dimitri John Ledkov,
2850         Eric Cook, Gavin Li, Goffredo Baroncelli, Hannes Reinecke,
2851         Hans de Goede, Hans-Peter Deifel, Harald Hoyer, Iago López
2852         Galeiras, Ivan Shapovalov, Jan Engelhardt, Jan Janssen, Jan
2853         Pazdziora, Jan Synacek, Jasper St. Pierre, Jay Faulkner, John
2854         Paul Adrian Glaubitz, Jonathon Gilbert, Karel Zak, Kay
2855         Sievers, Koen Kooi, Lennart Poettering, Lubomir Rintel, Lucas
2856         De Marchi, Lukas Nykryn, Lukas Rusak, Lukasz Skalski, Łukasz
2857         Stelmach, Mantas Mikulėnas, Marc-Antoine Perennou, Marcel
2858         Holtmann, Martin Pitt, Mathieu Chevrier, Matthew Garrett,
2859         Michael Biebl, Michael Marineau, Michael Olbrich, Michal
2860         Schmidt, Michal Sekletar, Mirco Tischler, Nir Soffer, Patrik
2861         Flykt, Pavel Odvody, Peter Hutterer, Peter Lemenkov, Peter
2862         Waller, Piotr Drąg, Raul Gutierrez S, Richard Maw, Ronny
2863         Chevalier, Ross Burton, Sebastian Rasmussen, Sergey Ptashnick,
2864         Seth Jennings, Shawn Landden, Simon Farnsworth, Stefan Junker,
2865         Stephen Gallagher, Susant Sahani, Sylvain Plantefève, Thomas
2866         Haller, Thomas Hindoe Paaboel Andersen, Tobias Hunger, Tom
2867         Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Will
2868         Woods, Zachary Cook, Zbigniew Jędrzejewski-Szmek
2869
2870         — Berlin, 2015-05-22
2871
2872 CHANGES WITH 219:
2873
2874         * Introduce a new API "sd-hwdb.h" for querying the hardware
2875           metadata database. With this minimal interface one can query
2876           and enumerate the udev hwdb, decoupled from the old libudev
2877           library. libudev's interface for this is now only a wrapper
2878           around sd-hwdb. A new tool systemd-hwdb has been added to
2879           interface with and update the database.
2880
2881         * When any of systemd's tools copies files (for example due to
2882           tmpfiles' C lines) a btrfs reflink will attempted first,
2883           before bytewise copying is done.
2884
2885         * systemd-nspawn gained a new --ephemeral switch. When
2886           specified a btrfs snapshot is taken of the container's root
2887           directory, and immediately removed when the container
2888           terminates again. Thus, a container can be started whose
2889           changes never alter the container's root directory, and are
2890           lost on container termination. This switch can also be used
2891           for starting a container off the root file system of the
2892           host without affecting the host OS. This switch is only
2893           available on btrfs file systems.
2894
2895         * systemd-nspawn gained a new --template= switch. It takes the
2896           path to a container tree to use as template for the tree
2897           specified via --directory=, should that directory be
2898           missing. This allows instantiating containers dynamically,
2899           on first run. This switch is only available on btrfs file
2900           systems.
2901
2902         * When a .mount unit refers to a mount point on which multiple
2903           mounts are stacked, and the .mount unit is stopped all of
2904           the stacked mount points will now be unmounted until no
2905           mount point remains.
2906
2907         * systemd now has an explicit notion of supported and
2908           unsupported unit types. Jobs enqueued for unsupported unit
2909           types will now fail with an "unsupported" error code. More
2910           specifically .swap, .automount and .device units are not
2911           supported in containers, .busname units are not supported on
2912           non-kdbus systems. .swap and .automount are also not
2913           supported if their respective kernel compile time options
2914           are disabled.
2915
2916         * machinectl gained support for two new "copy-from" and
2917           "copy-to" commands for copying files from a running
2918           container to the host or vice versa.
2919
2920         * machinectl gained support for a new "bind" command to bind
2921           mount host directories into local containers. This is
2922           currently only supported for nspawn containers.
2923
2924         * networkd gained support for configuring bridge forwarding
2925           database entries (fdb) from .network files.
2926
2927         * A new tiny daemon "systemd-importd" has been added that can
2928           download container images in tar, raw, qcow2 or dkr formats,
2929           and make them available locally in /var/lib/machines, so
2930           that they can run as nspawn containers. The daemon can GPG
2931           verify the downloads (not supported for dkr, since it has no
2932           provisions for verifying downloads). It will transparently
2933           decompress bz2, xz, gzip compressed downloads if necessary,
2934           and restore sparse files on disk. The daemon uses privilege
2935           separation to ensure the actual download logic runs with
2936           fewer privileges than the daemon itself. machinectl has
2937           gained new commands "pull-tar", "pull-raw" and "pull-dkr" to
2938           make the functionality of importd available to the
2939           user. With this in place the Fedora and Ubuntu "Cloud"
2940           images can be downloaded and booted as containers unmodified
2941           (the Fedora images lack the appropriate GPG signature files
2942           currently, so they cannot be verified, but this will change
2943           soon, hopefully). Note that downloading images is currently
2944           only fully supported on btrfs.
2945
2946         * machinectl is now able to list container images found in
2947           /var/lib/machines, along with some metadata about sizes of
2948           disk and similar. If the directory is located on btrfs and
2949           quota is enabled, this includes quota display. A new command
2950           "image-status" has been added that shows additional
2951           information about images.
2952
2953         * machinectl is now able to clone container images
2954           efficiently, if the underlying file system (btrfs) supports
2955           it, with the new "machinectl clone" command. It also
2956           gained commands for renaming and removing images, as well as
2957           marking them read-only or read-write (supported also on
2958           legacy file systems).
2959
2960         * networkd gained support for collecting LLDP network
2961           announcements, from hardware that supports this. This is
2962           shown in networkctl output.
2963
2964         * systemd-run gained support for a new -t (--pty) switch for
2965           invoking a binary on a pty whose input and output is
2966           connected to the invoking terminal. This allows executing
2967           processes as system services while interactively
2968           communicating with them via the terminal. Most interestingly
2969           this is supported across container boundaries. Invoking
2970           "systemd-run -t /bin/bash" is an alternative to running a
2971           full login session, the difference being that the former
2972           will not register a session, nor go through the PAM session
2973           setup.
2974
2975         * tmpfiles gained support for a new "v" line type for creating
2976           btrfs subvolumes. If the underlying file system is a legacy
2977           file system, this automatically degrades to creating a
2978           normal directory. Among others /var/lib/machines is now
2979           created like this at boot, should it be missing.
2980
2981         * The directory /var/lib/containers/ has been deprecated and
2982           been replaced by /var/lib/machines. The term "machines" has
2983           been used in the systemd context as generic term for both
2984           VMs and containers, and hence appears more appropriate for
2985           this, as the directory can also contain raw images bootable
2986           via qemu/kvm.
2987
2988         * systemd-nspawn when invoked with -M but without --directory=
2989           or --image= is now capable of searching for the container
2990           root directory, subvolume or disk image automatically, in
2991           /var/lib/machines. systemd-nspawn@.service has been updated
2992           to make use of this, thus allowing it to be used for raw
2993           disk images, too.
2994
2995         * A new machines.target unit has been introduced that is
2996           supposed to group all containers/VMs invoked as services on
2997           the system. systemd-nspawn@.service has been updated to
2998           integrate with that.
2999
3000         * machinectl gained a new "start" command, for invoking a
3001           container as a service. "machinectl start foo" is mostly
3002           equivalent to "systemctl start systemd-nspawn@foo.service",
3003           but handles escaping in a nicer way.
3004
3005         * systemd-nspawn will now mount most of the cgroupfs tree
3006           read-only into each container, with the exception of the
3007           container's own subtree in the name=systemd hierarchy.
3008
3009         * journald now sets the special FS_NOCOW file flag for its
3010           journal files. This should improve performance on btrfs, by
3011           avoiding heavy fragmentation when journald's write-pattern
3012           is used on COW file systems. It degrades btrfs' data
3013           integrity guarantees for the files to the same levels as for
3014           ext3/ext4 however. This should be OK though as journald does
3015           its own data integrity checks and all its objects are
3016           checksummed on disk. Also, journald should handle btrfs disk
3017           full events a lot more gracefully now, by processing SIGBUS
3018           errors, and not relying on fallocate() anymore.
3019
3020         * When journald detects that journal files it is writing to
3021           have been deleted it will immediately start new journal
3022           files.
3023
3024         * systemd now provides a way to store file descriptors
3025           per-service in PID 1. This is useful for daemons to ensure
3026           that fds they require are not lost during a daemon
3027           restart. The fds are passed to the daemon on the next
3028           invocation in the same way socket activation fds are
3029           passed. This is now used by journald to ensure that the
3030           various sockets connected to all the system's stdout/stderr
3031           are not lost when journald is restarted. File descriptors
3032           may be stored in PID 1 via the sd_pid_notify_with_fds() API,
3033           an extension to sd_notify(). Note that a limit is enforced
3034           on the number of fds a service can store in PID 1, and it
3035           defaults to 0, so that no fds may be stored, unless this is
3036           explicitly turned on.
3037
3038         * The default TERM variable to use for units connected to a
3039           terminal, when no other value is explicitly is set is now
3040           vt220 rather than vt102. This should be fairly safe still,
3041           but allows PgUp/PgDn work.
3042
3043         * The /etc/crypttab option header= as known from Debian is now
3044           supported.
3045
3046         * "loginctl user-status" and "loginctl session-status" will
3047           now show the last 10 lines of log messages of the
3048           user/session following the status output. Similar,
3049           "machinectl status" will show the last 10 log lines
3050           associated with a virtual machine or container
3051           service. (Note that this is usually not the log messages
3052           done in the VM/container itself, but simply what the
3053           container manager logs. For nspawn this includes all console
3054           output however.)
3055
3056         * "loginctl session-status" without further argument will now
3057           show the status of the session of the caller. Similar,
3058           "lock-session", "unlock-session", "activate",
3059           "enable-linger", "disable-linger" may now be called without
3060           session/user parameter in which case they apply to the
3061           caller's session/user.
3062
3063         * An X11 session scriptlet is now shipped that uploads
3064           $DISPLAY and $XAUTHORITY into the environment of the systemd
3065           --user daemon if a session begins. This should improve
3066           compatibility with X11 enabled applications run as systemd
3067           user services.
3068
3069         * Generators are now subject to masking via /etc and /run, the
3070           same way as unit files.
3071
3072         * networkd .network files gained support for configuring
3073           per-link IPv4/IPv6 packet forwarding as well as IPv4
3074           masquerading. This is by default turned on for veth links to
3075           containers, as registered by systemd-nspawn. This means that
3076           nspawn containers run with --network-veth will now get
3077           automatic routed access to the host's networks without any
3078           further configuration or setup, as long as networkd runs on
3079           the host.
3080
3081         * systemd-nspawn gained the --port= (-p) switch to expose TCP
3082           or UDP posts of a container on the host. With this in place
3083           it is possible to run containers with private veth links
3084           (--network-veth), and have their functionality exposed on
3085           the host as if their services were running directly on the
3086           host.
3087
3088         * systemd-nspawn's --network-veth switch now gained a short
3089           version "-n", since with the changes above it is now truly
3090           useful out-of-the-box. The systemd-nspawn@.service has been
3091           updated to make use of it too by default.
3092
3093         * systemd-nspawn will now maintain a per-image R/W lock, to
3094           ensure that the same image is not started more than once
3095           writable. (It's OK to run an image multiple times
3096           simultaneously in read-only mode.)
3097
3098         * systemd-nspawn's --image= option is now capable of
3099           dissecting and booting MBR and GPT disk images that contain
3100           only a single active Linux partition. Previously it
3101           supported only GPT disk images with proper GPT type
3102           IDs. This allows running cloud images from major
3103           distributions directly with systemd-nspawn, without
3104           modification.
3105
3106         * In addition to collecting mouse dpi data in the udev
3107           hardware database, there's now support for collecting angle
3108           information for mouse scroll wheels. The database is
3109           supposed to guarantee similar scrolling behavior on mice
3110           that it knows about. There's also support for collecting
3111           information about Touchpad types.
3112
3113         * udev's input_id built-in will now also collect touch screen
3114           dimension data and attach it to probed devices.
3115
3116         * /etc/os-release gained support for a Distribution Privacy
3117           Policy link field.
3118
3119         * networkd gained support for creating "ipvlan", "gretap",
3120           "ip6gre", "ip6gretap" and "ip6tnl" network devices.
3121
3122         * systemd-tmpfiles gained support for "a" lines for setting
3123           ACLs on files.
3124
3125         * systemd-nspawn will now mount /tmp in the container to
3126           tmpfs, automatically.
3127
3128         * systemd now exposes the memory.usage_in_bytes cgroup
3129           attribute and shows it for each service in the "systemctl
3130           status" output, if available.
3131
3132         * When the user presses Ctrl-Alt-Del more than 7x within 2s an
3133           immediate reboot is triggered. This useful if shutdown is
3134           hung and is unable to complete, to expedite the
3135           operation. Note that this kind of reboot will still unmount
3136           all file systems, and hence should not result in fsck being
3137           run on next reboot.
3138
3139         * A .device unit for an optical block device will now be
3140           considered active only when a medium is in the drive. Also,
3141           mount units are now bound to their backing devices thus
3142           triggering automatic unmounting when devices become
3143           unavailable. With this in place systemd will now
3144           automatically unmount left-over mounts when a CD-ROM is
3145           ejected or an USB stick is yanked from the system.
3146
3147         * networkd-wait-online now has support for waiting for
3148           specific interfaces only (with globbing), and for giving up
3149           after a configurable timeout.
3150
3151         * networkd now exits when idle. It will be automatically
3152           restarted as soon as interfaces show up, are removed or
3153           change state. networkd will stay around as long as there is
3154           at least one DHCP state machine or similar around, that keep
3155           it non-idle.
3156
3157         * networkd may now configure IPv6 link-local addressing in
3158           addition to IPv4 link-local addressing.
3159
3160         * The IPv6 "token" for use in SLAAC may now be configured for
3161           each .network interface in networkd.
3162
3163         * Routes configured with networkd may now be assigned a scope
3164           in .network files.
3165
3166         * networkd's [Match] sections now support globbing and lists
3167           of multiple space-separated matches per item.
3168
3169         Contributions from: Alban Crequy, Alin Rauta, Andrey Chaser,
3170         Bastien Nocera, Bruno Bottazzini, Carlos Garnacho, Carlos
3171         Morata Castillo, Chris Atkinson, Chris J. Arges, Christian
3172         Kirbach, Christian Seiler, Christoph Brill, Colin Guthrie,
3173         Colin Walters, Cristian Rodríguez, Daniele Medri, Daniel Mack,
3174         Dave Reisner, David Herrmann, Djalal Harouni, Erik Auerswald,
3175         Filipe Brandenburger, Frank Theile, Gabor Kelemen, Gabriel de
3176         Perthuis, Harald Hoyer, Hui Wang, Ivan Shapovalov, Jan
3177         Engelhardt, Jan Synacek, Jay Faulkner, Johannes Hölzl, Jonas
3178         Ådahl, Jonathan Boulle, Josef Andersson, Kay Sievers, Ken
3179         Werner, Lennart Poettering, Lucas De Marchi, Lukas Märdian,
3180         Lukas Nykryn, Lukasz Skalski, Luke Shumaker, Mantas Mikulėnas,
3181         Manuel Mendez, Marcel Holtmann, Marc Schmitzer, Marko
3182         Myllynen, Martin Pitt, Maxim Mikityanskiy, Michael Biebl,
3183         Michael Marineau, Michael Olbrich, Michal Schmidt, Mindaugas
3184         Baranauskas, Moez Bouhlel, Naveen Kumar, Patrik Flykt, Paul
3185         Martin, Peter Hutterer, Peter Mattern, Philippe De Swert,
3186         Piotr Drąg, Rafael Ferreira, Rami Rosen, Robert Milasan, Ronny
3187         Chevalier, Sangjung Woo, Sebastien Bacher, Sergey Ptashnick,
3188         Shawn Landden, Stéphane Graber, Susant Sahani, Sylvain
3189         Plantefève, Thomas Hindoe Paaboel Andersen, Tim JP, Tom
3190         Gundersen, Topi Miettinen, Torstein Husebø, Umut Tezduyar
3191         Lindskog, Veres Lajos, Vincent Batts, WaLyong Cho, Wieland
3192         Hoffmann, Zbigniew Jędrzejewski-Szmek
3193
3194         — Berlin, 2015-02-16
3195
3196 CHANGES WITH 218:
3197
3198         * When querying unit file enablement status (for example via
3199           "systemctl is-enabled"), a new state "indirect" is now known
3200           which indicates that a unit might not be enabled itself, but
3201           another unit listed in its Also= setting might be.
3202
3203         * Similar to the various existing ConditionXYZ= settings for
3204           units, there are now matching AssertXYZ= settings. While
3205           failing conditions cause a unit to be skipped, but its job
3206           to succeed, failing assertions declared like this will cause
3207           a unit start operation and its job to fail.
3208
3209         * hostnamed now knows a new chassis type "embedded".
3210
3211         * systemctl gained a new "edit" command. When used on a unit
3212           file, this allows extending unit files with .d/ drop-in
3213           configuration snippets or editing the full file (after
3214           copying it from /usr/lib to /etc). This will invoke the
3215           user's editor (as configured with $EDITOR), and reload the
3216           modified configuration after editing.
3217
3218         * "systemctl status" now shows the suggested enablement state
3219           for a unit, as declared in the (usually vendor-supplied)
3220           system preset files.
3221
3222         * nss-myhostname will now resolve the single-label host name
3223           "gateway" to the locally configured default IP routing
3224           gateways, ordered by their metrics. This assigns a stable
3225           name to the used gateways, regardless which ones are
3226           currently configured. Note that the name will only be
3227           resolved after all other name sources (if nss-myhostname is
3228           configured properly) and should hence not negatively impact
3229           systems that use the single-label host name "gateway" in
3230           other contexts.
3231
3232         * systemd-inhibit now allows filtering by mode when listing
3233           inhibitors.
3234
3235         * Scope and service units gained a new "Delegate" boolean
3236           property, which, when set, allows processes running inside the
3237           unit to further partition resources. This is primarily
3238           useful for systemd user instances as well as container
3239           managers.
3240
3241         * journald will now pick up audit messages directly from
3242           the kernel, and log them like any other log message. The
3243           audit fields are split up and fully indexed. This means that
3244           journalctl in many ways is now a (nicer!) alternative to
3245           ausearch, the traditional audit client. Note that this
3246           implements only a minimal audit client. If you want the
3247           special audit modes like reboot-on-log-overflow, please use
3248           the traditional auditd instead, which can be used in
3249           parallel to journald.
3250
3251         * The ConditionSecurity= unit file option now understands the
3252           special string "audit" to check whether auditing is
3253           available.
3254
3255         * journalctl gained two new commands --vacuum-size= and
3256           --vacuum-time= to delete old journal files until the
3257           remaining ones take up no more than the specified size on disk,
3258           or are not older than the specified time.
3259
3260         * A new, native PPPoE library has been added to sd-network,
3261           systemd's library of light-weight networking protocols. This
3262           library will be used in a future version of networkd to
3263           enable PPPoE communication without an external pppd daemon.
3264
3265         * The busctl tool now understands a new "capture" verb that
3266           works similar to "monitor", but writes a packet capture
3267           trace to STDOUT that can be redirected to a file which is
3268           compatible with libcap's capture file format. This can then
3269           be loaded in Wireshark and similar tools to inspect bus
3270           communication.
3271
3272         * The busctl tool now understands a new "tree" verb that shows
3273           the object trees of a specific service on the bus, or of all
3274           services.
3275
3276         * The busctl tool now understands a new "introspect" verb that
3277           shows all interfaces and members of objects on the bus,
3278           including their signature and values. This is particularly
3279           useful to get more information about bus objects shown by
3280           the new "busctl tree" command.
3281
3282         * The busctl tool now understands new verbs "call",
3283           "set-property" and "get-property" for invoking bus method
3284           calls, setting and getting bus object properties in a
3285           friendly way.
3286
3287         * busctl gained a new --augment-creds= argument that controls
3288           whether the tool shall augment credential information it
3289           gets from the bus with data from /proc, in a possibly
3290           race-ful way.
3291
3292         * nspawn's --link-journal= switch gained two new values
3293           "try-guest" and "try-host" that work like "guest" and
3294           "host", but do not fail if the host has no persistent
3295           journalling enabled. -j is now equivalent to
3296           --link-journal=try-guest.
3297
3298         * macvlan network devices created by nspawn will now have
3299           stable MAC addresses.
3300
3301         * A new SmackProcessLabel= unit setting has been added, which
3302           controls the SMACK security label processes forked off by
3303           the respective unit shall use.
3304
3305         * If compiled with --enable-xkbcommon, systemd-localed will
3306           verify x11 keymap settings by compiling the given keymap. It
3307           will spew out warnings if the compilation fails. This
3308           requires libxkbcommon to be installed.
3309
3310         * When a coredump is collected, a larger number of metadata
3311           fields is now collected and included in the journal records
3312           created for it. More specifically, control group membership,
3313           environment variables, memory maps, working directory,
3314           chroot directory, /proc/$PID/status, and a list of open file
3315           descriptors is now stored in the log entry.
3316
3317         * The udev hwdb now contains DPI information for mice. For
3318           details see:
3319
3320           http://who-t.blogspot.de/2014/12/building-a-dpi-database-for-mice.html
3321
3322         * All systemd programs that read standalone configuration
3323           files in /etc now also support a corresponding series of
3324           .conf.d configuration directories in /etc/, /run/,
3325           /usr/local/lib/, /usr/lib/, and (if configured with
3326           --enable-split-usr) /lib/.  In particular, the following
3327           configuration files now have corresponding configuration
3328           directories: system.conf user.conf, logind.conf,
3329           journald.conf, sleep.conf, bootchart.conf, coredump.conf,
3330           resolved.conf, timesyncd.conf, journal-remote.conf, and
3331           journal-upload.conf.  Note that distributions should use the
3332           configuration directories in /usr/lib/; the directories in
3333           /etc/ are reserved for the system administrator.
3334
3335         * systemd-rfkill will no longer take the rfkill device name
3336           into account when storing rfkill state on disk, as the name
3337           might be dynamically assigned and not stable. Instead, the
3338           ID_PATH udev variable combined with the rfkill type (wlan,
3339           bluetooth, ...) is used.
3340
3341         * A new service systemd-machine-id-commit.service has been
3342           added. When used on systems where /etc is read-only during
3343           boot, and /etc/machine-id is not initialized (but an empty
3344           file), this service will copy the temporary machine ID
3345           created as replacement into /etc after the system is fully
3346           booted up. This is useful for systems that are freshly
3347           installed with a non-initialized machine ID, but should get
3348           a fixed machine ID for subsequent boots.
3349
3350         * networkd's .netdev files now provide a large set of
3351           configuration parameters for VXLAN devices. Similarly, the
3352           bridge port cost parameter is now configurable in .network
3353           files. There's also new support for configuring IP source
3354           routing. networkd .link files gained support for a new
3355           OriginalName= match that is useful to match against the
3356           original interface name the kernel assigned. .network files
3357           may include MTU= and MACAddress= fields for altering the MTU
3358           and MAC address while being connected to a specific network
3359           interface.
3360
3361         * The LUKS logic gained supported for configuring
3362           UUID-specific key files. There's also new support for naming
3363           LUKS device from the kernel command line, using the new
3364           luks.name= argument.
3365
3366         * Timer units may now be transiently created via the bus API
3367           (this was previously already available for scope and service
3368           units). In addition it is now possible to create multiple
3369           transient units at the same time with a single bus call. The
3370           "systemd-run" tool has been updated to make use of this for
3371           running commands on a specified time, in at(1)-style.
3372
3373         * tmpfiles gained support for "t" lines, for assigning
3374           extended attributes to files. Among other uses this may be
3375           used to assign SMACK labels to files.
3376
3377         Contributions from: Alin Rauta, Alison Chaiken, Andrej
3378         Manduch, Bastien Nocera, Chris Atkinson, Chris Leech, Chris
3379         Mayo, Colin Guthrie, Colin Walters, Cristian Rodríguez,
3380         Daniele Medri, Daniel Mack, Dan Williams, Dan Winship, Dave
3381         Reisner, David Herrmann, Didier Roche, Felipe Sateler, Gavin
3382         Li, Hans de Goede, Harald Hoyer, Iago López Galeiras, Ivan
3383         Shapovalov, Jakub Filak, Jan Janssen, Jan Synacek, Joe
3384         Lawrence, Josh Triplett, Kay Sievers, Lennart Poettering,
3385         Lukas Nykryn, Łukasz Stelmach, Maciej Wereski, Mantas
3386         Mikulėnas, Marcel Holtmann, Martin Pitt, Maurizio Lombardi,
3387         Michael Biebl, Michael Chapman, Michael Marineau, Michal
3388         Schmidt, Michal Sekletar, Olivier Brunel, Patrik Flykt, Peter
3389         Hutterer, Przemyslaw Kedzierski, Rami Rosen, Ray Strode,
3390         Richard Schütz, Richard W.M. Jones, Ronny Chevalier, Ross
3391         Lagerwall, Sean Young, Stanisław Pitucha, Susant Sahani,
3392         Thomas Haller, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
3393         Torstein Husebø, Umut Tezduyar Lindskog, Vicente Olivert
3394         Riera, WaLyong Cho, Wesley Dawson, Zbigniew Jędrzejewski-Szmek
3395
3396         — Berlin, 2014-12-10
3397
3398 CHANGES WITH 217:
3399
3400         * journalctl gained the new options -t/--identifier= to match
3401           on the syslog identifier (aka "tag"), as well as --utc to
3402           show log timestamps in the UTC timezone. journalctl now also
3403           accepts -n/--lines=all to disable line capping in a pager.
3404
3405         * journalctl gained a new switch, --flush, that synchronously
3406           flushes logs from /run/log/journal to /var/log/journal if
3407           persistent storage is enabled. systemd-journal-flush.service
3408           now waits until the operation is complete.
3409
3410         * Services can notify the manager before they start a reload
3411           (by sending RELOADING=1) or shutdown (by sending
3412           STOPPING=1). This allows the manager to track and show the
3413           internal state of daemons and closes a race condition when
3414           the process is still running but has closed its D-Bus
3415           connection.
3416
3417         * Services with Type=oneshot do not have to have any ExecStart
3418           commands anymore.
3419
3420         * User units are now loaded also from
3421           $XDG_RUNTIME_DIR/systemd/user/. This is similar to the
3422           /run/systemd/user directory that was already previously
3423           supported, but is under the control of the user.
3424
3425         * Job timeouts (i.e. time-outs on the time a job that is
3426           queued stays in the run queue) can now optionally result in
3427           immediate reboot or power-off actions (JobTimeoutAction= and
3428           JobTimeoutRebootArgument=). This is useful on ".target"
3429           units, to limit the maximum time a target remains
3430           undispatched in the run queue, and to trigger an emergency
3431           operation in such a case. This is now used by default to
3432           turn off the system if boot-up (as defined by everything in
3433           basic.target) hangs and does not complete for at least
3434           15min. Also, if power-off or reboot hang for at least 30min
3435           an immediate power-off/reboot operation is triggered. This
3436           functionality is particularly useful to increase reliability
3437           on embedded devices, but also on laptops which might
3438           accidentally get powered on when carried in a backpack and
3439           whose boot stays stuck in a hard disk encryption passphrase
3440           question.
3441
3442         * systemd-logind can be configured to also handle lid switch
3443           events even when the machine is docked or multiple displays
3444           are attached (HandleLidSwitchDocked= option).
3445
3446         * A helper binary and a service have been added which can be
3447           used to resume from hibernation in the initramfs. A
3448           generator will parse the resume= option on the kernel
3449           command line to trigger resume.
3450
3451         * A user console daemon systemd-consoled has been
3452           added. Currently, it is a preview, and will so far open a
3453           single terminal on each session of the user marked as
3454           Desktop=systemd-console.
3455
3456         * Route metrics can be specified for DHCP routes added by
3457           systemd-networkd.
3458
3459         * The SELinux context of socket-activated services can be set
3460           from the information provided by the networking stack
3461           (SELinuxContextFromNet= option).
3462
3463         * Userspace firmware loading support has been removed and
3464           the minimum supported kernel version is thus bumped to 3.7.
3465
3466         * Timeout for udev workers has been increased from 1 to 3
3467           minutes, but a warning will be printed after 1 minute to
3468           help diagnose kernel modules that take a long time to load.
3469
3470         * Udev rules can now remove tags on devices with TAG-="foobar".
3471
3472         * systemd's readahead implementation has been removed. In many
3473           circumstances it didn't give expected benefits even for
3474           rotational disk drives and was becoming less relevant in the
3475           age of SSDs. As none of the developers has been using
3476           rotating media anymore, and nobody stepped up to actively
3477           maintain this component of systemd it has now been removed.
3478
3479         * Swap units can use Options= to specify discard options.
3480           Discard options specified for swaps in /etc/fstab are now
3481           respected.
3482
3483         * Docker containers are now detected as a separate type of
3484           virtualization.
3485
3486         * The Password Agent protocol gained support for queries where
3487           the user input is shown, useful e.g. for user names.
3488           systemd-ask-password gained a new --echo option to turn that
3489           on.
3490
3491         * The default sysctl.d/ snippets will now set:
3492
3493                 net.core.default_qdisc = fq_codel
3494
3495           This selects Fair Queuing Controlled Delay as the default
3496           queuing discipline for network interfaces. fq_codel helps
3497           fight the network bufferbloat problem. It is believed to be
3498           a good default with no tuning required for most workloads.
3499           Downstream distributions may override this choice. On 10Gbit
3500           servers that do not do forwarding, "fq" may perform better.
3501           Systems without a good clocksource should use "pfifo_fast".
3502
3503         * If kdbus is enabled during build a new option BusPolicy= is
3504           available for service units, that allows locking all service
3505           processes into a stricter bus policy, in order to limit
3506           access to various bus services, or even hide most of them
3507           from the service's view entirely.
3508
3509         * networkctl will now show the .network and .link file
3510           networkd has applied to a specific interface.
3511
3512         * sd-login gained a new API call sd_session_get_desktop() to
3513           query which desktop environment has been selected for a
3514           session.
3515
3516         * UNIX utmp support is now compile-time optional to support
3517           legacy-free systems.
3518
3519         * systemctl gained two new commands "add-wants" and
3520           "add-requires" for pulling in units from specific targets
3521           easily.
3522
3523         * If the word "rescue" is specified on the kernel command line
3524           the system will now boot into rescue mode (aka
3525           rescue.target), which was previously available only by
3526           specifying "1" or "systemd.unit=rescue.target" on the kernel
3527           command line. This new kernel command line option nicely
3528           mirrors the already existing "emergency" kernel command line
3529           option.
3530
3531         * New kernel command line options mount.usr=, mount.usrflags=,
3532           mount.usrfstype= have been added that match root=, rootflags=,
3533           rootfstype= but allow mounting a specific file system to
3534           /usr.
3535
3536         * The $NOTIFY_SOCKET is now also passed to control processes of
3537           services, not only the main process.
3538
3539         * This version reenables support for fsck's -l switch. This
3540           means at least version v2.25 of util-linux is required for
3541           operation, otherwise dead-locks on device nodes may
3542           occur. Again: you need to update util-linux to at least
3543           v2.25 when updating systemd to v217.
3544
3545         * The "multi-seat-x" tool has been removed from systemd, as
3546           its functionality has been integrated into X servers 1.16,
3547           and the tool is hence redundant. It is recommended to update
3548           display managers invoking this tool to simply invoke X
3549           directly from now on, again.
3550
3551         * Support for the new ALLOW_INTERACTIVE_AUTHORIZATION D-Bus
3552           message flag has been added for all of systemd's PolicyKit
3553           authenticated method calls has been added. In particular
3554           this now allows optional interactive authorization via
3555           PolicyKit for many of PID1's privileged operations such as
3556           unit file enabling and disabling.
3557
3558         * "udevadm hwdb --update" learnt a new switch "--usr" for
3559           placing the rebuilt hardware database in /usr instead of
3560           /etc. When used only hardware database entries stored in
3561           /usr will be used, and any user database entries in /etc are
3562           ignored. This functionality is useful for vendors to ship a
3563           pre-built database on systems where local configuration is
3564           unnecessary or unlikely.
3565
3566         * Calendar time specifications in .timer units now also
3567           understand the strings "semi-annually", "quarterly" and
3568           "minutely" as shortcuts (in addition to the preexisting
3569           "anually", "hourly", ...).
3570
3571         * systemd-tmpfiles will now correctly create files in /dev
3572           at boot which are marked for creation only at boot. It is
3573           recommended to always create static device nodes with 'c!'
3574           and 'b!', so that they are created only at boot and not
3575           overwritten at runtime.
3576
3577         * When the watchdog logic is used for a service (WatchdogSec=)
3578           and the watchdog timeout is hit the service will now be
3579           terminated with SIGABRT (instead of just SIGTERM), in order
3580           to make sure a proper coredump and backtrace is
3581           generated. This ensures that hanging services will result in
3582           similar coredump/backtrace behaviour as services that hit a
3583           segmentation fault.
3584
3585         Contributions from: Andreas Henriksson, Andrei Borzenkov,
3586         Angus Gibson, Ansgar Burchardt, Ben Wolsieffer, Brandon L.
3587         Black, Christian Hesse, Cristian Rodríguez, Daniel Buch,
3588         Daniele Medri, Daniel Mack, Dan Williams, Dave Reisner, David
3589         Herrmann, David Sommerseth, David Strauss, Emil Renner
3590         Berthing, Eric Cook, Evangelos Foutras, Filipe Brandenburger,
3591         Gustavo Sverzut Barbieri, Hans de Goede, Harald Hoyer, Hristo
3592         Venev, Hugo Grostabussiat, Ivan Shapovalov, Jan Janssen, Jan
3593         Synacek, Jonathan Liu, Juho Son, Karel Zak, Kay Sievers, Klaus
3594         Purer, Koen Kooi, Lennart Poettering, Lukas Nykryn, Lukasz
3595         Skalski, Łukasz Stelmach, Mantas Mikulėnas, Marcel Holtmann,
3596         Marius Tessmann, Marko Myllynen, Martin Pitt, Michael Biebl,
3597         Michael Marineau, Michael Olbrich, Michael Scherer, Michal
3598         Schmidt, Michal Sekletar, Miroslav Lichvar, Patrik Flykt,
3599         Philippe De Swert, Piotr Drąg, Rahul Sundaram, Richard
3600         Weinberger, Robert Milasan, Ronny Chevalier, Ruben Kerkhof,
3601         Santiago Vila, Sergey Ptashnick, Simon McVittie, Sjoerd
3602         Simons, Stefan Brüns, Steven Allen, Steven Noonan, Susant
3603         Sahani, Sylvain Plantefève, Thomas Hindoe Paaboel Andersen,
3604         Timofey Titovets, Tobias Hunger, Tom Gundersen, Torstein
3605         Husebø, Umut Tezduyar Lindskog, WaLyong Cho, Zbigniew
3606         Jędrzejewski-Szmek
3607
3608         — Berlin, 2014-10-28
3609
3610 CHANGES WITH 216:
3611
3612         * timedated no longer reads NTP implementation unit names from
3613           /usr/lib/systemd/ntp-units.d/*.list. Alternative NTP
3614           implementations should add a
3615
3616             Conflicts=systemd-timesyncd.service
3617
3618           to their unit files to take over and replace systemd's NTP
3619           default functionality.
3620
3621         * systemd-sysusers gained a new line type "r" for configuring
3622           which UID/GID ranges to allocate system users/groups
3623           from. Lines of type "u" may now add an additional column
3624           that specifies the home directory for the system user to be
3625           created. Also, systemd-sysusers may now optionally read user
3626           information from STDIN instead of a file. This is useful for
3627           invoking it from RPM preinst scriptlets that need to create
3628           users before the first RPM file is installed since these
3629           files might need to be owned by them. A new
3630           %sysusers_create_inline RPM macro has been introduced to do
3631           just that. systemd-sysusers now updates the shadow files as
3632           well as the user/group databases, which should enhance
3633           compatibility with certain tools like grpck.
3634
3635         * A number of bus APIs of PID 1 now optionally consult
3636           PolicyKit to permit access for otherwise unprivileged
3637           clients under certain conditions. Note that this currently
3638           doesn't support interactive authentication yet, but this is
3639           expected to be added eventually, too.
3640
3641         * /etc/machine-info now has new fields for configuring the
3642           deployment environment of the machine, as well as the
3643           location of the machine. hostnamectl has been updated with
3644           new command to update these fields.
3645
3646         * systemd-timesyncd has been updated to automatically acquire
3647           NTP server information from systemd-networkd, which might
3648           have been discovered via DHCP.
3649
3650         * systemd-resolved now includes a caching DNS stub resolver
3651           and a complete LLMNR name resolution implementation. A new
3652           NSS module "nss-resolve" has been added which can be used
3653           instead of glibc's own "nss-dns" to resolve hostnames via
3654           systemd-resolved. Hostnames, addresses and arbitrary RRs may
3655           be resolved via systemd-resolved D-Bus APIs. In contrast to
3656           the glibc internal resolver systemd-resolved is aware of
3657           multi-homed system, and keeps DNS server and caches separate
3658           and per-interface. Queries are sent simultaneously on all
3659           interfaces that have DNS servers configured, in order to
3660           properly handle VPNs and local LANs which might resolve
3661           separate sets of domain names. systemd-resolved may acquire
3662           DNS server information from systemd-networkd automatically,
3663           which in turn might have discovered them via DHCP. A tool
3664           "systemd-resolve-host" has been added that may be used to
3665           query the DNS logic in resolved. systemd-resolved implements
3666           IDNA and automatically uses IDNA or UTF-8 encoding depending
3667           on whether classic DNS or LLMNR is used as transport. In the
3668           next releases we intend to add a DNSSEC and mDNS/DNS-SD
3669           implementation to systemd-resolved.
3670
3671         * A new NSS module nss-mymachines has been added, that
3672           automatically resolves the names of all local registered
3673           containers to their respective IP addresses.
3674
3675         * A new client tool "networkctl" for systemd-networkd has been
3676           added. It currently is entirely passive and will query
3677           networking configuration from udev, rtnetlink and networkd,
3678           and present it to the user in a very friendly
3679           way. Eventually, we hope to extend it to become a full
3680           control utility for networkd.
3681
3682         * .socket units gained a new DeferAcceptSec= setting that
3683           controls the kernels' TCP_DEFER_ACCEPT sockopt for
3684           TCP. Similarly, support for controlling TCP keep-alive
3685           settings has been added (KeepAliveTimeSec=,
3686           KeepAliveIntervalSec=, KeepAliveProbes=). Also, support for
3687           turning off Nagle's algorithm on TCP has been added
3688           (NoDelay=).
3689
3690         * logind learned a new session type "web", for use in projects
3691           like Cockpit which register web clients as PAM sessions.
3692
3693         * timer units with at least one OnCalendar= setting will now
3694           be started only after time-sync.target has been
3695           reached. This way they will not elapse before the system
3696           clock has been corrected by a local NTP client or
3697           similar. This is particular useful on RTC-less embedded
3698           machines, that come up with an invalid system clock.
3699
3700         * systemd-nspawn's --network-veth= switch should now result in
3701           stable MAC addresses for both the outer and the inner side
3702           of the link.
3703
3704         * systemd-nspawn gained a new --volatile= switch for running
3705           container instances with /etc or /var unpopulated.
3706
3707         * The kdbus client code has been updated to use the new Linux
3708           3.17 memfd subsystem instead of the old kdbus-specific one.
3709
3710         * systemd-networkd's DHCP client and server now support
3711           FORCERENEW. There are also new configuration options to
3712           configure the vendor client identifier and broadcast mode
3713           for DHCP.
3714
3715         * systemd will no longer inform the kernel about the current
3716           timezone, as this is necessarily incorrect and racy as the
3717           kernel has no understanding of DST and similar
3718           concepts. This hence means FAT timestamps will be always
3719           considered UTC, similar to what Android is already
3720           doing. Also, when the RTC is configured to the local time
3721           (rather than UTC) systemd will never synchronize back to it,
3722           as this might confuse Windows at a later boot.
3723
3724         * systemd-analyze gained a new command "verify" for offline
3725           validation of unit files.
3726
3727         * systemd-networkd gained support for a couple of additional
3728           settings for bonding networking setups. Also, the metric for
3729           statically configured routes may now be configured. For
3730           network interfaces where this is appropriate the peer IP
3731           address may now be configured.
3732
3733         * systemd-networkd's DHCP client will no longer request
3734           broadcasting by default, as this tripped up some networks.
3735           For hardware where broadcast is required the feature should
3736           be switched back on using RequestBroadcast=yes.
3737
3738         * systemd-networkd will now set up IPv4LL addresses (when
3739           enabled) even if DHCP is configured successfully.
3740
3741         * udev will now default to respect network device names given
3742           by the kernel when the kernel indicates that these are
3743           predictable. This behavior can be tweaked by changing
3744           NamePolicy= in the relevant .link file.
3745
3746         * A new library systemd-terminal has been added that
3747           implements full TTY stream parsing and rendering. This
3748           library is supposed to be used later on for implementing a
3749           full userspace VT subsystem, replacing the current kernel
3750           implementation.
3751
3752         * A new tool systemd-journal-upload has been added to push
3753           journal data to a remote system running
3754           systemd-journal-remote.
3755
3756         * journald will no longer forward all local data to another
3757           running syslog daemon. This change has been made because
3758           rsyslog (which appears to be the most commonly used syslog
3759           implementation these days) no longer makes use of this, and
3760           instead pulls the data out of the journal on its own. Since
3761           forwarding the messages to a non-existent syslog server is
3762           more expensive than we assumed we have now turned this
3763           off. If you run a syslog server that is not a recent rsyslog
3764           version, you have to turn this option on again
3765           (ForwardToSyslog= in journald.conf).
3766
3767         * journald now optionally supports the LZ4 compressor for
3768           larger journal fields. This compressor should perform much
3769           better than XZ which was the previous default.
3770
3771         * machinectl now shows the IP addresses of local containers,
3772           if it knows them, plus the interface name of the container.
3773
3774         * A new tool "systemd-escape" has been added that makes it
3775           easy to escape strings to build unit names and similar.
3776
3777         * sd_notify() messages may now include a new ERRNO= field
3778           which is parsed and collected by systemd and shown among the
3779           "systemctl status" output for a service.
3780
3781         * A new component "systemd-firstboot" has been added that
3782           queries the most basic systemd information (timezone,
3783           hostname, root password) interactively on first
3784           boot. Alternatively it may also be used to provision these
3785           things offline on OS images installed into directories.
3786
3787         * The default sysctl.d/ snippets will now set
3788
3789                 net.ipv4.conf.default.promote_secondaries=1
3790
3791           This has the benefit of no flushing secondary IP addresses
3792           when primary addresses are removed.
3793
3794         Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
3795         Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
3796         Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
3797         Kenzior, Eelco Dolstra, Eric Cook, Hannes Reinecke, Harald
3798         Hoyer, Hong Shick Pak, Hui Wang, Jean-André Santoni, Jóhann
3799         B. Guðmundsson, Jon Severinsson, Karel Zak, Kay Sievers, Kevin
3800         Wells, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas,
3801         Marc-Antoine Perennou, Martin Pitt, Michael Biebl, Michael
3802         Marineau, Michael Olbrich, Michal Schmidt, Michal Sekletar,
3803         Miguel Angel Ajo, Mike Gilbert, Olivier Brunel, Robert
3804         Schiele, Ronny Chevalier, Simon McVittie, Sjoerd Simons, Stef
3805         Walter, Steven Noonan, Susant Sahani, Tanu Kaskinen, Thomas
3806         Blume, Thomas Hindoe Paaboel Andersen, Timofey Titovets,
3807         Tobias Geerinckx-Rice, Tomasz Torcz, Tom Gundersen, Umut
3808         Tezduyar Lindskog, Zbigniew Jędrzejewski-Szmek
3809
3810         — Berlin, 2014-08-19
3811
3812 CHANGES WITH 215:
3813
3814         * A new tool systemd-sysusers has been added. This tool
3815           creates system users and groups in /etc/passwd and
3816           /etc/group, based on static declarative system user/group
3817           definitions in /usr/lib/sysusers.d/. This is useful to
3818           enable factory resets and volatile systems that boot up with
3819           an empty /etc directory, and thus need system users and
3820           groups created during early boot. systemd now also ships
3821           with two default sysusers.d/ files for the most basic
3822           users and groups systemd and the core operating system
3823           require.
3824
3825         * A new tmpfiles snippet has been added that rebuilds the
3826           essential files in /etc on boot, should they be missing.
3827
3828         * A directive for ensuring automatic clean-up of
3829           /var/cache/man/ has been removed from the default
3830           configuration. This line should now be shipped by the man
3831           implementation. The necessary change has been made to the
3832           man-db implementation. Note that you need to update your man
3833           implementation to one that ships this line, otherwise no
3834           automatic clean-up of /var/cache/man will take place.
3835
3836         * A new condition ConditionNeedsUpdate= has been added that
3837           may conditionalize services to only run when /etc or /var
3838           are "older" than the vendor operating system resources in
3839           /usr. This is useful for reconstructing or updating /etc
3840           after an offline update of /usr or a factory reset, on the
3841           next reboot. Services that want to run once after such an
3842           update or reset should use this condition and order
3843           themselves before the new systemd-update-done.service, which
3844           will mark the two directories as fully updated. A number of
3845           service files have been added making use of this, to rebuild
3846           the udev hardware database, the journald message catalog and
3847           dynamic loader cache (ldconfig). The systemd-sysusers tool
3848           described above also makes use of this now. With this in
3849           place it is now possible to start up a minimal operating
3850           system with /etc empty cleanly. For more information on the
3851           concepts involved see this recent blog story:
3852
3853           http://0pointer.de/blog/projects/stateless.html
3854
3855         * A new system group "input" has been introduced, and all
3856           input device nodes get this group assigned. This is useful
3857           for system-level software to get access to input devices. It
3858           complements what is already done for "audio" and "video".
3859
3860         * systemd-networkd learnt minimal DHCPv4 server support in
3861           addition to the existing DHCPv4 client support. It also
3862           learnt DHCPv6 client and IPv6 Router Solicitation client
3863           support. The DHCPv4 client gained support for static routes
3864           passed in from the server. Note that the [DHCPv4] section
3865           known in older systemd-networkd versions has been renamed to
3866           [DHCP] and is now also used by the DHCPv6 client. Existing
3867           .network files using settings of this section should be
3868           updated, though compatibility is maintained. Optionally, the
3869           client hostname may now be sent to the DHCP server.
3870
3871         * networkd gained support for vxlan virtual networks as well
3872           as tun/tap and dummy devices.
3873
3874         * networkd gained support for automatic allocation of address
3875           ranges for interfaces from a system-wide pool of
3876           addresses. This is useful for dynamically managing a large
3877           number of interfaces with a single network configuration
3878           file. In particular this is useful to easily assign
3879           appropriate IP addresses to the veth links of a large number
3880           of nspawn instances.
3881
3882         * RPM macros for processing sysusers, sysctl and binfmt
3883           drop-in snippets at package installation time have been
3884           added.
3885
3886         * The /etc/os-release file should now be placed in
3887           /usr/lib/os-release. The old location is automatically
3888           created as symlink. /usr/lib is the more appropriate
3889           location of this file, since it shall actually describe the
3890           vendor operating system shipped in /usr, and not the
3891           configuration stored in /etc.
3892
3893         * .mount units gained a new boolean SloppyOptions= setting
3894           that maps to mount(8)'s -s option which enables permissive
3895           parsing of unknown mount options.
3896
3897         * tmpfiles learnt a new "L+" directive which creates a symlink
3898           but (unlike "L") deletes a pre-existing file first, should
3899           it already exist and not already be the correct
3900           symlink. Similarly, "b+", "c+" and "p+" directives have been
3901           added as well, which create block and character devices, as
3902           well as fifos in the filesystem, possibly removing any
3903           pre-existing files of different types.
3904
3905         * For tmpfiles' "L", "L+", "C" and "C+" directives the final
3906           'argument' field (which so far specified the source to
3907           symlink/copy the files from) is now optional. If omitted the
3908           same file os copied from /usr/share/factory/ suffixed by the
3909           full destination path. This is useful for populating /etc
3910           with essential files, by copying them from vendor defaults
3911           shipped in /usr/share/factory/etc.
3912
3913         * A new command "systemctl preset-all" has been added that
3914           applies the service preset settings to all installed unit
3915           files. A new switch --preset-mode= has been added that
3916           controls whether only enable or only disable operations
3917           shall be executed.
3918
3919         * A new command "systemctl is-system-running" has been added
3920           that allows checking the overall state of the system, for
3921           example whether it is fully up and running.
3922
3923         * When the system boots up with an empty /etc, the equivalent
3924           to "systemctl preset-all" is executed during early boot, to
3925           make sure all default services are enabled after a factory
3926           reset.
3927
3928         * systemd now contains a minimal preset file that enables the
3929           most basic services systemd ships by default.
3930
3931         * Unit files' [Install] section gained a new DefaultInstance=
3932           field for defining the default instance to create if a
3933           template unit is enabled with no instance specified.
3934
3935         * A new passive target cryptsetup-pre.target has been added
3936           that may be used by services that need to make they run and
3937           finish before the first LUKS cryptographic device is set up.
3938
3939         * The /dev/loop-control and /dev/btrfs-control device nodes
3940           are now owned by the "disk" group by default, opening up
3941           access to this group.
3942
3943         * systemd-coredump will now automatically generate a
3944           stack trace of all core dumps taking place on the system,
3945           based on elfutils' libdw library. This stack trace is logged
3946           to the journal.
3947
3948         * systemd-coredump may now optionally store coredumps directly
3949           on disk (in /var/lib/systemd/coredump, possibly compressed),
3950           instead of storing them unconditionally in the journal. This
3951           mode is the new default. A new configuration file
3952           /etc/systemd/coredump.conf has been added to configure this
3953           and other parameters of systemd-coredump.
3954
3955         * coredumpctl gained a new "info" verb to show details about a
3956           specific coredump. A new switch "-1" has also been added
3957           that makes sure to only show information about the most
3958           recent entry instead of all entries. Also, as the tool is
3959           generally useful now the "systemd-" prefix of the binary
3960           name has been removed. Distributions that want to maintain
3961           compatibility with the old name should add a symlink from
3962           the old name to the new name.
3963
3964         * journald's SplitMode= now defaults to "uid". This makes sure
3965           that unprivileged users can access their own coredumps with
3966           coredumpctl without restrictions.
3967
3968         * New kernel command line options "systemd.wants=" (for
3969           pulling an additional unit during boot), "systemd.mask="
3970           (for masking a specific unit for the boot), and
3971           "systemd.debug-shell" (for enabling the debug shell on tty9)
3972           have been added. This is implemented in the new generator
3973           "systemd-debug-generator".
3974
3975         * systemd-nspawn will now by default filter a couple of
3976           syscalls for containers, among them those required for
3977           kernel module loading, direct x86 IO port access, swap
3978           management, and kexec. Most importantly though
3979           open_by_handle_at() is now prohibited for containers,
3980           closing a hole similar to a recently discussed vulnerability
3981           in docker regarding access to files on file hierarchies the
3982           container should normally not have access to. Note that, for
3983           nspawn, we generally make no security claims anyway (and
3984           this is explicitly documented in the man page), so this is
3985           just a fix for one of the most obvious problems.
3986
3987         * A new man page file-hierarchy(7) has been added that
3988           contains a minimized, modernized version of the file system
3989           layout systemd expects, similar in style to the FHS
3990           specification or hier(5). A new tool systemd-path(1) has
3991           been added to query many of these paths for the local
3992           machine and user.
3993
3994         * Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
3995           longer done. Since the directory now has a per-user size
3996           limit, and is cleaned on logout this appears unnecessary,
3997           in particular since this now brings the lifecycle of this
3998           directory closer in line with how IPC objects are handled.
3999
4000         * systemd.pc now exports a number of additional directories,
4001           including $libdir (which is useful to identify the library
4002           path for the primary architecture of the system), and a
4003           couple of drop-in directories.
4004
4005         * udev's predictable network interface names now use the dev_port
4006           sysfs attribute, introduced in linux 3.15 instead of dev_id to
4007           distinguish between ports of the same PCI function. dev_id should
4008           only be used for ports using the same HW address, hence the need
4009           for dev_port.
4010
4011         * machined has been updated to export the OS version of a
4012           container (read from /etc/os-release and
4013           /usr/lib/os-release) on the bus. This is now shown in
4014           "machinectl status" for a machine.
4015
4016         * A new service setting RestartForceExitStatus= has been
4017           added. If configured to a set of exit signals or process
4018           return values, the service will be restarted when the main
4019           daemon process exits with any of them, regardless of the
4020           Restart= setting.
4021
4022         * systemctl's -H switch for connecting to remote systemd
4023           machines has been extended so that it may be used to
4024           directly connect to a specific container on the
4025           host. "systemctl -H root@foobar:waldi" will now connect as
4026           user "root" to host "foobar", and then proceed directly to
4027           the container named "waldi". Note that currently you have to
4028           authenticate as user "root" for this to work, as entering
4029           containers is a privileged operation.
4030
4031         Contributions from: Andreas Henriksson, Benjamin Steinwender,
4032         Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
4033         Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
4034         Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
4035         Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
4036         Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
4037         Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
4038         Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
4039         Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
4040         Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
4041         Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
4042         Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
4043
4044         — Berlin, 2014-07-03
4045
4046 CHANGES WITH 214:
4047
4048         * As an experimental feature, udev now tries to lock the
4049           disk device node (flock(LOCK_SH|LOCK_NB)) while it
4050           executes events for the disk or any of its partitions.
4051           Applications like partitioning programs can lock the
4052           disk device node (flock(LOCK_EX)) and claim temporary
4053           device ownership that way; udev will entirely skip all event
4054           handling for this disk and its partitions. If the disk
4055           was opened for writing, the close will trigger a partition
4056           table rescan in udev's "watch" facility, and if needed
4057           synthesize "change" events for the disk and all its partitions.
4058           This is now unconditionally enabled, and if it turns out to
4059           cause major problems, we might turn it on only for specific
4060           devices, or might need to disable it entirely. Device Mapper
4061           devices are excluded from this logic.
4062
4063         * We temporarily dropped the "-l" switch for fsck invocations,
4064           since they collide with the flock() logic above. util-linux
4065           upstream has been changed already to avoid this conflict,
4066           and we will readd "-l" as soon as util-linux with this
4067           change has been released.
4068
4069         * The dependency on libattr has been removed. Since a long
4070           time, the extended attribute calls have moved to glibc, and
4071           libattr is thus unnecessary.
4072
4073         * Virtualization detection works without privileges now. This
4074           means the systemd-detect-virt binary no longer requires
4075           CAP_SYS_PTRACE file capabilities, and our daemons can run
4076           with fewer privileges.
4077
4078         * systemd-networkd now runs under its own "systemd-network"
4079           user. It retains the CAP_NET_ADMIN, CAP_NET_BIND_SERVICE,
4080           CAP_NET_BROADCAST, CAP_NET_RAW capabilities though, but
4081           loses the ability to write to files owned by root this way.
4082
4083         * Similarly, systemd-resolved now runs under its own
4084           "systemd-resolve" user with no capabilities remaining.
4085
4086         * Similarly, systemd-bus-proxyd now runs under its own
4087           "systemd-bus-proxy" user with only CAP_IPC_OWNER remaining.
4088
4089         * systemd-networkd gained support for setting up "veth"
4090           virtual Ethernet devices for container connectivity, as well
4091           as GRE and VTI tunnels.
4092
4093         * systemd-networkd will no longer automatically attempt to
4094           manually load kernel modules necessary for certain tunnel
4095           transports. Instead, it is assumed the kernel loads them
4096           automatically when required. This only works correctly on
4097           very new kernels. On older kernels, please consider adding
4098           the kernel modules to /etc/modules-load.d/ as a work-around.
4099
4100         * The resolv.conf file systemd-resolved generates has been
4101           moved to /run/systemd/resolve/. If you have a symlink from
4102           /etc/resolv.conf, it might be necessary to correct it.
4103
4104         * Two new service settings, ProtectHome= and ProtectSystem=,
4105           have been added. When enabled, they will make the user data
4106           (such as /home) inaccessible or read-only and the system
4107           (such as /usr) read-only, for specific services. This allows
4108           very light-weight per-service sandboxing to avoid
4109           modifications of user data or system files from
4110           services. These two new switches have been enabled for all
4111           of systemd's long-running services, where appropriate.
4112
4113         * Socket units gained new SocketUser= and SocketGroup=
4114           settings to set the owner user and group of AF_UNIX sockets
4115           and FIFOs in the file system.
4116
4117         * Socket units gained a new RemoveOnStop= setting. If enabled,
4118           all FIFOS and sockets in the file system will be removed
4119           when the specific socket unit is stopped.
4120
4121         * Socket units gained a new Symlinks= setting. It takes a list
4122           of symlinks to create to file system sockets or FIFOs
4123           created by the specific Unix sockets. This is useful to
4124           manage symlinks to socket nodes with the same life-cycle as
4125           the socket itself.
4126
4127         * The /dev/log socket and /dev/initctl FIFO have been moved to
4128           /run, and have been replaced by symlinks. This allows
4129           connecting to these facilities even if PrivateDevices=yes is
4130           used for a service (which makes /dev/log itself unavailable,
4131           but /run is left). This also has the benefit of ensuring
4132           that /dev only contains device nodes, directories and
4133           symlinks, and nothing else.
4134
4135         * sd-daemon gained two new calls sd_pid_notify() and
4136           sd_pid_notifyf(). They are similar to sd_notify() and
4137           sd_notifyf(), but allow overriding of the source PID of
4138           notification messages if permissions permit this. This is
4139           useful to send notify messages on behalf of a different
4140           process (for example, the parent process). The
4141           systemd-notify tool has been updated to make use of this
4142           when sending messages (so that notification messages now
4143           originate from the shell script invoking systemd-notify and
4144           not the systemd-notify process itself. This should minimize
4145           a race where systemd fails to associate notification
4146           messages to services when the originating process already
4147           vanished.
4148
4149         * A new "on-abnormal" setting for Restart= has been added. If
4150           set, it will result in automatic restarts on all "abnormal"
4151           reasons for a process to exit, which includes unclean
4152           signals, core dumps, timeouts and watchdog timeouts, but
4153           does not include clean and unclean exit codes or clean
4154           signals. Restart=on-abnormal is an alternative for
4155           Restart=on-failure for services that shall be able to
4156           terminate and avoid restarts on certain errors, by
4157           indicating so with an unclean exit code. Restart=on-failure
4158           or Restart=on-abnormal is now the recommended setting for
4159           all long-running services.
4160
4161         * If the InaccessibleDirectories= service setting points to a
4162           mount point (or if there are any submounts contained within
4163           it), it is now attempted to completely unmount it, to make
4164           the file systems truly unavailable for the respective
4165           service.
4166
4167         * The ReadOnlyDirectories= service setting and
4168           systemd-nspawn's --read-only parameter are now recursively
4169           applied to all submounts, too.
4170
4171         * Mount units may now be created transiently via the bus APIs.
4172
4173         * The support for SysV and LSB init scripts has been removed
4174           from the systemd daemon itself. Instead, it is now
4175           implemented as a generator that creates native systemd units
4176           from these scripts when needed. This enables us to remove a
4177           substantial amount of legacy code from PID 1, following the
4178           fact that many distributions only ship a very small number
4179           of LSB/SysV init scripts nowadays.
4180
4181         * Privileged Xen (dom0) domains are not considered
4182           virtualization anymore by the virtualization detection
4183           logic. After all, they generally have unrestricted access to
4184           the hardware and usually are used to manage the unprivileged
4185           (domU) domains.
4186
4187         * systemd-tmpfiles gained a new "C" line type, for copying
4188           files or entire directories.
4189
4190         * systemd-tmpfiles "m" lines are now fully equivalent to "z"
4191           lines. So far, they have been non-globbing versions of the
4192           latter, and have thus been redundant. In future, it is
4193           recommended to only use "z". "m" has hence been removed
4194           from the documentation, even though it stays supported.
4195
4196         * A tmpfiles snippet to recreate the most basic structure in
4197           /var has been added. This is enough to create the /var/run →
4198           /run symlink and create a couple of structural
4199           directories. This allows systems to boot up with an empty or
4200           volatile /var. Of course, while with this change, the core OS
4201           now is capable with dealing with a volatile /var, not all
4202           user services are ready for it. However, we hope that sooner
4203           or later, many service daemons will be changed upstream so
4204           that they are able to automatically create their necessary
4205           directories in /var at boot, should they be missing. This is
4206           the first step to allow state-less systems that only require
4207           the vendor image for /usr to boot.
4208
4209         * systemd-nspawn has gained a new --tmpfs= switch to mount an
4210           empty tmpfs instance to a specific directory. This is
4211           particularly useful for making use of the automatic
4212           reconstruction of /var (see above), by passing --tmpfs=/var.
4213
4214         * Access modes specified in tmpfiles snippets may now be
4215           prefixed with "~", which indicates that they shall be masked
4216           by whether the existing file or directory is currently
4217           writable, readable or executable at all. Also, if specified,
4218           the sgid/suid/sticky bits will be masked for all
4219           non-directories.
4220
4221         * A new passive target unit "network-pre.target" has been
4222           added which is useful for services that shall run before any
4223           network is configured, for example firewall scripts.
4224
4225         * The "floppy" group that previously owned the /dev/fd*
4226           devices is no longer used. The "disk" group is now used
4227           instead. Distributions should probably deprecate usage of
4228           this group.
4229
4230         Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
4231         King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
4232         Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
4233         Lennart Poettering, Mantas Mikulėnas, Mark Eichin, Ronny
4234         Chevalier, Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel
4235         Andersen, Tom Gundersen, Umut Tezduyar Lindskog, Zbigniew
4236         Jędrzejewski-Szmek
4237
4238         — Berlin, 2014-06-11
4239
4240 CHANGES WITH 213:
4241
4242         * A new "systemd-timesyncd" daemon has been added for
4243           synchronizing the system clock across the network. It
4244           implements an SNTP client. In contrast to NTP
4245           implementations such as chrony or the NTP reference server,
4246           this only implements a client side, and does not bother with
4247           the full NTP complexity, focusing only on querying time from
4248           one remote server and synchronizing the local clock to
4249           it. Unless you intend to serve NTP to networked clients or
4250           want to connect to local hardware clocks, this simple NTP
4251           client should be more than appropriate for most
4252           installations. The daemon runs with minimal privileges, and
4253           has been hooked up with networkd to only operate when
4254           network connectivity is available. The daemon saves the
4255           current clock to disk every time a new NTP sync has been
4256           acquired, and uses this to possibly correct the system clock
4257           early at bootup, in order to accommodate for systems that
4258           lack an RTC such as the Raspberry Pi and embedded devices,
4259           and to make sure that time monotonically progresses on these
4260           systems, even if it is not always correct. To make use of
4261           this daemon, a new system user and group "systemd-timesync"
4262           needs to be created on installation of systemd.
4263
4264         * The queue "seqnum" interface of libudev has been disabled, as
4265           it was generally incompatible with device namespacing as
4266           sequence numbers of devices go "missing" if the devices are
4267           part of a different namespace.
4268
4269         * "systemctl list-timers" and "systemctl list-sockets" gained
4270           a --recursive switch for showing units of these types also
4271           for all local containers, similar in style to the already
4272           supported --recursive switch for "systemctl list-units".
4273
4274         * A new RebootArgument= setting has been added for service
4275           units, which may be used to specify a kernel reboot argument
4276           to use when triggering reboots with StartLimitAction=.
4277
4278         * A new FailureAction= setting has been added for service
4279           units which may be used to specify an operation to trigger
4280           when a service fails. This works similarly to
4281           StartLimitAction=, but unlike it, controls what is done
4282           immediately rather than only after several attempts to
4283           restart the service in question.
4284
4285         * hostnamed got updated to also expose the kernel name,
4286           release, and version on the bus. This is useful for
4287           executing commands like hostnamectl with the -H switch.
4288           systemd-analyze makes use of this to properly display
4289           details when running non-locally.
4290
4291         * The bootchart tool can now show cgroup information in the
4292           graphs it generates.
4293
4294         * The CFS CPU quota cgroup attribute is now exposed for
4295           services. The new CPUQuota= switch has been added for this
4296           which takes a percentage value. Setting this will have the
4297           result that a service may never get more CPU time than the
4298           specified percentage, even if the machine is otherwise idle.
4299
4300         * systemd-networkd learned IPIP and SIT tunnel support.
4301
4302         * LSB init scripts exposing a dependency on $network will now
4303           get a dependency on network-online.target rather than simply
4304           network.target. This should bring LSB handling closer to
4305           what it was on SysV systems.
4306
4307         * A new fsck.repair= kernel option has been added to control
4308           how fsck shall deal with unclean file systems at boot.
4309
4310         * The (.ini) configuration file parser will now silently
4311           ignore sections whose name begins with "X-". This may be
4312           used to maintain application-specific extension sections in unit
4313           files.
4314
4315         * machined gained a new API to query the IP addresses of
4316           registered containers. "machinectl status" has been updated
4317           to show these addresses in its output.
4318
4319         * A new call sd_uid_get_display() has been added to the
4320           sd-login APIs for querying the "primary" session of a
4321           user. The "primary" session of the user is elected from the
4322           user's sessions and generally a graphical session is
4323           preferred over a text one.
4324
4325         * A minimal systemd-resolved daemon has been added. It
4326           currently simply acts as a companion to systemd-networkd and
4327           manages resolv.conf based on per-interface DNS
4328           configuration, possibly supplied via DHCP. In the long run
4329           we hope to extend this into a local DNSSEC enabled DNS and
4330           mDNS cache.
4331
4332         * The systemd-networkd-wait-online tool is now enabled by
4333           default. It will delay network-online.target until a network
4334           connection has been configured. The tool primarily integrates
4335           with networkd, but will also make a best effort to make sense
4336           of network configuration performed in some other way.
4337
4338         * Two new service options StartupCPUShares= and
4339           StartupBlockIOWeight= have been added that work similarly to
4340           CPUShares= and BlockIOWeight= however only apply during
4341           system startup. This is useful to prioritize certain services
4342           differently during bootup than during normal runtime.
4343
4344         * hostnamed has been changed to prefer the statically
4345           configured hostname in /etc/hostname (unless set to
4346           'localhost' or empty) over any dynamic one supplied by
4347           dhcp. With this change, the rules for picking the hostname
4348           match more closely the rules of other configuration settings
4349           where the local administrator's configuration in /etc always
4350           overrides any other settings.
4351
4352         Contributions fron: Ali H. Caliskan, Alison Chaiken, Bas van
4353         den Berg, Brandon Philips, Cristian Rodríguez, Daniel Buch,
4354         Dan Kilman, Dave Reisner, David Härdeman, David Herrmann,
4355         David Strauss, Dimitris Spingos, Djalal Harouni, Eelco
4356         Dolstra, Evan Nemerson, Florian Albrechtskirchinger, Greg
4357         Kroah-Hartman, Harald Hoyer, Holger Hans Peter Freyther, Jan
4358         Engelhardt, Jani Nikula, Jason St. John, Jeffrey Clark,
4359         Jonathan Boulle, Kay Sievers, Lennart Poettering, Lukas
4360         Nykryn, Lukasz Skalski, Łukasz Stelmach, Mantas Mikulėnas,
4361         Marcel Holtmann, Martin Pitt, Matthew Monaco, Michael
4362         Marineau, Michael Olbrich, Michal Sekletar, Mike Gilbert, Nis
4363         Martensen, Patrik Flykt, Philip Lorenz, poma, Ray Strode,
4364         Reyad Attiyat, Robert Milasan, Scott Thrasher, Stef Walter,
4365         Steven Siloti, Susant Sahani, Tanu Kaskinen, Thomas Bächler,
4366         Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar
4367         Lindskog, WaLyong Cho, Will Woods, Zbigniew
4368         Jędrzejewski-Szmek
4369
4370         — Beijing, 2014-05-28
4371
4372 CHANGES WITH 212:
4373
4374         * When restoring the screen brightness at boot, stay away from
4375           the darkest setting or from the lowest 5% of the available
4376           range, depending on which is the larger value of both. This
4377           should effectively protect the user from rebooting into a
4378           black screen, should the brightness have been set to minimum
4379           by accident.
4380
4381         * sd-login gained a new sd_machine_get_class() call to
4382           determine the class ("vm" or "container") of a machine
4383           registered with machined.
4384
4385         * sd-login gained new calls
4386           sd_peer_get_{session,owner_uid,unit,user_unit,slice,machine_name}(),
4387           to query the identity of the peer of a local AF_UNIX
4388           connection. They operate similarly to their sd_pid_get_xyz()
4389           counterparts.
4390
4391         * PID 1 will now maintain a system-wide system state engine
4392           with the states "starting", "running", "degraded",
4393           "maintenance", "stopping". These states are bound to system
4394           startup, normal runtime, runtime with at least one failed
4395           service, rescue/emergency mode and system shutdown. This
4396           state is shown in the "systemctl status" output when no unit
4397           name is passed. It is useful to determine system state, in
4398           particularly when doing so for many systems or containers at
4399           once.
4400
4401         * A new command "list-machines" has been added to "systemctl"
4402           that lists all local OS containers and shows their system
4403           state (see above), if systemd runs inside of them.
4404
4405         * systemctl gained a new "-r" switch to recursively enumerate
4406           units on all local containers, when used with the
4407           "list-unit" command (which is the default one that is
4408           executed when no parameters are specified).
4409
4410         * The GPT automatic partition discovery logic will now honour
4411           two GPT partition flags: one may be set on a partition to
4412           cause it to be mounted read-only, and the other may be set
4413           on a partition to ignore it during automatic discovery.
4414
4415         * Two new GPT type UUIDs have been added for automatic root
4416           partition discovery, for 32-bit and 64-bit ARM. This is not
4417           particularly useful for discovering the root directory on
4418           these architectures during bare-metal boots (since UEFI is
4419           not common there), but still very useful to allow booting of
4420           ARM disk images in nspawn with the -i option.
4421
4422         * MAC addresses of interfaces created with nspawn's
4423           --network-interface= switch will now be generated from the
4424           machine name, and thus be stable between multiple invocations
4425           of the container.
4426
4427         * logind will now automatically remove all IPC objects owned
4428           by a user if she or he fully logs out. This makes sure that
4429           users who are logged out cannot continue to consume IPC
4430           resources. This covers SysV memory, semaphores and message
4431           queues as well as POSIX shared memory and message
4432           queues. Traditionally, SysV and POSIX IPC had no life-cycle
4433           limits. With this functionality, that is corrected. This may
4434           be turned off by using the RemoveIPC= switch of logind.conf.
4435
4436         * The systemd-machine-id-setup and tmpfiles tools gained a
4437           --root= switch to operate on a specific root directory,
4438           instead of /.
4439
4440         * journald can now forward logged messages to the TTYs of all
4441           logged in users ("wall"). This is the default for all
4442           emergency messages now.
4443
4444         * A new tool systemd-journal-remote has been added to stream
4445           journal log messages across the network.
4446
4447         * /sys/fs/cgroup/ is now mounted read-only after all cgroup
4448           controller trees are mounted into it. Note that the
4449           directories mounted beneath it are not read-only. This is a
4450           security measure and is particularly useful because glibc
4451           actually includes a search logic to pick any tmpfs it can
4452           find to implement shm_open() if /dev/shm is not available
4453           (which it might very well be in namespaced setups).
4454
4455         * machinectl gained a new "poweroff" command to cleanly power
4456           down a local OS container.
4457
4458         * The PrivateDevices= unit file setting will now also drop the
4459           CAP_MKNOD capability from the capability bound set, and
4460           imply DevicePolicy=closed.
4461
4462         * PrivateDevices=, PrivateNetwork= and PrivateTmp= is now used
4463           comprehensively on all long-running systemd services where
4464           this is appropriate.
4465
4466         * systemd-udevd will now run in a disassociated mount
4467           namespace. To mount directories from udev rules, make sure to
4468           pull in mount units via SYSTEMD_WANTS properties.
4469
4470         * The kdbus support gained support for uploading policy into
4471           the kernel. sd-bus gained support for creating "monitoring"
4472           connections that can eavesdrop into all bus communication
4473           for debugging purposes.
4474
4475         * Timestamps may now be specified in seconds since the UNIX
4476           epoch Jan 1st, 1970 by specifying "@" followed by the value
4477           in seconds.
4478
4479         * Native tcpwrap support in systemd has been removed. tcpwrap
4480           is old code, not really maintained anymore and has serious
4481           shortcomings, and better options such as firewalls
4482           exist. For setups that require tcpwrap usage, please
4483           consider invoking your socket-activated service via tcpd,
4484           like on traditional inetd.
4485
4486         * A new system.conf configuration option
4487           DefaultTimerAccuracySec= has been added that controls the
4488           default AccuracySec= setting of .timer units.
4489
4490         * Timer units gained a new WakeSystem= switch. If enabled,
4491           timers configured this way will cause the system to resume
4492           from system suspend (if the system supports that, which most
4493           do these days).
4494
4495         * Timer units gained a new Persistent= switch. If enabled,
4496           timers configured this way will save to disk when they have
4497           been last triggered. This information is then used on next
4498           reboot to possible execute overdue timer events, that
4499           could not take place because the system was powered off.
4500           This enables simple anacron-like behaviour for timer units.
4501
4502         * systemctl's "list-timers" will now also list the time a
4503           timer unit was last triggered in addition to the next time
4504           it will be triggered.
4505
4506         * systemd-networkd will now assign predictable IPv4LL
4507           addresses to its local interfaces.
4508
4509         Contributions from: Brandon Philips, Daniel Buch, Daniel Mack,
4510         Dave Reisner, David Herrmann, Gerd Hoffmann, Greg
4511         Kroah-Hartman, Hendrik Brueckner, Jason St. John, Josh
4512         Triplett, Kay Sievers, Lennart Poettering, Marc-Antoine
4513         Perennou, Michael Marineau, Michael Olbrich, Miklos Vajna,
4514         Patrik Flykt, poma, Sebastian Thorarensen, Thomas Bächler,
4515         Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom Gundersen,
4516         Umut Tezduyar Lindskog, Wieland Hoffmann, Zbigniew
4517         Jędrzejewski-Szmek
4518
4519         — Berlin, 2014-03-25
4520
4521 CHANGES WITH 211:
4522
4523         * A new unit file setting RestrictAddressFamilies= has been
4524           added to restrict which socket address families unit
4525           processes gain access to. This takes address family names
4526           like "AF_INET" or "AF_UNIX", and is useful to minimize the
4527           attack surface of services via exotic protocol stacks. This
4528           is built on seccomp system call filters.
4529
4530         * Two new unit file settings RuntimeDirectory= and
4531           RuntimeDirectoryMode= have been added that may be used to
4532           manage a per-daemon runtime directories below /run. This is
4533           an alternative for setting up directory permissions with
4534           tmpfiles snippets, and has the advantage that the runtime
4535           directory's lifetime is bound to the daemon runtime and that
4536           the daemon starts up with an empty directory each time. This
4537           is particularly useful when writing services that drop
4538           privileges using the User= or Group= setting.
4539
4540         * The DeviceAllow= unit setting now supports globbing for
4541           matching against device group names.
4542
4543         * The systemd configuration file system.conf gained new
4544           settings DefaultCPUAccounting=, DefaultBlockIOAccounting=,
4545           DefaultMemoryAccounting= to globally turn on/off accounting
4546           for specific resources (cgroups) for all units. These
4547           settings may still be overridden individually in each unit
4548           though.
4549
4550         * systemd-gpt-auto-generator is now able to discover /srv and
4551           root partitions in addition to /home and swap partitions. It
4552           also supports LUKS-encrypted partitions now. With this in
4553           place, automatic discovery of partitions to mount following
4554           the Discoverable Partitions Specification
4555           (https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec)
4556           is now a lot more complete. This allows booting without
4557           /etc/fstab and without root= on the kernel command line on
4558           systems prepared appropriately.
4559
4560         * systemd-nspawn gained a new --image= switch which allows
4561           booting up disk images and Linux installations on any block
4562           device that follow the Discoverable Partitions Specification
4563           (see above). This means that installations made with
4564           appropriately updated installers may now be started and
4565           deployed using container managers, completely
4566           unmodified. (We hope that libvirt-lxc will add support for
4567           this feature soon, too.)
4568
4569         * systemd-nspawn gained a new --network-macvlan= setting to
4570           set up a private macvlan interface for the
4571           container. Similarly, systemd-networkd gained a new
4572           Kind=macvlan setting in .netdev files.
4573
4574         * systemd-networkd now supports configuring local addresses
4575           using IPv4LL.
4576
4577         * A new tool systemd-network-wait-online has been added to
4578           synchronously wait for network connectivity using
4579           systemd-networkd.
4580
4581         * The sd-bus.h bus API gained a new sd_bus_track object for
4582           tracking the life-cycle of bus peers. Note that sd-bus.h is
4583           still not a public API though (unless you specify
4584           --enable-kdbus on the configure command line, which however
4585           voids your warranty and you get no API stability guarantee).
4586
4587         * The $XDG_RUNTIME_DIR runtime directories for each user are
4588           now individual tmpfs instances, which has the benefit of
4589           introducing separate pools for each user, with individual
4590           size limits, and thus making sure that unprivileged clients
4591           can no longer negatively impact the system or other users by
4592           filling up their $XDG_RUNTIME_DIR. A new logind.conf setting
4593           RuntimeDirectorySize= has been introduced that allows
4594           controlling the default size limit for all users. It
4595           defaults to 10% of the available physical memory. This is no
4596           replacement for quotas on tmpfs though (which the kernel
4597           still does not support), as /dev/shm and /tmp are still
4598           shared resources used by both the system and unprivileged
4599           users.
4600
4601         * logind will now automatically turn off automatic suspending
4602           on laptop lid close when more than one display is
4603           connected. This was previously expected to be implemented
4604           individually in desktop environments (such as GNOME),
4605           however has been added to logind now, in order to fix a
4606           boot-time race where a desktop environment might not have
4607           been started yet and thus not been able to take an inhibitor
4608           lock at the time where logind already suspends the system
4609           due to a closed lid.
4610
4611         * logind will now wait at least 30s after each system
4612           suspend/resume cycle, and 3min after system boot before
4613           suspending the system due to a closed laptop lid. This
4614           should give USB docking stations and similar enough time to
4615           be probed and configured after system resume and boot in
4616           order to then act as suspend blocker.
4617
4618         * systemd-run gained a new --property= setting which allows
4619           initialization of resource control properties (and others)
4620           for the created scope or service unit. Example: "systemd-run
4621           --property=BlockIOWeight=10 updatedb" may be used to run
4622           updatedb at a low block IO scheduling weight.
4623
4624         * systemd-run's --uid=, --gid=, --setenv=, --setenv= switches
4625           now also work in --scope mode.
4626
4627         * When systemd is compiled with kdbus support, basic support
4628           for enforced policies is now in place. (Note that enabling
4629           kdbus still voids your warranty and no API compatibility
4630           promises are made.)
4631
4632         Contributions from: Andrey Borzenkov, Ansgar Burchardt, Armin
4633         K., Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
4634         Harald Hoyer, Henrik Grindal Bakken, Jasper St. Pierre, Kay
4635         Sievers, Kieran Clancy, Lennart Poettering, Lukas Nykryn,
4636         Mantas Mikulėnas, Marcel Holtmann, Mark Oteiza, Martin Pitt,
4637         Mike Gilbert, Peter Rajnoha, poma, Samuli Suominen, Stef
4638         Walter, Susant Sahani, Tero Roponen, Thomas Andersen, Thomas
4639         Bächler, Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom
4640         Gundersen, Umut Tezduyar Lindskog, Uoti Urpala, Zachary Cook,
4641         Zbigniew Jędrzejewski-Szmek
4642
4643         — Berlin, 2014-03-12
4644
4645 CHANGES WITH 210:
4646
4647         * systemd will now relabel /dev after loading the SMACK policy
4648           according to SMACK rules.
4649
4650         * A new unit file option AppArmorProfile= has been added to
4651           set the AppArmor profile for the processes of a unit.
4652
4653         * A new condition check ConditionArchitecture= has been added
4654           to conditionalize units based on the system architecture, as
4655           reported by uname()'s "machine" field.
4656
4657         * systemd-networkd now supports matching on the system
4658           virtualization, architecture, kernel command line, host name
4659           and machine ID.
4660
4661         * logind is now a lot more aggressive when suspending the
4662           machine due to a closed laptop lid. Instead of acting only
4663           on the lid close action, it will continuously watch the lid
4664           status and act on it. This is useful for laptops where the
4665           power button is on the outside of the chassis so that it can
4666           be reached without opening the lid (such as the Lenovo
4667           Yoga). On those machines, logind will now immediately
4668           re-suspend the machine if the power button has been
4669           accidentally pressed while the laptop was suspended and in a
4670           backpack or similar.
4671
4672         * logind will now watch SW_DOCK switches and inhibit reaction
4673           to the lid switch if it is pressed. This means that logind
4674           will not suspend the machine anymore if the lid is closed
4675           and the system is docked, if the laptop supports SW_DOCK
4676           notifications via the input layer. Note that ACPI docking
4677           stations do not generate this currently. Also note that this
4678           logic is usually not fully sufficient and Desktop
4679           Environments should take a lid switch inhibitor lock when an
4680           external display is connected, as systemd will not watch
4681           this on its own.
4682
4683         * nspawn will now make use of the devices cgroup controller by
4684           default, and only permit creation of and access to the usual
4685           API device nodes like /dev/null or /dev/random, as well as
4686           access to (but not creation of) the pty devices.
4687
4688         * We will now ship a default .network file for
4689           systemd-networkd that automatically configures DHCP for
4690           network interfaces created by nspawn's --network-veth or
4691           --network-bridge= switches.
4692
4693         * systemd will now understand the usual M, K, G, T suffixes
4694           according to SI conventions (i.e. to the base 1000) when
4695           referring to throughput and hardware metrics. It will stay
4696           with IEC conventions (i.e. to the base 1024) for software
4697           metrics, according to what is customary according to
4698           Wikipedia. We explicitly document which base applies for
4699           each configuration option.
4700
4701         * The DeviceAllow= setting in unit files now supports a syntax
4702           to whitelist an entire group of devices node majors at once,
4703           based on the /proc/devices listing. For example, with the
4704           string "char-pts", it is now possible to whitelist all
4705           current and future pseudo-TTYs at once.
4706
4707         * sd-event learned a new "post" event source. Event sources of
4708           this type are triggered by the dispatching of any event
4709           source of a type that is not "post". This is useful for
4710           implementing clean-up and check event sources that are
4711           triggered by other work being done in the program.
4712
4713         * systemd-networkd is no longer statically enabled, but uses
4714           the usual [Install] sections so that it can be
4715           enabled/disabled using systemctl. It still is enabled by
4716           default however.
4717
4718         * When creating a veth interface pair with systemd-nspawn, the
4719           host side will now be prefixed with "vb-" if
4720           --network-bridge= is used, and with "ve-" if --network-veth
4721           is used. This way, it is easy to distinguish these cases on
4722           the host, for example to apply different configuration to
4723           them with systemd-networkd.
4724
4725         * The compatibility libraries for libsystemd-journal.so,
4726           libsystem-id128.so, libsystemd-login.so and
4727           libsystemd-daemon.so do not make use of IFUNC
4728           anymore. Instead, we now build libsystemd.so multiple times
4729           under these alternative names. This means that the footprint
4730           is drastically increased, but given that these are
4731           transitional compatibility libraries, this should not matter
4732           much. This change has been made necessary to support the ARM
4733           platform for these compatibility libraries, as the ARM
4734           toolchain is not really at the same level as the toolchain
4735           for other architectures like x86 and does not support
4736           IFUNC. Please make sure to use --enable-compat-libs only
4737           during a transitional period!
4738
4739         Contributions from: Andreas Fuchs, Armin K., Colin Walters,
4740         Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
4741         Holger Schurig, Jason A. Donenfeld, Jason St. John, Jasper
4742         St. Pierre, Kay Sievers, Lennart Poettering, Łukasz Stelmach,
4743         Marcel Holtmann, Michael Scherer, Michal Sekletar, Mike
4744         Gilbert, Samuli Suominen, Thomas Bächler, Thomas Hindoe
4745         Paaboel Andersen, Tom Gundersen, Umut Tezduyar Lindskog,
4746         Zbigniew Jędrzejewski-Szmek
4747
4748         — Berlin, 2014-02-24
4749
4750 CHANGES WITH 209:
4751
4752         * A new component "systemd-networkd" has been added that can
4753           be used to configure local network interfaces statically or
4754           via DHCP. It is capable of bringing up bridges, VLANs, and
4755           bonding. Currently, no hook-ups for interactive network
4756           configuration are provided. Use this for your initrd,
4757           container, embedded, or server setup if you need a simple,
4758           yet powerful, network configuration solution. This
4759           configuration subsystem is quite nifty, as it allows wildcard
4760           hotplug matching in interfaces. For example, with a single
4761           configuration snippet, you can configure that all Ethernet
4762           interfaces showing up are automatically added to a bridge,
4763           or similar. It supports link-sensing and more.
4764
4765         * A new tool "systemd-socket-proxyd" has been added which can
4766           act as a bidirectional proxy for TCP sockets. This is
4767           useful for adding socket activation support to services that
4768           do not actually support socket activation, including virtual
4769           machines and the like.
4770
4771         * Add a new tool to save/restore rfkill state on
4772           shutdown/boot.
4773
4774         * Save/restore state of keyboard backlights in addition to
4775           display backlights on shutdown/boot.
4776
4777         * udev learned a new SECLABEL{} construct to label device
4778           nodes with a specific security label when they appear. For
4779           now, only SECLABEL{selinux} is supported, but the syntax is
4780           prepared for additional security frameworks.
4781
4782         * udev gained a new scheme to configure link-level attributes
4783           from files in /etc/systemd/network/*.link. These files can
4784           match against MAC address, device path, driver name and type,
4785           and will apply attributes like the naming policy, link speed,
4786           MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC
4787           address assignment policy (randomized, ...).
4788
4789         * The configuration of network interface naming rules for
4790           "permanent interface names" has changed: a new NamePolicy=
4791           setting in the [Link] section of .link files determines the
4792           priority of possible naming schemes (onboard, slot, MAC,
4793           path). The default value of this setting is determined by
4794           /usr/lib/net/links/99-default.link. Old
4795           80-net-name-slot.rules udev configuration file has been
4796           removed, so local configuration overriding this file should
4797           be adapted to override 99-default.link instead.
4798
4799         * When the User= switch is used in a unit file, also
4800           initialize $SHELL= based on the user database entry.
4801
4802         * systemd no longer depends on libdbus. All communication is
4803           now done with sd-bus, systemd's low-level bus library
4804           implementation.
4805
4806         * kdbus support has been added to PID 1 itself. When kdbus is
4807           enabled, this causes PID 1 to set up the system bus and
4808           enable support for a new ".busname" unit type that
4809           encapsulates bus name activation on kdbus. It works a little
4810           bit like ".socket" units, except for bus names. A new
4811           generator has been added that converts classic dbus1 service
4812           activation files automatically into native systemd .busname
4813           and .service units.
4814
4815         * sd-bus: add a light-weight vtable implementation that allows
4816           defining objects on the bus with a simple static const
4817           vtable array of its methods, signals and properties.
4818
4819         * systemd will not generate or install static dbus
4820           introspection data anymore to /usr/share/dbus-1/interfaces,
4821           as the precise format of these files is unclear, and
4822           nothing makes use of it.
4823
4824         * A proxy daemon is now provided to proxy clients connecting
4825           via classic D-Bus AF_UNIX sockets to kdbus, to provide full
4826           compatibility with classic D-Bus.
4827
4828         * A bus driver implementation has been added that supports the
4829           classic D-Bus bus driver calls on kdbus, also for
4830           compatibility purposes.
4831
4832         * A new API "sd-event.h" has been added that implements a
4833           minimal event loop API built around epoll. It provides a
4834           couple of features that direct epoll usage is lacking:
4835           prioritization of events, scales to large numbers of timer
4836           events, per-event timer slack (accuracy), system-wide
4837           coalescing of timer events, exit handlers, watchdog
4838           supervision support using systemd's sd_notify() API, child
4839           process handling.
4840
4841         * A new API "sd-rntl.h" has been added that provides an API
4842           around the route netlink interface of the kernel, similar in
4843           style to "sd-bus.h".
4844
4845         * A new API "sd-dhcp-client.h" has been added that provides a
4846           small DHCPv4 client-side implementation. This is used by
4847           "systemd-networkd".
4848
4849         * There is a new kernel command line option
4850           "systemd.restore_state=0|1". When set to "0", none of the
4851           systemd tools will restore saved runtime state to hardware
4852           devices. More specifically, the rfkill and backlight states
4853           are not restored.
4854
4855         * The FsckPassNo= compatibility option in mount/service units
4856           has been removed. The fstab generator will now add the
4857           necessary dependencies automatically, and does not require
4858           PID1's support for that anymore.
4859
4860         * journalctl gained a new switch, --list-boots, that lists
4861           recent boots with their times and boot IDs.
4862
4863         * The various tools like systemctl, loginctl, timedatectl,
4864           busctl, systemd-run, ... have gained a new switch "-M" to
4865           connect to a specific, local OS container (as direct
4866           connection, without requiring SSH). This works on any
4867           container that is registered with machined, such as those
4868           created by libvirt-lxc or nspawn.
4869
4870         * systemd-run and systemd-analyze also gained support for "-H"
4871           to connect to remote hosts via SSH. This is particularly
4872           useful for systemd-run because it enables queuing of jobs
4873           onto remote systems.
4874
4875         * machinectl gained a new command "login" to open a getty
4876           login in any local container. This works with any container
4877           that is registered with machined (such as those created by
4878           libvirt-lxc or nspawn), and which runs systemd inside.
4879
4880         * machinectl gained a new "reboot" command that may be used to
4881           trigger a reboot on a specific container that is registered
4882           with machined. This works on any container that runs an init
4883           system of some kind.
4884
4885         * systemctl gained a new "list-timers" command to print a nice
4886           listing of installed timer units with the times they elapse
4887           next.
4888
4889         * Alternative reboot() parameters may now be specified on the
4890           "systemctl reboot" command line and are passed to the
4891           reboot() system call.
4892
4893         * systemctl gained a new --job-mode= switch to configure the
4894           mode to queue a job with. This is a more generic version of
4895           --fail, --irreversible, and --ignore-dependencies, which are
4896           still available but not advertised anymore.
4897
4898         * /etc/systemd/system.conf gained new settings to configure
4899           various default timeouts of units, as well as the default
4900           start limit interval and burst. These may still be overridden
4901           within each Unit.
4902
4903         * PID1 will now export on the bus profile data of the security
4904           policy upload process (such as the SELinux policy upload to
4905           the kernel).
4906
4907         * journald: when forwarding logs to the console, include
4908           timestamps (following the setting in
4909           /sys/module/printk/parameters/time).
4910
4911         * OnCalendar= in timer units now understands the special
4912           strings "yearly" and "annually". (Both are equivalent)
4913
4914         * The accuracy of timer units is now configurable with the new
4915           AccuracySec= setting. It defaults to 1min.
4916
4917         * A new dependency type JoinsNamespaceOf= has been added that
4918           allows running two services within the same /tmp and network
4919           namespace, if PrivateNetwork= or PrivateTmp= are used.
4920
4921         * A new command "cat" has been added to systemctl. It outputs
4922           the original unit file of a unit, and concatenates the
4923           contents of additional "drop-in" unit file snippets, so that
4924           the full configuration is shown.
4925
4926         * systemctl now supports globbing on the various "list-xyz"
4927           commands, like "list-units" or "list-sockets", as well as on
4928           those commands which take multiple unit names.
4929
4930         * journalctl's --unit= switch gained support for globbing.
4931
4932         * All systemd daemons now make use of the watchdog logic so
4933           that systemd automatically notices when they hang.
4934
4935         * If the $container_ttys environment variable is set,
4936           getty-generator will automatically spawn a getty for each
4937           listed tty. This is useful for container managers to request
4938           login gettys to be spawned on as many ttys as needed.
4939
4940         * %h, %s, %U specifier support is not available anymore when
4941           used in unit files for PID 1. This is because NSS calls are
4942           not safe from PID 1. They stay available for --user
4943           instances of systemd, and as special case for the root user.
4944
4945         * loginctl gained a new "--no-legend" switch to turn off output
4946           of the legend text.
4947
4948         * The "sd-login.h" API gained three new calls:
4949           sd_session_is_remote(), sd_session_get_remote_user(),
4950           sd_session_get_remote_host() to query information about
4951           remote sessions.
4952
4953         * The udev hardware database now also carries vendor/product
4954           information of SDIO devices.
4955
4956         * The "sd-daemon.h" API gained a new sd_watchdog_enabled() to
4957           determine whether watchdog notifications are requested by
4958           the system manager.
4959
4960         * Socket-activated per-connection services now include a
4961           short description of the connection parameters in the
4962           description.
4963
4964         * tmpfiles gained a new "--boot" option. When this is not used,
4965           only lines where the command character is not suffixed with
4966           "!" are executed. When this option is specified, those
4967           options are executed too. This partitions tmpfiles
4968           directives into those that can be safely executed at any
4969           time, and those which should be run only at boot (for
4970           example, a line that creates /run/nologin).
4971
4972         * A new API "sd-resolve.h" has been added which provides a simple
4973           asynchronous wrapper around glibc NSS host name resolution
4974           calls, such as getaddrinfo(). In contrast to glibc's
4975           getaddrinfo_a(), it does not use signals. In contrast to most
4976           other asynchronous name resolution libraries, this one does
4977           not reimplement DNS, but reuses NSS, so that alternate
4978           host name resolution systems continue to work, such as mDNS,
4979           LDAP, etc. This API is based on libasyncns, but it has been
4980           cleaned up for inclusion in systemd.
4981
4982         * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h",
4983           "sd-daemon.h" are no longer found in individual libraries
4984           libsystemd-journal.so, libsystemd-login.so,
4985           libsystemd-id128.so, libsystemd-daemon.so. Instead, we have
4986           merged them into a single library, libsystemd.so, which
4987           provides all symbols. The reason for this is cyclic
4988           dependencies, as these libraries tend to use each other's
4989           symbols. So far, we have managed to workaround that by linking
4990           a copy of a good part of our code into each of these
4991           libraries again and again, which, however, makes certain
4992           things hard to do, like sharing static variables. Also, it
4993           substantially increases footprint. With this change, there
4994           is only one library for the basic APIs systemd
4995           provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h",
4996           "sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this
4997           library as well, however are subject to the --enable-kdbus
4998           switch (see below). Note that "sd-dhcp-client.h" is not part
4999           of this library (this is because it only consumes, never
5000           provides, services of/to other APIs). To make the transition
5001           easy from the separate libraries to the unified one, we
5002           provide the --enable-compat-libs compile-time switch which
5003           will generate stub libraries that are compatible with the
5004           old ones but redirect all calls to the new one.
5005
5006         * All of the kdbus logic and the new APIs "sd-bus.h",
5007           "sd-memfd.h", "sd-event.h", "sd-rtnl.h", "sd-resolve.h",
5008           and "sd-utf8.h" are compile-time optional via the
5009           "--enable-kdbus" switch, and they are not compiled in by
5010           default. To make use of kdbus, you have to explicitly enable
5011           the switch. Note however, that neither the kernel nor the
5012           userspace API for all of this is considered stable yet. We
5013           want to maintain the freedom to still change the APIs for
5014           now. By specifying this build-time switch, you acknowledge
5015           that you are aware of the instability of the current
5016           APIs.
5017
5018         * Also, note that while kdbus is pretty much complete,
5019           it lacks one thing: proper policy support. This means you
5020           can build a fully working system with all features; however,
5021           it will be highly insecure. Policy support will be added in
5022           one of the next releases, at the same time that we will
5023           declare the APIs stable.
5024
5025         * When the kernel command line argument "kdbus" is specified,
5026           systemd will automatically load the kdbus.ko kernel module. At
5027           this stage of development, it is only useful for testing kdbus
5028           and should not be used in production. Note: if "--enable-kdbus"
5029           is specified, and the kdbus.ko kernel module is available, and
5030           "kdbus" is added to the kernel command line, the entire system
5031           runs with kdbus instead of dbus-daemon, with the above mentioned
5032           problem of missing the system policy enforcement. Also a future
5033           version of kdbus.ko or a newer systemd will not be compatible with
5034           each other, and will unlikely be able to boot the machine if only
5035           one of them is updated.
5036
5037         * systemctl gained a new "import-environment" command which
5038           uploads the caller's environment (or parts thereof) into the
5039           service manager so that it is inherited by services started
5040           by the manager. This is useful to upload variables like
5041           $DISPLAY into the user service manager.
5042
5043         * A new PrivateDevices= switch has been added to service units
5044           which allows running a service with a namespaced /dev
5045           directory that does not contain any device nodes for
5046           physical devices. More specifically, it only includes devices
5047           such as /dev/null, /dev/urandom, and /dev/zero which are API
5048           entry points.
5049
5050         * logind has been extended to support behaviour like VT
5051           switching on seats that do not support a VT. This makes
5052           multi-session available on seats that are not the first seat
5053           (seat0), and on systems where kernel support for VTs has
5054           been disabled at compile-time.
5055
5056         * If a process holds a delay lock for system sleep or shutdown
5057           and fails to release it in time, we will now log its
5058           identity. This makes it easier to identify processes that
5059           cause slow suspends or power-offs.
5060
5061         * When parsing /etc/crypttab, support for a new key-slot=
5062           option as supported by Debian is added. It allows indicating
5063           which LUKS slot to use on disk, speeding up key loading.
5064
5065         * The sd_journald_sendv() API call has been checked and
5066           officially declared to be async-signal-safe so that it may
5067           be invoked from signal handlers for logging purposes.
5068
5069         * Boot-time status output is now enabled automatically after a
5070           short timeout if boot does not progress, in order to give
5071           the user an indication what she or he is waiting for.
5072
5073         * The boot-time output has been improved to show how much time
5074           remains until jobs expire.
5075
5076         * The KillMode= switch in service units gained a new possible
5077           value "mixed". If set, and the unit is shut down, then the
5078           initial SIGTERM signal is sent only to the main daemon
5079           process, while the following SIGKILL signal is sent to
5080           all remaining processes of the service.
5081
5082         * When a scope unit is registered, a new property "Controller"
5083           may be set. If set to a valid bus name, systemd will send a
5084           RequestStop() signal to this name when it would like to shut
5085           down the scope. This may be used to hook manager logic into
5086           the shutdown logic of scope units. Also, scope units may now
5087           be put in a special "abandoned" state, in which case the
5088           manager process which created them takes no further
5089           responsibilities for it.
5090
5091         * When reading unit files, systemd will now verify
5092           the access mode of these files, and warn about certain
5093           suspicious combinations. This has been added to make it
5094           easier to track down packaging bugs where unit files are
5095           marked executable or world-writable.
5096
5097         * systemd-nspawn gained a new "--setenv=" switch to set
5098           container-wide environment variables. The similar option in
5099           systemd-activate was renamed from "--environment=" to
5100           "--setenv=" for consistency.
5101
5102         * systemd-nspawn has been updated to create a new kdbus domain
5103           for each container that is invoked, thus allowing each
5104           container to have its own set of system and user buses,
5105           independent of the host.
5106
5107         * systemd-nspawn gained a new --drop-capability= switch to run
5108           the container with less capabilities than the default. Both
5109           --drop-capability= and --capability= now take the special
5110           string "all" for dropping or keeping all capabilities.
5111
5112         * systemd-nspawn gained new switches for executing containers
5113           with specific SELinux labels set.
5114
5115         * systemd-nspawn gained a new --quiet switch to not generate
5116           any additional output but the container's own console
5117           output.
5118
5119         * systemd-nspawn gained a new --share-system switch to run a
5120           container without PID namespacing enabled.
5121
5122         * systemd-nspawn gained a new --register= switch to control
5123           whether the container is registered with systemd-machined or
5124           not. This is useful for containers that do not run full
5125           OS images, but only specific apps.
5126
5127         * systemd-nspawn gained a new --keep-unit which may be used
5128           when invoked as the only program from a service unit, and
5129           results in registration of the unit service itself in
5130           systemd-machined, instead of a newly opened scope unit.
5131
5132         * systemd-nspawn gained a new --network-interface= switch for
5133           moving arbitrary interfaces to the container. The new
5134           --network-veth switch creates a virtual Ethernet connection
5135           between host and container. The new --network-bridge=
5136           switch then allows assigning the host side of this virtual
5137           Ethernet connection to a bridge device.
5138
5139         * systemd-nspawn gained a new --personality= switch for
5140           setting the kernel personality for the container. This is
5141           useful when running a 32-bit container on a 64-bit host. A
5142           similar option Personality= is now also available for service
5143           units to use.
5144
5145         * logind will now also track a "Desktop" identifier for each
5146           session which encodes the desktop environment of it. This is
5147           useful for desktop environments that want to identify
5148           multiple running sessions of itself easily.
5149
5150         * A new SELinuxContext= setting for service units has been
5151           added that allows setting a specific SELinux execution
5152           context for a service.
5153
5154         * Most systemd client tools will now honour $SYSTEMD_LESS for
5155           settings of the "less" pager. By default, these tools will
5156           override $LESS to allow certain operations to work, such as
5157           jump-to-the-end. With $SYSTEMD_LESS, it is possible to
5158           influence this logic.
5159
5160         * systemd's "seccomp" hook-up has been changed to make use of
5161           the libseccomp library instead of using its own
5162           implementation. This has benefits for portability among
5163           other things.
5164
5165         * For usage together with SystemCallFilter=, a new
5166           SystemCallErrorNumber= setting has been introduced that
5167           allows configuration of a system error number to be returned
5168           on filtered system calls, instead of immediately killing the
5169           process. Also, SystemCallArchitectures= has been added to
5170           limit access to system calls of a particular architecture
5171           (in order to turn off support for unused secondary
5172           architectures). There is also a global
5173           SystemCallArchitectures= setting in system.conf now to turn
5174           off support for non-native system calls system-wide.
5175
5176         * systemd requires a kernel with a working name_to_handle_at(),
5177           please see the kernel config requirements in the README file.
5178
5179         Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov,
5180         Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera,
5181         Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters,
5182         Cristian Rodríguez, Daniel Buch, Daniele Medri, Daniel J
5183         Walsh, Daniel Mack, Dan McGee, Dave Reisner, David Coppa,
5184         David Herrmann, David Strauss, Djalal Harouni, Dmitry Pisklov,
5185         Elia Pinto, Florian Weimer, George McCollister, Goffredo
5186         Baroncelli, Greg Kroah-Hartman, Hendrik Brueckner, Igor
5187         Zhbanov, Jan Engelhardt, Jan Janssen, Jason A. Donenfeld,
5188         Jason St. John, Jasper St. Pierre, Jóhann B. Guðmundsson, Jose
5189         Ignacio Naranjo, Karel Zak, Kay Sievers, Kristian Høgsberg,
5190         Lennart Poettering, Lubomir Rintel, Lukas Nykryn, Lukasz
5191         Skalski, Łukasz Stelmach, Luke Shumaker, Mantas Mikulėnas,
5192         Marc-Antoine Perennou, Marcel Holtmann, Marcos Felipe Rasia de
5193         Mello, Marko Myllynen, Martin Pitt, Matthew Monaco, Michael
5194         Marineau, Michael Scherer, Michał Górny, Michal Sekletar,
5195         Michele Curti, Oleksii Shevchuk, Olivier Brunel, Patrik Flykt,
5196         Pavel Holica, Raudi, Richard Marko, Ronny Chevalier, Sébastien
5197         Luttringer, Sergey Ptashnick, Shawn Landden, Simon Peeters,
5198         Stefan Beller, Susant Sahani, Sylvain Plantefeve, Sylvia Else,
5199         Tero Roponen, Thomas Bächler, Thomas Hindoe Paaboel Andersen,
5200         Tom Gundersen, Umut Tezduyar Lindskog, Unai Uribarri, Václav
5201         Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang
5202         Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek
5203
5204         — Berlin, 2014-02-20
5205
5206 CHANGES WITH 208:
5207
5208         * logind has gained support for facilitating privileged input
5209           and drm device access for unprivileged clients. This work is
5210           useful to allow Wayland display servers (and similar
5211           programs, such as kmscon) to run under the user's ID and
5212           access input and drm devices which are normally
5213           protected. When this is used (and the kernel is new enough)
5214           logind will "mute" IO on the file descriptors passed to
5215           Wayland as long as it is in the background and "unmute" it
5216           if it returns into the foreground. This allows secure
5217           session switching without allowing background sessions to
5218           eavesdrop on input and display data. This also introduces
5219           session switching support if VT support is turned off in the
5220           kernel, and on seats that are not seat0.
5221
5222         * A new kernel command line option luks.options= is understood
5223           now which allows specifying LUKS options for usage for LUKS
5224           encrypted partitions specified with luks.uuid=.
5225
5226         * tmpfiles.d(5) snippets may now use specifier expansion in
5227           path names. More specifically %m, %b, %H, %v, are now
5228           replaced by the local machine id, boot id, hostname, and
5229           kernel version number.
5230
5231         * A new tmpfiles.d(5) command "m" has been introduced which
5232           may be used to change the owner/group/access mode of a file
5233           or directory if it exists, but do nothing if it does not.
5234
5235         * This release removes high-level support for the
5236           MemorySoftLimit= cgroup setting. The underlying kernel
5237           cgroup attribute memory.soft_limit= is currently badly
5238           designed and likely to be removed from the kernel API in its
5239           current form, hence we should not expose it for now.
5240
5241         * The memory.use_hierarchy cgroup attribute is now enabled for
5242           all cgroups systemd creates in the memory cgroup
5243           hierarchy. This option is likely to be come the built-in
5244           default in the kernel anyway, and the non-hierarchical mode
5245           never made much sense in the intrinsically hierarchical
5246           cgroup system.
5247
5248         * A new field _SYSTEMD_SLICE= is logged along with all journal
5249           messages containing the slice a message was generated
5250           from. This is useful to allow easy per-customer filtering of
5251           logs among other things.
5252
5253         * systemd-journald will no longer adjust the group of journal
5254           files it creates to the "systemd-journal" group. Instead we
5255           rely on the journal directory to be owned by the
5256           "systemd-journal" group, and its setgid bit set, so that the
5257           kernel file system layer will automatically enforce that
5258           journal files inherit this group assignment. The reason for
5259           this change is that we cannot allow NSS look-ups from
5260           journald which would be necessary to resolve
5261           "systemd-journal" to a numeric GID, because this might
5262           create deadlocks if NSS involves synchronous queries to
5263           other daemons (such as nscd, or sssd) which in turn are
5264           logging clients of journald and might block on it, which
5265           would then dead lock. A tmpfiles.d(5) snippet included in
5266           systemd will make sure the setgid bit and group are
5267           properly set on the journal directory if it exists on every
5268           boot. However, we recommend adjusting it manually after
5269           upgrades too (or from RPM scriptlets), so that the change is
5270           not delayed until next reboot.
5271
5272         * Backlight and random seed files in /var/lib/ have moved into
5273           the /var/lib/systemd/ directory, in order to centralize all
5274           systemd generated files in one directory.
5275
5276         * Boot time performance measurements (as displayed by
5277           "systemd-analyze" for example) will now read ACPI 5.0 FPDT
5278           performance information if that's available to determine how
5279           much time BIOS and boot loader initialization required. With
5280           a sufficiently new BIOS you hence no longer need to boot
5281           with Gummiboot to get access to such information.
5282
5283         Contributions from: Andrey Borzenkov, Chen Jie, Colin Walters,
5284         Cristian Rodríguez, Dave Reisner, David Herrmann, David
5285         Mackey, David Strauss, Eelco Dolstra, Evan Callicoat, Gao
5286         feng, Harald Hoyer, Jimmie Tauriainen, Kay Sievers, Lennart
5287         Poettering, Lukas Nykryn, Mantas Mikulėnas, Martin Pitt,
5288         Michael Scherer, Michał Górny, Mike Gilbert, Patrick McCarty,
5289         Sebastian Ott, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
5290
5291         — Berlin, 2013-10-02
5292
5293 CHANGES WITH 207:
5294
5295         * The Restart= option for services now understands a new
5296           on-watchdog setting, which will restart the service
5297           automatically if the service stops sending out watchdog keep
5298           alive messages (as configured with WatchdogSec=).
5299
5300         * The getty generator (which is responsible for bringing up a
5301           getty on configured serial consoles) will no longer only
5302           start a getty on the primary kernel console but on all
5303           others, too. This makes the order in which console= is
5304           specified on the kernel command line less important.
5305
5306         * libsystemd-logind gained a new sd_session_get_vt() call to
5307           retrieve the VT number of a session.
5308
5309         * If the option "tries=0" is set for an entry of /etc/crypttab
5310           its passphrase is queried indefinitely instead of any
5311           maximum number of tries.
5312
5313         * If a service with a configure PID file terminates its PID
5314           file will now be removed automatically if it still exists
5315           afterwards. This should put an end to stale PID files.
5316
5317         * systemd-run will now also take relative binary path names
5318           for execution and no longer insists on absolute paths.
5319
5320         * InaccessibleDirectories= and ReadOnlyDirectories= now take
5321           paths that are optionally prefixed with "-" to indicate that
5322           it should not be considered a failure if they do not exist.
5323
5324         * journalctl -o (and similar commands) now understands a new
5325           output mode "short-precise", it is similar to "short" but
5326           shows timestamps with usec accuracy.
5327
5328         * The option "discard" (as known from Debian) is now
5329           synonymous to "allow-discards" in /etc/crypttab. In fact,
5330           "discard" is preferred now (since it is easier to remember
5331           and type).
5332
5333         * Some licensing clean-ups were made, so that more code is now
5334           LGPL-2.1 licensed than before.
5335
5336         * A minimal tool to save/restore the display backlight
5337           brightness across reboots has been added. It will store the
5338           backlight setting as late as possible at shutdown, and
5339           restore it as early as possible during reboot.
5340
5341         * A logic to automatically discover and enable home and swap
5342           partitions on GPT disks has been added. With this in place
5343           /etc/fstab becomes optional for many setups as systemd can
5344           discover certain partitions located on the root disk
5345           automatically. Home partitions are recognized under their
5346           GPT type ID 933ac7e12eb44f13b8440e14e2aef915. Swap
5347           partitions are recognized under their GPT type ID
5348           0657fd6da4ab43c484e50933c84b4f4f.
5349
5350         * systemd will no longer pass any environment from the kernel
5351           or initrd to system services. If you want to set an
5352           environment for all services, do so via the kernel command
5353           line systemd.setenv= assignment.
5354
5355         * The systemd-sysctl tool no longer natively reads the file
5356           /etc/sysctl.conf. If desired, the file should be symlinked
5357           from /etc/sysctl.d/99-sysctl.conf. Apart from providing
5358           legacy support by a symlink rather than built-in code, it
5359           also makes the otherwise hidden order of application of the
5360           different files visible. (Note that this partly reverts to a
5361           pre-198 application order of sysctl knobs!)
5362
5363         * The "systemctl set-log-level" and "systemctl dump" commands
5364           have been moved to systemd-analyze.
5365
5366         * systemd-run learned the new --remain-after-exit switch,
5367           which causes the scope unit not to be cleaned up
5368           automatically after the process terminated.
5369
5370         * tmpfiles learned a new --exclude-prefix= switch to exclude
5371           certain paths from operation.
5372
5373         * journald will now automatically flush all messages to disk
5374           as soon as a message at the log level CRIT, ALERT or EMERG
5375           is received.
5376
5377         Contributions from: Andrew Cook, Brandon Philips, Christian
5378         Hesse, Christoph Junghans, Colin Walters, Daniel Schaal,
5379         Daniel Wallace, Dave Reisner, David Herrmann, Gao feng, George
5380         McCollister, Giovanni Campagna, Hannes Reinecke, Harald Hoyer,
5381         Herczeg Zsolt, Holger Hans Peter Freyther, Jan Engelhardt,
5382         Jesper Larsen, Kay Sievers, Khem Raj, Lennart Poettering,
5383         Lukas Nykryn, Maciej Wereski, Mantas Mikulėnas, Marcel
5384         Holtmann, Martin Pitt, Michael Biebl, Michael Marineau,
5385         Michael Scherer, Michael Stapelberg, Michal Sekletar, Michał
5386         Górny, Olivier Brunel, Ondrej Balaz, Ronny Chevalier, Shawn
5387         Landden, Steven Hiscocks, Thomas Bächler, Thomas Hindoe
5388         Paaboel Andersen, Tom Gundersen, Umut Tezduyar, WANG Chao,
5389         William Giokas, Zbigniew Jędrzejewski-Szmek
5390
5391         — Berlin, 2013-09-13
5392
5393 CHANGES WITH 206:
5394
5395         * The documentation has been updated to cover the various new
5396           concepts introduced with 205.
5397
5398         * Unit files now understand the new %v specifier which
5399           resolves to the kernel version string as returned by "uname
5400           -r".
5401
5402         * systemctl now supports filtering the unit list output by
5403           load state, active state and sub state, using the new
5404           --state= parameter.
5405
5406         * "systemctl status" will now show the results of the
5407           condition checks (like ConditionPathExists= and similar) of
5408           the last start attempts of the unit. They are also logged to
5409           the journal.
5410
5411         * "journalctl -b" may now be used to look for boot output of a
5412           specific boot. Try "journalctl -b -1" for the previous boot,
5413           but the syntax is substantially more powerful.
5414
5415         * "journalctl --show-cursor" has been added which prints the
5416           cursor string the last shown log line. This may then be used
5417           with the new "journalctl --after-cursor=" switch to continue
5418           browsing logs from that point on.
5419
5420         * "journalctl --force" may now be used to force regeneration
5421           of an FSS key.
5422
5423         * Creation of "dead" device nodes has been moved from udev
5424           into kmod and tmpfiles. Previously, udev would read the kmod
5425           databases to pre-generate dead device nodes based on meta
5426           information contained in kernel modules, so that these would
5427           be auto-loaded on access rather then at boot. As this
5428           does not really have much to do with the exposing actual
5429           kernel devices to userspace this has always been slightly
5430           alien in the udev codebase. Following the new scheme kmod
5431           will now generate a runtime snippet for tmpfiles from the
5432           module meta information and it now is tmpfiles' job to the
5433           create the nodes. This also allows overriding access and
5434           other parameters for the nodes using the usual tmpfiles
5435           facilities. As side effect this allows us to remove the
5436           CAP_SYS_MKNOD capability bit from udevd entirely.
5437
5438         * logind's device ACLs may now be applied to these "dead"
5439           devices nodes too, thus finally allowing managed access to
5440           devices such as /dev/snd/sequencer without loading the
5441           backing module right-away.
5442
5443         * A new RPM macro has been added that may be used to apply
5444           tmpfiles configuration during package installation.
5445
5446         * systemd-detect-virt and ConditionVirtualization= now can
5447           detect User-Mode-Linux machines (UML).
5448
5449         * journald will now implicitly log the effective capabilities
5450           set of processes in the message metadata.
5451
5452         * systemd-cryptsetup has gained support for TrueCrypt volumes.
5453
5454         * The initrd interface has been simplified (more specifically,
5455           support for passing performance data via environment
5456           variables and fsck results via files in /run has been
5457           removed). These features were non-essential, and are
5458           nowadays available in a much nicer way by having systemd in
5459           the initrd serialize its state and have the hosts systemd
5460           deserialize it again.
5461
5462         * The udev "keymap" data files and tools to apply keyboard
5463           specific mappings of scan to key codes, and force-release
5464           scan code lists have been entirely replaced by a udev
5465           "keyboard" builtin and a hwdb data file.
5466
5467         * systemd will now honour the kernel's "quiet" command line
5468           argument also during late shutdown, resulting in a
5469           completely silent shutdown when used.
5470
5471         * There's now an option to control the SO_REUSEPORT socket
5472           option in .socket units.
5473
5474         * Instance units will now automatically get a per-template
5475           subslice of system.slice unless something else is explicitly
5476           configured. For example, instances of sshd@.service will now
5477           implicitly be placed in system-sshd.slice rather than
5478           system.slice as before.
5479
5480         * Test coverage support may now be enabled at build time.
5481
5482         Contributions from: Dave Reisner, Frederic Crozat, Harald
5483         Hoyer, Holger Hans Peter Freyther, Jan Engelhardt, Jan
5484         Janssen, Jason St. John, Jesper Larsen, Kay Sievers, Lennart
5485         Poettering, Lukas Nykryn, Maciej Wereski, Martin Pitt, Michael
5486         Olbrich, Ramkumar Ramachandra, Ross Lagerwall, Shawn Landden,
5487         Thomas H.P. Andersen, Tom Gundersen, Tomasz Torcz, William
5488         Giokas, Zbigniew Jędrzejewski-Szmek
5489
5490         — Berlin, 2013-07-23
5491
5492 CHANGES WITH 205:
5493
5494         * Two new unit types have been introduced:
5495
5496           Scope units are very similar to service units, however, are
5497           created out of pre-existing processes — instead of PID 1
5498           forking off the processes. By using scope units it is
5499           possible for system services and applications to group their
5500           own child processes (worker processes) in a powerful way
5501           which then maybe used to organize them, or kill them
5502           together, or apply resource limits on them.
5503
5504           Slice units may be used to partition system resources in an
5505           hierarchical fashion and then assign other units to them. By
5506           default there are now three slices: system.slice (for all
5507           system services), user.slice (for all user sessions),
5508           machine.slice (for VMs and containers).
5509
5510           Slices and scopes have been introduced primarily in
5511           context of the work to move cgroup handling to a
5512           single-writer scheme, where only PID 1
5513           creates/removes/manages cgroups.
5514
5515         * There's a new concept of "transient" units. In contrast to
5516           normal units these units are created via an API at runtime,
5517           not from configuration from disk. More specifically this
5518           means it is now possible to run arbitrary programs as
5519           independent services, with all execution parameters passed
5520           in via bus APIs rather than read from disk. Transient units
5521           make systemd substantially more dynamic then it ever was,
5522           and useful as a general batch manager.
5523
5524         * logind has been updated to make use of scope and slice units
5525           for managing user sessions. As a user logs in he will get
5526           his own private slice unit, to which all sessions are added
5527           as scope units. We also added support for automatically
5528           adding an instance of user@.service for the user into the
5529           slice. Effectively logind will no longer create cgroup
5530           hierarchies on its own now, it will defer entirely to PID 1
5531           for this by means of scope, service and slice units. Since
5532           user sessions this way become entities managed by PID 1
5533           the output of "systemctl" is now a lot more comprehensive.
5534
5535         * A new mini-daemon "systemd-machined" has been added which
5536           may be used by virtualization managers to register local
5537           VMs/containers. nspawn has been updated accordingly, and
5538           libvirt will be updated shortly. machined will collect a bit
5539           of meta information about the VMs/containers, and assign
5540           them their own scope unit (see above). The collected
5541           meta-data is then made available via the "machinectl" tool,
5542           and exposed in "ps" and similar tools. machined/machinectl
5543           is compile-time optional.
5544
5545         * As discussed earlier, the low-level cgroup configuration
5546           options ControlGroup=, ControlGroupModify=,
5547           ControlGroupPersistent=, ControlGroupAttribute= have been
5548           removed. Please use high-level attribute settings instead as
5549           well as slice units.
5550
5551         * A new bus call SetUnitProperties() has been added to alter
5552           various runtime parameters of a unit. This is primarily
5553           useful to alter cgroup parameters dynamically in a nice way,
5554           but will be extended later on to make more properties
5555           modifiable at runtime. systemctl gained a new set-properties
5556           command that wraps this call.
5557
5558         * A new tool "systemd-run" has been added which can be used to
5559           run arbitrary command lines as transient services or scopes,
5560           while configuring a number of settings via the command
5561           line. This tool is currently very basic, however already
5562           very useful. We plan to extend this tool to even allow
5563           queuing of execution jobs with time triggers from the
5564           command line, similar in fashion to "at".
5565
5566         * nspawn will now inform the user explicitly that kernels with
5567           audit enabled break containers, and suggest the user to turn
5568           off audit.
5569
5570         * Support for detecting the IMA and AppArmor security
5571           frameworks with ConditionSecurity= has been added.
5572
5573         * journalctl gained a new "-k" switch for showing only kernel
5574           messages, mimicking dmesg output; in addition to "--user"
5575           and "--system" switches for showing only user's own logs
5576           and system logs.
5577
5578         * systemd-delta can now show information about drop-in
5579           snippets extending unit files.
5580
5581         * libsystemd-bus has been substantially updated but is still
5582           not available as public API.
5583
5584         * systemd will now look for the "debug" argument on the kernel
5585           command line and enable debug logging, similar to what
5586           "systemd.log_level=debug" already did before.
5587
5588         * "systemctl set-default", "systemctl get-default" has been
5589           added to configure the default.target symlink, which
5590           controls what to boot into by default.
5591
5592         * "systemctl set-log-level" has been added as a convenient
5593           way to raise and lower systemd logging threshold.
5594
5595         * "systemd-analyze plot" will now show the time the various
5596           generators needed for execution, as well as information
5597           about the unit file loading.
5598
5599         * libsystemd-journal gained a new sd_journal_open_files() call
5600           for opening specific journal files. journactl also gained a
5601           new switch to expose this new functionality. Previously we
5602           only supported opening all files from a directory, or all
5603           files from the system, as opening individual files only is
5604           racy due to journal file rotation.
5605
5606         * systemd gained the new DefaultEnvironment= setting in
5607           /etc/systemd/system.conf to set environment variables for
5608           all services.
5609
5610         * If a privileged process logs a journal message with the
5611           OBJECT_PID= field set, then journald will automatically
5612           augment this with additional OBJECT_UID=, OBJECT_GID=,
5613           OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if
5614           system services want to log events about specific client
5615           processes. journactl/systemctl has been updated to make use
5616           of this information if all log messages regarding a specific
5617           unit is requested.
5618
5619         Contributions from: Auke Kok, Chengwei Yang, Colin Walters,
5620         Cristian Rodríguez, Daniel Albers, Daniel Wallace, Dave
5621         Reisner, David Coppa, David King, David Strauss, Eelco
5622         Dolstra, Gabriel de Perthuis, Harald Hoyer, Jan Alexander
5623         Steffens, Jan Engelhardt, Jan Janssen, Jason St. John, Johan
5624         Heikkilä, Karel Zak, Karol Lewandowski, Kay Sievers, Lennart
5625         Poettering, Lukas Nykryn, Mantas Mikulėnas, Marius Vollmer,
5626         Martin Pitt, Michael Biebl, Michael Olbrich, Michael Tremer,
5627         Michal Schmidt, Michał Bartoszkiewicz, Nirbheek Chauhan,
5628         Pierre Neidhardt, Ross Burton, Ross Lagerwall, Sean McGovern,
5629         Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar,
5630         Václav Pavlín, Zachary Cook, Zbigniew Jędrzejewski-Szmek,
5631         Łukasz Stelmach, 장동준
5632
5633 CHANGES WITH 204:
5634
5635         * The Python bindings gained some minimal support for the APIs
5636           exposed by libsystemd-logind.
5637
5638         * ConditionSecurity= gained support for detecting SMACK. Since
5639           this condition already supports SELinux and AppArmor we only
5640           miss IMA for this. Patches welcome!
5641
5642         Contributions from: Karol Lewandowski, Lennart Poettering,
5643         Zbigniew Jędrzejewski-Szmek
5644
5645 CHANGES WITH 203:
5646
5647         * systemd-nspawn will now create /etc/resolv.conf if
5648           necessary, before bind-mounting the host's file onto it.
5649
5650         * systemd-nspawn will now store meta information about a
5651           container on the container's cgroup as extended attribute
5652           fields, including the root directory.
5653
5654         * The cgroup hierarchy has been reworked in many ways. All
5655           objects any of the components systemd creates in the cgroup
5656           tree are now suffixed. More specifically, user sessions are
5657           now placed in cgroups suffixed with ".session", users in
5658           cgroups suffixed with ".user", and nspawn containers in
5659           cgroups suffixed with ".nspawn". Furthermore, all cgroup
5660           names are now escaped in a simple scheme to avoid collision
5661           of userspace object names with kernel filenames. This work
5662           is preparation for making these objects relocatable in the
5663           cgroup tree, in order to allow easy resource partitioning of
5664           these objects without causing naming conflicts.
5665
5666         * systemctl list-dependencies gained the new switches
5667           --plain, --reverse, --after and --before.
5668
5669         * systemd-inhibit now shows the process name of processes that
5670           have taken an inhibitor lock.
5671
5672         * nss-myhostname will now also resolve "localhost"
5673           implicitly. This makes /etc/hosts an optional file and
5674           nicely handles that on IPv6 ::1 maps to both "localhost" and
5675           the local hostname.
5676
5677         * libsystemd-logind.so gained a new call
5678           sd_get_machine_names() to enumerate running containers and
5679           VMs (currently only supported by very new libvirt and
5680           nspawn). sd_login_monitor can now be used to watch
5681           VMs/containers coming and going.
5682
5683         * .include is not allowed recursively anymore, and only in
5684           unit files. Usually it is better to use drop-in snippets in
5685           .d/*.conf anyway, as introduced with systemd 198.
5686
5687         * systemd-analyze gained a new "critical-chain" command that
5688           determines the slowest chain of units run during system
5689           boot-up. It is very useful for tracking down where
5690           optimizing boot time is the most beneficial.
5691
5692         * systemd will no longer allow manipulating service paths in
5693           the name=systemd:/system cgroup tree using ControlGroup= in
5694           units. (But is still fine with it in all other dirs.)
5695
5696         * There's a new systemd-nspawn@.service service file that may
5697           be used to easily run nspawn containers as system
5698           services. With the container's root directory in
5699           /var/lib/container/foobar it is now sufficient to run
5700           "systemctl start systemd-nspawn@foobar.service" to boot it.
5701
5702         * systemd-cgls gained a new parameter "--machine" to list only
5703           the processes within a certain container.
5704
5705         * ConditionSecurity= now can check for "apparmor". We still
5706           are lacking checks for SMACK and IMA for this condition
5707           check though. Patches welcome!
5708
5709         * A new configuration file /etc/systemd/sleep.conf has been
5710           added that may be used to configure which kernel operation
5711           systemd is supposed to execute when "suspend", "hibernate"
5712           or "hybrid-sleep" is requested. This makes the new kernel
5713           "freeze" state accessible to the user.
5714
5715         * ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
5716           the passed argument if applicable.
5717
5718         Contributions from: Auke Kok, Colin Guthrie, Colin Walters,
5719         Cristian Rodríguez, Daniel Buch, Daniel Wallace, Dave Reisner,
5720         Evangelos Foutras, Greg Kroah-Hartman, Harald Hoyer, Josh
5721         Triplett, Kay Sievers, Lennart Poettering, Lukas Nykryn,
5722         MUNEDA Takahiro, Mantas Mikulėnas, Mirco Tischler, Nathaniel
5723         Chen, Nirbheek Chauhan, Ronny Chevalier, Ross Lagerwall, Tom
5724         Gundersen, Umut Tezduyar, Ville Skyttä, Zbigniew
5725         Jędrzejewski-Szmek
5726
5727 CHANGES WITH 202:
5728
5729         * The output of 'systemctl list-jobs' got some polishing. The
5730           '--type=' argument may now be passed more than once. A new
5731           command 'systemctl list-sockets' has been added which shows
5732           a list of kernel sockets systemd is listening on with the
5733           socket units they belong to, plus the units these socket
5734           units activate.
5735
5736         * The experimental libsystemd-bus library got substantial
5737           updates to work in conjunction with the (also experimental)
5738           kdbus kernel project. It works well enough to exchange
5739           messages with some sophistication. Note that kdbus is not
5740           ready yet, and the library is mostly an elaborate test case
5741           for now, and not installable.
5742
5743         * systemd gained a new unit 'systemd-static-nodes.service'
5744           that generates static device nodes earlier during boot, and
5745           can run in conjunction with udev.
5746
5747         * libsystemd-login gained a new call sd_pid_get_user_unit()
5748           to retrieve the user systemd unit a process is running
5749           in. This is useful for systems where systemd is used as
5750           session manager.
5751
5752         * systemd-nspawn now places all containers in the new /machine
5753           top-level cgroup directory in the name=systemd
5754           hierarchy. libvirt will soon do the same, so that we get a
5755           uniform separation of /system, /user and /machine for system
5756           services, user processes and containers/virtual
5757           machines. This new cgroup hierarchy is also useful to stick
5758           stable names to specific container instances, which can be
5759           recognized later this way (this name may be controlled
5760           via systemd-nspawn's new -M switch). libsystemd-login also
5761           gained a new call sd_pid_get_machine_name() to retrieve the
5762           name of the container/VM a specific process belongs to.
5763
5764         * bootchart can now store its data in the journal.
5765
5766         * libsystemd-journal gained a new call
5767           sd_journal_add_conjunction() for AND expressions to the
5768           matching logic. This can be used to express more complex
5769           logical expressions.
5770
5771         * journactl can now take multiple --unit= and --user-unit=
5772           switches.
5773
5774         * The cryptsetup logic now understands the "luks.key=" kernel
5775           command line switch for specifying a file to read the
5776           decryption key from. Also, if a configured key file is not
5777           found the tool will now automatically fall back to prompting
5778           the user.
5779
5780         * Python systemd.journal module was updated to wrap recently
5781           added functions from libsystemd-journal. The interface was
5782           changed to bring the low level interface in s.j._Reader
5783           closer to the C API, and the high level interface in
5784           s.j.Reader was updated to wrap and convert all data about
5785           an entry.
5786
5787         Contributions from: Anatol Pomozov, Auke Kok, Harald Hoyer,
5788         Henrik Grindal Bakken, Josh Triplett, Kay Sievers, Lennart
5789         Poettering, Lukas Nykryn, Mantas Mikulėnas Marius Vollmer,
5790         Martin Jansa, Martin Pitt, Michael Biebl, Michal Schmidt,
5791         Mirco Tischler, Pali Rohar, Simon Peeters, Steven Hiscocks,
5792         Tom Gundersen, Zbigniew Jędrzejewski-Szmek
5793
5794 CHANGES WITH 201:
5795
5796         * journalctl --update-catalog now understands a new --root=
5797           option to operate on catalogs found in a different root
5798           directory.
5799
5800         * During shutdown after systemd has terminated all running
5801           services a final killing loop kills all remaining left-over
5802           processes. We will now print the name of these processes
5803           when we send SIGKILL to them, since this usually indicates a
5804           problem.
5805
5806         * If /etc/crypttab refers to password files stored on
5807           configured mount points automatic dependencies will now be
5808           generated to ensure the specific mount is established first
5809           before the key file is attempted to be read.
5810
5811         * 'systemctl status' will now show information about the
5812           network sockets a socket unit is listening on.
5813
5814         * 'systemctl status' will also shown information about any
5815           drop-in configuration file for units. (Drop-In configuration
5816           files in this context are files such as
5817           /etc/systemd/systemd/foobar.service.d/*.conf)
5818
5819         * systemd-cgtop now optionally shows summed up CPU times of
5820           cgroups. Press '%' while running cgtop to switch between
5821           percentage and absolute mode. This is useful to determine
5822           which cgroups use up the most CPU time over the entire
5823           runtime of the system. systemd-cgtop has also been updated
5824           to be 'pipeable' for processing with further shell tools.
5825
5826         * 'hostnamectl set-hostname' will now allow setting of FQDN
5827           hostnames.
5828
5829         * The formatting and parsing of time span values has been
5830           changed. The parser now understands fractional expressions
5831           such as "5.5h". The formatter will now output fractional
5832           expressions for all time spans under 1min, i.e. "5.123456s"
5833           rather than "5s 123ms 456us". For time spans under 1s
5834           millisecond values are shown, for those under 1ms
5835           microsecond values are shown. This should greatly improve
5836           all time-related output of systemd.
5837
5838         * libsystemd-login and libsystemd-journal gained new
5839           functions for querying the poll() events mask and poll()
5840           timeout value for integration into arbitrary event
5841           loops.
5842
5843         * localectl gained the ability to list available X11 keymaps
5844           (models, layouts, variants, options).
5845
5846         * 'systemd-analyze dot' gained the ability to filter for
5847           specific units via shell-style globs, to create smaller,
5848           more useful graphs. I.e. it is now possible to create simple
5849           graphs of all the dependencies between only target units, or
5850           of all units that Avahi has dependencies with.
5851
5852         Contributions from: Cristian Rodríguez, Dr. Tilmann Bubeck,
5853         Harald Hoyer, Holger Hans Peter Freyther, Kay Sievers, Kelly
5854         Anderson, Koen Kooi, Lennart Poettering, Maksim Melnikau,
5855         Marc-Antoine Perennou, Marius Vollmer, Martin Pitt, Michal
5856         Schmidt, Oleksii Shevchuk, Ronny Chevalier, Simon McVittie,
5857         Steven Hiscocks, Thomas Weißschuh, Umut Tezduyar, Václav
5858         Pavlín, Zbigniew Jędrzejewski-Szmek, Łukasz Stelmach
5859
5860 CHANGES WITH 200:
5861
5862         * The boot-time readahead implementation for rotating media
5863           will now read the read-ahead data in multiple passes which
5864           consist of all read requests made in equidistant time
5865           intervals. This means instead of strictly reading read-ahead
5866           data in its physical order on disk we now try to find a
5867           middle ground between physical and access time order.
5868
5869         * /etc/os-release files gained a new BUILD_ID= field for usage
5870           on operating systems that provide continuous builds of OS
5871           images.
5872
5873         Contributions from: Auke Kok, Eelco Dolstra, Kay Sievers,
5874         Lennart Poettering, Lukas Nykryn, Martin Pitt, Václav Pavlín
5875         William Douglas, Zbigniew Jędrzejewski-Szmek
5876
5877 CHANGES WITH 199:
5878
5879         * systemd-python gained an API exposing libsystemd-daemon.
5880
5881         * The SMACK setup logic gained support for uploading CIPSO
5882           security policy.
5883
5884         * Behaviour of PrivateTmp=, ReadWriteDirectories=,
5885           ReadOnlyDirectories= and InaccessibleDirectories= has
5886           changed. The private /tmp and /var/tmp directories are now
5887           shared by all processes of a service (which means
5888           ExecStartPre= may now leave data in /tmp that ExecStart= of
5889           the same service can still access). When a service is
5890           stopped its temporary directories are immediately deleted
5891           (normal clean-up with tmpfiles is still done in addition to
5892           this though).
5893
5894         * By default, systemd will now set a couple of sysctl
5895           variables in the kernel: the safe sysrq options are turned
5896           on, IP route verification is turned on, and source routing
5897           disabled. The recently added hardlink and softlink
5898           protection of the kernel is turned on. These settings should
5899           be reasonably safe, and good defaults for all new systems.
5900
5901         * The predictable network naming logic may now be turned off
5902           with a new kernel command line switch: net.ifnames=0.
5903
5904         * A new libsystemd-bus module has been added that implements a
5905           pretty complete D-Bus client library. For details see:
5906
5907           https://lists.freedesktop.org/archives/systemd-devel/2013-March/009797.html
5908
5909         * journald will now explicitly flush the journal files to disk
5910           at the latest 5min after each write. The file will then also
5911           be marked offline until the next write. This should increase
5912           reliability in case of a crash. The synchronization delay
5913           can be configured via SyncIntervalSec= in journald.conf.
5914
5915         * There's a new remote-fs-setup.target unit that can be used
5916           to pull in specific services when at least one remote file
5917           system is to be mounted.
5918
5919         * There are new targets timers.target and paths.target as
5920           canonical targets to pull user timer and path units in
5921           from. This complements sockets.target with a similar
5922           purpose for socket units.
5923
5924         * libudev gained a new call udev_device_set_attribute_value()
5925           to set sysfs attributes of a device.
5926
5927         * The udev daemon now sets the default number of worker
5928           processes executed in parallel based on the number of available
5929           CPUs instead of the amount of available RAM. This is supposed
5930           to provide a more reliable default and limit a too aggressive
5931           parallelism for setups with 1000s of devices connected.
5932
5933         Contributions from: Auke Kok, Colin Walters, Cristian
5934         Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
5935         Reinecke, Harald Hoyer, Jan Alexander Steffens, Jan
5936         Engelhardt, Josh Triplett, Kay Sievers, Lennart Poettering,
5937         Mantas Mikulėnas, Martin Pitt, Mathieu Bridon, Michael Biebl,
5938         Michal Schmidt, Michal Sekletar, Miklos Vajna, Nathaniel Chen,
5939         Oleksii Shevchuk, Ozan Çağlayan, Thomas Hindoe Paaboel
5940         Andersen, Tollef Fog Heen, Tom Gundersen, Umut Tezduyar,
5941         Zbigniew Jędrzejewski-Szmek
5942
5943 CHANGES WITH 198:
5944
5945         * Configuration of unit files may now be extended via drop-in
5946           files without having to edit/override the unit files
5947           themselves. More specifically, if the administrator wants to
5948           change one value for a service file foobar.service he can
5949           now do so by dropping in a configuration snippet into
5950           /etc/systemd/system/foobar.service.d/*.conf. The unit logic
5951           will load all these snippets and apply them on top of the
5952           main unit configuration file, possibly extending or
5953           overriding its settings. Using these drop-in snippets is
5954           generally nicer than the two earlier options for changing
5955           unit files locally: copying the files from
5956           /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
5957           them there; or creating a new file in /etc/systemd/system/
5958           that incorporates the original one via ".include". Drop-in
5959           snippets into these .d/ directories can be placed in any
5960           directory systemd looks for units in, and the usual
5961           overriding semantics between /usr/lib, /etc and /run apply
5962           for them too.
5963
5964         * Most unit file settings which take lists of items can now be
5965           reset by assigning the empty string to them. For example,
5966           normally, settings such as Environment=FOO=BAR append a new
5967           environment variable assignment to the environment block,
5968           each time they are used. By assigning Environment= the empty
5969           string the environment block can be reset to empty. This is
5970           particularly useful with the .d/*.conf drop-in snippets
5971           mentioned above, since this adds the ability to reset list
5972           settings from vendor unit files via these drop-ins.
5973
5974         * systemctl gained a new "list-dependencies" command for
5975           listing the dependencies of a unit recursively.
5976
5977         * Inhibitors are now honored and listed by "systemctl
5978           suspend", "systemctl poweroff" (and similar) too, not only
5979           GNOME. These commands will also list active sessions by
5980           other users.
5981
5982         * Resource limits (as exposed by the various control group
5983           controllers) can now be controlled dynamically at runtime
5984           for all units. More specifically, you can now use a command
5985           like "systemctl set-cgroup-attr foobar.service cpu.shares
5986           2000" to alter the CPU shares a specific service gets. These
5987           settings are stored persistently on disk, and thus allow the
5988           administrator to easily adjust the resource usage of
5989           services with a few simple commands. This dynamic resource
5990           management logic is also available to other programs via the
5991           bus. Almost any kernel cgroup attribute and controller is
5992           supported.
5993
5994         * systemd-vconsole-setup will now copy all font settings to
5995           all allocated VTs, where it previously applied them only to
5996           the foreground VT.
5997
5998         * libsystemd-login gained the new sd_session_get_tty() API
5999           call.
6000
6001         * This release drops support for a few legacy or
6002           distribution-specific LSB facility names when parsing init
6003           scripts: $x-display-manager, $mail-transfer-agent,
6004           $mail-transport-agent, $mail-transfer-agent, $smtp,
6005           $null. Also, the mail-transfer-agent.target unit backing
6006           this has been removed. Distributions which want to retain
6007           compatibility with this should carry the burden for
6008           supporting this themselves and patch support for these back
6009           in, if they really need to. Also, the facilities $syslog and
6010           $local_fs are now ignored, since systemd does not support
6011           early-boot LSB init scripts anymore, and these facilities
6012           are implied anyway for normal services. syslog.target has
6013           also been removed.
6014
6015         * There are new bus calls on PID1's Manager object for
6016           cancelling jobs, and removing snapshot units. Previously,
6017           both calls were only available on the Job and Snapshot
6018           objects themselves.
6019
6020         * systemd-journal-gatewayd gained SSL support.
6021
6022         * The various "environment" files, such as /etc/locale.conf
6023           now support continuation lines with a backslash ("\") as
6024           last character in the line, similarly in style (but different)
6025           to how this is supported in shells.
6026
6027         * For normal user processes the _SYSTEMD_USER_UNIT= field is
6028           now implicitly appended to every log entry logged. systemctl
6029           has been updated to filter by this field when operating on a
6030           user systemd instance.
6031
6032         * nspawn will now implicitly add the CAP_AUDIT_WRITE and
6033           CAP_AUDIT_CONTROL capabilities to the capabilities set for
6034           the container. This makes it easier to boot unmodified
6035           Fedora systems in a container, which however still requires
6036           audit=0 to be passed on the kernel command line. Auditing in
6037           kernel and userspace is unfortunately still too broken in
6038           context of containers, hence we recommend compiling it out
6039           of the kernel or using audit=0. Hopefully this will be fixed
6040           one day for good in the kernel.
6041
6042         * nspawn gained the new --bind= and --bind-ro= parameters to
6043           bind mount specific directories from the host into the
6044           container.
6045
6046         * nspawn will now mount its own devpts file system instance
6047           into the container, in order not to leak pty devices from
6048           the host into the container.
6049
6050         * systemd will now read the firmware boot time performance
6051           information from the EFI variables, if the used boot loader
6052           supports this, and takes it into account for boot performance
6053           analysis via "systemd-analyze". This is currently supported
6054           only in conjunction with Gummiboot, but could be supported
6055           by other boot loaders too. For details see:
6056
6057           https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
6058
6059         * A new generator has been added that automatically mounts the
6060           EFI System Partition (ESP) to /boot, if that directory
6061           exists, is empty, and no other file system has been
6062           configured to be mounted there.
6063
6064         * logind will now send out PrepareForSleep(false) out
6065           unconditionally, after coming back from suspend. This may be
6066           used by applications as asynchronous notification for
6067           system resume events.
6068
6069         * "systemctl unlock-sessions" has been added, that allows
6070           unlocking the screens of all user sessions at once, similar
6071           to how "systemctl lock-sessions" already locked all users
6072           sessions. This is backed by a new D-Bus call UnlockSessions().
6073
6074         * "loginctl seat-status" will now show the master device of a
6075           seat. (i.e. the device of a seat that needs to be around for
6076           the seat to be considered available, usually the graphics
6077           card).
6078
6079         * tmpfiles gained a new "X" line type, that allows
6080           configuration of files and directories (with wildcards) that
6081           shall be excluded from automatic cleanup ("aging").
6082
6083         * udev default rules set the device node permissions now only
6084           at "add" events, and do not change them any longer with a
6085           later "change" event.
6086
6087         * The log messages for lid events and power/sleep keypresses
6088           now carry a message ID.
6089
6090         * We now have a substantially larger unit test suite, but this
6091           continues to be work in progress.
6092
6093         * udevadm hwdb gained a new --root= parameter to change the
6094           root directory to operate relative to.
6095
6096         * logind will now issue a background sync() request to the kernel
6097           early at shutdown, so that dirty buffers are flushed to disk early
6098           instead of at the last moment, in order to optimize shutdown
6099           times a little.
6100
6101         * A new bootctl tool has been added that is an interface for
6102           certain boot loader operations. This is currently a preview
6103           and is likely to be extended into a small mechanism daemon
6104           like timedated, localed, hostnamed, and can be used by
6105           graphical UIs to enumerate available boot options, and
6106           request boot into firmware operations.
6107
6108         * systemd-bootchart has been relicensed to LGPLv2.1+ to match
6109           the rest of the package. It also has been updated to work
6110           correctly in initrds.
6111
6112         * Policykit previously has been runtime optional, and is now
6113           also compile time optional via a configure switch.
6114
6115         * systemd-analyze has been reimplemented in C. Also "systemctl
6116           dot" has moved into systemd-analyze.
6117
6118         * "systemctl status" with no further parameters will now print
6119           the status of all active or failed units.
6120
6121         * Operations such as "systemctl start" can now be executed
6122           with a new mode "--irreversible" which may be used to queue
6123           operations that cannot accidentally be reversed by a later
6124           job queuing. This is by default used to make shutdown
6125           requests more robust.
6126
6127         * The Python API of systemd now gained a new module for
6128           reading journal files.
6129
6130         * A new tool kernel-install has been added that can install
6131           kernel images according to the Boot Loader Specification:
6132
6133           https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
6134
6135         * Boot time console output has been improved to provide
6136           animated boot time output for hanging jobs.
6137
6138         * A new tool systemd-activate has been added which can be used
6139           to test socket activation with, directly from the command
6140           line. This should make it much easier to test and debug
6141           socket activation in daemons.
6142
6143         * journalctl gained a new "--reverse" (or -r) option to show
6144           journal output in reverse order (i.e. newest line first).
6145
6146         * journalctl gained a new "--pager-end" (or -e) option to jump
6147           to immediately jump to the end of the journal in the
6148           pager. This is only supported in conjunction with "less".
6149
6150         * journalctl gained a new "--user-unit=" option, that works
6151           similarly to "--unit=" but filters for user units rather than
6152           system units.
6153
6154         * A number of unit files to ease adoption of systemd in
6155           initrds has been added. This moves some minimal logic from
6156           the various initrd implementations into systemd proper.
6157
6158         * The journal files are now owned by a new group
6159           "systemd-journal", which exists specifically to allow access
6160           to the journal, and nothing else. Previously, we used the
6161           "adm" group for that, which however possibly covers more
6162           than just journal/log file access. This new group is now
6163           already used by systemd-journal-gatewayd to ensure this
6164           daemon gets access to the journal files and as little else
6165           as possible. Note that "make install" will also set FS ACLs
6166           up for /var/log/journal to give "adm" and "wheel" read
6167           access to it, in addition to "systemd-journal" which owns
6168           the journal files. We recommend that packaging scripts also
6169           add read access to "adm" + "wheel" to /var/log/journal, and
6170           all existing/future journal files. To normal users and
6171           administrators little changes, however packagers need to
6172           ensure to create the "systemd-journal" system group at
6173           package installation time.
6174
6175         * The systemd-journal-gatewayd now runs as unprivileged user
6176           systemd-journal-gateway:systemd-journal-gateway. Packaging
6177           scripts need to create these system user/group at
6178           installation time.
6179
6180         * timedated now exposes a new boolean property CanNTP that
6181           indicates whether a local NTP service is available or not.
6182
6183         * systemd-detect-virt will now also detect xen PVs
6184
6185         * The pstore file system is now mounted by default, if it is
6186           available.
6187
6188         * In addition to the SELinux and IMA policies we will now also
6189           load SMACK policies at early boot.
6190
6191         Contributions from: Adel Gadllah, Aleksander Morgado, Auke
6192         Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
6193         Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
6194         Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
6195         Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
6196         Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
6197         Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
6198         Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
6199         Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
6200         Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
6201         Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
6202         Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
6203         Gundersen, Umut Tezduyar, William Giokas, Zbigniew
6204         Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
6205
6206 CHANGES WITH 197:
6207
6208         * Timer units now support calendar time events in addition to
6209           monotonic time events. That means you can now trigger a unit
6210           based on a calendar time specification such as "Thu,Fri
6211           2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
6212           or fifth day of any month of the year 2013, given that it is
6213           a thursday or friday. This brings timer event support
6214           considerably closer to cron's capabilities. For details on
6215           the supported calendar time specification language see
6216           systemd.time(7).
6217
6218         * udev now supports a number of different naming policies for
6219           network interfaces for predictable names, and a combination
6220           of these policies is now the default. Please see this wiki
6221           document for details:
6222
6223           https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
6224
6225         * Auke Kok's bootchart implementation has been added to the
6226           systemd tree. It is an optional component that can graph the
6227           boot in quite some detail. It is one of the best bootchart
6228           implementations around and minimal in its code and
6229           dependencies.
6230
6231         * nss-myhostname has been integrated into the systemd source
6232           tree. nss-myhostname guarantees that the local hostname
6233           always stays resolvable via NSS. It has been a weak
6234           requirement of systemd-hostnamed since a long time, and
6235           since its code is actually trivial we decided to just
6236           include it in systemd's source tree. It can be turned off
6237           with a configure switch.
6238
6239         * The read-ahead logic is now capable of properly detecting
6240           whether a btrfs file system is on SSD or rotating media, in
6241           order to optimize the read-ahead scheme. Previously, it was
6242           only capable of detecting this on traditional file systems
6243           such as ext4.
6244
6245         * In udev, additional device properties are now read from the
6246           IAB in addition to the OUI database. Also, Bluetooth company
6247           identities are attached to the devices as well.
6248
6249         * In service files %U may be used as specifier that is
6250           replaced by the configured user name of the service.
6251
6252         * nspawn may now be invoked without a controlling TTY. This
6253           makes it suitable for invocation as its own service. This
6254           may be used to set up a simple containerized server system
6255           using only core OS tools.
6256
6257         * systemd and nspawn can now accept socket file descriptors
6258           when they are started for socket activation. This enables
6259           implementation of socket activated nspawn
6260           containers. i.e. think about autospawning an entire OS image
6261           when the first SSH or HTTP connection is received. We expect
6262           that similar functionality will also be added to libvirt-lxc
6263           eventually.
6264
6265         * journalctl will now suppress ANSI color codes when
6266           presenting log data.
6267
6268         * systemctl will no longer show control group information for
6269           a unit if the control group is empty anyway.
6270
6271         * logind can now automatically suspend/hibernate/shutdown the
6272           system on idle.
6273
6274         * /etc/machine-info and hostnamed now also expose the chassis
6275           type of the system. This can be used to determine whether
6276           the local system is a laptop, desktop, handset or
6277           tablet. This information may either be configured by the
6278           user/vendor or is automatically determined from ACPI and DMI
6279           information if possible.
6280
6281         * A number of PolicyKit actions are now bound together with
6282           "imply" rules. This should simplify creating UIs because
6283           many actions will now authenticate similar ones as well.
6284
6285         * Unit files learnt a new condition ConditionACPower= which
6286           may be used to conditionalize a unit depending on whether an
6287           AC power source is connected or not, of whether the system
6288           is running on battery power.
6289
6290         * systemctl gained a new "is-failed" verb that may be used in
6291           shell scripts and suchlike to check whether a specific unit
6292           is in the "failed" state.
6293
6294         * The EnvironmentFile= setting in unit files now supports file
6295           globbing, and can hence be used to easily read a number of
6296           environment files at once.
6297
6298         * systemd will no longer detect and recognize specific
6299           distributions. All distribution-specific #ifdeffery has been
6300           removed, systemd is now fully generic and
6301           distribution-agnostic. Effectively, not too much is lost as
6302           a lot of the code is still accessible via explicit configure
6303           switches. However, support for some distribution specific
6304           legacy configuration file formats has been dropped. We
6305           recommend distributions to simply adopt the configuration
6306           files everybody else uses now and convert the old
6307           configuration from packaging scripts. Most distributions
6308           already did that. If that's not possible or desirable,
6309           distributions are welcome to forward port the specific
6310           pieces of code locally from the git history.
6311
6312         * When logging a message about a unit systemd will now always
6313           log the unit name in the message meta data.
6314
6315         * localectl will now also discover system locale data that is
6316           not stored in locale archives, but directly unpacked.
6317
6318         * logind will no longer unconditionally use framebuffer
6319           devices as seat masters, i.e. as devices that are required
6320           to be existing before a seat is considered preset. Instead,
6321           it will now look for all devices that are tagged as
6322           "seat-master" in udev. By default, framebuffer devices will
6323           be marked as such, but depending on local systems, other
6324           devices might be marked as well. This may be used to
6325           integrate graphics cards using closed source drivers (such
6326           as NVidia ones) more nicely into logind. Note however, that
6327           we recommend using the open source NVidia drivers instead,
6328           and no udev rules for the closed-source drivers will be
6329           shipped from us upstream.
6330
6331         Contributions from: Adam Williamson, Alessandro Crismani, Auke
6332         Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
6333         Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
6334         Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
6335         Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
6336         Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
6337         Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
6338         Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
6339         Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
6340         Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
6341         Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
6342         Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
6343         Jędrzejewski-Szmek
6344
6345 CHANGES WITH 196:
6346
6347         * udev gained support for loading additional device properties
6348           from an indexed database that is keyed by vendor/product IDs
6349           and similar device identifiers. For the beginning this
6350           "hwdb" is populated with data from the well-known PCI and
6351           USB database, but also includes PNP, ACPI and OID data. In
6352           the longer run this indexed database shall grow into
6353           becoming the one central database for non-essential
6354           userspace device metadata. Previously, data from the PCI/USB
6355           database was only attached to select devices, since the
6356           lookup was a relatively expensive operation due to O(n) time
6357           complexity (with n being the number of entries in the
6358           database). Since this is now O(1), we decided to add in this
6359           data for all devices where this is available, by
6360           default. Note that the indexed database needs to be rebuilt
6361           when new data files are installed. To achieve this you need
6362           to update your packaging scripts to invoke "udevadm hwdb
6363           --update" after installation of hwdb data files. For
6364           RPM-based distributions we introduced the new
6365           %udev_hwdb_update macro for this purpose.
6366
6367         * The Journal gained support for the "Message Catalog", an
6368           indexed database to link up additional information with
6369           journal entries. For further details please check:
6370
6371           https://www.freedesktop.org/wiki/Software/systemd/catalog
6372
6373           The indexed message catalog database also needs to be
6374           rebuilt after installation of message catalog files. Use
6375           "journalctl --update-catalog" for this. For RPM-based
6376           distributions we introduced the %journal_catalog_update
6377           macro for this purpose.
6378
6379         * The Python Journal bindings gained support for the standard
6380           Python logging framework.
6381
6382         * The Journal API gained new functions for checking whether
6383           the underlying file system of a journal file is capable of
6384           properly reporting file change notifications, or whether
6385           applications that want to reflect journal changes "live"
6386           need to recheck journal files continuously in appropriate
6387           time intervals.
6388
6389         * It is now possible to set the "age" field for tmpfiles
6390           entries to 0, indicating that files matching this entry
6391           shall always be removed when the directories are cleaned up.
6392
6393         * coredumpctl gained a new "gdb" verb which invokes gdb
6394           right-away on the selected coredump.
6395
6396         * There's now support for "hybrid sleep" on kernels that
6397           support this, in addition to "suspend" and "hibernate". Use
6398           "systemctl hybrid-sleep" to make use of this.
6399
6400         * logind's HandleSuspendKey= setting (and related settings)
6401           now gained support for a new "lock" setting to simply
6402           request the screen lock on all local sessions, instead of
6403           actually executing a suspend or hibernation.
6404
6405         * systemd will now mount the EFI variables file system by
6406           default.
6407
6408         * Socket units now gained support for configuration of the
6409           SMACK security label.
6410
6411         * timedatectl will now output the time of the last and next
6412           daylight saving change.
6413
6414         * We dropped support for various legacy and distro-specific
6415           concepts, such as insserv, early-boot SysV services
6416           (i.e. those for non-standard runlevels such as 'b' or 'S')
6417           or ArchLinux /etc/rc.conf support. We recommend the
6418           distributions who still need support this to either continue
6419           to maintain the necessary patches downstream, or find a
6420           different solution. (Talk to us if you have questions!)
6421
6422         * Various systemd components will now bypass PolicyKit checks
6423           for root and otherwise handle properly if PolicyKit is not
6424           found to be around. This should fix most issues for
6425           PolicyKit-less systems. Quite frankly this should have been
6426           this way since day one. It is absolutely our intention to
6427           make systemd work fine on PolicyKit-less systems, and we
6428           consider it a bug if something does not work as it should if
6429           PolicyKit is not around.
6430
6431         * For embedded systems it is now possible to build udev and
6432           systemd without blkid and/or kmod support.
6433
6434         * "systemctl switch-root" is now capable of switching root
6435           more than once. I.e. in addition to transitions from the
6436           initrd to the host OS it is now possible to transition to
6437           further OS images from the host. This is useful to implement
6438           offline updating tools.
6439
6440         * Various other additions have been made to the RPM macros
6441           shipped with systemd. Use %udev_rules_update() after
6442           installing new udev rules files. %_udevhwdbdir,
6443           %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
6444           %_sysctldir are now available which resolve to the right
6445           directories for packages to place various data files in.
6446
6447         * journalctl gained the new --full switch (in addition to
6448           --all, to disable ellipsation for long messages.
6449
6450         Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
6451         Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
6452         Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
6453         Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
6454         Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
6455         Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
6456         Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
6457         Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
6458         Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
6459
6460 CHANGES WITH 195:
6461
6462         * journalctl gained new --since= and --until= switches to
6463           filter by time. It also now supports nice filtering for
6464           units via --unit=/-u.
6465
6466         * Type=oneshot services may use ExecReload= and do the
6467           right thing.
6468
6469         * The journal daemon now supports time-based rotation and
6470           vacuuming, in addition to the usual disk-space based
6471           rotation.
6472
6473         * The journal will now index the available field values for
6474           each field name. This enables clients to show pretty drop
6475           downs of available match values when filtering. The bash
6476           completion of journalctl has been updated
6477           accordingly. journalctl gained a new switch -F to list all
6478           values a certain field takes in the journal database.
6479
6480         * More service events are now written as structured messages
6481           to the journal, and made recognizable via message IDs.
6482
6483         * The timedated, localed and hostnamed mini-services which
6484           previously only provided support for changing time, locale
6485           and hostname settings from graphical DEs such as GNOME now
6486           also have a minimal (but very useful) text-based client
6487           utility each. This is probably the nicest way to changing
6488           these settings from the command line now, especially since
6489           it lists available options and is fully integrated with bash
6490           completion.
6491
6492         * There's now a new tool "systemd-coredumpctl" to list and
6493           extract coredumps from the journal.
6494
6495         * We now install a README each in /var/log/ and
6496           /etc/rc.d/init.d explaining where the system logs and init
6497           scripts went. This hopefully should help folks who go to
6498           that dirs and look into the otherwise now empty void and
6499           scratch their heads.
6500
6501         * When user-services are invoked (by systemd --user) the
6502           $MANAGERPID env var is set to the PID of systemd.
6503
6504         * SIGRTMIN+24 when sent to a --user instance will now result
6505           in immediate termination of systemd.
6506
6507         * gatewayd received numerous feature additions such as a
6508           "follow" mode, for live syncing and filtering.
6509
6510         * browse.html now allows filtering and showing detailed
6511           information on specific entries. Keyboard navigation and
6512           mouse screen support has been added.
6513
6514         * gatewayd/journalctl now supports HTML5/JSON
6515           Server-Sent-Events as output.
6516
6517         * The SysV init script compatibility logic will now
6518           heuristically determine whether a script supports the
6519           "reload" verb, and only then make this available as
6520           "systemctl reload".
6521
6522         * "systemctl status --follow" has been removed, use "journalctl
6523           -u" instead.
6524
6525         * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
6526           have been removed since they are hardly useful to be
6527           configured.
6528
6529         * And I'd like to take the opportunity to specifically mention
6530           Zbigniew for his great contributions. Zbigniew, you rock!
6531
6532         Contributions from: Andrew Eikum, Christian Hesse, Colin
6533         Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
6534         Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
6535         Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
6536         Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
6537         Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
6538         Jędrzejewski-Szmek, Сковорода Никита Андреевич
6539
6540 CHANGES WITH 194:
6541
6542         * If /etc/vconsole.conf is non-existent or empty we will no
6543           longer load any console font or key map at boot by
6544           default. Instead the kernel defaults will be left
6545           intact. This is definitely the right thing to do, as no
6546           configuration should mean no configuration, and hard-coding
6547           font names that are different on all archs is probably a bad
6548           idea. Also, the kernel default key map and font should be
6549           good enough for most cases anyway, and mostly identical to
6550           the userspace fonts/key maps we previously overloaded them
6551           with. If distributions want to continue to default to a
6552           non-kernel font or key map they should ship a default
6553           /etc/vconsole.conf with the appropriate contents.
6554
6555         Contributions from: Colin Walters, Daniel J Walsh, Dave
6556         Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
6557         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
6558
6559 CHANGES WITH 193:
6560
6561         * journalctl gained a new --cursor= switch to show entries
6562           starting from the specified location in the journal.
6563
6564         * We now enforce a size limit on journal entry fields exported
6565           with "-o json" in journalctl. Fields larger than 4K will be
6566           assigned null. This can be turned off with --all.
6567
6568         * An (optional) journal gateway daemon is now available as
6569           "systemd-journal-gatewayd.service". This service provides
6570           access to the journal via HTTP and JSON. This functionality
6571           will be used to implement live log synchronization in both
6572           pull and push modes, but has various other users too, such
6573           as easy log access for debugging of embedded devices. Right
6574           now it is already useful to retrieve the journal via HTTP:
6575
6576           # systemctl start systemd-journal-gatewayd.service
6577           # wget http://localhost:19531/entries
6578
6579           This will download the journal contents in a
6580           /var/log/messages compatible format. The same as JSON:
6581
6582           # curl -H"Accept: application/json" http://localhost:19531/entries
6583
6584           This service is also accessible via a web browser where a
6585           single static HTML5 app is served that uses the JSON logic
6586           to enable the user to do some basic browsing of the
6587           journal. This will be extended later on. Here's an example
6588           screenshot of this app in its current state:
6589
6590           http://0pointer.de/public/journal-gatewayd
6591
6592         Contributions from: Kay Sievers, Lennart Poettering, Robert
6593         Milasan, Tom Gundersen
6594
6595 CHANGES WITH 192:
6596
6597         * The bash completion logic is now available for journalctl
6598           too.
6599
6600         * We do not mount the "cpuset" controller anymore together with
6601           "cpu" and "cpuacct", as "cpuset" groups generally cannot be
6602           started if no parameters are assigned to it. "cpuset" hence
6603           broke code that assumed it could create "cpu" groups and
6604           just start them.
6605
6606         * journalctl -f will now subscribe to terminal size changes,
6607           and line break accordingly.
6608
6609         Contributions from: Dave Reisner, Kay Sievers, Lennart
6610         Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
6611
6612 CHANGES WITH 191:
6613
6614         * nspawn will now create a symlink /etc/localtime in the
6615           container environment, copying the host's timezone
6616           setting. Previously this has been done via a bind mount, but
6617           since symlinks cannot be bind mounted this has now been
6618           changed to create/update the appropriate symlink.
6619
6620         * journalctl -n's line number argument is now optional, and
6621           will default to 10 if omitted.
6622
6623         * journald will now log the maximum size the journal files may
6624           take up on disk. This is particularly useful if the default
6625           built-in logic of determining this parameter from the file
6626           system size is used. Use "systemctl status
6627           systemd-journald.service" to see this information.
6628
6629         * The multi-seat X wrapper tool has been stripped down. As X
6630           is now capable of enumerating graphics devices via udev in a
6631           seat-aware way the wrapper is not strictly necessary
6632           anymore. A stripped down temporary stop-gap is still shipped
6633           until the upstream display managers have been updated to
6634           fully support the new X logic. Expect this wrapper to be
6635           removed entirely in one of the next releases.
6636
6637         * HandleSleepKey= in logind.conf has been split up into
6638           HandleSuspendKey= and HandleHibernateKey=. The old setting
6639           is not available anymore. X11 and the kernel are
6640           distinguishing between these keys and we should too. This
6641           also means the inhibition lock for these keys has been split
6642           into two.
6643
6644         Contributions from: Dave Airlie, Eelco Dolstra, Lennart
6645         Poettering, Lukas Nykryn, Václav Pavlín
6646
6647 CHANGES WITH 190:
6648
6649         * Whenever a unit changes state we will now log this to the
6650           journal and show along the unit's own log output in
6651           "systemctl status".
6652
6653         * ConditionPathIsMountPoint= can now properly detect bind
6654           mount points too. (Previously, a bind mount of one file
6655           system to another place in the same file system could not be
6656           detected as mount, since they shared struct stat's st_dev
6657           field.)
6658
6659         * We will now mount the cgroup controllers cpu, cpuacct,
6660           cpuset and the controllers net_cls, net_prio together by
6661           default.
6662
6663         * nspawn containers will now have a virtualized boot
6664           ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
6665           over with a randomized ID at container initialization). This
6666           has the effect of making "journalctl -b" do the right thing
6667           in a container.
6668
6669         * The JSON output journal serialization has been updated not
6670           to generate "endless" list objects anymore, but rather one
6671           JSON object per line. This is more in line how most JSON
6672           parsers expect JSON objects. The new output mode
6673           "json-pretty" has been added to provide similar output, but
6674           neatly aligned for readability by humans.
6675
6676         * We dropped all explicit sync() invocations in the shutdown
6677           code. The kernel does this implicitly anyway in the kernel
6678           reboot() syscall. halt(8)'s -n option is now a compatibility
6679           no-op.
6680
6681         * We now support virtualized reboot() in containers, as
6682           supported by newer kernels. We will fall back to exit() if
6683           CAP_SYS_REBOOT is not available to the container. Also,
6684           nspawn makes use of this now and will actually reboot the
6685           container if the containerized OS asks for that.
6686
6687         * journalctl will only show local log output by default
6688           now. Use --merge (-m) to show remote log output, too.
6689
6690         * libsystemd-journal gained the new sd_journal_get_usage()
6691           call to determine the current disk usage of all journal
6692           files. This is exposed in the new "journalctl --disk-usage"
6693           command.
6694
6695         * journald gained a new configuration setting SplitMode= in
6696           journald.conf which may be used to control how user journals
6697           are split off. See journald.conf(5) for details.
6698
6699         * A new condition type ConditionFileNotEmpty= has been added.
6700
6701         * tmpfiles' "w" lines now support file globbing, to write
6702           multiple files at once.
6703
6704         * We added Python bindings for the journal submission
6705           APIs. More Python APIs for a number of selected APIs will
6706           likely follow. Note that we intend to add native bindings
6707           only for the Python language, as we consider it common
6708           enough to deserve bindings shipped within systemd. There are
6709           various projects outside of systemd that provide bindings
6710           for languages such as PHP or Lua.
6711
6712         * Many conditions will now resolve specifiers such as %i. In
6713           addition, PathChanged= and related directives of .path units
6714           now support specifiers as well.
6715
6716         * There's now a new RPM macro definition for the system preset
6717           dir: %_presetdir.
6718
6719         * journald will now warn if it ca not forward a message to the
6720           syslog daemon because its socket is full.
6721
6722         * timedated will no longer write or process /etc/timezone,
6723           except on Debian. As we do not support late mounted /usr
6724           anymore /etc/localtime always being a symlink is now safe,
6725           and hence the information in /etc/timezone is not necessary
6726           anymore.
6727
6728         * logind will now always reserve one VT for a text getty (VT6
6729           by default). Previously if more than 6 X sessions where
6730           started they took up all the VTs with auto-spawned gettys,
6731           so that no text gettys were available anymore.
6732
6733         * udev will now automatically inform the btrfs kernel logic
6734           about btrfs RAID components showing up. This should make
6735           simple hotplug based btrfs RAID assembly work.
6736
6737         * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
6738           (but not for its children which will stay at the kernel
6739           default). This should allow setups with a lot more listening
6740           sockets.
6741
6742         * systemd will now always pass the configured timezone to the
6743           kernel at boot. timedated will do the same when the timezone
6744           is changed.
6745
6746         * logind's inhibition logic has been updated. By default,
6747           logind will now handle the lid switch, the power and sleep
6748           keys all the time, even in graphical sessions. If DEs want
6749           to handle these events on their own they should take the new
6750           handle-power-key, handle-sleep-key and handle-lid-switch
6751           inhibitors during their runtime. A simple way to achieve
6752           that is to invoke the DE wrapped in an invocation of:
6753
6754           systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
6755
6756         * Access to unit operations is now checked via SELinux taking
6757           the unit file label and client process label into account.
6758
6759         * systemd will now notify the administrator in the journal
6760           when he over-mounts a non-empty directory.
6761
6762         * There are new specifiers that are resolved in unit files,
6763           for the host name (%H), the machine ID (%m) and the boot ID
6764           (%b).
6765
6766         Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
6767         Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
6768         Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
6769         Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
6770         Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
6771         Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
6772         Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
6773
6774 CHANGES WITH 189:
6775
6776         * Support for reading structured kernel messages from
6777           /dev/kmsg has now been added and is enabled by default.
6778
6779         * Support for reading kernel messages from /proc/kmsg has now
6780           been removed. If you want kernel messages in the journal
6781           make sure to run a recent kernel (>= 3.5) that supports
6782           reading structured messages from /dev/kmsg (see
6783           above). /proc/kmsg is now exclusive property of classic
6784           syslog daemons again.
6785
6786         * The libudev API gained the new
6787           udev_device_new_from_device_id() call.
6788
6789         * The logic for file system namespace (ReadOnlyDirectory=,
6790           ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
6791           require pivot_root() anymore. This means fewer temporary
6792           directories are created below /tmp for this feature.
6793
6794         * nspawn containers will now see and receive all submounts
6795           made on the host OS below the root file system of the
6796           container.
6797
6798         * Forward Secure Sealing is now supported for Journal files,
6799           which provide cryptographical sealing of journal files so
6800           that attackers cannot alter log history anymore without this
6801           being detectable. Lennart will soon post a blog story about
6802           this explaining it in more detail.
6803
6804         * There are two new service settings RestartPreventExitStatus=
6805           and SuccessExitStatus= which allow configuration of exit
6806           status (exit code or signal) which will be excepted from the
6807           restart logic, resp. consider successful.
6808
6809         * journalctl gained the new --verify switch that can be used
6810           to check the integrity of the structure of journal files and
6811           (if Forward Secure Sealing is enabled) the contents of
6812           journal files.
6813
6814         * nspawn containers will now be run with /dev/stdin, /dev/fd/
6815           and similar symlinks pre-created. This makes running shells
6816           as container init process a lot more fun.
6817
6818         * The fstab support can now handle PARTUUID= and PARTLABEL=
6819           entries.
6820
6821         * A new ConditionHost= condition has been added to match
6822           against the hostname (with globs) and machine ID. This is
6823           useful for clusters where a single OS image is used to
6824           provision a large number of hosts which shall run slightly
6825           different sets of services.
6826
6827         * Services which hit the restart limit will now be placed in a
6828           failure state.
6829
6830         Contributions from: Bertram Poettering, Dave Reisner, Huang
6831         Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
6832         Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
6833
6834 CHANGES WITH 188:
6835
6836         * When running in --user mode systemd will now become a
6837           subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
6838           tree a lot more organized.
6839
6840         * A new PartOf= unit dependency type has been introduced that
6841           may be used to group services in a natural way.
6842
6843         * "systemctl enable" may now be used to enable instances of
6844           services.
6845
6846         * journalctl now prints error log levels in red, and
6847           warning/notice log levels in bright white. It also supports
6848           filtering by log level now.
6849
6850         * cgtop gained a new -n switch (similar to top), to configure
6851           the maximum number of iterations to run for. It also gained
6852           -b, to run in batch mode (accepting no input).
6853
6854         * The suffix ".service" may now be omitted on most systemctl
6855           command lines involving service unit names.
6856
6857         * There's a new bus call in logind to lock all sessions, as
6858           well as a loginctl verb for it "lock-sessions".
6859
6860         * libsystemd-logind.so gained a new call sd_journal_perror()
6861           that works similar to libc perror() but logs to the journal
6862           and encodes structured information about the error number.
6863
6864         * /etc/crypttab entries now understand the new keyfile-size=
6865           option.
6866
6867         * shutdown(8) now can send a (configurable) wall message when
6868           a shutdown is cancelled.
6869
6870         * The mount propagation mode for the root file system will now
6871           default to "shared", which is useful to make containers work
6872           nicely out-of-the-box so that they receive new mounts from
6873           the host. This can be undone locally by running "mount
6874           --make-rprivate /" if needed.
6875
6876         * The prefdm.service file has been removed. Distributions
6877           should maintain this unit downstream if they intend to keep
6878           it around. However, we recommend writing normal unit files
6879           for display managers instead.
6880
6881         * Since systemd is a crucial part of the OS we will now
6882           default to a number of compiler switches that improve
6883           security (hardening) such as read-only relocations, stack
6884           protection, and suchlike.
6885
6886         * The TimeoutSec= setting for services is now split into
6887           TimeoutStartSec= and TimeoutStopSec= to allow configuration
6888           of individual time outs for the start and the stop phase of
6889           the service.
6890
6891         Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
6892         Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
6893         Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
6894         Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
6895         Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
6896         Gundersen, Zbigniew Jędrzejewski-Szmek
6897
6898 CHANGES WITH 187:
6899
6900         * The journal and id128 C APIs are now fully documented as man
6901           pages.
6902
6903         * Extra safety checks have been added when transitioning from
6904           the initial RAM disk to the main system to avoid accidental
6905           data loss.
6906
6907         * /etc/crypttab entries now understand the new keyfile-offset=
6908           option.
6909
6910         * systemctl -t can now be used to filter by unit load state.
6911
6912         * The journal C API gained the new sd_journal_wait() call to
6913           make writing synchronous journal clients easier.
6914
6915         * journalctl gained the new -D switch to show journals from a
6916           specific directory.
6917
6918         * journalctl now displays a special marker between log
6919           messages of two different boots.
6920
6921         * The journal is now explicitly flushed to /var via a service
6922           systemd-journal-flush.service, rather than implicitly simply
6923           by seeing /var/log/journal to be writable.
6924
6925         * journalctl (and the journal C APIs) can now match for much
6926           more complex expressions, with alternatives and
6927           disjunctions.
6928
6929         * When transitioning from the initial RAM disk to the main
6930           system we will now kill all processes in a killing spree to
6931           ensure no processes stay around by accident.
6932
6933         * Three new specifiers may be used in unit files: %u, %h, %s
6934           resolve to the user name, user home directory resp. user
6935           shell. This is useful for running systemd user instances.
6936
6937         * We now automatically rotate journal files if their data
6938           object hash table gets a fill level > 75%. We also size the
6939           hash table based on the configured maximum file size. This
6940           together should lower hash collisions drastically and thus
6941           speed things up a bit.
6942
6943         * journalctl gained the new "--header" switch to introspect
6944           header data of journal files.
6945
6946         * A new setting SystemCallFilters= has been added to services
6947           which may be used to apply blacklists or whitelists to
6948           system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
6949
6950         * nspawn gained a new --link-journal= switch (and quicker: -j)
6951           to link the container journal with the host. This makes it
6952           very easy to centralize log viewing on the host for all
6953           guests while still keeping the journal files separated.
6954
6955         * Many bugfixes and optimizations
6956
6957         Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
6958         Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
6959         Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
6960         Jędrzejewski-Szmek
6961
6962 CHANGES WITH 186:
6963
6964         * Several tools now understand kernel command line arguments,
6965           which are only read when run in an initial RAM disk. They
6966           usually follow closely their normal counterparts, but are
6967           prefixed with rd.
6968
6969         * There's a new tool to analyze the readahead files that are
6970           automatically generated at boot. Use:
6971
6972           /usr/lib/systemd/systemd-readahead analyze /.readahead
6973
6974         * We now provide an early debug shell on tty9 if this enabled. Use:
6975
6976           systemctl enable debug-shell.service
6977
6978         * All plymouth related units have been moved into the Plymouth
6979           package. Please make sure to upgrade your Plymouth version
6980           as well.
6981
6982         * systemd-tmpfiles now supports getting passed the basename of
6983           a configuration file only, in which case it will look for it
6984           in all appropriate directories automatically.
6985
6986         * udevadm info now takes a /dev or /sys path as argument, and
6987           does the right thing. Example:
6988
6989           udevadm info /dev/sda
6990           udevadm info /sys/class/block/sda
6991
6992         * systemctl now prints a warning if a unit is stopped but a
6993           unit that might trigger it continues to run. Example: a
6994           service is stopped but the socket that activates it is left
6995           running.
6996
6997         * "systemctl status" will now mention if the log output was
6998           shortened due to rotation since a service has been started.
6999
7000         * The journal API now exposes functions to determine the
7001           "cutoff" times due to rotation.
7002
7003         * journald now understands SIGUSR1 and SIGUSR2 for triggering
7004           immediately flushing of runtime logs to /var if possible,
7005           resp. for triggering immediate rotation of the journal
7006           files.
7007
7008         * It is now considered an error if a service is attempted to
7009           be stopped that is not loaded.
7010
7011         * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
7012
7013         * systemd-analyze now supports Python 3
7014
7015         * tmpfiles now supports cleaning up directories via aging
7016           where the first level dirs are always kept around but
7017           directories beneath it automatically aged. This is enabled
7018           by prefixing the age field with '~'.
7019
7020         * Seat objects now expose CanGraphical, CanTTY properties
7021           which is required to deal with very fast bootups where the
7022           display manager might be running before the graphics drivers
7023           completed initialization.
7024
7025         * Seat objects now expose a State property.
7026
7027         * We now include RPM macros for service enabling/disabling
7028           based on the preset logic. We recommend RPM based
7029           distributions to make use of these macros if possible. This
7030           makes it simpler to reuse RPM spec files across
7031           distributions.
7032
7033         * We now make sure that the collected systemd unit name is
7034           always valid when services log to the journal via
7035           STDOUT/STDERR.
7036
7037         * There's a new man page kernel-command-line(7) detailing all
7038           command line options we understand.
7039
7040         * The fstab generator may now be disabled at boot by passing
7041           fstab=0 on the kernel command line.
7042
7043         * A new kernel command line option modules-load= is now understood
7044           to load a specific kernel module statically, early at boot.
7045
7046         * Unit names specified on the systemctl command line are now
7047           automatically escaped as needed. Also, if file system or
7048           device paths are specified they are automatically turned
7049           into the appropriate mount or device unit names. Example:
7050
7051           systemctl status /home
7052           systemctl status /dev/sda
7053
7054         * The SysVConsole= configuration option has been removed from
7055           system.conf parsing.
7056
7057         * The SysV search path is no longer exported on the D-Bus
7058           Manager object.
7059
7060         * The Names= option has been removed from unit file parsing.
7061
7062         * There's a new man page bootup(7) detailing the boot process.
7063
7064         * Every unit and every generator we ship with systemd now
7065           comes with full documentation. The self-explanatory boot is
7066           complete.
7067
7068         * A couple of services gained "systemd-" prefixes in their
7069           name if they wrap systemd code, rather than only external
7070           code. Among them fsck@.service which is now
7071           systemd-fsck@.service.
7072
7073         * The HaveWatchdog property has been removed from the D-Bus
7074           Manager object.
7075
7076         * systemd.confirm_spawn= on the kernel command line should now
7077           work sensibly.
7078
7079         * There's a new man page crypttab(5) which details all options
7080           we actually understand.
7081
7082         * systemd-nspawn gained a new --capability= switch to pass
7083           additional capabilities to the container.
7084
7085         * timedated will now read known NTP implementation unit names
7086           from /usr/lib/systemd/ntp-units.d/*.list,
7087           systemd-timedated-ntp.target has been removed.
7088
7089         * journalctl gained a new switch "-b" that lists log data of
7090           the current boot only.
7091
7092         * The notify socket is in the abstract namespace again, in
7093           order to support daemons which chroot() at start-up.
7094
7095         * There is a new Storage= configuration option for journald
7096           which allows configuration of where log data should go. This
7097           also provides a way to disable journal logging entirely, so
7098           that data collected is only forwarded to the console, the
7099           kernel log buffer or another syslog implementation.
7100
7101         * Many bugfixes and optimizations
7102
7103         Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
7104         David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
7105         Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
7106         Shawn Landden, Tom Gundersen
7107
7108 CHANGES WITH 185:
7109
7110         * "systemctl help <unit>" now shows the man page if one is
7111           available.
7112
7113         * Several new man pages have been added.
7114
7115         * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
7116           MaxLevelConsole= can now be specified in
7117           journald.conf. These options allow reducing the amount of
7118           data stored on disk or forwarded by the log level.
7119
7120         * TimerSlackNSec= can now be specified in system.conf for
7121           PID1. This allows system-wide power savings.
7122
7123         Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
7124         Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
7125         Matthias Clasen
7126
7127 CHANGES WITH 184:
7128
7129         * logind is now capable of (optionally) handling power and
7130           sleep keys as well as the lid switch.
7131
7132         * journalctl now understands the syntax "journalctl
7133           /usr/bin/avahi-daemon" to get all log output of a specific
7134           daemon.
7135
7136         * CapabilityBoundingSet= in system.conf now also influences
7137           the capability bound set of usermode helpers of the kernel.
7138
7139         Contributions from: Daniel Drake, Daniel J. Walsh, Gert
7140         Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
7141         Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
7142         Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
7143
7144 CHANGES WITH 183:
7145
7146         * Note that we skipped 139 releases here in order to set the
7147           new version to something that is greater than both udev's
7148           and systemd's most recent version number.
7149
7150         * udev: all udev sources are merged into the systemd source tree now.
7151           All future udev development will happen in the systemd tree. It
7152           is still fully supported to use the udev daemon and tools without
7153           systemd running, like in initramfs or other init systems. Building
7154           udev though, will require the *build* of the systemd tree, but
7155           udev can be properly *run* without systemd.
7156
7157         * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
7158           should be used to create dead device nodes as workarounds for broken
7159           subsystems.
7160
7161         * udev: RUN+="socket:..."  and udev_monitor_new_from_socket() is
7162           no longer supported. udev_monitor_new_from_netlink() needs to be
7163           used to subscribe to events.
7164
7165         * udev: when udevd is started by systemd, processes which are left
7166           behind by forking them off of udev rules, are unconditionally cleaned
7167           up and killed now after the event handling has finished. Services or
7168           daemons must be started as systemd services. Services can be
7169           pulled-in by udev to get started, but they can no longer be directly
7170           forked by udev rules.
7171
7172         * udev: the daemon binary is called systemd-udevd now and installed
7173           in /usr/lib/systemd/. Standalone builds or non-systemd systems need
7174           to adapt to that, create symlink, or rename the binary after building
7175           it.
7176
7177         * libudev no longer provides these symbols:
7178             udev_monitor_from_socket()
7179             udev_queue_get_failed_list_entry()
7180             udev_get_{dev,sys,run}_path()
7181           The versions number was bumped and symbol versioning introduced.
7182
7183         * systemd-loginctl and systemd-journalctl have been renamed
7184           to loginctl and journalctl to match systemctl.
7185
7186         * The config files: /etc/systemd/systemd-logind.conf and
7187           /etc/systemd/systemd-journald.conf have been renamed to
7188           logind.conf and journald.conf. Package updates should rename
7189           the files to the new names on upgrade.
7190
7191         * For almost all files the license is now LGPL2.1+, changed
7192           from the previous GPL2.0+. Exceptions are some minor stuff
7193           of udev (which will be changed to LGPL2.1 eventually, too),
7194           and the MIT licensed sd-daemon.[ch] library that is suitable
7195           to be used as drop-in files.
7196
7197         * systemd and logind now handle system sleep states, in
7198           particular suspending and hibernating.
7199
7200         * logind now implements a sleep/shutdown/idle inhibiting logic
7201           suitable for a variety of uses. Soonishly Lennart will blog
7202           about this in more detail.
7203
7204         * var-run.mount and var-lock.mount are no longer provided
7205           (which previously bind mounted these directories to their new
7206           places). Distributions which have not converted these
7207           directories to symlinks should consider stealing these files
7208           from git history and add them downstream.
7209
7210         * We introduced the Documentation= field for units and added
7211           this to all our shipped units. This is useful to make it
7212           easier to explore the boot and the purpose of the various
7213           units.
7214
7215         * All smaller setup units (such as
7216           systemd-vconsole-setup.service) now detect properly if they
7217           are run in a container and are skipped when
7218           appropriate. This guarantees an entirely noise-free boot in
7219           Linux container environments such as systemd-nspawn.
7220
7221         * A framework for implementing offline system updates is now
7222           integrated, for details see:
7223           https://www.freedesktop.org/wiki/Software/systemd/SystemUpdates
7224
7225         * A new service type Type=idle is available now which helps us
7226           avoiding ugly interleaving of getty output and boot status
7227           messages.
7228
7229         * There's now a system-wide CapabilityBoundingSet= option to
7230           globally reduce the set of capabilities for the
7231           system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
7232           CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
7233           even CAP_NET_ADMIN system-wide for secure systems.
7234
7235         * There are now system-wide DefaultLimitXXX= options to
7236           globally change the defaults of the various resource limits
7237           for all units started by PID 1.
7238
7239         * Harald Hoyer's systemd test suite has been integrated into
7240           systemd which allows easy testing of systemd builds in qemu
7241           and nspawn. (This is really awesome! Ask us for details!)
7242
7243         * The fstab parser is now implemented as generator, not inside
7244           of PID 1 anymore.
7245
7246         * systemctl will now warn you if .mount units generated from
7247           /etc/fstab are out of date due to changes in fstab that
7248           have not been read by systemd yet.
7249
7250         * systemd is now suitable for usage in initrds. Dracut has
7251           already been updated to make use of this. With this in place
7252           initrds get a slight bit faster but primarily are much
7253           easier to introspect and debug since "systemctl status" in
7254           the host system can be used to introspect initrd services,
7255           and the journal from the initrd is kept around too.
7256
7257         * systemd-delta has been added, a tool to explore differences
7258           between user/admin configuration and vendor defaults.
7259
7260         * PrivateTmp= now affects both /tmp and /var/tmp.
7261
7262         * Boot time status messages are now much prettier and feature
7263           proper english language. Booting up systemd has never been
7264           so sexy.
7265
7266         * Read-ahead pack files now include the inode number of all
7267           files to pre-cache. When the inode changes the pre-caching
7268           is not attempted. This should be nicer to deal with updated
7269           packages which might result in changes of read-ahead
7270           patterns.
7271
7272         * We now temporaritly lower the kernel's read_ahead_kb variable
7273           when collecting read-ahead data to ensure the kernel's
7274           built-in read-ahead does not add noise to our measurements
7275           of necessary blocks to pre-cache.
7276
7277         * There's now RequiresMountsFor= to add automatic dependencies
7278           for all mounts necessary for a specific file system path.
7279
7280         * MountAuto= and SwapAuto= have been removed from
7281           system.conf. Mounting file systems at boot has to take place
7282           in systemd now.
7283
7284         * nspawn now learned a new switch --uuid= to set the machine
7285           ID on the command line.
7286
7287         * nspawn now learned the -b switch to automatically search
7288           for an init system.
7289
7290         * vt102 is now the default TERM for serial TTYs, upgraded from
7291           vt100.
7292
7293         * systemd-logind now works on VT-less systems.
7294
7295         * The build tree has been reorganized. The individual
7296           components now have directories of their own.
7297
7298         * A new condition type ConditionPathIsReadWrite= is now available.
7299
7300         * nspawn learned the new -C switch to create cgroups for the
7301           container in other hierarchies.
7302
7303         * We now have support for hardware watchdogs, configurable in
7304           system.conf.
7305
7306         * The scheduled shutdown logic now has a public API.
7307
7308         * We now mount /tmp as tmpfs by default, but this can be
7309           masked and /etc/fstab can override it.
7310
7311         * Since udisks does not make use of /media anymore we are not
7312           mounting a tmpfs on it anymore.
7313
7314         * journalctl gained a new --local switch to only interleave
7315           locally generated journal files.
7316
7317         * We can now load the IMA policy at boot automatically.
7318
7319         * The GTK tools have been split off into a systemd-ui.
7320
7321         Contributions from: Andreas Schwab, Auke Kok, Ayan George,
7322         Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
7323         Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
7324         Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
7325         Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
7326         Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
7327         A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
7328         Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
7329         Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
7330         Gundersen
7331
7332 CHANGES WITH 44:
7333
7334         * This is mostly a bugfix release
7335
7336         * Support optional initialization of the machine ID from the
7337           KVM or container configured UUID.
7338
7339         * Support immediate reboots with "systemctl reboot -ff"
7340
7341         * Show /etc/os-release data in systemd-analyze output
7342
7343         * Many bugfixes for the journal, including endianness fixes and
7344           ensuring that disk space enforcement works
7345
7346         * sd-login.h is C++ compatible again
7347
7348         * Extend the /etc/os-release format on request of the Debian
7349           folks
7350
7351         * We now refuse non-UTF8 strings used in various configuration
7352           and unit files. This is done to ensure we do not pass invalid
7353           data over D-Bus or expose it elsewhere.
7354
7355         * Register Mimo USB Screens as suitable for automatic seat
7356           configuration
7357
7358         * Read SELinux client context from journal clients in a race
7359           free fashion
7360
7361         * Reorder configuration file lookup order. /etc now always
7362           overrides /run in order to allow the administrator to always
7363           and unconditionally override vendor-supplied or
7364           automatically generated data.
7365
7366         * The various user visible bits of the journal now have man
7367           pages. We still lack man pages for the journal API calls
7368           however.
7369
7370         * We now ship all man pages in HTML format again in the
7371           tarball.
7372
7373         Contributions from: Dave Reisner, Dirk Eibach, Frederic
7374         Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
7375         Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
7376         Reding
7377
7378 CHANGES WITH 43:
7379
7380         * This is mostly a bugfix release
7381
7382         * systems lacking /etc/os-release  are no longer supported.
7383
7384         * Various functionality updates to libsystemd-login.so
7385
7386         * Track class of PAM logins to distinguish greeters from
7387           normal user logins.
7388
7389         Contributions from: Kay Sievers, Lennart Poettering, Michael
7390         Biebl
7391
7392 CHANGES WITH 42:
7393
7394         * This is an important bugfix release for v41.
7395
7396         * Building man pages is now optional which should be useful
7397           for those building systemd from git but unwilling to install
7398           xsltproc.
7399
7400         * Watchdog support for supervising services is now usable. In
7401           a future release support for hardware watchdogs
7402           (i.e. /dev/watchdog) will be added building on this.
7403
7404         * Service start rate limiting is now configurable and can be
7405           turned off per service. When a start rate limit is hit a
7406           reboot can automatically be triggered.
7407
7408         * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
7409
7410         Contributions from: Benjamin Franzke, Bill Nottingham,
7411         Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
7412         Schmidt, Michał Górny, Piotr Drąg
7413
7414 CHANGES WITH 41:
7415
7416         * The systemd binary is installed /usr/lib/systemd/systemd now;
7417           An existing /sbin/init symlink needs to be adapted with the
7418           package update.
7419
7420         * The code that loads kernel modules has been ported to invoke
7421           libkmod directly, instead of modprobe. This means we do not
7422           support systems with module-init-tools anymore.
7423
7424         * Watchdog support is now already useful, but still not
7425           complete.
7426
7427         * A new kernel command line option systemd.setenv= is
7428           understood to set system wide environment variables
7429           dynamically at boot.
7430
7431         * We now limit the set of capabilities of systemd-journald.
7432
7433         * We now set SIGPIPE to ignore by default, since it only is
7434           useful in shell pipelines, and has little use in general
7435           code. This can be disabled with IgnoreSIPIPE=no in unit
7436           files.
7437
7438         Contributions from: Benjamin Franzke, Kay Sievers, Lennart
7439         Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
7440         William Douglas
7441
7442 CHANGES WITH 40:
7443
7444         * This is mostly a bugfix release
7445
7446         * We now expose the reason why a service failed in the
7447           "Result" D-Bus property.
7448
7449         * Rudimentary service watchdog support (will be completed over
7450           the next few releases.)
7451
7452         * When systemd forks off in order execute some service we will
7453           now immediately changes its argv[0] to reflect which process
7454           it will execute. This is useful to minimize the time window
7455           with a generic argv[0], which makes bootcharts more useful
7456
7457         Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
7458         Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
7459         Mike Kazantsev, Ray Strode
7460
7461 CHANGES WITH 39:
7462
7463         * This is mostly a test release, but incorporates many
7464           bugfixes.
7465
7466         * New systemd-cgtop tool to show control groups by their
7467           resource usage.
7468
7469         * Linking against libacl for ACLs is optional again. If
7470           disabled, support tracking device access for active logins
7471           goes becomes unavailable, and so does access to the user
7472           journals by the respective users.
7473
7474         * If a group "adm" exists, journal files are automatically
7475           owned by them, thus allow members of this group full access
7476           to the system journal as well as all user journals.
7477
7478         * The journal now stores the SELinux context of the logging
7479           client for all entries.
7480
7481         * Add C++ inclusion guards to all public headers
7482
7483         * New output mode "cat" in the journal to print only text
7484           messages, without any meta data like date or time.
7485
7486         * Include tiny X server wrapper as a temporary stop-gap to
7487           teach XOrg udev display enumeration. This is used by display
7488           managers such as gdm, and will go away as soon as XOrg
7489           learned native udev hotplugging for display devices.
7490
7491         * Add new systemd-cat tool for executing arbitrary programs
7492           with STDERR/STDOUT connected to the journal. Can also act as
7493           BSD logger replacement, and does so by default.
7494
7495         * Optionally store all locally generated coredumps in the
7496           journal along with meta data.
7497
7498         * systemd-tmpfiles learnt four new commands: n, L, c, b, for
7499           writing short strings to files (for usage for /sys), and for
7500           creating symlinks, character and block device nodes.
7501
7502         * New unit file option ControlGroupPersistent= to make cgroups
7503           persistent, following the mechanisms outlined in
7504           https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
7505
7506         * Support multiple local RTCs in a sane way
7507
7508         * No longer monopolize IO when replaying readahead data on
7509           rotating disks, since we might starve non-file-system IO to
7510           death, since fanotify() will not see accesses done by blkid,
7511           or fsck.
7512
7513         * Do not show kernel threads in systemd-cgls anymore, unless
7514           requested with new -k switch.
7515
7516         Contributions from: Dan Horák, Kay Sievers, Lennart
7517         Poettering, Michal Schmidt
7518
7519 CHANGES WITH 38:
7520
7521         * This is mostly a test release, but incorporates many
7522           bugfixes.
7523
7524         * The git repository moved to:
7525           git://anongit.freedesktop.org/systemd/systemd
7526           ssh://git.freedesktop.org/git/systemd/systemd
7527
7528         * First release with the journal
7529           http://0pointer.de/blog/projects/the-journal.html
7530
7531         * The journal replaces both systemd-kmsg-syslogd and
7532           systemd-stdout-bridge.
7533
7534         * New sd_pid_get_unit() API call in libsystemd-logind
7535
7536         * Many systemadm clean-ups
7537
7538         * Introduce remote-fs-pre.target which is ordered before all
7539           remote mounts and may be used to start services before all
7540           remote mounts.
7541
7542         * Added Mageia support
7543
7544         * Add bash completion for systemd-loginctl
7545
7546         * Actively monitor PID file creation for daemons which exit in
7547           the parent process before having finished writing the PID
7548           file in the daemon process. Daemons which do this need to be
7549           fixed (i.e. PID file creation must have finished before the
7550           parent exits), but we now react a bit more gracefully to them.
7551
7552         * Add colourful boot output, mimicking the well-known output
7553           of existing distributions.
7554
7555         * New option PassCredentials= for socket units, for
7556           compatibility with a recent kernel ABI breakage.
7557
7558         * /etc/rc.local is now hooked in via a generator binary, and
7559           thus will no longer act as synchronization point during
7560           boot.
7561
7562         * systemctl list-unit-files now supports --root=.
7563
7564         * systemd-tmpfiles now understands two new commands: z, Z for
7565           relabelling files according to the SELinux database. This is
7566           useful to apply SELinux labels to specific files in /sys,
7567           among other things.
7568
7569         * Output of SysV services is now forwarded to both the console
7570           and the journal by default, not only just the console.
7571
7572         * New man pages for all APIs from libsystemd-login.
7573
7574         * The build tree got reorganized and the build system is a
7575           lot more modular allowing embedded setups to specifically
7576           select the components of systemd they are interested in.
7577
7578         * Support for Linux systems lacking the kernel VT subsystem is
7579           restored.
7580
7581         * configure's --with-rootdir= got renamed to
7582           --with-rootprefix= to follow the naming used by udev and
7583           kmod
7584
7585         * Unless specified otherwise we will now install to /usr instead
7586           of /usr/local by default.
7587
7588         * Processes with '@' in argv[0][0] are now excluded from the
7589           final shut-down killing spree, following the logic explained
7590           in:
7591           https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
7592
7593         * All processes remaining in a service cgroup when we enter
7594           the START or START_PRE states are now killed with
7595           SIGKILL. That means it is no longer possible to spawn
7596           background processes from ExecStart= lines (which was never
7597           supported anyway, and bad style).
7598
7599         * New PropagateReloadTo=/PropagateReloadFrom= options to bind
7600           reloading of units together.
7601
7602         Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
7603         Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
7604         Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
7605         Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
7606         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek