816 Nov 2014 18:10
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.
tmpfiles updates, bugfixing, refactoring, manager signal handler update, new test cases.
707 Nov 2014 15:50
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.
629 Oct 2014 14:56
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.
522 Oct 2014 21:32
Preliminary experimental support for running a system-wide instance of uselessd without being PID1 (init) has been
See http://uselessd.darknedgy.net/PidNone for details.
Don't allow enabling of masked units.
More vigorous overflow checking in strv_push().
407 Oct 2014 03:16
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
301 Oct 2014 03:39
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:
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 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.
229 Sep 2014 03:15
* 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
* Some memory leaks were patched, thanks to findings obtained from
* 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.