chiark / gitweb /
bus: enforce limits on all client influenced data objects
[elogind.git] / NEWS
diff --git a/NEWS b/NEWS
index c82e637d0ecc9bb80220ccf913c66b4436586a82..9fc5085b038881db09bdd75fd695fcaa0ffc9a3a 100644 (file)
--- a/NEWS
+++ b/NEWS
 systemd System and Service Manager
 
-CHANGES WITH:
-        * systemd-logingctl and systemd-journalctl have been renamed
-          to logingctl and journalctl to match systemctl.
+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
+          from an indexed database that is keyed by vendor/product IDs
+          and similar device identifiers. For the beginning this
+          "hwdb" is populated with data from the well-known PCI and
+          USB database, but also includes PNP, ACPI and OID data. In
+          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 select devices, since the
+          lookup was a relatively expensive operation due to O(n) time
+          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
+          --update" after installation of hwdb data files. For
+          RPM-based distributions we introduced the new
+          %udev_hwdb_update macro for this purpose.
+
+        * The Journal gained support for the "Message Catalog", an
+          indexed database to link up additional information with
+          journal entries. For further details please check:
+
+          http://www.freedesktop.org/wiki/Software/systemd/catalog
+
+          The indexed message catalog database also needs to be
+          rebuilt after installation of message catalog files. Use
+          "journalctl --update-catalog" for this. For RPM-based
+          distributions we introduced the %journal_catalog_update
+          macro for this purpose.
+
+        * The Python Journal bindings gained support for the standard
+          Python logging framework.
+
+        * The Journal API gained new functions for checking whether
+          the underlying file system of a journal file is capable of
+          properly reporting file change notifications, or whether
+          applications that want to reflect journal changes "live"
+          need to recheck journal files continously in appropriate
+          time intervals.
+
+        * It is now possible to set the "age" field for tmpfiles
+          entries to 0, indicating that files matching this entry
+          shall always be removed when the directories are cleaned up.
+
+        * coredumpctl gained a new "gdb" verb which invokes gdb
+          right-away on the selected coredump.
+
+        * There's now support for "hybrid sleep" on kernels that
+          support this, in addition to "suspend" and "hibernate". Use
+          "systemctl hybrid-sleep" to make use of this.
+
+        * logind's HandleSuspendKey= setting (and related settings)
+          now gained support for a new "lock" setting to simply
+          request the screen lock on all local sessions, instead of
+          actually executing a suspend or hibernation.
+
+        * systemd will now mount the EFI variables file system by
+          default.
+
+        * Socket units now gained support for configuration of the
+          SMACK security label.
+
+        * timedatectl will now output the time of the last and next
+          daylight saving change.
+
+        * We dropped support for various legacy and distro-specific
+          concepts, such as insserv, early-boot SysV services
+          (i.e. those for non-standard runlevels such as 'b' or 'S')
+          or ArchLinux /etc/rc.conf support. We recommend the
+          distributions who still need support this to either continue
+          to maintain the necessary patches downstream, or find a
+          different solution. (Talk to us if you have questions!)
+
+        * Various systemd components will now bypass PolicyKit checks
+          for root and otherwise handle properly if PolicyKit is not
+          found to be around. This should fix most issues for
+          PolicyKit-less systems. Quite frankly this should have been
+          this way since day one. It is absolutely our intention to
+          make systemd work fine on PolicyKit-less systems, and we
+          consider it a bug if something doesn't work as it should if
+          PolicyKit is not around.
+
+        * For embedded systems it is now possible to build udev and
+          systemd without blkid and/or kmod support.
+
+        * "systemctl switch-root" is now capable of switching root
+          more than once. I.e. in addition to transitions from the
+          initrd to the host OS it is now possible to transition to
+          further OS images from the host. This is useful to implement
+          offline updating tools.
+
+        * Various other additions have been made to the RPM macros
+          shipped with systemd. Use %udev_rules_update() after
+          installing new udev rules files. %_udevhwdbdir,
+          %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
+          %_sysctldir are now available which resolve to the right
+          directories for packages to place various data files in.
+
+        * journalctl gained the new --full switch (in addition to
+          --all, to disable ellipsation for long messages.
+
+        Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
+        Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
+        Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
+        Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
+        Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
+        Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
+        Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
+        Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
+        Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
+
+CHANGES WITH 195:
+
+        * journalctl gained new --since= and --until= switches to
+          filter by time. It also now supports nice filtering for
+          units via --unit=/-u.
+
+        * Type=oneshot services may use ExecReload= and do the
+          right thing.
+
+        * The journal daemon now supports time-based rotation and
+          vacuuming, in addition to the usual disk-space based
+          rotation.
+
+        * The journal will now index the available field values for
+          each field name. This enables clients to show pretty drop
+          downs of available match values when filtering. The bash
+          completion of journalctl has been updated
+          accordingly. journalctl gained a new switch -F to list all
+          values a certain field takes in the journal database.
+
+        * More service events are now written as structured messages
+          to the journal, and made recognizable via message IDs.
+
+        * The timedated, localed and hostnamed mini-services which
+          previously only provided support for changing time, locale
+          and hostname settings from graphical DEs such as GNOME now
+          also have a minimal (but very useful) text-based client
+          utility each. This is probably the nicest way to changing
+          these settings from the command line now, especially since
+          it lists available options and is fully integrated with bash
+          completion.
+
+        * There's now a new tool "systemd-coredumpctl" to list and
+          extract coredumps from the journal.
+
+        * We now install a README each in /var/log/ and
+          /etc/rc.d/init.d explaining where the system logs and init
+          scripts went. This hopefully should help folks who go to
+          that dirs and look into the otherwise now empty void and
+          scratch their heads.
+
+        * When user-services are invoked (by systemd --user) the
+          $MANAGERPID env var is set to the PID of systemd.
+
+        * SIGRTMIN+24 when sent to a --user instance will now result
+          in immediate termination of systemd.
+
+        * gatewayd received numerous feature additions such as a
+          "follow" mode, for live syncing and filtering.
+
+        * browse.html now allows filtering and showing detailed
+          information on specific entries. Keyboard navigation and
+          mouse screen support has been added.
+
+        * gatewayd/journalctl now supports HTML5/JSON
+          Server-Sent-Events as output.
+
+        * The SysV init script compatibility logic will now
+          heuristically determine whether a script supports the
+          "reload" verb, and only then make this available as
+          "systemctl reload".
+
+        * "systemctl status --follow" has been removed, use "journalctl
+          -u" instead.
+
+        * journald.conf's RuntimeMinSize=, PersistentMinSize= settings
+          have been removed since they are hardly useful to be
+          configured.
+
+        * And I'd like to take the opportunity to specifically mention
+          Zbigniew for his great contributions. Zbigniew, you rock!
+
+        Contributions from: Andrew Eikum, Christian Hesse, Colin
+        Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
+        Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
+        Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
+        Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
+        Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
+        Jędrzejewski-Szmek, Сковорода Никита Андреевич
+
+CHANGES WITH 194:
+
+        * If /etc/vconsole.conf is non-existent or empty we will no
+          longer load any console font or key map at boot by
+          default. Instead the kernel defaults will be left
+          intact. This is definitely the right thing to do, as no
+          configuration should mean no configuration, and hard-coding
+          font names that are different on all archs is probably a bad
+          idea. Also, the kernel default key map and font should be
+          good enough for most cases anyway, and mostly identical to
+          the userspace fonts/key maps we previously overloaded them
+          with. If distributions want to continue to default to a
+          non-kernel font or key map they should ship a default
+          /etc/vconsole.conf with the appropriate contents.
+
+        Contributions from: Colin Walters, Daniel J Walsh, Dave
+        Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
+        Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
+
+CHANGES WITH 193:
+
+        * journalctl gained a new --cursor= switch to show entries
+          starting from the specified location in the journal.
+
+        * We now enforce a size limit on journal entry fields exported
+          with "-o json" in journalctl. Fields larger than 4K will be
+          assigned null. This can be turned off with --all.
+
+        * An (optional) journal gateway daemon is now available as
+          "systemd-journal-gatewayd.service". This service provides
+          access to the journal via HTTP and JSON. This functionality
+          will be used to implement live log synchronization in both
+          pull and push modes, but has various other users too, such
+          as easy log access for debugging of embedded devices. Right
+          now it is already useful to retrieve the journal via HTTP:
+
+          # systemctl start systemd-journal-gatewayd.service
+          # wget http://localhost:19531/entries
+
+          This will download the journal contents in a
+          /var/log/messages compatible format. The same as JSON:
+
+          # curl -H"Accept: application/json" http://localhost:19531/entries
+
+          This service is also accessible via a web browser where a
+          single static HTML5 app is served that uses the JSON logic
+          to enable the user to do some basic browsing of the
+          journal. This will be extended later on. Here's an example
+          screenshot of this app in its current state:
+
+          http://0pointer.de/public/journal-gatewayd
+
+        Contributions from: Kay Sievers, Lennart Poettering, Robert
+        Milasan, Tom Gundersen
+
+CHANGES WITH 192:
+
+        * The bash completion logic is now available for journalctl
+          too.
+
+        * We don't mount the "cpuset" controller anymore together with
+          "cpu" and "cpuacct", as "cpuset" groups generally cannot be
+          started if no parameters are assigned to it. "cpuset" hence
+          broke code that assumed it it could create "cpu" groups and
+          just start them.
+
+        * journalctl -f will now subscribe to terminal size changes,
+          and line break accordingly.
+
+        Contributions from: Dave Reisner, Kay Sievers, Lennart
+        Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
+
+CHANGES WITH 191:
+
+        * nspawn will now create a symlink /etc/localtime in the
+          container environment, copying the host's timezone
+          setting. Previously this has been done via a bind mount, but
+          since symlinks cannot be bind mounted this has now been
+          changed to create/update the appropriate symlink.
+
+        * journalctl -n's line number argument is now optional, and
+          will default to 10 if omitted.
+
+        * journald will now log the maximum size the journal files may
+          take up on disk. This is particularly useful if the default
+          built-in logic of determining this parameter from the file
+          system size is used. Use "systemctl status
+          systemd-journald.service" to see this information.
+
+        * The multi-seat X wrapper tool has been stripped down. As X
+          is now capable of enumerating graphics devices via udev in a
+          seat-aware way the wrapper is not strictly necessary
+          anymore. A stripped down temporary stop-gap is still shipped
+          until the upstream display managers have been updated to
+          fully support the new X logic. Expect this wrapper to be
+          removed entirely in one of the next releases.
+
+        * HandleSleepKey= in logind.conf has been split up into
+          HandleSuspendKey= and HandleHibernateKey=. The old setting
+          is not available anymore. X11 and the kernel are
+          distuingishing between these keys and we should too. This
+          also means the inhibition lock for these keys has been split
+          into two.
+
+        Contributions from: Dave Airlie, Eelco Dolstra, Lennart
+        Poettering, Lukas Nykryn, Václav Pavlín
+
+CHANGES WITH 190:
+
+        * Whenever a unit changes state we'll now log this to the
+          journal and show along the unit's own log output in
+          "systemctl status".
+
+        * ConditionPathIsMountPoint= can now properly detect bind
+          mount points too. (Previously, a bind mount of one file
+          system to another place in the same file system could not be
+          detected as mount, since they shared struct stat's st_dev
+          field.)
+
+        * We will now mount the cgroup controllers cpu, cpuacct,
+          cpuset and the controllers net_cls, net_prio together by
+          default.
+
+        * nspawn containers will now have a virtualized boot
+          ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
+          over with a randomized ID at container initialization). This
+          has the effect of making "journalctl -b" do the right thing
+          in a container.
+
+        * The JSON output journal serialization has been updated not
+          to generate "endless" list objects anymore, but rather one
+          JSON object per line. This is more in line how most JSON
+          parsers expect JSON objects. The new output mode
+          "json-pretty" has been added to provide similar output, but
+          neatly aligned for readability by humans.
+
+        * We dropped all explicit sync() invocations in the shutdown
+          code. The kernel does this implicitly anyway in the kernel
+          reboot() syscall. halt(8)'s -n option is now a compatibility
+          no-op.
+
+        * We now support virtualized reboot() in containers, as
+          supported by newer kernels. We will fall back to exit() if
+          CAP_SYS_REBOOT is not available to the container. Also,
+          nspawn makes use of this now and will actually reboot the
+          container if the containerized OS asks for that.
+
+        * journalctl will only show local log output by default
+          now. Use --merge (-m) to show remote log output, too.
+
+        * libsystemd-journal gained the new sd_journal_get_usage()
+          call to determine the current disk usage of all journal
+          files. This is exposed in the new "journalctl --disk-usage"
+          command.
+
+        * journald gained a new configuration setting SplitMode= in
+          journald.conf which may be used to control how user journals
+          are split off. See journald.conf(5) for details.
+
+        * A new condition type ConditionFileNotEmpty= has been added.
+
+        * tmpfiles' "w" lines now support file globbing, to write
+          multiple files at once.
+
+        * We added Python bindings for the journal submission
+          APIs. More Python APIs for a number of selected APIs will
+          likely follow. Note that we intend to add native bindings
+          only for the Python language, as we consider it common
+          enough to deserve bindings shipped within systemd. There are
+          various projects outside of systemd that provide bindings
+          for languages such as PHP or Lua.
+
+        * Many conditions will now resolve specifiers such as %i. In
+          addition, PathChanged= and related directives of .path units
+          now support specifiers as well.
+
+        * There's now a new RPM macro definition for the system preset
+          dir: %_presetdir.
+
+        * journald will now warn if it can't foward a message to the
+          syslog daemon because it's socket is full.
+
+        * timedated will no longer write or process /etc/timezone,
+          except on Debian. As we do not support late mounted /usr
+          anymore /etc/localtime always being a symlink is now safe,
+          and hence the information in /etc/timezone is not necessary
+          anymore.
+
+        * logind will now always reserve one VT for a text getty (VT6
+          by default). Previously if more than 6 X sessions where
+          started they took up all the VTs with auto-spawned gettys,
+          so that no text gettys were available anymore.
+
+        * udev will now automatically inform the btrfs kernel logic
+          about btrfs RAID components showing up. This should make
+          simple hotplug based btrfs RAID assembly work.
+
+        * PID 1 will now increase its RLIMIT_NOFILE to 64K by default
+          (but not for its children which will stay at the kernel
+          default). This should allow setups with a lot more listening
+          sockets.
+
+        * systemd will now always pass the configured timezone to the
+          kernel at boot. timedated will do the same when the timezone
+          is changed.
+
+        * logind's inhibition logic has been updated. By default,
+          logind will now handle the lid switch, the power and sleep
+          keys all the time, even in graphical sessions. If DEs want
+          to handle these events on their own they should take the new
+          handle-power-key, handle-sleep-key and handle-lid-switch
+          inhibitors during their runtime. A simple way to achiveve
+          that is to invoke the DE wrapped in an invocation of:
+
+          systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
+
+        * Access to unit operations is now checked via SELinux taking
+          the unit file label and client process label into account.
+
+        * systemd will now notify the administrator in the journal
+          when he over-mounts a non-empty directory.
+
+        * There are new specifiers that are resolved in unit files,
+          for the host name (%H), the machine ID (%m) and the boot ID
+          (%b).
+
+        Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
+        Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
+        Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
+        Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
+        Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
+        Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
+        Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
+
+CHANGES WITH 189:
+
+        * Support for reading structured kernel messages from
+          /dev/kmsg has now been added and is enabled by default.
+
+        * Support for reading kernel messages from /proc/kmsg has now
+          been removed. If you want kernel messages in the journal
+          make sure to run a recent kernel (>= 3.5) that supports
+          reading structured messages from /dev/kmsg (see
+          above). /proc/kmsg is now exclusive property of classic
+          syslog daemons again.
+
+        * The libudev API gained the new
+          udev_device_new_from_device_id() call.
+
+        * The logic for file system namespace (ReadOnlyDirectory=,
+          ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
+          require pivot_root() anymore. This means fewer temporary
+          directories are created below /tmp for this feature.
+
+        * nspawn containers will now see and receive all submounts
+          made on the host OS below the root file system of the
+          container.
+
+        * Forward Secure Sealing is now supported for Journal files,
+          which provide cryptographical sealing of journal files so
+          that attackers cannot alter log history anymore without this
+          being detectable. Lennart will soon post a blog story about
+          this explaining it in more detail.
+
+        * There are two new service settings RestartPreventExitStatus=
+          and SuccessExitStatus= which allow configuration of exit
+          status (exit code or signal) which will be excepted from the
+          restart logic, resp. consider successful.
+
+        * journalctl gained the new --verify switch that can be used
+          to check the integrity of the structure of journal files and
+          (if Forward Secure Sealing is enabled) the contents of
+          journal files.
+
+        * nspawn containers will now be run with /dev/stdin, /dev/fd/
+          and similar symlinks pre-created. This makes running shells
+          as container init process a lot more fun.
+
+        * The fstab support can now handle PARTUUID= and PARTLABEL=
+          entries.
+
+        * A new ConditionHost= condition has been added to match
+          against the hostname (with globs) and machine ID. This is
+          useful for clusters where a single OS image is used to
+          provision a large number of hosts which shall run slightly
+          different sets of services.
+
+        * Services which hit the restart limit will now be placed in a
+          failure state.
+
+        Contributions from: Bertram Poettering, Dave Reisner, Huang
+        Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
+        Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
+
+CHANGES WITH 188:
+
+        * When running in --user mode systemd will now become a
+          subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
+          tree a lot more organized.
+
+        * A new PartOf= unit dependency type has been introduced that
+          may be used to group services in a natural way.
+
+        * "systemctl enable" may now be used to enable instances of
+          services.
+
+        * journalctl now prints error log levels in red, and
+          warning/notice log levels in bright white. It also supports
+          filtering by log level now.
+
+        * cgtop gained a new -n switch (similar to top), to configure
+          the maximum number of iterations to run for. It also gained
+          -b, to run in batch mode (accepting no input).
+
+        * The suffix ".service" may now be ommited on most systemctl
+          command lines involving service unit names.
+
+        * There's a new bus call in logind to lock all sessions, as
+          well as a loginctl verb for it "lock-sessions".
+
+        * libsystemd-logind.so gained a new call sd_journal_perror()
+          that works similar to libc perror() but logs to the journal
+          and encodes structured information about the error number.
+
+        * /etc/crypttab entries now understand the new keyfile-size=
+          option.
+
+        * shutdown(8) now can send a (configurable) wall message when
+          a shutdown is cancelled.
+
+        * The mount propagation mode for the root file system will now
+          default to "shared", which is useful to make containers work
+          nicely out-of-the-box so that they receive new mounts from
+          the host. This can be undone locally by running "mount
+          --make-rprivate /" if needed.
+
+        * The prefdm.service file has been removed. Distributions
+          should maintain this unit downstream if they intend to keep
+          it around. However, we recommend writing normal unit files
+          for display managers instead.
+
+        * Since systemd is a crucial part of the OS we will now
+          default to a number of compiler switches that improve
+          security (hardening) such as read-only relocations, stack
+          protection, and suchlike.
+
+        * The TimeoutSec= setting for services is now split into
+          TimeoutStartSec= and TimeoutStopSec= to allow configuration
+          of individual time outs for the start and the stop phase of
+          the service.
+
+        Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
+        Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
+        Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
+        Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
+        Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
+        Gundersen, Zbigniew Jędrzejewski-Szmek
+
+CHANGES WITH 187:
+
+        * The journal and id128 C APIs are now fully documented as man
+          pages.
+
+        * Extra safety checks have been added when transitioning from
+          the initial RAM disk to the main system to avoid accidental
+          data loss.
+
+        * /etc/crypttab entries now understand the new keyfile-offset=
+          option.
+
+        * systemctl -t can now be used to filter by unit load state.
+
+        * The journal C API gained the new sd_journal_wait() call to
+          make writing synchronous journal clients easier.
+
+        * journalctl gained the new -D switch to show journals from a
+          specific directory.
+
+        * journalctl now displays a special marker between log
+          messages of two different boots.
+
+        * The journal is now explicitly flushed to /var via a service
+          systemd-journal-flush.service, rather than implicitly simply
+          by seeing /var/log/journal to be writable.
+
+        * journalctl (and the journal C APIs) can now match for much
+          more complex expressions, with alternatives and
+          disjunctions.
+
+        * When transitioning from the initial RAM disk to the main
+          system we will now kill all processes in a killing spree to
+          ensure no processes stay around by accident.
+
+        * Three new specifiers may be used in unit files: %u, %h, %s
+          resolve to the user name, user home directory resp. user
+          shell. This is useful for running systemd user instances.
+
+        * We now automatically rotate journal files if their data
+          object hash table gets a fill level > 75%. We also size the
+          hash table based on the configured maximum file size. This
+          together should lower hash collisions drastically and thus
+          speed things up a bit.
+
+        * journalctl gained the new "--header" switch to introspect
+          header data of journal files.
+
+        * A new setting SystemCallFilters= has been added to services
+          which may be used to apply blacklists or whitelists to
+          system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
+
+        * nspawn gained a new --link-journal= switch (and quicker: -j)
+          to link the container journal with the host. This makes it
+          very easy to centralize log viewing on the host for all
+          guests while still keeping the journal files separated.
+
+        * Many bugfixes and optimizations
+
+        Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
+        Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
+        Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
+        Jędrzejewski-Szmek
+
+CHANGES WITH 186:
+
+        * Several tools now understand kernel command line arguments,
+          which are only read when run in an initial RAM disk. They
+          usually follow closely their normal counterparts, but are
+          prefixed with rd.
+
+        * There's a new tool to analyze the readahead files that are
+          automatically generated at boot. Use:
+
+          /usr/lib/systemd/systemd-readahead analyze /.readahead
+
+        * We now provide an early debug shell on tty9 if this enabled. Use:
+
+          systemctl enable debug-shell.service
+
+        * All plymouth related units have been moved into the Plymouth
+          package. Please make sure to upgrade your Plymouth version
+          as well.
+
+        * systemd-tmpfiles now supports getting passed the basename of
+          a configuration file only, in which case it will look for it
+          in all appropriate directories automatically.
+
+        * udevadm info now takes a /dev or /sys path as argument, and
+          does the right thing. Example:
+
+          udevadm info /dev/sda
+          udevadm info /sys/class/block/sda
+
+        * systemctl now prints a warning if a unit is stopped but a
+          unit that might trigger it continues to run. Example: a
+          service is stopped but the socket that activates it is left
+          running.
+
+        * "systemctl status" will now mention if the log output was
+          shortened due to rotation since a service has been started.
+
+        * The journal API now exposes functions to determine the
+          "cutoff" times due to rotation.
+
+        * journald now understands SIGUSR1 and SIGUSR2 for triggering
+          immediately flushing of runtime logs to /var if possible,
+          resp. for triggering immediate rotation of the journal
+          files.
+
+        * It is now considered an error if a service is attempted to
+          be stopped that is not loaded.
+
+        * XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
+
+        * systemd-analyze now supports Python 3
+
+        * tmpfiles now supports cleaning up directories via aging
+          where the first level dirs are always kept around but
+          directories beneath it automatically aged. This is enabled
+          by prefixing the age field with '~'.
+
+        * Seat objects now expose CanGraphical, CanTTY properties
+          which is required to deal with very fast bootups where the
+          display manager might be running before the graphics drivers
+          completed initialization.
+
+        * Seat objects now expose a State property.
+
+        * We now include RPM macros for service enabling/disabling
+          based on the preset logic. We recommend RPM based
+          distributions to make use of these macros if possible. This
+          makes it simpler to reuse RPM spec files across
+          distributions.
+
+        * We now make sure that the collected systemd unit name is
+          always valid when services log to the journal via
+          STDOUT/STDERR.
+
+        * There's a new man page kernel-command-line(7) detailing all
+          command line options we understand.
+
+        * The fstab generator may now be disabled at boot by passing
+          fstab=0 on the kernel command line.
+
+        * A new kernel command line option modules-load= is now understood
+          to load a specific kernel module statically, early at boot.
+
+        * Unit names specified on the systemctl command line are now
+          automatically escaped as needed. Also, if file system or
+          device paths are specified they are automatically turned
+          into the appropriate mount or device unit names. Example:
+
+          systemctl status /home
+          systemctl status /dev/sda
+
+        * The SysVConsole= configuration option has been removed from
+          system.conf parsing.
+
+        * The SysV search path is no longer exported on the D-Bus
+          Manager object.
+
+        * The Names= option is been removed from unit file parsing.
+
+        * There's a new man page bootup(7) detailing the boot process.
+
+        * Every unit and every generator we ship with systemd now
+          comes with full documentation. The self-explanatory boot is
+          complete.
+
+        * A couple of services gained "systemd-" prefixes in their
+          name if they wrap systemd code, rather than only external
+          code. Among them fsck@.service which is now
+          systemd-fsck@.service.
+
+        * The HaveWatchdog property has been removed from the D-Bus
+          Manager object.
+
+        * systemd.confirm_spawn= on the kernel command line should now
+          work sensibly.
+
+        * There's a new man page crypttab(5) which details all options
+          we actually understand.
+
+        * systemd-nspawn gained a new --capability= switch to pass
+          additional capabilities to the container.
+
+        * timedated will now read known NTP implementation unit names
+          from /usr/lib/systemd/ntp-units.d/*.list,
+          systemd-timedated-ntp.target has been removed.
+
+        * journalctl gained a new switch "-b" that lists log data of
+          the current boot only.
+
+        * The notify socket is in the abstract namespace again, in
+          order to support daemons which chroot() at start-up.
+
+        * There is a new Storage= configuration option for journald
+          which allows configuration of where log data should go. This
+          also provides a way to disable journal logging entirely, so
+          that data collected is only forwarded to the console, the
+          kernel log buffer or another syslog implementation.
+
+        * Many bugfixes and optimizations
+
+        Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
+        David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
+        Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
+        Shawn Landden, Tom Gundersen
+
+CHANGES WITH 185:
+
+        * "systemctl help <unit>" now shows the man page if one is
+          available.
+
+        * Several new man pages have been added.
+
+        * MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
+          MaxLevelConsole= can now be specified in
+          journald.conf. These options allow reducing the amount of
+          data stored on disk or forwarded by the log level.
+
+        * TimerSlackNSec= can now be specified in system.conf for
+          PID1. This allows system-wide power savings.
+
+        Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
+        Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
+        Matthias Clasen
+
+CHANGES WITH 184:
+
+        * logind is now capable of (optionally) handling power and
+          sleep keys as well as the lid switch.
+
+        * journalctl now understands the syntax "journalctl
+          /usr/bin/avahi-daemon" to get all log output of a specific
+          daemon.
+
+        * CapabilityBoundingSet= in system.conf now also influences
+          the capability bound set of usermode helpers of the kernel.
+
+        Contributions from: Daniel Drake, Daniel J. Walsh, Gert
+        Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
+        Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
+        Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
+
+CHANGES WITH 183:
+
+        * Note that we skipped 139 releases here in order to set the
+          new version to something that is greater than both udev's
+          and systemd's most recent version number.
+
+        * udev: all udev sources are merged into the systemd source tree now.
+          All future udev development will happen in the systemd tree. It
+          is still fully supported to use the udev daemon and tools without
+          systemd running, like in initramfs or other init systems. Building
+          udev though, will require the *build* of the systemd tree, but
+          udev can be properly *run* without systemd.
+
+        * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
+          should be used to create dead device nodes as workarounds for broken
+          subsystems.
+
+        * udev: RUN+="socket:..."  and udev_monitor_new_from_socket() is
+          no longer supported. udev_monitor_new_from_netlink() needs to be
+          used to subscribe to events.
+
+        * udev: when udevd is started by systemd, processes which are left
+          behind by forking them off of udev rules, are unconditionally cleaned
+          up and killed now after the event handling has finished. Services or
+          daemons must be started as systemd services. Services can be
+          pulled-in by udev to get started, but they can no longer be directly
+          forked by udev rules.
+
+        * udev: the daemon binary is called systemd-udevd now and installed
+          in /usr/lib/systemd/. Standalone builds or non-systemd systems need
+          to adapt to that, create symlink, or rename the binary after building
+          it.
+
+        * libudev no longer provides these symbols:
+            udev_monitor_from_socket()
+            udev_queue_get_failed_list_entry()
+            udev_get_{dev,sys,run}_path()
+          The versions number was bumped and symbol versioning introduced.
+
+        * systemd-loginctl and systemd-journalctl have been renamed
+          to loginctl and journalctl to match systemctl.
 
         * The config files: /etc/systemd/systemd-logind.conf and
           /etc/systemd/systemd-journald.conf have been renamed to
           logind.conf and journald.conf. Package updates should rename
           the files to the new names on upgrade.
 
+        * For almost all files the license is now LGPL2.1+, changed
+          from the previous GPL2.0+. Exceptions are some minor stuff
+          of udev (which will be changed to LGPL2.1 eventually, too),
+          and the MIT licensed sd-daemon.[ch] library that is suitable
+          to be used as drop-in files.
+
+        * systemd and logind now handle system sleep states, in
+          particular suspending and hibernating.
+
+        * logind now implements a sleep/shutdown/idle inhibiting logic
+          suitable for a variety of uses. Soonishly Lennart will blog
+          about this in more detail.
+
+        * var-run.mount and var-lock.mount are no longer provided
+          (which prevously bind mounted these directories to their new
+          places). Distributions which have not converted these
+          directories to symlinks should consider stealing these files
+          from git history and add them downstream.
+
+        * We introduced the Documentation= field for units and added
+          this to all our shipped units. This is useful to make it
+          easier to explore the boot and the purpose of the various
+          units.
+
+        * All smaller setup units (such as
+          systemd-vconsole-setup.service) now detect properly if they
+          are run in a container and are skipped when
+          appropriate. This guarantees an entirely noise-free boot in
+          Linux container environments such as systemd-nspawn.
+
+        * A framework for implementing offline system updates is now
+          integrated, for details see:
+          http://freedesktop.org/wiki/Software/systemd/SystemUpdates
+
+        * A new service type Type=idle is available now which helps us
+          avoiding ugly interleaving of getty output and boot status
+          messages.
+
+        * There's now a system-wide CapabilityBoundingSet= option to
+          globally reduce the set of capabilities for the
+          system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
+          CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
+          even CAP_NET_ADMIN system-wide for secure systems.
+
+        * There are now system-wide DefaultLimitXXX= options to
+          globally change the defaults of the various resource limits
+          for all units started by PID 1.
+
+        * Harald Hoyer's systemd test suite has been integrated into
+          systemd which allows easy testing of systemd builds in qemu
+          and nspawn. (This is really awesome! Ask us for details!)
+
+        * The fstab parser is now implemented as generator, not inside
+          of PID 1 anymore.
+
+        * systemctl will now warn you if .mount units generated from
+          /etc/fstab are out of date due to changes in fstab that
+          haven't been read by systemd yet.
+
+        * systemd is now suitable for usage in initrds. Dracut has
+          already been updated to make use of this. With this in place
+          initrds get a slight bit faster but primarily are much
+          easier to introspect and debug since "systemctl status" in
+          the host system can be used to introspect initrd services,
+          and the journal from the initrd is kept around too.
+
+        * systemd-delta has been added, a tool to explore differences
+          between user/admin configuration and vendor defaults.
+
+        * PrivateTmp= now affects both /tmp and /var/tmp.
+
+        * Boot time status messages are now much prettier and feature
+          proper english language. Booting up systemd has never been
+          so sexy.
+
+        * Read-ahead pack files now include the inode number of all
+          files to pre-cache. When the inode changes the pre-caching
+          is not attempted. This should be nicer to deal with updated
+          packages which might result in changes of read-ahead
+          patterns.
+
+        * We now temporaritly lower the kernel's read_ahead_kb variable
+          when collecting read-ahead data to ensure the kernel's
+          built-in read-ahead does not add noise to our measurements
+          of necessary blocks to pre-cache.
+
+        * There's now RequiresMountsFor= to add automatic dependencies
+          for all mounts necessary for a specific file system path.
+
+        * MountAuto= and SwapAuto= have been removed from
+          system.conf. Mounting file systems at boot has to take place
+          in systemd now.
+
+        * nspawn now learned a new switch --uuid= to set the machine
+          ID on the command line.
+
+        * nspawn now learned the -b switch to automatically search
+          for an init system.
+
+        * vt102 is now the default TERM for serial TTYs, upgraded from
+          vt100.
+
+        * systemd-logind now works on VT-less systems.
+
+        * The build tree has been reorganized. The individual
+          components now have directories of their own.
+
+        * A new condition type ConditionPathIsReadWrite= is now available.
+
+        * nspawn learned the new -C switch to create cgroups for the
+          container in other hierarchies.
+
+        * We now have support for hardware watchdogs, configurable in
+          system.conf.
+
+        * The scheduled shutdown logic now has a public API.
+
+        * We now mount /tmp as tmpfs by default, but this can be
+          masked and /etc/fstab can override it.
+
+        * Since udisks doesn't make use of /media anymore we are not
+          mounting a tmpfs on it anymore.
+
+        * journalctl gained a new --local switch to only interleave
+          locally generated journal files.
+
+        * We can now load the IMA policy at boot automatically.
+
+        * The GTK tools have been split off into a systemd-ui.
+
+        Contributions from: Andreas Schwab, Auke Kok, Ayan George,
+        Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
+        Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
+        Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
+        Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
+        Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
+        A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
+        Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
+        Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
+        Gundersen
+
 CHANGES WITH 44:
+
         * This is mostly a bugfix release
 
         * Support optional initialization of the machine ID from the
@@ -55,6 +1436,7 @@ CHANGES WITH 44:
         Reding
 
 CHANGES WITH 43:
+
         * This is mostly a bugfix release
 
         * systems lacking /etc/os-release  are no longer supported.
@@ -68,6 +1450,7 @@ CHANGES WITH 43:
         Biebl
 
 CHANGES WITH 42:
+
         * This is an important bugfix release for v41.
 
         * Building man pages is now optional which should be useful
@@ -89,6 +1472,7 @@ CHANGES WITH 42:
         Schmidt, Michał Górny, Piotr Drąg
 
 CHANGES WITH 41:
+
         * The systemd binary is installed /usr/lib/systemd/systemd now;
           An existing /sbin/init symlink needs to be adapted with the
           package update.
@@ -116,6 +1500,7 @@ CHANGES WITH 41:
         William Douglas
 
 CHANGES WITH 40:
+
         * This is mostly a bugfix release
 
         * We now expose the reason why a service failed in the
@@ -134,6 +1519,7 @@ CHANGES WITH 40:
         Mike Kazantsev, Ray Strode
 
 CHANGES WITH 39:
+
         * This is mostly a test release, but incorporates many
           bugfixes.
 
@@ -191,6 +1577,7 @@ CHANGES WITH 39:
         Poettering, Michal Schmidt
 
 CHANGES WITH 38:
+
         * This is mostly a test release, but incorporates many
           bugfixes.
 
@@ -272,7 +1659,7 @@ CHANGES WITH 38:
         * New PropagateReloadTo=/PropagateReloadFrom= options to bind
           reloading of units together.
 
-        Contributions from: Bill Nottingham, Daniel Walsh, Dave
+        Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
         Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
         Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
         Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef