diff options
author | dinoex <dinoex@FreeBSD.org> | 2007-06-10 21:20:37 +0800 |
---|---|---|
committer | dinoex <dinoex@FreeBSD.org> | 2007-06-10 21:20:37 +0800 |
commit | 456998c08bf32e9d5f780ced1c8f4dca3b6b7c2d (patch) | |
tree | 3b5361c405b8bf6619c0cd2f468f3aac4ecc012c | |
parent | 2cf7b6104bc7d8230ad964133560cd280e6ca375 (diff) | |
download | freebsd-ports-gnome-456998c08bf32e9d5f780ced1c8f4dca3b6b7c2d.tar.gz freebsd-ports-gnome-456998c08bf32e9d5f780ced1c8f4dca3b6b7c2d.tar.zst freebsd-ports-gnome-456998c08bf32e9d5f780ced1c8f4dca3b6b7c2d.zip |
MeTA1 is a message transfer agent that has been designed with
these main topics in minds:
* Security
* Reliability
* Efficiency
* Configurability
* Extendibility
MeTA1 consists of five main modules of which only one runs as root:
* mcp: the main control program is similar to inetd(8):
it starts all other MeTA1 modules and watches over their execution.
mcp runs as root in order to bind to port 25 and to change the uid
of the processes it starts.
* smtps: the SMTP server receives e-mails.
* smtpc: the SMTP client sends e-mails.
* smar: the address resolver provides lookups in various maps
including DNS for mail routing.
* qmgr: the queue manager controls the flow of e-mails through the
SMTP servers and clients.
-rw-r--r-- | mail/Makefile | 1 | ||||
-rw-r--r-- | mail/meta1/Makefile | 180 | ||||
-rw-r--r-- | mail/meta1/distinfo | 3 | ||||
-rw-r--r-- | mail/meta1/pkg-descr | 21 | ||||
-rw-r--r-- | mail/meta1/pkg-plist | 64 |
5 files changed, 269 insertions, 0 deletions
diff --git a/mail/Makefile b/mail/Makefile index 3516a783186b..4e66d3c30bb3 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -237,6 +237,7 @@ SUBDIR += mdpop3d SUBDIR += mess822 SUBDIR += messagewall + SUBDIR += meta1 SUBDIR += metamail SUBDIR += mew SUBDIR += mew-emacs20 diff --git a/mail/meta1/Makefile b/mail/meta1/Makefile new file mode 100644 index 000000000000..e9d3e93931a6 --- /dev/null +++ b/mail/meta1/Makefile @@ -0,0 +1,180 @@ +# New ports collection makefile for: meta1 +# Date created: 19 Oct 2006 +# Whom: dirk.meyer@dinoex.sub.org +# +# $FreeBSD$ +# + +PORTNAME= meta1 +PORTVERSION= 1.0.PreAlpha17.0 +CATEGORIES= mail ipv6 +MASTER_SITES= http://www.MeTA1.org/download/.prealpha/sctoo/ +PKGNAMESUFFIX?= ${TLS_SUFFIX}${SASL_SUFFIX}${LDAP_SUFFIX}${BERKELEYDB_SUFFIX}${PMILTER_SUFFIX}${PKGNAMESUFFIX2} +DISTNAME= ${PORTNAME}-${PORTVERSION} + +MAINTAINER= dinoex@FreeBSD.org +COMMENT= Secure and efficient mail gateway + +NOT_FOR_ARCHS= ia64 +CONFILCTS= smx-* +WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} +GNU_CONFIGURE= yes +CONFIGURE_TARGET= +CONFIGURE_ARGS+= --disable-dependency-tracking +MAKE_ENV+= META1CONFDIR="${META1CONFDIR}" +MAN8= createmap.8 mailq.8 mcp.8 milter-spamd.8 milter-regex.8 qmgr.8 \ + qmgrctl.8 runas.8 meta1.8 smar.8 smtpc.8 smtps.8 +MLINKS= sendmailx.conf.5 meta1.conf.5 \ + sendmailx.8 sendmailX.8 +PORTDOCS= README.dvi README.html README.pdf README.ps README.txt \ + img1.png img2.png img3.png img4.png img5.png img6.png \ + nx_grp_g.png overview1.eps overview1.gif overview1.pdf \ + prev_g.png up_g.png pmilter.api.tex +PLIST_SUB+= SPOOL=${DESTDIR}/var/spool +PLIST_SUB+= NOLOGIN=${NOLOGIN_CMD} +EXTRA_SBIN= libcheck/noroot libconf/tree libmta/statit \ + libmta/t-hostname checks/t-getgroup + +# Options to define Features: +# META1_WITHOUT_TLS=yes +# META1_WITHOUT_SASL=yes +# META1_WITHOUT_PMILTER=yes +# META1_WITH_INTERNAL_BERKELEYD=yes +# META1_WITH_BERKELEYDB=yes +# Set either WITH_BDB_VER or META1_WITH_BDB_VER +# to the version of Berkely DB to use. + +# default config: +META1CONFDIR?= ${PREFIX}/etc/meta1 + +.if defined(META1_WITH_BERKELEYDB_VER) +META1_WITH_BERKELEYDB= yes +OBSOLETE_BDB_VAR= META1_WITH_BERKELEYDB_VER BERKELEYDB_PORT \ + BERKELEYDB_LIB BERKELEYDB_LIBDIR BERKELEYDB_INCLUDE +IGNORE= use META1_WITH_BERKELEYDB to select Berkeley DB +.endif + +.if defined(META1_WITH_INTERNAL_BERKELEYD) +BERKELEYDB_SUFFIX= -intbdb +PLIST_SUB+= WITH_BDBINT="" +.else +.if defined(META1_WITH_BDB_VER) +META1_WITH_BERKELEYDB=yes +.endif +.if !defined(META1_WITH_BERKELEYDB) +META1_WITH_BERKELEYDB=yes +WITH_BDB_VER= 43 +.endif +USE_BDB= 41+ +IGNORE_WITH_BDB= 2 3 40 +BERKELEYDB_SUFFIX= -${BDB_INCLUDE_DIR:S,^${LOCALBASE}/include/,,} +CONFIGURE_ARGS+= --disable-included-bdb +CONFIGURE_ARGS+= --with-bdb-incdir=${BDB_INCLUDE_DIR} +CONFIGURE_ARGS+= --with-bdb-libdir=${BDB_LIB_DIR} +PLIST_SUB+= WITH_BDBINT="@comment " +.endif + +.if defined(META1_WITHOUT_SASL) +SASL_SUFFIX?= -nosasl +CONFIGURE_ARGS+= --disable-SASL +.else +LIB_DEPENDS+= sasl2.2:${PORTSDIR}/security/cyrus-sasl2 +.if !defined(META1_WITHOUT_SASLAUTHD) +RUN_DEPENDS+= ${LOCALBASE}/sbin/saslauthd:${PORTSDIR}/security/cyrus-sasl2-saslauthd +.endif +CONFIGURE_ARGS+= --enable-SASL +CONFIGURE_ARGS+= --with-sasl-incdir=${LOCALBASE}/include +CONFIGURE_ARGS+= --with-sasl-libdir=${LOCALBASE}/lib +.endif + +.if defined(META1_WITHOUT_TLS) || defined(WITHOUT_TLS) +TLS_SUFFIX?= -notls +CONFIGURE_ARGS+= --disable-TLS +.else +CONFIGURE_ARGS+= --enable-TLS +.endif + +.if defined(META1_WITHOUT_PMILTER) || defined(WITHOUT_PMILTER) +PMILTER_SUFFIX?= -nopmilter +CONFIGURE_ARGS+= --disable-pmilter +.else +USE_OPENSSL= yes +CONFIGURE_ARGS+= --enable-pmilter +.endif + +post-patch: + ${REINPLACE_CMD} -e 's|echo aout|echo elf|' \ + ${WRKSRC}/db-4.3.28.NC/dist/configure + +post-configure: + @${CP} ${WRKSRC}/misc/sm.check.sh ${WRKSRC}/misc/sm.setup.sh \ + ${WRKDIR}/ + @${REINPLACE_CMD} -e 's|/etc/meta1|${META1CONFDIR}|g' \ + -e 's|$${SD}/misc|${PREFIX}/bin|' \ + -e 's|$${SD}/libcheck|${PREFIX}/sbin|' \ + -e 's|$${SD}/libmta|${PREFIX}/sbin|' \ + -e 's|$${SD}/checks|${PREFIX}/sbin|' \ + ${WRKDIR}/sm.check.sh + @${REINPLACE_CMD} -e 's|/etc/meta1|${META1CONFDIR}|g' \ + -e 's|[.]/misc|${PREFIX}/bin|' \ + -e 's|$${S}/libconf|${PREFIX}/sbin|' \ + -e 's|[.]/libmta|${PREFIX}/sbin|' \ + -e 's|[.]/checks|${PREFIX}/sbin|' \ + -e 's|=mcp.sh|=${PREFIX}/etc/rc.d/meta1-mcp.sh|' \ + ${WRKDIR}/sm.setup.sh + +test: + (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ + ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} check) + +regression-test: test + +pre-install: + if ! pw groupshow meta1s; then pw groupadd meta1s -g 260; fi + if ! pw groupshow meta1q; then pw groupadd meta1q -g 261; fi + if ! pw groupshow meta1c; then pw groupadd meta1c -g 262; fi + if ! pw groupshow meta1m; then pw groupadd meta1m -g 263; fi + if ! pw groupshow meta1; then pw groupadd meta1 -g 264; fi + if ! pw usershow meta1s; then pw useradd meta1s -g meta1s -u 260 \ + -h - -d ${NONEXISTENT} -s ${NOLOGIN_CMD} -c "MeTA1 SMTPS"; fi + if ! pw usershow meta1q; then pw useradd meta1q -g meta1q -u 261 \ + -h - -d ${NONEXISTENT} -s ${NOLOGIN_CMD} -c "MeTA1 QMGR"; fi + if ! pw usershow meta1c; then pw useradd meta1c -g meta1c -u 262 \ + -h - -d ${NONEXISTENT} -s ${NOLOGIN_CMD} -c "MeTA1 SMTPC"; fi + if ! pw usershow meta1m; then pw useradd meta1m -g meta1m -u 263 \ + -h - -d ${NONEXISTENT} -s ${NOLOGIN_CMD} -c "MeTA1 misc"; fi + if ! pw usershow meta1; then pw useradd meta1 -g meta1 -u 264 \ + -h - -d ${NONEXISTENT} -s ${NOLOGIN_CMD} -c "MeTA1 other"; fi + pw groupmod meta1c -m meta1s + pw groupmod meta1m -m meta1s,meta1q +.if !defined(BATCH) + cd ${WRKSRC} && ${SH} ./misc/sm.setup.sh +.endif + +post-install: + ${INSTALL_SCRIPT} ${WRKDIR}/sm.check.sh ${PREFIX}/sbin/ + ${INSTALL_SCRIPT} ${WRKDIR}/sm.setup.sh ${PREFIX}/sbin/ +.for i in ${EXTRA_SBIN} + ${INSTALL_PROGRAM} ${WRKSRC}/${i} ${PREFIX}/sbin/ +.endfor +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + @cd ${WRKSRC}/doc && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}/ +.endif + +.include <bsd.port.pre.mk> + +.if !defined(UID) +UID!= ${ID} -u +.endif +.if ${UID} != 0 +post-build: test +.endif + +.if ${OSVERSION} < 500000 +NOLOGIN_CMD?= /sbin/nologin +.else +NOLOGIN_CMD?= /usr/sbin/nologin +.endif + +.include <bsd.port.post.mk> diff --git a/mail/meta1/distinfo b/mail/meta1/distinfo new file mode 100644 index 000000000000..307e808edfdf --- /dev/null +++ b/mail/meta1/distinfo @@ -0,0 +1,3 @@ +MD5 (meta1-1.0.PreAlpha17.0.tar.gz) = 079dceaee6e191e17b4accad2a45c123 +SHA256 (meta1-1.0.PreAlpha17.0.tar.gz) = 43dbad8cf5c8db3a7420fbadef00e5380b883aa27f28f594f784ed20d00b96ce +SIZE (meta1-1.0.PreAlpha17.0.tar.gz) = 4204351 diff --git a/mail/meta1/pkg-descr b/mail/meta1/pkg-descr new file mode 100644 index 000000000000..4e3f624b05be --- /dev/null +++ b/mail/meta1/pkg-descr @@ -0,0 +1,21 @@ +MeTA1 is a message transfer agent that has been designed with +these main topics in minds: + + * Security + * Reliability + * Efficiency + * Configurability + * Extendibility + +MeTA1 consists of five main modules of which only one runs as root: + + * mcp: the main control program is similar to inetd(8): + it starts all other MeTA1 modules and watches over their execution. + mcp runs as root in order to bind to port 25 and to change the uid + of the processes it starts. + * smtps: the SMTP server receives e-mails. + * smtpc: the SMTP client sends e-mails. + * smar: the address resolver provides lookups in various maps + including DNS for mail routing. + * qmgr: the queue manager controls the flow of e-mails through the + SMTP servers and clients. diff --git a/mail/meta1/pkg-plist b/mail/meta1/pkg-plist new file mode 100644 index 000000000000..be8b11e0f91c --- /dev/null +++ b/mail/meta1/pkg-plist @@ -0,0 +1,64 @@ +@exec if ! pw groupshow meta1s 2>/dev/null; then pw groupadd meta1s -g 260; fi +@exec if ! pw groupshow meta1q 2>/dev/null; then pw groupadd meta1q -g 261; fi +@exec if ! pw groupshow meta1c 2>/dev/null; then pw groupadd meta1c -g 262; fi +@exec if ! pw groupshow meta1m 2>/dev/null; then pw groupadd meta1m -g 263; fi +@exec if ! pw groupshow meta1 2>/dev/null; then pw groupadd meta1 -g 264; fi +@exec if ! pw usershow meta1s 2>/dev/null; then pw useradd meta1s -g meta1s -u 260 -h - -d /nonexistent -s %%NOLOGIN%% -c "MeTA1 SMTPS"; fi +@exec if ! pw usershow meta1q 2>/dev/null; then pw useradd meta1q -g meta1q -u 261 -h - -d /nonexistent -s %%NOLOGIN%% -c "MeTA1 QMGR"; fi +@exec if ! pw usershow meta1c 2>/dev/null; then pw useradd meta1c -g meta1c -u 262 -h - -d /nonexistent -s %%NOLOGIN%% -c "MeTA1 SMTPC"; fi +@exec if ! pw usershow meta1m 2>/dev/null; then pw useradd meta1m -g meta1m -u 263 -h - -d /nonexistent -s %%NOLOGIN%% -c "MeTA1 misc"; fi +@exec if ! pw usershow meta1 2>/dev/null; then pw useradd meta1 -g meta1 -u 264 -h - -d /nonexistent -s %%NOLOGIN%% -c "MeTA1 other"; fi +@exec pw groupmod meta1c -m meta1s +@exec pw groupmod meta1m -m meta1s,meta1q +@unexec if pw usershow meta1s; then pw userdel meta1s; fi +@unexec if pw usershow meta1q; then pw userdel meta1q; fi +@unexec if pw usershow meta1c; then pw userdel meta1c; fi +@unexec if pw usershow meta1m; then pw userdel meta1m; fi +@unexec if pw usershow meta1; then pw userdel meta1; fi +%%WITH_BDBINT%%bin/db_archive +%%WITH_BDBINT%%bin/db_checkpoint +%%WITH_BDBINT%%bin/db_deadlock +%%WITH_BDBINT%%bin/db_dump +%%WITH_BDBINT%%bin/db_load +%%WITH_BDBINT%%bin/db_printlog +%%WITH_BDBINT%%bin/db_recover +%%WITH_BDBINT%%bin/db_stat +%%WITH_BDBINT%%bin/db_upgrade +%%WITH_BDBINT%%bin/db_verify +%%WITH_BDBINT%%include/db.h +%%WITH_BDBINT%%lib/libdb-4.3.a +%%WITH_BDBINT%%lib/libdb.a +bin/createmap +bin/log2time +bin/mailq +bin/mailq.sh +bin/qmgrctl +bin/qmgrctl.sh +bin/rcvrenvfromlog.sh +bin/runas +bin/smconf +include/meta1/hdrmoddef.h +include/meta1/mfapi.h +include/meta1/pmfapi.h +include/meta1/pmfdef.h +include/meta1/smreplycodes.h +include/meta1/smmts.h +lib/meta1/libpmilter.a +lib/meta1/libpmutil.a +libexec/qmgr +libexec/smar +libexec/smtpc +libexec/smtps +sbin/greyprint +sbin/greyrm +sbin/mcp +sbin/noroot +sbin/sm.check.sh +sbin/sm.setup.sh +sbin/statit +sbin/t-hostname +sbin/t-getgroup +sbin/tree +@dirrm include/meta1 +@dirrm lib/meta1 +@exec %D/sbin/sm.setup.sh |