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