summaryrefslogtreecommitdiffstats
path: root/source/a/smartmontools
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/smartmontools')
-rw-r--r--source/a/smartmontools/doinst.sh12
-rw-r--r--source/a/smartmontools/rc.smartd44
-rw-r--r--source/a/smartmontools/slack-desc8
-rwxr-xr-xsource/a/smartmontools/smartmontools.SlackBuild30
4 files changed, 82 insertions, 12 deletions
diff --git a/source/a/smartmontools/doinst.sh b/source/a/smartmontools/doinst.sh
index 82f0ac136..b96297f9f 100644
--- a/source/a/smartmontools/doinst.sh
+++ b/source/a/smartmontools/doinst.sh
@@ -10,4 +10,16 @@ config() {
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
+ if [ -e ${OLD} ]; then
+ cp -a ${OLD} ${NEW}.incoming
+ cat ${NEW} > ${NEW}.incoming
+ mv ${NEW}.incoming ${NEW}
+ fi
+ config ${NEW}
+}
+
+preserve_perms etc/rc.d/rc.smartd.new
config etc/smartd.conf.new
diff --git a/source/a/smartmontools/rc.smartd b/source/a/smartmontools/rc.smartd
new file mode 100644
index 000000000..f0ad4f8cf
--- /dev/null
+++ b/source/a/smartmontools/rc.smartd
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# /etc/rc.d/rc.smartd
+#
+# Start/stop/restart the smartd daemon, which monitors the status of
+# S.M.A.R.T. compatible hard drives and reports any problems.
+#
+# By default, smartd will scan for all ATA/SATA and SCSI/SAS hard drives
+# and solid-state drives. Settings may be customized in /etc/smartd.conf.
+
+smart_start() {
+ if [ -x /usr/sbin/smartd -a -r /etc/smartd.conf ]; then
+ echo "Starting smartd: /usr/sbin/smartd -p /run/smartd.pid &"
+ /usr/sbin/smartd -p /run/smartd.pid &
+ fi
+}
+
+smart_stop() {
+ if [ -r /run/smartd.pid ]; then
+ kill $(cat /run/smartd.pid)
+ else
+ killall smartd
+ fi
+}
+
+smart_restart() {
+ smart_stop
+ sleep 1
+ smart_start
+}
+
+case "$1" in
+'start')
+ smart_start
+ ;;
+'stop')
+ smart_stop
+ ;;
+'restart')
+ smart_restart
+ ;;
+*)
+ echo "Usage: $0 {start|stop|restart}"
+esac
diff --git a/source/a/smartmontools/slack-desc b/source/a/smartmontools/slack-desc
index 842caec47..ede7335c8 100644
--- a/source/a/smartmontools/slack-desc
+++ b/source/a/smartmontools/slack-desc
@@ -1,8 +1,8 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
+# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
@@ -14,6 +14,6 @@ smartmontools: (S.M.A.R.T.) system build into ATA and SCSI Hard Drives. This is
smartmontools: to check the reliability of the hard drive and to predict drive
smartmontools: failures.
smartmontools:
-smartmontools:
+smartmontools: Homepage: https://www.smartmontools.org/
smartmontools:
smartmontools:
diff --git a/source/a/smartmontools/smartmontools.SlackBuild b/source/a/smartmontools/smartmontools.SlackBuild
index f962f2bb0..72593d71b 100755
--- a/source/a/smartmontools/smartmontools.SlackBuild
+++ b/source/a/smartmontools/smartmontools.SlackBuild
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2011, 2017, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,9 +20,11 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+cd $(dirname $0) ; CWD=$(pwd)
+PKGNAM=smartmontools
VERSION=${VERSION:-$(echo smartmontools-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -34,13 +36,20 @@ if [ -z "$ARCH" ]; then
esac
fi
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
if [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
else
LIBDIRSUFFIX=""
fi
-CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=/tmp/package-smartmontools
@@ -50,7 +59,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf smartmontools-$VERSION
tar xvf $CWD/smartmontools-$VERSION.tar.?z* || exit 1
-cd smartmontools-$VERSION
+cd smartmontools-$VERSION || exit 1
chown -R root:root .
./configure \
@@ -59,13 +68,18 @@ chown -R root:root .
--mandir=/usr/man \
--sysconfdir=/etc \
--docdir=/usr/doc/smartmontools-$VERSION \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
make || exit 1
make install DESTDIR=$PKG || exit 1
-# Not used on Slackware:
-rm -rf $PKG/etc/rc.d
+# Don't use the included init script:
+rm -rf $PKG/etc/rc.d/*
+
+# Install the Slackware smartd init script:
+cp -a $CWD/rc.smartd $PKG/etc/rc.d/rc.smartd.new
+chown root:root $PKG/etc/rc.d/rc.smartd.new
+chmod 644 $PKG/etc/rc.d/rc.smartd.new
mv $PKG/etc/smartd.conf $PKG/etc/smartd.conf.new
gzip -9 $PKG/usr/man/man?/*.?