Commit 539d2f79 authored by Natanael Copa's avatar Natanael Copa

extra/lm_sensors: new aport

Collection of user space tools for general SMBus access and hardware monitoring
http://www.lm-sensors.org/
parent 482c9f9d
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lm_sensors
pkgver=3.0.3
pkgrel=0
pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring."
url="http://www.lm-sensors.org/"
license="GPL"
depends="uclibc sysfsutils rrdtool"
makedepends="perl rrdtool-dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-detect"
#install=sensors.install
source="http://dl.lm-sensors.org/lm-sensors/releases/$pkgname-$pkgver.tar.bz2
lm_sensors-3.0.3-sensors-detect-gentoo.patch
fancontrol.initd
lm_sensors.initd
sensord.confd
sensord.initd
"
build ()
{
cd "$srcdir"/$pkgname-$pkgver
sed -i -e 's:^# \(PROG_EXTRA\):\1:' Makefile
# Respect LDFLAGS
sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile
sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
lib/Module.mk
export CFLAGS="$CFLAGS -fno-stack-protector"
for i in ../*.patch; do
msg "Applying $i"
patch -p1 < $i || return 1
done
make PREFIX=/usr user || return 1
make user_install \
PREFIX=/usr \
MANDIR=/usr/share/man \
DESTDIR="$pkgdir" || return 1
cd "$srcdir"
install -Dm755 fancontrol.initd "$pkgdir"/etc/init.d/fancontrol
install -Dm755 lm_sensors.initd "$pkgdir"/etc/init.d/lm_sensors
install -Dm755 sensord.initd "$pkgdir"/etc/init.d/sensord
install -Dm755 sensord.confd "$pkgdir"/etc/conf.d/sensord
}
detect() {
depends="perl"
pkgdesc="Detection/migration scripts for lm_sensors"
mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/sbin
cd "$pkgdir"
mv usr/bin/sensors-conf-convert "$subpkgdir"/usr/bin/
mv usr/sbin/sensors-detect "$subpkgdir"/usr/bin/
}
md5sums="e88b236228ac2a50821217015b8fd0fa lm_sensors-3.0.3.tar.bz2
495d9786dab6a9d0c1e54aa2fb6aeb96 lm_sensors-3.0.3-sensors-detect-gentoo.patch
58f4c9193a903711ace7fa0754693bd2 fancontrol.initd
2c7e97203da2c39bc9fbfc2a4849cfd4 lm_sensors.initd
82e075236a61334abb3adf46280380d3 sensord.confd
6f3a880988e7cdbcb20870e3c6d1e554 sensord.initd"
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/lm_sensors/files/fancontrol-init.d,v 1.1 2007/05/17 07:31:41 phreak Exp $
CONFIG=/etc/fancontrol
PID=/var/run/fancontrol.pid
depend() {
after lm_sensors
}
checkconfig() {
if [ ! -f ${CONFIG} ]; then
eerror "Configuration file ${CONFIG} not found"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting fancontrol"
start-stop-daemon --start --quiet --background --pidfile ${PID} \
--exec /usr/sbin/fancontrol -- ${CONFIG}
eend ${?}
}
stop() {
ebegin "Stopping fancontrol"
start-stop-daemon --stop --pidfile ${PID}
eend ${?}
}
diff -urN lm_sensors-3.0.3.orig/prog/detect/sensors-detect lm_sensors-3.0.3/prog/detect/sensors-detect
--- lm_sensors-3.0.3.orig/prog/detect/sensors-detect 2008-09-19 17:05:28.000000000 +0200
+++ lm_sensors-3.0.3/prog/detect/sensors-detect 2008-10-27 10:03:39.000000000 +0100
@@ -27,6 +27,9 @@
# each be put in a separate file, using modules and packages. That is beyond
# me.
+# Gentoo specific modifications based on a patch from Rudo Thomas
+# <thomr9am@ss1000.ms.mff.cuni.cz>
+
require 5.004;
use strict;
@@ -6076,29 +6079,35 @@
print MODPROBE_D $configfile;
close(MODPROBE_D);
} else {
+ print "\nIf you want to load the modules at startup, generate a config file\n",
+ "below and make sure lm_sensors gets started at boot time; e.g\n",
+ "\$ rc-update add lm_sensors default\n";
print "To make the sensors modules behave correctly, add these lines to\n".
- "$modules_conf:\n\n";
+ "/etc/modules.d/lm_sensors and run modules-update:\n\n";
print "#----cut here----\n".
$configfile.
"#----cut here----\n\n";
}
}
- my $have_sysconfig = -d '/etc/sysconfig';
- printf "Do you want to \%s /etc/sysconfig/lm_sensors? (\%s): ",
- (-e '/etc/sysconfig/lm_sensors' ? 'overwrite' : 'generate'),
- ($have_sysconfig ? 'YES/no' : 'yes/NO');
- $_ = <STDIN>;
- if (($have_sysconfig and not m/^\s*n/i) or m/^\s*y/i) {
- unless ($have_sysconfig) {
- mkdir('/etc/sysconfig', 0777)
- or die "Sorry, can't create /etc/sysconfig ($!)";
- }
- open(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors")
- or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)";
- print SYSCONFIG <<'EOT';
-# /etc/sysconfig/lm_sensors - Defines modules loaded by
-# /etc/init.d/lm_sensors
+ my $have_config = -f '/etc/conf.d/lm_sensors';
+ print "\nDo you want to ".($have_config?"overwrite":"generate").
+ " /etc/conf.d/lm_sensors? Enter s to specify other file name?\n",
+ " (".($have_config?"yes/NO":"YES/no")."/s): ";
+ my $reply = <STDIN>;
+
+ if (($have_config and $reply =~ /^\s*[Yy]/) or
+ (not $have_config and not $reply =~ /^\s*[Nn]/) or
+ $reply =~ /^\s*[Ss]/) {
+ my $filename = "/etc/conf.d/lm_sensors";
+ if ($reply =~ /^\s*[Ss]/) {
+ print "Specify the file to store the configuration to: ";
+ $filename = <STDIN>;
+ }
+ open(SYSCONFIG, ">".$filename)
+ or die "Sorry, can't create $filename ($!).";
+ print SYSCONFIG <<'EOT';
+# /etc/conf.d/sensors - Defines modules loaded by /etc/init.d/lm_sensors
# Copyright (c) 1998 - 2001 Frodo Looijaard <frodol@dds.nl>
#
# This program is free software; you can redistribute it and/or modify
@@ -6127,12 +6136,21 @@
# in order as normal variables with the special names:
# MODULE_0, MODULE_1, MODULE_2, etc.
#
+# Please note that the numbers in MODULE_X must start at 0 and increase in
+# steps of 1. Any number that is missing will make the init script skip the
+# rest of the modules. Use MODULE_X_ARGS for arguments.
+#
# List the modules that are to be loaded for your system
#
EOT
print SYSCONFIG
- "# Generated by sensors-detect on " . scalar localtime() . "\n";
+ "# Generated by sensors-detect on " . scalar localtime() . "\n\n";
my @modules = grep /^modprobe /, split "\n", $modprobes;
+ print SYSCONFIG
+ "# Load modules at startup\n".
+ "LOADMODULES=yes\n\n".
+ "# Initialize sensors at startup\n".
+ "INITSENSORS=yes\n\n";
my $i = 0;
my $sysconfig = "";
foreach (@modules) {
@@ -6142,10 +6160,8 @@
}
print SYSCONFIG $sysconfig;
close(SYSCONFIG);
+ print "Done.\n";
- print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n".
- "for initialization at boot time.\n"
- unless -f "/etc/init.d/lm_sensors";
if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") {
system("/sbin/insserv", "/etc/init.d/lm_sensors");
@@ -6159,15 +6175,6 @@
"kernel modules.\n\n";
}
} else {
- print "To load everything that is needed, add this to one of the system\n".
- "initialization scripts (e.g. /etc/rc.d/rc.local):\n\n";
- print "#----cut here----\n".
- $modprobes.
- (-e '/usr/bin/sensors' ?
- "/usr/bin/sensors -s\n" :
- "/usr/local/bin/sensors -s\n") .
- "#----cut here----\n\n";
-
print "If you have some drivers built into your kernel, the list above will\n".
"contain too many modules. Skip the appropriate ones! You really\n".
"should try these commands right now to make sure everything is\n".
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/lm_sensors/files/lm_sensors-3-init.d,v 1.1 2008/03/17 07:59:28 dberkholz Exp $
checkconfig() {
if [ ! -f /etc/conf.d/lm_sensors ]; then
eerror "/etc/conf.d/lm_sensors does not exist, try running sensors-detect"
return 1
fi
if [ "${LOADMODULES}" = "yes" -a -f /proc/modules ]; then
if [ -z "${MODULE_0}" ]; then
eerror "MODULE_0 is not set in /etc/conf.d/lm_sensors, try running sensors-detect"
return 1
fi
fi
}
start() {
checkconfig || return 1
if [ "${LOADMODULES}" = "yes" -a -f /proc/modules ]; then
einfo "Loading lm_sensors modules..."
mount | grep sysfs >/dev/null 2>&1
if [ ${?} = 0 ]; then
if ! ( [ -e /sys/i2c ] || [ -e /sys/bus/i2c ] ); then
ebegin " Loading i2c-core"
modprobe i2c-core >/dev/null 2>&1
if [ ${?} != 0 ]; then
eerror " Could not load i2c-core!"
eend 1
fi
( [ -e /sys/i2c ] || [ -e /sys/bus/i2c ] ) || return 1
eend 0
fi
elif ! [ -e /proc/sys/dev/sensors ]; then
ebegin " Loading i2c-proc"
modprobe i2c-proc >/dev/null 2>&1
if [ ${?} != 0 ]; then
eerror " Could not load i2c-proc!"
eend 1
fi
[ -e /proc/sys/dev/sensors ] || return 1
eend 0
fi
i=0
while true; do
module=`eval echo '$'MODULE_${i}`
module_args=`eval echo '$'MODULE_${i}_ARGS`
if [ -z "${module}" ]; then
break
fi
ebegin " Loading ${module}"
modprobe ${module} ${module_args} >/dev/null 2>&1
eend $?
i=$(($i+1))
done
fi
if [ "${INITSENSORS}" = "yes" ]; then
if ! [ -f /etc/sensors3.conf ]; then
eerror "/etc/sensors3.conf does not exist!"
return 1
fi
ebegin "Initializing sensors"
/usr/bin/sensors -s >/dev/null 2>&1
eend ${?}
fi
}
stop() {
checkconfig || return 1
if [ "${LOADMODULES}" = "yes" -a -f /proc/modules ]; then
einfo "Unloading lm_sensors modules..."
# find the highest possible MODULE_ number
i=0
while true; do
module=`eval echo '$'MODULE_${i}`
if [ -z "${module}" ] ; then
break
fi
i=$(($i+1))
done
while [ ${i} -gt 0 ]; do
i=$(($i-1))
module=`eval echo '$'MODULE_${i}`
ebegin " Unloading ${module}"
rmmod ${module} >/dev/null 2>&1
eend $?
done
if [ -e /proc/sys/dev/sensors ] ; then
ebegin " Unloading i2c-proc"
rmmod i2c-proc >/dev/null 2>&1
eend $?
fi
fi
}
# Extra options to pass to the sensord daemon,
# see sensord(8) for more information
SENSORD_OPTIONS=""
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/lm_sensors/files/sensord-init.d,v 1.1 2007/05/17 07:31:41 phreak Exp $
CONFIG=/etc/sensors.conf
depend() {
need logger
use lm_sensors
}
checkconfig() {
if [ ! -f ${CONFIG} ]; then
eerror "Configuration file ${CONFIG} not found"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting sensord"
start-stop-daemon --start --exec /usr/sbin/sensord \
-- --config-file ${CONFIG} ${SENSORD_OPTIONS}
eend ${?}
}
stop() {
ebegin "Stopping sensord"
start-stop-daemon --stop --pidfile /var/run/sensord.pid
eend ${?}
}
post_install() {
echo ">>> to control the lm_sensors daemon type"
echo ">>> \"/etc/rc.d/sensors start|stop|restart\" "
echo ">>> --------------------------------------"
echo ">>> before you can use the fancontrol daemon"
echo ">>> first create a fancontrol config file, use \"pwmconfig\""
echo ">>> then type \"/etc/rc.d/fancontrol start|stop|restart\" "
echo ">>> --------------------------------------"
echo ">>> to decode memory SPD timings modprobe eeprom module"
echo ">>> and get this perl script from"
echo ">>> \"http://www.lm-sensors.org/browser/lm-sensors/trunk/prog/eeprom/decode-dimms.pl\""
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment