blob: 3c427f6735f113f333e365e06c70c1f51e007076 [file] [log] [blame]
Vishwanatha Subbanna5fe31d42017-01-09 15:00:38 +05301SUMMARY = "Phosphor LED Group Management Daemon"
2DESCRIPTION = "Daemon to cater to triggering actions on LED groups"
Vishwanatha Subbannad7844692020-03-30 07:16:17 -05003DEPENDS += "${PYTHON_PN}-native"
4DEPENDS += "${PYTHON_PN}-pyyaml-native"
5DEPENDS += "${PYTHON_PN}-inflection-native"
Andrew Geisslerd0e4f502022-03-21 14:50:10 +00006DEPENDS += "cli11"
7DEPENDS += "nlohmann-json"
8DEPENDS += "phosphor-logging"
Patrick Williams4b32c9a2020-03-31 16:43:15 -05009DEPENDS += "sdbusplus ${PYTHON_PN}-sdbus++-native"
Brad Bishop44f3cce2019-03-22 23:41:42 -040010DEPENDS += "systemd"
Ed Tanous9936f862022-09-19 09:13:20 -070011PACKAGECONFIG ??= "\
12 ${@oe.utils.conditional( \
13 'PREFERRED_PROVIDER_virtual/${PN}-config-native', \
14 'phosphor-led-manager-config-example-native', \
15 'use-json', 'use-yaml', d)} \
16"
17PACKAGECONFIG[use-json] = "-Duse-json=enabled,,,,,use-yaml"
18PACKAGECONFIG[use-yaml] = "-Duse-json=disabled,,virtual/${PN}-config-native,,,use-json"
19PACKAGECONFIG[use-lamp-test] = "-Duse-lamp-test=enabled, -Duse-lamp-test=disabled"
20PACKAGECONFIG[monitor-operational-status] = "-Dmonitor-operational-status=enabled, \
21 -Dmonitor-operational-status=disabled"
George Liufe21f1a2023-11-03 16:29:55 +080022PACKAGECONFIG[persistent-led-asserted] = "-Dpersistent-led-asserted=enabled, \
23 -Dpersistent-led-asserted=disabled"
Ed Tanous9936f862022-09-19 09:13:20 -070024PV = "1.0+git${SRCPV}"
25PR = "r1"
Ratan Gupta0e642912017-03-14 14:50:04 +053026
George Liu9c30b992024-01-25 14:00:39 +080027LED_ORG_JSON_PATTERNS ??= "${@ d.getVar('OBMC_ORG_YAML_SUBDIRS').replace('/', '.')}"
28LED_CONFIG_GREP_ARGS = "${@ ''.join([ ' -e ' + x for x in d.getVar('LED_ORG_JSON_PATTERNS').split() ])}"
29do_install:append() {
30 for f in "${D}${datadir}/${PN}/"*.json ;
31 do
32 if ! echo "$(basename $f)" | grep -q ${LED_CONFIG_GREP_ARGS};
33 then
34 rm -f ${f}
35 fi
36 done
37}
38
Ed Tanous9936f862022-09-19 09:13:20 -070039SYSTEMD_PACKAGES = "${PN} ${PN}-faultmonitor"
Vishwanatha Subbanna5fe31d42017-01-09 15:00:38 +053040S = "${WORKDIR}/git"
Patrick Williams12fc9392021-08-06 09:16:53 -050041SYSTEMD_SERVICE:${PN} += "obmc-led-group-start@.service obmc-led-group-stop@.service"
42SYSTEMD_SERVICE:${PN}-faultmonitor += "obmc-fru-fault-monitor.service"
Patrick Williamse83c2202021-09-01 16:17:33 -050043SYSTEMD_LINK:${PN} += "../obmc-led-group-start@.service:multi-user.target.wants/obmc-led-group-start@bmc_booted.service"
Vishwanatha Subbanna95b31512017-03-27 14:36:58 +053044STATES = "start stop"
Patrick Williamse83c2202021-09-01 16:17:33 -050045SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'FMT', 'CHASSIS_TARGETS', 'STATES')}"
NodeMan97e41c3fd2022-07-13 15:15:54 -050046SYSTEMD_LINK:${PN} += "${@compose_list(d, 'CHASSIS_LED_BLACKOUT_FMT', 'OBMC_CHASSIS_INSTANCES' )}"
Patrick Williamsb81c1fb2024-03-08 21:44:55 -060047SYSTEMD_LINK[vardeps] += "OBMC_CHASSIS_INSTANCES"
Vishwanatha Subbannae922ca62017-07-19 02:25:13 -050048# Install the override to set up a Conflicts relation
Patrick Williamse83c2202021-09-01 16:17:33 -050049SYSTEMD_OVERRIDE:${PN} += "bmc_booted.conf:obmc-led-group-start@bmc_booted.service.d/bmc_booted.conf"
Vishwanatha Subbanna95b31512017-03-27 14:36:58 +053050
Ed Tanous9936f862022-09-19 09:13:20 -070051inherit meson pkgconfig python3native
52inherit obmc-phosphor-dbus-service obmc-phosphor-systemd
53
Patrick Williamsed104d42021-08-31 13:19:27 -050054EXTRA_OEMESON:append = " -Dtests=disabled"
Seires Li220e1942021-06-10 02:11:11 +080055
Patrick Williams12fc9392021-08-06 09:16:53 -050056do_compile:prepend() {
Seires Li220e1942021-06-10 02:11:11 +080057 if [ -f "${LED_YAML_PATH}/led.yaml" ]; then
58 cp "${LED_YAML_PATH}/led.yaml" "${S}/led.yaml"
59 elif [ -f "${STAGING_DATADIR_NATIVE}/${PN}/led.yaml" ]; then
60 cp "${STAGING_DATADIR_NATIVE}/${PN}/led.yaml" "${S}/led.yaml"
61 elif [ -f "${WORKDIR}/led.yaml" ]; then
62 cp "${WORKDIR}/led.yaml" "${S}/led.yaml"
63 fi
64}
Ed Tanous9936f862022-09-19 09:13:20 -070065
66RDEPENDS:${PN} += "bash"
67
68FILES:${PN}-faultmonitor += "${bindir}/phosphor-fru-fault-monitor"
69
70require ${PN}.inc
71
72PACKAGE_BEFORE_PN += "${PN}-faultmonitor"
73DBUS_SERVICE:${PN} += "xyz.openbmc_project.LED.GroupManager.service"
74CHASSIS_TARGETS = "poweron poweroff"
75TMPLFMT = "obmc-led-group-{1}@.service"
76TGTFMT = "obmc-chassis-{0}@0.target"
77INSTFMT = "obmc-led-group-{1}@power_on.service"
78FMT = "../${TMPLFMT}:${TGTFMT}.wants/${INSTFMT}"
79CHASSIS_BLACKOUT_TGT = "obmc-chassis-blackout@{0}.target"
80LED_STOP_SVC = "obmc-led-group-stop@.service"
81LED_POWER_STOP_SVC = "obmc-led-group-stop@power_on.service"
82CHASSIS_LED_BLACKOUT_FMT = "../${LED_STOP_SVC}:${CHASSIS_BLACKOUT_TGT}.wants/${LED_POWER_STOP_SVC}"