update Sun Jan 17 06:37:00 PST 2010
[pkgsrc.git] / mail / cyrus-imapd / Makefile
1 # $NetBSD: Makefile,v 1.82 2010/01/17 12:02:23 wiz Exp $
2
3 DISTNAME=       cyrus-imapd-2.2.13p1
4 PKGREVISION=    1
5 CATEGORIES=     mail
6 MASTER_SITES=   ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ \
7                 ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/OLD-VERSIONS/imap/
8
9 MAINTAINER=     recht@NetBSD.org
10 HOMEPAGE=       http://cyrusimap.web.cmu.edu/imapd/
11 COMMENT=        Cyrus IMAP server
12
13 PKG_DESTDIR_SUPPORT=    user-destdir
14
15 MAKE_JOBS_SAFE=         no
16
17 USE_TOOLS+=             perl
18 USE_PKGLOCALEDIR=       yes
19 GNU_CONFIGURE=          yes
20 PERL5_CONFIGURE=        no
21 BDB_ACCEPTED=           db4 db3
22
23 .include "../../mk/bsd.prefs.mk"
24
25 # CYRUS_USER            username of the Cyrus administrator
26 # CYRUS_GROUP           group of the Cyrus administrator
27 #
28 CYRUS_USER?=            cyrus
29 CYRUS_GROUP?=           mail
30
31 PKG_GROUPS_VARS+=       CYRUS_GROUP
32 PKG_USERS_VARS+=        CYRUS_USER
33 FILES_SUBST+=           CYRUS_USER=${CYRUS_USER:Q}
34 FILES_SUBST+=           CYRUS_GROUP=${CYRUS_GROUP:Q}
35
36 CONFIGURE_ARGS+=        --sysconfdir=${PKG_SYSCONFDIR:Q}
37 CONFIGURE_ARGS+=        --with-cyrus-user=${CYRUS_USER:Q}
38 CONFIGURE_ARGS+=        --with-cyrus-group=${CYRUS_GROUP:Q}
39 CONFIGURE_ARGS+=        --with-cyrus-prefix=${PREFIX}/cyrus
40 CONFIGURE_ARGS+=        --with-statedir=${VARBASE}/run
41 CONFIGURE_ARGS+=        --with-openssl=${SSLBASE:Q}
42 CONFIGURE_ARGS+=        --with-sasl=${BUILDLINK_PREFIX.cyrus-sasl}
43 CONFIGURE_ARGS+=        --with-perl=${PERL5:Q}
44 CONFIGURE_ARGS+=        --with-libwrap=${BUILDLINK_PREFIX.tcp_wrappers}
45 CONFIGURE_ENV+=         ac_cv_lib_wrap_request_init=yes
46
47 CONFIGURE_ARGS+=        --enable-listext
48 CONFIGURE_ARGS+=        --enable-murder
49 CONFIGURE_ARGS+=        --enable-nntp
50 CONFIGURE_ARGS+=        --without-zephyr
51 CONFIGURE_ARGS+=        --without-ucdsnmp
52
53 PKG_OPTIONS_VAR=        PKG_OPTIONS.cyrus-imapd
54 PKG_SUPPORTED_OPTIONS=  gssapi kerberos kerberos4 ldap
55 .include "../../mk/bsd.options.mk"
56
57 .if !empty(PKG_OPTIONS:Mkerberos)
58 .  if empty(PKG_OPTIONS:Mgssapi)
59 PKG_OPTIONS+=   gssapi
60 .  endif
61 .endif
62
63 .if !empty(PKG_OPTIONS:Mkerberos4)
64 .  if exists(/usr/include/kerberosIV/krb.h)
65 CRYPTO+=                uses Kerberos encryption code
66 CONFIGURE_ARGS+=        --with-krb=/usr
67 .  endif
68 .elif !empty(PKG_OPTIONS:Mgssapi)
69 .  include "../../mk/krb5.buildlink3.mk"
70 CONFIGURE_ARGS+=        --enable-gssapi=${KRB5BASE:Q}
71 CONFIGURE_ARGS+=        --with-gss_impl=${GSSIMPL.${KRB5_TYPE}}
72 GSSIMPL.heimdal=        heimdal
73 GSSIMPL.mit-krb5=       mit
74 CONFIGURE_ENV+=         COMPILE_ET=${KRB5BASE}/bin/compile_et
75 COMERRBASE=             ${KRB5BASE}
76 .else
77 CONFIGURE_ARGS+=        --without-krb
78 CONFIGURE_ARGS+=        --disable-gssapi
79 .endif
80
81 PLIST_VARS+=            ldap
82 .if !empty(PKG_OPTIONS:Mldap)
83 CONFIGURE_ARGS+=        --with-ldap=${BUILDLINK_PREFIX.openldap-client}
84 PLIST.ldap=             yes
85 .  include "../../databases/openldap-client/buildlink3.mk"
86 .endif
87
88 .if exists(/usr/bin/compile_et)
89 COMERRBASE?=            /usr
90 .endif
91 .if defined(COMERRBASE)
92 .  if exists(${COMERRBASE}/include/krb5/com_err.h)
93 CPPFLAGS+=              -I${COMERRBASE}/include/krb5
94 .  endif
95 CONFIGURE_ENV+=         COMPILE_ET=${COMERRBASE}/bin/compile_et
96 .else
97 CONFIGURE_ARGS+=        --with-com-err=yes
98 .endif
99
100 # CYRUS_IDLE selects the method used to implement IMAP IDLE.  Valid values
101 # are "poll", "idled" or "no".  The default is "poll".
102 #
103 CYRUS_IDLE?=            poll
104 BUILD_DEFS+=            CYRUS_IDLE
105 PLIST_VARS+=            idled
106 .if (${CYRUS_IDLE} != "poll") && (${CYRUS_IDLE} != "idled") && \
107     (${CYRUS_IDLE} != "no")
108 PKG_FAIL_REASON+=       "CYRUS_IDLE must be poll, idled or no"
109 .endif
110 CONFIGURE_ARGS+=        --with-idle=${CYRUS_IDLE:Q}
111 .if ${CYRUS_IDLE} == "idled"
112 PLIST.idled=            yes
113 .endif
114
115 MAKE_ENV+=              PERL=${PERL5:Q}
116
117 HTMLDIR=                ${PREFIX}/share/doc/html/cyrus-imapd
118 EGDIR=                  ${PREFIX}/share/examples/cyrus-imapd
119 CONF_FILES=             ${EGDIR}/imapd.conf ${PKG_SYSCONFDIR}/imapd.conf
120 CONF_FILES+=            ${EGDIR}/normal.conf ${PKG_SYSCONFDIR}/cyrus.conf
121 RCD_SCRIPTS=            cyrus
122 FILES_SUBST+=           IMAPDCONF=${PKG_SYSCONFDIR}/imapd.conf
123
124 PERL5_PACKLIST= \
125         auto/Cyrus/IMAP/.packlist                       \
126         auto/Cyrus/SIEVE/managesieve/.packlist
127
128 .include "../../lang/perl5/module.mk"
129 .include "../../security/cyrus-sasl/buildlink3.mk"
130 .include "../../security/openssl/buildlink3.mk"
131 .include "../../security/tcp_wrappers/buildlink3.mk"
132 .include "../../mk/bdb.buildlink3.mk"
133
134 CONFIGURE_ENV+= BDB_TYPE=${BDB_TYPE:Q}
135
136 # Only imap/mupdate needs to be build with pthreads support, so selectively
137 # enable it via patches for just that one program.
138 #
139 .include "../../mk/pthread.buildlink3.mk"
140
141 # Change references of some manpages from foo.8 to cyrus-foo.8 to avoid
142 # manpage conflicts with other packages.  Also change references to
143 # "/etc/{cyrus,imapd}.conf" into "${PKG_SYSCONFDIR}/{cyrus,imapd}.conf".
144 #
145 post-patch:
146         cd ${WRKSRC}/man;                                               \
147         set --  deliver 8 fetchnews 8 idled 8 imapd 8 lmtpd 8 master 8  \
148                 nntpd 8 notifyd 8 pop3d 8 quota 8;                      \
149         while [ $$# -gt 0 ]; do                                         \
150                 man=$$1.$$2;                                            \
151                 for file in Makefile.in *.[0-9]; do                     \
152                         ${SED}  -e "s|\(\$$(srcdir)/\)\($$man\)|\1cyrus-\2|g" \
153                                 -e "s|\(\\\fB\)\($$1($$2)\\\fR\)|\1cyrus-\2|g" \
154                                 $$file > $$file.fixed;                  \
155                         ${MV} -f $$file.fixed $$file;                   \
156                 done;                                                   \
157                 if [ -f $$man ]; then                                   \
158                         ${MV} $$man cyrus-$$man;                        \
159                 fi;                                                     \
160                 shift 2;                                                \
161         done
162         ${FIND} ${WRKSRC} -type f -print |                              \
163         ${XARGS} -n 1 ${GREP} -l -e /etc/imapd\.conf -e /etc/cyrus\.conf | \
164         while read file; do                                             \
165                 ${SED}  -e "s|/etc/\(cyrus\.conf\)|${PKG_SYSCONFDIR}/\1|g" \
166                         -e "s|/etc/\(imapd\.conf\)|${PKG_SYSCONFDIR}/\1|g" \
167                         $$file > $$file.fixed;                          \
168                 ${MV} -f $$file.fixed $$file;                           \
169         done
170
171 post-install:
172         ${INSTALL_SCRIPT} ${WRKSRC}/tools/masssievec ${DESTDIR}${PREFIX}/cyrus/bin
173         ${INSTALL_SCRIPT} ${WRKSRC}/tools/mkimap ${DESTDIR}${PREFIX}/cyrus/bin
174         ${INSTALL_SCRIPT} ${WRKSRC}/tools/mknewsgroups ${DESTDIR}${PREFIX}/cyrus/bin
175         ${INSTALL_SCRIPT} ${WRKSRC}/tools/translatesieve ${DESTDIR}${PREFIX}/cyrus/bin
176         ${INSTALL_SCRIPT} ${WRKSRC}/tools/rehash ${DESTDIR}${PREFIX}/cyrus/bin
177         ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR}
178         ${INSTALL_DATA} ${FILESDIR}/imapd.conf ${DESTDIR}${EGDIR}
179         cd ${WRKSRC}/master/conf; for file in *.conf; do                \
180                 ${INSTALL_DATA} $$file ${DESTDIR}${EGDIR};              \
181         done
182         ${INSTALL_DATA_DIR} ${DESTDIR}${HTMLDIR}
183         cd ${WRKSRC}/doc; for file in *.html cyrusv2.mc; do             \
184                 ${INSTALL_DATA} $$file ${DESTDIR}${HTMLDIR};            \
185         done
186
187 .include "../../mk/bsd.pkg.mk"