aboutsummaryrefslogtreecommitdiff
path: root/mail/popular
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2005-08-30 14:09:24 +0000
committerPav Lucistnik <pav@FreeBSD.org>2005-08-30 14:09:24 +0000
commitb6ab23fb4f64cc86cf51ec46fd64d0bf14067f92 (patch)
treef587834f346f86badede0b80aa8ca11c623a594e /mail/popular
parent5720214bcf2b49735b6287606b29d8903aee9d75 (diff)
downloadports-b6ab23fb4f64cc86cf51ec46fd64d0bf14067f92.tar.gz
ports-b6ab23fb4f64cc86cf51ec46fd64d0bf14067f92.zip
POPular is a suite of programs for setting up large POP3 server systems. It
consists of a POP3 proxy, a storage server and lots of utility programs. Note that this program is intended to be used in large email systems and is therefore quite complex to configure. If you only have a few thousand mailboxes, you are probably better of with a different POP3 server.
Notes
Notes: svn path=/head/; revision=141451
Diffstat (limited to 'mail/popular')
-rw-r--r--mail/popular/Makefile52
-rw-r--r--mail/popular/distinfo2
-rw-r--r--mail/popular/files/0ringd.sh.in37
-rw-r--r--mail/popular/files/patch-configure28
-rw-r--r--mail/popular/files/patch-src-Makefile.in27
-rw-r--r--mail/popular/files/patch-src-io.c12
-rw-r--r--mail/popular/files/patch-src-pcheckd.c10
-rw-r--r--mail/popular/files/patch-src-popular.h12
-rw-r--r--mail/popular/files/patch-src-pproxy.c12
-rw-r--r--mail/popular/files/patch-src-pserv.c12
-rw-r--r--mail/popular/files/patch-src-sig.c18
-rw-r--r--mail/popular/files/pcheckd.sh.in37
-rw-r--r--mail/popular/files/pproxy.sh.in47
-rw-r--r--mail/popular/files/pserv.sh.in47
-rw-r--r--mail/popular/pkg-descr7
-rw-r--r--mail/popular/pkg-plist38
16 files changed, 398 insertions, 0 deletions
diff --git a/mail/popular/Makefile b/mail/popular/Makefile
new file mode 100644
index 000000000000..3686348b0df1
--- /dev/null
+++ b/mail/popular/Makefile
@@ -0,0 +1,52 @@
+# New ports collection makefile for: popular
+# Date created: 11 July 2005
+# Whom: Pav Lucistnik <pav@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= popular
+PORTVERSION= 1.5.5
+CATEGORIES= mail
+MASTER_SITES= http://www.remote.org/jochen/mail/popular/download/
+
+MAINTAINER= pav@FreeBSD.org
+COMMENT= Suite of programs for setting up large POP3 server systems
+
+BUILD_DEPENDS= ${SITE_PERL}/XML/DOM.pm:${PORTSDIR}/textproc/p5-XML-DOM
+
+USE_GMAKE= yes
+USE_LIBTOOL_VER=15
+USE_OPENSSL= yes
+USE_PERL5= yes
+PDM_MODULES= any master
+CONFIGURE_ARGS= --without-bdb --disable-docbook --with-confdir=${PREFIX}/etc/popular \
+ --enable-ssl --with-pdm="${PDM_MODULES}"
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" LIBS="-L${LOCALBASE}/lib"
+
+USE_RC_SUBR= pcheckd.sh pproxy.sh pserv.sh 0ringd.sh
+
+MAN1= pcheck.1 pcontrol.1 pdeliver.1 pstatus.1 ptestpdm.1
+MAN7= popular-log.7
+MAN8= pcheckd.8 pproxy.8 pserv.8 ringd.8
+
+OPTIONS= DB4 "Build db4 pdm module" on
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITHOUT_DB4)
+LIB_DEPENDS+= db4.0:${PORTSDIR}/databases/db4
+PLIST_SUB+= WITH_DB4=""
+PDM_MODULES+= db4
+.else
+PLIST_SUB+= WITH_DB4="@comment "
+.endif
+
+post-install:
+ ${MKDIR} ${PREFIX}/etc/popular
+ ${INSTALL_DATA} ${WRKSRC}/conf/pproxy.rc ${PREFIX}/etc/popular/pproxy.rc.sample
+ ${INSTALL_DATA} ${WRKSRC}/conf/pserv.rc ${PREFIX}/etc/popular/pserv.rc.sample
+ ${MKDIR} ${PREFIX}/include/popular
+ ${FIND} ${WRKSRC}/src -name *.h | ${XARGS} -n 1 -J % ${INSTALL_DATA} % ${PREFIX}/include/popular
+
+.include <bsd.port.post.mk>
diff --git a/mail/popular/distinfo b/mail/popular/distinfo
new file mode 100644
index 000000000000..d173be7b2a46
--- /dev/null
+++ b/mail/popular/distinfo
@@ -0,0 +1,2 @@
+MD5 (popular-1.5.5.tar.gz) = 5288bbd7ae7eeda2b23784e76e464cbc
+SIZE (popular-1.5.5.tar.gz) = 1161921
diff --git a/mail/popular/files/0ringd.sh.in b/mail/popular/files/0ringd.sh.in
new file mode 100644
index 000000000000..5341113a47f3
--- /dev/null
+++ b/mail/popular/files/0ringd.sh.in
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ringd
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: shutdown
+
+# /etc/rc.conf lines:
+# ringd_enable="YES" # enable ringd
+# ringd_socket_user="pop" # user to own /var/run sockets
+
+. %%RC_SUBR%%
+
+name="ringd"
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+: ${ringd_enable="NO"}
+: ${ringd_socket_user="pop"}
+
+command="%%PREFIX%%/sbin/ringd"
+command_args="--user ${ringd_socket_user}"
+start_precmd="${name}_prestart"
+
+ringd_prestart()
+{
+ mkdir -p /var/log/popular
+ chown ${ringd_socket_user} /var/log/popular
+ mkdir -p /var/run/popular
+ chown ${ringd_socket_user} /var/run/popular
+}
+
+run_rc_command "$1"
diff --git a/mail/popular/files/patch-configure b/mail/popular/files/patch-configure
new file mode 100644
index 000000000000..4167af030a67
--- /dev/null
+++ b/mail/popular/files/patch-configure
@@ -0,0 +1,28 @@
+--- configure.orig Sat Aug 21 12:21:50 2004
++++ configure Mon Jul 11 17:20:12 2005
+@@ -22157,13 +22157,13 @@
+
+
+
+-echo "$as_me:$LINENO: checking for db_create in -ldb-4.0" >&5
+-echo $ECHO_N "checking for db_create in -ldb-4.0... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking for db_create in -ldb4" >&5
++echo $ECHO_N "checking for db_create in -ldb4... $ECHO_C" >&6
+ if test "${ac_cv_lib_db_4_0_db_create+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldb-4.0 $LIBS"
++LIBS="-ldb4 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -22221,7 +22221,7 @@
+ echo "$as_me:$LINENO: result: $ac_cv_lib_db_4_0_db_create" >&5
+ echo "${ECHO_T}$ac_cv_lib_db_4_0_db_create" >&6
+ if test $ac_cv_lib_db_4_0_db_create = yes; then
+- LIB_DB40=db-4.0
++ LIB_DB40=db4
+ else
+ LIB_DB40=""
+ fi
diff --git a/mail/popular/files/patch-src-Makefile.in b/mail/popular/files/patch-src-Makefile.in
new file mode 100644
index 000000000000..063e4894767f
--- /dev/null
+++ b/mail/popular/files/patch-src-Makefile.in
@@ -0,0 +1,27 @@
+--- src/Makefile.in.orig Sat Aug 21 12:26:23 2004
++++ src/Makefile.in Mon Jul 11 16:47:17 2005
+@@ -132,7 +132,7 @@
+ have_sgml = @have_sgml@
+ prefix = @prefix@
+
+-CFLAGS = -g -O2 -Wall
++CFLAGS += -Wall
+
+ #LDFLAGS = -static -lc_p
+
+@@ -166,13 +166,13 @@
+
+ LDADD = @LIB_STRL@ @LIB_GETOPT@
+
+-pproxy_LDADD = $(LDADD) @SSL_LIBS@ -ldl
++pproxy_LDADD = $(LDADD) @SSL_LIBS@
+
+ pserv_LDADD = $(LDADD) @SSL_LIBS@
+
+ pcontrol_LDADD = $(LDADD) @LIB_READLINE@
+
+-ptestpdm_LDADD = $(LDADD) -ldl
++ptestpdm_LDADD = $(LDADD)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../config.h
+ CONFIG_CLEAN_FILES =
diff --git a/mail/popular/files/patch-src-io.c b/mail/popular/files/patch-src-io.c
new file mode 100644
index 000000000000..2763f766ea46
--- /dev/null
+++ b/mail/popular/files/patch-src-io.c
@@ -0,0 +1,12 @@
+--- src/io.c.orig Sat Aug 21 12:19:29 2004
++++ src/io.c Mon Jul 11 16:16:50 2005
+@@ -307,7 +307,8 @@
+ * A null byte was encountered in input from a network socket. This
+ * can never happen in a normal POP3 connection. */
+ xlog_printf(xlog_adm, 0x0035, "null_byte_in_input ctx='%s' len=%d data='%s'", ioc->io_desc, len, buf);
+- errno = EPROTO;
++ /* Uh oh, nice to overload socket errcos for application level signalization */
++ errno = EPIPE;
+ return -1;
+ }
+ }
diff --git a/mail/popular/files/patch-src-pcheckd.c b/mail/popular/files/patch-src-pcheckd.c
new file mode 100644
index 000000000000..6d3ac16615d2
--- /dev/null
+++ b/mail/popular/files/patch-src-pcheckd.c
@@ -0,0 +1,10 @@
+--- src/pcheckd.c.orig Sat Nov 22 22:27:22 2003
++++ src/pcheckd.c Mon Jul 11 16:20:48 2005
+@@ -511,7 +511,6 @@
+ case SIGQUIT: /* fallthrough */
+ case SIGINT: /* fallthrough */
+ case SIGTERM: /* fallthrough */
+- case SIGPWR: /* fallthrough */
+ /* XLOG-DOC:INF:0078:shutdown
+ * pcheckd received a QUIT, INT, TER, or PWR signal and is
+ * shutting down. */
diff --git a/mail/popular/files/patch-src-popular.h b/mail/popular/files/patch-src-popular.h
new file mode 100644
index 000000000000..8bd38450c96b
--- /dev/null
+++ b/mail/popular/files/patch-src-popular.h
@@ -0,0 +1,12 @@
+--- src/popular.h.orig Thu Nov 28 14:56:03 2002
++++ src/popular.h Mon Jul 11 16:19:50 2005
+@@ -26,9 +26,7 @@
+
+ *****************************************************************************/
+
+-#include <alloca.h>
+ #include <arpa/inet.h>
+-#include <crypt.h>
+ #include <ctype.h>
+ #include <dirent.h>
+ #include <dlfcn.h>
diff --git a/mail/popular/files/patch-src-pproxy.c b/mail/popular/files/patch-src-pproxy.c
new file mode 100644
index 000000000000..dc778a2b76a5
--- /dev/null
+++ b/mail/popular/files/patch-src-pproxy.c
@@ -0,0 +1,12 @@
+--- src/pproxy.c.orig Mon Nov 24 20:23:30 2003
++++ src/pproxy.c Mon Jul 11 16:21:13 2005
+@@ -580,9 +580,6 @@
+ case SIGTERM:
+ pproxy_shutdown(SHUTDOWN_CHILDREN | SHUTDOWN_SERVER);
+ break;
+- case SIGPWR:
+- pproxy_shutdown(SHUTDOWN_DELAYED);
+- break;
+ case SIGHUP:
+ logfd = xlog_reopen(conf.logfile, PPROXY_LOG_MODE);
+ break;
diff --git a/mail/popular/files/patch-src-pserv.c b/mail/popular/files/patch-src-pserv.c
new file mode 100644
index 000000000000..c224f52c0357
--- /dev/null
+++ b/mail/popular/files/patch-src-pserv.c
@@ -0,0 +1,12 @@
+--- src/pserv.c.orig Sun Sep 15 14:27:16 2002
++++ src/pserv.c Mon Jul 11 16:23:03 2005
+@@ -484,9 +484,6 @@
+ case SIGTERM:
+ pserv_shutdown(SHUTDOWN_CHILDREN | SHUTDOWN_SERVER);
+ break;
+- case SIGPWR:
+- pserv_shutdown(SHUTDOWN_DELAYED);
+- break;
+ case SIGHUP:
+ xlog_reopen(conf.logfile, PSERV_LOG_MODE);
+ break;
diff --git a/mail/popular/files/patch-src-sig.c b/mail/popular/files/patch-src-sig.c
new file mode 100644
index 000000000000..db84e86ce737
--- /dev/null
+++ b/mail/popular/files/patch-src-sig.c
@@ -0,0 +1,18 @@
+--- src/sig.c.orig Sun Sep 15 14:27:16 2002
++++ src/sig.c Mon Jul 11 16:21:23 2005
+@@ -114,7 +114,6 @@
+ signal_set(sigHandler, SIGQUIT, 0);
+ signal_set(sigHandler, SIGUSR1, 0);
+ signal_set(sigHandler, SIGUSR2, 0);
+- signal_set(sigHandler, SIGPWR, 0);
+ }
+
+
+@@ -138,7 +137,6 @@
+ signal_set(sigDefault, SIGQUIT, 0);
+ signal_set(sigDefault, SIGUSR1, 0);
+ signal_set(sigDefault, SIGUSR2, 0);
+- signal_set(sigDefault, SIGPWR, 0);
+
+ if (signal_remember[SIGTERM] || signal_remember[SIGINT]) {
+ /* XLOG-DOC:INF:0133:got_term_signal
diff --git a/mail/popular/files/pcheckd.sh.in b/mail/popular/files/pcheckd.sh.in
new file mode 100644
index 000000000000..382d613960d9
--- /dev/null
+++ b/mail/popular/files/pcheckd.sh.in
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pcheckd
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: shutdown
+
+# /etc/rc.conf lines:
+# pcheckd="YES" # enable pcheckd
+# pcheckd="pop" # user for pcheckd
+
+. %%RC_SUBR%%
+
+name="pcheckd"
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+: ${pcheckd="NO"}
+: ${pcheckd="pop"}
+
+command="%%PREFIX%%/sbin/pcheckd"
+start_precmd="${name}_prestart"
+extra_commands="reload"
+
+pproxy_prestart()
+{
+ mkdir -p /var/log/popular
+ chown ${pproxy_user} /var/log/popular
+ mkdir -p /var/run/popular
+ chown ${pproxy_user} /var/run/popular
+}
+
+run_rc_command "$1"
diff --git a/mail/popular/files/pproxy.sh.in b/mail/popular/files/pproxy.sh.in
new file mode 100644
index 000000000000..41876b4cbd33
--- /dev/null
+++ b/mail/popular/files/pproxy.sh.in
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pproxy
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: shutdown
+
+# /etc/rc.conf lines:
+# pproxy_enable="YES" # enable pproxy
+# pproxy_user="pop" # user to pproxy
+
+. %%RC_SUBR%%
+
+name="pproxy"
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+: ${pproxy_enable="NO"}
+: ${pproxy_user="pop"}
+
+command="%%PREFIX%%/sbin/pproxy"
+start_precmd="${name}_prestart"
+start_postcmd="${name}_configure"
+extra_commands="reload"
+reload_cmd="${name}_configure"
+
+pproxy_prestart()
+{
+ mkdir -p /var/log/popular
+ chown ${pproxy_user} /var/log/popular
+ mkdir -p /var/run/popular
+ chown ${pproxy_user} /var/run/popular
+}
+
+pproxy_configure()
+{
+ if [ -f %%PREFIX%%/etc/popular/pproxy.rc ]; then
+ sleep 1;
+ su -m ${pproxy_user} -c "%%PREFIX%%/bin/pcontrol --program=pproxy %%PREFIX%%/etc/popular/pproxy.rc"
+ fi
+}
+
+run_rc_command "$1"
diff --git a/mail/popular/files/pserv.sh.in b/mail/popular/files/pserv.sh.in
new file mode 100644
index 000000000000..1084711d577a
--- /dev/null
+++ b/mail/popular/files/pserv.sh.in
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pserv
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: shutdown
+
+# /etc/rc.conf lines:
+# pserv="YES" # enable pserv
+# pserv="pop" # user for pserv
+
+. %%RC_SUBR%%
+
+name="pserv"
+rcvar=`set_rcvar`
+
+load_rc_config $name
+
+: ${pserv="NO"}
+: ${pserv="pop"}
+
+command="%%PREFIX%%/sbin/pserv"
+start_precmd="${name}_prestart"
+start_postcmd="${name}_configure"
+extra_commands="reload"
+reload_cmd="${name}_configure"
+
+pproxy_prestart()
+{
+ mkdir -p /var/log/popular
+ chown ${pproxy_user} /var/log/popular
+ mkdir -p /var/run/popular
+ chown ${pproxy_user} /var/run/popular
+}
+
+pproxy_configure()
+{
+ if [ -f %%PREFIX%%/etc/popular/pserv.rc ]; then
+ sleep 1;
+ su -m ${pproxy_user} -c "%%PREFIX%%/bin/pcontrol --program=pserv %%PREFIX%%/etc/popular/pserv.rc"
+ fi
+}
+
+run_rc_command "$1"
diff --git a/mail/popular/pkg-descr b/mail/popular/pkg-descr
new file mode 100644
index 000000000000..92003e0864db
--- /dev/null
+++ b/mail/popular/pkg-descr
@@ -0,0 +1,7 @@
+POPular is a suite of programs for setting up large POP3 server systems. It
+consists of a POP3 proxy, a storage server and lots of utility programs. Note
+that this program is intended to be used in large email systems and is
+therefore quite complex to configure. If you only have a few thousand
+mailboxes, you are probably better of with a different POP3 server.
+
+WWW: http://www.remote.org/jochen/mail/popular/
diff --git a/mail/popular/pkg-plist b/mail/popular/pkg-plist
new file mode 100644
index 000000000000..fb1d949d4719
--- /dev/null
+++ b/mail/popular/pkg-plist
@@ -0,0 +1,38 @@
+bin/pcheck
+bin/pstatus
+bin/pdeliver
+bin/pcontrol
+bin/ptestpdm
+etc/popular/pproxy.rc.sample
+etc/popular/pserv.rc.sample
+include/popular/ctrl.h
+include/popular/daemon.h
+include/popular/info.h
+include/popular/io.h
+include/popular/mailbox.h
+include/popular/net.h
+include/popular/pconfig.h
+include/popular/pdm.h
+include/popular/pop3.h
+include/popular/popular.h
+include/popular/pproxy.h
+include/popular/pserv.h
+include/popular/ringd.h
+include/popular/sig.h
+include/popular/smtp_after_pop.h
+include/popular/uds.h
+include/popular/util.h
+include/popular/xlog.h
+lib/popular/libpdm_any-1.5.5.so
+lib/popular/libpdm_any.so
+lib/popular/libpdm_master-1.5.5.so
+lib/popular/libpdm_master.so
+%%WITH_DB4%%lib/popular/libpdm_db4-1.5.5.so
+%%WITH_DB4%%lib/popular/libpdm_db4.so
+sbin/pcheckd
+sbin/pproxy
+sbin/pserv
+sbin/ringd
+@dirrm include/popular
+@dirrm lib/popular
+@unexec rmdir %D/etc/popular 2>/dev/null || true