summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UPDATING14
-rw-r--r--mail/Makefile1
-rw-r--r--mail/postfix35/Makefile378
-rw-r--r--mail/postfix35/distinfo3
-rw-r--r--mail/postfix35/files/extra-patch-blacklistd69
-rw-r--r--mail/postfix35/files/mailer.conf.postfix.in7
-rw-r--r--mail/postfix35/files/patch-makedefs45
-rw-r--r--mail/postfix35/files/patch-src_posttls-finger_posttls-finger.c22
-rw-r--r--mail/postfix35/files/patch-src_tls_tls__certkey.c11
-rw-r--r--mail/postfix35/files/patch-src_tls_tls__server.c12
-rw-r--r--mail/postfix35/files/patch-src_util_sys__defs.h12
-rw-r--r--mail/postfix35/files/pkg-install.in189
-rw-r--r--mail/postfix35/files/pkg-message.in44
-rw-r--r--mail/postfix35/files/postfix.in50
-rw-r--r--mail/postfix35/pkg-descr15
-rw-r--r--mail/postfix35/pkg-help15
-rw-r--r--mail/postfix35/pkg-plist190
17 files changed, 1077 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
index f9519a2c4276..056498e6b87f 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,20 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20210506:
+ AFFECTS: users of mail/postfix
+ AUTHOR: ohauer@FreeBSD.org
+
+ Postfix 3.6 and higher requires minimum OpenSSL 1.1.1
+ FreeBSD 11 users using base OpenSSL can switch to
+ mail/postfix35
+
+ If you whish to use postfix35 until FreeBSD 11 EoL you might run the
+ following command:
+
+ # pkg set -o mail/postfix:mail/postfix35
+ # pkg upgrade
+
20210505:
AFFECTS: users of sysutils/terraform
AUTHOR: 0mp@FreeBSD.org
diff --git a/mail/Makefile b/mail/Makefile
index 8388b9df8147..9866ab62f506 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -476,6 +476,7 @@
SUBDIR += postfix-policyd-weight
SUBDIR += postfix-postfwd
SUBDIR += postfix-sasl
+ SUBDIR += postfix35
SUBDIR += postfixadmin
SUBDIR += postgrey
SUBDIR += postsrsd
diff --git a/mail/postfix35/Makefile b/mail/postfix35/Makefile
new file mode 100644
index 000000000000..4b8b206844ea
--- /dev/null
+++ b/mail/postfix35/Makefile
@@ -0,0 +1,378 @@
+# Created by: Torsten Blum <torstenb@FreeBSD.org>
+
+PORTNAME= postfix
+DISTVERSION= 3.5.10
+PORTREVISION?= 0
+PORTEPOCH= 1
+CATEGORIES= mail
+MASTER_SITES= http://ftp.porcupine.org/mirrors/postfix-release/ \
+ http://de.postfix.org/ftpmirror/ \
+ http://cdn.postfix.johnriley.me/mirrors/postfix-release/ \
+ http://www.artfiles.org/postfix.org/postfix-release/ \
+ http://mirror.lhsolutions.nl/postfix-release/ \
+ ftp://postfix.mirrors.pair.com/
+MASTER_SITES:= ${MASTER_SITES:S|$|official/|}
+DIST_SUBDIR= ${PORTNAME}
+
+MAINTAINER= ohauer@FreeBSD.org
+COMMENT= Secure alternative to widely-used Sendmail
+
+LICENSE= EPL IPL10
+LICENSE_COMB= multi
+LICENSE_FILE= ${WRKSRC}/LICENSE
+LICENSE_NAME_IPL10= IBM PUBLIC LICENSE VERSION 1.0
+LICENSE_PERMS_IPL10= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+DEPRECATED= It is only here until FreeBSD 11 is EoL (Postfix >= 3.6 requires OpenSSL >= 1.1.x)
+EXPIRATION_DATE=2021-09-30
+
+PORTSCOUT= limit:^3\.5\.
+
+CONFLICTS_INSTALL?= courier-0.* opensmtpd-[0-9]* sendmail-8.* sendmail+*-8.* \
+ postfix-* postfix-current-*
+
+USERS= postfix
+GROUPS= mail maildrop postfix
+USES= shebangfix cpe
+SHEBANG_FILES= auxiliary/qshape/qshape.pl
+
+USE_RC_SUBR= postfix
+USE_SUBMAKE= yes
+SCRIPTS_ENV+= POSTFIX_DEFAULT_MTA="${POSTFIX_DEFAULT_MTA}"
+
+OPTIONS_SUB= yes
+OPTIONS_DEFINE= BDB BLACKLISTD CDB DOCS EAI INST_BASE LDAP LDAP_SASL \
+ LMDB MYSQL NIS PCRE PGSQL SASL SQLITE TEST TLS
+
+OPTIONS_RADIO= RG1
+OPTIONS_RADIO_RG1= SASLKRB5 SASLKMIT
+OPTIONS_DEFAULT?= BLACKLISTD EAI PCRE TLS
+
+BDB_USES= bdb
+BLACKLISTD_EXTRA_PATCHES= ${FILESDIR}/extra-patch-blacklistd
+CDB_LIB_DEPENDS= libcdb.so:databases/tinycdb
+EAI_LIB_DEPENDS= libicuuc.so:devel/icu
+LDAP_USE= OPENLDAP=yes
+LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
+MYSQL_USES?= mysql
+PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
+PGSQL_USES= pgsql
+SASLKMIT_LIB_DEPENDS= libkrb5.so:security/krb5
+SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
+SQLITE_USES= sqlite
+TLS_USES= ssl
+
+BLACKLISTD_DESC= Enable blacklistd support (FreeBSD 11.0 and later only)
+CDB_DESC= CDB maps lookups
+EAI_DESC= Email Address Internationalization (SMTPUTF8) support
+INST_BASE_DESC= Install into /usr and /etc/postfix
+LDAP_DESC= LDAP maps (uses WITH_OPENLDAP_VER)
+LDAP_SASL_DESC= LDAP client-to-server SASL auth
+LMDB_DESC= LMDB maps
+TEST_DESC= SMTP/LMTP test server and generator
+
+SASL_DESC= Cyrus SASL support (Dovecot SASL is always built in)
+RG1_DESC= Kerberos network authentication protocol type
+SASLKRB5_DESC= If your SASL req. Kerberos5, select this
+SASLKMIT_DESC= If your SASL req. MIT Kerberos5, select this
+
+.include <bsd.port.options.mk>
+
+HTML1= body_checks.5.html bounce.5.html postfix-power.png \
+ scache.8.html tlsmgr.8.html
+
+STRIP_LIBEXEC= anvil bounce cleanup discard dnsblog error flush lmtp local \
+ master nqmgr oqmgr pickup pipe postlogd postscreen proxymap \
+ qmgr qmqpd scache showq smtp smtpd spawn tlsmgr tlsproxy \
+ trivial-rewrite verify virtual
+
+.if !defined(DEBUG)
+MAKEFILEFLAGS+= DEBUG=
+.endif
+
+MAKEFILEFLAGS+= pie=yes CC="${CC}" OPT="${CFLAGS}"
+
+.if ${PORT_OPTIONS:MINST_BASE}
+PKGNAMESUFFIX= 35-base
+PREFIX= /usr
+ETCDIR= /etc/postfix
+PLIST_SUB+= BMAN="share/"
+.else
+PKGNAMESUFFIX= 35
+PLIST_SUB+= BMAN=""
+.endif
+
+PLIST_SUB+= PFETC=${ETCDIR}
+
+# check if mailwrapper supports $LOCALBASE
+.if ${OPSYS} == FreeBSD
+SUB_LIST+= USE_LOCALBASE_MAILER_CONF="yes" MC_PREFIX="${LOCALBASE}"
+.else
+SUB_LIST+= USE_LOCALBASE_MAILER_CONF="no" MC_PREFIX=""
+.endif
+
+.if ${PORT_OPTIONS:MDOCS}
+PORTDOCS= *
+READMEDIR= ${DOCSDIR}
+.else
+READMEDIR= no
+.endif
+
+# dynamic direcory location
+DAEMONDIR= ${PREFIX}/libexec/postfix
+SHLIB_DIRECTORY=${PREFIX}/lib/postfix
+# new proposed location is ETCDIR (see README_FILES/INSTALL)
+# keep compatiblity with Postfix 2.6 .. 2.11 and use DAEMOMDIR
+META_DIRECTORY= ${DAEMONDIR}
+
+SUB_LIST+= REQUIRE="${_REQUIRE}" READMEDIR="${READMEDIR}" \
+ DAEMONDIR="${DAEMONDIR}" META_DIRECTORY="${META_DIRECTORY}"
+SUB_FILES+= pkg-install pkg-message mailer.conf.postfix
+
+POSTFIX_CCARGS+= -DDEF_CONFIG_DIR=\\\"${ETCDIR}\\\" \
+ -DDEF_DAEMON_DIR=\\\"${DAEMONDIR}\\\" \
+ -DDEF_META_DIR=\\\"${META_DIRECTORY}\\\" \
+ -DDEF_COMMAND_DIR=\\\"${PREFIX}/sbin\\\" \
+ -DDEF_SENDMAIL_PATH=\\\"${PREFIX}/sbin/sendmail\\\" \
+ -DDEF_NEWALIAS_PATH=\\\"${PREFIX}/bin/newaliases\\\" \
+ -DDEF_MAILQ_PATH=\\\"${PREFIX}/bin/mailq\\\" \
+ -DDEF_MANPAGE_DIR=\\\"${MANPREFIX}/man\\\" \
+ -DDEF_README_DIR=\\\"${READMEDIR}\\\" \
+ -DDEF_HTML_DIR=\\\"${READMEDIR}\\\" \
+ -DDEF_QUEUE_DIR=\\\"/var/spool/postfix\\\" \
+ -DDEF_DATA_DIR=\\\"/var/db/postfix\\\" \
+ -DDEF_MAIL_OWNER=\\\"postfix\\\" \
+ -DDEF_SGID_GROUP=\\\"maildrop\\\" \
+ -Wmissing-prototypes -Wformat -Wno-comment
+
+# Default requirement for postfix rc script
+_REQUIRE= LOGIN cleanvar dovecot
+
+# always build with Dovecot SASL support, Cyrus is optional
+# see Postfix HISTORY 20051222
+POSTFIX_CCARGS+= -DUSE_SASL_AUTH
+
+# Email Address Internationalization (EAI, RFC 6531..6533)
+.if ${PORT_OPTIONS:MEAI}
+POSTFIX_CCARGS+= -DHAS_EAI -I${LOCALBASE}/include
+POSTFIX_AUXLIBS+= -L${LOCALBASE}/lib -licuuc
+.else
+POSTFIX_CCARGS+= -DNO_EAI
+.endif
+
+.if ${PORT_OPTIONS:MPCRE}
+DYN_EXT+= pcre
+POSTFIX_CCARGS+= -DHAS_PCRE -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_PCRE=`${LOCALBASE}/bin/pcre-config --libs`"
+.else
+POSTFIX_CCARGS+= -DNO_PCRE
+.endif
+
+.if ${PORT_OPTIONS:MSASL}
+POSTFIX_CCARGS+= -DUSE_CYRUS_SASL -I${LOCALBASE}/include -I${LOCALBASE}/include/sasl
+POSTFIX_AUXLIBS+= -L${LOCALBASE}/lib -lsasl2 -lpam -lcrypt
+.else
+POSTFIX_CCARGS+= -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"
+.endif
+
+.if ${PORT_OPTIONS:MSASLKRB5}
+POSTFIX_AUXLIBS+= -lkrb5 -lhx509 -lcrypto -lcrypt -lcom_err -lasn1 -lroken
+.endif
+
+.if ${PORT_OPTIONS:MSASLKMIT}
+POSTFIX_AUXLIBS+= -Wl,--rpath,$${KRB5_HOME:-${LOCALBASE}}/lib -lkrb5 -lcrypto -lcrypt -lcom_err
+.endif
+
+.if ${PORT_OPTIONS:MTLS}
+POSTFIX_CCARGS+= -DUSE_TLS -I${OPENSSLINC}
+# XXX LDFLAGS possible breaks dynamic building
+POSTFIX_AUXLIBS+= -L${OPENSSLLIB} ${LDFLAGS} -lssl -lcrypto
+.else
+POSTFIX_CCARGS+= -DNO_TLS
+.endif
+
+.if ${PORT_OPTIONS:MBDB}
+POSTFIX_CCARGS+= -I${BDB_INCLUDE_DIR}
+POSTFIX_AUXLIBS+= -L${BDB_LIB_DIR} -l${BDB_LIB_NAME}
+.endif
+
+.if ${PORT_OPTIONS:MBLACKLISTD}
+. if ${OPSYS} == FreeBSD
+POSTFIX_AUXLIBS+= -lblacklist
+. else
+IGNORE= blacklistd is only supported on FreeBSD >= 11.0
+. endif
+.endif
+
+.if ${PORT_OPTIONS:MMYSQL}
+DYN_EXT+= mysql
+POSTFIX_CCARGS+= -DHAS_MYSQL -I${LOCALBASE}/include/mysql
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_MYSQL=-L${LOCALBASE}/lib/mysql -lmysqlclient -lz -lm"
+_REQUIRE+= mysql
+.endif
+
+.if ${PORT_OPTIONS:MPGSQL}
+DYN_EXT+= pgsql
+POSTFIX_CCARGS+= -DHAS_PGSQL -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_PGSQL=-L${LOCALBASE}/lib -lpq"
+_REQUIRE+= postgresql
+.endif
+
+.if ${PORT_OPTIONS:MSQLITE}
+DYN_EXT+= sqlite
+POSTFIX_CCARGS+= -DHAS_SQLITE -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_SQLITE=-L${LOCALBASE}/lib -lsqlite3 -lpthread"
+.endif
+
+.if ${PORT_OPTIONS:MLDAP}
+DYN_EXT+= ldap
+. if defined(WITH_OPENLDAP_VER)
+WANT_OPENLDAP_VER= ${WITH_OPENLDAP_VER}
+. endif
+POSTFIX_CCARGS+= -DHAS_LDAP -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_LDAP=-L${LOCALBASE}/lib -lldap -L${LOCALBASE}/lib -llber"
+_REQUIRE+= slapd
+. if ${PORT_OPTIONS:MLDAP_SASL}
+. if ! ${PORT_OPTIONS:MSASL}
+LIB_DEPENDS+= libsasl2.so:security/cyrus-sasl2
+. endif
+WANT_OPENLDAP_SASL= yes
+POSTFIX_CCARGS+= -I${LOCALBASE}/include/sasl -DUSE_LDAP_SASL
+. endif
+.endif
+
+.if ${PORT_OPTIONS:MCDB}
+DYN_EXT+= cdb
+POSTFIX_CCARGS+= -DHAS_CDB -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_CDB=-L${LOCALBASE}/lib -lcdb"
+.endif
+
+.if ${PORT_OPTIONS:MNIS}
+POSTFIX_CCARGS+= -DHAS_NIS
+_REQUIRE+= ypserv
+.endif
+
+.if ${PORT_OPTIONS:MTEST}
+BINTEST= qmqp-sink qmqp-source smtp-sink smtp-source
+MANTEST= qmqp-sink.1 qmqp-source.1 smtp-sink.1 smtp-source.1
+.endif
+
+.if ${PORT_OPTIONS:MLMDB}
+DYN_EXT+= lmdb
+POSTFIX_CCARGS+= -DHAS_LMDB -I${LOCALBASE}/include
+POSTFIX_DYN_AUXLIBS+= "AUXLIBS_LMDB=-L${LOCALBASE}/lib -llmdb"
+.endif
+
+# sed script for files in ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man
+REINPLACE= s!^PATH=.*!PATH=/bin:/sbin:/usr/bin:/usr/sbin:${PREFIX}/bin:${PREFIX}/sbin!;\
+ s!(_directory = )/usr/!\1${PREFIX}/!g;\
+ s!^(data_directory = /var/)lib/!\1db/!g;\
+ s!^\#(mynetworks_style = host)!\1!g;\
+ s!^(sendmail_path =)!\1 ${PREFIX}/sbin/sendmail!g;\
+ s!^(newaliases_path =)!\1 ${PREFIX}/bin/newaliases!g;\
+ s!^(mailq_path =)!\1 ${PREFIX}/bin/mailq!g;\
+ s!^(setgid_group =)!\1 maildrop!g;\
+ s!^(manpage_directory =)!\1 ${MANPREFIX}/man!g;\
+ s!^((html|readme)_directory =)!\1 ${READMEDIR}!g;\
+ \!^\#alias_database = dbm:/etc/mail/aliases$$!d;\
+ s!(:|= )/etc/postfix!\1$$config_directory!g;\
+ s!/etc/postfix!${ETCDIR}!g;\
+ s!^(sample_directory =)!\1 ${ETCDIR}!g;\
+ s!($config_directory/(access|aliases|canonical|generic|header_checks|relocated|transport|virtual):f:root:-:644:)p1!\1o!;
+
+pre-patch:
+.if ${PORT_OPTIONS:MSASL} && ! ${PORT_OPTIONS:MMYSQL} && exists(${LOCALBASE}/lib/libsasl2.a)
+ @if /usr/bin/nm ${LOCALBASE}/lib/libsasl2.a | ${GREP} -wq "mysql_init"; then \
+ ${ECHO_MSG}; \
+ ${ECHO_MSG} "Your SASL library it's compiled with MYSQL"; \
+ ${ECHO_MSG} "If you use MYSQL in ${PORTNAME} consider CTRL+C and"; \
+ ${ECHO_MSG} "select MYSQL OPTION in config menu."; \
+ ${ECHO_MSG} "# make clean config"; \
+ ${ECHO_MSG}; \
+ sleep 5; \
+ fi
+.endif
+
+ @${ECHO_CMD} '<HTML><BODY>See <A HREF="header_checks.5.html">header_checks.5.html</A></BODY></HTML>' \
+ > ${WRKSRC}/html/body_checks.5.html
+ @${REINPLACE_CMD} -E -e 's!^(#define DEF_SGID_GROUP[^"]+)"postdrop"$$!\1"maildrop"!' \
+ ${WRKSRC}/src/global/mail_params.h
+ @${FIND} -X ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man \
+ -type f -a ! \( -name INSTALL -o -name aliases \) | ${XARGS} \
+ ${REINPLACE_CMD} -i '' -E -e '${REINPLACE}'
+
+post-patch:
+.for f in ${HTML1}
+ @${ECHO_CMD} '$$html_directory/$f:f:root:-:644' \
+ >> ${WRKSRC}/conf/postfix-files
+.endfor
+ @${ECHO_CMD} '$$manpage_directory/man1/posttls-finger.1:f:root:-:644' \
+ >> ${WRKSRC}/conf/postfix-files
+ @${ECHO_CMD} '$$command_directory/posttls-finger:f:root:-:755' \
+ >> ${WRKSRC}/conf/postfix-files
+
+do-configure:
+ (cd ${WRKSRC} && ${MAKE} -f Makefile.init makefiles \
+ ${MAKEFILEFLAGS} CCARGS="${POSTFIX_CCARGS}" \
+ shared=yes shlib_directory=${SHLIB_DIRECTORY} \
+ dynamicmaps=yes \
+ ${POSTFIX_DYN_AUXLIBS} \
+ AUXLIBS="${POSTFIX_AUXLIBS}" && \
+ ${ECHO_CMD} "all: default" >> Makefile)
+
+pre-install-INST_BASE-on:
+ ${MKDIR} ${STAGEDIR}/etc/rc.d
+
+do-install:
+ @(cd ${WRKSRC} && ${MAKE} non-interactive-package \
+ install_root=${STAGEDIR} tempdir=${WRKDIR} \
+ shlib_directory=${SHLIB_DIRECTORY} \
+ config_directory=${ETCDIR} \
+ command_directory=${PREFIX}/sbin \
+ daemon_directory=${DAEMONDIR} \
+ meta_directory=${META_DIRECTORY} \
+ html_directory=${READMEDIR} \
+ mailq_path=${PREFIX}/bin/mailq \
+ manpage_directory=${MANPREFIX}/man \
+ newaliases_path=${PREFIX}/bin/newaliases \
+ readme_directory=${READMEDIR} \
+ sendmail_path=${PREFIX}/sbin/sendmail )
+
+ ${INSTALL_SCRIPT} ${WRKSRC}/auxiliary/rmail/rmail ${STAGEDIR}${PREFIX}/bin/rmail
+ ${INSTALL_SCRIPT} ${WRKSRC}/auxiliary/qshape/qshape.pl ${STAGEDIR}${PREFIX}/bin/qshape
+ ${INSTALL_MAN} ${WRKSRC}/man/man1/qshape.1 ${STAGEDIR}${MANPREFIX}/man/man1
+
+# == do not overwrite existing config
+ ${MV} ${STAGEDIR}${ETCDIR}/main.cf ${STAGEDIR}${ETCDIR}/main.cf.sample
+ ${MV} ${STAGEDIR}${ETCDIR}/master.cf ${STAGEDIR}${ETCDIR}/master.cf.sample
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKDIR}/mailer.conf.postfix ${STAGEDIR}${DATADIR}
+
+# == chop dynamicmaps.cf entries into dedicated .cf files
+# for future sub-packages support
+.for f in ${DYN_EXT}
+# adjust dynamicmaps.cf
+ ${GREP} -e "^#" -e "^${f}" ${STAGEDIR}${META_DIRECTORY}/dynamicmaps.cf \
+ > ${STAGEDIR}${META_DIRECTORY}/dynamicmaps.cf.d/${f}.cf && \
+ ${SED} -i '' -e '/${f}/d' ${STAGEDIR}${META_DIRECTORY}/dynamicmaps.cf
+
+# adjust / generate postfix-files for dynamic modules
+ ${SED} -i '' -e '/postfix-${f}.so/d' ${STAGEDIR}${META_DIRECTORY}/postfix-files && \
+ ${PRINTF} '# Do not edit this file.\
+ \n$$shlib_directory/postfix-${f}.so:f:root:-:755\
+ \n$$meta_directory/postfix-files.d/${f}-files:f:root:-:644\
+ \n$$meta_directory/dynamicmaps.cf.d/${f}.cf:f:root:-:644\n' \
+ > ${STAGEDIR}${META_DIRECTORY}/postfix-files.d/${f}-files
+.endfor
+
+# Fix compressed man pages and strip executables
+ ${SED} -i '' -E -e "s|(man[158]/.*.[158]):|\1.gz:|g" ${STAGEDIR}${META_DIRECTORY}/postfix-files
+ -@${STRIP_CMD} ${STRIP_LIBEXEC:S|^|${STAGEDIR}${DAEMONDIR}/|}
+ -@${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/*
+ -@${STRIP_CMD} ${STAGEDIR}${SHLIB_DIRECTORY}/*.so
+
+do-install-TEST-on:
+ ${INSTALL_PROGRAM} ${BINTEST:S|^|${WRKSRC}/bin/|} ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_MAN} ${MANTEST:S|^|${WRKSRC}/man/man1/|} ${STAGEDIR}${MANPREFIX}/man/man1
+
+.include <bsd.port.mk>
diff --git a/mail/postfix35/distinfo b/mail/postfix35/distinfo
new file mode 100644
index 000000000000..4169fdd0d92e
--- /dev/null
+++ b/mail/postfix35/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1618155540
+SHA256 (postfix/postfix-3.5.10.tar.gz) = 5bb4d7d72d7512b58f3a31426dcbd394fd354e0a43de21da89466b057a0228f8
+SIZE (postfix/postfix-3.5.10.tar.gz) = 4621130
diff --git a/mail/postfix35/files/extra-patch-blacklistd b/mail/postfix35/files/extra-patch-blacklistd
new file mode 100644
index 000000000000..a9448d978c7d
--- /dev/null
+++ b/mail/postfix35/files/extra-patch-blacklistd
@@ -0,0 +1,69 @@
+# PR 225664: support blacklistd on FreeBSD >= 11.0
+#
+--- src/smtpd/Makefile.in.orig 2017-02-05 23:36:32 UTC
++++ src/smtpd/Makefile.in
+@@ -2,14 +2,14 @@ SHELL = /bin/sh
+ SRCS = smtpd.c smtpd_token.c smtpd_check.c smtpd_chat.c smtpd_state.c \
+ smtpd_peer.c smtpd_sasl_proto.c smtpd_sasl_glue.c smtpd_proxy.c \
+ smtpd_xforward.c smtpd_dsn_fix.c smtpd_milter.c smtpd_resolve.c \
+- smtpd_expand.c smtpd_haproxy.c
++ smtpd_expand.c smtpd_haproxy.c pfilter.c
+ OBJS = smtpd.o smtpd_token.o smtpd_check.o smtpd_chat.o smtpd_state.o \
+ smtpd_peer.o smtpd_sasl_proto.o smtpd_sasl_glue.o smtpd_proxy.o \
+ smtpd_xforward.o smtpd_dsn_fix.o smtpd_milter.o smtpd_resolve.o \
+- smtpd_expand.o smtpd_haproxy.o
++ smtpd_expand.o smtpd_haproxy.o pfilter.o
+ HDRS = smtpd_token.h smtpd_check.h smtpd_chat.h smtpd_sasl_proto.h \
+ smtpd_sasl_glue.h smtpd_proxy.h smtpd_dsn_fix.h smtpd_milter.h \
+- smtpd_resolve.h smtpd_expand.h
++ smtpd_resolve.h smtpd_expand.h pfilter.h
+ TESTSRC = smtpd_token_test.c
+ DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
+ CFLAGS = $(DEBUG) $(OPT) $(DEFS)
+--- src/smtpd/smtpd_sasl_glue.c.orig 2017-02-19 01:58:21 UTC
++++ src/smtpd/smtpd_sasl_glue.c
+@@ -147,6 +147,7 @@
+ #include "smtpd.h"
+ #include "smtpd_sasl_glue.h"
+ #include "smtpd_chat.h"
++#include "pfilter.h" /* for blacklistd(8) */
+
+ #ifdef USE_SASL_AUTH
+
+@@ -332,6 +333,10 @@ int smtpd_sasl_authenticate(SMTPD_ST
+ else
+ smtpd_chat_reply(state, "535 5.7.8 Error: authentication failed: %s",
+ STR(state->sasl_reply));
++
++
++ /* notify blacklistd of SASL authentication failure */
++ pfilter_notify(1, vstream_fileno(state->client));
+ return (-1);
+ }
+ /* RFC 4954 Section 6. */
+--- src/smtpd/pfilter.h.orig 2018-02-04 15:36:49 UTC
++++ src/smtpd/pfilter.h
+@@ -0,0 +1 @@
++void pfilter_notify(int, int);
+--- src/smtpd/pfilter.c.orig 2018-02-04 15:36:49 UTC
++++ src/smtpd/pfilter.c
+@@ -0,0 +1,19 @@
++#include "pfilter.h"
++#include <stdio.h> /* for NULL */
++#include <blacklist.h>
++
++static struct blacklist *blstate;
++
++void
++pfilter_notify(int a, int fd)
++{
++ if (blstate == NULL)
++ blstate = blacklist_open();
++ if (blstate == NULL)
++ return;
++ (void)blacklist_r(blstate, a, fd, "smtpd");
++ if (a == 0) {
++ blacklist_close(blstate);
++ blstate = NULL;
++ }
++}
diff --git a/mail/postfix35/files/mailer.conf.postfix.in b/mail/postfix35/files/mailer.conf.postfix.in
new file mode 100644
index 000000000000..08f2b2c00f35
--- /dev/null
+++ b/mail/postfix35/files/mailer.conf.postfix.in
@@ -0,0 +1,7 @@
+#
+# Execute the Postfix sendmail program, named %%PREFIX%%/sbin/sendmail
+#
+sendmail %%PREFIX%%/sbin/sendmail
+send-mail %%PREFIX%%/sbin/sendmail
+mailq %%PREFIX%%/sbin/sendmail
+newaliases %%PREFIX%%/sbin/sendmail
diff --git a/mail/postfix35/files/patch-makedefs b/mail/postfix35/files/patch-makedefs
new file mode 100644
index 000000000000..f688b8ab7338
--- /dev/null
+++ b/mail/postfix35/files/patch-makedefs
@@ -0,0 +1,45 @@
+--- makedefs.orig 2021-01-16 15:10:00 UTC
++++ makedefs
+@@ -298,6 +298,42 @@ case "$SYSTEM.$RELEASE" in
+ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
+ : ${PLUGIN_LD="${CC} -shared"}
+ ;;
++ FreeBSD.11*) SYSTYPE=FREEBSD11
++ : ${CC=cc}
++ : ${SHLIB_SUFFIX=.so}
++ : ${SHLIB_CFLAGS=-fPIC}
++ : ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
++ : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
++ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
++ : ${PLUGIN_LD="${CC} -shared"}
++ ;;
++ FreeBSD.12*) SYSTYPE=FREEBSD12
++ : ${CC=cc}
++ : ${SHLIB_SUFFIX=.so}
++ : ${SHLIB_CFLAGS=-fPIC}
++ : ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
++ : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
++ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
++ : ${PLUGIN_LD="${CC} -shared"}
++ ;;
++ FreeBSD.13*) SYSTYPE=FREEBSD13
++ : ${CC=cc}
++ : ${SHLIB_SUFFIX=.so}
++ : ${SHLIB_CFLAGS=-fPIC}
++ : ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
++ : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
++ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
++ : ${PLUGIN_LD="${CC} -shared"}
++ ;;
++ FreeBSD.14*) SYSTYPE=FREEBSD14
++ : ${CC=cc}
++ : ${SHLIB_SUFFIX=.so}
++ : ${SHLIB_CFLAGS=-fPIC}
++ : ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
++ : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
++ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
++ : ${PLUGIN_LD="${CC} -shared"}
++ ;;
+ DragonFly.*) SYSTYPE=DRAGONFLY
+ ;;
+ OpenBSD.2*) SYSTYPE=OPENBSD2
diff --git a/mail/postfix35/files/patch-src_posttls-finger_posttls-finger.c b/mail/postfix35/files/patch-src_posttls-finger_posttls-finger.c
new file mode 100644
index 000000000000..fdece6346ca5
--- /dev/null
+++ b/mail/postfix35/files/patch-src_posttls-finger_posttls-finger.c
@@ -0,0 +1,22 @@
+--- src/posttls-finger/posttls-finger.c.orig 2019-02-12 13:17:45 UTC
++++ src/posttls-finger/posttls-finger.c
+@@ -1673,7 +1673,8 @@ static int finger(STATE *state)
+ return (0);
+ }
+
+-#if defined(USE_TLS) && OPENSSL_VERSION_NUMBER < 0x10100000L
++#if defined(USE_TLS) && \
++ ( OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) )
+
+ /* ssl_cleanup - free memory allocated in the OpenSSL library */
+
+@@ -2156,7 +2157,8 @@ int main(int argc, char *argv[])
+ cleanup(&state);
+
+ /* OpenSSL 1.1.0 and later (de)initialization is implicit */
+-#if defined(USE_TLS) && OPENSSL_VERSION_NUMBER < 0x10100000L
++#if defined(USE_TLS) && \
++ ( OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) )
+ ssl_cleanup();
+ #endif
+
diff --git a/mail/postfix35/files/patch-src_tls_tls__certkey.c b/mail/postfix35/files/patch-src_tls_tls__certkey.c
new file mode 100644
index 000000000000..b34b8efd2be6
--- /dev/null
+++ b/mail/postfix35/files/patch-src_tls_tls__certkey.c
@@ -0,0 +1,11 @@
+--- src/tls/tls_certkey.c.orig 2019-03-07 23:57:10 UTC
++++ src/tls/tls_certkey.c
+@@ -144,7 +144,7 @@ static void init_pem_load_state(pem_load
+
+ /* use_chain - load cert, key and chain into ctx or ssl */
+
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL && !defined(LIBRESSL_VERSION_NUMBER)
+ static int use_chain(pem_load_state_t *st)
+ {
+ int ret;
diff --git a/mail/postfix35/files/patch-src_tls_tls__server.c b/mail/postfix35/files/patch-src_tls_tls__server.c
new file mode 100644
index 000000000000..92115aa16679
--- /dev/null
+++ b/mail/postfix35/files/patch-src_tls_tls__server.c
@@ -0,0 +1,12 @@
+--- src/tls/tls_server.c.orig 2019-02-18 23:03:54 UTC
++++ src/tls/tls_server.c
+@@ -518,7 +518,9 @@ TLS_APPL_STATE *tls_server_init(const TL
+ * ticket decryption callback already (since 2.11) asks OpenSSL to
+ * avoid issuing new tickets when the presented ticket is re-usable.
+ */
++#ifndef LIBRESSL_VERSION_NUMBER
+ SSL_CTX_set_num_tickets(server_ctx, 1);
++#endif
+ }
+ #endif
+ if (!ticketable)
diff --git a/mail/postfix35/files/patch-src_util_sys__defs.h b/mail/postfix35/files/patch-src_util_sys__defs.h
new file mode 100644
index 000000000000..a31dfd4c24d5
--- /dev/null
+++ b/mail/postfix35/files/patch-src_util_sys__defs.h
@@ -0,0 +1,12 @@
+--- src/util/sys_defs.h.orig 2019-10-13 15:32:18 UTC
++++ src/util/sys_defs.h
+@@ -30,7 +30,8 @@
+ #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
+ || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \
+ || defined(FREEBSD8) || defined(FREEBSD9) || defined(FREEBSD10) \
+- || defined(FREEBSD11) \
++ || defined(FREEBSD11) || defined(FREEBSD12) || defined(FREEBSD13) \
++ || defined(FREEBSD14) \
+ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \
+ || defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \
+ || defined(OPENBSD5) || defined(OPENBSD6) \
diff --git a/mail/postfix35/files/pkg-install.in b/mail/postfix35/files/pkg-install.in
new file mode 100644
index 000000000000..0b7e47cfe011
--- /dev/null
+++ b/mail/postfix35/files/pkg-install.in
@@ -0,0 +1,189 @@
+#!/bin/sh
+
+# If the POSTFIX_DEFAULT_MTA environment variable is set to YES, it
+# will make the port/package use defaults which make postfix replace
+# sendmail as much as possible.
+
+# allowed vars during package installation
+BATCH=${BATCH:=no}
+POSTFIX_DEFAULT_MTA=${POSTFIX_DEFAULT_MTA:=no}
+
+# fixed vars
+PREFIX="%%PREFIX%%"
+ETCDIR="%%ETCDIR%%"
+DAEMONDIR="%%DAEMONDIR%%"
+META_DIRECTORY="%%META_DIRECTORY%%"
+READMEDIR="%%READMEDIR%%"
+MC_TEMPLATE="%%DATADIR%%/mailer.conf.postfix"
+
+# FreeBSD <= 10.3
+MC_BASE="/etc/mail/mailer.conf"
+# FreeBSD >= 10.3 (and current)
+MC_LOCALBASE="%%LOCALBASE%%/etc/mail/mailer.conf"
+USE_LOCALBASE_MAILER_CONF="%%USE_LOCALBASE_MAILER_CONF%%"
+
+if [ "${POSTFIX_DEFAULT_MTA}" = "no" ]; then
+ DEFAULT_REPLACE_MAILERCONF=n
+else
+ DEFAULT_REPLACE_MAILERCONF=y
+fi
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -z "${PACKAGE_BUILDING}" -a "${BATCH}" = "no" ]; then
+ read -p "${question} [${default}]? " answer
+ fi
+ if [ -z "${answer}" ]; then
+ answer=${default}
+ fi
+ echo ${answer}
+}
+
+yesno() {
+ local question default answer
+
+ question=$1
+ default=$2
+ while :; do
+ answer=$(ask "${question}" "${default}")
+ case "${answer}" in
+ [Yy]*) return 0;;
+ [Nn]*) return 1;;
+ esac
+ echo "Please answer yes or no."
+ done
+}
+
+# ==============================================================================
+# Respect POSTFIX_DEFAULT_MTA, do not ask for confirmation!
+# (This helps tools like salt, ansible or puppet on new installations)
+# ==============================================================================
+install_choise(){
+ local mailerconf
+ mailerconf=$1
+
+ if [ "${DEFAULT_REPLACE_MAILERCONF}" = "y" ]; then
+ install_mailer_conf ${mailerconf}
+ elif [ "${DEFAULT_REPLACE_MAILERCONF}" = "n" -a -t 0 ]; then
+ if yesno "Would you like to activate Postfix in ${mailerconf}" ${DEFAULT_REPLACE_MAILERCONF:="n"}; then
+ install_mailer_conf ${mailerconf}
+ else
+ show_not_activated_msg ${mailerconf}
+ fi
+ else
+ show_not_activated_msg ${mailerconf}
+ fi
+}
+
+show_not_activated_msg() {
+ local mailerconf
+
+ mailerconf=$1
+ echo
+ echo "==============================================================="
+ echo "Postfix was *not* activated in ${mailerconf}! "
+ echo
+ echo "To finish installation run the following commands:"
+ echo
+ if [ "${USE_LOCALBASE_MAILER_CONF}" = "yes" ]; then
+ echo " mkdir -p %%LOCALBASE%%/etc/mail"
+ else
+ echo " mv -f ${mailerconf} ${mailerconf}.old"
+ fi
+ echo " install -m 0644 ${MC_TEMPLATE} ${mailerconf}"
+ echo "==============================================================="
+ echo
+}
+
+show_activated_msg() {
+ local mailerconf
+
+ mailerconf=$1
+ echo "==============================================================="
+ echo "Postfix already activated in ${mailerconf}"
+ echo "==============================================================="
+}
+
+cmp_mailer() {
+ local mailerconf
+
+ mailerconf=$1
+ cmp -s ${mailerconf} ${MC_TEMPLATE}
+ return $?
+}
+
+install_mailer_conf() {
+ local mailerconf
+
+ mailerconf=$1
+ echo "Activate Postfix in ${mailerconf}"
+ if [ "${USE_LOCALBASE_MAILER_CONF}" = "yes" ]; then
+ [ -d %%LOCALBASE%%/etc/mail ] || mkdir -p %%LOCALBASE%%/etc/mail
+ fi
+ [ -f ${mailerconf} ] && mv -f ${mailerconf} ${mailerconf}.old
+ install -m 644 ${MC_TEMPLATE} ${mailerconf}
+}
+
+# ==============================================================================
+# Run postfix reload
+# This is a candidate for a dedicated pkg-post-upgrade script, but it seems
+# this not fully implemented in pkg :(see upstream PR 941)
+# ==============================================================================
+try_reload(){
+ ${PREFIX}/sbin/postfix status 2>/dev/null
+if [ $? -eq 0 ]; then
+ ${PREFIX}/sbin/postfix reload
+else
+ echo "postfix not running"
+fi
+}
+
+# ==============================================================================
+# Run postfix post-install to fix permissions and new config values
+# ==============================================================================
+if [ "$2" = "POST-INSTALL" ]; then
+ /bin/sh ${DAEMONDIR}/post-install tempdir=/tmp \
+ daemon_directory=${DAEMONDIR} \
+ meta_directory=${META_DIRECTORY} \
+ html_directory=${READMEDIR} \
+ readme_directory=${READMEDIR} \
+ upgrade-package
+fi
+
+# ==============================================================================
+# If FreeBSD <= 10.2 is deprecated check only LOCALBASE and remove BASE checks,
+# regardless if installed in BASE or LOCALBASE
+# Iff postfix is activated in BASE, also activate postfix in LOCALBASE!
+# ==============================================================================
+if [ "$2" = "POST-INSTALL" -a -z "${PACKAGE_BUILDING}" ]; then
+if [ -f "${MC_BASE}" ]; then
+ if [ "${USE_LOCALBASE_MAILER_CONF}" = "yes" ]; then
+ cmp_mailer ${MC_BASE}
+ if [ $? -eq 0 ]; then
+ show_activated_msg ${MC_BASE}
+ cmp_mailer ${MC_LOCALBASE} || install_mailer_conf ${MC_LOCALBASE}
+ try_reload
+ else
+ cmp_mailer ${MC_LOCALBASE} || install_choise ${MC_LOCALBASE}
+ fi
+ else
+ cmp_mailer ${MC_BASE}
+ if [ $? -ne 0 ]; then
+ install_choise ${MC_BASE}
+ else
+ show_activated_msg ${MC_BASE}
+ try_reload
+ fi
+ fi
+
+else
+ if [ "${USE_LOCALBASE_MAILER_CONF}" = "yes" ]; then
+ show_not_activated_msg ${MC_LOCALBASE}
+ else
+ show_not_activated_msg ${MC_BASE}
+ fi
+fi # -f "${MC_BASE}"
+fi # "$2" = "POST-INSTALL" -a -z "${PACKAGE_BUILDING}"
diff --git a/mail/postfix35/files/pkg-message.in b/mail/postfix35/files/pkg-message.in
new file mode 100644
index 000000000000..44a62a9e6f4e
--- /dev/null
+++ b/mail/postfix35/files/pkg-message.in
@@ -0,0 +1,44 @@
+[
+{
+ type: install
+ message: <<EOM
+To use postfix instead of sendmail:
+ - clear sendmail queue and stop the sendmail daemons
+
+Run the following commands to enable postfix during startup:
+ - sysrc postfix_enable="YES"
+ - sysrc sendmail_enable="NONE"
+
+If postfix is *not* already activated in %%MC_PREFIX%%/etc/mail/mailer.conf
+ - mv %%MC_PREFIX%%/etc/mail/mailer.conf %%MC_PREFIX%%/etc/mail/mailer.conf.old
+ - install -m 0644 %%DATADIR%%/mailer.conf.postfix %%MC_PREFIX%%/etc/mail/mailer.conf
+
+Disable sendmail(8) specific tasks,
+add the following lines to /etc/periodic.conf(.local):
+ daily_clean_hoststat_enable="NO"
+ daily_status_mail_rejects_enable="NO"
+ daily_status_include_submit_mailq="NO"
+ daily_submit_queuerun="NO"
+
+If you are using SASL, you need to make sure that postfix has access to read
+the sasldb file. This is accomplished by adding postfix to group mail and
+making the %%PREFIX%%/etc/sasldb* file(s) readable by group mail (this should
+be the default for new installs).
+EOM
+}
+{
+ type: upgrade
+ message: <<EOM
+If you are upgrading from prior postfix version, please see the README
+files for recommended changes to your configuration and additional
+http://www.postfix.org/COMPATIBILITY_README.html
+EOM
+}
+{
+ type: remove
+ message: <<EOM
+If you remove postfix permanent, adjust / remove the the following file:
+ - %%MC_PREFIX%%/etc/mail/mailer.conf
+EOM
+}
+]
diff --git a/mail/postfix35/files/postfix.in b/mail/postfix35/files/postfix.in
new file mode 100644
index 000000000000..597da191fd16
--- /dev/null
+++ b/mail/postfix35/files/postfix.in
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# PROVIDE: postfix mail
+# REQUIRE: %%REQUIRE%%
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable postfix:
+# postfix_enable (bool): Set it to "YES" to enable postfix.
+# Default is "NO".
+# postfix_pidfile (path): Set full path to master.pid.
+# Default is "/var/spool/postfix/pid/master.pid".
+# postfix_procname (command): Set command that start master. Used to verify if
+# postfix is running.
+# Default is "%%PREFIX%%/libexec/postfix/master".
+# postfix_flags (str): Flags passed to postfix-script on startup.
+# Default is "".
+#
+
+. /etc/rc.subr
+
+name="postfix"
+rcvar=postfix_enable
+
+load_rc_config $name
+
+: ${postfix_enable:="NO"}
+: ${postfix_pidfile:="/var/spool/postfix/pid/master.pid"}
+: ${postfix_procname:="%%PREFIX%%/libexec/postfix/master"}
+
+start_cmd=${name}_start
+stop_cmd=${name}_stop
+extra_commands="reload"
+reload_cmd="${name}_reload"
+
+pidfile=${postfix_pidfile}
+procname=${postfix_procname}
+
+postfix_start() {
+ %%PREFIX%%/sbin/postfix ${postfix_flags} start
+}
+
+postfix_stop() {
+ %%PREFIX%%/sbin/postfix ${postfix_flags} stop
+}
+
+postfix_reload() {
+ %%PREFIX%%/sbin/postfix ${postfix_flags} reload
+}
+
+run_rc_command "$1"
diff --git a/mail/postfix35/pkg-descr b/mail/postfix35/pkg-descr
new file mode 100644
index 000000000000..c4bc19eff3ae
--- /dev/null
+++ b/mail/postfix35/pkg-descr
@@ -0,0 +1,15 @@
+Postfix attempts to be fast, easy to administer, and secure, while at the same
+time being sendmail compatible enough to not upset existing users. Thus, the
+outside has a sendmail-ish flavor, but the inside is completely different.
+
+Some features:
+
+Connection cache for SMTP, DSN status notifications, IP version 6, Plug-in
+support for multiple SASL implementations (Cyrus, Dovecot), TLS encryption and
+authentication, Configurable status notification message text, Access control
+per client/sender/recipient/etc, Content filter (built-in, external before
+queue, external after queue), Berkeley DB database, LDAP database, MySQL
+database, PostgreSQL database, Maildir and mailbox format, Virtual domains,
+VERP envelope return addresses and others.
+
+WWW: http://www.postfix.org/
diff --git a/mail/postfix35/pkg-help b/mail/postfix35/pkg-help
new file mode 100644
index 000000000000..f28015a0b496
--- /dev/null
+++ b/mail/postfix35/pkg-help
@@ -0,0 +1,15 @@
+Readme SASL:
+
+Dovecot uses its own daemon process for authentication. Because there is no
+need to link extra libraries into Postfix, Dovecot SASL will be build into
+Postfix by default.
+
+Cyrus SASL is optional and will be the default if build with SASL=on
+
+To find out what SASL implementations are compiled into Postfix, use the
+following commands:
+
+ % postconf -a (SASL support in the SMTP server)
+ % postconf -A (SASL support in the SMTP+LMTP client)
+ % postconf smtpd_sasl_type (show default SASL)
+
diff --git a/mail/postfix35/pkg-plist b/mail/postfix35/pkg-plist
new file mode 100644
index 000000000000..09e304898f33
--- /dev/null
+++ b/mail/postfix35/pkg-plist
@@ -0,0 +1,190 @@
+bin/mailq
+bin/newaliases
+%%TEST%%bin/qmqp-sink
+%%TEST%%bin/qmqp-source
+bin/qshape
+bin/rmail
+%%TEST%%bin/smtp-sink
+%%TEST%%bin/smtp-source
+%%PFETC%%/LICENSE
+%%PFETC%%/TLS_LICENSE
+%%PFETC%%/bounce.cf.default
+%%PFETC%%/main.cf.default
+@sample %%PFETC%%/main.cf.sample
+@sample %%PFETC%%/master.cf.sample
+lib/postfix/libpostfix-dns.so
+lib/postfix/libpostfix-global.so
+lib/postfix/libpostfix-master.so
+lib/postfix/libpostfix-tls.so
+lib/postfix/libpostfix-util.so
+%%CDB%%lib/postfix/postfix-cdb.so
+%%LDAP%%lib/postfix/postfix-ldap.so
+%%LMDB%%lib/postfix/postfix-lmdb.so
+%%MYSQL%%lib/postfix/postfix-mysql.so
+%%PCRE%%lib/postfix/postfix-pcre.so
+%%PGSQL%%lib/postfix/postfix-pgsql.so
+%%SQLITE%%lib/postfix/postfix-sqlite.so
+libexec/postfix/anvil
+libexec/postfix/bounce
+libexec/postfix/cleanup
+libexec/postfix/discard
+libexec/postfix/dnsblog
+libexec/postfix/dynamicmaps.cf
+%%CDB%%libexec/postfix/dynamicmaps.cf.d/cdb.cf
+%%LDAP%%libexec/postfix/dynamicmaps.cf.d/ldap.cf
+%%LMDB%%libexec/postfix/dynamicmaps.cf.d/lmdb.cf
+%%MYSQL%%libexec/postfix/dynamicmaps.cf.d/mysql.cf
+%%PCRE%%libexec/postfix/dynamicmaps.cf.d/pcre.cf
+%%PGSQL%%libexec/postfix/dynamicmaps.cf.d/pgsql.cf
+%%SQLITE%%libexec/postfix/dynamicmaps.cf.d/sqlite.cf
+libexec/postfix/error
+libexec/postfix/flush
+libexec/postfix/lmtp
+libexec/postfix/local
+libexec/postfix/main.cf.proto
+libexec/postfix/makedefs.out
+libexec/postfix/master
+libexec/postfix/master.cf.proto
+libexec/postfix/nqmgr
+libexec/postfix/oqmgr
+libexec/postfix/pickup
+libexec/postfix/pipe
+libexec/postfix/post-install
+libexec/postfix/postfix-files
+%%CDB%%libexec/postfix/postfix-files.d/cdb-files
+%%LDAP%%libexec/postfix/postfix-files.d/ldap-files
+%%LMDB%%libexec/postfix/postfix-files.d/lmdb-files
+%%MYSQL%%libexec/postfix/postfix-files.d/mysql-files
+%%PCRE%%libexec/postfix/postfix-files.d/pcre-files
+%%PGSQL%%libexec/postfix/postfix-files.d/pgsql-files
+%%SQLITE%%libexec/postfix/postfix-files.d/sqlite-files
+libexec/postfix/postfix-script
+libexec/postfix/postfix-tls-script
+libexec/postfix/postfix-wrapper
+libexec/postfix/postlogd
+libexec/postfix/postmulti-script
+libexec/postfix/postscreen
+libexec/postfix/proxymap
+libexec/postfix/qmgr
+libexec/postfix/qmqpd
+libexec/postfix/scache
+libexec/postfix/showq
+libexec/postfix/smtp
+libexec/postfix/smtpd
+libexec/postfix/spawn
+libexec/postfix/tlsmgr
+libexec/postfix/tlsproxy
+libexec/postfix/trivial-rewrite
+libexec/postfix/verify
+libexec/postfix/virtual
+%%BMAN%%man/man1/mailq.1.gz
+%%BMAN%%man/man1/newaliases.1.gz
+%%BMAN%%man/man1/postalias.1.gz
+%%BMAN%%man/man1/postcat.1.gz
+%%BMAN%%man/man1/postconf.1.gz
+%%BMAN%%man/man1/postdrop.1.gz
+%%BMAN%%man/man1/postfix-tls.1.gz
+%%BMAN%%man/man1/postfix.1.gz
+%%BMAN%%man/man1/postkick.1.gz
+%%BMAN%%man/man1/postlock.1.gz
+%%BMAN%%man/man1/postlog.1.gz
+%%BMAN%%man/man1/postmap.1.gz
+%%BMAN%%man/man1/postmulti.1.gz
+%%BMAN%%man/man1/postqueue.1.gz
+%%BMAN%%man/man1/postsuper.1.gz
+%%BMAN%%man/man1/posttls-finger.1.gz
+%%TEST%%%%BMAN%%man/man1/qmqp-sink.1.gz
+%%TEST%%%%BMAN%%man/man1/qmqp-source.1.gz
+%%BMAN%%man/man1/qshape.1.gz
+%%BMAN%%man/man1/sendmail.1.gz
+%%TEST%%%%BMAN%%man/man1/smtp-sink.1.gz
+%%TEST%%%%BMAN%%man/man1/smtp-source.1.gz
+%%BMAN%%man/man5/access.5.gz
+%%BMAN%%man/man5/aliases.5.gz
+%%BMAN%%man/man5/body_checks.5.gz
+%%BMAN%%man/man5/bounce.5.gz
+%%BMAN%%man/man5/canonical.5.gz
+%%BMAN%%man/man5/cidr_table.5.gz
+%%BMAN%%man/man5/generic.5.gz
+%%BMAN%%man/man5/header_checks.5.gz
+%%BMAN%%man/man5/ldap_table.5.gz
+%%BMAN%%man/man5/lmdb_table.5.gz
+%%BMAN%%man/man5/master.5.gz
+%%BMAN%%man/man5/memcache_table.5.gz
+%%BMAN%%man/man5/mysql_table.5.gz
+%%BMAN%%man/man5/nisplus_table.5.gz
+%%BMAN%%man/man5/pcre_table.5.gz
+%%BMAN%%man/man5/pgsql_table.5.gz
+%%BMAN%%man/man5/postconf.5.gz
+%%BMAN%%man/man5/postfix-wrapper.5.gz
+%%BMAN%%man/man5/regexp_table.5.gz
+%%BMAN%%man/man5/relocated.5.gz
+%%BMAN%%man/man5/socketmap_table.5.gz
+%%BMAN%%man/man5/sqlite_table.5.gz
+%%BMAN%%man/man5/tcp_table.5.gz
+%%BMAN%%man/man5/transport.5.gz
+%%BMAN%%man/man5/virtual.5.gz
+%%BMAN%%man/man8/anvil.8.gz
+%%BMAN%%man/man8/bounce.8.gz
+%%BMAN%%man/man8/cleanup.8.gz
+%%BMAN%%man/man8/defer.8.gz
+%%BMAN%%man/man8/discard.8.gz
+%%BMAN%%man/man8/dnsblog.8.gz
+%%BMAN%%man/man8/error.8.gz
+%%BMAN%%man/man8/flush.8.gz
+%%BMAN%%man/man8/lmtp.8.gz
+%%BMAN%%man/man8/local.8.gz
+%%BMAN%%man/man8/master.8.gz
+%%BMAN%%man/man8/oqmgr.8.gz
+%%BMAN%%man/man8/pickup.8.gz
+%%BMAN%%man/man8/pipe.8.gz
+%%BMAN%%man/man8/postlogd.8.gz
+%%BMAN%%man/man8/postscreen.8.gz
+%%BMAN%%man/man8/proxymap.8.gz
+%%BMAN%%man/man8/qmgr.8.gz
+%%BMAN%%man/man8/qmqpd.8.gz
+%%BMAN%%man/man8/scache.8.gz
+%%BMAN%%man/man8/showq.8.gz
+%%BMAN%%man/man8/smtp.8.gz
+%%BMAN%%man/man8/smtpd.8.gz
+%%BMAN%%man/man8/spawn.8.gz
+%%BMAN%%man/man8/tlsmgr.8.gz
+%%BMAN%%man/man8/tlsproxy.8.gz
+%%BMAN%%man/man8/trace.8.gz
+%%BMAN%%man/man8/trivial-rewrite.8.gz
+%%BMAN%%man/man8/verify.8.gz
+%%BMAN%%man/man8/virtual.8.gz
+sbin/postalias
+sbin/postcat
+sbin/postconf
+@(,maildrop,2755) sbin/postdrop
+sbin/postfix
+sbin/postkick
+sbin/postlock
+sbin/postlog
+sbin/postmap
+sbin/postmulti
+@(,maildrop,2755) sbin/postqueue
+sbin/postsuper
+sbin/posttls-finger
+sbin/sendmail
+%%DATADIR%%/mailer.conf.postfix
+@dir libexec/postfix/dynamicmaps.cf.d
+@dir libexec/postfix/postfix-files.d
+@dir %%PFETC%%
+@dir(postfix,,700) /var/db/postfix
+@dir(postfix,,700) /var/spool/postfix/active
+@dir(postfix,,700) /var/spool/postfix/bounce
+@dir(postfix,,700) /var/spool/postfix/corrupt
+@dir(postfix,,700) /var/spool/postfix/defer
+@dir(postfix,,700) /var/spool/postfix/deferred
+@dir(postfix,,700) /var/spool/postfix/flush
+@dir(postfix,,700) /var/spool/postfix/hold
+@dir(postfix,,700) /var/spool/postfix/incoming
+@dir(postfix,maildrop,730) /var/spool/postfix/maildrop
+@dir(,postfix,755) /var/spool/postfix/pid
+@dir(postfix,,700) /var/spool/postfix/private
+@dir(postfix,maildrop,710) /var/spool/postfix/public
+@dir(postfix,,700) /var/spool/postfix/saved
+@dir(postfix,,700) /var/spool/postfix/trace
+@dir(,,755) /var/spool/postfix