1# New ports collection makefile for:	alpine
2# Date created:				December 21, 2007
3# Whom:					Lucas Holt <luke@midnightbsd.org>
4
5PORTNAME?=	alpine
6DISTVERSION=	2.26
7CATEGORIES?=	mail news
8MASTER_SITES=	https://repo.or.cz/alpine.git/snapshot/${GIT_COMMIT}${EXTRACT_SUFX}?dummy=/
9
10MAINTAINER=	ports@MidnightBSD.org
11COMMENT=	Mail and news client descended from Pine
12WWW?=		https://alpineapp.email/
13
14LICENSE=	Apache-2.0
15LICENSE_FILE=	${WRKSRC}/LICENSE
16
17USES+=			cpe ssl libtool ncurses gettext-runtime
18
19CPE_VENDOR=		alpine_project
20
21GNU_CONFIGURE=		yes
22MAKE_JOBS_UNSAFE=	yes
23CONFIGURE_ARGS+=	--with-debug-level=2 \
24			--enable-background-post \
25			--without-krb5 \
26			--without-tcl \
27			--with-system-pinerc=${PREFIX}/etc/alpine.conf \
28			--with-system-fixed-pinerc=${PREFIX}/etc/alpine.conf.fixed \
29			--with-password-prog=/usr/bin/passwd \
30			--with-system-mail-directory=/var/mail \
31			--with-ssl-dir=${OPENSSLDIR} \
32			--with-ssl-include-dir=${OPENSSLINC} \
33			--with-ssl-lib-dir=${OPENSSLLIB} \
34			--with-ssl-certs-dir=${OPENSSLDIR}/certs
35CONFIGURE_TARGET=	${ARCH}-portbld-freebsd10.4
36MAKE_ARGS+=		CC="${CC}" CXX="${CXX}" GCCCFLAGS="${CFLAGS}"
37# When you update please double check that the commit corresponds to
38# the actual version you've set in PORTVERSION.
39GIT_COMMIT=		9726c098a739edfdca6218bc5dee104c310957e9
40GIT_COMMIT_SHORT=	${GIT_COMMIT:C/^(.......).*/\1/}
41WRKSRC=			${WRKDIR}/alpine-${GIT_COMMIT_SHORT}
42
43OPTIONS_DEFINE=		ASPELL CONS25 DOCS IPV6 LDAP MAILDIR MOUSE NLS NTLM PASSFILE THREADS
44OPTIONS_DEFAULT=	ASPELL MOUSE THREADS
45.if defined(PICO_ALPINE_SLAVE)
46OPTIONS_EXCLUDE=	CONS25 IPV6 LDAP PASSFILE
47.endif
48
49CONS25_DESC=	Add a patch to support color for default console
50MAILDIR_DESC=	Add a patch to support maildir
51NTLM_DESC=	Support for Windows NT Lan Manager authentication
52PASSFILE_DESC=	Support for a stored password file
53
54# Option ASPELL
55ASPELL_CONFIGURE_ON=		--with-interactive-spellcheck=${LOCALBASE}/bin/aspell
56ASPELL_CONFIGURE_OFF=		--with-simple-spellcheck
57ASPELL_BUILD_DEPENDS=		aspell:textproc/aspell
58ASPELL_RUN_DEPENDS=		aspell:textproc/aspell
59
60# Option CONS25
61CONS25_EXTRA_PATCHES=		${FILESDIR}/cons25-alpine_keymenu.c
62
63# Option IPV6
64IPV6_CONFIGURE_WITH=		ipv6
65
66# Option LDAP
67LDAP_USE=			openldap=yes
68LDAP_CONFIGURE_WITH=		ldap
69LDAP_CFLAGS=			-I${LOCALBASE}/include
70LDAP_LDFLAGS=			-L${LOCALBASE}/lib
71
72# Option MAILDIR
73MAILDIR_PATCH_SITES=		https://alpineapp.email/alpine/patches/alpine-2.26/
74MAILDIR_PATCHFILES+=		maildir.patch.gz:-p1
75
76# Option MOUSE
77MOUSE_CONFIGURE_ENABLE=		mouse
78
79# Option NLS
80NLS_CONFIGURE_ENABLE=		nls
81
82# Option NTLM
83NTLM_CONFIGURE_WITH=		ntlm
84NTLM_LIB_DEPENDS=		libntlm.so:security/libntlm
85
86# Option PASSFILE
87PASSFILE_CONFIGURE_WITH=	passfile
88PASSFILE_CONFIGURE_ON=		--with-passfile=.alpine.pwd
89
90# Option THREADS
91THREADS_CONFIGURE_WITH=		pthread
92
93.if !defined(PICO_ALPINE_SLAVE)
94PORTDOCSbase=		LICENSE NOTICE README
95PORTDOCSdoc=		brochure.txt
96PORTDOCShtml=		tech-notes/background.html tech-notes/cmd-line.html \
97			tech-notes/config-notes.html tech-notes/config.html \
98			tech-notes/index.html tech-notes/installation.html \
99			tech-notes/introduction.html tech-notes/low-level.html \
100			tech-notes/tech-notes.txt
101PORTDOCS=		${PORTDOCSbase} ${PORTDOCSdoc} ${PORTDOCShtml}
102
103post-patch:
104	@${CP} ${WRKSRC}/imap/Makefile ${WRKSRC}/imap/Makefile.presed
105	@${SED}	-e "s#^\(all:.*\) bundled\$$#\1#" \
106	    ${WRKSRC}/imap/Makefile.presed > ${WRKSRC}/imap/Makefile
107	@${CP} ${WRKSRC}/pico/Makefile.in ${WRKSRC}/pico/Makefile.in.presed
108	@${SED} -e "s#^bin_PROGRAMS = pico.*#bin_PROGRAMS =#" \
109	    -e "s#\$$(pico_SOURCES) \$$(pilot_SOURCES)##" \
110	    ${WRKSRC}/pico/Makefile.in.presed > ${WRKSRC}/pico/Makefile.in
111	@${CP} ${WRKSRC}/Makefile.in ${WRKSRC}/Makefile.in.presed
112	@${SED}	-e "s#doc/man1/pico.1 doc/man1/pilot.1 ##" \
113	    ${WRKSRC}/Makefile.in.presed > ${WRKSRC}/Makefile.in
114	@${CP} ${WRKSRC}/imap/src/osdep/unix/Makefile \
115	    ${WRKSRC}/imap/src/osdep/unix/Makefile.presed
116	@${SED} -e "s#^LOCKPGM=.*#LOCKPGM= ${PREFIX}/libexec/mlock#" \
117	    ${WRKSRC}/imap/src/osdep/unix/Makefile.presed \
118	    > ${WRKSRC}/imap/src/osdep/unix/Makefile
119	@for i in ${WRKSRC}/README ${WRKSRC}/doc/man1/alpine.1 \
120	    ${WRKSRC}/doc/*.txt \
121	    ${WRKSRC}/doc/tech-notes/*.txt \
122	    ${WRKSRC}/doc/tech-notes/*.html \
123	    ${WRKSRC}/pith/pine.hlp ; do \
124		${CP} $$i $$i.presed ; \
125		${SED} -e "s:/usr/local/lib/:${PREFIX}/etc/:g" \
126		    -e "s:/usr/local/pine.conf:${PREFIX}/etc/pine.conf:g" \
127		    -e "s:pine\.conf:alpine.conf:g" \
128		    -e "s:/usr/local:${PREFIX}:g" \
129		    -e "s:@@PREFIX@@:${PREFIX}:g" \
130		    $$i.presed > $$i ; \
131	done
132
133post-install:
134	${PREFIX}/bin/alpine -conf > ${PREFIX}/etc/alpine.conf.sample
135
136post-install-DOCS-on:
137	${INSTALL} -d ${FAKE_DESTDIR}${DOCSDIR} ${FAKE_DESTDIR}${DOCSDIR}/tech-notes
138.for f in ${PORTDOCSbase}
139	${INSTALL_DATA} ${WRKSRC}/$f ${FAKE_DESTDIR}${DOCSDIR}
140.endfor
141.for f in ${PORTDOCSdoc}
142	${INSTALL_DATA} ${WRKSRC}/doc/$f ${FAKE_DESTDIR}${DOCSDIR}
143.endfor
144.for f in ${PORTDOCShtml}
145	${INSTALL_DATA} ${WRKSRC}/doc/$f ${FAKE_DESTDIR}${DOCSDIR}/tech-notes
146.endfor
147.endif # !defined(PICO_ALPINE_SLAVE)
148
149.include <bsd.port.mk>
150