git: d356121270d7 - main - mail/postfix{,-ldap-sasl,-sasl}: Flavorize

From: Yasuhiro Kimura <yasu_at_FreeBSD.org>
Date: Thu, 28 Oct 2021 00:07:22 UTC
The branch main has been updated by yasu:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d356121270d7df92d8b863ad80b9874db59cd25e

commit d356121270d7df92d8b863ad80b9874db59cd25e
Author:     Yasuhiro Kimura <yasu@FreeBSD.org>
AuthorDate: 2021-05-05 17:19:57 +0000
Commit:     Yasuhiro Kimura <yasu@FreeBSD.org>
CommitDate: 2021-10-28 00:05:42 +0000

    mail/postfix{,-ldap-sasl,-sasl}: Flavorize
    
    * Add entries for slave ports to MOVED
    * Pet portlint and portclippy
    * Reformat Makefile with portfmt
    
    PR:             255641
    Approved by:    maintainer timeout (> 2 months)
    Differential Revision:  https://reviews.freebsd.org/D32361
---
 MOVED                           |   2 +
 mail/Makefile                   |   2 -
 mail/postfix-ldap-sasl/Makefile |  13 ---
 mail/postfix-sasl/Makefile      |  12 ---
 mail/postfix/Makefile           | 193 ++++++++++++++++++++++------------------
 5 files changed, 106 insertions(+), 116 deletions(-)

diff --git a/MOVED b/MOVED
index e402c225a80a..596282571612 100644
--- a/MOVED
+++ b/MOVED
@@ -16584,3 +16584,5 @@ textproc/rubygem-compass-blueprint||2021-10-25|Depend on unsupported textproc/ru
 emulators/vpcs||2021-10-27|Has expired: Upstream unmaintained
 devel/google-gdata||2021-10-27|Has expired: Google is no longer using GoogleData APIs
 net/irrd-legacy|net/irrd|2021-10-27|Has expired: Use net/irrd
+mail/postfix-ldap-sasl|mail/postfix@ldap|2021-10-28|Converted to flavor
+mail/postfix-sasl|mail/postfix@sasl|2021-10-28|Converted to flavor
diff --git a/mail/Makefile b/mail/Makefile
index 01177db09141..6178c099db96 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -469,13 +469,11 @@
     SUBDIR += postfix
     SUBDIR += postfix-current
     SUBDIR += postfix-current-sasl
-    SUBDIR += postfix-ldap-sasl
     SUBDIR += postfix-logwatch
     SUBDIR += postfix-policyd-sf
     SUBDIR += postfix-policyd-spf-perl
     SUBDIR += postfix-policyd-weight
     SUBDIR += postfix-postfwd
-    SUBDIR += postfix-sasl
     SUBDIR += postfixadmin
     SUBDIR += postfixadmin-lite
     SUBDIR += postfixadmin33
diff --git a/mail/postfix-ldap-sasl/Makefile b/mail/postfix-ldap-sasl/Makefile
deleted file mode 100644
index cd772315e73a..000000000000
--- a/mail/postfix-ldap-sasl/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-PORTREVISION=	1
-PKGNAMESUFFIX?=	-ldap-sasl
-
-MAINTAINER=	otis@FreeBSD.org
-COMMENT=	Postfix with OpenLDAP and Cyrus SASL support
-
-MASTERDIR=	${.CURDIR}/../postfix
-
-OPTIONS_SLAVE=	LDAP LDAP_SASL SASL
-
-SASL_SLAVE=	yes
-
-.include "${MASTERDIR}/Makefile"
diff --git a/mail/postfix-sasl/Makefile b/mail/postfix-sasl/Makefile
deleted file mode 100644
index cc9b3cfc7ac9..000000000000
--- a/mail/postfix-sasl/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-PKGNAMESUFFIX?=	-sasl
-
-MAINTAINER=	otis@FreeBSD.org
-COMMENT=	Postfix with Cyrus SASL support
-
-MASTERDIR=	${.CURDIR}/../postfix
-
-OPTIONS_SLAVE=	SASL
-
-SASL_SLAVE=	yes
-
-.include "${MASTERDIR}/Makefile"
diff --git a/mail/postfix/Makefile b/mail/postfix/Makefile
index fd2a67c73209..dfd8d972c4da 100644
--- a/mail/postfix/Makefile
+++ b/mail/postfix/Makefile
@@ -15,66 +15,88 @@ MASTER_SITES:=	${MASTER_SITES:S|$|official/|}
 DIST_SUBDIR=	${PORTNAME}
 
 MAINTAINER=	otis@FreeBSD.org
-COMMENT?=	Secure alternative to widely-used Sendmail
+COMMENT=	Secure alternative to widely-used Sendmail ${COMMENT_${FLAVOR}}
 
 LICENSE=	EPL IPL10
 LICENSE_COMB=	multi
-LICENSE_FILE=	${WRKSRC}/LICENSE
 LICENSE_NAME_IPL10=	IBM PUBLIC LICENSE VERSION 1.0
+LICENSE_FILE=	${WRKSRC}/LICENSE
 LICENSE_PERMS_IPL10=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
 
-PORTSCOUT=	limit:^3\.6\.
-
-CONFLICTS_INSTALL?=	courier-0.* opensmtpd-[0-9]* sendmail-8.* sendmail+*-8.* \
-		postfix35-* postfix-current-*
+FLAVORS=			default ldap sasl
+default_CONFLICTS_INSTALL=	postfix-base-ldap-* postfix-base-sasl-* \
+				postfix-ldap-* postfix-sasl-*
+ldap_PKGNAMESUFFIX=		-ldap
+ldap_CONFLICTS_INSTALL=		postfix-[0-9]* postfix-base-[0-9]* \
+				postfix-base-sasl-* postfix-sasl-*
+sasl_PKGNAMESUFFIX=		-sasl
+sasl_CONFLICTS_INSTALL=		postfix-[0-9]* postfix-base-[0-9]* \
+				postfix-base-ldap-* postfix-ldap-*
 
-USERS=		postfix
-GROUPS=		mail maildrop postfix
-USES=		shebangfix cpe ssl
-SHEBANG_FILES=	auxiliary/qshape/qshape.pl
+COMMENT_ldap=	(with OpenLDAP and Cyrus SASL support)
+COMMENT_sasl=	(with Cyrus SASL support)
 
+USES=		cpe shebangfix
 USE_RC_SUBR=	postfix
 USE_SUBMAKE=	yes
+
+SHEBANG_FILES=	auxiliary/qshape/qshape.pl
+
 SCRIPTS_ENV+=	POSTFIX_DEFAULT_MTA="${POSTFIX_DEFAULT_MTA}"
 
-OPTIONS_SUB=	yes
-OPTIONS_DEFINE=	BDB BLACKLISTD CDB DOCS EAI INST_BASE LDAP \
-		LMDB MYSQL NIS PCRE PGSQL SASL SQLITE TEST TLS
+CONFLICTS_INSTALL=	courier-0.* opensmtpd-[0-9]* opensmtpd-devel-* \
+			postfix-current-* sendmail-[0-9]* sendmail-devel-*
 
-OPTIONS_RADIO=		RG1
-OPTIONS_RADIO_RG1=	SASLKRB5 SASLKMIT
+PORTSCOUT=	limit:^3\.6\.
+
+USERS=		postfix
+GROUPS=		mail maildrop postfix
+
+OPTIONS_DEFINE=		BDB BLACKLISTD CDB DOCS EAI INST_BASE LDAP LMDB MYSQL \
+			NIS PCRE PGSQL SASL SQLITE TEST TLS
 OPTIONS_DEFAULT?=	BLACKLISTD EAI PCRE TLS
+OPTIONS_RADIO=		RG1
+OPTIONS_RADIO_RG1=	SASLKMIT SASLKRB5
+.if ${FLAVOR:U} == ldap
+OPTIONS_SLAVE=		LDAP
+.elif ${FLAVOR:U} == sasl
+OPTIONS_SLAVE=		SASL
+.endif
+OPTIONS_SUB=		yes
 
-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
+.if !empty(FLAVOR) && ${FLAVOR:U} != default
+OPTIONS_FILE=	${PORT_DBDIR}/${OPTIONS_NAME}/${FLAVOR}-options
+.endif
 
 BLACKLISTD_DESC=	Enable blacklistd support
-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)
-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
+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)
+LMDB_DESC=		LMDB maps
+RG1_DESC=		Kerberos network authentication protocol type
+SASLKMIT_DESC=		If your SASL req. MIT Kerberos5, select this
+SASLKRB5_DESC=		If your SASL req. Kerberos5, select this
+SASL_DESC=		Cyrus SASL support (Dovecot SASL is always built in)
+TEST_DESC=		SMTP/LMTP test server and generator
+
+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
 
 .include <bsd.port.options.mk>
 
-HTML1=	body_checks.5.html bounce.5.html postfix-power.png \
-	scache.8.html tlsmgr.8.html
+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 \
@@ -88,12 +110,13 @@ MAKEFILEFLAGS+=	DEBUG=
 MAKEFILEFLAGS+=	pie=yes CC="${CC}" OPT="${CFLAGS}"
 
 .if ${SSL_DEFAULT} == libressl
-BROKEN=		error: OpenSSL-1.1.1 is the minimum supported version. \
-		LibreSSL is not supported
+BROKEN=		error: OpenSSL-1.1.1 is the minimum supported version. LibreSSL is not supported
 .endif
 
 .if ${PORT_OPTIONS:MINST_BASE}
-.if defined(SASL_SLAVE)
+.if ${FLAVOR:U} == ldap
+PKGNAMESUFFIX=	-base-ldap
+.elif ${FLAVOR:U} == sasl
 PKGNAMESUFFIX=	-base-sasl
 .else
 PKGNAMESUFFIX=	-base
@@ -109,9 +132,11 @@ PLIST_SUB+=	PFETC=${ETCDIR}
 
 # check if mailwrapper supports $LOCALBASE
 .if ${OPSYS} == FreeBSD
-SUB_LIST+=	USE_LOCALBASE_MAILER_CONF="yes" MC_PREFIX="${LOCALBASE}"
+SUB_LIST+=	MC_PREFIX="${LOCALBASE}" \
+		USE_LOCALBASE_MAILER_CONF="yes"
 .else
-SUB_LIST+=	USE_LOCALBASE_MAILER_CONF="no" MC_PREFIX=""
+SUB_LIST+=	MC_PREFIX="" \
+		USE_LOCALBASE_MAILER_CONF="no"
 .endif
 
 .if ${PORT_OPTIONS:MDOCS}
@@ -122,34 +147,22 @@ READMEDIR=	no
 .endif
 
 # dynamic direcory location
-DAEMONDIR=	${PREFIX}/libexec/postfix
-SHLIB_DIRECTORY=${PREFIX}/lib/postfix
+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
+META_DIRECTORY=		${DAEMONDIR}
+
+SUB_LIST+=	DAEMONDIR="${DAEMONDIR}" \
+		META_DIRECTORY="${META_DIRECTORY}" \
+		READMEDIR="${READMEDIR}" \
+		REQUIRE="${_REQUIRE}"
+SUB_FILES+=	mailer.conf.postfix pkg-install pkg-message
+
+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
+_REQUIRE=	LOGIN cleanvar dovecot
 
 # always build with Dovecot SASL support, Cyrus is optional
 # see Postfix HISTORY 20051222
@@ -172,18 +185,21 @@ POSTFIX_CCARGS+=	-DNO_PCRE
 .endif
 
 .if ${PORT_OPTIONS:MSASL}
-POSTFIX_CCARGS+=	-DUSE_CYRUS_SASL -I${LOCALBASE}/include -I${LOCALBASE}/include/sasl
+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
+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
+POSTFIX_AUXLIBS+=	-Wl,--rpath,$${KRB5_HOME:-${LOCALBASE}}/lib -lkrb5 \
+			-lcrypto -lcrypt -lcom_err
 .endif
 
 .if ${PORT_OPTIONS:MTLS}
@@ -203,7 +219,7 @@ POSTFIX_AUXLIBS+=	-L${BDB_LIB_DIR} -l${BDB_LIB_NAME}
 . if ${OPSYS} == FreeBSD
 POSTFIX_AUXLIBS+=	-lblacklist
 . else
-IGNORE=	blacklistd is only supported on FreeBSD
+IGNORE=		blacklistd is only supported on FreeBSD
 . endif
 .endif
 
@@ -232,8 +248,8 @@ DYN_EXT+=		ldap
 . if defined(WITH_OPENLDAP_VER)
 WANT_OPENLDAP_VER=	${WITH_OPENLDAP_VER}
 . endif
-POSTFIX_CCARGS+=	-DHAS_LDAP -I${LOCALBASE}/include
-POSTFIX_CCARGS+=	-I${LOCALBASE}/include/sasl -DUSE_LDAP_SASL
+POSTFIX_CCARGS+=	-DHAS_LDAP -I${LOCALBASE}/include \
+			-I${LOCALBASE}/include/sasl -DUSE_LDAP_SASL
 POSTFIX_DYN_AUXLIBS+=	"AUXLIBS_LDAP=-L${LOCALBASE}/lib -lldap -L${LOCALBASE}/lib -llber"
 _REQUIRE+=		slapd
 .endif
@@ -261,20 +277,19 @@ 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;\
+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: