diff options
author | crees <crees@FreeBSD.org> | 2013-03-15 03:14:47 +0800 |
---|---|---|
committer | crees <crees@FreeBSD.org> | 2013-03-15 03:14:47 +0800 |
commit | 25a2fb660a7c8dacb9dccafa031bbdb55dccb58f (patch) | |
tree | 8014d9d9e820972c346d63eb6900d7aee9201dc7 /mail/sympa | |
parent | 1f61a724c45a51e0fbf9a4f92d75cf30b5322ad7 (diff) | |
download | freebsd-ports-gnome-25a2fb660a7c8dacb9dccafa031bbdb55dccb58f.tar.gz freebsd-ports-gnome-25a2fb660a7c8dacb9dccafa031bbdb55dccb58f.tar.zst freebsd-ports-gnome-25a2fb660a7c8dacb9dccafa031bbdb55dccb58f.zip |
Add new rc script for sympa
PR: ports/176475
Submitted by: Eimar Koort <eimar.koort@gmail.com>
Diffstat (limited to 'mail/sympa')
-rw-r--r-- | mail/sympa/Makefile | 7 | ||||
-rw-r--r-- | mail/sympa/files/patch-src-etc-script-Makefile.in | 11 | ||||
-rw-r--r-- | mail/sympa/files/patch-src__etc__script__sympa.in | 38 | ||||
-rw-r--r-- | mail/sympa/files/sympa.in | 211 | ||||
-rw-r--r-- | mail/sympa/pkg-plist | 1 |
5 files changed, 228 insertions, 40 deletions
diff --git a/mail/sympa/Makefile b/mail/sympa/Makefile index 442d22ae497a..57e868f111cc 100644 --- a/mail/sympa/Makefile +++ b/mail/sympa/Makefile @@ -3,6 +3,7 @@ PORTNAME= sympa PORTVERSION= 6.1.17 +PORTREVISION= 1 CATEGORIES= mail MASTER_SITES= http://www.sympa.org/distribution/ \ http://www.sympa.org/distribution/old/ @@ -52,7 +53,6 @@ CONFIGURE_ARGS+=--bindir=${PREFIX}/libexec/${PORTNAME} \ --with-confdir=${PREFIX}/etc \ --with-docdir=${EXAMPLESDIR} \ --with-expldir=${DATADIR}/list_data \ - --with-iconsdir=${PREFIX}/${ICONSDIR} \ --with-initdir=${PREFIX}/etc/rc.d \ --with-lockdir=/var/spool/lock \ --with-modulesdir=${PREFIX}/libexec/${PORTNAME} \ @@ -63,6 +63,8 @@ CONFIGURE_ENV+= lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN} MAKE_ENV?= PERL_EXTUTILS_AUTOINSTALL=--skip SUB_FILES= pkg-install +USE_RC_SUBR= sympa + .if !defined(WITHOUT_NLS) USE_GETTEXT= yes PLIST_SUB+= NLS="" @@ -87,6 +89,7 @@ DB_TYPE:= ${DB_TYPE:U} . for option in ${OPTIONS_RADIO_DATABASE} . if ${DB_TYPE} == ${option:S,PGSQL,PG,} OPTIONS_SET+= ${option} +.warning You need to replace your DB_TYPE variable in make.conf with OPTIONS_SET+=${option} . endif . endfor .endif @@ -104,10 +107,12 @@ RUN_DEPENDS+= ${LOCALBASE}/${APACHEMODDIR}/mod_fastcgi.so:${PORTSDIR}/www/mod_fa .if ${PORT_OPTIONS:MORACLE} RUN_DEPENDS+= p5-DBD-Oracle>=0:${PORTSDIR}/databases/p5-DBD-Oracle .elif ${PORT_OPTIONS:MPGSQL} +SUB_LIST+= REQ_MYSQL="" REQ_PGSQL=postgresql RUN_DEPENDS+= p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg .elif ${PORT_OPTIONS:MSYBASE} RUN_DEPENDS+= p5-DBD-Sybase>=0:${PORTSDIR}/databases/p5-DBD-Sybase .elif ${PORT_OPTIONS:MMYSQL} +SUB_LIST+= REQ_MYSQL=mysql REQ_PGSQL="" RUN_DEPENDS+= p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql .endif diff --git a/mail/sympa/files/patch-src-etc-script-Makefile.in b/mail/sympa/files/patch-src-etc-script-Makefile.in new file mode 100644 index 000000000000..d54f791b51bc --- /dev/null +++ b/mail/sympa/files/patch-src-etc-script-Makefile.in @@ -0,0 +1,11 @@ +--- src/etc/script/Makefile.in.orig 2013-03-13 18:06:41.202599651 +0000 ++++ src/etc/script/Makefile.in 2013-03-13 18:06:05.882611401 +0000 +@@ -355,7 +355,7 @@ + + info-am: + +-install-data-am: install-initSCRIPTS install-scriptSCRIPTS ++install-data-am: install-scriptSCRIPTS + + install-exec-am: + diff --git a/mail/sympa/files/patch-src__etc__script__sympa.in b/mail/sympa/files/patch-src__etc__script__sympa.in deleted file mode 100644 index ebeba9ccc050..000000000000 --- a/mail/sympa/files/patch-src__etc__script__sympa.in +++ /dev/null @@ -1,38 +0,0 @@ ---- src/etc/script/sympa.in.orig 2010-11-17 08:25:42.000000000 +0100 -+++ src/etc/script/sympa.in 2012-04-20 12:35:40.000000000 +0200 -@@ -2,6 +2,10 @@ - # - # sympa Mailing Lists Management System - # -+# PROVIDE: sympa -+# REQUIRE: LOGIN cleanvar -+# KEYWORD: shutdown -+# - # Written by Michel Bouissou 20/07/2000 - # - # Modified by Olivier Salaun 27/07/2000 -@@ -159,7 +163,7 @@ - if [ "$pids" != "" ]; then - for pid in $pids; do - killcount=0 -- running=`ps -A | grep "$pid ..* $1\\.pl"` -+ running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` - while [ "$running" != "" ]; do - if [ $killcount -gt 10 ]; then - if [ ${use_functions} ]; then -@@ -171,13 +175,13 @@ - fi - - kill -TERM $pid >/dev/null 2>&1 -- running=`ps -A | grep "$pid ..* $1\\.pl"` -+ running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` - if [ "$running" = "" ]; then - runcount=`expr $runcount + 1` - break - fi - sleep 2 -- running=`ps -A | grep "$pid ..* $1\\.pl"` -+ running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` - if [ "$running" = "" ]; then - runcount=`expr $runcount + 1` - break diff --git a/mail/sympa/files/sympa.in b/mail/sympa/files/sympa.in new file mode 100644 index 000000000000..1b89654788ef --- /dev/null +++ b/mail/sympa/files/sympa.in @@ -0,0 +1,211 @@ +#!/bin/sh +# +# PROVIDE: sympa +# REQUIRE: LOGIN cleanvar %%REQ_MYSQL%% %%REQ_PGSQL%% +# KEYWORD: shutdown +# +# $FreeBSD$ +# +# Written by Michel Bouissou 20/07/2000 +# +# Modified by Olivier Salaun 27/07/2000 +# - translations +# - lang parameter deleted (defined in sympa.conf) +# - introduced --VARS-- parsed by Makefile +# - no more sympauser since sympa sets its UID +# Modified by Michel Bouissou 27/07/2000 +# Modified by Eimar Koort 27/02/2013 +# - optimized for FreeBSD +# +# sympa_enable (bool): Set to NO by default. +# Set it to YES to enable sympa. +# + +. /etc/rc.subr + +name=sympa +rcvar=sympa_enable + +load_rc_config $name + +: ${sympa_enable:=no} + +start_cmd=sympa_start +stop_cmd=sympa_stop +status_cmd=sympa_status +extra_commands=status + +sympadir=%%PREFIX%%/libexec/sympa + +sympaconf=%%PREFIX%%/etc/sympa.conf +wwsympaconf=%%PREFIX%%/etc/wwsympa.conf + +sub_status() +{ + # Test syntax. + if [ $# = 0 ] ; then + echo "Usage: sub_status {program}" + return 1 + fi + # First try "/u1/home/sympa/*.pid" files + if [ -f /var/run/sympa/$1.pid ] ; then + pid=`head -1 /var/run/sympa/$1.pid | tr -s ' ' '|'` + if [ "$pid" != "" ] ; then + running=`ps -A | egrep "$pid"` + if [ "$running" != "" ]; then + echo "$1 (pid(s) $pid) is active..." + return 0 + else + echo "$1 died, pid file remains." + return 1 + fi + fi + fi + echo "$1 is stopped." + return 3 +} + +sub_module_start() +{ + # Start a module + if [ $# = 0 ] ; then + echo "Usage: sub_module_start {program}" + return 1 + fi + $sympadir/$1.pl $startparam && echo "success" || echo "failure" + echo +} + +sub_start() +{ + # Test state of module before startup + if [ $# = 0 ] ; then + echo "Usage: sub_start {program}" + return 1 + fi + sub_status $1 > /dev/null + case "$?" in + 3) + echo $echo_opt "Starting module $1.pl: " + sub_module_start $1 + ;; + 1) + echo $echo_opt "Starting $1, overwriting old pid file." + sub_module_start $1 + ;; + 0) + echo "$1 seems active. No action will be taken." + echo "Try \"sympa status\" or \"sympa restart"\". + ;; + esac +} + +sub_stop() +{ + # Stop a module + if [ $# = 0 ] ; then + echo "Usage: sub_stop {program}" + return 1 + fi + + if [ -f /var/run/sympa/$1.pid ]; then + echo $echo_opt "Stopping module $1.pl: " + pids=`head -1 /var/run/sympa/$1.pid` + runcount=0 + if [ "$pids" != "" ]; then + for pid in $pids; do + killcount=0 + running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` + while [ "$running" != "" ]; do + if [ $killcount -gt 10 ]; then + echo 'failure' + return 3 + fi + + kill -TERM $pid >/dev/null 2>&1 + running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` + if [ "$running" = "" ]; then + runcount=`expr $runcount + 1` + break + fi + sleep 2 + running=`ps -A | grep "^[[:space:]]*$pid[[:space:]].*$1\\.pl"` + if [ "$running" = "" ]; then + runcount=`expr $runcount + 1` + break + fi + killcount=`expr $killcount + 1` + done + done + fi + if [ $runcount -gt 0 ]; then + echo 'success' + else + echo 'died' + fi + echo + else + echo "Module $1.pl not running" + fi + return 0 +} + +sympa_check_config() +{ + # Check config files + [ -d $sympadir ] || exit 0 + [ -f $sympaconf ] || exit 0 + [ -f $wwsympaconf ] || exit 0 +} + +sympa_start() +{ + sympa_check_config + if [ ! -f /var/spool/lock/sympa ]; then + echo "Starting Sympa subsystem: " + sub_start sympa + sub_start bulk + sub_start archived + sub_start bounced + sub_start task_manager + touch /var/spool/lock/sympa + echo + else + echo "Sympa seems active. No action will be taken." + echo "Try \"sympa status\" or \"sympa restart"\". + fi +} + +sympa_stop() +{ + sympa_check_config + echo "Stopping Sympa subsystem: " + sub_stop bounced + sub_stop archived + sub_stop bulk + sub_stop sympa + if [ -f /var/run/sympa/sympa-creation.pid ]; then + sub_stop sympa-creation + fi + sub_stop task_manager + if [ -f /var/spool/lock/sympa ]; then + rm -f /var/spool/lock/sympa + fi +} + +sympa_status() +{ + echo "Status of Sympa subsystem: " + if [ -f /var/spool/lock/sympa ]; then + echo "Status file for subsystem found." + else + echo "Status file for subsystem NOT found." + fi + sub_status sympa + sub_status bulk + sub_status archived + sub_status bounced + sub_status task_manager +} + +run_rc_command $1 diff --git a/mail/sympa/pkg-plist b/mail/sympa/pkg-plist index c6bc0d82abe0..6598e3b89c06 100644 --- a/mail/sympa/pkg-plist +++ b/mail/sympa/pkg-plist @@ -1,4 +1,3 @@ -etc/rc.d/sympa @comment copyover handled in pkg-install @unexec cmp -s %D/etc/sympa.conf.sample %D/etc/sympa.conf && rm -f %D/etc/sympa.conf etc/sympa.conf.sample |