SUMMARY = "OpenBMC hwmon poller" DESCRIPTION = "OpenBMC hwmon poller." PR = "r1" PV = "1.0+git${SRCPV}" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" inherit pkgconfig meson inherit obmc-phosphor-systemd PACKAGECONFIG ??= "" # Meson configure option to enable/disable max31785-msl PACKAGECONFIG[max31785-msl] = "-Denable-max31785-msl=true, -Denable-max31785-msl=false" PACKAGE_BEFORE_PN = "max31785-msl" SYSTEMD_PACKAGES = "${PN} max31785-msl" SYSTEMD_SERVICE:${PN} = "xyz.openbmc_project.Hwmon@.service" SYSTEMD_SERVICE:max31785-msl = "${@bb.utils.contains('PACKAGECONFIG', 'max31785-msl', 'phosphor-max31785-msl@.service', '', d)}" DEPENDS += " \ sdbusplus \ sdeventplus \ stdplus \ phosphor-dbus-interfaces \ phosphor-logging \ gpioplus \ cli11 \ " EXTRA_OEMESON:append = " -Dtests=disabled" FILES:${PN} += "${base_libdir}/systemd/system/xyz.openbmc_project.Hwmon@.service" RDEPENDS:${PN} += "\ bash \ " RRECOMMENDS:${PN} += "${VIRTUAL-RUNTIME_phosphor-hwmon-config}" FILES:max31785-msl = "\ ${base_libdir}/systemd/system/phosphor-max31785-msl@.service \ ${bindir}/max31785-msl \ " RDEPENDS:max31785-msl = "${VIRTUAL-RUNTIME_base-utils} i2c-tools bash" SRC_URI += "git://github.com/openbmc/phosphor-hwmon" SRCREV = "b6c1771bfd4dcc4bc461878424b3f71b3bffdbca" S = "${WORKDIR}/git" # The following postinstall script iterate over hwmon env files: # 1. It adds HW_SENSOR_ID value if not set. The value being calculated # as sha256sum. # 2. For each hwmon the script generates busconfig ACLs. pkg_postinst:${PN}() { hwmon_dir="$D/etc/default/obmc/hwmon" dbus_dir="$D/${datadir}/dbus-1/system.d" if [ -n "$D" -a -d "${hwmon_dir}" ]; then # Remove existing links and replace with actual copy of the file to prevent # HW_SENSOR_ID variable override for different sensors' instances. find "${hwmon_dir}" -type l -name \*.conf | while read f; do path="$(readlink -f $f)" rm -f "${f}" cp "${path}" "${f}" done find "${hwmon_dir}" -type f -name \*.conf | while read f; do path="/${f##${hwmon_dir}/}" path="${path%.conf}" sensor_id="$(printf "%s" "${path}" | sha256sum | cut -d\ -f1)" acl_file="${dbus_dir}/xyz.openbmc_project.Hwmon-${sensor_id}.conf" egrep -q '^HW_SENSOR_ID\s*=' "${f}" || printf "\n# Sensor id for %s\nHW_SENSOR_ID = \"%s\"\n" "${path}" "${sensor_id}" >> "${f}" # Extract HW_SENSOR_ID that could be either quoted or unquoted string. sensor_id="$(sed -n 's,^HW_SENSOR_ID\s*=\s*"\?\(.[^" ]\+\)\s*"\?,\1,p' "${f}")" [ ! -f "${acl_file}" ] || continue path_s="$(echo "${path}" | sed 's,\-\-,\\-\\-,g')" cat <"${acl_file}" EOF done fi }