Witherspoon: Add sync manager

Add the sync manager which watches for files to be synced
to the alternate BMC chip.

Change-Id: I543dacf389629c024b35d1b855745bbcc0bbd848
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend
index 21ee4da..eafd11f 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend
@@ -5,3 +5,6 @@
 
 # Enable signature verification by DISTRO_FEATURE obmc-ubi-fs
 PACKAGECONFIG_append_df-obmc-ubi-fs = " verify_signature"
+
+# Enable sync of persistent files to the alternate BMC chip
+PACKAGECONFIG_append_df-obmc-ubi-fs = " sync_bmc_files"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index 8c674b9..6e0db1e 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -1,3 +1,5 @@
 RDEPENDS_${PN}-inventory += "openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence"
 RDEPENDS_${PN}-fan-control += "witherspoon-fan-watchdog"
 RDEPENDS_${PN}-extras += "witherspoon-pfault-analysis witherspoon-power-supply-sync phosphor-webui"
+
+${PN}-software-extras_df-obmc-ubi-fs += "phosphor-software-manager-sync"
diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb
index 919d0ff..746daeb 100644
--- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb
+++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb
@@ -11,6 +11,7 @@
     ${PN}-version \
     ${PN}-download-mgr \
     ${PN}-updater \
+    ${PN}-sync \
 "
 PACKAGES =+ "${SOFTWARE_MGR_PACKAGES}"
 PACKAGES_remove = "${PN}"
@@ -24,6 +25,7 @@
 SYSTEMD_PACKAGES = ""
 
 PACKAGECONFIG[verify_signature] = "--enable-verify_signature,--disable-verify_signature"
+PACKAGECONFIG[sync_bmc_files] = "--enable-sync_bmc_files,--disable-sync_bmc_files"
 
 inherit autotools pkgconfig
 inherit obmc-phosphor-dbus-service
@@ -69,9 +71,11 @@
     ${sbindir}/obmc-flash-bmc \
     /usr/local \
     "
+FILES_${PN}-sync += "${sbindir}/phosphor-sync-software-manager"
 DBUS_SERVICE_${PN}-version += "xyz.openbmc_project.Software.Version.service"
 DBUS_SERVICE_${PN}-download-mgr += "xyz.openbmc_project.Software.Download.service"
 DBUS_SERVICE_${PN}-updater += "xyz.openbmc_project.Software.BMC.Updater.service"
+DBUS_SERVICE_${PN}-sync += "xyz.openbmc_project.Software.Sync.service"
 
 SYSTEMD_SERVICE_${PN}-updater += " \
     obmc-flash-bmc-ubirw.service \
diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/xyz.openbmc_project.Software.Sync.service b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/xyz.openbmc_project.Software.Sync.service
new file mode 100644
index 0000000..1ff33a2
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/xyz.openbmc_project.Software.Sync.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Phosphor Sync Manager that syncs files to the alternate BMC chip
+
+[Service]
+ExecStart=/usr/bin/env phosphor-sync-software-manager
+SyslogIdentifier=phosphor-sync-software-manager
+Restart=always
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}