uselessd System and Service Manager

Version 8 (2014-11-16)
----------------------
   *  A new feature has been introduced - hard job failures for uselessd
      conditions. By default, if a Condition*= directive in a systemd
      or uselessd service is false, the job is skipped. On the other hand,
      if the file /run/systemd/condition-job-failure exists with a text
      string of Y, T, yes or true, all false conditions will lead to a
      job failure being logged for units on a global level. This is
      similar to systemd-git's (presumably will be in 218) Assert*=
      options, except implemented as a global and volatile flag in the
      /run directory. The default tmpfiles.d configuration creates the
      file with a value of N.

   *  The default tmpfiles.d configuration now respects the legacy
      /forcefsck, /fastboot and /forcequotacheck files and will not
      interfere with them existing.

   *  systemd-sleep has been replaced with a shell script called
      uselessd-sleep. Much simpler, it is currently limited - it
      only executes the /usr/lib/systemd/system-sleep directory once
      and expects shell scripts with an *.sh extension only. In addition,
      it requires an explicitly configured /etc/systemd/sleep.conf file.
      As a result, we provide a stock one. Relevant units have been
      updated to use uselessd-sleep.

   *  systemd-shutdown and systemd-shutdownd will no longer be built if
      --disable-initd is passed to the configure script.

   *  A new configure switch has been introduced: --disable-update-utmp,
      for stripping out the systemd-update-utmp tool from the build.

   *  main-no-init has been significantly simplified. In keeping with
      its purpose as a stage 2 process manager/supervisor, it no longer
      handles things irrelevant to it: /proc/cmdline parsing, crash
      shells, crash VTs, watchdog timers, switch-root handling, daemon
      reexec/keexec/shutdown/reboot/halt/poweroff. In addition, it
      no longer dumps core by default and the --user option has been
      removed, due to main-no-init's intended usage being as a global
      system instance.

      System generator directories are no longer managed and the
      SIGINT/SIGTERM signals are interpreted as a MANAGER_EXIT.

   *  Some updates to systemd-tmpfiles, such as following symlinks
      in lines with w commands and parsing prefixes before suffixes in
      e.g. directories. No major post-208 features as of yet, however.

   *  A few new test cases have been imported from upstream systemd
      with some modifications: test-async, test-set and test-ratelimit.
      More cases for test-util have been added, as well.

   *  Miscellaneous bugfixes and source refactoring.

Version 7 (2014-11-07)
----------------------
   *  A new program has been introduced - uselessd-cgls, which
      is a lightweight alternative to systemd-cgls written in
      Bourne shell. It can be configured out of the build with
      --disable-cgls and comes with a manpage.

   *  Two other new configure switches have been introduced:
      --disable-remount-fs and --disable-sleep, to, respectively
      strip out the systemd-remount-fs tool for rescanning /etc/fstab,
      and the systemd-sleep tool for controlling sleep mode from sysfs
      plus applying user configuration (as well as all respective units
      and manpages).

   *  A wide variety of bugfixes.

Version 6 (2014-10-29)
----------------------
   *  Three new configure options have been added:

      --enable-mudflap for building with GCC Mudflap compiler
      instrumentation on compilers that support it.

      --disable-plymouth for turning off Plymouth event integration
      in units and tty-ask-password-agent.

      --disable-password-agents to strip the systemd-ask-password,
      systemd-reply-password and systemd-tty-ask-password-agent tools
      out of the build. Note that the path units will still be shipped
      if HAVE_SYSV_COMPAT evaluates to true.

   *  The KillMode=mixed unit option for sending SIGTERM to the main
      process of the control group and then a SIGKILL to all the
      remaining ones in the same group, has been backported. The exact
      kill signals are configurable, see man 5 systemd.kill for details.

   *  systemctl has gained an --avoid-bus option which will head
      straight for the /run/systemd/private IPC socket and not do
      any system bus checks, where such a condition is allowed.
      This is a small preliminary step for an intended future
      overhaul of the IPC system.

   *  Some dead code has been removed, shutdownd will no longer
      run an unmount in containers (instead relying on the kernel's
      namespace destructors), main-no-init no longer checks for
      Plymouth running.

Version 5 (2014-10-22)
----------------------
   *  Preliminary experimental support for running a system-wide
      instance of uselessd without being PID1 (init) has been
      introduced.
      See http://uselessd.darknedgy.net/PidNone for details.

   *  Don't allow enabling of masked units.

   *  More vigorous overflow checking in strv_push().

Version 4 (2014-10-06)
----------------------
   *  systemd-analyze, -activate, -cgtop and -delta can now be
      configured out of the build.

   *  systemd-initctl is now only installed when the HAVE_SYSV_COMPAT
      conditional evaluates to true.

   *  The infamous /proc/cmdline "debug" argument fiasco has been
      addressed by renaming it to "systemd.debug", so that it uses
      an exclusive namespace. Currently, upstream systemd resolves
      the issue by keeping the generic term "debug", but simply
      redirecting output to journald as soon as it is available.
      As we do not have it, we implement this.

   *  Various bugfixes from systemd-stable have been backported, like
      basic.target and sysinit.target no longer having a
      RefuseManualStart option.

Version 3 (2014-09-30)
----------------------
   *  The systemd-machine-id-setup tool is now entirely standalone
      and not also a routine called by PID1. It is governed by a
      oneshot unit, and it can be optionally disabled from the build.

   *  Two new tools have been introduced:

      uselessd-hostname-setup
      uselessd-loopback-setup

      These are once again decoupled from PID1 logic and refactored
      into their own tools wrapped around by getopt loops, and
      governed by oneshot units. They, too, can be disabled from
      the build, and come with brief manpages.

      You may need to enable their services through systemctl.

   *  The test-hostname binary was dropped for being redundant,
      as a result. The test was manual to begin with.

   *  libgcrypt and liblzma (xz) have been dropped from the build,
      due to not actually being used. They formerly belonged as
      enabling optional extensions to journald behavior.

   *  An ordering bug in one of the default units was fixed.

   *  A bugfix for systemd-tmpfiles was backported, concerning files
      inheriting the age of their top-level directories.

Version 2 (2014-09-25)
----------------------
   *  Redundant options from systemd-analyze (set-log-level and dump)
      have been removed. Use the ones from the uselessd binary instead,
      or by setting the systemd.log_level kernel parameter.

   *  The internal pager has been removed entirely. Pipes exist for
      a reason. Use them. Don't burden the software with junk.

   *  A double-free bug has been fixed in the can_sleep() function in
      sleep-config.c. This means that the test-sleep binary will now
      pass successfully.

   *  Some memory leaks were patched, thanks to findings obtained from
      clang-analyzer.

   *  An unused shared file was removed, as well as some vestiges from
      the old manpages. Unused dropin directories were removed from
      systemd-delta's array listing.

   *  The flag for disabling static linking has been removed from the
      build. Nonetheless, a modern GNU/Linux system typically requires
      shared objects for components such as NSS, gethostname(2) and many
      other things. We haven't done anything to explicitly enable static
      builds, we just got rid of the build-time error.

Version 1 (2014-09-14)
----------------------
   *  Please read http://uselessd.darknedgy.net for project details.
