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