freebsd-ports/mail/mutt/Makefile
Dimitry Andric de5264ca78 mail/mutt: fix build with clang 15
During an exp-run for llvm 15 (see bug 265425), it turned out that
mail/mutt failed to build with clang (and lld) 15:

  --- init.o ---
  In file included from init.c:43:
  ./init.h:3166:37: error: incompatible integer to pointer conversion initializing 'void *' with an expression of type 'int' [-Wint-conversion]
    { "quote_empty",      DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
                                           ^~~~~~~~~~~~~
  ./init.h:3166:37: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    { "quote_empty",      DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
                                           ^~~~~~~~~~~~~
                                           {            }
  ./init.h:3166:52: error: incompatible integer to pointer conversion initializing 'void *' with an expression of type 'int' [-Wint-conversion]
    { "quote_empty",      DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
                                                          ^
  ./init.h:3166:52: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    { "quote_empty",      DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
                                                          ^

This is because the QUOTE_PATCH option is on by default, and that quote
patch does not properly initialize the union members for the MuttVars
variable.

PR:		268208
Approved by:	dereks@lifeofadishwasher.com (maintainer)
MFH:		2022Q4
2022-12-07 16:34:04 +01:00

231 lines
7.6 KiB
Makefile

PORTNAME= mutt
DISTVERSION= 2.2.9
CATEGORIES+= mail
MASTER_SITES= ftp://ftp.mutt.org/pub/mutt/ \
https://bitbucket.org/mutt/mutt/downloads/ \
http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv
DIST_SUBDIR= mutt
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
PATCH_SITES+= http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \
http://vc.org.ua/mutt/:vc
PATCH_DIST_STRIP= -p1
MAINTAINER= dereks@lifeofadishwasher.com
COMMENT= Small but powerful text based program for read/writing e-mail
WWW= http://www.mutt.org/
LICENSE= GPLv2+
RUN_DEPENDS= ${LOCALBASE}/etc/mime.types:misc/mime-support
USES= cpe perl5 shebangfix ssl
USE_PERL5= build
SHEBANG_FILES= contrib/smime_keys_test.pl doc/gen-map-doc smime_keys.pl
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-fcntl \
--enable-compressed \
--enable-external-dotlock \
--enable-imap \
--enable-pop \
--enable-sidebar \
--sysconfdir=${PREFIX}/etc \
--with-docdir=${DOCSDIR} \
--with-ssl=${OPENSSLBASE}
.if defined(MUTT_CONFIGURE_ARGS)
CONFIGURE_ARGS+= ${MUTT_CONFIGURE_ARGS}
.endif
CONFLICTS= ja-mutt ja-mutt-devel mutt-1.4* mutt-devel-lite mutt-lite \
zh-mutt-devel
INFO= ${PORTNAME}
OPTIONS_DEFINE= AUTOCRYPT DEBUG_LOGS DOCS EXAMPLES FLOCK GPGME \
GREETING_PATCH HTML ICONV IDN IFDEF_PATCH LOCALES_FIX \
MAILBOX_MANPAGES MAILDIR_MTIME_PATCH NLS QUOTE_PATCH \
REVERSE_REPLY_PATCH SMART_DATE SMIME SMTP URLVIEW
OPTIONS_DEFAULT= AUTOCRYPT DEBUG_LOGS GPGME GSSAPI_NONE HCACHE_LMDB HTML \
ICONV IDN IFDEF_PATCH LOCALES_FIX MAILBOX_MANPAGES \
MAILDIR_MTIME_PATCH NCURSES NLS QUOTE_PATCH \
REVERSE_REPLY_PATCH SASL_CYRUS SMART_DATE SMIME SMTP \
URLVIEW
OPTIONS_SINGLE= GSSAPI HCACHE SASL SCREEN
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
OPTIONS_SINGLE_HCACHE= HCACHE_BDB HCACHE_GDBM HCACHE_KYOTOCABINET HCACHE_LMDB \
HCACHE_NONE HCACHE_QDBM HCACHE_TOKYOCABINET
OPTIONS_SINGLE_SASL= SASL_CYRUS SASL_GSASL SASL_NONE
OPTIONS_SINGLE_SCREEN= NCURSES SLANG
OPTIONS_SUB= yes
AUTOCRYPT_DESC= Convenient End-to-End Encryption
DEBUG_LOGS_DESC= Debugging capabilities
FLOCK_DESC= flock() usage
GPGME_DESC= Gpgme interface
GREETING_PATCH_DESC= Greeting support
HCACHE_BDB_DESC= Use Berkeley DB (BDB) (AGPLv3)
HCACHE_DESC= Header Cache support
HCACHE_GDBM_DESC= Use GDBM
HCACHE_KYOTOCABINET_DESC= Use Kyoto Cabinet
HCACHE_LMDB_DESC= Use LMDB
HCACHE_NONE_DESC= Disable Header Cache
HCACHE_QDBM_DESC= Use QDBM
HCACHE_TOKYOCABINET_DESC= Use Tokyo Cabinet
HTML_DESC= HTML documentation
IDN_DESC= International Domain Names (implies ICONV)
IFDEF_PATCH_DESC= ifdef feature
LOCALES_FIX_DESC= Locales fix
MAILBOX_MANPAGES_DESC= Install mbox.5/mmdf.5 manpages
MAILDIR_MTIME_PATCH_DESC= Maildir mtime patch
NCURSES_DESC= Ncurses support
NLS_DESC= Native language support (implies ICONV)
QUOTE_PATCH_DESC= Extended quoting
REVERSE_REPLY_PATCH_DESC= Reverse_reply
SASL_CYRUS_DESC= Cyrus SASL Authentication
SASL_GSASL_DESC= GNU SASL Authentication
SASL_NONE_DESC= Disable SASL Authentication
SLANG_DESC= SLANG support
SMART_DATE_DESC= Dynamic date formatting with "%@"
SMIME_DESC= SMIME email check option patch
SMTP_DESC= SMTP relay support
URLVIEW_DESC= Use urlview for the URL selector menu
AUTOCRYPT_IMPLIES= GPGME IDN
AUTOCRYPT_BUILD_DEPENDS= ${AUTOCRYPT_DEPENDS}
AUTOCRYPT_RUN_DEPENDS= ${AUTOCRYPT_DEPENDS}
AUTOCRYPT_USES= sqlite:3
AUTOCRYPT_CONFIGURE_ENABLE= autocrypt
AUTOCRYPT_CONFIGURE_WITH= sqlite3=${LOCALBASE}
AUTOCRYPT_DEPENDS= gnupg>=2.1:security/gnupg \
gpgme>=1.8:security/gpgme
DEBUG_LOGS_CONFIGURE_ON= --enable-debug
DOCS_BUILD_DEPENDS= lynx:www/lynx
DOCS_CONFIGURE_OFF= --disable-doc
FLOCK_CONFIGURE_ENABLE= flock
GPGME_LIB_DEPENDS+= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme
GPGME_CONFIGURE_ENABLE= gpgme
GREETING_PATCH_PATCHFILES= mutt-${GREETING_PATCH_VERSION}.vc.greeting:vc
# Handle GSSAPI from various places
GSSAPI_BASE_USES= gssapi
GSSAPI_BASE_CONFIGURE_ON= ${GSSAPI_CONFIGURE_ARGS} \
--with-gss=${GSSAPIBASEDIR}
GSSAPI_HEIMDAL_USES= gssapi:heimdal
GSSAPI_HEIMDAL_CONFIGURE_ON= ${GSSAPI_CONFIGURE_ARGS} \
--with-gss=${GSSAPIBASEDIR}
GSSAPI_MIT_USES= gssapi:mit
GSSAPI_MIT_CONFIGURE_ON= ${GSSAPI_CONFIGURE_ARGS} \
--with-gss=${GSSAPIBASEDIR}
GSSAPI_NONE_CONFIGURE_ON= --without-gss
HCACHE_BDB_USES= bdb:18
HCACHE_BDB_CONFIGURE_WITH= bdb=${LOCALBASE}
HCACHE_BDB_VARS= CFLAGS+=-I${BDB_INCLUDE_DIR} \
LDFLAGS+=-L${BDB_LIB_DIR} \
LICENSE=AGPLv3
HCACHE_GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
HCACHE_GDBM_CONFIGURE_WITH= gdbm=${LOCALBASE}
HCACHE_KYOTOCABINET_LIB_DEPENDS= libkyotocabinet.so:databases/kyotocabinet
HCACHE_KYOTOCABINET_CONFIGURE_WITH= kyotocabinet=${LOCALBASE}
HCACHE_LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
HCACHE_LMDB_CONFIGURE_WITH= lmdb=${LOCALBASE}
HCACHE_NONE_CONFIGURE_ON= --disable-hcache
HCACHE_NONE_CONFIGURE_OFF= --enable-hcache
HCACHE_QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm
HCACHE_QDBM_CONFIGURE_WITH= qdbm=${LOCALBASE}
HCACHE_TOKYOCABINET_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet
HCACHE_TOKYOCABINET_CONFIGURE_WITH= tokyocabinet=${LOCALBASE}
ICONV_USES= iconv:translit
ICONV_CONFIGURE_ON= ${ICONV_CONFIGURE_ARG}
ICONV_CONFIGURE_OFF= --disable-iconv
IDN_IMPLIES= ICONV
IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 \
libunistring.so:devel/libunistring
IDN_CONFIGURE_WITH= idn2=${LOCALBASE}
IFDEF_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ifdef
LOCALES_FIX_CONFIGURE_ON= --enable-locales-fix
MAILDIR_MTIME_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-maildir-mtime
NCURSES_USES= ncurses
NLS_IMPLIES= ICONV
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
QUOTE_PATCH_PATCHFILES= patch-${VVV_PATCH_VERSION}.vvv.initials.xz:vvv \
mutt-${GREETING_PATCH_VERSION}.vvv.quote:vc
QUOTE_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-quote
REVERSE_REPLY_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-reverse_reply
SASL_CYRUS_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
SASL_CYRUS_CONFIGURE_WITH= sasl=${LOCALBASE}
SASL_GSASL_LIB_DEPENDS= libgsasl.so:security/libgsasl
SASL_GSASL_CONFIGURE_WITH= gsasl=${LOCALBASE}
# Handle ncurses/ncurses-port/slang
SLANG_LIB_DEPENDS= libslang.so:devel/libslang2
SLANG_CONFIGURE_ON= --with-slang=${LOCALBASE}
SLANG_VARS= PKGMESSAGE=${FILESDIR}/pkg-message.slang
SMART_DATE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-smartdate
SMIME_EXTRA_PATCHES= ${PATCHDIR}/extra-smime-sender
SMTP_CONFIGURE_ENABLE= smtp
URLVIEW_RUN_DEPENDS= urlview:textproc/urlview
.ifnmake portclippy
.ifmake makesum # for optional distfiles patchfiles
OPTIONS_OVERRIDE= ${OPTIONS_DEFAULT} ${OPTIONS_DEFINE}
.MAKEOVERRIDES+= OPTIONS_OVERRIDE
.endif
.endif
.include <bsd.port.options.mk>
VVV_PATCH_VERSION= 1.13.0
GREETING_PATCH_VERSION= 2.2.0
post-install:
${INSTALL_MAN} ${FILESDIR}/mailcap.5 ${STAGEDIR}${MANPREFIX}/man/man5
pre-configure::
# Stop make from setgid mutt_dotlock
@${REINPLACE_CMD} \
-e '/if test.*mutt_dotlock.*DOTLOCK_GROUP/s/if/if ${FALSE} \&\&/' \
${WRKSRC}/Makefile.in
# Base FreeBSD krb5-config --version returns "FreeBSD heimdal"
@${REINPLACE_CMD} -e 's,?eimdal\*),?eimdal*|\"FreeBSD heimdal\"*),' \
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
# Install contrib samples to ${EXAMPLESDIR}
@${REINPLACE_CMD} -e 's#$$(docdir)/samples#${EXAMPLESDIR}#g' \
${WRKSRC}/contrib/Makefile.in
# Undo some dist. installed files
post-stage::
@${MV} ${STAGEDIR}/${LOCALBASE}/etc/Muttrc.dist \
${STAGEDIR}/${LOCALBASE}/etc/Muttrc.sample
@${RM} ${STAGEDIR}/${LOCALBASE}/etc/mime.types*
.include <bsd.port.mk>