diff --git a/0001-Change-PIDFile-path-from-var-run-to-run.patch b/0001-Change-PIDFile-path-from-var-run-to-run.patch new file mode 100644 index 0000000000000000000000000000000000000000..e90afb767074b64865cd0ebb974a37f4ca8a0d34 --- /dev/null +++ b/0001-Change-PIDFile-path-from-var-run-to-run.patch @@ -0,0 +1,40 @@ +From 25f4f8793730ef3d170f1f2bd729a82fd61a4784 Mon Sep 17 00:00:00 2001 +From: puneetse <22071208+puneetse@users.noreply.github.com> +Date: Wed, 11 Mar 2020 09:36:51 -0700 +Subject: [PATCH] Change PIDFile path from /var/run to /run + +/var/run is considered a legacy directory by systemd 239+ and having it in unit files causes a warning to be emitted to the journal. +--- + prog/init/fancontrol.service | 2 +- + prog/init/sensord.service | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/prog/init/fancontrol.service b/prog/init/fancontrol.service +index 3ac1ed02..43293141 100644 +--- a/prog/init/fancontrol.service ++++ b/prog/init/fancontrol.service +@@ -5,7 +5,7 @@ After=lm_sensors.service + + [Service] + Type=simple +-PIDFile=/var/run/fancontrol.pid ++PIDFile=/run/fancontrol.pid + ExecStart=/usr/sbin/fancontrol + + [Install] +diff --git a/prog/init/sensord.service b/prog/init/sensord.service +index 2448beeb..af2f0ae9 100644 +--- a/prog/init/sensord.service ++++ b/prog/init/sensord.service +@@ -5,7 +5,7 @@ After=lm_sensors.service + [Service] + EnvironmentFile=/etc/sysconfig/sensord + Type=forking +-PIDFile=/var/run/sensord.pid ++PIDFile=/run/sensord.pid + ExecStart=/usr/sbin/sensord -i $INTERVAL -l $LOG_INTERVAL -f daemon + + [Install] +-- +2.25.4 + diff --git a/0001-Revert-unnecessary-soname-bump.patch b/0001-Revert-unnecessary-soname-bump.patch new file mode 100644 index 0000000000000000000000000000000000000000..b5d9cc91cd7eff838d007c30e6dec7e63e68b37c --- /dev/null +++ b/0001-Revert-unnecessary-soname-bump.patch @@ -0,0 +1,33 @@ +From bc827e6d45f31f20a4f6d27bfc41747900faf60c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +Date: Wed, 2 Jan 2019 12:38:31 +0100 +Subject: [PATCH] Revert unnecessary soname bump + +The soname bump in lm-sensors 3.5.0 was unnecessary - there was no +API/ABI change. I'm reverting it so that we can update lm-sensors +in released Fedoras as well as Rawhide. + +Related: +https://marc.info/?l=lm-sensors&m=154515276523720&w=2 +--- + lib/Module.mk | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/Module.mk b/lib/Module.mk +index 7732242..299b7d3 100644 +--- a/lib/Module.mk ++++ b/lib/Module.mk +@@ -32,8 +32,8 @@ LIBMAN5FILES := $(MODULE_DIR)/sensors.conf.5 + # The library soname (major number) must be changed if and only if the interface is + # changed in a backward incompatible way. The interface is defined by + # the public header files - in this case they are error.h and sensors.h. +-LIBMAINVER := 5 +-LIBMINORVER := 0.0 ++LIBMAINVER := 4 ++LIBMINORVER := 5.0 + LIBVER := $(LIBMAINVER).$(LIBMINORVER) + + # The static lib name, the shared lib name, and the internal ('so') name of +-- +2.17.2 + diff --git a/lm-sensors-3-6-0.tar.gz b/lm-sensors-3-6-0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6b298633ab3f636e0a0866a26deb7713ba5ffd76 Binary files /dev/null and b/lm-sensors-3-6-0.tar.gz differ diff --git a/lm_sensors-3.6.0-allow_no_sensors.patch b/lm_sensors-3.6.0-allow_no_sensors.patch new file mode 100644 index 0000000000000000000000000000000000000000..17d85f0afec88ff15be67669a0aa23169025d236 --- /dev/null +++ b/lm_sensors-3.6.0-allow_no_sensors.patch @@ -0,0 +1,92 @@ +diff --git a/prog/sensors/main.c b/prog/sensors/main.c +index f535b66..a19b919 100644 +--- a/prog/sensors/main.c ++++ b/prog/sensors/main.c +@@ -54,15 +54,16 @@ static void print_short_help(void) + static void print_long_help(void) + { + printf("Usage: %s [OPTION]... [CHIP]...\n", PROGRAM); +- puts(" -c, --config-file Specify a config file\n" +- " -h, --help Display this help text\n" +- " -s, --set Execute `set' statements (root only)\n" +- " -f, --fahrenheit Show temperatures in degrees fahrenheit\n" +- " -A, --no-adapter Do not show adapter for each chip\n" +- " --bus-list Generate bus statements for sensors.conf\n" +- " -u Raw output\n" +- " -j Json output\n" +- " -v, --version Display the program version\n" ++ puts(" -c, --config-file Specify a config file\n" ++ " -h, --help Display this help text\n" ++ " -s, --set Execute `set' statements (root only)\n" ++ " -f, --fahrenheit Show temperatures in degrees fahrenheit\n" ++ " -A, --no-adapter Do not show adapter for each chip\n" ++ " --bus-list Generate bus statements for sensors.conf\n" ++ " -u Raw output\n" ++ " -j Json output\n" ++ " -v, --version Display the program version\n" ++ " -n, --allow-no-sensors Do not fail if no sensors found\n" + "\n" + "Use `-' after `-c' to read the config file from stdin.\n" + "If no chips are specified, all chip info will be printed.\n" +@@ -270,7 +271,7 @@ static void print_bus_list(void) + + int main(int argc, char *argv[]) + { +- int c, i, err, do_bus_list; ++ int c, i, err, do_bus_list, allow_no_sensors; + const char *config_file_name = NULL; + + struct option long_opts[] = { +@@ -281,6 +282,7 @@ int main(int argc, char *argv[]) + { "no-adapter", no_argument, NULL, 'A' }, + { "config-file", required_argument, NULL, 'c' }, + { "bus-list", no_argument, NULL, 'B' }, ++ { "allow-no-sensors", no_argument, NULL, 'n' }, + { 0, 0, 0, 0 } + }; + +@@ -291,8 +293,9 @@ int main(int argc, char *argv[]) + do_sets = 0; + do_bus_list = 0; + hide_adapter = 0; ++ allow_no_sensors = 0; + while (1) { +- c = getopt_long(argc, argv, "hsvfAc:uj", long_opts, NULL); ++ c = getopt_long(argc, argv, "hsvfAc:ujn", long_opts, NULL); + if (c == EOF) + break; + switch(c) { +@@ -327,6 +330,9 @@ int main(int argc, char *argv[]) + case 'B': + do_bus_list = 1; + break; ++ case 'n': ++ allow_no_sensors = 1; ++ break; + default: + fprintf(stderr, + "Internal error while parsing options!\n"); +@@ -349,7 +355,9 @@ int main(int argc, char *argv[]) + "No sensors found!\n" + "Make sure you loaded all the kernel drivers you need.\n" + "Try sensors-detect to find out which these are.\n"); +- err = 1; ++ if (!allow_no_sensors) { ++ err = 1; ++ } + } + } else { + int cnt = 0; +diff --git a/prog/sensors/sensors.1 b/prog/sensors/sensors.1 +index 7d66e4b..d207aa1 100644 +--- a/prog/sensors/sensors.1 ++++ b/prog/sensors/sensors.1 +@@ -78,6 +78,8 @@ are only needed if you have several chips sharing the same address on different + buses of the same type. As bus numbers are usually not guaranteed to be stable + over reboots, these statements let you refer to each bus by its name rather + than numbers. ++.IP "-n, --allow-no-sensors" ++Do not fail if no sensors found. The error message will be printed in the log. + .SH FILES + .I /etc/sensors3.conf + .br diff --git a/lm_sensors-3.6.0-sensors-detect-Add-support-for-AMD-CPU-Family-19h.patch b/lm_sensors-3.6.0-sensors-detect-Add-support-for-AMD-CPU-Family-19h.patch new file mode 100644 index 0000000000000000000000000000000000000000..b3c251a54f021252a8ce6c259ab10fb858f3e676 --- /dev/null +++ b/lm_sensors-3.6.0-sensors-detect-Add-support-for-AMD-CPU-Family-19h.patch @@ -0,0 +1,15 @@ +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 32fd29f..49feecb 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2792,6 +2792,10 @@ use vars qw(@cpu_ids); + name => "AMD Family 17h thermal sensors", + driver => "k10temp", + detect => sub { amd_pci_detect('1463', '15d0', '1493', '1443') }, ++ }, { ++ name => "AMD Family 19h thermal sensors", ++ driver => "k10temp", ++ detect => sub { amd_pci_detect('1653') }, + }, { + name => "AMD Family 15h power sensors", + driver => "fam15h_power", diff --git a/lm_sensors-modprobe-r-wrapper b/lm_sensors-modprobe-r-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..3f8ad7ebd042f8b4a6235bbe00a1bb856ead9781 --- /dev/null +++ b/lm_sensors-modprobe-r-wrapper @@ -0,0 +1,8 @@ +#!/bin/sh +if [ $# -ne 0 ]; then + /usr/sbin/modprobe -abr "$@" +else + echo "No sensors with loadable kernel modules configured." + echo "Please, run 'sensors-detect' as root in order to search for available sensors." + exit 1 +fi diff --git a/lm_sensors-modprobe-wrapper b/lm_sensors-modprobe-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..a1d5e8b4aedd1fc5cccaf718ecd201919eed9e6b --- /dev/null +++ b/lm_sensors-modprobe-wrapper @@ -0,0 +1,8 @@ +#!/bin/sh +if [ $# -ne 0 ]; then + /usr/sbin/modprobe -ab "$@" +else + echo "No sensors with loadable kernel modules configured." + echo "Please, run 'sensors-detect' as root in order to search for available sensors." + exit 1 +fi diff --git a/lm_sensors-wrapper b/lm_sensors-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..7c5b3d2cd37a9166a581c55cee91ec0df029b582 --- /dev/null +++ b/lm_sensors-wrapper @@ -0,0 +1,8 @@ +#!/bin/sh +if /usr/bin/systemd-detect-virt 2>/dev/null 1>&2; then + SENSORS_FLAGS_VM='-n'; +else + SENSORS_FLAGS_VM=''; +fi; + +/usr/bin/sensors -s $SENSORS_FLAGS_VM diff --git a/lm_sensors.service b/lm_sensors.service new file mode 100644 index 0000000000000000000000000000000000000000..fc99241147f357a71c1ba2c7622a58ed07516bc2 --- /dev/null +++ b/lm_sensors.service @@ -0,0 +1,13 @@ +[Unit] +Description=Hardware Monitoring Sensors + +[Service] +EnvironmentFile=/etc/sysconfig/lm_sensors +Type=oneshot +RemainAfterExit=yes +ExecStart=-@WRAPPER_DIR@/lm_sensors-modprobe-wrapper $BUS_MODULES $HWMON_MODULES +ExecStart=@WRAPPER_DIR@/lm_sensors-wrapper +ExecStop=-@WRAPPER_DIR@/lm_sensors-modprobe-r-wrapper $BUS_MODULES $HWMON_MODULES + +[Install] +WantedBy=multi-user.target diff --git a/lm_sensors.spec b/lm_sensors.spec new file mode 100644 index 0000000000000000000000000000000000000000..5a110b50c004d922fc5a4b88f2b74cbee2fc60f4 --- /dev/null +++ b/lm_sensors.spec @@ -0,0 +1,206 @@ +%define anolis_release 1 +%define upstream_version %(echo %{version} | sed -e 's/\\./-/g') + +Name: lm_sensors +Version: 3.6.0 +Release: %{anolis_release}%{?dist} +Summary: Hardware monitoring tools +License: GPLv2+ and Verbatim and MIT +URL: http://github.com/lm-sensors/lm-sensors/ + +Source0: https://github.com/lm-sensors/lm-sensors/archive/V%{upstream_version}/lm-sensors-%{upstream_version}.tar.gz +Source1: lm_sensors.sysconfig +# This one was taken from PLD-linux, Thanks! +Source2: sensord.sysconfig +Source3: lm_sensors-modprobe-wrapper +Source4: lm_sensors-modprobe-r-wrapper +Source5: sensord.service +Source6: sensord-service-wrapper +Source7: lm_sensors.service +Source8: lm_sensors-wrapper + +# Downstream-only: +Patch0: 0001-Revert-unnecessary-soname-bump.patch + +# Upstream patch: +Patch1: 0001-Change-PIDFile-path-from-var-run-to-run.patch +Patch2: lm_sensors-3.6.0-allow_no_sensors.patch +# Upstream commit 5deee7d0c301df779: +Patch3: lm_sensors-3.6.0-sensors-detect-Add-support-for-AMD-CPU-Family-19h.patch + +Requires: /usr/sbin/modprobe +%ifarch x86_64 +Requires: /usr/sbin/dmidecode +%endif +Requires: %{name}-libs = %{version}-%{release} +Requires(post): systemd-units +BuildRequires: kernel-headers >= 2.2.16, bison, flex, gawk +BuildRequires: perl-generators +BuildRequires: rrdtool-devel +BuildRequires: gcc +BuildRequires: make + + +%description +The lm_sensors package includes a collection of modules for general SMBus +access and hardware monitoring. + + +%package libs +Summary: Lm_sensors core libraries +License: LGPLv2+ + +%description libs +Core libraries for lm_sensors applications + + +%package devel +Summary: Development files for programs which will use lm_sensors +Requires: %{name}-libs = %{version}-%{release} +# One manual page is licensed Verbatim (lib/libsensors.3). The rest is LGPLv2+. +License: LGPLv2+ and Verbatim + +%description devel +The lm_sensors-devel package includes a header files and libraries for use +when building applications that make use of sensor data. + + +%package sensord +Summary: Daemon that periodically logs sensor readings +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +# One man page is licensed Verbatim (prog/sensord/sensord.8). Files from +# dist-git are licensed MIT according to the FPCA. The rest is GPLv2+. +License: GPLv2+ and Verbatim and MIT + +%description sensord +Daemon that periodically logs sensor readings to syslog or a round-robin +database, and warns of sensor alarms. + + +%prep +%autosetup -n lm-sensors-%{upstream_version} -p1 + +# Remove currently unused files to make sure we've got the license right +rm -f prog/init/sysconfig-lm_sensors-convert prog/hotplug/unhide_ICH_SMBus + +mv prog/init/README prog/init/README.initscripts +chmod -x prog/init/fancontrol.init + +# fixing the sensord-service-wrapper path +cp -p %{SOURCE5} sensord.service +cp -p %{SOURCE7} lm_sensors.service +sed -i "s|\@WRAPPER_DIR\@|%{_libexecdir}/%{name}|" sensord.service +sed -i "s|\@WRAPPER_DIR\@|%{_libexecdir}/%{name}|" lm_sensors.service + + +%build +%set_build_flags +%{make_build} PREFIX=%{_prefix} LIBDIR=%{_libdir} MANDIR=%{_mandir} \ + EXLDFLAGS="$LDFLAGS" PROG_EXTRA=sensord BUILD_STATIC_LIB=0 user + + +%install +make PREFIX=%{_prefix} LIBDIR=%{_libdir} MANDIR=%{_mandir} PROG_EXTRA=sensord \ + DESTDIR=$RPM_BUILD_ROOT BUILD_STATIC_LIB=0 user_install + +ln -s sensors.conf.5.gz $RPM_BUILD_ROOT%{_mandir}/man5/sensors3.conf.5.gz + +mkdir -p $RPM_BUILD_ROOT%{_initrddir} +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sensors.d +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig +install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/lm_sensors +install -pm 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/sensord + +# service files +mkdir -p $RPM_BUILD_ROOT%{_unitdir} +install -pm 644 prog/init/fancontrol.service $RPM_BUILD_ROOT%{_unitdir} +install -pm 644 lm_sensors.service $RPM_BUILD_ROOT%{_unitdir} +install -pm 644 sensord.service $RPM_BUILD_ROOT%{_unitdir} + +# customized modprobe calls +mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/%{name} +install -pm 755 %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lm_sensors-modprobe-wrapper +install -pm 755 %{SOURCE4} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lm_sensors-modprobe-r-wrapper +install -pm 755 %{SOURCE8} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lm_sensors-wrapper + +# sensord service wrapper +install -pm 755 %{SOURCE6} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/sensord-service-wrapper + + +# Note non standard systemd scriptlets, since reload / stop makes no sense +# for lm_sensors +%triggerun -- lm_sensors < 3.3.0-2 +if [ -L /etc/rc3.d/S26lm_sensors ]; then + /bin/systemctl enable lm_sensors.service >/dev/null 2>&1 || : +fi +/sbin/chkconfig --del lm_sensors + +# ===== main ===== + +%post +%systemd_post lm_sensors.service + +%preun +%systemd_preun lm_sensors.service + +%postun +%systemd_postun_with_restart lm_sensors.service + +# ==== sensord === + +%post sensord +%systemd_post sensord.service + +%preun sensord +%systemd_preun sensord.service + +%postun sensord +%systemd_postun_with_restart sensord.service + +# ===== libs ===== + +%ldconfig_scriptlets libs + + +%files +%license COPYING +%doc CHANGES CONTRIBUTORS doc README* +%doc prog/init/fancontrol.init prog/init/README.initscripts +%config %{_sysconfdir}/sensors3.conf +%config(noreplace) %{_sysconfdir}/sysconfig/lm_sensors +%dir %{_sysconfdir}/sensors.d +%{_bindir}/* +%{_mandir}/man1/* +%{_mandir}/man5/* +%{_mandir}/man8/* +%{_sbindir}/* +%{_unitdir}/lm_sensors.service +%{_unitdir}/fancontrol.service +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/lm_sensors-modprobe*wrapper +%{_libexecdir}/%{name}/lm_sensors-wrapper +%exclude %{_sbindir}/sensord +%exclude %{_mandir}/man8/sensord.8.gz + +%files libs +%{_libdir}/*.so.* +%license COPYING.LGPL + +%files devel +%{_includedir}/sensors +%{_libdir}/lib*.so +%{_mandir}/man3/* + +%files sensord +%doc prog/sensord/README +%{_sbindir}/sensord +%{_mandir}/man8/sensord.8.gz +%config(noreplace) %{_sysconfdir}/sysconfig/sensord +%{_unitdir}/sensord.service +%{_libexecdir}/%{name}/sensord-service-wrapper + + +%changelog +* Fri Jul 15 2022 happy_orange - 3.6.0-1 +- Init pacakge from upstream diff --git a/lm_sensors.sysconfig b/lm_sensors.sysconfig new file mode 100644 index 0000000000000000000000000000000000000000..334c5eaa87ad7d183edf06fe4839697be403eba3 --- /dev/null +++ b/lm_sensors.sysconfig @@ -0,0 +1,2 @@ +# /etc/sysconfig/lm_sensors - Defines modules loaded by the lm_sensors service +# Run 'sensors-detect' to generate this config file diff --git a/sensord-service-wrapper b/sensord-service-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..70ca0f1ab1b19e980d6edabb020a65c5fab4a30b --- /dev/null +++ b/sensord-service-wrapper @@ -0,0 +1,13 @@ +#!/bin/sh + +. /etc/sysconfig/sensord + +ARGS="" +[ "$INTERVAL" = "" ] || ARGS=`echo "$ARGS -i $INTERVAL"` +[ "$LOG_INTERVAL" = "" ] || ARGS=`echo "$ARGS -l $LOG_INTERVAL"` +[ "$RRD_INTERVAL" = "" ] || ARGS=`echo "$ARGS -t $RRD_INTERVAL"` +[ "$RRD_LOGFILE" = "" ] || ARGS=`echo "$ARGS -r $RRD_LOGFILE"` +[ "$RRD_NO_AVG" = "1" ] && ARGS=`echo "$ARGS -T"` +[ "$LOAD_AVG" = "1" ] && ARGS=`echo "$ARGS -a"` + +/usr/sbin/sensord -f daemon $ARGS diff --git a/sensord.service b/sensord.service new file mode 100644 index 0000000000000000000000000000000000000000..2bc553983a83912031f09e40fd7ded564c99f4e3 --- /dev/null +++ b/sensord.service @@ -0,0 +1,12 @@ +[Unit] +Description=Hardware Monitoring Data Logger +After=lm_sensors.service + +[Service] +EnvironmentFile=-/etc/sysconfig/sensord +Type=forking +PIDFile=/var/run/sensord.pid +ExecStart=@WRAPPER_DIR@/sensord-service-wrapper + +[Install] +WantedBy=multi-user.target diff --git a/sensord.sysconfig b/sensord.sysconfig new file mode 100644 index 0000000000000000000000000000000000000000..8f00618a8f36e4eee3eba296ada6d6a2351daddc --- /dev/null +++ b/sensord.sysconfig @@ -0,0 +1,21 @@ +# configuration for harware sensors monitoring daemon +# use suffix "m" for minutes, "s" for seconds, "h" for hours +# 0 turns the facility off + +# interval between scanning alarms +INTERVAL=1m + +# interval between logging +LOG_INTERVAL=20m + +# interval between RRD logging +# RRD_INTERVAL=1m + +# RRD db location +# RRD_LOGFILE=/var/log/sensors.rrd + +# Switch RRD in non-average mode ... 1 - enabled, 0 - disabled (default) +# RRD_NO_AVG=1 + +# Include load average in RRD ... 1 - enabled, 0 - disabled (default) +# LOAD_AVG=1