leds: package the FRU fault monitor application.

Resolves openbmc/openbmc#941

Change-Id: I3e5672af468185f6bae50c438820a10d57d60d55
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
diff --git a/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager.bb b/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager.bb
index 7f24772..5f1f36d 100644
--- a/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager.bb
+++ b/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager.bb
@@ -2,31 +2,56 @@
 DESCRIPTION = "Daemon to cater to triggering actions on LED groups"
 PR = "r1"
 
-inherit autotools pkgconfig pythonnative
-inherit obmc-phosphor-dbus-service
 require ${PN}.inc
 
+inherit autotools pkgconfig pythonnative
+inherit obmc-phosphor-dbus-service obmc-phosphor-systemd
+
+LED_MGR_PACKAGES = " \
+    ${PN}-ledmanager \
+    ${PN}-faultmonitor \
+"
+
+PACKAGES += "${LED_MGR_PACKAGES}"
+PACKAGES_remove = "${PN}"
+
+DBUS_PACKAGES = "${PN}-ledmanager"
+
+SYSTEMD_PACKAGES = "${LED_MGR_PACKAGES}"
+
+RDEPENDS_${PN}-dev = "${LED_MGR_PACKAGES}"
+RDEPENDS_${PN}-staticdev = "${LED_MGR_PACKAGES}"
+
 DEPENDS += "python-pyyaml-native"
 DEPENDS += "autoconf-archive-native"
 DEPENDS += "sdbusplus sdbusplus-native"
 DEPENDS += "phosphor-logging"
 
 DEPENDS += "virtual/${PN}-config-native"
-RDEPENDS_${PN} += "libsystemd"
-RDEPENDS_${PN} += "phosphor-logging"
+RDEPENDS_${PN}-ledmanager += "libsystemd"
+RDEPENDS_${PN}-ledmanager += "phosphor-logging"
+
+RDEPENDS_${PN}-faultmonitor += "libsystemd"
+RDEPENDS_${PN}-faultmonitor += "phosphor-logging"
 
 S = "${WORKDIR}/git"
 
-DBUS_SERVICE_${PN} += "xyz.openbmc_project.LED.GroupManager.service"
-SYSTEMD_SERVICE_${PN} += "obmc-led-group-start@.service obmc-led-group-stop@.service"
+FILES_${PN}-ledmanager += "${sbindir}/phosphor-ledmanager"
+FILES_${PN}-faultmonitor += "${sbindir}/phosphor-fru-fault-monitor"
 
-SYSTEMD_LINK_${PN} += "../obmc-led-group-start@.service:${SYSTEMD_DEFAULT_TARGET}.wants/obmc-led-group-start@bmc_booted.service"
+DBUS_SERVICE_${PN}-ledmanager += "xyz.openbmc_project.LED.GroupManager.service"
+
+SYSTEMD_SERVICE_${PN}-ledmanager += "obmc-led-group-start@.service obmc-led-group-stop@.service"
+SYSTEMD_SERVICE_${PN}-faultmonitor += "obmc-fru-fault-monitor.service"
+
+SYSTEMD_LINK_${PN}-ledmanager += "../obmc-led-group-start@.service:${SYSTEMD_DEFAULT_TARGET}.wants/obmc-led-group-start@bmc_booted.service"
 
 STATES = "start stop"
 TMPLFMT = "obmc-led-group-{0}@.service"
 TGTFMT = "obmc-power-{0}@0.target"
 INSTFMT = "obmc-led-group-{0}@power_on.service"
 FMT = "../${TMPLFMT}:${TGTFMT}.wants/${INSTFMT}"
-SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'STATES')}"
+SYSTEMD_LINK_${PN}-ledmanager += "${@compose_list(d, 'FMT', 'STATES')}"
+
 
 EXTRA_OECONF = "YAML_PATH=${STAGING_DATADIR_NATIVE}/${PN}"
diff --git a/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager/obmc-fru-fault-monitor.service b/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager/obmc-fru-fault-monitor.service
new file mode 100644
index 0000000..ab83622
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/leds/phosphor-led-manager/obmc-fru-fault-monitor.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=FRU Fault monitor service
+Wants=mapper-wait@-xyz-openbmc_project-led-groups.service
+After=mapper-wait@-xyz-openbmc_project-led-groups.service
+
+[Service]
+Restart=always
+ExecStart={sbindir}/phosphor-fru-fault-monitor
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
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 d0f108f..69f9a25 100644
--- a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -73,6 +73,7 @@
 RDEPENDS_${PN}-leds = " \
         ${VIRTUAL-RUNTIME_obmc-leds-manager} \
         ${VIRTUAL-RUNTIME_obmc-leds-sysfs} \
+        ${VIRTUAL-RUNTIME_obmc-led-monitor} \
         "
 
 SUMMARY_${PN}-sensors = "Sensor applications"
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index 3bff0f0..4f47453 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -65,7 +65,12 @@
 # obmc-led-manager
 #
 # Provides an implementation of the xyz.openbmc_project.ledmanager interface.
-VIRTUAL-RUNTIME_obmc-leds-manager ?= "phosphor-led-manager"
+VIRTUAL-RUNTIME_obmc-leds-manager ?= "phosphor-led-manager-ledmanager"
+
+# obmc-led-monitor
+#
+# Provides an implementation of the FRU fault monitor.
+VIRTUAL-RUNTIME_obmc-led-monitor ?= "phosphor-led-manager-faultmonitor"
 
 # obmc-led-sysfs
 #