[systemd-commits] 10 commits - Makefile.am man/systemd.exec.xml src/core TODO

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Thu Jan 24 16:46:11 PST 2013


 Makefile.am          |  458 +++++++++++++++++++++++++--------------------------
 TODO                 |    2 
 man/systemd.exec.xml |   19 +-
 src/core/mount.c     |    6 
 src/core/service.c   |    5 
 5 files changed, 251 insertions(+), 239 deletions(-)

New commits:
commit 0ae9c92a933869d5695396d067aa555dacbbba08
Author: Frederic Crozat <fcrozat at suse.com>
Date:   Thu Jan 24 18:06:00 2013 +0100

    man: systemd.exec - explicit Environment assignment
    
    Hi all,
    
    while working on another bug, I discovered the "strange" way systemd is
    parsing Environment= in .service and thought it was worth documenting
    (because I don't expect people to find this syntax by themselves unless
    they read the parsing code ;)
    
    Be more verbose about using space in Environment field and not
    using value of other variables
    
    Fixes https://bugzilla.redhat.com/show_bug.cgi?id=840260
    
    [zj: expand and reformat the example a bit]

diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
index 8a22ac0..a0fca59 100644
--- a/man/systemd.exec.xml
+++ b/man/systemd.exec.xml
@@ -286,9 +286,24 @@
                                 empty string is assigned to this
                                 option the list of environment
                                 variables is reset, all prior
-                                assignments have no effect. See
+                                assignments have no effect.
+                                Variable expansion is not performed
+                                inside the strings, and $ has no special
+                                meaning.
+                                If you need to assign a value containing spaces
+                                to a variable, use double quotes (")
+                                for the assignment.</para>
+
+                                <para>Example:
+                                <programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"</programlisting>
+                                gives three variables <literal>VAR1</literal>,
+                                <literal>VAR2</literal>, <literal>VAR3</literal>.
+                                </para>
+
+                                <para>
+                                See
                                 <citerefentry><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>
-                                for details.</para></listitem>
+                                for details about environment variables.</para></listitem>
                         </varlistentry>
                         <varlistentry>
                                 <term><varname>EnvironmentFile=</varname></term>

commit aa7cb2098302d45c8768ca08bf1e433a19aa46b9
Author: Umut Tezduyar <umut at tezduyar.com>
Date:   Wed Jan 23 09:23:49 2013 +0100

    core: Set source for mountinfo .mount units

diff --git a/src/core/mount.c b/src/core/mount.c
index 03eff9d..e5f5e42 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1472,7 +1472,7 @@ static int mount_add_one(
         int r;
         Unit *u;
         bool delete;
-        char *e, *w = NULL, *o = NULL, *f = NULL;
+        char *e, *w = NULL, *o = NULL, *s = NULL, *f = NULL;
         MountParameters *p;
         bool load_extras = false;
 
@@ -1545,6 +1545,7 @@ static int mount_add_one(
 
         if (!(w = strdup(what)) ||
             !(o = strdup(options)) ||
+            !(s = strdup("/proc/self/mountinfo")) ||
             !(f = strdup(fstype))) {
                 r = -ENOMEM;
                 goto fail;
@@ -1558,6 +1559,8 @@ static int mount_add_one(
         }
 
         MOUNT(u)->from_proc_self_mountinfo = true;
+        free(u->source_path);
+        u->source_path = s;
 
         free(p->what);
         p->what = w;
@@ -1583,6 +1586,7 @@ static int mount_add_one(
 fail:
         free(w);
         free(o);
+        free(s);
         free(f);
 
         if (delete && u)

commit 90527fbb2c48ffda5c6d8f232f8993a90b2632a4
Author: Michael Olbrich <m.olbrich at pengutronix.de>
Date:   Wed Jan 23 14:12:16 2013 +0100

    service: make sure the watchdog timer is not restarted while stopping
    
    A watchdog notification may be handled after the watchdog timer was stopped
    while stopping the service. As a result the timer is restarted and the
    service may be restarted as well.
    The watchdog timestamp is initially set during startup in
    service_enter_start_post() and cleared when the timer is stopped. Therefore
    it can be used as an indication if the timer should be reset.

diff --git a/src/core/service.c b/src/core/service.c
index 593946e..baddc5a 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -3400,7 +3400,8 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
         if (strv_find(tags, "WATCHDOG=1")) {
                 log_debug_unit(u->id,
                                "%s: got WATCHDOG=1", u->id);
-                service_reset_watchdog(s);
+                if (dual_timestamp_is_set(&s->watchdog_timestamp))
+                        service_reset_watchdog(s);
         }
 
         /* Notify clients about changed status or main pid */

commit 6d594baa3fa3a361efc2a4c1da3557fc4eba960d
Author: Michael Olbrich <m.olbrich at pengutronix.de>
Date:   Wed Jan 23 14:12:15 2013 +0100

    service: really stop watchdog timer when stopping
    
    For services without ExecStop= the state SERVICE_STOP is never entered. as
    a result the watchdog timer is not stopped and the service is restarted (if
    it is configuered to restart).
    Stopping the watchdog timer for SERVICE_STOP_SIGTERM as well fixes this.

diff --git a/src/core/service.c b/src/core/service.c
index ee5a1a4..593946e 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1550,7 +1550,7 @@ static void service_set_state(Service *s, ServiceState state) {
                 service_connection_unref(s);
         }
 
-        if (state == SERVICE_STOP)
+        if (state == SERVICE_STOP || state == SERVICE_STOP_SIGTERM)
                 service_stop_watchdog(s);
 
         /* For the inactive states unit_notify() will trim the cgroup,

commit c8503a3e16bb487e86682c9bee9a60f24b9e40d3
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Wed Jan 23 22:30:12 2013 -0500

    build-sys: add silent rules for gperf generation

diff --git a/Makefile.am b/Makefile.am
index 6f83c8b..be3fa71 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -256,6 +256,10 @@ AM_V_XSLT = $(AM_V_XSLT_$(V))
 AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
 AM_V_XSLT_0 = @echo "  XSLT    " $@;
 
+AM_V_GPERF = $(AM_V_GPERF_$(V))
+AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
+AM_V_GPERF_0 = @echo "  GPERF   " $@;
+
 # ------------------------------------------------------------------------------
 rootbin_PROGRAMS = \
 	systemctl \
@@ -1185,7 +1189,7 @@ src/core/syscall-from-name.gperf: src/core/syscall-list.txt Makefile
 
 src/core/syscall-from-name.h: src/core/syscall-from-name.gperf Makefile
 	$(AM_V_at)$(MKDIR_P) $(dir $@)
-	$(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_syscall -H hash_syscall_name -p -C < $< > $@
+	$(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_syscall -H hash_syscall_name -p -C < $< > $@
 
 src/core/syscall-to-name.h: src/core/syscall-list.txt Makefile
 	$(AM_V_at)$(MKDIR_P) $(dir $@)
@@ -2476,7 +2480,7 @@ src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt Makefile
 	$(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
 
 src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf Makefile
-	$(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
+	$(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
 
 src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt Makefile
 	$(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
@@ -3869,7 +3873,7 @@ src/analyze/systemd-analyze: %: %.in Makefile
 
 src/%.c: src/%.gperf
 	$(AM_V_at)$(MKDIR_P) $(dir $@)
-	$(AM_V_GEN)$(GPERF) < $< > $@
+	$(AM_V_GPERF)$(GPERF) < $< > $@
 
 src/%: src/%.m4
 	$(AM_V_at)$(MKDIR_P) $(dir $@)

commit 5b40782c8df897e5b1e4c1cc97b8bad4145a6bef
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Wed Jan 23 22:26:43 2013 -0500

    build-sys: add silent rules for xslt processing

diff --git a/Makefile.am b/Makefile.am
index abc3d55..6f83c8b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -252,6 +252,10 @@ AM_V_M4 = $(AM_V_M4_$(V))
 AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY))
 AM_V_M4_0 = @echo "  M4      " $@;
 
+AM_V_XSLT = $(AM_V_XSLT_$(V))
+AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
+AM_V_XSLT_0 = @echo "  XSLT    " $@;
+
 # ------------------------------------------------------------------------------
 rootbin_PROGRAMS = \
 	systemctl \
@@ -3911,11 +3915,11 @@ XSLTPROC_FLAGS = \
 	--stringparam man.copyright.section.enabled 0
 
 XSLTPROC_PROCESS_MAN = \
-	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+	$(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
 	$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
 
 XSLTPROC_PROCESS_HTML = \
-	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+	$(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
 	$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
 
 man/%.1: man/%.xml

commit ebea41b8d21457d435b8fd6ee6783e3dbf749cba
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Wed Jan 23 22:20:23 2013 -0500

    build-sys: add silent rule for m4 processing
    
    Using custom prefixes makes the whole build process a bit more
    readable.

diff --git a/Makefile.am b/Makefile.am
index cd4d879..abc3d55 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -247,6 +247,12 @@ INSTALL_EXEC_HOOKS += \
 	install-aliases-hook
 
 # ------------------------------------------------------------------------------
+
+AM_V_M4 = $(AM_V_M4_$(V))
+AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY))
+AM_V_M4_0 = @echo "  M4      " $@;
+
+# ------------------------------------------------------------------------------
 rootbin_PROGRAMS = \
 	systemctl \
 	systemd-notify \
@@ -3863,14 +3869,14 @@ src/%.c: src/%.gperf
 
 src/%: src/%.m4
 	$(AM_V_at)$(MKDIR_P) $(dir $@)
-	$(AM_V_GEN)$(M4) -P $(M4_DEFINES) < $< > $@
+	$(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@
 
 M4_PROCESS_SYSTEM = \
-	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+	$(AM_V_M4)$(MKDIR_P) $(dir $@) && \
 	$(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@
 
 M4_PROCESS_USER = \
-	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+	$(AM_V_M4)$(MKDIR_P) $(dir $@) && \
 	$(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@
 
 units/%: units/%.m4 Makefile

commit 245d345f7539983c08fd8dbc0c51079422ca096a
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Wed Jan 23 21:41:30 2013 -0500

    build-sys: link runlevel targets on install only if sysv compat is enabled

diff --git a/Makefile.am b/Makefile.am
index c02145b..cd4d879 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -213,9 +213,10 @@ install-target-wants-hook:
 	what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && $(add-wants)
 
 define add-wants
-	dir=$(DESTDIR)$(systemunitdir)/$$wants.wants && \
-	$(MKDIR_P) -m 0755 $$dir && \
-	( cd $$dir && \
+	[ -z "$$what" ] || ( \
+	  dir=$(DESTDIR)$(systemunitdir)/$$wants.wants && \
+	  $(MKDIR_P) -m 0755 $$dir && \
+	  cd $$dir && \
 	  rm -f $$what && \
 	  for i in $$what; do ln -s ../$$i . || exit $$? ; done )
 endef
@@ -3969,6 +3970,7 @@ SOCKETS_TARGET_WANTS += \
 	systemd-initctl.socket \
 	systemd-shutdownd.socket
 
+if HAVE_SYSV_COMPAT
 RUNLEVEL1_TARGET_WANTS += \
 	systemd-update-utmp-runlevel.service
 RUNLEVEL2_TARGET_WANTS += \
@@ -3979,6 +3981,7 @@ RUNLEVEL4_TARGET_WANTS += \
 	systemd-update-utmp-runlevel.service
 RUNLEVEL5_TARGET_WANTS += \
 	systemd-update-utmp-runlevel.service
+endif
 SHUTDOWN_TARGET_WANTS += \
 	systemd-update-utmp-shutdown.service
 LOCAL_FS_TARGET_WANTS += \
@@ -4000,6 +4003,7 @@ SYSINIT_TARGET_WANTS += \
 BASIC_TARGET_WANTS += \
 	systemd-tmpfiles-clean.timer
 
+if HAVE_SYSV_COMPAT
 SYSTEM_UNIT_ALIASES += \
 	poweroff.target runlevel0.target \
 	rescue.target runlevel1.target \
@@ -4007,7 +4011,9 @@ SYSTEM_UNIT_ALIASES += \
 	multi-user.target runlevel3.target \
 	multi-user.target runlevel4.target \
 	graphical.target runlevel5.target \
-	reboot.target runlevel6.target \
+	reboot.target runlevel6.target
+endif
+SYSTEM_UNIT_ALIASES += \
 	graphical.target default.target \
 	reboot.target ctrl-alt-del.target \
 	getty at .service autovt at .service
@@ -4025,13 +4031,15 @@ GENERAL_ALIASES += \
 	$(pkgsysconfdir)/user $(sysconfdir)/xdg/systemd/user \
 	../system-services/org.freedesktop.systemd1.service $(dbussessionservicedir)/org.freedesktop.systemd1.service
 
+if HAVE_SYSV_COMPAT
 INSTALL_DIRS += \
 	$(systemunitdir)/runlevel1.target.wants \
 	$(systemunitdir)/runlevel2.target.wants \
 	$(systemunitdir)/runlevel3.target.wants \
 	$(systemunitdir)/runlevel4.target.wants \
-	$(systemunitdir)/runlevel5.target.wants \
-	\
+	$(systemunitdir)/runlevel5.target.wants
+endif
+INSTALL_DIRS += \
 	$(tmpfilesdir) \
 	$(sysconfdir)/tmpfiles.d \
 	$(prefix)/lib/modules-load.d \
diff --git a/TODO b/TODO
index 0bfbe1b..44922db 100644
--- a/TODO
+++ b/TODO
@@ -42,8 +42,6 @@ Features:
 
 * write man page for efi boot generator
 
-* link runlevel targets on install only if sysv compat is enabled
-
 * maybe not install getty at tty1.service symlink in /etc but in /usr?
 
 * re-enable "make check" for gtk-doc (broken for unknown reason)

commit 91e8651b6e3acf77c0fc51febe70b94afcd81b7d
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jan 22 23:51:51 2013 -0500

    build-sys: add variables to collect unit aliases

diff --git a/Makefile.am b/Makefile.am
index a7a7940..c02145b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,6 +4,7 @@
 #
 #  Copyright 2010-2012 Lennart Poettering
 #  Copyright 2010-2012 Kay Sievers
+#  Copyright 2013 Zbigniew Jędrzejewski-Szmek
 #
 #  systemd is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU Lesser General Public License as published by
@@ -193,6 +194,11 @@ SYSINIT_TARGET_WANTS =
 BASIC_TARGET_WANTS =
 SOCKETS_TARGET_WANTS =
 
+SYSTEM_UNIT_ALIASES =
+USER_UNIT_ALIASES =
+
+GENERAL_ALIASES =
+
 install-target-wants-hook:
 	what="$(RUNLEVEL1_TARGET_WANTS)" && wants=runlevel1.target && $(add-wants)
 	what="$(RUNLEVEL2_TARGET_WANTS)" && wants=runlevel2.target && $(add-wants)
@@ -217,9 +223,27 @@ endef
 install-directories-hook:
 	$(MKDIR_P) $(addprefix $(DESTDIR),$(INSTALL_DIRS))
 
+install-aliases-hook:
+	set -- $(SYSTEM_UNIT_ALIASES) && \
+		dir=$(systemunitdir) && $(install-aliases)
+	set -- $(USER_UNIT_ALIASES) && \
+		dir=$(userunitdir) && $(install-aliases)
+	set -- $(GENERAL_ALIASES) && \
+		dir= && $(install-aliases)
+
+define install-aliases
+	$(MKDIR_P) /$(DESTDIR)$$dir && \
+	while [ -n "$$1" ]; do \
+		rm -f $(DESTDIR)$$dir/$$2 && \
+		ln -s $$1 $(DESTDIR)$$dir/$$2 && \
+		shift 2 || exit $$?; \
+	done
+endef
+
 INSTALL_EXEC_HOOKS += \
 	install-target-wants-hook \
-	install-directories-hook
+	install-directories-hook \
+	install-aliases-hook
 
 # ------------------------------------------------------------------------------
 rootbin_PROGRAMS = \
@@ -3206,13 +3230,8 @@ org.freedesktop.hostname1.xml: systemd-hostnamed
 		$(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
 		$(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
-hostnamed-install-data-hook:
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f dbus-org.freedesktop.hostname1.service && \
-		$(LN_S) systemd-hostnamed.service dbus-org.freedesktop.hostname1.service )
-
-INSTALL_DATA_HOOKS += \
-	hostnamed-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+	systemd-hostnamed.service dbus-org.freedesktop.hostname1.service
 
 MANPAGES += \
 	man/systemd-hostnamed.service.8
@@ -3286,13 +3305,8 @@ org.freedesktop.locale1.xml: systemd-localed
 		$(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
 		$(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
-localed-install-data-hook:
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f dbus-org.freedesktop.locale1.service && \
-		$(LN_S) systemd-localed.service dbus-org.freedesktop.locale1.service )
-
-INSTALL_DATA_HOOKS += \
-	localed-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+	systemd-localed.service dbus-org.freedesktop.locale1.service
 
 MANPAGES += \
 	man/systemd-localed.service.8
@@ -3374,16 +3388,12 @@ org.freedesktop.timedate1.xml: systemd-timedated
 dbusinterface_DATA += \
 	org.freedesktop.timedate1.xml
 
-timedated-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(prefix)/lib/systemd/ntp-units.d \
-		$(DESTDIR)$(sysconfdir)/systemd/ntp-units.d
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f dbus-org.freedesktop.timedate1.service  && \
-		$(LN_S) systemd-timedated.service dbus-org.freedesktop.timedate1.service )
+INSTALL_DIRS += \
+	$(prefix)/lib/systemd/ntp-units.d \
+	$(sysconfdir)/systemd/ntp-units.d
 
-INSTALL_DATA_HOOKS += \
-	timedated-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+	systemd-timedated.service dbus-org.freedesktop.timedate1.service
 
 MANPAGES += \
 	man/systemd-timedated.service.8
@@ -3642,13 +3652,8 @@ MULTI_USER_TARGET_WANTS += \
 	systemd-logind.service \
 	systemd-user-sessions.service
 
-logind-install-data-hook:
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f dbus-org.freedesktop.login1.service && \
-		$(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
-
-INSTALL_DATA_HOOKS += \
-	logind-install-data-hook
+SYSTEM_UNIT_ALIASES += \
+	systemd-logind.service dbus-org.freedesktop.login1.service
 
 systemd_multi_seat_x_SOURCES = \
 	src/login/multi-seat-x.c
@@ -3995,60 +4000,56 @@ SYSINIT_TARGET_WANTS += \
 BASIC_TARGET_WANTS += \
 	systemd-tmpfiles-clean.timer
 
-systemd-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(tmpfilesdir) \
-		$(DESTDIR)$(sysconfdir)/tmpfiles.d \
-		$(DESTDIR)$(prefix)/lib/modules-load.d \
-		$(DESTDIR)$(sysconfdir)/modules-load.d \
-		$(DESTDIR)$(prefix)/lib/sysctl.d \
-		$(DESTDIR)$(sysconfdir)/sysctl.d \
-		$(DESTDIR)$(systemshutdowndir) \
-		$(DESTDIR)$(systemsleepdir) \
-		$(DESTDIR)$(systemgeneratordir) \
-		$(DESTDIR)$(usergeneratordir)
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(userunitdir) \
-		$(DESTDIR)$(pkgsysconfdir)/system \
-		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
-		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
-		$(DESTDIR)$(pkgsysconfdir)/user \
-		$(DESTDIR)$(dbussessionservicedir) \
-		$(DESTDIR)$(sysconfdir)/xdg/systemd
-	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
-		rm -f user && \
-		$(LN_S) $(pkgsysconfdir)/user user )
-
-	( cd $(DESTDIR)$(userunitdir) && \
-		rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \
-		$(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
-		$(LN_S) $(systemunitdir)/sockets.target sockets.target && \
-		$(LN_S) $(systemunitdir)/bluetooth.target bluetooth.target && \
-		$(LN_S) $(systemunitdir)/printer.target printer.target && \
-		$(LN_S) $(systemunitdir)/sound.target sound.target )
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f runlevel0.target runlevel1.target runlevel2.target runlevel3.target runlevel4.target runlevel5.target runlevel6.target && \
-		$(LN_S) poweroff.target runlevel0.target && \
-		$(LN_S) rescue.target runlevel1.target && \
-		$(LN_S) multi-user.target runlevel2.target && \
-		$(LN_S) multi-user.target runlevel3.target && \
-		$(LN_S) multi-user.target runlevel4.target && \
-		$(LN_S) graphical.target runlevel5.target && \
-		$(LN_S) reboot.target runlevel6.target )
-	( cd $(DESTDIR)$(systemunitdir) && \
-		rm -f default.target ctrl-alt-del.target autovt at .service && \
-		$(LN_S) graphical.target default.target && \
-		$(LN_S) reboot.target ctrl-alt-del.target && \
-		$(LN_S) getty at .service autovt at .service )
-	( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
-		rm -f getty at tty1.service && \
-		$(LN_S) $(systemunitdir)/getty at .service getty at tty1.service )
-	( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
-		rm -f remote-fs.target && \
-		$(LN_S) $(systemunitdir)/remote-fs.target remote-fs.target )
-	( cd $(DESTDIR)$(dbussessionservicedir) && \
-		rm -f org.freedesktop.systemd1.service && \
-		$(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
+SYSTEM_UNIT_ALIASES += \
+	poweroff.target runlevel0.target \
+	rescue.target runlevel1.target \
+	multi-user.target runlevel2.target \
+	multi-user.target runlevel3.target \
+	multi-user.target runlevel4.target \
+	graphical.target runlevel5.target \
+	reboot.target runlevel6.target \
+	graphical.target default.target \
+	reboot.target ctrl-alt-del.target \
+	getty at .service autovt at .service
+
+USER_UNIT_ALIASES += \
+	$(systemunitdir)/shutdown.target shutdown.target \
+	$(systemunitdir)/sockets.target sockets.target \
+	$(systemunitdir)/bluetooth.target bluetooth.target \
+	$(systemunitdir)/printer.target printer.target \
+	$(systemunitdir)/sound.target sound.target
+
+GENERAL_ALIASES += \
+	$(systemunitdir)/remote-fs.target $(pkgsysconfdir)/system/multi-user.target.wants/remote-fs.target \
+	$(systemunitdir)/getty at .service $(pkgsysconfdir)/system/getty.target.wants/getty at tty1.service \
+	$(pkgsysconfdir)/user $(sysconfdir)/xdg/systemd/user \
+	../system-services/org.freedesktop.systemd1.service $(dbussessionservicedir)/org.freedesktop.systemd1.service
+
+INSTALL_DIRS += \
+	$(systemunitdir)/runlevel1.target.wants \
+	$(systemunitdir)/runlevel2.target.wants \
+	$(systemunitdir)/runlevel3.target.wants \
+	$(systemunitdir)/runlevel4.target.wants \
+	$(systemunitdir)/runlevel5.target.wants \
+	\
+	$(tmpfilesdir) \
+	$(sysconfdir)/tmpfiles.d \
+	$(prefix)/lib/modules-load.d \
+	$(sysconfdir)/modules-load.d \
+	$(prefix)/lib/sysctl.d \
+	$(sysconfdir)/sysctl.d \
+	$(systemshutdowndir) \
+	$(systemsleepdir) \
+	$(systemgeneratordir) \
+	$(usergeneratordir) \
+	\
+	$(userunitdir) \
+	$(pkgsysconfdir)/system \
+	$(pkgsysconfdir)/system/multi-user.target.wants \
+	$(pkgsysconfdir)/system/getty.target.wants \
+	$(pkgsysconfdir)/user \
+	$(dbussessionservicedir) \
+	$(sysconfdir)/xdg/systemd
 
 if HAVE_KMOD
 SYSINIT_TARGET_WANTS += \
@@ -4059,7 +4060,7 @@ install-exec-hook: $(INSTALL_EXEC_HOOKS)
 
 uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
 
-install-data-hook: systemd-install-data-hook $(INSTALL_DATA_HOOKS)
+install-data-hook: $(INSTALL_DATA_HOOKS)
 
 distclean-local: $(DISTCLEAN_LOCAL_HOOKS)
 

commit 6ff392416e6a6403e0183ca9c3e158f7aa6bc7ea
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jan 22 22:24:54 2013 -0500

    build-sys: add a variable to collect .wants links
    
    The idea is to make Makefile.am more declarative and avoid
    repetitions. Redeclaring unit links as variables also makes
    it easier to conditionally install only some of them.

diff --git a/Makefile.am b/Makefile.am
index 7d5bd5a..a7a7940 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -179,6 +179,48 @@ define move-to-rootlibdir
 	fi
 endef
 
+INSTALL_DIRS =
+
+RUNLEVEL1_TARGET_WANTS =
+RUNLEVEL2_TARGET_WANTS =
+RUNLEVEL3_TARGET_WANTS =
+RUNLEVEL4_TARGET_WANTS =
+RUNLEVEL5_TARGET_WANTS =
+SHUTDOWN_TARGET_WANTS =
+LOCAL_FS_TARGET_WANTS =
+MULTI_USER_TARGET_WANTS =
+SYSINIT_TARGET_WANTS =
+BASIC_TARGET_WANTS =
+SOCKETS_TARGET_WANTS =
+
+install-target-wants-hook:
+	what="$(RUNLEVEL1_TARGET_WANTS)" && wants=runlevel1.target && $(add-wants)
+	what="$(RUNLEVEL2_TARGET_WANTS)" && wants=runlevel2.target && $(add-wants)
+	what="$(RUNLEVEL3_TARGET_WANTS)" && wants=runlevel3.target && $(add-wants)
+	what="$(RUNLEVEL4_TARGET_WANTS)" && wants=runlevel4.target && $(add-wants)
+	what="$(RUNLEVEL5_TARGET_WANTS)" && wants=runlevel5.target && $(add-wants)
+	what="$(SHUTDOWN_TARGET_WANTS)" && wants=shutdown.target && $(add-wants)
+	what="$(LOCAL_FS_TARGET_WANTS)" && wants=local-fs.target && $(add-wants)
+	what="$(MULTI_USER_TARGET_WANTS)" && wants=multi-user.target && $(add-wants)
+	what="$(SYSINIT_TARGET_WANTS)" && wants=sysinit.target && $(add-wants)
+	what="$(BASIC_TARGET_WANTS)" && wants=basic.target && $(add-wants)
+	what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && $(add-wants)
+
+define add-wants
+	dir=$(DESTDIR)$(systemunitdir)/$$wants.wants && \
+	$(MKDIR_P) -m 0755 $$dir && \
+	( cd $$dir && \
+	  rm -f $$what && \
+	  for i in $$what; do ln -s ../$$i . || exit $$? ; done )
+endef
+
+install-directories-hook:
+	$(MKDIR_P) $(addprefix $(DESTDIR),$(INSTALL_DIRS))
+
+INSTALL_EXEC_HOOKS += \
+	install-target-wants-hook \
+	install-directories-hook
+
 # ------------------------------------------------------------------------------
 rootbin_PROGRAMS = \
 	systemctl \
@@ -1893,15 +1935,12 @@ CLEANFILES += \
 	units/systemd-udev-trigger.service \
 	units/systemd-udev-settle.service
 
-systemd-install-hook:
-	$(MKDIR_P) $(DESTDIR)$(systemunitdir)/sockets.target.wants
-	ln -sf ../systemd-udevd-control.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-control.socket
-	ln -sf ../systemd-udevd-kernel.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-kernel.socket
-	$(MKDIR_P) $(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	ln -sf ../systemd-udevd.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udevd.service
-	ln -sf ../systemd-udev-trigger.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev-trigger.service
-
-INSTALL_DATA_HOOKS += systemd-install-hook
+SOCKETS_TARGET_WANTS += \
+	systemd-udevd-control.socket \
+	systemd-udevd-kernel.socket
+SYSINIT_TARGET_WANTS += \
+	systemd-udevd.service \
+	systemd-udev-trigger.service
 
 bin_PROGRAMS += \
 	udevadm
@@ -2792,20 +2831,11 @@ pkgconfiglib_DATA += \
 dist_catalog_DATA = \
 	catalog/systemd.catalog
 
-journal-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
-		rm -f systemd-journald.socket && \
-		$(LN_S) ../systemd-journald.socket )
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f systemd-journald.service systemd-journal-flush.service && \
-		$(LN_S) ../systemd-journald.service && \
-		$(LN_S) ../systemd-journal-flush.service )
-
-INSTALL_DATA_HOOKS += \
-	journal-install-data-hook
+SOCKETS_TARGET_WANTS += \
+	systemd-journald.socket
+SYSINIT_TARGET_WANTS += \
+	systemd-journald.service \
+	systemd-journal-flush.service
 
 EXTRA_DIST += \
 	src/journal/libsystemd-journal.pc.in \
@@ -2902,19 +2932,13 @@ dist_systemunit_DATA += \
 nodist_systemunit_DATA += \
 	units/systemd-binfmt.service
 
-binfmt-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(prefix)/lib/binfmt.d \
-		$(DESTDIR)$(sysconfdir)/binfmt.d \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f systemd-binfmt.service \
-			proc-sys-fs-binfmt_misc.automount && \
-		$(LN_S) ../systemd-binfmt.service systemd-binfmt.service && \
-		$(LN_S) ../proc-sys-fs-binfmt_misc.automount proc-sys-fs-binfmt_misc.automount )
+INSTALL_DIRS += \
+	$(prefix)/lib/binfmt.d \
+	$(sysconfdir)/binfmt.d
 
-INSTALL_DATA_HOOKS += \
-	binfmt-install-data-hook
+SYSINIT_TARGET_WANTS += \
+	systemd-binfmt.service \
+	proc-sys-fs-binfmt_misc.automount
 
 MANPAGES += \
 	man/binfmt.d.5 \
@@ -2943,15 +2967,8 @@ rootlibexec_PROGRAMS += \
 nodist_systemunit_DATA += \
 	units/systemd-vconsole-setup.service
 
-vconsole-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f systemd-vconsole-setup.service && \
-		$(LN_S) ../systemd-vconsole-setup.service systemd-vconsole-setup.service )
-
-INSTALL_DATA_HOOKS += \
-	vconsole-install-data-hook
+SYSINIT_TARGET_WANTS += \
+	systemd-vconsole-setup.service
 
 MANPAGES += \
 	man/vconsole.conf.5 \
@@ -3085,19 +3102,10 @@ systemd_random_seed_LDADD = \
 	libsystemd-label.la \
 	libsystemd-shared.la
 
-randomseed-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir)/shutdown.target.wants \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	( cd $(DESTDIR)$(systemunitdir)/shutdown.target.wants && \
-		rm -f systemd-random-seed-save.service && \
-		$(LN_S) ../systemd-random-seed-save.service systemd-random-seed-save.service )
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f systemd-random-seed-load.service && \
-		$(LN_S) ../systemd-random-seed-load.service systemd-random-seed-load.service )
-
-INSTALL_DATA_HOOKS += \
-	randomseed-install-data-hook
+SHUTDOWN_TARGET_WANTS += \
+	systemd-random-seed-save.service
+SYSINIT_TARGET_WANTS += \
+	systemd-random-seed-load.service
 
 MANPAGES += \
 	man/systemd-random-seed-load.service.8
@@ -3146,15 +3154,8 @@ systemd_cryptsetup_generator_LDADD = \
 	libsystemd-label.la \
 	libsystemd-shared.la
 
-cryptsetup-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f cryptsetup.target && \
-		$(LN_S) ../cryptsetup.target cryptsetup.target )
-
-INSTALL_DATA_HOOKS += \
-	cryptsetup-install-data-hook
+SYSINIT_TARGET_WANTS += \
+	cryptsetup.target
 
 MANPAGES += \
 	man/systemd-cryptsetup at .service.8 \
@@ -3634,17 +3635,17 @@ pkgconfiglib_DATA += \
 polkitpolicy_files += \
 	src/login/org.freedesktop.login1.policy
 
+INSTALL_DIRS += \
+	$(systemdstatedir)
+
+MULTI_USER_TARGET_WANTS += \
+	systemd-logind.service \
+	systemd-user-sessions.service
+
 logind-install-data-hook:
-	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir)/multi-user.target.wants \
-		$(DESTDIR)$(systemdstatedir)
 	( cd $(DESTDIR)$(systemunitdir) && \
 		rm -f dbus-org.freedesktop.login1.service && \
 		$(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
-	( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
-		rm -f systemd-logind.service systemd-user-sessions.service && \
-		$(LN_S) ../systemd-logind.service systemd-logind.service && \
-		$(LN_S) ../systemd-user-sessions.service systemd-user-sessions.service )
 
 INSTALL_DATA_HOOKS += \
 	logind-install-data-hook
@@ -3959,6 +3960,41 @@ EXTRA_DIST += \
 EXTRA_DIST += \
 	shell-completion/systemd-zsh-completion.zsh
 
+SOCKETS_TARGET_WANTS += \
+	systemd-initctl.socket \
+	systemd-shutdownd.socket
+
+RUNLEVEL1_TARGET_WANTS += \
+	systemd-update-utmp-runlevel.service
+RUNLEVEL2_TARGET_WANTS += \
+	systemd-update-utmp-runlevel.service
+RUNLEVEL3_TARGET_WANTS += \
+	systemd-update-utmp-runlevel.service
+RUNLEVEL4_TARGET_WANTS += \
+	systemd-update-utmp-runlevel.service
+RUNLEVEL5_TARGET_WANTS += \
+	systemd-update-utmp-runlevel.service
+SHUTDOWN_TARGET_WANTS += \
+	systemd-update-utmp-shutdown.service
+LOCAL_FS_TARGET_WANTS += \
+	systemd-remount-fs.service \
+	systemd-fsck-root.service \
+	tmp.mount
+MULTI_USER_TARGET_WANTS += \
+	getty.target \
+	systemd-ask-password-wall.path
+SYSINIT_TARGET_WANTS += \
+	dev-hugepages.mount \
+	dev-mqueue.mount \
+	sys-kernel-config.mount \
+	sys-kernel-debug.mount \
+	sys-fs-fuse-connections.mount \
+	systemd-tmpfiles-setup.service \
+	systemd-sysctl.service \
+	systemd-ask-password-console.path
+BASIC_TARGET_WANTS += \
+	systemd-tmpfiles-clean.timer
+
 systemd-install-data-hook:
 	$(MKDIR_P) -m 0755 \
 		$(DESTDIR)$(tmpfilesdir) \
@@ -3972,19 +4008,7 @@ systemd-install-data-hook:
 		$(DESTDIR)$(systemgeneratordir) \
 		$(DESTDIR)$(usergeneratordir)
 	$(MKDIR_P) -m 0755 \
-		$(DESTDIR)$(systemunitdir) \
 		$(DESTDIR)$(userunitdir) \
-		$(DESTDIR)$(systemunitdir)/sysinit.target.wants \
-		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
-		$(DESTDIR)$(systemunitdir)/basic.target.wants \
-		$(DESTDIR)$(systemunitdir)/shutdown.target.wants \
-		$(DESTDIR)$(systemunitdir)/local-fs.target.wants \
-		$(DESTDIR)$(systemunitdir)/runlevel1.target.wants \
-		$(DESTDIR)$(systemunitdir)/runlevel2.target.wants \
-		$(DESTDIR)$(systemunitdir)/runlevel3.target.wants \
-		$(DESTDIR)$(systemunitdir)/runlevel4.target.wants \
-		$(DESTDIR)$(systemunitdir)/runlevel5.target.wants \
-		$(DESTDIR)$(systemunitdir)/multi-user.target.wants \
 		$(DESTDIR)$(pkgsysconfdir)/system \
 		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
 		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
@@ -3994,35 +4018,7 @@ systemd-install-data-hook:
 	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
 		rm -f user && \
 		$(LN_S) $(pkgsysconfdir)/user user )
-	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
-		rm -f systemd-initctl.socket systemd-shutdownd.socket && \
-		$(LN_S) ../systemd-initctl.socket systemd-initctl.socket && \
-		$(LN_S) ../systemd-shutdownd.socket systemd-shutdownd.socket )
-	( cd $(DESTDIR)$(systemunitdir)/runlevel1.target.wants && \
-		rm -f systemd-update-utmp-runlevel.service && \
-		$(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service )
-	( cd $(DESTDIR)$(systemunitdir)/runlevel2.target.wants && \
-		rm -f systemd-update-utmp-runlevel.service && \
-		$(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service )
-	( cd $(DESTDIR)$(systemunitdir)/runlevel3.target.wants && \
-		rm -f systemd-update-utmp-runlevel.service && \
-		$(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service )
-	( cd $(DESTDIR)$(systemunitdir)/runlevel4.target.wants && \
-		rm -f systemd-update-utmp-runlevel.service && \
-		$(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service )
-	( cd $(DESTDIR)$(systemunitdir)/runlevel5.target.wants && \
-		rm -f systemd-update-utmp-runlevel.service && \
-		$(LN_S) ../systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service )
-	( cd $(DESTDIR)$(systemunitdir)/shutdown.target.wants && \
-		rm -f systemd-update-utmp-shutdown.service && \
-		$(LN_S) ../systemd-update-utmp-shutdown.service systemd-update-utmp-shutdown.service )
-	( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \
-		rm -f systemd-remount-fs.service \
-			systemd-fsck-root.service \
-			tmp.mount && \
-		$(LN_S) ../systemd-remount-fs.service systemd-remount-fs.service && \
-		$(LN_S) ../systemd-fsck-root.service systemd-fsck-root.service && \
-		$(LN_S) ../tmp.mount tmp.mount )
+
 	( cd $(DESTDIR)$(userunitdir) && \
 		rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \
 		$(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
@@ -4044,44 +4040,19 @@ systemd-install-data-hook:
 		$(LN_S) graphical.target default.target && \
 		$(LN_S) reboot.target ctrl-alt-del.target && \
 		$(LN_S) getty at .service autovt at .service )
-	( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
-		rm -f getty.target systemd-ask-password-wall.path && \
-		$(LN_S) ../getty.target getty.target && \
-		$(LN_S) ../systemd-ask-password-wall.path systemd-ask-password-wall.path)
 	( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
 		rm -f getty at tty1.service && \
 		$(LN_S) $(systemunitdir)/getty at .service getty at tty1.service )
 	( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
 		rm -f remote-fs.target && \
 		$(LN_S) $(systemunitdir)/remote-fs.target remote-fs.target )
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f dev-hugepages.mount \
-			dev-mqueue.mount \
-			sys-kernel-config.mount \
-			sys-kernel-debug.mount \
-			sys-fs-fuse-connections.mount \
-			systemd-tmpfiles-setup.service \
-			systemd-sysctl.service \
-			systemd-ask-password-console.path && \
-		$(LN_S) ../dev-hugepages.mount dev-hugepages.mount && \
-		$(LN_S) ../dev-mqueue.mount dev-mqueue.mount && \
-		$(LN_S) ../sys-kernel-config.mount sys-kernel-config.mount && \
-		$(LN_S) ../sys-kernel-debug.mount sys-kernel-debug.mount && \
-		$(LN_S) ../sys-fs-fuse-connections.mount sys-fs-fuse-connections.mount && \
-		$(LN_S) ../systemd-tmpfiles-setup.service systemd-tmpfiles-setup.service && \
-		$(LN_S) ../systemd-sysctl.service systemd-sysctl.service && \
-		$(LN_S) ../systemd-ask-password-console.path systemd-ask-password-console.path )
-	( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
-		rm -f systemd-tmpfiles-clean.timer && \
-		$(LN_S) ../systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.timer )
 	( cd $(DESTDIR)$(dbussessionservicedir) && \
 		rm -f org.freedesktop.systemd1.service && \
 		$(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
 
 if HAVE_KMOD
-	( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
-		rm -f systemd-modules-load.service && \
-		$(LN_S) ../systemd-modules-load.service systemd-modules-load.service )
+SYSINIT_TARGET_WANTS += \
+	systemd-modules-load.service
 endif
 
 install-exec-hook: $(INSTALL_EXEC_HOOKS)



More information about the systemd-commits mailing list