chiark / gitweb /
Prep v231.2: Fix missing/double wall msgs on scheduled shutdown/reboot
[elogind.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 231:
4
5         * In service units the various ExecXYZ= settings have been extended
6           with an additional special character as first argument of the
7           assigned value: if the character '+' is used the specified command
8           line it will be run with full privileges, regardless of User=,
9           Group=, CapabilityBoundingSet= and similar options. The effect is
10           similar to the existing PermissionsStartOnly= option, but allows
11           configuration of this concept for each executed command line
12           independently.
13
14         * Services may now alter the service watchdog timeout at runtime by
15           sending a WATCHDOG_USEC= message via sd_notify().
16
17         * MemoryLimit= and related unit settings now optionally take percentage
18           specifications. The percentage is taken relative to the amount of
19           physical memory in the system (or in case of containers, the assigned
20           amount of memory). This allows scaling service resources neatly with
21           the amount of RAM available on the system. Similarly, systemd-logind's
22           RuntimeDirectorySize= option now also optionally takes percentage
23           values.
24
25         * In similar fashion TasksMax= takes percentage values now, too. The
26           value is taken relative to the configured maximum number of processes
27           on the system. The per-service task maximum has been changed to 15%
28           using this functionality. (Effectively this is an increase of 512 →
29           4915 for service units, given the kernel's default pid_max setting.)
30
31         * Calendar time specifications in .timer units now understand a ".."
32           syntax for time ranges. Example: "4..7:10" may now be used for
33           defining a timer that is triggered at 4:10am, 5:10am, 6:10am and
34           7:10am every day.
35
36         * The InaccessableDirectories=, ReadOnlyDirectories= and
37           ReadWriteDirectories= unit file settings have been renamed to
38           InaccessablePaths=, ReadOnlyPaths= and ReadWritePaths= and may now be
39           applied to all kinds of file nodes, and not just directories, with
40           the exception of symlinks. Specifically these settings may now be
41           used on block and character device nodes, UNIX sockets and FIFOS as
42           well as regular files. The old names of these settings remain
43           available for compatibility.
44
45         * systemd will now log about all service processes it kills forcibly
46           (using SIGKILL) because they remained after the clean shutdown phase
47           of the service completed. This should help identifying services that
48           shut down uncleanly. Moreover if KillUserProcesses= is enabled in
49           systemd-logind's configuration a similar log message is generated for
50           processes killed at the end of each session due to this setting.
51
52         * systemd will now set the $JOURNAL_STREAM environment variable for all
53           services whose stdout/stderr are connected to the Journal (which
54           effectively means by default: all services). The variable contains
55           the device and inode number of the file descriptor used for
56           stdout/stderr. This may be used by invoked programs to detect whether
57           their stdout/stderr is connected to the Journal, in which case they
58           can switch over to direct Journal communication, thus being able to
59           pass extended, structured metadata along with their log messages. As
60           one example, this is now used by glib's logging primitives.
61
62         * When using systemd's default tmp.mount unit for /tmp, the mount point
63           will now be established with the "nosuid" and "nodev" options. This
64           avoids privilege escalation attacks that put traps and exploits into
65           /tmp.  However, this might cause problems if you e. g. put container
66           images or overlays into /tmp; if you need this, override tmp.mount's
67           "Options=" with a drop-in, or mount /tmp from /etc/fstab with your
68           desired options.
69
70         * systemd now supports the "memory" cgroup controller also on
71           cgroupsv2.
72
73         * The systemd-cgtop tool now optionally takes a control group path as
74           command line argument. If specified, the control group list shown is
75           limited to subgroups of that group.
76
77         * The SystemCallFilter= unit file setting gained support for
78           pre-defined, named system call filter sets. For example
79           SystemCallFilter=@clock is now an effective way to make all clock
80           changing-related system calls unavailable to a service. A number of
81           similar pre-defined groups are defined. Writing system call filters
82           for system services is simplified substantially with this new
83           concept. Accordingly, all of systemd's own, long-running services now
84           enable system call filtering based on this, by default.
85
86         * A new service setting MemoryDenyWriteExecute= has been added, taking
87           a boolean value. If turned on, a service may no longer create memory
88           mappings that are writable and executable at the same time. This
89           enhances security for services where this is enabled as it becomes
90           harder to dynamically write and then execute memory in exploited
91           service processes. This option has been enabled for all of systemd's
92           own long-running services.
93
94         * A new RestrictRealtime= service setting has been added, taking a
95           boolean argument. If set the service's processes may no longer
96           acquire realtime scheduling. This improves security as realtime
97           scheduling may otherwise be used to easily freeze the system.
98
99         * systemd-nspawn gained a new switch --notify-ready= taking a boolean
100           value. This may be used for requesting that the system manager inside
101           of the container reports start-up completion to nspawn which then
102           propagates this notification further to the service manager
103           supervising nspawn itself. A related option NotifyReady= in .nspawn
104           files has been added too. This functionality allows ordering of the
105           start-up of multiple containers using the usual systemd ordering
106           primitives.
107
108         * machinectl gained a new command "stop" that is an alias for
109           "terminate".
110
111         * systemd-resolved gained support for contacting DNS servers on
112           link-local IPv6 addresses.
113
114         * If systemd-resolved receives the SIGUSR2 signal it will now flush all
115           its caches. A method call for requesting the same operation has been
116           added to the bus API too, and is made available via "systemd-resolve
117           --flush-caches".
118
119         * systemd-resolve gained a new --status switch. If passed a brief
120           summary of the used DNS configuration with per-interface information
121           is shown.
122
123         * resolved.conf gained a new Cache= boolean option, defaulting to
124           on. If turned off local DNS caching is disabled. This comes with a
125           performance penalty in particular when DNSSEC is enabled. Note that
126           resolved disables its internal caching implicitly anyway, when the
127           configured DNS server is on a host-local IP address such as ::1 or
128           127.0.0.1, thus automatically avoiding double local caching.
129
130         * systemd-resolved now listens on the local IP address 127.0.0.53:53
131           for DNS requests. This improves compatibility with local programs
132           that do not use the libc NSS or systemd-resolved's bus APIs for name
133           resolution. This minimal DNS service is only available to local
134           programs and does not implement the full DNS protocol, but enough to
135           cover local DNS clients. A new, static resolv.conf file, listing just
136           this DNS server is now shipped in /usr/lib/systemd/resolv.conf. It is
137           now recommended to make /etc/resolv.conf a symlink to this file in
138           order to route all DNS lookups to systemd-resolved, regardless if
139           done via NSS, the bus API or raw DNS packets. Note that this local
140           DNS service is not as fully featured as the libc NSS or
141           systemd-resolved's bus APIs. For example, as unicast DNS cannot be
142           used to deliver link-local address information (as this implies
143           sending a local interface index along), LLMNR/mDNS support via this
144           interface is severely restricted. It is thus strongly recommended for
145           all applications to use the libc NSS API or native systemd-resolved
146           bus API instead.
147
148         * systemd-networkd's bridge support learned a new setting
149           VLANFiltering= for controlling VLAN filtering. Moreover a new section
150           in .network files has been added for configuring VLAN bridging in
151           more detail: VLAN=, EgressUntagged=, PVID= in [BridgeVLAN].
152
153         * systemd-networkd's IPv6 Router Advertisement code now makes use of
154           the DNSSL and RDNSS options. This means IPv6 DNS configuration may
155           now be acquired without relying on DHCPv6. Two new options
156           UseDomains= and UseDNS= have been added to configure this behaviour.
157
158         * systemd-networkd's IPv6AcceptRouterAdvertisements= option has been
159           renamed IPv6AcceptRA=, without altering its behaviour. The old
160           setting name remains available for compatibility reasons.
161
162         * The systemd-networkd VTI/VTI6 tunneling support gained new options
163           Key=, InputKey= and OutputKey=.
164
165         * systemd-networkd gained support for VRF ("Virtual Routing Function")
166           interface configuration.
167
168         * "systemctl edit" may now be used to create new unit files by
169           specifying the --force switch.
170
171         * sd-event gained a new function sd_event_get_iteration() for
172           requesting the current iteration counter of the event loop. It starts
173           at zero and is increased by one with each event loop iteration.
174
175         * A new rpm macro %systemd_ordering is provided by the macros.systemd
176           file. It can be used in lieu of %systemd_requires in packages which
177           don't use any systemd functionality and are intended to be installed
178           in minimal containers without systemd present. This macro provides
179           ordering dependecies to ensure that if the package is installed in
180           the same rpm transaction as systemd, systemd will be installed before
181           the scriptlets for the package are executed, allowing unit presets
182           to be handled.
183
184           New macros %_systemdgeneratordir and %_systemdusergeneratordir have
185           been added to simplify packaging of generators.
186
187         * The os-release file gained VERSION_CODENAME field for the
188           distribution nickname (e.g. VERSION_CODENAME=woody).
189
190         * New udev property UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG=1
191           can be set to disable parsing of metadata and the creation
192           of persistent symlinks for that device.
193
194         * The v230 change to tag framebuffer devices (/dev/fb*) with "uaccess"
195           to make them available to logged-in users has been reverted.
196
197         * Much of the common code of the various systemd components is now
198           built into an internal shared library libsystemd-shared-231.so
199           (incorporating the systemd version number in the name, to be updated
200           with future releases) that the components link to. This should
201           decrease systemd footprint both in memory during runtime and on
202           disk. Note that the shared library is not for public use, and is
203           neither API not ABI stable, but is likely to change with every new
204           released update. Packagers need to make sure that binaries
205           linking to libsystemd-shared.so are updated in step with the
206           library.
207
208         * Configuration for "mkosi" is now part of the systemd
209           repository. mkosi is a tool to easily build legacy-free OS images,
210           and is available on github: https://github.com/systemd/mkosi. If
211           "mkosi" is invoked in the build tree a new raw OS image is generated
212           incorporating the systemd sources currently being worked on and a
213           clean, fresh distribution installation. The generated OS image may be
214           booted up with "systemd-nspawn -b -i", qemu-kvm or on any physcial
215           UEFI PC. This functionality is particularly useful to easily test
216           local changes made to systemd in a pristine, defined environment. See
217           HACKING for details.
218
219         Contributions from: Alban Crequy, Alessandro Puccetti, Alessio Igor
220         Bogani, Alexander Kuleshov, Alexander Kurtz, Alex Gaynor, Andika
221         Triwidada, Andreas Pokorny, Andreas Rammhold, Andrew Jeddeloh, Ansgar
222         Burchardt, Atrotors, Benjamin Drung, Brian Boylston, Christian Hesse,
223         Christian Rebischke, Daniele Medri, Daniel Mack, Dave Reisner, David
224         Herrmann, David Michael, Djalal Harouni, Douglas Christman, Elias
225         Probst, Evgeny Vereshchagin, Federico Mena Quintero, Felipe Sateler,
226         Franck Bui, Harald Hoyer, Ian Lee, Ivan Shapovalov, Jakub Wilk, Jan
227         Janssen, Jean-Sébastien Bour, John Paul Adrian Glaubitz, Jouke
228         Witteveen, Kai Ruhnau, kpengboy, Kyle Walker, Lénaïc Huard, Lennart
229         Poettering, Luca Bruno, Lukas Lösche, Lukáš Nykrýn, mahkoh, Marcel
230         Holtmann, Martin Pitt, Marty Plummer, Matthieu Codron, Max Prokhorov,
231         Michael Biebl, Michael Karcher, Michael Olbrich, Michał Bartoszkiewicz,
232         Michal Sekletar, Michal Soltys, Minkyung, Muhammet Kara, mulkieran,
233         Otto Wallenius, Pablo Lezaeta Reyes, Peter Hutterer, Ronny Chevalier,
234         Rusty Bird, Stef Walter, Susant Sahani, Tejun Heo, Thomas Blume, Thomas
235         Haller, Thomas H. P. Andersen, Tobias Jungel, Tom Gundersen, Tom Yan,
236         Topi Miettinen, Torstein Husebø, Valentin Vidić, Viktar Vaŭčkievič,
237         WaLyong Cho, Weng Xuetian, Werner Fink, Zbigniew Jędrzejewski-Szmek
238
239         — Berlin, 2016-07-25
240
241 CHANGES WITH 230:
242
243         * DNSSEC is now turned on by default in systemd-resolved (in
244           "allow-downgrade" mode), but may be turned off during compile time by
245           passing "--with-default-dnssec=no" to "configure" (and of course,
246           during runtime with DNSSEC= in resolved.conf). We recommend
247           downstreams to leave this on at least during development cycles and
248           report any issues with the DNSSEC logic upstream. We are very
249           interested in collecting feedback about the DNSSEC validator and its
250           limitations in the wild. Note however, that DNSSEC support is
251           probably nothing downstreams should turn on in stable distros just
252           yet, as it might create incompatibilities with a few DNS servers and
253           networks. We tried hard to make sure we downgrade to non-DNSSEC mode
254           automatically whenever we detect such incompatible setups, but there
255           might be systems we do not cover yet. Hence: please help us testing
256           the DNSSEC code, leave this on where you can, report back, but then
257           again don't consider turning this on in your stable, LTS or
258           production release just yet. (Note that you have to enable
259           nss-resolve in /etc/nsswitch.conf, to actually use systemd-resolved
260           and its DNSSEC mode for host name resolution from local
261           applications.)
262
263         * systemd-resolve conveniently resolves DANE records with the --tlsa
264           option and OPENPGPKEY records with the --openpgp option. It also
265           supports dumping raw DNS record data via the new --raw= switch.
266
267         * systemd-logind will now by default terminate user processes that are
268           part of the user session scope unit (session-XX.scope) when the user
269           logs out. This behavior is controlled by the KillUserProcesses=
270           setting in logind.conf, and the previous default of "no" is now
271           changed to "yes". This means that user sessions will be properly
272           cleaned up after, but additional steps are necessary to allow
273           intentionally long-running processes to survive logout.
274
275           While the user is logged in at least once, user@.service is running,
276           and any service that should survive the end of any individual login
277           session can be started at a user service or scope using systemd-run.
278           systemd-run(1) man page has been extended with an example which shows
279           how to run screen in a scope unit underneath user@.service. The same
280           command works for tmux.
281
282           After the user logs out of all sessions, user@.service will be
283           terminated too, by default, unless the user has "lingering" enabled.
284           To effectively allow users to run long-term tasks even if they are
285           logged out, lingering must be enabled for them. See loginctl(1) for
286           details. The default polkit policy was modified to allow users to
287           set lingering for themselves without authentication.
288
289           Previous defaults can be restored at compile time by the
290           --without-kill-user-processes option to "configure".
291
292         * systemd-logind gained new configuration settings SessionsMax= and
293           InhibitorsMax=, both with a default of 8192. It will not register new
294           user sessions or inhibitors above this limit.
295
296         * systemd-logind will now reload configuration on SIGHUP.
297
298         * The unified cgroup hierarchy added in Linux 4.5 is now supported.
299           Use systemd.unified_cgroup_hierarchy=1 on the kernel command line to
300           enable. Also, support for the "io" cgroup controller in the unified
301           hierarchy has been added, so that the "memory", "pids" and "io" are
302           now the controllers that are supported on the unified hierarchy.
303
304           WARNING: it is not possible to use previous systemd versions with
305           systemd.unified_cgroup_hierarchy=1 and the new kernel. Therefore it
306           is necessary to also update systemd in the initramfs if using the
307           unified hierarchy. An updated SELinux policy is also required.
308
309         * LLDP support has been extended, and both passive (receive-only) and
310           active (sender) modes are supported. Passive mode ("routers-only") is
311           enabled by default in systemd-networkd. Active LLDP mode is enabled
312           by default for containers on the internal network. The "networkctl
313           lldp" command may be used to list information gathered. "networkctl
314           status" will also show basic LLDP information on connected peers now.
315
316         * The IAID and DUID unique identifier sent in DHCP requests may now be
317           configured for the system and each .network file managed by
318           systemd-networkd using the DUIDType=, DUIDRawData=, IAID= options.
319
320         * systemd-networkd gained support for configuring proxy ARP support for
321           each interface, via the ProxyArp= setting in .network files. It also
322           gained support for configuring the multicast querier feature of
323           bridge devices, via the new MulticastQuerier= setting in .netdev
324           files. Similarly, snooping on the IGMP traffic can be controlled
325           via the new setting MulticastSnooping=.
326
327           A new setting PreferredLifetime= has been added for addresses
328           configured in .network file to configure the lifetime intended for an
329           address.
330
331           The systemd-networkd DHCP server gained the option EmitRouter=, which
332           defaults to yes, to configure whether the DHCP Option 3 (Router)
333           should be emitted.
334
335         * The testing tool /usr/lib/systemd/systemd-activate is renamed to
336           systemd-socket-activate and installed into /usr/bin. It is now fully
337           supported.
338
339         * systemd-journald now uses separate threads to flush changes to disk
340           when closing journal files, thus reducing impact of slow disk I/O on
341           logging performance.
342
343         * The sd-journal API gained two new calls
344           sd_journal_open_directory_fd() and sd_journal_open_files_fd() which
345           can be used to open journal files using file descriptors instead of
346           file or directory paths. sd_journal_open_container() has been
347           deprecated, sd_journal_open_directory_fd() should be used instead
348           with the flag SD_JOURNAL_OS_ROOT.
349
350         * journalctl learned a new output mode "-o short-unix" that outputs log
351           lines prefixed by their UNIX time (i.e. seconds since Jan 1st, 1970
352           UTC). It also gained support for a new --no-hostname setting to
353           suppress the hostname column in the family of "short" output modes.
354
355         * systemd-ask-password now optionally skips printing of the password to
356           stdout with --no-output which can be useful in scripts.
357
358         * Framebuffer devices (/dev/fb*) and 3D printers and scanners
359           (devices tagged with ID_MAKER_TOOL) are now tagged with
360           "uaccess" and are available to logged in users.
361
362         * The DeviceAllow= unit setting now supports specifiers (with "%").
363
364         * "systemctl show" gained a new --value switch, which allows print a
365           only the contents of a specific unit property, without also printing
366           the property's name. Similar support was added to "show*" verbs
367           of loginctl and machinectl that output "key=value" lists.
368
369         * A new unit type "generated" was added for files dynamically generated
370           by generator tools. Similarly, a new unit type "transient" is used
371           for unit files created using the runtime API. "systemctl enable" will
372           refuse to operate on such files.
373
374         * A new command "systemctl revert" has been added that may be used to
375           revert to the vendor version of a unit file, in case local changes
376           have been made by adding drop-ins or overriding the unit file.
377
378         * "machinectl clean" gained a new verb to automatically remove all or
379           just hidden container images.
380
381         * systemd-tmpfiles gained support for a new line type "e" for emptying
382           directories, if they exist, without creating them if they don't.
383
384         * systemd-nspawn gained support for automatically patching the UID/GIDs
385           of the owners and the ACLs of all files and directories in a
386           container tree to match the UID/GID user namespacing range selected
387           for the container invocation. This mode is enabled via the new
388           --private-user-chown switch. It also gained support for automatically
389           choosing a free, previously unused UID/GID range when starting a
390           container, via the new --private-users=pick setting (which implies
391           --private-user-chown). Together, these options for the first time
392           make user namespacing for nspawn containers fully automatic and thus
393           deployable. The systemd-nspawn@.service template unit file has been
394           changed to use this functionality by default.
395
396         * systemd-nspawn gained a new --network-zone= switch, that allows
397           creating ad-hoc virtual Ethernet links between multiple containers,
398           that only exist as long as at least one container referencing them is
399           running. This allows easy connecting of multiple containers with a
400           common link that implements an Ethernet broadcast domain. Each of
401           these network "zones" may be named relatively freely by the user, and
402           may be referenced by any number of containers, but each container may
403           only reference one of these "zones". On the lower level, this is
404           implemented by an automatically managed bridge network interface for
405           each zone, that is created when the first container referencing its
406           zone is created and removed when the last one referencing its zone
407           terminates.
408
409         * The default start timeout may now be configured on the kernel command
410           line via systemd.default_timeout_start_sec=. It was already
411           configurable via the DefaultTimeoutStartSec= option in
412           /etc/systemd/system.conf.
413
414         * Socket units gained a new TriggerLimitIntervalSec= and
415           TriggerLimitBurst= setting to configure a limit on the activation
416           rate of the socket unit.
417
418         * The LimitNICE= setting now optionally takes normal UNIX nice values
419           in addition to the raw integer limit value. If the specified
420           parameter is prefixed with "+" or "-" and is in the range -20..19 the
421           value is understood as UNIX nice value. If not prefixed like this it
422           is understood as raw RLIMIT_NICE limit.
423
424         * Note that the effect of the PrivateDevices= unit file setting changed
425           slightly with this release: the per-device /dev file system will be
426           mounted read-only from this version on, and will have "noexec"
427           set. This (minor) change of behavior might cause some (exceptional)
428           legacy software to break, when PrivateDevices=yes is set for its
429           service. Please leave PrivateDevices= off if you run into problems
430           with this.
431
432         * systemd-bootchart has been split out to a separate repository:
433           https://github.com/systemd/systemd-bootchart
434
435         * systemd-bus-proxyd has been removed, as kdbus is unlikely to still be
436           merged into the kernel in its current form.
437
438         * The compatibility libraries libsystemd-daemon.so,
439           libsystemd-journal.so, libsystemd-id128.so, and libsystemd-login.so
440           which have been deprecated since systemd-209 have been removed along
441           with the corresponding pkg-config files. All symbols provided by
442           those libraries are provided by libsystemd.so.
443
444         * The Capabilities= unit file setting has been removed (it is ignored
445           for backwards compatibility). AmbientCapabilities= and
446           CapabilityBoundingSet= should be used instead.
447
448         * A new special target has been added, initrd-root-device.target,
449           which creates a synchronization point for dependencies of the root
450           device in early userspace. Initramfs builders must ensure that this
451           target is now included in early userspace.
452
453         Contributions from: Alban Crequy, Alexander Kuleshov, Alexander Shopov,
454         Alex Crawford, Andre Klärner, Andrew Eikum, Beniamino Galvani, Benjamin
455         Robin, Biao Lu, Bjørnar Ness, Calvin Owens, Christian Hesse, Clemens
456         Gruber, Colin Guthrie, Daniel Drake, Daniele Medri, Daniel J Walsh,
457         Daniel Mack, Dan Nicholson, daurnimator, David Herrmann, David
458         R. Hedges, Elias Probst, Emmanuel Gil Peyrot, EMOziko, Evgeny
459         Vereshchagin, Federico, Felipe Sateler, Filipe Brandenburger, Franck
460         Bui, frankheckenbach, gdamjan, Georgia Brikis, Harald Hoyer, Hendrik
461         Brueckner, Hristo Venev, Iago López Galeiras, Ian Kelling, Ismo
462         Puustinen, Jakub Wilk, Jaroslav Škarvada, Jeff Huang, Joel Holdsworth,
463         John Paul Adrian Glaubitz, Jonathan Boulle, kayrus, Klearchos
464         Chaloulos, Kyle Russell, Lars Uebernickel, Lennart Poettering, Lubomir
465         Rintel, Lukáš Nykrýn, Mantas Mikulėnas, Marcel Holtmann, Martin Pitt,
466         Michael Biebl, michaelolbrich, Michał Bartoszkiewicz, Michal Koutný,
467         Michal Sekletar, Mike Frysinger, Mike Gilbert, Mingcong Bai, Ming Lin,
468         mulkieran, muzena, Nalin Dahyabhai, Naohiro Aota, Nathan McSween,
469         Nicolas Braud-Santoni, Patrik Flykt, Peter Hutterer, Peter Mattern,
470         Petr Lautrbach, Petros Angelatos, Piotr Drąg, Rabin Vincent, Robert
471         Węcławski, Ronny Chevalier, Samuel Tardieu, Stefan Saraev, Stefan
472         Schallenberg aka nafets227, Steven Siloti, Susant Sahani, Sylvain
473         Plantefève, Taylor Smock, Tejun Heo, Thomas Blume, Thomas Haller,
474         Thomas H. P. Andersen, Tobias Klauser, Tom Gundersen, topimiettinen,
475         Torstein Husebø, Umut Tezduyar Lindskog, Uwe Kleine-König, Victor Toso,
476         Vinay Kulkarni, Vito Caputo, Vittorio G (VittGam), Vladimir Panteleev,
477         Wieland Hoffmann, Wouter Verhelst, Yu Watanabe, Zbigniew
478         Jędrzejewski-Szmek
479
480         — Fairfax, 2016-05-21
481
482 CHANGES WITH 229:
483
484         * The systemd-resolved DNS resolver service has gained a substantial
485           set of new features, most prominently it may now act as a DNSSEC
486           validating stub resolver. DNSSEC mode is currently turned off by
487           default, but is expected to be turned on by default in one of the
488           next releases. For now, we invite everybody to test the DNSSEC logic
489           by setting DNSSEC=allow-downgrade in /etc/systemd/resolved.conf. The
490           service also gained a full set of D-Bus interfaces, including calls
491           to configure DNS and DNSSEC settings per link (for use by external
492           network management software). systemd-resolved and systemd-networkd
493           now distinguish between "search" and "routing" domains. The former
494           are used to qualify single-label names, the latter are used purely
495           for routing lookups within certain domains to specific links.
496           resolved now also synthesizes RRs for all entries from /etc/hosts.
497
498         * The systemd-resolve tool (which is a client utility for
499           systemd-resolved) has been improved considerably and is now fully
500           supported and documented. Hence it has moved from /usr/lib/systemd to
501           /usr/bin.
502
503         * /dev/disk/by-path/ symlink support has been (re-)added for virtio
504           devices.
505
506         * The coredump collection logic has been reworked: when a coredump is
507           collected it is now written to disk, compressed and processed
508           (including stacktrace extraction) from a new instantiated service
509           systemd-coredump@.service, instead of directly from the
510           /proc/sys/kernel/core_pattern hook we provide. This is beneficial as
511           processing large coredumps can take up a substantial amount of
512           resources and time, and this previously happened entirely outside of
513           systemd's service supervision. With the new logic the core_pattern
514           hook only does minimal metadata collection before passing off control
515           to the new instantiated service, which is configured with a time
516           limit, a nice level and other settings to minimize negative impact on
517           the rest of the system. Also note that the new logic will honour the
518           RLIMIT_CORE setting of the crashed process, which now allows users
519           and processes to turn off coredumping for their processes by setting
520           this limit.
521
522         * The RLIMIT_CORE resource limit now defaults to "unlimited" for PID 1
523           and all forked processes by default. Previously, PID 1 would leave
524           the setting at "0" for all processes, as set by the kernel. Note that
525           the resource limit traditionally has no effect on the generated
526           coredumps on the system if the /proc/sys/kernel/core_pattern hook
527           logic is used. Since the limit is now honoured (see above) its
528           default has been changed so that the coredumping logic is enabled by
529           default for all processes, while allowing specific opt-out.
530
531         * When the stacktrace is extracted from processes of system users, this
532           is now done as "systemd-coredump" user, in order to sandbox this
533           potentially security sensitive parsing operation. (Note that when
534           processing coredumps of normal users this is done under the user ID
535           of process that crashed, as before.) Packagers should take notice
536           that it is now necessary to create the "systemd-coredump" system user
537           and group at package installation time.
538
539         * The systemd-activate socket activation testing tool gained support
540           for SOCK_DGRAM and SOCK_SEQPACKET sockets using the new --datagram
541           and --seqpacket switches. It also has been extended to support both
542           new-style and inetd-style file descriptor passing. Use the new
543           --inetd switch to request inetd-style file descriptor passing.
544
545         * Most systemd tools now honor a new $SYSTEMD_COLORS environment
546           variable, which takes a boolean value. If set to false, ANSI color
547           output is disabled in the tools even when run on a terminal that
548           supports it.
549
550         * The VXLAN support in networkd now supports two new settings
551           DestinationPort= and PortRange=.
552
553         * A new systemd.machine_id= kernel command line switch has been added,
554           that may be used to set the machine ID in /etc/machine-id if it is
555           not initialized yet. This command line option has no effect if the
556           file is already initialized.
557
558         * systemd-nspawn gained a new --as-pid2 switch that invokes any
559           specified command line as PID 2 rather than PID 1 in the
560           container. In this mode PID 1 is a minimal stub init process that
561           implements the special POSIX and Linux semantics of PID 1 regarding
562           signal and child process management. Note that this stub init process
563           is implemented in nspawn itself and requires no support from the
564           container image. This new logic is useful to support running
565           arbitrary commands in the container, as normal processes are
566           generally not prepared to run as PID 1.
567
568         * systemd-nspawn gained a new --chdir= switch for setting the current
569           working directory for the process started in the container.
570
571         * "journalctl /dev/sda" will now output all kernel log messages for
572           specified device from the current boot, in addition to all devices
573           that are parents of it. This should make log output about devices
574           pretty useful, as long as kernel drivers attach enough metadata to
575           the log messages. (The usual SATA drivers do.)
576
577         * The sd-journal API gained two new calls
578           sd_journal_has_runtime_files() and sd_journal_has_persistent_files()
579           that report whether log data from /run or /var has been found.
580
581         * journalctl gained a new switch "--fields" that prints all journal
582           record field names currently in use in the journal.  This is backed
583           by two new sd-journal API calls sd_journal_enumerate_fields() and
584           sd_journal_restart_fields().
585
586         * Most configurable timeouts in systemd now expect an argument of
587           "infinity" to turn them off, instead of "0" as before. The semantics
588           from now on is that a timeout of "0" means "now", and "infinity"
589           means "never". To maintain backwards compatibility, "0" continues to
590           turn off previously existing timeout settings.
591
592         * "systemctl reload-or-try-restart" has been renamed to "systemctl
593           try-reload-or-restart" to clarify what it actually does: the "try"
594           logic applies to both reloading and restarting, not just restarting.
595           The old name continues to be accepted for compatibility.
596
597         * On boot-up, when PID 1 detects that the system clock is behind the
598           release date of the systemd version in use, the clock is now set
599           to the latter. Previously, this was already done in timesyncd, in order
600           to avoid running with clocks set to the various clock epochs such as
601           1902, 1938 or 1970. With this change the logic is now done in PID 1
602           in addition to timesyncd during early boot-up, so that it is enforced
603           before the first process is spawned by systemd. Note that the logic
604           in timesyncd remains, as it is more comprehensive and ensures
605           clock monotonicity by maintaining a persistent timestamp file in
606           /var. Since /var is generally not available in earliest boot or the
607           initrd, this part of the logic remains in timesyncd, and is not done
608           by PID 1.
609
610         * Support for tweaking details in net_cls.class_id through the
611           NetClass= configuration directive has been removed, as the kernel
612           people have decided to deprecate that controller in cgroup v2.
613           Userspace tools such as nftables are moving over to setting rules
614           that are specific to the full cgroup path of a task, which obsoletes
615           these controllers anyway. The NetClass= directive is kept around for
616           legacy compatibility reasons. For a more in-depth description of the
617           kernel change, please refer to the respective upstream commit:
618
619             https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bd1060a1d671
620
621         * A new service setting RuntimeMaxSec= has been added that may be used
622           to specify a maximum runtime for a service. If the timeout is hit, the
623           service is terminated and put into a failure state.
624
625         * A new service setting AmbientCapabilities= has been added. It allows
626           configuration of additional Linux process capabilities that are
627           passed to the activated processes. This is only available on very
628           recent kernels.
629
630         * The process resource limit settings in service units may now be used
631           to configure hard and soft limits individually.
632
633         * The various libsystemd APIs such as sd-bus or sd-event now publicly
634           expose support for gcc's __attribute__((cleanup())) C extension.
635           Specifically, for many object destructor functions alternative
636           versions have been added that have names suffixed with "p" and take a
637           pointer to a pointer to the object to destroy, instead of just a
638           pointer to the object itself. This is useful because these destructor
639           functions may be used directly as parameters to the cleanup
640           construct. Internally, systemd has been a heavy user of this GCC
641           extension for a long time, and with this change similar support is
642           now available to consumers of the library outside of systemd. Note
643           that by using this extension in your sources compatibility with old
644           and strictly ANSI compatible C compilers is lost. However, all gcc or
645           LLVM versions of recent years support this extension.
646
647         * Timer units gained support for a new setting RandomizedDelaySec= that
648           allows configuring some additional randomized delay to the configured
649           time. This is useful to spread out timer events to avoid load peaks in
650           clusters or larger setups.
651
652         * Calendar time specifications now support sub-second accuracy.
653
654         * Socket units now support listening on SCTP and UDP-lite protocol
655           sockets.
656
657         * The sd-event API now comes with a full set of man pages.
658
659         * Older versions of systemd contained experimental support for
660           compressing journal files and coredumps with the LZ4 compressor that
661           was not compatible with the lz4 binary (due to API limitations of the
662           lz4 library). This support has been removed; only support for files
663           compatible with the lz4 binary remains. This LZ4 logic is now
664           officially supported and no longer considered experimental.
665
666         * The dkr image import logic has been removed again from importd. dkr's
667           micro-services focus doesn't fit into the machine image focus of
668           importd, and quickly got out of date with the upstream dkr API.
669
670         * Creation of the /run/lock/lockdev/ directory was dropped from
671           tmpfiles.d/legacy.conf. Better locking mechanisms like flock() have
672           been available for many years. If you still need this, you need to
673           create your own tmpfiles.d config file with:
674
675                   d /run/lock/lockdev 0775 root lock -
676
677         Contributions from: Abdo Roig-Maranges, Alban Crequy, Aleksander
678         Adamowski, Alexander Kuleshov, Andreas Pokorny, Andrei Borzenkov,
679         Andrew Wilcox, Arthur Clement, Beniamino Galvani, Casey Schaufler,
680         Chris Atkinson, Chris Mayo, Christian Hesse, Damjan Georgievski, Dan
681         Dedrick, Daniele Medri, Daniel J Walsh, Daniel Korostil, Daniel Mack,
682         David Herrmann, Dimitri John Ledkov, Dominik Hannen, Douglas Christman,
683         Evgeny Vereshchagin, Filipe Brandenburger, Franck Bui, Gabor Kelemen,
684         Harald Hoyer, Hayden Walles, Helmut Grohne, Henrik Kaare Poulsen,
685         Hristo Venev, Hui Wang, Indrajit Raychaudhuri, Ismo Puustinen, Jakub
686         Wilk, Jan Alexander Steffens (heftig), Jan Engelhardt, Jan Synacek,
687         Joost Bremmer, Jorgen Schaefer, Karel Zak, Klearchos Chaloulos,
688         lc85446, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel
689         Holtmann, Martin Pitt, Michael Biebl, Michael Olbrich, Michael Scherer,
690         Michał Górny, Michal Sekletar, Nicolas Cornu, Nicolas Iooss, Nils
691         Carlson, nmartensen, nnz1024, Patrick Ohly, Peter Hutterer, Phillip Sz,
692         Ronny Chevalier, Samu Kallio, Shawn Landden, Stef Walter, Susant
693         Sahani, Sylvain Plantefève, Tadej Janež, Thomas Hindoe Paaboel
694         Andersen, Tom Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito
695         Caputo, WaLyong Cho, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
696
697         — Berlin, 2016-02-11
698
699 CHANGES WITH 228:
700
701         * A number of properties previously only settable in unit
702           files are now also available as properties to set when
703           creating transient units programmatically via the bus, as it
704           is exposed with systemd-run's --property=
705           setting. Specifically, these are: SyslogIdentifier=,
706           SyslogLevelPrefix=, TimerSlackNSec=, OOMScoreAdjust=,
707           EnvironmentFile=, ReadWriteDirectories=,
708           ReadOnlyDirectories=, InaccessibleDirectories=,
709           ProtectSystem=, ProtectHome=, RuntimeDirectory=.
710
711         * When creating transient services via the bus API it is now
712           possible to pass in a set of file descriptors to use as
713           STDIN/STDOUT/STDERR for the invoked process.
714
715         * Slice units may now be created transiently via the bus APIs,
716           similar to the way service and scope units may already be
717           created transiently.
718
719         * Wherever systemd expects a calendar timestamp specification
720           (like in journalctl's --since= and --until= switches) UTC
721           timestamps are now supported. Timestamps suffixed with "UTC"
722           are now considered to be in Universal Time Coordinated
723           instead of the local timezone. Also, timestamps may now
724           optionally be specified with sub-second accuracy. Both of
725           these additions also apply to recurring calendar event
726           specification, such as OnCalendar= in timer units.
727
728         * journalctl gained a new "--sync" switch that asks the
729           journal daemon to write all so far unwritten log messages to
730           disk and sync the files, before returning.
731
732         * systemd-tmpfiles learned two new line types "q" and "Q" that
733           operate like "v", but also set up a basic btrfs quota
734           hierarchy when used on a btrfs file system with quota
735           enabled.
736
737         * tmpfiles' "v", "q" and "Q" will now create a plain directory
738           instead of a subvolume (even on a btrfs file system) if the
739           root directory is a plain directory, and not a
740           subvolume. This should simplify things with certain chroot()
741           environments which are not aware of the concept of btrfs
742           subvolumes.
743
744         * systemd-detect-virt gained a new --chroot switch to detect
745           whether execution takes place in a chroot() environment.
746
747         * CPUAffinity= now takes CPU index ranges in addition to
748           individual indexes.
749
750         * The various memory-related resource limit settings (such as
751           LimitAS=) now understand the usual K, M, G, ... suffixes to
752           the base of 1024 (IEC). Similar, the time-related resource
753           limit settings understand the usual min, h, day, ...
754           suffixes now.
755
756         * There's a new system.conf setting DefaultTasksMax= to
757           control the default TasksMax= setting for services and
758           scopes running on the system. (TasksMax= is the primary
759           setting that exposes the "pids" cgroup controller on systemd
760           and was introduced in the previous systemd release.) The
761           setting now defaults to 512, which means services that are
762           not explicitly configured otherwise will only be able to
763           create 512 processes or threads at maximum, from this
764           version on. Note that this means that thread- or
765           process-heavy services might need to be reconfigured to set
766           TasksMax= to a higher value. It is sufficient to set
767           TasksMax= in these specific unit files to a higher value, or
768           even "infinity". Similar, there's now a logind.conf setting
769           UserTasksMax= that defaults to 4096 and limits the total
770           number of processes or tasks each user may own
771           concurrently. nspawn containers also have the TasksMax=
772           value set by default now, to 8192. Note that all of this
773           only has an effect if the "pids" cgroup controller is
774           enabled in the kernel. The general benefit of these changes
775           should be a more robust and safer system, that provides a
776           certain amount of per-service fork() bomb protection.
777
778         * systemd-nspawn gained the new --network-veth-extra= switch
779           to define additional and arbitrarily-named virtual Ethernet
780           links between the host and the container.
781
782         * A new service execution setting PassEnvironment= has been
783           added that allows importing select environment variables
784           from PID1's environment block into the environment block of
785           the service.
786
787         * Timer units gained support for a new RemainAfterElapse=
788           setting which takes a boolean argument. It defaults to on,
789           exposing behaviour unchanged to previous releases. If set to
790           off, timer units are unloaded after they elapsed if they
791           cannot elapse again. This is particularly useful for
792           transient timer units, which shall not stay around longer
793           than until they first elapse.
794
795         * systemd will now bump the net.unix.max_dgram_qlen to 512 by
796           default now (the kernel default is 16). This is beneficial
797           for avoiding blocking on AF_UNIX/SOCK_DGRAM sockets since it
798           allows substantially larger numbers of queued
799           datagrams. This should increase the capability of systemd to
800           parallelize boot-up, as logging and sd_notify() are unlikely
801           to stall execution anymore. If you need to change the value
802           from the new defaults, use the usual sysctl.d/ snippets.
803
804         * The compression framing format used by the journal or
805           coredump processing has changed to be in line with what the
806           official LZ4 tools generate. LZ4 compression support in
807           systemd was considered unsupported previously, as the format
808           was not compatible with the normal tools. With this release
809           this has changed now, and it is hence safe for downstream
810           distributions to turn it on. While not compressing as well
811           as the XZ, LZ4 is substantially faster, which makes
812           it a good default choice for the compression logic in the
813           journal and in coredump handling.
814
815         * Any reference to /etc/mtab has been dropped from
816           systemd. The file has been obsolete since a while, but
817           systemd refused to work on systems where it was incorrectly
818           set up (it should be a symlink or non-existent). Please make
819           sure to update to util-linux 2.27.1 or newer in conjunction
820           with this systemd release, which also drops any reference to
821           /etc/mtab. If you maintain a distribution make sure that no
822           software you package still references it, as this is a
823           likely source of bugs. There's also a glibc bug pending,
824           asking for removal of any reference to this obsolete file:
825
826           https://sourceware.org/bugzilla/show_bug.cgi?id=19108
827
828           Note that only util-linux versions built with
829           --enable-libmount-force-mountinfo are supported.
830
831         * Support for the ".snapshot" unit type has been removed. This
832           feature turned out to be little useful and little used, and
833           has now been removed from the core and from systemctl.
834
835         * The dependency types RequiresOverridable= and
836           RequisiteOverridable= have been removed from systemd. They
837           have been used only very sparingly to our knowledge and
838           other options that provide a similar effect (such as
839           systemctl --mode=ignore-dependencies) are much more useful
840           and commonly used. Moreover, they were only half-way
841           implemented as the option to control behaviour regarding
842           these dependencies was never added to systemctl. By removing
843           these dependency types the execution engine becomes a bit
844           simpler. Unit files that use these dependencies should be
845           changed to use the non-Overridable dependency types
846           instead. In fact, when parsing unit files with these
847           options, that's what systemd will automatically convert them
848           too, but it will also warn, asking users to fix the unit
849           files accordingly. Removal of these dependency types should
850           only affect a negligible number of unit files in the wild.
851
852         * Behaviour of networkd's IPForward= option changed
853           (again). It will no longer maintain a per-interface setting,
854           but propagate one way from interfaces where this is enabled
855           to the global kernel setting. The global setting will be
856           enabled when requested by a network that is set up, but
857           never be disabled again. This change was made to make sure
858           IPv4 and IPv6 behaviour regarding packet forwarding is
859           similar (as the Linux IPv6 stack does not support
860           per-interface control of this setting) and to minimize
861           surprises.
862
863         * In unit files the behaviour of %u, %U, %h, %s has
864           changed. These specifiers will now unconditionally resolve
865           to the various user database fields of the user that the
866           systemd instance is running as, instead of the user
867           configured in the specific unit via User=. Note that this
868           effectively doesn't change much, as resolving of these
869           specifiers was already turned off in the --system instance
870           of systemd, as we cannot do NSS lookups from PID 1. In the
871           --user instance of systemd these specifiers where correctly
872           resolved, but hardly made any sense, since the user instance
873           lacks privileges to do user switches anyway, and User= is
874           hence useless. Morever, even in the --user instance of
875           systemd behaviour was awkward as it would only take settings
876           from User= assignment placed before the specifier into
877           account. In order to unify and simplify the logic around
878           this the specifiers will now always resolve to the
879           credentials of the user invoking the manager (which in case
880           of PID 1 is the root user).
881
882         Contributions from: Andrew Jones, Beniamino Galvani, Boyuan
883         Yang, Daniel Machon, Daniel Mack, David Herrmann, David
884         Reynolds, David Strauss, Dongsu Park, Evgeny Vereshchagin,
885         Felipe Sateler, Filipe Brandenburger, Franck Bui, Hristo
886         Venev, Iago López Galeiras, Jan Engelhardt, Jan Janssen, Jan
887         Synacek, Jesus Ornelas Aguayo, Karel Zak, kayrus, Kay Sievers,
888         Lennart Poettering, Liu Yuan Yuan, Mantas Mikulėnas, Marcel
889         Holtmann, Marcin Bachry, Marcos Alano, Marcos Mello, Mark
890         Theunissen, Martin Pitt, Michael Marineau, Michael Olbrich,
891         Michal Schmidt, Michal Sekletar, Mirco Tischler, Nick Owens,
892         Nicolas Cornu, Patrik Flykt, Peter Hutterer, reverendhomer,
893         Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Shawn Landden,
894         Susant Sahani, Thomas Haller, Thomas Hindoe Paaboel Andersen,
895         Tom Gundersen, Torstein Husebø, Vito Caputo, Zbigniew
896         Jędrzejewski-Szmek
897
898         — Berlin, 2015-11-18
899
900 CHANGES WITH 227:
901
902         * systemd now depends on util-linux v2.27. More specifically,
903           the newly added mount monitor feature in libmount now
904           replaces systemd's former own implementation.
905
906         * libmount mandates /etc/mtab not to be regular file, and
907           systemd now enforces this condition at early boot.
908           /etc/mtab has been deprecated and warned about for a very
909           long time, so systems running systemd should already have
910           stopped having this file around as anything else than a
911           symlink to /proc/self/mounts.
912
913         * Support for the "pids" cgroup controller has been added.  It
914           allows accounting the number of tasks in a cgroup and
915           enforcing limits on it. This adds two new setting
916           TasksAccounting= and TasksMax= to each unit, as well as a
917           global option DefaultTasksAccounting=.
918
919         * Support for the "net_cls" cgroup controller has been added.
920           It allows assigning a net class ID to each task in the
921           cgroup, which can then be used in firewall rules and traffic
922           shaping configurations. Note that the kernel netfilter net
923           class code does not currently work reliably for ingress
924           packets on unestablished sockets.
925
926           This adds a new config directive called NetClass= to CGroup
927           enabled units. Allowed values are positive numbers for fixed
928           assignments and "auto" for picking a free value
929           automatically.
930
931         * 'systemctl is-system-running' now returns 'offline' if the
932           system is not booted with systemd. This command can now be
933           used as a substitute for 'systemd-notify --booted'.
934
935         * Watchdog timeouts have been increased to 3 minutes for all
936           in-tree service files. Apparently, disk IO issues are more
937           frequent than we hoped, and user reported >1 minute waiting
938           for disk IO.
939
940         * 'machine-id-commit' functionality has been merged into
941           'machine-id-setup --commit'. The separate binary has been
942           removed.
943
944         * The WorkingDirectory= directive in unit files may now be set
945           to the special value '~'. In this case, the working
946           directory is set to the home directory of the user
947           configured in User=.
948
949         * "machinectl shell" will now open the shell in the home
950           directory of the selected user by default.
951
952         * The CrashChVT= configuration file setting is renamed to
953           CrashChangeVT=, following our usual logic of not
954           abbreviating unnecessarily. The old directive is still
955           supported for compat reasons. Also, this directive now takes
956           an integer value between 1 and 63, or a boolean value. The
957           formerly supported '-1' value for disabling stays around for
958           compat reasons.
959
960         * The PrivateTmp=, PrivateDevices=, PrivateNetwork=,
961           NoNewPrivileges=, TTYPath=, WorkingDirectory= and
962           RootDirectory= properties can now be set for transient
963           units.
964
965         * The systemd-analyze tool gained a new "set-log-target" verb
966           to change the logging target the system manager logs to
967           dynamically during runtime. This is similar to how
968           "systemd-analyze set-log-level" already changes the log
969           level.
970
971         * In nspawn /sys is now mounted as tmpfs, with only a selected
972           set of subdirectories mounted in from the real sysfs. This
973           enhances security slightly, and is useful for ensuring user
974           namespaces work correctly.
975
976         * Support for USB FunctionFS activation has been added. This
977           allows implementation of USB gadget services that are
978           activated as soon as they are requested, so that they don't
979           have to run continuously, similar to classic socket
980           activation.
981
982         * The "systemctl exit" command now optionally takes an
983           additional parameter that sets the exit code to return from
984           the systemd manager when exiting. This is only relevant when
985           running the systemd user instance, or when running the
986           system instance in a container.
987
988         * sd-bus gained the new API calls sd_bus_path_encode_many()
989           and sd_bus_path_decode_many() that allow easy encoding and
990           decoding of multiple identifier strings inside a D-Bus
991           object path. Another new call sd_bus_default_flush_close()
992           has been added to flush and close per-thread default
993           connections.
994
995         * systemd-cgtop gained support for a -M/--machine= switch to
996           show the control groups within a certain container only.
997
998         * "systemctl kill" gained support for an optional --fail
999           switch. If specified the requested operation will fail of no
1000           processes have been killed, because the unit had no
1001           processes attached, or similar.
1002
1003         * A new systemd.crash_reboot=1 kernel command line option has
1004           been added that triggers a reboot after crashing. This can
1005           also be set through CrashReboot= in systemd.conf.
1006
1007         * The RuntimeDirectory= setting now understands unit
1008           specifiers like %i or %f.
1009
1010         * A new (still internal) libary API sd-ipv4acd has been added,
1011           that implements address conflict detection for IPv4. It's
1012           based on code from sd-ipv4ll, and will be useful for
1013           detecting DHCP address conflicts.
1014
1015         * File descriptors passed during socket activation may now be
1016           named. A new API sd_listen_fds_with_names() is added to
1017           access the names.  The default names may be overridden,
1018           either in the .socket file using the FileDescriptorName=
1019           parameter, or by passing FDNAME= when storing the file
1020           descriptors using sd_notify().
1021
1022         * systemd-networkd gained support for:
1023
1024             - Setting the IPv6 Router Advertisement settings via
1025               IPv6AcceptRouterAdvertisements= in .network files.
1026
1027             - Configuring the HelloTimeSec=, MaxAgeSec= and
1028               ForwardDelaySec= bridge parameters in .netdev files.
1029
1030             - Configuring PreferredSource= for static routes in
1031               .network files.
1032
1033         * The "ask-password" framework used to query for LUKS harddisk
1034           passwords or SSL passwords during boot gained support for
1035           caching passwords in the kernel keyring, if it is
1036           available. This makes sure that the user only has to type in
1037           a passphrase once if there are multiple objects to unlock
1038           with the same one. Previously, such password caching was
1039           available only when Plymouth was used; this moves the
1040           caching logic into the systemd codebase itself. The
1041           "systemd-ask-password" utility gained a new --keyname=
1042           switch to control which kernel keyring key to use for
1043           caching a password in. This functionality is also useful for
1044           enabling display managers such as gdm to automatically
1045           unlock the user's GNOME keyring if its passphrase, the
1046           user's password and the harddisk password are the same, if
1047           gdm-autologin is used.
1048
1049         * When downloading tar or raw images using "machinectl
1050           pull-tar" or "machinectl pull-raw", a matching ".nspawn"
1051           file is now also downloaded, if it is available and stored
1052           next to the image file.
1053
1054         * Units of type ".socket" gained a new boolean setting
1055           Writable= which is only useful in conjunction with
1056           ListenSpecial=. If true, enables opening the specified
1057           special file in O_RDWR mode rather than O_RDONLY mode.
1058
1059         * systemd-rfkill has been reworked to become a singleton
1060           service that is activated through /dev/rfkill on each rfkill
1061           state change and saves the settings to disk. This way,
1062           systemd-rfkill is now compatible with devices that exist
1063           only intermittendly, and even restores state if the previous
1064           system shutdown was abrupt rather than clean.
1065
1066         * The journal daemon gained support for vacuuming old journal
1067           files controlled by the number of files that shall remain,
1068           in addition to the already existing control by size and by
1069           date. This is useful as journal interleaving performance
1070           degrades with too many separate journal files, and allows
1071           putting an effective limit on them. The new setting defaults
1072           to 100, but this may be changed by setting SystemMaxFiles=
1073           and RuntimeMaxFiles= in journald.conf. Also, the
1074           "journalctl" tool gained the new --vacuum-files= switch to
1075           manually vacuum journal files to leave only the specified
1076           number of files in place.
1077
1078         * udev will now create /dev/disk/by-path links for ATA devices
1079           on kernels where that is supported.
1080
1081         * Galician, Serbian, Turkish and Korean translations were added.
1082
1083         Contributions from: Aaro Koskinen, Alban Crequy, Beniamino
1084         Galvani, Benjamin Robin, Branislav Blaskovic, Chen-Han Hsiao
1085         (Stanley), Daniel Buch, Daniel Machon, Daniel Mack, David
1086         Herrmann, David Milburn, doubleodoug, Evgeny Vereshchagin,
1087         Felipe Franciosi, Filipe Brandenburger, Fran Dieguez, Gabriel
1088         de Perthuis, Georg Müller, Hans de Goede, Hendrik Brueckner,
1089         Ivan Shapovalov, Jacob Keller, Jan Engelhardt, Jan Janssen,
1090         Jan Synacek, Jens Kuske, Karel Zak, Kay Sievers, Krzesimir
1091         Nowak, Krzysztof Kotlenga, Lars Uebernickel, Lennart
1092         Poettering, Lukas Nykryn, Łukasz Stelmach, Maciej Wereski,
1093         Marcel Holtmann, Marius Thesing, Martin Pitt, Michael Biebl,
1094         Michael Gebetsroither, Michal Schmidt, Michal Sekletar, Mike
1095         Gilbert, Muhammet Kara, nazgul77, Nicolas Cornu, NoXPhasma,
1096         Olof Johansson, Patrik Flykt, Pawel Szewczyk, reverendhomer,
1097         Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Susant Sahani,
1098         Sylvain Plantefève, Thomas Haller, Thomas Hindoe Paaboel
1099         Andersen, Tom Gundersen, Tom Lyon, Viktar Vauchkevich,
1100         Zbigniew Jędrzejewski-Szmek, Марко М. Костић
1101
1102         — Berlin, 2015-10-07
1103
1104 CHANGES WITH 226:
1105
1106         * The DHCP implementation of systemd-networkd gained a set of
1107           new features:
1108
1109           - The DHCP server now supports emitting DNS and NTP
1110             information. It may be enabled and configured via
1111             EmitDNS=, DNS=, EmitNTP=, and NTP=. If transmission of DNS
1112             and NTP information is enabled, but no servers are
1113             configured, the corresponding uplink information (if there
1114             is any) is propagated.
1115
1116           - Server and client now support transmission and reception
1117             of timezone information. It can be configured via the
1118             newly introduced network options UseTimezone=,
1119             EmitTimezone=, and Timezone=.  Transmission of timezone
1120             information is enabled between host and containers by
1121             default now: the container will change its local timezone
1122             to what the host has set.
1123
1124           - Lease timeouts can now be configured via
1125             MaxLeaseTimeSec= and DefaultLeaseTimeSec=.
1126
1127           - The DHCP server improved on the stability of
1128             leases. Clients are more likely to get the same lease
1129             information back, even if the server loses state.
1130
1131           - The DHCP server supports two new configuration options to
1132             control the lease address pool metrics, PoolOffset= and
1133             PoolSize=.
1134
1135         * The encapsulation limit of tunnels in systemd-networkd may
1136           now be configured via 'EncapsulationLimit='. It allows
1137           modifying the maximum additional levels of encapsulation
1138           that are permitted to be prepended to a packet.
1139
1140         * systemd now supports the concept of user buses replacing
1141           session buses, if used with dbus-1.10 (and enabled via dbus
1142           --enable-user-session). It previously only supported this on
1143           kdbus-enabled systems, and this release expands this to
1144           'dbus-daemon' systems.
1145
1146         * systemd-networkd now supports predictable interface names
1147           for virtio devices.
1148
1149         * systemd now optionally supports the new Linux kernel
1150           "unified" control group hierarchy. If enabled via the kernel
1151           command-line option 'systemd.unified_cgroup_hierarchy=1',
1152           systemd will try to mount the unified cgroup hierarchy
1153           directly on /sys/fs/cgroup. If not enabled, or not
1154           available, systemd will fall back to the legacy cgroup
1155           hierarchy setup, as before. Host system and containers can
1156           mix and match legacy and unified hierarchies as they
1157           wish. nspawn understands the $UNIFIED_CGROUP_HIERARCHY
1158           environment variable to individually select the hierarchy to
1159           use for executed containers. By default, nspawn will use the
1160           unified hierarchy for the containers if the host uses the
1161           unified hierarchy, and the legacy hierarchy otherwise.
1162           Please note that at this point the unified hierarchy is an
1163           experimental kernel feature and is likely to change in one
1164           of the next kernel releases.  Therefore, it should not be
1165           enabled by default in downstream distributions yet. The
1166           minimum required kernel version for the unified hierarchy to
1167           work is 4.2. Note that when the unified hierarchy is used
1168           for the first time delegated access to controllers is
1169           safe. Because of this systemd-nspawn containers will get
1170           access to controllers now, as will systemd user
1171           sessions. This means containers and user sessions may now
1172           manage their own resources, partitioning up what the system
1173           grants them.
1174
1175         * A new special scope unit "init.scope" has been introduced
1176           that encapsulates PID 1 of the system. It may be used to
1177           determine resource usage and enforce resource limits on PID
1178           1 itself. PID 1 hence moved out of the root of the control
1179           group tree.
1180
1181         * The cgtop tool gained support for filtering out kernel
1182           threads when counting tasks in a control group. Also, the
1183           count of processes is now recursively summed up by
1184           default. Two options -k and --recursive= have been added to
1185           revert to old behaviour. The tool has also been updated to
1186           work correctly in containers now.
1187
1188         * systemd-nspawn's --bind= and --bind-ro= options have been
1189           extended to allow creation of non-recursive bind mounts.
1190
1191         * libsystemd gained two new calls sd_pid_get_cgroup() and
1192           sd_peer_get_cgroup() which return the control group path of
1193           a process or peer of a connected AF_UNIX socket. This
1194           function call is particularly useful when implementing
1195           delegated subtrees support in the control group hierarchy.
1196
1197         * The "sd-event" event loop API of libsystemd now supports
1198           correct dequeuing of real-time signals, without losing
1199           signal events.
1200
1201         * When systemd requests a PolicyKit decision when managing
1202           units it will now add additional fields to the request,
1203           including unit name and desired operation. This enables more
1204           powerful PolicyKit policies, that make decisions depending
1205           on these parameters.
1206
1207         * nspawn learnt support for .nspawn settings files, that may
1208           accompany the image files or directories of containers, and
1209           may contain additional settings for the container. This is
1210           an alternative to configuring container parameters via the
1211           nspawn command line.
1212
1213         Contributions from: Cristian Rodríguez, Daniel Mack, David
1214         Herrmann, Eugene Yakubovich, Evgeny Vereshchagin, Filipe
1215         Brandenburger, Hans de Goede, Jan Alexander Steffens, Jan
1216         Synacek, Kay Sievers, Lennart Poettering, Mangix, Marcel
1217         Holtmann, Martin Pitt, Michael Biebl, Michael Chapman, Michal
1218         Sekletar, Peter Hutterer, Piotr Drąg, reverendhomer, Robin
1219         Hack, Susant Sahani, Sylvain Pasche, Thomas Hindoe Paaboel
1220         Andersen, Tom Gundersen, Torstein Husebø
1221
1222         — Berlin, 2015-09-08
1223
1224 CHANGES WITH 225:
1225
1226         * machinectl gained a new verb 'shell' which opens a fresh
1227           shell on the target container or the host. It is similar to
1228           the existing 'login' command of machinectl, but spawns the
1229           shell directly without prompting for username or
1230           password. The pseudo machine '.host' now refers to the local
1231           host and is used by default. Hence, 'machinectl shell' can
1232           be used as replacement for 'su -' which spawns a session as
1233           a fresh systemd unit in a way that is fully isolated from
1234           the originating session.
1235
1236         * systemd-networkd learned to cope with private-zone DHCP
1237           options and allows other programs to query the values.
1238
1239         * SELinux access control when enabling/disabling units is no
1240           longer enforced with this release. The previous
1241           implementation was incorrect, and a new corrected
1242           implementation is not yet available. As unit file operations
1243           are still protected via PolicyKit and D-Bus policy this is
1244           not a security problem. Yet, distributions which care about
1245           optimal SELinux support should probably not stabilize on
1246           this release.
1247
1248         * sd-bus gained support for matches of type "arg0has=", that
1249           test for membership of strings in string arrays sent in bus
1250           messages.
1251
1252         * systemd-resolved now dumps the contents of its DNS and LLMNR
1253           caches to the logs on reception of the SIGUSR1 signal. This
1254           is useful to debug DNS behaviour.
1255
1256         * The coredumpctl tool gained a new --directory= option to
1257           operate on journal files in a specific directory.
1258
1259         * "systemctl reboot" and related commands gained a new
1260           "--message=" option which may be used to set a free-text
1261           wall message when shutting down or rebooting the
1262           system. This message is also logged, which is useful for
1263           figuring out the reason for a reboot or shutdown a
1264           posteriori.
1265
1266         * The "systemd-resolve-host" tool's -i switch now takes
1267           network interface numbers as alternative to interface names.
1268
1269         * A new unit file setting for services has been introduced:
1270           UtmpMode= allows configuration of how precisely systemd
1271           handles utmp and wtmp entries for the service if this is
1272           enabled. This allows writing services that appear similar to
1273           user sessions in the output of the "w", "who", "last" and
1274           "lastlog" tools.
1275
1276         * systemd-resolved will now locally synthesize DNS resource
1277           records for the "localhost" and "gateway" domains as well as
1278           the local hostname. This should ensure that clients querying
1279           RRs via resolved will get similar results as those going via
1280           NSS, if nss-myhostname is enabled.
1281
1282         Contributions from: Alastair Hughes, Alex Crawford, Daniel
1283         Mack, David Herrmann, Dimitri John Ledkov, Eric Kostrowski,
1284         Evgeny Vereshchagin, Felipe Sateler, HATAYAMA Daisuke, Jan
1285         Pokorný, Jan Synacek, Johnny Robeson, Karel Zak, Kay Sievers,
1286         Kefeng Wang, Lennart Poettering, Major Hayden, Marcel
1287         Holtmann, Markus Elfring, Martin Mikkelsen, Martin Pitt, Matt
1288         Turner, Maxim Mikityanskiy, Michael Biebl, Namhyung Kim,
1289         Nicolas Cornu, Owen W. Taylor, Patrik Flykt, Peter Hutterer,
1290         reverendhomer, Richard Maw, Ronny Chevalier, Seth Jennings,
1291         Stef Walter, Susant Sahani, Thomas Blume, Thomas Hindoe
1292         Paaboel Andersen, Thomas Meyer, Tom Gundersen, Vincent Batts,
1293         WaLyong Cho, Zbigniew Jędrzejewski-Szmek
1294
1295         — Berlin, 2015-08-27
1296
1297 CHANGES WITH 224:
1298
1299         * The systemd-efi-boot-generator functionality was merged into
1300           systemd-gpt-auto-generator.
1301
1302         * systemd-networkd now supports Group Policy for vxlan
1303           devices. It can be enabled via the new boolean configuration
1304           option called 'GroupPolicyExtension='.
1305
1306         Contributions from: Andreas Kempf, Christian Hesse, Daniel Mack, David
1307         Herrmann, Herman Fries, Johannes Nixdorf, Kay Sievers, Lennart
1308         Poettering, Peter Hutterer, Susant Sahani, Tom Gundersen
1309
1310         — Berlin, 2015-07-31
1311
1312 CHANGES WITH 223:
1313
1314         * The python-systemd code has been removed from the systemd repository.
1315           A new repository has been created which accommodates the code from
1316           now on, and we kindly ask distributions to create a separate package
1317           for this: https://github.com/systemd/python-systemd
1318
1319         * The systemd daemon will now reload its main configuration
1320           (/etc/systemd/system.conf) on daemon-reload.
1321
1322         * sd-dhcp now exposes vendor specific extensions via
1323           sd_dhcp_lease_get_vendor_specific().
1324
1325         * systemd-networkd gained a number of new configuration options.
1326
1327           - A new boolean configuration option for TAP devices called
1328             'VNetHeader='. If set, the IFF_VNET_HDR flag is set for the
1329             device, thus allowing to send and receive GSO packets.
1330
1331           - A new tunnel configuration option called 'CopyDSCP='.
1332             If enabled, the DSCP field of ip6 tunnels is copied into the
1333             decapsulated packet.
1334
1335           - A set of boolean bridge configuration options were added.
1336             'UseBPDU=', 'HairPin=', 'FastLeave=', 'AllowPortToBeRoot=',
1337             and 'UnicastFlood=' are now parsed by networkd and applied to the
1338             respective bridge link device via the respective IFLA_BRPORT_*
1339             netlink attribute.
1340
1341           - A new string configuration option to override the hostname sent
1342             to a DHCP server, called 'Hostname='. If set and 'SendHostname='
1343             is true, networkd will use the configured hostname instead of the
1344             system hostname when sending DHCP requests.
1345
1346           - A new tunnel configuration option called 'IPv6FlowLabel='. If set,
1347             networkd will configure the IPv6 flow-label of the tunnel device
1348             according to RFC2460.
1349
1350           - The 'macvtap' virtual network devices are now supported, similar to
1351             the already supported 'macvlan' devices.
1352
1353         * systemd-resolved now implements RFC5452 to improve resilience against
1354           cache poisoning. Additionally, source port randomization is enabled
1355           by default to further protect against DNS spoofing attacks.
1356
1357         * nss-mymachines now supports translating UIDs and GIDs of running
1358           containers with user-namespaces enabled. If a container 'foo'
1359           translates a host uid 'UID' to the container uid 'TUID', then
1360           nss-mymachines will also map uid 'UID' to/from username 'vu-foo-TUID'
1361           (with 'foo' and 'TUID' replaced accordingly). Similarly, groups are
1362           mapped as 'vg-foo-TGID'.
1363
1364         Contributions from: Beniamino Galvani, cee1, Christian Hesse, Daniel
1365         Buch, Daniel Mack, daurnimator, David Herrmann, Dimitri John Ledkov,
1366         HATAYAMA Daisuke, Ivan Shapovalov, Jan Alexander Steffens (heftig),
1367         Johan Ouwerkerk, Jose Carlos Venegas Munoz, Karel Zak, Kay Sievers,
1368         Lennart Poettering, Lidong Zhong, Martin Pitt, Michael Biebl, Michael
1369         Olbrich, Michal Schmidt, Michal Sekletar, Mike Gilbert, Namhyung Kim,
1370         Nick Owens, Peter Hutterer, Richard Maw, Steven Allen, Sungbae Yoo,
1371         Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel Andersen, Tom
1372         Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito Caputo,
1373         Vivenzio Pagliari, Zbigniew Jędrzejewski-Szmek
1374
1375         — Berlin, 2015-07-29
1376
1377 CHANGES WITH 222:
1378
1379         * udev does not longer support the WAIT_FOR_SYSFS= key in udev rules.
1380           There are no known issues with current sysfs, and udev does not need
1381           or should be used to work around such bugs.
1382
1383         * udev does no longer enable USB HID power management. Several reports
1384           indicate, that some devices cannot handle that setting.
1385
1386         * The udev accelerometer helper was removed. The functionality
1387           is now fully included in iio-sensor-proxy. But this means,
1388           older iio-sensor-proxy versions will no longer provide
1389           accelerometer/orientation data with this systemd version.
1390           Please upgrade iio-sensor-proxy to version 1.0.
1391
1392         * networkd gained a new configuration option IPv6PrivacyExtensions=
1393           which enables IPv6 privacy extensions (RFC 4941, "Privacy Extensions
1394           for Stateless Address") on selected networks.
1395
1396         * For the sake of fewer build-time dependencies and less code in the
1397           main repository, the python bindings are about to be removed in the
1398           next release. A new repository has been created which accommodates
1399           the code from now on, and we kindly ask distributions to create a
1400           separate package for this. The removal will take place in v223.
1401
1402             https://github.com/systemd/python-systemd
1403
1404         Contributions from: Abdo Roig-Maranges, Andrew Eikum, Bastien Nocera,
1405         Cédric Delmas, Christian Hesse, Christos Trochalakis, Daniel Mack,
1406         daurnimator, David Herrmann, Dimitri John Ledkov, Eric Biggers, Eric
1407         Cook, Felipe Sateler, Geert Jansen, Gerd Hoffmann, Gianpaolo Macario,
1408         Greg Kroah-Hartman, Iago López Galeiras, Jan Alexander Steffens
1409         (heftig), Jan Engelhardt, Jay Strict, Kay Sievers, Lennart Poettering,
1410         Markus Knetschke, Martin Pitt, Michael Biebl, Michael Marineau, Michal
1411         Sekletar, Miguel Bernal Marin, Peter Hutterer, Richard Maw, rinrinne,
1412         Susant Sahani, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
1413         Husebø, Vedran Miletić, WaLyong Cho, Zbigniew Jędrzejewski-Szmek
1414
1415         — Berlin, 2015-07-07
1416
1417 CHANGES WITH 221:
1418
1419         * The sd-bus.h and sd-event.h APIs have now been declared
1420           stable and have been added to the official interface of
1421           libsystemd.so. sd-bus implements an alternative D-Bus client
1422           library, that is relatively easy to use, very efficient and
1423           supports both classic D-Bus as well as kdbus as transport
1424           backend. sd-event is a generic event loop abstraction that
1425           is built around Linux epoll, but adds features such as event
1426           prioritization or efficient timer handling. Both APIs are good
1427           choices for C programs looking for a bus and/or event loop
1428           implementation that is minimal and does not have to be
1429           portable to other kernels.
1430
1431         * kdbus support is no longer compile-time optional. It is now
1432           always built-in. However, it can still be disabled at
1433           runtime using the kdbus=0 kernel command line setting, and
1434           that setting may be changed to default to off, by specifying
1435           --disable-kdbus at build-time. Note though that the kernel
1436           command line setting has no effect if the kdbus.ko kernel
1437           module is not installed, in which case kdbus is (obviously)
1438           also disabled. We encourage all downstream distributions to
1439           begin testing kdbus by adding it to the kernel images in the
1440           development distributions, and leaving kdbus support in
1441           systemd enabled.
1442
1443         * The minimal required util-linux version has been bumped to
1444           2.26.
1445
1446         * Support for chkconfig (--enable-chkconfig) was removed in
1447           favor of calling an abstraction tool
1448           /lib/systemd/systemd-sysv-install. This needs to be
1449           implemented for your distribution. See "SYSV INIT.D SCRIPTS"
1450           in README for details.
1451
1452         * If there's a systemd unit and a SysV init script for the
1453           same service name, and the user executes "systemctl enable"
1454           for it (or a related call), then this will now enable both
1455           (or execute the related operation on both), not just the
1456           unit.
1457
1458         * The libudev API documentation has been converted from gtkdoc
1459           into man pages.
1460
1461         * gudev has been removed from the systemd tree, it is now an
1462           external project.
1463
1464         * The systemd-cgtop tool learnt a new --raw switch to generate
1465           "raw" (machine parsable) output.
1466
1467         * networkd's IPForwarding= .network file setting learnt the
1468           new setting "kernel", which ensures that networkd does not
1469           change the IP forwarding sysctl from the default kernel
1470           state.
1471
1472         * The systemd-logind bus API now exposes a new boolean
1473           property "Docked" that reports whether logind considers the
1474           system "docked", i.e. connected to a docking station or not.
1475
1476         Contributions from: Alex Crawford, Andreas Pokorny, Andrei
1477         Borzenkov, Charles Duffy, Colin Guthrie, Cristian Rodríguez,
1478         Daniele Medri, Daniel Hahler, Daniel Mack, David Herrmann,
1479         David Mohr, Dimitri John Ledkov, Djalal Harouni, dslul, Ed
1480         Swierk, Eric Cook, Filipe Brandenburger, Gianpaolo Macario,
1481         Harald Hoyer, Iago López Galeiras, Igor Vuk, Jan Synacek,
1482         Jason Pleau, Jason S. McMullan, Jean Delvare, Jeff Huang,
1483         Jonathan Boulle, Karel Zak, Kay Sievers, kloun, Lennart
1484         Poettering, Marc-Antoine Perennou, Marcel Holtmann, Mario
1485         Limonciello, Martin Pitt, Michael Biebl, Michael Olbrich,
1486         Michal Schmidt, Mike Gilbert, Nick Owens, Pablo Lezaeta Reyes,
1487         Patrick Donnelly, Pavel Odvody, Peter Hutterer, Philip
1488         Withnall, Ronny Chevalier, Simon McVittie, Susant Sahani,
1489         Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
1490         Husebø, Umut Tezduyar Lindskog, Viktar Vauchkevich, Werner
1491         Fink, Zbigniew Jędrzejewski-Szmek
1492
1493         — Berlin, 2015-06-19
1494
1495 CHANGES WITH 220:
1496
1497         * The gudev library has been extracted into a separate repository
1498           available at: https://git.gnome.org/browse/libgudev/
1499           It is now managed as part of the Gnome project. Distributions
1500           are recommended to pass --disable-gudev to systemd and use
1501           gudev from the Gnome project instead. gudev is still included
1502           in systemd, for now. It will be removed soon, though. Please
1503           also see the announcement-thread on systemd-devel:
1504           http://lists.freedesktop.org/archives/systemd-devel/2015-May/032070.html
1505
1506         * systemd now exposes a CPUUsageNSec= property for each
1507           service unit on the bus, that contains the overall consumed
1508           CPU time of a service (the sum of what each process of the
1509           service consumed). This value is only available if
1510           CPUAccounting= is turned on for a service, and is then shown
1511           in the "systemctl status" output.
1512
1513         * Support for configuring alternative mappings of the old SysV
1514           runlevels to systemd targets has been removed. They are now
1515           hardcoded in a way that runlevels 2, 3, 4 all map to
1516           multi-user.target and 5 to graphical.target (which
1517           previously was already the default behaviour).
1518
1519         * The auto-mounter logic gained support for mount point
1520           expiry, using a new TimeoutIdleSec= setting in .automount
1521           units. (Also available as x-systemd.idle-timeout= in /etc/fstab).
1522
1523         * The EFI System Partition (ESP) as mounted to /boot by
1524           systemd-efi-boot-generator will now be unmounted
1525           automatically after 2 minutes of not being used. This should
1526           minimize the risk of ESP corruptions.
1527
1528         * New /etc/fstab options x-systemd.requires= and
1529           x-systemd.requires-mounts-for= are now supported to express
1530           additional dependencies for mounts. This is useful for
1531           journalling file systems that support external journal
1532           devices or overlay file systems that require underlying file
1533           systems to be mounted.
1534
1535         * systemd does not support direct live-upgrades (via systemctl
1536           daemon-reexec) from versions older than v44 anymore. As no
1537           distribution we are aware of shipped such old versions in a
1538           stable release this should not be problematic.
1539
1540         * When systemd forks off a new per-connection service instance
1541           it will now set the $REMOTE_ADDR environment variable to the
1542           remote IP address, and $REMOTE_PORT environment variable to
1543           the remote IP port. This behaviour is similar to the
1544           corresponding environment variables defined by CGI.
1545
1546         * systemd-networkd gained support for uplink failure
1547           detection. The BindCarrier= option allows binding interface
1548           configuration dynamically to the link sense of other
1549           interfaces. This is useful to achieve behaviour like in
1550           network switches.
1551
1552         * systemd-networkd gained support for configuring the DHCP
1553           client identifier to use when requesting leases.
1554
1555         * systemd-networkd now has a per-network UseNTP= option to
1556           configure whether NTP server information acquired via DHCP
1557           is passed on to services like systemd-timesyncd.
1558
1559         * systemd-networkd gained support for vti6 tunnels.
1560
1561         * Note that systemd-networkd manages the sysctl variable
1562           /proc/sys/net/ipv[46]/conf/*/forwarding for each interface
1563           it is configured for since v219. The variable controls IP
1564           forwarding, and is a per-interface alternative to the global
1565           /proc/sys/net/ipv[46]/ip_forward. This setting is
1566           configurable in the IPForward= option, which defaults to
1567           "no". This means if networkd is used for an interface it is
1568           no longer sufficient to set the global sysctl option to turn
1569           on IP forwarding! Instead, the .network file option
1570           IPForward= needs to be turned on! Note that the
1571           implementation of this behaviour was broken in v219 and has
1572           been fixed in v220.
1573
1574         * Many bonding and vxlan options are now configurable in
1575           systemd-networkd.
1576
1577         * systemd-nspawn gained a new --property= setting to set unit
1578           properties for the container scope. This is useful for
1579           setting resource parameters (e.g "CPUShares=500") on
1580           containers started from the command line.
1581
1582         * systemd-nspawn gained a new --private-users= switch to make
1583           use of user namespacing available on recent Linux kernels.
1584
1585         * systemd-nspawn may now be called as part of a shell pipeline
1586           in which case the pipes used for stdin and stdout are passed
1587           directly to the process invoked in the container, without
1588           indirection via a pseudo tty.
1589
1590         * systemd-nspawn gained a new switch to control the UNIX
1591           signal to use when killing the init process of the container
1592           when shutting down.
1593
1594         * systemd-nspawn gained a new --overlay= switch for mounting
1595           overlay file systems into the container using the new kernel
1596           overlayfs support.
1597
1598         * When a container image is imported via systemd-importd and
1599           the host file system is not btrfs, a loopback block device
1600           file is created in /var/lib/machines.raw with a btrfs file
1601           system inside. It is then mounted to /var/lib/machines to
1602           enable btrfs features for container management. The loopback
1603           file and btrfs file system is grown as needed when container
1604           images are imported via systemd-importd.
1605
1606         * systemd-machined/systemd-importd gained support for btrfs
1607           quota, to enforce container disk space limits on disk. This
1608           is exposed in "machinectl set-limit".
1609
1610         * systemd-importd now can import containers from local .tar,
1611           .raw and .qcow2 images, and export them to .tar and .raw. It
1612           can also import dkr v2 images now from the network (on top
1613           of v1 as before).
1614
1615         * systemd-importd gained support for verifying downloaded
1616           images with gpg2 (previously only gpg1 was supported).
1617
1618         * systemd-machined, systemd-logind, systemd: most bus calls
1619           are now accessible to unprivileged processes via
1620           PolicyKit. Also, systemd-logind will now allow users to kill
1621           their own sessions without further privileges or
1622           authorization.
1623
1624         * systemd-shutdownd has been removed. This service was
1625           previously responsible for implementing scheduled shutdowns
1626           as exposed in /usr/bin/shutdown's time parameter. This
1627           functionality has now been moved into systemd-logind and is
1628           accessible via a bus interface.
1629
1630         * "systemctl reboot" gained a new switch --firmware-setup that
1631           can be used to reboot into the EFI firmware setup, if that
1632           is available. systemd-logind now exposes an API on the bus
1633           to trigger such reboots, in case graphical desktop UIs want
1634           to cover this functionality.
1635
1636         * "systemctl enable", "systemctl disable" and "systemctl mask"
1637           now support a new "--now" switch. If specified the units
1638           that are enabled will also be started, and the ones
1639           disabled/masked also stopped.
1640
1641         * The Gummiboot EFI boot loader tool has been merged into
1642           systemd, and renamed to "systemd-boot". The bootctl tool has been
1643           updated to support systemd-boot.
1644
1645         * An EFI kernel stub has been added that may be used to create
1646           kernel EFI binaries that contain not only the actual kernel,
1647           but also an initrd, boot splash, command line and OS release
1648           information. This combined binary can then be signed as a
1649           single image, so that the firmware can verify it all in one
1650           step. systemd-boot has special support for EFI binaries created
1651           like this and can extract OS release information from them
1652           and show them in the boot menu. This functionality is useful
1653           to implement cryptographically verified boot schemes.
1654
1655         * Optional support has been added to systemd-fsck to pass
1656           fsck's progress report to an AF_UNIX socket in the file
1657           system.
1658
1659         * udev will no longer create device symlinks for all block
1660           devices by default. A blacklist for excluding special block
1661           devices from this logic has been turned into a whitelist
1662           that requires picking block devices explicitly that require
1663           device symlinks.
1664
1665         * A new (currently still internal) API sd-device.h has been
1666           added to libsystemd. This modernized API is supposed to
1667           replace libudev eventually. In fact, already much of libudev
1668           is now just a wrapper around sd-device.h.
1669
1670         * A new hwdb database for storing metadata about pointing
1671           stick devices has been added.
1672
1673         * systemd-tmpfiles gained support for setting file attributes
1674           similar to the "chattr" tool with new 'h' and 'H' lines.
1675
1676         * systemd-journald will no longer unconditionally set the
1677           btrfs NOCOW flag on new journal files. This is instead done
1678           with tmpfiles snippet using the new 'h' line type. This
1679           allows easy disabling of this logic, by masking the
1680           journal-nocow.conf tmpfiles file.
1681
1682         * systemd-journald will now translate audit message types to
1683           human readable identifiers when writing them to the
1684           journal. This should improve readability of audit messages.
1685
1686         * The LUKS logic gained support for the offset= and skip=
1687           options in /etc/crypttab, as previously implemented by
1688           Debian.
1689
1690         * /usr/lib/os-release gained a new optional field VARIANT= for
1691           distributions that support multiple variants (such as a
1692           desktop edition, a server edition, ...)
1693
1694         Contributions from: Aaro Koskinen, Adam Goode, Alban Crequy,
1695         Alberto Fanjul Alonso, Alexander Sverdlin, Alex Puchades, Alin
1696         Rauta, Alison Chaiken, Andrew Jones, Arend van Spriel,
1697         Benedikt Morbach, Benjamin Franzke, Benjamin Tissoires, Blaž
1698         Tomažič, Chris Morgan, Chris Morin, Colin Walters, Cristian
1699         Rodríguez, Daniel Buch, Daniel Drake, Daniele Medri, Daniel
1700         Mack, Daniel Mustieles, daurnimator, Davide Bettio, David
1701         Herrmann, David Strauss, Didier Roche, Dimitri John Ledkov,
1702         Eric Cook, Gavin Li, Goffredo Baroncelli, Hannes Reinecke,
1703         Hans de Goede, Hans-Peter Deifel, Harald Hoyer, Iago López
1704         Galeiras, Ivan Shapovalov, Jan Engelhardt, Jan Janssen, Jan
1705         Pazdziora, Jan Synacek, Jasper St. Pierre, Jay Faulkner, John
1706         Paul Adrian Glaubitz, Jonathon Gilbert, Karel Zak, Kay
1707         Sievers, Koen Kooi, Lennart Poettering, Lubomir Rintel, Lucas
1708         De Marchi, Lukas Nykryn, Lukas Rusak, Lukasz Skalski, Łukasz
1709         Stelmach, Mantas Mikulėnas, Marc-Antoine Perennou, Marcel
1710         Holtmann, Martin Pitt, Mathieu Chevrier, Matthew Garrett,
1711         Michael Biebl, Michael Marineau, Michael Olbrich, Michal
1712         Schmidt, Michal Sekletar, Mirco Tischler, Nir Soffer, Patrik
1713         Flykt, Pavel Odvody, Peter Hutterer, Peter Lemenkov, Peter
1714         Waller, Piotr Drąg, Raul Gutierrez S, Richard Maw, Ronny
1715         Chevalier, Ross Burton, Sebastian Rasmussen, Sergey Ptashnick,
1716         Seth Jennings, Shawn Landden, Simon Farnsworth, Stefan Junker,
1717         Stephen Gallagher, Susant Sahani, Sylvain Plantefève, Thomas
1718         Haller, Thomas Hindoe Paaboel Andersen, Tobias Hunger, Tom
1719         Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Will
1720         Woods, Zachary Cook, Zbigniew Jędrzejewski-Szmek
1721
1722         — Berlin, 2015-05-22
1723
1724 CHANGES WITH 219:
1725
1726         * Introduce a new API "sd-hwdb.h" for querying the hardware
1727           metadata database. With this minimal interface one can query
1728           and enumerate the udev hwdb, decoupled from the old libudev
1729           library. libudev's interface for this is now only a wrapper
1730           around sd-hwdb. A new tool systemd-hwdb has been added to
1731           interface with and update the database.
1732
1733         * When any of systemd's tools copies files (for example due to
1734           tmpfiles' C lines) a btrfs reflink will attempted first,
1735           before bytewise copying is done.
1736
1737         * systemd-nspawn gained a new --ephemeral switch. When
1738           specified a btrfs snapshot is taken of the container's root
1739           directory, and immediately removed when the container
1740           terminates again. Thus, a container can be started whose
1741           changes never alter the container's root directory, and are
1742           lost on container termination. This switch can also be used
1743           for starting a container off the root file system of the
1744           host without affecting the host OS. This switch is only
1745           available on btrfs file systems.
1746
1747         * systemd-nspawn gained a new --template= switch. It takes the
1748           path to a container tree to use as template for the tree
1749           specified via --directory=, should that directory be
1750           missing. This allows instantiating containers dynamically,
1751           on first run. This switch is only available on btrfs file
1752           systems.
1753
1754         * When a .mount unit refers to a mount point on which multiple
1755           mounts are stacked, and the .mount unit is stopped all of
1756           the stacked mount points will now be unmounted until no
1757           mount point remains.
1758
1759         * systemd now has an explicit notion of supported and
1760           unsupported unit types. Jobs enqueued for unsupported unit
1761           types will now fail with an "unsupported" error code. More
1762           specifically .swap, .automount and .device units are not
1763           supported in containers, .busname units are not supported on
1764           non-kdbus systems. .swap and .automount are also not
1765           supported if their respective kernel compile time options
1766           are disabled.
1767
1768         * machinectl gained support for two new "copy-from" and
1769           "copy-to" commands for copying files from a running
1770           container to the host or vice versa.
1771
1772         * machinectl gained support for a new "bind" command to bind
1773           mount host directories into local containers. This is
1774           currently only supported for nspawn containers.
1775
1776         * networkd gained support for configuring bridge forwarding
1777           database entries (fdb) from .network files.
1778
1779         * A new tiny daemon "systemd-importd" has been added that can
1780           download container images in tar, raw, qcow2 or dkr formats,
1781           and make them available locally in /var/lib/machines, so
1782           that they can run as nspawn containers. The daemon can GPG
1783           verify the downloads (not supported for dkr, since it has no
1784           provisions for verifying downloads). It will transparently
1785           decompress bz2, xz, gzip compressed downloads if necessary,
1786           and restore sparse files on disk. The daemon uses privilege
1787           separation to ensure the actual download logic runs with
1788           fewer privileges than the daemon itself. machinectl has
1789           gained new commands "pull-tar", "pull-raw" and "pull-dkr" to
1790           make the functionality of importd available to the
1791           user. With this in place the Fedora and Ubuntu "Cloud"
1792           images can be downloaded and booted as containers unmodified
1793           (the Fedora images lack the appropriate GPG signature files
1794           currently, so they cannot be verified, but this will change
1795           soon, hopefully). Note that downloading images is currently
1796           only fully supported on btrfs.
1797
1798         * machinectl is now able to list container images found in
1799           /var/lib/machines, along with some metadata about sizes of
1800           disk and similar. If the directory is located on btrfs and
1801           quota is enabled, this includes quota display. A new command
1802           "image-status" has been added that shows additional
1803           information about images.
1804
1805         * machinectl is now able to clone container images
1806           efficiently, if the underlying file system (btrfs) supports
1807           it, with the new "machinectl clone" command. It also
1808           gained commands for renaming and removing images, as well as
1809           marking them read-only or read-write (supported also on
1810           legacy file systems).
1811
1812         * networkd gained support for collecting LLDP network
1813           announcements, from hardware that supports this. This is
1814           shown in networkctl output.
1815
1816         * systemd-run gained support for a new -t (--pty) switch for
1817           invoking a binary on a pty whose input and output is
1818           connected to the invoking terminal. This allows executing
1819           processes as system services while interactively
1820           communicating with them via the terminal. Most interestingly
1821           this is supported across container boundaries. Invoking
1822           "systemd-run -t /bin/bash" is an alternative to running a
1823           full login session, the difference being that the former
1824           will not register a session, nor go through the PAM session
1825           setup.
1826
1827         * tmpfiles gained support for a new "v" line type for creating
1828           btrfs subvolumes. If the underlying file system is a legacy
1829           file system, this automatically degrades to creating a
1830           normal directory. Among others /var/lib/machines is now
1831           created like this at boot, should it be missing.
1832
1833         * The directory /var/lib/containers/ has been deprecated and
1834           been replaced by /var/lib/machines. The term "machines" has
1835           been used in the systemd context as generic term for both
1836           VMs and containers, and hence appears more appropriate for
1837           this, as the directory can also contain raw images bootable
1838           via qemu/kvm.
1839
1840         * systemd-nspawn when invoked with -M but without --directory=
1841           or --image= is now capable of searching for the container
1842           root directory, subvolume or disk image automatically, in
1843           /var/lib/machines. systemd-nspawn@.service has been updated
1844           to make use of this, thus allowing it to be used for raw
1845           disk images, too.
1846
1847         * A new machines.target unit has been introduced that is
1848           supposed to group all containers/VMs invoked as services on
1849           the system. systemd-nspawn@.service has been updated to
1850           integrate with that.
1851
1852         * machinectl gained a new "start" command, for invoking a
1853           container as a service. "machinectl start foo" is mostly
1854           equivalent to "systemctl start systemd-nspawn@foo.service",
1855           but handles escaping in a nicer way.
1856
1857         * systemd-nspawn will now mount most of the cgroupfs tree
1858           read-only into each container, with the exception of the
1859           container's own subtree in the name=systemd hierarchy.
1860
1861         * journald now sets the special FS_NOCOW file flag for its
1862           journal files. This should improve performance on btrfs, by
1863           avoiding heavy fragmentation when journald's write-pattern
1864           is used on COW file systems. It degrades btrfs' data
1865           integrity guarantees for the files to the same levels as for
1866           ext3/ext4 however. This should be OK though as journald does
1867           its own data integrity checks and all its objects are
1868           checksummed on disk. Also, journald should handle btrfs disk
1869           full events a lot more gracefully now, by processing SIGBUS
1870           errors, and not relying on fallocate() anymore.
1871
1872         * When journald detects that journal files it is writing to
1873           have been deleted it will immediately start new journal
1874           files.
1875
1876         * systemd now provides a way to store file descriptors
1877           per-service in PID 1.This is useful for daemons to ensure
1878           that fds they require are not lost during a daemon
1879           restart. The fds are passed to the daemon on the next
1880           invocation in the same way socket activation fds are
1881           passed. This is now used by journald to ensure that the
1882           various sockets connected to all the system's stdout/stderr
1883           are not lost when journald is restarted. File descriptors
1884           may be stored in PID 1 via the sd_pid_notify_with_fds() API,
1885           an extension to sd_notify(). Note that a limit is enforced
1886           on the number of fds a service can store in PID 1, and it
1887           defaults to 0, so that no fds may be stored, unless this is
1888           explicitly turned on.
1889
1890         * The default TERM variable to use for units connected to a
1891           terminal, when no other value is explicitly is set is now
1892           vt220 rather than vt102. This should be fairly safe still,
1893           but allows PgUp/PgDn work.
1894
1895         * The /etc/crypttab option header= as known from Debian is now
1896           supported.
1897
1898         * "loginctl user-status" and "loginctl session-status" will
1899           now show the last 10 lines of log messages of the
1900           user/session following the status output. Similar,
1901           "machinectl status" will show the last 10 log lines
1902           associated with a virtual machine or container
1903           service. (Note that this is usually not the log messages
1904           done in the VM/container itself, but simply what the
1905           container manager logs. For nspawn this includes all console
1906           output however.)
1907
1908         * "loginctl session-status" without further argument will now
1909           show the status of the session of the caller. Similar,
1910           "lock-session", "unlock-session", "activate",
1911           "enable-linger", "disable-linger" may now be called without
1912           session/user parameter in which case they apply to the
1913           caller's session/user.
1914
1915         * An X11 session scriptlet is now shipped that uploads
1916           $DISPLAY and $XAUTHORITY into the environment of the systemd
1917           --user daemon if a session begins. This should improve
1918           compatibility with X11 enabled applications run as systemd
1919           user services.
1920
1921         * Generators are now subject to masking via /etc and /run, the
1922           same way as unit files.
1923
1924         * networkd .network files gained support for configuring
1925           per-link IPv4/IPv6 packet forwarding as well as IPv4
1926           masquerading. This is by default turned on for veth links to
1927           containers, as registered by systemd-nspawn. This means that
1928           nspawn containers run with --network-veth will now get
1929           automatic routed access to the host's networks without any
1930           further configuration or setup, as long as networkd runs on
1931           the host.
1932
1933         * systemd-nspawn gained the --port= (-p) switch to expose TCP
1934           or UDP posts of a container on the host. With this in place
1935           it is possible to run containers with private veth links
1936           (--network-veth), and have their functionality exposed on
1937           the host as if their services were running directly on the
1938           host.
1939
1940         * systemd-nspawn's --network-veth switch now gained a short
1941           version "-n", since with the changes above it is now truly
1942           useful out-of-the-box. The systemd-nspawn@.service has been
1943           updated to make use of it too by default.
1944
1945         * systemd-nspawn will now maintain a per-image R/W lock, to
1946           ensure that the same image is not started more than once
1947           writable. (It's OK to run an image multiple times
1948           simultaneously in read-only mode.)
1949
1950         * systemd-nspawn's --image= option is now capable of
1951           dissecting and booting MBR and GPT disk images that contain
1952           only a single active Linux partition. Previously it
1953           supported only GPT disk images with proper GPT type
1954           IDs. This allows running cloud images from major
1955           distributions directly with systemd-nspawn, without
1956           modification.
1957
1958         * In addition to collecting mouse dpi data in the udev
1959           hardware database, there's now support for collecting angle
1960           information for mouse scroll wheels. The database is
1961           supposed to guarantee similar scrolling behavior on mice
1962           that it knows about. There's also support for collecting
1963           information about Touchpad types.
1964
1965         * udev's input_id built-in will now also collect touch screen
1966           dimension data and attach it to probed devices.
1967
1968         * /etc/os-release gained support for a Distribution Privacy
1969           Policy link field.
1970
1971         * networkd gained support for creating "ipvlan", "gretap",
1972           "ip6gre", "ip6gretap" and "ip6tnl" network devices.
1973
1974         * systemd-tmpfiles gained support for "a" lines for setting
1975           ACLs on files.
1976
1977         * systemd-nspawn will now mount /tmp in the container to
1978           tmpfs, automatically.
1979
1980         * systemd now exposes the memory.usage_in_bytes cgroup
1981           attribute and shows it for each service in the "systemctl
1982           status" output, if available.
1983
1984         * When the user presses Ctrl-Alt-Del more than 7x within 2s an
1985           immediate reboot is triggered. This useful if shutdown is
1986           hung and is unable to complete, to expedite the
1987           operation. Note that this kind of reboot will still unmount
1988           all file systems, and hence should not result in fsck being
1989           run on next reboot.
1990
1991         * A .device unit for an optical block device will now be
1992           considered active only when a medium is in the drive. Also,
1993           mount units are now bound to their backing devices thus
1994           triggering automatic unmounting when devices become
1995           unavailable. With this in place systemd will now
1996           automatically unmount left-over mounts when a CD-ROM is
1997           ejected or an USB stick is yanked from the system.
1998
1999         * networkd-wait-online now has support for waiting for
2000           specific interfaces only (with globbing), and for giving up
2001           after a configurable timeout.
2002
2003         * networkd now exits when idle. It will be automatically
2004           restarted as soon as interfaces show up, are removed or
2005           change state. networkd will stay around as long as there is
2006           at least one DHCP state machine or similar around, that keep
2007           it non-idle.
2008
2009         * networkd may now configure IPv6 link-local addressing in
2010           addition to IPv4 link-local addressing.
2011
2012         * The IPv6 "token" for use in SLAAC may now be configured for
2013           each .network interface in networkd.
2014
2015         * Routes configured with networkd may now be assigned a scope
2016           in .network files.
2017
2018         * networkd's [Match] sections now support globbing and lists
2019           of multiple space-separated matches per item.
2020
2021         Contributions from: Alban Crequy, Alin Rauta, Andrey Chaser,
2022         Bastien Nocera, Bruno Bottazzini, Carlos Garnacho, Carlos
2023         Morata Castillo, Chris Atkinson, Chris J. Arges, Christian
2024         Kirbach, Christian Seiler, Christoph Brill, Colin Guthrie,
2025         Colin Walters, Cristian Rodríguez, Daniele Medri, Daniel Mack,
2026         Dave Reisner, David Herrmann, Djalal Harouni, Erik Auerswald,
2027         Filipe Brandenburger, Frank Theile, Gabor Kelemen, Gabriel de
2028         Perthuis, Harald Hoyer, Hui Wang, Ivan Shapovalov, Jan
2029         Engelhardt, Jan Synacek, Jay Faulkner, Johannes Hölzl, Jonas
2030         Ådahl, Jonathan Boulle, Josef Andersson, Kay Sievers, Ken
2031         Werner, Lennart Poettering, Lucas De Marchi, Lukas Märdian,
2032         Lukas Nykryn, Lukasz Skalski, Luke Shumaker, Mantas Mikulėnas,
2033         Manuel Mendez, Marcel Holtmann, Marc Schmitzer, Marko
2034         Myllynen, Martin Pitt, Maxim Mikityanskiy, Michael Biebl,
2035         Michael Marineau, Michael Olbrich, Michal Schmidt, Mindaugas
2036         Baranauskas, Moez Bouhlel, Naveen Kumar, Patrik Flykt, Paul
2037         Martin, Peter Hutterer, Peter Mattern, Philippe De Swert,
2038         Piotr Drąg, Rafael Ferreira, Rami Rosen, Robert Milasan, Ronny
2039         Chevalier, Sangjung Woo, Sebastien Bacher, Sergey Ptashnick,
2040         Shawn Landden, Stéphane Graber, Susant Sahani, Sylvain
2041         Plantefève, Thomas Hindoe Paaboel Andersen, Tim JP, Tom
2042         Gundersen, Topi Miettinen, Torstein Husebø, Umut Tezduyar
2043         Lindskog, Veres Lajos, Vincent Batts, WaLyong Cho, Wieland
2044         Hoffmann, Zbigniew Jędrzejewski-Szmek
2045
2046         — Berlin, 2015-02-16
2047
2048 CHANGES WITH 218:
2049
2050         * When querying unit file enablement status (for example via
2051           "systemctl is-enabled"), a new state "indirect" is now known
2052           which indicates that a unit might not be enabled itself, but
2053           another unit listed in its Also= setting might be.
2054
2055         * Similar to the various existing ConditionXYZ= settings for
2056           units, there are now matching AssertXYZ= settings. While
2057           failing conditions cause a unit to be skipped, but its job
2058           to succeed, failing assertions declared like this will cause
2059           a unit start operation and its job to fail.
2060
2061         * hostnamed now knows a new chassis type "embedded".
2062
2063         * systemctl gained a new "edit" command. When used on a unit
2064           file, this allows extending unit files with .d/ drop-in
2065           configuration snippets or editing the full file (after
2066           copying it from /usr/lib to /etc). This will invoke the
2067           user's editor (as configured with $EDITOR), and reload the
2068           modified configuration after editing.
2069
2070         * "systemctl status" now shows the suggested enablement state
2071           for a unit, as declared in the (usually vendor-supplied)
2072           system preset files.
2073
2074         * nss-myhostname will now resolve the single-label host name
2075           "gateway" to the locally configured default IP routing
2076           gateways, ordered by their metrics. This assigns a stable
2077           name to the used gateways, regardless which ones are
2078           currently configured. Note that the name will only be
2079           resolved after all other name sources (if nss-myhostname is
2080           configured properly) and should hence not negatively impact
2081           systems that use the single-label host name "gateway" in
2082           other contexts.
2083
2084         * systemd-inhibit now allows filtering by mode when listing
2085           inhibitors.
2086
2087         * Scope and service units gained a new "Delegate" boolean
2088           property, which, when set, allows processes running inside the
2089           unit to further partition resources. This is primarily
2090           useful for systemd user instances as well as container
2091           managers.
2092
2093         * journald will now pick up audit messages directly from
2094           the kernel, and log them like any other log message. The
2095           audit fields are split up and fully indexed. This means that
2096           journalctl in many ways is now a (nicer!) alternative to
2097           ausearch, the traditional audit client. Note that this
2098           implements only a minimal audit client. If you want the
2099           special audit modes like reboot-on-log-overflow, please use
2100           the traditional auditd instead, which can be used in
2101           parallel to journald.
2102
2103         * The ConditionSecurity= unit file option now understands the
2104           special string "audit" to check whether auditing is
2105           available.
2106
2107         * journalctl gained two new commands --vacuum-size= and
2108           --vacuum-time= to delete old journal files until the
2109           remaining ones take up no more than the specified size on disk,
2110           or are not older than the specified time.
2111
2112         * A new, native PPPoE library has been added to sd-network,
2113           systemd's library of light-weight networking protocols. This
2114           library will be used in a future version of networkd to
2115           enable PPPoE communication without an external pppd daemon.
2116
2117         * The busctl tool now understands a new "capture" verb that
2118           works similar to "monitor", but writes a packet capture
2119           trace to STDOUT that can be redirected to a file which is
2120           compatible with libcap's capture file format. This can then
2121           be loaded in Wireshark and similar tools to inspect bus
2122           communication.
2123
2124         * The busctl tool now understands a new "tree" verb that shows
2125           the object trees of a specific service on the bus, or of all
2126           services.
2127
2128         * The busctl tool now understands a new "introspect" verb that
2129           shows all interfaces and members of objects on the bus,
2130           including their signature and values. This is particularly
2131           useful to get more information about bus objects shown by
2132           the new "busctl tree" command.
2133
2134         * The busctl tool now understands new verbs "call",
2135           "set-property" and "get-property" for invoking bus method
2136           calls, setting and getting bus object properties in a
2137           friendly way.
2138
2139         * busctl gained a new --augment-creds= argument that controls
2140           whether the tool shall augment credential information it
2141           gets from the bus with data from /proc, in a possibly
2142           race-ful way.
2143
2144         * nspawn's --link-journal= switch gained two new values
2145           "try-guest" and "try-host" that work like "guest" and
2146           "host", but do not fail if the host has no persistent
2147           journalling enabled. -j is now equivalent to
2148           --link-journal=try-guest.
2149
2150         * macvlan network devices created by nspawn will now have
2151           stable MAC addresses.
2152
2153         * A new SmackProcessLabel= unit setting has been added, which
2154           controls the SMACK security label processes forked off by
2155           the respective unit shall use.
2156
2157         * If compiled with --enable-xkbcommon, systemd-localed will
2158           verify x11 keymap settings by compiling the given keymap. It
2159           will spew out warnings if the compilation fails. This
2160           requires libxkbcommon to be installed.
2161
2162         * When a coredump is collected, a larger number of metadata
2163           fields is now collected and included in the journal records
2164           created for it. More specifically, control group membership,
2165           environment variables, memory maps, working directory,
2166           chroot directory, /proc/$PID/status, and a list of open file
2167           descriptors is now stored in the log entry.
2168
2169         * The udev hwdb now contains DPI information for mice. For
2170           details see:
2171
2172           http://who-t.blogspot.de/2014/12/building-a-dpi-database-for-mice.html
2173
2174         * All systemd programs that read standalone configuration
2175           files in /etc now also support a corresponding series of
2176           .conf.d configuration directories in /etc/, /run/,
2177           /usr/local/lib/, /usr/lib/, and (if configured with
2178           --enable-split-usr) /lib/.  In particular, the following
2179           configuration files now have corresponding configuration
2180           directories: system.conf user.conf, logind.conf,
2181           journald.conf, sleep.conf, bootchart.conf, coredump.conf,
2182           resolved.conf, timesyncd.conf, journal-remote.conf, and
2183           journal-upload.conf.  Note that distributions should use the
2184           configuration directories in /usr/lib/; the directories in
2185           /etc/ are reserved for the system administrator.
2186
2187         * systemd-rfkill will no longer take the rfkill device name
2188           into account when storing rfkill state on disk, as the name
2189           might be dynamically assigned and not stable. Instead, the
2190           ID_PATH udev variable combined with the rfkill type (wlan,
2191           bluetooth, ...) is used.
2192
2193         * A new service systemd-machine-id-commit.service has been
2194           added. When used on systems where /etc is read-only during
2195           boot, and /etc/machine-id is not initialized (but an empty
2196           file), this service will copy the temporary machine ID
2197           created as replacement into /etc after the system is fully
2198           booted up. This is useful for systems that are freshly
2199           installed with a non-initialized machine ID, but should get
2200           a fixed machine ID for subsequent boots.
2201
2202         * networkd's .netdev files now provide a large set of
2203           configuration parameters for VXLAN devices. Similarly, the
2204           bridge port cost parameter is now configurable in .network
2205           files. There's also new support for configuring IP source
2206           routing. networkd .link files gained support for a new
2207           OriginalName= match that is useful to match against the
2208           original interface name the kernel assigned. .network files
2209           may include MTU= and MACAddress= fields for altering the MTU
2210           and MAC address while being connected to a specific network
2211           interface.
2212
2213         * The LUKS logic gained supported for configuring
2214           UUID-specific key files. There's also new support for naming
2215           LUKS device from the kernel command line, using the new
2216           luks.name= argument.
2217
2218         * Timer units may now be transiently created via the bus API
2219           (this was previously already available for scope and service
2220           units). In addition it is now possible to create multiple
2221           transient units at the same time with a single bus call. The
2222           "systemd-run" tool has been updated to make use of this for
2223           running commands on a specified time, in at(1)-style.
2224
2225         * tmpfiles gained support for "t" lines, for assigning
2226           extended attributes to files. Among other uses this may be
2227           used to assign SMACK labels to files.
2228
2229         Contributions from: Alin Rauta, Alison Chaiken, Andrej
2230         Manduch, Bastien Nocera, Chris Atkinson, Chris Leech, Chris
2231         Mayo, Colin Guthrie, Colin Walters, Cristian Rodríguez,
2232         Daniele Medri, Daniel Mack, Dan Williams, Dan Winship, Dave
2233         Reisner, David Herrmann, Didier Roche, Felipe Sateler, Gavin
2234         Li, Hans de Goede, Harald Hoyer, Iago López Galeiras, Ivan
2235         Shapovalov, Jakub Filak, Jan Janssen, Jan Synacek, Joe
2236         Lawrence, Josh Triplett, Kay Sievers, Lennart Poettering,
2237         Lukas Nykryn, Łukasz Stelmach, Maciej Wereski, Mantas
2238         Mikulėnas, Marcel Holtmann, Martin Pitt, Maurizio Lombardi,
2239         Michael Biebl, Michael Chapman, Michael Marineau, Michal
2240         Schmidt, Michal Sekletar, Olivier Brunel, Patrik Flykt, Peter
2241         Hutterer, Przemyslaw Kedzierski, Rami Rosen, Ray Strode,
2242         Richard Schütz, Richard W.M. Jones, Ronny Chevalier, Ross
2243         Lagerwall, Sean Young, Stanisław Pitucha, Susant Sahani,
2244         Thomas Haller, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
2245         Torstein Husebø, Umut Tezduyar Lindskog, Vicente Olivert
2246         Riera, WaLyong Cho, Wesley Dawson, Zbigniew Jędrzejewski-Szmek
2247
2248         — Berlin, 2014-12-10
2249
2250 CHANGES WITH 217:
2251
2252         * journalctl gained the new options -t/--identifier= to match
2253           on the syslog identifier (aka "tag"), as well as --utc to
2254           show log timestamps in the UTC timezone. journalctl now also
2255           accepts -n/--lines=all to disable line capping in a pager.
2256
2257         * journalctl gained a new switch, --flush, that synchronously
2258           flushes logs from /run/log/journal to /var/log/journal if
2259           persistent storage is enabled. systemd-journal-flush.service
2260           now waits until the operation is complete.
2261
2262         * Services can notify the manager before they start a reload
2263           (by sending RELOADING=1) or shutdown (by sending
2264           STOPPING=1). This allows the manager to track and show the
2265           internal state of daemons and closes a race condition when
2266           the process is still running but has closed its D-Bus
2267           connection.
2268
2269         * Services with Type=oneshot do not have to have any ExecStart
2270           commands anymore.
2271
2272         * User units are now loaded also from
2273           $XDG_RUNTIME_DIR/systemd/user/. This is similar to the
2274           /run/systemd/user directory that was already previously
2275           supported, but is under the control of the user.
2276
2277         * Job timeouts (i.e. time-outs on the time a job that is
2278           queued stays in the run queue) can now optionally result in
2279           immediate reboot or power-off actions (JobTimeoutAction= and
2280           JobTimeoutRebootArgument=). This is useful on ".target"
2281           units, to limit the maximum time a target remains
2282           undispatched in the run queue, and to trigger an emergency
2283           operation in such a case. This is now used by default to
2284           turn off the system if boot-up (as defined by everything in
2285           basic.target) hangs and does not complete for at least
2286           15min. Also, if power-off or reboot hang for at least 30min
2287           an immediate power-off/reboot operation is triggered. This
2288           functionality is particularly useful to increase reliability
2289           on embedded devices, but also on laptops which might
2290           accidentally get powered on when carried in a backpack and
2291           whose boot stays stuck in a hard disk encryption passphrase
2292           question.
2293
2294         * systemd-logind can be configured to also handle lid switch
2295           events even when the machine is docked or multiple displays
2296           are attached (HandleLidSwitchDocked= option).
2297
2298         * A helper binary and a service have been added which can be
2299           used to resume from hibernation in the initramfs. A
2300           generator will parse the resume= option on the kernel
2301           command line to trigger resume.
2302
2303         * A user console daemon systemd-consoled has been
2304           added. Currently, it is a preview, and will so far open a
2305           single terminal on each session of the user marked as
2306           Desktop=systemd-console.
2307
2308         * Route metrics can be specified for DHCP routes added by
2309           systemd-networkd.
2310
2311         * The SELinux context of socket-activated services can be set
2312           from the information provided by the networking stack
2313           (SELinuxContextFromNet= option).
2314
2315         * Userspace firmware loading support has been removed and
2316           the minimum supported kernel version is thus bumped to 3.7.
2317
2318         * Timeout for udev workers has been increased from 1 to 3
2319           minutes, but a warning will be printed after 1 minute to
2320           help diagnose kernel modules that take a long time to load.
2321
2322         * Udev rules can now remove tags on devices with TAG-="foobar".
2323
2324         * systemd's readahead implementation has been removed. In many
2325           circumstances it didn't give expected benefits even for
2326           rotational disk drives and was becoming less relevant in the
2327           age of SSDs. As none of the developers has been using
2328           rotating media anymore, and nobody stepped up to actively
2329           maintain this component of systemd it has now been removed.
2330
2331         * Swap units can use Options= to specify discard options.
2332           Discard options specified for swaps in /etc/fstab are now
2333           respected.
2334
2335         * Docker containers are now detected as a separate type of
2336           virtualization.
2337
2338         * The Password Agent protocol gained support for queries where
2339           the user input is shown, useful e.g. for user names.
2340           systemd-ask-password gained a new --echo option to turn that
2341           on.
2342
2343         * The default sysctl.d/ snippets will now set:
2344
2345                 net.core.default_qdisc = fq_codel
2346
2347           This selects Fair Queuing Controlled Delay as the default
2348           queuing discipline for network interfaces. fq_codel helps
2349           fight the network bufferbloat problem. It is believed to be
2350           a good default with no tuning required for most workloads.
2351           Downstream distributions may override this choice. On 10Gbit
2352           servers that do not do forwarding, "fq" may perform better.
2353           Systems without a good clocksource should use "pfifo_fast".
2354
2355         * If kdbus is enabled during build a new option BusPolicy= is
2356           available for service units, that allows locking all service
2357           processes into a stricter bus policy, in order to limit
2358           access to various bus services, or even hide most of them
2359           from the service's view entirely.
2360
2361         * networkctl will now show the .network and .link file
2362           networkd has applied to a specific interface.
2363
2364         * sd-login gained a new API call sd_session_get_desktop() to
2365           query which desktop environment has been selected for a
2366           session.
2367
2368         * UNIX utmp support is now compile-time optional to support
2369           legacy-free systems.
2370
2371         * systemctl gained two new commands "add-wants" and
2372           "add-requires" for pulling in units from specific targets
2373           easily.
2374
2375         * If the word "rescue" is specified on the kernel command line
2376           the system will now boot into rescue mode (aka
2377           rescue.target), which was previously available only by
2378           specifying "1" or "systemd.unit=rescue.target" on the kernel
2379           command line. This new kernel command line option nicely
2380           mirrors the already existing "emergency" kernel command line
2381           option.
2382
2383         * New kernel command line options mount.usr=, mount.usrflags=,
2384           mount.usrfstype= have been added that match root=, rootflags=,
2385           rootfstype= but allow mounting a specific file system to
2386           /usr.
2387
2388         * The $NOTIFY_SOCKET is now also passed to control processes of
2389           services, not only the main process.
2390
2391         * This version reenables support for fsck's -l switch. This
2392           means at least version v2.25 of util-linux is required for
2393           operation, otherwise dead-locks on device nodes may
2394           occur. Again: you need to update util-linux to at least
2395           v2.25 when updating systemd to v217.
2396
2397         * The "multi-seat-x" tool has been removed from systemd, as
2398           its functionality has been integrated into X servers 1.16,
2399           and the tool is hence redundant. It is recommended to update
2400           display managers invoking this tool to simply invoke X
2401           directly from now on, again.
2402
2403         * Support for the new ALLOW_INTERACTIVE_AUTHORIZATION D-Bus
2404           message flag has been added for all of systemd's PolicyKit
2405           authenticated method calls has been added. In particular
2406           this now allows optional interactive authorization via
2407           PolicyKit for many of PID1's privileged operations such as
2408           unit file enabling and disabling.
2409
2410         * "udevadm hwdb --update" learnt a new switch "--usr" for
2411           placing the rebuilt hardware database in /usr instead of
2412           /etc. When used only hardware database entries stored in
2413           /usr will be used, and any user database entries in /etc are
2414           ignored. This functionality is useful for vendors to ship a
2415           pre-built database on systems where local configuration is
2416           unnecessary or unlikely.
2417
2418         * Calendar time specifications in .timer units now also
2419           understand the strings "semi-annually", "quarterly" and
2420           "minutely" as shortcuts (in addition to the preexisting
2421           "anually", "hourly", ...).
2422
2423         * systemd-tmpfiles will now correctly create files in /dev
2424           at boot which are marked for creation only at boot. It is
2425           recommended to always create static device nodes with 'c!'
2426           and 'b!', so that they are created only at boot and not
2427           overwritten at runtime.
2428
2429         * When the watchdog logic is used for a service (WatchdogSec=)
2430           and the watchdog timeout is hit the service will now be
2431           terminated with SIGABRT (instead of just SIGTERM), in order
2432           to make sure a proper coredump and backtrace is
2433           generated. This ensures that hanging services will result in
2434           similar coredump/backtrace behaviour as services that hit a
2435           segmentation fault.
2436
2437         Contributions from: Andreas Henriksson, Andrei Borzenkov,
2438         Angus Gibson, Ansgar Burchardt, Ben Wolsieffer, Brandon L.
2439         Black, Christian Hesse, Cristian Rodríguez, Daniel Buch,
2440         Daniele Medri, Daniel Mack, Dan Williams, Dave Reisner, David
2441         Herrmann, David Sommerseth, David Strauss, Emil Renner
2442         Berthing, Eric Cook, Evangelos Foutras, Filipe Brandenburger,
2443         Gustavo Sverzut Barbieri, Hans de Goede, Harald Hoyer, Hristo
2444         Venev, Hugo Grostabussiat, Ivan Shapovalov, Jan Janssen, Jan
2445         Synacek, Jonathan Liu, Juho Son, Karel Zak, Kay Sievers, Klaus
2446         Purer, Koen Kooi, Lennart Poettering, Lukas Nykryn, Lukasz
2447         Skalski, Łukasz Stelmach, Mantas Mikulėnas, Marcel Holtmann,
2448         Marius Tessmann, Marko Myllynen, Martin Pitt, Michael Biebl,
2449         Michael Marineau, Michael Olbrich, Michael Scherer, Michal
2450         Schmidt, Michal Sekletar, Miroslav Lichvar, Patrik Flykt,
2451         Philippe De Swert, Piotr Drąg, Rahul Sundaram, Richard
2452         Weinberger, Robert Milasan, Ronny Chevalier, Ruben Kerkhof,
2453         Santiago Vila, Sergey Ptashnick, Simon McVittie, Sjoerd
2454         Simons, Stefan Brüns, Steven Allen, Steven Noonan, Susant
2455         Sahani, Sylvain Plantefève, Thomas Hindoe Paaboel Andersen,
2456         Timofey Titovets, Tobias Hunger, Tom Gundersen, Torstein
2457         Husebø, Umut Tezduyar Lindskog, WaLyong Cho, Zbigniew
2458         Jędrzejewski-Szmek
2459
2460         — Berlin, 2014-10-28
2461
2462 CHANGES WITH 216:
2463
2464         * timedated no longer reads NTP implementation unit names from
2465           /usr/lib/systemd/ntp-units.d/*.list. Alternative NTP
2466           implementations should add a
2467
2468             Conflicts=systemd-timesyncd.service
2469
2470           to their unit files to take over and replace systemd's NTP
2471           default functionality.
2472
2473         * systemd-sysusers gained a new line type "r" for configuring
2474           which UID/GID ranges to allocate system users/groups
2475           from. Lines of type "u" may now add an additional column
2476           that specifies the home directory for the system user to be
2477           created. Also, systemd-sysusers may now optionally read user
2478           information from STDIN instead of a file. This is useful for
2479           invoking it from RPM preinst scriptlets that need to create
2480           users before the first RPM file is installed since these
2481           files might need to be owned by them. A new
2482           %sysusers_create_inline RPM macro has been introduced to do
2483           just that. systemd-sysusers now updates the shadow files as
2484           well as the user/group databases, which should enhance
2485           compatibility with certain tools like grpck.
2486
2487         * A number of bus APIs of PID 1 now optionally consult
2488           PolicyKit to permit access for otherwise unprivileged
2489           clients under certain conditions. Note that this currently
2490           doesn't support interactive authentication yet, but this is
2491           expected to be added eventually, too.
2492
2493         * /etc/machine-info now has new fields for configuring the
2494           deployment environment of the machine, as well as the
2495           location of the machine. hostnamectl has been updated with
2496           new command to update these fields.
2497
2498         * systemd-timesyncd has been updated to automatically acquire
2499           NTP server information from systemd-networkd, which might
2500           have been discovered via DHCP.
2501
2502         * systemd-resolved now includes a caching DNS stub resolver
2503           and a complete LLMNR name resolution implementation. A new
2504           NSS module "nss-resolve" has been added which can be used
2505           instead of glibc's own "nss-dns" to resolve hostnames via
2506           systemd-resolved. Hostnames, addresses and arbitrary RRs may
2507           be resolved via systemd-resolved D-Bus APIs. In contrast to
2508           the glibc internal resolver systemd-resolved is aware of
2509           multi-homed system, and keeps DNS server and caches separate
2510           and per-interface. Queries are sent simultaneously on all
2511           interfaces that have DNS servers configured, in order to
2512           properly handle VPNs and local LANs which might resolve
2513           separate sets of domain names. systemd-resolved may acquire
2514           DNS server information from systemd-networkd automatically,
2515           which in turn might have discovered them via DHCP. A tool
2516           "systemd-resolve-host" has been added that may be used to
2517           query the DNS logic in resolved. systemd-resolved implements
2518           IDNA and automatically uses IDNA or UTF-8 encoding depending
2519           on whether classic DNS or LLMNR is used as transport. In the
2520           next releases we intend to add a DNSSEC and mDNS/DNS-SD
2521           implementation to systemd-resolved.
2522
2523         * A new NSS module nss-mymachines has been added, that
2524           automatically resolves the names of all local registered
2525           containers to their respective IP addresses.
2526
2527         * A new client tool "networkctl" for systemd-networkd has been
2528           added. It currently is entirely passive and will query
2529           networking configuration from udev, rtnetlink and networkd,
2530           and present it to the user in a very friendly
2531           way. Eventually, we hope to extend it to become a full
2532           control utility for networkd.
2533
2534         * .socket units gained a new DeferAcceptSec= setting that
2535           controls the kernels' TCP_DEFER_ACCEPT sockopt for
2536           TCP. Similarly, support for controlling TCP keep-alive
2537           settings has been added (KeepAliveTimeSec=,
2538           KeepAliveIntervalSec=, KeepAliveProbes=). Also, support for
2539           turning off Nagle's algorithm on TCP has been added
2540           (NoDelay=).
2541
2542         * logind learned a new session type "web", for use in projects
2543           like Cockpit which register web clients as PAM sessions.
2544
2545         * timer units with at least one OnCalendar= setting will now
2546           be started only after timer-sync.target has been
2547           reached. This way they will not elapse before the system
2548           clock has been corrected by a local NTP client or
2549           similar. This is particular useful on RTC-less embedded
2550           machines, that come up with an invalid system clock.
2551
2552         * systemd-nspawn's --network-veth= switch should now result in
2553           stable MAC addresses for both the outer and the inner side
2554           of the link.
2555
2556         * systemd-nspawn gained a new --volatile= switch for running
2557           container instances with /etc or /var unpopulated.
2558
2559         * The kdbus client code has been updated to use the new Linux
2560           3.17 memfd subsystem instead of the old kdbus-specific one.
2561
2562         * systemd-networkd's DHCP client and server now support
2563           FORCERENEW. There are also new configuration options to
2564           configure the vendor client identifier and broadcast mode
2565           for DHCP.
2566
2567         * systemd will no longer inform the kernel about the current
2568           timezone, as this is necessarily incorrect and racy as the
2569           kernel has no understanding of DST and similar
2570           concepts. This hence means FAT timestamps will be always
2571           considered UTC, similar to what Android is already
2572           doing. Also, when the RTC is configured to the local time
2573           (rather than UTC) systemd will never synchronize back to it,
2574           as this might confuse Windows at a later boot.
2575
2576         * systemd-analyze gained a new command "verify" for offline
2577           validation of unit files.
2578
2579         * systemd-networkd gained support for a couple of additional
2580           settings for bonding networking setups. Also, the metric for
2581           statically configured routes may now be configured. For
2582           network interfaces where this is appropriate the peer IP
2583           address may now be configured.
2584
2585         * systemd-networkd's DHCP client will no longer request
2586           broadcasting by default, as this tripped up some networks.
2587           For hardware where broadcast is required the feature should
2588           be switched back on using RequestBroadcast=yes.
2589
2590         * systemd-networkd will now set up IPv4LL addresses (when
2591           enabled) even if DHCP is configured successfully.
2592
2593         * udev will now default to respect network device names given
2594           by the kernel when the kernel indicates that these are
2595           predictable. This behavior can be tweaked by changing
2596           NamePolicy= in the relevant .link file.
2597
2598         * A new library systemd-terminal has been added that
2599           implements full TTY stream parsing and rendering. This
2600           library is supposed to be used later on for implementing a
2601           full userspace VT subsystem, replacing the current kernel
2602           implementation.
2603
2604         * A new tool systemd-journal-upload has been added to push
2605           journal data to a remote system running
2606           systemd-journal-remote.
2607
2608         * journald will no longer forward all local data to another
2609           running syslog daemon. This change has been made because
2610           rsyslog (which appears to be the most commonly used syslog
2611           implementation these days) no longer makes use of this, and
2612           instead pulls the data out of the journal on its own. Since
2613           forwarding the messages to a non-existent syslog server is
2614           more expensive than we assumed we have now turned this
2615           off. If you run a syslog server that is not a recent rsyslog
2616           version, you have to turn this option on again
2617           (ForwardToSyslog= in journald.conf).
2618
2619         * journald now optionally supports the LZ4 compressor for
2620           larger journal fields. This compressor should perform much
2621           better than XZ which was the previous default.
2622
2623         * machinectl now shows the IP addresses of local containers,
2624           if it knows them, plus the interface name of the container.
2625
2626         * A new tool "systemd-escape" has been added that makes it
2627           easy to escape strings to build unit names and similar.
2628
2629         * sd_notify() messages may now include a new ERRNO= field
2630           which is parsed and collected by systemd and shown among the
2631           "systemctl status" output for a service.
2632
2633         * A new component "systemd-firstboot" has been added that
2634           queries the most basic systemd information (timezone,
2635           hostname, root password) interactively on first
2636           boot. Alternatively it may also be used to provision these
2637           things offline on OS images installed into directories.
2638
2639         * The default sysctl.d/ snippets will now set
2640
2641                 net.ipv4.conf.default.promote_secondaries=1
2642
2643           This has the benefit of no flushing secondary IP addresses
2644           when primary addresses are removed.
2645
2646         Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
2647         Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
2648         Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
2649         Kenzior, Eelco Dolstra, Eric Cook, Hannes Reinecke, Harald
2650         Hoyer, Hong Shick Pak, Hui Wang, Jean-André Santoni, Jóhann
2651         B. Guðmundsson, Jon Severinsson, Karel Zak, Kay Sievers, Kevin
2652         Wells, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas,
2653         Marc-Antoine Perennou, Martin Pitt, Michael Biebl, Michael
2654         Marineau, Michael Olbrich, Michal Schmidt, Michal Sekletar,
2655         Miguel Angel Ajo, Mike Gilbert, Olivier Brunel, Robert
2656         Schiele, Ronny Chevalier, Simon McVittie, Sjoerd Simons, Stef
2657         Walter, Steven Noonan, Susant Sahani, Tanu Kaskinen, Thomas
2658         Blume, Thomas Hindoe Paaboel Andersen, Timofey Titovets,
2659         Tobias Geerinckx-Rice, Tomasz Torcz, Tom Gundersen, Umut
2660         Tezduyar Lindskog, Zbigniew Jędrzejewski-Szmek
2661
2662         — Berlin, 2014-08-19
2663
2664 CHANGES WITH 215:
2665
2666         * A new tool systemd-sysusers has been added. This tool
2667           creates system users and groups in /etc/passwd and
2668           /etc/group, based on static declarative system user/group
2669           definitions in /usr/lib/sysusers.d/. This is useful to
2670           enable factory resets and volatile systems that boot up with
2671           an empty /etc directory, and thus need system users and
2672           groups created during early boot. systemd now also ships
2673           with two default sysusers.d/ files for the most basic
2674           users and groups systemd and the core operating system
2675           require.
2676
2677         * A new tmpfiles snippet has been added that rebuilds the
2678           essential files in /etc on boot, should they be missing.
2679
2680         * A directive for ensuring automatic clean-up of
2681           /var/cache/man/ has been removed from the default
2682           configuration. This line should now be shipped by the man
2683           implementation. The necessary change has been made to the
2684           man-db implementation. Note that you need to update your man
2685           implementation to one that ships this line, otherwise no
2686           automatic clean-up of /var/cache/man will take place.
2687
2688         * A new condition ConditionNeedsUpdate= has been added that
2689           may conditionalize services to only run when /etc or /var
2690           are "older" than the vendor operating system resources in
2691           /usr. This is useful for reconstructing or updating /etc
2692           after an offline update of /usr or a factory reset, on the
2693           next reboot. Services that want to run once after such an
2694           update or reset should use this condition and order
2695           themselves before the new systemd-update-done.service, which
2696           will mark the two directories as fully updated. A number of
2697           service files have been added making use of this, to rebuild
2698           the udev hardware database, the journald message catalog and
2699           dynamic loader cache (ldconfig). The systemd-sysusers tool
2700           described above also makes use of this now. With this in
2701           place it is now possible to start up a minimal operating
2702           system with /etc empty cleanly. For more information on the
2703           concepts involved see this recent blog story:
2704
2705           http://0pointer.de/blog/projects/stateless.html
2706
2707         * A new system group "input" has been introduced, and all
2708           input device nodes get this group assigned. This is useful
2709           for system-level software to get access to input devices. It
2710           complements what is already done for "audio" and "video".
2711
2712         * systemd-networkd learnt minimal DHCPv4 server support in
2713           addition to the existing DHCPv4 client support. It also
2714           learnt DHCPv6 client and IPv6 Router Solicitation client
2715           support. The DHCPv4 client gained support for static routes
2716           passed in from the server. Note that the [DHCPv4] section
2717           known in older systemd-networkd versions has been renamed to
2718           [DHCP] and is now also used by the DHCPv6 client. Existing
2719           .network files using settings of this section should be
2720           updated, though compatibility is maintained. Optionally, the
2721           client hostname may now be sent to the DHCP server.
2722
2723         * networkd gained support for vxlan virtual networks as well
2724           as tun/tap and dummy devices.
2725
2726         * networkd gained support for automatic allocation of address
2727           ranges for interfaces from a system-wide pool of
2728           addresses. This is useful for dynamically managing a large
2729           number of interfaces with a single network configuration
2730           file. In particular this is useful to easily assign
2731           appropriate IP addresses to the veth links of a large number
2732           of nspawn instances.
2733
2734         * RPM macros for processing sysusers, sysctl and binfmt
2735           drop-in snippets at package installation time have been
2736           added.
2737
2738         * The /etc/os-release file should now be placed in
2739           /usr/lib/os-release. The old location is automatically
2740           created as symlink. /usr/lib is the more appropriate
2741           location of this file, since it shall actually describe the
2742           vendor operating system shipped in /usr, and not the
2743           configuration stored in /etc.
2744
2745         * .mount units gained a new boolean SloppyOptions= setting
2746           that maps to mount(8)'s -s option which enables permissive
2747           parsing of unknown mount options.
2748
2749         * tmpfiles learnt a new "L+" directive which creates a symlink
2750           but (unlike "L") deletes a pre-existing file first, should
2751           it already exist and not already be the correct
2752           symlink. Similarly, "b+", "c+" and "p+" directives have been
2753           added as well, which create block and character devices, as
2754           well as fifos in the filesystem, possibly removing any
2755           pre-existing files of different types.
2756
2757         * For tmpfiles' "L", "L+", "C" and "C+" directives the final
2758           'argument' field (which so far specified the source to
2759           symlink/copy the files from) is now optional. If omitted the
2760           same file os copied from /usr/share/factory/ suffixed by the
2761           full destination path. This is useful for populating /etc
2762           with essential files, by copying them from vendor defaults
2763           shipped in /usr/share/factory/etc.
2764
2765         * A new command "systemctl preset-all" has been added that
2766           applies the service preset settings to all installed unit
2767           files. A new switch --preset-mode= has been added that
2768           controls whether only enable or only disable operations
2769           shall be executed.
2770
2771         * A new command "systemctl is-system-running" has been added
2772           that allows checking the overall state of the system, for
2773           example whether it is fully up and running.
2774
2775         * When the system boots up with an empty /etc, the equivalent
2776           to "systemctl preset-all" is executed during early boot, to
2777           make sure all default services are enabled after a factory
2778           reset.
2779
2780         * systemd now contains a minimal preset file that enables the
2781           most basic services systemd ships by default.
2782
2783         * Unit files' [Install] section gained a new DefaultInstance=
2784           field for defining the default instance to create if a
2785           template unit is enabled with no instance specified.
2786
2787         * A new passive target cryptsetup-pre.target has been added
2788           that may be used by services that need to make they run and
2789           finish before the first LUKS cryptographic device is set up.
2790
2791         * The /dev/loop-control and /dev/btrfs-control device nodes
2792           are now owned by the "disk" group by default, opening up
2793           access to this group.
2794
2795         * systemd-coredump will now automatically generate a
2796           stack trace of all core dumps taking place on the system,
2797           based on elfutils' libdw library. This stack trace is logged
2798           to the journal.
2799
2800         * systemd-coredump may now optionally store coredumps directly
2801           on disk (in /var/lib/systemd/coredump, possibly compressed),
2802           instead of storing them unconditionally in the journal. This
2803           mode is the new default. A new configuration file
2804           /etc/systemd/coredump.conf has been added to configure this
2805           and other parameters of systemd-coredump.
2806
2807         * coredumpctl gained a new "info" verb to show details about a
2808           specific coredump. A new switch "-1" has also been added
2809           that makes sure to only show information about the most
2810           recent entry instead of all entries. Also, as the tool is
2811           generally useful now the "systemd-" prefix of the binary
2812           name has been removed. Distributions that want to maintain
2813           compatibility with the old name should add a symlink from
2814           the old name to the new name.
2815
2816         * journald's SplitMode= now defaults to "uid". This makes sure
2817           that unprivileged users can access their own coredumps with
2818           coredumpctl without restrictions.
2819
2820         * New kernel command line options "systemd.wants=" (for
2821           pulling an additional unit during boot), "systemd.mask="
2822           (for masking a specific unit for the boot), and
2823           "systemd.debug-shell" (for enabling the debug shell on tty9)
2824           have been added. This is implemented in the new generator
2825           "systemd-debug-generator".
2826
2827         * systemd-nspawn will now by default filter a couple of
2828           syscalls for containers, among them those required for
2829           kernel module loading, direct x86 IO port access, swap
2830           management, and kexec. Most importantly though
2831           open_by_handle_at() is now prohibited for containers,
2832           closing a hole similar to a recently discussed vulnerability
2833           in docker regarding access to files on file hierarchies the
2834           container should normally not have access to. Note that, for
2835           nspawn, we generally make no security claims anyway (and
2836           this is explicitly documented in the man page), so this is
2837           just a fix for one of the most obvious problems.
2838
2839         * A new man page file-hierarchy(7) has been added that
2840           contains a minimized, modernized version of the file system
2841           layout systemd expects, similar in style to the FHS
2842           specification or hier(5). A new tool systemd-path(1) has
2843           been added to query many of these paths for the local
2844           machine and user.
2845
2846         * Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
2847           longer done. Since the directory now has a per-user size
2848           limit, and is cleaned on logout this appears unnecessary,
2849           in particular since this now brings the lifecycle of this
2850           directory closer in line with how IPC objects are handled.
2851
2852         * systemd.pc now exports a number of additional directories,
2853           including $libdir (which is useful to identify the library
2854           path for the primary architecture of the system), and a
2855           couple of drop-in directories.
2856
2857         * udev's predictable network interface names now use the dev_port
2858           sysfs attribute, introduced in linux 3.15 instead of dev_id to
2859           distinguish between ports of the same PCI function. dev_id should
2860           only be used for ports using the same HW address, hence the need
2861           for dev_port.
2862
2863         * machined has been updated to export the OS version of a
2864           container (read from /etc/os-release and
2865           /usr/lib/os-release) on the bus. This is now shown in
2866           "machinectl status" for a machine.
2867
2868         * A new service setting RestartForceExitStatus= has been
2869           added. If configured to a set of exit signals or process
2870           return values, the service will be restarted when the main
2871           daemon process exits with any of them, regardless of the
2872           Restart= setting.
2873
2874         * systemctl's -H switch for connecting to remote systemd
2875           machines has been extended so that it may be used to
2876           directly connect to a specific container on the
2877           host. "systemctl -H root@foobar:waldi" will now connect as
2878           user "root" to host "foobar", and then proceed directly to
2879           the container named "waldi". Note that currently you have to
2880           authenticate as user "root" for this to work, as entering
2881           containers is a privileged operation.
2882
2883         Contributions from: Andreas Henriksson, Benjamin Steinwender,
2884         Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
2885         Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
2886         Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
2887         Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
2888         Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
2889         Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
2890         Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
2891         Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
2892         Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
2893         Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
2894         Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
2895
2896         — Berlin, 2014-07-03
2897
2898 CHANGES WITH 214:
2899
2900         * As an experimental feature, udev now tries to lock the
2901           disk device node (flock(LOCK_SH|LOCK_NB)) while it
2902           executes events for the disk or any of its partitions.
2903           Applications like partitioning programs can lock the
2904           disk device node (flock(LOCK_EX)) and claim temporary
2905           device ownership that way; udev will entirely skip all event
2906           handling for this disk and its partitions. If the disk
2907           was opened for writing, the close will trigger a partition
2908           table rescan in udev's "watch" facility, and if needed
2909           synthesize "change" events for the disk and all its partitions.
2910           This is now unconditionally enabled, and if it turns out to
2911           cause major problems, we might turn it on only for specific
2912           devices, or might need to disable it entirely. Device Mapper
2913           devices are excluded from this logic.
2914
2915         * We temporarily dropped the "-l" switch for fsck invocations,
2916           since they collide with the flock() logic above. util-linux
2917           upstream has been changed already to avoid this conflict,
2918           and we will readd "-l" as soon as util-linux with this
2919           change has been released.
2920
2921         * The dependency on libattr has been removed. Since a long
2922           time, the extended attribute calls have moved to glibc, and
2923           libattr is thus unnecessary.
2924
2925         * Virtualization detection works without priviliges now. This
2926           means the systemd-detect-virt binary no longer requires
2927           CAP_SYS_PTRACE file capabilities, and our daemons can run
2928           with fewer privileges.
2929
2930         * systemd-networkd now runs under its own "systemd-network"
2931           user. It retains the CAP_NET_ADMIN, CAP_NET_BIND_SERVICE,
2932           CAP_NET_BROADCAST, CAP_NET_RAW capabilities though, but
2933           loses the ability to write to files owned by root this way.
2934
2935         * Similarly, systemd-resolved now runs under its own
2936           "systemd-resolve" user with no capabilities remaining.
2937
2938         * Similarly, systemd-bus-proxyd now runs under its own
2939           "systemd-bus-proxy" user with only CAP_IPC_OWNER remaining.
2940
2941         * systemd-networkd gained support for setting up "veth"
2942           virtual Ethernet devices for container connectivity, as well
2943           as GRE and VTI tunnels.
2944
2945         * systemd-networkd will no longer automatically attempt to
2946           manually load kernel modules necessary for certain tunnel
2947           transports. Instead, it is assumed the kernel loads them
2948           automatically when required. This only works correctly on
2949           very new kernels. On older kernels, please consider adding
2950           the kernel modules to /etc/modules-load.d/ as a work-around.
2951
2952         * The resolv.conf file systemd-resolved generates has been
2953           moved to /run/systemd/resolve/. If you have a symlink from
2954           /etc/resolv.conf, it might be necessary to correct it.
2955
2956         * Two new service settings, ProtectHome= and ProtectSystem=,
2957           have been added. When enabled, they will make the user data
2958           (such as /home) inaccessible or read-only and the system
2959           (such as /usr) read-only, for specific services. This allows
2960           very light-weight per-service sandboxing to avoid
2961           modifications of user data or system files from
2962           services. These two new switches have been enabled for all
2963           of systemd's long-running services, where appropriate.
2964
2965         * Socket units gained new SocketUser= and SocketGroup=
2966           settings to set the owner user and group of AF_UNIX sockets
2967           and FIFOs in the file system.
2968
2969         * Socket units gained a new RemoveOnStop= setting. If enabled,
2970           all FIFOS and sockets in the file system will be removed
2971           when the specific socket unit is stopped.
2972
2973         * Socket units gained a new Symlinks= setting. It takes a list
2974           of symlinks to create to file system sockets or FIFOs
2975           created by the specific Unix sockets. This is useful to
2976           manage symlinks to socket nodes with the same life-cycle as
2977           the socket itself.
2978
2979         * The /dev/log socket and /dev/initctl FIFO have been moved to
2980           /run, and have been replaced by symlinks. This allows
2981           connecting to these facilities even if PrivateDevices=yes is
2982           used for a service (which makes /dev/log itself unavailable,
2983           but /run is left). This also has the benefit of ensuring
2984           that /dev only contains device nodes, directories and
2985           symlinks, and nothing else.
2986
2987         * sd-daemon gained two new calls sd_pid_notify() and
2988           sd_pid_notifyf(). They are similar to sd_notify() and
2989           sd_notifyf(), but allow overriding of the source PID of
2990           notification messages if permissions permit this. This is
2991           useful to send notify messages on behalf of a different
2992           process (for example, the parent process). The
2993           systemd-notify tool has been updated to make use of this
2994           when sending messages (so that notification messages now
2995           originate from the shell script invoking systemd-notify and
2996           not the systemd-notify process itself. This should minimize
2997           a race where systemd fails to associate notification
2998           messages to services when the originating process already
2999           vanished.
3000
3001         * A new "on-abnormal" setting for Restart= has been added. If
3002           set, it will result in automatic restarts on all "abnormal"
3003           reasons for a process to exit, which includes unclean
3004           signals, core dumps, timeouts and watchdog timeouts, but
3005           does not include clean and unclean exit codes or clean
3006           signals. Restart=on-abnormal is an alternative for
3007           Restart=on-failure for services that shall be able to
3008           terminate and avoid restarts on certain errors, by
3009           indicating so with an unclean exit code. Restart=on-failure
3010           or Restart=on-abnormal is now the recommended setting for
3011           all long-running services.
3012
3013         * If the InaccessibleDirectories= service setting points to a
3014           mount point (or if there are any submounts contained within
3015           it), it is now attempted to completely unmount it, to make
3016           the file systems truly unavailable for the respective
3017           service.
3018
3019         * The ReadOnlyDirectories= service setting and
3020           systemd-nspawn's --read-only parameter are now recursively
3021           applied to all submounts, too.
3022
3023         * Mount units may now be created transiently via the bus APIs.
3024
3025         * The support for SysV and LSB init scripts has been removed
3026           from the systemd daemon itself. Instead, it is now
3027           implemented as a generator that creates native systemd units
3028           from these scripts when needed. This enables us to remove a
3029           substantial amount of legacy code from PID 1, following the
3030           fact that many distributions only ship a very small number
3031           of LSB/SysV init scripts nowadays.
3032
3033         * Privileged Xen (dom0) domains are not considered
3034           virtualization anymore by the virtualization detection
3035           logic. After all, they generally have unrestricted access to
3036           the hardware and usually are used to manage the unprivileged
3037           (domU) domains.
3038
3039         * systemd-tmpfiles gained a new "C" line type, for copying
3040           files or entire directories.
3041
3042         * systemd-tmpfiles "m" lines are now fully equivalent to "z"
3043           lines. So far, they have been non-globbing versions of the
3044           latter, and have thus been redundant. In future, it is
3045           recommended to only use "z". "m" has hence been removed
3046           from the documentation, even though it stays supported.
3047
3048         * A tmpfiles snippet to recreate the most basic structure in
3049           /var has been added. This is enough to create the /var/run →
3050           /run symlink and create a couple of structural
3051           directories. This allows systems to boot up with an empty or
3052           volatile /var. Of course, while with this change, the core OS
3053           now is capable with dealing with a volatile /var, not all
3054           user services are ready for it. However, we hope that sooner
3055           or later, many service daemons will be changed upstream so
3056           that they are able to automatically create their necessary
3057           directories in /var at boot, should they be missing. This is
3058           the first step to allow state-less systems that only require
3059           the vendor image for /usr to boot.
3060
3061         * systemd-nspawn has gained a new --tmpfs= switch to mount an
3062           empty tmpfs instance to a specific directory. This is
3063           particularly useful for making use of the automatic
3064           reconstruction of /var (see above), by passing --tmpfs=/var.
3065
3066         * Access modes specified in tmpfiles snippets may now be
3067           prefixed with "~", which indicates that they shall be masked
3068           by whether the existing file or directory is currently
3069           writable, readable or executable at all. Also, if specified,
3070           the sgid/suid/sticky bits will be masked for all
3071           non-directories.
3072
3073         * A new passive target unit "network-pre.target" has been
3074           added which is useful for services that shall run before any
3075           network is configured, for example firewall scripts.
3076
3077         * The "floppy" group that previously owned the /dev/fd*
3078           devices is no longer used. The "disk" group is now used
3079           instead. Distributions should probably deprecate usage of
3080           this group.
3081
3082         Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
3083         King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
3084         Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
3085         Lennart Poettering, Mantas Mikulėnas, Mark Eichin, Ronny
3086         Chevalier, Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel
3087         Andersen, Tom Gundersen, Umut Tezduyar Lindskog, Zbigniew
3088         Jędrzejewski-Szmek
3089
3090         — Berlin, 2014-06-11
3091
3092 CHANGES WITH 213:
3093
3094         * A new "systemd-timesyncd" daemon has been added for
3095           synchronizing the system clock across the network. It
3096           implements an SNTP client. In contrast to NTP
3097           implementations such as chrony or the NTP reference server,
3098           this only implements a client side, and does not bother with
3099           the full NTP complexity, focusing only on querying time from
3100           one remote server and synchronizing the local clock to
3101           it. Unless you intend to serve NTP to networked clients or
3102           want to connect to local hardware clocks, this simple NTP
3103           client should be more than appropriate for most
3104           installations. The daemon runs with minimal privileges, and
3105           has been hooked up with networkd to only operate when
3106           network connectivity is available. The daemon saves the
3107           current clock to disk every time a new NTP sync has been
3108           acquired, and uses this to possibly correct the system clock
3109           early at bootup, in order to accommodate for systems that
3110           lack an RTC such as the Raspberry Pi and embedded devices,
3111           and to make sure that time monotonically progresses on these
3112           systems, even if it is not always correct. To make use of
3113           this daemon, a new system user and group "systemd-timesync"
3114           needs to be created on installation of systemd.
3115
3116         * The queue "seqnum" interface of libudev has been disabled, as
3117           it was generally incompatible with device namespacing as
3118           sequence numbers of devices go "missing" if the devices are
3119           part of a different namespace.
3120
3121         * "systemctl list-timers" and "systemctl list-sockets" gained
3122           a --recursive switch for showing units of these types also
3123           for all local containers, similar in style to the already
3124           supported --recursive switch for "systemctl list-units".
3125
3126         * A new RebootArgument= setting has been added for service
3127           units, which may be used to specify a kernel reboot argument
3128           to use when triggering reboots with StartLimitAction=.
3129
3130         * A new FailureAction= setting has been added for service
3131           units which may be used to specify an operation to trigger
3132           when a service fails. This works similarly to
3133           StartLimitAction=, but unlike it, controls what is done
3134           immediately rather than only after several attempts to
3135           restart the service in question.
3136
3137         * hostnamed got updated to also expose the kernel name,
3138           release, and version on the bus. This is useful for
3139           executing commands like hostnamectl with the -H switch.
3140           systemd-analyze makes use of this to properly display
3141           details when running non-locally.
3142
3143         * The bootchart tool can now show cgroup information in the
31