Convert obmc-ubi-fs to a distro feature

As with MRW the use of the UBI image scheme is distro policy.
Convert the existing machine feature to a distro feature.

Enable the new distro feature on the systems that use
it(Witherspoon).

Add a distro override and fix-up MF checks to use this override
instead for improved readability.

Tested: Built a Witherspoon image and validated image
Change-Id: I8ab03115bbfc2ecc77cff5c9eb8628903ae88051
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-aspeed.inc b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-aspeed.inc
index 983c33f..e1eb738 100644
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-aspeed.inc
+++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-aspeed.inc
@@ -2,17 +2,17 @@
 
 SRC_URI_append_aspeed = " file://0001-configs-ast-Add-redundnant-env.patch"
 
-SRC_URI_append_aspeed = " ${@bb.utils.contains('MACHINE_FEATURES', 'obmc-ubi-fs', \
-    'file://0002-config-ast-common-hack-bootopts.patch \
-     file://0003-config-ast-common-Add-bootopts-to-support-ubi-and-mt.patch \
-     file://0004-config-ast-common-Add-conditional-factory-reset-comm.patch', '', d)}"
+SRC_URI_append_aspeed_df-obmc-ubi-fs = " \
+    file://0002-config-ast-common-hack-bootopts.patch \
+    file://0003-config-ast-common-Add-bootopts-to-support-ubi-and-mt.patch \
+    file://0004-config-ast-common-Add-conditional-factory-reset-comm.patch \
+    "
 
 
-python do_configure_aspeed () {
-    if "obmc-ubi-fs" in d.getVar("MACHINE_FEATURES", True):
-        version_id=do_get_versionID(d)
-        d.setVar('VERSION_ID', version_id)
-        bb.build.exec_func("patch_uboot", d)
+python do_configure_aspeed_df-obmc-ubi-fs () {
+    version_id=do_get_versionID(d)
+    d.setVar('VERSION_ID', version_id)
+    bb.build.exec_func("patch_uboot", d)
 }
 
 patch_uboot () {
diff --git a/meta-phosphor/common/recipes-core/base-files/base-files_%.bbappend b/meta-phosphor/common/recipes-core/base-files/base-files_%.bbappend
index e632d56..172c9a5 100644
--- a/meta-phosphor/common/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-phosphor/common/recipes-core/base-files/base-files_%.bbappend
@@ -1,8 +1,8 @@
 inherit obmc-phosphor-utils
 
-FILESEXTRAPATHS_prepend := "${@mf_enabled(d, 'obmc-ubi-fs', '${THISDIR}/${PN}:')}"
+FILESEXTRAPATHS_prepend_df-obmc-ubi-fs := "${THISDIR}/${PN}:"
 
-RDEPENDS_${PN}_append += "${@mf_enabled(d, 'obmc-ubi-fs', 'preinit-mounts')}"
+RDEPENDS_${PN}_append_df-obmc-ubi-fs = " preinit-mounts"
 
 do_install_append() {
     install -d ${D}/srv
diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
index 3b8a8d9..e7eeb5a 100644
--- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
@@ -22,7 +22,7 @@
 FILES_${PN} += "${datadir}/dbus-1/system.d/org.freedesktop.journal1.conf"
 
 SRC_URI += "file://0007-journal-Add-Synchronize-dbus-method.patch"
-SRC_URI += "${@mf_enabled(d, 'obmc-ubi-fs', 'file://software.conf')}"
+SRC_URI_append_df-obmc-ubi-fs = " file://software.conf"
 SRC_URI += "file://0008-man-update-machine-id-5-with-a-note-about-privacy-46.patch"
 SRC_URI += "file://0009-sd-id128-add-new-sd_id128_get_machine_app_specific-A.patch"
 SRC_URI += "file://0010-core-add-khash-API-to-src-basic-as-wrapper-around-ke.patch"
@@ -40,11 +40,11 @@
         #TODO Remove after this issue is resolved
         #https://github.com/openbmc/openbmc/issues/152
         ln -s /dev/null ${D}/etc/systemd/system/systemd-hwdb-update.service
+}
 
+do_install_append_df-obmc-ubi-fs() {
         # /tmp/images is the software image upload directory.
         # It should not be deleted since it is watched by the Image Manager
         # for new images.
-        if ${@bb.utils.contains('MACHINE_FEATURES', 'obmc-ubi-fs', 'true', 'false', d)}; then
-                install -m 0644 ${WORKDIR}/software.conf ${D}${exec_prefix}/lib/tmpfiles.d/
-        fi
+        install -m 0644 ${WORKDIR}/software.conf ${D}${exec_prefix}/lib/tmpfiles.d/
 }
diff --git a/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc b/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
index 72c2334..9797811 100644
--- a/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
+++ b/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
@@ -14,7 +14,7 @@
 SRC_URI += "file://phosphor-gpio-keys.cfg"
 SRC_URI += "file://phosphor-vlan.scc"
 SRC_URI += "file://phosphor-vlan.cfg"
-SRC_URI += "${@mf_enabled(d, 'obmc-ubi-fs', 'file://0001-ARM-dts-Aspeed-Witherspoon-Update-BMC-partitioning.patch')}"
+SRC_URI_append_df-obmc-ubi-fs = " file://0001-ARM-dts-Aspeed-Witherspoon-Update-BMC-partitioning.patch"
 
 
 LINUX_VERSION_EXTENSION ?= "-${SRCREV}"
diff --git a/meta-phosphor/common/recipes-phosphor/dump/phosphor-debug-collector.bb b/meta-phosphor/common/recipes-phosphor/dump/phosphor-debug-collector.bb
index 24b233f..fcbe8ae 100644
--- a/meta-phosphor/common/recipes-phosphor/dump/phosphor-debug-collector.bb
+++ b/meta-phosphor/common/recipes-phosphor/dump/phosphor-debug-collector.bb
@@ -161,8 +161,8 @@
                 os.symlink(srclink, destlink)
 }
 
-#Enable ubifs-workaround by MACHINE_FEATURE obmc-ubi-fs.
-PACKAGECONFIG_append = "${@mf_enabled(d, 'obmc-ubi-fs', 'ubifs-workaround')}"
+#Enable ubifs-workaround by DISTRO_FEATURE obmc-ubi-fs.
+PACKAGECONFIG_append_df-obmc-ubi-fs = " ubifs-workaround"
 PACKAGECONFIG[ubifs-workaround] = " \
        --enable-ubifs-workaround, \
        --disable-ubifs-workaround \
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 fef72dc..ee6e13c 100644
--- a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -89,17 +89,20 @@
         ${VIRTUAL-RUNTIME_obmc-sensors-hwmon} \
         "
 
+# These packages are not required with UBI enabled
+${PN}-software-extras = " \
+        obmc-flash-bmc \
+        obmc-mgr-download \
+        "
+
+${PN}-software-extras_df-obmc-ubi-fs = ""
+
 SUMMARY_${PN}-software = "Software applications"
 RDEPENDS_${PN}-software = " \
         ${VIRTUAL-RUNTIME_obmc-bmc-download-mgr} \
         ${VIRTUAL-RUNTIME_obmc-bmc-updater} \
         ${VIRTUAL-RUNTIME_obmc-bmc-version} \
-        "
-# Determine if the non-UBI flash packages are required
-RDEPENDS_${PN}-software += " \
-        ${@mf_enabled(d, 'obmc-ubi-fs', \
-            '', \
-            'obmc-flash-bmc obmc-mgr-download')} \
+        ${${PN}-software-extras} \
         "
 
 SUMMARY_${PN}-debug-collector = "BMC debug collector"