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