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