chiark / gitweb /
hwdb: revert hwdb.bin back to /etc/udev
[elogind.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 195:
4
5         * journalctl gained new --since= and --until= switches to
6           filter by time. It also now supports nice filtering for
7           units via --unit=/-u.
8
9         * Type=oneshot services may use ExecReload= and do the
10           right thing.
11
12         * The journal daemon now supports time-based rotation and
13           vacuuming, in addition to the usual disk-space based
14           rotation.
15
16         * The journal will now index the available field values for
17           each field name. This enables clients to show pretty drop
18           downs of available match values when filtering. The bash
19           completion of journalctl has been updated
20           accordingly. journalctl gained a new switch -F to list all
21           values a certain field takes in the journal database.
22
23         * More service events are now written as structured messages
24           to the journal, and made recognizable via message IDs.
25
26         * The timedated, localed and hostnamed mini-services which
27           previously only provided support for changing time, locale
28           and hostname settings from graphical DEs such as GNOME now
29           also have a minimal (but very useful) text-based client
30           utility each. This is probably the nicest way to changing
31           these settings from the command line now, especially since
32           it lists available options and is fully integrated with bash
33           completion.
34
35         * There's now a new tool "systemd-coredumpctl" to list and
36           extract coredumps from the journal.
37
38         * We now install a README each in /var/log/ and
39           /etc/rc.d/init.d explaining where the system logs and init
40           scripts went. This hopefully should help folks who go to
41           that dirs and look into the otherwise now empty void and
42           scratch their heads.
43
44         * When user-services are invoked (by systemd --user) the
45           $MANAGERPID env var is set to the PID of systemd.
46
47         * SIGRTMIN+24 when sent to a --user instance will now result
48           in immediate termination of systemd.
49
50         * gatewayd received numerous feature additions such as a
51           "follow" mode, for live syncing and filtering.
52
53         * browse.html now allows filtering and showing detailed
54           information on specific entries. Keyboard navigation and
55           mouse screen support has been added.
56
57         * gatewayd/journalctl now supports HTML5/JSON
58           Server-Sent-Events as output.
59
60         * The SysV init script compatibility logic will now
61           heuristically determine whether a script supports the
62           "reload" verb, and only then make this available as
63           "systemctl reload".
64
65         * "systemctl status --follow" has been removed, use "journalctl
66           -u" instead.
67
68         * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
69           have been removed since they are hardly useful to be
70           configured.
71
72         * And I'd like to take the opportunity to specifically mention
73           Zbigniew for his great contributions. Zbigniew, you rock!
74
75         Contributions from: Andrew Eikum, Christian Hesse, Colin
76         Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
77         Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
78         Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
79         Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
80         Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
81         Jędrzejewski-Szmek, Сковорода Никита Андреевич
82
83 CHANGES WITH 194:
84
85         * If /etc/vconsole.conf is non-existent or empty we will no
86           longer load any console font or key map at boot by
87           default. Instead the kernel defaults will be left
88           intact. This is definitely the right thing to do, as no
89           configuration should mean no configuration, and hard-coding
90           font names that are different on all archs is probably a bad
91           idea. Also, the kernel default key map and font should be
92           good enough for most cases anyway, and mostly identical to
93           the userspace fonts/key maps we previously overloaded them
94           with. If distributions want to continue to default to a
95           non-kernel font or key map they should ship a default
96           /etc/vconsole.conf with the appropriate contents.
97
98         Contributions from: Colin Walters, Daniel J Walsh, Dave
99         Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
100         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
101
102 CHANGES WITH 193:
103
104         * journalctl gained a new --cursor= switch to show entries
105           starting from the specified location in the journal.
106
107         * We now enforce a size limit on journal entry fields exported
108           with "-o json" in journalctl. Fields larger than 4K will be
109           assigned null. This can be turned off with --all.
110
111         * An (optional) journal gateway daemon is now available as
112           "systemd-journal-gatewayd.service". This service provides
113           access to the journal via HTTP and JSON. This functionality
114           will be used to implement live log synchronization in both
115           pull and push modes, but has various other users too, such
116           as easy log access for debugging of embedded devices. Right
117           now it is already useful to retrieve the journal via HTTP:
118
119           # systemctl start systemd-journal-gatewayd.service
120           # wget http://localhost:19531/entries
121
122           This will download the journal contents in a
123           /var/log/messages compatible format. The same as JSON:
124
125           # curl -H"Accept: application/json" http://localhost:19531/entries
126
127           This service is also accessible via a web browser where a
128           single static HTML5 app is served that uses the JSON logic
129           to enable the user to do some basic browsing of the
130           journal. This will be extended later on. Here's an example
131           screenshot of this app in its current state:
132
133           http://0pointer.de/public/journal-gatewayd
134
135         Contributions from: Kay Sievers, Lennart Poettering, Robert
136         Milasan, Tom Gundersen
137
138 CHANGES WITH 192:
139
140         * The bash completion logic is now available for journalctl
141           too.
142
143         * We don't mount the "cpuset" controller anymore together with
144           "cpu" and "cpuacct", as "cpuset" groups generally cannot be
145           started if no parameters are assigned to it. "cpuset" hence
146           broke code that assumed it it could create "cpu" groups and
147           just start them.
148
149         * journalctl -f will now subscribe to terminal size changes,
150           and line break accordingly.
151
152         Contributions from: Dave Reisner, Kay Sievers, Lennart
153         Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
154
155 CHANGES WITH 191:
156
157         * nspawn will now create a symlink /etc/localtime in the
158           container environment, copying the host's timezone
159           setting. Previously this has been done via a bind mount, but
160           since symlinks cannot be bind mounted this has now been
161           changed to create/update the appropriate symlink.
162
163         * journalctl -n's line number argument is now optional, and
164           will default to 10 if omitted.
165
166         * journald will now log the maximum size the journal files may
167           take up on disk. This is particularly useful if the default
168           built-in logic of determining this parameter from the file
169           system size is used. Use "systemctl status
170           systemd-journald.service" to see this information.
171
172         * The multi-seat X wrapper tool has been stripped down. As X
173           is now capable of enumerating graphics devices via udev in a
174           seat-aware way the wrapper is not strictly necessary
175           anymore. A stripped down temporary stop-gap is still shipped
176           until the upstream display managers have been updated to
177           fully support the new X logic. Expect this wrapper to be
178           removed entirely in one of the next releases.
179
180         * HandleSleepKey= in logind.conf has been split up into
181           HandleSuspendKey= and HandleHibernateKey=. The old setting
182           is not available anymore. X11 and the kernel are
183           distuingishing between these keys and we should too. This
184           also means the inhibition lock for these keys has been split
185           into two.
186
187         Contributions from: Dave Airlie, Eelco Dolstra, Lennart
188         Poettering, Lukas Nykryn, Václav Pavlín
189
190 CHANGES WITH 190:
191
192         * Whenever a unit changes state we'll now log this to the
193           journal and show along the unit's own log output in
194           "systemctl status".
195
196         * ConditionPathIsMountPoint= can now properly detect bind
197           mount points too. (Previously, a bind mount of one file
198           system to another place in the same file system could not be
199           detected as mount, since they shared struct stat's st_dev
200           field.)
201
202         * We will now mount the cgroup controllers cpu, cpuacct,
203           cpuset and the controllers net_cls, net_prio together by
204           default.
205
206         * nspawn containers will now have a virtualized boot
207           ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
208           over with a randomized ID at container initialization). This
209           has the effect of making "journalctl -b" do the right thing
210           in a container.
211
212         * The JSON output journal serialization has been updated not
213           to generate "endless" list objects anymore, but rather one
214           JSON object per line. This is more in line how most JSON
215           parsers expect JSON objects. The new output mode
216           "json-pretty" has been added to provide similar output, but
217           neatly aligned for readability by humans.
218
219         * We dropped all explicit sync() invocations in the shutdown
220           code. The kernel does this implicitly anyway in the kernel
221           reboot() syscall. halt(8)'s -n option is now a compatibility
222           no-op.
223
224         * We now support virtualized reboot() in containers, as
225           supported by newer kernels. We will fall back to exit() if
226           CAP_SYS_REBOOT is not available to the container. Also,
227           nspawn makes use of this now and will actually reboot the
228           container if the containerized OS asks for that.
229
230         * journalctl will only show local log output by default
231           now. Use --merge (-m) to show remote log output, too.
232
233         * libsystemd-journal gained the new sd_journal_get_usage()
234           call to determine the current disk usage of all journal
235           files. This is exposed in the new "journalctl --disk-usage"
236           command.
237
238         * journald gained a new configuration setting SplitMode= in
239           journald.conf which may be used to control how user journals
240           are split off. See journald.conf(5) for details.
241
242         * A new condition type ConditionFileNotEmpty= has been added.
243
244         * tmpfiles' "w" lines now support file globbing, to write
245           multiple files at once.
246
247         * We added Python bindings for the journal submission
248           APIs. More Python APIs for a number of selected APIs will
249           likely follow. Note that we intend to add native bindings
250           only for the Python language, as we consider it common
251           enough to deserve bindings shipped within systemd. There are
252           various projects outside of systemd that provide bindings
253           for languages such as PHP or Lua.
254
255         * Many conditions will now resolve specifiers such as %i. In
256           addition, PathChanged= and related directives of .path units
257           now support specifiers as well.
258
259         * There's now a new RPM macro definition for the system preset
260           dir: %_presetdir.
261
262         * journald will now warn if it can't foward a message to the
263           syslog daemon because it's socket is full.
264
265         * timedated will no longer write or process /etc/timezone,
266           except on Debian. As we do not support late mounted /usr
267           anymore /etc/localtime always being a symlink is now safe,
268           and hence the information in /etc/timezone is not necessary
269           anymore.
270
271         * logind will now always reserve one VT for a text getty (VT6
272           by default). Previously if more than 6 X sessions where
273           started they took up all the VTs with auto-spawned gettys,
274           so that no text gettys were available anymore.
275
276         * udev will now automatically inform the btrfs kernel logic
277           about btrfs RAID components showing up. This should make
278           simple hotplug based btrfs RAID assembly work.
279
280         * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
281           (but not for its children which will stay at the kernel
282           default). This should allow setups with a lot more listening
283           sockets.
284
285         * systemd will now always pass the configured timezone to the
286           kernel at boot. timedated will do the same when the timezone
287           is changed.
288
289         * logind's inhibition logic has been updated. By default,
290           logind will now handle the lid switch, the power and sleep
291           keys all the time, even in graphical sessions. If DEs want
292           to handle these events on their own they should take the new
293           handle-power-key, handle-sleep-key and handle-lid-switch
294           inhibitors during their runtime. A simple way to achiveve
295           that is to invoke the DE wrapped in an invocation of:
296
297           systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
298
299         * Access to unit operations is now checked via SELinux taking
300           the unit file label and client process label into account.
301
302         * systemd will now notify the administrator in the journal
303           when he over-mounts a non-empty directory.
304
305         * There are new specifiers that are resolved in unit files,
306           for the host name (%H), the machine ID (%m) and the boot ID
307           (%b).
308
309         Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
310         Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
311         Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
312         Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
313         Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
314         Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
315         Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
316
317 CHANGES WITH 189:
318
319         * Support for reading structured kernel messages from
320           /dev/kmsg has now been added and is enabled by default.
321
322         * Support for reading kernel messages from /proc/kmsg has now
323           been removed. If you want kernel messages in the journal
324           make sure to run a recent kernel (>= 3.5) that supports
325           reading structured messages from /dev/kmsg (see
326           above). /proc/kmsg is now exclusive property of classic
327           syslog daemons again.
328
329         * The libudev API gained the new
330           udev_device_new_from_device_id() call.
331
332         * The logic for file system namespace (ReadOnlyDirectory=,
333           ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
334           require pivot_root() anymore. This means fewer temporary
335           directories are created below /tmp for this feature.
336
337         * nspawn containers will now see and receive all submounts
338           made on the host OS below the root file system of the
339           container.
340
341         * Forward Secure Sealing is now supported for Journal files,
342           which provide cryptographical sealing of journal files so
343           that attackers cannot alter log history anymore without this
344           being detectable. Lennart will soon post a blog story about
345           this explaining it in more detail.
346
347         * There are two new service settings RestartPreventExitStatus=
348           and SuccessExitStatus= which allow configuration of exit
349           status (exit code or signal) which will be excepted from the
350           restart logic, resp. consider successful.
351
352         * journalctl gained the new --verify switch that can be used
353           to check the integrity of the structure of journal files and
354           (if Forward Secure Sealing is enabled) the contents of
355           journal files.
356
357         * nspawn containers will now be run with /dev/stdin, /dev/fd/
358           and similar symlinks pre-created. This makes running shells
359           as container init process a lot more fun.
360
361         * The fstab support can now handle PARTUUID= and PARTLABEL=
362           entries.
363
364         * A new ConditionHost= condition has been added to match
365           against the hostname (with globs) and machine ID. This is
366           useful for clusters where a single OS image is used to
367           provision a large number of hosts which shall run slightly
368           different sets of services.
369
370         * Services which hit the restart limit will now be placed in a
371           failure state.
372
373         Contributions from: Bertram Poettering, Dave Reisner, Huang
374         Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
375         Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
376
377 CHANGES WITH 188:
378
379         * When running in --user mode systemd will now become a
380           subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
381           tree a lot more organized.
382
383         * A new PartOf= unit dependency type has been introduced that
384           may be used to group services in a natural way.
385
386         * "systemctl enable" may now be used to enable instances of
387           services.
388
389         * journalctl now prints error log levels in red, and
390           warning/notice log levels in bright white. It also supports
391           filtering by log level now.
392
393         * cgtop gained a new -n switch (similar to top), to configure
394           the maximum number of iterations to run for. It also gained
395           -b, to run in batch mode (accepting no input).
396
397         * The suffix ".service" may now be ommited on most systemctl
398           command lines involving service unit names.
399
400         * There's a new bus call in logind to lock all sessions, as
401           well as a loginctl verb for it "lock-sessions".
402
403         * libsystemd-logind.so gained a new call sd_journal_perror()
404           that works similar to libc perror() but logs to the journal
405           and encodes structured information about the error number.
406
407         * /etc/crypttab entries now understand the new keyfile-size=
408           option.
409
410         * shutdown(8) now can send a (configurable) wall message when
411           a shutdown is cancelled.
412
413         * The mount propagation mode for the root file system will now
414           default to "shared", which is useful to make containers work
415           nicely out-of-the-box so that they receive new mounts from
416           the host. This can be undone locally by running "mount
417           --make-rprivate /" if needed.
418
419         * The prefdm.service file has been removed. Distributions
420           should maintain this unit downstream if they intend to keep
421           it around. However, we recommend writing normal unit files
422           for display managers instead.
423
424         * Since systemd is a crucial part of the OS we will now
425           default to a number of compiler switches that improve
426           security (hardening) such as read-only relocations, stack
427           protection, and suchlike.
428
429         * The TimeoutSec= setting for services is now split into
430           TimeoutStartSec= and TimeoutStopSec= to allow configuration
431           of individual time outs for the start and the stop phase of
432           the service.
433
434         Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
435         Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
436         Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
437         Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
438         Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
439         Gundersen, Zbigniew Jędrzejewski-Szmek
440
441 CHANGES WITH 187:
442
443         * The journal and id128 C APIs are now fully documented as man
444           pages.
445
446         * Extra safety checks have been added when transitioning from
447           the initial RAM disk to the main system to avoid accidental
448           data loss.
449
450         * /etc/crypttab entries now understand the new keyfile-offset=
451           option.
452
453         * systemctl -t can now be used to filter by unit load state.
454
455         * The journal C API gained the new sd_journal_wait() call to
456           make writing synchronous journal clients easier.
457
458         * journalctl gained the new -D switch to show journals from a
459           specific directory.
460
461         * journalctl now displays a special marker between log
462           messages of two different boots.
463
464         * The journal is now explicitly flushed to /var via a service
465           systemd-journal-flush.service, rather than implicitly simply
466           by seeing /var/log/journal to be writable.
467
468         * journalctl (and the journal C APIs) can now match for much
469           more complex expressions, with alternatives and
470           disjunctions.
471
472         * When transitioning from the initial RAM disk to the main
473           system we will now kill all processes in a killing spree to
474           ensure no processes stay around by accident.
475
476         * Three new specifiers may be used in unit files: %u, %h, %s
477           resolve to the user name, user home directory resp. user
478           shell. This is useful for running systemd user instances.
479
480         * We now automatically rotate journal files if their data
481           object hash table gets a fill level > 75%. We also size the
482           hash table based on the configured maximum file size. This
483           together should lower hash collisions drastically and thus
484           speed things up a bit.
485
486         * journalctl gained the new "--header" switch to introspect
487           header data of journal files.
488
489         * A new setting SystemCallFilters= has been added to services
490           which may be used to apply blacklists or whitelists to
491           system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
492
493         * nspawn gained a new --link-journal= switch (and quicker: -j)
494           to link the container journal with the host. This makes it
495           very easy to centralize log viewing on the host for all
496           guests while still keeping the journal files separated.
497
498         * Many bugfixes and optimizations
499
500         Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
501         Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
502         Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
503         Jędrzejewski-Szmek
504
505 CHANGES WITH 186:
506
507         * Several tools now understand kernel command line arguments,
508           which are only read when run in an initial RAM disk. They
509           usually follow closely their normal counterparts, but are
510           prefixed with rd.
511
512         * There's a new tool to analyze the readahead files that are
513           automatically generated at boot. Use:
514
515           /usr/lib/systemd/systemd-readahead analyze /.readahead
516
517         * We now provide an early debug shell on tty9 if this enabled. Use:
518
519           systemctl enable debug-shell.service
520
521         * All plymouth related units have been moved into the Plymouth
522           package. Please make sure to upgrade your Plymouth version
523           as well.
524
525         * systemd-tmpfiles now supports getting passed the basename of
526           a configuration file only, in which case it will look for it
527           in all appropriate directories automatically.
528
529         * udevadm info now takes a /dev or /sys path as argument, and
530           does the right thing. Example:
531
532           udevadm info /dev/sda
533           udevadm info /sys/class/block/sda
534
535         * systemctl now prints a warning if a unit is stopped but a
536           unit that might trigger it continues to run. Example: a
537           service is stopped but the socket that activates it is left
538           running.
539
540         * "systemctl status" will now mention if the log output was
541           shortened due to rotation since a service has been started.
542
543         * The journal API now exposes functions to determine the
544           "cutoff" times due to rotation.
545
546         * journald now understands SIGUSR1 and SIGUSR2 for triggering
547           immediately flushing of runtime logs to /var if possible,
548           resp. for triggering immediate rotation of the journal
549           files.
550
551         * It is now considered an error if a service is attempted to
552           be stopped that is not loaded.
553
554         * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
555
556         * systemd-analyze now supports Python 3
557
558         * tmpfiles now supports cleaning up directories via aging
559           where the first level dirs are always kept around but
560           directories beneath it automatically aged. This is enabled
561           by prefixing the age field with '~'.
562
563         * Seat objects now expose CanGraphical, CanTTY properties
564           which is required to deal with very fast bootups where the
565           display manager might be running before the graphics drivers
566           completed initialization.
567
568         * Seat objects now expose a State property.
569
570         * We now include RPM macros for service enabling/disabling
571           based on the preset logic. We recommend RPM based
572           distributions to make use of these macros if possible. This
573           makes it simpler to reuse RPM spec files across
574           distributions.
575
576         * We now make sure that the collected systemd unit name is
577           always valid when services log to the journal via
578           STDOUT/STDERR.
579
580         * There's a new man page kernel-command-line(7) detailing all
581           command line options we understand.
582
583         * The fstab generator may now be disabled at boot by passing
584           fstab=0 on the kernel command line.
585
586         * A new kernel command line option modules-load= is now understood
587           to load a specific kernel module statically, early at boot.
588
589         * Unit names specified on the systemctl command line are now
590           automatically escaped as needed. Also, if file system or
591           device paths are specified they are automatically turned
592           into the appropriate mount or device unit names. Example:
593
594           systemctl status /home
595           systemctl status /dev/sda
596
597         * The SysVConsole= configuration option has been removed from
598           system.conf parsing.
599
600         * The SysV search path is no longer exported on the D-Bus
601           Manager object.
602
603         * The Names= option is been removed from unit file parsing.
604
605         * There's a new man page bootup(7) detailing the boot process.
606
607         * Every unit and every generator we ship with systemd now
608           comes with full documentation. The self-explanatory boot is
609           complete.
610
611         * A couple of services gained "systemd-" prefixes in their
612           name if they wrap systemd code, rather than only external
613           code. Among them fsck@.service which is now
614           systemd-fsck@.service.
615
616         * The HaveWatchdog property has been removed from the D-Bus
617           Manager object.
618
619         * systemd.confirm_spawn= on the kernel command line should now
620           work sensibly.
621
622         * There's a new man page crypttab(5) which details all options
623           we actually understand.
624
625         * systemd-nspawn gained a new --capability= switch to pass
626           additional capabilities to the container.
627
628         * timedated will now read known NTP implementation unit names
629           from /usr/lib/systemd/ntp-units.d/*.list,
630           systemd-timedated-ntp.target has been removed.
631
632         * journalctl gained a new switch "-b" that lists log data of
633           the current boot only.
634
635         * The notify socket is in the abstract namespace again, in
636           order to support daemons which chroot() at start-up.
637
638         * There is a new Storage= configuration option for journald
639           which allows configuration of where log data should go. This
640           also provides a way to disable journal logging entirely, so
641           that data collected is only forwarded to the console, the
642           kernel log buffer or another syslog implementation.
643
644         * Many bugfixes and optimizations
645
646         Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
647         David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
648         Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
649         Shawn Landden, Tom Gundersen
650
651 CHANGES WITH 185:
652
653         * "systemctl help <unit>" now shows the man page if one is
654           available.
655
656         * Several new man pages have been added.
657
658         * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
659           MaxLevelConsole= can now be specified in
660           journald.conf. These options allow reducing the amount of
661           data stored on disk or forwarded by the log level.
662
663         * TimerSlackNSec= can now be specified in system.conf for
664           PID1. This allows system-wide power savings.
665
666         Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
667         Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
668         Matthias Clasen
669
670 CHANGES WITH 184:
671
672         * logind is now capable of (optionally) handling power and
673           sleep keys as well as the lid switch.
674
675         * journalctl now understands the syntax "journalctl
676           /usr/bin/avahi-daemon" to get all log output of a specific
677           daemon.
678
679         * CapabilityBoundingSet= in system.conf now also influences
680           the capability bound set of usermode helpers of the kernel.
681
682         Contributions from: Daniel Drake, Daniel J. Walsh, Gert
683         Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
684         Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
685         Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
686
687 CHANGES WITH 183:
688
689         * Note that we skipped 139 releases here in order to set the
690           new version to something that is greater than both udev's
691           and systemd's most recent version number.
692
693         * udev: all udev sources are merged into the systemd source tree now.
694           All future udev development will happen in the systemd tree. It
695           is still fully supported to use the udev daemon and tools without
696           systemd running, like in initramfs or other init systems. Building
697           udev though, will require the *build* of the systemd tree, but
698           udev can be properly *run* without systemd.
699
700         * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
701           should be used to create dead device nodes as workarounds for broken
702           subsystems.
703
704         * udev: RUN+="socket:..."  and udev_monitor_new_from_socket() is
705           no longer supported. udev_monitor_new_from_netlink() needs to be
706           used to subscribe to events.
707
708         * udev: when udevd is started by systemd, processes which are left
709           behind by forking them off of udev rules, are unconditionally cleaned
710           up and killed now after the event handling has finished. Services or
711           daemons must be started as systemd services. Services can be
712           pulled-in by udev to get started, but they can no longer be directly
713           forked by udev rules.
714
715         * udev: the daemon binary is called systemd-udevd now and installed
716           in /usr/lib/systemd/. Standalone builds or non-systemd systems need
717           to adapt to that, create symlink, or rename the binary after building
718           it.
719
720         * libudev no longer provides these symbols:
721             udev_monitor_from_socket()
722             udev_queue_get_failed_list_entry()
723             udev_get_{dev,sys,run}_path()
724           The versions number was bumped and symbol versioning introduced.
725
726         * systemd-loginctl and systemd-journalctl have been renamed
727           to loginctl and journalctl to match systemctl.
728
729         * The config files: /etc/systemd/systemd-logind.conf and
730           /etc/systemd/systemd-journald.conf have been renamed to
731           logind.conf and journald.conf. Package updates should rename
732           the files to the new names on upgrade.
733
734         * For almost all files the license is now LGPL2.1+, changed
735           from the previous GPL2.0+. Exceptions are some minor stuff
736           of udev (which will be changed to LGPL2.1 eventually, too),
737           and the MIT licensed sd-daemon.[ch] library that is suitable
738           to be used as drop-in files.
739
740         * systemd and logind now handle system sleep states, in
741           particular suspending and hibernating.
742
743         * logind now implements a sleep/shutdown/idle inhibiting logic
744           suitable for a variety of uses. Soonishly Lennart will blog
745           about this in more detail.
746
747         * var-run.mount and var-lock.mount are no longer provided
748           (which prevously bind mounted these directories to their new
749           places). Distributions which have not converted these
750           directories to symlinks should consider stealing these files
751           from git history and add them downstream.
752
753         * We introduced the Documentation= field for units and added
754           this to all our shipped units. This is useful to make it
755           easier to explore the boot and the purpose of the various
756           units.
757
758         * All smaller setup units (such as
759           systemd-vconsole-setup.service) now detect properly if they
760           are run in a container and are skipped when
761           appropriate. This guarantees an entirely noise-free boot in
762           Linux container environments such as systemd-nspawn.
763
764         * A framework for implementing offline system updates is now
765           integrated, for details see:
766           http://freedesktop.org/wiki/Software/systemd/SystemUpdates
767
768         * A new service type Type=idle is available now which helps us
769           avoiding ugly interleaving of getty output and boot status
770           messages.
771
772         * There's now a system-wide CapabilityBoundingSet= option to
773           globally reduce the set of capabilities for the
774           system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
775           CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
776           even CAP_NET_ADMIN system-wide for secure systems.
777
778         * There are now system-wide DefaultLimitXXX= options to
779           globally change the defaults of the various resource limits
780           for all units started by PID 1.
781
782         * Harald Hoyer's systemd test suite has been integrated into
783           systemd which allows easy testing of systemd builds in qemu
784           and nspawn. (This is really awesome! Ask us for details!)
785
786         * The fstab parser is now implemented as generator, not inside
787           of PID 1 anymore.
788
789         * systemctl will now warn you if .mount units generated from
790           /etc/fstab are out of date due to changes in fstab that
791           haven't been read by systemd yet.
792
793         * systemd is now suitable for usage in initrds. Dracut has
794           already been updated to make use of this. With this in place
795           initrds get a slight bit faster but primarily are much
796           easier to introspect and debug since "systemctl status" in
797           the host system can be used to introspect initrd services,
798           and the journal from the initrd is kept around too.
799
800         * systemd-delta has been added, a tool to explore differences
801           between user/admin configuration and vendor defaults.
802
803         * PrivateTmp= now affects both /tmp and /var/tmp.
804
805         * Boot time status messages are now much prettier and feature
806           proper english language. Booting up systemd has never been
807           so sexy.
808
809         * Read-ahead pack files now include the inode number of all
810           files to pre-cache. When the inode changes the pre-caching
811           is not attempted. This should be nicer to deal with updated
812           packages which might result in changes of read-ahead
813           patterns.
814
815         * We now temporaritly lower the kernel's read_ahead_kb variable
816           when collecting read-ahead data to ensure the kernel's
817           built-in read-ahead does not add noise to our measurements
818           of necessary blocks to pre-cache.
819
820         * There's now RequiresMountsFor= to add automatic dependencies
821           for all mounts necessary for a specific file system path.
822
823         * MountAuto= and SwapAuto= have been removed from
824           system.conf. Mounting file systems at boot has to take place
825           in systemd now.
826
827         * nspawn now learned a new switch --uuid= to set the machine
828           ID on the command line.
829
830         * nspawn now learned the -b switch to automatically search
831           for an init system.
832
833         * vt102 is now the default TERM for serial TTYs, upgraded from
834           vt100.
835
836         * systemd-logind now works on VT-less systems.
837
838         * The build tree has been reorganized. The individual
839           components now have directories of their own.
840
841         * A new condition type ConditionPathIsReadWrite= is now available.
842
843         * nspawn learned the new -C switch to create cgroups for the
844           container in other hierarchies.
845
846         * We now have support for hardware watchdogs, configurable in
847           system.conf.
848
849         * The scheduled shutdown logic now has a public API.
850
851         * We now mount /tmp as tmpfs by default, but this can be
852           masked and /etc/fstab can override it.
853
854         * Since udisks doesn't make use of /media anymore we are not
855           mounting a tmpfs on it anymore.
856
857         * journalctl gained a new --local switch to only interleave
858           locally generated journal files.
859
860         * We can now load the IMA policy at boot automatically.
861
862         * The GTK tools have been split off into a systemd-ui.
863
864         Contributions from: Andreas Schwab, Auke Kok, Ayan George,
865         Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
866         Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
867         Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
868         Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
869         Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
870         A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
871         Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
872         Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
873         Gundersen
874
875 CHANGES WITH 44:
876
877         * This is mostly a bugfix release
878
879         * Support optional initialization of the machine ID from the
880           KVM or container configured UUID.
881
882         * Support immediate reboots with "systemctl reboot -ff"
883
884         * Show /etc/os-release data in systemd-analyze output
885
886         * Many bugfixes for the journal, including endianess fixes and
887           ensuring that disk space enforcement works
888
889         * sd-login.h is C++ comptaible again
890
891         * Extend the /etc/os-release format on request of the Debian
892           folks
893
894         * We now refuse non-UTF8 strings used in various configuration
895           and unit files. This is done to ensure we don't pass invalid
896           data over D-Bus or expose it elsewhere.
897
898         * Register Mimo USB Screens as suitable for automatic seat
899           configuration
900
901         * Read SELinux client context from journal clients in a race
902           free fashion
903
904         * Reorder configuration file lookup order. /etc now always
905           overrides /run in order to allow the administrator to always
906           and unconditionally override vendor supplied or
907           automatically generated data.
908
909         * The various user visible bits of the journal now have man
910           pages. We still lack man pages for the journal API calls
911           however.
912
913         * We now ship all man pages in HTML format again in the
914           tarball.
915
916         Contributions from: Dave Reisner, Dirk Eibach, Frederic
917         Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
918         Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
919         Reding
920
921 CHANGES WITH 43:
922
923         * This is mostly a bugfix release
924
925         * systems lacking /etc/os-release  are no longer supported.
926
927         * Various functionality updates to libsystemd-login.so
928
929         * Track class of PAM logins to distuingish greeters from
930           normal user logins.
931
932         Contributions from: Kay Sievers, Lennart Poettering, Michael
933         Biebl
934
935 CHANGES WITH 42:
936
937         * This is an important bugfix release for v41.
938
939         * Building man pages is now optional which should be useful
940           for those building systemd from git but unwilling to install
941           xsltproc.
942
943         * Watchdog support for supervising services is now usable. In
944           a future release support for hardware watchdogs
945           (i.e. /dev/watchdog) will be added building on this.
946
947         * Service start rate limiting is now configurable and can be
948           turned off per service. When a start rate limit is hit a
949           reboot can automatically be triggered.
950
951         * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
952
953         Contributions from: Benjamin Franzke, Bill Nottingham,
954         Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
955         Schmidt, Michał Górny, Piotr Drąg
956
957 CHANGES WITH 41:
958
959         * The systemd binary is installed /usr/lib/systemd/systemd now;
960           An existing /sbin/init symlink needs to be adapted with the
961           package update.
962
963         * The code that loads kernel modules has been ported to invoke
964           libkmod directly, instead of modprobe. This means we do not
965           support systems with module-init-tools anymore.
966
967         * Watchdog support is now already useful, but still not
968           complete.
969
970         * A new kernel command line option systemd.setenv= is
971           understood to set system wide environment variables
972           dynamically at boot.
973
974         * We now limit the set of capabilities of systemd-journald.
975
976         * We now set SIGPIPE to ignore by default, since it only is
977           useful in shell pipelines, and has little use in general
978           code. This can be disabled with IgnoreSIPIPE=no in unit
979           files.
980
981         Contributions from: Benjamin Franzke, Kay Sievers, Lennart
982         Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
983         William Douglas
984
985 CHANGES WITH 40:
986
987         * This is mostly a bugfix release
988
989         * We now expose the reason why a service failed in the
990           "Result" D-Bus property.
991
992         * Rudimentary service watchdog support (will be completed over
993           the next few releases.)
994
995         * When systemd forks off in order execute some service we will
996           now immediately changes its argv[0] to reflect which process
997           it will execute. This is useful to minimize the time window
998           with a generic argv[0], which makes bootcharts more useful
999
1000         Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
1001         Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
1002         Mike Kazantsev, Ray Strode
1003
1004 CHANGES WITH 39:
1005
1006         * This is mostly a test release, but incorporates many
1007           bugfixes.
1008
1009         * New systemd-cgtop tool to show control groups by their
1010           resource usage.
1011
1012         * Linking against libacl for ACLs is optional again. If
1013           disabled, support tracking device access for active logins
1014           goes becomes unavailable, and so does access to the user
1015           journals by the respective users.
1016
1017         * If a group "adm" exists, journal files are automatically
1018           owned by them, thus allow members of this group full access
1019           to the system journal as well as all user journals.
1020
1021         * The journal now stores the SELinux context of the logging
1022           client for all entries.
1023
1024         * Add C++ inclusion guards to all public headers
1025
1026         * New output mode "cat" in the journal to print only text
1027           messages, without any meta data like date or time.
1028
1029         * Include tiny X server wrapper as a temporary stop-gap to
1030           teach XOrg udev display enumeration. This is used by display
1031           managers such as gdm, and will go away as soon as XOrg
1032           learned native udev hotplugging for display devices.
1033
1034         * Add new systemd-cat tool for executing arbitrary programs
1035           with STDERR/STDOUT connected to the journal. Can also act as
1036           BSD logger replacement, and does so by default.
1037
1038         * Optionally store all locally generated coredumps in the
1039           journal along with meta data.
1040
1041         * systemd-tmpfiles learnt four new commands: n, L, c, b, for
1042           writing short strings to files (for usage for /sys), and for
1043           creating symlinks, character and block device nodes.
1044
1045         * New unit file option ControlGroupPersistent= to make cgroups
1046           persistent, following the mechanisms outlined in
1047           http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
1048
1049         * Support multiple local RTCs in a sane way
1050
1051         * No longer monopolize IO when replaying readahead data on
1052           rotating disks, since we might starve non-file-system IO to
1053           death, since fanotify() will not see accesses done by blkid,
1054           or fsck.
1055
1056         * Don't show kernel threads in systemd-cgls anymore, unless
1057           requested with new -k switch.
1058
1059         Contributions from: Dan Horák, Kay Sievers, Lennart
1060         Poettering, Michal Schmidt
1061
1062 CHANGES WITH 38:
1063
1064         * This is mostly a test release, but incorporates many
1065           bugfixes.
1066
1067         * The git repository moved to:
1068           git://anongit.freedesktop.org/systemd/systemd
1069           ssh://git.freedesktop.org/git/systemd/systemd
1070
1071         * First release with the journal
1072           http://0pointer.de/blog/projects/the-journal.html
1073
1074         * The journal replaces both systemd-kmsg-syslogd and
1075           systemd-stdout-bridge.
1076
1077         * New sd_pid_get_unit() API call in libsystemd-logind
1078
1079         * Many systemadm clean-ups
1080
1081         * Introduce remote-fs-pre.target which is ordered before all
1082           remote mounts and may be used to start services before all
1083           remote mounts.
1084
1085         * Added Mageia support
1086
1087         * Add bash completion for systemd-loginctl
1088
1089         * Actively monitor PID file creation for daemons which exit in
1090           the parent process before having finished writing the PID
1091           file in the daemon process. Daemons which do this need to be
1092           fixed (i.e. PID file creation must have finished before the
1093           parent exits), but we now react a bit more gracefully to them.
1094
1095         * Add colourful boot output, mimicking the well-known output
1096           of existing distributions.
1097
1098         * New option PassCredentials= for socket units, for
1099           compatibility with a recent kernel ABI breakage.
1100
1101         * /etc/rc.local is now hooked in via a generator binary, and
1102           thus will no longer act as synchronization point during
1103           boot.
1104
1105         * systemctl list-unit-files now supports --root=.
1106
1107         * systemd-tmpfiles now understands two new commands: z, Z for
1108           relabelling files according to the SELinux database. This is
1109           useful to apply SELinux labels to specific files in /sys,
1110           among other things.
1111
1112         * Output of SysV services is now forwarded to both the console
1113           and the journal by default, not only just the console.
1114
1115         * New man pages for all APIs from libsystemd-login.
1116
1117         * The build tree got reorganized and a the build system is a
1118           lot more modular allowing embedded setups to specifically
1119           select the components of systemd they are interested in.
1120
1121         * Support for Linux systems lacking the kernel VT subsystem is
1122           restored.
1123
1124         * configure's --with-rootdir= got renamed to
1125           --with-rootprefix= to follow the naming used by udev and
1126           kmod
1127
1128         * Unless specified otherwise we'll now install to /usr instead
1129           of /usr/local by default.
1130
1131         * Processes with '@' in argv[0][0] are now excluded from the
1132           final shut-down killing spree, following the logic explained
1133           in:
1134           http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
1135
1136         * All processes remaining in a service cgroup when we enter
1137           the START or START_PRE states are now killed with
1138           SIGKILL. That means it is no longer possible to spawn
1139           background processes from ExecStart= lines (which was never
1140           supported anyway, and bad style).
1141
1142         * New PropagateReloadTo=/PropagateReloadFrom= options to bind
1143           reloading of units together.
1144
1145         Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
1146         Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
1147         Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
1148         Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
1149         Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek