]> git.ipfire.org Git - thirdparty/systemd.git/blob - NEWS
NEWS: add entries for v226
[thirdparty/systemd.git] / NEWS
1 systemd System and Service Manager
2
3 CHANGES WITH 226:
4
5 * The DHCP implementation of systemd-networkd gained a set of new
6 features:
7
8 - Server and client now support transmission and reception of
9 timezone information. It can be configured via the newly introduced
10 network options 'DHCP.UseTimezone=', 'DHCPServer.EmitTimezone=',
11 and 'DHCPServer.Timezone='.
12 Transmission of timezone information is enabled for containers by
13 default now. Furthermore, if systemd-timesyncd is running, it will
14 be updated with the received information.
15
16 - The DHCP server now supports emitting DNS and NTP information. It
17 can be enabled and configured via 'EmitDNS=', 'DNS=', 'EmitNTP=',
18 and 'NTP='.
19 If transmission of DNS and NTP information is enabled, but no
20 specific data-set is configured, the uplink information is used.
21
22 - Lease timeouts can now be configured via 'MaxLeaseTimeSec=' and
23 'DefaultLeaseTimeSec='.
24
25 - The DHCP server now supports improved predictability of leases.
26 Clients are more likely to get the same lease information back,
27 even if the server loses state.
28
29 - The DHCP server supports two new configuration options to specify
30 the lease pool, 'PoolOffset=' and 'PoolSize='.
31
32 * The encapsulation limit of tunnels in systemd-networkd can now be
33 configured via 'EncapsulationLimit='. It allows modifying the maximum
34 additional levels of encapsulation that are permitted to be prepended
35 to a packet.
36
37 * systemd now supports the concept of user-buses over session-buses, if
38 used with dbus-1.10 (and enabled via dbus --enable-user-session).
39
40 * systemd-networkd now supports predictable interface names for virtio
41 devices.
42
43 * systemd now optionally supports the unified cgroup hierarchy. If
44 enabled via the kernel command-line option
45 'systemd.unified_cgroup_hierarchy=1', systemd will try to mount the
46 unified cgroup hierarchy directly on /sys/fs/cgroup. If not enabled,
47 or not available, systemd will fall back to legacy cgroups.
48 Host system and containers can mix and match legacy and unified
49 hierarchies as they wish. By default, nspawn will use the same
50 hierarchy as the host.
51 Please note that the unified hierarchy is an experimental kernel
52 feature and is likely to change in one of the next kernel releases.
53 Therefore, it should not be enabled by default.
54
55 Contributions from: Cristian Rodríguez, Daniel Mack, David Herrmann,
56 Eugene Yakubovich, Evgeny Vereshchagin, Filipe Brandenburger, Jan
57 Alexander Steffens (heftig), Jan Synacek, Kay Sievers, Lennart
58 Poettering, Mangix, Marcel Holtmann, Martin Pitt, Michal Sekletar, Peter
59 Hutterer, Piotr Drąg, reverendhomer, Robin Hack, Susant Sahani, Sylvain
60 Pasche, Thomas Hindoe Paaboel Andersen, Tom Gundersen
61
62 -- Berlin, 2015-09-XX
63
64 CHANGES WITH 225:
65
66 * machinectl gained a new verb 'shell' which opens a fresh shell on the
67 target machine. It is similar to 'login', but spawns the shell
68 directly. The pseudo machine '.host' now refers to the local host and
69 is used by default. Hence, 'machinectl shell' can be used as
70 replacement for 'su' which spawns the session as a fresh systemd
71 unit.
72
73 * systemd-networkd learned to cope with private-zone DHCP options and
74 allows other programs to query the values.
75
76 Contributions from: Alastair Hughes, Alex Crawford, Daniel Mack, David
77 Herrmann, Dimitri John Ledkov, Eric Kostrowski, Evgeny Vereshchagin,
78 Felipe Sateler, HATAYAMA Daisuke, Jan Pokorný, Jan Synacek, Johnny
79 Robeson, Karel Zak, Kay Sievers, Kefeng Wang, Lennart Poettering, Major
80 Hayden, Marcel Holtmann, Markus Elfring, Martin Mikkelsen, Martin Pitt,
81 Matt Turner, Maxim Mikityanskiy, Michael Biebl, Namhyung Kim, Nicolas
82 Cornu, Owen W. Taylor, Patrik Flykt, Peter Hutterer, reverendhomer,
83 Richard Maw, Ronny Chevalier, Seth Jennings, Stef Walter, Susant Sahani,
84 Thomas Blume, Thomas Hindoe Paaboel Andersen, Thomas Meyer, Tom
85 Gundersen, Vincent Batts, WaLyong Cho, Zbigniew Jędrzejewski-Szmek
86
87 -- Berlin, 2015-08-27
88
89 CHANGES WITH 224:
90
91 * The systemd-efi-boot-generator functionality was merged into
92 systemd-gpt-auto-generator.
93
94 * systemd-networkd now supports Group Policy for vxlan devices. It can
95 be enabled via the new boolean configuration option called
96 'GroupPolicyExtension='.
97
98 Contributions from: Andreas Kempf, Christian Hesse, Daniel Mack, David
99 Herrmann, Herman Fries, Johannes Nixdorf, Kay Sievers, Lennart
100 Poettering, Peter Hutterer, Susant Sahani, Tom Gundersen
101
102 -- Berlin, 2015-07-31
103
104 CHANGES WITH 223:
105
106 * The python-systemd code has been removed from the systemd repository.
107 A new repository has been created which accommodates the code from
108 now on, and we kindly ask distributions to create a separate package
109 for this: https://github.com/systemd/python-systemd
110
111 * The systemd daemon will now reload its main configuration
112 (/etc/systemd/system.conf) on daemon-reload.
113
114 * sd-dhcp now exposes vendor specific extensions via
115 sd_dhcp_lease_get_vendor_specific().
116
117 * systemd-networkd gained a number of new configuration options.
118
119 - A new boolean configuration option for TAP devices called
120 'VNetHeader='. If set, the IFF_VNET_HDR flag is set for the
121 device, thus allowing to send and receive GSO packets.
122
123 - A new tunnel configuration option called 'CopyDSCP='.
124 If enabled, the DSCP field of ip6 tunnels is copied into the
125 decapsulated packet.
126
127 - A set of boolean bridge configuration options were added.
128 'UseBPDU=', 'HairPin=', 'FastLeave=', 'AllowPortToBeRoot=',
129 and 'UnicastFlood=' are now parsed by networkd and applied to the
130 respective bridge link device via the respective IFLA_BRPORT_*
131 netlink attribute.
132
133 - A new string configuration option to override the hostname sent
134 to a DHCP server, called 'Hostname='. If set and 'SendHostname='
135 is true, networkd will use the configured hostname instead of the
136 system hostname when sending DHCP requests.
137
138 - A new tunnel configuration option called 'IPv6FlowLabel='. If set,
139 networkd will configure the IPv6 flow-label of the tunnel device
140 according to RFC2460.
141
142 - The 'macvtap' virtual network devices are now supported, similar to
143 the already supported 'macvlan' devices.
144
145 * systemd-resolved now implements RFC5452 to improve resilience against
146 cache poisoning. Additionally, source port randomization is enabled
147 by default to further protect against DNS spoofing attacks.
148
149 * nss-mymachines now supports translating UIDs and GIDs of running
150 containers with user-namespaces enabled. If a container 'foo'
151 translates a host uid 'UID' to the container uid 'TUID', then
152 nss-mymachines will also map uid 'UID' to/from username 'vu-foo-TUID'
153 (with 'foo' and 'TUID' replaced accordingly). Similarly, groups are
154 mapped as 'vg-foo-TGID'.
155
156 Contributions from: Beniamino Galvani, cee1, Christian Hesse, Daniel
157 Buch, Daniel Mack, daurnimator, David Herrmann, Dimitri John Ledkov,
158 HATAYAMA Daisuke, Ivan Shapovalov, Jan Alexander Steffens (heftig),
159 Johan Ouwerkerk, Jose Carlos Venegas Munoz, Karel Zak, Kay Sievers,
160 Lennart Poettering, Lidong Zhong, Martin Pitt, Michael Biebl, Michael
161 Olbrich, Michal Schmidt, Michal Sekletar, Mike Gilbert, Namhyung Kim,
162 Nick Owens, Peter Hutterer, Richard Maw, Steven Allen, Sungbae Yoo,
163 Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel Andersen, Tom
164 Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito Caputo,
165 Vivenzio Pagliari, Zbigniew Jędrzejewski-Szmek
166
167 -- Berlin, 2015-07-29
168
169 CHANGES WITH 222:
170
171 * udev does not longer support the WAIT_FOR_SYSFS= key in udev rules.
172 There are no known issues with current sysfs, and udev does not need
173 or should be used to work around such bugs.
174
175 * udev does no longer enable USB HID power management. Several reports
176 indicate, that some devices cannot handle that setting.
177
178 * The udev accelerometer helper was removed. The functionality
179 is now fully included in iio-sensor-proxy. But this means,
180 older iio-sensor-proxy versions will no longer provide
181 accelerometer/orientation data with this systemd version.
182 Please upgrade iio-sensor-proxy to version 1.0.
183
184 * networkd gained a new configuration option IPv6PrivacyExtensions=
185 which enables IPv6 privacy extensions (RFC 4941, "Privacy Extensions
186 for Stateless Address") on selected networks.
187
188 * For the sake of fewer build-time dependencies and less code in the
189 main repository, the python bindings are about to be removed in the
190 next release. A new repository has been created which accommodates
191 the code from now on, and we kindly ask distributions to create a
192 separate package for this. The removal will take place in v223.
193
194 https://github.com/systemd/python-systemd
195
196 Contributions from: Abdo Roig-Maranges, Andrew Eikum, Bastien Nocera,
197 Cédric Delmas, Christian Hesse, Christos Trochalakis, Daniel Mack,
198 daurnimator, David Herrmann, Dimitri John Ledkov, Eric Biggers, Eric
199 Cook, Felipe Sateler, Geert Jansen, Gerd Hoffmann, Gianpaolo Macario,
200 Greg Kroah-Hartman, Iago López Galeiras, Jan Alexander Steffens
201 (heftig), Jan Engelhardt, Jay Strict, Kay Sievers, Lennart Poettering,
202 Markus Knetschke, Martin Pitt, Michael Biebl, Michael Marineau, Michal
203 Sekletar, Miguel Bernal Marin, Peter Hutterer, Richard Maw, rinrinne,
204 Susant Sahani, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
205 Husebø, Vedran Miletić, WaLyong Cho, Zbigniew Jędrzejewski-Szmek
206
207 -- Berlin, 2015-07-07
208
209 CHANGES WITH 221:
210
211 * The sd-bus.h and sd-event.h APIs have now been declared
212 stable and have been added to the official interface of
213 libsystemd.so. sd-bus implements an alternative D-Bus client
214 library, that is relatively easy to use, very efficient and
215 supports both classic D-Bus as well as kdbus as transport
216 backend. sd-event is a generic event loop abstraction that
217 is built around Linux epoll, but adds features such as event
218 prioritization or efficient timer handling. Both APIs are good
219 choices for C programs looking for a bus and/or event loop
220 implementation that is minimal and does not have to be
221 portable to other kernels.
222
223 * kdbus support is no longer compile-time optional. It is now
224 always built-in. However, it can still be disabled at
225 runtime using the kdbus=0 kernel command line setting, and
226 that setting may be changed to default to off, by specifying
227 --disable-kdbus at build-time. Note though that the kernel
228 command line setting has no effect if the kdbus.ko kernel
229 module is not installed, in which case kdbus is (obviously)
230 also disabled. We encourage all downstream distributions to
231 begin testing kdbus by adding it to the kernel images in the
232 development distributions, and leaving kdbus support in
233 systemd enabled.
234
235 * The minimal required util-linux version has been bumped to
236 2.26.
237
238 * Support for chkconfig (--enable-chkconfig) was removed in
239 favor of calling an abstraction tool
240 /lib/systemd/systemd-sysv-install. This needs to be
241 implemented for your distribution. See "SYSV INIT.D SCRIPTS"
242 in README for details.
243
244 * If there's a systemd unit and a SysV init script for the
245 same service name, and the user executes "systemctl enable"
246 for it (or a related call), then this will now enable both
247 (or execute the related operation on both), not just the
248 unit.
249
250 * The libudev API documentation has been converted from gtkdoc
251 into man pages.
252
253 * gudev has been removed from the systemd tree, it is now an
254 external project.
255
256 * The systemd-cgtop tool learnt a new --raw switch to generate
257 "raw" (machine parsable) output.
258
259 * networkd's IPForwarding= .network file setting learnt the
260 new setting "kernel", which ensures that networkd does not
261 change the IP forwarding sysctl from the default kernel
262 state.
263
264 * The systemd-logind bus API now exposes a new boolean
265 property "Docked" that reports whether logind considers the
266 system "docked", i.e. connected to a docking station or not.
267
268 Contributions from: Alex Crawford, Andreas Pokorny, Andrei
269 Borzenkov, Charles Duffy, Colin Guthrie, Cristian Rodríguez,
270 Daniele Medri, Daniel Hahler, Daniel Mack, David Herrmann,
271 David Mohr, Dimitri John Ledkov, Djalal Harouni, dslul, Ed
272 Swierk, Eric Cook, Filipe Brandenburger, Gianpaolo Macario,
273 Harald Hoyer, Iago López Galeiras, Igor Vuk, Jan Synacek,
274 Jason Pleau, Jason S. McMullan, Jean Delvare, Jeff Huang,
275 Jonathan Boulle, Karel Zak, Kay Sievers, kloun, Lennart
276 Poettering, Marc-Antoine Perennou, Marcel Holtmann, Mario
277 Limonciello, Martin Pitt, Michael Biebl, Michael Olbrich,
278 Michal Schmidt, Mike Gilbert, Nick Owens, Pablo Lezaeta Reyes,
279 Patrick Donnelly, Pavel Odvody, Peter Hutterer, Philip
280 Withnall, Ronny Chevalier, Simon McVittie, Susant Sahani,
281 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
282 Husebø, Umut Tezduyar Lindskog, Viktar Vauchkevich, Werner
283 Fink, Zbigniew Jędrzejewski-Szmek
284
285 -- Berlin, 2015-06-19
286
287 CHANGES WITH 220:
288
289 * The gudev library has been extracted into a separate repository
290 available at: https://git.gnome.org/browse/libgudev/
291 It is now managed as part of the Gnome project. Distributions
292 are recommended to pass --disable-gudev to systemd and use
293 gudev from the Gnome project instead. gudev is still included
294 in systemd, for now. It will be removed soon, though. Please
295 also see the announcement-thread on systemd-devel:
296 http://lists.freedesktop.org/archives/systemd-devel/2015-May/032070.html
297
298 * systemd now exposes a CPUUsageNSec= property for each
299 service unit on the bus, that contains the overall consumed
300 CPU time of a service (the sum of what each process of the
301 service consumed). This value is only available if
302 CPUAccounting= is turned on for a service, and is then shown
303 in the "systemctl status" output.
304
305 * Support for configuring alternative mappings of the old SysV
306 runlevels to systemd targets has been removed. They are now
307 hardcoded in a way that runlevels 2, 3, 4 all map to
308 multi-user.target and 5 to graphical.target (which
309 previously was already the default behaviour).
310
311 * The auto-mounter logic gained support for mount point
312 expiry, using a new TimeoutIdleSec= setting in .automount
313 units. (Also available as x-systemd.idle-timeout= in /etc/fstab).
314
315 * The EFI System Partition (ESP) as mounted to /boot by
316 systemd-efi-boot-generator will now be unmounted
317 automatically after 2 minutes of not being used. This should
318 minimize the risk of ESP corruptions.
319
320 * New /etc/fstab options x-systemd.requires= and
321 x-systemd.requires-mounts-for= are now supported to express
322 additional dependencies for mounts. This is useful for
323 journalling file systems that support external journal
324 devices or overlay file systems that require underlying file
325 systems to be mounted.
326
327 * systemd does not support direct live-upgrades (via systemctl
328 daemon-reexec) from versions older than v44 anymore. As no
329 distribution we are aware of shipped such old versions in a
330 stable release this should not be problematic.
331
332 * When systemd forks off a new per-connection service instance
333 it will now set the $REMOTE_ADDR environment variable to the
334 remote IP address, and $REMOTE_PORT environment variable to
335 the remote IP port. This behaviour is similar to the
336 corresponding environment variables defined by CGI.
337
338 * systemd-networkd gained support for uplink failure
339 detection. The BindCarrier= option allows binding interface
340 configuration dynamically to the link sense of other
341 interfaces. This is useful to achieve behaviour like in
342 network switches.
343
344 * systemd-networkd gained support for configuring the DHCP
345 client identifier to use when requesting leases.
346
347 * systemd-networkd now has a per-network UseNTP= option to
348 configure whether NTP server information acquired via DHCP
349 is passed on to services like systemd-timesyncd.
350
351 * systemd-networkd gained support for vti6 tunnels.
352
353 * Note that systemd-networkd manages the sysctl variable
354 /proc/sys/net/ipv[46]/conf/*/forwarding for each interface
355 it is configured for since v219. The variable controls IP
356 forwarding, and is a per-interface alternative to the global
357 /proc/sys/net/ipv[46]/ip_forward. This setting is
358 configurable in the IPForward= option, which defaults to
359 "no". This means if networkd is used for an interface it is
360 no longer sufficient to set the global sysctl option to turn
361 on IP forwarding! Instead, the .network file option
362 IPForward= needs to be turned on! Note that the
363 implementation of this behaviour was broken in v219 and has
364 been fixed in v220.
365
366 * Many bonding and vxlan options are now configurable in
367 systemd-networkd.
368
369 * systemd-nspawn gained a new --property= setting to set unit
370 properties for the container scope. This is useful for
371 setting resource parameters (e.g "CPUShares=500") on
372 containers started from the command line.
373
374 * systemd-nspawn gained a new --private-users= switch to make
375 use of user namespacing available on recent Linux kernels.
376
377 * systemd-nspawn may now be called as part of a shell pipeline
378 in which case the pipes used for stdin and stdout are passed
379 directly to the process invoked in the container, without
380 indirection via a pseudo tty.
381
382 * systemd-nspawn gained a new switch to control the UNIX
383 signal to use when killing the init process of the container
384 when shutting down.
385
386 * systemd-nspawn gained a new --overlay= switch for mounting
387 overlay file systems into the container using the new kernel
388 overlayfs support.
389
390 * When a container image is imported via systemd-importd and
391 the host file system is not btrfs, a loopback block device
392 file is created in /var/lib/machines.raw with a btrfs file
393 system inside. It is then mounted to /var/lib/machines to
394 enable btrfs features for container management. The loopback
395 file and btrfs file system is grown as needed when container
396 images are imported via systemd-importd.
397
398 * systemd-machined/systemd-importd gained support for btrfs
399 quota, to enforce container disk space limits on disk. This
400 is exposed in "machinectl set-limit".
401
402 * systemd-importd now can import containers from local .tar,
403 .raw and .qcow2 images, and export them to .tar and .raw. It
404 can also import dkr v2 images now from the network (on top
405 of v1 as before).
406
407 * systemd-importd gained support for verifying downloaded
408 images with gpg2 (previously only gpg1 was supported).
409
410 * systemd-machined, systemd-logind, systemd: most bus calls
411 are now accessible to unprivileged processes via
412 PolicyKit. Also, systemd-logind will now allow users to kill
413 their own sessions without further privileges or
414 authorization.
415
416 * systemd-shutdownd has been removed. This service was
417 previously responsible for implementing scheduled shutdowns
418 as exposed in /usr/bin/shutdown's time parameter. This
419 functionality has now been moved into systemd-logind and is
420 accessible via a bus interface.
421
422 * "systemctl reboot" gained a new switch --firmware-setup that
423 can be used to reboot into the EFI firmware setup, if that
424 is available. systemd-logind now exposes an API on the bus
425 to trigger such reboots, in case graphical desktop UIs want
426 to cover this functionality.
427
428 * "systemctl enable", "systemctl disable" and "systemctl mask"
429 now support a new "--now" switch. If specified the units
430 that are enabled will also be started, and the ones
431 disabled/masked also stopped.
432
433 * The Gummiboot EFI boot loader tool has been merged into
434 systemd, and renamed to "systemd-boot". The bootctl tool has been
435 updated to support systemd-boot.
436
437 * An EFI kernel stub has been added that may be used to create
438 kernel EFI binaries that contain not only the actual kernel,
439 but also an initrd, boot splash, command line and OS release
440 information. This combined binary can then be signed as a
441 single image, so that the firmware can verify it all in one
442 step. systemd-boot has special support for EFI binaries created
443 like this and can extract OS release information from them
444 and show them in the boot menu. This functionality is useful
445 to implement cryptographically verified boot schemes.
446
447 * Optional support has been added to systemd-fsck to pass
448 fsck's progress report to an AF_UNIX socket in the file
449 system.
450
451 * udev will no longer create device symlinks for all block
452 devices by default. A blacklist for excluding special block
453 devices from this logic has been turned into a whitelist
454 that requires picking block devices explicitly that require
455 device symlinks.
456
457 * A new (currently still internal) API sd-device.h has been
458 added to libsystemd. This modernized API is supposed to
459 replace libudev eventually. In fact, already much of libudev
460 is now just a wrapper around sd-device.h.
461
462 * A new hwdb database for storing metadata about pointing
463 stick devices has been added.
464
465 * systemd-tmpfiles gained support for setting file attributes
466 similar to the "chattr" tool with new 'h' and 'H' lines.
467
468 * systemd-journald will no longer unconditionally set the
469 btrfs NOCOW flag on new journal files. This is instead done
470 with tmpfiles snippet using the new 'h' line type. This
471 allows easy disabling of this logic, by masking the
472 journal-nocow.conf tmpfiles file.
473
474 * systemd-journald will now translate audit message types to
475 human readable identifiers when writing them to the
476 journal. This should improve readability of audit messages.
477
478 * The LUKS logic gained support for the offset= and skip=
479 options in /etc/crypttab, as previously implemented by
480 Debian.
481
482 * /usr/lib/os-release gained a new optional field VARIANT= for
483 distributions that support multiple variants (such as a
484 desktop edition, a server edition, ...)
485
486 Contributions from: Aaro Koskinen, Adam Goode, Alban Crequy,
487 Alberto Fanjul Alonso, Alexander Sverdlin, Alex Puchades, Alin
488 Rauta, Alison Chaiken, Andrew Jones, Arend van Spriel,
489 Benedikt Morbach, Benjamin Franzke, Benjamin Tissoires, Blaž
490 Tomažič, Chris Morgan, Chris Morin, Colin Walters, Cristian
491 Rodríguez, Daniel Buch, Daniel Drake, Daniele Medri, Daniel
492 Mack, Daniel Mustieles, daurnimator, Davide Bettio, David
493 Herrmann, David Strauss, Didier Roche, Dimitri John Ledkov,
494 Eric Cook, Gavin Li, Goffredo Baroncelli, Hannes Reinecke,
495 Hans de Goede, Hans-Peter Deifel, Harald Hoyer, Iago López
496 Galeiras, Ivan Shapovalov, Jan Engelhardt, Jan Janssen, Jan
497 Pazdziora, Jan Synacek, Jasper St. Pierre, Jay Faulkner, John
498 Paul Adrian Glaubitz, Jonathon Gilbert, Karel Zak, Kay
499 Sievers, Koen Kooi, Lennart Poettering, Lubomir Rintel, Lucas
500 De Marchi, Lukas Nykryn, Lukas Rusak, Lukasz Skalski, Łukasz
501 Stelmach, Mantas Mikulėnas, Marc-Antoine Perennou, Marcel
502 Holtmann, Martin Pitt, Mathieu Chevrier, Matthew Garrett,
503 Michael Biebl, Michael Marineau, Michael Olbrich, Michal
504 Schmidt, Michal Sekletar, Mirco Tischler, Nir Soffer, Patrik
505 Flykt, Pavel Odvody, Peter Hutterer, Peter Lemenkov, Peter
506 Waller, Piotr Drąg, Raul Gutierrez S, Richard Maw, Ronny
507 Chevalier, Ross Burton, Sebastian Rasmussen, Sergey Ptashnick,
508 Seth Jennings, Shawn Landden, Simon Farnsworth, Stefan Junker,
509 Stephen Gallagher, Susant Sahani, Sylvain Plantefève, Thomas
510 Haller, Thomas Hindoe Paaboel Andersen, Tobias Hunger, Tom
511 Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Will
512 Woods, Zachary Cook, Zbigniew Jędrzejewski-Szmek
513
514 -- Berlin, 2015-05-22
515
516 CHANGES WITH 219:
517
518 * Introduce a new API "sd-hwdb.h" for querying the hardware
519 metadata database. With this minimal interface one can query
520 and enumerate the udev hwdb, decoupled from the old libudev
521 library. libudev's interface for this is now only a wrapper
522 around sd-hwdb. A new tool systemd-hwdb has been added to
523 interface with and update the database.
524
525 * When any of systemd's tools copies files (for example due to
526 tmpfiles' C lines) a btrfs reflink will attempted first,
527 before bytewise copying is done.
528
529 * systemd-nspawn gained a new --ephemeral switch. When
530 specified a btrfs snapshot is taken of the container's root
531 directory, and immediately removed when the container
532 terminates again. Thus, a container can be started whose
533 changes never alter the container's root directory, and are
534 lost on container termination. This switch can also be used
535 for starting a container off the root file system of the
536 host without affecting the host OS. This switch is only
537 available on btrfs file systems.
538
539 * systemd-nspawn gained a new --template= switch. It takes the
540 path to a container tree to use as template for the tree
541 specified via --directory=, should that directory be
542 missing. This allows instantiating containers dynamically,
543 on first run. This switch is only available on btrfs file
544 systems.
545
546 * When a .mount unit refers to a mount point on which multiple
547 mounts are stacked, and the .mount unit is stopped all of
548 the stacked mount points will now be unmounted until no
549 mount point remains.
550
551 * systemd now has an explicit notion of supported and
552 unsupported unit types. Jobs enqueued for unsupported unit
553 types will now fail with an "unsupported" error code. More
554 specifically .swap, .automount and .device units are not
555 supported in containers, .busname units are not supported on
556 non-kdbus systems. .swap and .automount are also not
557 supported if their respective kernel compile time options
558 are disabled.
559
560 * machinectl gained support for two new "copy-from" and
561 "copy-to" commands for copying files from a running
562 container to the host or vice versa.
563
564 * machinectl gained support for a new "bind" command to bind
565 mount host directories into local containers. This is
566 currently only supported for nspawn containers.
567
568 * networkd gained support for configuring bridge forwarding
569 database entries (fdb) from .network files.
570
571 * A new tiny daemon "systemd-importd" has been added that can
572 download container images in tar, raw, qcow2 or dkr formats,
573 and make them available locally in /var/lib/machines, so
574 that they can run as nspawn containers. The daemon can GPG
575 verify the downloads (not supported for dkr, since it has no
576 provisions for verifying downloads). It will transparently
577 decompress bz2, xz, gzip compressed downloads if necessary,
578 and restore sparse files on disk. The daemon uses privilege
579 separation to ensure the actual download logic runs with
580 fewer privileges than the daemon itself. machinectl has
581 gained new commands "pull-tar", "pull-raw" and "pull-dkr" to
582 make the functionality of importd available to the
583 user. With this in place the Fedora and Ubuntu "Cloud"
584 images can be downloaded and booted as containers unmodified
585 (the Fedora images lack the appropriate GPG signature files
586 currently, so they cannot be verified, but this will change
587 soon, hopefully). Note that downloading images is currently
588 only fully supported on btrfs.
589
590 * machinectl is now able to list container images found in
591 /var/lib/machines, along with some metadata about sizes of
592 disk and similar. If the directory is located on btrfs and
593 quota is enabled, this includes quota display. A new command
594 "image-status" has been added that shows additional
595 information about images.
596
597 * machinectl is now able to clone container images
598 efficiently, if the underlying file system (btrfs) supports
599 it, with the new "machinectl list-images" command. It also
600 gained commands for renaming and removing images, as well as
601 marking them read-only or read-write (supported also on
602 legacy file systems).
603
604 * networkd gained support for collecting LLDP network
605 announcements, from hardware that supports this. This is
606 shown in networkctl output.
607
608 * systemd-run gained support for a new -t (--pty) switch for
609 invoking a binary on a pty whose input and output is
610 connected to the invoking terminal. This allows executing
611 processes as system services while interactively
612 communicating with them via the terminal. Most interestingly
613 this is supported across container boundaries. Invoking
614 "systemd-run -t /bin/bash" is an alternative to running a
615 full login session, the difference being that the former
616 will not register a session, nor go through the PAM session
617 setup.
618
619 * tmpfiles gained support for a new "v" line type for creating
620 btrfs subvolumes. If the underlying file system is a legacy
621 file system, this automatically degrades to creating a
622 normal directory. Among others /var/lib/machines is now
623 created like this at boot, should it be missing.
624
625 * The directory /var/lib/containers/ has been deprecated and
626 been replaced by /var/lib/machines. The term "machines" has
627 been used in the systemd context as generic term for both
628 VMs and containers, and hence appears more appropriate for
629 this, as the directory can also contain raw images bootable
630 via qemu/kvm.
631
632 * systemd-nspawn when invoked with -M but without --directory=
633 or --image= is now capable of searching for the container
634 root directory, subvolume or disk image automatically, in
635 /var/lib/machines. systemd-nspawn@.service has been updated
636 to make use of this, thus allowing it to be used for raw
637 disk images, too.
638
639 * A new machines.target unit has been introduced that is
640 supposed to group all containers/VMs invoked as services on
641 the system. systemd-nspawn@.service has been updated to
642 integrate with that.
643
644 * machinectl gained a new "start" command, for invoking a
645 container as a service. "machinectl start foo" is mostly
646 equivalent to "systemctl start systemd-nspawn@foo.service",
647 but handles escaping in a nicer way.
648
649 * systemd-nspawn will now mount most of the cgroupfs tree
650 read-only into each container, with the exception of the
651 container's own subtree in the name=systemd hierarchy.
652
653 * journald now sets the special FS_NOCOW file flag for its
654 journal files. This should improve performance on btrfs, by
655 avoiding heavy fragmentation when journald's write-pattern
656 is used on COW file systems. It degrades btrfs' data
657 integrity guarantees for the files to the same levels as for
658 ext3/ext4 however. This should be OK though as journald does
659 its own data integrity checks and all its objects are
660 checksummed on disk. Also, journald should handle btrfs disk
661 full events a lot more gracefully now, by processing SIGBUS
662 errors, and not relying on fallocate() anymore.
663
664 * When journald detects that journal files it is writing to
665 have been deleted it will immediately start new journal
666 files.
667
668 * systemd now provides a way to store file descriptors
669 per-service in PID 1.This is useful for daemons to ensure
670 that fds they require are not lost during a daemon
671 restart. The fds are passed to the daemon on the next
672 invocation in the same way socket activation fds are
673 passed. This is now used by journald to ensure that the
674 various sockets connected to all the system's stdout/stderr
675 are not lost when journald is restarted. File descriptors
676 may be stored in PID 1 via the sd_pid_notify_with_fds() API,
677 an extension to sd_notify(). Note that a limit is enforced
678 on the number of fds a service can store in PID 1, and it
679 defaults to 0, so that no fds may be stored, unless this is
680 explicitly turned on.
681
682 * The default TERM variable to use for units connected to a
683 terminal, when no other value is explicitly is set is now
684 vt220 rather than vt102. This should be fairly safe still,
685 but allows PgUp/PgDn work.
686
687 * The /etc/crypttab option header= as known from Debian is now
688 supported.
689
690 * "loginctl user-status" and "loginctl session-status" will
691 now show the last 10 lines of log messages of the
692 user/session following the status output. Similar,
693 "machinectl status" will show the last 10 log lines
694 associated with a virtual machine or container
695 service. (Note that this is usually not the log messages
696 done in the VM/container itself, but simply what the
697 container manager logs. For nspawn this includes all console
698 output however.)
699
700 * "loginctl session-status" without further argument will now
701 show the status of the session of the caller. Similar,
702 "lock-session", "unlock-session", "activate",
703 "enable-linger", "disable-linger" may now be called without
704 session/user parameter in which case they apply to the
705 caller's session/user.
706
707 * An X11 session scriptlet is now shipped that uploads
708 $DISPLAY and $XAUTHORITY into the environment of the systemd
709 --user daemon if a session begins. This should improve
710 compatibility with X11 enabled applications run as systemd
711 user services.
712
713 * Generators are now subject to masking via /etc and /run, the
714 same way as unit files.
715
716 * networkd .network files gained support for configuring
717 per-link IPv4/IPv6 packet forwarding as well as IPv4
718 masquerading. This is by default turned on for veth links to
719 containers, as registered by systemd-nspawn. This means that
720 nspawn containers run with --network-veth will now get
721 automatic routed access to the host's networks without any
722 further configuration or setup, as long as networkd runs on
723 the host.
724
725 * systemd-nspawn gained the --port= (-p) switch to expose TCP
726 or UDP posts of a container on the host. With this in place
727 it is possible to run containers with private veth links
728 (--network-veth), and have their functionality exposed on
729 the host as if their services were running directly on the
730 host.
731
732 * systemd-nspawn's --network-veth switch now gained a short
733 version "-n", since with the changes above it is now truly
734 useful out-of-the-box. The systemd-nspawn@.service has been
735 updated to make use of it too by default.
736
737 * systemd-nspawn will now maintain a per-image R/W lock, to
738 ensure that the same image is not started more than once
739 writable. (It's OK to run an image multiple times
740 simultaneously in read-only mode.)
741
742 * systemd-nspawn's --image= option is now capable of
743 dissecting and booting MBR and GPT disk images that contain
744 only a single active Linux partition. Previously it
745 supported only GPT disk images with proper GPT type
746 IDs. This allows running cloud images from major
747 distributions directly with systemd-nspawn, without
748 modification.
749
750 * In addition to collecting mouse dpi data in the udev
751 hardware database, there's now support for collecting angle
752 information for mouse scroll wheels. The database is
753 supposed to guarantee similar scrolling behavior on mice
754 that it knows about. There's also support for collecting
755 information about Touchpad types.
756
757 * udev's input_id built-in will now also collect touch screen
758 dimension data and attach it to probed devices.
759
760 * /etc/os-release gained support for a Distribution Privacy
761 Policy link field.
762
763 * networkd gained support for creating "ipvlan", "gretap",
764 "ip6gre", "ip6gretap" and "ip6tnl" network devices.
765
766 * systemd-tmpfiles gained support for "a" lines for setting
767 ACLs on files.
768
769 * systemd-nspawn will now mount /tmp in the container to
770 tmpfs, automatically.
771
772 * systemd now exposes the memory.usage_in_bytes cgroup
773 attribute and shows it for each service in the "systemctl
774 status" output, if available.
775
776 * When the user presses Ctrl-Alt-Del more than 7x within 2s an
777 immediate reboot is triggered. This useful if shutdown is
778 hung and is unable to complete, to expedite the
779 operation. Note that this kind of reboot will still unmount
780 all file systems, and hence should not result in fsck being
781 run on next reboot.
782
783 * A .device unit for an optical block device will now be
784 considered active only when a medium is in the drive. Also,
785 mount units are now bound to their backing devices thus
786 triggering automatic unmounting when devices become
787 unavailable. With this in place systemd will now
788 automatically unmount left-over mounts when a CD-ROM is
789 ejected or an USB stick is yanked from the system.
790
791 * networkd-wait-online now has support for waiting for
792 specific interfaces only (with globbing), and for giving up
793 after a configurable timeout.
794
795 * networkd now exits when idle. It will be automatically
796 restarted as soon as interfaces show up, are removed or
797 change state. networkd will stay around as long as there is
798 at least one DHCP state machine or similar around, that keep
799 it non-idle.
800
801 * networkd may now configure IPv6 link-local addressing in
802 addition to IPv4 link-local addressing.
803
804 * The IPv6 "token" for use in SLAAC may now be configured for
805 each .network interface in networkd.
806
807 * Routes configured with networkd may now be assigned a scope
808 in .network files.
809
810 * networkd's [Match] sections now support globbing and lists
811 of multiple space-separated matches per item.
812
813 Contributions from: Alban Crequy, Alin Rauta, Andrey Chaser,
814 Bastien Nocera, Bruno Bottazzini, Carlos Garnacho, Carlos
815 Morata Castillo, Chris Atkinson, Chris J. Arges, Christian
816 Kirbach, Christian Seiler, Christoph Brill, Colin Guthrie,
817 Colin Walters, Cristian Rodríguez, Daniele Medri, Daniel Mack,
818 Dave Reisner, David Herrmann, Djalal Harouni, Erik Auerswald,
819 Filipe Brandenburger, Frank Theile, Gabor Kelemen, Gabriel de
820 Perthuis, Harald Hoyer, Hui Wang, Ivan Shapovalov, Jan
821 Engelhardt, Jan Synacek, Jay Faulkner, Johannes Hölzl, Jonas
822 Ådahl, Jonathan Boulle, Josef Andersson, Kay Sievers, Ken
823 Werner, Lennart Poettering, Lucas De Marchi, Lukas Märdian,
824 Lukas Nykryn, Lukasz Skalski, Luke Shumaker, Mantas Mikulėnas,
825 Manuel Mendez, Marcel Holtmann, Marc Schmitzer, Marko
826 Myllynen, Martin Pitt, Maxim Mikityanskiy, Michael Biebl,
827 Michael Marineau, Michael Olbrich, Michal Schmidt, Mindaugas
828 Baranauskas, Moez Bouhlel, Naveen Kumar, Patrik Flykt, Paul
829 Martin, Peter Hutterer, Peter Mattern, Philippe De Swert,
830 Piotr Drąg, Rafael Ferreira, Rami Rosen, Robert Milasan, Ronny
831 Chevalier, Sangjung Woo, Sebastien Bacher, Sergey Ptashnick,
832 Shawn Landden, Stéphane Graber, Susant Sahani, Sylvain
833 Plantefève, Thomas Hindoe Paaboel Andersen, Tim JP, Tom
834 Gundersen, Topi Miettinen, Torstein Husebø, Umut Tezduyar
835 Lindskog, Veres Lajos, Vincent Batts, WaLyong Cho, Wieland
836 Hoffmann, Zbigniew Jędrzejewski-Szmek
837
838 -- Berlin, 2015-02-16
839
840 CHANGES WITH 218:
841
842 * When querying unit file enablement status (for example via
843 "systemctl is-enabled"), a new state "indirect" is now known
844 which indicates that a unit might not be enabled itself, but
845 another unit listed in its Also= setting might be.
846
847 * Similar to the various existing ConditionXYZ= settings for
848 units there are now matching AssertXYZ= settings. While
849 failing conditions cause a unit to be skipped, but its job
850 to succeed, failing assertions declared like this will cause
851 a unit start operation and its job to fail.
852
853 * hostnamed now knows a new chassis type "embedded".
854
855 * systemctl gained a new "edit" command. When used on a unit
856 file this allows extending unit files with .d/ drop-in
857 configuration snippets or editing the full file (after
858 copying it from /usr/lib to /etc). This will invoke the
859 user's editor (as configured with $EDITOR), and reload the
860 modified configuration after editing.
861
862 * "systemctl status" now shows the suggested enablement state
863 for a unit, as declared in the (usually vendor-supplied)
864 system preset files.
865
866 * nss-myhostname will now resolve the single-label host name
867 "gateway" to the locally configured default IP routing
868 gateways, ordered by their metrics. This assigns a stable
869 name to the used gateways, regardless which ones are
870 currently configured. Note that the name will only be
871 resolved after all other name sources (if nss-myhostname is
872 configured properly) and should hence not negatively impact
873 systems that use the single-label host name "gateway" in
874 other contexts.
875
876 * systemd-inhibit now allows filtering by mode when listing
877 inhibitors.
878
879 * Scope and service units gained a new "Delegate" boolean
880 property, which when set allows processes running inside the
881 unit to further partition resources. This is primarily
882 useful for systemd user instances as well as container
883 managers.
884
885 * journald will now pick up audit messages directly from
886 the kernel, and log them like any other log message. The
887 audit fields are split up and fully indexed. This means that
888 journalctl in many ways is now a (nicer!) alternative to
889 ausearch, the traditional audit client. Note that this
890 implements only a minimal audit client, if you want the
891 special audit modes like reboot-on-log-overflow, please use
892 the traditional auditd instead, which can be used in
893 parallel to journald.
894
895 * The ConditionSecurity= unit file option now understands the
896 special string "audit" to check whether auditing is
897 available.
898
899 * journalctl gained two new commands --vacuum-size= and
900 --vacuum-time= to delete old journal files until the
901 remaining ones take up no more the specified size on disk,
902 or are not older than the specified time.
903
904 * A new, native PPPoE library has been added to sd-network,
905 systemd's library of light-weight networking protocols. This
906 library will be used in a future version of networkd to
907 enable PPPoE communication without an external pppd daemon.
908
909 * The busctl tool now understands a new "capture" verb that
910 works similar to "monitor", but writes a packet capture
911 trace to STDOUT that can be redirected to a file which is
912 compatible with libcap's capture file format. This can then
913 be loaded in Wireshark and similar tools to inspect bus
914 communication.
915
916 * The busctl tool now understands a new "tree" verb that shows
917 the object trees of a specific service on the bus, or of all
918 services.
919
920 * The busctl tool now understands a new "introspect" verb that
921 shows all interfaces and members of objects on the bus,
922 including their signature and values. This is particularly
923 useful to get more information about bus objects shown by
924 the new "busctl tree" command.
925
926 * The busctl tool now understands new verbs "call",
927 "set-property" and "get-property" for invoking bus method
928 calls, setting and getting bus object properties in a
929 friendly way.
930
931 * busctl gained a new --augment-creds= argument that controls
932 whether the tool shall augment credential information it
933 gets from the bus with data from /proc, in a possibly
934 race-ful way.
935
936 * nspawn's --link-journal= switch gained two new values
937 "try-guest" and "try-host" that work like "guest" and
938 "host", but do not fail if the host has no persistent
939 journalling enabled. -j is now equivalent to
940 --link-journal=try-guest.
941
942 * macvlan network devices created by nspawn will now have
943 stable MAC addresses.
944
945 * A new SmackProcessLabel= unit setting has been added, which
946 controls the SMACK security label processes forked off by
947 the respective unit shall use.
948
949 * If compiled with --enable-xkbcommon, systemd-localed will
950 verify x11 keymap settings by compiling the given keymap. It
951 will spew out warnings if the compilation fails. This
952 requires libxkbcommon to be installed.
953
954 * When a coredump is collected a larger number of metadata
955 fields is now collected and included in the journal records
956 created for it. More specifically control group membership,
957 environment variables, memory maps, working directory,
958 chroot directory, /proc/$PID/status, and a list of open file
959 descriptors is now stored in the log entry.
960
961 * The udev hwdb now contains DPI information for mice. For
962 details see:
963
964 http://who-t.blogspot.de/2014/12/building-a-dpi-database-for-mice.html
965
966 * All systemd programs that read standalone configuration
967 files in /etc now also support a corresponding series of
968 .conf.d configuration directories in /etc/, /run/,
969 /usr/local/lib/, /usr/lib/, and (if configured with
970 --enable-split-usr) /lib/. In particular, the following
971 configuration files now have corresponding configuration
972 directories: system.conf user.conf, logind.conf,
973 journald.conf, sleep.conf, bootchart.conf, coredump.conf,
974 resolved.conf, timesyncd.conf, journal-remote.conf, and
975 journal-upload.conf. Note that distributions should use the
976 configuration directories in /usr/lib/; the directories in
977 /etc/ are reserved for the system administrator.
978
979 * systemd-rfkill will no longer take the rfkill device name
980 into account when storing rfkill state on disk, as the name
981 might be dynamically assigned and not stable. Instead, the
982 ID_PATH udev variable combined with the rfkill type (wlan,
983 bluetooth, ...) is used.
984
985 * A new service systemd-machine-id-commit.service has been
986 added. When used on systems where /etc is read-only during
987 boot, and /etc/machine-id is not initialized (but an empty
988 file), this service will copy the temporary machine ID
989 created as replacement into /etc after the system is fully
990 booted up. This is useful for systems that are freshly
991 installed with a non-initialized machine ID, but should get
992 a fixed machine ID for subsequent boots.
993
994 * networkd's .netdev files now provide a large set of
995 configuration parameters for VXLAN devices. Similar, the
996 bridge port cost parameter is now configurable in .network
997 files. There's also new support for configuring IP source
998 routing. networkd .link files gained support for a new
999 OriginalName= match that is useful to match against the
1000 original interface name the kernel assigned. .network files
1001 may include MTU= and MACAddress= fields for altering the MTU
1002 and MAC address while being connected to a specific network
1003 interface.
1004
1005 * The LUKS logic gained supported for configuring
1006 UUID-specific key files. There's also new support for naming
1007 LUKS device from the kernel command line, using the new
1008 luks.name= argument.
1009
1010 * Timer units may now be transiently created via the bus API
1011 (this was previously already available for scope and service
1012 units). In addition it is now possible to create multiple
1013 transient units at the same time with a single bus call. The
1014 "systemd-run" tool has been updated to make use of this for
1015 running commands on a specified time, in at(1)-style.
1016
1017 * tmpfiles gained support for "t" lines, for assigning
1018 extended attributes to files. Among other uses this may be
1019 used to assign SMACK labels to files.
1020
1021 Contributions from: Alin Rauta, Alison Chaiken, Andrej
1022 Manduch, Bastien Nocera, Chris Atkinson, Chris Leech, Chris
1023 Mayo, Colin Guthrie, Colin Walters, Cristian Rodríguez,
1024 Daniele Medri, Daniel Mack, Dan Williams, Dan Winship, Dave
1025 Reisner, David Herrmann, Didier Roche, Felipe Sateler, Gavin
1026 Li, Hans de Goede, Harald Hoyer, Iago López Galeiras, Ivan
1027 Shapovalov, Jakub Filak, Jan Janssen, Jan Synacek, Joe
1028 Lawrence, Josh Triplett, Kay Sievers, Lennart Poettering,
1029 Lukas Nykryn, Łukasz Stelmach, Maciej Wereski, Mantas
1030 Mikulėnas, Marcel Holtmann, Martin Pitt, Maurizio Lombardi,
1031 Michael Biebl, Michael Chapman, Michael Marineau, Michal
1032 Schmidt, Michal Sekletar, Olivier Brunel, Patrik Flykt, Peter
1033 Hutterer, Przemyslaw Kedzierski, Rami Rosen, Ray Strode,
1034 Richard Schütz, Richard W.M. Jones, Ronny Chevalier, Ross
1035 Lagerwall, Sean Young, Stanisław Pitucha, Susant Sahani,
1036 Thomas Haller, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
1037 Torstein Husebø, Umut Tezduyar Lindskog, Vicente Olivert
1038 Riera, WaLyong Cho, Wesley Dawson, Zbigniew Jędrzejewski-Szmek
1039
1040 -- Berlin, 2014-12-10
1041
1042 CHANGES WITH 217:
1043
1044 * journalctl gained the new options -t/--identifier= to match
1045 on the syslog identifier (aka "tag"), as well as --utc to
1046 show log timestamps in the UTC timezone. journalctl now also
1047 accepts -n/--lines=all to disable line capping in a pager.
1048
1049 * journalctl gained a new switch, --flush, that synchronously
1050 flushes logs from /run/log/journal to /var/log/journal if
1051 persistent storage is enabled. systemd-journal-flush.service
1052 now waits until the operation is complete.
1053
1054 * Services can notify the manager before they start a reload
1055 (by sending RELOADING=1) or shutdown (by sending
1056 STOPPING=1). This allows the manager to track and show the
1057 internal state of daemons and closes a race condition when
1058 the process is still running but has closed its D-Bus
1059 connection.
1060
1061 * Services with Type=oneshot do not have to have any ExecStart
1062 commands anymore.
1063
1064 * User units are now loaded also from
1065 $XDG_RUNTIME_DIR/systemd/user/. This is similar to the
1066 /run/systemd/user directory that was already previously
1067 supported, but is under the control of the user.
1068
1069 * Job timeouts (i.e. time-outs on the time a job that is
1070 queued stays in the run queue) can now optionally result in
1071 immediate reboot or power-off actions (JobTimeoutAction= and
1072 JobTimeoutRebootArgument=). This is useful on ".target"
1073 units, to limit the maximum time a target remains
1074 undispatched in the run queue, and to trigger an emergency
1075 operation in such a case. This is now used by default to
1076 turn off the system if boot-up (as defined by everything in
1077 basic.target) hangs and does not complete for at least
1078 15min. Also, if power-off or reboot hang for at least 30min
1079 an immediate power-off/reboot operation is triggered. This
1080 functionality is particularly useful to increase reliability
1081 on embedded devices, but also on laptops which might
1082 accidentally get powered on when carried in a backpack and
1083 whose boot stays stuck in a hard disk encryption passphrase
1084 question.
1085
1086 * systemd-logind can be configured to also handle lid switch
1087 events even when the machine is docked or multiple displays
1088 are attached (HandleLidSwitchDocked= option).
1089
1090 * A helper binary and a service have been added which can be
1091 used to resume from hibernation in the initramfs. A
1092 generator will parse the resume= option on the kernel
1093 command line to trigger resume.
1094
1095 * A user console daemon systemd-consoled has been
1096 added. Currently, it is a preview, and will so far open a
1097 single terminal on each session of the user marked as
1098 Desktop=systemd-console.
1099
1100 * Route metrics can be specified for DHCP routes added by
1101 systemd-networkd.
1102
1103 * The SELinux context of socket-activated services can be set
1104 from the information provided by the networking stack
1105 (SELinuxContextFromNet= option).
1106
1107 * Userspace firmware loading support has been removed and
1108 the minimum supported kernel version is thus bumped to 3.7.
1109
1110 * Timeout for udev workers has been increased from 1 to 3
1111 minutes, but a warning will be printed after 1 minute to
1112 help diagnose kernel modules that take a long time to load.
1113
1114 * Udev rules can now remove tags on devices with TAG-="foobar".
1115
1116 * systemd's readahead implementation has been removed. In many
1117 circumstances it didn't give expected benefits even for
1118 rotational disk drives and was becoming less relevant in the
1119 age of SSDs. As none of the developers has been using
1120 rotating media anymore, and nobody stepped up to actively
1121 maintain this component of systemd it has now been removed.
1122
1123 * Swap units can use Options= to specify discard options.
1124 Discard options specified for swaps in /etc/fstab are now
1125 respected.
1126
1127 * Docker containers are now detected as a separate type of
1128 virtualization.
1129
1130 * The Password Agent protocol gained support for queries where
1131 the user input is shown, useful e.g. for user names.
1132 systemd-ask-password gained a new --echo option to turn that
1133 on.
1134
1135 * The default sysctl.d/ snippets will now set:
1136
1137 net.core.default_qdisc = fq_codel
1138
1139 This selects Fair Queuing Controlled Delay as the default
1140 queuing discipline for network interfaces. fq_codel helps
1141 fight the network bufferbloat problem. It is believed to be
1142 a good default with no tuning required for most workloads.
1143 Downstream distributions may override this choice. On 10Gbit
1144 servers that do not do forwarding, "fq" may perform better.
1145 Systems without a good clocksource should use "pfifo_fast".
1146
1147 * If kdbus is enabled during build a new option BusPolicy= is
1148 available for service units, that allows locking all service
1149 processes into a stricter bus policy, in order to limit
1150 access to various bus services, or even hide most of them
1151 from the service's view entirely.
1152
1153 * networkctl will now show the .network and .link file
1154 networkd has applied to a specific interface.
1155
1156 * sd-login gained a new API call sd_session_get_desktop() to
1157 query which desktop environment has been selected for a
1158 session.
1159
1160 * UNIX utmp support is now compile-time optional to support
1161 legacy-free systems.
1162
1163 * systemctl gained two new commands "add-wants" and
1164 "add-requires" for pulling in units from specific targets
1165 easily.
1166
1167 * If the word "rescue" is specified on the kernel command line
1168 the system will now boot into rescue mode (aka
1169 rescue.target), which was previously available only by
1170 specifying "1" or "systemd.unit=rescue.target" on the kernel
1171 command line. This new kernel command line option nicely
1172 mirrors the already existing "emergency" kernel command line
1173 option.
1174
1175 * New kernel command line options mount.usr=, mount.usrflags=,
1176 mount.usrfstype= have been added that match root=, rootflags=,
1177 rootfstype= but allow mounting a specific file system to
1178 /usr.
1179
1180 * The $NOTIFY_SOCKET is now also passed to control processes of
1181 services, not only the main process.
1182
1183 * This version reenables support for fsck's -l switch. This
1184 means at least version v2.25 of util-linux is required for
1185 operation, otherwise dead-locks on device nodes may
1186 occur. Again: you need to update util-linux to at least
1187 v2.25 when updating systemd to v217.
1188
1189 * The "multi-seat-x" tool has been removed from systemd, as
1190 its functionality has been integrated into X servers 1.16,
1191 and the tool is hence redundant. It is recommended to update
1192 display managers invoking this tool to simply invoke X
1193 directly from now on, again.
1194
1195 * Support for the new ALLOW_INTERACTIVE_AUTHORIZATION D-Bus
1196 message flag has been added for all of systemd's PolicyKit
1197 authenticated method calls has been added. In particular
1198 this now allows optional interactive authorization via
1199 PolicyKit for many of PID1's privileged operations such as
1200 unit file enabling and disabling.
1201
1202 * "udevadm hwdb --update" learnt a new switch "--usr" for
1203 placing the rebuilt hardware database in /usr instead of
1204 /etc. When used only hardware database entries stored in
1205 /usr will be used, and any user database entries in /etc are
1206 ignored. This functionality is useful for vendors to ship a
1207 pre-built database on systems where local configuration is
1208 unnecessary or unlikely.
1209
1210 * Calendar time specifications in .timer units now also
1211 understand the strings "semi-annually", "quarterly" and
1212 "minutely" as shortcuts (in addition to the preexisting
1213 "anually", "hourly", ...).
1214
1215 * systemd-tmpfiles will now correctly create files in /dev
1216 at boot which are marked for creation only at boot. It is
1217 recommended to always create static device nodes with 'c!'
1218 and 'b!', so that they are created only at boot and not
1219 overwritten at runtime.
1220
1221 * When the watchdog logic is used for a service (WatchdogSec=)
1222 and the watchdog timeout is hit the service will now be
1223 terminated with SIGABRT (instead of just SIGTERM), in order
1224 to make sure a proper coredump and backtrace is
1225 generated. This ensures that hanging services will result in
1226 similar coredump/backtrace behaviour as services that hit a
1227 segmentation fault.
1228
1229 Contributions from: Andreas Henriksson, Andrei Borzenkov,
1230 Angus Gibson, Ansgar Burchardt, Ben Wolsieffer, Brandon L.
1231 Black, Christian Hesse, Cristian Rodríguez, Daniel Buch,
1232 Daniele Medri, Daniel Mack, Dan Williams, Dave Reisner, David
1233 Herrmann, David Sommerseth, David Strauss, Emil Renner
1234 Berthing, Eric Cook, Evangelos Foutras, Filipe Brandenburger,
1235 Gustavo Sverzut Barbieri, Hans de Goede, Harald Hoyer, Hristo
1236 Venev, Hugo Grostabussiat, Ivan Shapovalov, Jan Janssen, Jan
1237 Synacek, Jonathan Liu, Juho Son, Karel Zak, Kay Sievers, Klaus
1238 Purer, Koen Kooi, Lennart Poettering, Lukas Nykryn, Lukasz
1239 Skalski, Łukasz Stelmach, Mantas Mikulėnas, Marcel Holtmann,
1240 Marius Tessmann, Marko Myllynen, Martin Pitt, Michael Biebl,
1241 Michael Marineau, Michael Olbrich, Michael Scherer, Michal
1242 Schmidt, Michal Sekletar, Miroslav Lichvar, Patrik Flykt,
1243 Philippe De Swert, Piotr Drąg, Rahul Sundaram, Richard
1244 Weinberger, Robert Milasan, Ronny Chevalier, Ruben Kerkhof,
1245 Santiago Vila, Sergey Ptashnick, Simon McVittie, Sjoerd
1246 Simons, Stefan Brüns, Steven Allen, Steven Noonan, Susant
1247 Sahani, Sylvain Plantefève, Thomas Hindoe Paaboel Andersen,
1248 Timofey Titovets, Tobias Hunger, Tom Gundersen, Torstein
1249 Husebø, Umut Tezduyar Lindskog, WaLyong Cho, Zbigniew
1250 Jędrzejewski-Szmek
1251
1252 -- Berlin, 2014-10-28
1253
1254 CHANGES WITH 216:
1255
1256 * timedated no longer reads NTP implementation unit names from
1257 /usr/lib/systemd/ntp-units.d/*.list. Alternative NTP
1258 implementations should add a
1259
1260 Conflicts=systemd-timesyncd.service
1261
1262 to their unit files to take over and replace systemd's NTP
1263 default functionality.
1264
1265 * systemd-sysusers gained a new line type "r" for configuring
1266 which UID/GID ranges to allocate system users/groups
1267 from. Lines of type "u" may now add an additional column
1268 that specifies the home directory for the system user to be
1269 created. Also, systemd-sysusers may now optionally read user
1270 information from STDIN instead of a file. This is useful for
1271 invoking it from RPM preinst scriptlets that need to create
1272 users before the first RPM file is installed since these
1273 files might need to be owned by them. A new
1274 %sysusers_create_inline RPM macro has been introduced to do
1275 just that. systemd-sysusers now updates the shadow files as
1276 well as the user/group databases, which should enhance
1277 compatibility with certain tools like grpck.
1278
1279 * A number of bus APIs of PID 1 now optionally consult
1280 PolicyKit to permit access for otherwise unprivileged
1281 clients under certain conditions. Note that this currently
1282 doesn't support interactive authentication yet, but this is
1283 expected to be added eventually, too.
1284
1285 * /etc/machine-info now has new fields for configuring the
1286 deployment environment of the machine, as well as the
1287 location of the machine. hostnamectl has been updated with
1288 new command to update these fields.
1289
1290 * systemd-timesyncd has been updated to automatically acquire
1291 NTP server information from systemd-networkd, which might
1292 have been discovered via DHCP.
1293
1294 * systemd-resolved now includes a caching DNS stub resolver
1295 and a complete LLMNR name resolution implementation. A new
1296 NSS module "nss-resolve" has been added which can be used
1297 instead of glibc's own "nss-dns" to resolve hostnames via
1298 systemd-resolved. Hostnames, addresses and arbitrary RRs may
1299 be resolved via systemd-resolved D-Bus APIs. In contrast to
1300 the glibc internal resolver systemd-resolved is aware of
1301 multi-homed system, and keeps DNS server and caches separate
1302 and per-interface. Queries are sent simultaneously on all
1303 interfaces that have DNS servers configured, in order to
1304 properly handle VPNs and local LANs which might resolve
1305 separate sets of domain names. systemd-resolved may acquire
1306 DNS server information from systemd-networkd automatically,
1307 which in turn might have discovered them via DHCP. A tool
1308 "systemd-resolve-host" has been added that may be used to
1309 query the DNS logic in resolved. systemd-resolved implements
1310 IDNA and automatically uses IDNA or UTF-8 encoding depending
1311 on whether classic DNS or LLMNR is used as transport. In the
1312 next releases we intend to add a DNSSEC and mDNS/DNS-SD
1313 implementation to systemd-resolved.
1314
1315 * A new NSS module nss-mymachines has been added, that
1316 automatically resolves the names of all local registered
1317 containers to their respective IP addresses.
1318
1319 * A new client tool "networkctl" for systemd-networkd has been
1320 added. It currently is entirely passive and will query
1321 networking configuration from udev, rtnetlink and networkd,
1322 and present it to the user in a very friendly
1323 way. Eventually, we hope to extend it to become a full
1324 control utility for networkd.
1325
1326 * .socket units gained a new DeferAcceptSec= setting that
1327 controls the kernels' TCP_DEFER_ACCEPT sockopt for
1328 TCP. Similar, support for controlling TCP keep-alive
1329 settings has been added (KeepAliveTimeSec=,
1330 KeepAliveIntervalSec=, KeepAliveProbes=). Also, support for
1331 turning off Nagle's algorithm on TCP has been added
1332 (NoDelay=).
1333
1334 * logind learned a new session type "web", for use in projects
1335 like Cockpit which register web clients as PAM sessions.
1336
1337 * timer units with at least one OnCalendar= setting will now
1338 be started only after timer-sync.target has been
1339 reached. This way they will not elapse before the system
1340 clock has been corrected by a local NTP client or
1341 similar. This is particular useful on RTC-less embedded
1342 machines, that come up with an invalid system clock.
1343
1344 * systemd-nspawn's --network-veth= switch should now result in
1345 stable MAC addresses for both the outer and the inner side
1346 of the link.
1347
1348 * systemd-nspawn gained a new --volatile= switch for running
1349 container instances with /etc or /var unpopulated.
1350
1351 * The kdbus client code has been updated to use the new Linux
1352 3.17 memfd subsystem instead of the old kdbus-specific one.
1353
1354 * systemd-networkd's DHCP client and server now support
1355 FORCERENEW. There are also new configuration options to
1356 configure the vendor client identifier and broadcast mode
1357 for DHCP.
1358
1359 * systemd will no longer inform the kernel about the current
1360 timezone, as this is necessarily incorrect and racy as the
1361 kernel has no understanding of DST and similar
1362 concepts. This hence means FAT timestamps will be always
1363 considered UTC, similar to what Android is already
1364 doing. Also, when the RTC is configured to the local time
1365 (rather than UTC) systemd will never synchronize back to it,
1366 as this might confuse Windows at a later boot.
1367
1368 * systemd-analyze gained a new command "verify" for offline
1369 validation of unit files.
1370
1371 * systemd-networkd gained support for a couple of additional
1372 settings for bonding networking setups. Also, the metric for
1373 statically configured routes may now be configured. For
1374 network interfaces where this is appropriate the peer IP
1375 address may now be configured.
1376
1377 * systemd-networkd's DHCP client will no longer request
1378 broadcasting by default, as this tripped up some networks.
1379 For hardware where broadcast is required the feature should
1380 be switched back on using RequestBroadcast=yes.
1381
1382 * systemd-networkd will now set up IPv4LL addresses (when
1383 enabled) even if DHCP is configured successfully.
1384
1385 * udev will now default to respect network device names given
1386 by the kernel when the kernel indicates that these are
1387 predictable. This behavior can be tweaked by changing
1388 NamePolicy= in the relevant .link file.
1389
1390 * A new library systemd-terminal has been added that
1391 implements full TTY stream parsing and rendering. This
1392 library is supposed to be used later on for implementing a
1393 full userspace VT subsystem, replacing the current kernel
1394 implementation.
1395
1396 * A new tool systemd-journal-upload has been added to push
1397 journal data to a remote system running
1398 systemd-journal-remote.
1399
1400 * journald will no longer forward all local data to another
1401 running syslog daemon. This change has been made because
1402 rsyslog (which appears to be the most commonly used syslog
1403 implementation these days) no longer makes use of this, and
1404 instead pulls the data out of the journal on its own. Since
1405 forwarding the messages to a non-existent syslog server is
1406 more expensive than we assumed we have now turned this
1407 off. If you run a syslog server that is not a recent rsyslog
1408 version, you have to turn this option on again
1409 (ForwardToSyslog= in journald.conf).
1410
1411 * journald now optionally supports the LZ4 compressor for
1412 larger journal fields. This compressor should perform much
1413 better than XZ which was the previous default.
1414
1415 * machinectl now shows the IP addresses of local containers,
1416 if it knows them, plus the interface name of the container.
1417
1418 * A new tool "systemd-escape" has been added that makes it
1419 easy to escape strings to build unit names and similar.
1420
1421 * sd_notify() messages may now include a new ERRNO= field
1422 which is parsed and collected by systemd and shown among the
1423 "systemctl status" output for a service.
1424
1425 * A new component "systemd-firstboot" has been added that
1426 queries the most basic systemd information (timezone,
1427 hostname, root password) interactively on first
1428 boot. Alternatively it may also be used to provision these
1429 things offline on OS images installed into directories.
1430
1431 * The default sysctl.d/ snippets will now set
1432
1433 net.ipv4.conf.default.promote_secondaries=1
1434
1435 This has the benefit of no flushing secondary IP addresses
1436 when primary addresses are removed.
1437
1438 Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
1439 Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
1440 Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
1441 Kenzior, Eelco Dolstra, Eric Cook, Hannes Reinecke, Harald
1442 Hoyer, Hong Shick Pak, Hui Wang, Jean-André Santoni, Jóhann
1443 B. Guðmundsson, Jon Severinsson, Karel Zak, Kay Sievers, Kevin
1444 Wells, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas,
1445 Marc-Antoine Perennou, Martin Pitt, Michael Biebl, Michael
1446 Marineau, Michael Olbrich, Michal Schmidt, Michal Sekletar,
1447 Miguel Angel Ajo, Mike Gilbert, Olivier Brunel, Robert
1448 Schiele, Ronny Chevalier, Simon McVittie, Sjoerd Simons, Stef
1449 Walter, Steven Noonan, Susant Sahani, Tanu Kaskinen, Thomas
1450 Blume, Thomas Hindoe Paaboel Andersen, Timofey Titovets,
1451 Tobias Geerinckx-Rice, Tomasz Torcz, Tom Gundersen, Umut
1452 Tezduyar Lindskog, Zbigniew Jędrzejewski-Szmek
1453
1454 -- Berlin, 2014-08-19
1455
1456 CHANGES WITH 215:
1457
1458 * A new tool systemd-sysusers has been added. This tool
1459 creates system users and groups in /etc/passwd and
1460 /etc/group, based on static declarative system user/group
1461 definitions in /usr/lib/sysusers.d/. This is useful to
1462 enable factory resets and volatile systems that boot up with
1463 an empty /etc directory, and thus need system users and
1464 groups created during early boot. systemd now also ships
1465 with two default sysusers.d/ files for the most basic
1466 users and groups systemd and the core operating system
1467 require.
1468
1469 * A new tmpfiles snippet has been added that rebuilds the
1470 essential files in /etc on boot, should they be missing.
1471
1472 * A directive for ensuring automatic clean-up of
1473 /var/cache/man/ has been removed from the default
1474 configuration. This line should now be shipped by the man
1475 implementation. The necessary change has been made to the
1476 man-db implementation. Note that you need to update your man
1477 implementation to one that ships this line, otherwise no
1478 automatic clean-up of /var/cache/man will take place.
1479
1480 * A new condition ConditionNeedsUpdate= has been added that
1481 may conditionalize services to only run when /etc or /var
1482 are "older" than the vendor operating system resources in
1483 /usr. This is useful for reconstructing or updating /etc
1484 after an offline update of /usr or a factory reset, on the
1485 next reboot. Services that want to run once after such an
1486 update or reset should use this condition and order
1487 themselves before the new systemd-update-done.service, which
1488 will mark the two directories as fully updated. A number of
1489 service files have been added making use of this, to rebuild
1490 the udev hardware database, the journald message catalog and
1491 dynamic loader cache (ldconfig). The systemd-sysusers tool
1492 described above also makes use of this now. With this in
1493 place it is now possible to start up a minimal operating
1494 system with /etc empty cleanly. For more information on the
1495 concepts involved see this recent blog story:
1496
1497 http://0pointer.de/blog/projects/stateless.html
1498
1499 * A new system group "input" has been introduced, and all
1500 input device nodes get this group assigned. This is useful
1501 for system-level software to get access to input devices. It
1502 complements what is already done for "audio" and "video".
1503
1504 * systemd-networkd learnt minimal DHCPv4 server support in
1505 addition to the existing DHCPv4 client support. It also
1506 learnt DHCPv6 client and IPv6 Router Solicitation client
1507 support. The DHCPv4 client gained support for static routes
1508 passed in from the server. Note that the [DHCPv4] section
1509 known in older systemd-networkd versions has been renamed to
1510 [DHCP] and is now also used by the DHCPv6 client. Existing
1511 .network files using settings of this section should be
1512 updated, though compatibility is maintained. Optionally, the
1513 client hostname may now be sent to the DHCP server.
1514
1515 * networkd gained support for vxlan virtual networks as well
1516 as tun/tap and dummy devices.
1517
1518 * networkd gained support for automatic allocation of address
1519 ranges for interfaces from a system-wide pool of
1520 addresses. This is useful for dynamically managing a large
1521 number of interfaces with a single network configuration
1522 file. In particular this is useful to easily assign
1523 appropriate IP addresses to the veth links of a large number
1524 of nspawn instances.
1525
1526 * RPM macros for processing sysusers, sysctl and binfmt
1527 drop-in snippets at package installation time have been
1528 added.
1529
1530 * The /etc/os-release file should now be placed in
1531 /usr/lib/os-release. The old location is automatically
1532 created as symlink. /usr/lib is the more appropriate
1533 location of this file, since it shall actually describe the
1534 vendor operating system shipped in /usr, and not the
1535 configuration stored in /etc.
1536
1537 * .mount units gained a new boolean SloppyOptions= setting
1538 that maps to mount(8)'s -s option which enables permissive
1539 parsing of unknown mount options.
1540
1541 * tmpfiles learnt a new "L+" directive which creates a symlink
1542 but (unlike "L") deletes a pre-existing file first, should
1543 it already exist and not already be the correct
1544 symlink. Similar, "b+", "c+" and "p+" directives have been
1545 added as well, which create block and character devices, as
1546 well as fifos in the filesystem, possibly removing any
1547 pre-existing files of different types.
1548
1549 * For tmpfiles' "L", "L+", "C" and "C+" directives the final
1550 'argument' field (which so far specified the source to
1551 symlink/copy the files from) is now optional. If omitted the
1552 same file os copied from /usr/share/factory/ suffixed by the
1553 full destination path. This is useful for populating /etc
1554 with essential files, by copying them from vendor defaults
1555 shipped in /usr/share/factory/etc.
1556
1557 * A new command "systemctl preset-all" has been added that
1558 applies the service preset settings to all installed unit
1559 files. A new switch --preset-mode= has been added that
1560 controls whether only enable or only disable operations
1561 shall be executed.
1562
1563 * A new command "systemctl is-system-running" has been added
1564 that allows checking the overall state of the system, for
1565 example whether it is fully up and running.
1566
1567 * When the system boots up with an empty /etc, the equivalent
1568 to "systemctl preset-all" is executed during early boot, to
1569 make sure all default services are enabled after a factory
1570 reset.
1571
1572 * systemd now contains a minimal preset file that enables the
1573 most basic services systemd ships by default.
1574
1575 * Unit files' [Install] section gained a new DefaultInstance=
1576 field for defining the default instance to create if a
1577 template unit is enabled with no instance specified.
1578
1579 * A new passive target cryptsetup-pre.target has been added
1580 that may be used by services that need to make they run and
1581 finish before the first LUKS cryptographic device is set up.
1582
1583 * The /dev/loop-control and /dev/btrfs-control device nodes
1584 are now owned by the "disk" group by default, opening up
1585 access to this group.
1586
1587 * systemd-coredump will now automatically generate a
1588 stack trace of all core dumps taking place on the system,
1589 based on elfutils' libdw library. This stack trace is logged
1590 to the journal.
1591
1592 * systemd-coredump may now optionally store coredumps directly
1593 on disk (in /var/lib/systemd/coredump, possibly compressed),
1594 instead of storing them unconditionally in the journal. This
1595 mode is the new default. A new configuration file
1596 /etc/systemd/coredump.conf has been added to configure this
1597 and other parameters of systemd-coredump.
1598
1599 * coredumpctl gained a new "info" verb to show details about a
1600 specific coredump. A new switch "-1" has also been added
1601 that makes sure to only show information about the most
1602 recent entry instead of all entries. Also, as the tool is
1603 generally useful now the "systemd-" prefix of the binary
1604 name has been removed. Distributions that want to maintain
1605 compatibility with the old name should add a symlink from
1606 the old name to the new name.
1607
1608 * journald's SplitMode= now defaults to "uid". This makes sure
1609 that unprivileged users can access their own coredumps with
1610 coredumpctl without restrictions.
1611
1612 * New kernel command line options "systemd.wants=" (for
1613 pulling an additional unit during boot), "systemd.mask="
1614 (for masking a specific unit for the boot), and
1615 "systemd.debug-shell" (for enabling the debug shell on tty9)
1616 have been added. This is implemented in the new generator
1617 "systemd-debug-generator".
1618
1619 * systemd-nspawn will now by default filter a couple of
1620 syscalls for containers, among them those required for
1621 kernel module loading, direct x86 IO port access, swap
1622 management, and kexec. Most importantly though
1623 open_by_handle_at() is now prohibited for containers,
1624 closing a hole similar to a recently discussed vulnerability
1625 in docker regarding access to files on file hierarchies the
1626 container should normally not have access to. Note that for
1627 nspawn we generally make no security claims anyway (and
1628 this is explicitly documented in the man page), so this is
1629 just a fix for one of the most obvious problems.
1630
1631 * A new man page file-hierarchy(7) has been added that
1632 contains a minimized, modernized version of the file system
1633 layout systemd expects, similar in style to the FHS
1634 specification or hier(5). A new tool systemd-path(1) has
1635 been added to query many of these paths for the local
1636 machine and user.
1637
1638 * Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
1639 longer done. Since the directory now has a per-user size
1640 limit, and is cleaned on logout this appears unnecessary,
1641 in particular since this now brings the lifecycle of this
1642 directory closer in line with how IPC objects are handled.
1643
1644 * systemd.pc now exports a number of additional directories,
1645 including $libdir (which is useful to identify the library
1646 path for the primary architecture of the system), and a
1647 couple of drop-in directories.
1648
1649 * udev's predictable network interface names now use the dev_port
1650 sysfs attribute, introduced in linux 3.15 instead of dev_id to
1651 distinguish between ports of the same PCI function. dev_id should
1652 only be used for ports using the same HW address, hence the need
1653 for dev_port.
1654
1655 * machined has been updated to export the OS version of a
1656 container (read from /etc/os-release and
1657 /usr/lib/os-release) on the bus. This is now shown in
1658 "machinectl status" for a machine.
1659
1660 * A new service setting RestartForceExitStatus= has been
1661 added. If configured to a set of exit signals or process
1662 return values, the service will be restarted when the main
1663 daemon process exits with any of them, regardless of the
1664 Restart= setting.
1665
1666 * systemctl's -H switch for connecting to remote systemd
1667 machines has been extended so that it may be used to
1668 directly connect to a specific container on the
1669 host. "systemctl -H root@foobar:waldi" will now connect as
1670 user "root" to host "foobar", and then proceed directly to
1671 the container named "waldi". Note that currently you have to
1672 authenticate as user "root" for this to work, as entering
1673 containers is a privileged operation.
1674
1675 Contributions from: Andreas Henriksson, Benjamin Steinwender,
1676 Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
1677 Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
1678 Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
1679 Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
1680 Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
1681 Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
1682 Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
1683 Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
1684 Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
1685 Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
1686 Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
1687
1688 -- Berlin, 2014-07-03
1689
1690 CHANGES WITH 214:
1691
1692 * As an experimental feature, udev now tries to lock the
1693 disk device node (flock(LOCK_SH|LOCK_NB)) while it
1694 executes events for the disk or any of its partitions.
1695 Applications like partitioning programs can lock the
1696 disk device node (flock(LOCK_EX)) and claim temporary
1697 device ownership that way; udev will entirely skip all event
1698 handling for this disk and its partitions. If the disk
1699 was opened for writing, the close will trigger a partition
1700 table rescan in udev's "watch" facility, and if needed
1701 synthesize "change" events for the disk and all its partitions.
1702 This is now unconditionally enabled, and if it turns out to
1703 cause major problems, we might turn it on only for specific
1704 devices, or might need to disable it entirely. Device Mapper
1705 devices are excluded from this logic.
1706
1707 * We temporarily dropped the "-l" switch for fsck invocations,
1708 since they collide with the flock() logic above. util-linux
1709 upstream has been changed already to avoid this conflict,
1710 and we will readd "-l" as soon as util-linux with this
1711 change has been released.
1712
1713 * The dependency on libattr has been removed. Since a long
1714 time, the extended attribute calls have moved to glibc, and
1715 libattr is thus unnecessary.
1716
1717 * Virtualization detection works without priviliges now. This
1718 means the systemd-detect-virt binary no longer requires
1719 CAP_SYS_PTRACE file capabilities, and our daemons can run
1720 with fewer privileges.
1721
1722 * systemd-networkd now runs under its own "systemd-network"
1723 user. It retains the CAP_NET_ADMIN, CAP_NET_BIND_SERVICE,
1724 CAP_NET_BROADCAST, CAP_NET_RAW capabilities though, but
1725 loses the ability to write to files owned by root this way.
1726
1727 * Similar, systemd-resolved now runs under its own
1728 "systemd-resolve" user with no capabilities remaining.
1729
1730 * Similar, systemd-bus-proxyd now runs under its own
1731 "systemd-bus-proxy" user with only CAP_IPC_OWNER remaining.
1732
1733 * systemd-networkd gained support for setting up "veth"
1734 virtual ethernet devices for container connectivity, as well
1735 as GRE and VTI tunnels.
1736
1737 * systemd-networkd will no longer automatically attempt to
1738 manually load kernel modules necessary for certain tunnel
1739 transports. Instead, it is assumed the kernel loads them
1740 automatically when required. This only works correctly on
1741 very new kernels. On older kernels, please consider adding
1742 the kernel modules to /etc/modules-load.d/ as a work-around.
1743
1744 * The resolv.conf file systemd-resolved generates has been
1745 moved to /run/systemd/resolve/. If you have a symlink from
1746 /etc/resolv.conf, it might be necessary to correct it.
1747
1748 * Two new service settings, ProtectHome= and ProtectSystem=,
1749 have been added. When enabled, they will make the user data
1750 (such as /home) inaccessible or read-only and the system
1751 (such as /usr) read-only, for specific services. This allows
1752 very light-weight per-service sandboxing to avoid
1753 modifications of user data or system files from
1754 services. These two new switches have been enabled for all
1755 of systemd's long-running services, where appropriate.
1756
1757 * Socket units gained new SocketUser= and SocketGroup=
1758 settings to set the owner user and group of AF_UNIX sockets
1759 and FIFOs in the file system.
1760
1761 * Socket units gained a new RemoveOnStop= setting. If enabled,
1762 all FIFOS and sockets in the file system will be removed
1763 when the specific socket unit is stopped.
1764
1765 * Socket units gained a new Symlinks= setting. It takes a list
1766 of symlinks to create to file system sockets or FIFOs
1767 created by the specific Unix sockets. This is useful to
1768 manage symlinks to socket nodes with the same life-cycle as
1769 the socket itself.
1770
1771 * The /dev/log socket and /dev/initctl FIFO have been moved to
1772 /run, and have been replaced by symlinks. This allows
1773 connecting to these facilities even if PrivateDevices=yes is
1774 used for a service (which makes /dev/log itself unavailable,
1775 but /run is left). This also has the benefit of ensuring
1776 that /dev only contains device nodes, directories and
1777 symlinks, and nothing else.
1778
1779 * sd-daemon gained two new calls sd_pid_notify() and
1780 sd_pid_notifyf(). They are similar to sd_notify() and
1781 sd_notifyf(), but allow overriding of the source PID of
1782 notification messages if permissions permit this. This is
1783 useful to send notify messages on behalf of a different
1784 process (for example, the parent process). The
1785 systemd-notify tool has been updated to make use of this
1786 when sending messages (so that notification messages now
1787 originate from the shell script invoking systemd-notify and
1788 not the systemd-notify process itself. This should minimize
1789 a race where systemd fails to associate notification
1790 messages to services when the originating process already
1791 vanished.
1792
1793 * A new "on-abnormal" setting for Restart= has been added. If
1794 set, it will result in automatic restarts on all "abnormal"
1795 reasons for a process to exit, which includes unclean
1796 signals, core dumps, timeouts and watchdog timeouts, but
1797 does not include clean and unclean exit codes or clean
1798 signals. Restart=on-abnormal is an alternative for
1799 Restart=on-failure for services that shall be able to
1800 terminate and avoid restarts on certain errors, by
1801 indicating so with an unclean exit code. Restart=on-failure
1802 or Restart=on-abnormal is now the recommended setting for
1803 all long-running services.
1804
1805 * If the InaccessibleDirectories= service setting points to a
1806 mount point (or if there are any submounts contained within
1807 it), it is now attempted to completely unmount it, to make
1808 the file systems truly unavailable for the respective
1809 service.
1810
1811 * The ReadOnlyDirectories= service setting and
1812 systemd-nspawn's --read-only parameter are now recursively
1813 applied to all submounts, too.
1814
1815 * Mount units may now be created transiently via the bus APIs.
1816
1817 * The support for SysV and LSB init scripts has been removed
1818 from the systemd daemon itself. Instead, it is now
1819 implemented as a generator that creates native systemd units
1820 from these scripts when needed. This enables us to remove a
1821 substantial amount of legacy code from PID 1, following the
1822 fact that many distributions only ship a very small number
1823 of LSB/SysV init scripts nowadays.
1824
1825 * Privileged Xen (dom0) domains are not considered
1826 virtualization anymore by the virtualization detection
1827 logic. After all, they generally have unrestricted access to
1828 the hardware and usually are used to manage the unprivileged
1829 (domU) domains.
1830
1831 * systemd-tmpfiles gained a new "C" line type, for copying
1832 files or entire directories.
1833
1834 * systemd-tmpfiles "m" lines are now fully equivalent to "z"
1835 lines. So far, they have been non-globbing versions of the
1836 latter, and have thus been redundant. In future, it is
1837 recommended to only use "z". "m" has hence been removed
1838 from the documentation, even though it stays supported.
1839
1840 * A tmpfiles snippet to recreate the most basic structure in
1841 /var has been added. This is enough to create the /var/run →
1842 /run symlink and create a couple of structural
1843 directories. This allows systems to boot up with an empty or
1844 volatile /var. Of course, while with this change, the core OS
1845 now is capable with dealing with a volatile /var, not all
1846 user services are ready for it. However, we hope that sooner
1847 or later, many service daemons will be changed upstream so
1848 that they are able to automatically create their necessary
1849 directories in /var at boot, should they be missing. This is
1850 the first step to allow state-less systems that only require
1851 the vendor image for /usr to boot.
1852
1853 * systemd-nspawn has gained a new --tmpfs= switch to mount an
1854 empty tmpfs instance to a specific directory. This is
1855 particularly useful for making use of the automatic
1856 reconstruction of /var (see above), by passing --tmpfs=/var.
1857
1858 * Access modes specified in tmpfiles snippets may now be
1859 prefixed with "~", which indicates that they shall be masked
1860 by whether the existing file or directory is currently
1861 writable, readable or executable at all. Also, if specified,
1862 the sgid/suid/sticky bits will be masked for all
1863 non-directories.
1864
1865 * A new passive target unit "network-pre.target" has been
1866 added which is useful for services that shall run before any
1867 network is configured, for example firewall scripts.
1868
1869 * The "floppy" group that previously owned the /dev/fd*
1870 devices is no longer used. The "disk" group is now used
1871 instead. Distributions should probably deprecate usage of
1872 this group.
1873
1874 Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
1875 King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
1876 Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
1877 Lennart Poettering, Mantas Mikulėnas, Mark Eichin, Ronny
1878 Chevalier, Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel
1879 Andersen, Tom Gundersen, Umut Tezduyar Lindskog, Zbigniew
1880 Jędrzejewski-Szmek
1881
1882 -- Berlin, 2014-06-11
1883
1884 CHANGES WITH 213:
1885
1886 * A new "systemd-timesyncd" daemon has been added for
1887 synchronizing the system clock across the network. It
1888 implements an SNTP client. In contrast to NTP
1889 implementations such as chrony or the NTP reference server,
1890 this only implements a client side, and does not bother with
1891 the full NTP complexity, focusing only on querying time from
1892 one remote server and synchronizing the local clock to
1893 it. Unless you intend to serve NTP to networked clients or
1894 want to connect to local hardware clocks, this simple NTP
1895 client should be more than appropriate for most
1896 installations. The daemon runs with minimal privileges, and
1897 has been hooked up with networkd to only operate when
1898 network connectivity is available. The daemon saves the
1899 current clock to disk every time a new NTP sync has been
1900 acquired, and uses this to possibly correct the system clock
1901 early at bootup, in order to accommodate for systems that
1902 lack an RTC such as the Raspberry Pi and embedded devices,
1903 and to make sure that time monotonically progresses on these
1904 systems, even if it is not always correct. To make use of
1905 this daemon, a new system user and group "systemd-timesync"
1906 needs to be created on installation of systemd.
1907
1908 * The queue "seqnum" interface of libudev has been disabled, as
1909 it was generally incompatible with device namespacing as
1910 sequence numbers of devices go "missing" if the devices are
1911 part of a different namespace.
1912
1913 * "systemctl list-timers" and "systemctl list-sockets" gained
1914 a --recursive switch for showing units of these types also
1915 for all local containers, similar in style to the already
1916 supported --recursive switch for "systemctl list-units".
1917
1918 * A new RebootArgument= setting has been added for service
1919 units, which may be used to specify a kernel reboot argument
1920 to use when triggering reboots with StartLimitAction=.
1921
1922 * A new FailureAction= setting has been added for service
1923 units which may be used to specify an operation to trigger
1924 when a service fails. This works similarly to
1925 StartLimitAction=, but unlike it, controls what is done
1926 immediately rather than only after several attempts to
1927 restart the service in question.
1928
1929 * hostnamed got updated to also expose the kernel name,
1930 release, and version on the bus. This is useful for
1931 executing commands like hostnamectl with the -H switch.
1932 systemd-analyze makes use of this to properly display
1933 details when running non-locally.
1934
1935 * The bootchart tool can now show cgroup information in the
1936 graphs it generates.
1937
1938 * The CFS CPU quota cgroup attribute is now exposed for
1939 services. The new CPUQuota= switch has been added for this
1940 which takes a percentage value. Setting this will have the
1941 result that a service may never get more CPU time than the
1942 specified percentage, even if the machine is otherwise idle.
1943
1944 * systemd-networkd learned IPIP and SIT tunnel support.
1945
1946 * LSB init scripts exposing a dependency on $network will now
1947 get a dependency on network-online.target rather than simply
1948 network.target. This should bring LSB handling closer to
1949 what it was on SysV systems.
1950
1951 * A new fsck.repair= kernel option has been added to control
1952 how fsck shall deal with unclean file systems at boot.
1953
1954 * The (.ini) configuration file parser will now silently
1955 ignore sections whose name begins with "X-". This may be
1956 used to maintain application-specific extension sections in unit
1957 files.
1958
1959 * machined gained a new API to query the IP addresses of
1960 registered containers. "machinectl status" has been updated
1961 to show these addresses in its output.
1962
1963 * A new call sd_uid_get_display() has been added to the
1964 sd-login APIs for querying the "primary" session of a
1965 user. The "primary" session of the user is elected from the
1966 user's sessions and generally a graphical session is
1967 preferred over a text one.
1968
1969 * A minimal systemd-resolved daemon has been added. It
1970 currently simply acts as a companion to systemd-networkd and
1971 manages resolv.conf based on per-interface DNS
1972 configuration, possibly supplied via DHCP. In the long run
1973 we hope to extend this into a local DNSSEC enabled DNS and
1974 mDNS cache.
1975
1976 * The systemd-networkd-wait-online tool is now enabled by
1977 default. It will delay network-online.target until a network
1978 connection has been configured. The tool primarily integrates
1979 with networkd, but will also make a best effort to make sense
1980 of network configuration performed in some other way.
1981
1982 * Two new service options StartupCPUShares= and
1983 StartupBlockIOWeight= have been added that work similarly to
1984 CPUShares= and BlockIOWeight= however only apply during
1985 system startup. This is useful to prioritize certain services
1986 differently during bootup than during normal runtime.
1987
1988 * hostnamed has been changed to prefer the statically
1989 configured hostname in /etc/hostname (unless set to
1990 'localhost' or empty) over any dynamic one supplied by
1991 dhcp. With this change, the rules for picking the hostname
1992 match more closely the rules of other configuration settings
1993 where the local administrator's configuration in /etc always
1994 overrides any other settings.
1995
1996 Contributions fron: Ali H. Caliskan, Alison Chaiken, Bas van
1997 den Berg, Brandon Philips, Cristian Rodríguez, Daniel Buch,
1998 Dan Kilman, Dave Reisner, David Härdeman, David Herrmann,
1999 David Strauss, Dimitris Spingos, Djalal Harouni, Eelco
2000 Dolstra, Evan Nemerson, Florian Albrechtskirchinger, Greg
2001 Kroah-Hartman, Harald Hoyer, Holger Hans Peter Freyther, Jan
2002 Engelhardt, Jani Nikula, Jason St. John, Jeffrey Clark,
2003 Jonathan Boulle, Kay Sievers, Lennart Poettering, Lukas
2004 Nykryn, Lukasz Skalski, Łukasz Stelmach, Mantas Mikulėnas,
2005 Marcel Holtmann, Martin Pitt, Matthew Monaco, Michael
2006 Marineau, Michael Olbrich, Michal Sekletar, Mike Gilbert, Nis
2007 Martensen, Patrik Flykt, Philip Lorenz, poma, Ray Strode,
2008 Reyad Attiyat, Robert Milasan, Scott Thrasher, Stef Walter,
2009 Steven Siloti, Susant Sahani, Tanu Kaskinen, Thomas Bächler,
2010 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar
2011 Lindskog, WaLyong Cho, Will Woods, Zbigniew
2012 Jędrzejewski-Szmek
2013
2014 -- Beijing, 2014-05-28
2015
2016 CHANGES WITH 212:
2017
2018 * When restoring the screen brightness at boot, stay away from
2019 the darkest setting or from the lowest 5% of the available
2020 range, depending on which is the larger value of both. This
2021 should effectively protect the user from rebooting into a
2022 black screen, should the brightness have been set to minimum
2023 by accident.
2024
2025 * sd-login gained a new sd_machine_get_class() call to
2026 determine the class ("vm" or "container") of a machine
2027 registered with machined.
2028
2029 * sd-login gained new calls
2030 sd_peer_get_{session,owner_uid,unit,user_unit,slice,machine_name}(),
2031 to query the identity of the peer of a local AF_UNIX
2032 connection. They operate similarly to their sd_pid_get_xyz()
2033 counterparts.
2034
2035 * PID 1 will now maintain a system-wide system state engine
2036 with the states "starting", "running", "degraded",
2037 "maintenance", "stopping". These states are bound to system
2038 startup, normal runtime, runtime with at least one failed
2039 service, rescue/emergency mode and system shutdown. This
2040 state is shown in the "systemctl status" output when no unit
2041 name is passed. It is useful to determine system state, in
2042 particularly when doing so for many systems or containers at
2043 once.
2044
2045 * A new command "list-machines" has been added to "systemctl"
2046 that lists all local OS containers and shows their system
2047 state (see above), if systemd runs inside of them.
2048
2049 * systemctl gained a new "-r" switch to recursively enumerate
2050 units on all local containers, when used with the
2051 "list-unit" command (which is the default one that is
2052 executed when no parameters are specified).
2053
2054 * The GPT automatic partition discovery logic will now honour
2055 two GPT partition flags: one may be set on a partition to
2056 cause it to be mounted read-only, and the other may be set
2057 on a partition to ignore it during automatic discovery.
2058
2059 * Two new GPT type UUIDs have been added for automatic root
2060 partition discovery, for 32-bit and 64-bit ARM. This is not
2061 particularly useful for discovering the root directory on
2062 these architectures during bare-metal boots (since UEFI is
2063 not common there), but still very useful to allow booting of
2064 ARM disk images in nspawn with the -i option.
2065
2066 * MAC addresses of interfaces created with nspawn's
2067 --network-interface= switch will now be generated from the
2068 machine name, and thus be stable between multiple invocations
2069 of the container.
2070
2071 * logind will now automatically remove all IPC objects owned
2072 by a user if she or he fully logs out. This makes sure that
2073 users who are logged out cannot continue to consume IPC
2074 resources. This covers SysV memory, semaphores and message
2075 queues as well as POSIX shared memory and message
2076 queues. Traditionally, SysV and POSIX IPC had no life-cycle
2077 limits. With this functionality, that is corrected. This may
2078 be turned off by using the RemoveIPC= switch of logind.conf.
2079
2080 * The systemd-machine-id-setup and tmpfiles tools gained a
2081 --root= switch to operate on a specific root directory,
2082 instead of /.
2083
2084 * journald can now forward logged messages to the TTYs of all
2085 logged in users ("wall"). This is the default for all
2086 emergency messages now.
2087
2088 * A new tool systemd-journal-remote has been added to stream
2089 journal log messages across the network.
2090
2091 * /sys/fs/cgroup/ is now mounted read-only after all cgroup
2092 controller trees are mounted into it. Note that the
2093 directories mounted beneath it are not read-only. This is a
2094 security measure and is particularly useful because glibc
2095 actually includes a search logic to pick any tmpfs it can
2096 find to implement shm_open() if /dev/shm is not available
2097 (which it might very well be in namespaced setups).
2098
2099 * machinectl gained a new "poweroff" command to cleanly power
2100 down a local OS container.
2101
2102 * The PrivateDevices= unit file setting will now also drop the
2103 CAP_MKNOD capability from the capability bound set, and
2104 imply DevicePolicy=closed.
2105
2106 * PrivateDevices=, PrivateNetwork= and PrivateTmp= is now used
2107 comprehensively on all long-running systemd services where
2108 this is appropriate.
2109
2110 * systemd-udevd will now run in a disassociated mount
2111 namespace. To mount directories from udev rules, make sure to
2112 pull in mount units via SYSTEMD_WANTS properties.
2113
2114 * The kdbus support gained support for uploading policy into
2115 the kernel. sd-bus gained support for creating "monitoring"
2116 connections that can eavesdrop into all bus communication
2117 for debugging purposes.
2118
2119 * Timestamps may now be specified in seconds since the UNIX
2120 epoch Jan 1st, 1970 by specifying "@" followed by the value
2121 in seconds.
2122
2123 * Native tcpwrap support in systemd has been removed. tcpwrap
2124 is old code, not really maintained anymore and has serious
2125 shortcomings, and better options such as firewalls
2126 exist. For setups that require tcpwrap usage, please
2127 consider invoking your socket-activated service via tcpd,
2128 like on traditional inetd.
2129
2130 * A new system.conf configuration option
2131 DefaultTimerAccuracySec= has been added that controls the
2132 default AccuracySec= setting of .timer units.
2133
2134 * Timer units gained a new WakeSystem= switch. If enabled,
2135 timers configured this way will cause the system to resume
2136 from system suspend (if the system supports that, which most
2137 do these days).
2138
2139 * Timer units gained a new Persistent= switch. If enabled,
2140 timers configured this way will save to disk when they have
2141 been last triggered. This information is then used on next
2142 reboot to possible execute overdue timer events, that
2143 could not take place because the system was powered off.
2144 This enables simple anacron-like behaviour for timer units.
2145
2146 * systemctl's "list-timers" will now also list the time a
2147 timer unit was last triggered in addition to the next time
2148 it will be triggered.
2149
2150 * systemd-networkd will now assign predictable IPv4LL
2151 addresses to its local interfaces.
2152
2153 Contributions from: Brandon Philips, Daniel Buch, Daniel Mack,
2154 Dave Reisner, David Herrmann, Gerd Hoffmann, Greg
2155 Kroah-Hartman, Hendrik Brueckner, Jason St. John, Josh
2156 Triplett, Kay Sievers, Lennart Poettering, Marc-Antoine
2157 Perennou, Michael Marineau, Michael Olbrich, Miklos Vajna,
2158 Patrik Flykt, poma, Sebastian Thorarensen, Thomas Bächler,
2159 Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom Gundersen,
2160 Umut Tezduyar Lindskog, Wieland Hoffmann, Zbigniew
2161 Jędrzejewski-Szmek
2162
2163 -- Berlin, 2014-03-25
2164
2165 CHANGES WITH 211:
2166
2167 * A new unit file setting RestrictAddressFamilies= has been
2168 added to restrict which socket address families unit
2169 processes gain access to. This takes address family names
2170 like "AF_INET" or "AF_UNIX", and is useful to minimize the
2171 attack surface of services via exotic protocol stacks. This
2172 is built on seccomp system call filters.
2173
2174 * Two new unit file settings RuntimeDirectory= and
2175 RuntimeDirectoryMode= have been added that may be used to
2176 manage a per-daemon runtime directories below /run. This is
2177 an alternative for setting up directory permissions with
2178 tmpfiles snippets, and has the advantage that the runtime
2179 directory's lifetime is bound to the daemon runtime and that
2180 the daemon starts up with an empty directory each time. This
2181 is particularly useful when writing services that drop
2182 privileges using the User= or Group= setting.
2183
2184 * The DeviceAllow= unit setting now supports globbing for
2185 matching against device group names.
2186
2187 * The systemd configuration file system.conf gained new
2188 settings DefaultCPUAccounting=, DefaultBlockIOAccounting=,
2189 DefaultMemoryAccounting= to globally turn on/off accounting
2190 for specific resources (cgroups) for all units. These
2191 settings may still be overridden individually in each unit
2192 though.
2193
2194 * systemd-gpt-auto-generator is now able to discover /srv and
2195 root partitions in addition to /home and swap partitions. It
2196 also supports LUKS-encrypted partitions now. With this in
2197 place, automatic discovery of partitions to mount following
2198 the Discoverable Partitions Specification
2199 (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec)
2200 is now a lot more complete. This allows booting without
2201 /etc/fstab and without root= on the kernel command line on
2202 systems prepared appropriately.
2203
2204 * systemd-nspawn gained a new --image= switch which allows
2205 booting up disk images and Linux installations on any block
2206 device that follow the Discoverable Partitions Specification
2207 (see above). This means that installations made with
2208 appropriately updated installers may now be started and
2209 deployed using container managers, completely
2210 unmodified. (We hope that libvirt-lxc will add support for
2211 this feature soon, too.)
2212
2213 * systemd-nspawn gained a new --network-macvlan= setting to
2214 set up a private macvlan interface for the
2215 container. Similarly, systemd-networkd gained a new
2216 Kind=macvlan setting in .netdev files.
2217
2218 * systemd-networkd now supports configuring local addresses
2219 using IPv4LL.
2220
2221 * A new tool systemd-network-wait-online has been added to
2222 synchronously wait for network connectivity using
2223 systemd-networkd.
2224
2225 * The sd-bus.h bus API gained a new sd_bus_track object for
2226 tracking the life-cycle of bus peers. Note that sd-bus.h is
2227 still not a public API though (unless you specify
2228 --enable-kdbus on the configure command line, which however
2229 voids your warranty and you get no API stability guarantee).
2230
2231 * The $XDG_RUNTIME_DIR runtime directories for each user are
2232 now individual tmpfs instances, which has the benefit of
2233 introducing separate pools for each user, with individual
2234 size limits, and thus making sure that unprivileged clients
2235 can no longer negatively impact the system or other users by
2236 filling up their $XDG_RUNTIME_DIR. A new logind.conf setting
2237 RuntimeDirectorySize= has been introduced that allows
2238 controlling the default size limit for all users. It
2239 defaults to 10% of the available physical memory. This is no
2240 replacement for quotas on tmpfs though (which the kernel
2241 still does not support), as /dev/shm and /tmp are still
2242 shared resources used by both the system and unprivileged
2243 users.
2244
2245 * logind will now automatically turn off automatic suspending
2246 on laptop lid close when more than one display is
2247 connected. This was previously expected to be implemented
2248 individually in desktop environments (such as GNOME),
2249 however has been added to logind now, in order to fix a
2250 boot-time race where a desktop environment might not have
2251 been started yet and thus not been able to take an inhibitor
2252 lock at the time where logind already suspends the system
2253 due to a closed lid.
2254
2255 * logind will now wait at least 30s after each system
2256 suspend/resume cycle, and 3min after system boot before
2257 suspending the system due to a closed laptop lid. This
2258 should give USB docking stations and similar enough time to
2259 be probed and configured after system resume and boot in
2260 order to then act as suspend blocker.
2261
2262 * systemd-run gained a new --property= setting which allows
2263 initialization of resource control properties (and others)
2264 for the created scope or service unit. Example: "systemd-run
2265 --property=BlockIOWeight=10 updatedb" may be used to run
2266 updatedb at a low block IO scheduling weight.
2267
2268 * systemd-run's --uid=, --gid=, --setenv=, --setenv= switches
2269 now also work in --scope mode.
2270
2271 * When systemd is compiled with kdbus support, basic support
2272 for enforced policies is now in place. (Note that enabling
2273 kdbus still voids your warranty and no API compatibility
2274 promises are made.)
2275
2276 Contributions from: Andrey Borzenkov, Ansgar Burchardt, Armin
2277 K., Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
2278 Harald Hoyer, Henrik Grindal Bakken, Jasper St. Pierre, Kay
2279 Sievers, Kieran Clancy, Lennart Poettering, Lukas Nykryn,
2280 Mantas Mikulėnas, Marcel Holtmann, Mark Oteiza, Martin Pitt,
2281 Mike Gilbert, Peter Rajnoha, poma, Samuli Suominen, Stef
2282 Walter, Susant Sahani, Tero Roponen, Thomas Andersen, Thomas
2283 Bächler, Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom
2284 Gundersen, Umut Tezduyar Lindskog, Uoti Urpala, Zachary Cook,
2285 Zbigniew Jędrzejewski-Szmek
2286
2287 -- Berlin, 2014-03-12
2288
2289 CHANGES WITH 210:
2290
2291 * systemd will now relabel /dev after loading the SMACK policy
2292 according to SMACK rules.
2293
2294 * A new unit file option AppArmorProfile= has been added to
2295 set the AppArmor profile for the processes of a unit.
2296
2297 * A new condition check ConditionArchitecture= has been added
2298 to conditionalize units based on the system architecture, as
2299 reported by uname()'s "machine" field.
2300
2301 * systemd-networkd now supports matching on the system
2302 virtualization, architecture, kernel command line, host name
2303 and machine ID.
2304
2305 * logind is now a lot more aggressive when suspending the
2306 machine due to a closed laptop lid. Instead of acting only
2307 on the lid close action, it will continuously watch the lid
2308 status and act on it. This is useful for laptops where the
2309 power button is on the outside of the chassis so that it can
2310 be reached without opening the lid (such as the Lenovo
2311 Yoga). On those machines, logind will now immediately
2312 re-suspend the machine if the power button has been
2313 accidentally pressed while the laptop was suspended and in a
2314 backpack or similar.
2315
2316 * logind will now watch SW_DOCK switches and inhibit reaction
2317 to the lid switch if it is pressed. This means that logind
2318 will not suspend the machine anymore if the lid is closed
2319 and the system is docked, if the laptop supports SW_DOCK
2320 notifications via the input layer. Note that ACPI docking
2321 stations do not generate this currently. Also note that this
2322 logic is usually not fully sufficient and Desktop
2323 Environments should take a lid switch inhibitor lock when an
2324 external display is connected, as systemd will not watch
2325 this on its own.
2326
2327 * nspawn will now make use of the devices cgroup controller by
2328 default, and only permit creation of and access to the usual
2329 API device nodes like /dev/null or /dev/random, as well as
2330 access to (but not creation of) the pty devices.
2331
2332 * We will now ship a default .network file for
2333 systemd-networkd that automatically configures DHCP for
2334 network interfaces created by nspawn's --network-veth or
2335 --network-bridge= switches.
2336
2337 * systemd will now understand the usual M, K, G, T suffixes
2338 according to SI conventions (i.e. to the base 1000) when
2339 referring to throughput and hardware metrics. It will stay
2340 with IEC conventions (i.e. to the base 1024) for software
2341 metrics, according to what is customary according to
2342 Wikipedia. We explicitly document which base applies for
2343 each configuration option.
2344
2345 * The DeviceAllow= setting in unit files now supports a syntax
2346 to whitelist an entire group of devices node majors at once,
2347 based on the /proc/devices listing. For example, with the
2348 string "char-pts", it is now possible to whitelist all
2349 current and future pseudo-TTYs at once.
2350
2351 * sd-event learned a new "post" event source. Event sources of
2352 this type are triggered by the dispatching of any event
2353 source of a type that is not "post". This is useful for
2354 implementing clean-up and check event sources that are
2355 triggered by other work being done in the program.
2356
2357 * systemd-networkd is no longer statically enabled, but uses
2358 the usual [Install] sections so that it can be
2359 enabled/disabled using systemctl. It still is enabled by
2360 default however.
2361
2362 * When creating a veth interface pair with systemd-nspawn, the
2363 host side will now be prefixed with "vb-" if
2364 --network-bridge= is used, and with "ve-" if --network-veth
2365 is used. This way, it is easy to distinguish these cases on
2366 the host, for example to apply different configuration to
2367 them with systemd-networkd.
2368
2369 * The compatibility libraries for libsystemd-journal.so,
2370 libsystem-id128.so, libsystemd-login.so and
2371 libsystemd-daemon.so do not make use of IFUNC
2372 anymore. Instead, we now build libsystemd.so multiple times
2373 under these alternative names. This means that the footprint
2374 is drastically increased, but given that these are
2375 transitional compatibility libraries, this should not matter
2376 much. This change has been made necessary to support the ARM
2377 platform for these compatibility libraries, as the ARM
2378 toolchain is not really at the same level as the toolchain
2379 for other architectures like x86 and does not support
2380 IFUNC. Please make sure to use --enable-compat-libs only
2381 during a transitional period!
2382
2383 Contributions from: Andreas Fuchs, Armin K., Colin Walters,
2384 Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
2385 Holger Schurig, Jason A. Donenfeld, Jason St. John, Jasper
2386 St. Pierre, Kay Sievers, Lennart Poettering, Łukasz Stelmach,
2387 Marcel Holtmann, Michael Scherer, Michal Sekletar, Mike
2388 Gilbert, Samuli Suominen, Thomas Bächler, Thomas Hindoe
2389 Paaboel Andersen, Tom Gundersen, Umut Tezduyar Lindskog,
2390 Zbigniew Jędrzejewski-Szmek
2391
2392 -- Berlin, 2014-02-24
2393
2394 CHANGES WITH 209:
2395
2396 * A new component "systemd-networkd" has been added that can
2397 be used to configure local network interfaces statically or
2398 via DHCP. It is capable of bringing up bridges, VLANs, and
2399 bonding. Currently, no hook-ups for interactive network
2400 configuration are provided. Use this for your initrd,
2401 container, embedded, or server setup if you need a simple,
2402 yet powerful, network configuration solution. This
2403 configuration subsystem is quite nifty, as it allows wildcard
2404 hotplug matching in interfaces. For example, with a single
2405 configuration snippet, you can configure that all Ethernet
2406 interfaces showing up are automatically added to a bridge,
2407 or similar. It supports link-sensing and more.
2408
2409 * A new tool "systemd-socket-proxyd" has been added which can
2410 act as a bidirectional proxy for TCP sockets. This is
2411 useful for adding socket activation support to services that
2412 do not actually support socket activation, including virtual
2413 machines and the like.
2414
2415 * Add a new tool to save/restore rfkill state on
2416 shutdown/boot.
2417
2418 * Save/restore state of keyboard backlights in addition to
2419 display backlights on shutdown/boot.
2420
2421 * udev learned a new SECLABEL{} construct to label device
2422 nodes with a specific security label when they appear. For
2423 now, only SECLABEL{selinux} is supported, but the syntax is
2424 prepared for additional security frameworks.
2425
2426 * udev gained a new scheme to configure link-level attributes
2427 from files in /etc/systemd/network/*.link. These files can
2428 match against MAC address, device path, driver name and type,
2429 and will apply attributes like the naming policy, link speed,
2430 MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC
2431 address assignment policy (randomized, ...).
2432
2433 * The configuration of network interface naming rules for
2434 "permanent interface names" has changed: a new NamePolicy=
2435 setting in the [Link] section of .link files determines the
2436 priority of possible naming schemes (onboard, slot, mac,
2437 path). The default value of this setting is determined by
2438 /usr/lib/net/links/99-default.link. Old
2439 80-net-name-slot.rules udev configuration file has been
2440 removed, so local configuration overriding this file should
2441 be adapated to override 99-default.link instead.
2442
2443 * When the User= switch is used in a unit file, also
2444 initialize $SHELL= based on the user database entry.
2445
2446 * systemd no longer depends on libdbus. All communication is
2447 now done with sd-bus, systemd's low-level bus library
2448 implementation.
2449
2450 * kdbus support has been added to PID 1 itself. When kdbus is
2451 enabled, this causes PID 1 to set up the system bus and
2452 enable support for a new ".busname" unit type that
2453 encapsulates bus name activation on kdbus. It works a little
2454 bit like ".socket" units, except for bus names. A new
2455 generator has been added that converts classic dbus1 service
2456 activation files automatically into native systemd .busname
2457 and .service units.
2458
2459 * sd-bus: add a light-weight vtable implementation that allows
2460 defining objects on the bus with a simple static const
2461 vtable array of its methods, signals and properties.
2462
2463 * systemd will not generate or install static dbus
2464 introspection data anymore to /usr/share/dbus-1/interfaces,
2465 as the precise format of these files is unclear, and
2466 nothing makes use of it.
2467
2468 * A proxy daemon is now provided to proxy clients connecting
2469 via classic D-Bus AF_UNIX sockets to kdbus, to provide full
2470 compatibility with classic D-Bus.
2471
2472 * A bus driver implementation has been added that supports the
2473 classic D-Bus bus driver calls on kdbus, also for
2474 compatibility purposes.
2475
2476 * A new API "sd-event.h" has been added that implements a
2477 minimal event loop API built around epoll. It provides a
2478 couple of features that direct epoll usage is lacking:
2479 prioritization of events, scales to large numbers of timer
2480 events, per-event timer slack (accuracy), system-wide
2481 coalescing of timer events, exit handlers, watchdog
2482 supervision support using systemd's sd_notify() API, child
2483 process handling.
2484
2485 * A new API "sd-rntl.h" has been added that provides an API
2486 around the route netlink interface of the kernel, similar in
2487 style to "sd-bus.h".
2488
2489 * A new API "sd-dhcp-client.h" has been added that provides a
2490 small DHCPv4 client-side implementation. This is used by
2491 "systemd-networkd".
2492
2493 * There is a new kernel command line option
2494 "systemd.restore_state=0|1". When set to "0", none of the
2495 systemd tools will restore saved runtime state to hardware
2496 devices. More specifically, the rfkill and backlight states
2497 are not restored.
2498
2499 * The FsckPassNo= compatibility option in mount/service units
2500 has been removed. The fstab generator will now add the
2501 necessary dependencies automatically, and does not require
2502 PID1's support for that anymore.
2503
2504 * journalctl gained a new switch, --list-boots, that lists
2505 recent boots with their times and boot IDs.
2506
2507 * The various tools like systemctl, loginctl, timedatectl,
2508 busctl, systemd-run, ... have gained a new switch "-M" to
2509 connect to a specific, local OS container (as direct
2510 connection, without requiring SSH). This works on any
2511 container that is registered with machined, such as those
2512 created by libvirt-lxc or nspawn.
2513
2514 * systemd-run and systemd-analyze also gained support for "-H"
2515 to connect to remote hosts via SSH. This is particularly
2516 useful for systemd-run because it enables queuing of jobs
2517 onto remote systems.
2518
2519 * machinectl gained a new command "login" to open a getty
2520 login in any local container. This works with any container
2521 that is registered with machined (such as those created by
2522 libvirt-lxc or nspawn), and which runs systemd inside.
2523
2524 * machinectl gained a new "reboot" command that may be used to
2525 trigger a reboot on a specific container that is registered
2526 with machined. This works on any container that runs an init
2527 system of some kind.
2528
2529 * systemctl gained a new "list-timers" command to print a nice
2530 listing of installed timer units with the times they elapse
2531 next.
2532
2533 * Alternative reboot() parameters may now be specified on the
2534 "systemctl reboot" command line and are passed to the
2535 reboot() system call.
2536
2537 * systemctl gained a new --job-mode= switch to configure the
2538 mode to queue a job with. This is a more generic version of
2539 --fail, --irreversible, and --ignore-dependencies, which are
2540 still available but not advertised anymore.
2541
2542 * /etc/systemd/system.conf gained new settings to configure
2543 various default timeouts of units, as well as the default
2544 start limit interval and burst. These may still be overridden
2545 within each Unit.
2546
2547 * PID1 will now export on the bus profile data of the security
2548 policy upload process (such as the SELinux policy upload to
2549 the kernel).
2550
2551 * journald: when forwarding logs to the console, include
2552 timestamps (following the setting in
2553 /sys/module/printk/parameters/time).
2554
2555 * OnCalendar= in timer units now understands the special
2556 strings "yearly" and "annually". (Both are equivalent)
2557
2558 * The accuracy of timer units is now configurable with the new
2559 AccuracySec= setting. It defaults to 1min.
2560
2561 * A new dependency type JoinsNamespaceOf= has been added that
2562 allows running two services within the same /tmp and network
2563 namespace, if PrivateNetwork= or PrivateTmp= are used.
2564
2565 * A new command "cat" has been added to systemctl. It outputs
2566 the original unit file of a unit, and concatenates the
2567 contents of additional "drop-in" unit file snippets, so that
2568 the full configuration is shown.
2569
2570 * systemctl now supports globbing on the various "list-xyz"
2571 commands, like "list-units" or "list-sockets", as well as on
2572 those commands which take multiple unit names.
2573
2574 * journalctl's --unit= switch gained support for globbing.
2575
2576 * All systemd daemons now make use of the watchdog logic so
2577 that systemd automatically notices when they hang.
2578
2579 * If the $container_ttys environment variable is set,
2580 getty-generator will automatically spawn a getty for each
2581 listed tty. This is useful for container managers to request
2582 login gettys to be spawned on as many ttys as needed.
2583
2584 * %h, %s, %U specifier support is not available anymore when
2585 used in unit files for PID 1. This is because NSS calls are
2586 not safe from PID 1. They stay available for --user
2587 instances of systemd, and as special case for the root user.
2588
2589 * loginctl gained a new "--no-legend" switch to turn off output
2590 of the legend text.
2591
2592 * The "sd-login.h" API gained three new calls:
2593 sd_session_is_remote(), sd_session_get_remote_user(),
2594 sd_session_get_remote_host() to query information about
2595 remote sessions.
2596
2597 * The udev hardware database now also carries vendor/product
2598 information of SDIO devices.
2599
2600 * The "sd-daemon.h" API gained a new sd_watchdog_enabled() to
2601 determine whether watchdog notifications are requested by
2602 the system manager.
2603
2604 * Socket-activated per-connection services now include a
2605 short description of the connection parameters in the
2606 description.
2607
2608 * tmpfiles gained a new "--boot" option. When this is not used,
2609 only lines where the command character is not suffixed with
2610 "!" are executed. When this option is specified, those
2611 options are executed too. This partitions tmpfiles
2612 directives into those that can be safely executed at any
2613 time, and those which should be run only at boot (for
2614 example, a line that creates /run/nologin).
2615
2616 * A new API "sd-resolve.h" has been added which provides a simple
2617 asynchronous wrapper around glibc NSS host name resolution
2618 calls, such as getaddrinfo(). In contrast to glibc's
2619 getaddrinfo_a(), it does not use signals. In contrast to most
2620 other asynchronous name resolution libraries, this one does
2621 not reimplement DNS, but reuses NSS, so that alternate
2622 host name resolution systems continue to work, such as mDNS,
2623 LDAP, etc. This API is based on libasyncns, but it has been
2624 cleaned up for inclusion in systemd.
2625
2626 * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h",
2627 "sd-daemon.h" are no longer found in individual libraries
2628 libsystemd-journal.so, libsystemd-login.so,
2629 libsystemd-id128.so, libsystemd-daemon.so. Instead, we have
2630 merged them into a single library, libsystemd.so, which
2631 provides all symbols. The reason for this is cyclic
2632 dependencies, as these libraries tend to use each other's
2633 symbols. So far, we have managed to workaround that by linking
2634 a copy of a good part of our code into each of these
2635 libraries again and again, which, however, makes certain
2636 things hard to do, like sharing static variables. Also, it
2637 substantially increases footprint. With this change, there
2638 is only one library for the basic APIs systemd
2639 provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h",
2640 "sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this
2641 library as well, however are subject to the --enable-kdbus
2642 switch (see below). Note that "sd-dhcp-client.h" is not part
2643 of this library (this is because it only consumes, never
2644 provides, services of/to other APIs). To make the transition
2645 easy from the separate libraries to the unified one, we
2646 provide the --enable-compat-libs compile-time switch which
2647 will generate stub libraries that are compatible with the
2648 old ones but redirect all calls to the new one.
2649
2650 * All of the kdbus logic and the new APIs "sd-bus.h",
2651 "sd-memfd.h", "sd-event.h", "sd-rtnl.h", "sd-resolve.h",
2652 and "sd-utf8.h" are compile-time optional via the
2653 "--enable-kdbus" switch, and they are not compiled in by
2654 default. To make use of kdbus, you have to explicitly enable
2655 the switch. Note however, that neither the kernel nor the
2656 userspace API for all of this is considered stable yet. We
2657 want to maintain the freedom to still change the APIs for
2658 now. By specifying this build-time switch, you acknowledge
2659 that you are aware of the instability of the current
2660 APIs.
2661
2662 * Also, note that while kdbus is pretty much complete,
2663 it lacks one thing: proper policy support. This means you
2664 can build a fully working system with all features; however,
2665 it will be highly insecure. Policy support will be added in
2666 one of the next releases, at the same time that we will
2667 declare the APIs stable.
2668
2669 * When the kernel command line argument "kdbus" is specified,
2670 systemd will automatically load the kdbus.ko kernel module. At
2671 this stage of development, it is only useful for testing kdbus
2672 and should not be used in production. Note: if "--enable-kdbus"
2673 is specified, and the kdbus.ko kernel module is available, and
2674 "kdbus" is added to the kernel command line, the entire system
2675 runs with kdbus instead of dbus-daemon, with the above mentioned
2676 problem of missing the system policy enforcement. Also a future
2677 version of kdbus.ko or a newer systemd will not be compatible with
2678 each other, and will unlikely be able to boot the machine if only
2679 one of them is updated.
2680
2681 * systemctl gained a new "import-environment" command which
2682 uploads the caller's environment (or parts thereof) into the
2683 service manager so that it is inherited by services started
2684 by the manager. This is useful to upload variables like
2685 $DISPLAY into the user service manager.
2686
2687 * A new PrivateDevices= switch has been added to service units
2688 which allows running a service with a namespaced /dev
2689 directory that does not contain any device nodes for
2690 physical devices. More specifically, it only includes devices
2691 such as /dev/null, /dev/urandom, and /dev/zero which are API
2692 entry points.
2693
2694 * logind has been extended to support behaviour like VT
2695 switching on seats that do not support a VT. This makes
2696 multi-session available on seats that are not the first seat
2697 (seat0), and on systems where kernel support for VTs has
2698 been disabled at compile-time.
2699
2700 * If a process holds a delay lock for system sleep or shutdown
2701 and fails to release it in time, we will now log its
2702 identity. This makes it easier to identify processes that
2703 cause slow suspends or power-offs.
2704
2705 * When parsing /etc/crypttab, support for a new key-slot=
2706 option as supported by Debian is added. It allows indicating
2707 which LUKS slot to use on disk, speeding up key loading.
2708
2709 * The sd_journald_sendv() API call has been checked and
2710 officially declared to be async-signal-safe so that it may
2711 be invoked from signal handlers for logging purposes.
2712
2713 * Boot-time status output is now enabled automatically after a
2714 short timeout if boot does not progress, in order to give
2715 the user an indication what she or he is waiting for.
2716
2717 * The boot-time output has been improved to show how much time
2718 remains until jobs expire.
2719
2720 * The KillMode= switch in service units gained a new possible
2721 value "mixed". If set, and the unit is shut down, then the
2722 initial SIGTERM signal is sent only to the main daemon
2723 process, while the following SIGKILL signal is sent to
2724 all remaining processes of the service.
2725
2726 * When a scope unit is registered, a new property "Controller"
2727 may be set. If set to a valid bus name, systemd will send a
2728 RequestStop() signal to this name when it would like to shut
2729 down the scope. This may be used to hook manager logic into
2730 the shutdown logic of scope units. Also, scope units may now
2731 be put in a special "abandoned" state, in which case the
2732 manager process which created them takes no further
2733 responsibilities for it.
2734
2735 * When reading unit files, systemd will now verify
2736 the access mode of these files, and warn about certain
2737 suspicious combinations. This has been added to make it
2738 easier to track down packaging bugs where unit files are
2739 marked executable or world-writable.
2740
2741 * systemd-nspawn gained a new "--setenv=" switch to set
2742 container-wide environment variables. The similar option in
2743 systemd-activate was renamed from "--environment=" to
2744 "--setenv=" for consistency.
2745
2746 * systemd-nspawn has been updated to create a new kdbus domain
2747 for each container that is invoked, thus allowing each
2748 container to have its own set of system and user buses,
2749 independent of the host.
2750
2751 * systemd-nspawn gained a new --drop-capability= switch to run
2752 the container with less capabilities than the default. Both
2753 --drop-capability= and --capability= now take the special
2754 string "all" for dropping or keeping all capabilities.
2755
2756 * systemd-nspawn gained new switches for executing containers
2757 with specific SELinux labels set.
2758
2759 * systemd-nspawn gained a new --quiet switch to not generate
2760 any additional output but the container's own console
2761 output.
2762
2763 * systemd-nspawn gained a new --share-system switch to run a
2764 container without PID namespacing enabled.
2765
2766 * systemd-nspawn gained a new --register= switch to control
2767 whether the container is registered with systemd-machined or
2768 not. This is useful for containers that do not run full
2769 OS images, but only specific apps.
2770
2771 * systemd-nspawn gained a new --keep-unit which may be used
2772 when invoked as the only program from a service unit, and
2773 results in registration of the unit service itself in
2774 systemd-machined, instead of a newly opened scope unit.
2775
2776 * systemd-nspawn gained a new --network-interface= switch for
2777 moving arbitrary interfaces to the container. The new
2778 --network-veth switch creates a virtual Ethernet connection
2779 between host and container. The new --network-bridge=
2780 switch then allows assigning the host side of this virtual
2781 Ethernet connection to a bridge device.
2782
2783 * systemd-nspawn gained a new --personality= switch for
2784 setting the kernel personality for the container. This is
2785 useful when running a 32-bit container on a 64-bit host. A
2786 similar option Personality= is now also available for service
2787 units to use.
2788
2789 * logind will now also track a "Desktop" identifier for each
2790 session which encodes the desktop environment of it. This is
2791 useful for desktop environments that want to identify
2792 multiple running sessions of itself easily.
2793
2794 * A new SELinuxContext= setting for service units has been
2795 added that allows setting a specific SELinux execution
2796 context for a service.
2797
2798 * Most systemd client tools will now honour $SYSTEMD_LESS for
2799 settings of the "less" pager. By default, these tools will
2800 override $LESS to allow certain operations to work, such as
2801 jump-to-the-end. With $SYSTEMD_LESS, it is possible to
2802 influence this logic.
2803
2804 * systemd's "seccomp" hook-up has been changed to make use of
2805 the libseccomp library instead of using its own
2806 implementation. This has benefits for portability among
2807 other things.
2808
2809 * For usage together with SystemCallFilter=, a new
2810 SystemCallErrorNumber= setting has been introduced that
2811 allows configuration of a system error number to be returned
2812 on filtered system calls, instead of immediately killing the
2813 process. Also, SystemCallArchitectures= has been added to
2814 limit access to system calls of a particular architecture
2815 (in order to turn off support for unused secondary
2816 architectures). There is also a global
2817 SystemCallArchitectures= setting in system.conf now to turn
2818 off support for non-native system calls system-wide.
2819
2820 * systemd requires a kernel with a working name_to_handle_at(),
2821 please see the kernel config requirements in the README file.
2822
2823 Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov,
2824 Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera,
2825 Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters,
2826 Cristian Rodríguez, Daniel Buch, Daniele Medri, Daniel J
2827 Walsh, Daniel Mack, Dan McGee, Dave Reisner, David Coppa,
2828 David Herrmann, David Strauss, Djalal Harouni, Dmitry Pisklov,
2829 Elia Pinto, Florian Weimer, George McCollister, Goffredo
2830 Baroncelli, Greg Kroah-Hartman, Hendrik Brueckner, Igor
2831 Zhbanov, Jan Engelhardt, Jan Janssen, Jason A. Donenfeld,
2832 Jason St. John, Jasper St. Pierre, Jóhann B. Guðmundsson, Jose
2833 Ignacio Naranjo, Karel Zak, Kay Sievers, Kristian Høgsberg,
2834 Lennart Poettering, Lubomir Rintel, Lukas Nykryn, Lukasz
2835 Skalski, Łukasz Stelmach, Luke Shumaker, Mantas Mikulėnas,
2836 Marc-Antoine Perennou, Marcel Holtmann, Marcos Felipe Rasia de
2837 Mello, Marko Myllynen, Martin Pitt, Matthew Monaco, Michael
2838 Marineau, Michael Scherer, Michał Górny, Michal Sekletar,
2839 Michele Curti, Oleksii Shevchuk, Olivier Brunel, Patrik Flykt,
2840 Pavel Holica, Raudi, Richard Marko, Ronny Chevalier, Sébastien
2841 Luttringer, Sergey Ptashnick, Shawn Landden, Simon Peeters,
2842 Stefan Beller, Susant Sahani, Sylvain Plantefeve, Sylvia Else,
2843 Tero Roponen, Thomas Bächler, Thomas Hindoe Paaboel Andersen,
2844 Tom Gundersen, Umut Tezduyar Lindskog, Unai Uribarri, Václav
2845 Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang
2846 Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek
2847
2848 -- Berlin, 2014-02-20
2849
2850 CHANGES WITH 208:
2851
2852 * logind has gained support for facilitating privileged input
2853 and drm device access for unprivileged clients. This work is
2854 useful to allow Wayland display servers (and similar
2855 programs, such as kmscon) to run under the user's ID and
2856 access input and drm devices which are normally
2857 protected. When this is used (and the kernel is new enough)
2858 logind will "mute" IO on the file descriptors passed to
2859 Wayland as long as it is in the background and "unmute" it
2860 if it returns into the foreground. This allows secure
2861 session switching without allowing background sessions to
2862 eavesdrop on input and display data. This also introduces
2863 session switching support if VT support is turned off in the
2864 kernel, and on seats that are not seat0.
2865
2866 * A new kernel command line option luks.options= is understood
2867 now which allows specifying LUKS options for usage for LUKS
2868 encrypted partitions specified with luks.uuid=.
2869
2870 * tmpfiles.d(5) snippets may now use specifier expansion in
2871 path names. More specifically %m, %b, %H, %v, are now
2872 replaced by the local machine id, boot id, hostname, and
2873 kernel version number.
2874
2875 * A new tmpfiles.d(5) command "m" has been introduced which
2876 may be used to change the owner/group/access mode of a file
2877 or directory if it exists, but do nothing if it does not.
2878
2879 * This release removes high-level support for the
2880 MemorySoftLimit= cgroup setting. The underlying kernel
2881 cgroup attribute memory.soft_limit= is currently badly
2882 designed and likely to be removed from the kernel API in its
2883 current form, hence we should not expose it for now.
2884
2885 * The memory.use_hierarchy cgroup attribute is now enabled for
2886 all cgroups systemd creates in the memory cgroup
2887 hierarchy. This option is likely to be come the built-in
2888 default in the kernel anyway, and the non-hierarchical mode
2889 never made much sense in the intrinsically hierarchical
2890 cgroup system.
2891
2892 * A new field _SYSTEMD_SLICE= is logged along with all journal
2893 messages containing the slice a message was generated
2894 from. This is useful to allow easy per-customer filtering of
2895 logs among other things.
2896
2897 * systemd-journald will no longer adjust the group of journal
2898 files it creates to the "systemd-journal" group. Instead we
2899 rely on the journal directory to be owned by the
2900 "systemd-journal" group, and its setgid bit set, so that the
2901 kernel file system layer will automatically enforce that
2902 journal files inherit this group assignment. The reason for
2903 this change is that we cannot allow NSS look-ups from
2904 journald which would be necessary to resolve
2905 "systemd-journal" to a numeric GID, because this might
2906 create deadlocks if NSS involves synchronous queries to
2907 other daemons (such as nscd, or sssd) which in turn are
2908 logging clients of journald and might block on it, which
2909 would then dead lock. A tmpfiles.d(5) snippet included in
2910 systemd will make sure the setgid bit and group are
2911 properly set on the journal directory if it exists on every
2912 boot. However, we recommend adjusting it manually after
2913 upgrades too (or from RPM scriptlets), so that the change is
2914 not delayed until next reboot.
2915
2916 * Backlight and random seed files in /var/lib/ have moved into
2917 the /var/lib/systemd/ directory, in order to centralize all
2918 systemd generated files in one directory.
2919
2920 * Boot time performance measurements (as displayed by
2921 "systemd-analyze" for example) will now read ACPI 5.0 FPDT
2922 performance information if that's available to determine how
2923 much time BIOS and boot loader initialization required. With
2924 a sufficiently new BIOS you hence no longer need to boot
2925 with Gummiboot to get access to such information.
2926
2927 Contributions from: Andrey Borzenkov, Chen Jie, Colin Walters,
2928 Cristian Rodríguez, Dave Reisner, David Herrmann, David
2929 Mackey, David Strauss, Eelco Dolstra, Evan Callicoat, Gao
2930 feng, Harald Hoyer, Jimmie Tauriainen, Kay Sievers, Lennart
2931 Poettering, Lukas Nykryn, Mantas Mikulėnas, Martin Pitt,
2932 Michael Scherer, Michał Górny, Mike Gilbert, Patrick McCarty,
2933 Sebastian Ott, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
2934
2935 -- Berlin, 2013-10-02
2936
2937 CHANGES WITH 207:
2938
2939 * The Restart= option for services now understands a new
2940 on-watchdog setting, which will restart the service
2941 automatically if the service stops sending out watchdog keep
2942 alive messages (as configured with WatchdogSec=).
2943
2944 * The getty generator (which is responsible for bringing up a
2945 getty on configured serial consoles) will no longer only
2946 start a getty on the primary kernel console but on all
2947 others, too. This makes the order in which console= is
2948 specified on the kernel command line less important.
2949
2950 * libsystemd-logind gained a new sd_session_get_vt() call to
2951 retrieve the VT number of a session.
2952
2953 * If the option "tries=0" is set for an entry of /etc/crypttab
2954 its passphrase is queried indefinitely instead of any
2955 maximum number of tries.
2956
2957 * If a service with a configure PID file terminates its PID
2958 file will now be removed automatically if it still exists
2959 afterwards. This should put an end to stale PID files.
2960
2961 * systemd-run will now also take relative binary path names
2962 for execution and no longer insists on absolute paths.
2963
2964 * InaccessibleDirectories= and ReadOnlyDirectories= now take
2965 paths that are optionally prefixed with "-" to indicate that
2966 it should not be considered a failure if they do not exist.
2967
2968 * journalctl -o (and similar commands) now understands a new
2969 output mode "short-precise", it is similar to "short" but
2970 shows timestamps with usec accuracy.
2971
2972 * The option "discard" (as known from Debian) is now
2973 synonymous to "allow-discards" in /etc/crypttab. In fact,
2974 "discard" is preferred now (since it is easier to remember
2975 and type).
2976
2977 * Some licensing clean-ups were made, so that more code is now
2978 LGPL-2.1 licensed than before.
2979
2980 * A minimal tool to save/restore the display backlight
2981 brightness across reboots has been added. It will store the
2982 backlight setting as late as possible at shutdown, and
2983 restore it as early as possible during reboot.
2984
2985 * A logic to automatically discover and enable home and swap
2986 partitions on GPT disks has been added. With this in place
2987 /etc/fstab becomes optional for many setups as systemd can
2988 discover certain partitions located on the root disk
2989 automatically. Home partitions are recognized under their
2990 GPT type ID 933ac7e12eb44f13b8440e14e2aef915. Swap
2991 partitions are recognized under their GPT type ID
2992 0657fd6da4ab43c484e50933c84b4f4f.
2993
2994 * systemd will no longer pass any environment from the kernel
2995 or initrd to system services. If you want to set an
2996 environment for all services, do so via the kernel command
2997 line systemd.setenv= assignment.
2998
2999 * The systemd-sysctl tool no longer natively reads the file
3000 /etc/sysctl.conf. If desired, the file should be symlinked
3001 from /etc/sysctl.d/99-sysctl.conf. Apart from providing
3002 legacy support by a symlink rather than built-in code, it
3003 also makes the otherwise hidden order of application of the
3004 different files visible. (Note that this partly reverts to a
3005 pre-198 application order of sysctl knobs!)
3006
3007 * The "systemctl set-log-level" and "systemctl dump" commands
3008 have been moved to systemd-analyze.
3009
3010 * systemd-run learned the new --remain-after-exit switch,
3011 which causes the scope unit not to be cleaned up
3012 automatically after the process terminated.
3013
3014 * tmpfiles learned a new --exclude-prefix= switch to exclude
3015 certain paths from operation.
3016
3017 * journald will now automatically flush all messages to disk
3018 as soon as a message at the log level CRIT, ALERT or EMERG
3019 is received.
3020
3021 Contributions from: Andrew Cook, Brandon Philips, Christian
3022 Hesse, Christoph Junghans, Colin Walters, Daniel Schaal,
3023 Daniel Wallace, Dave Reisner, David Herrmann, Gao feng, George
3024 McCollister, Giovanni Campagna, Hannes Reinecke, Harald Hoyer,
3025 Herczeg Zsolt, Holger Hans Peter Freyther, Jan Engelhardt,
3026 Jesper Larsen, Kay Sievers, Khem Raj, Lennart Poettering,
3027 Lukas Nykryn, Maciej Wereski, Mantas Mikulėnas, Marcel
3028 Holtmann, Martin Pitt, Michael Biebl, Michael Marineau,
3029 Michael Scherer, Michael Stapelberg, Michal Sekletar, Michał
3030 Górny, Olivier Brunel, Ondrej Balaz, Ronny Chevalier, Shawn
3031 Landden, Steven Hiscocks, Thomas Bächler, Thomas Hindoe
3032 Paaboel Andersen, Tom Gundersen, Umut Tezduyar, WANG Chao,
3033 William Giokas, Zbigniew Jędrzejewski-Szmek
3034
3035 -- Berlin, 2013-09-13
3036
3037 CHANGES WITH 206:
3038
3039 * The documentation has been updated to cover the various new
3040 concepts introduced with 205.
3041
3042 * Unit files now understand the new %v specifier which
3043 resolves to the kernel version string as returned by "uname
3044 -r".
3045
3046 * systemctl now supports filtering the unit list output by
3047 load state, active state and sub state, using the new
3048 --state= parameter.
3049
3050 * "systemctl status" will now show the results of the
3051 condition checks (like ConditionPathExists= and similar) of
3052 the last start attempts of the unit. They are also logged to
3053 the journal.
3054
3055 * "journalctl -b" may now be used to look for boot output of a
3056 specific boot. Try "journalctl -b -1" for the previous boot,
3057 but the syntax is substantially more powerful.
3058
3059 * "journalctl --show-cursor" has been added which prints the
3060 cursor string the last shown log line. This may then be used
3061 with the new "journalctl --after-cursor=" switch to continue
3062 browsing logs from that point on.
3063
3064 * "journalctl --force" may now be used to force regeneration
3065 of an FSS key.
3066
3067 * Creation of "dead" device nodes has been moved from udev
3068 into kmod and tmpfiles. Previously, udev would read the kmod
3069 databases to pre-generate dead device nodes based on meta
3070 information contained in kernel modules, so that these would
3071 be auto-loaded on access rather then at boot. As this
3072 does not really have much to do with the exposing actual
3073 kernel devices to userspace this has always been slightly
3074 alien in the udev codebase. Following the new scheme kmod
3075 will now generate a runtime snippet for tmpfiles from the
3076 module meta information and it now is tmpfiles' job to the
3077 create the nodes. This also allows overriding access and
3078 other parameters for the nodes using the usual tmpfiles
3079 facilities. As side effect this allows us to remove the
3080 CAP_SYS_MKNOD capability bit from udevd entirely.
3081
3082 * logind's device ACLs may now be applied to these "dead"
3083 devices nodes too, thus finally allowing managed access to
3084 devices such as /dev/snd/sequencer whithout loading the
3085 backing module right-away.
3086
3087 * A new RPM macro has been added that may be used to apply
3088 tmpfiles configuration during package installation.
3089
3090 * systemd-detect-virt and ConditionVirtualization= now can
3091 detect User-Mode-Linux machines (UML).
3092
3093 * journald will now implicitly log the effective capabilities
3094 set of processes in the message metadata.
3095
3096 * systemd-cryptsetup has gained support for TrueCrypt volumes.
3097
3098 * The initrd interface has been simplified (more specifically,
3099 support for passing performance data via environment
3100 variables and fsck results via files in /run has been
3101 removed). These features were non-essential, and are
3102 nowadays available in a much nicer way by having systemd in
3103 the initrd serialize its state and have the hosts systemd
3104 deserialize it again.
3105
3106 * The udev "keymap" data files and tools to apply keyboard
3107 specific mappings of scan to key codes, and force-release
3108 scan code lists have been entirely replaced by a udev
3109 "keyboard" builtin and a hwdb data file.
3110
3111 * systemd will now honour the kernel's "quiet" command line
3112 argument also during late shutdown, resulting in a
3113 completely silent shutdown when used.
3114
3115 * There's now an option to control the SO_REUSEPORT socket
3116 option in .socket units.
3117
3118 * Instance units will now automatically get a per-template
3119 subslice of system.slice unless something else is explicitly
3120 configured. For example, instances of sshd@.service will now
3121 implicitly be placed in system-sshd.slice rather than
3122 system.slice as before.
3123
3124 * Test coverage support may now be enabled at build time.
3125
3126 Contributions from: Dave Reisner, Frederic Crozat, Harald
3127 Hoyer, Holger Hans Peter Freyther, Jan Engelhardt, Jan
3128 Janssen, Jason St. John, Jesper Larsen, Kay Sievers, Lennart
3129 Poettering, Lukas Nykryn, Maciej Wereski, Martin Pitt, Michael
3130 Olbrich, Ramkumar Ramachandra, Ross Lagerwall, Shawn Landden,
3131 Thomas H.P. Andersen, Tom Gundersen, Tomasz Torcz, William
3132 Giokas, Zbigniew Jędrzejewski-Szmek
3133
3134 -- Berlin, 2013-07-23
3135
3136 CHANGES WITH 205:
3137
3138 * Two new unit types have been introduced:
3139
3140 Scope units are very similar to service units, however, are
3141 created out of pre-existing processes -- instead of PID 1
3142 forking off the processes. By using scope units it is
3143 possible for system services and applications to group their
3144 own child processes (worker processes) in a powerful way
3145 which then maybe used to organize them, or kill them
3146 together, or apply resource limits on them.
3147
3148 Slice units may be used to partition system resources in an
3149 hierarchical fashion and then assign other units to them. By
3150 default there are now three slices: system.slice (for all
3151 system services), user.slice (for all user sessions),
3152 machine.slice (for VMs and containers).
3153
3154 Slices and scopes have been introduced primarily in
3155 context of the work to move cgroup handling to a
3156 single-writer scheme, where only PID 1
3157 creates/removes/manages cgroups.
3158
3159 * There's a new concept of "transient" units. In contrast to
3160 normal units these units are created via an API at runtime,
3161 not from configuration from disk. More specifically this
3162 means it is now possible to run arbitrary programs as
3163 independent services, with all execution parameters passed
3164 in via bus APIs rather than read from disk. Transient units
3165 make systemd substantially more dynamic then it ever was,
3166 and useful as a general batch manager.
3167
3168 * logind has been updated to make use of scope and slice units
3169 for managing user sessions. As a user logs in he will get
3170 his own private slice unit, to which all sessions are added
3171 as scope units. We also added support for automatically
3172 adding an instance of user@.service for the user into the
3173 slice. Effectively logind will no longer create cgroup
3174 hierarchies on its own now, it will defer entirely to PID 1
3175 for this by means of scope, service and slice units. Since
3176 user sessions this way become entities managed by PID 1
3177 the output of "systemctl" is now a lot more comprehensive.
3178
3179 * A new mini-daemon "systemd-machined" has been added which
3180 may be used by virtualization managers to register local
3181 VMs/containers. nspawn has been updated accordingly, and
3182 libvirt will be updated shortly. machined will collect a bit
3183 of meta information about the VMs/containers, and assign
3184 them their own scope unit (see above). The collected
3185 meta-data is then made available via the "machinectl" tool,
3186 and exposed in "ps" and similar tools. machined/machinectl
3187 is compile-time optional.
3188
3189 * As discussed earlier, the low-level cgroup configuration
3190 options ControlGroup=, ControlGroupModify=,
3191 ControlGroupPersistent=, ControlGroupAttribute= have been
3192 removed. Please use high-level attribute settings instead as
3193 well as slice units.
3194
3195 * A new bus call SetUnitProperties() has been added to alter
3196 various runtime parameters of a unit. This is primarily
3197 useful to alter cgroup parameters dynamically in a nice way,
3198 but will be extended later on to make more properties
3199 modifiable at runtime. systemctl gained a new set-properties
3200 command that wraps this call.
3201
3202 * A new tool "systemd-run" has been added which can be used to
3203 run arbitrary command lines as transient services or scopes,
3204 while configuring a number of settings via the command
3205 line. This tool is currently very basic, however already
3206 very useful. We plan to extend this tool to even allow
3207 queuing of execution jobs with time triggers from the
3208 command line, similar in fashion to "at".
3209
3210 * nspawn will now inform the user explicitly that kernels with
3211 audit enabled break containers, and suggest the user to turn
3212 off audit.
3213
3214 * Support for detecting the IMA and AppArmor security
3215 frameworks with ConditionSecurity= has been added.
3216
3217 * journalctl gained a new "-k" switch for showing only kernel
3218 messages, mimicking dmesg output; in addition to "--user"
3219 and "--system" switches for showing only user's own logs
3220 and system logs.
3221
3222 * systemd-delta can now show information about drop-in
3223 snippets extending unit files.
3224
3225 * libsystemd-bus has been substantially updated but is still
3226 not available as public API.
3227
3228 * systemd will now look for the "debug" argument on the kernel
3229 command line and enable debug logging, similar to what
3230 "systemd.log_level=debug" already did before.
3231
3232 * "systemctl set-default", "systemctl get-default" has been
3233 added to configure the default.target symlink, which
3234 controls what to boot into by default.
3235
3236 * "systemctl set-log-level" has been added as a convenient
3237 way to raise and lower systemd logging threshold.
3238
3239 * "systemd-analyze plot" will now show the time the various
3240 generators needed for execution, as well as information
3241 about the unit file loading.
3242
3243 * libsystemd-journal gained a new sd_journal_open_files() call
3244 for opening specific journal files. journactl also gained a
3245 new switch to expose this new functionality. Previously we
3246 only supported opening all files from a directory, or all
3247 files from the system, as opening individual files only is
3248 racy due to journal file rotation.
3249
3250 * systemd gained the new DefaultEnvironment= setting in
3251 /etc/systemd/system.conf to set environment variables for
3252 all services.
3253
3254 * If a privileged process logs a journal message with the
3255 OBJECT_PID= field set, then journald will automatically
3256 augment this with additional OBJECT_UID=, OBJECT_GID=,
3257 OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if
3258 system services want to log events about specific client
3259 processes. journactl/systemctl has been updated to make use
3260 of this information if all log messages regarding a specific
3261 unit is requested.
3262
3263 Contributions from: Auke Kok, Chengwei Yang, Colin Walters,
3264 Cristian Rodríguez, Daniel Albers, Daniel Wallace, Dave
3265 Reisner, David Coppa, David King, David Strauss, Eelco
3266 Dolstra, Gabriel de Perthuis, Harald Hoyer, Jan Alexander
3267 Steffens, Jan Engelhardt, Jan Janssen, Jason St. John, Johan
3268 Heikkilä, Karel Zak, Karol Lewandowski, Kay Sievers, Lennart
3269 Poettering, Lukas Nykryn, Mantas Mikulėnas, Marius Vollmer,
3270 Martin Pitt, Michael Biebl, Michael Olbrich, Michael Tremer,
3271 Michal Schmidt, Michał Bartoszkiewicz, Nirbheek Chauhan,
3272 Pierre Neidhardt, Ross Burton, Ross Lagerwall, Sean McGovern,
3273 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar,
3274 Václav Pavlín, Zachary Cook, Zbigniew Jędrzejewski-Szmek,
3275 Łukasz Stelmach, 장동준
3276
3277 CHANGES WITH 204:
3278
3279 * The Python bindings gained some minimal support for the APIs
3280 exposed by libsystemd-logind.
3281
3282 * ConditionSecurity= gained support for detecting SMACK. Since
3283 this condition already supports SELinux and AppArmor we only
3284 miss IMA for this. Patches welcome!
3285
3286 Contributions from: Karol Lewandowski, Lennart Poettering,
3287 Zbigniew Jędrzejewski-Szmek
3288
3289 CHANGES WITH 203:
3290
3291 * systemd-nspawn will now create /etc/resolv.conf if
3292 necessary, before bind-mounting the host's file onto it.
3293
3294 * systemd-nspawn will now store meta information about a
3295 container on the container's cgroup as extended attribute
3296 fields, including the root directory.
3297
3298 * The cgroup hierarchy has been reworked in many ways. All
3299 objects any of the components systemd creates in the cgroup
3300 tree are now suffixed. More specifically, user sessions are
3301 now placed in cgroups suffixed with ".session", users in
3302 cgroups suffixed with ".user", and nspawn containers in
3303 cgroups suffixed with ".nspawn". Furthermore, all cgroup
3304 names are now escaped in a simple scheme to avoid collision
3305 of userspace object names with kernel filenames. This work
3306 is preparation for making these objects relocatable in the
3307 cgroup tree, in order to allow easy resource partitioning of
3308 these objects without causing naming conflicts.
3309
3310 * systemctl list-dependencies gained the new switches
3311 --plain, --reverse, --after and --before.
3312
3313 * systemd-inhibit now shows the process name of processes that
3314 have taken an inhibitor lock.
3315
3316 * nss-myhostname will now also resolve "localhost"
3317 implicitly. This makes /etc/hosts an optional file and
3318 nicely handles that on IPv6 ::1 maps to both "localhost" and
3319 the local hostname.
3320
3321 * libsystemd-logind.so gained a new call
3322 sd_get_machine_names() to enumerate running containers and
3323 VMs (currently only supported by very new libvirt and
3324 nspawn). sd_login_monitor can now be used to watch
3325 VMs/containers coming and going.
3326
3327 * .include is not allowed recursively anymore, and only in
3328 unit files. Usually it is better to use drop-in snippets in
3329 .d/*.conf anyway, as introduced with systemd 198.
3330
3331 * systemd-analyze gained a new "critical-chain" command that
3332 determines the slowest chain of units run during system
3333 boot-up. It is very useful for tracking down where
3334 optimizing boot time is the most beneficial.
3335
3336 * systemd will no longer allow manipulating service paths in
3337 the name=systemd:/system cgroup tree using ControlGroup= in
3338 units. (But is still fine with it in all other dirs.)
3339
3340 * There's a new systemd-nspawn@.service service file that may
3341 be used to easily run nspawn containers as system
3342 services. With the container's root directory in
3343 /var/lib/container/foobar it is now sufficient to run
3344 "systemctl start systemd-nspawn@foobar.service" to boot it.
3345
3346 * systemd-cgls gained a new parameter "--machine" to list only
3347 the processes within a certain container.
3348
3349 * ConditionSecurity= now can check for "apparmor". We still
3350 are lacking checks for SMACK and IMA for this condition
3351 check though. Patches welcome!
3352
3353 * A new configuration file /etc/systemd/sleep.conf has been
3354 added that may be used to configure which kernel operation
3355 systemd is supposed to execute when "suspend", "hibernate"
3356 or "hybrid-sleep" is requested. This makes the new kernel
3357 "freeze" state accessible to the user.
3358
3359 * ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
3360 the passed argument if applicable.
3361
3362 Contributions from: Auke Kok, Colin Guthrie, Colin Walters,
3363 Cristian Rodríguez, Daniel Buch, Daniel Wallace, Dave Reisner,
3364 Evangelos Foutras, Greg Kroah-Hartman, Harald Hoyer, Josh
3365 Triplett, Kay Sievers, Lennart Poettering, Lukas Nykryn,
3366 MUNEDA Takahiro, Mantas Mikulėnas, Mirco Tischler, Nathaniel
3367 Chen, Nirbheek Chauhan, Ronny Chevalier, Ross Lagerwall, Tom
3368 Gundersen, Umut Tezduyar, Ville Skyttä, Zbigniew
3369 Jędrzejewski-Szmek
3370
3371 CHANGES WITH 202:
3372
3373 * The output of 'systemctl list-jobs' got some polishing. The
3374 '--type=' argument may now be passed more than once. A new
3375 command 'systemctl list-sockets' has been added which shows
3376 a list of kernel sockets systemd is listening on with the
3377 socket units they belong to, plus the units these socket
3378 units activate.
3379
3380 * The experimental libsystemd-bus library got substantial
3381 updates to work in conjunction with the (also experimental)
3382 kdbus kernel project. It works well enough to exchange
3383 messages with some sophistication. Note that kdbus is not
3384 ready yet, and the library is mostly an elaborate test case
3385 for now, and not installable.
3386
3387 * systemd gained a new unit 'systemd-static-nodes.service'
3388 that generates static device nodes earlier during boot, and
3389 can run in conjunction with udev.
3390
3391 * libsystemd-login gained a new call sd_pid_get_user_unit()
3392 to retrieve the user systemd unit a process is running
3393 in. This is useful for systems where systemd is used as
3394 session manager.
3395
3396 * systemd-nspawn now places all containers in the new /machine
3397 top-level cgroup directory in the name=systemd
3398 hierarchy. libvirt will soon do the same, so that we get a
3399 uniform separation of /system, /user and /machine for system
3400 services, user processes and containers/virtual
3401 machines. This new cgroup hierarchy is also useful to stick
3402 stable names to specific container instances, which can be
3403 recognized later this way (this name may be controlled
3404 via systemd-nspawn's new -M switch). libsystemd-login also
3405 gained a new call sd_pid_get_machine_name() to retrieve the
3406 name of the container/VM a specific process belongs to.
3407
3408 * bootchart can now store its data in the journal.
3409
3410 * libsystemd-journal gained a new call
3411 sd_journal_add_conjunction() for AND expressions to the
3412 matching logic. This can be used to express more complex
3413 logical expressions.
3414
3415 * journactl can now take multiple --unit= and --user-unit=
3416 switches.
3417
3418 * The cryptsetup logic now understands the "luks.key=" kernel
3419 command line switch for specifying a file to read the
3420 decryption key from. Also, if a configured key file is not
3421 found the tool will now automatically fall back to prompting
3422 the user.
3423
3424 * Python systemd.journal module was updated to wrap recently
3425 added functions from libsystemd-journal. The interface was
3426 changed to bring the low level interface in s.j._Reader
3427 closer to the C API, and the high level interface in
3428 s.j.Reader was updated to wrap and convert all data about
3429 an entry.
3430
3431 Contributions from: Anatol Pomozov, Auke Kok, Harald Hoyer,
3432 Henrik Grindal Bakken, Josh Triplett, Kay Sievers, Lennart
3433 Poettering, Lukas Nykryn, Mantas Mikulėnas Marius Vollmer,
3434 Martin Jansa, Martin Pitt, Michael Biebl, Michal Schmidt,
3435 Mirco Tischler, Pali Rohar, Simon Peeters, Steven Hiscocks,
3436 Tom Gundersen, Zbigniew Jędrzejewski-Szmek
3437
3438 CHANGES WITH 201:
3439
3440 * journalctl --update-catalog now understands a new --root=
3441 option to operate on catalogs found in a different root
3442 directory.
3443
3444 * During shutdown after systemd has terminated all running
3445 services a final killing loop kills all remaining left-over
3446 processes. We will now print the name of these processes
3447 when we send SIGKILL to them, since this usually indicates a
3448 problem.
3449
3450 * If /etc/crypttab refers to password files stored on
3451 configured mount points automatic dependencies will now be
3452 generated to ensure the specific mount is established first
3453 before the key file is attempted to be read.
3454
3455 * 'systemctl status' will now show information about the
3456 network sockets a socket unit is listening on.
3457
3458 * 'systemctl status' will also shown information about any
3459 drop-in configuration file for units. (Drop-In configuration
3460 files in this context are files such as
3461 /etc/systemd/systemd/foobar.service.d/*.conf)
3462
3463 * systemd-cgtop now optionally shows summed up CPU times of
3464 cgroups. Press '%' while running cgtop to switch between
3465 percentage and absolute mode. This is useful to determine
3466 which cgroups use up the most CPU time over the entire
3467 runtime of the system. systemd-cgtop has also been updated
3468 to be 'pipeable' for processing with further shell tools.
3469
3470 * 'hostnamectl set-hostname' will now allow setting of FQDN
3471 hostnames.
3472
3473 * The formatting and parsing of time span values has been
3474 changed. The parser now understands fractional expressions
3475 such as "5.5h". The formatter will now output fractional
3476 expressions for all time spans under 1min, i.e. "5.123456s"
3477 rather than "5s 123ms 456us". For time spans under 1s
3478 millisecond values are shown, for those under 1ms
3479 microsecond values are shown. This should greatly improve
3480 all time-related output of systemd.
3481
3482 * libsystemd-login and libsystemd-journal gained new
3483 functions for querying the poll() events mask and poll()
3484 timeout value for integration into arbitrary event
3485 loops.
3486
3487 * localectl gained the ability to list available X11 keymaps
3488 (models, layouts, variants, options).
3489
3490 * 'systemd-analyze dot' gained the ability to filter for
3491 specific units via shell-style globs, to create smaller,
3492 more useful graphs. I.e. it is now possible to create simple
3493 graphs of all the dependencies between only target units, or
3494 of all units that Avahi has dependencies with.
3495
3496 Contributions from: Cristian Rodríguez, Dr. Tilmann Bubeck,
3497 Harald Hoyer, Holger Hans Peter Freyther, Kay Sievers, Kelly
3498 Anderson, Koen Kooi, Lennart Poettering, Maksim Melnikau,
3499 Marc-Antoine Perennou, Marius Vollmer, Martin Pitt, Michal
3500 Schmidt, Oleksii Shevchuk, Ronny Chevalier, Simon McVittie,
3501 Steven Hiscocks, Thomas Weißschuh, Umut Tezduyar, Václav
3502 Pavlín, Zbigniew Jędrzejewski-Szmek, Łukasz Stelmach
3503
3504 CHANGES WITH 200:
3505
3506 * The boot-time readahead implementation for rotating media
3507 will now read the read-ahead data in multiple passes which
3508 consist of all read requests made in equidistant time
3509 intervals. This means instead of strictly reading read-ahead
3510 data in its physical order on disk we now try to find a
3511 middle ground between physical and access time order.
3512
3513 * /etc/os-release files gained a new BUILD_ID= field for usage
3514 on operating systems that provide continuous builds of OS
3515 images.
3516
3517 Contributions from: Auke Kok, Eelco Dolstra, Kay Sievers,
3518 Lennart Poettering, Lukas Nykryn, Martin Pitt, Václav Pavlín
3519 William Douglas, Zbigniew Jędrzejewski-Szmek
3520
3521 CHANGES WITH 199:
3522
3523 * systemd-python gained an API exposing libsystemd-daemon.
3524
3525 * The SMACK setup logic gained support for uploading CIPSO
3526 security policy.
3527
3528 * Behaviour of PrivateTmp=, ReadWriteDirectories=,
3529 ReadOnlyDirectories= and InaccessibleDirectories= has
3530 changed. The private /tmp and /var/tmp directories are now
3531 shared by all processes of a service (which means
3532 ExecStartPre= may now leave data in /tmp that ExecStart= of
3533 the same service can still access). When a service is
3534 stopped its temporary directories are immediately deleted
3535 (normal clean-up with tmpfiles is still done in addition to
3536 this though).
3537
3538 * By default, systemd will now set a couple of sysctl
3539 variables in the kernel: the safe sysrq options are turned
3540 on, IP route verification is turned on, and source routing
3541 disabled. The recently added hardlink and softlink
3542 protection of the kernel is turned on. These settings should
3543 be reasonably safe, and good defaults for all new systems.
3544
3545 * The predictable network naming logic may now be turned off
3546 with a new kernel command line switch: net.ifnames=0.
3547
3548 * A new libsystemd-bus module has been added that implements a
3549 pretty complete D-Bus client library. For details see:
3550
3551 http://lists.freedesktop.org/archives/systemd-devel/2013-March/009797.html
3552
3553 * journald will now explicitly flush the journal files to disk
3554 at the latest 5min after each write. The file will then also
3555 be marked offline until the next write. This should increase
3556 reliability in case of a crash. The synchronization delay
3557 can be configured via SyncIntervalSec= in journald.conf.
3558
3559 * There's a new remote-fs-setup.target unit that can be used
3560 to pull in specific services when at least one remote file
3561 system is to be mounted.
3562
3563 * There are new targets timers.target and paths.target as
3564 canonical targets to pull user timer and path units in
3565 from. This complements sockets.target with a similar
3566 purpose for socket units.
3567
3568 * libudev gained a new call udev_device_set_attribute_value()
3569 to set sysfs attributes of a device.
3570
3571 * The udev daemon now sets the default number of worker
3572 processes executed in parallel based on the number of available
3573 CPUs instead of the amount of available RAM. This is supposed
3574 to provide a more reliable default and limit a too aggressive
3575 paralellism for setups with 1000s of devices connected.
3576
3577 Contributions from: Auke Kok, Colin Walters, Cristian
3578 Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
3579 Reinecke, Harald Hoyer, Jan Alexander Steffens, Jan
3580 Engelhardt, Josh Triplett, Kay Sievers, Lennart Poettering,
3581 Mantas Mikulėnas, Martin Pitt, Mathieu Bridon, Michael Biebl,
3582 Michal Schmidt, Michal Sekletar, Miklos Vajna, Nathaniel Chen,
3583 Oleksii Shevchuk, Ozan Çağlayan, Thomas Hindoe Paaboel
3584 Andersen, Tollef Fog Heen, Tom Gundersen, Umut Tezduyar,
3585 Zbigniew Jędrzejewski-Szmek
3586
3587 CHANGES WITH 198:
3588
3589 * Configuration of unit files may now be extended via drop-in
3590 files without having to edit/override the unit files
3591 themselves. More specifically, if the administrator wants to
3592 change one value for a service file foobar.service he can
3593 now do so by dropping in a configuration snippet into
3594 /etc/systemd/system/foobar.service.d/*.conf. The unit logic
3595 will load all these snippets and apply them on top of the
3596 main unit configuration file, possibly extending or
3597 overriding its settings. Using these drop-in snippets is
3598 generally nicer than the two earlier options for changing
3599 unit files locally: copying the files from
3600 /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
3601 them there; or creating a new file in /etc/systemd/system/
3602 that incorporates the original one via ".include". Drop-in
3603 snippets into these .d/ directories can be placed in any
3604 directory systemd looks for units in, and the usual
3605 overriding semantics between /usr/lib, /etc and /run apply
3606 for them too.
3607
3608 * Most unit file settings which take lists of items can now be
3609 reset by assigning the empty string to them. For example,
3610 normally, settings such as Environment=FOO=BAR append a new
3611 environment variable assignment to the environment block,
3612 each time they are used. By assigning Environment= the empty
3613 string the environment block can be reset to empty. This is
3614 particularly useful with the .d/*.conf drop-in snippets
3615 mentioned above, since this adds the ability to reset list
3616 settings from vendor unit files via these drop-ins.
3617
3618 * systemctl gained a new "list-dependencies" command for
3619 listing the dependencies of a unit recursively.
3620
3621 * Inhibitors are now honored and listed by "systemctl
3622 suspend", "systemctl poweroff" (and similar) too, not only
3623 GNOME. These commands will also list active sessions by
3624 other users.
3625
3626 * Resource limits (as exposed by the various control group
3627 controllers) can now be controlled dynamically at runtime
3628 for all units. More specifically, you can now use a command
3629 like "systemctl set-cgroup-attr foobar.service cpu.shares
3630 2000" to alter the CPU shares a specific service gets. These
3631 settings are stored persistently on disk, and thus allow the
3632 administrator to easily adjust the resource usage of
3633 services with a few simple commands. This dynamic resource
3634 management logic is also available to other programs via the
3635 bus. Almost any kernel cgroup attribute and controller is
3636 supported.
3637
3638 * systemd-vconsole-setup will now copy all font settings to
3639 all allocated VTs, where it previously applied them only to
3640 the foreground VT.
3641
3642 * libsystemd-login gained the new sd_session_get_tty() API
3643 call.
3644
3645 * This release drops support for a few legacy or
3646 distribution-specific LSB facility names when parsing init
3647 scripts: $x-display-manager, $mail-transfer-agent,
3648 $mail-transport-agent, $mail-transfer-agent, $smtp,
3649 $null. Also, the mail-transfer-agent.target unit backing
3650 this has been removed. Distributions which want to retain
3651 compatibility with this should carry the burden for
3652 supporting this themselves and patch support for these back
3653 in, if they really need to. Also, the facilities $syslog and
3654 $local_fs are now ignored, since systemd does not support
3655 early-boot LSB init scripts anymore, and these facilities
3656 are implied anyway for normal services. syslog.target has
3657 also been removed.
3658
3659 * There are new bus calls on PID1's Manager object for
3660 cancelling jobs, and removing snapshot units. Previously,
3661 both calls were only available on the Job and Snapshot
3662 objects themselves.
3663
3664 * systemd-journal-gatewayd gained SSL support.
3665
3666 * The various "environment" files, such as /etc/locale.conf
3667 now support continuation lines with a backslash ("\") as
3668 last character in the line, similarly in style (but different)
3669 to how this is supported in shells.
3670
3671 * For normal user processes the _SYSTEMD_USER_UNIT= field is
3672 now implicitly appended to every log entry logged. systemctl
3673 has been updated to filter by this field when operating on a
3674 user systemd instance.
3675
3676 * nspawn will now implicitly add the CAP_AUDIT_WRITE and
3677 CAP_AUDIT_CONTROL capabilities to the capabilities set for
3678 the container. This makes it easier to boot unmodified
3679 Fedora systems in a container, which however still requires
3680 audit=0 to be passed on the kernel command line. Auditing in
3681 kernel and userspace is unfortunately still too broken in
3682 context of containers, hence we recommend compiling it out
3683 of the kernel or using audit=0. Hopefully this will be fixed
3684 one day for good in the kernel.
3685
3686 * nspawn gained the new --bind= and --bind-ro= parameters to
3687 bind mount specific directories from the host into the
3688 container.
3689
3690 * nspawn will now mount its own devpts file system instance
3691 into the container, in order not to leak pty devices from
3692 the host into the container.
3693
3694 * systemd will now read the firmware boot time performance
3695 information from the EFI variables, if the used boot loader
3696 supports this, and takes it into account for boot performance
3697 analysis via "systemd-analyze". This is currently supported
3698 only in conjunction with Gummiboot, but could be supported
3699 by other boot loaders too. For details see:
3700
3701 http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
3702
3703 * A new generator has been added that automatically mounts the
3704 EFI System Partition (ESP) to /boot, if that directory
3705 exists, is empty, and no other file system has been
3706 configured to be mounted there.
3707
3708 * logind will now send out PrepareForSleep(false) out
3709 unconditionally, after coming back from suspend. This may be
3710 used by applications as asynchronous notification for
3711 system resume events.
3712
3713 * "systemctl unlock-sessions" has been added, that allows
3714 unlocking the screens of all user sessions at once, similar
3715 to how "systemctl lock-sessions" already locked all users
3716 sessions. This is backed by a new D-Bus call UnlockSessions().
3717
3718 * "loginctl seat-status" will now show the master device of a
3719 seat. (i.e. the device of a seat that needs to be around for
3720 the seat to be considered available, usually the graphics
3721 card).
3722
3723 * tmpfiles gained a new "X" line type, that allows
3724 configuration of files and directories (with wildcards) that
3725 shall be excluded from automatic cleanup ("aging").
3726
3727 * udev default rules set the device node permissions now only
3728 at "add" events, and do not change them any longer with a
3729 later "change" event.
3730
3731 * The log messages for lid events and power/sleep keypresses
3732 now carry a message ID.
3733
3734 * We now have a substantially larger unit test suite, but this
3735 continues to be work in progress.
3736
3737 * udevadm hwdb gained a new --root= parameter to change the
3738 root directory to operate relative to.
3739
3740 * logind will now issue a background sync() request to the kernel
3741 early at shutdown, so that dirty buffers are flushed to disk early
3742 instead of at the last moment, in order to optimize shutdown
3743 times a little.
3744
3745 * A new bootctl tool has been added that is an interface for
3746 certain boot loader operations. This is currently a preview
3747 and is likely to be extended into a small mechanism daemon
3748 like timedated, localed, hostnamed, and can be used by
3749 graphical UIs to enumerate available boot options, and
3750 request boot into firmware operations.
3751
3752 * systemd-bootchart has been relicensed to LGPLv2.1+ to match
3753 the rest of the package. It also has been updated to work
3754 correctly in initrds.
3755
3756 * Policykit previously has been runtime optional, and is now
3757 also compile time optional via a configure switch.
3758
3759 * systemd-analyze has been reimplemented in C. Also "systemctl
3760 dot" has moved into systemd-analyze.
3761
3762 * "systemctl status" with no further parameters will now print
3763 the status of all active or failed units.
3764
3765 * Operations such as "systemctl start" can now be executed
3766 with a new mode "--irreversible" which may be used to queue
3767 operations that cannot accidentally be reversed by a later
3768 job queuing. This is by default used to make shutdown
3769 requests more robust.
3770
3771 * The Python API of systemd now gained a new module for
3772 reading journal files.
3773
3774 * A new tool kernel-install has been added that can install
3775 kernel images according to the Boot Loader Specification:
3776
3777 http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
3778
3779 * Boot time console output has been improved to provide
3780 animated boot time output for hanging jobs.
3781
3782 * A new tool systemd-activate has been added which can be used
3783 to test socket activation with, directly from the command
3784 line. This should make it much easier to test and debug
3785 socket activation in daemons.
3786
3787 * journalctl gained a new "--reverse" (or -r) option to show
3788 journal output in reverse order (i.e. newest line first).
3789
3790 * journalctl gained a new "--pager-end" (or -e) option to jump
3791 to immediately jump to the end of the journal in the
3792 pager. This is only supported in conjunction with "less".
3793
3794 * journalctl gained a new "--user-unit=" option, that works
3795 similarly to "--unit=" but filters for user units rather than
3796 system units.
3797
3798 * A number of unit files to ease adoption of systemd in
3799 initrds has been added. This moves some minimal logic from
3800 the various initrd implementations into systemd proper.
3801
3802 * The journal files are now owned by a new group
3803 "systemd-journal", which exists specifically to allow access
3804 to the journal, and nothing else. Previously, we used the
3805 "adm" group for that, which however possibly covers more
3806 than just journal/log file access. This new group is now
3807 already used by systemd-journal-gatewayd to ensure this
3808 daemon gets access to the journal files and as little else
3809 as possible. Note that "make install" will also set FS ACLs
3810 up for /var/log/journal to give "adm" and "wheel" read
3811 access to it, in addition to "systemd-journal" which owns
3812 the journal files. We recommend that packaging scripts also
3813 add read access to "adm" + "wheel" to /var/log/journal, and
3814 all existing/future journal files. To normal users and
3815 administrators little changes, however packagers need to
3816 ensure to create the "systemd-journal" system group at
3817 package installation time.
3818
3819 * The systemd-journal-gatewayd now runs as unprivileged user
3820 systemd-journal-gateway:systemd-journal-gateway. Packaging
3821 scripts need to create these system user/group at
3822 installation time.
3823
3824 * timedated now exposes a new boolean property CanNTP that
3825 indicates whether a local NTP service is available or not.
3826
3827 * systemd-detect-virt will now also detect xen PVs
3828
3829 * The pstore file system is now mounted by default, if it is
3830 available.
3831
3832 * In addition to the SELinux and IMA policies we will now also
3833 load SMACK policies at early boot.
3834
3835 Contributions from: Adel Gadllah, Aleksander Morgado, Auke
3836 Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
3837 Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
3838 Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
3839 Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
3840 Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
3841 Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
3842 Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
3843 Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
3844 Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
3845 Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
3846 Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
3847 Gundersen, Umut Tezduyar, William Giokas, Zbigniew
3848 Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
3849
3850 CHANGES WITH 197:
3851
3852 * Timer units now support calendar time events in addition to
3853 monotonic time events. That means you can now trigger a unit
3854 based on a calendar time specification such as "Thu,Fri
3855 2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
3856 or fifth day of any month of the year 2013, given that it is
3857 a thursday or friday. This brings timer event support
3858 considerably closer to cron's capabilities. For details on
3859 the supported calendar time specification language see
3860 systemd.time(7).
3861
3862 * udev now supports a number of different naming policies for
3863 network interfaces for predictable names, and a combination
3864 of these policies is now the default. Please see this wiki
3865 document for details:
3866
3867 http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
3868
3869 * Auke Kok's bootchart implementation has been added to the
3870 systemd tree. It is an optional component that can graph the
3871 boot in quite some detail. It is one of the best bootchart
3872 implementations around and minimal in its code and
3873 dependencies.
3874
3875 * nss-myhostname has been integrated into the systemd source
3876 tree. nss-myhostname guarantees that the local hostname
3877 always stays resolvable via NSS. It has been a weak
3878 requirement of systemd-hostnamed since a long time, and
3879 since its code is actually trivial we decided to just
3880 include it in systemd's source tree. It can be turned off
3881 with a configure switch.
3882
3883 * The read-ahead logic is now capable of properly detecting
3884 whether a btrfs file system is on SSD or rotating media, in
3885 order to optimize the read-ahead scheme. Previously, it was
3886 only capable of detecting this on traditional file systems
3887 such as ext4.
3888
3889 * In udev, additional device properties are now read from the
3890 IAB in addition to the OUI database. Also, Bluetooth company
3891 identities are attached to the devices as well.
3892
3893 * In service files %U may be used as specifier that is
3894 replaced by the configured user name of the service.
3895
3896 * nspawn may now be invoked without a controlling TTY. This
3897 makes it suitable for invocation as its own service. This
3898 may be used to set up a simple containerized server system
3899 using only core OS tools.
3900
3901 * systemd and nspawn can now accept socket file descriptors
3902 when they are started for socket activation. This enables
3903 implementation of socket activated nspawn
3904 containers. i.e. think about autospawning an entire OS image
3905 when the first SSH or HTTP connection is received. We expect
3906 that similar functionality will also be added to libvirt-lxc
3907 eventually.
3908
3909 * journalctl will now suppress ANSI color codes when
3910 presenting log data.
3911
3912 * systemctl will no longer show control group information for
3913 a unit if a the control group is empty anyway.
3914
3915 * logind can now automatically suspend/hibernate/shutdown the
3916 system on idle.
3917
3918 * /etc/machine-info and hostnamed now also expose the chassis
3919 type of the system. This can be used to determine whether
3920 the local system is a laptop, desktop, handset or
3921 tablet. This information may either be configured by the
3922 user/vendor or is automatically determined from ACPI and DMI
3923 information if possible.
3924
3925 * A number of PolicyKit actions are now bound together with
3926 "imply" rules. This should simplify creating UIs because
3927 many actions will now authenticate similar ones as well.
3928
3929 * Unit files learnt a new condition ConditionACPower= which
3930 may be used to conditionalize a unit depending on whether an
3931 AC power source is connected or not, of whether the system
3932 is running on battery power.
3933
3934 * systemctl gained a new "is-failed" verb that may be used in
3935 shell scripts and suchlike to check whether a specific unit
3936 is in the "failed" state.
3937
3938 * The EnvironmentFile= setting in unit files now supports file
3939 globbing, and can hence be used to easily read a number of
3940 environment files at once.
3941
3942 * systemd will no longer detect and recognize specific
3943 distributions. All distribution-specific #ifdeffery has been
3944 removed, systemd is now fully generic and
3945 distribution-agnostic. Effectively, not too much is lost as
3946 a lot of the code is still accessible via explicit configure
3947 switches. However, support for some distribution specific
3948 legacy configuration file formats has been dropped. We
3949 recommend distributions to simply adopt the configuration
3950 files everybody else uses now and convert the old
3951 configuration from packaging scripts. Most distributions
3952 already did that. If that's not possible or desirable,
3953 distributions are welcome to forward port the specific
3954 pieces of code locally from the git history.
3955
3956 * When logging a message about a unit systemd will now always
3957 log the unit name in the message meta data.
3958
3959 * localectl will now also discover system locale data that is
3960 not stored in locale archives, but directly unpacked.
3961
3962 * logind will no longer unconditionally use framebuffer
3963 devices as seat masters, i.e. as devices that are required
3964 to be existing before a seat is considered preset. Instead,
3965 it will now look for all devices that are tagged as
3966 "seat-master" in udev. By default framebuffer devices will
3967 be marked as such, but depending on local systems other
3968 devices might be marked as well. This may be used to
3969 integrate graphics cards using closed source drivers (such
3970 as NVidia ones) more nicely into logind. Note however, that
3971 we recommend using the open source NVidia drivers instead,
3972 and no udev rules for the closed-source drivers will be
3973 shipped from us upstream.
3974
3975 Contributions from: Adam Williamson, Alessandro Crismani, Auke
3976 Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
3977 Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
3978 Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
3979 Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
3980 Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
3981 Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
3982 Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
3983 Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
3984 Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
3985 Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
3986 Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
3987 Jędrzejewski-Szmek
3988
3989 CHANGES WITH 196:
3990
3991 * udev gained support for loading additional device properties
3992 from an indexed database that is keyed by vendor/product IDs
3993 and similar device identifiers. For the beginning this
3994 "hwdb" is populated with data from the well-known PCI and
3995 USB database, but also includes PNP, ACPI and OID data. In
3996 the longer run this indexed database shall grow into
3997 becoming the one central database for non-essential
3998 userspace device metadata. Previously, data from the PCI/USB
3999 database was only attached to select devices, since the
4000 lookup was a relatively expensive operation due to O(n) time
4001 complexity (with n being the number of entries in the
4002 database). Since this is now O(1), we decided to add in this
4003 data for all devices where this is available, by
4004 default. Note that the indexed database needs to be rebuilt
4005 when new data files are installed. To achieve this you need
4006 to update your packaging scripts to invoke "udevadm hwdb
4007 --update" after installation of hwdb data files. For
4008 RPM-based distributions we introduced the new
4009 %udev_hwdb_update macro for this purpose.
4010
4011 * The Journal gained support for the "Message Catalog", an
4012 indexed database to link up additional information with
4013 journal entries. For further details please check:
4014
4015 http://www.freedesktop.org/wiki/Software/systemd/catalog
4016
4017 The indexed message catalog database also needs to be
4018 rebuilt after installation of message catalog files. Use
4019 "journalctl --update-catalog" for this. For RPM-based
4020 distributions we introduced the %journal_catalog_update
4021 macro for this purpose.
4022
4023 * The Python Journal bindings gained support for the standard
4024 Python logging framework.
4025
4026 * The Journal API gained new functions for checking whether
4027 the underlying file system of a journal file is capable of
4028 properly reporting file change notifications, or whether
4029 applications that want to reflect journal changes "live"
4030 need to recheck journal files continuously in appropriate
4031 time intervals.
4032
4033 * It is now possible to set the "age" field for tmpfiles
4034 entries to 0, indicating that files matching this entry
4035 shall always be removed when the directories are cleaned up.
4036
4037 * coredumpctl gained a new "gdb" verb which invokes gdb
4038 right-away on the selected coredump.
4039
4040 * There's now support for "hybrid sleep" on kernels that
4041 support this, in addition to "suspend" and "hibernate". Use
4042 "systemctl hybrid-sleep" to make use of this.
4043
4044 * logind's HandleSuspendKey= setting (and related settings)
4045 now gained support for a new "lock" setting to simply
4046 request the screen lock on all local sessions, instead of
4047 actually executing a suspend or hibernation.
4048
4049 * systemd will now mount the EFI variables file system by
4050 default.
4051
4052 * Socket units now gained support for configuration of the
4053 SMACK security label.
4054
4055 * timedatectl will now output the time of the last and next
4056 daylight saving change.
4057
4058 * We dropped support for various legacy and distro-specific
4059 concepts, such as insserv, early-boot SysV services
4060 (i.e. those for non-standard runlevels such as 'b' or 'S')
4061 or ArchLinux /etc/rc.conf support. We recommend the
4062 distributions who still need support this to either continue
4063 to maintain the necessary patches downstream, or find a
4064 different solution. (Talk to us if you have questions!)
4065
4066 * Various systemd components will now bypass PolicyKit checks
4067 for root and otherwise handle properly if PolicyKit is not
4068 found to be around. This should fix most issues for
4069 PolicyKit-less systems. Quite frankly this should have been
4070 this way since day one. It is absolutely our intention to
4071 make systemd work fine on PolicyKit-less systems, and we
4072 consider it a bug if something does not work as it should if
4073 PolicyKit is not around.
4074
4075 * For embedded systems it is now possible to build udev and
4076 systemd without blkid and/or kmod support.
4077
4078 * "systemctl switch-root" is now capable of switching root
4079 more than once. I.e. in addition to transitions from the
4080 initrd to the host OS it is now possible to transition to
4081 further OS images from the host. This is useful to implement
4082 offline updating tools.
4083
4084 * Various other additions have been made to the RPM macros
4085 shipped with systemd. Use %udev_rules_update() after
4086 installing new udev rules files. %_udevhwdbdir,
4087 %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
4088 %_sysctldir are now available which resolve to the right
4089 directories for packages to place various data files in.
4090
4091 * journalctl gained the new --full switch (in addition to
4092 --all, to disable ellipsation for long messages.
4093
4094 Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
4095 Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
4096 Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
4097 Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
4098 Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
4099 Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
4100 Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
4101 Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
4102 Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
4103
4104 CHANGES WITH 195:
4105
4106 * journalctl gained new --since= and --until= switches to
4107 filter by time. It also now supports nice filtering for
4108 units via --unit=/-u.
4109
4110 * Type=oneshot services may use ExecReload= and do the
4111 right thing.
4112
4113 * The journal daemon now supports time-based rotation and
4114 vacuuming, in addition to the usual disk-space based
4115 rotation.
4116
4117 * The journal will now index the available field values for
4118 each field name. This enables clients to show pretty drop
4119 downs of available match values when filtering. The bash
4120 completion of journalctl has been updated
4121 accordingly. journalctl gained a new switch -F to list all
4122 values a certain field takes in the journal database.
4123
4124 * More service events are now written as structured messages
4125 to the journal, and made recognizable via message IDs.
4126
4127 * The timedated, localed and hostnamed mini-services which
4128 previously only provided support for changing time, locale
4129 and hostname settings from graphical DEs such as GNOME now
4130 also have a minimal (but very useful) text-based client
4131 utility each. This is probably the nicest way to changing
4132 these settings from the command line now, especially since
4133 it lists available options and is fully integrated with bash
4134 completion.
4135
4136 * There's now a new tool "systemd-coredumpctl" to list and
4137 extract coredumps from the journal.
4138
4139 * We now install a README each in /var/log/ and
4140 /etc/rc.d/init.d explaining where the system logs and init
4141 scripts went. This hopefully should help folks who go to
4142 that dirs and look into the otherwise now empty void and
4143 scratch their heads.
4144
4145 * When user-services are invoked (by systemd --user) the
4146 $MANAGERPID env var is set to the PID of systemd.
4147
4148 * SIGRTMIN+24 when sent to a --user instance will now result
4149 in immediate termination of systemd.
4150
4151 * gatewayd received numerous feature additions such as a
4152 "follow" mode, for live syncing and filtering.
4153
4154 * browse.html now allows filtering and showing detailed
4155 information on specific entries. Keyboard navigation and
4156 mouse screen support has been added.
4157
4158 * gatewayd/journalctl now supports HTML5/JSON
4159 Server-Sent-Events as output.
4160
4161 * The SysV init script compatibility logic will now
4162 heuristically determine whether a script supports the
4163 "reload" verb, and only then make this available as
4164 "systemctl reload".
4165
4166 * "systemctl status --follow" has been removed, use "journalctl
4167 -u" instead.
4168
4169 * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
4170 have been removed since they are hardly useful to be
4171 configured.
4172
4173 * And I'd like to take the opportunity to specifically mention
4174 Zbigniew for his great contributions. Zbigniew, you rock!
4175
4176 Contributions from: Andrew Eikum, Christian Hesse, Colin
4177 Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
4178 Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
4179 Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
4180 Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
4181 Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
4182 Jędrzejewski-Szmek, Сковорода Никита Андреевич
4183
4184 CHANGES WITH 194:
4185
4186 * If /etc/vconsole.conf is non-existent or empty we will no
4187 longer load any console font or key map at boot by
4188 default. Instead the kernel defaults will be left
4189 intact. This is definitely the right thing to do, as no
4190 configuration should mean no configuration, and hard-coding
4191 font names that are different on all archs is probably a bad
4192 idea. Also, the kernel default key map and font should be
4193 good enough for most cases anyway, and mostly identical to
4194 the userspace fonts/key maps we previously overloaded them
4195 with. If distributions want to continue to default to a
4196 non-kernel font or key map they should ship a default
4197 /etc/vconsole.conf with the appropriate contents.
4198
4199 Contributions from: Colin Walters, Daniel J Walsh, Dave
4200 Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
4201 Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
4202
4203 CHANGES WITH 193:
4204
4205 * journalctl gained a new --cursor= switch to show entries
4206 starting from the specified location in the journal.
4207
4208 * We now enforce a size limit on journal entry fields exported
4209 with "-o json" in journalctl. Fields larger than 4K will be
4210 assigned null. This can be turned off with --all.
4211
4212 * An (optional) journal gateway daemon is now available as
4213 "systemd-journal-gatewayd.service". This service provides
4214 access to the journal via HTTP and JSON. This functionality
4215 will be used to implement live log synchronization in both
4216 pull and push modes, but has various other users too, such
4217 as easy log access for debugging of embedded devices. Right
4218 now it is already useful to retrieve the journal via HTTP:
4219
4220 # systemctl start systemd-journal-gatewayd.service
4221 # wget http://localhost:19531/entries
4222
4223 This will download the journal contents in a
4224 /var/log/messages compatible format. The same as JSON:
4225
4226 # curl -H"Accept: application/json" http://localhost:19531/entries
4227
4228 This service is also accessible via a web browser where a
4229 single static HTML5 app is served that uses the JSON logic
4230 to enable the user to do some basic browsing of the
4231 journal. This will be extended later on. Here's an example
4232 screenshot of this app in its current state:
4233
4234 http://0pointer.de/public/journal-gatewayd
4235
4236 Contributions from: Kay Sievers, Lennart Poettering, Robert
4237 Milasan, Tom Gundersen
4238
4239 CHANGES WITH 192:
4240
4241 * The bash completion logic is now available for journalctl
4242 too.
4243
4244 * We do not mount the "cpuset" controller anymore together with
4245 "cpu" and "cpuacct", as "cpuset" groups generally cannot be
4246 started if no parameters are assigned to it. "cpuset" hence
4247 broke code that assumed it it could create "cpu" groups and
4248 just start them.
4249
4250 * journalctl -f will now subscribe to terminal size changes,
4251 and line break accordingly.
4252
4253 Contributions from: Dave Reisner, Kay Sievers, Lennart
4254 Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
4255
4256 CHANGES WITH 191:
4257
4258 * nspawn will now create a symlink /etc/localtime in the
4259 container environment, copying the host's timezone
4260 setting. Previously this has been done via a bind mount, but
4261 since symlinks cannot be bind mounted this has now been
4262 changed to create/update the appropriate symlink.
4263
4264 * journalctl -n's line number argument is now optional, and
4265 will default to 10 if omitted.
4266
4267 * journald will now log the maximum size the journal files may
4268 take up on disk. This is particularly useful if the default
4269 built-in logic of determining this parameter from the file
4270 system size is used. Use "systemctl status
4271 systemd-journald.service" to see this information.
4272
4273 * The multi-seat X wrapper tool has been stripped down. As X
4274 is now capable of enumerating graphics devices via udev in a
4275 seat-aware way the wrapper is not strictly necessary
4276 anymore. A stripped down temporary stop-gap is still shipped
4277 until the upstream display managers have been updated to
4278 fully support the new X logic. Expect this wrapper to be
4279 removed entirely in one of the next releases.
4280
4281 * HandleSleepKey= in logind.conf has been split up into
4282 HandleSuspendKey= and HandleHibernateKey=. The old setting
4283 is not available anymore. X11 and the kernel are
4284 distinguishing between these keys and we should too. This
4285 also means the inhibition lock for these keys has been split
4286 into two.
4287
4288 Contributions from: Dave Airlie, Eelco Dolstra, Lennart
4289 Poettering, Lukas Nykryn, Václav Pavlín
4290
4291 CHANGES WITH 190:
4292
4293 * Whenever a unit changes state we will now log this to the
4294 journal and show along the unit's own log output in
4295 "systemctl status".
4296
4297 * ConditionPathIsMountPoint= can now properly detect bind
4298 mount points too. (Previously, a bind mount of one file
4299 system to another place in the same file system could not be
4300 detected as mount, since they shared struct stat's st_dev
4301 field.)
4302
4303 * We will now mount the cgroup controllers cpu, cpuacct,
4304 cpuset and the controllers net_cls, net_prio together by
4305 default.
4306
4307 * nspawn containers will now have a virtualized boot
4308 ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
4309 over with a randomized ID at container initialization). This
4310 has the effect of making "journalctl -b" do the right thing
4311 in a container.
4312
4313 * The JSON output journal serialization has been updated not
4314 to generate "endless" list objects anymore, but rather one
4315 JSON object per line. This is more in line how most JSON
4316 parsers expect JSON objects. The new output mode
4317 "json-pretty" has been added to provide similar output, but
4318 neatly aligned for readability by humans.
4319
4320 * We dropped all explicit sync() invocations in the shutdown
4321 code. The kernel does this implicitly anyway in the kernel
4322 reboot() syscall. halt(8)'s -n option is now a compatibility
4323 no-op.
4324
4325 * We now support virtualized reboot() in containers, as
4326 supported by newer kernels. We will fall back to exit() if
4327 CAP_SYS_REBOOT is not available to the container. Also,
4328 nspawn makes use of this now and will actually reboot the
4329 container if the containerized OS asks for that.
4330
4331 * journalctl will only show local log output by default
4332 now. Use --merge (-m) to show remote log output, too.
4333
4334 * libsystemd-journal gained the new sd_journal_get_usage()
4335 call to determine the current disk usage of all journal
4336 files. This is exposed in the new "journalctl --disk-usage"
4337 command.
4338
4339 * journald gained a new configuration setting SplitMode= in
4340 journald.conf which may be used to control how user journals
4341 are split off. See journald.conf(5) for details.
4342
4343 * A new condition type ConditionFileNotEmpty= has been added.
4344
4345 * tmpfiles' "w" lines now support file globbing, to write
4346 multiple files at once.
4347
4348 * We added Python bindings for the journal submission
4349 APIs. More Python APIs for a number of selected APIs will
4350 likely follow. Note that we intend to add native bindings
4351 only for the Python language, as we consider it common
4352 enough to deserve bindings shipped within systemd. There are
4353 various projects outside of systemd that provide bindings
4354 for languages such as PHP or Lua.
4355
4356 * Many conditions will now resolve specifiers such as %i. In
4357 addition, PathChanged= and related directives of .path units
4358 now support specifiers as well.
4359
4360 * There's now a new RPM macro definition for the system preset
4361 dir: %_presetdir.
4362
4363 * journald will now warn if it ca not forward a message to the
4364 syslog daemon because its socket is full.
4365
4366 * timedated will no longer write or process /etc/timezone,
4367 except on Debian. As we do not support late mounted /usr
4368 anymore /etc/localtime always being a symlink is now safe,
4369 and hence the information in /etc/timezone is not necessary
4370 anymore.
4371
4372 * logind will now always reserve one VT for a text getty (VT6
4373 by default). Previously if more than 6 X sessions where
4374 started they took up all the VTs with auto-spawned gettys,
4375 so that no text gettys were available anymore.
4376
4377 * udev will now automatically inform the btrfs kernel logic
4378 about btrfs RAID components showing up. This should make
4379 simple hotplug based btrfs RAID assembly work.
4380
4381 * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
4382 (but not for its children which will stay at the kernel
4383 default). This should allow setups with a lot more listening
4384 sockets.
4385
4386 * systemd will now always pass the configured timezone to the
4387 kernel at boot. timedated will do the same when the timezone
4388 is changed.
4389
4390 * logind's inhibition logic has been updated. By default,
4391 logind will now handle the lid switch, the power and sleep
4392 keys all the time, even in graphical sessions. If DEs want
4393 to handle these events on their own they should take the new
4394 handle-power-key, handle-sleep-key and handle-lid-switch
4395 inhibitors during their runtime. A simple way to achieve
4396 that is to invoke the DE wrapped in an invocation of:
4397
4398 systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
4399
4400 * Access to unit operations is now checked via SELinux taking
4401 the unit file label and client process label into account.
4402
4403 * systemd will now notify the administrator in the journal
4404 when he over-mounts a non-empty directory.
4405
4406 * There are new specifiers that are resolved in unit files,
4407 for the host name (%H), the machine ID (%m) and the boot ID
4408 (%b).
4409
4410 Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
4411 Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
4412 Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
4413 Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
4414 Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
4415 Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
4416 Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
4417
4418 CHANGES WITH 189:
4419
4420 * Support for reading structured kernel messages from
4421 /dev/kmsg has now been added and is enabled by default.
4422
4423 * Support for reading kernel messages from /proc/kmsg has now
4424 been removed. If you want kernel messages in the journal
4425 make sure to run a recent kernel (>= 3.5) that supports
4426 reading structured messages from /dev/kmsg (see
4427 above). /proc/kmsg is now exclusive property of classic
4428 syslog daemons again.
4429
4430 * The libudev API gained the new
4431 udev_device_new_from_device_id() call.
4432
4433 * The logic for file system namespace (ReadOnlyDirectory=,
4434 ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
4435 require pivot_root() anymore. This means fewer temporary
4436 directories are created below /tmp for this feature.
4437
4438 * nspawn containers will now see and receive all submounts
4439 made on the host OS below the root file system of the
4440 container.
4441
4442 * Forward Secure Sealing is now supported for Journal files,
4443 which provide cryptographical sealing of journal files so
4444 that attackers cannot alter log history anymore without this
4445 being detectable. Lennart will soon post a blog story about
4446 this explaining it in more detail.
4447
4448 * There are two new service settings RestartPreventExitStatus=
4449 and SuccessExitStatus= which allow configuration of exit
4450 status (exit code or signal) which will be excepted from the
4451 restart logic, resp. consider successful.
4452
4453 * journalctl gained the new --verify switch that can be used
4454 to check the integrity of the structure of journal files and
4455 (if Forward Secure Sealing is enabled) the contents of
4456 journal files.
4457
4458 * nspawn containers will now be run with /dev/stdin, /dev/fd/
4459 and similar symlinks pre-created. This makes running shells
4460 as container init process a lot more fun.
4461
4462 * The fstab support can now handle PARTUUID= and PARTLABEL=
4463 entries.
4464
4465 * A new ConditionHost= condition has been added to match
4466 against the hostname (with globs) and machine ID. This is
4467 useful for clusters where a single OS image is used to
4468 provision a large number of hosts which shall run slightly
4469 different sets of services.
4470
4471 * Services which hit the restart limit will now be placed in a
4472 failure state.
4473
4474 Contributions from: Bertram Poettering, Dave Reisner, Huang
4475 Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
4476 Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
4477
4478 CHANGES WITH 188:
4479
4480 * When running in --user mode systemd will now become a
4481 subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
4482 tree a lot more organized.
4483
4484 * A new PartOf= unit dependency type has been introduced that
4485 may be used to group services in a natural way.
4486
4487 * "systemctl enable" may now be used to enable instances of
4488 services.
4489
4490 * journalctl now prints error log levels in red, and
4491 warning/notice log levels in bright white. It also supports
4492 filtering by log level now.
4493
4494 * cgtop gained a new -n switch (similar to top), to configure
4495 the maximum number of iterations to run for. It also gained
4496 -b, to run in batch mode (accepting no input).
4497
4498 * The suffix ".service" may now be omitted on most systemctl
4499 command lines involving service unit names.
4500
4501 * There's a new bus call in logind to lock all sessions, as
4502 well as a loginctl verb for it "lock-sessions".
4503
4504 * libsystemd-logind.so gained a new call sd_journal_perror()
4505 that works similar to libc perror() but logs to the journal
4506 and encodes structured information about the error number.
4507
4508 * /etc/crypttab entries now understand the new keyfile-size=
4509 option.
4510
4511 * shutdown(8) now can send a (configurable) wall message when
4512 a shutdown is cancelled.
4513
4514 * The mount propagation mode for the root file system will now
4515 default to "shared", which is useful to make containers work
4516 nicely out-of-the-box so that they receive new mounts from
4517 the host. This can be undone locally by running "mount
4518 --make-rprivate /" if needed.
4519
4520 * The prefdm.service file has been removed. Distributions
4521 should maintain this unit downstream if they intend to keep
4522 it around. However, we recommend writing normal unit files
4523 for display managers instead.
4524
4525 * Since systemd is a crucial part of the OS we will now
4526 default to a number of compiler switches that improve
4527 security (hardening) such as read-only relocations, stack
4528 protection, and suchlike.
4529
4530 * The TimeoutSec= setting for services is now split into
4531 TimeoutStartSec= and TimeoutStopSec= to allow configuration
4532 of individual time outs for the start and the stop phase of
4533 the service.
4534
4535 Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
4536 Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
4537 Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
4538 Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
4539 Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
4540 Gundersen, Zbigniew Jędrzejewski-Szmek
4541
4542 CHANGES WITH 187:
4543
4544 * The journal and id128 C APIs are now fully documented as man
4545 pages.
4546
4547 * Extra safety checks have been added when transitioning from
4548 the initial RAM disk to the main system to avoid accidental
4549 data loss.
4550
4551 * /etc/crypttab entries now understand the new keyfile-offset=
4552 option.
4553
4554 * systemctl -t can now be used to filter by unit load state.
4555
4556 * The journal C API gained the new sd_journal_wait() call to
4557 make writing synchronous journal clients easier.
4558
4559 * journalctl gained the new -D switch to show journals from a
4560 specific directory.
4561
4562 * journalctl now displays a special marker between log
4563 messages of two different boots.
4564
4565 * The journal is now explicitly flushed to /var via a service
4566 systemd-journal-flush.service, rather than implicitly simply
4567 by seeing /var/log/journal to be writable.
4568
4569 * journalctl (and the journal C APIs) can now match for much
4570 more complex expressions, with alternatives and
4571 disjunctions.
4572
4573 * When transitioning from the initial RAM disk to the main
4574 system we will now kill all processes in a killing spree to
4575 ensure no processes stay around by accident.
4576
4577 * Three new specifiers may be used in unit files: %u, %h, %s
4578 resolve to the user name, user home directory resp. user
4579 shell. This is useful for running systemd user instances.
4580
4581 * We now automatically rotate journal files if their data
4582 object hash table gets a fill level > 75%. We also size the
4583 hash table based on the configured maximum file size. This
4584 together should lower hash collisions drastically and thus
4585 speed things up a bit.
4586
4587 * journalctl gained the new "--header" switch to introspect
4588 header data of journal files.
4589
4590 * A new setting SystemCallFilters= has been added to services
4591 which may be used to apply blacklists or whitelists to
4592 system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
4593
4594 * nspawn gained a new --link-journal= switch (and quicker: -j)
4595 to link the container journal with the host. This makes it
4596 very easy to centralize log viewing on the host for all
4597 guests while still keeping the journal files separated.
4598
4599 * Many bugfixes and optimizations
4600
4601 Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
4602 Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
4603 Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
4604 Jędrzejewski-Szmek
4605
4606 CHANGES WITH 186:
4607
4608 * Several tools now understand kernel command line arguments,
4609 which are only read when run in an initial RAM disk. They
4610 usually follow closely their normal counterparts, but are
4611 prefixed with rd.
4612
4613 * There's a new tool to analyze the readahead files that are
4614 automatically generated at boot. Use:
4615
4616 /usr/lib/systemd/systemd-readahead analyze /.readahead
4617
4618 * We now provide an early debug shell on tty9 if this enabled. Use:
4619
4620 systemctl enable debug-shell.service
4621
4622 * All plymouth related units have been moved into the Plymouth
4623 package. Please make sure to upgrade your Plymouth version
4624 as well.
4625
4626 * systemd-tmpfiles now supports getting passed the basename of
4627 a configuration file only, in which case it will look for it
4628 in all appropriate directories automatically.
4629
4630 * udevadm info now takes a /dev or /sys path as argument, and
4631 does the right thing. Example:
4632
4633 udevadm info /dev/sda
4634 udevadm info /sys/class/block/sda
4635
4636 * systemctl now prints a warning if a unit is stopped but a
4637 unit that might trigger it continues to run. Example: a
4638 service is stopped but the socket that activates it is left
4639 running.
4640
4641 * "systemctl status" will now mention if the log output was
4642 shortened due to rotation since a service has been started.
4643
4644 * The journal API now exposes functions to determine the
4645 "cutoff" times due to rotation.
4646
4647 * journald now understands SIGUSR1 and SIGUSR2 for triggering
4648 immediately flushing of runtime logs to /var if possible,
4649 resp. for triggering immediate rotation of the journal
4650 files.
4651
4652 * It is now considered an error if a service is attempted to
4653 be stopped that is not loaded.
4654
4655 * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
4656
4657 * systemd-analyze now supports Python 3
4658
4659 * tmpfiles now supports cleaning up directories via aging
4660 where the first level dirs are always kept around but
4661 directories beneath it automatically aged. This is enabled
4662 by prefixing the age field with '~'.
4663
4664 * Seat objects now expose CanGraphical, CanTTY properties
4665 which is required to deal with very fast bootups where the
4666 display manager might be running before the graphics drivers
4667 completed initialization.
4668
4669 * Seat objects now expose a State property.
4670
4671 * We now include RPM macros for service enabling/disabling
4672 based on the preset logic. We recommend RPM based
4673 distributions to make use of these macros if possible. This
4674 makes it simpler to reuse RPM spec files across
4675 distributions.
4676
4677 * We now make sure that the collected systemd unit name is
4678 always valid when services log to the journal via
4679 STDOUT/STDERR.
4680
4681 * There's a new man page kernel-command-line(7) detailing all
4682 command line options we understand.
4683
4684 * The fstab generator may now be disabled at boot by passing
4685 fstab=0 on the kernel command line.
4686
4687 * A new kernel command line option modules-load= is now understood
4688 to load a specific kernel module statically, early at boot.
4689
4690 * Unit names specified on the systemctl command line are now
4691 automatically escaped as needed. Also, if file system or
4692 device paths are specified they are automatically turned
4693 into the appropriate mount or device unit names. Example:
4694
4695 systemctl status /home
4696 systemctl status /dev/sda
4697
4698 * The SysVConsole= configuration option has been removed from
4699 system.conf parsing.
4700
4701 * The SysV search path is no longer exported on the D-Bus
4702 Manager object.
4703
4704 * The Names= option is been removed from unit file parsing.
4705
4706 * There's a new man page bootup(7) detailing the boot process.
4707
4708 * Every unit and every generator we ship with systemd now
4709 comes with full documentation. The self-explanatory boot is
4710 complete.
4711
4712 * A couple of services gained "systemd-" prefixes in their
4713 name if they wrap systemd code, rather than only external
4714 code. Among them fsck@.service which is now
4715 systemd-fsck@.service.
4716
4717 * The HaveWatchdog property has been removed from the D-Bus
4718 Manager object.
4719
4720 * systemd.confirm_spawn= on the kernel command line should now
4721 work sensibly.
4722
4723 * There's a new man page crypttab(5) which details all options
4724 we actually understand.
4725
4726 * systemd-nspawn gained a new --capability= switch to pass
4727 additional capabilities to the container.
4728
4729 * timedated will now read known NTP implementation unit names
4730 from /usr/lib/systemd/ntp-units.d/*.list,
4731 systemd-timedated-ntp.target has been removed.
4732
4733 * journalctl gained a new switch "-b" that lists log data of
4734 the current boot only.
4735
4736 * The notify socket is in the abstract namespace again, in
4737 order to support daemons which chroot() at start-up.
4738
4739 * There is a new Storage= configuration option for journald
4740 which allows configuration of where log data should go. This
4741 also provides a way to disable journal logging entirely, so
4742 that data collected is only forwarded to the console, the
4743 kernel log buffer or another syslog implementation.
4744
4745 * Many bugfixes and optimizations
4746
4747 Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
4748 David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
4749 Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
4750 Shawn Landden, Tom Gundersen
4751
4752 CHANGES WITH 185:
4753
4754 * "systemctl help <unit>" now shows the man page if one is
4755 available.
4756
4757 * Several new man pages have been added.
4758
4759 * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
4760 MaxLevelConsole= can now be specified in
4761 journald.conf. These options allow reducing the amount of
4762 data stored on disk or forwarded by the log level.
4763
4764 * TimerSlackNSec= can now be specified in system.conf for
4765 PID1. This allows system-wide power savings.
4766
4767 Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
4768 Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
4769 Matthias Clasen
4770
4771 CHANGES WITH 184:
4772
4773 * logind is now capable of (optionally) handling power and
4774 sleep keys as well as the lid switch.
4775
4776 * journalctl now understands the syntax "journalctl
4777 /usr/bin/avahi-daemon" to get all log output of a specific
4778 daemon.
4779
4780 * CapabilityBoundingSet= in system.conf now also influences
4781 the capability bound set of usermode helpers of the kernel.
4782
4783 Contributions from: Daniel Drake, Daniel J. Walsh, Gert
4784 Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
4785 Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
4786 Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
4787
4788 CHANGES WITH 183:
4789
4790 * Note that we skipped 139 releases here in order to set the
4791 new version to something that is greater than both udev's
4792 and systemd's most recent version number.
4793
4794 * udev: all udev sources are merged into the systemd source tree now.
4795 All future udev development will happen in the systemd tree. It
4796 is still fully supported to use the udev daemon and tools without
4797 systemd running, like in initramfs or other init systems. Building
4798 udev though, will require the *build* of the systemd tree, but
4799 udev can be properly *run* without systemd.
4800
4801 * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
4802 should be used to create dead device nodes as workarounds for broken
4803 subsystems.
4804
4805 * udev: RUN+="socket:..." and udev_monitor_new_from_socket() is
4806 no longer supported. udev_monitor_new_from_netlink() needs to be
4807 used to subscribe to events.
4808
4809 * udev: when udevd is started by systemd, processes which are left
4810 behind by forking them off of udev rules, are unconditionally cleaned
4811 up and killed now after the event handling has finished. Services or
4812 daemons must be started as systemd services. Services can be
4813 pulled-in by udev to get started, but they can no longer be directly
4814 forked by udev rules.
4815
4816 * udev: the daemon binary is called systemd-udevd now and installed
4817 in /usr/lib/systemd/. Standalone builds or non-systemd systems need
4818 to adapt to that, create symlink, or rename the binary after building
4819 it.
4820
4821 * libudev no longer provides these symbols:
4822 udev_monitor_from_socket()
4823 udev_queue_get_failed_list_entry()
4824 udev_get_{dev,sys,run}_path()
4825 The versions number was bumped and symbol versioning introduced.
4826
4827 * systemd-loginctl and systemd-journalctl have been renamed
4828 to loginctl and journalctl to match systemctl.
4829
4830 * The config files: /etc/systemd/systemd-logind.conf and
4831 /etc/systemd/systemd-journald.conf have been renamed to
4832 logind.conf and journald.conf. Package updates should rename
4833 the files to the new names on upgrade.
4834
4835 * For almost all files the license is now LGPL2.1+, changed
4836 from the previous GPL2.0+. Exceptions are some minor stuff
4837 of udev (which will be changed to LGPL2.1 eventually, too),
4838 and the MIT licensed sd-daemon.[ch] library that is suitable
4839 to be used as drop-in files.
4840
4841 * systemd and logind now handle system sleep states, in
4842 particular suspending and hibernating.
4843
4844 * logind now implements a sleep/shutdown/idle inhibiting logic
4845 suitable for a variety of uses. Soonishly Lennart will blog
4846 about this in more detail.
4847
4848 * var-run.mount and var-lock.mount are no longer provided
4849 (which prevously bind mounted these directories to their new
4850 places). Distributions which have not converted these
4851 directories to symlinks should consider stealing these files
4852 from git history and add them downstream.
4853
4854 * We introduced the Documentation= field for units and added
4855 this to all our shipped units. This is useful to make it
4856 easier to explore the boot and the purpose of the various
4857 units.
4858
4859 * All smaller setup units (such as
4860 systemd-vconsole-setup.service) now detect properly if they
4861 are run in a container and are skipped when
4862 appropriate. This guarantees an entirely noise-free boot in
4863 Linux container environments such as systemd-nspawn.
4864
4865 * A framework for implementing offline system updates is now
4866 integrated, for details see:
4867 http://freedesktop.org/wiki/Software/systemd/SystemUpdates
4868
4869 * A new service type Type=idle is available now which helps us
4870 avoiding ugly interleaving of getty output and boot status
4871 messages.
4872
4873 * There's now a system-wide CapabilityBoundingSet= option to
4874 globally reduce the set of capabilities for the
4875 system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
4876 CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
4877 even CAP_NET_ADMIN system-wide for secure systems.
4878
4879 * There are now system-wide DefaultLimitXXX= options to
4880 globally change the defaults of the various resource limits
4881 for all units started by PID 1.
4882
4883 * Harald Hoyer's systemd test suite has been integrated into
4884 systemd which allows easy testing of systemd builds in qemu
4885 and nspawn. (This is really awesome! Ask us for details!)
4886
4887 * The fstab parser is now implemented as generator, not inside
4888 of PID 1 anymore.
4889
4890 * systemctl will now warn you if .mount units generated from
4891 /etc/fstab are out of date due to changes in fstab that
4892 have not been read by systemd yet.
4893
4894 * systemd is now suitable for usage in initrds. Dracut has
4895 already been updated to make use of this. With this in place
4896 initrds get a slight bit faster but primarily are much
4897 easier to introspect and debug since "systemctl status" in
4898 the host system can be used to introspect initrd services,
4899 and the journal from the initrd is kept around too.
4900
4901 * systemd-delta has been added, a tool to explore differences
4902 between user/admin configuration and vendor defaults.
4903
4904 * PrivateTmp= now affects both /tmp and /var/tmp.
4905
4906 * Boot time status messages are now much prettier and feature
4907 proper english language. Booting up systemd has never been
4908 so sexy.
4909
4910 * Read-ahead pack files now include the inode number of all
4911 files to pre-cache. When the inode changes the pre-caching
4912 is not attempted. This should be nicer to deal with updated
4913 packages which might result in changes of read-ahead
4914 patterns.
4915
4916 * We now temporaritly lower the kernel's read_ahead_kb variable
4917 when collecting read-ahead data to ensure the kernel's
4918 built-in read-ahead does not add noise to our measurements
4919 of necessary blocks to pre-cache.
4920
4921 * There's now RequiresMountsFor= to add automatic dependencies
4922 for all mounts necessary for a specific file system path.
4923
4924 * MountAuto= and SwapAuto= have been removed from
4925 system.conf. Mounting file systems at boot has to take place
4926 in systemd now.
4927
4928 * nspawn now learned a new switch --uuid= to set the machine
4929 ID on the command line.
4930
4931 * nspawn now learned the -b switch to automatically search
4932 for an init system.
4933
4934 * vt102 is now the default TERM for serial TTYs, upgraded from
4935 vt100.
4936
4937 * systemd-logind now works on VT-less systems.
4938
4939 * The build tree has been reorganized. The individual
4940 components now have directories of their own.
4941
4942 * A new condition type ConditionPathIsReadWrite= is now available.
4943
4944 * nspawn learned the new -C switch to create cgroups for the
4945 container in other hierarchies.
4946
4947 * We now have support for hardware watchdogs, configurable in
4948 system.conf.
4949
4950 * The scheduled shutdown logic now has a public API.
4951
4952 * We now mount /tmp as tmpfs by default, but this can be
4953 masked and /etc/fstab can override it.
4954
4955 * Since udisks does not make use of /media anymore we are not
4956 mounting a tmpfs on it anymore.
4957
4958 * journalctl gained a new --local switch to only interleave
4959 locally generated journal files.
4960
4961 * We can now load the IMA policy at boot automatically.
4962
4963 * The GTK tools have been split off into a systemd-ui.
4964
4965 Contributions from: Andreas Schwab, Auke Kok, Ayan George,
4966 Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
4967 Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
4968 Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
4969 Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
4970 Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
4971 A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
4972 Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
4973 Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
4974 Gundersen
4975
4976 CHANGES WITH 44:
4977
4978 * This is mostly a bugfix release
4979
4980 * Support optional initialization of the machine ID from the
4981 KVM or container configured UUID.
4982
4983 * Support immediate reboots with "systemctl reboot -ff"
4984
4985 * Show /etc/os-release data in systemd-analyze output
4986
4987 * Many bugfixes for the journal, including endianness fixes and
4988 ensuring that disk space enforcement works
4989
4990 * sd-login.h is C++ comptaible again
4991
4992 * Extend the /etc/os-release format on request of the Debian
4993 folks
4994
4995 * We now refuse non-UTF8 strings used in various configuration
4996 and unit files. This is done to ensure we do not pass invalid
4997 data over D-Bus or expose it elsewhere.
4998
4999 * Register Mimo USB Screens as suitable for automatic seat
5000 configuration
5001
5002 * Read SELinux client context from journal clients in a race
5003 free fashion
5004
5005 * Reorder configuration file lookup order. /etc now always
5006 overrides /run in order to allow the administrator to always
5007 and unconditionally override vendor supplied or
5008 automatically generated data.
5009
5010 * The various user visible bits of the journal now have man
5011 pages. We still lack man pages for the journal API calls
5012 however.
5013
5014 * We now ship all man pages in HTML format again in the
5015 tarball.
5016
5017 Contributions from: Dave Reisner, Dirk Eibach, Frederic
5018 Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
5019 Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
5020 Reding
5021
5022 CHANGES WITH 43:
5023
5024 * This is mostly a bugfix release
5025
5026 * systems lacking /etc/os-release are no longer supported.
5027
5028 * Various functionality updates to libsystemd-login.so
5029
5030 * Track class of PAM logins to distinguish greeters from
5031 normal user logins.
5032
5033 Contributions from: Kay Sievers, Lennart Poettering, Michael
5034 Biebl
5035
5036 CHANGES WITH 42:
5037
5038 * This is an important bugfix release for v41.
5039
5040 * Building man pages is now optional which should be useful
5041 for those building systemd from git but unwilling to install
5042 xsltproc.
5043
5044 * Watchdog support for supervising services is now usable. In
5045 a future release support for hardware watchdogs
5046 (i.e. /dev/watchdog) will be added building on this.
5047
5048 * Service start rate limiting is now configurable and can be
5049 turned off per service. When a start rate limit is hit a
5050 reboot can automatically be triggered.
5051
5052 * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
5053
5054 Contributions from: Benjamin Franzke, Bill Nottingham,
5055 Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
5056 Schmidt, Michał Górny, Piotr Drąg
5057
5058 CHANGES WITH 41:
5059
5060 * The systemd binary is installed /usr/lib/systemd/systemd now;
5061 An existing /sbin/init symlink needs to be adapted with the
5062 package update.
5063
5064 * The code that loads kernel modules has been ported to invoke
5065 libkmod directly, instead of modprobe. This means we do not
5066 support systems with module-init-tools anymore.
5067
5068 * Watchdog support is now already useful, but still not
5069 complete.
5070
5071 * A new kernel command line option systemd.setenv= is
5072 understood to set system wide environment variables
5073 dynamically at boot.
5074
5075 * We now limit the set of capabilities of systemd-journald.
5076
5077 * We now set SIGPIPE to ignore by default, since it only is
5078 useful in shell pipelines, and has little use in general
5079 code. This can be disabled with IgnoreSIPIPE=no in unit
5080 files.
5081
5082 Contributions from: Benjamin Franzke, Kay Sievers, Lennart
5083 Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
5084 William Douglas
5085
5086 CHANGES WITH 40:
5087
5088 * This is mostly a bugfix release
5089
5090 * We now expose the reason why a service failed in the
5091 "Result" D-Bus property.
5092
5093 * Rudimentary service watchdog support (will be completed over
5094 the next few releases.)
5095
5096 * When systemd forks off in order execute some service we will
5097 now immediately changes its argv[0] to reflect which process
5098 it will execute. This is useful to minimize the time window
5099 with a generic argv[0], which makes bootcharts more useful
5100
5101 Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
5102 Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
5103 Mike Kazantsev, Ray Strode
5104
5105 CHANGES WITH 39:
5106
5107 * This is mostly a test release, but incorporates many
5108 bugfixes.
5109
5110 * New systemd-cgtop tool to show control groups by their
5111 resource usage.
5112
5113 * Linking against libacl for ACLs is optional again. If
5114 disabled, support tracking device access for active logins
5115 goes becomes unavailable, and so does access to the user
5116 journals by the respective users.
5117
5118 * If a group "adm" exists, journal files are automatically
5119 owned by them, thus allow members of this group full access
5120 to the system journal as well as all user journals.
5121
5122 * The journal now stores the SELinux context of the logging
5123 client for all entries.
5124
5125 * Add C++ inclusion guards to all public headers
5126
5127 * New output mode "cat" in the journal to print only text
5128 messages, without any meta data like date or time.
5129
5130 * Include tiny X server wrapper as a temporary stop-gap to
5131 teach XOrg udev display enumeration. This is used by display
5132 managers such as gdm, and will go away as soon as XOrg
5133 learned native udev hotplugging for display devices.
5134
5135 * Add new systemd-cat tool for executing arbitrary programs
5136 with STDERR/STDOUT connected to the journal. Can also act as
5137 BSD logger replacement, and does so by default.
5138
5139 * Optionally store all locally generated coredumps in the
5140 journal along with meta data.
5141
5142 * systemd-tmpfiles learnt four new commands: n, L, c, b, for
5143 writing short strings to files (for usage for /sys), and for
5144 creating symlinks, character and block device nodes.
5145
5146 * New unit file option ControlGroupPersistent= to make cgroups
5147 persistent, following the mechanisms outlined in
5148 http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
5149
5150 * Support multiple local RTCs in a sane way
5151
5152 * No longer monopolize IO when replaying readahead data on
5153 rotating disks, since we might starve non-file-system IO to
5154 death, since fanotify() will not see accesses done by blkid,
5155 or fsck.
5156
5157 * Do not show kernel threads in systemd-cgls anymore, unless
5158 requested with new -k switch.
5159
5160 Contributions from: Dan Horák, Kay Sievers, Lennart
5161 Poettering, Michal Schmidt
5162
5163 CHANGES WITH 38:
5164
5165 * This is mostly a test release, but incorporates many
5166 bugfixes.
5167
5168 * The git repository moved to:
5169 git://anongit.freedesktop.org/systemd/systemd
5170 ssh://git.freedesktop.org/git/systemd/systemd
5171
5172 * First release with the journal
5173 http://0pointer.de/blog/projects/the-journal.html
5174
5175 * The journal replaces both systemd-kmsg-syslogd and
5176 systemd-stdout-bridge.
5177
5178 * New sd_pid_get_unit() API call in libsystemd-logind
5179
5180 * Many systemadm clean-ups
5181
5182 * Introduce remote-fs-pre.target which is ordered before all
5183 remote mounts and may be used to start services before all
5184 remote mounts.
5185
5186 * Added Mageia support
5187
5188 * Add bash completion for systemd-loginctl
5189
5190 * Actively monitor PID file creation for daemons which exit in
5191 the parent process before having finished writing the PID
5192 file in the daemon process. Daemons which do this need to be
5193 fixed (i.e. PID file creation must have finished before the
5194 parent exits), but we now react a bit more gracefully to them.
5195
5196 * Add colourful boot output, mimicking the well-known output
5197 of existing distributions.
5198
5199 * New option PassCredentials= for socket units, for
5200 compatibility with a recent kernel ABI breakage.
5201
5202 * /etc/rc.local is now hooked in via a generator binary, and
5203 thus will no longer act as synchronization point during
5204 boot.
5205
5206 * systemctl list-unit-files now supports --root=.
5207
5208 * systemd-tmpfiles now understands two new commands: z, Z for
5209 relabelling files according to the SELinux database. This is
5210 useful to apply SELinux labels to specific files in /sys,
5211 among other things.
5212
5213 * Output of SysV services is now forwarded to both the console
5214 and the journal by default, not only just the console.
5215
5216 * New man pages for all APIs from libsystemd-login.
5217
5218 * The build tree got reorganized and a the build system is a
5219 lot more modular allowing embedded setups to specifically
5220 select the components of systemd they are interested in.
5221
5222 * Support for Linux systems lacking the kernel VT subsystem is
5223 restored.
5224
5225 * configure's --with-rootdir= got renamed to
5226 --with-rootprefix= to follow the naming used by udev and
5227 kmod
5228
5229 * Unless specified otherwise we will now install to /usr instead
5230 of /usr/local by default.
5231
5232 * Processes with '@' in argv[0][0] are now excluded from the
5233 final shut-down killing spree, following the logic explained
5234 in:
5235 http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
5236
5237 * All processes remaining in a service cgroup when we enter
5238 the START or START_PRE states are now killed with
5239 SIGKILL. That means it is no longer possible to spawn
5240 background processes from ExecStart= lines (which was never
5241 supported anyway, and bad style).
5242
5243 * New PropagateReloadTo=/PropagateReloadFrom= options to bind
5244 reloading of units together.
5245
5246 Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
5247 Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
5248 Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
5249 Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
5250 Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek