Browse Source

Prep v229: Update core build files to upstream

Sven Eden 6 years ago
  1. 2
  2. 152
  3. 61
  4. 227
  5. 61
  6. 16
  7. 4
  8. 19


@ -7,7 +7,7 @@
- Don't break code lines too eagerly. We do *not* force line breaks at
80ch, all of today's screens should be much larger than that. But
then again, don't overdo it, ~140ch should be enough really.
then again, don't overdo it, ~119ch should be enough really.
- Variables and functions *must* be static, unless they have a
prototype, and are supposed to be exported.


@ -11,33 +11,162 @@ MANPAGES += \
man/elogind.8 \
man/loginctl.1 \
man/logind.conf.5 \
man/sd-event.3 \
man/sd_event_add_io.3 \
man/sd_event_exit.3 \
man/sd_event_now.3 \
man/sd_event_set_watchdog.3 \
man/sd_event_source_get_event.3 \
man/sd_event_source_get_pending.3 \
man/sd_event_source_set_description.3 \
man/sd_event_source_set_enabled.3 \
man/sd_event_source_set_prepare.3 \
man/sd_event_source_set_priority.3 \
man/sd_event_source_set_userdata.3 \
man/sd_event_source_unref.3 \
man/sd_id128_get_machine.3 \
man/sd_id128_randomize.3 \
man/sd_id128_to_string.3 \
man/sd_journal_enumerate_fields.3 \
man/sd_machine_get_class.3 \
man/sd_notify.3 \
man/SD_EVENT_OFF.3 \
man/SD_EVENT_ON.3 \
man/sd_event_get_exit_code.3 \
man/sd_event_get_watchdog.3 \
man/sd_event_io_handler_t.3 \
man/sd_event_source.3 \
man/sd_event_source_get_description.3 \
man/sd_event_source_get_enabled.3 \
man/sd_event_source_get_io_events.3 \
man/sd_event_source_get_io_fd.3 \
man/sd_event_source_get_io_revents.3 \
man/sd_event_source_get_priority.3 \
man/sd_event_source_get_userdata.3 \
man/sd_event_source_ref.3 \
man/sd_event_source_set_io_events.3 \
man/sd_event_source_set_io_fd.3 \
man/sd_event_source_unrefp.3 \
man/sd_id128_from_string.3 \
man/sd_id128_get_boot.3 \
man/sd_journal_restart_fields.3 \
man/sd_machine_get_ifindices.3 \
man/sd_notifyf.3 \
man/sd_pid_notify.3 \
man/sd_pid_notify_with_fds.3 \
man/SD_EVENT_OFF.3: man/sd_event_source_set_enabled.3
man/SD_EVENT_ON.3: man/sd_event_source_set_enabled.3
man/SD_EVENT_ONESHOT.3: man/sd_event_source_set_enabled.3
man/SD_EVENT_PRIORITY_IDLE.3: man/sd_event_source_set_priority.3
man/SD_EVENT_PRIORITY_IMPORTANT.3: man/sd_event_source_set_priority.3
man/SD_EVENT_PRIORITY_NORMAL.3: man/sd_event_source_set_priority.3
man/SD_JOURNAL_FOREACH_FIELD.3: man/sd_journal_enumerate_fields.3
man/sd_event_get_exit_code.3: man/sd_event_exit.3
man/sd_event_get_watchdog.3: man/sd_event_set_watchdog.3
man/sd_event_io_handler_t.3: man/sd_event_add_io.3
man/sd_event_source.3: man/sd_event_add_io.3
man/sd_event_source_get_description.3: man/sd_event_source_set_description.3
man/sd_event_source_get_enabled.3: man/sd_event_source_set_enabled.3
man/sd_event_source_get_io_events.3: man/sd_event_add_io.3
man/sd_event_source_get_io_fd.3: man/sd_event_add_io.3
man/sd_event_source_get_io_revents.3: man/sd_event_add_io.3
man/sd_event_source_get_priority.3: man/sd_event_source_set_priority.3
man/sd_event_source_get_userdata.3: man/sd_event_source_set_userdata.3
man/sd_event_source_ref.3: man/sd_event_source_unref.3
man/sd_event_source_set_io_events.3: man/sd_event_add_io.3
man/sd_event_source_set_io_fd.3: man/sd_event_add_io.3
man/sd_event_source_unrefp.3: man/sd_event_source_unref.3
man/sd_id128_from_string.3: man/sd_id128_to_string.3
man/sd_id128_get_boot.3: man/sd_id128_get_machine.3
man/sd_journal_restart_fields.3: man/sd_journal_enumerate_fields.3
man/sd_machine_get_ifindices.3: man/sd_machine_get_class.3
man/sd_notifyf.3: man/sd_notify.3
man/sd_pid_notify.3: man/sd_notify.3
man/sd_pid_notify_with_fds.3: man/sd_notify.3
man/sd_pid_notifyf.3: man/sd_notify.3
man/SD_EVENT_OFF.html: man/sd_event_source_set_enabled.html
man/SD_EVENT_ON.html: man/sd_event_source_set_enabled.html
man/SD_EVENT_ONESHOT.html: man/sd_event_source_set_enabled.html
man/SD_EVENT_PRIORITY_IDLE.html: man/sd_event_source_set_priority.html
man/SD_EVENT_PRIORITY_IMPORTANT.html: man/sd_event_source_set_priority.html
man/SD_EVENT_PRIORITY_NORMAL.html: man/sd_event_source_set_priority.html
man/SD_JOURNAL_FOREACH_FIELD.html: man/sd_journal_enumerate_fields.html
man/sd_event_get_exit_code.html: man/sd_event_exit.html
man/sd_event_get_watchdog.html: man/sd_event_set_watchdog.html
man/sd_event_io_handler_t.html: man/sd_event_add_io.html
man/sd_event_source.html: man/sd_event_add_io.html
man/sd_event_source_get_description.html: man/sd_event_source_set_description.html
man/sd_event_source_get_enabled.html: man/sd_event_source_set_enabled.html
man/sd_event_source_get_io_events.html: man/sd_event_add_io.html
man/sd_event_source_get_io_fd.html: man/sd_event_add_io.html
man/sd_event_source_get_io_revents.html: man/sd_event_add_io.html
man/sd_event_source_get_priority.html: man/sd_event_source_set_priority.html
man/sd_event_source_get_userdata.html: man/sd_event_source_set_userdata.html
man/sd_event_source_ref.html: man/sd_event_source_unref.html
man/sd_event_source_set_io_events.html: man/sd_event_add_io.html
man/sd_event_source_set_io_fd.html: man/sd_event_add_io.html
man/sd_event_source_unrefp.html: man/sd_event_source_unref.html
man/sd_id128_from_string.html: man/sd_id128_to_string.html
man/sd_id128_get_boot.html: man/sd_id128_get_machine.html
man/sd_journal_restart_fields.html: man/sd_journal_enumerate_fields.html
man/sd_machine_get_ifindices.html: man/sd_machine_get_class.html
@ -163,15 +292,6 @@ man/sd_session_is_remote.html: man/sd_session_is_active.html
# Really, do not edit this file.
@ -181,10 +301,24 @@ EXTRA_DIST += \
man/loginctl.xml \
man/logind.conf.xml \
man/pam_elogind.xml \
man/sd-event.xml \
man/sd_event_add_io.xml \
man/sd_event_exit.xml \
man/sd_event_now.xml \
man/sd_event_set_watchdog.xml \
man/sd_event_source_get_event.xml \
man/sd_event_source_get_pending.xml \
man/sd_event_source_set_description.xml \
man/sd_event_source_set_enabled.xml \
man/sd_event_source_set_prepare.xml \
man/sd_event_source_set_priority.xml \
man/sd_event_source_set_userdata.xml \
man/sd_event_source_unref.xml \
man/sd_get_seats.xml \
man/sd_id128_get_machine.xml \
man/sd_id128_randomize.xml \
man/sd_id128_to_string.xml \
man/sd_journal_enumerate_fields.xml \
man/sd_machine_get_class.xml \
man/sd_notify.xml \
man/sd_seat_get_active.xml \


@ -38,9 +38,9 @@ SUBDIRS = . po
# Keep the test-suite.log
# Dirs of external packages
@ -104,6 +104,13 @@ noinst_PROGRAMS =
dist_bashcompletion_DATA = $(dist_bashcompletion_data)
dist_zshcompletion_DATA = $(dist_zshcompletion_data)
in_files = $(filter,$(EXTRA_DIST))
in_in_files = $(filter, $(in_files))
m4_files = $(filter %.m4,$(EXTRA_DIST) $(
@ -224,29 +231,27 @@ man_MANS = \
noinst_DATA += \
$(man_MANS) \
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_LN)$(LN_S) -f ../../man $@
noinst_DATA += \
man/index.html: man/elogind.index.html
$(AM_V_LN)$(LN_S) -f elogind.index.html $@
noinst_DATA += \
@ -258,10 +263,10 @@ SOURCE_XML_FILES = ${patsubst %,$(top_srcdir)/%,$(filter-out man/elogind.directi
# This target should only be run manually. It recreates
# file in the source directory based on all man/*.xml files. Run it after
# adding, removing, or changing the conditional in a man page.
update-man-list: $(top_srcdir)/tools/ $(XML_GLOB)
$(AM_V_GEN)$(PYTHON) $^ > $(top_srcdir)/Makefile-man.tmp
update-man-list: $(top_srcdir)/tools/ $(XML_GLOB) man/custom-entities.ent
$(AM_V_GEN)$(PYTHON) $< $(XML_GLOB) > $(top_srcdir)/Makefile-man.tmp
$(AM_V_at)mv $(top_srcdir)/Makefile-man.tmp $(top_srcdir)/
@echo " has been regenerated"
@echo " has been regenerated"
man/elogind.index.xml: $(top_srcdir)/tools/ $(NON_INDEX_XML_FILES)
$(AM_V_at)$(MKDIR_P) $(dir $@)
@ -276,18 +281,12 @@ CLEANFILES += \
$(filter-out man/elogind.directives.xml,$(XML_FILES)) \
$(man_MANS) \
$(filter-out man/elogind.directives.xml man/elogind.index.xml,$(XML_FILES)) \
tools/ \
tools/ \
tools/ \
tools/ \
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
@ -354,6 +353,8 @@ libbasic_la_SOURCES = \
src/basic/mempool.h \
src/basic/hashmap.c \
src/basic/hashmap.h \
src/basic/hash-funcs.c \
src/basic/hash-funcs.h \
src/basic/siphash24.c \
src/basic/siphash24.h \
src/basic/prioq.c \
@ -690,16 +691,12 @@ loginctl_LDADD = \
rootbin_PROGRAMS += \
dist_bashcompletion_DATA = \
dist_bashcompletion_data = \
dist_zshcompletion_DATA = \
dist_zshcompletion_data = \
shell-completion/zsh/_loginctl \
elogind_inhibit_SOURCES = \


@ -1,5 +1,224 @@
systemd System and Service Manager
* The systemd-resolved DNS resolver service has gained a substantial
set of new features, most prominently it may now act as a DNSSEC
validating stub resolver. DNSSEC mode is currently turned off by
default, but it is expected that this is turned on by default in one
of the next releases. For now, we invite everybody to test the DNSSEC
logic by setting DNSSEC=allow-downgrade in
/etc/systemd/resolved.conf. The service also gained a full set of
D-Bus interfaces, including calls to configure DNS and DNSSEC
settings per link (for consumption by external network management
software). systemd-resolved (and systemd-networkd along with it) now
know to distinguish between "search" and "routing" domains. The
former are used to qualify single-label names, the latter are purely
used for routing lookups within certain domains to specific
links. resolved will now also synthesize RRs for all entries from
* The systemd-resolve tool (which is a client utility for
systemd-resolved, and previously experimental) has been improved
considerably and is now fully supported and documented. Hence it has
moved from /usr/lib/systemd to /usr/bin.
* /dev/disk/by-path/ symlink support has been (re-)added for virtio
* The coredump collection logic has been reworked: when a coredump is
collected it is now written to disk, compressed and processed
(including stacktrace extraction) from a new instantiated service
systemd-coredump@.service, instead of directly from the
/proc/sys/kernel/core_pattern hook we provide. This is beneficial as
processing large coredumps can take up a substantial amount of
resources and time, and this previously happened entirely outside of
systemd's service supervision. With the new logic the core_pattern
hook only does minimal metadata collection before passing off control
to the new instantiated service, which is configured with a time
limit, a nice level and other settings to minimize negative impact on
the rest of the system. Also note that the new logic will honour the
RLIMIT_CORE setting of the crashed process, which now allows users
and processes to turn off coredumping for their processes by setting
this limit.
* The RLIMIT_CORE resource limit now defaults to "unlimited" for PID 1
and all forked processes by default. Previously, PID 1 would leave
the setting at "0" for all processes, as set by the kernel. Note that
the resource limit traditionally has no effect on the generated
coredumps on the system if the /proc/sys/kernel/core_pattern hook
logic is used. Since the limit is now honoured (see above) its
default has been changed so that the coredumping logic is enabled by
default for all processes, while allowing specific opt-out.
* When the stacktrace is extracted from processes of system users, this
is now done as "systemd-coredump" user, in order to sandbox this
potentially security sensitive parsing operation. (Note that when
processing coredumps of normal users this is done under the user ID
of process that crashed, as before.) Packagers should take notice
that it is now necessary to create the "systemd-coredump" system user
and group at package installation time.
* The systemd-activate socket activation testing tool gained support
for SOCK_DGRAM and SOCK_SEQPACKET sockets using the new --datagram
and --seqpacket switches. It also has been extended to support both
new-style and inetd-style file descriptor passing. Use the new
--inetd switch to request inetd-style file descriptor passing.
* Most systemd tools now honor a new $SYSTEMD_COLORS environment
variable, which takes a boolean value. If set to false, ANSI color
output is disabled in the tools even when run on a terminal that
supports it.
* The VXLAN support in networkd now supports two new settings
DestinationPort= and PortRange=.
* A new systemd.machine_id= kernel command line switch has been added,
that may be used to set the machine ID in /etc/machine-id if it is
not initialized yet. This command line option has no effect if the
file is already initialized.
* systemd-nspawn gained a new --as-pid2 switch that invokes any
specified command line as PID 2 rather than PID 1 in the
container. In this mode PID 1 will be a minimal stub init process
that implements the special POSIX and Linux semantics of PID 1
regarding signal and child process management. Note that this stub
init process is implemented in nspawn itself and requires no support
from the container image. This new logic is useful to support running
arbitrary command lines in the container, as normal processes are
generally not prepared to run as PID 1.
* systemd-nspawn gained a new --chdir= switch for setting the current
working directory for the process started in the container.
* "journalctl /dev/sda" will now output all kernel log messages from
the specified device, in addition to all devices that are parents of
it. This should make log output about devices pretty useful, as long
as kernel drivers attach enough metadata to the log messages. (The
usual SATA drivers do.)
* The sd-journal API gained two new calls
sd_journal_has_runtime_files() and sd_journal_has_persistent_files()
that report whether log data from /run or /var has been found.
* journalctl gained a new switch "--fields" that prints all journal
record field names currently in use in the journal. This is backed
by two new sd-journal API calls sd_journal_enumerate_fields() and
* Most configurable timeouts in systemd now expect an argument of
"infinity" to turn them off, instead of "0" as before. The semantics
from now on is that a timeout of "0" means "now", and "infinity"
means "never". To maintain backwards compatibility, "0" continues to
turn off previously existing timeout settings.
* "systemctl reload-or-try-restart" has been renamed to "systemctl
try-reload-or-restart" to clarify what it actually does: the "try"
logic applies to both reloading and restarting, not just restarting.
The old name continues to be accepted for compatibility.
* On boot-up, when PID 1 detects that the system clock is behind the
release date of the systemd version in use, the clock is now set
to the latter. Previously, this was already done in timesyncd, in order
to avoid running with clocks set to the various clock epochs such as
1902, 1938 or 1970. With this change the logic is now done in PID 1
in addition to timesyncd during early boot-up, so that it is enforced
before the first process is spawned by systemd. Note that the logic
in timesyncd remains, as it is more comprehensive and ensures
montonic clocks by maintaining a persistant timestamp file in
/var. Since /var is generally not available in earliest boot or the
initrd, this part of the logic remains in timesyncd, and is not done
by PID 1.
* Support for tweaking details in net_cls.class_id through the
NetClass= configuration directive has been removed, as the kernel
people have decided to deprecate that controller in cgroup v2.
Userspace tools such as nftables are moving over to setting rules
that are specific to the full cgroup path of a task, which obsoletes
these controllers anyway. The NetClass= directive is kept around for
legacy compatibility reasons. For a more in-depth description of the
kernel change, please refer to the respective upstream commit:
* A new service setting RuntimeMaxSec= has been added that may be used
to specify a maximum runtime for a service. If the timeout is hit, the
service is terminated and put into a failure state.
* A new service setting AmbientCapabilities= has been added. It allows
configuration of additional Linux process capabilities that are
passed to the activated processes. This is only available on very
recent kernels.
* The process resource limit settings in service units may now be used
to configure hard and soft limits individually.
* The various libsystemd APIs such as sd-bus or sd-event now publicly
expose support for gcc's __attribute__((cleanup())) C
extension. Specifically, for many object destructor functions
alternative versions whose names are suffixed with "p" have been
added, which take a pointer to a pointer to the object to destroy,
instead of just a pointer to the object itself. This is useful because
these destructor functions may be used directly as parameters to the
cleanup construct. Internally, systemd has been a heavy user of the
GCC extension since a long time, and with this change similar support
is now available to consumers of the library outside of systemd. Note
that by using this extension in your sources compatibility with old
and strictly ANSI compatible C compilers is lost. However, any gcc or
LLVM version of recent years have supported this extension.
* Timer units gained support for a new setting RandomizedDelaySec= that
allows configuring some additional randomized delay to the configured
time. This is useful to spread out timer events to avoid load peaks in
clusters or larger setups.
* Calendar time specifications now support sub-second accuracy.
* Socket units now support listening on SCTP and UDP-lite protocol
* The sd-event API now comes with a full set of man pages.
* Older versions of systemd contained experimental support for
compressing journal files and coredumps with the LZ4 compressor that
was not compatible with the lz4 binary (due to API limitations of the
lz4 library). This support has been removed; only support for files
compatible with the lz4 binary remains. This LZ4 logic is now
officially supported and no longer considered experimental.
* The dkr image import logic has been removed again from importd. dkr's
micro-services focus doesn't fit into the machine image focus of
importd, and quickly got out of date with the upstream dkr API.
* Creation of the /run/lock/lockdev/ directory was dropped from
tmpfiles.d/legacy.conf. Better locking mechanisms like flock() have
been available for many years. If you still need this, you need to
create your own tmpfiles.d config file with:
d /run/lock/lockdev 0775 root lock -
Contributions from: Abdo Roig-Maranges, Alban Crequy, Aleksander
Adamowski, Alexander Kuleshov, Andreas Pokorny, Andrei Borzenkov,
Andrew Wilcox, Arthur Clement, Beniamino Galvani, Casey Schaufler,
Chris Atkinson, Chris Mayo, Christian Hesse, Damjan Georgievski, Dan
Dedrick, Daniele Medri, Daniel J Walsh, Daniel Korostil, Daniel Mack,
David Herrmann, Dimitri John Ledkov, Dominik Hannen, Douglas Christman,
Evgeny Vereshchagin, Filipe Brandenburger, Franck Bui, Gabor Kelemen,
Harald Hoyer, Hayden Walles, Helmut Grohne, Henrik Kaare Poulsen,
Hristo Venev, Hui Wang, Indrajit Raychaudhuri, Ismo Puustinen, Jakub
Wilk, Jan Alexander Steffens (heftig), Jan Engelhardt, Jan Synacek,
Joost Bremmer, Jorgen Schaefer, Karel Zak, Klearchos Chaloulos,
lc85446, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel
Holtmann, Martin Pitt, Michael Biebl, Michael Olbrich, Michael Scherer,
Michał Górny, Michal Sekletar, Nicolas Cornu, Nicolas Iooss, Nils
Carlson, nmartensen, nnz1024, Patrick Ohly, Peter Hutterer, Phillip Sz,
Ronny Chevalier, Samu Kallio, Shawn Landden, Stef Walter, Susant
Sahani, Sylvain Plantefève, Tadej Janež, Thomas Hindoe Paaboel
Andersen, Tom Gundersen, Torstein Husebø, Umut Tezduyar Lindskog, Vito
Caputo, WaLyong Cho, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
-- Berlin, 2016-02-11
* A number of properties previously only settable in unit
@ -88,6 +307,14 @@ CHANGES WITH 228:
from PID1's environment block into the environment block of
the service.
* Timer units gained support for a new RemainAfterElapse=
setting which takes a boolean argument. It defaults on on,
exposing behaviour unchanged to previous releases. If set to
off, timer units are unloaded after they elapsed if they
cannot elapse again. This is particularly useful for
transient timer units, which shall not stay around longer
than until they first elapse.
* systemd will now bump the net.unix.max_dgram_qlen to 512 by
default now (the kernel default is 16). This is beneficial
for avoiding blocking on AF_UNIX/SOCK_DGRAM sockets since it


@ -33,6 +33,19 @@ Janitorial Clean-ups:
* delay activation of logind until somebody logs in, or when /dev/tty0 pulls it
in or lingering is on (so that containers don't bother with it until PAM is used). also exit-on-idle
* cache sd_event_now() result from before the first iteration...
* remove Capabilities=, after all AmbientCapabilities= and CapabilityBoundingSet= should be enough.
* support for the new copy_file_range() syscall
* add systemctl stop --job-mode=triggering that follows TRIGGERED_BY deps and adds them to the same transaction
* Maybe add a way how users can "pin" units into memory, so that they are not subject to automatic GC?
* PID1: find a way how we can reload unit file configuration for
specific units only, without reloading the whole of systemd
@ -58,8 +71,6 @@ Features:
* consider throwing a warning if a service declares it wants to be "Before=" a .device unit.
* "systemctl edit" should know a mode to create a new unit file
* there's probably something wrong with having user mounts below /sys,
as we have for debugfs. for exmaple, src/core/mount.c handles mounts
prefixed with /sys generally special.
@ -67,12 +78,8 @@ Features:
* man: document that unless you use StandardError=null the shell >/dev/stderr won't work in shell scripts in services
* "systemctl daemon-reload" should result in /etc/systemd/system.conf being reloaded by systemd
* install: include generator dirs in unit file search paths
* invent a better systemd-run scheme for naming scopes, that works with remoting
* rework C11 utf8.[ch] to use char32_t instead of uint32_t when referring
to unicode chars, to make things more expressive.
@ -103,7 +110,7 @@ Features:
* Rework systemctl's GetAll property parsing to use the generic bus_map_all_properties() API
* core/cgroup: support net_cls modules, and support automatically allocating class ids, then add support for making firewall changes depending on it, to implement a per-service firewall
* implement a per-service firewall based on net_cls
* Port various tools to make use of verbs.[ch], where applicable
@ -155,8 +162,6 @@ Features:
* maybe provide an API to allow migration of foreign PIDs into existing scopes.
* maybe support a new very "soft" reboot mode, that simply kills all processes, disassembles everything, flushes /run and sysvipc, and then reexecs systemd again
* man: maybe use the word "inspect" rather than "introspect"?
* systemctl: if some operation fails, show log output?
@ -166,9 +171,9 @@ Features:
- use equvalent of cat() to insert existing config as a comment, prepended with #.
Upon editor exit, lines with one # are removed, lines with two # are left with one #, etc.
* exponential backoff in timesyncd and resolved when we cannot reach a server
* exponential backoff in timesyncd when we cannot reach a server
* timesyncd + resolved: add ugly bus calls to set NTP and DNS servers per-interface, for usage by NM
* timesyncd: add ugly bus calls to set NTP servers per-interface, for usage by NM
* extract_many_words() should probably be used by a lot of code that
currently uses FOREACH_WORD and friends. For example, most conf
@ -183,23 +188,16 @@ Features:
(throughout the codebase, not only PID1)
* resolved:
- put networkd events and rtnl events at a higher priority, so that
we always process them before we process client requests
- add display of private key types (
- search paths
- service registration
- service/domain/types browsing
- avahi compat
- DNS-SD service registration from socket units
- edns0
- dname: Not necessary for plain DNS as synthesized cname is handed out instead if we do not
announce dname support. However, for DNSSEC it is necessary as the synthesized cname
will not be signed.
- cname on PTR (?)
- resolved should optionally register additional per-interface LLMNR
names, so that for the container case we can establish the same name
(maybe "host") for referencing the server, everywhere.
- enable DNSSEC by default
- allow clients to request DNSSEC for a single lookup even if DNSSEC is off (?)
* refcounting in sd-resolve is borked
@ -213,8 +211,6 @@ Features:
* generator that automatically discovers btrfs subvolumes, identifies their purpose based on some xattr on them.
* timer units: actually add extra delays to timer units with high AccuracySec values, don't start them already when we are awake...
* a way for container managers to turn off getty starting via $container_headless= or so...
* figure out a nice way how we can let the admin know what child/sibling unit causes cgroup membership for a specific unit
@ -339,10 +335,6 @@ Features:
- generate a failure of a default event loop is executed out-of-thread
- maybe add support for inotify events
* in the final killing spree, detect processes from the root directory, and
complain loudly if they have argv[0][0] == '@' set.
* investigate endianness issues of UUID vs. GUID
* dbus: when a unit failed to load (i.e. is in UNIT_ERROR state), we
@ -491,10 +483,6 @@ Features:
- journal-or-kmsg is currently broken? See reverted
commit 4a01181e460686d8b4a543b1dfa7f77c9e3c5ab8.
- man: document that corrupted journal files is nothing to act on
- systemd-journal-upload (or a new, related tool): allow pushing out
journal messages onto the network in BSD syslog protocol,
continuously. Default to some link-local IP mcast group, to make this
useful as a one-stop debugging tool.
- rework journald sigbus stuff to use mutex
- Set RLIMIT_NPROC for systemd-journal-xyz, and all other of our
services that run under their own user ids, and use User= (but only
@ -609,8 +597,6 @@ Features:
removed or added to an existing machine
- "machinectl migrate" or similar to copy a container from or to a
difference host, via ssh
- man: document how update dkr images works with machinectl
- introduce systemd-nspawn-ephemeral@.service, and hook it into
"machinectl start" with a new --ephemeral switch
- "machinectl status" should also show internal logs of the container in
@ -623,8 +609,6 @@ Features:
shell in it, and marks it read-only after use
* importd:
- dkr: support tarsum checksum verification, if it becomes reality one day...
- dkr: convert json bits to nspawn configuration
- generate a nice warning if mkfs.btrfs is missing
* cryptsetup:
@ -661,10 +645,6 @@ Features:
* coredump:
- save coredump in Windows/Mozilla minidump format
- move PID 1 segfaults to /var/lib/systemd/coredump?
- make the handler check /proc/$PID/rlimits for RLIMIT_CORE,
and supress coredump if turned off. Then change RLIMIT_CORE to
infinity by default for all services. This then allows per-service
control of coredumping.
* support crash reporting operation modes (
@ -736,7 +716,6 @@ Features:
- Support --test based on current system state
- If we show an error about a unit (such as not showing up) and it has no Description string, then show a description string generated form the reverse of unit_name_mangle().
- after deserializing sockets in socket.c we should reapply sockopts and things
- make timer units go away after they elapsed
- drop PID 1 reloading, only do reexecing (difficult: Reload()
currently is properly synchronous, Reexec() is weird, because we
cannot delay the response properly until we are back, so instead of


@ -1,19 +1,19 @@
# This file is part of systemd.
# This file is part of elogind
# systemd is free software; you can redistribute it and/or modify it
# elogind is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# systemd is distributed in the hope that it will be useful, but
# elogind is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <>.
# along with elogind; If not, see <>.
set -e
@ -21,14 +21,6 @@ oldpwd=$(pwd)
topdir=$(dirname $0)
cd $topdir
# We do not need this, we are not systemd upstream!
#if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then
# # This part is allowed to fail
# cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \
# chmod +x .git/hooks/pre-commit && \
# echo "Activated pre-commit hook." || :
intltoolize --force --automake
autoreconf --force --install --symlink


@ -103,6 +103,10 @@
<Option compilerVar="CC" />
<Unit filename="../src/basic/gunicode.h" />
<Unit filename="../src/basic/hash-funcs.c">
<Option compilerVar="CC" />
<Unit filename="../src/basic/hash-funcs.h" />
<Unit filename="../src/basic/hashmap.c">
<Option compilerVar="CC" />


@ -20,7 +20,7 @@
@ -300,7 +300,7 @@ AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
# we use python to build the man page index
[AS_HELP_STRING([--without-python], [Disable building the man page index (default: test)])])
[AS_HELP_STRING([--without-python], [Disable building the man page index and systemd-python (default: test)])])
AS_IF([test "x$with_python" != "xno"], [
@ -345,7 +345,8 @@ AC_SUBST(CAP_LIBS)
AC_CHECK_FUNCS([__secure_getenv secure_getenv])
AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, getrandom, renameat2, kcmp, LO_FLAGS_PARTSCAN],
AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, getrandom, renameat2,
char16_t, char32_t, LO_FLAGS_PARTSCAN],
[], [], [[
#include <sys/types.h>
#include <unistd.h>
@ -529,11 +530,14 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK
if test "x${have_smack}" = xauto; then
if test "x${have_smack}" != xno; then
AC_DEFINE(HAVE_SMACK, 1, [Define if SMACK is available])
AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"])
@ -551,12 +555,6 @@ AS_HELP_STRING([--with-smack-default-process-label=STRING],
[AC_DEFINE_UNQUOTED(SMACK_DEFAULT_PROCESS_LABEL, ["$withval"], [Default SMACK label for executed processes])],
if test "x${have_smack}" = xyes ; then
AC_DEFINE(HAVE_SMACK, 1, [Define if SMACK is available])
AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"])
# ------------------------------------------------------------------------------
@ -602,6 +600,7 @@ AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
# ------------------------------------------------------------------------------
AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-manpages], [disable manpages]))
AC_PATH_PROG([XSLTPROC], [xsltproc])
AS_IF([test "x$enable_manpages" != xno], [have_manpages=yes])
AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"])