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.

Change-Id: Ia8fa19c468ee3f040770e51c5b3745852c9b2a90
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/recipes-phosphor/images/obmc-phosphor-image.bb b/recipes-phosphor/images/obmc-phosphor-image.bb
index 3d2b7b7..c7512ed 100644
--- a/recipes-phosphor/images/obmc-phosphor-image.bb
+++ b/recipes-phosphor/images/obmc-phosphor-image.bb
@@ -6,9 +6,11 @@
 
 IMAGE_FEATURES += " \
         obmc-bmc-state-mgmt \
+        obmc-bmcweb \
         obmc-chassis-mgmt \
         obmc-chassis-state-mgmt \
         obmc-console \
+        obmc-dbus-monitor \
         obmc-devtools \
         obmc-fan-control \
         obmc-fan-mgmt \
@@ -16,6 +18,7 @@
         obmc-host-ctl \
         obmc-host-ipmi \
         obmc-host-state-mgmt \
+        obmc-ikvm \
         obmc-inventory \
         obmc-leds \
         obmc-logging-mgmt \
@@ -26,6 +29,7 @@
         obmc-software \
         obmc-system-mgmt \
         obmc-user-mgmt \
+        obmc-user-mgmt-ldap \
         ${@bb.utils.contains('DISTRO_FEATURES', 'obmc-ubi-fs', 'read-only-rootfs', '', d)} \
         ${@bb.utils.contains('DISTRO_FEATURES', 'phosphor-mmc', 'read-only-rootfs', '', d)} \
         ssh-server-dropbear \
diff --git a/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 1da216c..deeae79 100644
--- a/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/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 \
+        "