Blob Blame History Raw
From c6ee0089d433ce746625ac05a84de731272db39b Mon Sep 17 00:00:00 2001
From: Michal Schmidt <mschmidt@redhat.com>
Date: Tue, 9 Apr 2013 11:06:56 +0200
Subject: [PATCH] (F18) Revert "service: sysv - remove distribution specific
 targets"

This reverts commit 3f141375cb4ff4f850b267258e776c90df594990.
---
 Makefile.am                      |  1 +
 man/systemd.special.xml          | 28 ++++++++++++++++++++++++++++
 src/core/service.c               |  8 ++++++++
 src/core/special.h               |  2 ++
 units/mail-transfer-agent.target | 13 +++++++++++++
 5 files changed, 52 insertions(+)
 create mode 100644 units/mail-transfer-agent.target

diff --git a/Makefile.am b/Makefile.am
index 21a0e4b..57be908 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -361,6 +361,7 @@ dist_systemunit_DATA = \
 	units/network-online.target \
 	units/nss-lookup.target \
 	units/nss-user-lookup.target \
+	units/mail-transfer-agent.target \
 	units/hibernate.target \
 	units/hybrid-sleep.target \
 	units/poweroff.target \
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
index cd0f5aa..b055c6b 100644
--- a/man/systemd.special.xml
+++ b/man/systemd.special.xml
@@ -69,6 +69,7 @@
                 <filename>kexec.target</filename>,
                 <filename>local-fs.target</filename>,
                 <filename>local-fs-pre.target</filename>,
+                <filename>mail-transfer-agent.target</filename>,
                 <filename>multi-user.target</filename>,
                 <filename>network.target</filename>,
                 <filename>network-online.target</filename>,
@@ -209,6 +210,14 @@
                                         <filename>gdm.service</filename>
                                         or a similar display manager
                                         service.</para>
+                                        <para>systemd automatically
+                                        adds dependencies of type
+                                        After for this target unit to
+                                        all SysV init script service
+                                        units with a LSB header
+                                        referring to the
+                                        <literal>$x-display-manager</literal>
+                                        facility.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
@@ -366,6 +375,25 @@
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
+                                <term><filename>mail-transfer-agent.target</filename></term>
+                                <listitem>
+                                        <para>The mail transfer agent
+                                        (MTA) service. Usually this
+                                        should pull-in all units
+                                        necessary for
+                                        sending/receiving mails on the
+                                        local host.</para>
+
+                                        <para>systemd automatically
+                                        adds dependencies of type
+                                        After for this target unit to
+                                        all SysV init script service
+                                        units with an LSB header
+                                        referring to the
+                                        <literal>$mail-transfer-agent</literal>.</para>
+                                </listitem>
+                        </varlistentry>
+                        <varlistentry>
                                 <term><filename>multi-user.target</filename></term>
                                 <listitem>
                                         <para>A special target unit
diff --git a/src/core/service.c b/src/core/service.c
index a104b30..29e3504 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -355,6 +355,13 @@ static int sysv_translate_facility(const char *name, const char *filename, char
                 "remote_fs",            SPECIAL_REMOTE_FS_TARGET,
                 "syslog",               NULL,
                 "time",                 SPECIAL_TIME_SYNC_TARGET,
+
+                /* common extensions */
+                "mail-transfer-agent",  SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
+                "x-display-manager",    SPECIAL_DISPLAY_MANAGER_SERVICE,
+                "null",                 NULL,
+                "mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
+                "smtp",                 SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
         };
 
         unsigned i;
@@ -805,6 +812,7 @@ static int service_load_sysv_path(Service *s, const char *path) {
                                         }
 
                                         r = sysv_translate_facility(n, path_get_file_name(path), &m);
+
                                         if (r < 0) {
                                                 log_error_unit(u->id,
                                                                "[%s:%u] Failed to translate LSB dependency %s, ignoring: %s",
diff --git a/src/core/special.h b/src/core/special.h
index a9b50bc..d5a0fe8 100644
--- a/src/core/special.h
+++ b/src/core/special.h
@@ -63,6 +63,8 @@
 #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target"     /* LSB's $named */
 #define SPECIAL_RPCBIND_TARGET "rpcbind.target"           /* LSB's $portmap */
 #define SPECIAL_TIME_SYNC_TARGET "time-sync.target"       /* LSB's $time */
+#define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* Common extension of LSB */
+#define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /* Common extension of LSB */
 
 /*
  * Rules regarding adding further high level targets like the above:
diff --git a/units/mail-transfer-agent.target b/units/mail-transfer-agent.target
new file mode 100644
index 0000000..d2f24d1
--- /dev/null
+++ b/units/mail-transfer-agent.target
@@ -0,0 +1,13 @@
+#  This file is part of systemd.
+#
+#  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
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+# This exists mostly for compatibility with SysV/LSB units, and
+# implementations lacking socket/bus activation.
+
+[Unit]
+Description=Mail Transfer Agent
+Documentation=man:systemd.special(7)