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