blob: 793217551854ea65710a0365fc1d14680e825ea0 [file] [log] [blame]
Brad Bishopb1e88402017-01-11 11:12:32 -05001SUMMARY = "OpenBMC hwmon poller"
2DESCRIPTION = "OpenBMC hwmon poller."
3PR = "r1"
Patrick Venturebc174e62018-10-01 20:22:40 -07004PV = "1.0+git${SRCPV}"
Brad Bishopb1e88402017-01-11 11:12:32 -05005LICENSE = "Apache-2.0"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
7
Anton D. Kachalov22e00252021-02-06 12:23:10 +01008inherit meson
Patrick Venturebc174e62018-10-01 20:22:40 -07009inherit obmc-phosphor-systemd
Brad Bishop4186efb2017-01-11 15:30:07 -050010
Matthew Barth3afbeed2020-11-17 08:45:59 -060011PACKAGECONFIG ??= ""
Anton D. Kachalov22e00252021-02-06 12:23:10 +010012# Meson configure option to enable/disable max31785-msl
Matt Spinlerc15c7532021-04-14 14:52:53 -050013PACKAGECONFIG[max31785-msl] = "-Denable-max31785-msl=true, -Denable-max31785-msl=false"
Matthew Barth3afbeed2020-11-17 08:45:59 -060014
Brad Bishop4ce57192017-08-01 21:33:30 -040015PACKAGE_BEFORE_PN = "max31785-msl"
16SYSTEMD_PACKAGES = "${PN} max31785-msl"
17
Brad Bishop4186efb2017-01-11 15:30:07 -050018SYSTEMD_SERVICE_${PN} = "xyz.openbmc_project.Hwmon@.service"
Matthew Barth3afbeed2020-11-17 08:45:59 -060019SYSTEMD_SERVICE_max31785-msl = "${@bb.utils.contains('PACKAGECONFIG', 'max31785-msl', 'phosphor-max31785-msl@.service', '', d)}"
Brad Bishopb1e88402017-01-11 11:12:32 -050020
Brad Bishop6d105112017-02-20 14:36:31 -050021DEPENDS += " \
22 sdbusplus \
William A. Kennington III4e10c562018-10-18 19:23:49 -070023 sdeventplus \
Patrick Venture6e2600f2020-05-21 08:32:30 -070024 stdplus \
Brad Bishop6d105112017-02-20 14:36:31 -050025 phosphor-dbus-interfaces \
26 phosphor-logging \
Patrick Venturef67ce692018-09-14 09:54:18 -070027 gpioplus \
Patrick Venture806405f2019-03-11 14:06:11 -070028 cli11 \
Brad Bishop6d105112017-02-20 14:36:31 -050029 "
30
Anton D. Kachalov22e00252021-02-06 12:23:10 +010031FILES_${PN} += "${base_libdir}/systemd/system/xyz.openbmc_project.Hwmon@.service"
Brad Bishopb1e88402017-01-11 11:12:32 -050032RDEPENDS_${PN} += "\
Joel Stanley1c7e17d2017-09-05 17:44:33 +100033 bash \
Brad Bishopb1e88402017-01-11 11:12:32 -050034 "
35
Brad Bishop3217b272017-02-22 20:50:13 -050036RRECOMMENDS_${PN} += "${VIRTUAL-RUNTIME_phosphor-hwmon-config}"
37
Anton D. Kachalov22e00252021-02-06 12:23:10 +010038FILES_max31785-msl = "\
39 ${base_libdir}/systemd/system/phosphor-max31785-msl@.service \
40 ${bindir}/max31785-msl \
41 "
Andrew Geisslerdb32d492021-04-14 13:31:40 +000042RDEPENDS_max31785-msl = "${VIRTUAL-RUNTIME_base-utils} i2c-tools bash"
Brad Bishop4ce57192017-08-01 21:33:30 -040043
Brad Bishopb1e88402017-01-11 11:12:32 -050044SRC_URI += "git://github.com/openbmc/phosphor-hwmon"
45
Andrew Geisslerc3d93d42021-05-07 19:11:12 +000046SRCREV = "6d50c3e9e184d3741eec13bd164518864fe806bf"
Brad Bishopb1e88402017-01-11 11:12:32 -050047
48S = "${WORKDIR}/git"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020049
50# The following postinstall script iterate over hwmon env files:
51# 1. It adds HW_SENSOR_ID value if not set. The value being calculated
52# as sha256sum.
53# 2. For each hwmon the script generates busconfig ACLs.
54pkg_postinst_${PN}() {
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020055 hwmon_dir="$D/etc/default/obmc/hwmon"
56 dbus_dir="$D/etc/dbus-1/system.d"
57
Anton D. Kachalov34521532021-05-11 15:35:09 +020058 if [ -n "$D" -a -d "${hwmon_dir}" ]; then
59 # Remove existing links and replace with actual copy of the file to prevent
60 # HW_SENSOR_ID variable override for different sensors' instances.
61 find "${hwmon_dir}" -type l -name \*.conf | while read f; do
62 path="$(readlink -f $f)"
63 rm -f "${f}"
64 cp "${path}" "${f}"
65 done
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020066
Anton D. Kachalov34521532021-05-11 15:35:09 +020067 find "${hwmon_dir}" -type f -name \*.conf | while read f; do
68 path="/${f##${hwmon_dir}/}"
69 path="${path%.conf}"
70 sensor_id="$(printf "%s" "${path}" | sha256sum | cut -d\ -f1)"
71 acl_file="${dbus_dir}/xyz.openbmc_project.Hwmon-${sensor_id}.conf"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020072
Anton D. Kachalov34521532021-05-11 15:35:09 +020073 egrep -q '^HW_SENSOR_ID\s*=' "${f}" ||
74 printf "\n# Sensor id for %s\nHW_SENSOR_ID = \"%s\"\n" "${path}" "${sensor_id}" >> "${f}"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020075
Anton D. Kachalov34521532021-05-11 15:35:09 +020076 # Extract HW_SENSOR_ID that could be either quoted or unquoted string.
77 sensor_id="$(sed -n 's,^HW_SENSOR_ID\s*=\s*"\?\(.[^" ]\+\)\s*"\?,\1,p' "${f}")"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020078
Anton D. Kachalov34521532021-05-11 15:35:09 +020079 [ ! -f "${acl_file}" ] || continue
80 path_s="$(echo "${path}" | sed 's,\-\-,\\-\\-,g')"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020081
Anton D. Kachalov34521532021-05-11 15:35:09 +020082 cat <<EOF>"${acl_file}"
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020083<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
84 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
85<busconfig>
86 <policy user="root">
87 <!-- ${path_s} -->
88 <allow own="xyz.openbmc_project.Hwmon-${sensor_id}.Hwmon1"/>
89 <allow send_destination="xyz.openbmc_project.Hwmon-${sensor_id}.Hwmon1"/>
90 </policy>
91</busconfig>
92EOF
Anton D. Kachalov34521532021-05-11 15:35:09 +020093 done
94 fi
Anton D. Kachalovf0e06982021-05-05 14:54:13 +020095}