X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=NEWS;h=0d7376c475982cdae6d6958a56c62b2f7936dbbe;hp=b40d3697468f9cfc592407479dea6c64f513bd44;hb=99a17ada9caa8e190b5cafa5cd3c19618feeff48;hpb=7e95eda5b36f4a5259e1e86989b5aee824d83d03 diff --git a/NEWS b/NEWS index b40d36974..0d7376c47 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,383 @@ systemd System and Service Manager +CHANGES WITH 212: + + * When restoring the screen brightness at boot, stay away from + the darkest setting or from the lowest 5% of the available + range, depending on which is the larger value of both. This + should effectively protect the user from rebooting into a + black screen, should the brightness have been set to minimum + by accident. + + * sd-login gained a new sd_machine_get_class() call to + determine the class ("vm" or "container") of a machine + registered with machined. + + * sd-login gained new calls + sd_peer_get_{session,owner_uid,unit,user_unit,slice,machine_name}(), + to query the identity of the peer of a local AF_UNIX + connection. They operate similar to their sd_pid_get_xyz() + counterparts. + + * PID 1 will now maintain a system-wide system state engine + with the states "starting", "running", "degraded", + "maintenance", "stopping". These states are bound to system + startup, normal runtime, runtime with at least one failed + service, rescue/emergency mode and system shutdown. This + state is shown in the "systemctl status" output when no unit + name is passed. It is useful to determine system state, in + particularly when doing so for many systems or containers at + once. + + * A new command "list-machines" has been added to "systemctl" + that lists all local OS containers and shows their system + state (see above), if systemd runs inside of them. + + * systemctl gained a new "-r" switch to recursively enumerate + units on all local containers, when used with the + "list-unit" command (which is the default one that is + executed when no parameters are specified). + + * The GPT automatic partition discovery logic will now honour + two GPT partition flags: one may be set on a partition to + cause it to be mounted read-only, and the other may be set + on a partition to ignore it during automatic discovery. + + * Two new GPT type UUIDs have been added for automatic root + partition discovery, for 32bit and 64bit ARM. This is not + particularly useful for discovering the root directory on + these architectures during bare-metal boots (since UEFI is + not common there), but still very useful to allow booting of + ARM disk images in nspawn with the -i option. + + * MAC addresses of interfaces created with nspawn's + --network-interface= switch will now be generated from the + machine name, and thus be stable between multiple invocations + of the container. + + * logind will now automatically remove all IPC objects owned + by a user if she or he fully logs out. This makes sure that + users who are logged out cannot continue to consume IPC + resources. This covers SysV memory, semaphores and message + queues as well as POSIX shared memory and message + queues. Traditionally SysV and POSIX IPC had no life-cycle + limits, with this functionality this is corrected. This may + be turned off using the RemoveIPC= switch of logind.conf. + + * The systemd-machine-id-setup and tmpfiles tools gained a + --root= switch to operate on a specific root directory, + instead of /. + + * journald can now forward logged messages to the TTYs of all + logged in users ("wall"). This is the default for all + emergency messages now. + + * A new tool systemd-journal-remote has been added to stream + journal log messages across the network. + + * /sys/fs/cgroup/ is now mounted read-only after all cgroup + controller trees are mounted into it. Note that the + directories mounted beneath it are not read-only. This is a + security measure and is particularly useful because glibc + actually includes a search logic to pick any tmpfs it can + find to implement shm_open() if /dev/shm is not available + (which it might very well be in namespaced setups). + + * machinectl gained a new "poweroff" command to cleanly power + down a local OS container. + + * The PrivateDevices= unit file setting will now also drop the + CAP_MKNOD capability from the capability bound set, and + imply DevicePolicy=closed. + + * PrivateDevices=, PrivateNetwork= and PrivateTmp= is now used + comprehensively on all long-running systemd services where + this is appropriate. + + * systemd-udevd will now run in a disassociated mount + namespace. To mount directories from udev rules make sure to + pull in mount units via SYSTEMD_WANTS properties. + + * The kdbus support gained support for uploading policy into + the kernel. sd-bus gained support for creating "monitoring" + connections that can eavesdrop into all bus communication + for debugging purposes. + + * Timestamps may now be specified in seconds since the UNIX + epoch Jan 1st, 1970 by specifying "@" followed by the value + in seconds. + + * Native tcpwrap support in systemd has been removed. tcpwrap + is old code, not really maintained anymore and has serious + shortcomings, and better options such as firewalls + exist. For setups that require tcpwrap usage, please + consider invoking your socket-activated service via tcpd, + like on traditional inetd. + + * A new system.conf configuration option + DefaultTimerAccuracySec= has been added that controls the + default AccuracySec= setting of .timer units. + + * Timer units gained a new WakeSystem= switch. If enabled + timers configured this way will cause the system to resume + from system suspend (if the system supports that, which most + do these days). + + * Timer units gained a new Persistent= switch. If enabled + timers configured this way will save to disk when they have + been last triggered. This information is then used on next + reboot to possible execute overdue timer events, that + couldn't take place because the system was powered off. This + enables simple anacron-like behaviour for timer units. + + * systemctl's "list-timers" will now also list the time a + timer unit was last triggered in addition to the next time + it will be triggered. + + * systemd-networkd will now assign predictable IPv4LL + addresses to its local interfaces. + + Contributions from: Brandon Philips, Daniel Buch, Daniel Mack, + Dave Reisner, David Herrmann, Gerd Hoffmann, Greg + Kroah-Hartman, Hendrik Brueckner, Jason St. John, Josh + Triplett, Kay Sievers, Lennart Poettering, Marc-Antoine + Perennou, Michael Marineau, Michael Olbrich, Miklos Vajna, + Patrik Flykt, poma, Sebastian Thorarensen, Thomas Bächler, + Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom Gundersen, + Umut Tezduyar Lindskog, Wieland Hoffmann, Zbigniew + Jędrzejewski-Szmek + + -- Berlin, 2014-03-25 + +CHANGES WITH 211: + + * A new unit file setting RestrictAddressFamilies= has been + added to restrict which socket address families unit + processes gain access to. This takes address family names + like "AF_INET" or "AF_UNIX", and is useful to minimize the + attack surface of services via exotic protocol stacks. This + is built on seccomp system call filters. + + * Two new unit file settings RuntimeDirectory= and + RuntimeDirectoryMode= have been added that may be used to + manage a per-daemon runtime directories below /run. This is + an alternative for setting up directory permissions with + tmpfiles snippets, and has the advantage that the runtime + directory's lifetime is bound to the daemon runtime and that + the daemon starts up with an empty directory each time. This + is particularly useful when writing services that drop + priviliges using the User= or Group= setting. + + * The DeviceAllow= unit setting now supports globbing for + matching against device group names. + + * The systemd configuration file system.conf gained new + settings DefaultCPUAccounting=, DefaultBlockIOAccounting=, + DefaultMemoryAccounting= to globally turn on/off accounting + for specific resources (cgroups) for all units. These + settings may still be overridden individually in each unit + though. + + * systemd-gpt-auto-generator is now able to discover /srv and + root partitions in addition to /home and swap partitions. It + also supports LUKS-encrypted partitions now. With this in + place automatic discovery of partitions to mount following + the Discoverable Partitions Specification + (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec) + is now a lot more complete. This allows booting without + /etc/fstab and without root= on the kernel command line on + appropriately prepared systems. + + * systemd-nspawn gained a new --image= switch which allows + booting up disk images and Linux installations on any block + device that follow the Discoverable Partitions Specification + (see above). This means that installations made with + appropriately updated installers may now be started and + deployed using container managers, completely + unmodified. (We hope that libvirt-lxc will add support for + this feature soon, too.) + + * systemd-nspawn gained a new --network-macvlan= setting to + set up a private macvlan interface for the + container. Similar, systemd-networkd gained a new + Kind=macvlan setting in .netdev files. + + * systemd-networkd now supports configuring local addresses + using IPv4LL. + + * A new tool systemd-network-wait-online has been added to + synchronously wait for network connectivity using + systemd-networkd. + + * The sd-bus.h bus API gained a new sd_bus_track object for + tracking the life-cycle of bus peers. Note that sd-bus.h is + still not a public API though (unless you specify + --enable-kdbus on the configure command line, which however + voids your warranty and you get no API stability guarantee). + + * The $XDG_RUNTIME_DIR runtime directories for each user are + now individual tmpfs instances, which has the benefit of + introducing separate pools for each user, with individual + size limits, and thus making sure that unprivileged clients + can no longer negatively impact the system or other users by + filling up their $XDG_RUNTIME_DIR. A new logind.conf setting + RuntimeDirectorySize= has been introduced that allows + controlling the default size limit for all users. It + defaults to 10% of the available physical memory. This is no + replacement for quotas on tmpfs though (which the kernel + still does not support), as /dev/shm and /tmp are still + shared resources used by both the system and unprivileged + users. + + * logind will now automatically turn off automatic suspending + on laptop lid close when more than one display is + connected. This was previously expected to be implemented + individually in desktop environments (such as GNOME), + however has been added to logind now, in order to fix a + boot-time race where a desktop environment might not have + been started yet and thus not been able to take an inhibitor + lock at the time where logind already suspends the system + due to a closed lid. + + * logind will now wait at least 30s after each system + suspend/resume cycle, and 3min after system boot before + suspending the system due to a closed laptop lid. This + should give USB docking stations and similar enough time to + be probed and configured after system resume and boot in + order to then act as suspend blocker. + + * systemd-run gained a new --property= setting which allows + initialization of resource control properties (and others) + for the created scope or service unit. Example: "systemd-run + --property=BlockIOWeight=10 updatedb" may be used to run + updatedb at a low block IO scheduling weight. + + * systemd-run's --uid=, --gid=, --setenv=, --setenv= switches + now also work in --scope mode. + + * When systemd is compiled with kdbus support, basic support + for enforced policies is now in place. (Note that enabling + kdbus still voids your warranty and no API compatibility + promises are made.) + + Contributions from: Andrey Borzenkov, Ansgar Burchardt, Armin + K., Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni, + Harald Hoyer, Henrik Grindal Bakken, Jasper St. Pierre, Kay + Sievers, Kieran Clancy, Lennart Poettering, Lukas Nykryn, + Mantas Mikulėnas, Marcel Holtmann, Mark Oteiza, Martin Pitt, + Mike Gilbert, Peter Rajnoha, poma, Samuli Suominen, Stef + Walter, Susant Sahani, Tero Roponen, Thomas Andersen, Thomas + Bächler, Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom + Gundersen, Umut Tezduyar Lindskog, Uoti Urpala, Zachary Cook, + Zbigniew Jędrzejewski-Szmek + + -- Berlin, 2014-03-12 + +CHANGES WITH 210: + + * systemd will now relabel /dev after loading the SMACK policy + according to SMACK rules. + + * A new unit file option AppArmorProfile= has been added to + set the AppArmor profile for the processes of a unit. + + * A new condition check ConditionArchitecture= has been added + to conditionalize units based on the system architecture, as + reported by uname()'s "machine" field. + + * systemd-networkd now supports matching on the system + virtualization, architecture, kernel command line, host name + and machine ID. + + * logind is now a lot more aggressive when suspending the + machine due to a closed laptop lid. Instead of acting only + on the lid close action it will continuously watch the lid + status and act on it. This is useful for laptops where the + power button is on the outside of the chassis so that it can + be reached without opening the lid (such as the Lenovo + Yoga). On those machines logind will now immediately + re-suspend the machine if the power button has been + accidentally pressed while the laptop was suspended and in a + backpack or similar. + + * logind will now watch SW_DOCK switches and inhibit reaction + to the lid switch if it is pressed. This means that logind + will not suspend the machine anymore if the lid is closed + and the system is docked, if the laptop supports SW_DOCK + notifications via the input layer. Note that ACPI docking + stations do not generate this currently. Also note that this + logic is usually not fully sufficient and Desktop + Environments should take a lid switch inhibitor lock when an + external display is connected, as systemd will not watch + this on its own. + + * nspawn will now make use of the devices cgroup controller by + default, and only permit creation of and access to the usual + API device nodes like /dev/null or /dev/random, as well as + access to (but not creation of) the pty devices. + + * We will now ship a default .network file for + systemd-networkd that automatically configures DHCP for + network interfaces created by nspawn's --network-veth or + --network-bridge= switches. + + * systemd will now understand the usual M, K, G, T suffixes + according to SI conventions (i.e. to the base 1000) when + referring to throughput and hardware metrics. It will stay + with IEC conventions (i.e. to the base 1024) for software + metrics, according to what is customary according to + Wikipedia. We explicitly document which base applies for + each configuration option. + + * The DeviceAllow= setting in unit files now supports a syntax + to whitelist an entire group of devices node majors at once, + based on the /proc/devices listing. For example, with the + string "char-pts" it is now possible to whitelist all + current and future pseudo-TTYs at once. + + * sd-event learned a new "post" event source. Event sources of + this type are triggered by the dispatching of any event + source of a type that is not "post". This is useful for + implementing clean-up and check event sources that are + triggered by other work being done in the program. + + * systemd-networkd is no longer statically enabled, but uses + the usual [Install] sections so that it can be + enabled/disabled using systemctl. It still is enabled by + default however. + + * When creating a veth interface pair with systemd-nspawn the + host side will now be prefixed with "vb-" if + --network-bridge= is used, and with "ve-" if --network-veth + is used. This way it is easy to distinguish these cases on + the host, for example to apply different configuration to + them with systemd-networkd. + + * The compatibility libraries for libsystemd-journal.so, + libsystem-id128.so, libsystemd-login.so and + libsystemd-daemon.so do not make use of IFUNC + anymore. Instead we now build libsystemd.so multiple times + under these alternative names. This means that the footprint + is drastically increased, but given that these are + transitional compatibility libraries this shouldn't matter + much. This change has been made necessary to support the ARM + platform for these compatibility libraries, as the ARM + toolchain isn't really at the same level as the toolchain + for other architectures like x86 and does not support + IFUNC. Please make sure to use --enable-compat-libs only + during a transitional period! + + Contributions from: Andreas Fuchs, Armin K., Colin Walters, + Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni, + Holger Schurig, Jason A. Donenfeld, Jason St. John, Jasper + St. Pierre, Kay Sievers, Lennart Poettering, Łukasz Stelmach, + Marcel Holtmann, Michael Scherer, Michal Sekletar, Mike + Gilbert, Samuli Suominen, Thomas Bächler, Thomas Hindoe + Paaboel Andersen, Tom Gundersen, Umut Tezduyar Lindskog, + Zbigniew Jędrzejewski-Szmek + + -- Berlin, 2014-02-24 + CHANGES WITH 209: * A new component "systemd-networkd" has been added that can @@ -39,6 +417,16 @@ CHANGES WITH 209: MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC address assignment policy (randomized, ...). + * The configuration of network interface naming rules for + "permanent interface names" has changed: a new NamePolicy= + setting in the [Link] section of .link files determines the + priority of possible naming schemes (onboard, slot, mac, + path). The default value of this setting is determined by + /usr/lib/net/links/99-default.link. Old + 80-net-name-slot.rules udev configuration file has been + removed, so local configuration overriding this file should + be adapated to override 99-default.link instead. + * When the User= switch is used in a unit file, also initialize $SHELL= based on the user database entry. @@ -222,25 +610,25 @@ CHANGES WITH 209: LDAP, etc. This API is based on libasyncns, but it has been cleaned up for inclusion in systemd. - * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h" are no - longer found in individual libraries libsystemd-journal.so, - libsystemd-login.so, libsystemd-id128.so. Instead, we have + * The APIs "sd-journal.h", "sd-login.h", "sd-id128.h", + "sd-daemon.h" are no longer found in individual libraries + libsystemd-journal.so, libsystemd-login.so, + libsystemd-id128.so, libsystemd-daemon.so. Instead, we have merged them into a single library, libsystemd.so, which provides all symbols. The reason for this is cyclic dependencies, as these libraries tend to use each other's - symbols. So far, we've managed to workaround that by linking a - copy of a good part of our code into each of these libraries - again and again, which, however, makes certain things hard to - do, like sharing static variables. Also, it substantially - increases footprint. With this change, there is only one - library for the basic APIs systemd provides. Also, - "sd-bus.h", "sd-memfd.h", "sd-event.h", "sd-rtnl.h", - "sd-resolve.h", "sd-utf8.h" are found in this library as - well, however are subject to the --enable-kdbus switch (see - below). Note that "sd-dhcp-client.h" and "sd-daemon.h" are not - part of this library (the former because it only consumes, - never provides, services of/to other APIs, and the latter - because it is completely standalone). To make the transition + symbols. So far, we've managed to workaround that by linking + a copy of a good part of our code into each of these + libraries again and again, which, however, makes certain + things hard to do, like sharing static variables. Also, it + substantially increases footprint. With this change, there + is only one library for the basic APIs systemd + provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h", + "sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this + library as well, however are subject to the --enable-kdbus + switch (see below). Note that "sd-dhcp-client.h" is not part + of this library (this is because it only consumes, never + provides, services of/to other APIs). To make the transition easy from the separate libraries to the unified one, we provide the --enable-compat-libs compile-time switch which will generate stub libraries that are compatible with the @@ -379,6 +767,12 @@ CHANGES WITH 209: switch then allows assigning the host side of this virtual Ethernet connection to a bridge device. + * systemd-nspawn gained a new --personality= switch for + setting the kernel personality for the container. This is + useful when running a 32bit container on a 64bit host. A + similar option Personality= is now also available in service + units. + * logind will now also track a "Desktop" identifier for each session which encodes the desktop environment of it. This is useful for desktop environments that want to identify @@ -410,6 +804,9 @@ CHANGES WITH 209: SystemCallArchitectures= setting in system.conf now to turn off support for non-native system calls system-wide. + * systemd requires a kernel with a working name_to_handle_at(), + please see the kernel config requirements in the README file. + Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov, Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera, Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters, @@ -435,7 +832,7 @@ CHANGES WITH 209: Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek - -- Berlin, 2014-02-xx + -- Berlin, 2014-02-20 CHANGES WITH 208: