PageRenderTime 58ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/mail/courier/Makefile

https://github.com/freebsd/freebsd-ports
Makefile | 357 lines | 299 code | 42 blank | 16 comment | 4 complexity | 09d7e79e2e79defa5eeb1191fdafad3f MD5 | raw file
  1. # Created by: Yarema <yds@CoolRat.org>
  2. PORTNAME= courier
  3. PORTVERSION= 0.65.3
  4. PORTREVISION= 6
  5. CATEGORIES= mail
  6. MASTER_SITES= SF
  7. MAINTAINER= bsd@dino.sk
  8. COMMENT= Courier SMTP IMAP POP3 HTTP mail server suite
  9. LICENSE= GPLv3
  10. LICENSE_FILE= ${WRKSRC}/COPYING.GPL
  11. BROKEN_FreeBSD_13= ld: error: duplicate symbol: sqwebmail_content_charset
  12. BROKEN_FreeBSD_14= ld: error: duplicate symbol: sqwebmail_content_charset
  13. BUILD_DEPENDS= courierauthconfig:security/courier-authlib-base
  14. LIB_DEPENDS= libidn.so:dns/libidn \
  15. libpcre.so:devel/pcre
  16. RUN_DEPENDS= courierauthconfig:security/courier-authlib-base \
  17. ${LOCALBASE}/share/sysconftool/sysconftool:devel/sysconftool \
  18. ${LOCALBASE}/etc/mime.types:misc/mime-support \
  19. p5-Net-CIDR>=0:net-mgmt/p5-Net-CIDR \
  20. ca_root_nss>=3.*:security/ca_root_nss
  21. CONFLICTS= courier-imap-2.* couriermlm-0.* \
  22. exim-4.* maildrop-1.* \
  23. panda-imap-201* postfix-1.* postfix-2.* \
  24. qmail-*-1.* qmail-1.* \
  25. sendmail-*-8.* sendmail-8.* \
  26. smail-3.* sqwebmail-3.* \
  27. zmailer-2.*
  28. #
  29. # User-serviceable variables
  30. #
  31. # [ There's no need to add trailing ``/''s ]
  32. #
  33. # set IMAGEURL to where on the web server URL the images are found
  34. # set CACHEOWN to who you'd like to own the cache files
  35. # set MAILDROPDEFAULT to what you'd like the $DEFAULT in maildrop to be
  36. # recomended values are: /var/mail, ./Mailbox or ./Maildir
  37. #
  38. IMAGEURL?= /webmail
  39. CACHEOWN?= pop
  40. MAILDROPDEFAULT?=./Maildir
  41. # End of user-serviceable variables
  42. MAILOWN= courier
  43. MAILGRP= courier
  44. MAILUID= 465
  45. MAILGID= 465
  46. ETCDIR= ${PREFIX}/etc
  47. SYSCONFDIR= ${ETCDIR}/courier
  48. LIBEXECDIR= ${PREFIX}/libexec
  49. LOCALSTATEDIR= /var/spool/courier
  50. CACHEDIR= /var/spool/webmail
  51. CALENDIR= /var/spool/calendar
  52. MIMETYPES= ${LOCALBASE}/etc/mime.types
  53. WITH_TRANSPORT= local esmtp dsn
  54. USES= fam gettext gmake libtool perl5 pkgconfig tar:bzip2 ssl
  55. USE_SUBMAKE= yes
  56. USE_RC_SUBR= courier
  57. GNU_CONFIGURE= yes
  58. CONFIGURE_ARGS= --disable-root-check \
  59. --with-db=db \
  60. --enable-syslog=1 --enable-use-flock \
  61. --program-transform-name=s,^,, \
  62. --enable-utf7-folder-encoding \
  63. --enable-unicode \
  64. --with-mailuser=${MAILOWN} \
  65. --with-mailgroup=${MAILGRP} \
  66. --with-mailuid=${MAILUID} \
  67. --with-mailgid=${MAILGID} \
  68. --with-etcdir=${ETCDIR} \
  69. --sysconfdir=${SYSCONFDIR} \
  70. --datadir=${DATADIR} \
  71. --libexecdir=${LIBEXECDIR} \
  72. --localstatedir=${LOCALSTATEDIR} \
  73. --enable-mimetypes=${MIMETYPES} \
  74. --enable-imageurl=${IMAGEURL} \
  75. --with-cachedir=${CACHEDIR} \
  76. --with-cacheowner=${CACHEOWN} \
  77. --with-calendardir=${CALENDIR} \
  78. --with-certsdir=${SYSCONFDIR} \
  79. --with-transport='${WITH_TRANSPORT}' \
  80. --with-default-maildrop=${MAILDROPDEFAULT} \
  81. --with-paranoid-smtpext \
  82. --enable-workarounds-for-imap-client-bugs
  83. CPPFLAGS+= -I${LOCALBASE}/include
  84. LIBS+= -L${LOCALBASE}/lib
  85. INSTALL_TARGET= install-strip install-perms
  86. PLIST_SUB+= BINOWN="${BINOWN}" BINGRP="${BINGRP}" \
  87. MAILOWN="${MAILOWN}" MAILGRP="${MAILGRP}" \
  88. MAILUID="${MAILUID}" MAILGID="${MAILGID}" \
  89. CACHEOWN="${CACHEOWN}" CACHEDIR="${CACHEDIR}" \
  90. CALENDIR="${CALENDIR}" LOCALSTATEDIR="${LOCALSTATEDIR}"
  91. SUB_LIST:= ${PLIST_SUB}
  92. SUB_FILES+= pkg-message crontab sharedindexupdate
  93. #SUB_FILES+= pkg-install pkg-message crontab sharedindexupdate
  94. OPTIONS_DEFINE= LDAP PROCMAIL SENDFAX UUCP IPV6 MAILDROPFLAGS DOCS
  95. OPTIONS_GROUP= WEBMAIL
  96. #OPTIONS_GROUP= SYSTEM WEBMAIL
  97. #OPTIONS_GROUP_SYSTEM= RCCONF MAILCONF PERIODIC
  98. OPTIONS_GROUP_WEBMAIL= GNUPG WEBMAILRSENT WEBMAILFLAGS WEBMAILXFACE
  99. OPTIONS_RADIO= ALIASES SPELL
  100. OPTIONS_RADIO_ALIASES= SYSTEMALIASES EMPTYALIASES
  101. OPTIONS_RADIO_SPELL= ASPELL ISPELL
  102. OPTIONS_DEFAULT=WEBMAILRSENT SYSTEMALIASES
  103. LDAP_DESC= LDAP-based mail aliasing support
  104. GNUPG_DESC= GNU Privacy Guard support for WebMail
  105. ASPELL_DESC= ASpell support for WebMail
  106. ISPELL_DESC= ISpell support for WebMail
  107. PROCMAIL_DESC= Procmail local delivery support
  108. SENDFAX_DESC= mgetty+sendfax support
  109. UUCP_DESC= UUCP support
  110. MAILDROPFLAGS_DESC= maildrop set flags patch
  111. WEBMAILRSENT_DESC= enable Autorename Sent folder
  112. WEBMAILFLAGS_DESC= webmail show flags patch
  113. WEBMAILXFACE_DESC= experimental webmail X-Face patch
  114. SYSTEMALIASES_DESC= symlink system /etc/aliases
  115. EMPTYALIASES_DESC= create empty aliases file
  116. RCCONF_DESC= modify rc.conf to enable courier/disable sendmail
  117. MAILCONF_DESC= modify mailer.conf to use courier instead of sendmail
  118. PERIODIC_DESC= modify/create periodic.conf
  119. .include <bsd.port.options.mk>
  120. .include "${.CURDIR}/Makefile.doc"
  121. .include "${.CURDIR}/Makefile.own"
  122. .if ${PORT_OPTIONS:MLDAP}
  123. USE_OPENLDAP= yes
  124. WITH_AUTH_LDAP= yes
  125. RUN_DEPENDS+= ${LOCALBASE}/lib/courier-authlib/libauthldap.so:net/courier-authlib-ldap
  126. CONFIGURE_ARGS+=--with-ldapaliasd
  127. PLIST_SUB+= WITHLDAP=""
  128. SUB_LIST+= WITHLDAP=""
  129. .else
  130. CONFIGURE_ARGS+=--without-ldapaliasd
  131. PLIST_SUB+= WITHLDAP="@comment "
  132. SUB_LIST+= WITHLDAP="@comment "
  133. .endif
  134. .if ${PORT_OPTIONS:MSYSTEMALIASES}
  135. PLIST_SUB+= WITHSYSTEMALIASES=""
  136. SUB_LIST+= WITHSYSTEMALIASES=""
  137. .else
  138. PLIST_SUB+= WITHSYSTEMALIASES="@comment "
  139. SUB_LIST+= WITHSYSTEMALIASES="@comment "
  140. .endif
  141. .if ${PORT_OPTIONS:MEMPTYALIASES}
  142. PLIST_SUB+= WITHEMPTYALIASES=""
  143. SUB_LIST+= WITHEMPTYALIASES=""
  144. .else
  145. PLIST_SUB+= WITHEMPTYALIASES="@comment "
  146. SUB_LIST+= WITHEMPTYALIASES="@comment "
  147. .endif
  148. .if exists(${.CURDIR}/../../security/courier-authlib/Makefile.dep)
  149. .include "${.CURDIR}/../../security/courier-authlib/Makefile.dep"
  150. .endif
  151. .if ${PORT_OPTIONS:MGNUPG}
  152. BUILD_DEPENDS+= gpg:security/gnupg
  153. RUN_DEPENDS+= gpg:security/gnupg
  154. .endif
  155. .if ${PORT_OPTIONS:MASPELL}
  156. BUILD_DEPENDS+= aspell:textproc/aspell
  157. RUN_DEPENDS+= aspell:textproc/aspell
  158. CONFIGURE_ARGS+=--with-ispell=${LOCALBASE}/bin/aspell
  159. .elif ${PORT_OPTIONS:MISPELL}
  160. BUILD_DEPENDS+= ispell:textproc/aspell-ispell
  161. RUN_DEPENDS+= ispell:textproc/aspell-ispell
  162. CONFIGURE_ARGS+=--with-ispell=${LOCALBASE}/bin/ispell
  163. .else
  164. CONFIGURE_ARGS+=--without-ispell
  165. .endif
  166. .if ${PORT_OPTIONS:MPROCMAIL}
  167. BUILD_DEPENDS+= procmail:mail/procmail
  168. RUN_DEPENDS+= procmail:mail/procmail
  169. .endif
  170. .if ${PORT_OPTIONS:MSENDFAX}
  171. USES+= ghostscript
  172. SENDFAX_DEPENDS=sendfax:comms/mgetty+sendfax \
  173. pnmscale:graphics/netpbm
  174. BUILD_DEPENDS+= ${SENDFAX_DEPENDS}
  175. RUN_DEPENDS+= ${SENDFAX_DEPENDS}
  176. WITH_TRANSPORT+=fax
  177. PLIST_SUB+= WITHFAX=""
  178. SUB_LIST+= WITHFAX=""
  179. .else
  180. PLIST_SUB+= WITHFAX="@comment "
  181. SUB_LIST+= WITHFAX="@comment "
  182. .endif
  183. .if ${PORT_OPTIONS:MUUCP}
  184. .if !exists(/usr/bin/uux)
  185. BUILD_DEPENDS+= uux:net/freebsd-uucp
  186. RUN_DEPENDS+= uux:net/freebsd-uucp
  187. .endif
  188. WITH_TRANSPORT+=uucp
  189. PLIST_SUB+= WITHUUCP=""
  190. .else
  191. PLIST_SUB+= WITHUUCP="@comment "
  192. .endif
  193. .if ${PORT_OPTIONS:MIPV6}
  194. CONFIGURE_ARGS+=--with-ipv6
  195. .else
  196. CONFIGURE_ARGS+=--without-ipv6
  197. .endif
  198. .if ${PORT_OPTIONS:MMAILDROPFLAGS}
  199. EXTRA_PATCHES+= ${FILESDIR}/extra-patch-maildrop__maildir.C
  200. .endif
  201. .if ${PORT_OPTIONS:MWEBMAILXFACE}
  202. EXTRA_PATCHES+= ${FILESDIR}/extra-patch-webmail__msg2html.c
  203. .endif
  204. .if ${PORT_OPTIONS:MWEBMAILFLAGS}
  205. EXTRA_PATCHES+= ${FILESDIR}/extra-patch-webmail__folder.c ${FILESDIR}/extra-patch-webmail__maildir.c
  206. EXTRA_PATCHES+= ${FILESDIR}/extra-patch-webmail__maildir.h ${FILESDIR}/extra-patch-webmail__images__sqwebmail.css
  207. .endif
  208. .if ${PORT_OPTIONS:MWEBMAILRSENT}
  209. CONFIGURE_ARGS+=--enable-autorenamesent
  210. .else
  211. CONFIGURE_ARGS+=--disable-autorenamesent
  212. .endif
  213. .if ${PORT_OPTIONS:MMAILCONF}
  214. SUB_LIST+= MAILCONF="y"
  215. .else
  216. SUB_LIST+= MAILCONF="n"
  217. .endif
  218. .if ${PORT_OPTIONS:MRCCONF}
  219. SUB_LIST+= RCCONF="y"
  220. .else
  221. SUB_LIST+= RCCONF="n"
  222. .endif
  223. .if ${PORT_OPTIONS:MPERIODIC}
  224. SUB_LIST+= PERIODIC="y"
  225. .else
  226. SUB_LIST+= PERIODIC="n"
  227. .endif
  228. .if ${SSL_DEFAULT} == base
  229. BROKEN_FreeBSD_12= pkg-static: Unable to access file /wrkdirs/usr/ports/mail/courier/work/stage/usr/local/bin/couriertls
  230. BROKEN_FreeBSD_13= pkg-static: Unable to access file /wrkdirs/usr/ports/mail/courier/work/stage/usr/local/bin/couriertls
  231. .endif
  232. pre-everything::
  233. @${ECHO_MSG} "===> --------------------------------------------------------"
  234. @${ECHO_MSG} "===> Run 'make config' to (re)configure ${PKGNAME}"
  235. @${ECHO_MSG} "===> --------------------------------------------------------"
  236. pre-patch:
  237. @${CP} ${TEMPLATES}/config.guess ${TEMPLATES}/config.sub ${WRKSRC}
  238. post-patch:
  239. @${REINPLACE_CMD} -i '' -e 's|#! perl|#!${PERL}|g' \
  240. ${WRKSRC}/webadmin/*.pl \
  241. ${WRKSRC}/webadmin/*.pl.in \
  242. ${WRKSRC}/courier/webadmin/*.pl \
  243. ${WRKSRC}/courier/webadmin/*.pl.in
  244. @${REINPLACE_CMD} -e 's|^PROG=\./|PROG=exec ./|g' \
  245. ${WRKSRC}/courier/module.*/courier.config
  246. @${REINPLACE_CMD} -e 's|@mydatadir@|@sysconfdir@|g' \
  247. ${WRKSRC}/*/mk*cert.* \
  248. ${WRKSRC}/*/*/mk*cert.*
  249. @${REINPLACE_CMD} -e 's|^\(TLS_CERTFILE=\)@mydatadir@|\1@sysconfdir@|g' \
  250. ${WRKSRC}/*/*.dist.in \
  251. ${WRKSRC}/*/*/*.dist.in
  252. @${REINPLACE_CMD} -e 's|^\(RANDFILE[[:space:]]*=[[:space:]]*\)@mydatadir@|\1@sysconfdir@|g' \
  253. ${WRKSRC}/*/*.cnf.openssl.in \
  254. ${WRKSRC}/*/*/*.cnf.openssl.in
  255. @${REINPLACE_CMD} -e 's|$$(INSTALL_DATA) \(.$$$$file.\)|${INSTALL_MAN} \1|' \
  256. ${WRKSRC}/Makefile.in \
  257. ${WRKSRC}/*/Makefile.in \
  258. ${WRKSRC}/*/*/Makefile.in \
  259. ${WRKSRC}/*/*/*/Makefile.in
  260. @${REINPLACE_CMD} -e 's|^\(INSTALL_STRIP_PROGRAM=\).*$$|\1"${INSTALL_PROGRAM} -s"|' \
  261. -e 's|; ldapaliasd="yes"||' \
  262. ${WRKSRC}/configure \
  263. ${WRKSRC}/*/configure \
  264. ${WRKSRC}/*/*/configure \
  265. ${WRKSRC}/*/*/*/configure
  266. @${REINPLACE_CMD} -E -e 's/(root|bin)[[:space:]]*bin/root wheel/g' \
  267. ${WRKSRC}/courier/perms.sh.in
  268. @${REINPLACE_CMD} '/^courieresmtp_LDADD =/s/$$/ -lcourierauth/' \
  269. ${WRKSRC}/courier/module.esmtp/Makefile.in
  270. # Avoid conflict with C++20 <version> by adding .txt suffix
  271. @${REINPLACE_CMD} -i .c++20 's/>version$$/&.txt/' ${WRKSRC}/configure
  272. @${FIND} ${WRKSRC} -name configure -exec ${REINPLACE_CMD} \
  273. -i .c++20 '/^version.*cat/s,/version,&.txt,' {} +
  274. post-build:
  275. @${PERL} -pi -e 's|^(auth)\s+(required).*|$$1\t\t$$2\tpam_unix.so\ttry_first_pass|g;' \
  276. -e 's|^(account)\s+(required).*|$$1 \t$$2\tpam_unix.so|g;' \
  277. -e 's|^(session)\s+(required).*|$$1 \t$$2\tpam_permit.so|g;' \
  278. ${WRKSRC}/*/*.authpam* \
  279. ${WRKSRC}/*/*/*.authpam*
  280. @${LN} -f ${WRKSRC}/gpglib/README.html ${WRKSRC}/gpglib/README.gpglib.html
  281. @${LN} -f ${WRKSRC}/imap/BUGS ${WRKSRC}/imap/BUGS.imap
  282. @${LN} -f ${WRKSRC}/imap/BUGS.html ${WRKSRC}/imap/BUGS.imap.html
  283. @${LN} -f ${WRKSRC}/imap/README ${WRKSRC}/imap/README.imap
  284. @${LN} -f ${WRKSRC}/imap/README.html ${WRKSRC}/imap/README.imap.html
  285. @${LN} -f ${WRKSRC}/maildrop/README.html ${WRKSRC}/maildrop/README.maildrop.html
  286. @${LN} -f ${WRKSRC}/pcp/README.html ${WRKSRC}/pcp/README.pcp.html
  287. @${LN} -f ${WRKSRC}/webmail/BUGS ${WRKSRC}/webmail/BUGS.webmail
  288. @${LN} -f ${WRKSRC}/webmail/BUGS.html ${WRKSRC}/webmail/BUGS.webmail.html
  289. @${LN} -f ${WRKSRC}/webmail/SECURITY ${WRKSRC}/webmail/SECURITY.webmail
  290. @${LN} -f ${WRKSRC}/webmail/SECURITY.html ${WRKSRC}/webmail/SECURITY.webmail.html
  291. post-install:
  292. @${LN} -f ${STAGEDIR}${SYSCONFDIR}/maildrop ${STAGEDIR}${SYSCONFDIR}/maildropfilter
  293. @${INSTALL_DATA} /dev/null ${STAGEDIR}${SYSCONFDIR}/locallowercase
  294. @${INSTALL_DATA} ${WRKDIR}/crontab ${STAGEDIR}${SYSCONFDIR}/
  295. @${INSTALL_SCRIPT} ${WRKDIR}/sharedindexupdate ${STAGEDIR}${DATADIR}/
  296. .for file in ${OWNER0}
  297. @-${CHOWN} -Rh ${BINOWN}:${BINGRP} ${STAGEDIR}${PREFIX}/${file}
  298. .endfor
  299. .if ${PORT_OPTIONS:MDOCS}
  300. @${MKDIR} ${STAGEDIR}${DOCSDIR}
  301. @${MKDIR} ${STAGEDIR}${DOCSDIR}/html
  302. .for f in ${DOCS}
  303. @${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
  304. .endfor
  305. .for f in ${HTMLDOCS}
  306. @${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}/html
  307. .endfor
  308. @${INSTALL_DATA} ${STAGEDIR}${DATADIR}/htmldoc/* ${STAGEDIR}${DOCSDIR}/html
  309. .endif
  310. @${RM} -r ${STAGEDIR}${DATADIR}/htmldoc
  311. @-${CHOWN} -Rh ${SHAREOWN}:${SHAREGRP} ${STAGEDIR}${DATADIR}
  312. @${CHMOD} -R a+r ${STAGEDIR}${DATADIR}/courierwebadmin
  313. @${CHMOD} -R a-w ${STAGEDIR}${DATADIR} ${STAGEDIR}${LIBEXECDIR}/courier
  314. @${CHMOD} 550 ${STAGEDIR}${LIBEXECDIR}/courier/modules/esmtp/courieresmtp*
  315. .include <bsd.port.mk>