chiark / gitweb /
Prep v229: Update core build files to upstream
authorSven Eden <yamakuzure@gmx.net>
Tue, 25 Apr 2017 11:03:09 +0000 (13:03 +0200)
committerSven Eden <yamakuzure@gmx.net>
Wed, 17 May 2017 13:22:16 +0000 (15:22 +0200)
CODING_STYLE
Makefile-man.am
Makefile.am
NEWS
TODO
autogen.sh
cb/elogind.cbp
configure.ac

index 0064303..46e3668 100644 (file)
@@ -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.
index 4d51eb4..9fb004b 100644 (file)
@@ -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_watchdog_enabled.3
 MANPAGES_ALIAS += \
+       man/SD_EVENT_OFF.3 \
+       man/SD_EVENT_ON.3 \
+       man/SD_EVENT_ONESHOT.3 \
+       man/SD_EVENT_PRIORITY_IDLE.3 \
+       man/SD_EVENT_PRIORITY_IMPORTANT.3 \
+       man/SD_EVENT_PRIORITY_NORMAL.3 \
+       man/SD_JOURNAL_FOREACH_FIELD.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_pid_notifyf.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
+       $(html-alias)
+
+man/SD_EVENT_ON.html: man/sd_event_source_set_enabled.html
+       $(html-alias)
+
+man/SD_EVENT_ONESHOT.html: man/sd_event_source_set_enabled.html
+       $(html-alias)
+
+man/SD_EVENT_PRIORITY_IDLE.html: man/sd_event_source_set_priority.html
+       $(html-alias)
+
+man/SD_EVENT_PRIORITY_IMPORTANT.html: man/sd_event_source_set_priority.html
+       $(html-alias)
+
+man/SD_EVENT_PRIORITY_NORMAL.html: man/sd_event_source_set_priority.html
+       $(html-alias)
+
+man/SD_JOURNAL_FOREACH_FIELD.html: man/sd_journal_enumerate_fields.html
+       $(html-alias)
+
+man/sd_event_get_exit_code.html: man/sd_event_exit.html
+       $(html-alias)
+
+man/sd_event_get_watchdog.html: man/sd_event_set_watchdog.html
+       $(html-alias)
+
+man/sd_event_io_handler_t.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_get_description.html: man/sd_event_source_set_description.html
+       $(html-alias)
+
+man/sd_event_source_get_enabled.html: man/sd_event_source_set_enabled.html
+       $(html-alias)
+
+man/sd_event_source_get_io_events.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_get_io_fd.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_get_io_revents.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_get_priority.html: man/sd_event_source_set_priority.html
+       $(html-alias)
+
+man/sd_event_source_get_userdata.html: man/sd_event_source_set_userdata.html
+       $(html-alias)
+
+man/sd_event_source_ref.html: man/sd_event_source_unref.html
+       $(html-alias)
+
+man/sd_event_source_set_io_events.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_set_io_fd.html: man/sd_event_add_io.html
+       $(html-alias)
+
+man/sd_event_source_unrefp.html: man/sd_event_source_unref.html
+       $(html-alias)
+
 man/sd_id128_from_string.html: man/sd_id128_to_string.html
        $(html-alias)
 
 man/sd_id128_get_boot.html: man/sd_id128_get_machine.html
        $(html-alias)
 
+man/sd_journal_restart_fields.html: man/sd_journal_enumerate_fields.html
+       $(html-alias)
+
 man/sd_machine_get_ifindices.html: man/sd_machine_get_class.html
        $(html-alias)
 
@@ -163,15 +292,6 @@ man/sd_session_is_remote.html: man/sd_session_is_active.html
 
 endif
 
-if HAVE_PYTHON
-MANPAGES += \
-       man/elogind.index.7
-MANPAGES_ALIAS += \
-       #
-
-
-endif
-
 # Really, do not edit this file.
 
 EXTRA_DIST += \
@@ -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 \
index 2a0c760..2089279 100644 (file)
@@ -38,9 +38,9 @@ SUBDIRS = . po
 # Keep the test-suite.log
 .PRECIOUS: $(TEST_SUITE_LOG) Makefile
 
-LIBELOGIND_CURRENT=13
+LIBELOGIND_CURRENT=14
 LIBELOGIND_REVISION=0
-LIBELOGIND_AGE=13
+LIBELOGIND_AGE=14
 
 # Dirs of external packages
 dbuspolicydir=@dbuspolicydir@
@@ -104,6 +104,13 @@ noinst_PROGRAMS =
 TESTS =
 endif
 
+if ENABLE_BASH_COMPLETION
+dist_bashcompletion_DATA = $(dist_bashcompletion_data)
+endif
+if ENABLE_ZSH_COMPLETION
+dist_zshcompletion_DATA = $(dist_zshcompletion_data)
+endif
+
 in_files = $(filter %.in,$(EXTRA_DIST))
 in_in_files = $(filter %.in.in, $(in_files))
 m4_files = $(filter %.m4,$(EXTRA_DIST) $(in_files:.m4.in=.m4))
@@ -224,29 +231,27 @@ man_MANS = \
 
 noinst_DATA += \
        $(HTML_FILES) \
-       $(HTML_ALIAS)
+       $(HTML_ALIAS) \
+       docs/html/man
+endif
 
 CLEANFILES += \
        $(man_MANS) \
        $(HTML_FILES) \
-       $(HTML_ALIAS)
+       $(HTML_ALIAS) \
+       docs/html/man
 
 docs/html/man:
        $(AM_V_at)$(MKDIR_P) $(dir $@)
        $(AM_V_LN)$(LN_S) -f ../../man $@
 
-noinst_DATA += \
-       docs/html/man
-
-CLEANFILES += \
-       docs/html/man
-
-if HAVE_PYTHON
 man/index.html: man/elogind.index.html
        $(AM_V_LN)$(LN_S) -f elogind.index.html $@
 
+if HAVE_PYTHON
 noinst_DATA += \
        man/index.html
+endif
 
 CLEANFILES += \
        man/index.html
@@ -258,10 +263,10 @@ SOURCE_XML_FILES = ${patsubst %,$(top_srcdir)/%,$(filter-out man/elogind.directi
 # This target should only be run manually. It recreates Makefile-man.am
 # 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/make-man-rules.py $(XML_GLOB)
-       $(AM_V_GEN)$(PYTHON) $^ > $(top_srcdir)/Makefile-man.tmp
+update-man-list: $(top_srcdir)/tools/make-man-rules.py $(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)/Makefile-man.am
-               @echo "Makefile-man.am has been regenerated"
+       @echo "Makefile-man.am has been regenerated"
 
 man/elogind.index.xml: $(top_srcdir)/tools/make-man-index.py $(NON_INDEX_XML_FILES)
        $(AM_V_at)$(MKDIR_P) $(dir $@)
@@ -276,18 +281,12 @@ CLEANFILES += \
        man/elogind.directives.xml
 
 EXTRA_DIST += \
-       tools/make-man-rules.py
-
-endif
-
-endif
-
-EXTRA_DIST += \
-       $(filter-out man/elogind.directives.xml,$(XML_FILES)) \
-       $(HTML_FILES) \
-       $(HTML_ALIAS) \
-       $(man_MANS) \
-       $(NULL)
+       $(filter-out man/elogind.directives.xml man/elogind.index.xml,$(XML_FILES)) \
+       tools/make-man-index.py \
+       tools/make-man-rules.py \
+       tools/make-directive-index.py \
+       tools/xml_helper.py \
+       man/glib-event-glue.c
 
 # ------------------------------------------------------------------------------
 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 += \
        loginctl
 
-if ENABLE_BASH_COMPLETION
-dist_bashcompletion_DATA = \
+dist_bashcompletion_data = \
        shell-completion/bash/loginctl
-endif
 
-if ENABLE_ZSH_COMPLETION
-dist_zshcompletion_DATA = \
+dist_zshcompletion_data = \
        shell-completion/zsh/_loginctl \
        shell-completion/zsh/_elogind-inhibit
-endif
 
 elogind_inhibit_SOURCES = \
        src/login/inhibit.c
diff --git a/NEWS b/NEWS
index 006aef5..e7f6bb4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,224 @@
 systemd System and Service Manager
 
+CHANGES WITH 229:
+
+        * 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
+          /etc/hosts.
+
+        * 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
+          devices.
+
+        * 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
+          sd_journal_restart_fields().
+
+        * 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:
+
+            https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bd1060a1d671
+
+        * 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
+          sockets.
+
+        * 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
+
 CHANGES WITH 228:
 
         * 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
diff --git a/TODO b/TODO
index 10a2075..7437938 100644 (file)
--- a/TODO
+++ b/TODO
@@ -33,6 +33,19 @@ Janitorial Clean-ups:
 
 Features:
 
+* 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
-  - DNSSEC
-        - add display of private key types (http://tools.ietf.org/html/rfc4034#appendix-A.1.1)?
-  - DNS
-        - search paths
   - mDNS/DNS-SD
+        - 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.
-  https://bugzilla.redhat.com/show_bug.cgi?id=961044
-
 * 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
-    http://lists.freedesktop.org/archives/systemd-devel/2015-February/028630.html
   - 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 (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
 
@@ -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
index f99d0d0..7f9bbfc 100755 (executable)
@@ -1,19 +1,19 @@
 #!/bin/sh
 
-#  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
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 #  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 <http://www.gnu.org/licenses/>.
+#  along with elogind; If not, see <http://www.gnu.org/licenses/>.
 
 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." || :
-#fi
-
 intltoolize --force --automake
 autoreconf --force --install --symlink
 
index 191c727..833725f 100644 (file)
                        <Option compilerVar="CC" />
                </Unit>
                <Unit filename="../src/basic/gunicode.h" />
+               <Unit filename="../src/basic/hash-funcs.c">
+                       <Option compilerVar="CC" />
+               </Unit>
+               <Unit filename="../src/basic/hash-funcs.h" />
                <Unit filename="../src/basic/hashmap.c">
                        <Option compilerVar="CC" />
                </Unit>
index 241390c..367360c 100644 (file)
@@ -20,7 +20,7 @@
 AC_PREREQ([2.64])
 
 AC_INIT([elogind],
-        [228.3],
+        [229],
         [https://github.com/elogind/elogind/issues],
         [elogind],
         [https://github.com/elogind/elogind])
@@ -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
 have_python=no
 AC_ARG_WITH([python],
-        [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)])])
 
 have_lxml=no
 AS_IF([test "x$with_python" != "xno"], [
@@ -345,7 +345,8 @@ AC_SUBST(CAP_LIBS)
 
 AC_CHECK_FUNCS([memfd_create])
 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
                 esac],
                 [have_smack=auto])
 
-if test "x${have_smack}" = xauto; then
+if test "x${have_smack}" != xno; then
+        AC_DEFINE(HAVE_SMACK, 1, [Define if SMACK is available])
         M4_DEFINES="$M4_DEFINES -DHAVE_SMACK"
         have_smack=yes
 fi
 
+AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"])
+
 have_smack_run_label=no
 AC_ARG_WITH(smack-run-label,
 AS_HELP_STRING([--with-smack-run-label=STRING],
@@ -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])
-fi
-
-AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"])
-
 # ------------------------------------------------------------------------------
 AC_ARG_WITH(system-uid-max,
         AS_HELP_STRING([--with-system-uid-max=UID]
@@ -602,6 +600,7 @@ AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
 # ------------------------------------------------------------------------------
 have_manpages=no
 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"])