Merge pull request #17305 from paper42/runc-1.0.3
[feed/packages.git] / libs / avahi / Makefile
1 #
2 # Copyright (C) 2007-2016 OpenWrt.org
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:=avahi
11 PKG_VERSION:=0.8
12 PKG_RELEASE:=7
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION) \
16 https://avahi.org/download
17 PKG_HASH:=060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda
18
19 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
20 PKG_LICENSE:=LGPL-2.1-or-later
21 PKG_LICENSE_FILES:=LICENSE
22 PKG_CPE_ID:=cpe:/a:avahi:avahi
23
24 PKG_FIXUP:=autoreconf
25 PKG_INSTALL:=1
26 PKG_BUILD_PARALLEL:=1
27
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/avahi/Default
31 SECTION:=net
32 CATEGORY:=Network
33 TITLE:=An mDNS/DNS-SD implementation
34 URL:=http://www.avahi.org/
35 endef
36
37 define Package/avahi/Default/description
38 Avahi is an mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf)
39 implementation (library). It facilitates
40 service discovery on a local network -- this means that
41 you can plug your laptop or computer into a network and
42 instantly be able to view other people who you can chat with,
43 find printers to print to or find files being shared.
44 This kind of technology is already found in MacOS X
45 (branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')
46 and is very convenient.
47 endef
48
49 define Package/libavahi/Default
50 $(call Package/avahi/Default)
51 SECTION:=libs
52 CATEGORY:=Libraries
53 PROVIDES:=libavahi
54 DEPENDS:=+libpthread
55 endef
56
57 define Package/libavahi/description
58 $(call Package/avahi/Default/description)
59 .
60 The libavahi package contains the mDNS/DNS-SD shared libraries,
61 used by other programs. Specifically, it provides
62 libavahi-core and libavahi-common libraries.
63 endef
64
65 define Package/avahi-autoipd
66 $(call Package/avahi/Default)
67 SUBMENU:=IP Addresses and Names
68 DEPENDS:=+libdaemon
69 TITLE:=IPv4LL network address configuration daemon
70 endef
71
72 define Package/avahi-autoipd/description
73 $(call Package/avahi/Default/description)
74 .
75 This package implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local
76 Addresses" (IETF RFC3927), a protocol for automatic IP address configuration
77 from the link-local 169.254.0.0/16 range without the need for a central
78 server. It is primarily intended to be used in ad-hoc networks which lack a
79 DHCP server.
80 endef
81
82 define Package/avahi-dbus-daemon
83 $(call Package/avahi/Default)
84 PROVIDES:=avahi-daemon
85 VARIANT:=dbus
86 SUBMENU:=IP Addresses and Names
87 DEPENDS:=+libavahi-dbus-support +libexpat +librt +libdaemon
88 TITLE+= (daemon)
89 endef
90
91 define Package/avahi-nodbus-daemon
92 $(call Package/avahi/Default)
93 PROVIDES:=avahi-daemon
94 VARIANT:=nodbus
95 SUBMENU:=IP Addresses and Names
96 DEPENDS:=+libavahi-nodbus-support +libexpat +librt +libdaemon
97 TITLE+= (daemon)
98 USERID:=avahi=105:avahi=105
99 endef
100
101 define Package/avahi-daemon/description
102 $(call Package/avahi/Default/description)
103 .
104 This package contains an mDNS/DNS-SD daemon.
105 endef
106
107 Package/avahi-dbus-daemon/description=$(Package/avahi-daemon/description)
108 Package/avahi-nodbus-daemon/description=$(Package/avahi-daemon/description)
109
110 define Package/avahi-daemon/conffiles
111 /etc/avahi/avahi-daemon.conf
112 endef
113
114 Package/avahi-dbus-daemon/conffiles=$(Package/avahi-daemon/conffiles)
115 Package/avahi-nodbus-daemon/conffiles=$(Package/avahi-daemon/conffiles)
116
117 define Package/avahi-daemon-service-http
118 $(call Package/avahi/Default)
119 SUBMENU:=IP Addresses and Names
120 DEPENDS:=+avahi-daemon
121 TITLE:=Announce HTTP service
122 endef
123
124 define Package/avahi-daemon-service-http/description
125 $(call Package/avahi/Default/description)
126 .
127 This package contains the service definition for announcing HTTP service.
128 endef
129
130 define Package/avahi-daemon-service-http/conffiles
131 /etc/avahi/services/http.service
132 endef
133
134 define Package/avahi-daemon-service-ssh
135 $(call Package/avahi/Default)
136 SUBMENU:=IP Addresses and Names
137 DEPENDS:=+avahi-daemon
138 TITLE:=Announce SSH service
139 endef
140
141 define Package/avahi-daemon-service-ssh/description
142 $(call Package/avahi/Default/description)
143 .
144 This package contains the service definition for announcing SSH service.
145 endef
146
147 define Package/avahi-daemon-service-ssh/conffiles
148 /etc/avahi/services/ssh.service
149 endef
150
151 define Package/avahi-dnsconfd
152 $(call Package/avahi/Default)
153 SUBMENU:=IP Addresses and Names
154 DEPENDS:=+libavahi +libdaemon +libpthread
155 TITLE:=A Unicast DNS server using avahi-daemon
156 endef
157
158 define Package/avahi-dnsconfd/description
159 $(call Package/avahi/Default/description)
160 .
161 This package contains a Unicast DNS server from mDNS/DNS-SD configuration
162 daemon, which may be used to configure conventional DNS servers using mDNS
163 in a DHCP-like fashion. Especially useful on IPv6.
164 endef
165
166 define Package/libavahi-dbus-support
167 $(call Package/libavahi/Default)
168 VARIANT:=dbus
169 DEPENDS:=+dbus
170 TITLE+= (D-Bus support)
171 endef
172
173 define Package/libavahi-nodbus-support
174 $(call Package/libavahi/Default)
175 VARIANT:=nodbus
176 TITLE+= (No D-Bus)
177 endef
178
179 define Package/libavahi-dbus-support/description
180 $(call Package/libavahi/description)
181 .
182 The libavahi-dbus-support package enables
183 D-Bus support in avahi, needed to support
184 the libavahi-client library and avahi-utils.
185 .
186 Selecting this package modifies the build configuration
187 so that avahi packages are built with support for D-BUS enabled;
188 it does not generate a separate binary of its own.
189 It also automatically adds the D-Bus package to the build.
190 libavahi-dbus-support is selected automatically if you select
191 libavahi-client or avahi-utils.
192 endef
193
194 define Package/libavahi-nodbus-support/description
195 $(call Package/libavahi/description)
196 .
197 Selecting this package modifies the build configuration
198 so that avahi packages are built without support for D-BUS enabled;
199 it does not generate a separate binary of its own.
200 endef
201
202 define Package/libavahi-client
203 $(call Package/avahi/Default)
204 SECTION:=libs
205 CATEGORY:=Libraries
206 VARIANT:=dbus
207 DEPENDS:=+avahi-dbus-daemon
208 TITLE+= (libavahi-client library)
209 endef
210
211 define Package/libavahi-client/description
212 $(call Package/avahi/Default/description)
213 .
214 This packages adds the libavahi-client library.
215 It also automatically adds the required
216 libavahi-dbus-support and the avahi-dbus-daemon packages.
217 For more information please see the avahi documentation.
218 endef
219
220 define Package/libavahi-compat-libdnssd
221 $(call Package/avahi/Default)
222 SECTION:=libs
223 CATEGORY:=Libraries
224 VARIANT:=dbus
225 DEPENDS:=+libavahi-client
226 TITLE+= (libdnssd)
227 endef
228
229 define Package/libavahi-compat-libdnssd/description
230 $(call Package/avahi/Default/description)
231 .
232 This packages adds the libavahi-compat-libdnssd library.
233 It also automatically adds the required libavahi-client package.
234 For more information please see the avahi documentation.
235 endef
236
237 define Package/avahi-utils
238 $(call Package/avahi/Default)
239 SUBMENU:=IP Addresses and Names
240 VARIANT:=dbus
241 DEPENDS:=+libavahi-client +libgdbm
242 TITLE+= (utilities)
243 endef
244
245 define Package/avahi-utils/description
246 $(call Package/avahi/Default/description)
247 .
248 This packages installs the following avahi utility programs:
249 avahi-browse, avahi-publish, avahi-resolve, avahi-set-host-name.
250 It also automatically adds the required libavahi-client package.
251 For more information please see the avahi documentation.
252 endef
253
254 TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
255
256 CONFIGURE_ARGS += \
257 --enable-shared \
258 --enable-static \
259 --disable-glib \
260 --disable-gobject \
261 --disable-introspection \
262 --disable-qt3 \
263 --disable-qt4 \
264 --disable-qt5 \
265 --disable-gtk \
266 --disable-gtk3 \
267 --disable-dbm \
268 --enable-gdbm \
269 --enable-libdaemon \
270 --disable-libevent \
271 --disable-python \
272 --disable-python-dbus \
273 --disable-mono \
274 --disable-monodoc \
275 --disable-doxygen-doc \
276 --disable-doxygen-dot \
277 --disable-doxygen-man \
278 --disable-doxygen-rtf \
279 --disable-doxygen-xml \
280 --disable-doxygen-chm \
281 --disable-doxygen-chi \
282 --disable-doxygen-html \
283 --disable-doxygen-ps \
284 --disable-doxygen-pdf \
285 --disable-manpages \
286 --disable-xmltoman \
287 --disable-tests \
288 --with-xml=expat \
289 --with-distro=none \
290 --with-avahi-user=nobody \
291 --with-avahi-group=nogroup \
292 --with-avahi-priv-access-group=nogroup \
293 --with-autoipd-user=nobody \
294 --with-autoipd-group=nogroup
295
296 ifeq ($(BUILD_VARIANT),dbus)
297 ifneq ($(CONFIG_PACKAGE_libavahi-compat-libdnssd),)
298 CONFIGURE_ARGS += \
299 --enable-compat-libdns_sd
300 endif
301 CONFIGURE_ARGS += \
302 --enable-dbus
303 else
304 CONFIGURE_ARGS += \
305 --disable-dbus
306 endif
307
308 CONFIGURE_VARS+= \
309 CFLAGS="$$$$CFLAGS -DNDEBUG -DDISABLE_SYSTEMD" \
310 ac_cv_header_sys_capability_h=no
311
312 define Build/InstallDev
313 $(INSTALL_DIR) $(1)/usr/include
314 $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
315 $(INSTALL_DIR) $(1)/usr/lib
316 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-* $(1)/usr/lib/
317 ifneq ($(CONFIG_PACKAGE_libavahi-compat-libdnssd),)
318 ifeq ($(BUILD_VARIANT),dbus)
319 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdns_sd* $(1)/usr/lib/
320 endif
321 endif
322 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
323 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
324 endef
325
326 define Package/libavahi/install
327 $(INSTALL_DIR) $(1)/usr/lib
328 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/
329 endef
330
331 define Package/libavahi-dbus-support/install
332 $(call Package/libavahi/install,$(1))
333 $(INSTALL_DIR) $(1)/etc/dbus-1/system.d
334 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/* $(1)/etc/dbus-1/system.d
335 endef
336
337 Package/libavahi-nodbus-support/install=$(Package/libavahi/install)
338
339 define Package/libavahi-client/install
340 $(INSTALL_DIR) $(1)/usr/lib
341 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-client.so.* $(1)/usr/lib/
342 endef
343
344 define Package/libavahi-compat-libdnssd/install
345 $(INSTALL_DIR) $(1)/usr/lib
346 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so* $(1)/usr/lib/
347 endef
348
349 define Package/avahi-utils/install
350 $(INSTALL_DIR) $(1)/usr/bin
351 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
352 endef
353
354 define Package/avahi-autoipd/install
355 $(INSTALL_DIR) $(1)/etc/avahi
356 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/etc/avahi/avahi-autoipd.action $(1)/etc/avahi/
357 $(INSTALL_DIR) $(1)/usr/sbin
358 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-autoipd $(1)/usr/sbin/
359 $(INSTALL_DIR) $(1)/lib/netifd/proto
360 $(INSTALL_BIN) ./files/netifd-autoip.sh $(1)/lib/netifd/proto/autoip.sh
361 endef
362
363 define Package/avahi-daemon/install
364 $(INSTALL_DIR) $(1)/usr/sbin
365 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-daemon $(1)/usr/sbin/
366 $(INSTALL_DIR) $(1)/etc/avahi
367 $(INSTALL_DATA) ./files/avahi-daemon.conf $(1)/etc/avahi/
368 # install empty service directory so that user knows where
369 # to place custom service files
370 $(INSTALL_DIR) $(1)/etc/avahi/services
371 $(INSTALL_DIR) $(1)/etc/init.d
372 $(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon
373 endef
374
375 Package/avahi-dbus-daemon/install=$(Package/avahi-daemon/install)
376 Package/avahi-nodbus-daemon/install=$(Package/avahi-daemon/install)
377
378 define Package/avahi-daemon-service-http/install
379 $(INSTALL_DIR) $(1)/etc/avahi/services
380 $(INSTALL_DATA) ./files/service-http $(1)/etc/avahi/services/http.service
381 endef
382
383 define Package/avahi-daemon-service-ssh/install
384 $(INSTALL_DIR) $(1)/etc/avahi/services
385 $(INSTALL_DATA) ./files/service-ssh $(1)/etc/avahi/services/ssh.service
386 endef
387
388 define Package/avahi-dnsconfd/install
389 $(INSTALL_DIR) $(1)/etc/avahi
390 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/
391 $(INSTALL_DIR) $(1)/usr/sbin
392 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/
393 endef
394
395 $(eval $(call BuildPackage,libavahi-client))
396 $(eval $(call BuildPackage,libavahi-compat-libdnssd))
397 $(eval $(call BuildPackage,avahi-utils))
398 $(eval $(call BuildPackage,libavahi-dbus-support))
399 $(eval $(call BuildPackage,libavahi-nodbus-support))
400 $(eval $(call BuildPackage,avahi-autoipd))
401 $(eval $(call BuildPackage,avahi-dbus-daemon))
402 $(eval $(call BuildPackage,avahi-nodbus-daemon))
403 $(eval $(call BuildPackage,avahi-daemon-service-http))
404 $(eval $(call BuildPackage,avahi-daemon-service-ssh))
405 $(eval $(call BuildPackage,avahi-dnsconfd))