summaryrefslogtreecommitdiffstats
path: root/net/djbdns/Makefile
blob: 04d60b248bdf9bbd1fea264de75702fad7ebbeda (plain)
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
#
# Copyright (C) 2007-2012 OpenWrt.org
# Original port by FreeWRT project.
#
# 2007     Alexander Tsvyashchenko  Adapted FreeWRT port for OpenWRT (Trac ticket 2497)
# 2008     Some Danish guy          Created a port for OpenWRT 7.09
# 20090403 jhalfmoon                Modified and augmented existing packages to work on OpenWRT buildroot (v8.09)
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=djbdns
PKG_VERSION:=1.05
PKG_RELEASE:=7

PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz
PKG_SOURCE_URL:=http://cr.yp.to/djbdns/
PKG_MD5SUM:=3147c5cd56832aa3b41955c7a51cbeb2
PKG_BUILD_DEPENDS:=daemontools ucspi-tcp

include $(INCLUDE_DIR)/package.mk

define Package/djbdns/Default
  SECTION:=net
  CATEGORY:=Network
  URL:=http://cr.yp.to/djbdns.html
  SUBMENU:=IP Addresses and Names
#  SUBMENU:=djbdns
endef

define Package/djbdns-base
  $(call Package/djbdns/Default)
  TITLE:=djbdns base configuration file
endef

define Package/djbdns-dnscache
  $(call Package/djbdns/Default)
  TITLE:=Recursive and forwarding caching name server
  DEPENDS:= +djbdns-base
endef

define Package/djbdns-tinydns
  $(call Package/djbdns/Default)
  TITLE:=Authoritative name server
  DEPENDS:= +djbdns-base
endef

define Package/djbdns-axfrdns
  $(call Package/djbdns/Default)
  TITLE:=Zone transfer server
  DEPENDS:= +djbdns-base +djbdns-tinydns +ucspi-tcp
endef

define Package/djbdns-rbldns
  $(call Package/djbdns/Default)
  TITLE:=Real-time Block List name server
  DEPENDS:= +djbdns-base
endef

define Package/djbdns-walldns
  $(call Package/djbdns/Default)
  TITLE:=Reverse DNS wall
  DEPENDS:= +djbdns-base
endef

define Package/djbdns-tools
  $(call Package/djbdns/Default)
  TITLE:=Tools for testing and debugging DNS issues
endef

define Package/djdbns/description
	djbdns is a collection of Domain Name System tools.
	It includes software for all the fundamental DNS operations:
	* DNS server: publishing addresses of Internet hosts.
	* DNS cache: finding addresses of Internet hosts.
	* DNS client: talking to a DNS cache.

	Also included is a DNS client C library, several command-line
	DNS client utilities, several DNS debugging tools.
endef

define Package/djbdns-base/description
	The shared config file for the djbdns daemons.
endef

define Package/djbdns-dnscache/description
	dnscache is a DNS cache.
	It accepts recursive DNS queries from local clients such as web
	browsers and mail transfer agents. It collects responses from
	remote DNS servers. It caches the responses to save time later.
endef

define Package/djbdns-tinydns/description
	tinydns is a DNS server.
	It accepts iterative DNS queries from hosts around the Internet
	and responds with locally configured information.
endef

define Package/djbdns-axfrdns/description
	axfrdns is a DNS zone-transfer server.
	It reads a zone-transfer request in DNS-over-TCP format
	from its standard input and responds with locally configured
	information.
endef

define Package/djbdns-rbldns/description
	rbldns is an IP-address-listing DNS server.
	It accepts iterative DNS queries from hosts around the Internet asking
	about various IP addresses. It provides responses showing whether the
	addresses are on a locally configured list, such as RBL or DUL.
endef

define Package/djbdns-walldns/description
	walldns is a reverse DNS wall.
	It accepts iterative DNS queries for in-addr.arpa domains from hosts
	around the Internet and supplies generic responses that avoid
	revealing local host information.
endef

define Package/djbdns-tools/description
	Several command-line DNS client utilities and DNS debugging tools.
endef

define Build/Compile
	TARGET_CC="$(TARGET_CC)" \
	TARGET_CFLAGS="$(TARGET_CFLAGS)" \
	TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
	TARGET_RANLIB="$(TARGET_CROSS)ranlib" \
	$(MAKE) -C $(PKG_BUILD_DIR)
endef

define Package/djbdns-base/install
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_DATA) ./files/djbdns.conf $(1)/etc/config/djbdns
endef

define Package/djbdns-base/conffiles
/etc/config/djbdns
endef

define Package/djbdns-dnscache/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) dnscache pickdns pickdns-data $(1)/usr/bin)
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/dnscache.init $(1)/etc/init.d/dnscache
	$(CP) -r ./files/dnscache $(1)/etc/
	$(CP) $(PKG_BUILD_DIR)/dnsroots.global $(1)/etc/dnscache/
	$(INSTALL_DIR) $(1)/etc/dnscache/ip
	$(INSTALL_DIR) $(1)/etc/dnscache/servers
	$(CP) $(PKG_BUILD_DIR)/dnsroots.global $(1)/etc/dnscache/servers/@
endef

define Package/djbdns-tinydns/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) tinydns tinydns-data tinydns-edit tinydns-get $(1)/usr/bin)
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/tinydns.init $(1)/etc/init.d/tinydns
	$(CP) -r ./files/tinydns $(1)/etc/
endef

define Package/djbdns-axfrdns/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) axfrdns axfr-get $(1)/usr/bin)
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/axfrdns.init $(1)/etc/init.d/axfrdns
	$(CP) -r ./files/axfrdns $(1)/etc/
endef

define Package/djbdns-rbldns/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) rbldns rbldns-data $(1)/usr/bin)
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/rbldns.init $(1)/etc/init.d/rbldns
	$(CP) -r ./files/rbldns $(1)/etc/
endef

define Package/djbdns-walldns/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) walldns $(1)/usr/bin)
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/walldns.init $(1)/etc/init.d/walldns
endef

define Package/djbdns-tools/install
	$(INSTALL_DIR) $(1)/usr/bin
	(cd $(PKG_BUILD_DIR); \
	$(INSTALL_BIN) dnsfilter dnsip dnsipq dnsmx dnsname dnsnamex dnsq \
                       dnsqr dnstrace dnstracesort dnstxt random-ip \
	$(1)/usr/bin)
	$(INSTALL_BIN) ./files/dnsroots-update $(1)/usr/bin/
	$(INSTALL_BIN) ./files/dnsqrx $(1)/usr/bin/
endef

$(eval $(call BuildPackage,djbdns-base))
$(eval $(call BuildPackage,djbdns-tinydns))
$(eval $(call BuildPackage,djbdns-dnscache))
$(eval $(call BuildPackage,djbdns-axfrdns))
$(eval $(call BuildPackage,djbdns-rbldns))
$(eval $(call BuildPackage,djbdns-walldns))
$(eval $(call BuildPackage,djbdns-tools))