]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
rootfs: Conditionally uninstall update-rc.d
authorKhem Raj <raj.khem@gmail.com>
Sun, 6 Sep 2015 15:08:15 +0000 (15:08 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 10 Sep 2015 15:52:04 +0000 (16:52 +0100)
update-rc.d is now needed by systemd to interact with sysv
scripts, so if we have a mixed system, then we can not uninstall
update-rc.d as it is going to break systemd functionality, we check for
sysvinit and sytemd in distro and also ensure that its not building an
image with readonly rootfs

Signed-off-by: Khem Raj <raj.khem@gmail.com>
meta/lib/oe/rootfs.py

index 2372226e78cdd0d72f03bf27fb41bb7fd14b5c80..3b53fce4aeee06388c2b13246f6f72f8cfb3ca62 100644 (file)
@@ -230,6 +230,14 @@ class Rootfs(object):
 
         runtime_pkgmanage = bb.utils.contains("IMAGE_FEATURES", "package-management",
                          True, False, self.d)
+        sysvcompat_in_distro = bb.utils.contains("DISTRO_FEATURES", [ "systemd", "sysvinit" ],
+                         True, False, self.d)
+        image_rorfs = bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs",
+                         True, False, self.d)
+        if sysvcompat_in_distro and not image_rorfs:
+            pkg_to_remove = ""
+        else:
+            pkg_to_remove = "update-rc.d"
         if not runtime_pkgmanage:
             # Remove components that we don't need if we're not going to install
             # additional packages at runtime
@@ -243,7 +251,7 @@ class Rootfs(object):
                         if pkg in ["update-rc.d",
                                 "base-passwd",
                                 "shadow",
-                                "update-alternatives",
+                                "update-alternatives", pkg_to_remove,
                                 self.d.getVar("ROOTFS_BOOTSTRAP_INSTALL", True)
                                 ]:
                             pkgs_to_remove.append(pkg)