knot: update to version 3.2.10
[feed/packages.git] / net / knot / Makefile
1 #
2 # Copyright (C) 2014-2021 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.2.10
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:=c2e3e267ace2d9d23d92fd64445d4735d974c698f5716ae505dc0867e56834f8
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 --enable-maxminddb=no \
155 --disable-fastparser \
156 --without-libidn \
157 --with-libnghttp2=no \
158 --with-rundir=/var/run/knot \
159 --with-storage=/var/lib/knot \
160 --with-configdir=/etc/knot \
161 --with-conf-mapsize=20
162
163 TARGET_CFLAGS += -DNDEBUG
164
165 define Package/knot/conffiles
166 /etc/knot/knot.conf
167 endef
168
169 define Build/Compile
170 $(MAKE) -C $(PKG_BUILD_DIR)
171 $(MAKE) -C $(PKG_BUILD_DIR)/tests check-compile
172 endef
173
174 ifneq ($(CONFIG_arc),y)
175 define Build/InstallDev
176 $(INSTALL_DIR) $(1)/usr/lib
177 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} $(1)/usr/lib/
178
179 $(INSTALL_DIR) $(1)/usr/include/libknot
180 $(CP) $(PKG_INSTALL_DIR)/usr/include/libknot/* $(1)/usr/include/libknot/
181
182 $(INSTALL_DIR) $(1)/usr/include/libdnssec
183 $(CP) $(PKG_INSTALL_DIR)/usr/include/libdnssec/* $(1)/usr/include/libdnssec/
184
185 $(INSTALL_DIR) $(1)/usr/include/libzscanner
186 $(CP) $(PKG_INSTALL_DIR)/usr/include/libzscanner/* $(1)/usr/include/libzscanner/
187
188 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
189 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
190 endef
191 endif
192
193 define Package/knot-libs/install
194 $(INSTALL_DIR) $(1)/usr/lib
195 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdnssec.so.* $(1)/usr/lib/
196 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libknot.so.* $(1)/usr/lib/
197 endef
198
199 define Package/knot-libzscanner/install
200 $(INSTALL_DIR) $(1)/usr/lib
201 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzscanner.so.* $(1)/usr/lib/
202 endef
203
204 define Package/knot/install
205 $(INSTALL_DIR) $(1)/usr/bin
206 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotc $(1)/usr/bin/
207 $(INSTALL_DIR) $(1)/usr/sbin
208 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotd $(1)/usr/sbin/
209
210 $(INSTALL_DIR) $(1)/etc/knot
211 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/knot/knot.sample.conf $(1)/etc/knot/knot.conf
212
213 $(INSTALL_DIR) $(1)/etc/init.d
214 $(INSTALL_BIN) ./files/knotd.init $(1)/etc/init.d/knotd
215 endef
216
217 define Package/knot-dig/install
218 $(INSTALL_DIR) $(1)/usr/bin
219 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdig $(1)/usr/bin/
220 endef
221
222 define Package/knot-host/install
223 $(INSTALL_DIR) $(1)/usr/bin
224 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/khost $(1)/usr/bin/
225 endef
226
227 define Package/knot-nsupdate/install
228 $(INSTALL_DIR) $(1)/usr/bin
229 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/knsupdate $(1)/usr/bin/
230 endef
231
232 define Package/knot-zonecheck/install
233 $(INSTALL_DIR) $(1)/usr/bin
234 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kzonecheck $(1)/usr/bin/
235 endef
236
237 define Package/knot-keymgr/install
238 $(INSTALL_DIR) $(1)/usr/bin
239 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keymgr $(1)/usr/bin/
240 endef
241
242 define Package/knot-tests/install
243 $(INSTALL_DIR) $(1)/usr/share/knot
244 $(INSTALL_BIN) ./files/runtests.sh $(1)/usr/share/knot/
245
246 $(INSTALL_DIR) $(1)/usr/share/knot/tap
247 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/.libs/runtests $(1)/usr/share/knot/tap/
248 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/libtap.sh $(1)/usr/share/knot/tap/
249
250 $(INSTALL_DIR) $(1)/usr/share/knot/tests
251
252 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/.libs/zscanner-tool $(1)/usr/share/knot/tests/
253 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/test_zscanner $(1)/usr/share/knot/tests/
254 $(INSTALL_DATA) $(PKG_BUILD_DIR)/tests/libzscanner/TESTS $(1)/usr/share/knot/tests/
255 cp -a $(PKG_BUILD_DIR)/tests/libzscanner/data $(1)/usr/share/knot/tests/
256
257 for module in contrib knot libdnssec libknot modules utils; do \
258 find $(PKG_BUILD_DIR)/tests/$$$${module}/.libs -maxdepth 1 -executable -type f | \
259 xargs -I{} basename {} | \
260 xargs -I{} $(INSTALL_BIN) -T $(PKG_BUILD_DIR)/tests/$$$${module}/.libs/{} \
261 $(1)/usr/share/knot/tests/$$$${module}_{}; \
262 done
263 endef
264
265 $(eval $(call BuildPackage,knot-libs))
266 $(eval $(call BuildPackage,knot-libzscanner))
267 $(eval $(call BuildPackage,knot))
268 $(eval $(call BuildPackage,knot-dig))
269 $(eval $(call BuildPackage,knot-host))
270 $(eval $(call BuildPackage,knot-nsupdate))
271 $(eval $(call BuildPackage,knot-zonecheck))
272 $(eval $(call BuildPackage,knot-keymgr))
273 $(eval $(call BuildPackage,knot-tests))