[BACK]Return to Makefile.common CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / mail / postfix

File: [cvs.NetBSD.org] / pkgsrc / mail / postfix / Makefile.common (download)

Revision 1.43, Sat Jan 28 09:28:30 2023 UTC (14 months ago) by taca
Branch: MAIN
CVS Tags: pkgsrc-2023Q1-base, pkgsrc-2023Q1
Changes since 1.42: +2 -2 lines

mail/postfix: update to 3.7.4

Postfix 3.7.4 (2023-01-22)

  * Workaround: with OpenSSL 3 and later always turn on
    SSL_OP_IGNORE_UNEXPECTED_EOF, to avoid warning messages and missed
    opportunities for TLS session reuse. This is safe because the SMTP
    protocol implements application-level framing, and is therefore not
    affected by TLS truncation attacks. Fix by Viktor Dukhovni.

  * Workaround: OpenSSL 3.x EVP_get_digestbyname() can return
    lazily-bound handles for digest implementations. In sufficiently
    hostile configurations, Postfix could mistakenly believe that a digest
    algorithm is available, and fail when it is not. A similar workaround
    may be needed for EVP_get_cipherbyname(). Fix by Viktor Dukhovni.

  * Bugfix (bug introduced in Postfix 2.11): the checkok() macro in
    tls/tls_fprint.c evaluated its argument unconditionally; it should
    evaluate the argument only if there was no prior error. Found during
    code review.

  * Bugfix (bug introduced in Postfix 2.8): postscreen died with a
    segmentation violation when postscreen_dnsbl_threshold < 1. It
    should reject such input with a fatal error instead. Discovered by
    Benny Pedersen.

  * Bitrot: fixes for linker warnings from newer Darwin (MacOS)
    versions. Viktor Dukhovni.

  * Portability: Linux 6 support.

  * Added missing documentation that cidr:, pcre: and regexp: tables
    support inline specification only in Postfix 3.7 and later.

# $NetBSD: Makefile.common,v 1.43 2023/01/28 09:28:30 taca Exp $
# used by mail/postfix/Makefile
# used by mail/postfix/Makefile.module

DISTNAME=	postfix-3.7.4
CATEGORIES=	mail
MASTER_SITES=	ftp://ftp.porcupine.org/mirrors/postfix-release/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
LDFLAGS.Darwin+=	-headerpad_max_install_names

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"