1SUMMARY = "Phosphor LED Group Management Daemon" 2DESCRIPTION = "Daemon to cater to triggering actions on LED groups" 3DEPENDS += "${PYTHON_PN}-native" 4DEPENDS += "${PYTHON_PN}-pyyaml-native" 5DEPENDS += "${PYTHON_PN}-inflection-native" 6DEPENDS += "cli11" 7DEPENDS += "nlohmann-json" 8DEPENDS += "phosphor-logging" 9DEPENDS += "sdbusplus ${PYTHON_PN}-sdbus++-native" 10DEPENDS += "systemd" 11PACKAGECONFIG ??= "\ 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" 22PACKAGECONFIG[persistent-led-asserted] = "-Dpersistent-led-asserted=enabled, \ 23 -Dpersistent-led-asserted=disabled" 24PV = "1.0+git${SRCPV}" 25PR = "r1" 26 27LED_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 39SYSTEMD_PACKAGES = "${PN} ${PN}-faultmonitor" 40S = "${WORKDIR}/git" 41SYSTEMD_SERVICE:${PN} += "obmc-led-group-start@.service obmc-led-group-stop@.service" 42SYSTEMD_SERVICE:${PN}-faultmonitor += "obmc-fru-fault-monitor.service" 43SYSTEMD_LINK:${PN} += "../obmc-led-group-start@.service:multi-user.target.wants/obmc-led-group-start@bmc_booted.service" 44STATES = "start stop" 45SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'FMT', 'CHASSIS_TARGETS', 'STATES')}" 46SYSTEMD_LINK:${PN} += "${@compose_list(d, 'CHASSIS_LED_BLACKOUT_FMT', 'OBMC_CHASSIS_INSTANCES' )}" 47# Install the override to set up a Conflicts relation 48SYSTEMD_OVERRIDE:${PN} += "bmc_booted.conf:obmc-led-group-start@bmc_booted.service.d/bmc_booted.conf" 49 50inherit meson pkgconfig python3native 51inherit obmc-phosphor-dbus-service obmc-phosphor-systemd 52 53EXTRA_OEMESON:append = " -Dtests=disabled" 54 55do_compile:prepend() { 56 if [ -f "${LED_YAML_PATH}/led.yaml" ]; then 57 cp "${LED_YAML_PATH}/led.yaml" "${S}/led.yaml" 58 elif [ -f "${STAGING_DATADIR_NATIVE}/${PN}/led.yaml" ]; then 59 cp "${STAGING_DATADIR_NATIVE}/${PN}/led.yaml" "${S}/led.yaml" 60 elif [ -f "${WORKDIR}/led.yaml" ]; then 61 cp "${WORKDIR}/led.yaml" "${S}/led.yaml" 62 fi 63} 64 65RDEPENDS:${PN} += "bash" 66 67FILES:${PN}-faultmonitor += "${bindir}/phosphor-fru-fault-monitor" 68 69require ${PN}.inc 70 71PACKAGE_BEFORE_PN += "${PN}-faultmonitor" 72DBUS_SERVICE:${PN} += "xyz.openbmc_project.LED.GroupManager.service" 73CHASSIS_TARGETS = "poweron poweroff" 74TMPLFMT = "obmc-led-group-{1}@.service" 75TGTFMT = "obmc-chassis-{0}@0.target" 76INSTFMT = "obmc-led-group-{1}@power_on.service" 77FMT = "../${TMPLFMT}:${TGTFMT}.wants/${INSTFMT}" 78CHASSIS_BLACKOUT_TGT = "obmc-chassis-blackout@{0}.target" 79LED_STOP_SVC = "obmc-led-group-stop@.service" 80LED_POWER_STOP_SVC = "obmc-led-group-stop@power_on.service" 81CHASSIS_LED_BLACKOUT_FMT = "../${LED_STOP_SVC}:${CHASSIS_BLACKOUT_TGT}.wants/${LED_POWER_STOP_SVC}" 82