]> git.ipfire.org Git - thirdparty/systemd.git/blame - NEWS
resolved: Recover from slow DNS responses
[thirdparty/systemd.git] / NEWS
CommitLineData
d657c51f 1systemd System and Service Manager
220a21d3 2
5486a31d
ZJS
3CHANGES WITH 234 in spe
4
5 * The code to call libnss_dns as a fallback from libnss_resolve when
6 the communication with systemd-resolved fails was removed. This
7 fallback was redundant and interfered with the [!UNAVAIL=return]
8 suffix. See nss-resolve(8) for the recommended configuration.
9
9d8813b3
YW
10 * All kernel install plugins are called with the environment variable
11 KERNEL_INSTALL_MACHINE_ID which is set to the machine ID given by
12 /etc/machine-id. If the file is missing or empty, the variable is
13 empty and BOOT_DIR_ABS is the path of a temporary directory which is
14 removed after the all plugins exit. So, if KERNEL_INSTALL_MACHINE_ID
15 is empty, all plugins should not put anything in BOOT_DIR_ABS.
16
a2b53448 17CHANGES WITH 233:
d08ee7cb 18
4f5e9722
LP
19 * This version requires at least gperf 3.1 for building, 3.0 is not
20 sufficient.
21
23eb30b3
ZJS
22 * The "hybrid" control group mode has been modified to improve
23 compatibility with "legacy" cgroups-v1 setups. Specifically, the
24 "hybrid" setup of /sys/fs/cgroup is now pretty much identical to
25 "legacy" (including /sys/fs/cgroup/systemd as "name=systemd" named
26 cgroups-v1 hierarchy), the only externally visible change being that
27 the cgroups-v2 hierarchy is also mounted, to
28 /sys/fs/cgroup/unified. This should provide a large degree of
29 compatibility with "legacy" cgroups-v1, while taking benefit of the
30 better management capabilities of cgroups-v2.
31
32 * The default control group setup mode may be selected both a boot-time
33 via a set of kernel command line parameters (specifically:
34 systemd.unified_cgroup_hierarchy= and
35 systemd.legacy_systemd_cgroup_controller=), as well as a compile-time
36 default selected on the configure command line
37 (--with-default-hierarchy=). The upstream default is "hybrid"
38 (i.e. the cgroups-v1 + cgroups-v2 mixture discussed above) now, but
39 this will change in a future systemd version to be "unified" (pure
40 cgroups-v2 mode). The third option for the compile time option is
41 "legacy", to enter pure cgroups-v1 mode. We recommend downstream
42 distributions to default to "hybrid" mode for release distributions,
43 starting with v233. We recommend "unified" for development
44 distributions (specifically: distributions such as Fedora's rawhide)
45 as that's where things are headed in the long run. Use "legacy" for
46 greatest stability and compatibility only.
47
48 * Note one current limitation of "unified" and "hybrid" control group
49 setup modes: the kernel currently does not permit the systemd --user
50 instance (i.e. unprivileged code) to migrate processes between two
51 disconnected cgroup subtrees, even if both are managed and owned by
52 the user. This effectively means "systemd-run --user --scope" doesn't
53 work when invoked from outside of any "systemd --user" service or
54 scope. Specifically, it is not supported from session scopes. We are
55 working on fixing this in a future systemd version. (See #3388 for
56 further details about this.)
57
fb7c4eff
MG
58 * DBus policy files are now installed into /usr rather than /etc. Make
59 sure your system has dbus >= 1.9.18 running before upgrading to this
60 version, or override the install path with --with-dbuspolicydir= .
61
23eb30b3
ZJS
62 * All python scripts shipped with systemd (specifically: the various
63 tests written in Python) now require Python 3.
64
d60c5270 65 * systemd unit tests can now run standalone (without the source or
4dfe64f8
ZJS
66 build directories), and can be installed into /usr/lib/systemd/tests/
67 with 'make install-tests'.
68
23eb30b3
ZJS
69 * Note that from this version on, CONFIG_CRYPTO_USER_API_HASH,
70 CONFIG_CRYPTO_HMAC and CONFIG_CRYPTO_SHA256 need to be enabled in the
71 kernel.
72
73 * Support for the %c, %r, %R specifiers in unit files has been
74 removed. Specifiers are not supposed to be dependent on configuration
75 in the unit file itself (so that they resolve the same regardless
76 where used in the unit files), but these specifiers were influenced
77 by the Slice= option.
78
5cfc0a84
LP
79 * The shell invoked by debug-shell.service now defaults to /bin/sh in
80 all cases. If distributions want to use a different shell for this
81 purpose (for example Fedora's /sbin/sushell) they need to specify
82 this explicitly at configure time using --with-debug-shell=.
83
2bcc3309
FB
84 * The confirmation spawn prompt has been reworked to offer the
85 following choices:
86
b0eb2944 87 (c)ontinue, proceed without asking anymore
dd6f9ac0 88 (D)ump, show the state of the unit
2bcc3309 89 (f)ail, don't execute the command and pretend it failed
d172b175 90 (h)elp
eedf223a 91 (i)nfo, show a short summary of the unit
56fde33a 92 (j)obs, show jobs that are in progress
2bcc3309
FB
93 (s)kip, don't execute the command and pretend it succeeded
94 (y)es, execute the command
95
96 The 'n' choice for the confirmation spawn prompt has been removed,
97 because its meaning was confusing.
98
d08ee7cb
LP
99 The prompt may now also be redirected to an alternative console by
100 specifying the console as parameter to systemd.confirm_spawn=.
101
8e458bfe
JW
102 * Services of Type=notify require a READY=1 notification to be sent
103 during startup. If no such message is sent, the service now fails,
104 even if the main process exited with a successful exit code.
105
85266f9b
LP
106 * Services that fail to start up correctly now always have their
107 ExecStopPost= commands executed. Previously, they'd enter "failed"
108 state directly, without executing these commands.
109
baf32786
MP
110 * The option MulticastDNS= of network configuration files has acquired
111 an actual implementation. With MulticastDNS=yes a host can resolve
23eb30b3 112 names of remote hosts and reply to mDNS A and AAAA requests.
fa8b4499 113
631b676b
LP
114 * When units are about to be started an additional check is now done to
115 ensure that all dependencies of type BindsTo= (when used in
116 combination with After=) have been started.
117
d08ee7cb
LP
118 * systemd-analyze gained a new verb "syscall-filter" which shows which
119 system call groups are defined for the SystemCallFilter= unit file
23eb30b3 120 setting, and which system calls they contain.
d08ee7cb
LP
121
122 * A new system call filter group "@filesystem" has been added,
23eb30b3 123 consisting of various file system related system calls. Group
d08ee7cb 124 "@reboot" has been added, covering reboot, kexec and shutdown related
23eb30b3 125 calls. Finally, group "@swap" has been added covering swap
d08ee7cb
LP
126 configuration related calls.
127
128 * A new unit file option RestrictNamespaces= has been added that may be
129 used to restrict access to the various process namespace types the
130 Linux kernel provides. Specifically, it may be used to take away the
23eb30b3
ZJS
131 right for a service unit to create additional file system, network,
132 user, and other namespaces. This sandboxing option is particularly
133 relevant due to the high amount of recently discovered namespacing
134 related vulnerabilities in the kernel.
d08ee7cb 135
23eb30b3
ZJS
136 * systemd-udev's .link files gained support for a new AutoNegotiation=
137 setting for configuring Ethernet auto-negotiation.
d08ee7cb
LP
138
139 * systemd-networkd's .network files gained support for a new
140 ListenPort= setting in the [DHCP] section to explicitly configure the
141 UDP client port the DHCP client shall listen on.
142
23eb30b3
ZJS
143 * .network files gained a new Unmanaged= boolean setting for explicitly
144 excluding one or more interfaces from management by systemd-networkd.
145
146 * The systemd-networkd ProxyARP= option has been renamed to
147 IPV4ProxyARP=. Similarly, VXLAN-specific option ARPProxy= has been
148 renamed to ReduceARPProxy=. The old names continue to be available
149 for compatibility.
150
151 * systemd-networkd gained support for configuring IPv6 Proxy NDP
152 addresses via the new IPv6ProxyNDPAddress= .network file setting.
153
154 * systemd-networkd's bonding device support gained support for two new
155 configuration options ActiveSlave= and PrimarySlave=.
156
157 * The various options in the [Match] section of .network files gained
158 support for negative matching.
159
d08ee7cb
LP
160 * New systemd-specific mount options are now understood in /etc/fstab:
161
162 x-systemd.mount-timeout= may be used to configure the maximum
163 permitted runtime of the mount command.
164
165 x-systemd.device-bound may be set to bind a mount point to its
166 backing device unit, in order to automatically remove a mount point
167 if its backing device is unplugged. This option may also be
168 configured through the new SYSTEMD_MOUNT_DEVICE_BOUND udev property
169 on the block device, which is now automatically set for all CDROM
170 drives, so that mounted CDs are automatically unmounted when they are
171 removed from the drive.
172
23eb30b3
ZJS
173 x-systemd.after= and x-systemd.before= may be used to explicitly
174 order a mount after or before another unit or mount point.
d08ee7cb
LP
175
176 * Enqueued start jobs for device units are now automatically garbage
177 collected if there are no jobs waiting for them anymore.
178
23eb30b3
ZJS
179 * systemctl list-jobs gained two new switches: with --after, for every
180 queued job the jobs it's waiting for are shown; with --before the
181 jobs which it's blocking are shown.
d08ee7cb
LP
182
183 * systemd-nspawn gained support for ephemeral boots from disk images
184 (or in other words: --ephemeral and --image= may now be
185 combined). Moreover, ephemeral boots are now supported for normal
186 directories, even if the backing file system is not btrfs. Of course,
baf32786
MP
187 if the file system does not support file system snapshots or
188 reflinks, the initial copy operation will be relatively expensive, but
189 this should still be suitable for many use cases.
d08ee7cb
LP
190
191 * Calendar time specifications in .timer units now support
192 specifications relative to the end of a month by using "~" instead of
193 "-" as separator between month and day. For example, "*-02~03" means
23eb30b3 194 "the third last day in February". In addition a new syntax for
d08ee7cb
LP
195 repeated events has been added using the "/" character. For example,
196 "9..17/2:00" means "every two hours from 9am to 5pm".
197
198 * systemd-socket-proxyd gained a new parameter --connections-max= for
199 configuring the maximum number of concurrent connections.
200
23eb30b3
ZJS
201 * sd-id128 gained a new API for generating unique IDs for the host in a
202 way that does not leak the machine ID. Specifically,
d08ee7cb 203 sd_id128_get_machine_app_specific() derives an ID based on the
baf32786 204 machine ID a in well-defined, non-reversible, stable way. This is
d08ee7cb
LP
205 useful whenever an identifier for the host is needed but where the
206 identifier shall not be useful to identify the system beyond the
207 scope of the application itself. (Internally this uses HMAC-SHA256 as
208 keyed hash function using the machine ID as input.)
209
210 * NotifyAccess= gained a new supported value "exec". When set
211 notifications are accepted from all processes systemd itself invoked,
212 including all control processes.
213
214 * .nspawn files gained support for defining overlay mounts using the
215 Overlay= and OverlayReadOnly= options. Previously this functionality
216 was only available on the systemd-nspawn command line.
217
218 * systemd-nspawn's --bind= and --overlay= options gained support for
219 bind/overlay mounts whose source lies within the container tree by
220 prefixing the source path with "+".
221
222 * systemd-nspawn's --bind= and --overlay= options gained support for
223 automatically allocating a temporary source directory in /var/tmp
224 that is removed when the container dies. Specifically, if the source
225 directory is specified as empty string this mechanism is selected. An
226 example usage is --overlay=+/var::/var, which creates an overlay
227 mount based on the original /var contained in the image, overlayed
228 with a temporary directory in the host's /var/tmp. This way changes
229 to /var are automatically flushed when the container shuts down.
230
baf32786
MP
231 * systemd-nspawn --image= option does now permit raw file system block
232 devices (in addition to images containing partition tables, as
233 before).
d08ee7cb
LP
234
235 * The disk image dissection logic in systemd-nspawn gained support for
236 automatically setting up LUKS encrypted as well as Verity protected
237 partitions. When a container is booted from an encrypted image the
238 passphrase is queried at start-up time. When a container with Verity
239 data is started, the root hash is search in a ".roothash" file
240 accompanying the disk image (alternatively, pass the root hash via
241 the new --root-hash= command line option).
242
243 * A new tool /usr/lib/systemd/systemd-dissect has been added that may
244 be used to dissect disk images the same way as systemd-nspawn does
245 it, following the Bootable Partition Specification. It may even be
246 used to mount disk images with complex partition setups (including
247 LUKS and Verity partitions) to a local host directory, in order to
248 inspect them. This tool is not considered public API (yet), and is
249 thus not installed into /usr/bin. Please do not rely on its
3b31c466 250 existence, since it might go away or be changed in later systemd
d08ee7cb
LP
251 versions.
252
253 * A new generator "systemd-verity-generator" has been added, similar in
baf32786 254 style to "systemd-cryptsetup-generator", permitting automatic setup of
d08ee7cb
LP
255 Verity root partitions when systemd boots up. In order to make use of
256 this your partition setup should follow the Discoverable Partitions
257 Specification, and the GPT partition ID of the root file system
258 partition should be identical to the upper 128bit of the Verity root
259 hash. The GPT partition ID of the Verity partition protecting it
260 should be the lower 128bit of the Verity root hash. If the partition
261 image follows this model it is sufficient to specify a single
262 "roothash=" kernel command line argument to both configure which root
263 image and verity partition to use as well as the root hash for
264 it. Note that systemd-nspawn's Verity support follows the same
265 semantics, meaning that disk images with proper Verity data in place
266 may be booted in containers with systemd-nspawn as well as on
267 physical systems via the verity generator. Also note that the "mkosi"
268 tool available at https://github.com/systemd/mkosi has been updated
269 to generate Verity protected disk images following this scheme. In
270 fact, it has been updated to generate disk images that optionally
271 implement a complete UEFI SecureBoot trust chain, involving a signed
272 kernel and initrd image that incorporates such a root hash as well as
273 a Verity-enabled root partition.
274
d08ee7cb
LP
275 * The hardware database (hwdb) udev supports has been updated to carry
276 accelerometer quirks.
277
278 * All system services are now run with a fresh kernel keyring set up
279 for them. The invocation ID is stored by default in it, thus
280 providing a safe, non-overridable way to determine the invocation
281 ID of each service.
282
283 * Service unit files gained new BindPaths= and BindReadOnlyPaths=
284 options for bind mounting arbitrary paths in a service-specific
285 way. When these options are used, arbitrary host or service files and
286 directories may be mounted to arbitrary locations in the service's
287 view.
288
289 * Documentation has been added that lists all of systemd's low-level
290 environment variables:
291
292 https://github.com/systemd/systemd/blob/master/ENVIRONMENT.md
293
294 * sd-daemon gained a new API sd_is_socket_sockaddr() for determining
295 whether a specific socket file descriptor matches a specified socket
296 address.
297
298 * systemd-firstboot has been updated to check for the
299 systemd.firstboot= kernel command line option. It accepts a boolean
300 and when set to false the first boot questions are skipped.
301
d08ee7cb 302 * systemd-fstab-generator has been updated to check for the
23eb30b3
ZJS
303 systemd.volatile= kernel command line option, which either takes an
304 optional boolean parameter or the special value "state". If used the
305 system may be booted in a "volatile" boot mode. Specifically,
306 "systemd.volatile" is used, the root directory will be mounted as
d08ee7cb 307 tmpfs, and only /usr is mounted from the actual root file system. If
23eb30b3
ZJS
308 "systemd.volatile=state" is used, the root directory will be mounted
309 as usual, but /var is mounted as tmpfs. This concept provides similar
d08ee7cb
LP
310 functionality as systemd-nspawn's --volatile= option, but provides it
311 on physical boots. Use this option for implementing stateless
312 systems, or testing systems with all state and/or configuration reset
313 to the defaults. (Note though that many distributions are not
23eb30b3 314 prepared to boot up without a populated /etc or /var, though.)
d08ee7cb
LP
315
316 * systemd-gpt-auto-generator gained support for LUKS encrypted root
317 partitions. Previously it only supported LUKS encrypted partitions
318 for all other uses, except for the root partition itself.
319
320 * Socket units gained support for listening on AF_VSOCK sockets for
321 communication in virtualized QEMU environments.
322
323 * The "configure" script gained a new option --with-fallback-hostname=
324 for specifying the fallback hostname to use if none is configured in
325 /etc/hostname. For example, by specifying
326 --with-fallback-hostname=fedora it is possible to default to a
23eb30b3 327 hostname of "fedora" on pristine installations.
d08ee7cb
LP
328
329 * systemd-cgls gained support for a new --unit= switch for listing only
330 the control groups of a specific unit. Similar --user-unit= has been
331 added for listing only the control groups of a specific user unit.
332
333 * systemd-mount gained a new --umount switch for unmounting a mount or
334 automount point (and all mount/automount points below it).
335
336 * systemd will now refuse full configuration reloads (via systemctl
337 daemon-reload and related calls) unless at least 16MiB of free space
338 are available in /run. This is a safety precaution in order to ensure
339 that generators can safely operate after the reload completed.
340
341 * A new unit file option RootImage= has been added, which has a similar
342 effect as RootDirectory= but mounts the service's root directory from
343 a disk image instead of plain directory. This logic reuses the same
344 image dissection and mount logic that systemd-nspawn already uses,
345 and hence supports any disk images systemd-nspawn supports, including
346 those following the Discoverable Partition Specification, as well as
347 Verity enabled images. This option enables systemd to run system
348 services directly off disk images acting as resource bundles,
349 possibly even including full integrity data.
350
351 * A new MountAPIVFS= unit file option has been added, taking a boolean
baf32786 352 argument. If enabled /proc, /sys and /dev (collectively called the
d08ee7cb
LP
353 "API VFS") will be mounted for the service. This is only relevant if
354 RootDirectory= or RootImage= is used for the service, as these mounts
355 are of course in place in the host mount namespace anyway.
356
357 * systemd-nspawn gained support for a new --pivot-root= switch. If
358 specified the root directory within the container image is pivoted to
359 the specified mount point, while the original root disk is moved to a
360 different place. This option enables booting of ostree images
361 directly with systemd-nspawn.
362
d08ee7cb 363 * The systemd build scripts will no longer complain if the NTP server
23eb30b3 364 addresses are not changed from the defaults. Google now supports
d08ee7cb
LP
365 these NTP servers officially. We still recommend downstreams to
366 properly register an NTP pool with the NTP pool project though.
367
c1ec34d1 368 * coredumpctl gained a new "--reverse" option for printing the list
d08ee7cb
LP
369 of coredumps in reverse order.
370
23eb30b3
ZJS
371 * coredumpctl will now show additional information about truncated and
372 inaccessible coredumps, as well as coredumps that are still being
373 processed. It also gained a new --quiet switch for suppressing
374 additional informational message in its output.
375
376 * coredumpctl gained support for only showing coredumps newer and/or
377 older than specific timestamps, using the new --since= and --until=
378 options, reminiscent of journalctl's options by the same name.
379
d08ee7cb 380 * The systemd-coredump logic has been improved so that it may be reused
23eb30b3 381 to collect backtraces in non-compiled languages, for example in
d08ee7cb
LP
382 scripting languages such as Python.
383
384 * machinectl will now show the UID shift of local containers, if user
385 namespacing is enabled for them.
386
baf32786 387 * systemd will now optionally run "environment generator" binaries at
d08ee7cb
LP
388 configuration load time. They may be used to add environment
389 variables to the environment block passed to services invoked. One
baf32786 390 user environment generator is shipped by default that sets up
23eb30b3
ZJS
391 environment variables based on files dropped into /etc/environment.d
392 and ~/.config/environment.d/.
d08ee7cb 393
a2b53448
LP
394 * systemd-resolved now includes the new, recently published 2017 DNSSEC
395 root key (KSK).
396
a2b53448
LP
397 * hostnamed has been updated to report a new chassis type of
398 "convertible" to cover "foldable" laptops that can both act as a
399 tablet and as a laptop, such as various Lenovo Yoga devices.
400
d08ee7cb
LP
401 Contributions from: Adrián López, Alexander Galanin, Alexander
402 Kochetkov, Alexandros Frantzis, Andrey Ulanov, Antoine Eiche, Baruch
403 Siach, Bastien Nocera, Benjamin Robin, Björn, Brandon Philips, Cédric
404 Schieli, Charles (Chas) Williams, Christian Hesse, Daniele Medri,
405 Daniel Drake, Daniel Rusek, Daniel Wagner, Dan Streetman, Dave Reisner,
406 David Glasser, David Herrmann, David Michael, Djalal Harouni, Dmitry
407 Khlebnikov, Dmitry Rozhkov, Dongsu Park, Douglas Christman, Earnestly,
408 Emil Soleyman, Eric Cook, Evgeny Vereshchagin, Felipe Sateler, Fionn
409 Cleary, Florian Klink, Francesco Brozzu, Franck Bui, Gabriel Rauter,
a2b53448
LP
410 Gianluca Boiano, Giedrius Statkevičius, Graeme Lawes, Hans de Goede,
411 Harald Hoyer, Ian Kelling, Ivan Shapovalov, Jakub Wilk, Janne Heß, Jan
412 Synacek, Jason Reeder, Jonathan Boulle, Jörg Thalheim, Jouke Witteveen,
413 Karl Kraus, Kees Cook, Keith Busch, Kieran Colford, kilian-k, Lennart
414 Poettering, Lubomir Rintel, Lucas Werkmeister, Lukas Rusak, Maarten de
415 Vries, Maks Naumov, Mantas Mikulėnas, Marc-Andre Lureau, Marcin Bachry,
416 Mark Stosberg, Martin Ejdestig, Martin Pitt, Mauricio Faria de
417 Oliveira, micah, Michael Biebl, Michael Shields, Michal Schmidt, Michal
418 Sekletar, Michel Kraus, Mike Gilbert, Mikko Ylinen, Mirza Krak,
419 Namhyung Kim, nikolaof, peoronoob, Peter Hutterer, Peter Körner, Philip
420 Withnall, Piotr Drąg, Ray Strode, Reverend Homer, Rike-Benjamin
421 Schuppner, Robert Kreuzer, Ronny Chevalier, Ruslan Bilovol, sammynx,
422 Sergey Ptashnick, Sergiusz Urbaniak, Stefan Berger, Stefan Hajnoczi,
423 Stefan Schweter, Stuart McLaren, Susant Sahani, Sylvain Plantefève,
424 Taylor Smock, Tejun Heo, Thomas Blume, Thomas H. P. Andersen, Tibor
425 Nagy, Tobias Stoeckmann, Tom Gundersen, Torstein Husebø, Viktar
426 Vaŭčkievič, Viktor Mihajlovski, Vitaly Sulimov, Waldemar Brodkorb,
427 Walter Garcia-Fontes, Wim de With, Yassine Imounachen, Yi EungJun,
428 YunQiang Su, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Александр
429 Тихонов
430
431 — Berlin, 2017-03-01
d08ee7cb 432
54b24597 433CHANGES WITH 232:
76153ad4 434
05f426d2
LP
435 * udev now runs with MemoryDenyWriteExecute=, RestrictRealtime= and
436 RestrictAddressFamilies= enabled. These sandboxing options should
437 generally be compatible with the various external udev call-out
438 binaries we are aware of, however there may be exceptions, in
439 particular when exotic languages for these call-outs are used. In
440 this case, consider turning off these settings locally.
441
4ffe2479
ZJS
442 * The new RemoveIPC= option can be used to remove IPC objects owned by
443 the user or group of a service when that service exits.
444
6fa44114 445 * The new ProtectKernelModules= option can be used to disable explicit
4c37970d
LP
446 load and unload operations of kernel modules by a service. In
447 addition access to /usr/lib/modules is removed if this option is set.
6fa44114 448
4a77c53d
ZJS
449 * ProtectSystem= option gained a new value "strict", which causes the
450 whole file system tree with the exception of /dev, /proc, and /sys,
451 to be remounted read-only for a service.
452
e49e2c25 453 * The new ProtectKernelTunables= option can be used to disable
4a77c53d
ZJS
454 modification of configuration files in /sys and /proc by a service.
455 Various directories and files are remounted read-only, so access is
456 restricted even if the file permissions would allow it.
457
6fa44114 458 * The new ProtectControlGroups= option can be used to disable write
4a77c53d
ZJS
459 access by a service to /sys/fs/cgroup.
460
461 * Various systemd services have been hardened with
462 ProtectKernelTunables=yes, ProtectControlGroups=yes,
463 RestrictAddressFamilies=.
464
4ffe2479
ZJS
465 * Support for dynamically creating users for the lifetime of a service
466 has been added. If DynamicUser=yes is specified, user and group IDs
467 will be allocated from the range 61184..65519 for the lifetime of the
468 service. They can be resolved using the new nss-systemd.so NSS
469 module. The module must be enabled in /etc/nsswitch.conf. Services
470 started in this way have PrivateTmp= and RemoveIPC= enabled, so that
471 any resources allocated by the service will be cleaned up when the
4a77c53d
ZJS
472 service exits. They also have ProtectHome=read-only and
473 ProtectSystem=strict enabled, so they are not able to make any
474 permanent modifications to the system.
4ffe2479 475
171ae2cd 476 * The nss-systemd module also always resolves root and nobody, making
4ffe2479 477 it possible to have no /etc/passwd or /etc/group files in minimal
171ae2cd 478 container or chroot environments.
4ffe2479
ZJS
479
480 * Services may be started with their own user namespace using the new
171ae2cd
LP
481 boolean PrivateUsers= option. Only root, nobody, and the uid/gid
482 under which the service is running are mapped. All other users are
483 mapped to nobody.
4ffe2479
ZJS
484
485 * Support for the cgroup namespace has been added to systemd-nspawn. If
486 supported by kernel, the container system started by systemd-nspawn
487 will have its own view of the cgroup hierarchy. This new behaviour
488 can be disabled using $SYSTEMD_NSPAWN_USE_CGNS environment variable.
489
490 * The new MemorySwapMax= option can be used to limit the maximum swap
491 usage under the unified cgroup hierarchy.
492
493 * Support for the CPU controller in the unified cgroup hierarchy has
494 been added, via the CPUWeight=, CPUStartupWeight=, CPUAccounting=
495 options. This controller requires out-of-tree patches for the kernel
496 and the support is provisional.
497
171ae2cd
LP
498 * Mount and automount units may now be created transiently
499 (i.e. dynamically at runtime via the bus API, instead of requiring
500 unit files in the file system).
501
502 * systemd-mount is a new tool which may mount file systems – much like
503 mount(8), optionally pulling in additional dependencies through
504 transient .mount and .automount units. For example, this tool
505 automatically runs fsck on a backing block device before mounting,
506 and allows the automount logic to be used dynamically from the
507 command line for establishing mount points. This tool is particularly
508 useful when dealing with removable media, as it will ensure fsck is
509 run – if necessary – before the first access and that the file system
510 is quickly unmounted after each access by utilizing the automount
511 logic. This maximizes the chance that the file system on the
512 removable media stays in a clean state, and if it isn't in a clean
513 state is fixed automatically.
4ffe2479
ZJS
514
515 * LazyUnmount=yes option for mount units has been added to expose the
516 umount --lazy option. Similarly, ForceUnmount=yes exposes the --force
517 option.
518
519 * /efi will be used as the mount point of the EFI boot partition, if
520 the directory is present, and the mount point was not configured
521 through other means (e.g. fstab). If /efi directory does not exist,
522 /boot will be used as before. This makes it easier to automatically
523 mount the EFI partition on systems where /boot is used for something
524 else.
525
171ae2cd
LP
526 * When operating on GPT disk images for containers, systemd-nspawn will
527 now mount the ESP to /boot or /efi according to the same rules as PID
528 1 running on a host. This allows tools like "bootctl" to operate
529 correctly within such containers, in order to make container images
530 bootable on physical systems.
531
4a77c53d 532 * disk/by-id and disk/by-path symlinks are now created for NVMe drives.
4ffe2479
ZJS
533
534 * Two new user session targets have been added to support running
535 graphical sessions under the systemd --user instance:
536 graphical-session.target and graphical-session-pre.target. See
537 systemd.special(7) for a description of how those targets should be
538 used.
539
540 * The vconsole initialization code has been significantly reworked to
d4c08299 541 use KD_FONT_OP_GET/SET ioctls instead of KD_FONT_OP_COPY and better
4ffe2479
ZJS
542 support unicode keymaps. Font and keymap configuration will now be
543 copied to all allocated virtual consoles.
544
05ecf467 545 * FreeBSD's bhyve virtualization is now detected.
4ffe2479 546
d4c08299 547 * Information recorded in the journal for core dumps now includes the
4ffe2479
ZJS
548 contents of /proc/mountinfo and the command line of the process at
549 the top of the process hierarchy (which is usually the init process
550 of the container).
551
171ae2cd 552 * systemd-journal-gatewayd learned the --directory= option to serve
4ffe2479
ZJS
553 files from the specified location.
554
555 * journalctl --root=… can be used to peruse the journal in the
556 /var/log/ directories inside of a container tree. This is similar to
557 the existing --machine= option, but does not require the container to
558 be active.
559
560 * The hardware database has been extended to support
561 ID_INPUT_TRACKBALL, used in addition to ID_INPUT_MOUSE to identify
562 trackball devices.
563
564 MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL hwdb property has been added to
565 specify the click rate for mice which include a horizontal wheel with
566 a click rate that is different than the one for the vertical wheel.
567
568 * systemd-run gained a new --wait option that makes service execution
171ae2cd
LP
569 synchronous. (Specifically, the command will not return until the
570 specified service binary exited.)
4ffe2479 571
171ae2cd 572 * systemctl gained a new --wait option that causes the start command to
4a77c53d
ZJS
573 wait until the units being started have terminated again.
574
171ae2cd 575 * A new journal output mode "short-full" has been added which displays
4ffe2479 576 timestamps with abbreviated English day names and adds a timezone
171ae2cd
LP
577 suffix. Those timestamps include more information than the default
578 "short" output mode, and can be passed directly to journalctl's
579 --since= and --until= options.
4ffe2479
ZJS
580
581 * /etc/resolv.conf will be bind-mounted into containers started by
582 systemd-nspawn, if possible, so any changes to resolv.conf contents
583 are automatically propagated to the container.
584
585 * The number of instances for socket-activated services originating
171ae2cd
LP
586 from a single IP address can be limited with
587 MaxConnectionsPerSource=, extending the existing setting of
588 MaxConnections=.
4ffe2479 589
4a77c53d
ZJS
590 * systemd-networkd gained support for vcan ("Virtual CAN") interface
591 configuration.
592
593 * .netdev and .network configuration can now be extended through
594 drop-ins.
595
4ffe2479
ZJS
596 * UDP Segmentation Offload, TCP Segmentation Offload, Generic
597 Segmentation Offload, Generic Receive Offload, Large Receive Offload
598 can be enabled and disabled using the new UDPSegmentationOffload=,
599 TCPSegmentationOffload=, GenericSegmentationOffload=,
600 GenericReceiveOffload=, LargeReceiveOffload= options in the
601 [Link] section of .link files.
602
171ae2cd
LP
603 * The Spanning Tree Protocol, Priority, Aging Time, and the Default
604 Port VLAN ID can be configured for bridge devices using the new STP=,
605 Priority=, AgeingTimeSec=, and DefaultPVID= settings in the [Bridge]
606 section of .netdev files.
4ffe2479 607
171ae2cd 608 * The route table to which routes received over DHCP or RA should be
4a77c53d
ZJS
609 added can be configured with the new RouteTable= option in the [DHCP]
610 and [IPv6AcceptRA] sections of .network files.
611
171ae2cd 612 * The Address Resolution Protocol can be disabled on links managed by
4ffe2479
ZJS
613 systemd-networkd using the ARP=no setting in the [Link] section of
614 .network files.
615
171ae2cd
LP
616 * New environment variables $SERVICE_RESULT, $EXIT_CODE and
617 $EXIT_STATUS are set for ExecStop= and ExecStopPost= commands, and
618 encode information about the result and exit codes of the current
619 service runtime cycle.
4ffe2479 620
4a77c53d 621 * systemd-sysctl will now configure kernel parameters in the order
1f4f4cf7 622 they occur in the configuration files. This matches what sysctl
4a77c53d
ZJS
623 has been traditionally doing.
624
625 * kernel-install "plugins" that are executed to perform various
626 tasks after a new kernel is added and before an old one is removed
627 can now return a special value to terminate the procedure and
628 prevent any later plugins from running.
629
76153ad4 630 * Journald's SplitMode=login setting has been deprecated. It has been
d4c08299 631 removed from documentation, and its use is discouraged. In a future
76153ad4
ZJS
632 release it will be completely removed, and made equivalent to current
633 default of SplitMode=uid.
634
4a77c53d
ZJS
635 * Storage=both option setting in /etc/systemd/coredump.conf has been
636 removed. With fast LZ4 compression storing the core dump twice is not
637 useful.
638
4ffe2479
ZJS
639 * The --share-system systemd-nspawn option has been replaced with an
640 (undocumented) variable $SYSTEMD_NSPAWN_SHARE_SYSTEM, but the use of
641 this functionality is discouraged. In addition the variables
642 $SYSTEMD_NSPAWN_SHARE_NS_IPC, $SYSTEMD_NSPAWN_SHARE_NS_PID,
643 $SYSTEMD_NSPAWN_SHARE_NS_UTS may be used to control the unsharing of
644 individual namespaces.
645
171ae2cd
LP
646 * "machinectl list" now shows the IP address of running containers in
647 the output, as well as OS release information.
648
649 * "loginctl list" now shows the TTY of each session in the output.
650
651 * sd-bus gained new API calls sd_bus_track_set_recursive(),
652 sd_bus_track_get_recursive(), sd_bus_track_count_name(),
653 sd_bus_track_count_sender(). They permit usage of sd_bus_track peer
654 tracking objects in a "recursive" mode, where a single client can be
655 counted multiple times, if it takes multiple references.
656
657 * sd-bus gained new API calls sd_bus_set_exit_on_disconnect() and
658 sd_bus_get_exit_on_disconnect(). They may be used to to make a
659 process using sd-bus automatically exit if the bus connection is
660 severed.
661
662 * Bus clients of the service manager may now "pin" loaded units into
663 memory, by taking an explicit reference on them. This is useful to
664 ensure the client can retrieve runtime data about the service even
665 after the service completed execution. Taking such a reference is
666 available only for privileged clients and should be helpful to watch
667 running services in a race-free manner, and in particular collect
668 information about exit statuses and results.
669
4c37970d
LP
670 * The nss-resolve module has been changed to strictly return UNAVAIL
671 when communication via D-Bus with resolved failed, and NOTFOUND when
672 a lookup completed but was negative. This means it is now possible to
673 neatly configure fallbacks using nsswitch.conf result checking
674 expressions. Taking benefit of this, the new recommended
675 configuration line for the "hosts" entry in /etc/nsswitch.conf is:
676
677 hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
678
679 * A new setting CtrlAltDelBurstAction= has been added to
680 /etc/systemd/system.conf which may be used to configure the precise
681 behaviour if the user on the console presses Ctrl-Alt-Del more often
682 than 7 times in 2s. Previously this would unconditionally result in
683 an expedited, immediate reboot. With this new setting the precise
684 operation may be configured in more detail, and also turned off
685 entirely.
686
687 * In .netdev files two new settings RemoteChecksumTx= and
688 RemoteChecksumRx= are now understood that permit configuring the
689 remote checksumming logic for VXLAN networks.
690
691 * The service manager learnt a new "invocation ID" concept for invoked
692 services. Each runtime cycle of a service will get a new invocation
693 ID (a 128bit random UUID) assigned that identifies the current
694 run of the service uniquely and globally. A new invocation ID
695 is generated each time a service starts up. The journal will store
696 the invocation ID of a service along with any logged messages, thus
697 making the invocation ID useful for matching the online runtime of a
698 service with the offline log data it generated in a safe way without
699 relying on synchronized timestamps. In many ways this new service
700 invocation ID concept is similar to the kernel's boot ID concept that
701 uniquely and globally identifies the runtime of each boot. The
702 invocation ID of a service is passed to the service itself via an
703 environment variable ($INVOCATION_ID). A new bus call
704 GetUnitByInvocationID() has been added that is similar to GetUnit()
705 but instead of retrieving the bus path for a unit by its name
706 retrieves it by its invocation ID. The returned path is valid only as
707 long as the passed invocation ID is current.
708
709 * systemd-resolved gained a new "DNSStubListener" setting in
710 resolved.conf. It either takes a boolean value or the special values
711 "udp" and "tcp", and configures whether to enable the stub DNS
712 listener on 127.0.0.53:53.
713
714 * IP addresses configured via networkd may now carry additional
715 configuration settings supported by the kernel. New options include:
716 HomeAddress=, DuplicateAddressDetection=, ManageTemporaryAddress=,
717 PrefixRoute=, AutoJoin=.
718
719 * The PAM configuration fragment file for "user@.service" shipped with
720 systemd (i.e. the --user instance of systemd) has been stripped to
721 the minimum necessary to make the system boot. Previously, it
722 contained Fedora-specific stanzas that did not apply to other
723 distributions. It is expected that downstream distributions add
724 additional configuration lines, matching their needs to this file,
725 using it only as rough template of what systemd itself needs. Note
726 that this reduced fragment does not even include an invocation of
727 pam_limits which most distributions probably want to add, even though
728 systemd itself does not need it. (There's also the new build time
729 option --with-pamconfdir=no to disable installation of the PAM
730 fragment entirely.)
731
732 * If PrivateDevices=yes is set for a service the CAP_SYS_RAWIO
733 capability is now also dropped from its set (in addition to
734 CAP_SYS_MKNOD as before).
735
736 * In service unit files it is now possible to connect a specific named
737 file descriptor with stdin/stdout/stdout of an executed service. The
738 name may be specified in matching .socket units using the
739 FileDescriptorName= setting.
740
741 * A number of journal settings may now be configured on the kernel
742 command line. Specifically, the following options are now understood:
743 systemd.journald.max_level_console=,
744 systemd.journald.max_level_store=,
745 systemd.journald.max_level_syslog=, systemd.journald.max_level_kmsg=,
746 systemd.journald.max_level_wall=.
747
748 * "systemctl is-enabled --full" will now show by which symlinks a unit
749 file is enabled in the unit dependency tree.
750
b4eed568
LP
751 * Support for VeraCrypt encrypted partitions has been added to the
752 "cryptsetup" logic and /etc/crypttab.
753
754 * systemd-detect-virt gained support for a new --private-users switch
755 that checks whether the invoking processes are running inside a user
756 namespace. Similar, a new special value "private-users" for the
757 existing ConditionVirtualization= setting has been added, permitting
758 skipping of specific units in user namespace environments.
759
07393b6e
LP
760 Contributions from: Alban Crequy, Alexander Kuleshov, Alfie John,
761 Andreas Henriksson, Andrew Jeddeloh, Balázs Úr, Bart Rulon, Benjamin
762 Richter, Ben Gamari, Ben Harris, Brian J. Murrell, Christian Brauner,
763 Christian Rebischke, Clinton Roy, Colin Walters, Cristian Rodríguez,
764 Daniel Hahler, Daniel Mack, Daniel Maixner, Daniel Rusek, Dan Dedrick,
765 Davide Cavalca, David Herrmann, David Michael, Dennis Wassenberg,
766 Djalal Harouni, Dongsu Park, Douglas Christman, Elias Probst, Eric
767 Cook, Erik Karlsson, Evgeny Vereshchagin, Felipe Sateler, Felix Zhang,
768 Franck Bui, George Hilliard, Giuseppe Scrivano, HATAYAMA Daisuke,
769 Heikki Kemppainen, Hendrik Brueckner, hi117, Ismo Puustinen, Ivan
770 Shapovalov, Jakub Filak, Jakub Wilk, Jan Synacek, Jason Kölker,
771 Jean-Sébastien Bour, Jiří Pírko, Jonathan Boulle, Jorge Niedbalski,
772 Keith Busch, kristbaum, Kyle Russell, Lans Zhang, Lennart Poettering,
773 Leonardo Brondani Schenkel, Lucas Werkmeister, Luca Bruno, Lukáš
774 Nykrýn, Maciek Borzecki, Mantas Mikulėnas, Marc-Antoine Perennou,
775 Marcel Holtmann, Marcos Mello, Martin Ejdestig, Martin Pitt, Matej
776 Habrnal, Maxime de Roucy, Michael Biebl, Michael Chapman, Michael Hoy,
777 Michael Olbrich, Michael Pope, Michal Sekletar, Michal Soltys, Mike
778 Gilbert, Nick Owens, Patrik Flykt, Paweł Szewczyk, Peter Hutterer,
779 Piotr Drąg, Reid Price, Richard W.M. Jones, Roman Stingler, Ronny
780 Chevalier, Seraphime Kirkovski, Stefan Schweter, Steve Muir, Susant
781 Sahani, Tejun Heo, Thomas Blume, Thomas H. P. Andersen, Tiago Levit,
782 Tobias Jungel, Tomáš Janoušek, Topi Miettinen, Torstein Husebø, Umut
783 Tezduyar Lindskog, Vito Caputo, WaLyong Cho, Wilhelm Schuster, Yann
784 E. MORIN, Yi EungJun, Yuki Inoguchi, Yu Watanabe, Zbigniew
785 Jędrzejewski-Szmek, Zeal Jagannatha
786
54b24597 787 — Santa Fe, 2016-11-03
07393b6e 788
5cd118ba
MP
789CHANGES WITH 231:
790
fcd30826
LP
791 * In service units the various ExecXYZ= settings have been extended
792 with an additional special character as first argument of the
43eb109a 793 assigned value: if the character '+' is used the specified command
fcd30826
LP
794 line it will be run with full privileges, regardless of User=,
795 Group=, CapabilityBoundingSet= and similar options. The effect is
796 similar to the existing PermissionsStartOnly= option, but allows
797 configuration of this concept for each executed command line
798 independently.
799
800 * Services may now alter the service watchdog timeout at runtime by
801 sending a WATCHDOG_USEC= message via sd_notify().
802
803 * MemoryLimit= and related unit settings now optionally take percentage
804 specifications. The percentage is taken relative to the amount of
805 physical memory in the system (or in case of containers, the assigned
806 amount of memory). This allows scaling service resources neatly with
771de3f5 807 the amount of RAM available on the system. Similarly, systemd-logind's
fcd30826
LP
808 RuntimeDirectorySize= option now also optionally takes percentage
809 values.
810
811 * In similar fashion TasksMax= takes percentage values now, too. The
812 value is taken relative to the configured maximum number of processes
813 on the system. The per-service task maximum has been changed to 15%
814 using this functionality. (Effectively this is an increase of 512 →
815 4915 for service units, given the kernel's default pid_max setting.)
816
817 * Calendar time specifications in .timer units now understand a ".."
818 syntax for time ranges. Example: "4..7:10" may now be used for
819 defining a timer that is triggered at 4:10am, 5:10am, 6:10am and
820 7:10am every day.
821
822 * The InaccessableDirectories=, ReadOnlyDirectories= and
823 ReadWriteDirectories= unit file settings have been renamed to
824 InaccessablePaths=, ReadOnlyPaths= and ReadWritePaths= and may now be
825 applied to all kinds of file nodes, and not just directories, with
826 the exception of symlinks. Specifically these settings may now be
827 used on block and character device nodes, UNIX sockets and FIFOS as
828 well as regular files. The old names of these settings remain
829 available for compatibility.
830
831 * systemd will now log about all service processes it kills forcibly
832 (using SIGKILL) because they remained after the clean shutdown phase
833 of the service completed. This should help identifying services that
834 shut down uncleanly. Moreover if KillUserProcesses= is enabled in
835 systemd-logind's configuration a similar log message is generated for
836 processes killed at the end of each session due to this setting.
837
838 * systemd will now set the $JOURNAL_STREAM environment variable for all
839 services whose stdout/stderr are connected to the Journal (which
840 effectively means by default: all services). The variable contains
841 the device and inode number of the file descriptor used for
842 stdout/stderr. This may be used by invoked programs to detect whether
843 their stdout/stderr is connected to the Journal, in which case they
844 can switch over to direct Journal communication, thus being able to
845 pass extended, structured metadata along with their log messages. As
846 one example, this is now used by glib's logging primitives.
847
848 * When using systemd's default tmp.mount unit for /tmp, the mount point
849 will now be established with the "nosuid" and "nodev" options. This
850 avoids privilege escalation attacks that put traps and exploits into
851 /tmp. However, this might cause problems if you e. g. put container
5cd118ba
MP
852 images or overlays into /tmp; if you need this, override tmp.mount's
853 "Options=" with a drop-in, or mount /tmp from /etc/fstab with your
854 desired options.
855
fcd30826
LP
856 * systemd now supports the "memory" cgroup controller also on
857 cgroupsv2.
858
859 * The systemd-cgtop tool now optionally takes a control group path as
860 command line argument. If specified, the control group list shown is
861 limited to subgroups of that group.
862
863 * The SystemCallFilter= unit file setting gained support for
864 pre-defined, named system call filter sets. For example
865 SystemCallFilter=@clock is now an effective way to make all clock
771de3f5 866 changing-related system calls unavailable to a service. A number of
fcd30826
LP
867 similar pre-defined groups are defined. Writing system call filters
868 for system services is simplified substantially with this new
869 concept. Accordingly, all of systemd's own, long-running services now
870 enable system call filtering based on this, by default.
871
872 * A new service setting MemoryDenyWriteExecute= has been added, taking
873 a boolean value. If turned on, a service may no longer create memory
874 mappings that are writable and executable at the same time. This
875 enhances security for services where this is enabled as it becomes
876 harder to dynamically write and then execute memory in exploited
877 service processes. This option has been enabled for all of systemd's
878 own long-running services.
879
880 * A new RestrictRealtime= service setting has been added, taking a
881 boolean argument. If set the service's processes may no longer
882 acquire realtime scheduling. This improves security as realtime
883 scheduling may otherwise be used to easily freeze the system.
884
885 * systemd-nspawn gained a new switch --notify-ready= taking a boolean
886 value. This may be used for requesting that the system manager inside
887 of the container reports start-up completion to nspawn which then
888 propagates this notification further to the service manager
889 supervising nspawn itself. A related option NotifyReady= in .nspawn
890 files has been added too. This functionality allows ordering of the
891 start-up of multiple containers using the usual systemd ordering
892 primitives.
893
894 * machinectl gained a new command "stop" that is an alias for
895 "terminate".
896
897 * systemd-resolved gained support for contacting DNS servers on
898 link-local IPv6 addresses.
899
900 * If systemd-resolved receives the SIGUSR2 signal it will now flush all
901 its caches. A method call for requesting the same operation has been
902 added to the bus API too, and is made available via "systemd-resolve
903 --flush-caches".
904
771de3f5 905 * systemd-resolve gained a new --status switch. If passed a brief
fcd30826
LP
906 summary of the used DNS configuration with per-interface information
907 is shown.
908
909 * resolved.conf gained a new Cache= boolean option, defaulting to
910 on. If turned off local DNS caching is disabled. This comes with a
911 performance penalty in particular when DNSSEC is enabled. Note that
771de3f5 912 resolved disables its internal caching implicitly anyway, when the
fcd30826
LP
913 configured DNS server is on a host-local IP address such as ::1 or
914 127.0.0.1, thus automatically avoiding double local caching.
915
916 * systemd-resolved now listens on the local IP address 127.0.0.53:53
917 for DNS requests. This improves compatibility with local programs
918 that do not use the libc NSS or systemd-resolved's bus APIs for name
919 resolution. This minimal DNS service is only available to local
920 programs and does not implement the full DNS protocol, but enough to
921 cover local DNS clients. A new, static resolv.conf file, listing just
922 this DNS server is now shipped in /usr/lib/systemd/resolv.conf. It is
923 now recommended to make /etc/resolv.conf a symlink to this file in
924 order to route all DNS lookups to systemd-resolved, regardless if
925 done via NSS, the bus API or raw DNS packets. Note that this local
926 DNS service is not as fully featured as the libc NSS or
927 systemd-resolved's bus APIs. For example, as unicast DNS cannot be
928 used to deliver link-local address information (as this implies
929 sending a local interface index along), LLMNR/mDNS support via this
930 interface is severely restricted. It is thus strongly recommended for
931 all applications to use the libc NSS API or native systemd-resolved
932 bus API instead.
933
934 * systemd-networkd's bridge support learned a new setting
935 VLANFiltering= for controlling VLAN filtering. Moreover a new section
936 in .network files has been added for configuring VLAN bridging in
937 more detail: VLAN=, EgressUntagged=, PVID= in [BridgeVLAN].
938
939 * systemd-networkd's IPv6 Router Advertisement code now makes use of
940 the DNSSL and RDNSS options. This means IPv6 DNS configuration may
941 now be acquired without relying on DHCPv6. Two new options
942 UseDomains= and UseDNS= have been added to configure this behaviour.
943
944 * systemd-networkd's IPv6AcceptRouterAdvertisements= option has been
945 renamed IPv6AcceptRA=, without altering its behaviour. The old
946 setting name remains available for compatibility reasons.
947
948 * The systemd-networkd VTI/VTI6 tunneling support gained new options
949 Key=, InputKey= and OutputKey=.
950
951 * systemd-networkd gained support for VRF ("Virtual Routing Function")
952 interface configuration.
953
954 * "systemctl edit" may now be used to create new unit files by
955 specifying the --force switch.
956
957 * sd-event gained a new function sd_event_get_iteration() for
958 requesting the current iteration counter of the event loop. It starts
959 at zero and is increased by one with each event loop iteration.
960
43a569a1
ZJS
961 * A new rpm macro %systemd_ordering is provided by the macros.systemd
962 file. It can be used in lieu of %systemd_requires in packages which
963 don't use any systemd functionality and are intended to be installed
964 in minimal containers without systemd present. This macro provides
ce830873 965 ordering dependencies to ensure that if the package is installed in
43a569a1
ZJS
966 the same rpm transaction as systemd, systemd will be installed before
967 the scriptlets for the package are executed, allowing unit presets
968 to be handled.
969
970 New macros %_systemdgeneratordir and %_systemdusergeneratordir have
971 been added to simplify packaging of generators.
972
973 * The os-release file gained VERSION_CODENAME field for the
974 distribution nickname (e.g. VERSION_CODENAME=woody).
975
976 * New udev property UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG=1
977 can be set to disable parsing of metadata and the creation
978 of persistent symlinks for that device.
979
0f1da52b
LP
980 * The v230 change to tag framebuffer devices (/dev/fb*) with "uaccess"
981 to make them available to logged-in users has been reverted.
982
983 * Much of the common code of the various systemd components is now
984 built into an internal shared library libsystemd-shared-231.so
985 (incorporating the systemd version number in the name, to be updated
986 with future releases) that the components link to. This should
987 decrease systemd footprint both in memory during runtime and on
988 disk. Note that the shared library is not for public use, and is
989 neither API not ABI stable, but is likely to change with every new
1ecbf32f
ZJS
990 released update. Packagers need to make sure that binaries
991 linking to libsystemd-shared.so are updated in step with the
992 library.
43a569a1 993
fcd30826
LP
994 * Configuration for "mkosi" is now part of the systemd
995 repository. mkosi is a tool to easily build legacy-free OS images,
996 and is available on github: https://github.com/systemd/mkosi. If
997 "mkosi" is invoked in the build tree a new raw OS image is generated
998 incorporating the systemd sources currently being worked on and a
999 clean, fresh distribution installation. The generated OS image may be
ce830873 1000 booted up with "systemd-nspawn -b -i", qemu-kvm or on any physical
fcd30826
LP
1001 UEFI PC. This functionality is particularly useful to easily test
1002 local changes made to systemd in a pristine, defined environment. See
1003 HACKING for details.
ceeddf79 1004
4ffe2479
ZJS
1005 * configure learned the --with-support-url= option to specify the
1006 distribution's bugtracker.
1007
38b383d9
LP
1008 Contributions from: Alban Crequy, Alessandro Puccetti, Alessio Igor
1009 Bogani, Alexander Kuleshov, Alexander Kurtz, Alex Gaynor, Andika
1010 Triwidada, Andreas Pokorny, Andreas Rammhold, Andrew Jeddeloh, Ansgar
1011 Burchardt, Atrotors, Benjamin Drung, Brian Boylston, Christian Hesse,
1012 Christian Rebischke, Daniele Medri, Daniel Mack, Dave Reisner, David
1013 Herrmann, David Michael, Djalal Harouni, Douglas Christman, Elias
1014 Probst, Evgeny Vereshchagin, Federico Mena Quintero, Felipe Sateler,
1015 Franck Bui, Harald Hoyer, Ian Lee, Ivan Shapovalov, Jakub Wilk, Jan
1016 Janssen, Jean-Sébastien Bour, John Paul Adrian Glaubitz, Jouke
1017 Witteveen, Kai Ruhnau, kpengboy, Kyle Walker, Lénaïc Huard, Lennart
1018 Poettering, Luca Bruno, Lukas Lösche, Lukáš Nykrýn, mahkoh, Marcel
1019 Holtmann, Martin Pitt, Marty Plummer, Matthieu Codron, Max Prokhorov,
1020 Michael Biebl, Michael Karcher, Michael Olbrich, Michał Bartoszkiewicz,
1021 Michal Sekletar, Michal Soltys, Minkyung, Muhammet Kara, mulkieran,
1022 Otto Wallenius, Pablo Lezaeta Reyes, Peter Hutterer, Ronny Chevalier,
1023 Rusty Bird, Stef Walter, Susant Sahani, Tejun Heo, Thomas Blume, Thomas
771de3f5
ZJS
1024 Haller, Thomas H. P. Andersen, Tobias Jungel, Tom Gundersen, Tom Yan,
1025 Topi Miettinen, Torstein Husebø, Valentin Vidić, Viktar Vaŭčkievič,
38b383d9 1026 WaLyong Cho, Weng Xuetian, Werner Fink, Zbigniew Jędrzejewski-Szmek
5cd118ba 1027
38b383d9 1028 — Berlin, 2016-07-25
5cd118ba 1029
46e40fab 1030CHANGES WITH 230:
7f6e8043 1031
61ecb465
LP
1032 * DNSSEC is now turned on by default in systemd-resolved (in
1033 "allow-downgrade" mode), but may be turned off during compile time by
1034 passing "--with-default-dnssec=no" to "configure" (and of course,
1035 during runtime with DNSSEC= in resolved.conf). We recommend
1036 downstreams to leave this on at least during development cycles and
1037 report any issues with the DNSSEC logic upstream. We are very
1038 interested in collecting feedback about the DNSSEC validator and its
1039 limitations in the wild. Note however, that DNSSEC support is
1040 probably nothing downstreams should turn on in stable distros just
96d49011 1041 yet, as it might create incompatibilities with a few DNS servers and
61ecb465
LP
1042 networks. We tried hard to make sure we downgrade to non-DNSSEC mode
1043 automatically whenever we detect such incompatible setups, but there
1044 might be systems we do not cover yet. Hence: please help us testing
1045 the DNSSEC code, leave this on where you can, report back, but then
1046 again don't consider turning this on in your stable, LTS or
e40a326c
LP
1047 production release just yet. (Note that you have to enable
1048 nss-resolve in /etc/nsswitch.conf, to actually use systemd-resolved
1049 and its DNSSEC mode for host name resolution from local
1050 applications.)
61ecb465 1051
96515dbf 1052 * systemd-resolve conveniently resolves DANE records with the --tlsa
e40a326c 1053 option and OPENPGPKEY records with the --openpgp option. It also
e75690c3 1054 supports dumping raw DNS record data via the new --raw= switch.
96515dbf 1055
97e5530c
ZJS
1056 * systemd-logind will now by default terminate user processes that are
1057 part of the user session scope unit (session-XX.scope) when the user
977f2bea 1058 logs out. This behavior is controlled by the KillUserProcesses=
e40a326c
LP
1059 setting in logind.conf, and the previous default of "no" is now
1060 changed to "yes". This means that user sessions will be properly
1061 cleaned up after, but additional steps are necessary to allow
1062 intentionally long-running processes to survive logout.
97e5530c
ZJS
1063
1064 While the user is logged in at least once, user@.service is running,
1065 and any service that should survive the end of any individual login
1066 session can be started at a user service or scope using systemd-run.
e40a326c 1067 systemd-run(1) man page has been extended with an example which shows
8951eaec 1068 how to run screen in a scope unit underneath user@.service. The same
e40a326c 1069 command works for tmux.
97e5530c
ZJS
1070
1071 After the user logs out of all sessions, user@.service will be
1072 terminated too, by default, unless the user has "lingering" enabled.
1073 To effectively allow users to run long-term tasks even if they are
152199f2
ZJS
1074 logged out, lingering must be enabled for them. See loginctl(1) for
1075 details. The default polkit policy was modified to allow users to
1076 set lingering for themselves without authentication.
7f6e8043 1077
95365a57 1078 Previous defaults can be restored at compile time by the
e40a326c 1079 --without-kill-user-processes option to "configure".
7f6e8043 1080
e75690c3
ZJS
1081 * systemd-logind gained new configuration settings SessionsMax= and
1082 InhibitorsMax=, both with a default of 8192. It will not register new
188d3082 1083 user sessions or inhibitors above this limit.
e75690c3
ZJS
1084
1085 * systemd-logind will now reload configuration on SIGHUP.
1086
96515dbf 1087 * The unified cgroup hierarchy added in Linux 4.5 is now supported.
e40a326c 1088 Use systemd.unified_cgroup_hierarchy=1 on the kernel command line to
25b0e6cb
LP
1089 enable. Also, support for the "io" cgroup controller in the unified
1090 hierarchy has been added, so that the "memory", "pids" and "io" are
1091 now the controllers that are supported on the unified hierarchy.
e40a326c 1092
96515dbf
ZJS
1093 WARNING: it is not possible to use previous systemd versions with
1094 systemd.unified_cgroup_hierarchy=1 and the new kernel. Therefore it
1095 is necessary to also update systemd in the initramfs if using the
e40a326c 1096 unified hierarchy. An updated SELinux policy is also required.
96515dbf 1097
e40a326c
LP
1098 * LLDP support has been extended, and both passive (receive-only) and
1099 active (sender) modes are supported. Passive mode ("routers-only") is
8951eaec
ZJS
1100 enabled by default in systemd-networkd. Active LLDP mode is enabled
1101 by default for containers on the internal network. The "networkctl
e40a326c
LP
1102 lldp" command may be used to list information gathered. "networkctl
1103 status" will also show basic LLDP information on connected peers now.
96515dbf 1104
e40a326c
LP
1105 * The IAID and DUID unique identifier sent in DHCP requests may now be
1106 configured for the system and each .network file managed by
e75690c3
ZJS
1107 systemd-networkd using the DUIDType=, DUIDRawData=, IAID= options.
1108
1109 * systemd-networkd gained support for configuring proxy ARP support for
1110 each interface, via the ProxyArp= setting in .network files. It also
1111 gained support for configuring the multicast querier feature of
1112 bridge devices, via the new MulticastQuerier= setting in .netdev
1113 files. Similarly, snooping on the IGMP traffic can be controlled
1114 via the new setting MulticastSnooping=.
1115
1116 A new setting PreferredLifetime= has been added for addresses
1117 configured in .network file to configure the lifetime intended for an
1118 address.
1119
1120 The systemd-networkd DHCP server gained the option EmitRouter=, which
1121 defaults to yes, to configure whether the DHCP Option 3 (Router)
1122 should be emitted.
96515dbf 1123
e40a326c 1124 * The testing tool /usr/lib/systemd/systemd-activate is renamed to
97e5530c
ZJS
1125 systemd-socket-activate and installed into /usr/bin. It is now fully
1126 supported.
1127
e40a326c
LP
1128 * systemd-journald now uses separate threads to flush changes to disk
1129 when closing journal files, thus reducing impact of slow disk I/O on
1130 logging performance.
96515dbf 1131
e75690c3
ZJS
1132 * The sd-journal API gained two new calls
1133 sd_journal_open_directory_fd() and sd_journal_open_files_fd() which
1134 can be used to open journal files using file descriptors instead of
1135 file or directory paths. sd_journal_open_container() has been
1136 deprecated, sd_journal_open_directory_fd() should be used instead
1137 with the flag SD_JOURNAL_OS_ROOT.
1138
1139 * journalctl learned a new output mode "-o short-unix" that outputs log
1140 lines prefixed by their UNIX time (i.e. seconds since Jan 1st, 1970
1141 UTC). It also gained support for a new --no-hostname setting to
1142 suppress the hostname column in the family of "short" output modes.
1143
e40a326c
LP
1144 * systemd-ask-password now optionally skips printing of the password to
1145 stdout with --no-output which can be useful in scripts.
96515dbf
ZJS
1146
1147 * Framebuffer devices (/dev/fb*) and 3D printers and scanners
1148 (devices tagged with ID_MAKER_TOOL) are now tagged with
1149 "uaccess" and are available to logged in users.
1150
e75690c3 1151 * The DeviceAllow= unit setting now supports specifiers (with "%").
e40a326c
LP
1152
1153 * "systemctl show" gained a new --value switch, which allows print a
1154 only the contents of a specific unit property, without also printing
8951eaec
ZJS
1155 the property's name. Similar support was added to "show*" verbs
1156 of loginctl and machinectl that output "key=value" lists.
e40a326c 1157
e75690c3
ZJS
1158 * A new unit type "generated" was added for files dynamically generated
1159 by generator tools. Similarly, a new unit type "transient" is used
1160 for unit files created using the runtime API. "systemctl enable" will
1161 refuse to operate on such files.
1162
e40a326c
LP
1163 * A new command "systemctl revert" has been added that may be used to
1164 revert to the vendor version of a unit file, in case local changes
1165 have been made by adding drop-ins or overriding the unit file.
1166
1167 * "machinectl clean" gained a new verb to automatically remove all or
1168 just hidden container images.
1169
e40a326c
LP
1170 * systemd-tmpfiles gained support for a new line type "e" for emptying
1171 directories, if they exist, without creating them if they don't.
1172
e40a326c
LP
1173 * systemd-nspawn gained support for automatically patching the UID/GIDs
1174 of the owners and the ACLs of all files and directories in a
1175 container tree to match the UID/GID user namespacing range selected
1176 for the container invocation. This mode is enabled via the new
24597ee0
ZJS
1177 --private-users-chown switch. It also gained support for
1178 automatically choosing a free, previously unused UID/GID range when
1179 starting a container, via the new --private-users=pick setting (which
1180 implies --private-users-chown). Together, these options for the first
1181 time make user namespacing for nspawn containers fully automatic and
1182 thus deployable. The systemd-nspawn@.service template unit file has
1183 been changed to use this functionality by default.
e40a326c 1184
25b0e6cb
LP
1185 * systemd-nspawn gained a new --network-zone= switch, that allows
1186 creating ad-hoc virtual Ethernet links between multiple containers,
1187 that only exist as long as at least one container referencing them is
1188 running. This allows easy connecting of multiple containers with a
1189 common link that implements an Ethernet broadcast domain. Each of
1190 these network "zones" may be named relatively freely by the user, and
1191 may be referenced by any number of containers, but each container may
1192 only reference one of these "zones". On the lower level, this is
1193 implemented by an automatically managed bridge network interface for
1194 each zone, that is created when the first container referencing its
1195 zone is created and removed when the last one referencing its zone
1196 terminates.
1197
e40a326c 1198 * The default start timeout may now be configured on the kernel command
8951eaec
ZJS
1199 line via systemd.default_timeout_start_sec=. It was already
1200 configurable via the DefaultTimeoutStartSec= option in
1201 /etc/systemd/system.conf.
e40a326c 1202
030bd839 1203 * Socket units gained a new TriggerLimitIntervalSec= and
e40a326c
LP
1204 TriggerLimitBurst= setting to configure a limit on the activation
1205 rate of the socket unit.
1206
1207 * The LimitNICE= setting now optionally takes normal UNIX nice values
1208 in addition to the raw integer limit value. If the specified
1209 parameter is prefixed with "+" or "-" and is in the range -20..19 the
1210 value is understood as UNIX nice value. If not prefixed like this it
1211 is understood as raw RLIMIT_NICE limit.
1212
999a43f8
LP
1213 * Note that the effect of the PrivateDevices= unit file setting changed
1214 slightly with this release: the per-device /dev file system will be
1215 mounted read-only from this version on, and will have "noexec"
188d3082 1216 set. This (minor) change of behavior might cause some (exceptional)
999a43f8
LP
1217 legacy software to break, when PrivateDevices=yes is set for its
1218 service. Please leave PrivateDevices= off if you run into problems
1219 with this.
1220
e75690c3
ZJS
1221 * systemd-bootchart has been split out to a separate repository:
1222 https://github.com/systemd/systemd-bootchart
1223
1224 * systemd-bus-proxyd has been removed, as kdbus is unlikely to still be
1225 merged into the kernel in its current form.
1226
1227 * The compatibility libraries libsystemd-daemon.so,
1228 libsystemd-journal.so, libsystemd-id128.so, and libsystemd-login.so
1229 which have been deprecated since systemd-209 have been removed along
1230 with the corresponding pkg-config files. All symbols provided by
1231 those libraries are provided by libsystemd.so.
1232
1233 * The Capabilities= unit file setting has been removed (it is ignored
1234 for backwards compatibility). AmbientCapabilities= and
1235 CapabilityBoundingSet= should be used instead.
1236
4f9020fa
DR
1237 * A new special target has been added, initrd-root-device.target,
1238 which creates a synchronization point for dependencies of the root
1239 device in early userspace. Initramfs builders must ensure that this
1240 target is now included in early userspace.
1241
e75690c3
ZJS
1242 Contributions from: Alban Crequy, Alexander Kuleshov, Alexander Shopov,
1243 Alex Crawford, Andre Klärner, Andrew Eikum, Beniamino Galvani, Benjamin
1244 Robin, Biao Lu, Bjørnar Ness, Calvin Owens, Christian Hesse, Clemens
1245 Gruber, Colin Guthrie, Daniel Drake, Daniele Medri, Daniel J Walsh,
1246 Daniel Mack, Dan Nicholson, daurnimator, David Herrmann, David
1247 R. Hedges, Elias Probst, Emmanuel Gil Peyrot, EMOziko, Evgeny
1248 Vereshchagin, Federico, Felipe Sateler, Filipe Brandenburger, Franck
1249 Bui, frankheckenbach, gdamjan, Georgia Brikis, Harald Hoyer, Hendrik
77ff6022
CG
1250 Brueckner, Hristo Venev, Iago López Galeiras, Ian Kelling, Ismo
1251 Puustinen, Jakub Wilk, Jaroslav Škarvada, Jeff Huang, Joel Holdsworth,
e75690c3
ZJS
1252 John Paul Adrian Glaubitz, Jonathan Boulle, kayrus, Klearchos
1253 Chaloulos, Kyle Russell, Lars Uebernickel, Lennart Poettering, Lubomir
1254 Rintel, Lukáš Nykrýn, Mantas Mikulėnas, Marcel Holtmann, Martin Pitt,
77ff6022
CG
1255 Michael Biebl, michaelolbrich, Michał Bartoszkiewicz, Michal Koutný,
1256 Michal Sekletar, Mike Frysinger, Mike Gilbert, Mingcong Bai, Ming Lin,
1257 mulkieran, muzena, Nalin Dahyabhai, Naohiro Aota, Nathan McSween,
e75690c3
ZJS
1258 Nicolas Braud-Santoni, Patrik Flykt, Peter Hutterer, Peter Mattern,
1259 Petr Lautrbach, Petros Angelatos, Piotr Drąg, Rabin Vincent, Robert
1260 Węcławski, Ronny Chevalier, Samuel Tardieu, Stefan Saraev, Stefan
1261 Schallenberg aka nafets227, Steven Siloti, Susant Sahani, Sylvain
1262 Plantefève, Taylor Smock, Tejun Heo, Thomas Blume, Thomas Haller,
1263 Thomas H. P. Andersen, Tobias Klauser, Tom Gundersen, topimiettinen,
46e40fab
ZJS
1264 Torstein Husebø, Umut Tezduyar Lindskog, Uwe Kleine-König, Victor Toso,
1265 Vinay Kulkarni, Vito Caputo, Vittorio G (VittGam), Vladimir Panteleev,
1266 Wieland Hoffmann, Wouter Verhelst, Yu Watanabe, Zbigniew
1267 Jędrzejewski-Szmek
e40a326c 1268
46e40fab 1269 — Fairfax, 2016-05-21
96515dbf 1270
61f32bff
MP
1271CHANGES WITH 229:
1272
d5f8b295
LP
1273 * The systemd-resolved DNS resolver service has gained a substantial
1274 set of new features, most prominently it may now act as a DNSSEC
1275 validating stub resolver. DNSSEC mode is currently turned off by
ed5f8840
ZJS
1276 default, but is expected to be turned on by default in one of the
1277 next releases. For now, we invite everybody to test the DNSSEC logic
1278 by setting DNSSEC=allow-downgrade in /etc/systemd/resolved.conf. The
1279 service also gained a full set of D-Bus interfaces, including calls
1280 to configure DNS and DNSSEC settings per link (for use by external
1281 network management software). systemd-resolved and systemd-networkd
1282 now distinguish between "search" and "routing" domains. The former
1283 are used to qualify single-label names, the latter are used purely
1284 for routing lookups within certain domains to specific links.
1285 resolved now also synthesizes RRs for all entries from /etc/hosts.
d5f8b295
LP
1286
1287 * The systemd-resolve tool (which is a client utility for
ed5f8840
ZJS
1288 systemd-resolved) has been improved considerably and is now fully
1289 supported and documented. Hence it has moved from /usr/lib/systemd to
1290 /usr/bin.
d5f8b295
LP
1291
1292 * /dev/disk/by-path/ symlink support has been (re-)added for virtio
1293 devices.
1294
a7c723c0
LP
1295 * The coredump collection logic has been reworked: when a coredump is
1296 collected it is now written to disk, compressed and processed
1297 (including stacktrace extraction) from a new instantiated service
1298 systemd-coredump@.service, instead of directly from the
1299 /proc/sys/kernel/core_pattern hook we provide. This is beneficial as
1300 processing large coredumps can take up a substantial amount of
1301 resources and time, and this previously happened entirely outside of
1302 systemd's service supervision. With the new logic the core_pattern
1303 hook only does minimal metadata collection before passing off control
1304 to the new instantiated service, which is configured with a time
1305 limit, a nice level and other settings to minimize negative impact on
1306 the rest of the system. Also note that the new logic will honour the
1307 RLIMIT_CORE setting of the crashed process, which now allows users
1308 and processes to turn off coredumping for their processes by setting
1309 this limit.
1310
1311 * The RLIMIT_CORE resource limit now defaults to "unlimited" for PID 1
1312 and all forked processes by default. Previously, PID 1 would leave
1313 the setting at "0" for all processes, as set by the kernel. Note that
1314 the resource limit traditionally has no effect on the generated
1315 coredumps on the system if the /proc/sys/kernel/core_pattern hook
1316 logic is used. Since the limit is now honoured (see above) its
1317 default has been changed so that the coredumping logic is enabled by
1318 default for all processes, while allowing specific opt-out.
1319
1320 * When the stacktrace is extracted from processes of system users, this
1321 is now done as "systemd-coredump" user, in order to sandbox this
1322 potentially security sensitive parsing operation. (Note that when
1323 processing coredumps of normal users this is done under the user ID
1324 of process that crashed, as before.) Packagers should take notice
1325 that it is now necessary to create the "systemd-coredump" system user
1326 and group at package installation time.
1327
d5f8b295
LP
1328 * The systemd-activate socket activation testing tool gained support
1329 for SOCK_DGRAM and SOCK_SEQPACKET sockets using the new --datagram
1330 and --seqpacket switches. It also has been extended to support both
1331 new-style and inetd-style file descriptor passing. Use the new
1332 --inetd switch to request inetd-style file descriptor passing.
1333
8968aea0
MP
1334 * Most systemd tools now honor a new $SYSTEMD_COLORS environment
1335 variable, which takes a boolean value. If set to false, ANSI color
d5f8b295
LP
1336 output is disabled in the tools even when run on a terminal that
1337 supports it.
1338
1339 * The VXLAN support in networkd now supports two new settings
1340 DestinationPort= and PortRange=.
1341
1342 * A new systemd.machine_id= kernel command line switch has been added,
1343 that may be used to set the machine ID in /etc/machine-id if it is
1344 not initialized yet. This command line option has no effect if the
1345 file is already initialized.
1346
1347 * systemd-nspawn gained a new --as-pid2 switch that invokes any
1348 specified command line as PID 2 rather than PID 1 in the
ed5f8840
ZJS
1349 container. In this mode PID 1 is a minimal stub init process that
1350 implements the special POSIX and Linux semantics of PID 1 regarding
1351 signal and child process management. Note that this stub init process
1352 is implemented in nspawn itself and requires no support from the
1353 container image. This new logic is useful to support running
1354 arbitrary commands in the container, as normal processes are
d5f8b295
LP
1355 generally not prepared to run as PID 1.
1356
1357 * systemd-nspawn gained a new --chdir= switch for setting the current
1358 working directory for the process started in the container.
1359
ed5f8840
ZJS
1360 * "journalctl /dev/sda" will now output all kernel log messages for
1361 specified device from the current boot, in addition to all devices
1362 that are parents of it. This should make log output about devices
1363 pretty useful, as long as kernel drivers attach enough metadata to
1364 the log messages. (The usual SATA drivers do.)
d5f8b295
LP
1365
1366 * The sd-journal API gained two new calls
1367 sd_journal_has_runtime_files() and sd_journal_has_persistent_files()
1368 that report whether log data from /run or /var has been found.
1369
1370 * journalctl gained a new switch "--fields" that prints all journal
1371 record field names currently in use in the journal. This is backed
1372 by two new sd-journal API calls sd_journal_enumerate_fields() and
1373 sd_journal_restart_fields().
1374
1375 * Most configurable timeouts in systemd now expect an argument of
8968aea0
MP
1376 "infinity" to turn them off, instead of "0" as before. The semantics
1377 from now on is that a timeout of "0" means "now", and "infinity"
1378 means "never". To maintain backwards compatibility, "0" continues to
1379 turn off previously existing timeout settings.
d5f8b295
LP
1380
1381 * "systemctl reload-or-try-restart" has been renamed to "systemctl
8968aea0
MP
1382 try-reload-or-restart" to clarify what it actually does: the "try"
1383 logic applies to both reloading and restarting, not just restarting.
1384 The old name continues to be accepted for compatibility.
1385
1386 * On boot-up, when PID 1 detects that the system clock is behind the
1387 release date of the systemd version in use, the clock is now set
1388 to the latter. Previously, this was already done in timesyncd, in order
d5f8b295
LP
1389 to avoid running with clocks set to the various clock epochs such as
1390 1902, 1938 or 1970. With this change the logic is now done in PID 1
1391 in addition to timesyncd during early boot-up, so that it is enforced
1392 before the first process is spawned by systemd. Note that the logic
1393 in timesyncd remains, as it is more comprehensive and ensures
ed5f8840 1394 clock monotonicity by maintaining a persistent timestamp file in
d5f8b295
LP
1395 /var. Since /var is generally not available in earliest boot or the
1396 initrd, this part of the logic remains in timesyncd, and is not done
1397 by PID 1.
1398
50f48ad3
DM
1399 * Support for tweaking details in net_cls.class_id through the
1400 NetClass= configuration directive has been removed, as the kernel
1401 people have decided to deprecate that controller in cgroup v2.
1402 Userspace tools such as nftables are moving over to setting rules
1403 that are specific to the full cgroup path of a task, which obsoletes
1404 these controllers anyway. The NetClass= directive is kept around for
1405 legacy compatibility reasons. For a more in-depth description of the
1406 kernel change, please refer to the respective upstream commit:
1407
1408 https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bd1060a1d671
1409
d5f8b295 1410 * A new service setting RuntimeMaxSec= has been added that may be used
8968aea0 1411 to specify a maximum runtime for a service. If the timeout is hit, the
d5f8b295
LP
1412 service is terminated and put into a failure state.
1413
8968aea0
MP
1414 * A new service setting AmbientCapabilities= has been added. It allows
1415 configuration of additional Linux process capabilities that are
1416 passed to the activated processes. This is only available on very
d5f8b295
LP
1417 recent kernels.
1418
1419 * The process resource limit settings in service units may now be used
1420 to configure hard and soft limits individually.
1421
8968aea0 1422 * The various libsystemd APIs such as sd-bus or sd-event now publicly
ed5f8840
ZJS
1423 expose support for gcc's __attribute__((cleanup())) C extension.
1424 Specifically, for many object destructor functions alternative
1425 versions have been added that have names suffixed with "p" and take a
1426 pointer to a pointer to the object to destroy, instead of just a
1427 pointer to the object itself. This is useful because these destructor
1428 functions may be used directly as parameters to the cleanup
1429 construct. Internally, systemd has been a heavy user of this GCC
1430 extension for a long time, and with this change similar support is
1431 now available to consumers of the library outside of systemd. Note
8968aea0 1432 that by using this extension in your sources compatibility with old
ed5f8840
ZJS
1433 and strictly ANSI compatible C compilers is lost. However, all gcc or
1434 LLVM versions of recent years support this extension.
d5f8b295
LP
1435
1436 * Timer units gained support for a new setting RandomizedDelaySec= that
8968aea0
MP
1437 allows configuring some additional randomized delay to the configured
1438 time. This is useful to spread out timer events to avoid load peaks in
1439 clusters or larger setups.
d5f8b295
LP
1440
1441 * Calendar time specifications now support sub-second accuracy.
1442
1443 * Socket units now support listening on SCTP and UDP-lite protocol
1444 sockets.
1445
1446 * The sd-event API now comes with a full set of man pages.
1447
1448 * Older versions of systemd contained experimental support for
1449 compressing journal files and coredumps with the LZ4 compressor that
1450 was not compatible with the lz4 binary (due to API limitations of the
1451 lz4 library). This support has been removed; only support for files
1452 compatible with the lz4 binary remains. This LZ4 logic is now
1453 officially supported and no longer considered experimental.
1454
1455 * The dkr image import logic has been removed again from importd. dkr's
1456 micro-services focus doesn't fit into the machine image focus of
1457 importd, and quickly got out of date with the upstream dkr API.
1458
1459 * Creation of the /run/lock/lockdev/ directory was dropped from
1460 tmpfiles.d/legacy.conf. Better locking mechanisms like flock() have
61f32bff
MP
1461 been available for many years. If you still need this, you need to
1462 create your own tmpfiles.d config file with:
d5f8b295
LP
1463
1464 d /run/lock/lockdev 0775 root lock -
61f32bff 1465
3545ab35
LP
1466 Contributions from: Abdo Roig-Maranges, Alban Crequy, Aleksander
1467 Adamowski, Alexander Kuleshov, Andreas Pokorny, Andrei Borzenkov,
1468 Andrew Wilcox, Arthur Clement, Beniamino Galvani, Casey Schaufler,
1469 Chris Atkinson, Chris Mayo, Christian Hesse, Damjan Georgievski, Dan
1470 Dedrick, Daniele Medri, Daniel J Walsh, Daniel Korostil, Daniel Mack,
1471 David Herrmann, Dimitri John Ledkov, Dominik Hannen, Douglas Christman,
1472 Evgeny Vereshchagin, Filipe Brandenburger, Franck Bui, Gabor Kelemen,
1473 Harald Hoyer, Hayden Walles, Helmut Grohne, Henrik Kaare Poulsen,
1474 Hristo Venev, Hui Wang, Indrajit Raychaudhuri, Ismo Puustinen, Jakub
1475 Wilk, Jan Alexander Steffens (heftig), Jan Engelhardt, Jan Synacek,
1476 Joost Bremmer, Jorgen Schaefer, Karel Zak, Klearchos Chaloulos,
1477 lc85446, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel
1478 Holtmann, Martin Pitt, Michael Biebl, Michael Olbrich, Michael Scherer,
1479 Michał Górny, Michal Sekletar, Nicolas Cornu, Nicolas Iooss, Nils
1480 Carlson, nmartensen, nnz1024, Patrick Ohly, Peter Hutterer, Phillip Sz,
1481 Ronny Chevalier, Samu Kallio, Shawn Landden, Stef Walter, Susant
1482 Sahani, Sylvain Plantefève, Tadej Janež, Thomas Hindoe Paaboel
1483 Andersen, Tom Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito
1484 Caputo, WaLyong Cho, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
1485
ccddd104 1486 — Berlin, 2016-02-11
61f32bff 1487
a11c7ea5
LP
1488CHANGES WITH 228:
1489
a11c7ea5
LP
1490 * A number of properties previously only settable in unit
1491 files are now also available as properties to set when
1492 creating transient units programmatically via the bus, as it
1493 is exposed with systemd-run's --property=
1494 setting. Specifically, these are: SyslogIdentifier=,
1495 SyslogLevelPrefix=, TimerSlackNSec=, OOMScoreAdjust=,
1496 EnvironmentFile=, ReadWriteDirectories=,
1497 ReadOnlyDirectories=, InaccessibleDirectories=,
1498 ProtectSystem=, ProtectHome=, RuntimeDirectory=.
1499
28c85daf
LP
1500 * When creating transient services via the bus API it is now
1501 possible to pass in a set of file descriptors to use as
1502 STDIN/STDOUT/STDERR for the invoked process.
a11c7ea5 1503
f1f8a5a5
LP
1504 * Slice units may now be created transiently via the bus APIs,
1505 similar to the way service and scope units may already be
1506 created transiently.
1507
a11c7ea5
LP
1508 * Wherever systemd expects a calendar timestamp specification
1509 (like in journalctl's --since= and --until= switches) UTC
1510 timestamps are now supported. Timestamps suffixed with "UTC"
1511 are now considered to be in Universal Time Coordinated
1512 instead of the local timezone. Also, timestamps may now
815bb5bd 1513 optionally be specified with sub-second accuracy. Both of
a11c7ea5
LP
1514 these additions also apply to recurring calendar event
1515 specification, such as OnCalendar= in timer units.
1516
28c85daf
LP
1517 * journalctl gained a new "--sync" switch that asks the
1518 journal daemon to write all so far unwritten log messages to
1519 disk and sync the files, before returning.
1520
a11c7ea5
LP
1521 * systemd-tmpfiles learned two new line types "q" and "Q" that
1522 operate like "v", but also set up a basic btrfs quota
1523 hierarchy when used on a btrfs file system with quota
1524 enabled.
1525
f1f8a5a5
LP
1526 * tmpfiles' "v", "q" and "Q" will now create a plain directory
1527 instead of a subvolume (even on a btrfs file system) if the
1528 root directory is a plain directory, and not a
1529 subvolume. This should simplify things with certain chroot()
1530 environments which are not aware of the concept of btrfs
1531 subvolumes.
1532
a11c7ea5
LP
1533 * systemd-detect-virt gained a new --chroot switch to detect
1534 whether execution takes place in a chroot() environment.
1535
28c85daf 1536 * CPUAffinity= now takes CPU index ranges in addition to
a11c7ea5
LP
1537 individual indexes.
1538
28c85daf
LP
1539 * The various memory-related resource limit settings (such as
1540 LimitAS=) now understand the usual K, M, G, ... suffixes to
1541 the base of 1024 (IEC). Similar, the time-related resource
1542 limit settings understand the usual min, h, day, ...
1543 suffixes now.
1544
f1f8a5a5
LP
1545 * There's a new system.conf setting DefaultTasksMax= to
1546 control the default TasksMax= setting for services and
1547 scopes running on the system. (TasksMax= is the primary
1548 setting that exposes the "pids" cgroup controller on systemd
1549 and was introduced in the previous systemd release.) The
1550 setting now defaults to 512, which means services that are
1551 not explicitly configured otherwise will only be able to
1552 create 512 processes or threads at maximum, from this
1553 version on. Note that this means that thread- or
1554 process-heavy services might need to be reconfigured to set
1555 TasksMax= to a higher value. It is sufficient to set
1556 TasksMax= in these specific unit files to a higher value, or
1557 even "infinity". Similar, there's now a logind.conf setting
1558 UserTasksMax= that defaults to 4096 and limits the total
1559 number of processes or tasks each user may own
1560 concurrently. nspawn containers also have the TasksMax=
1561 value set by default now, to 8192. Note that all of this
1562 only has an effect if the "pids" cgroup controller is
1563 enabled in the kernel. The general benefit of these changes
1564 should be a more robust and safer system, that provides a
1565 certain amount of per-service fork() bomb protection.
1566
28c85daf
LP
1567 * systemd-nspawn gained the new --network-veth-extra= switch
1568 to define additional and arbitrarily-named virtual Ethernet
1569 links between the host and the container.
1570
1571 * A new service execution setting PassEnvironment= has been
1572 added that allows importing select environment variables
1573 from PID1's environment block into the environment block of
1574 the service.
1575
ddb4b0d3 1576 * Timer units gained support for a new RemainAfterElapse=
595bfe7d 1577 setting which takes a boolean argument. It defaults to on,
ddb4b0d3
LP
1578 exposing behaviour unchanged to previous releases. If set to
1579 off, timer units are unloaded after they elapsed if they
1580 cannot elapse again. This is particularly useful for
1581 transient timer units, which shall not stay around longer
1582 than until they first elapse.
1583
a11c7ea5 1584 * systemd will now bump the net.unix.max_dgram_qlen to 512 by
28c85daf
LP
1585 default now (the kernel default is 16). This is beneficial
1586 for avoiding blocking on AF_UNIX/SOCK_DGRAM sockets since it
a11c7ea5
LP
1587 allows substantially larger numbers of queued
1588 datagrams. This should increase the capability of systemd to
1589 parallelize boot-up, as logging and sd_notify() are unlikely
1590 to stall execution anymore. If you need to change the value
1591 from the new defaults, use the usual sysctl.d/ snippets.
1592
28c85daf
LP
1593 * The compression framing format used by the journal or
1594 coredump processing has changed to be in line with what the
1595 official LZ4 tools generate. LZ4 compression support in
1596 systemd was considered unsupported previously, as the format
1597 was not compatible with the normal tools. With this release
1598 this has changed now, and it is hence safe for downstream
1599 distributions to turn it on. While not compressing as well
815bb5bd 1600 as the XZ, LZ4 is substantially faster, which makes
28c85daf
LP
1601 it a good default choice for the compression logic in the
1602 journal and in coredump handling.
a11c7ea5 1603
28c85daf
LP
1604 * Any reference to /etc/mtab has been dropped from
1605 systemd. The file has been obsolete since a while, but
1606 systemd refused to work on systems where it was incorrectly
815bb5bd 1607 set up (it should be a symlink or non-existent). Please make
28c85daf
LP
1608 sure to update to util-linux 2.27.1 or newer in conjunction
1609 with this systemd release, which also drops any reference to
1610 /etc/mtab. If you maintain a distribution make sure that no
1611 software you package still references it, as this is a
1612 likely source of bugs. There's also a glibc bug pending,
1613 asking for removal of any reference to this obsolete file:
1614
1615 https://sourceware.org/bugzilla/show_bug.cgi?id=19108
a11c7ea5 1616
d5bd92bb
LP
1617 Note that only util-linux versions built with
1618 --enable-libmount-force-mountinfo are supported.
1619
a11c7ea5
LP
1620 * Support for the ".snapshot" unit type has been removed. This
1621 feature turned out to be little useful and little used, and
1622 has now been removed from the core and from systemctl.
1623
b9e2f7eb
LP
1624 * The dependency types RequiresOverridable= and
1625 RequisiteOverridable= have been removed from systemd. They
1626 have been used only very sparingly to our knowledge and
1627 other options that provide a similar effect (such as
1628 systemctl --mode=ignore-dependencies) are much more useful
1629 and commonly used. Moreover, they were only half-way
1630 implemented as the option to control behaviour regarding
1631 these dependencies was never added to systemctl. By removing
1632 these dependency types the execution engine becomes a bit
1633 simpler. Unit files that use these dependencies should be
1634 changed to use the non-Overridable dependency types
1635 instead. In fact, when parsing unit files with these
1636 options, that's what systemd will automatically convert them
1637 too, but it will also warn, asking users to fix the unit
1638 files accordingly. Removal of these dependency types should
1639 only affect a negligible number of unit files in the wild.
1640
1641 * Behaviour of networkd's IPForward= option changed
1642 (again). It will no longer maintain a per-interface setting,
1643 but propagate one way from interfaces where this is enabled
1644 to the global kernel setting. The global setting will be
1645 enabled when requested by a network that is set up, but
1646 never be disabled again. This change was made to make sure
1647 IPv4 and IPv6 behaviour regarding packet forwarding is
1648 similar (as the Linux IPv6 stack does not support
1649 per-interface control of this setting) and to minimize
1650 surprises.
1651
28c85daf
LP
1652 * In unit files the behaviour of %u, %U, %h, %s has
1653 changed. These specifiers will now unconditionally resolve
1654 to the various user database fields of the user that the
1655 systemd instance is running as, instead of the user
1656 configured in the specific unit via User=. Note that this
1657 effectively doesn't change much, as resolving of these
1658 specifiers was already turned off in the --system instance
1659 of systemd, as we cannot do NSS lookups from PID 1. In the
1660 --user instance of systemd these specifiers where correctly
1661 resolved, but hardly made any sense, since the user instance
1662 lacks privileges to do user switches anyway, and User= is
ce830873 1663 hence useless. Moreover, even in the --user instance of
28c85daf
LP
1664 systemd behaviour was awkward as it would only take settings
1665 from User= assignment placed before the specifier into
1666 account. In order to unify and simplify the logic around
1667 this the specifiers will now always resolve to the
1668 credentials of the user invoking the manager (which in case
1669 of PID 1 is the root user).
1670
1671 Contributions from: Andrew Jones, Beniamino Galvani, Boyuan
1672 Yang, Daniel Machon, Daniel Mack, David Herrmann, David
1673 Reynolds, David Strauss, Dongsu Park, Evgeny Vereshchagin,
f1f8a5a5
LP
1674 Felipe Sateler, Filipe Brandenburger, Franck Bui, Hristo
1675 Venev, Iago López Galeiras, Jan Engelhardt, Jan Janssen, Jan
1676 Synacek, Jesus Ornelas Aguayo, Karel Zak, kayrus, Kay Sievers,
1677 Lennart Poettering, Liu Yuan Yuan, Mantas Mikulėnas, Marcel
1678 Holtmann, Marcin Bachry, Marcos Alano, Marcos Mello, Mark
1679 Theunissen, Martin Pitt, Michael Marineau, Michael Olbrich,
1680 Michal Schmidt, Michal Sekletar, Mirco Tischler, Nick Owens,
1681 Nicolas Cornu, Patrik Flykt, Peter Hutterer, reverendhomer,
1682 Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Shawn Landden,
1683 Susant Sahani, Thomas Haller, Thomas Hindoe Paaboel Andersen,
1684 Tom Gundersen, Torstein Husebø, Vito Caputo, Zbigniew
1685 Jędrzejewski-Szmek
28c85daf 1686
ccddd104 1687 — Berlin, 2015-11-18
a11c7ea5 1688
c97e586d
DM
1689CHANGES WITH 227:
1690
1691 * systemd now depends on util-linux v2.27. More specifically,
1692 the newly added mount monitor feature in libmount now
1693 replaces systemd's former own implementation.
1694
1695 * libmount mandates /etc/mtab not to be regular file, and
1696 systemd now enforces this condition at early boot.
1697 /etc/mtab has been deprecated and warned about for a very
1698 long time, so systems running systemd should already have
1699 stopped having this file around as anything else than a
1700 symlink to /proc/self/mounts.
1701
d046fb93
LP
1702 * Support for the "pids" cgroup controller has been added. It
1703 allows accounting the number of tasks in a cgroup and
c97e586d
DM
1704 enforcing limits on it. This adds two new setting
1705 TasksAccounting= and TasksMax= to each unit, as well as a
6fd5517b 1706 global option DefaultTasksAccounting=.
c97e586d
DM
1707
1708 * Support for the "net_cls" cgroup controller has been added.
fe08a30b
LP
1709 It allows assigning a net class ID to each task in the
1710 cgroup, which can then be used in firewall rules and traffic
1711 shaping configurations. Note that the kernel netfilter net
1712 class code does not currently work reliably for ingress
1713 packets on unestablished sockets.
c97e586d
DM
1714
1715 This adds a new config directive called NetClass= to CGroup
6fd5517b 1716 enabled units. Allowed values are positive numbers for fixed
c97e586d
DM
1717 assignments and "auto" for picking a free value
1718 automatically.
1719
21d86c61
DM
1720 * 'systemctl is-system-running' now returns 'offline' if the
1721 system is not booted with systemd. This command can now be
1722 used as a substitute for 'systemd-notify --booted'.
1723
1724 * Watchdog timeouts have been increased to 3 minutes for all
1725 in-tree service files. Apparently, disk IO issues are more
1726 frequent than we hoped, and user reported >1 minute waiting
1727 for disk IO.
1728
1729 * 'machine-id-commit' functionality has been merged into
1730 'machine-id-setup --commit'. The separate binary has been
1731 removed.
1732
d046fb93
LP
1733 * The WorkingDirectory= directive in unit files may now be set
1734 to the special value '~'. In this case, the working
1735 directory is set to the home directory of the user
1736 configured in User=.
21d86c61 1737
fe08a30b
LP
1738 * "machinectl shell" will now open the shell in the home
1739 directory of the selected user by default.
1740
21d86c61 1741 * The CrashChVT= configuration file setting is renamed to
d046fb93
LP
1742 CrashChangeVT=, following our usual logic of not
1743 abbreviating unnecessarily. The old directive is still
1744 supported for compat reasons. Also, this directive now takes
1745 an integer value between 1 and 63, or a boolean value. The
1746 formerly supported '-1' value for disabling stays around for
1747 compat reasons.
21d86c61 1748
fe08a30b 1749 * The PrivateTmp=, PrivateDevices=, PrivateNetwork=,
8b5f9d15 1750 NoNewPrivileges=, TTYPath=, WorkingDirectory= and
fe08a30b
LP
1751 RootDirectory= properties can now be set for transient
1752 units.
1753
1754 * The systemd-analyze tool gained a new "set-log-target" verb
1755 to change the logging target the system manager logs to
1756 dynamically during runtime. This is similar to how
1757 "systemd-analyze set-log-level" already changes the log
1758 level.
1759
1760 * In nspawn /sys is now mounted as tmpfs, with only a selected
1761 set of subdirectories mounted in from the real sysfs. This
1762 enhances security slightly, and is useful for ensuring user
1763 namespaces work correctly.
1764
1765 * Support for USB FunctionFS activation has been added. This
1766 allows implementation of USB gadget services that are
1767 activated as soon as they are requested, so that they don't
595bfe7d 1768 have to run continuously, similar to classic socket
fe08a30b
LP
1769 activation.
1770
1771 * The "systemctl exit" command now optionally takes an
1772 additional parameter that sets the exit code to return from
1773 the systemd manager when exiting. This is only relevant when
1774 running the systemd user instance, or when running the
1775 system instance in a container.
1776
1777 * sd-bus gained the new API calls sd_bus_path_encode_many()
1778 and sd_bus_path_decode_many() that allow easy encoding and
1779 decoding of multiple identifier strings inside a D-Bus
1780 object path. Another new call sd_bus_default_flush_close()
1781 has been added to flush and close per-thread default
1782 connections.
1783
1784 * systemd-cgtop gained support for a -M/--machine= switch to
1785 show the control groups within a certain container only.
1786
1787 * "systemctl kill" gained support for an optional --fail
1788 switch. If specified the requested operation will fail of no
1789 processes have been killed, because the unit had no
1790 processes attached, or similar.
1791
bdba9227
DM
1792 * A new systemd.crash_reboot=1 kernel command line option has
1793 been added that triggers a reboot after crashing. This can
1794 also be set through CrashReboot= in systemd.conf.
1795
1796 * The RuntimeDirectory= setting now understands unit
1797 specifiers like %i or %f.
1798
ce830873 1799 * A new (still internal) library API sd-ipv4acd has been added,
fe08a30b
LP
1800 that implements address conflict detection for IPv4. It's
1801 based on code from sd-ipv4ll, and will be useful for
1802 detecting DHCP address conflicts.
1803
bdba9227
DM
1804 * File descriptors passed during socket activation may now be
1805 named. A new API sd_listen_fds_with_names() is added to
a8eaaee7 1806 access the names. The default names may be overridden,
bdba9227
DM
1807 either in the .socket file using the FileDescriptorName=
1808 parameter, or by passing FDNAME= when storing the file
1809 descriptors using sd_notify().
fe08a30b 1810
d046fb93
LP
1811 * systemd-networkd gained support for:
1812
0053598f 1813 - Setting the IPv6 Router Advertisement settings via
edf4126f 1814 IPv6AcceptRouterAdvertisements= in .network files.
d046fb93
LP
1815
1816 - Configuring the HelloTimeSec=, MaxAgeSec= and
1817 ForwardDelaySec= bridge parameters in .netdev files.
1818
1819 - Configuring PreferredSource= for static routes in
edf4126f 1820 .network files.
fe08a30b 1821
bdba9227
DM
1822 * The "ask-password" framework used to query for LUKS harddisk
1823 passwords or SSL passwords during boot gained support for
1824 caching passwords in the kernel keyring, if it is
1825 available. This makes sure that the user only has to type in
1826 a passphrase once if there are multiple objects to unlock
1827 with the same one. Previously, such password caching was
1828 available only when Plymouth was used; this moves the
1829 caching logic into the systemd codebase itself. The
1830 "systemd-ask-password" utility gained a new --keyname=
1831 switch to control which kernel keyring key to use for
1832 caching a password in. This functionality is also useful for
1833 enabling display managers such as gdm to automatically
1834 unlock the user's GNOME keyring if its passphrase, the
1835 user's password and the harddisk password are the same, if
1836 gdm-autologin is used.
fe08a30b
LP
1837
1838 * When downloading tar or raw images using "machinectl
1839 pull-tar" or "machinectl pull-raw", a matching ".nspawn"
1840 file is now also downloaded, if it is available and stored
1841 next to the image file.
c97e586d 1842
91d0d699
LP
1843 * Units of type ".socket" gained a new boolean setting
1844 Writable= which is only useful in conjunction with
1845 ListenSpecial=. If true, enables opening the specified
1846 special file in O_RDWR mode rather than O_RDONLY mode.
1847
1848 * systemd-rfkill has been reworked to become a singleton
1849 service that is activated through /dev/rfkill on each rfkill
1850 state change and saves the settings to disk. This way,
1851 systemd-rfkill is now compatible with devices that exist
1852 only intermittendly, and even restores state if the previous
1853 system shutdown was abrupt rather than clean.
1854
d046fb93
LP
1855 * The journal daemon gained support for vacuuming old journal
1856 files controlled by the number of files that shall remain,
1857 in addition to the already existing control by size and by
1858 date. This is useful as journal interleaving performance
6dd6a9c4 1859 degrades with too many separate journal files, and allows
d046fb93
LP
1860 putting an effective limit on them. The new setting defaults
1861 to 100, but this may be changed by setting SystemMaxFiles=
1862 and RuntimeMaxFiles= in journald.conf. Also, the
1863 "journalctl" tool gained the new --vacuum-files= switch to
1864 manually vacuum journal files to leave only the specified
1865 number of files in place.
c48eb61f 1866
bdba9227
DM
1867 * udev will now create /dev/disk/by-path links for ATA devices
1868 on kernels where that is supported.
c30f086f 1869
efce0ffe 1870 * Galician, Serbian, Turkish and Korean translations were added.
c97e586d 1871
61e6771c
LP
1872 Contributions from: Aaro Koskinen, Alban Crequy, Beniamino
1873 Galvani, Benjamin Robin, Branislav Blaskovic, Chen-Han Hsiao
1874 (Stanley), Daniel Buch, Daniel Machon, Daniel Mack, David
1875 Herrmann, David Milburn, doubleodoug, Evgeny Vereshchagin,
1876 Felipe Franciosi, Filipe Brandenburger, Fran Dieguez, Gabriel
1877 de Perthuis, Georg Müller, Hans de Goede, Hendrik Brueckner,
1878 Ivan Shapovalov, Jacob Keller, Jan Engelhardt, Jan Janssen,
1879 Jan Synacek, Jens Kuske, Karel Zak, Kay Sievers, Krzesimir
1880 Nowak, Krzysztof Kotlenga, Lars Uebernickel, Lennart
1881 Poettering, Lukas Nykryn, Łukasz Stelmach, Maciej Wereski,
1882 Marcel Holtmann, Marius Thesing, Martin Pitt, Michael Biebl,
1883 Michael Gebetsroither, Michal Schmidt, Michal Sekletar, Mike
1884 Gilbert, Muhammet Kara, nazgul77, Nicolas Cornu, NoXPhasma,
1885 Olof Johansson, Patrik Flykt, Pawel Szewczyk, reverendhomer,
1886 Ronny Chevalier, Sangjung Woo, Seong-ho Cho, Susant Sahani,
1887 Sylvain Plantefève, Thomas Haller, Thomas Hindoe Paaboel
1888 Andersen, Tom Gundersen, Tom Lyon, Viktar Vauchkevich,
1889 Zbigniew Jędrzejewski-Szmek, Марко М. Костић
1890
ccddd104 1891 — Berlin, 2015-10-07
c97e586d 1892
c9912c5e
DH
1893CHANGES WITH 226:
1894
5e8d4254
LP
1895 * The DHCP implementation of systemd-networkd gained a set of
1896 new features:
1897
1898 - The DHCP server now supports emitting DNS and NTP
1899 information. It may be enabled and configured via
1900 EmitDNS=, DNS=, EmitNTP=, and NTP=. If transmission of DNS
1901 and NTP information is enabled, but no servers are
1902 configured, the corresponding uplink information (if there
1903 is any) is propagated.
1904
1905 - Server and client now support transmission and reception
1906 of timezone information. It can be configured via the
1907 newly introduced network options UseTimezone=,
1908 EmitTimezone=, and Timezone=. Transmission of timezone
1909 information is enabled between host and containers by
1910 default now: the container will change its local timezone
1911 to what the host has set.
1912
1913 - Lease timeouts can now be configured via
1914 MaxLeaseTimeSec= and DefaultLeaseTimeSec=.
1915
1916 - The DHCP server improved on the stability of
1917 leases. Clients are more likely to get the same lease
1918 information back, even if the server loses state.
1919
1920 - The DHCP server supports two new configuration options to
1921 control the lease address pool metrics, PoolOffset= and
1922 PoolSize=.
1923
1924 * The encapsulation limit of tunnels in systemd-networkd may
1925 now be configured via 'EncapsulationLimit='. It allows
1926 modifying the maximum additional levels of encapsulation
1927 that are permitted to be prepended to a packet.
1928
1929 * systemd now supports the concept of user buses replacing
1930 session buses, if used with dbus-1.10 (and enabled via dbus
1931 --enable-user-session). It previously only supported this on
1932 kdbus-enabled systems, and this release expands this to
1933 'dbus-daemon' systems.
1934
1935 * systemd-networkd now supports predictable interface names
1936 for virtio devices.
1937
1938 * systemd now optionally supports the new Linux kernel
1939 "unified" control group hierarchy. If enabled via the kernel
1940 command-line option 'systemd.unified_cgroup_hierarchy=1',
1941 systemd will try to mount the unified cgroup hierarchy
1942 directly on /sys/fs/cgroup. If not enabled, or not
1943 available, systemd will fall back to the legacy cgroup
1944 hierarchy setup, as before. Host system and containers can
1945 mix and match legacy and unified hierarchies as they
856ca72b 1946 wish. nspawn understands the $UNIFIED_CGROUP_HIERARCHY
5e8d4254
LP
1947 environment variable to individually select the hierarchy to
1948 use for executed containers. By default, nspawn will use the
1949 unified hierarchy for the containers if the host uses the
1950 unified hierarchy, and the legacy hierarchy otherwise.
1951 Please note that at this point the unified hierarchy is an
1952 experimental kernel feature and is likely to change in one
1953 of the next kernel releases. Therefore, it should not be
1954 enabled by default in downstream distributions yet. The
1955 minimum required kernel version for the unified hierarchy to
1956 work is 4.2. Note that when the unified hierarchy is used
1957 for the first time delegated access to controllers is
1958 safe. Because of this systemd-nspawn containers will get
1959 access to controllers now, as will systemd user
1960 sessions. This means containers and user sessions may now
1961 manage their own resources, partitioning up what the system
1962 grants them.
1963
1964 * A new special scope unit "init.scope" has been introduced
1965 that encapsulates PID 1 of the system. It may be used to
1966 determine resource usage and enforce resource limits on PID
1967 1 itself. PID 1 hence moved out of the root of the control
1968 group tree.
1969
1970 * The cgtop tool gained support for filtering out kernel
1971 threads when counting tasks in a control group. Also, the
1972 count of processes is now recursively summed up by
1973 default. Two options -k and --recursive= have been added to
1974 revert to old behaviour. The tool has also been updated to
1975 work correctly in containers now.
1976
1977 * systemd-nspawn's --bind= and --bind-ro= options have been
1978 extended to allow creation of non-recursive bind mounts.
1979
c626bf1d
DM
1980 * libsystemd gained two new calls sd_pid_get_cgroup() and
1981 sd_peer_get_cgroup() which return the control group path of
5e8d4254
LP
1982 a process or peer of a connected AF_UNIX socket. This
1983 function call is particularly useful when implementing
1984 delegated subtrees support in the control group hierarchy.
1985
1986 * The "sd-event" event loop API of libsystemd now supports
1987 correct dequeuing of real-time signals, without losing
1988 signal events.
1989
1990 * When systemd requests a PolicyKit decision when managing
1991 units it will now add additional fields to the request,
1992 including unit name and desired operation. This enables more
1993 powerful PolicyKit policies, that make decisions depending
1994 on these parameters.
c9912c5e 1995
47f5a38c
LP
1996 * nspawn learnt support for .nspawn settings files, that may
1997 accompany the image files or directories of containers, and
1998 may contain additional settings for the container. This is
1999 an alternative to configuring container parameters via the
2000 nspawn command line.
2001
2f77decc
LP
2002 Contributions from: Cristian Rodríguez, Daniel Mack, David
2003 Herrmann, Eugene Yakubovich, Evgeny Vereshchagin, Filipe
2004 Brandenburger, Hans de Goede, Jan Alexander Steffens, Jan
2005 Synacek, Kay Sievers, Lennart Poettering, Mangix, Marcel
2006 Holtmann, Martin Pitt, Michael Biebl, Michael Chapman, Michal
2007 Sekletar, Peter Hutterer, Piotr Drąg, reverendhomer, Robin
2008 Hack, Susant Sahani, Sylvain Pasche, Thomas Hindoe Paaboel
23d08d1b 2009 Andersen, Tom Gundersen, Torstein Husebø
c9912c5e 2010
ccddd104 2011 — Berlin, 2015-09-08
c9912c5e 2012
ec5249a2
DM
2013CHANGES WITH 225:
2014
5e8d4254
LP
2015 * machinectl gained a new verb 'shell' which opens a fresh
2016 shell on the target container or the host. It is similar to
2017 the existing 'login' command of machinectl, but spawns the
2018 shell directly without prompting for username or
2019 password. The pseudo machine '.host' now refers to the local
2020 host and is used by default. Hence, 'machinectl shell' can
2021 be used as replacement for 'su -' which spawns a session as
2022 a fresh systemd unit in a way that is fully isolated from
2023 the originating session.
2024
2025 * systemd-networkd learned to cope with private-zone DHCP
2026 options and allows other programs to query the values.
2027
2028 * SELinux access control when enabling/disabling units is no
2029 longer enforced with this release. The previous
2030 implementation was incorrect, and a new corrected
2031 implementation is not yet available. As unit file operations
2032 are still protected via PolicyKit and D-Bus policy this is
2033 not a security problem. Yet, distributions which care about
2034 optimal SELinux support should probably not stabilize on
2035 this release.
2036
2037 * sd-bus gained support for matches of type "arg0has=", that
2038 test for membership of strings in string arrays sent in bus
2039 messages.
2040
2041 * systemd-resolved now dumps the contents of its DNS and LLMNR
2042 caches to the logs on reception of the SIGUSR1 signal. This
2043 is useful to debug DNS behaviour.
2044
2045 * The coredumpctl tool gained a new --directory= option to
2046 operate on journal files in a specific directory.
2047
2048 * "systemctl reboot" and related commands gained a new
2049 "--message=" option which may be used to set a free-text
2050 wall message when shutting down or rebooting the
2051 system. This message is also logged, which is useful for
2052 figuring out the reason for a reboot or shutdown a
2053 posteriori.
2054
2055 * The "systemd-resolve-host" tool's -i switch now takes
2056 network interface numbers as alternative to interface names.
2057
2058 * A new unit file setting for services has been introduced:
2059 UtmpMode= allows configuration of how precisely systemd
2060 handles utmp and wtmp entries for the service if this is
2061 enabled. This allows writing services that appear similar to
2062 user sessions in the output of the "w", "who", "last" and
2063 "lastlog" tools.
2064
2065 * systemd-resolved will now locally synthesize DNS resource
2066 records for the "localhost" and "gateway" domains as well as
2067 the local hostname. This should ensure that clients querying
2068 RRs via resolved will get similar results as those going via
2069 NSS, if nss-myhostname is enabled.
2070
2071 Contributions from: Alastair Hughes, Alex Crawford, Daniel
2072 Mack, David Herrmann, Dimitri John Ledkov, Eric Kostrowski,
2073 Evgeny Vereshchagin, Felipe Sateler, HATAYAMA Daisuke, Jan
2074 Pokorný, Jan Synacek, Johnny Robeson, Karel Zak, Kay Sievers,
2075 Kefeng Wang, Lennart Poettering, Major Hayden, Marcel
2076 Holtmann, Markus Elfring, Martin Mikkelsen, Martin Pitt, Matt
2077 Turner, Maxim Mikityanskiy, Michael Biebl, Namhyung Kim,
2078 Nicolas Cornu, Owen W. Taylor, Patrik Flykt, Peter Hutterer,
2079 reverendhomer, Richard Maw, Ronny Chevalier, Seth Jennings,
2080 Stef Walter, Susant Sahani, Thomas Blume, Thomas Hindoe
2081 Paaboel Andersen, Thomas Meyer, Tom Gundersen, Vincent Batts,
2082 WaLyong Cho, Zbigniew Jędrzejewski-Szmek
e1439a14 2083
ccddd104 2084 — Berlin, 2015-08-27
ec5249a2 2085
11811e85
DH
2086CHANGES WITH 224:
2087
10fa421c
DH
2088 * The systemd-efi-boot-generator functionality was merged into
2089 systemd-gpt-auto-generator.
2090
5e8d4254
LP
2091 * systemd-networkd now supports Group Policy for vxlan
2092 devices. It can be enabled via the new boolean configuration
2093 option called 'GroupPolicyExtension='.
10fa421c 2094
11811e85
DH
2095 Contributions from: Andreas Kempf, Christian Hesse, Daniel Mack, David
2096 Herrmann, Herman Fries, Johannes Nixdorf, Kay Sievers, Lennart
2097 Poettering, Peter Hutterer, Susant Sahani, Tom Gundersen
2098
ccddd104 2099 — Berlin, 2015-07-31
11811e85 2100
e57eaef8
DH
2101CHANGES WITH 223:
2102
2103 * The python-systemd code has been removed from the systemd repository.
2104 A new repository has been created which accommodates the code from
2105 now on, and we kindly ask distributions to create a separate package
2106 for this: https://github.com/systemd/python-systemd
2107
01608bc8 2108 * The systemd daemon will now reload its main configuration
e57eaef8
DH
2109 (/etc/systemd/system.conf) on daemon-reload.
2110
2111 * sd-dhcp now exposes vendor specific extensions via
2112 sd_dhcp_lease_get_vendor_specific().
2113
931618d0
DM
2114 * systemd-networkd gained a number of new configuration options.
2115
2116 - A new boolean configuration option for TAP devices called
37d54b93 2117 'VNetHeader='. If set, the IFF_VNET_HDR flag is set for the
931618d0
DM
2118 device, thus allowing to send and receive GSO packets.
2119
2120 - A new tunnel configuration option called 'CopyDSCP='.
2121 If enabled, the DSCP field of ip6 tunnels is copied into the
2122 decapsulated packet.
2123
2124 - A set of boolean bridge configuration options were added.
2125 'UseBPDU=', 'HairPin=', 'FastLeave=', 'AllowPortToBeRoot=',
2126 and 'UnicastFlood=' are now parsed by networkd and applied to the
2127 respective bridge link device via the respective IFLA_BRPORT_*
2128 netlink attribute.
2129
2130 - A new string configuration option to override the hostname sent
2131 to a DHCP server, called 'Hostname='. If set and 'SendHostname='
2132 is true, networkd will use the configured hostname instead of the
2133 system hostname when sending DHCP requests.
2134
2135 - A new tunnel configuration option called 'IPv6FlowLabel='. If set,
2136 networkd will configure the IPv6 flow-label of the tunnel device
2137 according to RFC2460.
e57eaef8 2138
f5f113f6
DH
2139 - The 'macvtap' virtual network devices are now supported, similar to
2140 the already supported 'macvlan' devices.
2141
e57eaef8 2142 * systemd-resolved now implements RFC5452 to improve resilience against
01608bc8 2143 cache poisoning. Additionally, source port randomization is enabled
e57eaef8
DH
2144 by default to further protect against DNS spoofing attacks.
2145
2146 * nss-mymachines now supports translating UIDs and GIDs of running
2147 containers with user-namespaces enabled. If a container 'foo'
2148 translates a host uid 'UID' to the container uid 'TUID', then
2149 nss-mymachines will also map uid 'UID' to/from username 'vu-foo-TUID'
2150 (with 'foo' and 'TUID' replaced accordingly). Similarly, groups are
2151 mapped as 'vg-foo-TGID'.
2152
2153 Contributions from: Beniamino Galvani, cee1, Christian Hesse, Daniel
e4e66993
DH
2154 Buch, Daniel Mack, daurnimator, David Herrmann, Dimitri John Ledkov,
2155 HATAYAMA Daisuke, Ivan Shapovalov, Jan Alexander Steffens (heftig),
2156 Johan Ouwerkerk, Jose Carlos Venegas Munoz, Karel Zak, Kay Sievers,
2157 Lennart Poettering, Lidong Zhong, Martin Pitt, Michael Biebl, Michael
2158 Olbrich, Michal Schmidt, Michal Sekletar, Mike Gilbert, Namhyung Kim,
2159 Nick Owens, Peter Hutterer, Richard Maw, Steven Allen, Sungbae Yoo,
2160 Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel Andersen, Tom
2161 Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito Caputo,
2162 Vivenzio Pagliari, Zbigniew Jędrzejewski-Szmek
2163
ccddd104 2164 — Berlin, 2015-07-29
e57eaef8 2165
0db83ad7 2166CHANGES WITH 222:
5541c889 2167
861b02eb
KS
2168 * udev does not longer support the WAIT_FOR_SYSFS= key in udev rules.
2169 There are no known issues with current sysfs, and udev does not need
2170 or should be used to work around such bugs.
2171
2172 * udev does no longer enable USB HID power management. Several reports
2173 indicate, that some devices cannot handle that setting.
0db83ad7
DH
2174
2175 * The udev accelerometer helper was removed. The functionality
2176 is now fully included in iio-sensor-proxy. But this means,
2177 older iio-sensor-proxy versions will no longer provide
2178 accelerometer/orientation data with this systemd version.
2179 Please upgrade iio-sensor-proxy to version 1.0.
2180
5541c889
DH
2181 * networkd gained a new configuration option IPv6PrivacyExtensions=
2182 which enables IPv6 privacy extensions (RFC 4941, "Privacy Extensions
2183 for Stateless Address") on selected networks.
2184
9b361114
DM
2185 * For the sake of fewer build-time dependencies and less code in the
2186 main repository, the python bindings are about to be removed in the
2187 next release. A new repository has been created which accommodates
2188 the code from now on, and we kindly ask distributions to create a
2189 separate package for this. The removal will take place in v223.
2190
2191 https://github.com/systemd/python-systemd
2192
0db83ad7
DH
2193 Contributions from: Abdo Roig-Maranges, Andrew Eikum, Bastien Nocera,
2194 Cédric Delmas, Christian Hesse, Christos Trochalakis, Daniel Mack,
2195 daurnimator, David Herrmann, Dimitri John Ledkov, Eric Biggers, Eric
2196 Cook, Felipe Sateler, Geert Jansen, Gerd Hoffmann, Gianpaolo Macario,
5541c889
DH
2197 Greg Kroah-Hartman, Iago López Galeiras, Jan Alexander Steffens
2198 (heftig), Jan Engelhardt, Jay Strict, Kay Sievers, Lennart Poettering,
0db83ad7
DH
2199 Markus Knetschke, Martin Pitt, Michael Biebl, Michael Marineau, Michal
2200 Sekletar, Miguel Bernal Marin, Peter Hutterer, Richard Maw, rinrinne,
2d1ca112
DH
2201 Susant Sahani, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
2202 Husebø, Vedran Miletić, WaLyong Cho, Zbigniew Jędrzejewski-Szmek
0db83ad7 2203
ccddd104 2204 — Berlin, 2015-07-07
0db83ad7 2205
0f0467e6
MP
2206CHANGES WITH 221:
2207
470e72d4 2208 * The sd-bus.h and sd-event.h APIs have now been declared
5f92d24f 2209 stable and have been added to the official interface of
470e72d4
LP
2210 libsystemd.so. sd-bus implements an alternative D-Bus client
2211 library, that is relatively easy to use, very efficient and
2212 supports both classic D-Bus as well as kdbus as transport
2213 backend. sd-event is a generic event loop abstraction that
2214 is built around Linux epoll, but adds features such as event
0aee49d5 2215 prioritization or efficient timer handling. Both APIs are good
470e72d4
LP
2216 choices for C programs looking for a bus and/or event loop
2217 implementation that is minimal and does not have to be
5f92d24f 2218 portable to other kernels.
0f0467e6 2219
470e72d4
LP
2220 * kdbus support is no longer compile-time optional. It is now
2221 always built-in. However, it can still be disabled at
2222 runtime using the kdbus=0 kernel command line setting, and
c6551464 2223 that setting may be changed to default to off, by specifying
470e72d4
LP
2224 --disable-kdbus at build-time. Note though that the kernel
2225 command line setting has no effect if the kdbus.ko kernel
2226 module is not installed, in which case kdbus is (obviously)
2227 also disabled. We encourage all downstream distributions to
0aee49d5 2228 begin testing kdbus by adding it to the kernel images in the
470e72d4
LP
2229 development distributions, and leaving kdbus support in
2230 systemd enabled.
0f0467e6 2231
470e72d4
LP
2232 * The minimal required util-linux version has been bumped to
2233 2.26.
2234
2235 * Support for chkconfig (--enable-chkconfig) was removed in
0aee49d5 2236 favor of calling an abstraction tool
470e72d4
LP
2237 /lib/systemd/systemd-sysv-install. This needs to be
2238 implemented for your distribution. See "SYSV INIT.D SCRIPTS"
2239 in README for details.
2240
2241 * If there's a systemd unit and a SysV init script for the
2242 same service name, and the user executes "systemctl enable"
2243 for it (or a related call), then this will now enable both
2244 (or execute the related operation on both), not just the
2245 unit.
2246
2247 * The libudev API documentation has been converted from gtkdoc
2248 into man pages.
2249
2250 * gudev has been removed from the systemd tree, it is now an
2251 external project.
2252
2253 * The systemd-cgtop tool learnt a new --raw switch to generate
0aee49d5 2254 "raw" (machine parsable) output.
470e72d4
LP
2255
2256 * networkd's IPForwarding= .network file setting learnt the
2257 new setting "kernel", which ensures that networkd does not
2258 change the IP forwarding sysctl from the default kernel
2259 state.
2260
2261 * The systemd-logind bus API now exposes a new boolean
2262 property "Docked" that reports whether logind considers the
2263 system "docked", i.e. connected to a docking station or not.
2264
2265 Contributions from: Alex Crawford, Andreas Pokorny, Andrei
2266 Borzenkov, Charles Duffy, Colin Guthrie, Cristian Rodríguez,
2267 Daniele Medri, Daniel Hahler, Daniel Mack, David Herrmann,
2268 David Mohr, Dimitri John Ledkov, Djalal Harouni, dslul, Ed
2269 Swierk, Eric Cook, Filipe Brandenburger, Gianpaolo Macario,
2270 Harald Hoyer, Iago López Galeiras, Igor Vuk, Jan Synacek,
2271 Jason Pleau, Jason S. McMullan, Jean Delvare, Jeff Huang,
2272 Jonathan Boulle, Karel Zak, Kay Sievers, kloun, Lennart
2273 Poettering, Marc-Antoine Perennou, Marcel Holtmann, Mario
2274 Limonciello, Martin Pitt, Michael Biebl, Michael Olbrich,
2275 Michal Schmidt, Mike Gilbert, Nick Owens, Pablo Lezaeta Reyes,
b912e251
LP
2276 Patrick Donnelly, Pavel Odvody, Peter Hutterer, Philip
2277 Withnall, Ronny Chevalier, Simon McVittie, Susant Sahani,
2278 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Torstein
2279 Husebø, Umut Tezduyar Lindskog, Viktar Vauchkevich, Werner
2280 Fink, Zbigniew Jędrzejewski-Szmek
470e72d4 2281
ccddd104 2282 — Berlin, 2015-06-19
0f0467e6 2283
481a0aa2
LP
2284CHANGES WITH 220:
2285
f7a73a25
DH
2286 * The gudev library has been extracted into a separate repository
2287 available at: https://git.gnome.org/browse/libgudev/
2288 It is now managed as part of the Gnome project. Distributions
2289 are recommended to pass --disable-gudev to systemd and use
2290 gudev from the Gnome project instead. gudev is still included
2291 in systemd, for now. It will be removed soon, though. Please
2292 also see the announcement-thread on systemd-devel:
56cadcb6 2293 https://lists.freedesktop.org/archives/systemd-devel/2015-May/032070.html
f7a73a25 2294
481a0aa2
LP
2295 * systemd now exposes a CPUUsageNSec= property for each
2296 service unit on the bus, that contains the overall consumed
2297 CPU time of a service (the sum of what each process of the
2298 service consumed). This value is only available if
2299 CPUAccounting= is turned on for a service, and is then shown
2300 in the "systemctl status" output.
2301
2302 * Support for configuring alternative mappings of the old SysV
2303 runlevels to systemd targets has been removed. They are now
29d1fcb4 2304 hardcoded in a way that runlevels 2, 3, 4 all map to
481a0aa2
LP
2305 multi-user.target and 5 to graphical.target (which
2306 previously was already the default behaviour).
2307
2308 * The auto-mounter logic gained support for mount point
2309 expiry, using a new TimeoutIdleSec= setting in .automount
2310 units. (Also available as x-systemd.idle-timeout= in /etc/fstab).
2311
2312 * The EFI System Partition (ESP) as mounted to /boot by
2313 systemd-efi-boot-generator will now be unmounted
29d1fcb4 2314 automatically after 2 minutes of not being used. This should
481a0aa2
LP
2315 minimize the risk of ESP corruptions.
2316
2317 * New /etc/fstab options x-systemd.requires= and
2318 x-systemd.requires-mounts-for= are now supported to express
2319 additional dependencies for mounts. This is useful for
2320 journalling file systems that support external journal
2321 devices or overlay file systems that require underlying file
2322 systems to be mounted.
2323
2324 * systemd does not support direct live-upgrades (via systemctl
2325 daemon-reexec) from versions older than v44 anymore. As no
2326 distribution we are aware of shipped such old versions in a
2327 stable release this should not be problematic.
2328
2329 * When systemd forks off a new per-connection service instance
2330 it will now set the $REMOTE_ADDR environment variable to the
2331 remote IP address, and $REMOTE_PORT environment variable to
2332 the remote IP port. This behaviour is similar to the
2333 corresponding environment variables defined by CGI.
2334
2335 * systemd-networkd gained support for uplink failure
2336 detection. The BindCarrier= option allows binding interface
2337 configuration dynamically to the link sense of other
2338 interfaces. This is useful to achieve behaviour like in
2339 network switches.
2340
2341 * systemd-networkd gained support for configuring the DHCP
2342 client identifier to use when requesting leases.
2343
2344 * systemd-networkd now has a per-network UseNTP= option to
2345 configure whether NTP server information acquired via DHCP
2346 is passed on to services like systemd-timesyncd.
2347
2348 * systemd-networkd gained support for vti6 tunnels.
2349
1579dd2c
LP
2350 * Note that systemd-networkd manages the sysctl variable
2351 /proc/sys/net/ipv[46]/conf/*/forwarding for each interface
2352 it is configured for since v219. The variable controls IP
2353 forwarding, and is a per-interface alternative to the global
2354 /proc/sys/net/ipv[46]/ip_forward. This setting is
2355 configurable in the IPForward= option, which defaults to
2356 "no". This means if networkd is used for an interface it is
2357 no longer sufficient to set the global sysctl option to turn
2358 on IP forwarding! Instead, the .network file option
2359 IPForward= needs to be turned on! Note that the
2360 implementation of this behaviour was broken in v219 and has
2361 been fixed in v220.
2362
481a0aa2
LP
2363 * Many bonding and vxlan options are now configurable in
2364 systemd-networkd.
2365
2366 * systemd-nspawn gained a new --property= setting to set unit
2367 properties for the container scope. This is useful for
ce830873 2368 setting resource parameters (e.g. "CPUShares=500") on
481a0aa2
LP
2369 containers started from the command line.
2370
2371 * systemd-nspawn gained a new --private-users= switch to make
2372 use of user namespacing available on recent Linux kernels.
2373
2374 * systemd-nspawn may now be called as part of a shell pipeline
2375 in which case the pipes used for stdin and stdout are passed
2376 directly to the process invoked in the container, without
2377 indirection via a pseudo tty.
2378
2379 * systemd-nspawn gained a new switch to control the UNIX
2380 signal to use when killing the init process of the container
2381 when shutting down.
2382
2383 * systemd-nspawn gained a new --overlay= switch for mounting
2384 overlay file systems into the container using the new kernel
2385 overlayfs support.
2386
2387 * When a container image is imported via systemd-importd and
2388 the host file system is not btrfs, a loopback block device
2389 file is created in /var/lib/machines.raw with a btrfs file
2390 system inside. It is then mounted to /var/lib/machines to
2391 enable btrfs features for container management. The loopback
2392 file and btrfs file system is grown as needed when container
2393 images are imported via systemd-importd.
2394
2395 * systemd-machined/systemd-importd gained support for btrfs
2396 quota, to enforce container disk space limits on disk. This
2397 is exposed in "machinectl set-limit".
2398
2399 * systemd-importd now can import containers from local .tar,
2400 .raw and .qcow2 images, and export them to .tar and .raw. It
2401 can also import dkr v2 images now from the network (on top
2402 of v1 as before).
2403
2404 * systemd-importd gained support for verifying downloaded
2405 images with gpg2 (previously only gpg1 was supported).
2406
2407 * systemd-machined, systemd-logind, systemd: most bus calls
2408 are now accessible to unprivileged processes via
2409 PolicyKit. Also, systemd-logind will now allow users to kill
2410 their own sessions without further privileges or
2411 authorization.
2412
2413 * systemd-shutdownd has been removed. This service was
2414 previously responsible for implementing scheduled shutdowns
2415 as exposed in /usr/bin/shutdown's time parameter. This
2416 functionality has now been moved into systemd-logind and is
2417 accessible via a bus interface.
2418
2419 * "systemctl reboot" gained a new switch --firmware-setup that
2420 can be used to reboot into the EFI firmware setup, if that
2421 is available. systemd-logind now exposes an API on the bus
2422 to trigger such reboots, in case graphical desktop UIs want
2423 to cover this functionality.
2424
2425 * "systemctl enable", "systemctl disable" and "systemctl mask"
1579dd2c 2426 now support a new "--now" switch. If specified the units
481a0aa2
LP
2427 that are enabled will also be started, and the ones
2428 disabled/masked also stopped.
2429
2430 * The Gummiboot EFI boot loader tool has been merged into
1a2d5fbe
DH
2431 systemd, and renamed to "systemd-boot". The bootctl tool has been
2432 updated to support systemd-boot.
481a0aa2
LP
2433
2434 * An EFI kernel stub has been added that may be used to create
2435 kernel EFI binaries that contain not only the actual kernel,
2436 but also an initrd, boot splash, command line and OS release
2437 information. This combined binary can then be signed as a
2438 single image, so that the firmware can verify it all in one
1a2d5fbe 2439 step. systemd-boot has special support for EFI binaries created
481a0aa2
LP
2440 like this and can extract OS release information from them
2441 and show them in the boot menu. This functionality is useful
2442 to implement cryptographically verified boot schemes.
2443
2444 * Optional support has been added to systemd-fsck to pass
2445 fsck's progress report to an AF_UNIX socket in the file
2446 system.
2447
2448 * udev will no longer create device symlinks for all block
2449 devices by default. A blacklist for excluding special block
2450 devices from this logic has been turned into a whitelist
2451 that requires picking block devices explicitly that require
2452 device symlinks.
2453
2454 * A new (currently still internal) API sd-device.h has been
2455 added to libsystemd. This modernized API is supposed to
2456 replace libudev eventually. In fact, already much of libudev
2457 is now just a wrapper around sd-device.h.
2458
2459 * A new hwdb database for storing metadata about pointing
2460 stick devices has been added.
2461
2462 * systemd-tmpfiles gained support for setting file attributes
2463 similar to the "chattr" tool with new 'h' and 'H' lines.
2464
2465 * systemd-journald will no longer unconditionally set the
2466 btrfs NOCOW flag on new journal files. This is instead done
2467 with tmpfiles snippet using the new 'h' line type. This
2468 allows easy disabling of this logic, by masking the
2469 journal-nocow.conf tmpfiles file.
2470
2471 * systemd-journald will now translate audit message types to
2472 human readable identifiers when writing them to the
2473 journal. This should improve readability of audit messages.
2474
2475 * The LUKS logic gained support for the offset= and skip=
2476 options in /etc/crypttab, as previously implemented by
2477 Debian.
2478
2479 * /usr/lib/os-release gained a new optional field VARIANT= for
2480 distributions that support multiple variants (such as a
2481 desktop edition, a server edition, ...)
2482
2483 Contributions from: Aaro Koskinen, Adam Goode, Alban Crequy,
2484 Alberto Fanjul Alonso, Alexander Sverdlin, Alex Puchades, Alin
2485 Rauta, Alison Chaiken, Andrew Jones, Arend van Spriel,
2486 Benedikt Morbach, Benjamin Franzke, Benjamin Tissoires, Blaž
2487 Tomažič, Chris Morgan, Chris Morin, Colin Walters, Cristian
2488 Rodríguez, Daniel Buch, Daniel Drake, Daniele Medri, Daniel
2489 Mack, Daniel Mustieles, daurnimator, Davide Bettio, David
2490 Herrmann, David Strauss, Didier Roche, Dimitri John Ledkov,
2491 Eric Cook, Gavin Li, Goffredo Baroncelli, Hannes Reinecke,
2492 Hans de Goede, Hans-Peter Deifel, Harald Hoyer, Iago López
2493 Galeiras, Ivan Shapovalov, Jan Engelhardt, Jan Janssen, Jan
2494 Pazdziora, Jan Synacek, Jasper St. Pierre, Jay Faulkner, John
2495 Paul Adrian Glaubitz, Jonathon Gilbert, Karel Zak, Kay
2496 Sievers, Koen Kooi, Lennart Poettering, Lubomir Rintel, Lucas
2497 De Marchi, Lukas Nykryn, Lukas Rusak, Lukasz Skalski, Łukasz
2498 Stelmach, Mantas Mikulėnas, Marc-Antoine Perennou, Marcel
2499 Holtmann, Martin Pitt, Mathieu Chevrier, Matthew Garrett,
2500 Michael Biebl, Michael Marineau, Michael Olbrich, Michal
2501 Schmidt, Michal Sekletar, Mirco Tischler, Nir Soffer, Patrik
2502 Flykt, Pavel Odvody, Peter Hutterer, Peter Lemenkov, Peter
2503 Waller, Piotr Drąg, Raul Gutierrez S, Richard Maw, Ronny
2504 Chevalier, Ross Burton, Sebastian Rasmussen, Sergey Ptashnick,
2505 Seth Jennings, Shawn Landden, Simon Farnsworth, Stefan Junker,
2506 Stephen Gallagher, Susant Sahani, Sylvain Plantefève, Thomas
2507 Haller, Thomas Hindoe Paaboel Andersen, Tobias Hunger, Tom
2508 Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Will
2509 Woods, Zachary Cook, Zbigniew Jędrzejewski-Szmek
2510
ccddd104 2511 — Berlin, 2015-05-22
481a0aa2 2512
615aaf41
LP
2513CHANGES WITH 219:
2514
615aaf41
LP
2515 * Introduce a new API "sd-hwdb.h" for querying the hardware
2516 metadata database. With this minimal interface one can query
2517 and enumerate the udev hwdb, decoupled from the old libudev
2518 library. libudev's interface for this is now only a wrapper
2519 around sd-hwdb. A new tool systemd-hwdb has been added to
2520 interface with and update the database.
2521
2522 * When any of systemd's tools copies files (for example due to
2523 tmpfiles' C lines) a btrfs reflink will attempted first,
2524 before bytewise copying is done.
2525
2526 * systemd-nspawn gained a new --ephemeral switch. When
2527 specified a btrfs snapshot is taken of the container's root
2528 directory, and immediately removed when the container
2529 terminates again. Thus, a container can be started whose
2530 changes never alter the container's root directory, and are
2531 lost on container termination. This switch can also be used
2532 for starting a container off the root file system of the
2533 host without affecting the host OS. This switch is only
2534 available on btrfs file systems.
2535
2536 * systemd-nspawn gained a new --template= switch. It takes the
2537 path to a container tree to use as template for the tree
7edecf21 2538 specified via --directory=, should that directory be
615aaf41
LP
2539 missing. This allows instantiating containers dynamically,
2540 on first run. This switch is only available on btrfs file
2541 systems.
2542
2543 * When a .mount unit refers to a mount point on which multiple
2544 mounts are stacked, and the .mount unit is stopped all of
2545 the stacked mount points will now be unmounted until no
2546 mount point remains.
2547
2548 * systemd now has an explicit notion of supported and
2549 unsupported unit types. Jobs enqueued for unsupported unit
2550 types will now fail with an "unsupported" error code. More
2551 specifically .swap, .automount and .device units are not
2552 supported in containers, .busname units are not supported on
2553 non-kdbus systems. .swap and .automount are also not
2554 supported if their respective kernel compile time options
2555 are disabled.
2556
2557 * machinectl gained support for two new "copy-from" and
2558 "copy-to" commands for copying files from a running
2559 container to the host or vice versa.
2560
2561 * machinectl gained support for a new "bind" command to bind
2562 mount host directories into local containers. This is
2563 currently only supported for nspawn containers.
2564
2565 * networkd gained support for configuring bridge forwarding
2566 database entries (fdb) from .network files.
2567
2568 * A new tiny daemon "systemd-importd" has been added that can
2569 download container images in tar, raw, qcow2 or dkr formats,
2570 and make them available locally in /var/lib/machines, so
2571 that they can run as nspawn containers. The daemon can GPG
2572 verify the downloads (not supported for dkr, since it has no
2573 provisions for verifying downloads). It will transparently
2574 decompress bz2, xz, gzip compressed downloads if necessary,
2575 and restore sparse files on disk. The daemon uses privilege
2576 separation to ensure the actual download logic runs with
94e5ba37 2577 fewer privileges than the daemon itself. machinectl has
615aaf41
LP
2578 gained new commands "pull-tar", "pull-raw" and "pull-dkr" to
2579 make the functionality of importd available to the
2580 user. With this in place the Fedora and Ubuntu "Cloud"
2581 images can be downloaded and booted as containers unmodified
2582 (the Fedora images lack the appropriate GPG signature files
2583 currently, so they cannot be verified, but this will change
2584 soon, hopefully). Note that downloading images is currently
2585 only fully supported on btrfs.
2586
2587 * machinectl is now able to list container images found in
2588 /var/lib/machines, along with some metadata about sizes of
2589 disk and similar. If the directory is located on btrfs and
2590 quota is enabled, this includes quota display. A new command
2591 "image-status" has been added that shows additional
2592 information about images.
2593
2594 * machinectl is now able to clone container images
2595 efficiently, if the underlying file system (btrfs) supports
f59dba26 2596 it, with the new "machinectl clone" command. It also
615aaf41
LP
2597 gained commands for renaming and removing images, as well as
2598 marking them read-only or read-write (supported also on
2599 legacy file systems).
2600
2601 * networkd gained support for collecting LLDP network
2602 announcements, from hardware that supports this. This is
2603 shown in networkctl output.
2604
2605 * systemd-run gained support for a new -t (--pty) switch for
2606 invoking a binary on a pty whose input and output is
2607 connected to the invoking terminal. This allows executing
2608 processes as system services while interactively
2609 communicating with them via the terminal. Most interestingly
2610 this is supported across container boundaries. Invoking
2611 "systemd-run -t /bin/bash" is an alternative to running a
2612 full login session, the difference being that the former
2613 will not register a session, nor go through the PAM session
2614 setup.
2615
2616 * tmpfiles gained support for a new "v" line type for creating
2617 btrfs subvolumes. If the underlying file system is a legacy
2618 file system, this automatically degrades to creating a
2619 normal directory. Among others /var/lib/machines is now
2620 created like this at boot, should it be missing.
2621
2622 * The directory /var/lib/containers/ has been deprecated and
2623 been replaced by /var/lib/machines. The term "machines" has
2624 been used in the systemd context as generic term for both
2625 VMs and containers, and hence appears more appropriate for
2626 this, as the directory can also contain raw images bootable
2627 via qemu/kvm.
2628
2629 * systemd-nspawn when invoked with -M but without --directory=
2630 or --image= is now capable of searching for the container
2631 root directory, subvolume or disk image automatically, in
2632 /var/lib/machines. systemd-nspawn@.service has been updated
2633 to make use of this, thus allowing it to be used for raw
2634 disk images, too.
2635
2636 * A new machines.target unit has been introduced that is
2637 supposed to group all containers/VMs invoked as services on
2638 the system. systemd-nspawn@.service has been updated to
2639 integrate with that.
2640
2641 * machinectl gained a new "start" command, for invoking a
2642 container as a service. "machinectl start foo" is mostly
2643 equivalent to "systemctl start systemd-nspawn@foo.service",
2644 but handles escaping in a nicer way.
2645
2646 * systemd-nspawn will now mount most of the cgroupfs tree
2647 read-only into each container, with the exception of the
2648 container's own subtree in the name=systemd hierarchy.
2649
2650 * journald now sets the special FS_NOCOW file flag for its
2651 journal files. This should improve performance on btrfs, by
2652 avoiding heavy fragmentation when journald's write-pattern
2653 is used on COW file systems. It degrades btrfs' data
2654 integrity guarantees for the files to the same levels as for
2655 ext3/ext4 however. This should be OK though as journald does
2656 its own data integrity checks and all its objects are
2657 checksummed on disk. Also, journald should handle btrfs disk
2658 full events a lot more gracefully now, by processing SIGBUS
2659 errors, and not relying on fallocate() anymore.
2660
2661 * When journald detects that journal files it is writing to
2662 have been deleted it will immediately start new journal
2663 files.
2664
2665 * systemd now provides a way to store file descriptors
4c37970d 2666 per-service in PID 1. This is useful for daemons to ensure
615aaf41 2667 that fds they require are not lost during a daemon
94e5ba37 2668 restart. The fds are passed to the daemon on the next
615aaf41
LP
2669 invocation in the same way socket activation fds are
2670 passed. This is now used by journald to ensure that the
2671 various sockets connected to all the system's stdout/stderr
2672 are not lost when journald is restarted. File descriptors
2673 may be stored in PID 1 via the sd_pid_notify_with_fds() API,
2674 an extension to sd_notify(). Note that a limit is enforced
2675 on the number of fds a service can store in PID 1, and it
2676 defaults to 0, so that no fds may be stored, unless this is
2677 explicitly turned on.
2678
2679 * The default TERM variable to use for units connected to a
2680 terminal, when no other value is explicitly is set is now
2681 vt220 rather than vt102. This should be fairly safe still,
2682 but allows PgUp/PgDn work.
2683
2684 * The /etc/crypttab option header= as known from Debian is now
2685 supported.
2686
2687 * "loginctl user-status" and "loginctl session-status" will
2688 now show the last 10 lines of log messages of the
2689 user/session following the status output. Similar,
2690 "machinectl status" will show the last 10 log lines
2691 associated with a virtual machine or container
2692 service. (Note that this is usually not the log messages
2693 done in the VM/container itself, but simply what the
2694 container manager logs. For nspawn this includes all console
2695 output however.)
2696
2697 * "loginctl session-status" without further argument will now
2698 show the status of the session of the caller. Similar,
2699 "lock-session", "unlock-session", "activate",
2700 "enable-linger", "disable-linger" may now be called without
2701 session/user parameter in which case they apply to the
2702 caller's session/user.
2703
2704 * An X11 session scriptlet is now shipped that uploads
2705 $DISPLAY and $XAUTHORITY into the environment of the systemd
2706 --user daemon if a session begins. This should improve
2707 compatibility with X11 enabled applications run as systemd
2708 user services.
2709
2710 * Generators are now subject to masking via /etc and /run, the
2711 same way as unit files.
2712
2713 * networkd .network files gained support for configuring
2714 per-link IPv4/IPv6 packet forwarding as well as IPv4
2715 masquerading. This is by default turned on for veth links to
2716 containers, as registered by systemd-nspawn. This means that
2717 nspawn containers run with --network-veth will now get
2718 automatic routed access to the host's networks without any
2719 further configuration or setup, as long as networkd runs on
2720 the host.
2721
2722 * systemd-nspawn gained the --port= (-p) switch to expose TCP
2723 or UDP posts of a container on the host. With this in place
2724 it is possible to run containers with private veth links
2725 (--network-veth), and have their functionality exposed on
2726 the host as if their services were running directly on the
2727 host.
2728
dd2fd155 2729 * systemd-nspawn's --network-veth switch now gained a short
615aaf41
LP
2730 version "-n", since with the changes above it is now truly
2731 useful out-of-the-box. The systemd-nspawn@.service has been
2732 updated to make use of it too by default.
2733
2734 * systemd-nspawn will now maintain a per-image R/W lock, to
2735 ensure that the same image is not started more than once
2736 writable. (It's OK to run an image multiple times
2737 simultaneously in read-only mode.)
2738
2739 * systemd-nspawn's --image= option is now capable of
2740 dissecting and booting MBR and GPT disk images that contain
2741 only a single active Linux partition. Previously it
2742 supported only GPT disk images with proper GPT type
2743 IDs. This allows running cloud images from major
2744 distributions directly with systemd-nspawn, without
2745 modification.
2746
2747 * In addition to collecting mouse dpi data in the udev
2748 hardware database, there's now support for collecting angle
2749 information for mouse scroll wheels. The database is
7edecf21 2750 supposed to guarantee similar scrolling behavior on mice
615aaf41
LP
2751 that it knows about. There's also support for collecting
2752 information about Touchpad types.
2753
2754 * udev's input_id built-in will now also collect touch screen
2755 dimension data and attach it to probed devices.
2756
2757 * /etc/os-release gained support for a Distribution Privacy
2758 Policy link field.
2759
2760 * networkd gained support for creating "ipvlan", "gretap",
2761 "ip6gre", "ip6gretap" and "ip6tnl" network devices.
2762
2763 * systemd-tmpfiles gained support for "a" lines for setting
2764 ACLs on files.
2765
2766 * systemd-nspawn will now mount /tmp in the container to
2767 tmpfs, automatically.
2768
2769 * systemd now exposes the memory.usage_in_bytes cgroup
2770 attribute and shows it for each service in the "systemctl
2771 status" output, if available.
2772
2773 * When the user presses Ctrl-Alt-Del more than 7x within 2s an
2774 immediate reboot is triggered. This useful if shutdown is
2775 hung and is unable to complete, to expedite the
2776 operation. Note that this kind of reboot will still unmount
2777 all file systems, and hence should not result in fsck being
2778 run on next reboot.
2779
2780 * A .device unit for an optical block device will now be
2781 considered active only when a medium is in the drive. Also,
2782 mount units are now bound to their backing devices thus
2783 triggering automatic unmounting when devices become
2784 unavailable. With this in place systemd will now
2785 automatically unmount left-over mounts when a CD-ROM is
2786 ejected or an USB stick is yanked from the system.
2787
2788 * networkd-wait-online now has support for waiting for
2789 specific interfaces only (with globbing), and for giving up
2790 after a configurable timeout.
2791
2792 * networkd now exits when idle. It will be automatically
2793 restarted as soon as interfaces show up, are removed or
2794 change state. networkd will stay around as long as there is
2795 at least one DHCP state machine or similar around, that keep
2796 it non-idle.
2797
2798 * networkd may now configure IPv6 link-local addressing in
2799 addition to IPv4 link-local addressing.
2800
2801 * The IPv6 "token" for use in SLAAC may now be configured for
2802 each .network interface in networkd.
2803
2804 * Routes configured with networkd may now be assigned a scope
2805 in .network files.
2806
2807 * networkd's [Match] sections now support globbing and lists
2808 of multiple space-separated matches per item.
2809
11ea2781 2810 Contributions from: Alban Crequy, Alin Rauta, Andrey Chaser,
d2c643c6
LP
2811 Bastien Nocera, Bruno Bottazzini, Carlos Garnacho, Carlos
2812 Morata Castillo, Chris Atkinson, Chris J. Arges, Christian
2813 Kirbach, Christian Seiler, Christoph Brill, Colin Guthrie,
2814 Colin Walters, Cristian Rodríguez, Daniele Medri, Daniel Mack,
2815 Dave Reisner, David Herrmann, Djalal Harouni, Erik Auerswald,
2816 Filipe Brandenburger, Frank Theile, Gabor Kelemen, Gabriel de
2817 Perthuis, Harald Hoyer, Hui Wang, Ivan Shapovalov, Jan
2818 Engelhardt, Jan Synacek, Jay Faulkner, Johannes Hölzl, Jonas
2819 Ådahl, Jonathan Boulle, Josef Andersson, Kay Sievers, Ken
2820 Werner, Lennart Poettering, Lucas De Marchi, Lukas Märdian,
2821 Lukas Nykryn, Lukasz Skalski, Luke Shumaker, Mantas Mikulėnas,
2822 Manuel Mendez, Marcel Holtmann, Marc Schmitzer, Marko
2823 Myllynen, Martin Pitt, Maxim Mikityanskiy, Michael Biebl,
2824 Michael Marineau, Michael Olbrich, Michal Schmidt, Mindaugas
11ea2781
LP
2825 Baranauskas, Moez Bouhlel, Naveen Kumar, Patrik Flykt, Paul
2826 Martin, Peter Hutterer, Peter Mattern, Philippe De Swert,
2827 Piotr Drąg, Rafael Ferreira, Rami Rosen, Robert Milasan, Ronny
2828 Chevalier, Sangjung Woo, Sebastien Bacher, Sergey Ptashnick,
2829 Shawn Landden, Stéphane Graber, Susant Sahani, Sylvain
2830 Plantefève, Thomas Hindoe Paaboel Andersen, Tim JP, Tom
2831 Gundersen, Topi Miettinen, Torstein Husebø, Umut Tezduyar
d2c643c6
LP
2832 Lindskog, Veres Lajos, Vincent Batts, WaLyong Cho, Wieland
2833 Hoffmann, Zbigniew Jędrzejewski-Szmek
11ea2781 2834
ccddd104 2835 — Berlin, 2015-02-16
11ea2781 2836
d4f5a1f4
DH
2837CHANGES WITH 218:
2838
f9e00a9f
LP
2839 * When querying unit file enablement status (for example via
2840 "systemctl is-enabled"), a new state "indirect" is now known
2841 which indicates that a unit might not be enabled itself, but
c7683ffb 2842 another unit listed in its Also= setting might be.
f9e00a9f
LP
2843
2844 * Similar to the various existing ConditionXYZ= settings for
b938cb90 2845 units, there are now matching AssertXYZ= settings. While
f9e00a9f
LP
2846 failing conditions cause a unit to be skipped, but its job
2847 to succeed, failing assertions declared like this will cause
2848 a unit start operation and its job to fail.
2849
2850 * hostnamed now knows a new chassis type "embedded".
2851
2852 * systemctl gained a new "edit" command. When used on a unit
b938cb90 2853 file, this allows extending unit files with .d/ drop-in
f9e00a9f
LP
2854 configuration snippets or editing the full file (after
2855 copying it from /usr/lib to /etc). This will invoke the
2856 user's editor (as configured with $EDITOR), and reload the
2857 modified configuration after editing.
2858
2859 * "systemctl status" now shows the suggested enablement state
2860 for a unit, as declared in the (usually vendor-supplied)
2861 system preset files.
2862
2863 * nss-myhostname will now resolve the single-label host name
2864 "gateway" to the locally configured default IP routing
2865 gateways, ordered by their metrics. This assigns a stable
2866 name to the used gateways, regardless which ones are
2867 currently configured. Note that the name will only be
2868 resolved after all other name sources (if nss-myhostname is
2869 configured properly) and should hence not negatively impact
2870 systems that use the single-label host name "gateway" in
2871 other contexts.
2872
2873 * systemd-inhibit now allows filtering by mode when listing
2874 inhibitors.
2875
122676c9 2876 * Scope and service units gained a new "Delegate" boolean
b938cb90 2877 property, which, when set, allows processes running inside the
122676c9
LP
2878 unit to further partition resources. This is primarily
2879 useful for systemd user instances as well as container
2880 managers.
f9e00a9f
LP
2881
2882 * journald will now pick up audit messages directly from
2883 the kernel, and log them like any other log message. The
2884 audit fields are split up and fully indexed. This means that
2885 journalctl in many ways is now a (nicer!) alternative to
2886 ausearch, the traditional audit client. Note that this
b938cb90 2887 implements only a minimal audit client. If you want the
f9e00a9f
LP
2888 special audit modes like reboot-on-log-overflow, please use
2889 the traditional auditd instead, which can be used in
2890 parallel to journald.
2891
2892 * The ConditionSecurity= unit file option now understands the
2893 special string "audit" to check whether auditing is
2894 available.
2895
2896 * journalctl gained two new commands --vacuum-size= and
2897 --vacuum-time= to delete old journal files until the
a8eaaee7 2898 remaining ones take up no more than the specified size on disk,
f9e00a9f
LP
2899 or are not older than the specified time.
2900
2901 * A new, native PPPoE library has been added to sd-network,
2902 systemd's library of light-weight networking protocols. This
2903 library will be used in a future version of networkd to
2904 enable PPPoE communication without an external pppd daemon.
2905
2906 * The busctl tool now understands a new "capture" verb that
2907 works similar to "monitor", but writes a packet capture
2908 trace to STDOUT that can be redirected to a file which is
2909 compatible with libcap's capture file format. This can then
2910 be loaded in Wireshark and similar tools to inspect bus
2911 communication.
2912
2913 * The busctl tool now understands a new "tree" verb that shows
2914 the object trees of a specific service on the bus, or of all
2915 services.
2916
2917 * The busctl tool now understands a new "introspect" verb that
2918 shows all interfaces and members of objects on the bus,
2919 including their signature and values. This is particularly
2920 useful to get more information about bus objects shown by
2921 the new "busctl tree" command.
2922
2923 * The busctl tool now understands new verbs "call",
2924 "set-property" and "get-property" for invoking bus method
2925 calls, setting and getting bus object properties in a
2926 friendly way.
2927
2928 * busctl gained a new --augment-creds= argument that controls
2929 whether the tool shall augment credential information it
2930 gets from the bus with data from /proc, in a possibly
2931 race-ful way.
2932
2933 * nspawn's --link-journal= switch gained two new values
2934 "try-guest" and "try-host" that work like "guest" and
17c29493 2935 "host", but do not fail if the host has no persistent
f9e00a9f
LP
2936 journalling enabled. -j is now equivalent to
2937 --link-journal=try-guest.
2938
2939 * macvlan network devices created by nspawn will now have
2940 stable MAC addresses.
2941
2942 * A new SmackProcessLabel= unit setting has been added, which
2943 controls the SMACK security label processes forked off by
2944 the respective unit shall use.
2945
d4f5a1f4
DH
2946 * If compiled with --enable-xkbcommon, systemd-localed will
2947 verify x11 keymap settings by compiling the given keymap. It
2948 will spew out warnings if the compilation fails. This
2949 requires libxkbcommon to be installed.
2950
b938cb90 2951 * When a coredump is collected, a larger number of metadata
f9e00a9f 2952 fields is now collected and included in the journal records
b938cb90 2953 created for it. More specifically, control group membership,
f9e00a9f
LP
2954 environment variables, memory maps, working directory,
2955 chroot directory, /proc/$PID/status, and a list of open file
2956 descriptors is now stored in the log entry.
2957
17c29493 2958 * The udev hwdb now contains DPI information for mice. For
f9e00a9f
LP
2959 details see:
2960
2961 http://who-t.blogspot.de/2014/12/building-a-dpi-database-for-mice.html
2962
2963 * All systemd programs that read standalone configuration
2964 files in /etc now also support a corresponding series of
997b2b43
JT
2965 .conf.d configuration directories in /etc/, /run/,
2966 /usr/local/lib/, /usr/lib/, and (if configured with
2967 --enable-split-usr) /lib/. In particular, the following
2968 configuration files now have corresponding configuration
2969 directories: system.conf user.conf, logind.conf,
2970 journald.conf, sleep.conf, bootchart.conf, coredump.conf,
2971 resolved.conf, timesyncd.conf, journal-remote.conf, and
2972 journal-upload.conf. Note that distributions should use the
2973 configuration directories in /usr/lib/; the directories in
2974 /etc/ are reserved for the system administrator.
2975
f9e00a9f
LP
2976 * systemd-rfkill will no longer take the rfkill device name
2977 into account when storing rfkill state on disk, as the name
2978 might be dynamically assigned and not stable. Instead, the
2979 ID_PATH udev variable combined with the rfkill type (wlan,
2980 bluetooth, ...) is used.
2981
2982 * A new service systemd-machine-id-commit.service has been
2983 added. When used on systems where /etc is read-only during
2984 boot, and /etc/machine-id is not initialized (but an empty
2985 file), this service will copy the temporary machine ID
2986 created as replacement into /etc after the system is fully
2987 booted up. This is useful for systems that are freshly
2988 installed with a non-initialized machine ID, but should get
2989 a fixed machine ID for subsequent boots.
2990
2991 * networkd's .netdev files now provide a large set of
a8eaaee7 2992 configuration parameters for VXLAN devices. Similarly, the
f9e00a9f
LP
2993 bridge port cost parameter is now configurable in .network
2994 files. There's also new support for configuring IP source
2995 routing. networkd .link files gained support for a new
2996 OriginalName= match that is useful to match against the
2997 original interface name the kernel assigned. .network files
2998 may include MTU= and MACAddress= fields for altering the MTU
2999 and MAC address while being connected to a specific network
3000 interface.
3001
3002 * The LUKS logic gained supported for configuring
3003 UUID-specific key files. There's also new support for naming
3004 LUKS device from the kernel command line, using the new
3005 luks.name= argument.
3006
3007 * Timer units may now be transiently created via the bus API
3008 (this was previously already available for scope and service
3009 units). In addition it is now possible to create multiple
3010 transient units at the same time with a single bus call. The
3011 "systemd-run" tool has been updated to make use of this for
3012 running commands on a specified time, in at(1)-style.
3013
3014 * tmpfiles gained support for "t" lines, for assigning
3015 extended attributes to files. Among other uses this may be
3016 used to assign SMACK labels to files.
3017
13e92f39
LP
3018 Contributions from: Alin Rauta, Alison Chaiken, Andrej
3019 Manduch, Bastien Nocera, Chris Atkinson, Chris Leech, Chris
3020 Mayo, Colin Guthrie, Colin Walters, Cristian Rodríguez,
3021 Daniele Medri, Daniel Mack, Dan Williams, Dan Winship, Dave
3022 Reisner, David Herrmann, Didier Roche, Felipe Sateler, Gavin
3023 Li, Hans de Goede, Harald Hoyer, Iago López Galeiras, Ivan
3024 Shapovalov, Jakub Filak, Jan Janssen, Jan Synacek, Joe
3025 Lawrence, Josh Triplett, Kay Sievers, Lennart Poettering,
3026 Lukas Nykryn, Łukasz Stelmach, Maciej Wereski, Mantas
3027 Mikulėnas, Marcel Holtmann, Martin Pitt, Maurizio Lombardi,
3028 Michael Biebl, Michael Chapman, Michael Marineau, Michal
7da81d33
LP
3029 Schmidt, Michal Sekletar, Olivier Brunel, Patrik Flykt, Peter
3030 Hutterer, Przemyslaw Kedzierski, Rami Rosen, Ray Strode,
3031 Richard Schütz, Richard W.M. Jones, Ronny Chevalier, Ross
3032 Lagerwall, Sean Young, Stanisław Pitucha, Susant Sahani,
3033 Thomas Haller, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
3034 Torstein Husebø, Umut Tezduyar Lindskog, Vicente Olivert
3035 Riera, WaLyong Cho, Wesley Dawson, Zbigniew Jędrzejewski-Szmek
13e92f39 3036
ccddd104 3037 — Berlin, 2014-12-10
f9e00a9f 3038
b62a309a
ZJS
3039CHANGES WITH 217:
3040
78b6b7ce
LP
3041 * journalctl gained the new options -t/--identifier= to match
3042 on the syslog identifier (aka "tag"), as well as --utc to
3043 show log timestamps in the UTC timezone. journalctl now also
3044 accepts -n/--lines=all to disable line capping in a pager.
b62a309a 3045
a65b8245
ZJS
3046 * journalctl gained a new switch, --flush, that synchronously
3047 flushes logs from /run/log/journal to /var/log/journal if
3048 persistent storage is enabled. systemd-journal-flush.service
3049 now waits until the operation is complete.
2a97b03b 3050
b62a309a
ZJS
3051 * Services can notify the manager before they start a reload
3052 (by sending RELOADING=1) or shutdown (by sending
4bdc60cb
LP
3053 STOPPING=1). This allows the manager to track and show the
3054 internal state of daemons and closes a race condition when
78b6b7ce 3055 the process is still running but has closed its D-Bus
4bdc60cb 3056 connection.
b62a309a 3057
78b6b7ce
LP
3058 * Services with Type=oneshot do not have to have any ExecStart
3059 commands anymore.
b62a309a
ZJS
3060
3061 * User units are now loaded also from
3062 $XDG_RUNTIME_DIR/systemd/user/. This is similar to the
3063 /run/systemd/user directory that was already previously
3064 supported, but is under the control of the user.
3065
4ffd29fd
LP
3066 * Job timeouts (i.e. time-outs on the time a job that is
3067 queued stays in the run queue) can now optionally result in
3068 immediate reboot or power-off actions (JobTimeoutAction= and
3069 JobTimeoutRebootArgument=). This is useful on ".target"
3070 units, to limit the maximum time a target remains
3071 undispatched in the run queue, and to trigger an emergency
3072 operation in such a case. This is now used by default to
3073 turn off the system if boot-up (as defined by everything in
3074 basic.target) hangs and does not complete for at least
3075 15min. Also, if power-off or reboot hang for at least 30min
3076 an immediate power-off/reboot operation is triggered. This
3077 functionality is particularly useful to increase reliability
3078 on embedded devices, but also on laptops which might
3079 accidentally get powered on when carried in a backpack and
3080 whose boot stays stuck in a hard disk encryption passphrase
3081 question.
3082
b62a309a
ZJS
3083 * systemd-logind can be configured to also handle lid switch
3084 events even when the machine is docked or multiple displays
3085 are attached (HandleLidSwitchDocked= option).
3086
3087 * A helper binary and a service have been added which can be
3088 used to resume from hibernation in the initramfs. A
3089 generator will parse the resume= option on the kernel
81c7dd89 3090 command line to trigger resume.
b62a309a 3091
78b6b7ce
LP
3092 * A user console daemon systemd-consoled has been
3093 added. Currently, it is a preview, and will so far open a
3094 single terminal on each session of the user marked as
09077149 3095 Desktop=systemd-console.
b62a309a
ZJS
3096
3097 * Route metrics can be specified for DHCP routes added by
3098 systemd-networkd.
3099
ba8df74b 3100 * The SELinux context of socket-activated services can be set
78b6b7ce 3101 from the information provided by the networking stack
b62a309a
ZJS
3102 (SELinuxContextFromNet= option).
3103
3104 * Userspace firmware loading support has been removed and
3105 the minimum supported kernel version is thus bumped to 3.7.
3106
3107 * Timeout for udev workers has been increased from 1 to 3
3108 minutes, but a warning will be printed after 1 minute to
3109 help diagnose kernel modules that take a long time to load.
3110
78b6b7ce 3111 * Udev rules can now remove tags on devices with TAG-="foobar".
b62a309a 3112
4bdc60cb 3113 * systemd's readahead implementation has been removed. In many
f6d1de85 3114 circumstances it didn't give expected benefits even for
b62a309a 3115 rotational disk drives and was becoming less relevant in the
78b6b7ce
LP
3116 age of SSDs. As none of the developers has been using
3117 rotating media anymore, and nobody stepped up to actively
3118 maintain this component of systemd it has now been removed.
b62a309a 3119
c4ac9900 3120 * Swap units can use Options= to specify discard options.
b62a309a
ZJS
3121 Discard options specified for swaps in /etc/fstab are now
3122 respected.
3123
3124 * Docker containers are now detected as a separate type of
3125 virtualization.
3126
3127 * The Password Agent protocol gained support for queries where
ba8df74b 3128 the user input is shown, useful e.g. for user names.
78b6b7ce
LP
3129 systemd-ask-password gained a new --echo option to turn that
3130 on.
b62a309a 3131
e6c253e3
MS
3132 * The default sysctl.d/ snippets will now set:
3133
3134 net.core.default_qdisc = fq_codel
3135
ba8df74b
KS
3136 This selects Fair Queuing Controlled Delay as the default
3137 queuing discipline for network interfaces. fq_codel helps
e6c253e3
MS
3138 fight the network bufferbloat problem. It is believed to be
3139 a good default with no tuning required for most workloads.
3140 Downstream distributions may override this choice. On 10Gbit
3141 servers that do not do forwarding, "fq" may perform better.
3142 Systems without a good clocksource should use "pfifo_fast".
3143
4bdc60cb
LP
3144 * If kdbus is enabled during build a new option BusPolicy= is
3145 available for service units, that allows locking all service
3146 processes into a stricter bus policy, in order to limit
3147 access to various bus services, or even hide most of them
3148 from the service's view entirely.
3149
3150 * networkctl will now show the .network and .link file
3151 networkd has applied to a specific interface.
3152
3153 * sd-login gained a new API call sd_session_get_desktop() to
3154 query which desktop environment has been selected for a
3155 session.
3156
3157 * UNIX utmp support is now compile-time optional to support
3158 legacy-free systems.
3159
78b6b7ce
LP
3160 * systemctl gained two new commands "add-wants" and
3161 "add-requires" for pulling in units from specific targets
3162 easily.
3163
3164 * If the word "rescue" is specified on the kernel command line
3165 the system will now boot into rescue mode (aka
3166 rescue.target), which was previously available only by
3167 specifying "1" or "systemd.unit=rescue.target" on the kernel
3168 command line. This new kernel command line option nicely
3169 mirrors the already existing "emergency" kernel command line
3170 option.
3171
3172 * New kernel command line options mount.usr=, mount.usrflags=,
d4474c41 3173 mount.usrfstype= have been added that match root=, rootflags=,
78b6b7ce
LP
3174 rootfstype= but allow mounting a specific file system to
3175 /usr.
3176
f6d1de85 3177 * The $NOTIFY_SOCKET is now also passed to control processes of
78b6b7ce
LP
3178 services, not only the main process.
3179
3180 * This version reenables support for fsck's -l switch. This
3181 means at least version v2.25 of util-linux is required for
3182 operation, otherwise dead-locks on device nodes may
3183 occur. Again: you need to update util-linux to at least
3184 v2.25 when updating systemd to v217.
3185
3769415e
TT
3186 * The "multi-seat-x" tool has been removed from systemd, as
3187 its functionality has been integrated into X servers 1.16,
3188 and the tool is hence redundant. It is recommended to update
3189 display managers invoking this tool to simply invoke X
3190 directly from now on, again.
3191
fae9332b
LP
3192 * Support for the new ALLOW_INTERACTIVE_AUTHORIZATION D-Bus
3193 message flag has been added for all of systemd's PolicyKit
3194 authenticated method calls has been added. In particular
3195 this now allows optional interactive authorization via
ba8df74b 3196 PolicyKit for many of PID1's privileged operations such as
fae9332b
LP
3197 unit file enabling and disabling.
3198
cfa1571b
LP
3199 * "udevadm hwdb --update" learnt a new switch "--usr" for
3200 placing the rebuilt hardware database in /usr instead of
3201 /etc. When used only hardware database entries stored in
3202 /usr will be used, and any user database entries in /etc are
3203 ignored. This functionality is useful for vendors to ship a
3204 pre-built database on systems where local configuration is
3205 unnecessary or unlikely.
3206
7e63dd10
LP
3207 * Calendar time specifications in .timer units now also
3208 understand the strings "semi-annually", "quarterly" and
ba8df74b 3209 "minutely" as shortcuts (in addition to the preexisting
7e63dd10
LP
3210 "anually", "hourly", ...).
3211
d4474c41
TG
3212 * systemd-tmpfiles will now correctly create files in /dev
3213 at boot which are marked for creation only at boot. It is
3214 recommended to always create static device nodes with 'c!'
3215 and 'b!', so that they are created only at boot and not
3216 overwritten at runtime.
3217
3b187c5c
LP
3218 * When the watchdog logic is used for a service (WatchdogSec=)
3219 and the watchdog timeout is hit the service will now be
3220 terminated with SIGABRT (instead of just SIGTERM), in order
3221 to make sure a proper coredump and backtrace is
3222 generated. This ensures that hanging services will result in
3223 similar coredump/backtrace behaviour as services that hit a
3224 segmentation fault.
3225
4b08dd87
LP
3226 Contributions from: Andreas Henriksson, Andrei Borzenkov,
3227 Angus Gibson, Ansgar Burchardt, Ben Wolsieffer, Brandon L.
3228 Black, Christian Hesse, Cristian Rodríguez, Daniel Buch,
3229 Daniele Medri, Daniel Mack, Dan Williams, Dave Reisner, David
3230 Herrmann, David Sommerseth, David Strauss, Emil Renner
3231 Berthing, Eric Cook, Evangelos Foutras, Filipe Brandenburger,
3232 Gustavo Sverzut Barbieri, Hans de Goede, Harald Hoyer, Hristo
3233 Venev, Hugo Grostabussiat, Ivan Shapovalov, Jan Janssen, Jan
3234 Synacek, Jonathan Liu, Juho Son, Karel Zak, Kay Sievers, Klaus
3235 Purer, Koen Kooi, Lennart Poettering, Lukas Nykryn, Lukasz
3236 Skalski, Łukasz Stelmach, Mantas Mikulėnas, Marcel Holtmann,
3237 Marius Tessmann, Marko Myllynen, Martin Pitt, Michael Biebl,
3238 Michael Marineau, Michael Olbrich, Michael Scherer, Michal
3239 Schmidt, Michal Sekletar, Miroslav Lichvar, Patrik Flykt,
3240 Philippe De Swert, Piotr Drąg, Rahul Sundaram, Richard
3241 Weinberger, Robert Milasan, Ronny Chevalier, Ruben Kerkhof,
3242 Santiago Vila, Sergey Ptashnick, Simon McVittie, Sjoerd
3243 Simons, Stefan Brüns, Steven Allen, Steven Noonan, Susant
3244 Sahani, Sylvain Plantefève, Thomas Hindoe Paaboel Andersen,
3245 Timofey Titovets, Tobias Hunger, Tom Gundersen, Torstein
3246 Husebø, Umut Tezduyar Lindskog, WaLyong Cho, Zbigniew
13e92f39 3247 Jędrzejewski-Szmek
4b08dd87 3248
ccddd104 3249 — Berlin, 2014-10-28
4b08dd87 3250
b72ddf0f 3251CHANGES WITH 216:
b2ca0d63
LP
3252
3253 * timedated no longer reads NTP implementation unit names from
b72ddf0f 3254 /usr/lib/systemd/ntp-units.d/*.list. Alternative NTP
b2ca0d63
LP
3255 implementations should add a
3256
b72ddf0f 3257 Conflicts=systemd-timesyncd.service
b2ca0d63
LP
3258
3259 to their unit files to take over and replace systemd's NTP
3260 default functionality.
3261
3262 * systemd-sysusers gained a new line type "r" for configuring
3263 which UID/GID ranges to allocate system users/groups
3264 from. Lines of type "u" may now add an additional column
3265 that specifies the home directory for the system user to be
3266 created. Also, systemd-sysusers may now optionally read user
3267 information from STDIN instead of a file. This is useful for
3268 invoking it from RPM preinst scriptlets that need to create
3269 users before the first RPM file is installed since these
3270 files might need to be owned by them. A new
3271 %sysusers_create_inline RPM macro has been introduced to do
3272 just that. systemd-sysusers now updates the shadow files as
3273 well as the user/group databases, which should enhance
3274 compatibility with certain tools like grpck.
3275
3276 * A number of bus APIs of PID 1 now optionally consult
5f02e26c 3277 PolicyKit to permit access for otherwise unprivileged
b2ca0d63
LP
3278 clients under certain conditions. Note that this currently
3279 doesn't support interactive authentication yet, but this is
3280 expected to be added eventually, too.
3281
3282 * /etc/machine-info now has new fields for configuring the
3283 deployment environment of the machine, as well as the
3284 location of the machine. hostnamectl has been updated with
3285 new command to update these fields.
3286
3287 * systemd-timesyncd has been updated to automatically acquire
3288 NTP server information from systemd-networkd, which might
3289 have been discovered via DHCP.
3290
3291 * systemd-resolved now includes a caching DNS stub resolver
3292 and a complete LLMNR name resolution implementation. A new
daa05349
AB
3293 NSS module "nss-resolve" has been added which can be used
3294 instead of glibc's own "nss-dns" to resolve hostnames via
b2ca0d63
LP
3295 systemd-resolved. Hostnames, addresses and arbitrary RRs may
3296 be resolved via systemd-resolved D-Bus APIs. In contrast to
3297 the glibc internal resolver systemd-resolved is aware of
3298 multi-homed system, and keeps DNS server and caches separate
5f02e26c 3299 and per-interface. Queries are sent simultaneously on all
b2ca0d63
LP
3300 interfaces that have DNS servers configured, in order to
3301 properly handle VPNs and local LANs which might resolve
3302 separate sets of domain names. systemd-resolved may acquire
a1a4a25e 3303 DNS server information from systemd-networkd automatically,
b2ca0d63
LP
3304 which in turn might have discovered them via DHCP. A tool
3305 "systemd-resolve-host" has been added that may be used to
3306 query the DNS logic in resolved. systemd-resolved implements
3307 IDNA and automatically uses IDNA or UTF-8 encoding depending
3308 on whether classic DNS or LLMNR is used as transport. In the
3309 next releases we intend to add a DNSSEC and mDNS/DNS-SD
3310 implementation to systemd-resolved.
3311
3312 * A new NSS module nss-mymachines has been added, that
3313 automatically resolves the names of all local registered
3314 containers to their respective IP addresses.
3315
3316 * A new client tool "networkctl" for systemd-networkd has been
3317 added. It currently is entirely passive and will query
3318 networking configuration from udev, rtnetlink and networkd,
5f02e26c 3319 and present it to the user in a very friendly
b2ca0d63
LP
3320 way. Eventually, we hope to extend it to become a full
3321 control utility for networkd.
3322
3323 * .socket units gained a new DeferAcceptSec= setting that
3324 controls the kernels' TCP_DEFER_ACCEPT sockopt for
a8eaaee7 3325 TCP. Similarly, support for controlling TCP keep-alive
b2ca0d63
LP
3326 settings has been added (KeepAliveTimeSec=,
3327 KeepAliveIntervalSec=, KeepAliveProbes=). Also, support for
3328 turning off Nagle's algorithm on TCP has been added
3329 (NoDelay=).
3330
a1a4a25e 3331 * logind learned a new session type "web", for use in projects
b2ca0d63
LP
3332 like Cockpit which register web clients as PAM sessions.
3333
3334 * timer units with at least one OnCalendar= setting will now
46ae28d8 3335 be started only after time-sync.target has been
b2ca0d63
LP
3336 reached. This way they will not elapse before the system
3337 clock has been corrected by a local NTP client or
3338 similar. This is particular useful on RTC-less embedded
3339 machines, that come up with an invalid system clock.
3340
3341 * systemd-nspawn's --network-veth= switch should now result in
3342 stable MAC addresses for both the outer and the inner side
3343 of the link.
3344
3345 * systemd-nspawn gained a new --volatile= switch for running
3346 container instances with /etc or /var unpopulated.
3347
3348 * The kdbus client code has been updated to use the new Linux
3349 3.17 memfd subsystem instead of the old kdbus-specific one.
3350
3351 * systemd-networkd's DHCP client and server now support
01da80b1
LP
3352 FORCERENEW. There are also new configuration options to
3353 configure the vendor client identifier and broadcast mode
3354 for DHCP.
b2ca0d63
LP
3355
3356 * systemd will no longer inform the kernel about the current
3357 timezone, as this is necessarily incorrect and racy as the
3358 kernel has no understanding of DST and similar
3359 concepts. This hence means FAT timestamps will be always
3360 considered UTC, similar to what Android is already
3361 doing. Also, when the RTC is configured to the local time
3362 (rather than UTC) systemd will never synchronize back to it,
3363 as this might confuse Windows at a later boot.
3364
3365 * systemd-analyze gained a new command "verify" for offline
3366 validation of unit files.
3367
3368 * systemd-networkd gained support for a couple of additional
3369 settings for bonding networking setups. Also, the metric for
3370 statically configured routes may now be configured. For
3371 network interfaces where this is appropriate the peer IP
3372 address may now be configured.
3373
26568403
TG
3374 * systemd-networkd's DHCP client will no longer request
3375 broadcasting by default, as this tripped up some networks.
3376 For hardware where broadcast is required the feature should
3377 be switched back on using RequestBroadcast=yes.
3378
3379 * systemd-networkd will now set up IPv4LL addresses (when
3380 enabled) even if DHCP is configured successfully.
3381
3382 * udev will now default to respect network device names given
3383 by the kernel when the kernel indicates that these are
3384 predictable. This behavior can be tweaked by changing
3385 NamePolicy= in the relevant .link file.
3386
b2ca0d63
LP
3387 * A new library systemd-terminal has been added that
3388 implements full TTY stream parsing and rendering. This
3389 library is supposed to be used later on for implementing a
3390 full userspace VT subsystem, replacing the current kernel
3391 implementation.
3392
3393 * A new tool systemd-journal-upload has been added to push
3394 journal data to a remote system running
3395 systemd-journal-remote.
3396
3397 * journald will no longer forward all local data to another
3398 running syslog daemon. This change has been made because
3399 rsyslog (which appears to be the most commonly used syslog
3400 implementation these days) no longer makes use of this, and
3401 instead pulls the data out of the journal on its own. Since
5f02e26c 3402 forwarding the messages to a non-existent syslog server is
b2ca0d63
LP
3403 more expensive than we assumed we have now turned this
3404 off. If you run a syslog server that is not a recent rsyslog
3405 version, you have to turn this option on again
3406 (ForwardToSyslog= in journald.conf).
3407
3408 * journald now optionally supports the LZ4 compressor for
3409 larger journal fields. This compressor should perform much
3410 better than XZ which was the previous default.
3411
3412 * machinectl now shows the IP addresses of local containers,
3413 if it knows them, plus the interface name of the container.
3414
3415 * A new tool "systemd-escape" has been added that makes it
3416 easy to escape strings to build unit names and similar.
3417
3418 * sd_notify() messages may now include a new ERRNO= field
3419 which is parsed and collected by systemd and shown among the
3420 "systemctl status" output for a service.
3421
3422 * A new component "systemd-firstboot" has been added that
3423 queries the most basic systemd information (timezone,
a1a4a25e 3424 hostname, root password) interactively on first
b2ca0d63
LP
3425 boot. Alternatively it may also be used to provision these
3426 things offline on OS images installed into directories.
3427
01da80b1
LP
3428 * The default sysctl.d/ snippets will now set
3429
3430 net.ipv4.conf.default.promote_secondaries=1
3431
3432 This has the benefit of no flushing secondary IP addresses
3433 when primary addresses are removed.
3434
b2ca0d63
LP
3435 Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
3436 Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
3437 Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
3438 Kenzior, Eelco Dolstra, Eric Cook, Hannes Reinecke, Harald
3439 Hoyer, Hong Shick Pak, Hui Wang, Jean-André Santoni, Jóhann
3440 B. Guðmundsson, Jon Severinsson, Karel Zak, Kay Sievers, Kevin
3441 Wells, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas,
3442 Marc-Antoine Perennou, Martin Pitt, Michael Biebl, Michael
3443 Marineau, Michael Olbrich, Michal Schmidt, Michal Sekletar,
3444 Miguel Angel Ajo, Mike Gilbert, Olivier Brunel, Robert
3445 Schiele, Ronny Chevalier, Simon McVittie, Sjoerd Simons, Stef
3446 Walter, Steven Noonan, Susant Sahani, Tanu Kaskinen, Thomas
3447 Blume, Thomas Hindoe Paaboel Andersen, Timofey Titovets,
3448 Tobias Geerinckx-Rice, Tomasz Torcz, Tom Gundersen, Umut
3449 Tezduyar Lindskog, Zbigniew Jędrzejewski-Szmek
3450
ccddd104 3451 — Berlin, 2014-08-19
b72ddf0f 3452
3dff3e00 3453CHANGES WITH 215:
24a2bf4c
LP
3454
3455 * A new tool systemd-sysusers has been added. This tool
3456 creates system users and groups in /etc/passwd and
3457 /etc/group, based on static declarative system user/group
3458 definitions in /usr/lib/sysusers.d/. This is useful to
3459 enable factory resets and volatile systems that boot up with
3460 an empty /etc directory, and thus need system users and
3461 groups created during early boot. systemd now also ships
3462 with two default sysusers.d/ files for the most basic
3463 users and groups systemd and the core operating system
3464 require.
3465
3466 * A new tmpfiles snippet has been added that rebuilds the
3467 essential files in /etc on boot, should they be missing.
3468
3469 * A directive for ensuring automatic clean-up of
3470 /var/cache/man/ has been removed from the default
3471 configuration. This line should now be shipped by the man
3472 implementation. The necessary change has been made to the
3473 man-db implementation. Note that you need to update your man
3474 implementation to one that ships this line, otherwise no
3475 automatic clean-up of /var/cache/man will take place.
3476
3477 * A new condition ConditionNeedsUpdate= has been added that
3478 may conditionalize services to only run when /etc or /var
3479 are "older" than the vendor operating system resources in
3480 /usr. This is useful for reconstructing or updating /etc
3481 after an offline update of /usr or a factory reset, on the
3482 next reboot. Services that want to run once after such an
3483 update or reset should use this condition and order
3484 themselves before the new systemd-update-done.service, which
3485 will mark the two directories as fully updated. A number of
3486 service files have been added making use of this, to rebuild
3487 the udev hardware database, the journald message catalog and
3488 dynamic loader cache (ldconfig). The systemd-sysusers tool
3489 described above also makes use of this now. With this in
3490 place it is now possible to start up a minimal operating
ce1dde29 3491 system with /etc empty cleanly. For more information on the
24a2bf4c
LP
3492 concepts involved see this recent blog story:
3493
3494 http://0pointer.de/blog/projects/stateless.html
3495
3496 * A new system group "input" has been introduced, and all
3497 input device nodes get this group assigned. This is useful
3498 for system-level software to get access to input devices. It
3dff3e00
KS
3499 complements what is already done for "audio" and "video".
3500
24a2bf4c
LP
3501 * systemd-networkd learnt minimal DHCPv4 server support in
3502 addition to the existing DHCPv4 client support. It also
3503 learnt DHCPv6 client and IPv6 Router Solicitation client
3504 support. The DHCPv4 client gained support for static routes
3505 passed in from the server. Note that the [DHCPv4] section
3506 known in older systemd-networkd versions has been renamed to
3507 [DHCP] and is now also used by the DHCPv6 client. Existing
c7435cc9
LP
3508 .network files using settings of this section should be
3509 updated, though compatibility is maintained. Optionally, the
3510 client hostname may now be sent to the DHCP server.
24a2bf4c 3511
c7435cc9
LP
3512 * networkd gained support for vxlan virtual networks as well
3513 as tun/tap and dummy devices.
24a2bf4c
LP
3514
3515 * networkd gained support for automatic allocation of address
3516 ranges for interfaces from a system-wide pool of
3517 addresses. This is useful for dynamically managing a large
3518 number of interfaces with a single network configuration
3519 file. In particular this is useful to easily assign
3520 appropriate IP addresses to the veth links of a large number
3521 of nspawn instances.
3522
3523 * RPM macros for processing sysusers, sysctl and binfmt
3524 drop-in snippets at package installation time have been
3525 added.
3526
3527 * The /etc/os-release file should now be placed in
3528 /usr/lib/os-release. The old location is automatically
3529 created as symlink. /usr/lib is the more appropriate
3530 location of this file, since it shall actually describe the
3531 vendor operating system shipped in /usr, and not the
3532 configuration stored in /etc.
3533
3534 * .mount units gained a new boolean SloppyOptions= setting
3535 that maps to mount(8)'s -s option which enables permissive
3536 parsing of unknown mount options.
3537
3538 * tmpfiles learnt a new "L+" directive which creates a symlink
3539 but (unlike "L") deletes a pre-existing file first, should
3540 it already exist and not already be the correct
a8eaaee7 3541 symlink. Similarly, "b+", "c+" and "p+" directives have been
24a2bf4c
LP
3542 added as well, which create block and character devices, as
3543 well as fifos in the filesystem, possibly removing any
3544 pre-existing files of different types.
3545
3546 * For tmpfiles' "L", "L+", "C" and "C+" directives the final
3547 'argument' field (which so far specified the source to
ce1dde29 3548 symlink/copy the files from) is now optional. If omitted the
24a2bf4c
LP
3549 same file os copied from /usr/share/factory/ suffixed by the
3550 full destination path. This is useful for populating /etc
3551 with essential files, by copying them from vendor defaults
3552 shipped in /usr/share/factory/etc.
3553
3554 * A new command "systemctl preset-all" has been added that
3555 applies the service preset settings to all installed unit
3556 files. A new switch --preset-mode= has been added that
3557 controls whether only enable or only disable operations
3558 shall be executed.
3559
3560 * A new command "systemctl is-system-running" has been added
3561 that allows checking the overall state of the system, for
ce1dde29 3562 example whether it is fully up and running.
24a2bf4c
LP
3563
3564 * When the system boots up with an empty /etc, the equivalent
3565 to "systemctl preset-all" is executed during early boot, to
3566 make sure all default services are enabled after a factory
3567 reset.
3568
3569 * systemd now contains a minimal preset file that enables the
3570 most basic services systemd ships by default.
3571
3572 * Unit files' [Install] section gained a new DefaultInstance=
3573 field for defining the default instance to create if a
3574 template unit is enabled with no instance specified.
3575
3576 * A new passive target cryptsetup-pre.target has been added
3577 that may be used by services that need to make they run and
3578 finish before the first LUKS cryptographic device is set up.
3579
3580 * The /dev/loop-control and /dev/btrfs-control device nodes
3581 are now owned by the "disk" group by default, opening up
3582 access to this group.
3583
3584 * systemd-coredump will now automatically generate a
3585 stack trace of all core dumps taking place on the system,
3586 based on elfutils' libdw library. This stack trace is logged
3587 to the journal.
3588
3589 * systemd-coredump may now optionally store coredumps directly
3590 on disk (in /var/lib/systemd/coredump, possibly compressed),
3591 instead of storing them unconditionally in the journal. This
3592 mode is the new default. A new configuration file
3593 /etc/systemd/coredump.conf has been added to configure this
3594 and other parameters of systemd-coredump.
3595
3596 * coredumpctl gained a new "info" verb to show details about a
3597 specific coredump. A new switch "-1" has also been added
3598 that makes sure to only show information about the most
3599 recent entry instead of all entries. Also, as the tool is
3600 generally useful now the "systemd-" prefix of the binary
3601 name has been removed. Distributions that want to maintain
3602 compatibility with the old name should add a symlink from
3603 the old name to the new name.
3604
3605 * journald's SplitMode= now defaults to "uid". This makes sure
ce1dde29 3606 that unprivileged users can access their own coredumps with
24a2bf4c
LP
3607 coredumpctl without restrictions.
3608
3609 * New kernel command line options "systemd.wants=" (for
3610 pulling an additional unit during boot), "systemd.mask="
3611 (for masking a specific unit for the boot), and
3612 "systemd.debug-shell" (for enabling the debug shell on tty9)
3613 have been added. This is implemented in the new generator
3614 "systemd-debug-generator".
3615
3616 * systemd-nspawn will now by default filter a couple of
3617 syscalls for containers, among them those required for
3618 kernel module loading, direct x86 IO port access, swap
3619 management, and kexec. Most importantly though
3620 open_by_handle_at() is now prohibited for containers,
3621 closing a hole similar to a recently discussed vulnerability
3622 in docker regarding access to files on file hierarchies the
b938cb90
JE
3623 container should normally not have access to. Note that, for
3624 nspawn, we generally make no security claims anyway (and
24a2bf4c
LP
3625 this is explicitly documented in the man page), so this is
3626 just a fix for one of the most obvious problems.
3627
3628 * A new man page file-hierarchy(7) has been added that
3629 contains a minimized, modernized version of the file system
3630 layout systemd expects, similar in style to the FHS
c7435cc9
LP
3631 specification or hier(5). A new tool systemd-path(1) has
3632 been added to query many of these paths for the local
3633 machine and user.
24a2bf4c
LP
3634
3635 * Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
3636 longer done. Since the directory now has a per-user size
3637 limit, and is cleaned on logout this appears unnecessary,
3638 in particular since this now brings the lifecycle of this
3639 directory closer in line with how IPC objects are handled.
3640
3641 * systemd.pc now exports a number of additional directories,
3642 including $libdir (which is useful to identify the library
3643 path for the primary architecture of the system), and a
3644 couple of drop-in directories.
3645
3058e017
TLSC
3646 * udev's predictable network interface names now use the dev_port
3647 sysfs attribute, introduced in linux 3.15 instead of dev_id to
3648 distinguish between ports of the same PCI function. dev_id should
3649 only be used for ports using the same HW address, hence the need
3650 for dev_port.
3651
c7435cc9
LP
3652 * machined has been updated to export the OS version of a
3653 container (read from /etc/os-release and
3654 /usr/lib/os-release) on the bus. This is now shown in
3655 "machinectl status" for a machine.
3656
3657 * A new service setting RestartForceExitStatus= has been
3658 added. If configured to a set of exit signals or process
3659 return values, the service will be restarted when the main
3660 daemon process exits with any of them, regardless of the
3661 Restart= setting.
3662
3663 * systemctl's -H switch for connecting to remote systemd
3664 machines has been extended so that it may be used to
3665 directly connect to a specific container on the
3666 host. "systemctl -H root@foobar:waldi" will now connect as
3667 user "root" to host "foobar", and then proceed directly to
3668 the container named "waldi". Note that currently you have to
3669 authenticate as user "root" for this to work, as entering
3670 containers is a privileged operation.
3671
3672 Contributions from: Andreas Henriksson, Benjamin Steinwender,
3673 Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
3674 Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
3675 Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
3676 Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
3677 Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
3678 Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
3679 Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
3680 Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
3681 Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
3682 Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
3683 Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
3684
ccddd104 3685 — Berlin, 2014-07-03
c7435cc9 3686
4196a3ea
KS
3687CHANGES WITH 214:
3688
3689 * As an experimental feature, udev now tries to lock the
3690 disk device node (flock(LOCK_SH|LOCK_NB)) while it
3691 executes events for the disk or any of its partitions.
3692 Applications like partitioning programs can lock the
3693 disk device node (flock(LOCK_EX)) and claim temporary
3694 device ownership that way; udev will entirely skip all event
3695 handling for this disk and its partitions. If the disk
3696 was opened for writing, the close will trigger a partition
3697 table rescan in udev's "watch" facility, and if needed
71449caf 3698 synthesize "change" events for the disk and all its partitions.
8d0e0ddd 3699 This is now unconditionally enabled, and if it turns out to
4196a3ea 3700 cause major problems, we might turn it on only for specific
45df8656 3701 devices, or might need to disable it entirely. Device Mapper
4196a3ea
KS
3702 devices are excluded from this logic.
3703
04e91da2
LP
3704 * We temporarily dropped the "-l" switch for fsck invocations,
3705 since they collide with the flock() logic above. util-linux
3706 upstream has been changed already to avoid this conflict,
3707 and we will readd "-l" as soon as util-linux with this
3708 change has been released.
3709
3710 * The dependency on libattr has been removed. Since a long
8d0e0ddd 3711 time, the extended attribute calls have moved to glibc, and
04e91da2
LP
3712 libattr is thus unnecessary.
3713
ce830873 3714 * Virtualization detection works without privileges now. This
04e91da2
LP
3715 means the systemd-detect-virt binary no longer requires
3716 CAP_SYS_PTRACE file capabilities, and our daemons can run
71449caf 3717 with fewer privileges.
04e91da2
LP
3718
3719 * systemd-networkd now runs under its own "systemd-network"
3720 user. It retains the CAP_NET_ADMIN, CAP_NET_BIND_SERVICE,
3721 CAP_NET_BROADCAST, CAP_NET_RAW capabilities though, but
3722 loses the ability to write to files owned by root this way.
3723
a8eaaee7 3724 * Similarly, systemd-resolved now runs under its own
04e91da2
LP
3725 "systemd-resolve" user with no capabilities remaining.
3726
a8eaaee7 3727 * Similarly, systemd-bus-proxyd now runs under its own
04e91da2
LP
3728 "systemd-bus-proxy" user with only CAP_IPC_OWNER remaining.
3729
3730 * systemd-networkd gained support for setting up "veth"
a8eaaee7 3731 virtual Ethernet devices for container connectivity, as well
04e91da2
LP
3732 as GRE and VTI tunnels.
3733
3734 * systemd-networkd will no longer automatically attempt to
3735 manually load kernel modules necessary for certain tunnel
8d0e0ddd 3736 transports. Instead, it is assumed the kernel loads them
04e91da2
LP
3737 automatically when required. This only works correctly on
3738 very new kernels. On older kernels, please consider adding
c54bed5d 3739 the kernel modules to /etc/modules-load.d/ as a work-around.
04e91da2 3740
cd14eda3 3741 * The resolv.conf file systemd-resolved generates has been
8d0e0ddd
JE
3742 moved to /run/systemd/resolve/. If you have a symlink from
3743 /etc/resolv.conf, it might be necessary to correct it.
cd14eda3 3744
ef392da6 3745 * Two new service settings, ProtectHome= and ProtectSystem=,
8d0e0ddd 3746 have been added. When enabled, they will make the user data
04e91da2
LP
3747 (such as /home) inaccessible or read-only and the system
3748 (such as /usr) read-only, for specific services. This allows
3749 very light-weight per-service sandboxing to avoid
3750 modifications of user data or system files from
3751 services. These two new switches have been enabled for all
3752 of systemd's long-running services, where appropriate.
3753
3754 * Socket units gained new SocketUser= and SocketGroup=
3755 settings to set the owner user and group of AF_UNIX sockets
3756 and FIFOs in the file system.
3757
8d0e0ddd 3758 * Socket units gained a new RemoveOnStop= setting. If enabled,
04e91da2
LP
3759 all FIFOS and sockets in the file system will be removed
3760 when the specific socket unit is stopped.
3761
3762 * Socket units gained a new Symlinks= setting. It takes a list
3763 of symlinks to create to file system sockets or FIFOs
45df8656 3764 created by the specific Unix sockets. This is useful to
71449caf 3765 manage symlinks to socket nodes with the same life-cycle as
04e91da2
LP
3766 the socket itself.
3767
3768 * The /dev/log socket and /dev/initctl FIFO have been moved to
3769 /run, and have been replaced by symlinks. This allows
3770 connecting to these facilities even if PrivateDevices=yes is
3771 used for a service (which makes /dev/log itself unavailable,
3772 but /run is left). This also has the benefit of ensuring
3773 that /dev only contains device nodes, directories and
3774 symlinks, and nothing else.
3775
3776 * sd-daemon gained two new calls sd_pid_notify() and
3777 sd_pid_notifyf(). They are similar to sd_notify() and
3778 sd_notifyf(), but allow overriding of the source PID of
3779 notification messages if permissions permit this. This is
3780 useful to send notify messages on behalf of a different
3781 process (for example, the parent process). The
3782 systemd-notify tool has been updated to make use of this
3783 when sending messages (so that notification messages now
3784 originate from the shell script invoking systemd-notify and
3785 not the systemd-notify process itself. This should minimize
3786 a race where systemd fails to associate notification
3787 messages to services when the originating process already
3788 vanished.
3789
3790 * A new "on-abnormal" setting for Restart= has been added. If
8d0e0ddd 3791 set, it will result in automatic restarts on all "abnormal"
04e91da2
LP
3792 reasons for a process to exit, which includes unclean
3793 signals, core dumps, timeouts and watchdog timeouts, but
3794 does not include clean and unclean exit codes or clean
3795 signals. Restart=on-abnormal is an alternative for
3796 Restart=on-failure for services that shall be able to
3797 terminate and avoid restarts on certain errors, by
3798 indicating so with an unclean exit code. Restart=on-failure
3799 or Restart=on-abnormal is now the recommended setting for
3800 all long-running services.
3801
3802 * If the InaccessibleDirectories= service setting points to a
3803 mount point (or if there are any submounts contained within
3804 it), it is now attempted to completely unmount it, to make
3805 the file systems truly unavailable for the respective
3806 service.
3807
3808 * The ReadOnlyDirectories= service setting and
3809 systemd-nspawn's --read-only parameter are now recursively
3810 applied to all submounts, too.
3811
3812 * Mount units may now be created transiently via the bus APIs.
3813
3814 * The support for SysV and LSB init scripts has been removed
3815 from the systemd daemon itself. Instead, it is now
3816 implemented as a generator that creates native systemd units
3817 from these scripts when needed. This enables us to remove a
3818 substantial amount of legacy code from PID 1, following the
3819 fact that many distributions only ship a very small number
3820 of LSB/SysV init scripts nowadays.
3821
cc98b302 3822 * Privileged Xen (dom0) domains are not considered
04e91da2
LP
3823 virtualization anymore by the virtualization detection
3824 logic. After all, they generally have unrestricted access to
71449caf 3825 the hardware and usually are used to manage the unprivileged
04e91da2
LP
3826 (domU) domains.
3827
3828 * systemd-tmpfiles gained a new "C" line type, for copying
3829 files or entire directories.
3830
3831 * systemd-tmpfiles "m" lines are now fully equivalent to "z"
8d0e0ddd
JE
3832 lines. So far, they have been non-globbing versions of the
3833 latter, and have thus been redundant. In future, it is
3834 recommended to only use "z". "m" has hence been removed
04e91da2
LP
3835 from the documentation, even though it stays supported.
3836
3837 * A tmpfiles snippet to recreate the most basic structure in
3838 /var has been added. This is enough to create the /var/run →
3839 /run symlink and create a couple of structural
3840 directories. This allows systems to boot up with an empty or
8d0e0ddd
JE
3841 volatile /var. Of course, while with this change, the core OS
3842 now is capable with dealing with a volatile /var, not all
04e91da2 3843 user services are ready for it. However, we hope that sooner
8d0e0ddd 3844 or later, many service daemons will be changed upstream so
04e91da2
LP
3845 that they are able to automatically create their necessary
3846 directories in /var at boot, should they be missing. This is
3847 the first step to allow state-less systems that only require
3848 the vendor image for /usr to boot.
3849
3850 * systemd-nspawn has gained a new --tmpfs= switch to mount an
3851 empty tmpfs instance to a specific directory. This is
3852 particularly useful for making use of the automatic
3853 reconstruction of /var (see above), by passing --tmpfs=/var.
3854
3855 * Access modes specified in tmpfiles snippets may now be
3856 prefixed with "~", which indicates that they shall be masked
daa05349 3857 by whether the existing file or directory is currently
8d0e0ddd 3858 writable, readable or executable at all. Also, if specified,
04e91da2
LP
3859 the sgid/suid/sticky bits will be masked for all
3860 non-directories.
3861
3862 * A new passive target unit "network-pre.target" has been
3863 added which is useful for services that shall run before any
3864 network is configured, for example firewall scripts.
3865
4c0d13bd
LP
3866 * The "floppy" group that previously owned the /dev/fd*
3867 devices is no longer used. The "disk" group is now used
3868 instead. Distributions should probably deprecate usage of
3869 this group.
3870
dc1d6c02
LP
3871 Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
3872 King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
3873 Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
3874 Lennart Poettering, Mantas Mikulėnas, Mark Eichin, Ronny
3875 Chevalier, Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel
3876 Andersen, Tom Gundersen, Umut Tezduyar Lindskog, Zbigniew
3877 Jędrzejewski-Szmek
3878
ccddd104 3879 — Berlin, 2014-06-11
dc1d6c02 3880
6936cd89
LP
3881CHANGES WITH 213:
3882
3883 * A new "systemd-timesyncd" daemon has been added for
69beda1f 3884 synchronizing the system clock across the network. It
6936cd89 3885 implements an SNTP client. In contrast to NTP
8d0e0ddd 3886 implementations such as chrony or the NTP reference server,
6936cd89 3887 this only implements a client side, and does not bother with
c9679c65
LP
3888 the full NTP complexity, focusing only on querying time from
3889 one remote server and synchronizing the local clock to
6936cd89 3890 it. Unless you intend to serve NTP to networked clients or
8d0e0ddd 3891 want to connect to local hardware clocks, this simple NTP
6936cd89
LP
3892 client should be more than appropriate for most
3893 installations. The daemon runs with minimal privileges, and
3894 has been hooked up with networkd to only operate when
3895 network connectivity is available. The daemon saves the
3896 current clock to disk every time a new NTP sync has been
3897 acquired, and uses this to possibly correct the system clock
69beda1f 3898 early at bootup, in order to accommodate for systems that
6936cd89 3899 lack an RTC such as the Raspberry Pi and embedded devices,
8d0e0ddd 3900 and to make sure that time monotonically progresses on these
c9679c65 3901 systems, even if it is not always correct. To make use of
8d0e0ddd 3902 this daemon, a new system user and group "systemd-timesync"
c9679c65 3903 needs to be created on installation of systemd.
6936cd89 3904
69beda1f
KS
3905 * The queue "seqnum" interface of libudev has been disabled, as
3906 it was generally incompatible with device namespacing as
6936cd89
LP
3907 sequence numbers of devices go "missing" if the devices are
3908 part of a different namespace.
3909
3910 * "systemctl list-timers" and "systemctl list-sockets" gained
3911 a --recursive switch for showing units of these types also
499b604b
ZJS
3912 for all local containers, similar in style to the already
3913 supported --recursive switch for "systemctl list-units".
6936cd89
LP
3914
3915 * A new RebootArgument= setting has been added for service
3916 units, which may be used to specify a kernel reboot argument
499b604b 3917 to use when triggering reboots with StartLimitAction=.
6936cd89
LP
3918
3919 * A new FailureAction= setting has been added for service
3920 units which may be used to specify an operation to trigger
499b604b 3921 when a service fails. This works similarly to
8d0e0ddd 3922 StartLimitAction=, but unlike it, controls what is done
6936cd89
LP
3923 immediately rather than only after several attempts to
3924 restart the service in question.
3925
3926 * hostnamed got updated to also expose the kernel name,
499b604b
ZJS
3927 release, and version on the bus. This is useful for
3928 executing commands like hostnamectl with the -H switch.
3929 systemd-analyze makes use of this to properly display
3930 details when running non-locally.
6936cd89
LP
3931
3932 * The bootchart tool can now show cgroup information in the
3933 graphs it generates.
3934
3935 * The CFS CPU quota cgroup attribute is now exposed for
3936 services. The new CPUQuota= switch has been added for this
3937 which takes a percentage value. Setting this will have the
3938 result that a service may never get more CPU time than the
3939 specified percentage, even if the machine is otherwise idle.
3940
3941 * systemd-networkd learned IPIP and SIT tunnel support.
3942
3943 * LSB init scripts exposing a dependency on $network will now
3944 get a dependency on network-online.target rather than simply
3945 network.target. This should bring LSB handling closer to
3946 what it was on SysV systems.
3947
3948 * A new fsck.repair= kernel option has been added to control
3949 how fsck shall deal with unclean file systems at boot.
3950
3951 * The (.ini) configuration file parser will now silently
3952 ignore sections whose name begins with "X-". This may be
3953 used to maintain application-specific extension sections in unit
3954 files.
3955
3956 * machined gained a new API to query the IP addresses of
3957 registered containers. "machinectl status" has been updated
3958 to show these addresses in its output.
3959
3960 * A new call sd_uid_get_display() has been added to the
3961 sd-login APIs for querying the "primary" session of a
3962 user. The "primary" session of the user is elected from the
3963 user's sessions and generally a graphical session is
3964 preferred over a text one.
3965
3966 * A minimal systemd-resolved daemon has been added. It
3967 currently simply acts as a companion to systemd-networkd and
3968 manages resolv.conf based on per-interface DNS
3969 configuration, possibly supplied via DHCP. In the long run
3970 we hope to extend this into a local DNSSEC enabled DNS and
3971 mDNS cache.
3972
68dd0956
TG
3973 * The systemd-networkd-wait-online tool is now enabled by
3974 default. It will delay network-online.target until a network
3975 connection has been configured. The tool primarily integrates
3976 with networkd, but will also make a best effort to make sense
3977 of network configuration performed in some other way.
3978
6936cd89 3979 * Two new service options StartupCPUShares= and
499b604b 3980 StartupBlockIOWeight= have been added that work similarly to
6936cd89 3981 CPUShares= and BlockIOWeight= however only apply during
69beda1f 3982 system startup. This is useful to prioritize certain services
6936cd89
LP
3983 differently during bootup than during normal runtime.
3984
8e7acf67
LP
3985 * hostnamed has been changed to prefer the statically
3986 configured hostname in /etc/hostname (unless set to
3987 'localhost' or empty) over any dynamic one supplied by
8d0e0ddd 3988 dhcp. With this change, the rules for picking the hostname
8e7acf67
LP
3989 match more closely the rules of other configuration settings
3990 where the local administrator's configuration in /etc always
3991 overrides any other settings.
3992
3993 Contributions fron: Ali H. Caliskan, Alison Chaiken, Bas van
6936cd89
LP
3994 den Berg, Brandon Philips, Cristian Rodríguez, Daniel Buch,
3995 Dan Kilman, Dave Reisner, David Härdeman, David Herrmann,
3996 David Strauss, Dimitris Spingos, Djalal Harouni, Eelco
3997 Dolstra, Evan Nemerson, Florian Albrechtskirchinger, Greg
3998 Kroah-Hartman, Harald Hoyer, Holger Hans Peter Freyther, Jan
3999 Engelhardt, Jani Nikula, Jason St. John, Jeffrey Clark,
4000 Jonathan Boulle, Kay Sievers, Lennart Poettering, Lukas
4001 Nykryn, Lukasz Skalski, Łukasz Stelmach, Mantas Mikulėnas,
8e7acf67
LP
4002 Marcel Holtmann, Martin Pitt, Matthew Monaco, Michael
4003 Marineau, Michael Olbrich, Michal Sekletar, Mike Gilbert, Nis
4004 Martensen, Patrik Flykt, Philip Lorenz, poma, Ray Strode,
4005 Reyad Attiyat, Robert Milasan, Scott Thrasher, Stef Walter,
4006 Steven Siloti, Susant Sahani, Tanu Kaskinen, Thomas Bächler,
4007 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar
4008 Lindskog, WaLyong Cho, Will Woods, Zbigniew
6936cd89
LP
4009 Jędrzejewski-Szmek
4010
ccddd104 4011 — Beijing, 2014-05-28
6936cd89 4012
51c61cda
LP
4013CHANGES WITH 212:
4014
4015 * When restoring the screen brightness at boot, stay away from
4016 the darkest setting or from the lowest 5% of the available
4017 range, depending on which is the larger value of both. This
4018 should effectively protect the user from rebooting into a
4019 black screen, should the brightness have been set to minimum
4020 by accident.
4021
4022 * sd-login gained a new sd_machine_get_class() call to
4023 determine the class ("vm" or "container") of a machine
4024 registered with machined.
4025
4026 * sd-login gained new calls
4027 sd_peer_get_{session,owner_uid,unit,user_unit,slice,machine_name}(),
4028 to query the identity of the peer of a local AF_UNIX
499b604b 4029 connection. They operate similarly to their sd_pid_get_xyz()
51c61cda
LP
4030 counterparts.
4031
4032 * PID 1 will now maintain a system-wide system state engine
4033 with the states "starting", "running", "degraded",
4034 "maintenance", "stopping". These states are bound to system
4035 startup, normal runtime, runtime with at least one failed
4036 service, rescue/emergency mode and system shutdown. This
4037 state is shown in the "systemctl status" output when no unit
4038 name is passed. It is useful to determine system state, in
4039 particularly when doing so for many systems or containers at
4040 once.
4041
4042 * A new command "list-machines" has been added to "systemctl"
4043 that lists all local OS containers and shows their system
4044 state (see above), if systemd runs inside of them.
4045
4046 * systemctl gained a new "-r" switch to recursively enumerate
4047 units on all local containers, when used with the
4048 "list-unit" command (which is the default one that is
4049 executed when no parameters are specified).
4050
4051 * The GPT automatic partition discovery logic will now honour
4052 two GPT partition flags: one may be set on a partition to
4053 cause it to be mounted read-only, and the other may be set
4054 on a partition to ignore it during automatic discovery.
4055
4056 * Two new GPT type UUIDs have been added for automatic root
70a44afe 4057 partition discovery, for 32-bit and 64-bit ARM. This is not
51c61cda
LP
4058 particularly useful for discovering the root directory on
4059 these architectures during bare-metal boots (since UEFI is
4060 not common there), but still very useful to allow booting of
4061 ARM disk images in nspawn with the -i option.
4062
4063 * MAC addresses of interfaces created with nspawn's
4064 --network-interface= switch will now be generated from the
4065 machine name, and thus be stable between multiple invocations
4066 of the container.
4067
4068 * logind will now automatically remove all IPC objects owned
4069 by a user if she or he fully logs out. This makes sure that
4070 users who are logged out cannot continue to consume IPC
4071 resources. This covers SysV memory, semaphores and message
4072 queues as well as POSIX shared memory and message
b8bde116
JE
4073 queues. Traditionally, SysV and POSIX IPC had no life-cycle
4074 limits. With this functionality, that is corrected. This may
4075 be turned off by using the RemoveIPC= switch of logind.conf.
51c61cda
LP
4076
4077 * The systemd-machine-id-setup and tmpfiles tools gained a
4078 --root= switch to operate on a specific root directory,
4079 instead of /.
4080
4081 * journald can now forward logged messages to the TTYs of all
4082 logged in users ("wall"). This is the default for all
4083 emergency messages now.
4084
4085 * A new tool systemd-journal-remote has been added to stream
4086 journal log messages across the network.
4087
4088 * /sys/fs/cgroup/ is now mounted read-only after all cgroup
4089 controller trees are mounted into it. Note that the
4090 directories mounted beneath it are not read-only. This is a
4091 security measure and is particularly useful because glibc
4092 actually includes a search logic to pick any tmpfs it can
4093 find to implement shm_open() if /dev/shm is not available
4094 (which it might very well be in namespaced setups).
4095
4096 * machinectl gained a new "poweroff" command to cleanly power
4097 down a local OS container.
4098
4099 * The PrivateDevices= unit file setting will now also drop the
4100 CAP_MKNOD capability from the capability bound set, and
4101 imply DevicePolicy=closed.
4102
4103 * PrivateDevices=, PrivateNetwork= and PrivateTmp= is now used
4104 comprehensively on all long-running systemd services where
4105 this is appropriate.
4106
4107 * systemd-udevd will now run in a disassociated mount
b8bde116 4108 namespace. To mount directories from udev rules, make sure to
51c61cda
LP
4109 pull in mount units via SYSTEMD_WANTS properties.
4110
4111 * The kdbus support gained support for uploading policy into
4112 the kernel. sd-bus gained support for creating "monitoring"
4113 connections that can eavesdrop into all bus communication
4114 for debugging purposes.
4115
4116 * Timestamps may now be specified in seconds since the UNIX
4117 epoch Jan 1st, 1970 by specifying "@" followed by the value
4118 in seconds.
4119
4120 * Native tcpwrap support in systemd has been removed. tcpwrap
4121 is old code, not really maintained anymore and has serious
4122 shortcomings, and better options such as firewalls
4123 exist. For setups that require tcpwrap usage, please
4124 consider invoking your socket-activated service via tcpd,
4125 like on traditional inetd.
4126
4127 * A new system.conf configuration option
4128 DefaultTimerAccuracySec= has been added that controls the
4129 default AccuracySec= setting of .timer units.
4130
b8bde116 4131 * Timer units gained a new WakeSystem= switch. If enabled,
51c61cda
LP
4132 timers configured this way will cause the system to resume
4133 from system suspend (if the system supports that, which most
4134 do these days).
4135
b8bde116 4136 * Timer units gained a new Persistent= switch. If enabled,
51c61cda
LP
4137 timers configured this way will save to disk when they have
4138 been last triggered. This information is then used on next
4139 reboot to possible execute overdue timer events, that
d28315e4
JE
4140 could not take place because the system was powered off.
4141 This enables simple anacron-like behaviour for timer units.
51c61cda
LP
4142
4143 * systemctl's "list-timers" will now also list the time a
4144 timer unit was last triggered in addition to the next time
4145 it will be triggered.
4146
4147 * systemd-networkd will now assign predictable IPv4LL
4148 addresses to its local interfaces.
4149
4150 Contributions from: Brandon Philips, Daniel Buch, Daniel Mack,
4151 Dave Reisner, David Herrmann, Gerd Hoffmann, Greg
4152 Kroah-Hartman, Hendrik Brueckner, Jason St. John, Josh
4153 Triplett, Kay Sievers, Lennart Poettering, Marc-Antoine
4154 Perennou, Michael Marineau, Michael Olbrich, Miklos Vajna,
4155 Patrik Flykt, poma, Sebastian Thorarensen, Thomas Bächler,
4156 Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom Gundersen,
4157 Umut Tezduyar Lindskog, Wieland Hoffmann, Zbigniew
4158 Jędrzejewski-Szmek
4159
ccddd104 4160 — Berlin, 2014-03-25
51c61cda 4161
699b6b34
LP
4162CHANGES WITH 211:
4163
4164 * A new unit file setting RestrictAddressFamilies= has been
4165 added to restrict which socket address families unit
4166 processes gain access to. This takes address family names
4167 like "AF_INET" or "AF_UNIX", and is useful to minimize the
4168 attack surface of services via exotic protocol stacks. This
4169 is built on seccomp system call filters.
4170
4171 * Two new unit file settings RuntimeDirectory= and
4172 RuntimeDirectoryMode= have been added that may be used to
4173 manage a per-daemon runtime directories below /run. This is
4174 an alternative for setting up directory permissions with
4175 tmpfiles snippets, and has the advantage that the runtime
4176 directory's lifetime is bound to the daemon runtime and that
4177 the daemon starts up with an empty directory each time. This
4178 is particularly useful when writing services that drop
f1721625 4179 privileges using the User= or Group= setting.
699b6b34
LP
4180
4181 * The DeviceAllow= unit setting now supports globbing for
4182 matching against device group names.
4183
4184 * The systemd configuration file system.conf gained new
4185 settings DefaultCPUAccounting=, DefaultBlockIOAccounting=,
4186 DefaultMemoryAccounting= to globally turn on/off accounting
4187 for specific resources (cgroups) for all units. These
22e7062d 4188 settings may still be overridden individually in each unit
699b6b34
LP
4189 though.
4190
4191 * systemd-gpt-auto-generator is now able to discover /srv and
4192 root partitions in addition to /home and swap partitions. It
4193 also supports LUKS-encrypted partitions now. With this in
b8bde116 4194 place, automatic discovery of partitions to mount following
699b6b34 4195 the Discoverable Partitions Specification
56cadcb6 4196 (https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec)
699b6b34
LP
4197 is now a lot more complete. This allows booting without
4198 /etc/fstab and without root= on the kernel command line on
b8bde116 4199 systems prepared appropriately.
699b6b34
LP
4200
4201 * systemd-nspawn gained a new --image= switch which allows
4202 booting up disk images and Linux installations on any block
4203 device that follow the Discoverable Partitions Specification
4204 (see above). This means that installations made with
4205 appropriately updated installers may now be started and
4206 deployed using container managers, completely
4207 unmodified. (We hope that libvirt-lxc will add support for
4208 this feature soon, too.)
4209
4210 * systemd-nspawn gained a new --network-macvlan= setting to
4211 set up a private macvlan interface for the
499b604b 4212 container. Similarly, systemd-networkd gained a new
699b6b34
LP
4213 Kind=macvlan setting in .netdev files.
4214
4215 * systemd-networkd now supports configuring local addresses
4216 using IPv4LL.
4217
4218 * A new tool systemd-network-wait-online has been added to
4219 synchronously wait for network connectivity using
4220 systemd-networkd.
4221
4222 * The sd-bus.h bus API gained a new sd_bus_track object for
4223 tracking the life-cycle of bus peers. Note that sd-bus.h is
4224 still not a public API though (unless you specify
4225 --enable-kdbus on the configure command line, which however
4226 voids your warranty and you get no API stability guarantee).
4227
4228 * The $XDG_RUNTIME_DIR runtime directories for each user are
4229 now individual tmpfs instances, which has the benefit of
4230 introducing separate pools for each user, with individual
4ef6e535 4231 size limits, and thus making sure that unprivileged clients
699b6b34
LP
4232 can no longer negatively impact the system or other users by
4233 filling up their $XDG_RUNTIME_DIR. A new logind.conf setting
4234 RuntimeDirectorySize= has been introduced that allows
4235 controlling the default size limit for all users. It
4236 defaults to 10% of the available physical memory. This is no
4237 replacement for quotas on tmpfs though (which the kernel
4238 still does not support), as /dev/shm and /tmp are still
4ef6e535 4239 shared resources used by both the system and unprivileged
699b6b34
LP
4240 users.
4241
4242 * logind will now automatically turn off automatic suspending
4243 on laptop lid close when more than one display is
4244 connected. This was previously expected to be implemented
4245 individually in desktop environments (such as GNOME),
4246 however has been added to logind now, in order to fix a
4247 boot-time race where a desktop environment might not have
4248 been started yet and thus not been able to take an inhibitor
4249 lock at the time where logind already suspends the system
4250 due to a closed lid.
4251
4252 * logind will now wait at least 30s after each system
4253 suspend/resume cycle, and 3min after system boot before
4254 suspending the system due to a closed laptop lid. This
4255 should give USB docking stations and similar enough time to
4ef6e535 4256 be probed and configured after system resume and boot in
699b6b34
LP
4257 order to then act as suspend blocker.
4258
4259 * systemd-run gained a new --property= setting which allows
4260 initialization of resource control properties (and others)
4261 for the created scope or service unit. Example: "systemd-run
4262 --property=BlockIOWeight=10 updatedb" may be used to run
4263 updatedb at a low block IO scheduling weight.
4264
4265 * systemd-run's --uid=, --gid=, --setenv=, --setenv= switches
4266 now also work in --scope mode.
4267
4268 * When systemd is compiled with kdbus support, basic support
4269 for enforced policies is now in place. (Note that enabling
4270 kdbus still voids your warranty and no API compatibility
4271 promises are made.)
4272
4273 Contributions from: Andrey Borzenkov, Ansgar Burchardt, Armin
4274 K., Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
4275 Harald Hoyer, Henrik Grindal Bakken, Jasper St. Pierre, Kay
4276 Sievers, Kieran Clancy, Lennart Poettering, Lukas Nykryn,
4277 Mantas Mikulėnas, Marcel Holtmann, Mark Oteiza, Martin Pitt,
4278 Mike Gilbert, Peter Rajnoha, poma, Samuli Suominen, Stef
4279 Walter, Susant Sahani, Tero Roponen, Thomas Andersen, Thomas
4280 Bächler, Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom
4281 Gundersen, Umut Tezduyar Lindskog, Uoti Urpala, Zachary Cook,
4282 Zbigniew Jędrzejewski-Szmek
4283
ccddd104 4284 — Berlin, 2014-03-12
699b6b34 4285
43c71255
LP
4286CHANGES WITH 210:
4287
4288 * systemd will now relabel /dev after loading the SMACK policy
4289 according to SMACK rules.
4290
67dd87c5 4291 * A new unit file option AppArmorProfile= has been added to
43c71255
LP
4292 set the AppArmor profile for the processes of a unit.
4293
4294 * A new condition check ConditionArchitecture= has been added
4295 to conditionalize units based on the system architecture, as
4296 reported by uname()'s "machine" field.
4297
4298 * systemd-networkd now supports matching on the system
4299 virtualization, architecture, kernel command line, host name
4300 and machine ID.
4301
ed28905e 4302 * logind is now a lot more aggressive when suspending the
43c71255 4303 machine due to a closed laptop lid. Instead of acting only
b8bde116 4304 on the lid close action, it will continuously watch the lid
43c71255
LP
4305 status and act on it. This is useful for laptops where the
4306 power button is on the outside of the chassis so that it can
ed28905e 4307 be reached without opening the lid (such as the Lenovo
b8bde116 4308 Yoga). On those machines, logind will now immediately
ed28905e 4309 re-suspend the machine if the power button has been
43c71255
LP
4310 accidentally pressed while the laptop was suspended and in a
4311 backpack or similar.
4312
4313 * logind will now watch SW_DOCK switches and inhibit reaction
4314 to the lid switch if it is pressed. This means that logind
d27893ef 4315 will not suspend the machine anymore if the lid is closed
949138cc 4316 and the system is docked, if the laptop supports SW_DOCK
43c71255
LP
4317 notifications via the input layer. Note that ACPI docking
4318 stations do not generate this currently. Also note that this
4319 logic is usually not fully sufficient and Desktop
4320 Environments should take a lid switch inhibitor lock when an
4321 external display is connected, as systemd will not watch
4322 this on its own.
4323
4324 * nspawn will now make use of the devices cgroup controller by
4325 default, and only permit creation of and access to the usual
4326 API device nodes like /dev/null or /dev/random, as well as
4327 access to (but not creation of) the pty devices.
4328
4329 * We will now ship a default .network file for
4330 systemd-networkd that automatically configures DHCP for
4331 network interfaces created by nspawn's --network-veth or
4332 --network-bridge= switches.
4333
4334 * systemd will now understand the usual M, K, G, T suffixes
4335 according to SI conventions (i.e. to the base 1000) when
4336 referring to throughput and hardware metrics. It will stay
4337 with IEC conventions (i.e. to the base 1024) for software
4338 metrics, according to what is customary according to
4339 Wikipedia. We explicitly document which base applies for
4340 each configuration option.
4341
4342 * The DeviceAllow= setting in unit files now supports a syntax
ed28905e 4343 to whitelist an entire group of devices node majors at once,
43c71255 4344 based on the /proc/devices listing. For example, with the
b8bde116 4345 string "char-pts", it is now possible to whitelist all
43c71255
LP
4346 current and future pseudo-TTYs at once.
4347
4348 * sd-event learned a new "post" event source. Event sources of
4349 this type are triggered by the dispatching of any event
4350 source of a type that is not "post". This is useful for
4351 implementing clean-up and check event sources that are
4352 triggered by other work being done in the program.
4353
4354 * systemd-networkd is no longer statically enabled, but uses
4355 the usual [Install] sections so that it can be
4356 enabled/disabled using systemctl. It still is enabled by
4357 default however.
4358
b8bde116 4359 * When creating a veth interface pair with systemd-nspawn, the
43c71255
LP
4360 host side will now be prefixed with "vb-" if
4361 --network-bridge= is used, and with "ve-" if --network-veth
b8bde116 4362 is used. This way, it is easy to distinguish these cases on
43c71255
LP
4363 the host, for example to apply different configuration to
4364 them with systemd-networkd.
4365
d27893ef
LP
4366 * The compatibility libraries for libsystemd-journal.so,
4367 libsystem-id128.so, libsystemd-login.so and
4368 libsystemd-daemon.so do not make use of IFUNC
b8bde116 4369 anymore. Instead, we now build libsystemd.so multiple times
d27893ef
LP
4370 under these alternative names. This means that the footprint
4371 is drastically increased, but given that these are
b8bde116 4372 transitional compatibility libraries, this should not matter
d27893ef
LP
4373 much. This change has been made necessary to support the ARM
4374 platform for these compatibility libraries, as the ARM
d28315e4 4375 toolchain is not really at the same level as the toolchain
ed28905e 4376 for other architectures like x86 and does not support
d27893ef
LP
4377 IFUNC. Please make sure to use --enable-compat-libs only
4378 during a transitional period!
4379
13b28d82 4380 Contributions from: Andreas Fuchs, Armin K., Colin Walters,
43c71255
LP
4381 Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
4382 Holger Schurig, Jason A. Donenfeld, Jason St. John, Jasper
4383 St. Pierre, Kay Sievers, Lennart Poettering, Łukasz Stelmach,
4384 Marcel Holtmann, Michael Scherer, Michal Sekletar, Mike
4385 Gilbert, Samuli Suominen, Thomas Bächler, Thomas Hindoe
4386 Paaboel Andersen, Tom Gundersen, Umut Tezduyar Lindskog,
4387 Zbigniew Jędrzejewski-Szmek
4388
ccddd104 4389 — Berlin, 2014-02-24
43c71255 4390
e49b5aad
LP
4391CHANGES WITH 209:
4392
4393 * A new component "systemd-networkd" has been added that can
4394 be used to configure local network interfaces statically or
8b7d0494
JSJ
4395 via DHCP. It is capable of bringing up bridges, VLANs, and
4396 bonding. Currently, no hook-ups for interactive network
4670e9d5 4397 configuration are provided. Use this for your initrd,
8b7d0494
JSJ
4398 container, embedded, or server setup if you need a simple,
4399 yet powerful, network configuration solution. This
4670e9d5 4400 configuration subsystem is quite nifty, as it allows wildcard
1e190502 4401 hotplug matching in interfaces. For example, with a single
4670e9d5 4402 configuration snippet, you can configure that all Ethernet
1e190502
ZJS
4403 interfaces showing up are automatically added to a bridge,
4404 or similar. It supports link-sensing and more.
e49b5aad
LP
4405
4406 * A new tool "systemd-socket-proxyd" has been added which can
4c2413bf 4407 act as a bidirectional proxy for TCP sockets. This is
e49b5aad
LP
4408 useful for adding socket activation support to services that
4409 do not actually support socket activation, including virtual
4c2413bf 4410 machines and the like.
e49b5aad
LP
4411
4412 * Add a new tool to save/restore rfkill state on
4413 shutdown/boot.
4414
8b7d0494
JSJ
4415 * Save/restore state of keyboard backlights in addition to
4416 display backlights on shutdown/boot.
e49b5aad
LP
4417
4418 * udev learned a new SECLABEL{} construct to label device
4419 nodes with a specific security label when they appear. For
4c2413bf 4420 now, only SECLABEL{selinux} is supported, but the syntax is
e49b5aad
LP
4421 prepared for additional security frameworks.
4422
4423 * udev gained a new scheme to configure link-level attributes
4424 from files in /etc/systemd/network/*.link. These files can
8b7d0494 4425 match against MAC address, device path, driver name and type,
4c2413bf 4426 and will apply attributes like the naming policy, link speed,
8b7d0494 4427 MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC
e49b5aad
LP
4428 address assignment policy (randomized, ...).
4429
dfb08b05
ZJS
4430 * The configuration of network interface naming rules for
4431 "permanent interface names" has changed: a new NamePolicy=
4432 setting in the [Link] section of .link files determines the
a8eaaee7 4433 priority of possible naming schemes (onboard, slot, MAC,
dfb08b05
ZJS
4434 path). The default value of this setting is determined by
4435 /usr/lib/net/links/99-default.link. Old
4436 80-net-name-slot.rules udev configuration file has been
4437 removed, so local configuration overriding this file should
ce830873 4438 be adapted to override 99-default.link instead.
dfb08b05 4439
e49b5aad 4440 * When the User= switch is used in a unit file, also
4c2413bf 4441 initialize $SHELL= based on the user database entry.
e49b5aad
LP
4442
4443 * systemd no longer depends on libdbus. All communication is
4444 now done with sd-bus, systemd's low-level bus library
4445 implementation.
4446
4447 * kdbus support has been added to PID 1 itself. When kdbus is
4c2413bf 4448 enabled, this causes PID 1 to set up the system bus and
e49b5aad
LP
4449 enable support for a new ".busname" unit type that
4450 encapsulates bus name activation on kdbus. It works a little
4451 bit like ".socket" units, except for bus names. A new
4452 generator has been added that converts classic dbus1 service
4453 activation files automatically into native systemd .busname
4454 and .service units.
4455
4456 * sd-bus: add a light-weight vtable implementation that allows
4457 defining objects on the bus with a simple static const
4458 vtable array of its methods, signals and properties.
4459
8b7d0494 4460 * systemd will not generate or install static dbus
e49b5aad 4461 introspection data anymore to /usr/share/dbus-1/interfaces,
1e190502 4462 as the precise format of these files is unclear, and
e49b5aad
LP
4463 nothing makes use of it.
4464
4465 * A proxy daemon is now provided to proxy clients connecting
4466 via classic D-Bus AF_UNIX sockets to kdbus, to provide full
4467 compatibility with classic D-Bus.
4468
4469 * A bus driver implementation has been added that supports the
4470 classic D-Bus bus driver calls on kdbus, also for
4471 compatibility purposes.
4472
4473 * A new API "sd-event.h" has been added that implements a
4474 minimal event loop API built around epoll. It provides a
4475 couple of features that direct epoll usage is lacking:
b9761003 4476 prioritization of events, scales to large numbers of timer
e49b5aad
LP
4477 events, per-event timer slack (accuracy), system-wide
4478 coalescing of timer events, exit handlers, watchdog
4479 supervision support using systemd's sd_notify() API, child
4480 process handling.
4481
4482 * A new API "sd-rntl.h" has been added that provides an API
4483 around the route netlink interface of the kernel, similar in
4484 style to "sd-bus.h".
4485
7e95eda5
PF
4486 * A new API "sd-dhcp-client.h" has been added that provides a
4487 small DHCPv4 client-side implementation. This is used by
e49b5aad
LP
4488 "systemd-networkd".
4489
4c2413bf 4490 * There is a new kernel command line option
8b7d0494
JSJ
4491 "systemd.restore_state=0|1". When set to "0", none of the
4492 systemd tools will restore saved runtime state to hardware
4493 devices. More specifically, the rfkill and backlight states
4494 are not restored.
e49b5aad
LP
4495
4496 * The FsckPassNo= compatibility option in mount/service units
4497 has been removed. The fstab generator will now add the
4498 necessary dependencies automatically, and does not require
4499 PID1's support for that anymore.
4500
8b7d0494 4501 * journalctl gained a new switch, --list-boots, that lists
e49b5aad
LP
4502 recent boots with their times and boot IDs.
4503
4504 * The various tools like systemctl, loginctl, timedatectl,
4505 busctl, systemd-run, ... have gained a new switch "-M" to
4506 connect to a specific, local OS container (as direct
4507 connection, without requiring SSH). This works on any
4508 container that is registered with machined, such as those
4509 created by libvirt-lxc or nspawn.
4510
4511 * systemd-run and systemd-analyze also gained support for "-H"
4c2413bf 4512 to connect to remote hosts via SSH. This is particularly
8b7d0494
JSJ
4513 useful for systemd-run because it enables queuing of jobs
4514 onto remote systems.
e49b5aad
LP
4515
4516 * machinectl gained a new command "login" to open a getty
4517 login in any local container. This works with any container
4518 that is registered with machined (such as those created by
8e420494 4519 libvirt-lxc or nspawn), and which runs systemd inside.
e49b5aad
LP
4520
4521 * machinectl gained a new "reboot" command that may be used to
4522 trigger a reboot on a specific container that is registered
4523 with machined. This works on any container that runs an init
4524 system of some kind.
4525
4526 * systemctl gained a new "list-timers" command to print a nice
4527 listing of installed timer units with the times they elapse
4528 next.
4529
4530 * Alternative reboot() parameters may now be specified on the
4531 "systemctl reboot" command line and are passed to the
4532 reboot() system call.
4533
4534 * systemctl gained a new --job-mode= switch to configure the
4535 mode to queue a job with. This is a more generic version of
8b7d0494 4536 --fail, --irreversible, and --ignore-dependencies, which are
e49b5aad
LP
4537 still available but not advertised anymore.
4538
e49b5aad
LP
4539 * /etc/systemd/system.conf gained new settings to configure
4540 various default timeouts of units, as well as the default
b9761003 4541 start limit interval and burst. These may still be overridden
e49b5aad
LP
4542 within each Unit.
4543
270f1624
LP
4544 * PID1 will now export on the bus profile data of the security
4545 policy upload process (such as the SELinux policy upload to
8e420494 4546 the kernel).
e49b5aad 4547
4670e9d5 4548 * journald: when forwarding logs to the console, include
1e190502
ZJS
4549 timestamps (following the setting in
4550 /sys/module/printk/parameters/time).
e49b5aad
LP
4551
4552 * OnCalendar= in timer units now understands the special
4553 strings "yearly" and "annually". (Both are equivalent)
4554
4555 * The accuracy of timer units is now configurable with the new
4556 AccuracySec= setting. It defaults to 1min.
4557
4558 * A new dependency type JoinsNamespaceOf= has been added that
4559 allows running two services within the same /tmp and network
4560 namespace, if PrivateNetwork= or PrivateTmp= are used.
4561
4562 * A new command "cat" has been added to systemctl. It outputs
4563 the original unit file of a unit, and concatenates the
1e190502
ZJS
4564 contents of additional "drop-in" unit file snippets, so that
4565 the full configuration is shown.
e49b5aad
LP
4566
4567 * systemctl now supports globbing on the various "list-xyz"
4568 commands, like "list-units" or "list-sockets", as well as on
1e190502
ZJS
4569 those commands which take multiple unit names.
4570
4571 * journalctl's --unit= switch gained support for globbing.
e49b5aad
LP
4572
4573 * All systemd daemons now make use of the watchdog logic so
4574 that systemd automatically notices when they hang.
4575
4c2413bf 4576 * If the $container_ttys environment variable is set,
e49b5aad
LP
4577 getty-generator will automatically spawn a getty for each
4578 listed tty. This is useful for container managers to request
4579 login gettys to be spawned on as many ttys as needed.
4580
4581 * %h, %s, %U specifier support is not available anymore when
4582 used in unit files for PID 1. This is because NSS calls are
4583 not safe from PID 1. They stay available for --user
4584 instances of systemd, and as special case for the root user.
4585
e49b5aad
LP
4586 * loginctl gained a new "--no-legend" switch to turn off output
4587 of the legend text.
4588
4589 * The "sd-login.h" API gained three new calls:
4590 sd_session_is_remote(), sd_session_get_remote_user(),
4591 sd_session_get_remote_host() to query information about
4592 remote sessions.
4593
8e420494
LP
4594 * The udev hardware database now also carries vendor/product
4595 information of SDIO devices.
e49b5aad
LP
4596
4597 * The "sd-daemon.h" API gained a new sd_watchdog_enabled() to
4598 determine whether watchdog notifications are requested by
4599 the system manager.
4600
1e190502 4601 * Socket-activated per-connection services now include a
e49b5aad
LP
4602 short description of the connection parameters in the
4603 description.
4604
4c2413bf 4605 * tmpfiles gained a new "--boot" option. When this is not used,
e49b5aad 4606 only lines where the command character is not suffixed with
4670e9d5 4607 "!" are executed. When this option is specified, those
1e190502
ZJS
4608 options are executed too. This partitions tmpfiles
4609 directives into those that can be safely executed at any
4610 time, and those which should be run only at boot (for
4611 example, a line that creates /run/nologin).
e49b5aad 4612
c0c5af00 4613 * A new API "sd-resolve.h" has been added which provides a simple
4c2413bf 4614 asynchronous wrapper around glibc NSS host name resolution
e49b5aad 4615 calls, such as getaddrinfo(). In contrast to glibc's
4c2413bf
JE
4616 getaddrinfo_a(), it does not use signals. In contrast to most
4617 other asynchronous name resolution libraries, this one does
4618 not reimplement DNS, but reuses NSS, so that alternate
e49b5aad 4619 host name resolution systems continue to work, such as mDNS,
8b7d0494 4620 LDAP, etc. This API is based on libasyncns, but it has been
e49b5aad
LP
4621 cleaned up for inclusion in systemd.
4622
6300b3ec
LP
4623 * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h",
4624 "sd-daemon.h" are no longer found in individual libraries
4625 libsystemd-journal.so, libsystemd-login.so,
4626 libsystemd-id128.so, libsystemd-daemon.so. Instead, we have
8b7d0494
JSJ
4627 merged them into a single library, libsystemd.so, which
4628 provides all symbols. The reason for this is cyclic
e49b5aad 4629 dependencies, as these libraries tend to use each other's
d28315e4 4630 symbols. So far, we have managed to workaround that by linking
6300b3ec
LP
4631 a copy of a good part of our code into each of these
4632 libraries again and again, which, however, makes certain
4633 things hard to do, like sharing static variables. Also, it
4634 substantially increases footprint. With this change, there
4635 is only one library for the basic APIs systemd
4636 provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h",
4637 "sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this
4638 library as well, however are subject to the --enable-kdbus
4639 switch (see below). Note that "sd-dhcp-client.h" is not part
4640 of this library (this is because it only consumes, never
4641 provides, services of/to other APIs). To make the transition
8b7d0494 4642 easy from the separate libraries to the unified one, we
4c2413bf 4643 provide the --enable-compat-libs compile-time switch which
e49b5aad
LP
4644 will generate stub libraries that are compatible with the
4645 old ones but redirect all calls to the new one.
4646
8b7d0494 4647 * All of the kdbus logic and the new APIs "sd-bus.h",
e49b5aad 4648 "sd-memfd.h", "sd-event.h", "sd-rtnl.h", "sd-resolve.h",
8b7d0494
JSJ
4649 and "sd-utf8.h" are compile-time optional via the
4650 "--enable-kdbus" switch, and they are not compiled in by
4651 default. To make use of kdbus, you have to explicitly enable
4c2413bf 4652 the switch. Note however, that neither the kernel nor the
e49b5aad
LP
4653 userspace API for all of this is considered stable yet. We
4654 want to maintain the freedom to still change the APIs for
4c2413bf 4655 now. By specifying this build-time switch, you acknowledge
e49b5aad 4656 that you are aware of the instability of the current
ad42cf73
KS
4657 APIs.
4658
4659 * Also, note that while kdbus is pretty much complete,
e49b5aad 4660 it lacks one thing: proper policy support. This means you
8b7d0494 4661 can build a fully working system with all features; however,
4c2413bf
JE
4662 it will be highly insecure. Policy support will be added in
4663 one of the next releases, at the same time that we will
4664 declare the APIs stable.
e49b5aad 4665
81c7dd89 4666 * When the kernel command line argument "kdbus" is specified,
ad42cf73 4667 systemd will automatically load the kdbus.ko kernel module. At
8b7d0494 4668 this stage of development, it is only useful for testing kdbus
ad42cf73 4669 and should not be used in production. Note: if "--enable-kdbus"
8b7d0494 4670 is specified, and the kdbus.ko kernel module is available, and
ad42cf73
KS
4671 "kdbus" is added to the kernel command line, the entire system
4672 runs with kdbus instead of dbus-daemon, with the above mentioned
4673 problem of missing the system policy enforcement. Also a future
4674 version of kdbus.ko or a newer systemd will not be compatible with
4675 each other, and will unlikely be able to boot the machine if only
4676 one of them is updated.
4677
e49b5aad 4678 * systemctl gained a new "import-environment" command which
4c2413bf 4679 uploads the caller's environment (or parts thereof) into the
e49b5aad
LP
4680 service manager so that it is inherited by services started
4681 by the manager. This is useful to upload variables like
4682 $DISPLAY into the user service manager.
4683
4684 * A new PrivateDevices= switch has been added to service units
4685 which allows running a service with a namespaced /dev
4686 directory that does not contain any device nodes for
4c2413bf 4687 physical devices. More specifically, it only includes devices
8b7d0494 4688 such as /dev/null, /dev/urandom, and /dev/zero which are API
e49b5aad
LP
4689 entry points.
4690
4691 * logind has been extended to support behaviour like VT
4692 switching on seats that do not support a VT. This makes
4693 multi-session available on seats that are not the first seat
4694 (seat0), and on systems where kernel support for VTs has
8b7d0494 4695 been disabled at compile-time.
e49b5aad
LP
4696
4697 * If a process holds a delay lock for system sleep or shutdown
1e190502 4698 and fails to release it in time, we will now log its
e49b5aad
LP
4699 identity. This makes it easier to identify processes that
4700 cause slow suspends or power-offs.
4701
1e190502
ZJS
4702 * When parsing /etc/crypttab, support for a new key-slot=
4703 option as supported by Debian is added. It allows indicating
4704 which LUKS slot to use on disk, speeding up key loading.
e49b5aad 4705
1e190502
ZJS
4706 * The sd_journald_sendv() API call has been checked and
4707 officially declared to be async-signal-safe so that it may
4708 be invoked from signal handlers for logging purposes.
e49b5aad
LP
4709
4710 * Boot-time status output is now enabled automatically after a
4711 short timeout if boot does not progress, in order to give
8e420494 4712 the user an indication what she or he is waiting for.
1e190502
ZJS
4713
4714 * The boot-time output has been improved to show how much time
4715 remains until jobs expire.
e49b5aad
LP
4716
4717 * The KillMode= switch in service units gained a new possible
8b7d0494 4718 value "mixed". If set, and the unit is shut down, then the
e49b5aad 4719 initial SIGTERM signal is sent only to the main daemon
8e420494 4720 process, while the following SIGKILL signal is sent to
e49b5aad
LP
4721 all remaining processes of the service.
4722
4c2413bf
JE
4723 * When a scope unit is registered, a new property "Controller"
4724 may be set. If set to a valid bus name, systemd will send a
e49b5aad
LP
4725 RequestStop() signal to this name when it would like to shut
4726 down the scope. This may be used to hook manager logic into
4727 the shutdown logic of scope units. Also, scope units may now
8b7d0494 4728 be put in a special "abandoned" state, in which case the
e49b5aad
LP
4729 manager process which created them takes no further
4730 responsibilities for it.
4731
1e190502 4732 * When reading unit files, systemd will now verify
e49b5aad
LP
4733 the access mode of these files, and warn about certain
4734 suspicious combinations. This has been added to make it
4735 easier to track down packaging bugs where unit files are
4736 marked executable or world-writable.
4737
4738 * systemd-nspawn gained a new "--setenv=" switch to set
8b7d0494 4739 container-wide environment variables. The similar option in
1e190502
ZJS
4740 systemd-activate was renamed from "--environment=" to
4741 "--setenv=" for consistency.
e49b5aad
LP
4742
4743 * systemd-nspawn has been updated to create a new kdbus domain
4744 for each container that is invoked, thus allowing each
b9761003 4745 container to have its own set of system and user buses,
8b7d0494 4746 independent of the host.
e49b5aad
LP
4747
4748 * systemd-nspawn gained a new --drop-capability= switch to run
4749 the container with less capabilities than the default. Both
b9761003 4750 --drop-capability= and --capability= now take the special
e49b5aad
LP
4751 string "all" for dropping or keeping all capabilities.
4752
4753 * systemd-nspawn gained new switches for executing containers
4754 with specific SELinux labels set.
4755
4756 * systemd-nspawn gained a new --quiet switch to not generate
4757 any additional output but the container's own console
4758 output.
4759
4760 * systemd-nspawn gained a new --share-system switch to run a
4761 container without PID namespacing enabled.
4762
4763 * systemd-nspawn gained a new --register= switch to control
1e190502 4764 whether the container is registered with systemd-machined or
8e420494 4765 not. This is useful for containers that do not run full
e49b5aad
LP
4766 OS images, but only specific apps.
4767
4768 * systemd-nspawn gained a new --keep-unit which may be used
8b7d0494 4769 when invoked as the only program from a service unit, and
e49b5aad 4770 results in registration of the unit service itself in
1e190502 4771 systemd-machined, instead of a newly opened scope unit.
e49b5aad
LP
4772
4773 * systemd-nspawn gained a new --network-interface= switch for
4774 moving arbitrary interfaces to the container. The new
4c2413bf 4775 --network-veth switch creates a virtual Ethernet connection
8b7d0494
JSJ
4776 between host and container. The new --network-bridge=
4777 switch then allows assigning the host side of this virtual
4778 Ethernet connection to a bridge device.
e49b5aad 4779
6afc95b7
LP
4780 * systemd-nspawn gained a new --personality= switch for
4781 setting the kernel personality for the container. This is
70a44afe 4782 useful when running a 32-bit container on a 64-bit host. A
b8bde116
JE
4783 similar option Personality= is now also available for service
4784 units to use.
6afc95b7 4785
e49b5aad
LP
4786 * logind will now also track a "Desktop" identifier for each
4787 session which encodes the desktop environment of it. This is
4788 useful for desktop environments that want to identify
4789 multiple running sessions of itself easily.
4790
4791 * A new SELinuxContext= setting for service units has been
4792 added that allows setting a specific SELinux execution
4793 context for a service.
4794
4795 * Most systemd client tools will now honour $SYSTEMD_LESS for
4796 settings of the "less" pager. By default, these tools will
8b7d0494
JSJ
4797 override $LESS to allow certain operations to work, such as
4798 jump-to-the-end. With $SYSTEMD_LESS, it is possible to
e49b5aad
LP
4799 influence this logic.
4800
4801 * systemd's "seccomp" hook-up has been changed to make use of
4802 the libseccomp library instead of using its own
4803 implementation. This has benefits for portability among
4804 other things.
4805
4c2413bf 4806 * For usage together with SystemCallFilter=, a new
8b7d0494 4807 SystemCallErrorNumber= setting has been introduced that
b8bde116
JE
4808 allows configuration of a system error number to be returned
4809 on filtered system calls, instead of immediately killing the
e49b5aad
LP
4810 process. Also, SystemCallArchitectures= has been added to
4811 limit access to system calls of a particular architecture
4812 (in order to turn off support for unused secondary
4c2413bf 4813 architectures). There is also a global
8b7d0494 4814 SystemCallArchitectures= setting in system.conf now to turn
e49b5aad
LP
4815 off support for non-native system calls system-wide.
4816
210054d7
KS
4817 * systemd requires a kernel with a working name_to_handle_at(),
4818 please see the kernel config requirements in the README file.
4819
e49b5aad
LP
4820 Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov,
4821 Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera,
4822 Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters,
4823 Cristian Rodríguez, Daniel Buch, Daniele Medri, Daniel J
4824 Walsh, Daniel Mack, Dan McGee, Dave Reisner, David Coppa,
4825 David Herrmann, David Strauss, Djalal Harouni, Dmitry Pisklov,
4826 Elia Pinto, Florian Weimer, George McCollister, Goffredo
4827 Baroncelli, Greg Kroah-Hartman, Hendrik Brueckner, Igor
4828 Zhbanov, Jan Engelhardt, Jan Janssen, Jason A. Donenfeld,
4829 Jason St. John, Jasper St. Pierre, Jóhann B. Guðmundsson, Jose
4830 Ignacio Naranjo, Karel Zak, Kay Sievers, Kristian Høgsberg,
4831 Lennart Poettering, Lubomir Rintel, Lukas Nykryn, Lukasz
4832 Skalski, Łukasz Stelmach, Luke Shumaker, Mantas Mikulėnas,
4833 Marc-Antoine Perennou, Marcel Holtmann, Marcos Felipe Rasia de
4834 Mello, Marko Myllynen, Martin Pitt, Matthew Monaco, Michael
4835 Marineau, Michael Scherer, Michał Górny, Michal Sekletar,
4836 Michele Curti, Oleksii Shevchuk, Olivier Brunel, Patrik Flykt,
4837 Pavel Holica, Raudi, Richard Marko, Ronny Chevalier, Sébastien
4838 Luttringer, Sergey Ptashnick, Shawn Landden, Simon Peeters,
4839 Stefan Beller, Susant Sahani, Sylvain Plantefeve, Sylvia Else,
4840 Tero Roponen, Thomas Bächler, Thomas Hindoe Paaboel Andersen,
4841 Tom Gundersen, Umut Tezduyar Lindskog, Unai Uribarri, Václav
4842 Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang
4843 Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek
4844
ccddd104 4845 — Berlin, 2014-02-20
e49b5aad 4846
cd4010b3
LP
4847CHANGES WITH 208:
4848
4849 * logind has gained support for facilitating privileged input
4850 and drm device access for unprivileged clients. This work is
4851 useful to allow Wayland display servers (and similar
4852 programs, such as kmscon) to run under the user's ID and
4853 access input and drm devices which are normally
4854 protected. When this is used (and the kernel is new enough)
4855 logind will "mute" IO on the file descriptors passed to
4856 Wayland as long as it is in the background and "unmute" it
4857 if it returns into the foreground. This allows secure
4858 session switching without allowing background sessions to
4859 eavesdrop on input and display data. This also introduces
4860 session switching support if VT support is turned off in the
4861 kernel, and on seats that are not seat0.
4862
4863 * A new kernel command line option luks.options= is understood
06b643e7 4864 now which allows specifying LUKS options for usage for LUKS
cd4010b3
LP
4865 encrypted partitions specified with luks.uuid=.
4866
4867 * tmpfiles.d(5) snippets may now use specifier expansion in
4868 path names. More specifically %m, %b, %H, %v, are now
4869 replaced by the local machine id, boot id, hostname, and
4870 kernel version number.
4871
4872 * A new tmpfiles.d(5) command "m" has been introduced which
4873 may be used to change the owner/group/access mode of a file
d28315e4 4874 or directory if it exists, but do nothing if it does not.
cd4010b3
LP
4875
4876 * This release removes high-level support for the
4877 MemorySoftLimit= cgroup setting. The underlying kernel
4878 cgroup attribute memory.soft_limit= is currently badly
4879 designed and likely to be removed from the kernel API in its
d28315e4 4880 current form, hence we should not expose it for now.
cd4010b3
LP
4881
4882 * The memory.use_hierarchy cgroup attribute is now enabled for
4883 all cgroups systemd creates in the memory cgroup
4884 hierarchy. This option is likely to be come the built-in
cc98b302
TH
4885 default in the kernel anyway, and the non-hierarchical mode
4886 never made much sense in the intrinsically hierarchical
cd4010b3
LP
4887 cgroup system.
4888
4889 * A new field _SYSTEMD_SLICE= is logged along with all journal
4890 messages containing the slice a message was generated
4891 from. This is useful to allow easy per-customer filtering of
4892 logs among other things.
4893
4894 * systemd-journald will no longer adjust the group of journal
4895 files it creates to the "systemd-journal" group. Instead we
4896 rely on the journal directory to be owned by the
4897 "systemd-journal" group, and its setgid bit set, so that the
4898 kernel file system layer will automatically enforce that
4899 journal files inherit this group assignment. The reason for
4900 this change is that we cannot allow NSS look-ups from
4901 journald which would be necessary to resolve
4902 "systemd-journal" to a numeric GID, because this might
4903 create deadlocks if NSS involves synchronous queries to
4904 other daemons (such as nscd, or sssd) which in turn are
4905 logging clients of journald and might block on it, which
4906 would then dead lock. A tmpfiles.d(5) snippet included in
4907 systemd will make sure the setgid bit and group are
4908 properly set on the journal directory if it exists on every
4909 boot. However, we recommend adjusting it manually after
4910 upgrades too (or from RPM scriptlets), so that the change is
4911 not delayed until next reboot.
4912
4913 * Backlight and random seed files in /var/lib/ have moved into
4914 the /var/lib/systemd/ directory, in order to centralize all
4915 systemd generated files in one directory.
4916
4917 * Boot time performance measurements (as displayed by
4918 "systemd-analyze" for example) will now read ACPI 5.0 FPDT
4919 performance information if that's available to determine how
4920 much time BIOS and boot loader initialization required. With
4921 a sufficiently new BIOS you hence no longer need to boot
4922 with Gummiboot to get access to such information.
4923
4924 Contributions from: Andrey Borzenkov, Chen Jie, Colin Walters,
4925 Cristian Rodríguez, Dave Reisner, David Herrmann, David
4926 Mackey, David Strauss, Eelco Dolstra, Evan Callicoat, Gao
4927 feng, Harald Hoyer, Jimmie Tauriainen, Kay Sievers, Lennart
4928 Poettering, Lukas Nykryn, Mantas Mikulėnas, Martin Pitt,
4929 Michael Scherer, Michał Górny, Mike Gilbert, Patrick McCarty,
4930 Sebastian Ott, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
4931
ccddd104 4932 — Berlin, 2013-10-02
cd4010b3 4933
4f0be680
LP
4934CHANGES WITH 207:
4935
4936 * The Restart= option for services now understands a new
f3a165b0 4937 on-watchdog setting, which will restart the service
4f0be680
LP
4938 automatically if the service stops sending out watchdog keep
4939 alive messages (as configured with WatchdogSec=).
4940
4941 * The getty generator (which is responsible for bringing up a
4942 getty on configured serial consoles) will no longer only
4943 start a getty on the primary kernel console but on all
4944 others, too. This makes the order in which console= is
4945 specified on the kernel command line less important.
4946
4947 * libsystemd-logind gained a new sd_session_get_vt() call to
4948 retrieve the VT number of a session.
4949
4950 * If the option "tries=0" is set for an entry of /etc/crypttab
4951 its passphrase is queried indefinitely instead of any
4952 maximum number of tries.
4953
4954 * If a service with a configure PID file terminates its PID
4955 file will now be removed automatically if it still exists
4956 afterwards. This should put an end to stale PID files.
4957
4958 * systemd-run will now also take relative binary path names
4959 for execution and no longer insists on absolute paths.
4960
4961 * InaccessibleDirectories= and ReadOnlyDirectories= now take
4962 paths that are optionally prefixed with "-" to indicate that
d28315e4 4963 it should not be considered a failure if they do not exist.
4f0be680 4964
f3a165b0
KS
4965 * journalctl -o (and similar commands) now understands a new
4966 output mode "short-precise", it is similar to "short" but
4f0be680
LP
4967 shows timestamps with usec accuracy.
4968
4969 * The option "discard" (as known from Debian) is now
4970 synonymous to "allow-discards" in /etc/crypttab. In fact,
387abf80 4971 "discard" is preferred now (since it is easier to remember
4f0be680
LP
4972 and type).
4973
f3a165b0 4974 * Some licensing clean-ups were made, so that more code is now
4f0be680
LP
4975 LGPL-2.1 licensed than before.
4976
4977 * A minimal tool to save/restore the display backlight
4978 brightness across reboots has been added. It will store the
f3a165b0 4979 backlight setting as late as possible at shutdown, and
4f0be680
LP
4980 restore it as early as possible during reboot.
4981
4982 * A logic to automatically discover and enable home and swap
4983 partitions on GPT disks has been added. With this in place
4984 /etc/fstab becomes optional for many setups as systemd can
4985 discover certain partitions located on the root disk
4986 automatically. Home partitions are recognized under their
4987 GPT type ID 933ac7e12eb44f13b8440e14e2aef915. Swap
4988 partitions are recognized under their GPT type ID
4989 0657fd6da4ab43c484e50933c84b4f4f.
4990
4991 * systemd will no longer pass any environment from the kernel
4992 or initrd to system services. If you want to set an
4993 environment for all services, do so via the kernel command
4994 line systemd.setenv= assignment.
4995
387abf80
LP
4996 * The systemd-sysctl tool no longer natively reads the file
4997 /etc/sysctl.conf. If desired, the file should be symlinked
4998 from /etc/sysctl.d/99-sysctl.conf. Apart from providing
4999 legacy support by a symlink rather than built-in code, it
5000 also makes the otherwise hidden order of application of the
5001 different files visible. (Note that this partly reverts to a
5002 pre-198 application order of sysctl knobs!)
04bf3c1a 5003
4f0be680
LP
5004 * The "systemctl set-log-level" and "systemctl dump" commands
5005 have been moved to systemd-analyze.
5006
5007 * systemd-run learned the new --remain-after-exit switch,
5008 which causes the scope unit not to be cleaned up
5009 automatically after the process terminated.
5010
5011 * tmpfiles learned a new --exclude-prefix= switch to exclude
5012 certain paths from operation.
5013
5014 * journald will now automatically flush all messages to disk
f47ad593
ZJS
5015 as soon as a message at the log level CRIT, ALERT or EMERG
5016 is received.
4f0be680
LP
5017
5018 Contributions from: Andrew Cook, Brandon Philips, Christian
5019 Hesse, Christoph Junghans, Colin Walters, Daniel Schaal,
5020 Daniel Wallace, Dave Reisner, David Herrmann, Gao feng, George
5021 McCollister, Giovanni Campagna, Hannes Reinecke, Harald Hoyer,
5022 Herczeg Zsolt, Holger Hans Peter Freyther, Jan Engelhardt,
5023 Jesper Larsen, Kay Sievers, Khem Raj, Lennart Poettering,
5024 Lukas Nykryn, Maciej Wereski, Mantas Mikulėnas, Marcel
5025 Holtmann, Martin Pitt, Michael Biebl, Michael Marineau,
5026 Michael Scherer, Michael Stapelberg, Michal Sekletar, Michał
5027 Górny, Olivier Brunel, Ondrej Balaz, Ronny Chevalier, Shawn
5028 Landden, Steven Hiscocks, Thomas Bächler, Thomas Hindoe
5029 Paaboel Andersen, Tom Gundersen, Umut Tezduyar, WANG Chao,
5030 William Giokas, Zbigniew Jędrzejewski-Szmek
5031
ccddd104 5032 — Berlin, 2013-09-13
4f0be680 5033
408f281b
LP
5034CHANGES WITH 206:
5035
5036 * The documentation has been updated to cover the various new
5037 concepts introduced with 205.
5038
5039 * Unit files now understand the new %v specifier which
5040 resolves to the kernel version string as returned by "uname
5041 -r".
5042
5043 * systemctl now supports filtering the unit list output by
5044 load state, active state and sub state, using the new
33b521be 5045 --state= parameter.
408f281b
LP
5046
5047 * "systemctl status" will now show the results of the
5048 condition checks (like ConditionPathExists= and similar) of
5049 the last start attempts of the unit. They are also logged to
5050 the journal.
5051
5052 * "journalctl -b" may now be used to look for boot output of a
5053 specific boot. Try "journalctl -b -1" for the previous boot,
5054 but the syntax is substantially more powerful.
5055
5056 * "journalctl --show-cursor" has been added which prints the
5057 cursor string the last shown log line. This may then be used
5058 with the new "journalctl --after-cursor=" switch to continue
5059 browsing logs from that point on.
5060
5061 * "journalctl --force" may now be used to force regeneration
5062 of an FSS key.
5063
251cc819
LP
5064 * Creation of "dead" device nodes has been moved from udev
5065 into kmod and tmpfiles. Previously, udev would read the kmod
5066 databases to pre-generate dead device nodes based on meta
5067 information contained in kernel modules, so that these would
5068 be auto-loaded on access rather then at boot. As this
d28315e4 5069 does not really have much to do with the exposing actual
251cc819
LP
5070 kernel devices to userspace this has always been slightly
5071 alien in the udev codebase. Following the new scheme kmod
5072 will now generate a runtime snippet for tmpfiles from the
5073 module meta information and it now is tmpfiles' job to the
5074 create the nodes. This also allows overriding access and
5075 other parameters for the nodes using the usual tmpfiles
5076 facilities. As side effect this allows us to remove the
5077 CAP_SYS_MKNOD capability bit from udevd entirely.
5078
5079 * logind's device ACLs may now be applied to these "dead"
5080 devices nodes too, thus finally allowing managed access to
ce830873 5081 devices such as /dev/snd/sequencer without loading the
251cc819 5082 backing module right-away.
408f281b
LP
5083
5084 * A new RPM macro has been added that may be used to apply
5085 tmpfiles configuration during package installation.
5086
5087 * systemd-detect-virt and ConditionVirtualization= now can
5088 detect User-Mode-Linux machines (UML).
5089
251cc819
LP
5090 * journald will now implicitly log the effective capabilities
5091 set of processes in the message metadata.
408f281b
LP
5092
5093 * systemd-cryptsetup has gained support for TrueCrypt volumes.
5094
5095 * The initrd interface has been simplified (more specifically,
5096 support for passing performance data via environment
5097 variables and fsck results via files in /run has been
5098 removed). These features were non-essential, and are
5099 nowadays available in a much nicer way by having systemd in
5100 the initrd serialize its state and have the hosts systemd
5101 deserialize it again.
5102
28f5c779
KS
5103 * The udev "keymap" data files and tools to apply keyboard
5104 specific mappings of scan to key codes, and force-release
5105 scan code lists have been entirely replaced by a udev
5106 "keyboard" builtin and a hwdb data file.
408f281b 5107
251cc819
LP
5108 * systemd will now honour the kernel's "quiet" command line
5109 argument also during late shutdown, resulting in a
5110 completely silent shutdown when used.
5111
5112 * There's now an option to control the SO_REUSEPORT socket
5113 option in .socket units.
5114
5115 * Instance units will now automatically get a per-template
5116 subslice of system.slice unless something else is explicitly
5117 configured. For example, instances of sshd@.service will now
5118 implicitly be placed in system-sshd.slice rather than
5119 system.slice as before.
5120
5121 * Test coverage support may now be enabled at build time.
5122
5123 Contributions from: Dave Reisner, Frederic Crozat, Harald
5124 Hoyer, Holger Hans Peter Freyther, Jan Engelhardt, Jan
5125 Janssen, Jason St. John, Jesper Larsen, Kay Sievers, Lennart
5126 Poettering, Lukas Nykryn, Maciej Wereski, Martin Pitt, Michael
5127 Olbrich, Ramkumar Ramachandra, Ross Lagerwall, Shawn Landden,
5128 Thomas H.P. Andersen, Tom Gundersen, Tomasz Torcz, William
5129 Giokas, Zbigniew Jędrzejewski-Szmek
5130
ccddd104 5131 — Berlin, 2013-07-23
4f0be680 5132
00aa832b
LP
5133CHANGES WITH 205:
5134
5135 * Two new unit types have been introduced:
5136
5137 Scope units are very similar to service units, however, are
ccddd104 5138 created out of pre-existing processes — instead of PID 1
00aa832b
LP
5139 forking off the processes. By using scope units it is
5140 possible for system services and applications to group their
5141 own child processes (worker processes) in a powerful way
5142 which then maybe used to organize them, or kill them
5143 together, or apply resource limits on them.
5144
5145 Slice units may be used to partition system resources in an
cc98b302 5146 hierarchical fashion and then assign other units to them. By
00aa832b
LP
5147 default there are now three slices: system.slice (for all
5148 system services), user.slice (for all user sessions),
5149 machine.slice (for VMs and containers).
5150
5151 Slices and scopes have been introduced primarily in
5152 context of the work to move cgroup handling to a
5153 single-writer scheme, where only PID 1
5154 creates/removes/manages cgroups.
5155
5156 * There's a new concept of "transient" units. In contrast to
5157 normal units these units are created via an API at runtime,
5158 not from configuration from disk. More specifically this
5159 means it is now possible to run arbitrary programs as
5160 independent services, with all execution parameters passed
5161 in via bus APIs rather than read from disk. Transient units
5162 make systemd substantially more dynamic then it ever was,
5163 and useful as a general batch manager.
5164
5165 * logind has been updated to make use of scope and slice units
5166 for managing user sessions. As a user logs in he will get
5167 his own private slice unit, to which all sessions are added
5168 as scope units. We also added support for automatically
5169 adding an instance of user@.service for the user into the
5170 slice. Effectively logind will no longer create cgroup
5171 hierarchies on its own now, it will defer entirely to PID 1
5172 for this by means of scope, service and slice units. Since
5173 user sessions this way become entities managed by PID 1
5174 the output of "systemctl" is now a lot more comprehensive.
5175
5176 * A new mini-daemon "systemd-machined" has been added which
5177 may be used by virtualization managers to register local
5178 VMs/containers. nspawn has been updated accordingly, and
5179 libvirt will be updated shortly. machined will collect a bit
5180 of meta information about the VMs/containers, and assign
5181 them their own scope unit (see above). The collected
5182 meta-data is then made available via the "machinectl" tool,
5183 and exposed in "ps" and similar tools. machined/machinectl
5184 is compile-time optional.
5185
5186 * As discussed earlier, the low-level cgroup configuration
5187 options ControlGroup=, ControlGroupModify=,
5188 ControlGroupPersistent=, ControlGroupAttribute= have been
5189 removed. Please use high-level attribute settings instead as
5190 well as slice units.
5191
5192 * A new bus call SetUnitProperties() has been added to alter
5193 various runtime parameters of a unit. This is primarily
5194 useful to alter cgroup parameters dynamically in a nice way,
5195 but will be extended later on to make more properties
5196 modifiable at runtime. systemctl gained a new set-properties
5197 command that wraps this call.
5198
5199 * A new tool "systemd-run" has been added which can be used to
5200 run arbitrary command lines as transient services or scopes,
5201 while configuring a number of settings via the command
5202 line. This tool is currently very basic, however already
5203 very useful. We plan to extend this tool to even allow
5204 queuing of execution jobs with time triggers from the
5205 command line, similar in fashion to "at".
5206
5207 * nspawn will now inform the user explicitly that kernels with
5208 audit enabled break containers, and suggest the user to turn
5209 off audit.
5210
5211 * Support for detecting the IMA and AppArmor security
5212 frameworks with ConditionSecurity= has been added.
5213
5214 * journalctl gained a new "-k" switch for showing only kernel
1fda0ab5
ZJS
5215 messages, mimicking dmesg output; in addition to "--user"
5216 and "--system" switches for showing only user's own logs
5217 and system logs.
00aa832b
LP
5218
5219 * systemd-delta can now show information about drop-in
5220 snippets extending unit files.
5221
5222 * libsystemd-bus has been substantially updated but is still
5223 not available as public API.
5224
5225 * systemd will now look for the "debug" argument on the kernel
499b604b 5226 command line and enable debug logging, similar to what
00aa832b
LP
5227 "systemd.log_level=debug" already did before.
5228
5229 * "systemctl set-default", "systemctl get-default" has been
5230 added to configure the default.target symlink, which
5231 controls what to boot into by default.
5232
1fda0ab5
ZJS
5233 * "systemctl set-log-level" has been added as a convenient
5234 way to raise and lower systemd logging threshold.
5235
00aa832b
LP
5236 * "systemd-analyze plot" will now show the time the various
5237 generators needed for execution, as well as information
5238 about the unit file loading.
5239
00aa832b
LP
5240 * libsystemd-journal gained a new sd_journal_open_files() call
5241 for opening specific journal files. journactl also gained a
5242 new switch to expose this new functionality. Previously we
5243 only supported opening all files from a directory, or all
5244 files from the system, as opening individual files only is
5245 racy due to journal file rotation.
5246
5247 * systemd gained the new DefaultEnvironment= setting in
5248 /etc/systemd/system.conf to set environment variables for
5249 all services.
5250
5251 * If a privileged process logs a journal message with the
5252 OBJECT_PID= field set, then journald will automatically
5253 augment this with additional OBJECT_UID=, OBJECT_GID=,
5254 OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if
5255 system services want to log events about specific client
5256 processes. journactl/systemctl has been updated to make use
5257 of this information if all log messages regarding a specific
5258 unit is requested.
5259
5260 Contributions from: Auke Kok, Chengwei Yang, Colin Walters,
5261 Cristian Rodríguez, Daniel Albers, Daniel Wallace, Dave
5262 Reisner, David Coppa, David King, David Strauss, Eelco
5263 Dolstra, Gabriel de Perthuis, Harald Hoyer, Jan Alexander
5264 Steffens, Jan Engelhardt, Jan Janssen, Jason St. John, Johan
5265 Heikkilä, Karel Zak, Karol Lewandowski, Kay Sievers, Lennart
5266 Poettering, Lukas Nykryn, Mantas Mikulėnas, Marius Vollmer,
5267 Martin Pitt, Michael Biebl, Michael Olbrich, Michael Tremer,
5268 Michal Schmidt, Michał Bartoszkiewicz, Nirbheek Chauhan,
5269 Pierre Neidhardt, Ross Burton, Ross Lagerwall, Sean McGovern,
5270 Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar,
5271 Václav Pavlín, Zachary Cook, Zbigniew Jędrzejewski-Szmek,
5272 Łukasz Stelmach, 장동준
5273
606c24e3
LP
5274CHANGES WITH 204:
5275
5276 * The Python bindings gained some minimal support for the APIs
5277 exposed by libsystemd-logind.
5278
5279 * ConditionSecurity= gained support for detecting SMACK. Since
5280 this condition already supports SELinux and AppArmor we only
5281 miss IMA for this. Patches welcome!
5282
5283 Contributions from: Karol Lewandowski, Lennart Poettering,
5284 Zbigniew Jędrzejewski-Szmek
5285
2f3fcf85
LP
5286CHANGES WITH 203:
5287
5288 * systemd-nspawn will now create /etc/resolv.conf if
5289 necessary, before bind-mounting the host's file onto it.
5290
5291 * systemd-nspawn will now store meta information about a
5292 container on the container's cgroup as extended attribute
5293 fields, including the root directory.
5294
5295 * The cgroup hierarchy has been reworked in many ways. All
5296 objects any of the components systemd creates in the cgroup
b82eed9a 5297 tree are now suffixed. More specifically, user sessions are
2f3fcf85
LP
5298 now placed in cgroups suffixed with ".session", users in
5299 cgroups suffixed with ".user", and nspawn containers in
5300 cgroups suffixed with ".nspawn". Furthermore, all cgroup
5301 names are now escaped in a simple scheme to avoid collision
5302 of userspace object names with kernel filenames. This work
5303 is preparation for making these objects relocatable in the
5304 cgroup tree, in order to allow easy resource partitioning of
5305 these objects without causing naming conflicts.
5306
5307 * systemctl list-dependencies gained the new switches
5308 --plain, --reverse, --after and --before.
5309
5310 * systemd-inhibit now shows the process name of processes that
5311 have taken an inhibitor lock.
5312
5313 * nss-myhostname will now also resolve "localhost"
5314 implicitly. This makes /etc/hosts an optional file and
5315 nicely handles that on IPv6 ::1 maps to both "localhost" and
5316 the local hostname.
5317
5318 * libsystemd-logind.so gained a new call
5319 sd_get_machine_names() to enumerate running containers and
5320 VMs (currently only supported by very new libvirt and
5321 nspawn). sd_login_monitor can now be used to watch
5322 VMs/containers coming and going.
5323
5324 * .include is not allowed recursively anymore, and only in
5325 unit files. Usually it is better to use drop-in snippets in
5326 .d/*.conf anyway, as introduced with systemd 198.
5327
5328 * systemd-analyze gained a new "critical-chain" command that
5329 determines the slowest chain of units run during system
5330 boot-up. It is very useful for tracking down where
5331 optimizing boot time is the most beneficial.
5332
5333 * systemd will no longer allow manipulating service paths in
5334 the name=systemd:/system cgroup tree using ControlGroup= in
5335 units. (But is still fine with it in all other dirs.)
5336
5337 * There's a new systemd-nspawn@.service service file that may
5338 be used to easily run nspawn containers as system
5339 services. With the container's root directory in
5340 /var/lib/container/foobar it is now sufficient to run
5341 "systemctl start systemd-nspawn@foobar.service" to boot it.
5342
5343 * systemd-cgls gained a new parameter "--machine" to list only
5344 the processes within a certain container.
5345
5346 * ConditionSecurity= now can check for "apparmor". We still
5347 are lacking checks for SMACK and IMA for this condition
5348 check though. Patches welcome!
5349
5350 * A new configuration file /etc/systemd/sleep.conf has been
5351 added that may be used to configure which kernel operation
5352 systemd is supposed to execute when "suspend", "hibernate"
5353 or "hybrid-sleep" is requested. This makes the new kernel
5354 "freeze" state accessible to the user.
5355
5356 * ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
5357 the passed argument if applicable.
5358
5359 Contributions from: Auke Kok, Colin Guthrie, Colin Walters,
5360 Cristian Rodríguez, Daniel Buch, Daniel Wallace, Dave Reisner,
5361 Evangelos Foutras, Greg Kroah-Hartman, Harald Hoyer, Josh
5362 Triplett, Kay Sievers, Lennart Poettering, Lukas Nykryn,
5363 MUNEDA Takahiro, Mantas Mikulėnas, Mirco Tischler, Nathaniel
5364 Chen, Nirbheek Chauhan, Ronny Chevalier, Ross Lagerwall, Tom
5365 Gundersen, Umut Tezduyar, Ville Skyttä, Zbigniew
5366 Jędrzejewski-Szmek
5367
ef3b5246
LP
5368CHANGES WITH 202:
5369
5370 * The output of 'systemctl list-jobs' got some polishing. The
5371 '--type=' argument may now be passed more than once. A new
5372 command 'systemctl list-sockets' has been added which shows
5373 a list of kernel sockets systemd is listening on with the
5374 socket units they belong to, plus the units these socket
5375 units activate.
5376
5377 * The experimental libsystemd-bus library got substantial
5378 updates to work in conjunction with the (also experimental)
5379 kdbus kernel project. It works well enough to exchange
5380 messages with some sophistication. Note that kdbus is not
5381 ready yet, and the library is mostly an elaborate test case
5382 for now, and not installable.
5383
5384 * systemd gained a new unit 'systemd-static-nodes.service'
5385 that generates static device nodes earlier during boot, and
5386 can run in conjunction with udev.
5387
5388 * libsystemd-login gained a new call sd_pid_get_user_unit()
5389 to retrieve the user systemd unit a process is running
5390 in. This is useful for systems where systemd is used as
5391 session manager.
5392
5393 * systemd-nspawn now places all containers in the new /machine
5394 top-level cgroup directory in the name=systemd
5395 hierarchy. libvirt will soon do the same, so that we get a
5396 uniform separation of /system, /user and /machine for system
5397 services, user processes and containers/virtual
5398 machines. This new cgroup hierarchy is also useful to stick
5399 stable names to specific container instances, which can be
7c04ad2d 5400 recognized later this way (this name may be controlled
ef3b5246
LP
5401 via systemd-nspawn's new -M switch). libsystemd-login also
5402 gained a new call sd_pid_get_machine_name() to retrieve the
5403 name of the container/VM a specific process belongs to.
5404
5405 * bootchart can now store its data in the journal.
5406
5407 * libsystemd-journal gained a new call
5408 sd_journal_add_conjunction() for AND expressions to the
5409 matching logic. This can be used to express more complex
5410 logical expressions.
5411
5412 * journactl can now take multiple --unit= and --user-unit=
5413 switches.
5414
5415 * The cryptsetup logic now understands the "luks.key=" kernel
5416 command line switch for specifying a file to read the
7c04ad2d 5417 decryption key from. Also, if a configured key file is not
ef3b5246
LP
5418 found the tool will now automatically fall back to prompting
5419 the user.
5420
cbeabcfb
ZJS
5421 * Python systemd.journal module was updated to wrap recently
5422 added functions from libsystemd-journal. The interface was
5423 changed to bring the low level interface in s.j._Reader
5424 closer to the C API, and the high level interface in
5425 s.j.Reader was updated to wrap and convert all data about
5426 an entry.
5427
ef3b5246
LP
5428 Contributions from: Anatol Pomozov, Auke Kok, Harald Hoyer,
5429 Henrik Grindal Bakken, Josh Triplett, Kay Sievers, Lennart
5430 Poettering, Lukas Nykryn, Mantas Mikulėnas Marius Vollmer,
5431 Martin Jansa, Martin Pitt, Michael Biebl, Michal Schmidt,
5432 Mirco Tischler, Pali Rohar, Simon Peeters, Steven Hiscocks,
5433 Tom Gundersen, Zbigniew Jędrzejewski-Szmek
5434
d3a86981
LP
5435CHANGES WITH 201:
5436
5437 * journalctl --update-catalog now understands a new --root=
5438 option to operate on catalogs found in a different root
5439 directory.
5440
5441 * During shutdown after systemd has terminated all running
5442 services a final killing loop kills all remaining left-over
5443 processes. We will now print the name of these processes
5444 when we send SIGKILL to them, since this usually indicates a
5445 problem.
5446
5447 * If /etc/crypttab refers to password files stored on
5448 configured mount points automatic dependencies will now be
5449 generated to ensure the specific mount is established first
5450 before the key file is attempted to be read.
5451
5452 * 'systemctl status' will now show information about the
5453 network sockets a socket unit is listening on.
5454
5455 * 'systemctl status' will also shown information about any
5456 drop-in configuration file for units. (Drop-In configuration
5457 files in this context are files such as
5458 /etc/systemd/systemd/foobar.service.d/*.conf)
5459
5460 * systemd-cgtop now optionally shows summed up CPU times of
5461 cgroups. Press '%' while running cgtop to switch between
5462 percentage and absolute mode. This is useful to determine
5463 which cgroups use up the most CPU time over the entire
5464 runtime of the system. systemd-cgtop has also been updated
5465 to be 'pipeable' for processing with further shell tools.
5466
5467 * 'hostnamectl set-hostname' will now allow setting of FQDN
5468 hostnames.
5469
5470 * The formatting and parsing of time span values has been
5471 changed. The parser now understands fractional expressions
5472 such as "5.5h". The formatter will now output fractional
5473 expressions for all time spans under 1min, i.e. "5.123456s"
5474 rather than "5s 123ms 456us". For time spans under 1s
5475 millisecond values are shown, for those under 1ms
5476 microsecond values are shown. This should greatly improve
5477 all time-related output of systemd.
5478
5479 * libsystemd-login and libsystemd-journal gained new
5480 functions for querying the poll() events mask and poll()
5481 timeout value for integration into arbitrary event
5482 loops.
5483
5484 * localectl gained the ability to list available X11 keymaps
5485 (models, layouts, variants, options).
5486
5487 * 'systemd-analyze dot' gained the ability to filter for
5488 specific units via shell-style globs, to create smaller,
d28315e4 5489 more useful graphs. I.e. it is now possible to create simple
d3a86981
LP
5490 graphs of all the dependencies between only target units, or
5491 of all units that Avahi has dependencies with.
5492
5493 Contributions from: Cristian Rodríguez, Dr. Tilmann Bubeck,
5494 Harald Hoyer, Holger Hans Peter Freyther, Kay Sievers, Kelly
5495 Anderson, Koen Kooi, Lennart Poettering, Maksim Melnikau,
5496 Marc-Antoine Perennou, Marius Vollmer, Martin Pitt, Michal
5497 Schmidt, Oleksii Shevchuk, Ronny Chevalier, Simon McVittie,
5498 Steven Hiscocks, Thomas Weißschuh, Umut Tezduyar, Václav
5499 Pavlín, Zbigniew Jędrzejewski-Szmek, Łukasz Stelmach
5500
9ca3c17f
LP
5501CHANGES WITH 200:
5502
5503 * The boot-time readahead implementation for rotating media
5504 will now read the read-ahead data in multiple passes which
5505 consist of all read requests made in equidistant time
5506 intervals. This means instead of strictly reading read-ahead
5507 data in its physical order on disk we now try to find a
5508 middle ground between physical and access time order.
5509
5510 * /etc/os-release files gained a new BUILD_ID= field for usage
5511 on operating systems that provide continuous builds of OS
5512 images.
5513
5514 Contributions from: Auke Kok, Eelco Dolstra, Kay Sievers,
5515 Lennart Poettering, Lukas Nykryn, Martin Pitt, Václav Pavlín
5516 William Douglas, Zbigniew Jędrzejewski-Szmek
5517
35911459
LP
5518CHANGES WITH 199:
5519
5520 * systemd-python gained an API exposing libsystemd-daemon.
5521
5522 * The SMACK setup logic gained support for uploading CIPSO
5523 security policy.
5524
5525 * Behaviour of PrivateTmp=, ReadWriteDirectories=,
5526 ReadOnlyDirectories= and InaccessibleDirectories= has
5527 changed. The private /tmp and /var/tmp directories are now
5528 shared by all processes of a service (which means
5529 ExecStartPre= may now leave data in /tmp that ExecStart= of
5530 the same service can still access). When a service is
5531 stopped its temporary directories are immediately deleted
a87197f5 5532 (normal clean-up with tmpfiles is still done in addition to
35911459
LP
5533 this though).
5534
5535 * By default, systemd will now set a couple of sysctl
5536 variables in the kernel: the safe sysrq options are turned
5537 on, IP route verification is turned on, and source routing
5538 disabled. The recently added hardlink and softlink
5539 protection of the kernel is turned on. These settings should
5540 be reasonably safe, and good defaults for all new systems.
5541
5542 * The predictable network naming logic may now be turned off
a87197f5 5543 with a new kernel command line switch: net.ifnames=0.
35911459
LP
5544
5545 * A new libsystemd-bus module has been added that implements a
5546 pretty complete D-Bus client library. For details see:
5547
56cadcb6 5548 https://lists.freedesktop.org/archives/systemd-devel/2013-March/009797.html
35911459 5549
c20d8298 5550 * journald will now explicitly flush the journal files to disk
a87197f5
ZJS
5551 at the latest 5min after each write. The file will then also
5552 be marked offline until the next write. This should increase
5553 reliability in case of a crash. The synchronization delay
5554 can be configured via SyncIntervalSec= in journald.conf.
35911459
LP
5555
5556 * There's a new remote-fs-setup.target unit that can be used
5557 to pull in specific services when at least one remote file
5558 system is to be mounted.
5559
5560 * There are new targets timers.target and paths.target as
5561 canonical targets to pull user timer and path units in
5562 from. This complements sockets.target with a similar
5563 purpose for socket units.
5564
6a7d3d68
LP
5565 * libudev gained a new call udev_device_set_attribute_value()
5566 to set sysfs attributes of a device.
5567
a87197f5
ZJS
5568 * The udev daemon now sets the default number of worker
5569 processes executed in parallel based on the number of available
c20d8298 5570 CPUs instead of the amount of available RAM. This is supposed
ab06eef8 5571 to provide a more reliable default and limit a too aggressive
ce830873 5572 parallelism for setups with 1000s of devices connected.
c20d8298 5573
35911459
LP
5574 Contributions from: Auke Kok, Colin Walters, Cristian
5575 Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
5576 Reinecke, Harald Hoyer, Jan Alexander Steffens, Jan
5577 Engelhardt, Josh Triplett, Kay Sievers, Lennart Poettering,
5578 Mantas Mikulėnas, Martin Pitt, Mathieu Bridon, Michael Biebl,
5579 Michal Schmidt, Michal Sekletar, Miklos Vajna, Nathaniel Chen,
5580 Oleksii Shevchuk, Ozan Çağlayan, Thomas Hindoe Paaboel
5581 Andersen, Tollef Fog Heen, Tom Gundersen, Umut Tezduyar,
5582 Zbigniew Jędrzejewski-Szmek
5583
85d68397
LP
5584CHANGES WITH 198:
5585
5586 * Configuration of unit files may now be extended via drop-in
5587 files without having to edit/override the unit files
5588 themselves. More specifically, if the administrator wants to
5589 change one value for a service file foobar.service he can
5590 now do so by dropping in a configuration snippet into
ad88e758 5591 /etc/systemd/system/foobar.service.d/*.conf. The unit logic
85d68397
LP
5592 will load all these snippets and apply them on top of the
5593 main unit configuration file, possibly extending or
5594 overriding its settings. Using these drop-in snippets is
40e21da8
KS
5595 generally nicer than the two earlier options for changing
5596 unit files locally: copying the files from
85d68397
LP
5597 /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
5598 them there; or creating a new file in /etc/systemd/system/
5599 that incorporates the original one via ".include". Drop-in
5600 snippets into these .d/ directories can be placed in any
fd868975 5601 directory systemd looks for units in, and the usual
85d68397
LP
5602 overriding semantics between /usr/lib, /etc and /run apply
5603 for them too.
5604
5605 * Most unit file settings which take lists of items can now be
6aa8d43a 5606 reset by assigning the empty string to them. For example,
85d68397
LP
5607 normally, settings such as Environment=FOO=BAR append a new
5608 environment variable assignment to the environment block,
5609 each time they are used. By assigning Environment= the empty
5610 string the environment block can be reset to empty. This is
5611 particularly useful with the .d/*.conf drop-in snippets
156f7d09
KS
5612 mentioned above, since this adds the ability to reset list
5613 settings from vendor unit files via these drop-ins.
85d68397
LP
5614
5615 * systemctl gained a new "list-dependencies" command for
5616 listing the dependencies of a unit recursively.
5617
40e21da8 5618 * Inhibitors are now honored and listed by "systemctl
85d68397
LP
5619 suspend", "systemctl poweroff" (and similar) too, not only
5620 GNOME. These commands will also list active sessions by
5621 other users.
5622
5623 * Resource limits (as exposed by the various control group
5624 controllers) can now be controlled dynamically at runtime
5625 for all units. More specifically, you can now use a command
5626 like "systemctl set-cgroup-attr foobar.service cpu.shares
5627 2000" to alter the CPU shares a specific service gets. These
6aa8d43a 5628 settings are stored persistently on disk, and thus allow the
85d68397
LP
5629 administrator to easily adjust the resource usage of
5630 services with a few simple commands. This dynamic resource
6aa8d43a 5631 management logic is also available to other programs via the
85d68397
LP
5632 bus. Almost any kernel cgroup attribute and controller is
5633 supported.
5634
5635 * systemd-vconsole-setup will now copy all font settings to
6aa8d43a
LP
5636 all allocated VTs, where it previously applied them only to
5637 the foreground VT.
85d68397
LP
5638
5639 * libsystemd-login gained the new sd_session_get_tty() API
5640 call.
5641
6aa8d43a
LP
5642 * This release drops support for a few legacy or
5643 distribution-specific LSB facility names when parsing init
5644 scripts: $x-display-manager, $mail-transfer-agent,
85d68397
LP
5645 $mail-transport-agent, $mail-transfer-agent, $smtp,
5646 $null. Also, the mail-transfer-agent.target unit backing
5647 this has been removed. Distributions which want to retain
6aa8d43a
LP
5648 compatibility with this should carry the burden for
5649 supporting this themselves and patch support for these back
5650 in, if they really need to. Also, the facilities $syslog and
5651 $local_fs are now ignored, since systemd does not support
5652 early-boot LSB init scripts anymore, and these facilities
5653 are implied anyway for normal services. syslog.target has
5654 also been removed.
85d68397 5655
40e21da8 5656 * There are new bus calls on PID1's Manager object for
6aa8d43a 5657 cancelling jobs, and removing snapshot units. Previously,
85d68397
LP
5658 both calls were only available on the Job and Snapshot
5659 objects themselves.
5660
5661 * systemd-journal-gatewayd gained SSL support.
5662
5663 * The various "environment" files, such as /etc/locale.conf
5664 now support continuation lines with a backslash ("\") as
499b604b 5665 last character in the line, similarly in style (but different)
85d68397
LP
5666 to how this is supported in shells.
5667
5668 * For normal user processes the _SYSTEMD_USER_UNIT= field is
5669 now implicitly appended to every log entry logged. systemctl
5670 has been updated to filter by this field when operating on a
5671 user systemd instance.
5672
5673 * nspawn will now implicitly add the CAP_AUDIT_WRITE and
5674 CAP_AUDIT_CONTROL capabilities to the capabilities set for
5675 the container. This makes it easier to boot unmodified
5676 Fedora systems in a container, which however still requires
5677 audit=0 to be passed on the kernel command line. Auditing in
5678 kernel and userspace is unfortunately still too broken in
5679 context of containers, hence we recommend compiling it out
5680 of the kernel or using audit=0. Hopefully this will be fixed
5681 one day for good in the kernel.
5682
5683 * nspawn gained the new --bind= and --bind-ro= parameters to
5684 bind mount specific directories from the host into the
5685 container.
5686
40e21da8 5687 * nspawn will now mount its own devpts file system instance
6aa8d43a 5688 into the container, in order not to leak pty devices from
85d68397
LP
5689 the host into the container.
5690
5691 * systemd will now read the firmware boot time performance
6aa8d43a
LP
5692 information from the EFI variables, if the used boot loader
5693 supports this, and takes it into account for boot performance
5694 analysis via "systemd-analyze". This is currently supported
5695 only in conjunction with Gummiboot, but could be supported
5696 by other boot loaders too. For details see:
85d68397 5697
56cadcb6 5698 https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
85d68397
LP
5699
5700 * A new generator has been added that automatically mounts the
5701 EFI System Partition (ESP) to /boot, if that directory
6aa8d43a
LP
5702 exists, is empty, and no other file system has been
5703 configured to be mounted there.
85d68397
LP
5704
5705 * logind will now send out PrepareForSleep(false) out
5706 unconditionally, after coming back from suspend. This may be
5707 used by applications as asynchronous notification for
5708 system resume events.
5709
5710 * "systemctl unlock-sessions" has been added, that allows
5711 unlocking the screens of all user sessions at once, similar
499b604b 5712 to how "systemctl lock-sessions" already locked all users
40e21da8 5713 sessions. This is backed by a new D-Bus call UnlockSessions().
85d68397
LP
5714
5715 * "loginctl seat-status" will now show the master device of a
5716 seat. (i.e. the device of a seat that needs to be around for
5717 the seat to be considered available, usually the graphics
5718 card).
5719
5720 * tmpfiles gained a new "X" line type, that allows
5721 configuration of files and directories (with wildcards) that
5722 shall be excluded from automatic cleanup ("aging").
5723
bf933560
KS
5724 * udev default rules set the device node permissions now only
5725 at "add" events, and do not change them any longer with a
5726 later "change" event.
85d68397
LP
5727
5728 * The log messages for lid events and power/sleep keypresses
5729 now carry a message ID.
5730
5731 * We now have a substantially larger unit test suite, but this
5732 continues to be work in progress.
5733
5734 * udevadm hwdb gained a new --root= parameter to change the
5735 root directory to operate relative to.
5736
40e21da8
KS
5737 * logind will now issue a background sync() request to the kernel
5738 early at shutdown, so that dirty buffers are flushed to disk early
85d68397
LP
5739 instead of at the last moment, in order to optimize shutdown
5740 times a little.
5741
5742 * A new bootctl tool has been added that is an interface for
5743 certain boot loader operations. This is currently a preview
5744 and is likely to be extended into a small mechanism daemon
5745 like timedated, localed, hostnamed, and can be used by
5746 graphical UIs to enumerate available boot options, and
5747 request boot into firmware operations.
5748
5749 * systemd-bootchart has been relicensed to LGPLv2.1+ to match
5750 the rest of the package. It also has been updated to work
5751 correctly in initrds.
5752
5753 * Policykit previously has been runtime optional, and is now
5754 also compile time optional via a configure switch.
5755
5756 * systemd-analyze has been reimplemented in C. Also "systemctl
5757 dot" has moved into systemd-analyze.
5758
5759 * "systemctl status" with no further parameters will now print
5760 the status of all active or failed units.
5761
5762 * Operations such as "systemctl start" can now be executed
5763 with a new mode "--irreversible" which may be used to queue
5764 operations that cannot accidentally be reversed by a later
6aa8d43a 5765 job queuing. This is by default used to make shutdown
85d68397
LP
5766 requests more robust.
5767
5768 * The Python API of systemd now gained a new module for
5769 reading journal files.
5770
5771 * A new tool kernel-install has been added that can install
5772 kernel images according to the Boot Loader Specification:
5773
56cadcb6 5774 https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
85d68397
LP
5775
5776 * Boot time console output has been improved to provide
6aa8d43a 5777 animated boot time output for hanging jobs.
85d68397
LP
5778
5779 * A new tool systemd-activate has been added which can be used
5780 to test socket activation with, directly from the command
5781 line. This should make it much easier to test and debug
5782 socket activation in daemons.
5783
5784 * journalctl gained a new "--reverse" (or -r) option to show
5785 journal output in reverse order (i.e. newest line first).
5786
43447fb7
LP
5787 * journalctl gained a new "--pager-end" (or -e) option to jump
5788 to immediately jump to the end of the journal in the
5789 pager. This is only supported in conjunction with "less".
5790
85d68397 5791 * journalctl gained a new "--user-unit=" option, that works
499b604b 5792 similarly to "--unit=" but filters for user units rather than
85d68397
LP
5793 system units.
5794
5795 * A number of unit files to ease adoption of systemd in
5796 initrds has been added. This moves some minimal logic from
5797 the various initrd implementations into systemd proper.
5798
5799 * The journal files are now owned by a new group
5800 "systemd-journal", which exists specifically to allow access
5801 to the journal, and nothing else. Previously, we used the
6aa8d43a 5802 "adm" group for that, which however possibly covers more
85d68397
LP
5803 than just journal/log file access. This new group is now
5804 already used by systemd-journal-gatewayd to ensure this
5805 daemon gets access to the journal files and as little else
5806 as possible. Note that "make install" will also set FS ACLs
5807 up for /var/log/journal to give "adm" and "wheel" read
5808 access to it, in addition to "systemd-journal" which owns
5809 the journal files. We recommend that packaging scripts also
6aa8d43a 5810 add read access to "adm" + "wheel" to /var/log/journal, and
85d68397
LP
5811 all existing/future journal files. To normal users and
5812 administrators little changes, however packagers need to
5813 ensure to create the "systemd-journal" system group at
5814 package installation time.
5815
5816 * The systemd-journal-gatewayd now runs as unprivileged user
5817 systemd-journal-gateway:systemd-journal-gateway. Packaging
5818 scripts need to create these system user/group at
5819 installation time.
5820
5821 * timedated now exposes a new boolean property CanNTP that
5822 indicates whether a local NTP service is available or not.
5823
5824 * systemd-detect-virt will now also detect xen PVs
5825
40e21da8
KS
5826 * The pstore file system is now mounted by default, if it is
5827 available.
85d68397 5828
1aed4590
LP
5829 * In addition to the SELinux and IMA policies we will now also
5830 load SMACK policies at early boot.
5831
85d68397
LP
5832 Contributions from: Adel Gadllah, Aleksander Morgado, Auke
5833 Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
5834 Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
5835 Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
5836 Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
5837 Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
5838 Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
5839 Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
5840 Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
5841 Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
5842 Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
5843 Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
5844 Gundersen, Umut Tezduyar, William Giokas, Zbigniew
5845 Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
5846
8ad26859
LP
5847CHANGES WITH 197:
5848
5849 * Timer units now support calendar time events in addition to
5850 monotonic time events. That means you can now trigger a unit
5851 based on a calendar time specification such as "Thu,Fri
5852 2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
5853 or fifth day of any month of the year 2013, given that it is
5854 a thursday or friday. This brings timer event support
5855 considerably closer to cron's capabilities. For details on
5856 the supported calendar time specification language see
5857 systemd.time(7).
5858
5859 * udev now supports a number of different naming policies for
5860 network interfaces for predictable names, and a combination
5861 of these policies is now the default. Please see this wiki
5862 document for details:
5863
56cadcb6 5864 https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
8ad26859
LP
5865
5866 * Auke Kok's bootchart implementation has been added to the
d28315e4
JE
5867 systemd tree. It is an optional component that can graph the
5868 boot in quite some detail. It is one of the best bootchart
8ad26859
LP
5869 implementations around and minimal in its code and
5870 dependencies.
5871
5872 * nss-myhostname has been integrated into the systemd source
5873 tree. nss-myhostname guarantees that the local hostname
5874 always stays resolvable via NSS. It has been a weak
5875 requirement of systemd-hostnamed since a long time, and
5876 since its code is actually trivial we decided to just
5877 include it in systemd's source tree. It can be turned off
5878 with a configure switch.
5879
5880 * The read-ahead logic is now capable of properly detecting
5881 whether a btrfs file system is on SSD or rotating media, in
5882 order to optimize the read-ahead scheme. Previously, it was
5883 only capable of detecting this on traditional file systems
5884 such as ext4.
5885
5886 * In udev, additional device properties are now read from the
5887 IAB in addition to the OUI database. Also, Bluetooth company
5888 identities are attached to the devices as well.
5889
5890 * In service files %U may be used as specifier that is
5891 replaced by the configured user name of the service.
5892
5893 * nspawn may now be invoked without a controlling TTY. This
5894 makes it suitable for invocation as its own service. This
5895 may be used to set up a simple containerized server system
5896 using only core OS tools.
5897
5898 * systemd and nspawn can now accept socket file descriptors
5899 when they are started for socket activation. This enables
5900 implementation of socket activated nspawn
5901 containers. i.e. think about autospawning an entire OS image
5902 when the first SSH or HTTP connection is received. We expect
5903 that similar functionality will also be added to libvirt-lxc
5904 eventually.
5905
5906 * journalctl will now suppress ANSI color codes when
5907 presenting log data.
5908
5909 * systemctl will no longer show control group information for
ce830873 5910 a unit if the control group is empty anyway.
8ad26859
LP
5911
5912 * logind can now automatically suspend/hibernate/shutdown the
5913 system on idle.
5914
5915 * /etc/machine-info and hostnamed now also expose the chassis
5916 type of the system. This can be used to determine whether
5917 the local system is a laptop, desktop, handset or
5918 tablet. This information may either be configured by the
5919 user/vendor or is automatically determined from ACPI and DMI
5920 information if possible.
5921
5922 * A number of PolicyKit actions are now bound together with
5923 "imply" rules. This should simplify creating UIs because
5924 many actions will now authenticate similar ones as well.
5925
5926 * Unit files learnt a new condition ConditionACPower= which
5927 may be used to conditionalize a unit depending on whether an
5928 AC power source is connected or not, of whether the system
5929 is running on battery power.
5930
5931 * systemctl gained a new "is-failed" verb that may be used in
5932 shell scripts and suchlike to check whether a specific unit
5933 is in the "failed" state.
5934
5935 * The EnvironmentFile= setting in unit files now supports file
5936 globbing, and can hence be used to easily read a number of
5937 environment files at once.
5938
5939 * systemd will no longer detect and recognize specific
5940 distributions. All distribution-specific #ifdeffery has been
5941 removed, systemd is now fully generic and
5942 distribution-agnostic. Effectively, not too much is lost as
5943 a lot of the code is still accessible via explicit configure
5944 switches. However, support for some distribution specific
5945 legacy configuration file formats has been dropped. We
5946 recommend distributions to simply adopt the configuration
5947 files everybody else uses now and convert the old
5948 configuration from packaging scripts. Most distributions
5949 already did that. If that's not possible or desirable,
5950 distributions are welcome to forward port the specific
5951 pieces of code locally from the git history.
5952
5953 * When logging a message about a unit systemd will now always
5954 log the unit name in the message meta data.
5955
5956 * localectl will now also discover system locale data that is
5957 not stored in locale archives, but directly unpacked.
5958
5959 * logind will no longer unconditionally use framebuffer
5960 devices as seat masters, i.e. as devices that are required
5961 to be existing before a seat is considered preset. Instead,
5962 it will now look for all devices that are tagged as
b938cb90
JE
5963 "seat-master" in udev. By default, framebuffer devices will
5964 be marked as such, but depending on local systems, other
8ad26859
LP
5965 devices might be marked as well. This may be used to
5966 integrate graphics cards using closed source drivers (such
5967 as NVidia ones) more nicely into logind. Note however, that
5968 we recommend using the open source NVidia drivers instead,
5969 and no udev rules for the closed-source drivers will be
5970 shipped from us upstream.
5971
5972 Contributions from: Adam Williamson, Alessandro Crismani, Auke
5973 Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
5974 Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
5975 Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
5976 Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
5977 Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
5978 Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
5979 Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
5980 Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
5981 Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
5982 Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
5983 Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
5984 Jędrzejewski-Szmek
5985
0428ddb7
LP
5986CHANGES WITH 196:
5987
5988 * udev gained support for loading additional device properties
5989 from an indexed database that is keyed by vendor/product IDs
5990 and similar device identifiers. For the beginning this
5991 "hwdb" is populated with data from the well-known PCI and
5992 USB database, but also includes PNP, ACPI and OID data. In
5993 the longer run this indexed database shall grow into
5994 becoming the one central database for non-essential
5995 userspace device metadata. Previously, data from the PCI/USB
96ec33c0 5996 database was only attached to select devices, since the
0428ddb7 5997 lookup was a relatively expensive operation due to O(n) time
96ec33c0
LP
5998 complexity (with n being the number of entries in the
5999 database). Since this is now O(1), we decided to add in this
6000 data for all devices where this is available, by
0428ddb7
LP
6001 default. Note that the indexed database needs to be rebuilt
6002 when new data files are installed. To achieve this you need
6003 to update your packaging scripts to invoke "udevadm hwdb
6004 --update" after installation of hwdb data files. For
6005 RPM-based distributions we introduced the new
6006 %udev_hwdb_update macro for this purpose.
6007
6008 * The Journal gained support for the "Message Catalog", an
6009 indexed database to link up additional information with
6010 journal entries. For further details please check:
6011
56cadcb6 6012 https://www.freedesktop.org/wiki/Software/systemd/catalog
0428ddb7
LP
6013
6014 The indexed message catalog database also needs to be
6015 rebuilt after installation of message catalog files. Use
6016 "journalctl --update-catalog" for this. For RPM-based
6017 distributions we introduced the %journal_catalog_update
6018 macro for this purpose.
6019
6020 * The Python Journal bindings gained support for the standard
6021 Python logging framework.
6022
6023 * The Journal API gained new functions for checking whether
6024 the underlying file system of a journal file is capable of
6025 properly reporting file change notifications, or whether
6026 applications that want to reflect journal changes "live"
ab06eef8 6027 need to recheck journal files continuously in appropriate
0428ddb7
LP
6028 time intervals.
6029
6030 * It is now possible to set the "age" field for tmpfiles
6031 entries to 0, indicating that files matching this entry
6032 shall always be removed when the directories are cleaned up.
6033
6034 * coredumpctl gained a new "gdb" verb which invokes gdb
6035 right-away on the selected coredump.
6036
6037 * There's now support for "hybrid sleep" on kernels that
6038 support this, in addition to "suspend" and "hibernate". Use
6039 "systemctl hybrid-sleep" to make use of this.
6040
6041 * logind's HandleSuspendKey= setting (and related settings)
6042 now gained support for a new "lock" setting to simply
6043 request the screen lock on all local sessions, instead of
6044 actually executing a suspend or hibernation.
6045
6046 * systemd will now mount the EFI variables file system by
6047 default.
6048
6049 * Socket units now gained support for configuration of the
6050 SMACK security label.
6051
6052 * timedatectl will now output the time of the last and next
6053 daylight saving change.
6054
6055 * We dropped support for various legacy and distro-specific
6056 concepts, such as insserv, early-boot SysV services
6057 (i.e. those for non-standard runlevels such as 'b' or 'S')
6058 or ArchLinux /etc/rc.conf support. We recommend the
6059 distributions who still need support this to either continue
6060 to maintain the necessary patches downstream, or find a
6061 different solution. (Talk to us if you have questions!)
6062
6063 * Various systemd components will now bypass PolicyKit checks
6064 for root and otherwise handle properly if PolicyKit is not
6065 found to be around. This should fix most issues for
6066 PolicyKit-less systems. Quite frankly this should have been
6067 this way since day one. It is absolutely our intention to
6068 make systemd work fine on PolicyKit-less systems, and we
d28315e4 6069 consider it a bug if something does not work as it should if
0428ddb7
LP
6070 PolicyKit is not around.
6071
6072 * For embedded systems it is now possible to build udev and
6073 systemd without blkid and/or kmod support.
6074
6075 * "systemctl switch-root" is now capable of switching root
6076 more than once. I.e. in addition to transitions from the
6077 initrd to the host OS it is now possible to transition to
6078 further OS images from the host. This is useful to implement
6079 offline updating tools.
6080
6081 * Various other additions have been made to the RPM macros
6082 shipped with systemd. Use %udev_rules_update() after
6083 installing new udev rules files. %_udevhwdbdir,
6084 %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
6085 %_sysctldir are now available which resolve to the right
6086 directories for packages to place various data files in.
6087
6088 * journalctl gained the new --full switch (in addition to
6089 --all, to disable ellipsation for long messages.
6090
6091 Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
6092 Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
6093 Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
6094 Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
6095 Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
6096 Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
6097 Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
6098 Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
6099 Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
6100
139ee8cc
LP
6101CHANGES WITH 195:
6102
6827101a 6103 * journalctl gained new --since= and --until= switches to
139ee8cc
LP
6104 filter by time. It also now supports nice filtering for
6105 units via --unit=/-u.
6106
6827101a 6107 * Type=oneshot services may use ExecReload= and do the
139ee8cc
LP
6108 right thing.
6109
6110 * The journal daemon now supports time-based rotation and
6111 vacuuming, in addition to the usual disk-space based
6112 rotation.
6113
6114 * The journal will now index the available field values for
6115 each field name. This enables clients to show pretty drop
6116 downs of available match values when filtering. The bash
6117 completion of journalctl has been updated
6118 accordingly. journalctl gained a new switch -F to list all
6119 values a certain field takes in the journal database.
6120
6121 * More service events are now written as structured messages
6122 to the journal, and made recognizable via message IDs.
6123
6124 * The timedated, localed and hostnamed mini-services which
6125 previously only provided support for changing time, locale
6126 and hostname settings from graphical DEs such as GNOME now
6127 also have a minimal (but very useful) text-based client
6128 utility each. This is probably the nicest way to changing
6129 these settings from the command line now, especially since
6130 it lists available options and is fully integrated with bash
6131 completion.
6132
6133 * There's now a new tool "systemd-coredumpctl" to list and
6134 extract coredumps from the journal.
6135
6136 * We now install a README each in /var/log/ and
6137 /etc/rc.d/init.d explaining where the system logs and init
6138 scripts went. This hopefully should help folks who go to
6139 that dirs and look into the otherwise now empty void and
6140 scratch their heads.
6141
6142 * When user-services are invoked (by systemd --user) the
6143 $MANAGERPID env var is set to the PID of systemd.
6144
6145 * SIGRTMIN+24 when sent to a --user instance will now result
6146 in immediate termination of systemd.
6147
6148 * gatewayd received numerous feature additions such as a
6149 "follow" mode, for live syncing and filtering.
6150
6151 * browse.html now allows filtering and showing detailed
6152 information on specific entries. Keyboard navigation and
6153 mouse screen support has been added.
6154
6155 * gatewayd/journalctl now supports HTML5/JSON
6156 Server-Sent-Events as output.
6157
1cb88f2c 6158 * The SysV init script compatibility logic will now
139ee8cc
LP
6159 heuristically determine whether a script supports the
6160 "reload" verb, and only then make this available as
6161 "systemctl reload".
6162
15f47220 6163 * "systemctl status --follow" has been removed, use "journalctl
139ee8cc
LP
6164 -u" instead.
6165
6166 * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
6167 have been removed since they are hardly useful to be
6168 configured.
6169
6170 * And I'd like to take the opportunity to specifically mention
6171 Zbigniew for his great contributions. Zbigniew, you rock!
6172
6173 Contributions from: Andrew Eikum, Christian Hesse, Colin
6174 Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
4d92e078
LP
6175 Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
6176 Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
6177 Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
6178 Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
6179 Jędrzejewski-Szmek, Сковорода Никита Андреевич
139ee8cc 6180
f9b55720
LP
6181CHANGES WITH 194:
6182
6183 * If /etc/vconsole.conf is non-existent or empty we will no
6184 longer load any console font or key map at boot by
6185 default. Instead the kernel defaults will be left
6186 intact. This is definitely the right thing to do, as no
6187 configuration should mean no configuration, and hard-coding
6188 font names that are different on all archs is probably a bad
6189 idea. Also, the kernel default key map and font should be
6190 good enough for most cases anyway, and mostly identical to
6191 the userspace fonts/key maps we previously overloaded them
6192 with. If distributions want to continue to default to a
6193 non-kernel font or key map they should ship a default
6194 /etc/vconsole.conf with the appropriate contents.
6195
6196 Contributions from: Colin Walters, Daniel J Walsh, Dave
6197 Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
6198 Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
6199
597c52cf
LP
6200CHANGES WITH 193:
6201
6202 * journalctl gained a new --cursor= switch to show entries
6203 starting from the specified location in the journal.
6204
6205 * We now enforce a size limit on journal entry fields exported
6206 with "-o json" in journalctl. Fields larger than 4K will be
6207 assigned null. This can be turned off with --all.
6208
6209 * An (optional) journal gateway daemon is now available as
6210 "systemd-journal-gatewayd.service". This service provides
6211 access to the journal via HTTP and JSON. This functionality
6212 will be used to implement live log synchronization in both
6213 pull and push modes, but has various other users too, such
6214 as easy log access for debugging of embedded devices. Right
6215 now it is already useful to retrieve the journal via HTTP:
6216
6217 # systemctl start systemd-journal-gatewayd.service
6218 # wget http://localhost:19531/entries
6219
6220 This will download the journal contents in a
6221 /var/log/messages compatible format. The same as JSON:
6222
6223 # curl -H"Accept: application/json" http://localhost:19531/entries
6224
6225 This service is also accessible via a web browser where a
6226 single static HTML5 app is served that uses the JSON logic
6227 to enable the user to do some basic browsing of the
6228 journal. This will be extended later on. Here's an example
6229 screenshot of this app in its current state:
6230
6231 http://0pointer.de/public/journal-gatewayd
6232
6233 Contributions from: Kay Sievers, Lennart Poettering, Robert
6234 Milasan, Tom Gundersen
6235
075d4ecb
LP
6236CHANGES WITH 192:
6237
6238 * The bash completion logic is now available for journalctl
6239 too.
6240
d28315e4 6241 * We do not mount the "cpuset" controller anymore together with
075d4ecb
LP
6242 "cpu" and "cpuacct", as "cpuset" groups generally cannot be
6243 started if no parameters are assigned to it. "cpuset" hence
61233823 6244 broke code that assumed it could create "cpu" groups and
075d4ecb
LP
6245 just start them.
6246
6247 * journalctl -f will now subscribe to terminal size changes,
6248 and line break accordingly.
6249
597c52cf
LP
6250 Contributions from: Dave Reisner, Kay Sievers, Lennart
6251 Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
075d4ecb 6252
b6a86739
LP
6253CHANGES WITH 191:
6254
6255 * nspawn will now create a symlink /etc/localtime in the
6256 container environment, copying the host's timezone
6257 setting. Previously this has been done via a bind mount, but
6258 since symlinks cannot be bind mounted this has now been
6259 changed to create/update the appropriate symlink.
6260
6261 * journalctl -n's line number argument is now optional, and
6262 will default to 10 if omitted.
6263
6264 * journald will now log the maximum size the journal files may
6265 take up on disk. This is particularly useful if the default
6266 built-in logic of determining this parameter from the file
6267 system size is used. Use "systemctl status
6563b535 6268 systemd-journald.service" to see this information.
b6a86739
LP
6269
6270 * The multi-seat X wrapper tool has been stripped down. As X
6271 is now capable of enumerating graphics devices via udev in a
6272 seat-aware way the wrapper is not strictly necessary
6273 anymore. A stripped down temporary stop-gap is still shipped
6274 until the upstream display managers have been updated to
6275 fully support the new X logic. Expect this wrapper to be
6563b535 6276 removed entirely in one of the next releases.
b6a86739
LP
6277
6278 * HandleSleepKey= in logind.conf has been split up into
6279 HandleSuspendKey= and HandleHibernateKey=. The old setting
6563b535 6280 is not available anymore. X11 and the kernel are
45afd519 6281 distinguishing between these keys and we should too. This
b6a86739
LP
6282 also means the inhibition lock for these keys has been split
6283 into two.
6284
597c52cf
LP
6285 Contributions from: Dave Airlie, Eelco Dolstra, Lennart
6286 Poettering, Lukas Nykryn, Václav Pavlín
b6a86739 6287
0c11f949
LP
6288CHANGES WITH 190:
6289
d28315e4 6290 * Whenever a unit changes state we will now log this to the
0c11f949
LP
6291 journal and show along the unit's own log output in
6292 "systemctl status".
6293
6294 * ConditionPathIsMountPoint= can now properly detect bind
6295 mount points too. (Previously, a bind mount of one file
8d0256b7 6296 system to another place in the same file system could not be
0c11f949
LP
6297 detected as mount, since they shared struct stat's st_dev
6298 field.)
6299
6300 * We will now mount the cgroup controllers cpu, cpuacct,
6301 cpuset and the controllers net_cls, net_prio together by
6302 default.
6303
6304 * nspawn containers will now have a virtualized boot
6305 ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
6306 over with a randomized ID at container initialization). This
6307 has the effect of making "journalctl -b" do the right thing
6308 in a container.
6309
6310 * The JSON output journal serialization has been updated not
6311 to generate "endless" list objects anymore, but rather one
6312 JSON object per line. This is more in line how most JSON
6313 parsers expect JSON objects. The new output mode
6314 "json-pretty" has been added to provide similar output, but
6315 neatly aligned for readability by humans.
6316
6317 * We dropped all explicit sync() invocations in the shutdown
6318 code. The kernel does this implicitly anyway in the kernel
6319 reboot() syscall. halt(8)'s -n option is now a compatibility
6320 no-op.
6321
6322 * We now support virtualized reboot() in containers, as
6323 supported by newer kernels. We will fall back to exit() if
6324 CAP_SYS_REBOOT is not available to the container. Also,
6325 nspawn makes use of this now and will actually reboot the
6326 container if the containerized OS asks for that.
6327
6328 * journalctl will only show local log output by default
6329 now. Use --merge (-m) to show remote log output, too.
6330
6331 * libsystemd-journal gained the new sd_journal_get_usage()
6332 call to determine the current disk usage of all journal
6333 files. This is exposed in the new "journalctl --disk-usage"
6334 command.
6335
6336 * journald gained a new configuration setting SplitMode= in
6337 journald.conf which may be used to control how user journals
6338 are split off. See journald.conf(5) for details.
6339
6340 * A new condition type ConditionFileNotEmpty= has been added.
6341
6342 * tmpfiles' "w" lines now support file globbing, to write
6343 multiple files at once.
6344
6345 * We added Python bindings for the journal submission
6346 APIs. More Python APIs for a number of selected APIs will
6347 likely follow. Note that we intend to add native bindings
6348 only for the Python language, as we consider it common
6349 enough to deserve bindings shipped within systemd. There are
6350 various projects outside of systemd that provide bindings
6351 for languages such as PHP or Lua.
6352
a98d5d64
LP
6353 * Many conditions will now resolve specifiers such as %i. In
6354 addition, PathChanged= and related directives of .path units
6355 now support specifiers as well.
0c11f949
LP
6356
6357 * There's now a new RPM macro definition for the system preset
6358 dir: %_presetdir.
6359
d28315e4 6360 * journald will now warn if it ca not forward a message to the
dca348bc 6361 syslog daemon because its socket is full.
0c11f949
LP
6362
6363 * timedated will no longer write or process /etc/timezone,
6364 except on Debian. As we do not support late mounted /usr
6365 anymore /etc/localtime always being a symlink is now safe,
6366 and hence the information in /etc/timezone is not necessary
6367 anymore.
6368
aaccc32c 6369 * logind will now always reserve one VT for a text getty (VT6
0c11f949
LP
6370 by default). Previously if more than 6 X sessions where
6371 started they took up all the VTs with auto-spawned gettys,
6372 so that no text gettys were available anymore.
6373
6374 * udev will now automatically inform the btrfs kernel logic
6375 about btrfs RAID components showing up. This should make
6376 simple hotplug based btrfs RAID assembly work.
6377
6378 * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
6379 (but not for its children which will stay at the kernel
6380 default). This should allow setups with a lot more listening
6381 sockets.
6382
6383 * systemd will now always pass the configured timezone to the
6384 kernel at boot. timedated will do the same when the timezone
6385 is changed.
6386
6387 * logind's inhibition logic has been updated. By default,
6388 logind will now handle the lid switch, the power and sleep
6389 keys all the time, even in graphical sessions. If DEs want
6390 to handle these events on their own they should take the new
6391 handle-power-key, handle-sleep-key and handle-lid-switch
f131770b 6392 inhibitors during their runtime. A simple way to achieve
0c11f949
LP
6393 that is to invoke the DE wrapped in an invocation of:
6394
6395 systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
6396
6397 * Access to unit operations is now checked via SELinux taking
6398 the unit file label and client process label into account.
6399
aad803af
LP
6400 * systemd will now notify the administrator in the journal
6401 when he over-mounts a non-empty directory.
6402
6403 * There are new specifiers that are resolved in unit files,
6404 for the host name (%H), the machine ID (%m) and the boot ID
6405 (%b).
6406
b6a86739 6407 Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
0c11f949
LP
6408 Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
6409 Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
6410 Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
6411 Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
6412 Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
6413 Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
6414
38a60d71
LP
6415CHANGES WITH 189:
6416
6417 * Support for reading structured kernel messages from
6418 /dev/kmsg has now been added and is enabled by default.
6419
6420 * Support for reading kernel messages from /proc/kmsg has now
6421 been removed. If you want kernel messages in the journal
6422 make sure to run a recent kernel (>= 3.5) that supports
6423 reading structured messages from /dev/kmsg (see
6424 above). /proc/kmsg is now exclusive property of classic
6425 syslog daemons again.
6426
6427 * The libudev API gained the new
6428 udev_device_new_from_device_id() call.
6429
6430 * The logic for file system namespace (ReadOnlyDirectory=,
6431 ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
6432 require pivot_root() anymore. This means fewer temporary
6433 directories are created below /tmp for this feature.
6434
6435 * nspawn containers will now see and receive all submounts
6436 made on the host OS below the root file system of the
6437 container.
6438
6439 * Forward Secure Sealing is now supported for Journal files,
6440 which provide cryptographical sealing of journal files so
6441 that attackers cannot alter log history anymore without this
6442 being detectable. Lennart will soon post a blog story about
6443 this explaining it in more detail.
6444
6445 * There are two new service settings RestartPreventExitStatus=
6446 and SuccessExitStatus= which allow configuration of exit
6447 status (exit code or signal) which will be excepted from the
6448 restart logic, resp. consider successful.
6449
6450 * journalctl gained the new --verify switch that can be used
6451 to check the integrity of the structure of journal files and
6452 (if Forward Secure Sealing is enabled) the contents of
6453 journal files.
6454
6455 * nspawn containers will now be run with /dev/stdin, /dev/fd/
6456 and similar symlinks pre-created. This makes running shells
6457 as container init process a lot more fun.
6458
6459 * The fstab support can now handle PARTUUID= and PARTLABEL=
6460 entries.
6461
6462 * A new ConditionHost= condition has been added to match
6463 against the hostname (with globs) and machine ID. This is
6464 useful for clusters where a single OS image is used to
6465 provision a large number of hosts which shall run slightly
6466 different sets of services.
6467
6468 * Services which hit the restart limit will now be placed in a
6469 failure state.
6470
b6a86739 6471 Contributions from: Bertram Poettering, Dave Reisner, Huang
38a60d71
LP
6472 Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
6473 Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
6474
c269cec3
LP
6475CHANGES WITH 188:
6476
6477 * When running in --user mode systemd will now become a
6478 subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
6479 tree a lot more organized.
6480
6481 * A new PartOf= unit dependency type has been introduced that
6482 may be used to group services in a natural way.
6483
6484 * "systemctl enable" may now be used to enable instances of
6485 services.
6486
6487 * journalctl now prints error log levels in red, and
6488 warning/notice log levels in bright white. It also supports
6489 filtering by log level now.
6490
6491 * cgtop gained a new -n switch (similar to top), to configure
6492 the maximum number of iterations to run for. It also gained
6493 -b, to run in batch mode (accepting no input).
6494
ab06eef8 6495 * The suffix ".service" may now be omitted on most systemctl
c269cec3
LP
6496 command lines involving service unit names.
6497
6498 * There's a new bus call in logind to lock all sessions, as
6499 well as a loginctl verb for it "lock-sessions".
6500
6501 * libsystemd-logind.so gained a new call sd_journal_perror()
6502 that works similar to libc perror() but logs to the journal
6503 and encodes structured information about the error number.
6504
6505 * /etc/crypttab entries now understand the new keyfile-size=
6506 option.
6507
6508 * shutdown(8) now can send a (configurable) wall message when
6509 a shutdown is cancelled.
6510
6511 * The mount propagation mode for the root file system will now
6512 default to "shared", which is useful to make containers work
6513 nicely out-of-the-box so that they receive new mounts from
6514 the host. This can be undone locally by running "mount
6515 --make-rprivate /" if needed.
6516
6517 * The prefdm.service file has been removed. Distributions
6518 should maintain this unit downstream if they intend to keep
6519 it around. However, we recommend writing normal unit files
6520 for display managers instead.
6521
6522 * Since systemd is a crucial part of the OS we will now
6523 default to a number of compiler switches that improve
6524 security (hardening) such as read-only relocations, stack
6525 protection, and suchlike.
6526
6527 * The TimeoutSec= setting for services is now split into
6528 TimeoutStartSec= and TimeoutStopSec= to allow configuration
6529 of individual time outs for the start and the stop phase of
6530 the service.
6531
6532 Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
6533 Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
6534 Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
6535 Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
6536 Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
6537 Gundersen, Zbigniew Jędrzejewski-Szmek
6538
c4f1b862
LP
6539CHANGES WITH 187:
6540
6541 * The journal and id128 C APIs are now fully documented as man
6542 pages.
6543
6544 * Extra safety checks have been added when transitioning from
6545 the initial RAM disk to the main system to avoid accidental
6546 data loss.
6547
c269cec3 6548 * /etc/crypttab entries now understand the new keyfile-offset=
c4f1b862
LP
6549 option.
6550
6551 * systemctl -t can now be used to filter by unit load state.
6552
6553 * The journal C API gained the new sd_journal_wait() call to
6554 make writing synchronous journal clients easier.
6555
6556 * journalctl gained the new -D switch to show journals from a
6557 specific directory.
6558
6559 * journalctl now displays a special marker between log
6560 messages of two different boots.
6561
6562 * The journal is now explicitly flushed to /var via a service
6563 systemd-journal-flush.service, rather than implicitly simply
6564 by seeing /var/log/journal to be writable.
6565
6566 * journalctl (and the journal C APIs) can now match for much
6567 more complex expressions, with alternatives and
6568 disjunctions.
6569
6570 * When transitioning from the initial RAM disk to the main
6571 system we will now kill all processes in a killing spree to
6572 ensure no processes stay around by accident.
6573
6574 * Three new specifiers may be used in unit files: %u, %h, %s
6575 resolve to the user name, user home directory resp. user
6576 shell. This is useful for running systemd user instances.
6577
6578 * We now automatically rotate journal files if their data
6579 object hash table gets a fill level > 75%. We also size the
6580 hash table based on the configured maximum file size. This
6581 together should lower hash collisions drastically and thus
6582 speed things up a bit.
6583
6584 * journalctl gained the new "--header" switch to introspect
6585 header data of journal files.
6586
6587 * A new setting SystemCallFilters= has been added to services
6588 which may be used to apply blacklists or whitelists to
6589 system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
6590
6591 * nspawn gained a new --link-journal= switch (and quicker: -j)
6592 to link the container journal with the host. This makes it
6593 very easy to centralize log viewing on the host for all
6594 guests while still keeping the journal files separated.
6595
6596 * Many bugfixes and optimizations
6597
6598 Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
6599 Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
6600 Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
6601 Jędrzejewski-Szmek
6602
b5b4c94a
LP
6603CHANGES WITH 186:
6604
6605 * Several tools now understand kernel command line arguments,
6606 which are only read when run in an initial RAM disk. They
6607 usually follow closely their normal counterparts, but are
6608 prefixed with rd.
6609
6610 * There's a new tool to analyze the readahead files that are
6611 automatically generated at boot. Use:
6612
6613 /usr/lib/systemd/systemd-readahead analyze /.readahead
6614
6615 * We now provide an early debug shell on tty9 if this enabled. Use:
6616
d1f9edaf 6617 systemctl enable debug-shell.service
b5b4c94a
LP
6618
6619 * All plymouth related units have been moved into the Plymouth
6620 package. Please make sure to upgrade your Plymouth version
6621 as well.
6622
6623 * systemd-tmpfiles now supports getting passed the basename of
6624 a configuration file only, in which case it will look for it
6625 in all appropriate directories automatically.
6626
6627 * udevadm info now takes a /dev or /sys path as argument, and
6628 does the right thing. Example:
6629
6630 udevadm info /dev/sda
6631 udevadm info /sys/class/block/sda
6632
6633 * systemctl now prints a warning if a unit is stopped but a
6634 unit that might trigger it continues to run. Example: a
6635 service is stopped but the socket that activates it is left
6636 running.
6637
6638 * "systemctl status" will now mention if the log output was
6639 shortened due to rotation since a service has been started.
6640
6641 * The journal API now exposes functions to determine the
6642 "cutoff" times due to rotation.
6643
6644 * journald now understands SIGUSR1 and SIGUSR2 for triggering
6645 immediately flushing of runtime logs to /var if possible,
6646 resp. for triggering immediate rotation of the journal
6647 files.
6648
6649 * It is now considered an error if a service is attempted to
6650 be stopped that is not loaded.
6651
6652 * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
6653
6654 * systemd-analyze now supports Python 3
6655
6656 * tmpfiles now supports cleaning up directories via aging
6657 where the first level dirs are always kept around but
6658 directories beneath it automatically aged. This is enabled
6659 by prefixing the age field with '~'.
6660
6661 * Seat objects now expose CanGraphical, CanTTY properties
6662 which is required to deal with very fast bootups where the
6663 display manager might be running before the graphics drivers
6664 completed initialization.
6665
6666 * Seat objects now expose a State property.
6667
6668 * We now include RPM macros for service enabling/disabling
6669 based on the preset logic. We recommend RPM based
6670 distributions to make use of these macros if possible. This
6671 makes it simpler to reuse RPM spec files across
6672 distributions.
6673
6674 * We now make sure that the collected systemd unit name is
6675 always valid when services log to the journal via
6676 STDOUT/STDERR.
6677
6678 * There's a new man page kernel-command-line(7) detailing all
6679 command line options we understand.
6680
6681 * The fstab generator may now be disabled at boot by passing
6682 fstab=0 on the kernel command line.
6683
91ac7425 6684 * A new kernel command line option modules-load= is now understood
b5b4c94a
LP
6685 to load a specific kernel module statically, early at boot.
6686
6687 * Unit names specified on the systemctl command line are now
6688 automatically escaped as needed. Also, if file system or
6689 device paths are specified they are automatically turned
6690 into the appropriate mount or device unit names. Example:
6691
6692 systemctl status /home
6693 systemctl status /dev/sda
6694
6695 * The SysVConsole= configuration option has been removed from
6696 system.conf parsing.
6697
6698 * The SysV search path is no longer exported on the D-Bus
6699 Manager object.
6700
ce830873 6701 * The Names= option has been removed from unit file parsing.
b5b4c94a
LP
6702
6703 * There's a new man page bootup(7) detailing the boot process.
6704
6705 * Every unit and every generator we ship with systemd now
6706 comes with full documentation. The self-explanatory boot is
6707 complete.
6708
6709 * A couple of services gained "systemd-" prefixes in their
6710 name if they wrap systemd code, rather than only external
6711 code. Among them fsck@.service which is now
6712 systemd-fsck@.service.
6713
6714 * The HaveWatchdog property has been removed from the D-Bus
6715 Manager object.
6716
6717 * systemd.confirm_spawn= on the kernel command line should now
6718 work sensibly.
6719
6720 * There's a new man page crypttab(5) which details all options
6721 we actually understand.
6722
6723 * systemd-nspawn gained a new --capability= switch to pass
6724 additional capabilities to the container.
6725
6726 * timedated will now read known NTP implementation unit names
5b00c016 6727 from /usr/lib/systemd/ntp-units.d/*.list,
b5b4c94a
LP
6728 systemd-timedated-ntp.target has been removed.
6729
6730 * journalctl gained a new switch "-b" that lists log data of
6731 the current boot only.
6732
6733 * The notify socket is in the abstract namespace again, in
6734 order to support daemons which chroot() at start-up.
6735
6736 * There is a new Storage= configuration option for journald
6737 which allows configuration of where log data should go. This
6738 also provides a way to disable journal logging entirely, so
6739 that data collected is only forwarded to the console, the
6740 kernel log buffer or another syslog implementation.
6741
c4f1b862 6742 * Many bugfixes and optimizations
b5b4c94a 6743
2d938ac7
LP
6744 Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
6745 David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
6746 Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
6747 Shawn Landden, Tom Gundersen
b5b4c94a 6748
2d197285 6749CHANGES WITH 185:
b6a86739 6750
2d197285
KS
6751 * "systemctl help <unit>" now shows the man page if one is
6752 available.
6753
6754 * Several new man pages have been added.
6755
b5b4c94a
LP
6756 * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
6757 MaxLevelConsole= can now be specified in
6758 journald.conf. These options allow reducing the amount of
6759 data stored on disk or forwarded by the log level.
2d197285 6760
b5b4c94a
LP
6761 * TimerSlackNSec= can now be specified in system.conf for
6762 PID1. This allows system-wide power savings.
2d197285
KS
6763
6764 Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
6765 Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
6766 Matthias Clasen
6767
4c8cd173 6768CHANGES WITH 184:
b6a86739 6769
4c8cd173
LP
6770 * logind is now capable of (optionally) handling power and
6771 sleep keys as well as the lid switch.
6772
6773 * journalctl now understands the syntax "journalctl
6774 /usr/bin/avahi-daemon" to get all log output of a specific
6775 daemon.
6776
6777 * CapabilityBoundingSet= in system.conf now also influences
6778 the capability bound set of usermode helpers of the kernel.
6779
6780 Contributions from: Daniel Drake, Daniel J. Walsh, Gert
6781 Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
6782 Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
6783 Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
6784
ea5943d3 6785CHANGES WITH 183:
b6a86739 6786
187076d4
LP
6787 * Note that we skipped 139 releases here in order to set the
6788 new version to something that is greater than both udev's
6789 and systemd's most recent version number.
6790
194bbe33
KS
6791 * udev: all udev sources are merged into the systemd source tree now.
6792 All future udev development will happen in the systemd tree. It
6793 is still fully supported to use the udev daemon and tools without
6794 systemd running, like in initramfs or other init systems. Building
6795 udev though, will require the *build* of the systemd tree, but
ea5943d3 6796 udev can be properly *run* without systemd.
07cd4fc1 6797
91cf7e5c 6798 * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
f13b388f
KS
6799 should be used to create dead device nodes as workarounds for broken
6800 subsystems.
64661ee7 6801
2d13da88
KS
6802 * udev: RUN+="socket:..." and udev_monitor_new_from_socket() is
6803 no longer supported. udev_monitor_new_from_netlink() needs to be
6804 used to subscribe to events.
6805
194bbe33
KS
6806 * udev: when udevd is started by systemd, processes which are left
6807 behind by forking them off of udev rules, are unconditionally cleaned
6808 up and killed now after the event handling has finished. Services or
6809 daemons must be started as systemd services. Services can be
ea5943d3 6810 pulled-in by udev to get started, but they can no longer be directly
194bbe33
KS
6811 forked by udev rules.
6812
f13b388f
KS
6813 * udev: the daemon binary is called systemd-udevd now and installed
6814 in /usr/lib/systemd/. Standalone builds or non-systemd systems need
6815 to adapt to that, create symlink, or rename the binary after building
6816 it.
6817
ea5943d3 6818 * libudev no longer provides these symbols:
c1959569
KS
6819 udev_monitor_from_socket()
6820 udev_queue_get_failed_list_entry()
6821 udev_get_{dev,sys,run}_path()
ea5943d3 6822 The versions number was bumped and symbol versioning introduced.
c1959569 6823
ea5943d3 6824 * systemd-loginctl and systemd-journalctl have been renamed
9ae9afce 6825 to loginctl and journalctl to match systemctl.
18b754d3
KS
6826
6827 * The config files: /etc/systemd/systemd-logind.conf and
6828 /etc/systemd/systemd-journald.conf have been renamed to
6829 logind.conf and journald.conf. Package updates should rename
6830 the files to the new names on upgrade.
6831
ea5943d3
LP
6832 * For almost all files the license is now LGPL2.1+, changed
6833 from the previous GPL2.0+. Exceptions are some minor stuff
6834 of udev (which will be changed to LGPL2.1 eventually, too),
6835 and the MIT licensed sd-daemon.[ch] library that is suitable
6836 to be used as drop-in files.
6837
6838 * systemd and logind now handle system sleep states, in
49f43d5f 6839 particular suspending and hibernating.
ea5943d3
LP
6840
6841 * logind now implements a sleep/shutdown/idle inhibiting logic
6842 suitable for a variety of uses. Soonishly Lennart will blog
6843 about this in more detail.
6844
6845 * var-run.mount and var-lock.mount are no longer provided
ce830873 6846 (which previously bind mounted these directories to their new
ea5943d3
LP
6847 places). Distributions which have not converted these
6848 directories to symlinks should consider stealing these files
6849 from git history and add them downstream.
6850
6851 * We introduced the Documentation= field for units and added
6852 this to all our shipped units. This is useful to make it
3943231c 6853 easier to explore the boot and the purpose of the various
ea5943d3
LP
6854 units.
6855
6856 * All smaller setup units (such as
6857 systemd-vconsole-setup.service) now detect properly if they
6858 are run in a container and are skipped when
6859 appropriate. This guarantees an entirely noise-free boot in
6860 Linux container environments such as systemd-nspawn.
6861
6862 * A framework for implementing offline system updates is now
6863 integrated, for details see:
c6749ba5 6864 https://www.freedesktop.org/wiki/Software/systemd/SystemUpdates
ea5943d3
LP
6865
6866 * A new service type Type=idle is available now which helps us
6867 avoiding ugly interleaving of getty output and boot status
6868 messages.
6869
439d6dfd
LP
6870 * There's now a system-wide CapabilityBoundingSet= option to
6871 globally reduce the set of capabilities for the
ea5943d3
LP
6872 system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
6873 CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
6874 even CAP_NET_ADMIN system-wide for secure systems.
6875
6876 * There are now system-wide DefaultLimitXXX= options to
6877 globally change the defaults of the various resource limits
6878 for all units started by PID 1.
6879
6880 * Harald Hoyer's systemd test suite has been integrated into
6881 systemd which allows easy testing of systemd builds in qemu
6882 and nspawn. (This is really awesome! Ask us for details!)
6883
3943231c
LP
6884 * The fstab parser is now implemented as generator, not inside
6885 of PID 1 anymore.
ea5943d3
LP
6886
6887 * systemctl will now warn you if .mount units generated from
6888 /etc/fstab are out of date due to changes in fstab that
d28315e4 6889 have not been read by systemd yet.
ea5943d3
LP
6890
6891 * systemd is now suitable for usage in initrds. Dracut has
6892 already been updated to make use of this. With this in place
6893 initrds get a slight bit faster but primarily are much
6894 easier to introspect and debug since "systemctl status" in
6895 the host system can be used to introspect initrd services,
6896 and the journal from the initrd is kept around too.
6897
6898 * systemd-delta has been added, a tool to explore differences
6899 between user/admin configuration and vendor defaults.
6900
6901 * PrivateTmp= now affects both /tmp and /var/tmp.
6902
6903 * Boot time status messages are now much prettier and feature
6904 proper english language. Booting up systemd has never been
6905 so sexy.
6906
6907 * Read-ahead pack files now include the inode number of all
6908 files to pre-cache. When the inode changes the pre-caching
6909 is not attempted. This should be nicer to deal with updated
6910 packages which might result in changes of read-ahead
6911 patterns.
6912
6913 * We now temporaritly lower the kernel's read_ahead_kb variable
6914 when collecting read-ahead data to ensure the kernel's
6915 built-in read-ahead does not add noise to our measurements
6916 of necessary blocks to pre-cache.
6917
6918 * There's now RequiresMountsFor= to add automatic dependencies
6919 for all mounts necessary for a specific file system path.
6920
6921 * MountAuto= and SwapAuto= have been removed from
6922 system.conf. Mounting file systems at boot has to take place
6923 in systemd now.
6924
6925 * nspawn now learned a new switch --uuid= to set the machine
6926 ID on the command line.
6927
f8c0a2cb 6928 * nspawn now learned the -b switch to automatically search
ea5943d3
LP
6929 for an init system.
6930
6931 * vt102 is now the default TERM for serial TTYs, upgraded from
6932 vt100.
6933
6934 * systemd-logind now works on VT-less systems.
6935
6936 * The build tree has been reorganized. The individual
3943231c 6937 components now have directories of their own.
ea5943d3
LP
6938
6939 * A new condition type ConditionPathIsReadWrite= is now available.
6940
6941 * nspawn learned the new -C switch to create cgroups for the
6942 container in other hierarchies.
6943
6944 * We now have support for hardware watchdogs, configurable in
6945 system.conf.
6946
6947 * The scheduled shutdown logic now has a public API.
6948
6949 * We now mount /tmp as tmpfs by default, but this can be
6950 masked and /etc/fstab can override it.
6951
d28315e4 6952 * Since udisks does not make use of /media anymore we are not
ea5943d3
LP
6953 mounting a tmpfs on it anymore.
6954
6955 * journalctl gained a new --local switch to only interleave
6956 locally generated journal files.
6957
6958 * We can now load the IMA policy at boot automatically.
6959
6960 * The GTK tools have been split off into a systemd-ui.
6961
79849bf9
LP
6962 Contributions from: Andreas Schwab, Auke Kok, Ayan George,
6963 Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
6964 Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
6965 Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
6966 Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
6967 Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
6968 A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
6969 Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
6970 Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
6971 Gundersen
6972
16f1239e 6973CHANGES WITH 44:
b6a86739 6974
16f1239e
LP
6975 * This is mostly a bugfix release
6976
6977 * Support optional initialization of the machine ID from the
6978 KVM or container configured UUID.
6979
6980 * Support immediate reboots with "systemctl reboot -ff"
6981
6982 * Show /etc/os-release data in systemd-analyze output
6983
ab06eef8 6984 * Many bugfixes for the journal, including endianness fixes and
16f1239e
LP
6985 ensuring that disk space enforcement works
6986
ce830873 6987 * sd-login.h is C++ compatible again
16f1239e
LP
6988
6989 * Extend the /etc/os-release format on request of the Debian
6990 folks
6991
6992 * We now refuse non-UTF8 strings used in various configuration
d28315e4 6993 and unit files. This is done to ensure we do not pass invalid
16f1239e
LP
6994 data over D-Bus or expose it elsewhere.
6995
6996 * Register Mimo USB Screens as suitable for automatic seat
6997 configuration
6998
6999 * Read SELinux client context from journal clients in a race
7000 free fashion
7001
7002 * Reorder configuration file lookup order. /etc now always
7003 overrides /run in order to allow the administrator to always
b938cb90 7004 and unconditionally override vendor-supplied or
16f1239e
LP
7005 automatically generated data.
7006
7007 * The various user visible bits of the journal now have man
7008 pages. We still lack man pages for the journal API calls
7009 however.
7010
7011 * We now ship all man pages in HTML format again in the
7012 tarball.
7013
7014 Contributions from: Dave Reisner, Dirk Eibach, Frederic
7015 Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
7016 Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
7017 Reding
7018
437b7dee 7019CHANGES WITH 43:
b6a86739 7020
437b7dee
LP
7021 * This is mostly a bugfix release
7022
7023 * systems lacking /etc/os-release are no longer supported.
7024
7025 * Various functionality updates to libsystemd-login.so
7026
45afd519 7027 * Track class of PAM logins to distinguish greeters from
437b7dee
LP
7028 normal user logins.
7029
7030 Contributions from: Kay Sievers, Lennart Poettering, Michael
7031 Biebl
7032
204fa33c 7033CHANGES WITH 42:
b6a86739 7034
204fa33c
LP
7035 * This is an important bugfix release for v41.
7036
7037 * Building man pages is now optional which should be useful
7038 for those building systemd from git but unwilling to install
7039 xsltproc.
7040
7041 * Watchdog support for supervising services is now usable. In
7042 a future release support for hardware watchdogs
7043 (i.e. /dev/watchdog) will be added building on this.
7044
7045 * Service start rate limiting is now configurable and can be
7046 turned off per service. When a start rate limit is hit a
7047 reboot can automatically be triggered.
7048
7049 * New CanReboot(), CanPowerOff() bus calls in systemd-logind.
7050
7051 Contributions from: Benjamin Franzke, Bill Nottingham,
7052 Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
7053 Schmidt, Michał Górny, Piotr Drąg
7054
e0d25329 7055CHANGES WITH 41:
b6a86739 7056
e0d25329
KS
7057 * The systemd binary is installed /usr/lib/systemd/systemd now;
7058 An existing /sbin/init symlink needs to be adapted with the
7059 package update.
7060
b13df964
LP
7061 * The code that loads kernel modules has been ported to invoke
7062 libkmod directly, instead of modprobe. This means we do not
7063 support systems with module-init-tools anymore.
7064
7065 * Watchdog support is now already useful, but still not
7066 complete.
7067
7068 * A new kernel command line option systemd.setenv= is
7069 understood to set system wide environment variables
7070 dynamically at boot.
7071
e9c1ea9d 7072 * We now limit the set of capabilities of systemd-journald.
ccd07a08 7073
353e12c2
LP
7074 * We now set SIGPIPE to ignore by default, since it only is
7075 useful in shell pipelines, and has little use in general
7076 code. This can be disabled with IgnoreSIPIPE=no in unit
7077 files.
7078
b13df964
LP
7079 Contributions from: Benjamin Franzke, Kay Sievers, Lennart
7080 Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
7081 William Douglas
7082
d26e4270 7083CHANGES WITH 40:
b6a86739 7084
d26e4270
LP
7085 * This is mostly a bugfix release
7086
7087 * We now expose the reason why a service failed in the
7088 "Result" D-Bus property.
7089
7090 * Rudimentary service watchdog support (will be completed over
7091 the next few releases.)
7092
7093 * When systemd forks off in order execute some service we will
7094 now immediately changes its argv[0] to reflect which process
7095 it will execute. This is useful to minimize the time window
7096 with a generic argv[0], which makes bootcharts more useful
7097
b13df964
LP
7098 Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
7099 Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
7100 Mike Kazantsev, Ray Strode
7101
220a21d3 7102CHANGES WITH 39:
b6a86739 7103
220a21d3
LP
7104 * This is mostly a test release, but incorporates many
7105 bugfixes.
7106
7107 * New systemd-cgtop tool to show control groups by their
7108 resource usage.
7109
7110 * Linking against libacl for ACLs is optional again. If
7111 disabled, support tracking device access for active logins
7112 goes becomes unavailable, and so does access to the user
7113 journals by the respective users.
7114
7115 * If a group "adm" exists, journal files are automatically
7116 owned by them, thus allow members of this group full access
7117 to the system journal as well as all user journals.
7118
7119 * The journal now stores the SELinux context of the logging
7120 client for all entries.
7121
7122 * Add C++ inclusion guards to all public headers
7123
7124 * New output mode "cat" in the journal to print only text
7125 messages, without any meta data like date or time.
7126
7127 * Include tiny X server wrapper as a temporary stop-gap to
7128 teach XOrg udev display enumeration. This is used by display
7129 managers such as gdm, and will go away as soon as XOrg
7130 learned native udev hotplugging for display devices.
7131
7132 * Add new systemd-cat tool for executing arbitrary programs
7133 with STDERR/STDOUT connected to the journal. Can also act as
7134 BSD logger replacement, and does so by default.
7135
7136 * Optionally store all locally generated coredumps in the
7137 journal along with meta data.
7138
7139 * systemd-tmpfiles learnt four new commands: n, L, c, b, for
7140 writing short strings to files (for usage for /sys), and for
7141 creating symlinks, character and block device nodes.
7142
7143 * New unit file option ControlGroupPersistent= to make cgroups
7144 persistent, following the mechanisms outlined in
56cadcb6 7145 https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
220a21d3
LP
7146
7147 * Support multiple local RTCs in a sane way
7148
7149 * No longer monopolize IO when replaying readahead data on
7150 rotating disks, since we might starve non-file-system IO to
7151 death, since fanotify() will not see accesses done by blkid,
7152 or fsck.
7153
d28315e4 7154 * Do not show kernel threads in systemd-cgls anymore, unless
220a21d3
LP
7155 requested with new -k switch.
7156
7157 Contributions from: Dan Horák, Kay Sievers, Lennart
7158 Poettering, Michal Schmidt
7159
7160CHANGES WITH 38:
b6a86739 7161
220a21d3
LP
7162 * This is mostly a test release, but incorporates many
7163 bugfixes.
7164
7165 * The git repository moved to:
7166 git://anongit.freedesktop.org/systemd/systemd
7167 ssh://git.freedesktop.org/git/systemd/systemd
7168
7169 * First release with the journal
7170 http://0pointer.de/blog/projects/the-journal.html
7171
7172 * The journal replaces both systemd-kmsg-syslogd and
7173 systemd-stdout-bridge.
7174
7175 * New sd_pid_get_unit() API call in libsystemd-logind
7176
7177 * Many systemadm clean-ups
7178
7179 * Introduce remote-fs-pre.target which is ordered before all
7180 remote mounts and may be used to start services before all
7181 remote mounts.
7182
7183 * Added Mageia support
7184
7185 * Add bash completion for systemd-loginctl
7186
7187 * Actively monitor PID file creation for daemons which exit in
7188 the parent process before having finished writing the PID
7189 file in the daemon process. Daemons which do this need to be
7190 fixed (i.e. PID file creation must have finished before the
7191 parent exits), but we now react a bit more gracefully to them.
7192
7193 * Add colourful boot output, mimicking the well-known output
7194 of existing distributions.
7195
7196 * New option PassCredentials= for socket units, for
7197 compatibility with a recent kernel ABI breakage.
7198
7199 * /etc/rc.local is now hooked in via a generator binary, and
7200 thus will no longer act as synchronization point during
7201 boot.
7202
7203 * systemctl list-unit-files now supports --root=.
7204
7205 * systemd-tmpfiles now understands two new commands: z, Z for
7206 relabelling files according to the SELinux database. This is
7207 useful to apply SELinux labels to specific files in /sys,
7208 among other things.
7209
7210 * Output of SysV services is now forwarded to both the console
7211 and the journal by default, not only just the console.
7212
7213 * New man pages for all APIs from libsystemd-login.
7214
ce830873 7215 * The build tree got reorganized and the build system is a
220a21d3
LP
7216 lot more modular allowing embedded setups to specifically
7217 select the components of systemd they are interested in.
7218
7219 * Support for Linux systems lacking the kernel VT subsystem is
7220 restored.
7221
7222 * configure's --with-rootdir= got renamed to
7223 --with-rootprefix= to follow the naming used by udev and
7224 kmod
7225
d28315e4 7226 * Unless specified otherwise we will now install to /usr instead
220a21d3
LP
7227 of /usr/local by default.
7228
7229 * Processes with '@' in argv[0][0] are now excluded from the
7230 final shut-down killing spree, following the logic explained
7231 in:
56cadcb6 7232 https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
220a21d3
LP
7233
7234 * All processes remaining in a service cgroup when we enter
7235 the START or START_PRE states are now killed with
7236 SIGKILL. That means it is no longer possible to spawn
7237 background processes from ExecStart= lines (which was never
7238 supported anyway, and bad style).
7239
7240 * New PropagateReloadTo=/PropagateReloadFrom= options to bind
7241 reloading of units together.
7242
4c8cd173 7243 Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
220a21d3
LP
7244 Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
7245 Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
7246 Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
7247 Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek