chiark / gitweb /
bus: introduce bus_error_is_dirty() independently of sd_bus_error_is_set()
[elogind.git] / NEWS
diff --git a/NEWS b/NEWS
index 4796086047dba28381e66764b4f9903893e33837..9fc5085b038881db09bdd75fd695fcaa0ffc9a3a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,407 @@
 systemd System and Service Manager
 
+CHANGES WITH 198:
+
+        * Configuration of unit files may now be extended via drop-in
+          files without having to edit/override the unit files
+          themselves. More specifically, if the administrator wants to
+          change one value for a service file foobar.service he can
+          now do so by dropping in a configuration snippet into
+          /etc/systemd/system/foobar.service.d/*.conf. The unit logic
+          will load all these snippets and apply them on top of the
+          main unit configuration file, possibly extending or
+          overriding its settings. Using these drop-in snippets is
+          generally nicer than the two earlier options for changing
+          unit files locally: copying the files from
+          /usr/lib/systemd/system/ to /etc/systemd/system/ and editing
+          them there; or creating a new file in /etc/systemd/system/
+          that incorporates the original one via ".include". Drop-in
+          snippets into these .d/ directories can be placed in any
+          directory systemd looks for units in, and the usual
+          overriding semantics between /usr/lib, /etc and /run apply
+          for them too.
+
+        * Most unit file settings which take lists of items can now be
+          reset by assigning the empty string to them. For example,
+          normally, settings such as Environment=FOO=BAR append a new
+          environment variable assignment to the environment block,
+          each time they are used. By assigning Environment= the empty
+          string the environment block can be reset to empty. This is
+          particularly useful with the .d/*.conf drop-in snippets
+          mentioned above, since this adds the ability to reset list
+          settings from vendor unit files via these drop-ins.
+
+        * systemctl gained a new "list-dependencies" command for
+          listing the dependencies of a unit recursively.
+
+        * Inhibitors are now honored and listed by "systemctl
+          suspend", "systemctl poweroff" (and similar) too, not only
+          GNOME. These commands will also list active sessions by
+          other users.
+
+        * Resource limits (as exposed by the various control group
+          controllers) can now be controlled dynamically at runtime
+          for all units. More specifically, you can now use a command
+          like "systemctl set-cgroup-attr foobar.service cpu.shares
+          2000" to alter the CPU shares a specific service gets. These
+          settings are stored persistently on disk, and thus allow the
+          administrator to easily adjust the resource usage of
+          services with a few simple commands. This dynamic resource
+          management logic is also available to other programs via the
+          bus. Almost any kernel cgroup attribute and controller is
+          supported.
+
+        * systemd-vconsole-setup will now copy all font settings to
+          all allocated VTs, where it previously applied them only to
+          the foreground VT.
+
+        * libsystemd-login gained the new sd_session_get_tty() API
+          call.
+
+        * This release drops support for a few legacy or
+          distribution-specific LSB facility names when parsing init
+          scripts: $x-display-manager, $mail-transfer-agent,
+          $mail-transport-agent, $mail-transfer-agent, $smtp,
+          $null. Also, the mail-transfer-agent.target unit backing
+          this has been removed. Distributions which want to retain
+          compatibility with this should carry the burden for
+          supporting this themselves and patch support for these back
+          in, if they really need to. Also, the facilities $syslog and
+          $local_fs are now ignored, since systemd does not support
+          early-boot LSB init scripts anymore, and these facilities
+          are implied anyway for normal services. syslog.target has
+          also been removed.
+
+        * There are new bus calls on PID1's Manager object for
+          cancelling jobs, and removing snapshot units. Previously,
+          both calls were only available on the Job and Snapshot
+          objects themselves.
+
+        * systemd-journal-gatewayd gained SSL support.
+
+        * The various "environment" files, such as /etc/locale.conf
+          now support continuation lines with a backslash ("\") as
+          last character in the line, similar in style (but different)
+          to how this is supported in shells.
+
+        * For normal user processes the _SYSTEMD_USER_UNIT= field is
+          now implicitly appended to every log entry logged. systemctl
+          has been updated to filter by this field when operating on a
+          user systemd instance.
+
+        * nspawn will now implicitly add the CAP_AUDIT_WRITE and
+          CAP_AUDIT_CONTROL capabilities to the capabilities set for
+          the container. This makes it easier to boot unmodified
+          Fedora systems in a container, which however still requires
+          audit=0 to be passed on the kernel command line. Auditing in
+          kernel and userspace is unfortunately still too broken in
+          context of containers, hence we recommend compiling it out
+          of the kernel or using audit=0. Hopefully this will be fixed
+          one day for good in the kernel.
+
+        * nspawn gained the new --bind= and --bind-ro= parameters to
+          bind mount specific directories from the host into the
+          container.
+
+        * nspawn will now mount its own devpts file system instance
+          into the container, in order not to leak pty devices from
+          the host into the container.
+
+        * systemd will now read the firmware boot time performance
+          information from the EFI variables, if the used boot loader
+          supports this, and takes it into account for boot performance
+          analysis via "systemd-analyze". This is currently supported
+          only in conjunction with Gummiboot, but could be supported
+          by other boot loaders too. For details see:
+
+          http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
+
+        * A new generator has been added that automatically mounts the
+          EFI System Partition (ESP) to /boot, if that directory
+          exists, is empty, and no other file system has been
+          configured to be mounted there.
+
+        * logind will now send out PrepareForSleep(false) out
+          unconditionally, after coming back from suspend. This may be
+          used by applications as asynchronous notification for
+          system resume events.
+
+        * "systemctl unlock-sessions" has been added, that allows
+          unlocking the screens of all user sessions at once, similar
+          how "systemctl lock-sessions" already locked all users
+          sessions. This is backed by a new D-Bus call UnlockSessions().
+
+        * "loginctl seat-status" will now show the master device of a
+          seat. (i.e. the device of a seat that needs to be around for
+          the seat to be considered available, usually the graphics
+          card).
+
+        * tmpfiles gained a new "X" line type, that allows
+          configuration of files and directories (with wildcards) that
+          shall be excluded from automatic cleanup ("aging").
+
+        * udev default rules set the device node permissions now only
+          at "add" events, and do not change them any longer with a
+          later "change" event.
+
+        * The log messages for lid events and power/sleep keypresses
+          now carry a message ID.
+
+        * We now have a substantially larger unit test suite, but this
+          continues to be work in progress.
+
+        * udevadm hwdb gained a new --root= parameter to change the
+          root directory to operate relative to.
+
+        * logind will now issue a background sync() request to the kernel
+          early at shutdown, so that dirty buffers are flushed to disk early
+          instead of at the last moment, in order to optimize shutdown
+          times a little.
+
+        * A new bootctl tool has been added that is an interface for
+          certain boot loader operations. This is currently a preview
+          and is likely to be extended into a small mechanism daemon
+          like timedated, localed, hostnamed, and can be used by
+          graphical UIs to enumerate available boot options, and
+          request boot into firmware operations.
+
+        * systemd-bootchart has been relicensed to LGPLv2.1+ to match
+          the rest of the package. It also has been updated to work
+          correctly in initrds.
+
+        * Policykit previously has been runtime optional, and is now
+          also compile time optional via a configure switch.
+
+        * systemd-analyze has been reimplemented in C. Also "systemctl
+          dot" has moved into systemd-analyze.
+
+        * "systemctl status" with no further parameters will now print
+          the status of all active or failed units.
+
+        * Operations such as "systemctl start" can now be executed
+          with a new mode "--irreversible" which may be used to queue
+          operations that cannot accidentally be reversed by a later
+          job queuing. This is by default used to make shutdown
+          requests more robust.
+
+        * The Python API of systemd now gained a new module for
+          reading journal files.
+
+        * A new tool kernel-install has been added that can install
+          kernel images according to the Boot Loader Specification:
+
+          http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
+
+        * Boot time console output has been improved to provide
+          animated boot time output for hanging jobs.
+
+        * A new tool systemd-activate has been added which can be used
+          to test socket activation with, directly from the command
+          line. This should make it much easier to test and debug
+          socket activation in daemons.
+
+        * journalctl gained a new "--reverse" (or -r) option to show
+          journal output in reverse order (i.e. newest line first).
+
+        * journalctl gained a new "--pager-end" (or -e) option to jump
+          to immediately jump to the end of the journal in the
+          pager. This is only supported in conjunction with "less".
+
+        * journalctl gained a new "--user-unit=" option, that works
+          similar to "--unit=" but filters for user units rather than
+          system units.
+
+        * A number of unit files to ease adoption of systemd in
+          initrds has been added. This moves some minimal logic from
+          the various initrd implementations into systemd proper.
+
+        * The journal files are now owned by a new group
+          "systemd-journal", which exists specifically to allow access
+          to the journal, and nothing else. Previously, we used the
+          "adm" group for that, which however possibly covers more
+          than just journal/log file access. This new group is now
+          already used by systemd-journal-gatewayd to ensure this
+          daemon gets access to the journal files and as little else
+          as possible. Note that "make install" will also set FS ACLs
+          up for /var/log/journal to give "adm" and "wheel" read
+          access to it, in addition to "systemd-journal" which owns
+          the journal files. We recommend that packaging scripts also
+          add read access to "adm" + "wheel" to /var/log/journal, and
+          all existing/future journal files. To normal users and
+          administrators little changes, however packagers need to
+          ensure to create the "systemd-journal" system group at
+          package installation time.
+
+        * The systemd-journal-gatewayd now runs as unprivileged user
+          systemd-journal-gateway:systemd-journal-gateway. Packaging
+          scripts need to create these system user/group at
+          installation time.
+
+        * timedated now exposes a new boolean property CanNTP that
+          indicates whether a local NTP service is available or not.
+
+        * systemd-detect-virt will now also detect xen PVs
+
+        * The pstore file system is now mounted by default, if it is
+          available.
+
+        * In addition to the SELinux and IMA policies we will now also
+          load SMACK policies at early boot.
+
+        Contributions from: Adel Gadllah, Aleksander Morgado, Auke
+        Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
+        Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
+        Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
+        Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
+        Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
+        Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
+        Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
+        Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
+        Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
+        Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
+        Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
+        Gundersen, Umut Tezduyar, William Giokas, Zbigniew
+        Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
+
+CHANGES WITH 197:
+
+        * Timer units now support calendar time events in addition to
+          monotonic time events. That means you can now trigger a unit
+          based on a calendar time specification such as "Thu,Fri
+          2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
+          or fifth day of any month of the year 2013, given that it is
+          a thursday or friday. This brings timer event support
+          considerably closer to cron's capabilities. For details on
+          the supported calendar time specification language see
+          systemd.time(7).
+
+        * udev now supports a number of different naming policies for
+          network interfaces for predictable names, and a combination
+          of these policies is now the default. Please see this wiki
+          document for details:
+
+          http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
+
+        * Auke Kok's bootchart implementation has been added to the
+          systemd tree. It's an optional component that can graph the
+          boot in quite some detail. It's one of the best bootchart
+          implementations around and minimal in its code and
+          dependencies.
+
+        * nss-myhostname has been integrated into the systemd source
+          tree. nss-myhostname guarantees that the local hostname
+          always stays resolvable via NSS. It has been a weak
+          requirement of systemd-hostnamed since a long time, and
+          since its code is actually trivial we decided to just
+          include it in systemd's source tree. It can be turned off
+          with a configure switch.
+
+        * The read-ahead logic is now capable of properly detecting
+          whether a btrfs file system is on SSD or rotating media, in
+          order to optimize the read-ahead scheme. Previously, it was
+          only capable of detecting this on traditional file systems
+          such as ext4.
+
+        * In udev, additional device properties are now read from the
+          IAB in addition to the OUI database. Also, Bluetooth company
+          identities are attached to the devices as well.
+
+        * In service files %U may be used as specifier that is
+          replaced by the configured user name of the service.
+
+        * nspawn may now be invoked without a controlling TTY. This
+          makes it suitable for invocation as its own service. This
+          may be used to set up a simple containerized server system
+          using only core OS tools.
+
+        * systemd and nspawn can now accept socket file descriptors
+          when they are started for socket activation. This enables
+          implementation of socket activated nspawn
+          containers. i.e. think about autospawning an entire OS image
+          when the first SSH or HTTP connection is received. We expect
+          that similar functionality will also be added to libvirt-lxc
+          eventually.
+
+        * journalctl will now suppress ANSI color codes when
+          presenting log data.
+
+        * systemctl will no longer show control group information for
+          a unit if a the control group is empty anyway.
+
+        * logind can now automatically suspend/hibernate/shutdown the
+          system on idle.
+
+        * /etc/machine-info and hostnamed now also expose the chassis
+          type of the system. This can be used to determine whether
+          the local system is a laptop, desktop, handset or
+          tablet. This information may either be configured by the
+          user/vendor or is automatically determined from ACPI and DMI
+          information if possible.
+
+        * A number of PolicyKit actions are now bound together with
+          "imply" rules. This should simplify creating UIs because
+          many actions will now authenticate similar ones as well.
+
+        * Unit files learnt a new condition ConditionACPower= which
+          may be used to conditionalize a unit depending on whether an
+          AC power source is connected or not, of whether the system
+          is running on battery power.
+
+        * systemctl gained a new "is-failed" verb that may be used in
+          shell scripts and suchlike to check whether a specific unit
+          is in the "failed" state.
+
+        * The EnvironmentFile= setting in unit files now supports file
+          globbing, and can hence be used to easily read a number of
+          environment files at once.
+
+        * systemd will no longer detect and recognize specific
+          distributions. All distribution-specific #ifdeffery has been
+          removed, systemd is now fully generic and
+          distribution-agnostic. Effectively, not too much is lost as
+          a lot of the code is still accessible via explicit configure
+          switches. However, support for some distribution specific
+          legacy configuration file formats has been dropped. We
+          recommend distributions to simply adopt the configuration
+          files everybody else uses now and convert the old
+          configuration from packaging scripts. Most distributions
+          already did that. If that's not possible or desirable,
+          distributions are welcome to forward port the specific
+          pieces of code locally from the git history.
+
+        * When logging a message about a unit systemd will now always
+          log the unit name in the message meta data.
+
+        * localectl will now also discover system locale data that is
+          not stored in locale archives, but directly unpacked.
+
+        * logind will no longer unconditionally use framebuffer
+          devices as seat masters, i.e. as devices that are required
+          to be existing before a seat is considered preset. Instead,
+          it will now look for all devices that are tagged as
+          "seat-master" in udev. By default framebuffer devices will
+          be marked as such, but depending on local systems other
+          devices might be marked as well. This may be used to
+          integrate graphics cards using closed source drivers (such
+          as NVidia ones) more nicely into logind. Note however, that
+          we recommend using the open source NVidia drivers instead,
+          and no udev rules for the closed-source drivers will be
+          shipped from us upstream.
+
+        Contributions from: Adam Williamson, Alessandro Crismani, Auke
+        Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
+        Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
+        Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
+        Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
+        Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
+        Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
+        Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
+        Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
+        Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
+        Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
+        Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
+        Jędrzejewski-Szmek
+
 CHANGES WITH 196:
 
         * udev gained support for loading additional device properties
@@ -10,10 +412,11 @@ CHANGES WITH 196:
           the longer run this indexed database shall grow into
           becoming the one central database for non-essential
           userspace device metadata. Previously, data from the PCI/USB
-          database was only attached to the select devices, since the
+          database was only attached to select devices, since the
           lookup was a relatively expensive operation due to O(n) time
-          complexity. Since this is now O(log(n)), we decided to add
-          in this data for all devices where this is available, by
+          complexity (with n being the number of entries in the
+          database). Since this is now O(1), we decided to add in this
+          data for all devices where this is available, by
           default. Note that the indexed database needs to be rebuilt
           when new data files are installed. To achieve this you need
           to update your packaging scripts to invoke "udevadm hwdb