image: Use VIRTUAL-RUNTIME for state pkgs

The correct idiom for modeling runtime only virtual implementations
with no build time API is to use VIRTUAL-RUNTIME in favor of
PREFERRED_PROVIDER.

Update the state management management applications accordingly
since they fall into this category.

Change-Id: I8f0092a38da4ea0741dd0f464b71f4ea12d12019
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index 57c0fc6..c31b7d7 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -24,15 +24,15 @@
 inherit obmc-phosphor-license
 inherit obmc-phosphor-utils
 
-FEATURE_PACKAGES_obmc-bmc-state-mgmt ?= "${@cf_enabled(d, 'obmc-bmc-state-mgmt', 'virtual-obmc-bmc-state-mgmt')}"
+FEATURE_PACKAGES_obmc-bmc-state-mgmt ?= "packagegroup-obmc-apps-bmc-state-mgmt"
 FEATURE_PACKAGES_obmc-chassis-mgmt ?= "${@cf_enabled(d, 'obmc-phosphor-chassis-mgmt', 'virtual-obmc-chassis-mgmt')}"
-FEATURE_PACKAGES_obmc-chassis-state-mgmt ?= "${@cf_enabled(d, 'obmc-chassis-state-mgmt', 'virtual-obmc-chassis-state-mgmt')}"
+FEATURE_PACKAGES_obmc-chassis-state-mgmt ?= "packagegroup-obmc-apps-chassis-state-mgmt"
 FEATURE_PACKAGES_obmc-event-mgmt ?= "${@df_enabled(d, 'obmc-phosphor-event-mgmt', 'virtual-obmc-event-mgmt')}"
 FEATURE_PACKAGES_obmc-fan-mgmt ?= "${@cf_enabled(d, 'obmc-phosphor-fan-mgmt', 'virtual-obmc-fan-mgmt')}"
 FEATURE_PACKAGES_obmc-flash-mgmt ?= "${@cf_enabled(d, 'obmc-phosphor-flash-mgmt', 'virtual-obmc-flash-mgmt')}"
 FEATURE_PACKAGES_obmc-host-ctl ?= "${@cf_enabled(d, 'obmc-host-ctl', 'virtual-obmc-host-ctl')}"
 FEATURE_PACKAGES_obmc-host-ipmi ?= "${@cf_enabled(d, 'obmc-host-ipmi', 'virtual-obmc-host-ipmi-hw')}"
-FEATURE_PACKAGES_obmc-host-state-mgmt ?= "${@cf_enabled(d, 'obmc-host-state-mgmt', 'virtual-obmc-host-state-mgmt')}"
+FEATURE_PACKAGES_obmc-host-state-mgmt ?= "packagegroup-obmc-apps-host-state-mgmt"
 FEATURE_PACKAGES_obmc-inventory ?= "packagegroup-obmc-apps-inventory"
 FEATURE_PACKAGES_obmc-leds ?= "packagegroup-obmc-apps-leds"
 FEATURE_PACKAGES_obmc-logging-mgmt ?= "${@df_enabled(d, 'obmc-logging-mgmt', 'virtual-obmc-logging-mgmt')}"
diff --git a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 556d79d..517a679 100644
--- a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -7,14 +7,27 @@
 
 PROVIDES = "${PACKAGES}"
 PACKAGES = " \
+        ${PN}-bmc-state-mgmt \
+        ${PN}-chassis-state-mgmt \
         ${PN}-extras \
         ${PN}-extrasdev \
+        ${PN}-host-state-mgmt \
         ${PN}-inventory \
         ${PN}-leds \
         ${PN}-sensors \
         ${PN}-software \
         "
 
+SUMMARY_${PN}-bmc-state-mgmt = "BMC state management"
+RDEPENDS_${PN}-bmc-state-mgmt = " \
+        ${VIRTUAL-RUNTIME_obmc-bmc-state-manager} \
+        "
+
+SUMMARY_${PN}-chassis-state-mgmt = "Chassis state management"
+RDEPENDS_${PN}-chassis-state-mgmt = " \
+        ${VIRTUAL-RUNTIME_obmc-chassis-state-manager} \
+        "
+
 SUMMARY_${PN}-extras = "Extra features"
 RDEPENDS_${PN}-extras = " \
         phosphor-rest \
@@ -25,6 +38,11 @@
         rest-dbus \
         "
 
+SUMMARY_${PN}-host-state-mgmt = "Host state management"
+RDEPENDS_${PN}-host-state-mgmt = " \
+        ${VIRTUAL-RUNTIME_obmc-host-state-manager} \
+        "
+
 SUMMARY_${PN}-inventory = "Inventory applications"
 RDEPENDS_${PN}-inventory = " \
         ${VIRTUAL-RUNTIME_obmc-inventory-manager} \
diff --git a/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb b/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
index b39baf3..a45e47a 100644
--- a/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
+++ b/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
@@ -36,18 +36,12 @@
 RDEPENDS_${PN}-chassis += "libsystemd phosphor-dbus-interfaces"
 RDEPENDS_${PN}-bmc += "libsystemd phosphor-dbus-interfaces"
 
-PROVIDES += "virtual/obmc-host-state-mgmt"
-RPROVIDES_${PN}-host += "virtual-obmc-host-state-mgmt"
 FILES_${PN}-host = "${sbindir}/phosphor-host-state-manager"
 DBUS_SERVICE_${PN}-host += "xyz.openbmc_project.State.Host.service"
 
-PROVIDES += "virtual/obmc-chassis-state-mgmt"
-RPROVIDES_${PN}-chassis += "virtual-obmc-chassis-state-mgmt"
 FILES_${PN}-chassis = "${sbindir}/phosphor-chassis-state-manager"
 DBUS_SERVICE_${PN}-chassis += "xyz.openbmc_project.State.Chassis.service"
 
-PROVIDES += "virtual/obmc-bmc-state-mgmt"
-RPROVIDES_${PN}-bmc += "virtual-obmc-bmc-state-mgmt"
 FILES_${PN}-bmc = "${sbindir}/phosphor-bmc-state-manager"
 DBUS_SERVICE_${PN}-bmc += "xyz.openbmc_project.State.BMC.service"
 
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index 0577085..f7ac0b5 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -8,14 +8,29 @@
 OBMC_RESET_BUTTON_INSTANCES ?= "0"
 OBMC_WATCHDOG_INSTANCES ?= "0"
 
-PREFERRED_PROVIDER_virtual/obmc-bmc-state-mgmt ?= "phosphor-state-manager"
 PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt ?= "obmc-phosphor-chassisd"
-PREFERRED_PROVIDER_virtual/obmc-chassis-state-mgmt ?= "phosphor-state-manager"
 PREFERRED_PROVIDER_virtual/obmc-event-mgmt ?= "obmc-phosphor-event"
 PREFERRED_PROVIDER_virtual/obmc-fan-mgmt ?= "obmc-phosphor-fand"
 PREFERRED_PROVIDER_virtual/obmc-flash-mgmt ?= "obmc-phosphor-flashd"
 PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw ?= "phosphor-ipmi-hw-example"
-PREFERRED_PROVIDER_virtual/obmc-host-state-mgmt ?= "phosphor-state-manager"
+
+# obmc-bmc-state-manager
+#
+# Provides an implementation of the xyz.openbmc_project.State.BMC
+# interface.
+VIRTUAL-RUNTIME_obmc-bmc-state-manager ?= "phosphor-state-manager-bmc"
+
+# obmc-chassis-state-manager
+#
+# Provides an implementation of the xyz.openbmc_project.State.Chassis
+# interface.
+VIRTUAL-RUNTIME_obmc-chassis-state-manager ?= "phosphor-state-manager-chassis"
+
+# obmc-host-state-manager
+#
+# Provides an implementation of the xyz.openbmc_project.State.Host
+# interface.
+VIRTUAL-RUNTIME_obmc-host-state-manager ?= "phosphor-state-manager-host"
 
 # obmc-inventory-manager
 #
diff --git a/meta-phosphor/conf/distro/openbmc-phosphor.conf b/meta-phosphor/conf/distro/openbmc-phosphor.conf
index 0cf12f6..11b8165 100644
--- a/meta-phosphor/conf/distro/openbmc-phosphor.conf
+++ b/meta-phosphor/conf/distro/openbmc-phosphor.conf
@@ -33,9 +33,6 @@
         obmc-host-ctl \
         avahi \
         slp \
-        obmc-host-state-mgmt \
-        obmc-chassis-state-mgmt \
-        obmc-bmc-state-mgmt \
         obmc-net-ipmi \
         ${DISTRO_FEATURES_LIBC} \
         "