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