From 8c2359e2541f9d1b11443b49d8ea502b3ffea39c Mon Sep 17 00:00:00 2001 From: root Date: Wed, 3 Aug 2011 23:14:34 +0000 Subject: Wed Aug 3 23:14:34 UTC 2011 --- testing/lm_sensors/PKGBUILD | 61 +++++++++++++++++++ testing/lm_sensors/daemonarg.patch | 50 ++++++++++++++++ testing/lm_sensors/fancontrol.rc | 35 +++++++++++ testing/lm_sensors/healthd | 46 ++++++++++++++ testing/lm_sensors/healthd.conf | 17 ++++++ testing/lm_sensors/healthd.rc | 52 ++++++++++++++++ testing/lm_sensors/linux_3.0.patch | 11 ++++ testing/lm_sensors/sensord.conf | 4 ++ testing/lm_sensors/sensord.rc | 37 ++++++++++++ testing/lm_sensors/sensors.rc | 119 +++++++++++++++++++++++++++++++++++++ 10 files changed, 432 insertions(+) create mode 100644 testing/lm_sensors/PKGBUILD create mode 100644 testing/lm_sensors/daemonarg.patch create mode 100644 testing/lm_sensors/fancontrol.rc create mode 100644 testing/lm_sensors/healthd create mode 100644 testing/lm_sensors/healthd.conf create mode 100644 testing/lm_sensors/healthd.rc create mode 100644 testing/lm_sensors/linux_3.0.patch create mode 100644 testing/lm_sensors/sensord.conf create mode 100644 testing/lm_sensors/sensord.rc create mode 100644 testing/lm_sensors/sensors.rc (limited to 'testing/lm_sensors') diff --git a/testing/lm_sensors/PKGBUILD b/testing/lm_sensors/PKGBUILD new file mode 100644 index 000000000..9d6c1ff6e --- /dev/null +++ b/testing/lm_sensors/PKGBUILD @@ -0,0 +1,61 @@ +# $Id: PKGBUILD 134304 2011-08-02 20:34:25Z eric $ +# Maintainer: Eric BĂ©langer + +pkgname=lm_sensors +pkgver=3.3.1 +pkgrel=2 +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') +makedepends=('rrdtool') +optdepends=('rrdtool: for logging with sensord') +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 healthd healthd.conf healthd.rc sensord.conf \ + sensord.rc daemonarg.patch linux_3.0.patch) +md5sums=('8c0eebda8524fc87da1393b4564d279b' + 'c370f5e620bfe41113354a1e22c0c18c' + '232bedf043dd5dedde82df1a399c682c' + '6549050897c237514aeaa2bb6cfd29ea' + 'f8af587038b0e2a89c441f7eeaa5e640' + '970408d2e509dc4138927020efefe323' + '96a8dd468e81d455ec9b165bdf33e0b7' + '41a5c20854bbff00ea7174bd2276b736' + '40c8eb16af8249a0f1d851fc1057ea15' + '5c1be382963145f7191d9c4e45ca9f67') +sha1sums=('cb819e5a93adb36ef00e6d3c5363f5f474efa78a' + 'b2e664b9b87759991f02d0a1e8cac5e95098c0a5' + 'a068ac0a3115a6191a487e11422506baa922b40a' + '78b5cd36c3cb8e98b972cdd8c4a12687d79a79a8' + '6c4e8a2d89dd2fd3ca2f0f4f3b1230111e01b0fc' + 'e662881f5d3f3f35a1bc97ba45d2c471dd28c37f' + 'de8d4d65406815c389f8a04e2a8508a1ae6749c8' + '72a60251d1d55a67307dab4105d9f3f01a080af4' + '34241388c4001bfb6e49b7e10da1217e29a258d6' + '5662828085cdd981f0dc7cf8f79d3d6e2b72f50c') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + sed -i -e 's|/etc/sysconfig|/etc/conf.d|' \ + -e 's|/etc/init.d/lm_sensors|/etc/rc.d/sensors|' prog/{detect/sensors-detect,init/lm_sensors.service} + patch -p1 < ../daemonarg.patch + patch -p0 < ../linux_3.0.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 -m644 prog/init/lm_sensors.service "${pkgdir}/lib/systemd/system/lm_sensors.service" + 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/testing/lm_sensors/daemonarg.patch b/testing/lm_sensors/daemonarg.patch new file mode 100644 index 000000000..4b80cef19 --- /dev/null +++ b/testing/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/testing/lm_sensors/fancontrol.rc b/testing/lm_sensors/fancontrol.rc new file mode 100644 index 000000000..8e98d06f2 --- /dev/null +++ b/testing/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/testing/lm_sensors/healthd b/testing/lm_sensors/healthd new file mode 100644 index 000000000..0315dd788 --- /dev/null +++ b/testing/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/testing/lm_sensors/healthd.conf b/testing/lm_sensors/healthd.conf new file mode 100644 index 000000000..a8b2c3fa3 --- /dev/null +++ b/testing/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/testing/lm_sensors/healthd.rc b/testing/lm_sensors/healthd.rc new file mode 100644 index 000000000..7bb79519f --- /dev/null +++ b/testing/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/testing/lm_sensors/linux_3.0.patch b/testing/lm_sensors/linux_3.0.patch new file mode 100644 index 000000000..da02a3d49 --- /dev/null +++ b/testing/lm_sensors/linux_3.0.patch @@ -0,0 +1,11 @@ +--- prog/detect/sensors-detect 2011-08-02 10:23:46.000000000 +0200 ++++ prog/detect/sensors-detect 2011-08-02 10:24:04.000000000 +0200 +@@ -2472,7 +2472,7 @@ + + sub initialize_kernel_version + { +- `uname -r` =~ /(\d+)\.(\d+)\.(\d+)(.*)/; ++ `uname -r` =~ /(\d+)\.(\d+)(.*)/; + @kernel_version = ($1, $2, $3, $4); + chomp($kernel_arch = `uname -m`); + diff --git a/testing/lm_sensors/sensord.conf b/testing/lm_sensors/sensord.conf new file mode 100644 index 000000000..a1cf091c1 --- /dev/null +++ b/testing/lm_sensors/sensord.conf @@ -0,0 +1,4 @@ +# +# Parameters to be passed to sensord +# +SENSORD_ARGS="" diff --git a/testing/lm_sensors/sensord.rc b/testing/lm_sensors/sensord.rc new file mode 100644 index 000000000..e3ef4d26d --- /dev/null +++ b/testing/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/testing/lm_sensors/sensors.rc b/testing/lm_sensors/sensors.rc new file mode 100644 index 000000000..4acde2202 --- /dev/null +++ b/testing/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