aboutsummaryrefslogtreecommitdiff
path: root/dns/djbdns/Makefile
blob: 09267d3173ef92b3cc9869563cf33a8f077aadac (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
# Created by: Neil Blakey-Milner
# $FreeBSD$

PORTNAME?=	djbdns
PORTVERSION?=	${DJBDNS_VER}
PORTREVISION?=	21
PORTEPOCH?=	1
CATEGORIES?=	dns
MASTER_SITES=	http://cr.yp.to/djbdns/ \
		ftp://cr.yp.to/djbdns/
DISTNAME=	djbdns-${DJBDNS_VER}
DISTFILES=	${DISTNAME}${EXTRACT_SUFX}

MAINTAINER?=	lx@FreeBSD.org
COMMENT?=	Collection of secure and reliable DNS tools

RUN_DEPENDS=	setuidgid:sysutils/daemontools \
		tcpserver:sysutils/ucspi-tcp

CONFLICTS=	djbdns-tools-[0-9]*
LEGAL_TEXT=	No license -- see http://cr.yp.to/softwarelaw.html

OPTIONS_DEFINE=	DUMPCACHE IP6 IGNOREIP JUMBO MAN PERSISTENT_MMAP SRV DNSCURVE ADD_USERS
OPTIONS_DEFAULT=	MAN
OPTIONS_SUB=	yes

DUMPCACHE_DESC=	persistent cache for dnscache
IP6_DESC=	IPv6 support by Felix von Leitner
IGNOREIP_DESC=	ignoreip2 patch by Russell Nelson
JUMBO_DESC=	jumbo patch by Claudiu Costin
MAN_DESC=	manual pages by Gerritt Pape
PERSISTENT_MMAP_DESC=	persistent mmap patch by Lennert Buytenhek
SRV_DESC=	SRV record patch by Michael Handler
DNSCURVE_DESC=	DNSCurve support by Matthew Dempsky
ADD_USERS_DESC=	Add dnscache, tinydns and dnslog users/groups

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MADD_USERS}
USERS?=	dnscache tinydns dnslog
GROUPS?=dnscache tinydns dnslog
.endif

.if ${PORT_OPTIONS:MJUMBO}
.if ${PORT_OPTIONS:MIP6} || ${PORT_OPTIONS:MIGNOREIP} || ${PORT_OPTIONS:MSRV} || \
	${PORT_OPTIONS:MDNSCURVE}
BROKEN=		The jumbo patch currently conflicts with the IPv6, ignoreip2, SRV and DNSCURVE patches
.endif

PATCH_SITES+=	http://people.FreeBSD.org/~roam/ports/dns/djbdns/:jumbo \
		LOCAL/roam/dns/djbdns:jumbo
PATCHFILES+=	jumbo-p13.patch.gz:jumbo
PATCH_DIST_STRIP=	-p1
.if ${PORT_OPTIONS:MDUMPCACHE}
CFLAGS+=	-DDUMPCACHE
.endif
.endif

.if ${PORT_OPTIONS:MMAN}
MANDATE=	-20031023
MASTER_SITES+=	http://smarden.org/pape/djb/manpages/:manpages
DISTFILES+=	${DISTNAME}-man${MANDATE}.tar.gz:manpages
.endif

.if ${PORT_OPTIONS:MIP6}
PKGNAMESUFFIX=	-ipv6
PORTVERSION=	${DJBDNS_VER}.${DJBDNS_V6_VER:S/test/b/:S/diff//}
PATCH_SITES+=	http://www.fefe.de/dns/:ipv6
PATCHFILES+=	${PORTNAME}-${DJBDNS_VER}-${DJBDNS_V6_VER}.diff.bz2:ipv6
PATCH_DIST_STRIP=	-p1
EXTRA_PATCHES+=	${FILESDIR}/uint32.patch ${FILESDIR}/djbdns-ipv6-ooyama.patch
.endif

.if ${PORT_OPTIONS:MDUMPCACHE} && ! ${PORT_OPTIONS:MJUMBO}
.if ${PORT_OPTIONS:MIP6}
BROKEN=		The IPv6 and dnscache-dumpcache patches are currently in conflict
.endif
PATCH_SITES+=	http://efge.free.fr/djbdns/:dumpcache
PATCHFILES+=	patch-dnscache-dumpcache-v4.txt:dumpcache
PATCH_DIST_STRIP=	-p1
CFLAGS+=	-DDUMPCACHE
.endif

.if ${PORT_OPTIONS:MIGNOREIP}
.if ${PORT_OPTIONS:MIP6}
BROKEN=		The IPv6 patch already includes the ignoreip2 functionality
.endif
PATCH_SITES+=	http://tinydns.org/:ignoreip
PATCHFILES+=	djbdns-1.05-ignoreip2.patch:ignoreip
PATCH_DIST_STRIP=	-p1
.endif

.if ${PORT_OPTIONS:MPERSISTENT_MMAP}
PATCH_SITES+=	http://people.FreeBSD.org/~roam/ports/patches/dns/:persistent
PATCHFILES+=	tinydns-persistmmap-20040418.patch:persistent
PATCH_DIST_STRIP=	-p1
.endif

.if ${PORT_OPTIONS:MSRV}
PATCH_SITES+=	http://tinydns.org/:srv
PATCHFILES+=	srv-patch:srv
PATCH_DIST_STRIP=	-p1
.endif

.if ${PORT_OPTIONS:MDNSCURVE}
.if ${PORT_OPTIONS:MIP6}
BROKEN=	The IPv6 and DNSCurve patches are currently in conflict
.endif
PATCH_SITES+=	http://shinobi.dempsky.org/~matthew/patches/:dnscurve
PATCHFILES+=	djbdns-dnscurve-20090602.patch:dnscurve
PATCH_DIST_STRIP=	-p1
CFLAGS+=	-I${LOCALBASE}/include -L${LOCALBASE}/lib
LDFLAGS+=	-I${LOCALBASE}/include -L${LOCALBASE}/lib
BUILD_DEPENDS+=	nacl-sha256:security/nacl
.endif

DJBDNS_VER=	1.05
DJBDNS_V6_VER=	test23

ALL_TARGET=	prog
INSTALL_TARGET=	setup check

.if ${PORT_OPTIONS:MIP6}
PLIST_SUB+=	WITH_IP6=""
.else
PLIST_SUB+=	WITH_IP6="@comment "
.endif

post-patch:
	@${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/conf-cc
	@${ECHO_CMD} "${CC} ${STRIP} ${LDFLAGS}" > ${WRKSRC}/conf-ld
	@${ECHO_CMD} "${STAGEDIR}${PREFIX}" > ${WRKSRC}/conf-home.stage
	@${ECHO_CMD} "${PREFIX}" > ${WRKSRC}/conf-home

post-build:
	@${ECHO_MSG} "===> Rebuilding DJB installer to respect STAGEDIR"
	@${MV} -f ${WRKSRC}/conf-home ${WRKSRC}/conf-home.sav
	@${MV} -f ${WRKSRC}/conf-home.stage ${WRKSRC}/conf-home
	@cd ${WRKSRC} ; ${RM} install instcheck install.o instcheck.o hier.o auto_home.o auto_home.c
	@cd ${WRKSRC} ; ${DO_MAKE_BUILD} install instcheck
	@${TOUCH} ${WRKSRC}/*-conf
	@${MV} -f ${WRKSRC}/conf-home.sav ${WRKSRC}/conf-home

.if ${PORT_OPTIONS:MMAN}
post-install:
	@${INSTALL_MAN} ${WRKDIR}/djbdns-man/*.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/
	@${INSTALL_MAN} ${WRKDIR}/djbdns-man/*.8 ${STAGEDIR}${MAN8PREFIX}/man/man8/
.endif

.include <bsd.port.mk>