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