Index: head/mail/sympa/Makefile =================================================================== --- head/mail/sympa/Makefile (revision 385234) +++ head/mail/sympa/Makefile (revision 385235) @@ -1,155 +1,156 @@ # Created by: Autrijus Tang # $FreeBSD$ PORTNAME= sympa PORTVERSION= 6.1.24 +PORTREVISION= 1 CATEGORIES= mail MASTER_SITES= http://www.sympa.org/distribution/ \ http://www.sympa.org/distribution/old/ MAINTAINER= dgeo@centrale-marseille.fr COMMENT= Sympa is an electronic mailing list manager LICENSE= GPLv2 BUILD_DEPENDS:= ${RUN_DEPENDS} RUN_DEPENDS+= \ p5-Archive-Zip>=0:${PORTSDIR}/archivers/p5-Archive-Zip \ p5-DBI>=0:${PORTSDIR}/databases/p5-DBI \ p5-File-Copy-Recursive>=0:${PORTSDIR}/devel/p5-File-Copy-Recursive \ p5-IO-stringy>=0:${PORTSDIR}/devel/p5-IO-stringy \ p5-Locale-libintl>=0:${PORTSDIR}/devel/p5-Locale-libintl \ p5-Term-ProgressBar>=0:${PORTSDIR}/devel/p5-Term-ProgressBar \ p5-MIME-EncWords>=0:${PORTSDIR}/mail/p5-MIME-EncWords \ p5-MIME-Tools>=0:${PORTSDIR}/mail/p5-MIME-Tools \ p5-Mail-Tools>=0:${PORTSDIR}/mail/p5-Mail-Tools \ p5-Msgcat>=0:${PORTSDIR}/misc/p5-Locale-Msgcat \ p5-perl-ldap>=0:${PORTSDIR}/net/p5-perl-ldap \ p5-Net-Netmask>=0:${PORTSDIR}/net-mgmt/p5-Net-Netmask \ p5-IO-Socket-SSL>=0:${PORTSDIR}/security/p5-IO-Socket-SSL \ p5-Crypt-CipherSaber>=0:${PORTSDIR}/security/p5-Crypt-CipherSaber \ p5-HTML-Format>=0:${PORTSDIR}/textproc/p5-HTML-Format \ p5-Unicode-LineBreak>=0:${PORTSDIR}/textproc/p5-Unicode-LineBreak \ p5-XML-LibXML>=0:${PORTSDIR}/textproc/p5-XML-LibXML \ p5-HTML-StripScripts-Parser>=0:${PORTSDIR}/www/p5-HTML-StripScripts-Parser \ p5-HTML-Tree>=0:${PORTSDIR}/www/p5-HTML-Tree \ p5-Template-Toolkit>=0:${PORTSDIR}/www/p5-Template-Toolkit \ p5-MIME-Lite-HTML>=0:${PORTSDIR}/mail/p5-MIME-Lite-HTML \ p5-Net-DNS>=0:${PORTSDIR}/dns/p5-Net-DNS # Ignore alpha/beta versions PORTSCOUT= limit:^[0-9]+(\.[0-9]+)*$$ USERS= sympa GROUPS= sympa # Shebang is corrected by configure script USES= cpe perl5 GNU_CONFIGURE= yes ICONSDIR?= www/icons CONFIGURE_ARGS+=--bindir=${PREFIX}/libexec/${PORTNAME} \ --libexecdir=${PREFIX}/libexec/${PORTNAME} \ --localedir=${PREFIX}/share/locale \ --sbindir=${PREFIX}/libexec/${PORTNAME} \ --sysconfdir=${ETCDIR} \ --with-confdir=${PREFIX}/etc \ --with-docdir=${EXAMPLESDIR} \ --with-expldir=${DATADIR}/list_data \ --with-initdir=${PREFIX}/etc/rc.d \ --with-lockdir=/var/spool/lock \ --with-modulesdir=${PREFIX}/libexec/${PORTNAME} \ --with-piddir=/var/run/${PORTNAME} \ --with-scriptdir=${PREFIX}/libexec/${PORTNAME} \ --with-spooldir=/var/spool/${PORTNAME} CONFIGURE_ENV+= lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN} MAKE_ENV?= PERL_EXTUTILS_AUTOINSTALL=--skip SUB_FILES= pkg-install pkg-message SUB_LIST= DB_TYPE=${DB_TYPE} PORTEXAMPLES= * USE_RC_SUBR= sympa CONFLICTS= sympa-5* OPTIONS_DEFINE= FASTCGI APACHE NLS OPTIONS_DEFAULT=APACHE OPTIONS_RADIO= DATABASE OPTIONS_RADIO_DATABASE= ORACLE PGSQL SYBASE MYSQL SYBASE_DESC= Sybase database .ifdef DB_TYPE DB_TYPE:= ${DB_TYPE:tu} . 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 .include .if ${PORT_OPTIONS:MNLS} USES+= gettext PLIST_SUB+= NLS="" .else CONFIGURE_ARGS+=--disable-nls PLIST_SUB+= NLS="@comment " .endif .if ${PORT_OPTIONS:MFASTCGI} RUN_DEPENDS+= p5-FCGI>=0:${PORTSDIR}/www/p5-FCGI SUB_LIST+= FCGI="" . if ${PORT_OPTIONS:MAPACHE} USE_APACHE_RUN= 22+ RUN_DEPENDS+= ${LOCALBASE}/${APACHEMODDIR}/mod_fastcgi.so:${PORTSDIR}/www/mod_fastcgi . endif .else SUB_LIST+= FCGI="@comment " .endif .if ${PORT_OPTIONS:MORACLE} RUN_DEPENDS+= p5-DBD-Oracle>=0:${PORTSDIR}/databases/p5-DBD-Oracle DB_TYPE= oracle .elif ${PORT_OPTIONS:MPGSQL} SUB_LIST+= REQ_MYSQL="" REQ_PGSQL=postgresql RUN_DEPENDS+= p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg DB_TYPE= Pg .elif ${PORT_OPTIONS:MSYBASE} RUN_DEPENDS+= p5-DBD-Sybase>=0:${PORTSDIR}/databases/p5-DBD-Sybase DB_TYPE= sybase .elif ${PORT_OPTIONS:MMYSQL} SUB_LIST+= REQ_MYSQL=mysql REQ_PGSQL="" RUN_DEPENDS+= p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql DB_TYPE= mysql .endif post-patch: @${REINPLACE_CMD} -e 's|^\( *staticdir=\).*$$|\1${DATADIR}|' \ -e 's|^\( *defaultdir=\).*$$|\1${EXAMPLESDIR}|' \ -e 's|^\( *arcdir=\).*$$|\1${DATADIR}/arc|' \ -e 's|^\( *bouncedir=\).*$$|\1${DATADIR}/bounce|' \ -e 's|^\( *execcgidir=\).*$$|\1${PREFIX}/libexec/${PORTNAME}|' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|\(--target.*sympa.conf\)|\1.sample|' \ -e 's|data_structure.version|data_structure.version.sample|g' \ -e 's|/bin/true$$|:|' \ ${WRKSRC}/Makefile.in @${REINPLACE_CMD} -e 's#\$$(DESTDIR)\$$(sampledir)#${STAGEDIR}\$$(sampledir)#g' \ ${WRKSRC}/doc/sample/Makefile.in pre-install: ${MKDIR} ${STAGEDIR}${ETCDIR} post-install: ${ECHO_CMD} "@owner ${USERS}" >> ${TMPPLIST} ${ECHO_CMD} "@group ${GROUPS}" >> ${TMPPLIST} for dir in $$(sort ${WRKSRC}/createddirs | ${SED} 's,^${STAGEDIR},,'); do \ ${MKDIR} -m755 ${STAGEDIR}$$dir; \ done; \ for dir in $$(sort -r ${WRKSRC}/createddirs); do \ ${ECHO_CMD} "@unexec ${RMDIR} $${dir#${STAGEDIR}} || : 2>/dev/null" >> ${TMPPLIST}; \ done ${INSTALL_DATA} ${WRKSRC}/etc_README ${STAGEDIR}/${ETCDIR} .include Index: head/mail/sympa/files/sympa.in =================================================================== --- head/mail/sympa/files/sympa.in (revision 385234) +++ head/mail/sympa/files/sympa.in (revision 385235) @@ -1,211 +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"` + running=`ps -axw | grep "^[[:space:]]*$pid[[:space:]]"` 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"` + running=`ps -axw | 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"` + running=`ps -axw | 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"` + running=`ps -axw | 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