treewide: change email
[feed/packages.git] / net / knot / Makefile
1 #
2 # Copyright (C) 2014-2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=knot
11 PKG_VERSION:=3.0.7
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
16 PKG_HASH:=2bad8be0be95c8f54a26d1e16299e65f31ae1b34bd6ad3819aa50e7b40521484
17
18 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
19 PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD BSD-3-Clause OLDAP-2.8
20 PKG_CPE_ID:=cpe:/a:knot-dns:knot_dns
21
22 PKG_FIXUP:=autoreconf
23 PKG_INSTALL:=1
24
25 include $(INCLUDE_DIR)/package.mk
26
27 define Package/knot-lib/Default
28 SECTION:=libs
29 CATEGORY:=Libraries
30 TITLE:=Knot DNS
31 DEPENDS=+libpthread
32 URL:=https://www.knot-dns.cz
33 endef
34
35 define Package/knot/Default
36 SECTION:=net
37 CATEGORY:=Network
38 SUBMENU:=IP Addresses and Names
39 TITLE:=Knot DNS
40 DEPENDS=+libatomic
41 URL:=https://www.knot-dns.cz
42 endef
43
44 define Package/knot-libs
45 $(call Package/knot-lib/Default)
46 TITLE+= common DNS and DNSSEC libraries
47 DEPENDS+=+libgnutls +lmdb @!arc
48 endef
49
50 define Package/knot-libzscanner
51 $(call Package/knot-lib/Default)
52 TITLE+= zone parser library
53 DEPENDS+=@!arc
54 endef
55
56 define Package/knot
57 $(call Package/knot/Default)
58 TITLE+= server with control utility
59 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
60 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
61 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
62 USERID:=knot=5353:knot=5353
63 endef
64
65 define Package/knot-dig
66 $(call Package/knot/Default)
67 TITLE+= advanced DNS lookup utility
68 DEPENDS+=+libedit +knot-libs
69 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE))
70 endef
71
72 define Package/knot-host
73 $(call Package/knot/Default)
74 TITLE+= simple DNS lookup utility
75 DEPENDS+=+libedit +knot-libs
76 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE))
77 endef
78
79 define Package/knot-nsupdate
80 $(call Package/knot/Default)
81 TITLE+= dynamic DNS update utility
82 DEPENDS+=+libedit +knot-libs +knot-libzscanner
83 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
84 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
85 endef
86
87 define Package/knot-zonecheck
88 $(call Package/knot/Default)
89 TITLE+= zonefile check utility
90 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
91 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
92 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
93 endef
94
95 define Package/knot-keymgr
96 $(call Package/knot/Default)
97 TITLE+= DNSSEC key management utility
98 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
99 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
100 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
101 endef
102
103 define Package/knot-tests
104 $(call Package/knot/Default)
105 TITLE+= tests
106 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
107 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
108 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
109 endef
110
111 define Package/knot-libs/description
112 Knot DNS common DNS and DNSSEC libraries.
113 endef
114
115 define Package/knot-libzscanner/description
116 Knot DNS zone parser library.
117 endef
118
119 define Package/knot/description
120 High-performance authoritative-only DNS server.
121 endef
122
123 define Package/knot-dig/description
124 Knot DNS advanced DNS lookup utility.
125 endef
126
127 define Package/knot-host/description
128 Knot DNS simple DNS lookup utility.
129 endef
130
131 define Package/knot-nsupdate/description
132 Knot DNS dynamic DNS update utility.
133 endef
134
135 define Package/knot-zonecheck/description
136 Knot DNS zonefile check utility.
137 endef
138
139 define Package/knot-keymgr/description
140 Knot DNS DNSSEC key management utility.
141 endef
142
143 define Package/knot-tests/description
144 Unit tests for the Knot DNS server and libraries.
145 Usage: /usr/share/knot/runtests.sh
146 endef
147
148 export KNOT_VERSION_FORMAT=release
149
150 CONFIGURE_ARGS += \
151 --enable-recvmmsg=no \
152 --enable-cap-ng=no \
153 --enable-xdp=no \
154 --disable-fastparser \
155 --without-libidn \
156 --with-libnghttp2=no \
157 --with-rundir=/var/run/knot \
158 --with-storage=/var/lib/knot \
159 --with-configdir=/etc/knot \
160 --with-conf-mapsize=20
161
162 TARGET_CFLAGS += -DNDEBUG
163
164 define Package/knot/conffiles
165 /etc/knot/knot.conf
166 endef
167
168 define Build/Compile
169 $(MAKE) -C $(PKG_BUILD_DIR)
170 $(MAKE) -C $(PKG_BUILD_DIR)/tests check-compile
171 endef
172
173 ifneq ($(CONFIG_arc),y)
174 define Build/InstallDev
175 $(INSTALL_DIR) $(1)/usr/lib
176 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} $(1)/usr/lib/
177
178 $(INSTALL_DIR) $(1)/usr/include/libknot
179 $(CP) $(PKG_INSTALL_DIR)/usr/include/libknot/* $(1)/usr/include/libknot/
180
181 $(INSTALL_DIR) $(1)/usr/include/libdnssec
182 $(CP) $(PKG_INSTALL_DIR)/usr/include/libdnssec/* $(1)/usr/include/libdnssec/
183
184 $(INSTALL_DIR) $(1)/usr/include/libzscanner
185 $(CP) $(PKG_INSTALL_DIR)/usr/include/libzscanner/* $(1)/usr/include/libzscanner/
186
187 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
188 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
189 endef
190 endif
191
192 define Package/knot-libs/install
193 $(INSTALL_DIR) $(1)/usr/lib
194 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdnssec.so.* $(1)/usr/lib/
195 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libknot.so.* $(1)/usr/lib/
196 endef
197
198 define Package/knot-libzscanner/install
199 $(INSTALL_DIR) $(1)/usr/lib
200 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzscanner.so.* $(1)/usr/lib/
201 endef
202
203 define Package/knot/install
204 $(INSTALL_DIR) $(1)/usr/bin
205 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotc $(1)/usr/bin/
206 $(INSTALL_DIR) $(1)/usr/sbin
207 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotd $(1)/usr/sbin/
208
209 $(INSTALL_DIR) $(1)/etc/knot
210 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/knot/knot.sample.conf $(1)/etc/knot/knot.conf
211
212 $(INSTALL_DIR) $(1)/etc/init.d
213 $(INSTALL_BIN) ./files/knotd.init $(1)/etc/init.d/knotd
214 endef
215
216 define Package/knot-dig/install
217 $(INSTALL_DIR) $(1)/usr/bin
218 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdig $(1)/usr/bin/
219 endef
220
221 define Package/knot-host/install
222 $(INSTALL_DIR) $(1)/usr/bin
223 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/khost $(1)/usr/bin/
224 endef
225
226 define Package/knot-nsupdate/install
227 $(INSTALL_DIR) $(1)/usr/bin
228 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/knsupdate $(1)/usr/bin/
229 endef
230
231 define Package/knot-zonecheck/install
232 $(INSTALL_DIR) $(1)/usr/bin
233 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kzonecheck $(1)/usr/bin/
234 endef
235
236 define Package/knot-keymgr/install
237 $(INSTALL_DIR) $(1)/usr/bin
238 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keymgr $(1)/usr/bin/
239 endef
240
241 define Package/knot-tests/install
242 $(INSTALL_DIR) $(1)/usr/share/knot
243 $(INSTALL_BIN) ./files/runtests.sh $(1)/usr/share/knot/
244
245 $(INSTALL_DIR) $(1)/usr/share/knot/tap
246 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/.libs/runtests $(1)/usr/share/knot/tap/
247 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/libtap.sh $(1)/usr/share/knot/tap/
248
249 $(INSTALL_DIR) $(1)/usr/share/knot/tests
250
251 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/.libs/zscanner-tool $(1)/usr/share/knot/tests/
252 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/test_zscanner $(1)/usr/share/knot/tests/
253 $(INSTALL_DATA) $(PKG_BUILD_DIR)/tests/libzscanner/TESTS $(1)/usr/share/knot/tests/
254 cp -a $(PKG_BUILD_DIR)/tests/libzscanner/data $(1)/usr/share/knot/tests/
255
256 for module in contrib knot libdnssec libknot modules utils; do \
257 find $(PKG_BUILD_DIR)/tests/$$$${module}/.libs -maxdepth 1 -executable -type f | \
258 xargs -I{} basename {} | \
259 xargs -I{} $(INSTALL_BIN) -T $(PKG_BUILD_DIR)/tests/$$$${module}/.libs/{} \
260 $(1)/usr/share/knot/tests/$$$${module}_{}; \
261 done
262 endef
263
264 $(eval $(call BuildPackage,knot-libs))
265 $(eval $(call BuildPackage,knot-libzscanner))
266 $(eval $(call BuildPackage,knot))
267 $(eval $(call BuildPackage,knot-dig))
268 $(eval $(call BuildPackage,knot-host))
269 $(eval $(call BuildPackage,knot-nsupdate))
270 $(eval $(call BuildPackage,knot-zonecheck))
271 $(eval $(call BuildPackage,knot-keymgr))
272 $(eval $(call BuildPackage,knot-tests))