systemd: Remove init.d dir if systemd unit file is present and sysvinit not a distro...
authorMuhammad Shakeel <muhammad_shakeel@mentor.com>
Mon, 29 Jul 2013 08:09:51 +0000 (13:09 +0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 31 Jul 2013 05:59:56 +0000 (06:59 +0100)
If systemd is supported DISTRO_FEATURE and sysvinit is not and also if
systemd_unitdir contains anything then no need to keep init.d scripts
for sysvinit compatibility.

(From OE-Core rev: 823c90ad344ca2205f3055e2dcae08c6616f29b7)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/systemd.bbclass

index 9763faa..76f0e7d 100644 (file)
@@ -170,3 +170,18 @@ python rm_systemd_unitdir (){
             shutil.rmtree(systemd_unitdir)
 }
 do_install[postfuncs] += "rm_systemd_unitdir "
+
+python rm_sysvinit_initddir (){
+    import shutil
+    sysv_initddir = oe.path.join(d.getVar("D", True), (d.getVar('INIT_D_DIR', True) or "/etc/init.d"))
+
+    if ("systemd" in d.getVar("DISTRO_FEATURES", True).split() and
+        "sysvinit" not in d.getVar("DISTRO_FEATURES", True).split() and
+        os.path.exists(sysv_initddir)):
+        systemd_unitdir = oe.path.join(d.getVar("D", True), d.getVar('systemd_unitdir', True), "system")
+
+        # If systemd_unitdir contains anything, delete sysv_initddir
+        if (os.path.exists(systemd_unitdir) and os.listdir(systemd_unitdir)):
+            shutil.rmtree(sysv_initddir)
+}
+do_install[postfuncs] += "rm_sysvinit_initddir "