From da12b82fc917c476f856ffccca72f14b27aef5bc Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Mon, 28 Mar 2011 21:22:25 +0000 Subject: [PATCH] update avahi to included D-Bus support, libavahi-client library and avahi-utils tools (#8929) This updates the avahi package as follows: 1. The libavahi-client library can be selected. 2. The following avahi utilities can be selected: avahi-browse, aka: avahi-browse-domains avahi-publish, aka: avahi-publish-address, avahi-publish-service avahi-resolve, aka: avahi-resolve-address, avahi-resolve-host-name avahi-set-host-name. Notes: (a) This patch applies to avahi 0.6.29 -- I sent in the previous version for 0.6.28 just after 0.6.29 came out, duh. :( (b) The libavahi-client library and the avahi utilities require avahi to be compiled with D-Bus support, and D-Bus must be included in the build. If they are not selected, avahi is compiled without D-Bus support, as it is at present. (c) The init.d start priority of avahi-daemon is changed from 50 to 61 so that it loads after D-Bus. The patch in Ticket #8929 has two problems, IMHO: 1. It makes the D-Bus package a compulsory requirement for avahi, even though it's only really needed if you select the libavahi-client library. (This patch makes D-Bus compulsory only if you select the libavahi-client library or the avahi utilities which depend on them.) 2. The avahi-daemon will fail to start because the D-Bus daemon is set to start up _after_ avahi-daemon starts looking for it. (This patch adjusts the init.d start priority of the avahi-daemon to later than that of D-Bus.) Signed-off-by: Mike Brady SVN-Revision: 26338 --- libs/avahi/Makefile | 98 +++++++++++++++++++++++++++--- libs/avahi/files/avahi-daemon.init | 2 +- 2 files changed, 91 insertions(+), 9 deletions(-) diff --git a/libs/avahi/Makefile b/libs/avahi/Makefile index 9a8d948ae..63d03b09d 100644 --- a/libs/avahi/Makefile +++ b/libs/avahi/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2007-2009 OpenWrt.org +# Copyright (C) 2007-2011 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=avahi PKG_VERSION:=0.6.29 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://avahi.org/download/ PKG_MD5SUM:=bb9d326770689610d1dbaceab5a787fc -PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host +PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host libpthread dbus PKG_FIXUP:=autoreconf PKG_REMOVE_FILES:=autogen.sh @@ -54,6 +54,9 @@ define Package/libavahi/description $(call Package/avahi/Default/description) . This package contains the mDNS/DNS-SD shared libraries, used by other programs. + Specifically, it provides libavahi-core and libavahi-common libraries. + By default, it is compiled without D-Bus support, i.e. the --disable-dbus compilation flag is set. + To enable D-Bus support, add the package libavahi-dbus-support. endef define Package/avahi-autoipd @@ -96,7 +99,7 @@ define Package/avahi-dnsconfd $(call Package/avahi/Default) SUBMENU:=IP Addresses and Names DEPENDS:=+libavahi - TITLE:=An Unicast DNS server from mDNS/DNS-SD configuration daemon + TITLE:=A Unicast DNS server from mDNS/DNS-SD configuration daemon endef define Package/avahi-dnsconfd/description @@ -107,6 +110,56 @@ $(call Package/avahi/Default/description) in a DHCP-like fashion. Especially useful on IPv6. endef +define Package/libavahi-dbus-support + $(call Package/avahi/Default) + SECTION:=libs + CATEGORY:=Libraries + VARIANT:=dbus + DEPENDS:=+dbus +libavahi + TITLE+= (D-Bus support for advanced features) +endef + +define Package/libavahi-dbus-support/description +$(call Package/libavahi/description) + . + This package enables D-Bus support in libavahi. This is needed for libavahi to + provide advanced features -- support for avahi-browse, avahi-publish + and the libavahi-client library. + It requires the D-Bus package to be included in the build. + Selecting this modifies the contents of the libavahi package by setting + the --enable-dbuscompilation flag; it does not generate a separate package of its own. +endef + +define Package/libavahi-client + $(call Package/avahi/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libavahi-dbus-support + TITLE+= (libavahi-client library) +endef + +define Package/libavahi-client/description +$(call Package/avahi/Default/description) + . + This packages adds the libavahi-client library. + For more information please see the avahi documentation. +endef + +define Package/avahi-utils + $(call Package/avahi/Default) + SUBMENU:=IP Addresses and Names + DEPENDS:=+libavahi-client + TITLE+= (utilities) +endef + +define Package/avahi-utils/description +$(call Package/avahi/Default/description) + . + This packages installs the following avahi utility programs: + avahi-browse, avahi-publish, avahi-resolve, avahi-set-host-name. + For more information please see the avahi documentation. +endef + TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE CONFIGURE_ARGS+= \ @@ -118,7 +171,6 @@ CONFIGURE_ARGS+= \ --disable-qt4 \ --disable-gtk \ --disable-gtk3 \ - --disable-dbus \ --with-xml=expat \ --disable-dbm \ --enable-gdbm \ @@ -150,21 +202,47 @@ CONFIGURE_ARGS+= \ --disable-stack-protector endif +ifeq ($(BUILD_VARIANT),dbus) +CONFIGURE_ARGS += \ + --enable-dbus +else +CONFIGURE_ARGS += \ + --disable-dbus +endif + CONFIGURE_VARS+= \ CFLAGS="$$$$CFLAGS -DNDEBUG -DDISABLE_SYSTEMD" \ define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/avahi-{common,core} $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-* $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/avahi-core.pc $(1)/usr/lib/pkgconfig/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/ +endef + +define Package/libavahi-dbus-support/install + $(INSTALL_DIR) $(1)/usr/lib endef define Package/libavahi/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/ +ifeq ($(BUILD_VARIANT),dbus) + $(INSTALL_DIR) $(1)/etc/dbus-1/system.d + $(CP) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/* $(1)/etc/dbus-1/system.d +endif +endef + +define Package/libavahi-client/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-client.so.* $(1)/usr/lib/ +endef + +define Package/avahi-utils/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ endef define Package/avahi-autoipd/install @@ -193,7 +271,11 @@ define Package/avahi-dnsconfd/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/ endef +$(eval $(call BuildPackage,libavahi-client)) +$(eval $(call BuildPackage,avahi-utils)) +$(eval $(call BuildPackage,libavahi-dbus-support)) $(eval $(call BuildPackage,libavahi)) $(eval $(call BuildPackage,avahi-autoipd)) $(eval $(call BuildPackage,avahi-daemon)) $(eval $(call BuildPackage,avahi-dnsconfd)) + diff --git a/libs/avahi/files/avahi-daemon.init b/libs/avahi/files/avahi-daemon.init index 9a6acd02b..b2ae4580e 100644 --- a/libs/avahi/files/avahi-daemon.init +++ b/libs/avahi/files/avahi-daemon.init @@ -1,6 +1,6 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org -START=50 +START=61 BIN=avahi-daemon DEFAULT=/etc/default/$BIN -- 2.30.2