summaryrefslogtreecommitdiffstats
path: root/network/netqmail/LWQ_scripts
diff options
context:
space:
mode:
author Duncan Roe <duncan_roe@optusnet.com.au>2017-06-22 17:26:08 +0700
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2017-06-24 08:32:21 +0700
commit888ec031aca7e4f81a72497f9ebc0259e07621cb (patch)
tree0fcfcba8c18643f6a6111d70b341326312acc27e /network/netqmail/LWQ_scripts
parenta8e78c52c72b342c5436f5ff39148a3f2e68f7ee (diff)
downloadslackbuilds-888ec031aca7e4f81a72497f9ebc0259e07621cb.tar.gz
slackbuilds-888ec031aca7e4f81a72497f9ebc0259e07621cb.tar.xz
network/netqmail: Added (the qmail MTA).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'network/netqmail/LWQ_scripts')
-rw-r--r--network/netqmail/LWQ_scripts/inst_check305
-rw-r--r--network/netqmail/LWQ_scripts/qmail-send-log-run2
-rw-r--r--network/netqmail/LWQ_scripts/qmail-send-run2
-rw-r--r--network/netqmail/LWQ_scripts/qmail-smtpd-log-run2
-rw-r--r--network/netqmail/LWQ_scripts/qmail-smtpd-run22
-rw-r--r--network/netqmail/LWQ_scripts/qmailctl-script-dt70109
-rw-r--r--network/netqmail/LWQ_scripts/rc7
7 files changed, 449 insertions, 0 deletions
diff --git a/network/netqmail/LWQ_scripts/inst_check b/network/netqmail/LWQ_scripts/inst_check
new file mode 100644
index 0000000000..dec4627ccc
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/inst_check
@@ -0,0 +1,305 @@
+#!/bin/sh
+
+# Dave Sill, 2003-11-10
+# http://lifewithqmail.org/inst_check
+
+# set to n if you're not running a pop3 server, y if you are
+CHECKPOP=n
+
+QMHOME=/var/qmail
+LBIN=/usr/bin
+
+OK=1
+
+if [ $# -eq 1 ]; then
+ if [ "$1" = "-v" ]; then
+ VERB=y
+ else
+ VERB=n
+ fi
+fi
+
+if [ ! -d $QMHOME ]; then
+ echo "! Couldn't find qmail's home directory, $QMHOME!"
+else
+ if [ "$VERB" = y ]; then
+ echo "$QMHOME exists"
+ fi
+ for i in alias bin boot control queue supervise users; do
+ if [ ! -d $QMHOME/$i ]; then
+ echo "! Couldn't find $QMHOME/$i!"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$QMHOME/$i exists"
+ fi
+ done
+
+ if [ ! -f $QMHOME/rc ]; then
+ echo "! $QMHOME/rc is missing"
+ OK=0
+ elif [ ! -x $QMHOME/rc ]; then
+ echo "! $QMHOME/rc is not executable"
+ echo "...try: chmod 755 $QMHOME/rc"
+ OK=0
+ elif [ `head -1 $QMHOME/rc|cat -vet` != '#!/bin/sh$' ]; then
+ echo "! $QMHOME/rc has bad magic cookie"
+ echo "...try: dos2unix $QMHOME/rc"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$QMHOME/rc is executable and has a valid magic cookie"
+ fi
+fi
+
+for i in alias qmaild qmaill qmailp qmailq qmailr qmails; do
+ grep "^$i:" /etc/passwd >/dev/null
+ if [ $? -ne 0 ]; then
+ echo "! Couldn't find $i user in /etc/passwd"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i user exists"
+ fi
+done
+
+for i in qmail nofiles; do
+ grep "^$i:" /etc/group >/dev/null
+ if [ $? -ne 0 ]; then
+ echo "! Couldn't find $i group in /etc/group"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i group exists"
+ fi
+done
+
+for i in tcprules tcpserver; do
+ if [ ! -x $LBIN/$i ]; then
+ echo "! Couldn't find $LBIN/$i from ucspi-tcp"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i from ucspi-tcp is installed"
+ fi
+done
+
+for i in multilog softlimit setuidgid supervise svok svscan tai64nlocal; do
+ if [ ! -x $LBIN/$i ]; then
+ echo "! Couldn't find $LBIN/$i from daemontools"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i from daemontools is installed"
+fi
+done
+
+if [ ! -d /service ]; then
+ echo "! /service directory is missing"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "/service directory exists"
+fi
+
+if [ -f /etc/inittab ]; then
+ grep "^SV" /etc/inittab >/dev/null
+ if [ $? -ne 0 ]; then
+ echo "! Couldn't find SV entry in inittab"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "svscan /service is configured to run via /etc/inittab"
+ fi
+ PS="ps -ef"
+else
+ grep "svscanboot" /etc/rc.local >/dev/null
+ if [ $? -ne 0 ]; then
+ echo "! Couldn't find 'csh -cf '/command/svscanboot &' in /etc/rc.local"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "/command/svscanboot is configured to run via /etc/rc.local"
+ fi
+ PS="ps -waux"
+fi
+
+SVRUN=`$PS | grep "svscan /service" | grep -v grep`
+if [ -z "$SVRUN" ]; then
+ echo "'! svscan /service' doesn't seem to be running"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "svscan /service is running"
+fi
+
+if [ ! -f $QMHOME/control/defaultdelivery ]; then
+ echo "! Couldn't find $QMHOME/control/defaultdelivery"
+ OK=0
+elif [ ! -s $QMHOME/control/defaultdelivery ]; then
+ echo "! $QMHOME/control/defaultdelivery is empty"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "$QMHOME/control/defaultdelivery looks OK"
+fi
+
+if [ ! -f $QMHOME/bin/qmailctl ]; then
+ echo "! $QMHOME/bin/qmailctl is missing"
+ OK=0
+elif [ ! -s $QMHOME/bin/qmailctl ]; then
+ echo "! $QMHOME/bin/qmailctl is empty"
+ OK=0
+elif [ `head -1 $QMHOME/bin/qmailctl|cat -vet` != '#!/bin/sh$' ]; then
+ echo "! $QMHOME/bin/qmailctl has bad magic cookie"
+ echo "...try: dos2unix $QMHOME/bin/qmailctl"
+ OK=0
+elif [ ! -x $QMHOME/bin/qmailctl ]; then
+ echo "! $QMHOME/bin/qmailctl is not executable"
+ echo "...try: chmod 755 $QMHOME/bin/qmailctl"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "$QMHOME/bin/qmailctl looks OK"
+fi
+if [ ! -L /usr/bin/qmailctl ]; then
+ echo "! /usr/bin/qmailctl is missing"
+ echo "...try: ln -s $QMHOME/bin/qmailctl /usr/bin"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "/usr/bin/qmailctl exists"
+fi
+
+SVCDIRS="qmail-send qmail-send/log qmail-smtpd qmail-smtpd/log"
+if [ "$CHECKPOP" = "y" ]; then
+ SVCDIRS="$SVCDIRS qmail-pop3d qmail-pop3d/log"
+fi
+for i in $SVCDIRS; do
+ if [ ! -f $QMHOME/supervise/$i/run ]; then
+ echo "! $QMHOME/supervise/$i/run file is missing"
+ OK=0
+ elif [ `head -1 $QMHOME/supervise/$i/run|cat -vet` != '#!/bin/sh$' ]; then
+ echo "! $QMHOME/supervise/$i/run has bad magic cookie"
+ echo "...try: dos2unix $QMHOME/supervise/$i/run"
+ OK=0
+ elif [ ! -x $QMHOME/supervise/$i/run ]; then
+ echo "! $QMHOME/supervise/$i/run file is not executable"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$QMHOME/supervise/$i/run looks OK"
+ fi
+done
+
+if [ ! -f $QMHOME/control/concurrencyincoming ]; then
+ echo "! $QMHOME/control/concurrencyincoming is missing"
+ echo "...try: echo 20 >$QMHOME/control/concurrencyincoming"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "$QMHOME/control/concurrencyincoming looks OK"
+fi
+
+LOGDIRS="/var/log/qmail /var/log/qmail/smtpd"
+if [ "$CHECKPOP" = "y" ]; then
+ LOGDIRS="$LOGDIRS /var/log/qmail/pop3d"
+fi
+for i in $LOGDIRS; do
+ if [ ! -d $i ]; then
+ echo "! $i is missing"
+ echo "...try: mkdir -p $i"
+ OK=0
+ elif [ "`ls -ld $i|awk '{print $3}'`" != "qmaill" ]; then
+ echo "! $i has wrong owner, should be qmaill"
+ echo "...try: chown qmaill $i"
+ OK=0
+ elif [ "`ls -ld $i|awk '{print $1}'`" != "drwxr-xr-x" ]; then
+ echo "! $i has wrong mode, should be 755"
+ echo "...try: chmod 755 $i"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i looks OK"
+ fi
+done
+
+SVCLINKS="/service/qmail-send /service/qmail-smtpd"
+if [ "$CHECKPOP" = "y" ]; then
+ SVCLINKS="$SVCLINKS /service/qmail-pop3d"
+fi
+for i in $SVCLINKS; do
+ if [ ! -L $i ]; then
+ echo "! $i is missing"
+ echo "...try: ln -s $QMHOME$i $i"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i exists"
+ fi
+done
+
+if [ ! -f /etc/tcp.smtp ]; then
+ echo "! /etc/tcp.smtp is missing"
+ echo "...try: echo '127.:allow,RELAYCLIENT=\"\"' >>/etc/tcp.smtp"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "/etc/tcp.smtp exists"
+fi
+
+if [ ! -f /etc/tcp.smtp.cdb ]; then
+ echo "! /etc/tcp.smtp.cdb is missing"
+ echo "...try: $QMHOME/bin/qmailctl cdb"
+ OK=0
+elif [ "$VERB" = y ]; then
+ echo "/etc/tcp.smtp.cdb exists"
+fi
+
+AHOME=`grep "^alias:" /etc/passwd | awk -F: '{print $6}'`
+if [ -z "$AHOME" ]; then
+ echo "! Couldn't find user alias's home directory"
+ OK=0
+else
+ for i in root postmaster mailer-daemon; do
+ if [ ! -f $AHOME/.qmail-$i ]; then
+ echo "! Alias for $i is missing"
+ echo "...try: echo me >$AHOME/.qmail-$i"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i alias exists"
+ fi
+ done
+fi
+
+if netstat -a | grep smtp | grep -i listen >/dev/null; then
+ if $PS | grep sendmail | grep -v grep >/dev/null; then
+ echo "! Sendmail is still running"
+ echo "...try: $RCDIR/init.d/sendmail stop"
+ OK=0
+ elif $LBIN/svok /service/qmail-smtpd; then
+ if [ "$VERB" = y ]; then
+ echo "/service/qmail-smtpd is running"
+ fi
+ else
+ echo "! Something is listening on port 25 (not tcpserver/qmail-smtpd)"
+ echo "...try: disabling current MTA"
+ OK=0
+ fi
+fi
+
+if [ "$CHECKPOP" = "y" ]; then
+ if netstat -a | grep pop | grep -i listen >/dev/null; then
+ if $LBIN/svok /service/qmail-pop3d; then
+ if [ "$VERB" = y ]; then
+ echo "/service/qmail-pop3d is running"
+ fi
+ else
+ echo "! Something is listening on port 110 (not tcpserver/qmail-pop3d)"
+ echo "...try: disabling other POP server"
+ OK=0
+ fi
+ fi
+fi
+
+for i in /usr/lib/sendmail /usr/sbin/sendmail; do
+ if [ -f $i -a ! -L $i ]; then
+ echo "! $i is a file, should be a link"
+ echo "...try: uninstalling current MTA or: mv $i $i.old; ln -s $QMHOME/bin/sendmail $i"
+ OK=0
+ elif [ ! -f $i ];then
+ echo "! $i is missing"
+ echo "...try: ln -s $QMHOME/bin/sendmail $i"
+ OK=0
+ elif [ "$VERB" = y ]; then
+ echo "$i exists"
+ fi
+done
+
+if [ $OK -eq 1 ]; then
+ echo "Congratulations, your LWQ installation looks good!"
+elif [ "$VERB" = y ]; then
+ echo "! Potential problems were found with your LWQ installation"
+fi
diff --git a/network/netqmail/LWQ_scripts/qmail-send-log-run b/network/netqmail/LWQ_scripts/qmail-send-log-run
new file mode 100644
index 0000000000..515baf3836
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/qmail-send-log-run
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/setuidgid qmaill /usr/bin/multilog t /var/log/qmail
diff --git a/network/netqmail/LWQ_scripts/qmail-send-run b/network/netqmail/LWQ_scripts/qmail-send-run
new file mode 100644
index 0000000000..8dbd3adf52
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/qmail-send-run
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /var/qmail/rc
diff --git a/network/netqmail/LWQ_scripts/qmail-smtpd-log-run b/network/netqmail/LWQ_scripts/qmail-smtpd-log-run
new file mode 100644
index 0000000000..a7a7d4fd37
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/qmail-smtpd-log-run
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/setuidgid qmaill /usr/bin/multilog t /var/log/qmail/smtpd
diff --git a/network/netqmail/LWQ_scripts/qmail-smtpd-run b/network/netqmail/LWQ_scripts/qmail-smtpd-run
new file mode 100644
index 0000000000..b72b52f98b
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/qmail-smtpd-run
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+QMAILDUID=`id -u qmaild`
+NOFILESGID=`id -g qmaild`
+MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
+LOCAL=`head -1 /var/qmail/control/me`
+
+if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
+ echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
+ echo /var/qmail/supervise/qmail-smtpd/run
+ exit 1
+fi
+
+if [ ! -f /var/qmail/control/rcpthosts ]; then
+ echo "No /var/qmail/control/rcpthosts!"
+ echo "Refusing to start SMTP listener because it'll create an open relay"
+ exit 1
+fi
+
+exec /usr/bin/softlimit -m 20000000 \
+ /usr/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
+ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
diff --git a/network/netqmail/LWQ_scripts/qmailctl-script-dt70 b/network/netqmail/LWQ_scripts/qmailctl-script-dt70
new file mode 100644
index 0000000000..6fd795ca24
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/qmailctl-script-dt70
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+# For Red Hat chkconfig
+# chkconfig: - 80 30
+# description: the qmail MTA
+
+PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
+export PATH
+
+QMAILDUID=`id -u qmaild`
+NOFILESGID=`id -g qmaild`
+
+case "$1" in
+ start)
+ echo "Starting qmail"
+ if svok /service/qmail-send ; then
+ svc -u /service/qmail-send /service/qmail-send/log
+ else
+ echo "qmail-send supervise not running"
+ fi
+ if svok /service/qmail-smtpd ; then
+ svc -u /service/qmail-smtpd /service/qmail-smtpd/log
+ else
+ echo "qmail-smtpd supervise not running"
+ fi
+ if [ -d /var/lock/subsys ]; then
+ touch /var/lock/subsys/qmail
+ fi
+ ;;
+ stop)
+ echo "Stopping qmail..."
+ echo " qmail-smtpd"
+ svc -d /service/qmail-smtpd /service/qmail-smtpd/log
+ echo " qmail-send"
+ svc -d /service/qmail-send /service/qmail-send/log
+ if [ -f /var/lock/subsys/qmail ]; then
+ rm /var/lock/subsys/qmail
+ fi
+ ;;
+ stat)
+ svstat /service/qmail-send
+ svstat /service/qmail-send/log
+ svstat /service/qmail-smtpd
+ svstat /service/qmail-smtpd/log
+ qmail-qstat
+ ;;
+ doqueue|alrm|flush)
+ echo "Flushing timeout table and sending ALRM signal to qmail-send."
+ /var/qmail/bin/qmail-tcpok
+ svc -a /service/qmail-send
+ ;;
+ queue)
+ qmail-qstat
+ qmail-qread
+ ;;
+ reload|hup)
+ echo "Sending HUP signal to qmail-send."
+ svc -h /service/qmail-send
+ ;;
+ pause)
+ echo "Pausing qmail-send"
+ svc -p /service/qmail-send
+ echo "Pausing qmail-smtpd"
+ svc -p /service/qmail-smtpd
+ ;;
+ cont)
+ echo "Continuing qmail-send"
+ svc -c /service/qmail-send
+ echo "Continuing qmail-smtpd"
+ svc -c /service/qmail-smtpd
+ ;;
+ restart)
+ echo "Restarting qmail:"
+ echo "* Stopping qmail-smtpd."
+ svc -d /service/qmail-smtpd /service/qmail-smtpd/log
+ echo "* Sending qmail-send SIGTERM and restarting."
+ svc -t /service/qmail-send /service/qmail-send/log
+ echo "* Restarting qmail-smtpd."
+ svc -u /service/qmail-smtpd /service/qmail-smtpd/log
+ ;;
+ cdb)
+ tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
+ chmod 644 /etc/tcp.smtp.cdb
+ echo "Reloaded /etc/tcp.smtp."
+ ;;
+ help)
+ cat <<HELP
+ stop -- stops mail service (smtp connections refused, nothing goes out)
+ start -- starts mail service (smtp connection accepted, mail can go out)
+ pause -- temporarily stops mail service (connections accepted, nothing leaves)
+ cont -- continues paused mail service
+ stat -- displays status of mail service
+ cdb -- rebuild the tcpserver cdb file for smtp
+restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
+doqueue -- schedules queued messages for immediate delivery
+ reload -- sends qmail-send HUP, rereading locals and virtualdomains
+ queue -- shows status of queue
+ alrm -- same as doqueue
+ flush -- same as doqueue
+ hup -- same as reload
+HELP
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/network/netqmail/LWQ_scripts/rc b/network/netqmail/LWQ_scripts/rc
new file mode 100644
index 0000000000..5af8ced80b
--- /dev/null
+++ b/network/netqmail/LWQ_scripts/rc
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Using stdout for logging
+# Using control/defaultdelivery from qmail-local to deliver messages by default
+
+exec env - PATH="/var/qmail/bin:$PATH" \
+qmail-start "`cat /var/qmail/control/defaultdelivery`"