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/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index d6ece7f..1c744ca 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -3,9 +3,11 @@
# Additional IMAGE_FEATURES available with Phosphor OpenBMC:
#
# - obmc-bmc-state-mgmt - OpenBMC BMC state management
+# - obmc-bmcweb - OpenBMC webserver
# - obmc-chassis-mgmt - OpenBMC chassis management
# - obmc-chassis-state-mgmt - OpenBMC chassis state management
# - obmc-console - OpenBMC serial over LAN
+# - obmc-dbus-monitor - OpenBMC dbus monitoring
# - obmc-devtools - OpenBMC development and debugging tools
# - obmc-fan-control - OpenBMC fan management
# - obmc-fan-mgmt - Deprecated - use obmc-fan-control instead
@@ -13,6 +15,7 @@
# - obmc-host-ctl - OpenBMC host control
# - obmc-host-ipmi - OpenBMC host IPMI
# - obmc-host-state-mgmt - OpenBMC host state management
+# - obmc-ikvm - OpenBMC KVM over IP
# - obmc-inventory - OpenBMC inventory support
# - obmc-leds - OpenBMC LED support
# - obmc-logging-mgmt - OpenBMC logging management
@@ -23,14 +26,17 @@
# - obmc-software - OpenBMC software management
# - obmc-system-mgmt - OpenBMC system management
# - obmc-user-mgmt - OpenBMC user management
+# - obmc-user-mgmt-ldap - OpenBMC LDAP users
# - obmc-debug-collector - OpenBMC debug collector
inherit core-image
FEATURE_PACKAGES_obmc-bmc-state-mgmt ?= "packagegroup-obmc-apps-bmc-state-mgmt"
+FEATURE_PACKAGES_obmc-bmcweb ?= "packagegroup-obmc-apps-bmcweb"
FEATURE_PACKAGES_obmc-chassis-mgmt ?= "${@bb.utils.contains('COMBINED_FEATURES', 'obmc-phosphor-chassis-mgmt', 'virtual-obmc-chassis-mgmt', '', d)}"
FEATURE_PACKAGES_obmc-chassis-state-mgmt ?= "packagegroup-obmc-apps-chassis-state-mgmt"
FEATURE_PACKAGES_obmc-console ?= "packagegroup-obmc-apps-console"
+FEATURE_PACKAGES_obmc-dbus-monitor ?= "packagegroup-obmc-apps-dbus-monitor"
FEATURE_PACKAGES_obmc-devtools ?= "packagegroup-obmc-apps-devtools"
FEATURE_PACKAGES_obmc-fan-control ?= "packagegroup-obmc-apps-fan-control"
FEATURE_PACKAGES_obmc-fan-mgmt ?= "${@bb.utils.contains('COMBINED_FEATURES', 'obmc-phosphor-fan-mgmt', 'virtual-obmc-fan-mgmt', '', d)}"
@@ -38,6 +44,7 @@
FEATURE_PACKAGES_obmc-host-ctl ?= "${@bb.utils.contains('COMBINED_FEATURES', 'obmc-host-ctl', 'virtual-obmc-host-ctl', '', d)}"
FEATURE_PACKAGES_obmc-host-ipmi ?= "${@bb.utils.contains('COMBINED_FEATURES', 'obmc-host-ipmi', 'virtual-obmc-host-ipmi-hw', '', d)}"
FEATURE_PACKAGES_obmc-host-state-mgmt ?= "packagegroup-obmc-apps-host-state-mgmt"
+FEATURE_PACKAGES_obmc-ikvm ?= "packagegroup-obmc-apps-ikvm"
FEATURE_PACKAGES_obmc-inventory ?= "packagegroup-obmc-apps-inventory"
FEATURE_PACKAGES_obmc-leds ?= "packagegroup-obmc-apps-leds"
FEATURE_PACKAGES_obmc-logging-mgmt ?= "packagegroup-obmc-apps-logging"
@@ -51,6 +58,7 @@
FEATURE_PACKAGES_obmc-settings-mgmt ?= "packagegroup-obmc-apps-settings"
FEATURE_PACKAGES_obmc-network-mgmt ?= "packagegroup-obmc-apps-network"
FEATURE_PACKAGES_obmc-user-mgmt ?= "packagegroup-obmc-apps-user-mgmt"
+FEATURE_PACKAGES_obmc-user-mgmt-ldap ?= "packagegroup-obmc-apps-user-mgmt-ldap"
# FIXME: phosphor-net-ipmi depends on phosphor-ipmi-host !?!? and
# cannot be built on core-qemu machines because of the dependency
diff --git a/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb b/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb
index 3d2b7b7..c7512ed 100644
--- a/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb
+++ b/meta-phosphor/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/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 \
+ "