xref: /OK3568_Linux_fs/buildroot/package/avahi/avahi.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# avahi
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunAVAHI_VERSION = 0.8
8*4882a593SmuzhiyunAVAHI_SITE = https://github.com/lathiat/avahi/releases/download/v$(AVAHI_VERSION)
9*4882a593SmuzhiyunAVAHI_LICENSE = LGPL-2.1+
10*4882a593SmuzhiyunAVAHI_LICENSE_FILES = LICENSE
11*4882a593SmuzhiyunAVAHI_CPE_ID_VENDOR = avahi
12*4882a593SmuzhiyunAVAHI_SELINUX_MODULES = avahi
13*4882a593SmuzhiyunAVAHI_INSTALL_STAGING = YES
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun# CVE-2021-26720 is an issue in avahi-daemon-check-dns.sh, which is
16*4882a593Smuzhiyun# part of the Debian packaging and not part of upstream avahi
17*4882a593SmuzhiyunAVAHI_IGNORE_CVES += CVE-2021-26720
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun# 0001-Fix-NULL-pointer-crashes-from-175.patch
20*4882a593SmuzhiyunAVAHI_IGNORE_CVES += CVE-2021-36217
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunAVAHI_CONF_ENV = \
23*4882a593Smuzhiyun	avahi_cv_sys_cxx_works=yes \
24*4882a593Smuzhiyun	DATADIRNAME=share
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun# Note: even if we have Gtk2 and Gtk3 support in Buildroot, we
27*4882a593Smuzhiyun# explicitly disable support for them, in order to avoid the following
28*4882a593Smuzhiyun# circular dependencies:
29*4882a593Smuzhiyun#
30*4882a593Smuzhiyun#  avahi -> libglade -> libgtk2 -> cups -> avahi
31*4882a593Smuzhiyun#  avahi -> libgtk3 -> cups -> avahi
32*4882a593Smuzhiyun#
33*4882a593Smuzhiyun# Since Gtk2 and Gtk3 in Avahi are only used for some example/demo
34*4882a593Smuzhiyun# programs, we decided to disable their support to solve the circular
35*4882a593Smuzhiyun# dependency.
36*4882a593SmuzhiyunAVAHI_CONF_OPTS = \
37*4882a593Smuzhiyun	--disable-qt3 \
38*4882a593Smuzhiyun	--disable-qt4 \
39*4882a593Smuzhiyun	--disable-qt5 \
40*4882a593Smuzhiyun	--disable-gtk \
41*4882a593Smuzhiyun	--disable-gtk3 \
42*4882a593Smuzhiyun	--disable-gdbm \
43*4882a593Smuzhiyun	--disable-pygobject \
44*4882a593Smuzhiyun	--disable-mono \
45*4882a593Smuzhiyun	--disable-monodoc \
46*4882a593Smuzhiyun	--disable-stack-protector \
47*4882a593Smuzhiyun	--disable-introspection \
48*4882a593Smuzhiyun	--with-distro=none \
49*4882a593Smuzhiyun	--disable-manpages \
50*4882a593Smuzhiyun	$(if $(BR2_PACKAGE_AVAHI_AUTOIPD),--enable,--disable)-autoipd \
51*4882a593Smuzhiyun	--with-avahi-user=avahi \
52*4882a593Smuzhiyun	--with-avahi-group=avahi \
53*4882a593Smuzhiyun	--with-autoipd-user=avahi \
54*4882a593Smuzhiyun	--with-autoipd-group=avahi
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunAVAHI_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES)
57*4882a593Smuzhiyun
58*4882a593SmuzhiyunAVAHI_CFLAGS = $(TARGET_CFLAGS)
59*4882a593Smuzhiyun
60*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD),y)
61*4882a593SmuzhiyunAVAHI_CONF_OPTS += --with-systemdsystemunitdir=/usr/lib/systemd/system
62*4882a593Smuzhiyunelse
63*4882a593SmuzhiyunAVAHI_CONF_OPTS += --with-systemdsystemunitdir=no
64*4882a593SmuzhiyunAVAHI_CFLAGS += -DDISABLE_SYSTEMD
65*4882a593Smuzhiyunendif
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
68*4882a593SmuzhiyunAVAHI_DEPENDENCIES += libdaemon
69*4882a593Smuzhiyunelse
70*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-libdaemon
71*4882a593Smuzhiyunendif
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCAP),y)
74*4882a593SmuzhiyunAVAHI_DEPENDENCIES += libcap
75*4882a593Smuzhiyunendif
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
78*4882a593SmuzhiyunAVAHI_DEPENDENCIES += expat
79*4882a593SmuzhiyunAVAHI_CONF_OPTS += --with-xml=expat
80*4882a593Smuzhiyunelse
81*4882a593SmuzhiyunAVAHI_CONF_OPTS += --with-xml=none
82*4882a593Smuzhiyunendif
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
85*4882a593SmuzhiyunAVAHI_CONF_OPTS += --enable-compat-libdns_sd
86*4882a593Smuzhiyunendif
87*4882a593Smuzhiyun
88*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_DBUS),y)
89*4882a593SmuzhiyunAVAHI_DEPENDENCIES += dbus
90*4882a593SmuzhiyunAVAHI_CONF_OPTS += --with-dbus-sys=/usr/share/dbus-1/system.d
91*4882a593Smuzhiyunelse
92*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-dbus
93*4882a593Smuzhiyunendif
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBEVENT),y)
96*4882a593SmuzhiyunAVAHI_DEPENDENCIES += libevent
97*4882a593Smuzhiyunelse
98*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-libevent
99*4882a593Smuzhiyunendif
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGLIB2),y)
102*4882a593SmuzhiyunAVAHI_DEPENDENCIES += libglib2
103*4882a593Smuzhiyunelse
104*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-glib --disable-gobject
105*4882a593Smuzhiyunendif
106*4882a593Smuzhiyun
107*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_PYTHON),y)
108*4882a593SmuzhiyunAVAHI_CONF_ENV += \
109*4882a593Smuzhiyun	am_cv_pathless_PYTHON=python \
110*4882a593Smuzhiyun	am_cv_path_PYTHON=$(PYTHON_TARGET_BINARY) \
111*4882a593Smuzhiyun	am_cv_python_version=$(PYTHON_VERSION) \
112*4882a593Smuzhiyun	am_cv_python_platform=linux2 \
113*4882a593Smuzhiyun	am_cv_python_pythondir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
114*4882a593Smuzhiyun	am_cv_python_pyexecdir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
115*4882a593Smuzhiyun	py_cv_mod_socket_=yes
116*4882a593Smuzhiyun
117*4882a593SmuzhiyunAVAHI_DEPENDENCIES += python
118*4882a593SmuzhiyunAVAHI_CONF_OPTS += --enable-python
119*4882a593Smuzhiyunelse
120*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-python
121*4882a593Smuzhiyunendif
122*4882a593Smuzhiyun
123*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_DBUS_PYTHON),y)
124*4882a593SmuzhiyunAVAHI_CONF_OPTS += --enable-python-dbus
125*4882a593SmuzhiyunAVAHI_CONF_ENV += py_cv_mod_dbus_=yes
126*4882a593SmuzhiyunAVAHI_DEPENDENCIES += dbus-python
127*4882a593Smuzhiyunelse
128*4882a593SmuzhiyunAVAHI_CONF_OPTS += --disable-python-dbus
129*4882a593Smuzhiyunendif
130*4882a593Smuzhiyun
131*4882a593SmuzhiyunAVAHI_CONF_ENV += CFLAGS="$(AVAHI_CFLAGS)"
132*4882a593Smuzhiyun
133*4882a593SmuzhiyunAVAHI_MAKE_OPTS += LIBS=$(TARGET_NLS_LIBS)
134*4882a593Smuzhiyun
135*4882a593Smuzhiyundefine AVAHI_USERS
136*4882a593Smuzhiyun	avahi -1 avahi -1 * - - -
137*4882a593Smuzhiyunendef
138*4882a593Smuzhiyun
139*4882a593Smuzhiyundefine AVAHI_REMOVE_INITSCRIPT
140*4882a593Smuzhiyun	rm -rf $(TARGET_DIR)/etc/init.d/avahi-*
141*4882a593Smuzhiyunendef
142*4882a593Smuzhiyun
143*4882a593SmuzhiyunAVAHI_POST_INSTALL_TARGET_HOOKS += AVAHI_REMOVE_INITSCRIPT
144*4882a593Smuzhiyun
145*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y)
146*4882a593Smuzhiyundefine AVAHI_INSTALL_AUTOIPD
147*4882a593Smuzhiyun	rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
148*4882a593Smuzhiyun	$(INSTALL) -d -m 0755 $(TARGET_DIR)/var/lib
149*4882a593Smuzhiyun	ln -sf /tmp/avahi-autoipd $(TARGET_DIR)/var/lib/avahi-autoipd
150*4882a593Smuzhiyunendef
151*4882a593Smuzhiyun
152*4882a593Smuzhiyundefine AVAHI_INSTALL_AUTOIPD_INIT_SYSV
153*4882a593Smuzhiyun	$(INSTALL) -D -m 0755 package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/S05avahi-setup.sh
154*4882a593Smuzhiyunendef
155*4882a593Smuzhiyun
156*4882a593SmuzhiyunAVAHI_POST_INSTALL_TARGET_HOOKS += AVAHI_INSTALL_AUTOIPD
157*4882a593Smuzhiyunendif
158*4882a593Smuzhiyun
159*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
160*4882a593Smuzhiyun
161*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y)
162*4882a593Smuzhiyundefine AVAHI_INSTALL_SYSTEMD_SYSUSERS
163*4882a593Smuzhiyun	$(INSTALL) -D -m 644 package/avahi/avahi_sysusers.conf \
164*4882a593Smuzhiyun		$(TARGET_DIR)/usr/lib/sysusers.d/avahi.conf
165*4882a593Smuzhiyunendef
166*4882a593Smuzhiyunendif
167*4882a593Smuzhiyun
168*4882a593Smuzhiyundefine AVAHI_INSTALL_INIT_SYSTEMD
169*4882a593Smuzhiyun	$(INSTALL) -D -m 644 package/avahi/avahi_tmpfiles.conf \
170*4882a593Smuzhiyun		$(TARGET_DIR)/usr/lib/tmpfiles.d/avahi.conf
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun	$(AVAHI_INSTALL_SYSTEMD_SYSUSERS)
173*4882a593Smuzhiyunendef
174*4882a593Smuzhiyun
175*4882a593Smuzhiyundefine AVAHI_INSTALL_DAEMON_INIT_SYSV
176*4882a593Smuzhiyun	$(INSTALL) -D -m 0755 package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/S50avahi-daemon
177*4882a593Smuzhiyunendef
178*4882a593Smuzhiyun
179*4882a593Smuzhiyunendif
180*4882a593Smuzhiyun
181*4882a593Smuzhiyundefine AVAHI_INSTALL_INIT_SYSV
182*4882a593Smuzhiyun	$(AVAHI_INSTALL_AUTOIPD_INIT_SYSV)
183*4882a593Smuzhiyun	$(AVAHI_INSTALL_DAEMON_INIT_SYSV)
184*4882a593Smuzhiyunendef
185*4882a593Smuzhiyun
186*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
187*4882a593Smuzhiyun# applications expects to be able to #include <dns_sd.h>
188*4882a593Smuzhiyundefine AVAHI_STAGING_INSTALL_LIBDNSSD_LINK
189*4882a593Smuzhiyun	ln -sf avahi-compat-libdns_sd/dns_sd.h \
190*4882a593Smuzhiyun		$(STAGING_DIR)/usr/include/dns_sd.h
191*4882a593Smuzhiyunendef
192*4882a593Smuzhiyun
193*4882a593SmuzhiyunAVAHI_POST_INSTALL_STAGING_HOOKS += AVAHI_STAGING_INSTALL_LIBDNSSD_LINK
194*4882a593Smuzhiyunendif
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun$(eval $(autotools-package))
197