chiark / gitweb /
ea16a659d77246bb6c9cd5fbde70a54a6f0b424a
[elogind.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 198:
4
5         * Configuration of unit files may now be extended via drop-in
6           files without having to edit/override the unit files
7           themselves. More specifically, if the administrator wants to
8           change one value for a service file foobar.service he can
9           now do so by dropping in a configuration snippet into
10           /etc/systemd/systemd/foobar.service.d/*.conf. The unit logic
11           will load all these snippets and apply them on top of the
12           main unit configuration file, possibly extending or
13           overriding its settings. Using these drop-in snippets is
14           generally nicer than the two earlier options for changing
15           unit files locally: copying the files from
16           /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
17           them there; or creating a new file in /etc/systemd/system/
18           that incorporates the original one via ".include". Drop-in
19           snippets into these .d/ directories can be placed in any
20           directory systems looks for units in, and the usual
21           overriding semantics between /usr/lib, /etc and /run apply
22           for them too.
23
24         * Most unit file settings which take lists of items can now be
25           reset by assigning the empty strings to them. For example,
26           normally, settings such as Environment=FOO=BAR append a new
27           environment variable assignment to the environment block,
28           each time they are used. By assigning Environment= the empty
29           string the environment block can be reset to empty. This is
30           particularly useful with the .d/*.conf drop-in snippets
31           mentioned above, since this allows resetting list settings
32           from vendor unit files via these drop-ins.
33
34         * systemctl gained a new "list-dependencies" command for
35           listing the dependencies of a unit recursively.
36
37         * Inhibitors are now honored and listed by "systemctl
38           suspend", "systemctl poweroff" (and similar) too, not only
39           GNOME. These commands will also list active sessions by
40           other users.
41
42         * Resource limits (as exposed by the various control group
43           controllers) can now be controlled dynamically at runtime
44           for all units. More specifically, you can now use a command
45           like "systemctl set-cgroup-attr foobar.service cpu.shares
46           2000" to alter the CPU shares a specific service gets. These
47           settings are stores persistently on disk, and thus allow the
48           administrator to easily adjust the resource usage of
49           services with a few simple commands. This dynamic resource
50           management logic is also available to other services via the
51           bus. Almost any kernel cgroup attribute and controller is
52           supported.
53
54         * systemd-vconsole-setup will now copy all font settings to
55           all open VTs, where it previously applied them only to the
56           foreground VT.
57
58         * libsystemd-login gained the new sd_session_get_tty() API
59           call.
60
61         * This release drops support with a few
62           legacy/distribution-specific LSB facility names when parsing
63           init scripts: $x-display-manager, $mail-transfer-agent,
64           $mail-transport-agent, $mail-transfer-agent, $smtp,
65           $null. Also, the mail-transfer-agent.target unit backing
66           this has been removed. Distributions which want to retain
67           compatibility with this should carry the burden for support
68           this themselves and patch support for these back in if they
69           really need to. Also, the facilities $syslog and $local_fs
70           are now ignored, since systemd does not support early-boot
71           LSB init scripts anymore, and these facilities are implied
72           anyway for normal services. syslog.target has also been
73           removed.
74
75         * There are new bus calls on PID1's Manager object for
76           canceling jobs, and removing snapshot units. Previously,
77           both calls were only available on the Job and Snapshot
78           objects themselves.
79
80         * systemd-journal-gatewayd gained SSL support.
81
82         * The various "environment" files, such as /etc/locale.conf
83           now support continuation lines with a backslash ("\") as
84           last character in the line, similar in style (but different)
85           to how this is supported in shells.
86
87         * For normal user processes the _SYSTEMD_USER_UNIT= field is
88           now implicitly appended to every log entry logged. systemctl
89           has been updated to filter by this field when operating on a
90           user systemd instance.
91
92         * nspawn will now implicitly add the CAP_AUDIT_WRITE and
93           CAP_AUDIT_CONTROL capabilities to the capabilities set for
94           the container. This makes it easier to boot unmodified
95           Fedora systems in a container, which however still requires
96           audit=0 to be passed on the kernel command line. Auditing in
97           kernel and userspace is unfortunately still too broken in
98           context of containers, hence we recommend compiling it out
99           of the kernel or using audit=0. Hopefully this will be fixed
100           one day for good in the kernel.
101
102         * nspawn gained the new --bind= and --bind-ro= parameters to
103           bind mount specific directories from the host into the
104           container.
105
106         * nspawn will now mount its own devpts file system instance
107           into the container, in order not to leake pty devices from
108           the host into the container.
109
110         * systemd will now read the firmware boot time performance
111           from the EFI variables, if the used boot loader supports
112           this, and take it into account for boot performance analysis
113           via "systemd-analyze". This is currently supported only in
114           conjunction with Gummiboot, but could be supported by other
115           boot loaders too. For details see:
116
117           http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
118
119         * A new generator has been added that automatically mounts the
120           EFI System Partition (ESP) to /boot, if that directory
121           exists, is empty, and no other partition has been configured
122           to be mounted there.
123
124         * logind will now send out PrepareForSleep(false) out
125           unconditionally, after coming back from suspend. This may be
126           used by applications as asynchronous notification for
127           system resume events.
128
129         * "systemctl unlock-sessions" has been added, that allows
130           unlocking the screens of all user sessions at once, similar
131           how "systemctl lock-sessions" already locked all users
132           sessions. This is backed by a new D-Bus call UnlockSessions().
133
134         * "loginctl seat-status" will now show the master device of a
135           seat. (i.e. the device of a seat that needs to be around for
136           the seat to be considered available, usually the graphics
137           card).
138
139         * tmpfiles gained a new "X" line type, that allows
140           configuration of files and directories (with wildcards) that
141           shall be excluded from automatic cleanup ("aging").
142
143         * udev permission rules are now only applied for "add" events,
144           no longer for "change" events.
145
146         * The log messages for lid events and power/sleep keypresses
147           now carry a message ID.
148
149         * We now have a substantially larger unit test suite, but this
150           continues to be work in progress.
151
152         * udevadm hwdb gained a new --root= parameter to change the
153           root directory to operate relative to.
154
155         * logind will now issue a background sync() request to the kernel
156           early at shutdown, so that dirty buffers are flushed to disk early
157           instead of at the last moment, in order to optimize shutdown
158           times a little.
159
160         * A new bootctl tool has been added that is an interface for
161           certain boot loader operations. This is currently a preview
162           and is likely to be extended into a small mechanism daemon
163           like timedated, localed, hostnamed, and can be used by
164           graphical UIs to enumerate available boot options, and
165           request boot into firmware operations.
166
167         * systemd-bootchart has been relicensed to LGPLv2.1+ to match
168           the rest of the package. It also has been updated to work
169           correctly in initrds.
170
171         * Policykit previously has been runtime optional, and is now
172           also compile time optional via a configure switch.
173
174         * systemd-analyze has been reimplemented in C. Also "systemctl
175           dot" has moved into systemd-analyze.
176
177         * "systemctl status" with no further parameters will now print
178           the status of all active or failed units.
179
180         * Operations such as "systemctl start" can now be executed
181           with a new mode "--irreversible" which may be used to queue
182           operations that cannot accidentally be reversed by a later
183           job queuing. This is by default use to make shutdown
184           requests more robust.
185
186         * The Python API of systemd now gained a new module for
187           reading journal files.
188
189         * A new tool kernel-install has been added that can install
190           kernel images according to the Boot Loader Specification:
191
192           http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
193
194         * Boot time console output has been improved to provide
195           animated boot time output.
196
197         * A new tool systemd-activate has been added which can be used
198           to test socket activation with, directly from the command
199           line. This should make it much easier to test and debug
200           socket activation in daemons.
201
202         * journalctl gained a new "--reverse" (or -r) option to show
203           journal output in reverse order (i.e. newest line first).
204
205         * journalctl gained a new "--user-unit=" option, that works
206           similar to "--unit=" but filters for user units rather than
207           system units.
208
209         * A number of unit files to ease adoption of systemd in
210           initrds has been added. This moves some minimal logic from
211           the various initrd implementations into systemd proper.
212
213         * The journal files are now owned by a new group
214           "systemd-journal", which exists specifically to allow access
215           to the journal, and nothing else. Previously, we used the
216           "adm" group for that, which however possible covers more
217           than just journal/log file access. This new group is now
218           already used by systemd-journal-gatewayd to ensure this
219           daemon gets access to the journal files and as little else
220           as possible. Note that "make install" will also set FS ACLs
221           up for /var/log/journal to give "adm" and "wheel" read
222           access to it, in addition to "systemd-journal" which owns
223           the journal files. We recommend that packaging scripts also
224           add read access to "adm", "wheel" to /var/log/journal, and
225           all existing/future journal files. To normal users and
226           administrators little changes, however packagers need to
227           ensure to create the "systemd-journal" system group at
228           package installation time.
229
230         * The systemd-journal-gatewayd now runs as unprivileged user
231           systemd-journal-gateway:systemd-journal-gateway. Packaging
232           scripts need to create these system user/group at
233           installation time.
234
235         * timedated now exposes a new boolean property CanNTP that
236           indicates whether a local NTP service is available or not.
237
238         * systemd-detect-virt will now also detect xen PVs
239
240         * The pstore file system is now mounted by default, if it is
241           available.
242
243         Contributions from: Adel Gadllah, Aleksander Morgado, Auke
244         Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
245         Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
246         Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
247         Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
248         Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
249         Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
250         Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
251         Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
252         Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
253         Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
254         Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
255         Gundersen, Umut Tezduyar, William Giokas, Zbigniew
256         Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
257
258 CHANGES WITH 197:
259
260         * Timer units now support calendar time events in addition to
261           monotonic time events. That means you can now trigger a unit
262           based on a calendar time specification such as "Thu,Fri
263           2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
264           or fifth day of any month of the year 2013, given that it is
265           a thursday or friday. This brings timer event support
266           considerably closer to cron's capabilities. For details on
267           the supported calendar time specification language see
268           systemd.time(7).
269
270         * udev now supports a number of different naming policies for
271           network interfaces for predictable names, and a combination
272           of these policies is now the default. Please see this wiki
273           document for details:
274
275           http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
276
277         * Auke Kok's bootchart implementation has been added to the
278           systemd tree. It's an optional component that can graph the
279           boot in quite some detail. It's one of the best bootchart
280           implementations around and minimal in its code and
281           dependencies.
282
283         * nss-myhostname has been integrated into the systemd source
284           tree. nss-myhostname guarantees that the local hostname
285           always stays resolvable via NSS. It has been a weak
286           requirement of systemd-hostnamed since a long time, and
287           since its code is actually trivial we decided to just
288           include it in systemd's source tree. It can be turned off
289           with a configure switch.
290
291         * The read-ahead logic is now capable of properly detecting
292           whether a btrfs file system is on SSD or rotating media, in
293           order to optimize the read-ahead scheme. Previously, it was
294           only capable of detecting this on traditional file systems
295           such as ext4.
296
297         * In udev, additional device properties are now read from the
298           IAB in addition to the OUI database. Also, Bluetooth company
299           identities are attached to the devices as well.
300
301         * In service files %U may be used as specifier that is
302           replaced by the configured user name of the service.
303
304         * nspawn may now be invoked without a controlling TTY. This
305           makes it suitable for invocation as its own service. This
306           may be used to set up a simple containerized server system
307           using only core OS tools.
308
309         * systemd and nspawn can now accept socket file descriptors
310           when they are started for socket activation. This enables
311           implementation of socket activated nspawn
312           containers. i.e. think about autospawning an entire OS image
313           when the first SSH or HTTP connection is received. We expect
314           that similar functionality will also be added to libvirt-lxc
315           eventually.
316
317         * journalctl will now suppress ANSI color codes when
318           presenting log data.
319
320         * systemctl will no longer show control group information for
321           a unit if a the control group is empty anyway.
322
323         * logind can now automatically suspend/hibernate/shutdown the
324           system on idle.
325
326         * /etc/machine-info and hostnamed now also expose the chassis
327           type of the system. This can be used to determine whether
328           the local system is a laptop, desktop, handset or
329           tablet. This information may either be configured by the
330           user/vendor or is automatically determined from ACPI and DMI
331           information if possible.
332
333         * A number of PolicyKit actions are now bound together with
334           "imply" rules. This should simplify creating UIs because
335           many actions will now authenticate similar ones as well.
336
337         * Unit files learnt a new condition ConditionACPower= which
338           may be used to conditionalize a unit depending on whether an
339           AC power source is connected or not, of whether the system
340           is running on battery power.
341
342         * systemctl gained a new "is-failed" verb that may be used in
343           shell scripts and suchlike to check whether a specific unit
344           is in the "failed" state.
345
346         * The EnvironmentFile= setting in unit files now supports file
347           globbing, and can hence be used to easily read a number of
348           environment files at once.
349
350         * systemd will no longer detect and recognize specific
351           distributions. All distribution-specific #ifdeffery has been
352           removed, systemd is now fully generic and
353           distribution-agnostic. Effectively, not too much is lost as
354           a lot of the code is still accessible via explicit configure
355           switches. However, support for some distribution specific
356           legacy configuration file formats has been dropped. We
357           recommend distributions to simply adopt the configuration
358           files everybody else uses now and convert the old
359           configuration from packaging scripts. Most distributions
360           already did that. If that's not possible or desirable,
361           distributions are welcome to forward port the specific
362           pieces of code locally from the git history.
363
364         * When logging a message about a unit systemd will now always
365           log the unit name in the message meta data.
366
367         * localectl will now also discover system locale data that is
368           not stored in locale archives, but directly unpacked.
369
370         * logind will no longer unconditionally use framebuffer
371           devices as seat masters, i.e. as devices that are required
372           to be existing before a seat is considered preset. Instead,
373           it will now look for all devices that are tagged as
374           "seat-master" in udev. By default framebuffer devices will
375           be marked as such, but depending on local systems other
376           devices might be marked as well. This may be used to
377           integrate graphics cards using closed source drivers (such
378           as NVidia ones) more nicely into logind. Note however, that
379           we recommend using the open source NVidia drivers instead,
380           and no udev rules for the closed-source drivers will be
381           shipped from us upstream.
382
383         Contributions from: Adam Williamson, Alessandro Crismani, Auke
384         Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
385         Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
386         Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
387         Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
388         Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
389         Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
390         Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
391         Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
392         Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
393         Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
394         Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
395         Jędrzejewski-Szmek
396
397 CHANGES WITH 196:
398
399         * udev gained support for loading additional device properties
400           from an indexed database that is keyed by vendor/product IDs
401           and similar device identifiers. For the beginning this
402           "hwdb" is populated with data from the well-known PCI and
403           USB database, but also includes PNP, ACPI and OID data. In
404           the longer run this indexed database shall grow into
405           becoming the one central database for non-essential
406           userspace device metadata. Previously, data from the PCI/USB
407           database was only attached to select devices, since the
408           lookup was a relatively expensive operation due to O(n) time
409           complexity (with n being the number of entries in the
410           database). Since this is now O(1), we decided to add in this
411           data for all devices where this is available, by
412           default. Note that the indexed database needs to be rebuilt
413           when new data files are installed. To achieve this you need
414           to update your packaging scripts to invoke "udevadm hwdb
415           --update" after installation of hwdb data files. For
416           RPM-based distributions we introduced the new
417           %udev_hwdb_update macro for this purpose.
418
419         * The Journal gained support for the "Message Catalog", an
420           indexed database to link up additional information with
421           journal entries. For further details please check:
422
423           http://www.freedesktop.org/wiki/Software/systemd/catalog
424
425           The indexed message catalog database also needs to be
426           rebuilt after installation of message catalog files. Use
427           "journalctl --update-catalog" for this. For RPM-based
428           distributions we introduced the %journal_catalog_update
429           macro for this purpose.
430
431         * The Python Journal bindings gained support for the standard
432           Python logging framework.
433
434         * The Journal API gained new functions for checking whether
435           the underlying file system of a journal file is capable of
436           properly reporting file change notifications, or whether
437           applications that want to reflect journal changes "live"
438           need to recheck journal files continously in appropriate
439           time intervals.
440
441         * It is now possible to set the "age" field for tmpfiles
442           entries to 0, indicating that files matching this entry
443           shall always be removed when the directories are cleaned up.
444
445         * coredumpctl gained a new "gdb" verb which invokes gdb
446           right-away on the selected coredump.
447
448         * There's now support for "hybrid sleep" on kernels that
449           support this, in addition to "suspend" and "hibernate". Use
450           "systemctl hybrid-sleep" to make use of this.
451
452         * logind's HandleSuspendKey= setting (and related settings)
453           now gained support for a new "lock" setting to simply
454           request the screen lock on all local sessions, instead of
455           actually executing a suspend or hibernation.
456
457         * systemd will now mount the EFI variables file system by
458           default.
459
460         * Socket units now gained support for configuration of the
461           SMACK security label.
462
463         * timedatectl will now output the time of the last and next
464           daylight saving change.
465
466         * We dropped support for various legacy and distro-specific
467           concepts, such as insserv, early-boot SysV services
468           (i.e. those for non-standard runlevels such as 'b' or 'S')
469           or ArchLinux /etc/rc.conf support. We recommend the
470           distributions who still need support this to either continue
471           to maintain the necessary patches downstream, or find a
472           different solution. (Talk to us if you have questions!)
473
474         * Various systemd components will now bypass PolicyKit checks
475           for root and otherwise handle properly if PolicyKit is not
476           found to be around. This should fix most issues for
477           PolicyKit-less systems. Quite frankly this should have been
478           this way since day one. It is absolutely our intention to
479           make systemd work fine on PolicyKit-less systems, and we
480           consider it a bug if something doesn't work as it should if
481           PolicyKit is not around.
482
483         * For embedded systems it is now possible to build udev and
484           systemd without blkid and/or kmod support.
485
486         * "systemctl switch-root" is now capable of switching root
487           more than once. I.e. in addition to transitions from the
488           initrd to the host OS it is now possible to transition to
489           further OS images from the host. This is useful to implement
490           offline updating tools.
491
492         * Various other additions have been made to the RPM macros
493           shipped with systemd. Use %udev_rules_update() after
494           installing new udev rules files. %_udevhwdbdir,
495           %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
496           %_sysctldir are now available which resolve to the right
497           directories for packages to place various data files in.
498
499         * journalctl gained the new --full switch (in addition to
500           --all, to disable ellipsation for long messages.
501
502         Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
503         Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
504         Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
505         Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
506         Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
507         Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
508         Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
509         Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
510         Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
511
512 CHANGES WITH 195:
513
514         * journalctl gained new --since= and --until= switches to
515           filter by time. It also now supports nice filtering for
516           units via --unit=/-u.
517
518         * Type=oneshot services may use ExecReload= and do the
519           right thing.
520
521         * The journal daemon now supports time-based rotation and
522           vacuuming, in addition to the usual disk-space based
523           rotation.
524
525         * The journal will now index the available field values for
526           each field name. This enables clients to show pretty drop
527           downs of available match values when filtering. The bash
528           completion of journalctl has been updated
529           accordingly. journalctl gained a new switch -F to list all
530           values a certain field takes in the journal database.
531
532         * More service events are now written as structured messages
533           to the journal, and made recognizable via message IDs.
534
535         * The timedated, localed and hostnamed mini-services which
536           previously only provided support for changing time, locale
537           and hostname settings from graphical DEs such as GNOME now
538           also have a minimal (but very useful) text-based client
539           utility each. This is probably the nicest way to changing
540           these settings from the command line now, especially since
541           it lists available options and is fully integrated with bash
542           completion.
543
544         * There's now a new tool "systemd-coredumpctl" to list and
545           extract coredumps from the journal.
546
547         * We now install a README each in /var/log/ and
548           /etc/rc.d/init.d explaining where the system logs and init
549           scripts went. This hopefully should help folks who go to
550           that dirs and look into the otherwise now empty void and
551           scratch their heads.
552
553         * When user-services are invoked (by systemd --user) the
554           $MANAGERPID env var is set to the PID of systemd.
555
556         * SIGRTMIN+24 when sent to a --user instance will now result
557           in immediate termination of systemd.
558
559         * gatewayd received numerous feature additions such as a
560           "follow" mode, for live syncing and filtering.
561
562         * browse.html now allows filtering and showing detailed
563           information on specific entries. Keyboard navigation and
564           mouse screen support has been added.
565
566         * gatewayd/journalctl now supports HTML5/JSON
567           Server-Sent-Events as output.
568
569         * The SysV init script compatibility logic will now
570           heuristically determine whether a script supports the
571           "reload" verb, and only then make this available as
572           "systemctl reload".
573
574         * "systemctl status --follow" has been removed, use "journalctl
575           -u" instead.
576
577         * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
578           have been removed since they are hardly useful to be
579           configured.
580
581         * And I'd like to take the opportunity to specifically mention
582           Zbigniew for his great contributions. Zbigniew, you rock!
583
584         Contributions from: Andrew Eikum, Christian Hesse, Colin
585         Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
586         Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
587         Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
588         Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
589         Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
590         Jędrzejewski-Szmek, Сковорода Никита Андреевич
591
592 CHANGES WITH 194:
593
594         * If /etc/vconsole.conf is non-existent or empty we will no
595           longer load any console font or key map at boot by
596           default. Instead the kernel defaults will be left
597           intact. This is definitely the right thing to do, as no
598           configuration should mean no configuration, and hard-coding
599           font names that are different on all archs is probably a bad
600           idea. Also, the kernel default key map and font should be
601           good enough for most cases anyway, and mostly identical to
602           the userspace fonts/key maps we previously overloaded them
603           with. If distributions want to continue to default to a
604           non-kernel font or key map they should ship a default
605           /etc/vconsole.conf with the appropriate contents.
606
607         Contributions from: Colin Walters, Daniel J Walsh, Dave
608         Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
609         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
610
611 CHANGES WITH 193:
612
613         * journalctl gained a new --cursor= switch to show entries
614           starting from the specified location in the journal.
615
616         * We now enforce a size limit on journal entry fields exported
617           with "-o json" in journalctl. Fields larger than 4K will be
618           assigned null. This can be turned off with --all.
619
620         * An (optional) journal gateway daemon is now available as
621           "systemd-journal-gatewayd.service". This service provides
622           access to the journal via HTTP and JSON. This functionality
623           will be used to implement live log synchronization in both
624           pull and push modes, but has various other users too, such
625           as easy log access for debugging of embedded devices. Right
626           now it is already useful to retrieve the journal via HTTP:
627
628           # systemctl start systemd-journal-gatewayd.service
629           # wget http://localhost:19531/entries
630
631           This will download the journal contents in a
632           /var/log/messages compatible format. The same as JSON:
633
634           # curl -H"Accept: application/json" http://localhost:19531/entries
635
636           This service is also accessible via a web browser where a
637           single static HTML5 app is served that uses the JSON logic
638           to enable the user to do some basic browsing of the
639           journal. This will be extended later on. Here's an example
640           screenshot of this app in its current state:
641
642           http://0pointer.de/public/journal-gatewayd
643
644         Contributions from: Kay Sievers, Lennart Poettering, Robert
645         Milasan, Tom Gundersen
646
647 CHANGES WITH 192:
648
649         * The bash completion logic is now available for journalctl
650           too.
651
652         * We don't mount the "cpuset" controller anymore together with
653           "cpu" and "cpuacct", as "cpuset" groups generally cannot be
654           started if no parameters are assigned to it. "cpuset" hence
655           broke code that assumed it it could create "cpu" groups and
656           just start them.
657
658         * journalctl -f will now subscribe to terminal size changes,
659           and line break accordingly.
660
661         Contributions from: Dave Reisner, Kay Sievers, Lennart
662         Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
663
664 CHANGES WITH 191:
665
666         * nspawn will now create a symlink /etc/localtime in the
667           container environment, copying the host's timezone
668           setting. Previously this has been done via a bind mount, but
669           since symlinks cannot be bind mounted this has now been
670           changed to create/update the appropriate symlink.
671
672         * journalctl -n's line number argument is now optional, and
673           will default to 10 if omitted.
674
675         * journald will now log the maximum size the journal files may
676           take up on disk. This is particularly useful if the default
677           built-in logic of determining this parameter from the file
678           system size is used. Use "systemctl status
679           systemd-journald.service" to see this information.
680
681         * The multi-seat X wrapper tool has been stripped down. As X
682           is now capable of enumerating graphics devices via udev in a
683           seat-aware way the wrapper is not strictly necessary
684           anymore. A stripped down temporary stop-gap is still shipped
685           until the upstream display managers have been updated to
686           fully support the new X logic. Expect this wrapper to be
687           removed entirely in one of the next releases.
688
689         * HandleSleepKey= in logind.conf has been split up into
690           HandleSuspendKey= and HandleHibernateKey=. The old setting
691           is not available anymore. X11 and the kernel are
692           distuingishing between these keys and we should too. This
693           also means the inhibition lock for these keys has been split
694           into two.
695
696         Contributions from: Dave Airlie, Eelco Dolstra, Lennart
697         Poettering, Lukas Nykryn, Václav Pavlín
698
699 CHANGES WITH 190:
700
701         * Whenever a unit changes state we'll now log this to the
702           journal and show along the unit's own log output in
703           "systemctl status".
704
705         * ConditionPathIsMountPoint= can now properly detect bind
706           mount points too. (Previously, a bind mount of one file
707           system to another place in the same file system could not be
708           detected as mount, since they shared struct stat's st_dev
709           field.)
710
711         * We will now mount the cgroup controllers cpu, cpuacct,
712           cpuset and the controllers net_cls, net_prio together by
713           default.
714
715         * nspawn containers will now have a virtualized boot
716           ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
717           over with a randomized ID at container initialization). This
718           has the effect of making "journalctl -b" do the right thing
719           in a container.
720
721         * The JSON output journal serialization has been updated not
722           to generate "endless" list objects anymore, but rather one
723           JSON object per line. This is more in line how most JSON
724           parsers expect JSON objects. The new output mode
725           "json-pretty" has been added to provide similar output, but
726           neatly aligned for readability by humans.
727
728         * We dropped all explicit sync() invocations in the shutdown
729           code. The kernel does this implicitly anyway in the kernel
730           reboot() syscall. halt(8)'s -n option is now a compatibility
731           no-op.
732
733         * We now support virtualized reboot() in containers, as
734           supported by newer kernels. We will fall back to exit() if
735           CAP_SYS_REBOOT is not available to the container. Also,
736           nspawn makes use of this now and will actually reboot the
737           container if the containerized OS asks for that.
738
739         * journalctl will only show local log output by default
740           now. Use --merge (-m) to show remote log output, too.
741
742         * libsystemd-journal gained the new sd_journal_get_usage()
743           call to determine the current disk usage of all journal
744           files. This is exposed in the new "journalctl --disk-usage"
745           command.
746
747         * journald gained a new configuration setting SplitMode= in
748           journald.conf which may be used to control how user journals
749           are split off. See journald.conf(5) for details.
750
751         * A new condition type ConditionFileNotEmpty= has been added.
752
753         * tmpfiles' "w" lines now support file globbing, to write
754           multiple files at once.
755
756         * We added Python bindings for the journal submission
757           APIs. More Python APIs for a number of selected APIs will
758           likely follow. Note that we intend to add native bindings
759           only for the Python language, as we consider it common
760           enough to deserve bindings shipped within systemd. There are
761           various projects outside of systemd that provide bindings
762           for languages such as PHP or Lua.
763
764         * Many conditions will now resolve specifiers such as %i. In
765           addition, PathChanged= and related directives of .path units
766           now support specifiers as well.
767
768         * There's now a new RPM macro definition for the system preset
769           dir: %_presetdir.
770
771         * journald will now warn if it can't foward a message to the
772           syslog daemon because it's socket is full.
773
774         * timedated will no longer write or process /etc/timezone,
775           except on Debian. As we do not support late mounted /usr
776           anymore /etc/localtime always being a symlink is now safe,
777           and hence the information in /etc/timezone is not necessary
778           anymore.
779
780         * logind will now always reserve one VT for a text getty (VT6
781           by default). Previously if more than 6 X sessions where
782           started they took up all the VTs with auto-spawned gettys,
783           so that no text gettys were available anymore.
784
785         * udev will now automatically inform the btrfs kernel logic
786           about btrfs RAID components showing up. This should make
787           simple hotplug based btrfs RAID assembly work.
788
789         * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
790           (but not for its children which will stay at the kernel
791           default). This should allow setups with a lot more listening
792           sockets.
793
794         * systemd will now always pass the configured timezone to the
795           kernel at boot. timedated will do the same when the timezone
796           is changed.
797
798         * logind's inhibition logic has been updated. By default,
799           logind will now handle the lid switch, the power and sleep
800           keys all the time, even in graphical sessions. If DEs want
801           to handle these events on their own they should take the new
802           handle-power-key, handle-sleep-key and handle-lid-switch
803           inhibitors during their runtime. A simple way to achiveve
804           that is to invoke the DE wrapped in an invocation of:
805
806           systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
807
808         * Access to unit operations is now checked via SELinux taking
809           the unit file label and client process label into account.
810
811         * systemd will now notify the administrator in the journal
812           when he over-mounts a non-empty directory.
813
814         * There are new specifiers that are resolved in unit files,
815           for the host name (%H), the machine ID (%m) and the boot ID
816           (%b).
817
818         Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
819         Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
820         Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
821         Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
822         Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
823         Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
824         Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
825
826 CHANGES WITH 189:
827
828         * Support for reading structured kernel messages from
829           /dev/kmsg has now been added and is enabled by default.
830
831         * Support for reading kernel messages from /proc/kmsg has now
832           been removed. If you want kernel messages in the journal
833           make sure to run a recent kernel (>= 3.5) that supports
834           reading structured messages from /dev/kmsg (see
835           above). /proc/kmsg is now exclusive property of classic
836           syslog daemons again.
837
838         * The libudev API gained the new
839           udev_device_new_from_device_id() call.
840
841         * The logic for file system namespace (ReadOnlyDirectory=,
842           ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
843           require pivot_root() anymore. This means fewer temporary
844           directories are created below /tmp for this feature.
845
846         * nspawn containers will now see and receive all submounts
847           made on the host OS below the root file system of the
848           container.
849
850         * Forward Secure Sealing is now supported for Journal files,
851           which provide cryptographical sealing of journal files so
852           that attackers cannot alter log history anymore without this
853           being detectable. Lennart will soon post a blog story about
854           this explaining it in more detail.
855
856         * There are two new service settings RestartPreventExitStatus=
857           and SuccessExitStatus= which allow configuration of exit
858           status (exit code or signal) which will be excepted from the
859           restart logic, resp. consider successful.
860
861         * journalctl gained the new --verify switch that can be used
862           to check the integrity of the structure of journal files and
863           (if Forward Secure Sealing is enabled) the contents of
864           journal files.
865
866         * nspawn containers will now be run with /dev/stdin, /dev/fd/
867           and similar symlinks pre-created. This makes running shells
868           as container init process a lot more fun.
869
870         * The fstab support can now handle PARTUUID= and PARTLABEL=
871           entries.
872
873         * A new ConditionHost= condition has been added to match
874           against the hostname (with globs) and machine ID. This is
875           useful for clusters where a single OS image is used to
876           provision a large number of hosts which shall run slightly
877           different sets of services.
878
879         * Services which hit the restart limit will now be placed in a
880           failure state.
881
882         Contributions from: Bertram Poettering, Dave Reisner, Huang
883         Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
884         Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
885
886 CHANGES WITH 188:
887
888         * When running in --user mode systemd will now become a
889           subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
890           tree a lot more organized.
891
892         * A new PartOf= unit dependency type has been introduced that
893           may be used to group services in a natural way.
894
895         * "systemctl enable" may now be used to enable instances of
896           services.
897
898         * journalctl now prints error log levels in red, and
899           warning/notice log levels in bright white. It also supports
900           filtering by log level now.
901
902         * cgtop gained a new -n switch (similar to top), to configure
903           the maximum number of iterations to run for. It also gained
904           -b, to run in batch mode (accepting no input).
905
906         * The suffix ".service" may now be ommited on most systemctl
907           command lines involving service unit names.
908
909         * There's a new bus call in logind to lock all sessions, as
910           well as a loginctl verb for it "lock-sessions".
911
912         * libsystemd-logind.so gained a new call sd_journal_perror()
913           that works similar to libc perror() but logs to the journal
914           and encodes structured information about the error number.
915
916         * /etc/crypttab entries now understand the new keyfile-size=
917           option.
918
919         * shutdown(8) now can send a (configurable) wall message when
920           a shutdown is cancelled.
921
922         * The mount propagation mode for the root file system will now
923           default to "shared", which is useful to make containers work
924           nicely out-of-the-box so that they receive new mounts from
925           the host. This can be undone locally by running "mount
926           --make-rprivate /" if needed.
927
928         * The prefdm.service file has been removed. Distributions
929           should maintain this unit downstream if they intend to keep
930           it around. However, we recommend writing normal unit files
931           for display managers instead.
932
933         * Since systemd is a crucial part of the OS we will now
934           default to a number of compiler switches that improve
935           security (hardening) such as read-only relocations, stack
936           protection, and suchlike.
937
938         * The TimeoutSec= setting for services is now split into
939           TimeoutStartSec= and TimeoutStopSec= to allow configuration
940           of individual time outs for the start and the stop phase of
941           the service.
942
943         Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
944         Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
945         Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
946         Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
947         Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
948         Gundersen, Zbigniew Jędrzejewski-Szmek
949
950 CHANGES WITH 187:
951
952         * The journal and id128 C APIs are now fully documented as man
953           pages.
954
955         * Extra safety checks have been added when transitioning from
956           the initial RAM disk to the main system to avoid accidental
957           data loss.
958
959         * /etc/crypttab entries now understand the new keyfile-offset=
960           option.
961
962         * systemctl -t can now be used to filter by unit load state.
963
964         * The journal C API gained the new sd_journal_wait() call to
965           make writing synchronous journal clients easier.
966
967         * journalctl gained the new -D switch to show journals from a
968           specific directory.
969
970         * journalctl now displays a special marker between log
971           messages of two different boots.
972
973         * The journal is now explicitly flushed to /var via a service
974           systemd-journal-flush.service, rather than implicitly simply
975           by seeing /var/log/journal to be writable.
976
977         * journalctl (and the journal C APIs) can now match for much
978           more complex expressions, with alternatives and
979           disjunctions.
980
981         * When transitioning from the initial RAM disk to the main
982           system we will now kill all processes in a killing spree to
983           ensure no processes stay around by accident.
984
985         * Three new specifiers may be used in unit files: %u, %h, %s
986           resolve to the user name, user home directory resp. user
987           shell. This is useful for running systemd user instances.
988
989         * We now automatically rotate journal files if their data
990           object hash table gets a fill level > 75%. We also size the
991           hash table based on the configured maximum file size. This
992           together should lower hash collisions drastically and thus
993           speed things up a bit.
994
995         * journalctl gained the new "--header" switch to introspect
996           header data of journal files.
997
998         * A new setting SystemCallFilters= has been added to services
999           which may be used to apply blacklists or whitelists to
1000           system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
1001
1002         * nspawn gained a new --link-journal= switch (and quicker: -j)
1003           to link the container journal with the host. This makes it
1004           very easy to centralize log viewing on the host for all
1005           guests while still keeping the journal files separated.
1006
1007         * Many bugfixes and optimizations
1008
1009         Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
1010         Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
1011         Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
1012         Jędrzejewski-Szmek
1013
1014 CHANGES WITH 186:
1015
1016         * Several tools now understand kernel command line arguments,
1017           which are only read when run in an initial RAM disk. They
1018           usually follow closely their normal counterparts, but are
1019           prefixed with rd.
1020
1021         * There's a new tool to analyze the readahead files that are
1022           automatically generated at boot. Use:
1023
1024           /usr/lib/systemd/systemd-readahead analyze /.readahead
1025
1026         * We now provide an early debug shell on tty9 if this enabled. Use:
1027
1028           systemctl enable debug-shell.service
1029
1030         * All plymouth related units have been moved into the Plymouth
1031           package. Please make sure to upgrade your Plymouth version
1032           as well.
1033
1034         * systemd-tmpfiles now supports getting passed the basename of
1035           a configuration file only, in which case it will look for it
1036           in all appropriate directories automatically.
1037
1038         * udevadm info now takes a /dev or /sys path as argument, and
1039           does the right thing. Example:
1040
1041           udevadm info /dev/sda
1042           udevadm info /sys/class/block/sda
1043
1044         * systemctl now prints a warning if a unit is stopped but a
1045           unit that might trigger it continues to run. Example: a
1046           service is stopped but the socket that activates it is left
1047           running.
1048
1049         * "systemctl status" will now mention if the log output was
1050           shortened due to rotation since a service has been started.
1051
1052         * The journal API now exposes functions to determine the
1053           "cutoff" times due to rotation.
1054
1055         * journald now understands SIGUSR1 and SIGUSR2 for triggering
1056           immediately flushing of runtime logs to /var if possible,
1057           resp. for triggering immediate rotation of the journal
1058           files.
1059
1060         * It is now considered an error if a service is attempted to
1061           be stopped that is not loaded.
1062
1063         * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
1064
1065         * systemd-analyze now supports Python 3
1066
1067         * tmpfiles now supports cleaning up directories via aging
1068           where the first level dirs are always kept around but
1069           directories beneath it automatically aged. This is enabled
1070           by prefixing the age field with '~'.
1071
1072         * Seat objects now expose CanGraphical, CanTTY properties
1073           which is required to deal with very fast bootups where the
1074           display manager might be running before the graphics drivers
1075           completed initialization.
1076
1077         * Seat objects now expose a State property.
1078
1079         * We now include RPM macros for service enabling/disabling
1080           based on the preset logic. We recommend RPM based
1081           distributions to make use of these macros if possible. This
1082           makes it simpler to reuse RPM spec files across
1083           distributions.
1084
1085         * We now make sure that the collected systemd unit name is
1086           always valid when services log to the journal via
1087           STDOUT/STDERR.
1088
1089         * There's a new man page kernel-command-line(7) detailing all
1090           command line options we understand.
1091
1092         * The fstab generator may now be disabled at boot by passing
1093           fstab=0 on the kernel command line.
1094
1095         * A new kernel command line option modules-load= is now understood
1096           to load a specific kernel module statically, early at boot.
1097
1098         * Unit names specified on the systemctl command line are now
1099           automatically escaped as needed. Also, if file system or
1100           device paths are specified they are automatically turned
1101           into the appropriate mount or device unit names. Example:
1102
1103           systemctl status /home
1104           systemctl status /dev/sda
1105
1106         * The SysVConsole= configuration option has been removed from
1107           system.conf parsing.
1108
1109         * The SysV search path is no longer exported on the D-Bus
1110           Manager object.
1111
1112         * The Names= option is been removed from unit file parsing.
1113
1114         * There's a new man page bootup(7) detailing the boot process.
1115
1116         * Every unit and every generator we ship with systemd now
1117           comes with full documentation. The self-explanatory boot is
1118           complete.
1119
1120         * A couple of services gained "systemd-" prefixes in their
1121           name if they wrap systemd code, rather than only external
1122           code. Among them fsck@.service which is now
1123           systemd-fsck@.service.
1124
1125         * The HaveWatchdog property has been removed from the D-Bus
1126           Manager object.
1127
1128         * systemd.confirm_spawn= on the kernel command line should now
1129           work sensibly.
1130
1131         * There's a new man page crypttab(5) which details all options
1132           we actually understand.
1133
1134         * systemd-nspawn gained a new --capability= switch to pass
1135           additional capabilities to the container.
1136
1137         * timedated will now read known NTP implementation unit names
1138           from /usr/lib/systemd/ntp-units.d/*.list,
1139           systemd-timedated-ntp.target has been removed.
1140
1141         * journalctl gained a new switch "-b" that lists log data of
1142           the current boot only.
1143
1144         * The notify socket is in the abstract namespace again, in
1145           order to support daemons which chroot() at start-up.
1146
1147         * There is a new Storage= configuration option for journald
1148           which allows configuration of where log data should go. This
1149           also provides a way to disable journal logging entirely, so
1150           that data collected is only forwarded to the console, the
1151           kernel log buffer or another syslog implementation.
1152
1153         * Many bugfixes and optimizations
1154
1155         Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
1156         David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
1157         Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
1158         Shawn Landden, Tom Gundersen
1159
1160 CHANGES WITH 185:
1161
1162         * "systemctl help <unit>" now shows the man page if one is
1163           available.
1164
1165         * Several new man pages have been added.
1166
1167         * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
1168           MaxLevelConsole= can now be specified in
1169           journald.conf. These options allow reducing the amount of
1170           data stored on disk or forwarded by the log level.
1171
1172         * TimerSlackNSec= can now be specified in system.conf for
1173           PID1. This allows system-wide power savings.
1174
1175         Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
1176         Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
1177         Matthias Clasen
1178
1179 CHANGES WITH 184:
1180
1181         * logind is now capable of (optionally) handling power and
1182           sleep keys as well as the lid switch.
1183
1184         * journalctl now understands the syntax "journalctl
1185           /usr/bin/avahi-daemon" to get all log output of a specific
1186           daemon.
1187
1188         * CapabilityBoundingSet= in system.conf now also influences
1189           the capability bound set of usermode helpers of the kernel.
1190
1191         Contributions from: Daniel Drake, Daniel J. Walsh, Gert
1192         Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
1193         Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
1194         Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
1195
1196 CHANGES WITH 183:
1197
1198         * Note that we skipped 139 releases here in order to set the
1199           new version to something that is greater than both udev's
1200           and systemd's most recent version number.
1201
1202         * udev: all udev sources are merged into the systemd source tree now.
1203           All future udev development will happen in the systemd tree. It
1204           is still fully supported to use the udev daemon and tools without
1205           systemd running, like in initramfs or other init systems. Building
1206           udev though, will require the *build* of the systemd tree, but
1207           udev can be properly *run* without systemd.
1208
1209         * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
1210           should be used to create dead device nodes as workarounds for broken
1211           subsystems.
1212
1213         * udev: RUN+="socket:..."  and udev_monitor_new_from_socket() is
1214           no longer supported. udev_monitor_new_from_netlink() needs to be
1215           used to subscribe to events.
1216
1217         * udev: when udevd is started by systemd, processes which are left
1218           behind by forking them off of udev rules, are unconditionally cleaned
1219           up and killed now after the event handling has finished. Services or
1220           daemons must be started as systemd services. Services can be
1221           pulled-in by udev to get started, but they can no longer be directly
1222           forked by udev rules.
1223
1224         * udev: the daemon binary is called systemd-udevd now and installed
1225           in /usr/lib/systemd/. Standalone builds or non-systemd systems need
1226           to adapt to that, create symlink, or rename the binary after building
1227           it.
1228
1229         * libudev no longer provides these symbols:
1230             udev_monitor_from_socket()
1231             udev_queue_get_failed_list_entry()
1232             udev_get_{dev,sys,run}_path()
1233           The versions number was bumped and symbol versioning introduced.
1234
1235         * systemd-loginctl and systemd-journalctl have been renamed
1236           to loginctl and journalctl to match systemctl.
1237
1238         * The config files: /etc/systemd/systemd-logind.conf and
1239           /etc/systemd/systemd-journald.conf have been renamed to
1240           logind.conf and journald.conf. Package updates should rename
1241           the files to the new names on upgrade.
1242
1243         * For almost all files the license is now LGPL2.1+, changed
1244           from the previous GPL2.0+. Exceptions are some minor stuff
1245           of udev (which will be changed to LGPL2.1 eventually, too),
1246           and the MIT licensed sd-daemon.[ch] library that is suitable
1247           to be used as drop-in files.
1248
1249         * systemd and logind now handle system sleep states, in
1250           particular suspending and hibernating.
1251
1252         * logind now implements a sleep/shutdown/idle inhibiting logic
1253           suitable for a variety of uses. Soonishly Lennart will blog
1254           about this in more detail.
1255
1256         * var-run.mount and var-lock.mount are no longer provided
1257           (which prevously bind mounted these directories to their new
1258           places). Distributions which have not converted these
1259           directories to symlinks should consider stealing these files
1260           from git history and add them downstream.
1261
1262         * We introduced the Documentation= field for units and added
1263           this to all our shipped units. This is useful to make it
1264           easier to explore the boot and the purpose of the various
1265           units.
1266
1267         * All smaller setup units (such as
1268           systemd-vconsole-setup.service) now detect properly if they
1269           are run in a container and are skipped when
1270           appropriate. This guarantees an entirely noise-free boot in
1271           Linux container environments such as systemd-nspawn.
1272
1273         * A framework for implementing offline system updates is now
1274           integrated, for details see:
1275           http://freedesktop.org/wiki/Software/systemd/SystemUpdates
1276
1277         * A new service type Type=idle is available now which helps us
1278           avoiding ugly interleaving of getty output and boot status
1279           messages.
1280
1281         * There's now a system-wide CapabilityBoundingSet= option to
1282           globally reduce the set of capabilities for the
1283           system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
1284           CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
1285           even CAP_NET_ADMIN system-wide for secure systems.
1286
1287         * There are now system-wide DefaultLimitXXX= options to
1288           globally change the defaults of the various resource limits
1289           for all units started by PID 1.
1290
1291         * Harald Hoyer's systemd test suite has been integrated into
1292           systemd which allows easy testing of systemd builds in qemu
1293           and nspawn. (This is really awesome! Ask us for details!)
1294
1295         * The fstab parser is now implemented as generator, not inside
1296           of PID 1 anymore.
1297
1298         * systemctl will now warn you if .mount units generated from
1299           /etc/fstab are out of date due to changes in fstab that
1300           haven't been read by systemd yet.
1301
1302         * systemd is now suitable for usage in initrds. Dracut has
1303           already been updated to make use of this. With this in place
1304           initrds get a slight bit faster but primarily are much
1305           easier to introspect and debug since "systemctl status" in
1306           the host system can be used to introspect initrd services,
1307           and the journal from the initrd is kept around too.
1308
1309         * systemd-delta has been added, a tool to explore differences
1310           between user/admin configuration and vendor defaults.
1311
1312         * PrivateTmp= now affects both /tmp and /var/tmp.
1313
1314         * Boot time status messages are now much prettier and feature
1315           proper english language. Booting up systemd has never been
1316           so sexy.
1317
1318         * Read-ahead pack files now include the inode number of all
1319           files to pre-cache. When the inode changes the pre-caching
1320           is not attempted. This should be nicer to deal with updated
1321           packages which might result in changes of read-ahead
1322           patterns.
1323
1324         * We now temporaritly lower the kernel's read_ahead_kb variable
1325           when collecting read-ahead data to ensure the kernel's
1326           built-in read-ahead does not add noise to our measurements
1327           of necessary blocks to pre-cache.
1328
1329         * There's now RequiresMountsFor= to add automatic dependencies
1330           for all mounts necessary for a specific file system path.
1331
1332         * MountAuto= and SwapAuto= have been removed from
1333           system.conf. Mounting file systems at boot has to take place
1334           in systemd now.
1335
1336         * nspawn now learned a new switch --uuid= to set the machine
1337           ID on the command line.
1338
1339         * nspawn now learned the -b switch to automatically search
1340           for an init system.
1341
1342         * vt102 is now the default TERM for serial TTYs, upgraded from
1343           vt100.
1344
1345         * systemd-logind now works on VT-less systems.
1346
1347         * The build tree has been reorganized. The individual
1348           components now have directories of their own.
1349
1350         * A new condition type ConditionPathIsReadWrite= is now available.
1351
1352         * nspawn learned the new -C switch to create cgroups for the
1353           container in other hierarchies.
1354
1355         * We now have support for hardware watchdogs, configurable in
1356           system.conf.
1357
1358         * The scheduled shutdown logic now has a public API.
1359
1360         * We now mount /tmp as tmpfs by default, but this can be
1361           masked and /etc/fstab can override it.
1362
1363         * Since udisks doesn't make use of /media anymore we are not
1364           mounting a tmpfs on it anymore.
1365
1366         * journalctl gained a new --local switch to only interleave
1367           locally generated journal files.
1368
1369         * We can now load the IMA policy at boot automatically.
1370
1371         * The GTK tools have been split off into a systemd-ui.
1372
1373         Contributions from: Andreas Schwab, Auke Kok, Ayan George,
1374         Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
1375         Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
1376         Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
1377         Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
1378         Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
1379         A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
1380         Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
1381         Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
1382         Gundersen
1383
1384 CHANGES WITH 44:
1385
1386         * This is mostly a bugfix release
1387
1388         * Support optional initialization of the machine ID from the
1389           KVM or container configured UUID.
1390
1391         * Support immediate reboots with "systemctl reboot -ff"
1392
1393         * Show /etc/os-release data in systemd-analyze output
1394
1395         * Many bugfixes for the journal, including endianess fixes and
1396           ensuring that disk space enforcement works
1397
1398         * sd-login.h is C++ comptaible again
1399
1400         * Extend the /etc/os-release format on request of the Debian
1401           folks
1402
1403         * We now refuse non-UTF8 strings used in various configuration
1404           and unit files. This is done to ensure we don't pass invalid
1405           data over D-Bus or expose it elsewhere.
1406
1407         * Register Mimo USB Screens as suitable for automatic seat
1408           configuration
1409
1410         * Read SELinux client context from journal clients in a race
1411           free fashion
1412
1413         * Reorder configuration file lookup order. /etc now always
1414           overrides /run in order to allow the administrator to always
1415           and unconditionally override vendor supplied or
1416           automatically generated data.
1417
1418         * The various user visible bits of the journal now have man
1419           pages. We still lack man pages for the journal API calls
1420           however.
1421
1422         * We now ship all man pages in HTML format again in the
1423           tarball.
1424
1425         Contributions from: Dave Reisner, Dirk Eibach, Frederic
1426         Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
1427         Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
1428         Reding
1429
1430 CHANGES WITH 43:
1431
1432         * This is mostly a bugfix release
1433
1434         * systems lacking /etc/os-release  are no longer supported.
1435
1436         * Various functionality updates to libsystemd-login.so
1437
1438         * Track class of PAM logins to distuingish greeters from
1439           normal user logins.
1440
1441         Contributions from: Kay Sievers, Lennart Poettering, Michael
1442         Biebl
1443
1444 CHANGES WITH 42:
1445
1446         * This is an important bugfix release for v41.
1447
1448         * Building man pages is now optional which should be useful
1449           for those building systemd from git but unwilling to install
1450           xsltproc.
1451
1452         * Watchdog support for supervising services is now usable. In
1453           a future release support for hardware watchdogs
1454           (i.e. /dev/watchdog) will be added building on this.
1455
1456         * Service start rate limiting is now configurable and can be
1457           turned off per service. When a start rate limit is hit a
1458           reboot can automatically be triggered.
1459
1460         * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
1461
1462         Contributions from: Benjamin Franzke, Bill Nottingham,
1463         Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
1464         Schmidt, Michał Górny, Piotr Drąg
1465
1466 CHANGES WITH 41:
1467
1468         * The systemd binary is installed /usr/lib/systemd/systemd now;
1469           An existing /sbin/init symlink needs to be adapted with the
1470           package update.
1471
1472         * The code that loads kernel modules has been ported to invoke
1473           libkmod directly, instead of modprobe. This means we do not
1474           support systems with module-init-tools anymore.
1475
1476         * Watchdog support is now already useful, but still not
1477           complete.
1478
1479         * A new kernel command line option systemd.setenv= is
1480           understood to set system wide environment variables
1481           dynamically at boot.
1482
1483         * We now limit the set of capabilities of systemd-journald.
1484
1485         * We now set SIGPIPE to ignore by default, since it only is
1486           useful in shell pipelines, and has little use in general
1487           code. This can be disabled with IgnoreSIPIPE=no in unit
1488           files.
1489
1490         Contributions from: Benjamin Franzke, Kay Sievers, Lennart
1491         Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
1492         William Douglas
1493
1494 CHANGES WITH 40:
1495
1496         * This is mostly a bugfix release
1497
1498         * We now expose the reason why a service failed in the
1499           "Result" D-Bus property.
1500
1501         * Rudimentary service watchdog support (will be completed over
1502           the next few releases.)
1503
1504         * When systemd forks off in order execute some service we will
1505           now immediately changes its argv[0] to reflect which process
1506           it will execute. This is useful to minimize the time window
1507           with a generic argv[0], which makes bootcharts more useful
1508
1509         Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
1510         Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
1511         Mike Kazantsev, Ray Strode
1512
1513 CHANGES WITH 39:
1514
1515         * This is mostly a test release, but incorporates many
1516           bugfixes.
1517
1518         * New systemd-cgtop tool to show control groups by their
1519           resource usage.
1520
1521         * Linking against libacl for ACLs is optional again. If
1522           disabled, support tracking device access for active logins
1523           goes becomes unavailable, and so does access to the user
1524           journals by the respective users.
1525
1526         * If a group "adm" exists, journal files are automatically
1527           owned by them, thus allow members of this group full access
1528           to the system journal as well as all user journals.
1529
1530         * The journal now stores the SELinux context of the logging
1531           client for all entries.
1532
1533         * Add C++ inclusion guards to all public headers
1534
1535         * New output mode "cat" in the journal to print only text
1536           messages, without any meta data like date or time.
1537
1538         * Include tiny X server wrapper as a temporary stop-gap to
1539           teach XOrg udev display enumeration. This is used by display
1540           managers such as gdm, and will go away as soon as XOrg
1541           learned native udev hotplugging for display devices.
1542
1543         * Add new systemd-cat tool for executing arbitrary programs
1544           with STDERR/STDOUT connected to the journal. Can also act as
1545           BSD logger replacement, and does so by default.
1546
1547         * Optionally store all locally generated coredumps in the
1548           journal along with meta data.
1549
1550         * systemd-tmpfiles learnt four new commands: n, L, c, b, for
1551           writing short strings to files (for usage for /sys), and for
1552           creating symlinks, character and block device nodes.
1553
1554         * New unit file option ControlGroupPersistent= to make cgroups
1555           persistent, following the mechanisms outlined in
1556           http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
1557
1558         * Support multiple local RTCs in a sane way
1559
1560         * No longer monopolize IO when replaying readahead data on
1561           rotating disks, since we might starve non-file-system IO to
1562           death, since fanotify() will not see accesses done by blkid,
1563           or fsck.
1564
1565         * Don't show kernel threads in systemd-cgls anymore, unless
1566           requested with new -k switch.
1567
1568         Contributions from: Dan Horák, Kay Sievers, Lennart
1569         Poettering, Michal Schmidt
1570
1571 CHANGES WITH 38:
1572
1573         * This is mostly a test release, but incorporates many
1574           bugfixes.
1575
1576         * The git repository moved to:
1577           git://anongit.freedesktop.org/systemd/systemd
1578           ssh://git.freedesktop.org/git/systemd/systemd
1579
1580         * First release with the journal
1581           http://0pointer.de/blog/projects/the-journal.html
1582
1583         * The journal replaces both systemd-kmsg-syslogd and
1584           systemd-stdout-bridge.
1585
1586         * New sd_pid_get_unit() API call in libsystemd-logind
1587
1588         * Many systemadm clean-ups
1589
1590         * Introduce remote-fs-pre.target which is ordered before all
1591           remote mounts and may be used to start services before all
1592           remote mounts.
1593
1594         * Added Mageia support
1595
1596         * Add bash completion for systemd-loginctl
1597
1598         * Actively monitor PID file creation for daemons which exit in
1599           the parent process before having finished writing the PID
1600           file in the daemon process. Daemons which do this need to be
1601           fixed (i.e. PID file creation must have finished before the
1602           parent exits), but we now react a bit more gracefully to them.
1603
1604         * Add colourful boot output, mimicking the well-known output
1605           of existing distributions.
1606
1607         * New option PassCredentials= for socket units, for
1608           compatibility with a recent kernel ABI breakage.
1609
1610         * /etc/rc.local is now hooked in via a generator binary, and
1611           thus will no longer act as synchronization point during
1612           boot.
1613
1614         * systemctl list-unit-files now supports --root=.
1615
1616         * systemd-tmpfiles now understands two new commands: z, Z for
1617           relabelling files according to the SELinux database. This is
1618           useful to apply SELinux labels to specific files in /sys,
1619           among other things.
1620
1621         * Output of SysV services is now forwarded to both the console
1622           and the journal by default, not only just the console.
1623
1624         * New man pages for all APIs from libsystemd-login.
1625
1626         * The build tree got reorganized and a the build system is a
1627           lot more modular allowing embedded setups to specifically
1628           select the components of systemd they are interested in.
1629
1630         * Support for Linux systems lacking the kernel VT subsystem is
1631           restored.
1632
1633         * configure's --with-rootdir= got renamed to
1634           --with-rootprefix= to follow the naming used by udev and
1635           kmod
1636
1637         * Unless specified otherwise we'll now install to /usr instead
1638           of /usr/local by default.
1639
1640         * Processes with '@' in argv[0][0] are now excluded from the
1641           final shut-down killing spree, following the logic explained
1642           in:
1643           http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
1644
1645         * All processes remaining in a service cgroup when we enter
1646           the START or START_PRE states are now killed with
1647           SIGKILL. That means it is no longer possible to spawn
1648           background processes from ExecStart= lines (which was never
1649           supported anyway, and bad style).
1650
1651         * New PropagateReloadTo=/PropagateReloadFrom= options to bind
1652           reloading of units together.
1653
1654         Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
1655         Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
1656         Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
1657         Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
1658         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek