diff options
author | Marek Szuba <marecki@gentoo.org> | 2022-09-07 14:04:01 +0100 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2022-09-07 15:30:06 +0100 |
commit | c578a4e87a66dd39ebaf96aea13b06f4ceaca8b9 (patch) | |
tree | 7a2ff2e6887106c9f461a6749e91e888e64f7d17 /sys-apps | |
parent | dev-java/objenesis: add 3.3 (diff) | |
download | gentoo-c578a4e87a66dd39ebaf96aea13b06f4ceaca8b9.tar.gz gentoo-c578a4e87a66dd39ebaf96aea13b06f4ceaca8b9.tar.bz2 gentoo-c578a4e87a66dd39ebaf96aea13b06f4ceaca8b9.zip |
sys-apps/lm-sensors: recommend new module for Nuvoton W83677HG-I in sensors-detect
Backported patch from upstream Git master.
Closes: https://bugs.gentoo.org/811327
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r-- | sys-apps/lm-sensors/files/lm-sensors-3.6.0-w83627ehf-nct6775.patch | 46 | ||||
-rw-r--r-- | sys-apps/lm-sensors/lm-sensors-3.6.0-r1.ebuild | 226 |
2 files changed, 272 insertions, 0 deletions
diff --git a/sys-apps/lm-sensors/files/lm-sensors-3.6.0-w83627ehf-nct6775.patch b/sys-apps/lm-sensors/files/lm-sensors-3.6.0-w83627ehf-nct6775.patch new file mode 100644 index 000000000000..e4493c414a49 --- /dev/null +++ b/sys-apps/lm-sensors/files/lm-sensors-3.6.0-w83627ehf-nct6775.patch @@ -0,0 +1,46 @@ +From 23c53b457407ab3ed217f963fc0329d0ae4bdeac Mon Sep 17 00:00:00 2001 +From: Jean Delvare <jdelvare@suse.de> +Date: Tue, 12 May 2020 16:22:06 +0200 +Subject: [PATCH] sensors-detect: Fix the driver for Nuvoton W83677HG-I + +Originally, support for the Nuvoton W83677HG-I and derivatives was +first added to the w83627ehf driver, so that's the driver recommended +by sensors-detect. Later, support for the same device was added to +the nct6775 driver. In kernel v5.6, support was removed from the +w83627ehf driver to get rid of the duplicate code. + +So sensors-detect should now point users of this device to the +nct6775 driver. We can't do that for very old kernels though, as this +driver did not exist back then. I chose v3.10 for the cut-over, as +this is when support for the Nuvoton W83677HG-I was finalized in the +nct6775 driver, at least according to git log. + +Signed-off-by: Jean Delvare <jdelvare@suse.de> +--- + prog/detect/sensors-detect | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 6fc441aa6..319b1b7b9 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2273,7 +2273,7 @@ use constant FEAT_SMBUS => (1 << 7); + features => FEAT_IN | FEAT_FAN | FEAT_TEMP, + }, { + name => "Nuvoton W83677HG-I (NCT5572D/NCT6771F/NCT6772F/NCT6775F) Super IO Sensors", +- driver => "w83627ehf", ++ driver => sub { kernel_version_at_least(3, 10, 0) ? "nct6775" : "w83627ehf" }, + devid => 0xB470, + devid_mask => 0xFFF0, + logdev => 0x0b, +@@ -4574,7 +4574,9 @@ sub scan_cpu + sub chip_special_cases + { + # Some chip to driver mappings depend on the environment +- foreach my $chip (@chip_ids) { ++ foreach my $chip (@chip_ids, @superio_ids_natsemi, @superio_ids_smsc, ++ @superio_ids_smsc_ns, @superio_ids_winbond, ++ @superio_ids_ite) { + if (ref($chip->{driver}) eq 'CODE') { + $chip->{driver} = $chip->{driver}->(); + } diff --git a/sys-apps/lm-sensors/lm-sensors-3.6.0-r1.ebuild b/sys-apps/lm-sensors/lm-sensors-3.6.0-r1.ebuild new file mode 100644 index 000000000000..69ccb494585d --- /dev/null +++ b/sys-apps/lm-sensors/lm-sensors-3.6.0-r1.ebuild @@ -0,0 +1,226 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info systemd toolchain-funcs multilib-minimal + +DESCRIPTION="Hardware Monitoring user-space utilities" +HOMEPAGE="https://hwmon.wiki.kernel.org/ https://github.com/lm-sensors/lm-sensors" + +if [[ "${PV}" =~ .*_p[[:digit:]]{8}.* ]] ; then + COMMIT="2c8cca3d6cd60121b401734c1a24cfec7daed4fc" + SRC_URI="https://github.com/lm-sensors/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${COMMIT}" +else + SRC_URI="https://github.com/lm-sensors/lm-sensors/archive/V$(ver_rs 1- -).tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-$(ver_rs 1- -)" +fi + +LICENSE="GPL-2+ LGPL-2.1" + +# SUBSLOT based on SONAME of libsensors.so +SLOT="0/5.0.0" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="contrib sensord static-libs" + +COMMON_DEPS=" + sensord? ( + net-analyzer/rrdtool + virtual/logger + )" + +RDEPEND="${COMMON_DEPS} + dev-lang/perl + !<sys-apps/openrc-0.36" + +DEPEND="${COMMON_DEPS} + sys-devel/bison + sys-devel/flex" + +CONFIG_CHECK="~HWMON ~I2C_CHARDEV ~I2C" +WARNING_HWMON="${PN} requires CONFIG_HWMON to be enabled for use." +WARNING_I2C_CHARDEV="sensors-detect requires CONFIG_I2C_CHARDEV to be enabled." +WARNING_I2C="${PN} requires CONFIG_I2C to be enabled for most sensors." + +PATCHES=( + "${FILESDIR}"/${PN}-3.5.0-sensors-detect-gentoo.patch + "${FILESDIR}"/${PN}-3.6.0-no-which.patch + "${FILESDIR}"/${PN}-3.6.0-w83627ehf-nct6775.patch +) + +DOCS=( CHANGES CONTRIBUTORS INSTALL README ) +DOCS+=( doc/{donations,fancontrol.txt,fan-divisors,libsensors-API.txt,progs,temperature-sensors,vid} ) + +src_prepare() { + default + + if [[ -n "${COMMIT}" ]]; then + local _version="${PV%_*}+git_${COMMIT}" + + sed -i \ + -e "s:LM_VERSION.*:LM_VERSION \"${_version}\":" \ + version.h || \ + die "Failed to update version.h" + + sed -i \ + -e "s/^\$revision = '.*/\$revision = '${_version}';/" \ + -e "/^\$revision =~ s.*/d" \ + prog/detect/sensors-detect || \ + die "Failed to set revision in prog/detect/sensors-detect" + + sed -i \ + -e "s/^echo \"# pwmconfig revision.*/echo \"# pwmconfig revision ${_version}\"/" \ + -e "/^REVISION=.*/d" \ + -e "/^REVDATE=.*/d" \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust prog/pwm/pwmconfig" + else + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust PIDFILE in prog/pwm/pwmconfig" + fi + + # Respect LDFLAGS + sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile || \ + die "Failed to sed in LDFLAGS" + + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/fancontrol || \ + die "Failed to adjust PIDFILE of prog/pwm/fancontrol" + + # Don't use EnvironmentFile in systemd unit + sed -i \ + -e '/^EnvironmentFile=/d' \ + -e '/^Exec.*modprobe.*/d' \ + prog/init/lm_sensors.service || \ + die "Failed to remove EnvironmentFile from systemd unit file" + + if ! use static-libs; then + sed -i -e '/^BUILD_STATIC_LIB/d' Makefile || \ + die "Failed to disable static building" + fi + + # Don't show outdated user instructions + sed -i -e '/^ @echo "\*\*\* /d' Makefile || \ + die "Failed to remove outdated user instructions" + + multilib_copy_sources +} + +multilib_src_configure() { + default + + if multilib_is_native_abi && use sensord; then + # sensord requires net-analyzer/rrdtool which doesn't have real multilib + # support. To prevent errors like + # + # skipping incompatible /usr/lib/librrd.so when searching for -lrrd + # cannot find -lrrd + # + # we only build sensord when we are building for profile's native ABI + # (it doesn't affect libsensors.so). + sed -i -e 's:^#\(PROG_EXTRA.*\):\1:' Makefile || \ + die "Failed to enable building of sensord" + fi +} + +multilib_src_compile() { + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" +} + +multilib_src_install() { + # We need to set CC and friends again here to avoid recompilation for cross + # bug #799851 + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + DESTDIR="${ED}" \ + PREFIX="/usr" \ + MANDIR="/usr/share/man" \ + ETCDIR="/etc" \ + LIBDIR="/usr/$(get_libdir)" \ + install +} + +multilib_src_install_all() { + newinitd "${FILESDIR}"/lm_sensors.initd lm_sensors + newconfd "${FILESDIR}"/lm_sensors.confd lm_sensors + systemd_dounit prog/init/lm_sensors.service + + newinitd "${FILESDIR}"/fancontrol.initd fancontrol + newconfd "${FILESDIR}"/fancontrol.confd fancontrol + systemd_newunit "${FILESDIR}"/fancontrol.service-r1 fancontrol.service + + if use sensord; then + newconfd "${FILESDIR}"/sensord.confd sensord + newinitd "${FILESDIR}"/sensord.initd sensord + systemd_newunit "${FILESDIR}"/sensord.service-r1 sensord.service + fi + + einstalldocs + + docinto developers + dodoc doc/developers/applications + + if use contrib; then + insinto /usr/share/lm_sensors + doins -r "${S}"/configs + fi +} + +pkg_postinst() { + local _new_loader='3.4.0_p20160725' + local _v + for _v in ${REPLACING_VERSIONS}; do + if ! ver_test "${_v}" -gt "${_new_loader}"; then + # This is an upgrade which require migration + + elog "" + elog "Since version 3.4.0_p20160725 ${PN} no longer loads modules on its own" + elog "instead it is using \"modules-load\" services provided by OpenRC or systemd." + elog "" + elog "To migrate your configuration you have 2 options:" + elog "" + elog " a) Re-create a new configuration using \"/usr/sbin/sensors-detect\"" + elog "" + elog " b) Copy existing \"modules_<n>\", \"HWMON_MODULES\" or \"BUS_MODULES\"" + elog " variables from \"/etc/conf.d/lm_modules\" to" + elog " \"/etc/modules-load.d/lm_sensors.conf\" and adjust format." + elog "" + elog " For details see https://wiki.gentoo.org/wiki/Systemd#Automatic_module_loading" + elog "" + elog " Important: Don't forget to migrate your module's argument" + elog " (modules_<name>_args variable) if your are not already" + elog " using \"/etc/modprobe.d\" (which is recommended)." + + # Show this elog only once + break + fi + done + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # New installation + + elog "" + elog "Please run \`/usr/sbin/sensors-detect' in order to setup" + elog "\"/etc/modules-load.d/lm_sensors.conf\"." + elog "" + elog "You might want to add lm_sensors to your default runlevel to make" + elog "sure the sensors get initialized on the next startup." + elog "" + elog "Be warned, the probing of hardware in your system performed by" + elog "sensors-detect could freeze your system. Also make sure you read" + elog "the documentation before running ${PN} on IBM ThinkPads." + fi +} |