meta-phosphor: obmc-apps: Avoid extras

Much like CORE_IMAGE_EXTRA_INSTALL, packagegroup-obmc-apps-extras is a
dumping ground.  Move packages to proper packagroups (bmcweb, ikvm,
dbus-monitor, ldap) and create IMAGE_FEATURES for easy opt-out.

(From meta-phosphor rev: 7463d6daf6868dcad47070c35c1abaec5cf3d2a5)

Change-Id: Ic4209059ac6e22aac18ef95010c7da1439686962
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 1da216c..deeae79 100644
--- a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -6,12 +6,15 @@
 PROVIDES = "${PACKAGES}"
 PACKAGES = " \
         ${PN}-bmc-state-mgmt \
+        ${PN}-bmcweb \
         ${PN}-chassis-state-mgmt \
         ${PN}-console \
+        ${PN}-dbus-monitor \
         ${PN}-extras \
         ${PN}-devtools \
         ${PN}-fan-control \
         ${PN}-host-state-mgmt \
+        ${PN}-ikvm \
         ${PN}-inventory \
         ${PN}-leds \
         ${PN}-logging \
@@ -24,6 +27,7 @@
         ${PN}-settings \
         ${PN}-network \
         ${PN}-user-mgmt \
+        ${PN}-user-mgmt-ldap \
         "
 
 SUMMARY_${PN}-bmc-state-mgmt = "BMC state management"
@@ -32,6 +36,12 @@
         phosphor-state-manager-systemd-target-monitor \
         "
 
+SUMMARY_${PN}-bmcweb = "bmcweb support"
+RDEPENDS_${PN}-bmcweb = " \
+        bmcweb \
+        phosphor-bmcweb-cert-config \
+        "
+
 SUMMARY_${PN}-chassis-state-mgmt = "Chassis state management"
 RDEPENDS_${PN}-chassis-state-mgmt = " \
         ${VIRTUAL-RUNTIME_obmc-chassis-state-manager} \
@@ -43,15 +53,9 @@
         obmc-console \
         "
 
+# Deprecated - add new packages to an existing packagegroup or create a new one.
 SUMMARY_${PN}-extras = "Extra features"
-RDEPENDS_${PN}-extras = " \
-        bmcweb \
-        phosphor-bmcweb-cert-config \
-        phosphor-nslcd-cert-config \
-        phosphor-nslcd-authority-cert-config \
-        obmc-ikvm \
-        phosphor-dbus-monitor \
-        "
+RDEPENDS_${PN}-extras = ""
 
 SUMMARY_${PN}-devtools = "Development tools"
 RDEPENDS_${PN}-devtools = " \
@@ -63,6 +67,11 @@
         rsync \
         "
 
+SUMMARY_${PN}-dbus-monitor = "Support for dbus monitoring"
+RDEPENDS_${PN}-dbus-monitor = " \
+        phosphor-dbus-monitor \
+        "
+
 # Use the fan control package group for applications
 # implementing fan control or system fan policy only.
 # Applications that create inventory or sensors should
@@ -79,6 +88,11 @@
         ${VIRTUAL-RUNTIME_obmc-discover-system-state} \
         "
 
+SUMMARY_${PN}-ikvm = "KVM over IP support"
+RDEPENDS_${PN}-ikvm = " \
+        obmc-ikvm \
+        "
+
 SUMMARY_${PN}-inventory = "Inventory applications"
 RDEPENDS_${PN}-inventory = " \
         ${VIRTUAL-RUNTIME_obmc-inventory-manager} \
@@ -152,9 +166,16 @@
 SUMMARY_${PN}-user-mgmt = "User management applications"
 RDEPENDS_${PN}-user-mgmt = " \
         ${VIRTUAL-RUNTIME_obmc-user-mgmt} \
-        ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'nss-pam-ldapd', '', d)} \
-        ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'phosphor-ldap', '', d)} \
         "
 RRECOMMENDS_${PN}-user-mgmt = " \
         pam-plugin-access \
         "
+
+SUMMARY_${PN}-user-mgmt-ldap = "LDAP users and groups support"
+RDEPENDS_${PN}-user-mgmt-ldap = " \
+        ${PN}-user-mgmt \
+        nss-pam-ldapd \
+        phosphor-ldap \
+        phosphor-nslcd-cert-config \
+        phosphor-nslcd-authority-cert-config \
+        "