From 415856bdd4f48ab4f2732996f0bae58595092bbe Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 5 Apr 2011 14:26:38 +0000 Subject: Tue Apr 5 14:26:38 UTC 2011 --- extra/lm_sensors/PKGBUILD | 56 ++++++++++++++++ extra/lm_sensors/daemonarg.patch | 50 ++++++++++++++ extra/lm_sensors/fancontrol.rc | 35 ++++++++++ extra/lm_sensors/healthd | 46 +++++++++++++ extra/lm_sensors/healthd.conf | 17 +++++ extra/lm_sensors/healthd.rc | 52 +++++++++++++++ extra/lm_sensors/sensord.conf | 4 ++ extra/lm_sensors/sensord.rc | 37 +++++++++++ extra/lm_sensors/sensors-detect.patch | 61 +++++++++++++++++ extra/lm_sensors/sensors.rc | 119 ++++++++++++++++++++++++++++++++++ 10 files changed, 477 insertions(+) create mode 100644 extra/lm_sensors/PKGBUILD create mode 100644 extra/lm_sensors/daemonarg.patch create mode 100644 extra/lm_sensors/fancontrol.rc create mode 100644 extra/lm_sensors/healthd create mode 100644 extra/lm_sensors/healthd.conf create mode 100644 extra/lm_sensors/healthd.rc create mode 100644 extra/lm_sensors/sensord.conf create mode 100644 extra/lm_sensors/sensord.rc create mode 100644 extra/lm_sensors/sensors-detect.patch create mode 100644 extra/lm_sensors/sensors.rc (limited to 'extra/lm_sensors') diff --git a/extra/lm_sensors/PKGBUILD b/extra/lm_sensors/PKGBUILD new file mode 100644 index 000000000..105c9f1b5 --- /dev/null +++ b/extra/lm_sensors/PKGBUILD @@ -0,0 +1,56 @@ +# $Id: PKGBUILD 117144 2011-03-29 01:07:42Z eric $ +# Maintainer: Eric BĂ©langer + +pkgname=lm_sensors +pkgver=3.3.0 +pkgrel=1 +pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring" +arch=('i686' 'x86_64') +url="http://www.lm-sensors.org/" +license=('GPL' 'LGPL') +depends=('perl' 'sysfsutils' 'rrdtool') +backup=('etc/sensors3.conf' 'etc/conf.d/healthd' 'etc/conf.d/sensord') +options=('!emptydirs') +source=(http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${pkgver}.tar.bz2 \ + sensors.rc fancontrol.rc sensors-detect.patch healthd healthd.conf healthd.rc \ + sensord.conf sensord.rc daemonarg.patch) +md5sums=('5eb18d7531ead4f54f28a1133a606535' + 'c370f5e620bfe41113354a1e22c0c18c' + '232bedf043dd5dedde82df1a399c682c' + '47c40b381d1f25d6634ae84cecf35f33' + '6549050897c237514aeaa2bb6cfd29ea' + 'f8af587038b0e2a89c441f7eeaa5e640' + '970408d2e509dc4138927020efefe323' + '96a8dd468e81d455ec9b165bdf33e0b7' + '41a5c20854bbff00ea7174bd2276b736' + '40c8eb16af8249a0f1d851fc1057ea15') +sha1sums=('16c13a186557164fa51459a02209b120c0335f96' + 'b2e664b9b87759991f02d0a1e8cac5e95098c0a5' + 'a068ac0a3115a6191a487e11422506baa922b40a' + '47095a32a918d6be50bd8daa8aaa9c24940d60e9' + '78b5cd36c3cb8e98b972cdd8c4a12687d79a79a8' + '6c4e8a2d89dd2fd3ca2f0f4f3b1230111e01b0fc' + 'e662881f5d3f3f35a1bc97ba45d2c471dd28c37f' + 'de8d4d65406815c389f8a04e2a8508a1ae6749c8' + '72a60251d1d55a67307dab4105d9f3f01a080af4' + '34241388c4001bfb6e49b7e10da1217e29a258d6') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 < ../sensors-detect.patch + patch -p1 < ../daemonarg.patch + make PREFIX=/usr +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make PROG_EXTRA=sensord BUILD_STATIC_LIB=0 \ + PREFIX=/usr MANDIR=/usr/share/man DESTDIR="${pkgdir}" install + install -D -m755 "${srcdir}/sensors.rc" "${pkgdir}/etc/rc.d/sensors" + install -D -m755 "${srcdir}/fancontrol.rc" "${pkgdir}/etc/rc.d/fancontrol" + install -D -m755 "${srcdir}/healthd" "${pkgdir}/usr/sbin/healthd" + install -D -m755 "${srcdir}/healthd.rc" "${pkgdir}/etc/rc.d/healthd" + install -D -m644 "${srcdir}/healthd.conf" "${pkgdir}/etc/conf.d/healthd" + install -D -m755 "${srcdir}/sensord.rc" "${pkgdir}/etc/rc.d/sensord" + install -D -m644 "${srcdir}/sensord.conf" "${pkgdir}/etc/conf.d/sensord" +} diff --git a/extra/lm_sensors/daemonarg.patch b/extra/lm_sensors/daemonarg.patch new file mode 100644 index 000000000..4b80cef19 --- /dev/null +++ b/extra/lm_sensors/daemonarg.patch @@ -0,0 +1,50 @@ +diff -ru lm_sensors-3.1.2-1/prog/pwm/fancontrol lm_sensors-3.1.2-1_pyropeter/usr/sbin/fancontrol +--- lm_sensors-3.1.2-1/prog/pwm/fancontrol 2010-02-03 03:45:15.000000000 +0100 ++++ lm_sensors-3.1.2-1_pyropeter/prog/pwm/fancontrol 2010-03-07 01:37:09.000000000 +0100 +@@ -5,7 +5,9 @@ + # + # Version 0.70 + # +-# Usage: fancontrol [CONFIGFILE] ++# Usage: fancontrol [-D] [CONFIGFILE] ++# ++# (-D causes fancontrol to 'fork' to the background after some tests) + # + # Dependencies: + # bash, egrep, sed, cut, sleep, readlink, lm_sensors :) +@@ -43,6 +45,12 @@ + #DEBUG=1 + MAX=255 + ++DAEMON=0 ++if [ "$1" = "-D" ]; then ++ DAEMON=1 ++ shift ++fi ++ + declare -i pwmval + + function LoadConfig { +@@ -303,7 +311,6 @@ + echo "File $PIDFILE exists, is fancontrol already running?" + exit 1 + fi +-echo $$ > "$PIDFILE" + + # $1 = pwm file name + function pwmdisable() +@@ -475,6 +482,14 @@ + let fcvcount=$fcvcount+1 + done + ++if [ "$DAEMON" -gt 0 ]; then ++ echo "Forking..." ++ $0 $* &> /dev/null & ++ exit 0 ++fi ++ ++echo $$ > "$PIDFILE" ++ + echo 'Starting automatic fan control...' + + # main loop calling the main function at specified intervals diff --git a/extra/lm_sensors/fancontrol.rc b/extra/lm_sensors/fancontrol.rc new file mode 100644 index 000000000..8e98d06f2 --- /dev/null +++ b/extra/lm_sensors/fancontrol.rc @@ -0,0 +1,35 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=$(pidof -o %PPID -x /usr/sbin/fancontrol) +case "$1" in + start) + stat_busy "Starting fancontrol" + [ -z "$PID" ] && /usr/sbin/fancontrol -D &>/dev/null + if [ $? -gt 0 -o -n "$PID" ]; then + stat_fail + else + add_daemon fancontrol + stat_done + fi + ;; + stop) + stat_busy "Stopping fancontrol" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon fancontrol + stat_done + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/extra/lm_sensors/healthd b/extra/lm_sensors/healthd new file mode 100644 index 000000000..0315dd788 --- /dev/null +++ b/extra/lm_sensors/healthd @@ -0,0 +1,46 @@ +#!/bin/bash + +# +# /usr/sbin/healthd +# + +. /etc/conf.d/healthd + +cmd="${ALARM_CMD}" +addr="${ADMIN_EMAIL}" +slp="${ALARM_SLEEP}" +sensors="/usr/bin/sensors" + + +while [ $# -gt 0 ] ; do + case "${1}" in + -c ) cmd="${2}" ; shift 2 ;; + -m ) addr="${2}" ; shift 2 ;; + -s ) slp="${2}" ; shift 2 ;; + * ) shift 1 ;; + esac +done + +[ -n "${cmd}" ] && [ -n "$( which -- "${cmd%% *}" )" ] || \ + [ -n "${addr}" ] || exit 1 + +[ "${slp}" -ge 2 ] || slp=600 + +while true ; do + sleep 15 + message="$( $sensors )" + case "$message" in + '' ) message='Could not get any sensor values !' ;; + *ALARM* ) : ;; + * ) message='' ;; + esac + if [ -n "$message" ]; then + if [ -n "${addr}" ]; then + echo "$message" | mail -s \ + "Sensors ALARM detected at host: $( hostname )" \ + "${addr}" + fi + [ -z "${cmd}" ] || ${cmd} & + sleep ${slp} + fi +done & diff --git a/extra/lm_sensors/healthd.conf b/extra/lm_sensors/healthd.conf new file mode 100644 index 000000000..a8b2c3fa3 --- /dev/null +++ b/extra/lm_sensors/healthd.conf @@ -0,0 +1,17 @@ +# +# /etc/conf.d/healthd +# + +# reset any pending alarms on startup +ALARM_RESET="yes" + +# where to sent mails on alarm +ADMIN_EMAIL="root" + +# Seconds to sleep when alarm detected before checking again +# If you want to fill up your mail inbox set this to 2. ;-) +ALARM_SLEEP=600 + +# command to run in background on each alarm +# N.B.: If you choose to use the beep command, you'll need to install it: pacman -S beep +ALARM_CMD="beep -f 800 -l 500 -d 500 -r 600" diff --git a/extra/lm_sensors/healthd.rc b/extra/lm_sensors/healthd.rc new file mode 100644 index 000000000..7bb79519f --- /dev/null +++ b/extra/lm_sensors/healthd.rc @@ -0,0 +1,52 @@ +#!/bin/bash + +# +# /etc/rc.d/healthd +# + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/healthd + +maybe_alarm_reset() { + case "${ALARM_RESET}" in + yes) /usr/bin/sensors > /dev/null + ;; + no) true + ;; + *) false + esac + return $? +} + +PID=$(pidof -x -o %PPID /usr/sbin/healthd) +case "${1}" in + start) + stat_busy "Starting Health Daemon" + [ -z "${PID}" ] && maybe_alarm_reset && /usr/sbin/healthd &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + echo "${PID}" > /var/run/healthd.pid + add_daemon healthd + stat_done + fi + ;; + stop) + stat_busy "Stopping Health Daemon" + [ ! -z "${PID}" ] && kill ${PID} &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon healthd + stat_done + fi + ;; + restart) + $0 stop + sleep 2 + $0 start + ;; + *) echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/extra/lm_sensors/sensord.conf b/extra/lm_sensors/sensord.conf new file mode 100644 index 000000000..a1cf091c1 --- /dev/null +++ b/extra/lm_sensors/sensord.conf @@ -0,0 +1,4 @@ +# +# Parameters to be passed to sensord +# +SENSORD_ARGS="" diff --git a/extra/lm_sensors/sensord.rc b/extra/lm_sensors/sensord.rc new file mode 100644 index 000000000..e3ef4d26d --- /dev/null +++ b/extra/lm_sensors/sensord.rc @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/sensord + +PID=$(pidof -o %PPID /usr/sbin/sensord) +case "$1" in + start) + stat_busy "Starting sensord" + [ -z "$PID" ] && /usr/sbin/sensord ${SENSORD_ARGS} + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon sensord + stat_done + fi + ;; + stop) + stat_busy "Stopping sensord" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon sensord + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/extra/lm_sensors/sensors-detect.patch b/extra/lm_sensors/sensors-detect.patch new file mode 100644 index 000000000..1d12a2ce9 --- /dev/null +++ b/extra/lm_sensors/sensors-detect.patch @@ -0,0 +1,61 @@ +diff -Naur lm_sensors-3.1.0/prog/detect/sensors-detect lm_sensors-3.1.0-new/prog/detect/sensors-detect +--- lm_sensors-3.1.0/prog/detect/sensors-detect 2009-03-03 20:36:33.000000000 -0500 ++++ lm_sensors-3.1.0-new/prog/detect/sensors-detect 2009-03-03 20:52:06.000000000 -0500 +@@ -5282,21 +5282,21 @@ + } + } + +- my $have_sysconfig = -d '/etc/sysconfig'; +- printf "Do you want to \%s /etc/sysconfig/lm_sensors? (\%s): ", +- (-e '/etc/sysconfig/lm_sensors' ? 'overwrite' : 'generate'), ++ my $have_sysconfig = -d '/etc/conf.d'; ++ printf "Do you want to \%s /etc/conf.d/lm_sensors? (\%s): ", ++ (-e '/etc/conf.d/lm_sensors' ? 'overwrite' : 'generate'), + ($have_sysconfig ? 'YES/no' : 'yes/NO'); + $_ = ; + 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 ($!)"; ++ mkdir('/etc/conf.d', 0777) ++ or die "Sorry, can't create /etc/conf.d ($!)"; + } +- open(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors") +- or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)"; ++ open(local *SYSCONFIG, ">/etc/conf.d/lm_sensors") ++ or die "Sorry, can't create /etc/conf.d/lm_sensors ($!)"; + print SYSCONFIG "# Generated by sensors-detect on " . scalar localtime() . "\n"; + print SYSCONFIG <<'EOT'; +-# This file is sourced by /etc/init.d/lm_sensors and defines the modules to ++# This file is sourced by /etc/rc.d/lm_sensors and defines the modules to + # be loaded/unloaded. + # + # The format of this file is a shell script that simply defines variables: +@@ -5322,13 +5322,13 @@ + } + close(SYSCONFIG); + +- print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n". ++ print "Copy prog/init/lm_sensors.init to /etc/rc.d/lm_sensors\n". + "for initialization at boot time.\n" +- unless -f "/etc/init.d/lm_sensors"; ++ unless -f "/etc/rc.d/lm_sensors"; + +- if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") { +- system("/sbin/insserv", "/etc/init.d/lm_sensors"); +- } elsif (-x "/sbin/chkconfig" && -f "/etc/init.d/lm_sensors") { ++ if (-x "/sbin/insserv" && -f "/etc/rc.d/lm_sensors") { ++ system("/sbin/insserv", "/etc/rc.d/lm_sensors"); ++ } elsif (-x "/sbin/chkconfig" && -f "/etc/rc.d/lm_sensors") { + system("/sbin/chkconfig", "lm_sensors", "on"); + if (-x "/sbin/service") { + system("/sbin/service", "lm_sensors", "start"); +@@ -5377,7 +5377,7 @@ + exit -1; + } + +- if (-x "/sbin/service" && -f "/etc/init.d/lm_sensors" && ++ if (-x "/sbin/service" && -f "/etc/rc.d/sensors" && + -f "/var/lock/subsys/lm_sensors") { + system("/sbin/service", "lm_sensors", "stop"); + } diff --git a/extra/lm_sensors/sensors.rc b/extra/lm_sensors/sensors.rc new file mode 100644 index 000000000..4acde2202 --- /dev/null +++ b/extra/lm_sensors/sensors.rc @@ -0,0 +1,119 @@ +#!/bin/bash + +# description: sensors is used for monitoring motherboard sensor values. +# config: /etc/conf.d/lm_sensors + +# See also the lm_sensors homepage at: +# http://www2.lm-sensors.nu/~lm78/index.html + +# It uses a config file /etc/conf.d/lm_sensors that contains the modules to +# be loaded/unloaded. That file is sourced into this one. + +# The format of that file a shell script that simply defines the modules +# in order as normal shell variables with the special names: +# MODULE_1, MODULE_2, MODULE_3, etc. + +. /etc/rc.conf +. /etc/rc.d/functions + +PSENSORS=/usr/bin/sensors + +if $(grep -q sysfs /proc/mounts); then + WITHSYS=1 +else + WITHSYS=0 +fi + +if [ $WITHSYS == "0" ]; then + # If sensors isn't supported by the kernel, try loading the module... + [ -e /proc/sys/dev/sensors ] || /sbin/modprobe i2c-proc &>/dev/null + + # Don't bother if /proc/sensors still doesn't exist, kernel doesn't have support for sensors. + if ! [ -e /proc/sys/dev/sensors ]; then + echo "lm_sensors: kernel does not have sensors support" + stat_fail + fi + + # If sensors was not already running, unload the module... + [ -e /var/run/daemons/sensors ] || /sbin/modprobe -r i2c-proc &>/dev/null +fi + +if [ -e /etc/conf.d/lm_sensors ]; then + CONFIG=/etc/conf.d/lm_sensors +elif [ -e /etc/sysconfig/lm_sensors ]; then + # Moving config to new Arch-specific location + mv /etc/sysconfig/lm_sensors /etc/conf.d/lm_sensors + CONFIG=/etc/conf.d/lm_sensors +fi + +case "$1" in + start) + stat_busy "Starting Up Sensors" + + if [ -r "$CONFIG" ]; then + . "$CONFIG" + modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ') + i=0 + while [ $i -lt $modules ] ; do + module=$(eval echo '$'MODULE_$i) + # echo starting module __${module}__ #debug + /sbin/modprobe $module &>/dev/null + i=$(expr $i + 1) + done + fi + + $PSENSORS -s + + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon sensors + stat_done + fi + ;; + + stop) + stat_busy "Shutting Down Sensors" + + if [ -r "$CONFIG" ]; then + . "$CONFIG" + modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ') + i=$(expr $modules - 1) + while [ $i -ge 0 ] ; do + module=$(eval echo '$'MODULE_$i) + # echo stoping module __${module}__ #debug + /sbin/modprobe -r $module &>/dev/null + i=$(expr $i - 1) + done + fi + + if [ $WITHSYS == "0" ]; then + /sbin/modprobe -r i2c-proc &>/dev/null + fi + + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon sensors + stat_done + fi + ;; + + status) + $PSENSORS + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + condrestart) + [ -e /var/run/daemons/sensors ] && $0 restart || : + ;; + + *) + echo "Usage: $0 {start|stop|restart|status|condrestart}" +esac +exit 0 -- cgit v1.2.3-54-g00ecf