ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/mports/trunk/mail/sendmail/Makefile
Revision: 19084
Committed: Sat May 23 21:24:47 2015 UTC (8 years, 11 months ago) by laffer1
File size: 13384 byte(s)
Log Message:
ring is gone

File Contents

# Content
1 # $MidnightBSD$
2
3 PORTNAME= sendmail
4 PORTVERSION= 8.15.1
5 PORTREVISION= 0
6 CATEGORIES= mail ipv6
7 MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/
8 PKGNAMESUFFIX?= ${TLS_SUFFIX}${SASL_SUFFIX}${LDAP_SUFFIX}${BDB_SUFFIX}${PKGNAMESUFFIX2}
9 DISTNAME= ${PORTNAME}.${PORTVERSION}
10
11 MAINTAINER= ports@MidnightBSD.org
12 COMMENT= Reliable, highly configurable mail transfer agent with utilities
13
14 LICENSE= agg
15
16 CONFLICTS?= courier-0.* postfix-1.* postfix-2.* smail-3.* zmailer-2.* opensmtpd-*
17
18 FAKE_OPTS+= trueprefix
19
20 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
21 WCONF= ${WRKSRC}/devtools/Site
22 SITE= ${FILESDIR}/site.config.m4.pre4
23 PLIST= ${WRKDIR}/.PLIST.more
24 DOCS= KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
25 sendmail/TRACEFLAGS sendmail/SECURITY sendmail/TUNING
26 LMAN1= mailq.1 newaliases.1 vacation.1
27 LMAN5= aliases.5
28 LMAN8= sendmail.8 mailstats.8 makemap.8 praliases.8 smrsh.8 \
29 mail.local.8 rmail.8 editmap.8
30 SENDMAIL= ${PREFIX}/sbin/sendmail
31 BASEMAIL= /usr/libexec/sendmail/sendmail
32 PLIST_SUB+= PREFIX=${PREFIX:S=${PREFIX}/==} MANPREFIX=${MANPREFIX:S=$=/=:S=${PREFIX}==:S=^/==}
33 PKGMESSAGE= ${WRKSRC}/pkg-message
34 MILTER_SOVER?= 6
35
36 OPTIONS_DEFINE?= SHMEM SEM LA NIS IPV6 TLS SASL SASLAUTHD LDAP BDB SOCKETMAP CYRUSLOOKUP PICKY_HELO_CHECK MILTER MILTER_SHARED MILTER_POOL TLSEXT_PADDING DOCS
37 OPTIONS_DEFAULT?= SHMEM SEM LA NIS IPV6 TLS SASL SASLAUTHD PICKY_HELO_CHECK MILTER MILTER_SHARED MILTER_POOL
38 NO_OPTIONS_SORT=yes
39 SHMEM_DESC= System V shared memory support
40 LA_DESC= load averages support
41 TLS_DESC= SMTP-TLS and SMTPS support
42 SASLAUTHD_DESC= SASLAUTHD support
43 BDB_DESC= Berkeley DB version 4 support
44 SOCKETMAP_DESC= Enable socketmap feature
45 CYRUSLOOKUP_DESC= Enable cyruslookup feature
46 PICKY_HELO_CHECK_DESC= Enable picky HELO check
47 MILTER_DESC= Build libmilter
48 MILTER_SHARED_DESC= Build shared libmilter
49 MILTER_POOL_DESC= Enable milter thread pools
50 TLSEXT_PADDING_DESC= Enable TLSEXT padding
51
52 BDB_USE= BDB=yes
53 LDAP_USE= OPENLDAP=yes
54 SASL_LIB_DEPENDS= libsasl2.so:${PORTSDIR}/security/cyrus-sasl2
55 SASLAUTHD_RUN_DEPENDS= ${LOCALBASE}/sbin/saslauthd:${PORTSDIR}/security/cyrus-sasl2-saslauthd
56
57 .include <bsd.mport.options.mk>
58 .if ${PORT_OPTIONS:MSHMEM} && !defined(BUILDING_INDEX)
59 IPCCHECK!= ipcrm -q 0 2>&1 || true
60 .if ${IPCCHECK:Mimplemented}
61 IGNORE= your system does not support sysvipc
62 .endif
63 .endif
64
65 .if ${PORT_OPTIONS:MBDB}
66 BDB_SUFFIX= +${BDB_INCLUDE_DIR:S,^${LOCALBASE}/include/,,}
67 CONFLICTS+= sendmail-ldap-8.* sendmail-sasl-8.* sendmail-sasl2-8.* sendmail-tls-8.*
68 .endif
69 .if ${PORT_OPTIONS:MLDAP}
70 LDAP_SUFFIX?= +ldap
71 CONFLICTS+= sendmail-sasl-8.* sendmail-sasl2-8.* sendmail-tls-8.*
72 .endif
73 .if ${PORT_OPTIONS:MSASL}
74 SASL_SUFFIX?= +sasl2
75 CONFLICTS+= sendmail-ldap-8.* sendmail-sasl-8.* sendmail-tls-8.*
76 .endif
77 .if ${PORT_OPTIONS:MCYRUSLOOKUP}
78 .if ! ${PORT_OPTIONS:MSOCKETMAP}
79 IGNORE= option CYRUSLOOKUP requires option SOCKETMAP
80 .else
81 EXTRA_PATCHES+= ${FILESDIR}/cyruslookup.patch
82 .endif
83 .endif
84 .if ${PORT_OPTIONS:MTLS}
85 TLS_SUFFIX?= +tls
86 CONFLICTS+= sendmail-ldap-8.* sendmail-sasl-8.* sendmail-sasl2-8.*
87 .endif
88
89 MAKE_PKGNAMES= for i in "" +tls; do \
90 for j in "" +sasl +sasl1 +sasl2; do \
91 for k in "" +ldap; do \
92 for l in "" +db2 +db3 +db4 +db41 +db42 +db43 +db44 +db45 +db46 +db47 +db48 +db49; do \
93 echo "sendmail$${i}$${j}$${k}$${l}-8.*" ;\
94 done done done done
95
96 ALL_PKGNAMES!= ${MAKE_PKGNAMES}
97 CONFLICTS2!= ${MAKE_PKGNAMES} | grep -v "${PORTNAME}${PKGNAMESUFFIX:S|${PKGNAMESUFFIX2}||}-8."
98 CONFLICTS+= ${CONFLICTS2}
99
100 # Build site.config.m4
101 .if exists(${DESTDIR}/etc/mail/mailer.conf)
102 SITE+= ${FILESDIR}/site.config.m4
103 .endif
104 .if ${PORT_OPTIONS:MIPV6}
105 SITE+= ${FILESDIR}/site.config.m4.ipv6
106 .endif
107 .if ${PORT_OPTIONS:MSASL}
108 SITE+= ${FILESDIR}/site.config.m4.sasl2
109 .endif
110 .if ${PORT_OPTIONS:MLDAP}
111 SITE+= ${FILESDIR}/site.config.m4.ldap
112 .endif
113 .if ${PORT_OPTIONS:MMILTER}
114 SITE+= ${FILESDIR}/site.config.m4.milter
115 .endif
116 .if ${PORT_OPTIONS:MTLS}
117 USE_OPENSSL= yes
118 .endif
119
120 # install directly if no mailwrapper support
121 .if ! exists(${DESTDIR}/etc/mail/mailer.conf)
122 PREFIX?= ${DESTDIR}/usr
123 MANPREFIX?= ${DESTDIR}/usr/share
124 PLIST_SUB+= ETCPORT="@comment "
125 .else
126 PLIST_SUB+= ETCPORT=""
127 .endif
128
129 .if ${PORT_OPTIONS:MMILTER}
130 .if ${PORT_OPTIONS:MMILTER_SHARED}
131 PLIST_SUB+= MILTER_SHARED=""
132 PLIST_SUB+= MILTER_SOVER=${MILTER_SOVER}
133 MAKE_ENV+= MILTER_SOVER=${MILTER_SOVER}
134 .else
135 PLIST_SUB+= MILTER_SHARED="@comment "
136 .endif
137 .endif
138
139 SED_SCRIPT= -e "s|\`-pthread\'|\`${PTHREAD_LIBS}\'|" \
140 -e "s|\`-O\'|\`${CFLAGS}\'|" \
141 -e 's|%%CC%%|${CC}|' -e 's|%%LD%%|${LD}|'
142
143 .if ! ${PORT_OPTIONS:MNIS}
144 SED_SCRIPT+= -e "s;-DNIS ;;"
145 .endif
146
147 post-patch:
148 @${SED} -e "s=%%PREFIX%%=${PREFIX}=g" \
149 -e "s=%%LOCALBASE%%=${LOCALBASE}=g" \
150 -e "s=%%PORTSDIR%%=${PORTSDIR}=g" \
151 ${PKGDIR}/pkg-message > ${WRKSRC}/pkg-message
152 .if ${PORT_OPTIONS:MMILTER} && ${PORT_OPTIONS:MMILTER_SHARED}
153 @${CP} -pR ${WRKSRC}/libmilter ${WRKSRC}/libsharedmilter
154 ${CP} ${FILESDIR}/sharedlibrary.m4 \
155 ${WRKSRC}/devtools/M4/UNIX/sharedlibrary.m4
156 ${REINPLACE_CMD} -e 's=`library=`sharedlibrary=' \
157 ${WRKSRC}/libsharedmilter/Makefile.m4
158 .endif
159
160 do-configure:
161 ${REINPLACE_CMD} ${SED_SCRIPT} ${WRKSRC}/devtools/OS/FreeBSD
162 ${SED} -e "s=%%PREFIX%%=${PREFIX}=g" \
163 -e "s=%%LOCALBASE%%=${LOCALBASE}=g" \
164 ${SITE} > ${WCONF}/site.config.m4
165 .if ${PORT_OPTIONS:MBDB}
166 ${ECHO_CMD} \
167 'APPENDDEF(`confENVDEF'\'', `-I${BDB_INCLUDE_DIR}'\'')' \
168 >> ${WCONF}/site.config.m4
169 ${ECHO_CMD} \
170 'APPENDDEF(`confLIBDIRS'\'', `-L${LOCALBASE}/lib'\'')' \
171 >> ${WCONF}/site.config.m4
172 .for i in sendmail editmap makemap praliases vacation
173 ${ECHO_CMD} \
174 'APPENDDEF(`conf_${i}_LIBS'\'', `-l${BDB_LIB_NAME}'\'')' \
175 >> ${WCONF}/site.config.m4
176 .endfor
177 .endif
178 .if ${PORT_OPTIONS:MSOCKETMAP}
179 ${ECHO_CMD} \
180 'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DSOCKETMAP'\'')' \
181 >> ${WCONF}/site.config.m4
182 .endif
183 .if ${PORT_OPTIONS:MPICKY_HELO_CHECK}
184 ${ECHO_CMD} \
185 'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DPICKY_HELO_CHECK'\'')' \
186 >> ${WCONF}/site.config.m4
187 .endif
188 .if ! ${PORT_OPTIONS:MSHMEM}
189 ${ECHO_CMD} \
190 'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SHM=0'\'')' \
191 >> ${WCONF}/site.config.m4
192 .endif
193 .if ! ${PORT_OPTIONS:MSEM}
194 ${ECHO_CMD} \
195 'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SEM=0'\'')' \
196 >> ${WCONF}/site.config.m4
197 .endif
198 .if ! ${PORT_OPTIONS:MLA}
199 ${ECHO_CMD} \
200 'APPENDDEF(`confENVDEF'\'', `-DLA_TYPE=LA_ZERO'\'')' \
201 >> ${WCONF}/site.config.m4
202 .endif
203 .if ${PORT_OPTIONS:MMILTER} && ${PORT_OPTIONS:MMILTER_POOL}
204 ${ECHO_CMD} \
205 'APPENDDEF(`conf_libmilter_ENVDEF'\'', `-DSM_CONF_POLL=1'\'')' \
206 >> ${WCONF}/site.config.m4
207 ${ECHO_CMD} \
208 'APPENDDEF(`conf_libmilter_ENVDEF'\'', `-D_FFR_WORKERS_POOL=1'\'')' \
209 >> ${WCONF}/site.config.m4
210 .endif
211
212 post-build:
213 (cd ${WRKSRC}/doc/op && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} op.txt)
214 .if ${PORT_OPTIONS:MMILTER}
215 (cd ${BUILD_WRKSRC}/libmilter; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
216 .if ${PORT_OPTIONS:MMILTER_SHARED}
217 (cd ${BUILD_WRKSRC}/libsharedmilter; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
218 .endif
219 .endif
220 ${MKDIR} ${WRKDIR}/${FAKE_INSTALLDIR}/etc/mail
221
222 pre-install:
223 @${CAT} ${PKGDIR}/pkg-plist >${PLIST}
224 .if ${PORT_OPTIONS:MMILTER}
225 @${CAT} ${FILESDIR}/pkg-milter >>${PLIST}
226 .endif
227 if ! pw groupshow smmsp; then pw groupadd smmsp -g 25; fi
228 if ! pw usershow smmsp; then pw useradd smmsp -g smmsp -u 25 \
229 -h - -d /nonexistent -s /nonexistent -c "Sendmail Queue"; fi
230 @cd ${WRKSRC} && ${FIND} cf -type f | \
231 ${AWK} '{print "share/sendmail/" $$1}' >>${PLIST}
232 @cd ${WRKSRC} && ${FIND} -d cf -type d | \
233 ${AWK} '{print "@dirrm share/sendmail/" $$1}' >>${PLIST}
234 @${ECHO_CMD} "@dirrm share/sendmail" >>${PLIST}
235 .if ${PORT_OPTIONS:MDOCS}
236 .for i in ${DOCS}
237 @${ECHO_CMD} `${BASENAME} ${i}` | \
238 ${AWK} '{print "%%DOCSDIR%%/" $$1}' >>${PLIST}
239 .endfor
240 .if ${PORT_OPTIONS:MCYRUSLOOKUP}
241 @${ECHO_CMD} "share/doc/sendmail/CYRUS_LOOKUP" >>${PLIST}
242 .endif
243 @${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
244 .endif
245
246 # We want mail.local and rmail for our system.
247 # the build install catmans only, we have to fix this.
248 post-install:
249 (cd ${WRKSRC}/mail.local && \
250 ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${FAKE_MAKEARGS} force-install)
251 (cd ${WRKSRC}/rmail && \
252 ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${FAKE_MAKEARGS} force-install)
253 .if ${PORT_OPTIONS:MMILTER}
254 ${MKDIR} ${PREFIX}/include/libmilter
255 ${INSTALL_DATA} ${WRKSRC}/include/libmilter/mfapi.h \
256 ${WRKSRC}/include/libmilter/mfdef.h \
257 ${PREFIX}/include/libmilter/
258 ${INSTALL_DATA} \
259 ${WRKSRC}/obj.`${WRKSRC}/devtools/bin/Build -A`/libmilter/libmilter.a \
260 ${PREFIX}/lib/
261 .if ${PORT_OPTIONS:MMILTER_SHARED}
262 ${INSTALL_SCRIPT} \
263 ${WRKSRC}/obj.`${WRKSRC}/devtools/bin/Build -A`/libsharedmilter/libmilter.so \
264 ${PREFIX}/lib/libmilter.so.${MILTER_SOVER}
265 ${LN} -sf libmilter.so.${MILTER_SOVER} ${PREFIX}/lib/libmilter.so
266 .endif
267 .endif
268 .for i in ${LMAN8}
269 @${RM} -f ${MANPREFIX}/man/cat8/${i} ${MANPREFIX}/man/cat8/${i}.gz
270 ${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man8
271 .endfor
272 .for i in ${LMAN5}
273 @${RM} -f ${MANPREFIX}/man/cat5/${i} ${MANPREFIX}/man/cat5/${i}.gz
274 ${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man5
275 .endfor
276 .for i in ${LMAN1}
277 @${RM} -f ${MANPREFIX}/man/cat1/${i} ${MANPREFIX}/man/cat1/${i}.gz
278 ${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man1
279 .endfor
280 ${MKDIR} ${PREFIX}/share/sendmail
281 @${TAR} -C ${WRKSRC} -cf - cf | \
282 ${TAR} -C ${PREFIX}/share/sendmail -xf -
283 .if ${PORT_OPTIONS:MDOCS}
284 ${MKDIR} ${DOCSDIR}
285 @cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}/
286 ${INSTALL_DATA} ${WRKSRC}/doc/op/op.ps ${DOCSDIR}/op.ps
287 ${INSTALL_DATA} ${WRKSRC}/doc/op/op.txt ${DOCSDIR}/op.txt
288 ${INSTALL_DATA} ${WRKSRC}/devtools/README ${DOCSDIR}/DEVTOOLS
289 ${INSTALL_DATA} ${WRKSRC}/sendmail/README ${DOCSDIR}/SENDMAIL
290 ${INSTALL_DATA} ${WRKSRC}/mail.local/README ${DOCSDIR}/MAIL.LOCAL
291 ${INSTALL_DATA} ${WRKSRC}/smrsh/README ${DOCSDIR}/SMRSH
292 .if ${PORT_OPTIONS:MMILTER}
293 ${INSTALL_DATA} ${WRKSRC}/libmilter/README ${DOCSDIR}/MILTER
294 ${MKDIR} ${DOCSDIR}/libmilter
295 @${TAR} -C ${WRKSRC}/libmilter/docs -cf - . | \
296 ${TAR} -C ${DOCSDIR}/libmilter -xf -
297 .endif
298 .if ${PORT_OPTIONS:MCYRUSLOOKUP}
299 ${INSTALL_DATA} ${FILESDIR}/CYRUS_LOOKUP ${DOCSDIR}/CYRUS_LOOKUP
300 .endif
301 .endif
302 .if exists(${DESTDIR}/etc/mail/mailer.conf)
303
304 mailer.base:
305 @${SED} \
306 -e "s=^sendmail[ ]*/.*$$=sendmail ${BASEMAIL}=" \
307 -e "s=^send-mail[ ]*/.*$$=send-mail ${BASEMAIL}=" \
308 -e "s=^mailq[ ]*/.*$$=mailq ${BASEMAIL}=" \
309 -e "s=^newaliases[ ]*/.*$$=newaliases ${BASEMAIL}=" \
310 -e "s=^hoststat[ ]*/.*$$=hoststat ${BASEMAIL}=" \
311 -e "s=^purgestat[ ]*/.*$$=purgestat ${BASEMAIL}=" \
312 ${DESTDIR}/etc/mail/mailer.conf > ${DESTDIR}/etc/mail/mailer.conf.new
313 ${MV} ${DESTDIR}/etc/mail/mailer.conf.new \
314 ${DESTDIR}/etc/mail/mailer.conf
315
316 mailer.conf:
317 @${SED} \
318 -e "s=^sendmail[ ]*/.*$$=sendmail ${SENDMAIL}=" \
319 -e "s=^send-mail[ ]*/.*$$=send-mail ${SENDMAIL}=" \
320 -e "s=^mailq[ ]*/.*$$=mailq ${SENDMAIL}=" \
321 -e "s=^newaliases[ ]*/.*$$=newaliases ${SENDMAIL}=" \
322 -e "s=^hoststat[ ]*/.*$$=hoststat ${SENDMAIL}=" \
323 -e "s=^purgestat[ ]*/.*$$=purgestat ${SENDMAIL}=" \
324 ${DESTDIR}/etc/mail/mailer.conf > ${DESTDIR}/etc/mail/mailer.conf.new
325 ${MV} ${DESTDIR}/etc/mail/mailer.conf.new \
326 ${DESTDIR}/etc/mail/mailer.conf
327 .endif
328
329 # create sumbit.cf on older systems
330 #
331 submit.cf: ${DESTDIR}/etc/mail/submit.cf
332
333 ${DESTDIR}/etc/mail/submit.mc:
334 ${INSTALL_DATA} ${PREFIX}/share/sendmail/cf/cf/submit.mc \
335 ${DESTDIR}/etc/mail/submit.mc
336
337 ${DESTDIR}/etc/mail/submit.cf: ${DESTDIR}/etc/mail/submit.mc
338 @( cd ${DESTDIR}/etc/mail && ${MAKE} \
339 SENDMAIL_CF_DIR=${PREFIX}/share/sendmail/cf \
340 SENDMAIL_MC=submit )
341
342 # create basics for smtp-auth
343 #
344 howto-sasldb:
345 @${ECHO_CMD} "# Links:"
346 @${ECHO_CMD} "#"
347 @${ECHO_CMD} "# http://www.sendmail.org/~gshapiro/"
348 @${ECHO_CMD} "# http://www.sendmail.org/~ca/email/auth.html"
349 @${ECHO_CMD} "# http://www.bme.ogi.edu/~pchytil/linux/sendmail/"
350 @${ECHO_CMD} "# http://blue-labs.org/software/sm-pgsql/"
351 @${ECHO_CMD} "# http://www.falkotimme.com/howtos/sendmail_smtp_auth_tls/"
352 @${ECHO_CMD} "#"
353
354 # create certificates for TLS/SSL
355 #
356 tls-install:
357 ${SETENV} DESTDIR=${DESTDIR} FILESDIR=${FILESDIR} \
358 ${SH} ${FILESDIR}/tls-install.sh
359
360 help:
361 @${ECHO_CMD} "# additional targets:"
362 @${ECHO_CMD} "#"
363 @${ECHO_CMD} "# configure ${DESTDIR}/etc/mail/mailer.conf"
364 @${ECHO_CMD} "# for sendmail from ports"
365 @${ECHO_CMD} "make mailer.conf"
366 @${ECHO_CMD} "# for sendmail in the base"
367 @${ECHO_CMD} "make mailer.base"
368 @${ECHO_CMD} "#"
369 @${ECHO_CMD} "# show howto for configuring sasldb"
370 @${ECHO_CMD} "make howto-sasldb"
371 @${ECHO_CMD} "#"
372 @${ECHO_CMD} "# create a self-signed certificate"
373 @${ECHO_CMD} "make tls-install"
374 @${ECHO_CMD} "#"
375
376 .include <bsd.port.pre.mk>
377
378 .if ${PORT_OPTIONS:MTLS}
379 .if !defined(WITH_OPENSSL_BASE)
380 SITE+= ${FILESDIR}/site.config.m4.ssl
381 .endif
382 SITE+= ${FILESDIR}/site.config.m4.tls
383 .endif
384
385 .if exists(${FILESDIR}/site.config.m4.local)
386 SITE+= ${FILESDIR}/site.config.m4.local
387 .endif
388
389 .if exists(${DESTDIR}/etc/mail/mailer.conf) && ${PREFIX} == "/usr"
390 pre-everything::
391 @${ECHO_CMD} "#"
392 @${ECHO_CMD} "# You can't override the base sendmail this way."
393 @${ECHO_CMD} "# your version FreeBSD use mailwrapper."
394 @${ECHO_CMD} "#"
395 @${ECHO_CMD} "# Please install with normal PREFIX"
396 @${ECHO_CMD} "# and activate the port version with"
397 @${ECHO_CMD} "# cd ${PORTSDIR}/mail/sendmail && make mailer.conf"
398 @${ECHO_CMD} "#"
399 @${FALSE}
400 .endif
401
402 .include <bsd.port.post.mk>

Properties

Name Value
svn:keywords MidnightBSD=%H