pkgsrc/mail/postfix/Makefile.common
triaxx a10bc1a847 postfix: Update to 3.5.9
upstream changes:
-----------------
This update improves the reporting of DNSSEC problems that may affect DANE
security. DNSSEC support may unavailable because of local configuration, libc
incompatibility, or other infrastructure issues. This was backported from
Postfix 3.6.

Background: DNSSEC validation is needed for Postfix DANE support; this ensures
that Postfix receives TLSA records with secure TLS server certificate info.
When DNSSEC validation is unavailable, mail deliveries using opportunistic DANE
(security level 'dane') will not be protected by server certificate info in
TLSA records, and mail deliveries using mandatory DANE (security level
'dane-only') will not be made at all.

This update introduces the following behavior: when a process requests DNSSEC
support (typically, for Postfix DANE support), the process may now do a runtime
test to determine if DNSSEC validation is available.

The new dnssec_probe parameter specifies a DNS query type (default: "ns") and
DNS query name (default: ".") that Postfix may use to determine whether DNSSEC
validation is available. Specify an empty value to disable this feature.

When dnssec_probe is enabled, a Postfix process will send a DNSSEC probe after
1) the process made a DNS query that requested DNSSEC validation, 2) the
process did not receive a DNSSEC validated response to this query or to an
earlier query, and 3) the process did not already send a DNSSEC probe.

When the DNSSEC probe has no response, or when the response is not DNSSEC
validated, Postfix logs a warning that DNSSEC validation may be unavailable.
Examples:

warning: DNSSEC validation may be unavailable
warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated
warning: reason: dnssec_probe 'ns:.' received no response: Server failure

With this update, the Postfix build system will no longer automatically disable
DNSSEC support when it determines that Postfix will use libc-musl. This removes
the earlier libc-musl workaround introduced with Postfix 3.2.15, 3.3.10,
3.4.12, and 3.5.2.
2021-01-21 16:37:59 +00:00

134 lines
4.6 KiB
Text

# $NetBSD: Makefile.common,v 1.32 2021/01/21 16:37:59 triaxx Exp $
# used by mail/postfix/Makefile
# used by mail/postfix/Makefile.module
DISTNAME= postfix-3.5.9
CATEGORIES= mail
MASTER_SITES= ftp://ftp.porcupine.org/mirrors/postfix-release/official/
MASTER_SITES+= http://mirrors.isc.org/pub/postfix/official/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.postfix.org/
# The postfix license has only very minor diffs from cpl-1.0.
LICENSE= cpl-1.0
#LICENSE= postfix-license
DISTINFO_FILE= ${PKGDIR}/../../mail/postfix/distinfo
PATCHDIR= ${PKGDIR}/../../mail/postfix/patches
CHECK_HEADERS_SKIP+= src/global/mail_params.h
.include "../../mk/bsd.prefs.mk"
POSTFIX_USER?= postfix
POSTFIX_GROUP?= postfix
MAILDROP_GROUP?= maildrop
# POSTFIX_QUEUE_DIR is the default queue directory for Postfix. This is
# merely a default, and may be changed by setting "queue_directory" in
# ${PKG_SYSCONFDIR}/main.cf.
#
POSTFIX_DATA_DIR?= ${VARBASE}/db/postfix
POSTFIX_QUEUE_DIR?= ${VARBASE}/spool/postfix
POSTFIX_QUEUE_SUBDIR= active bounce corrupt defer deferred flush hold \
incoming maildrop pid private public saved trace
BUILD_DEFS+= VARBASE POSTFIX_DATA_DIR POSTFIX_QUEUE_DIR
# CCARGS is a list of options to pass to the preprocessor/compiler.
# AUXLIBS is a list of options to pass to the linker.
CCARGS= #defined
AUXLIBS= ${LDFLAGS}
# Enable Dovecot SASL
CCARGS+= -DUSE_SASL_AUTH
# Enable Berkeley DB map type. BDB_LIBS is defined in mk/bdb.buildlink3.mk.
CCARGS+= -DHAS_DB
AUXLIBS+= ${BDB_LIBS}
# Disable modules by default
.for module in cdb ldap lmdb mysql pcre pgsql sqlite
CCARGS+= -DNO_${module:tu}
.endfor
# Set some default paths to override ${WRKSRC}/src/global/mail_params.h.
CCARGS+= -DDEF_COMMAND_DIR=\"${PREFIX}/sbin\"
CCARGS+= -DDEF_CONFIG_DIR=\"${PKG_SYSCONFDIR}\"
CCARGS+= -DDEF_DAEMON_DIR=\"${LIBEXECDIR}\"
CCARGS+= -DDEF_DATA_DIR=\"${POSTFIX_DATA_DIR}\"
CCARGS+= -DDEF_MAILQ_PATH=\"${PREFIX}/bin/mailq\"
CCARGS+= -DDEF_MANPAGE_DIR=\"${PREFIX}/${PKGMANDIR}\"
CCARGS+= -DDEF_META_DIR=\"${PREFIX}/${METADIR}\"
CCARGS+= -DDEF_NEWALIAS_PATH=\"${PREFIX}/bin/newaliases\"
CCARGS+= -DDEF_QUEUE_DIR=\"${POSTFIX_QUEUE_DIR}\"
CCARGS+= -DDEF_README_DIR=\"${DOCDIR}\"
CCARGS+= -DDEF_SAMPLE_DIR=\"${EXAMPLEDIR}\"
CCARGS+= -DDEF_SENDMAIL_PATH=\"${PREFIX}/sbin/sendmail\"
CCARGS+= -DDEF_SHLIB_DIR=\"${PREFIX}/${SHLIBDIR}\"
# Override those same default paths in the installed example main.cf.
SUBST_CLASSES+= postfix
SUBST_STAGE.postfix= post-configure
SUBST_FILES.postfix= conf/main.cf src/global/mail_params.h
SUBST_SED.postfix= \
-e 's|^\(data_directory\) =.*|\1 = ${POSTFIX_DATA_DIR}|'
SUBST_SED.postfix+= \
-e 's|^\(queue_directory\) =.*|\1 = ${POSTFIX_QUEUE_DIR}|'
SUBST_SED.postfix+= \
-e 's|^\(command_directory\) =.*|\1 = ${PREFIX}/sbin|'
SUBST_SED.postfix+= \
-e 's|^\(daemon_directory\) =.*|\1 = ${LIBEXECDIR}|'
SUBST_SED.postfix+= \
-e 's|^\(meta_directory\) =.*|\1 = ${PREFIX}/${METADIR}|'
SUBST_SED.postfix+= \
-e 's|^\(shlib_directory\) =.*|\1 = ${PREFIX}/${SHLIBDIR}|'
SUBST_SED.postfix+= \
-e 's|^\(sendmail_path\) =.*|\1 = ${PREFIX}/sbin/sendmail|'
SUBST_SED.postfix+= \
-e 's|^\(newaliases_path\) =.*|\1 = ${PREFIX}/bin/newaliases|'
SUBST_SED.postfix+= \
-e 's|^\(mailq_path\) =.*|\1 = ${PREFIX}/bin/mailq|'
SUBST_SED.postfix+= \
-e 's|^\(mail_owner\) =.*|\1 = ${POSTFIX_USER}|'
SUBST_SED.postfix+= \
-e 's|^\(setgid_group\) =.*|\1 = ${MAILDROP_GROUP}|'
SUBST_SED.postfix+= \
-e 's|^\(manpage_directory\) =.*|\1 = ${PREFIX}/${PKGMANDIR}|'
SUBST_SED.postfix+= \
-e 's|^\(sample_directory\) =.*|\1 = ${EXAMPLEDIR}|'
SUBST_SED.postfix+= \
-e 's|^\(readme_directory\) =.*|\1 = ${DOCDIR}|'
SUBST_SED.postfix+= \
-e '/^\#define DEF_MAIL_OWNER[ ]/s,postfix,${POSTFIX_USER},g'
SUBST_SED.postfix+= \
-e '/^\#define DEF_SGID_GROUP[ ]/s,postdrop,${MAILDROP_GROUP},g'
PKG_SYSCONFSUBDIR= postfix
LIBEXECDIR= ${PREFIX}/libexec/postfix
DOCDIR= ${PREFIX}/share/doc/postfix
EXAMPLEDIR= ${PREFIX}/share/examples/postfix
# Not prefixed so that we can use where relative path needed
# METADIR set for postfix-2.6.x compatibility
METADIR= libexec/postfix
SHLIBDIR= lib/postfix
BUILD_TARGET= # empty
MAKE_ENV+= CC=${CC:Q} OPT=${CFLAGS:Q}
MAKE_ENV+= AUXLIBS=${AUXLIBS:Q} CCARGS=${CCARGS:Q}
MAKE_ENV+= DEBUG= # empty
.if ${OPSYS} == "SunOS" && !exists(/usr/include/rpcsvc/nis_cache.h)
CCARGS+= -DNO_NISPLUS
.endif
CFLAGS.SunOS+= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
DESTDIR_INSTALLOPTIONS= -package install_root="${DESTDIR}"
do-configure:
cd ${WRKSRC} && \
env ${MAKE_ENV} ${MAKE} -f Makefile.init makefiles \
'CCARGS=${CCARGS}' 'AUXLIBS=${AUXLIBS}' \
shared=yes dynamicmaps=yes
.include "../../mk/bdb.buildlink3.mk"