+# TODO
+# - unpackaged:
+# /usr/sbin/fancontrol.pl (isn't that the same as sh fancontrol script?)
+# - a big trigger warning how to use fancontrol and to init it first
#
-# Conditional build:
-%bcond_without dist_kernel # without kernel for distributions
-%bcond_without smp # don't build SMP modules
-%bcond_without kernel # build kernel 2.4 modules
-%bcond_without userspace # don't build userspace utilities
-
-%ifarch amd64
-%undefine with_kernel
-%endif
+%define cmodule %{_sysconfdir}/sysconfig/sensors_modules
+%define cdaemon %{_sysconfdir}/sysconfig/sensors
+%define smodule %{_sysconfdir}/rc.d/init.d/sensors_modules
+%define sdaemon %{_sysconfdir}/rc.d/init.d/sensors
%include /usr/lib/rpm/macros.perl
Summary: Hardware health monitoring
Summary(ru): õÔÉÌÉÔÙ ÄÌÑ ÍÏÎÉÔÏÒÉÎÇÁ ÁÐÐÁÒÁÔÕÒÙ
Summary(uk): õÔÉ̦ÔÉ ÄÌÑ ÍÏΦÔÏÒÉÎÇÕ ÁÐÁÒÁÔÕÒÉ
Name: lm_sensors
-Version: 2.9.0
-%define _rel 1
-Release: %{_rel}
+Version: 2.10.1
+Release: 2
License: GPL
Group: Applications/System
-Source0: http://secure.netroedge.com/~lm78/archive/%{name}-%{version}.tar.gz
-# Source0-md5: add1f403c619e84bec2fbdfa12eda56f
+Source0: http://dl.lm-sensors.org/lm-sensors/releases/%{name}-%{version}.tar.gz
+# Source0-md5: cdc857b78e813b88cbf8be92441aa299
Source1: sensors.init
Source2: sensors.sysconfig
+Source3: fancontrol.init
+Source4: fancontrol.sysconfig
+Source5: sensors.sh
+Source6: sensors_modules.init
+Source7: sensors_modules.sysconfig
Patch0: %{name}-make.patch
Patch1: %{name}-ppc.patch
Patch2: %{name}-iconv-in-libc.patch
-Patch3: %{name}-gcc34.patch
+Patch3: %{name}-sensors-detect-PATH.patch
URL: http://www.lm-sensors.nu/
-BuildRequires: rpmbuild(macros) >= 1.118
-%if %{with userspace}
BuildRequires: bison
BuildRequires: flex >= 2.5.1
BuildRequires: perl-modules >= 5.6
BuildRequires: rpm-perlprov >= 3.0.3-16
-BuildRequires: rrdtool-devel
-%endif
-%if %{with kernel} && %{with dist_kernel}
-BuildRequires: kernel-i2c-devel >= 2.9.0
-BuildRequires: kernel-headers >= 2.4.0
-BuildRequires: kernel-headers < 2.5.0
-%endif
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rrdtool-devel >= 1.2.10
+BuildRequires: sysfsutils-devel
+Requires: %{name}-libs = %{version}-%{release}
Requires: dev >= 2.9.0-13
Requires: dmidecode
-Obsoletes: liblm_sensors1
+Requires: %{name}-config
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _kernelsrcdir /usr/src/linux-2.4
-
%description
Tools for monitoring the hardware health of Linux systems containing
hardware health monitoring hardware such as the LM78 and LM75.
SMBus ÔÁ ÍÏΦÔÏÒÉÎÇÕ. õ÷áçá: ÄÌÑ ÃØÏÇÏ ÐÏÔÒ¦ÂÎÁ ÓÐÅæÁÌØÎÁ ЦÄÔÒÉÍËÁ,
ÑËÁ צÄÓÕÔÎÑ Õ ÓÔÁÎÄÁÒÔÎÉÈ ÓÔÁÒÉÈ ÑÄÒÁÈ 2.2.XX!
-%package sensord
-Summary: Sensord daemon
-Summary(pl): Demon sensord
-Group: Daemons
-PreReq: rc-scripts
-Requires(post,preun): /sbin/chkconfig
-Requires: %{name} = %{version}-%{release}
+%package libs
+Summary: lm_sensors library
+Summary(pl): Biblioteka lm_sensors
+Group: Libraries
+Obsoletes: liblm_sensors1
+Conflicts: lm_sensors <= 2.9.2-2
-%description sensord
-Sensord daemon.
+%description libs
+lm_sensors library.
-%description sensord -l pl
-Demon sensord.
+%description libs -l pl
+Biblioteka lm_sensors.
%package devel
Summary: Header files for lm_sensors
Summary(ru): æÁÊÌÙ ÒÁÚÒÁÂÏÔÞÉËÁ ÄÌÑ ÐÒÏÇÒÁÍÍ, ÉÓÐÏÌØÚÕÀÝÉÈ lm_sensors
Summary(uk): æÁÊÌÉ ÐÒÏÇÒÁͦÓÔÁ ÄÌÑ ÐÒÏÇÒÁÍ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØ lm_sensors
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
Obsoletes: liblm_sensors1-devel
%description devel
ðÁËÅÔ lm_sensors-static ͦÓÔÉÔØ ÓÔÁÔÉÞΦ ¦Â̦ÏÔÅËÉ, ÎÅÏÂȦÄΦ ÄÌÑ
ÐÏÂÕÄÏ×É ÐÒÏÇÒÁÍ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØ ÄÁΦ ÓÅÎÓÏÒ¦×.
-%package -n kernel24-i2c-%{name}
-Summary: Kernel modules for various buses and monitor chips
-Summary(pl): Modu³y j±dra dla ró¿nego rodzaju sensorów
+%package config-default
+Summary: Sensors configuration files
+Summary(pl): Pliki konfiguracyjne lm_sensors
Group: Applications/System
-Release: %{_rel}@%{_kernel_ver_str}
-Requires(post,postun): /sbin/depmod
-%{?with_dist_kernel:%requires_releq_kernel_up}
-%{?with_dist_kernel:Requires: i2c >= 2.8.2}
-Provides: %{name}-modules = %{version}-%{release}
-Obsoletes: kernel-misc-lm_sensors
-
-%description -n kernel24-i2c-%{name}
-Kernel modules for various buses and monitor chips.
-
-%description -n kernel24-i2c-%{name} -l pl
-Modu³y j±dra dla ró¿nego rodzaju sensorów monitoruj±cych.
-
-%package -n kernel24-smp-i2c-%{name}
-Summary: Kernel modules for various buses and monitor chips
-Summary(pl): Modu³y j±dra dla ró¿nego rodzaju sensorów
-Group: Applications/System
-Release: %{_rel}@%{_kernel_ver_str}
-Requires(post,postun): /sbin/depmod
-%{?with_dist_kernel:%requires_releq_kernel_smp}
-%{?with_dist_kernel:Requires: i2c >= 2.8.2}
-Provides: %{name}-modules = %{version}-%{release}
-Obsoletes: kernel-smp-misc-lm_sensors
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-config
+
+%description config-default
+Default configuration files for lm_sensors.
+
+%package sensord
+Summary: Sensord daemon
+Summary(pl): Demon sensord
+Group: Daemons
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-config
+Requires: rc-scripts
+
+%description sensord
+Sensord daemon.
+
+%description sensord -l pl
+Demon sensord.
+
+%package fancontrol
+Summary: Fancontrol daemon
+Summary(pl): Demon sterowania wiatraczkami
+Group: Daemons
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-sensord = %{version}-%{release}
+Requires: rc-scripts
+
+%description fancontrol
+Fancontrol daemon monitors current temperature of the computer and
+adjusts fans speed acordingly.
+
+It is crucial to correctly configure this daemon (via running service
+fancontrol init) and ensuring, that the temperature levels are set not
+to burn the insides of the computer!
-%description -n kernel24-smp-i2c-%{name}
-Kernel SMP modules for various buses and monitor chips.
+%description fancontrol -l pl
+Demon fancontrol monitoruje obecn± temperaturê komputera i ustawia
+odpowiednio prêdko¶æ wiatraków.
-%description -n kernel24-smp-i2c-%{name} -l pl
-Modu³y j±dra SMP dla ró¿nego rodzaju sensorów monitoruj±cych.
+Kluczowym jest, aby poprawnie skonfigurowaæ tego demona (poprzez
+uruchomienie service fancontrol init) oraz upewniæ siê, ¿e progi
+temperatury s± ustawione poprawnie, by nie spaliæ wnêtrza komputera!
%prep
%setup -q
%patch3 -p1
%build
-%if %{with kernel} && %{with smp}
-# workaround to avoid unresolved dmi* symbols in i2c-piix4.o
-install -d fakelinux
-:> fakelinux/.config
-%ifarch %{ix86}
-echo 'CONFIG_X86=y' >> fakelinux/.config
-%endif
-
-# SMP
-%{__make} all-kernel-busses all-kernel-chips \
- CC="%{kgcc}" \
- OPTS="%{rpmcflags} -D__KERNEL_SMP=1" \
- LINUX=`pwd`/fakelinux \
- LINUX_HEADERS=%{_kernelsrcdir}/include \
- I2C_HEADERS=%{_kernelsrcdir}/include \
- SMP=1
-
-%{__make} install-kernel-busses install-kernel-chips \
- MODPREF=kernel-smp-modules \
- LINUX=`pwd`/fakelinux \
- LINUX_HEADERS=%{_kernelsrcdir}/include \
- I2C_HEADERS=%{_kernelsrcdir}/include \
- SMP=1
-
-%{__make} clean
-%endif
-
-%if %{with kernel}
-# UP
-%{__make} all-kernel-busses all-kernel-chips \
- CC="%{kgcc}" \
- OPTS="%{rpmcflags}" \
- LINUX=`pwd`/fakelinux \
- LINUX_HEADERS=%{_kernelsrcdir}/include \
- I2C_HEADERS=%{_kernelsrcdir}/include \
- SMP=0
-%endif
-
-%if %{with userspace}
%{__make} user \
CC="%{__cc}" \
OPTS="%{rpmcflags}" \
LINUX=/dev/null \
LINUX_HEADERS=%{_kernelsrcdir}/include \
I2C_HEADERS=/usr/include \
- PROG_EXTRA:="sensord"
+ PROG_EXTRA:="sensord" \
+ SYSFS_SUPPORT:=1
%{__make} -C prog/eepromer \
CC="%{__cc}" \
CFLAGS="%{rpmcflags} -I../../kernel/include"
-%endif
%install
rm -rf $RPM_BUILD_ROOT
-%if %{with kernel}
-%{__make} install-kernel-busses install-kernel-chips \
- DESTDIR=$RPM_BUILD_ROOT \
- MODPREF=/lib/modules/%{_kernel_ver} \
- LINUX=`pwd`/fakelinux \
- LINUX_HEADERS=%{_kernelsrcdir}/include \
- I2C_HEADERS=%{_kernelsrcdir}/include \
- SMP=0
-%endif
-
-%if %{with userspace}
install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8} \
- $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
+ $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig}
%{__make} user_install \
DESTDIR=$RPM_BUILD_ROOT \
install prog/eepromer/{eeprom,eepromer} $RPM_BUILD_ROOT%{_sbindir}
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/sensors
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sensors
+install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/sensors
+install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/sensors
+install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/fancontrol
+install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/fancontrol
+install %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}
+install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/sensors_modules
+install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/sensors_modules
# i2c API for userspace - included in glibc-kernel-headers
rm -f $RPM_BUILD_ROOT%{_includedir}/linux/i2c-dev.h
-%endif
-
-%if %{with kernel} && %{with smp}
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/{busses,chips}
-install kernel-smp-modules/kernel/drivers/i2c/busses/*.o \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/busses
-install kernel-smp-modules/kernel/drivers/i2c/chips/*.o \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/chips
-%endif
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
-%post sensord
-/sbin/chkconfig --add sensors
-if [ -f /var/lock/subsys/sensors ]; then
- /etc/rc.d/init.d/sensors restart >&2
-else
- echo "You have to configure sensors modules in /etc/sysconfig/sensors"
- echo
- echo "Run \"/etc/rc.d/init.d/sensors start\" to start sensors daemon." >&2
+%post
+if [ -f "%{cmodule}" ]; then
+ /sbin/chkconfig --add sensors_modules
+ %service sensors_modules restart "sensors modules"
+ if [ -f "%{sdaemon}" ]; then
+ /sbin/chkconfig --add sensors
+ %service sensors restart "sensors deamon"
+ fi
fi
-%preun sensord
+%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/sensors ]; then
- /etc/rc.d/init.d/sensors stop >&2
+ if [ -f "%{sdaemon}" ]; then
+ %service sensors stop
+ /sbin/chkconfig --del sensors
fi
- /sbin/chkconfig --del sensors
+ %service sensors_modules stop
+ /sbin/chkconfig --del sensors_modules
fi
-%post -n kernel24-i2c-%{name}
-%depmod %{_kernel_ver}
+%post config-default
+if [ "$1" = 1 ]; then
+cat << EOF
+ *********************************************************************
+ * *
+ * NOTE: *
+ * You have to configure sensors to match your motherboard sensors *
+ * in /etc/sensors.conf and /etc/sysconfig/sensors_modules. Use *
+ * sensors-detect script which can help you find proper modules. *
+ * *
+ *********************************************************************
+EOF
+fi
+if [ -f "%{smodule}" ]; then
+ /sbin/chkconfig --add sensors_modules
+ %service sensors_modules restart "sensors modules"
+fi
+if [ -f "%{sdaemon}" ]; then
+ /sbin/chkconfig --add sensors
+ %service sensors restart "sensors daemon"
+fi
-%postun -n kernel24-i2c-%{name}
-%depmod %{_kernel_ver}
+%preun config-default
+if [ "$1" = "0" ]; then
+ if [ -f "%{sdaemon}" ]; then
+ %service sensors stop
+ /sbin/chkconfig --del sensors
+ fi
+ if [ -f "%{smodule}" ]; then
+ %service sensors_modules stop
+ /sbin/chkconfig --del sensors_modules
+ fi
+fi
-%post -n kernel24-smp-i2c-%{name}
-%depmod %{_kernel_ver}smp
+%post sensord
+if [ -f "%{cmodule}" ]; then
+ /sbin/chkconfig --add sensors
+ %service sensors restart "sensors daemon"
+fi
-%postun -n kernel24-smp-i2c-%{name}
-%depmod %{_kernel_ver}smp
+%preun sensord
+if [ "$1" = "0" ]; then
+ %service sensors stop
+ /sbin/chkconfig --del sensors
+fi
+
+%post fancontrol
+if [ "$1" = 1 ]; then
+ echo "You have to configure fancontrol by running service fancontrol init first."
+fi
+/sbin/chkconfig --add fancontrol
+%service fancontrol restart "fancontrol daemon"
+
+%preun fancontrol
+if [ "$1" = "0" ]; then
+ %service fancontrol stop
+ /sbin/chkconfig --del fancontrol
+fi
-%if %{with userspace}
%files
%defattr(644,root,root,755)
%doc BACKGROUND BUGS CHANGES README README.thinkpad TODO doc/{busses,chips}
%doc doc/{FAQ,donations,fan-divisors,progs,temperature-sensors,*html,vid}
%doc prog/{config,daemon,eepromer/README*,matorb,maxilife}
+%attr(755,root,root) %{_bindir}/ddcmon
%attr(755,root,root) %{_bindir}/decode-*.pl
%attr(755,root,root) %{_bindir}/sensors
-%attr(755,root,root) %{_sbindir}/sensors-detect
+%attr(755,root,root) %{_bindir}/sensors.sh
%attr(755,root,root) %{_sbindir}/eeprom*
-%attr(755,root,root) %{_sbindir}/fancontrol
%attr(755,root,root) %{_sbindir}/i2c*
-%ifarch %{ix86} amd64
+%attr(755,root,root) %{_sbindir}/sensors-detect
+%ifarch %{ix86} %{x8664}
%attr(755,root,root) %{_sbindir}/isadump
%attr(755,root,root) %{_sbindir}/isaset
+%attr(754,root,root) %{_sysconfdir}/rc.d/init.d/sensors_modules
%{_mandir}/man8/isadump.8*
%{_mandir}/man8/isaset.8*
%endif
-%attr(755,root,root) %{_sbindir}/pwmconfig
-%attr(755,root,root) %{_libdir}/lib*.so.*.*
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/sensors.conf
%{_mandir}/man1/sensors.1*
%{_mandir}/man5/sensors.conf.5*
%{_mandir}/man8/i2c*.8*
-%{_mandir}/man8/sensors-detect.8*
-%files sensord
+%files config-default
%defattr(644,root,root,755)
-%attr(754,root,root) %{_sbindir}/sensord
-%attr(754,root,root) /etc/rc.d/init.d/sensors
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/sensors
-%{_mandir}/man8/sensord.8*
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sensors.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sysconfig/sensors_modules
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/lib*.so.*.*
%files devel
%defattr(644,root,root,755)
%files static
%defattr(644,root,root,755)
%{_libdir}/libsensors.a
-%endif
-%if %{with kernel}
-%files -n kernel24-i2c-%{name}
+%files sensord
%defattr(644,root,root,755)
-%dir /lib/modules/%{_kernel_ver}/kernel/drivers/i2c/busses
-/lib/modules/%{_kernel_ver}/kernel/drivers/i2c/busses/*.o*
-%dir /lib/modules/%{_kernel_ver}/kernel/drivers/i2c/chips
-/lib/modules/%{_kernel_ver}/kernel/drivers/i2c/chips/*.o*
+%attr(754,root,root) %{_sbindir}/sensord
+%attr(754,root,root) %{_sysconfdir}/rc.d/init.d/sensors
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sysconfig/sensors
+%{_mandir}/man8/sensors-detect.8*
+%{_mandir}/man8/sensord.8*
-%if %{with smp}
-%files -n kernel24-smp-i2c-%{name}
+%files fancontrol
%defattr(644,root,root,755)
-%dir /lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/busses
-/lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/busses/*.o*
-%dir /lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/chips
-/lib/modules/%{_kernel_ver}smp/kernel/drivers/i2c/chips/*.o*
-%endif
-%endif
+%attr(755,root,root) %{_sbindir}/fancontrol
+%attr(755,root,root) %{_sbindir}/pwmconfig
+%attr(754,root,root) %{_sysconfdir}/rc.d/init.d/fancontrol
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sysconfig/fancontrol
+%{_mandir}/man8/fancontrol.8*
+%{_mandir}/man8/pwmconfig.8*