meta-openpower: Predicate packages on MACHINE_FEATURES

Change packages enabled by meta-openpower to be enabled if and only if
both its corresponding feature string (obmc-openpower,
obmc-openpower-extra, obmc-openpower-legacy) are present in both
MACHINE_FEATURES and DISTRO_FEATURES.

Fixes openbmc/openbmc#2652.

Change-Id: Ife1a9b08e94bd85a888d584a0caa4dbfa6a172c0
Signed-off-by: Xo Wang <xow@google.com>
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/dbus/phosphor-mapper-config-native%.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/dbus/phosphor-mapper-config-native%.bbappend
index d4a9d91..89811c4 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/dbus/phosphor-mapper-config-native%.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/dbus/phosphor-mapper-config-native%.bbappend
@@ -1 +1 @@
-PHOSPHOR_MAPPER_CONFIGS_append = " openpower-dbus-interfaces-mapper-config-native"
+PHOSPHOR_MAPPER_CONFIGS_append = " ${@cf_enabled(d, 'obmc-openpower', 'openpower-dbus-interfaces-mapper-config-native')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/ipmi/phosphor-logging-error-logs-native.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/ipmi/phosphor-logging-error-logs-native.bbappend
index d189eb0..11ac257 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/ipmi/phosphor-logging-error-logs-native.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/ipmi/phosphor-logging-error-logs-native.bbappend
@@ -1 +1 @@
-DEPENDS += "openpower-ipmi-oem-error-native"
+DEPENDS_append = " ${@cf_enabled(d, 'obmc-openpower', 'openpower-ipmi-oem-error-native')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/logging/phosphor-logging.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/logging/phosphor-logging.bbappend
index ec5c68f..f4190ef 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/logging/phosphor-logging.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/logging/phosphor-logging.bbappend
@@ -1,4 +1,4 @@
-DEPENDS_append = " \
-            openpower-debug-collector-native \
-            openpower-dbus-interfaces-native \
-            "
+DEPENDS_append = " ${@cf_enabled(d, 'obmc-openpower', '\
+        openpower-debug-collector-native \
+        openpower-dbus-interfaces-native \
+        ')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
index 623e268..3bead56 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -1,4 +1,4 @@
-RDEPENDS_${PN}_append = " \
+RDEPENDS_${PN}_append = " ${@cf_enabled(d, 'obmc-openpower', '\
         nativesdk-openpower-dbus-interfaces-yaml \
         nativesdk-openpower-debug-collector-yaml \
-        "
+        ')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index cd61060..e0e13aa 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -1,24 +1,24 @@
-RDEPENDS_${PN}-extrasdevtools += "obmc-pydevtools"
+RDEPENDS_${PN}-extrasdevtools_append = " ${@cf_enabled(d, 'obmc-openpower', 'obmc-pydevtools')}"
 
 # Add the deprecated /org/openbmc inventory namespace providing
 # obmc-mgr-inventory application to the inventory packagegroup
 # until all applications have been updated to use the new,
 # officially spec'ed xyz.openbmc_project.Inventory.Manager
 # provider (VIRTUAL-RUNTIME_obmc-inventory-manager).
-RDEPENDS_${PN}-inventory += "obmc-mgr-inventory"
+RDEPENDS_${PN}-inventory_append = " ${@cf_enabled(d, 'obmc-openpower-legacy', 'obmc-mgr-inventory')}"
 
 # Add the deprecated /org/openbmc sensor namespace providing
 # the obmc-mgr-sensor application to the sensor
 # packagegroup until all applications have been updated to use
 # the new, officially spec'ed xyz.openbmc_project.SensorValue
 # providers (VIRTUAL-RUNTIME_obmc-sensor-hwmon).
-RDEPENDS_${PN}-sensors += "obmc-mgr-sensor"
+RDEPENDS_${PN}-sensors_append = " ${@cf_enabled(d, 'obmc-openpower-legacy', 'obmc-mgr-sensor')}"
 
 # Add checkstop monitor as part of host state management package
 # This will kick start a gpio monitor that will catch the
 # host checkstop conditions and takes necessary actions
-RDEPENDS_${PN}-host-state-mgmt += "checkstop-monitor"
+RDEPENDS_${PN}-host-state-mgmt_append = " ${@cf_enabled(d, 'obmc-openpower', 'checkstop-monitor')}"
 
 # Add openpower debug collector as a requirement for state-mgmt
 # since it is used during checkstop handling.
-RDEPENDS_${PN}-host-state-mgmt += "openpower-debug-collector"
+RDEPENDS_${PN}-host-state-mgmt_append = " ${@cf_enabled(d, 'obmc-openpower', 'openpower-debug-collector')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmi-sensors.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmi-sensors.bbappend
index 7fac2dd..bbd9de0 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmi-sensors.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmi-sensors.bbappend
@@ -1 +1 @@
-OBMC_IPMI_SENSORS_PROVIDERS_append=" openpower-ipmi-oem-sensor-inventory-mrw-native"
+OBMC_IPMI_SENSORS_PROVIDERS_append = " ${@cf_enabled(d, 'obmc-openpower', 'openpower-ipmi-oem-sensor-inventory-mrw-native')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmid-providers.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmid-providers.bbappend
index 538c5b9..61fa2e4 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmid-providers.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-ipmid-providers.bbappend
@@ -1 +1 @@
-OBMC_IPMID_PROVIDERS_append=" openpower-ipmi-oem"
+OBMC_IPMID_PROVIDERS_append = " ${@cf_enabled(d, 'obmc-openpower', 'openpower-ipmi-oem')}"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-debugtools.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-debugtools.bbappend
index bb3db38..a6089bb 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-debugtools.bbappend
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-debugtools.bbappend
@@ -1,5 +1,5 @@
-RDEPENDS_${PN}_append = " \
+RDEPENDS_${PN}_append = " ${@cf_enabled(d, 'obmc-openpower-extra', '\
     pflash \
     gard \
     fsidbg \
-    "
+    ')}"