meta-phosphor: ldap: nsswitch: add rootfs posthook

An ldap image feature was recently added.  If the image feature is used
without the distro feature, nsswitch will have the wrong content and the
function won't work.  Move this logic to a rootfs post hook so that the
distro feature is not required (and can be deprecated) and because this
is the expected way to make these sorts of modifications to base files
anyway.

(From meta-phosphor rev: 22de160c862b4cf4fee2a3f62e9bd7fad807344d)

Change-Id: I1bc69a96e833801c58bebce68b633e8550982fb8
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index 1c744ca..5961839 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -84,3 +84,11 @@
         echo "SYSTEMD_PAGER=" >> ${IMAGE_ROOTFS}${sysconfdir}/profile
         echo "export SYSTEMD_PAGER" >> ${IMAGE_ROOTFS}${sysconfdir}/profile
 }
+
+enable_ldap_nsswitch() {
+    sed -i 's/\(\(passwd\|group\|shadow\):\s*\).*/\1files ldap/' \
+        "${IMAGE_ROOTFS}${sysconfdir}/nsswitch.conf"
+}
+
+ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('IMAGE_FEATURES', 'obmc-user-mgmt-ldap', 'enable_ldap_nsswitch ;', '', d)}"
+
diff --git a/meta-phosphor/recipes-core/base-files/base-files/nsswitch_ldap.conf b/meta-phosphor/recipes-core/base-files/base-files/nsswitch_ldap.conf
deleted file mode 100644
index 78141f6..0000000
--- a/meta-phosphor/recipes-core/base-files/base-files/nsswitch_ldap.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# /etc/nsswitch.conf
-#
-# Example configuration of GNU Name Service Switch functionality.
-# If you have the `glibc-doc' and `info' packages installed, try:
-# `info libc "Name Service Switch"' for information about this file.
-
-passwd:         files ldap
-group:          files ldap
-shadow:         files ldap
-
-hosts:          files dns
-networks:       files
-
-protocols:      db files
-services:       db files
-ethers:         db files
-rpc:            db files
-
-netgroup:       nis
-
diff --git a/meta-phosphor/recipes-core/base-files/base-files_%.bbappend b/meta-phosphor/recipes-core/base-files/base-files_%.bbappend
index 60d2bd6..b6c4222 100644
--- a/meta-phosphor/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-phosphor/recipes-core/base-files/base-files_%.bbappend
@@ -7,16 +7,12 @@
 
 SRC_URI += " \
     file://50-rp_filter.conf \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'file://nsswitch_ldap.conf', '', d)}"
+"
 
 do_install_append() {
 
     install -d ${D}/srv
 
-    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)}" ]; then
-        install -D -m 600 ${WORKDIR}/nsswitch_ldap.conf ${D}/${sysconfdir}/nsswitch.conf
-    fi
-
     install -d ${D}/${libdir}/sysctl.d
     install -D -m 644 ${WORKDIR}/50-rp_filter.conf ${D}/${libdir}/sysctl.d/50-rp_filter.conf
 }