aboutsummaryrefslogtreecommitdiff
path: root/mail/mutt/Makefile
blob: c17a10e92759f53902153dd3abb3c9ac9521359e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# Created by: Udo Schweigert

PORTNAME=	mutt
DISTVERSION=	2.2.3
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

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 SASL SMART_DATE SMIME SMTP URLVIEW
OPTIONS_DEFAULT=	AUTOCRYPT DEBUG_LOGS GPGME GSSAPI_NONE HCACHE_BDB HTML \
			ICONV IDN IFDEF_PATCH LOCALES_FIX MAILBOX_MANPAGES \
			MAILDIR_MTIME_PATCH NCURSES NLS QUOTE_PATCH \
			REVERSE_REPLY_PATCH SASL SMART_DATE SMIME SMTP URLVIEW

OPTIONS_SINGLE=		GSSAPI HCACHE SCREEN
OPTIONS_SINGLE_GSSAPI=	GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
OPTIONS_SINGLE_HCACHE=	HCACHE_BDB HCACHE_KYOTOCABINET HCACHE_NONE \
			HCACHE_TOKYOCABINET
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)
HCACHE_DESC=			Header Cache support
HCACHE_KYOTOCABINET_DESC=	Use Kyoto Cabinet
HCACHE_NONE_DESC=		Disable Header Cache
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_DESC=			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:42+
HCACHE_BDB_CONFIGURE_WITH=		bdb=${LOCALBASE}
HCACHE_BDB_VARS=			CFLAGS+=-I${BDB_INCLUDE_DIR} \
					LDFLAGS+=-L${BDB_LIB_DIR}
HCACHE_KYOTOCABINET_LIB_DEPENDS=	libkyotocabinet.so:databases/kyotocabinet
HCACHE_KYOTOCABINET_CONFIGURE_WITH=	kyotocabinet=${LOCALBASE}
HCACHE_NONE_CONFIGURE_ON=		--disable-hcache
HCACHE_NONE_CONFIGURE_OFF=		--enable-hcache
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

REVERSE_REPLY_PATCH_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-reverse_reply

SASL_LIB_DEPENDS=	libsasl2.so:security/cyrus-sasl2
SASL_CONFIGURE_ON=	--with-sasl=${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>