This patch updates the avahi Makefile to correct a number of errors. In particular it handles the choice of D-BUS- or non-D-BUS-enabled packages more consistently.

Packages that don't require D-BUS support are compiled with D-BUS support disabled by default, keeping the build as small as possible. Support for D-BUS can be selected if desired.

Selecting packages that require D-BUS support -- avahi-utils or libavahi-client -- will automatically cause all packages to be built with D-BUS support and will add the D-BUS package to the build.

Note that after this update, the D-BUS package will be needed as part of the compilation environment, so it will be downloaded and compiled, but it will not be added to the build unless the user has enabled D-BUS support or has selected avahi-utils or the avahi-client library, both of which need it.

Tested on trunk r29283.


Signed-off-by Mike Brady <mikebr...@eircom.net>
Index: Makefile
===================================================================
--- Makefile	(revision 29283)
+++ Makefile	(working copy)
@@ -7,40 +7,50 @@
 
 include $(TOPDIR)/rules.mk
 
+ifeq ($(BUILD_VARIANT),dbus)
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-dbus/$(PKG_NAME)-$(PKG_VERSION)
+else
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-nodbus/$(PKG_NAME)-$(PKG_VERSION)
+endif
+
+
 PKG_NAME:=avahi
 PKG_VERSION:=0.6.30
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
+
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://avahi.org/download/
 PKG_MD5SUM:=e4db89a2a403ff4c47d66ac66fad1f43
 
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host libpthread dbus
 
-PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host libpthread
-
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=autogen.sh
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
+
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/avahi/Default
   SECTION:=net
   CATEGORY:=Network
-  TITLE:=mDNS/DNS-SD 
+  TITLE:=An mDNS/DNS-SD implementation
   URL:=http://www.avahi.org/
 endef
 
 define Package/avahi/Default/description
- An mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf) implementation (library).
- Avahi is a system which facilitates service discovery on a local network --
- this means that you can plug your laptop or computer into a network and
- instantly be able to view other people who you can chat with, find printers
- to print to or find files being shared. This kind of technology is already
- found in MacOS X (branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')
+ Avahi is an mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf) 
+ implementation (library). It facilitates 
+ service discovery on a local network -- this means that 
+ you can plug your laptop or computer into a network and
+ instantly be able to view other people who you can chat with, 
+ find printers to print to or find files being shared.
+ This kind of technology is already found in MacOS X
+ (branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')
  and is very convenient.
 endef
 
@@ -50,51 +60,27 @@
   CATEGORY:=Libraries
   DEPENDS:=+libdaemon +libpthread +libgdbm
   TITLE+= (library)
-  VARIANT:=nodbus
 endef
 
-define Package/libavahi-dbus
-  $(call Package/avahi/Default)
-  SECTION:=libs
-  CATEGORY:=Libraries
-  DEPENDS:=+libdaemon +libpthread +libgdbm +dbus
-  TITLE+= (library) (dbus)
-  VARIANT:=dbus
-endef
-
 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.
- This version is compiled without D-Bus support, i.e. the --disable-dbus 
- compilation flag is set.
+ The libavahi 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, select the package
+ libavahi-dbus-support.
 endef
 
-define Package/libavahi-dbus/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.
- This version is compiled with D-Bus support
-endef
-
 define Package/avahi-autoipd
   $(call Package/avahi/Default)
   SUBMENU:=IP Addresses and Names
   DEPENDS:=+libdaemon
-  TITLE:=IPv4LL address conf daemon
-  VARIANT:=nodbus
+  TITLE:=IPv4LL network address configuration daemon
 endef
 
-define Package/avahi-autoipd-dbus
-  $(call Package/avahi/Default)
-  SUBMENU:=IP Addresses and Names
-  DEPENDS:=+libdaemon
-  TITLE:=IPv4LL address conf daemon (dbus)
-  VARIANT:=dbus
-endef
-
 define Package/avahi-autoipd/description
 $(call Package/avahi/Default/description)
  .
@@ -103,114 +89,80 @@
  from the link-local 169.254.0.0/16 range without the need for a central 
  server. It is primarily intended to be used in ad-hoc networks which lack a
  DHCP server.
- .
- This verison is compile along with non-D-Bus version of libavahi.
 endef
 
-define Package/avahi-autoipd-dbus/description
-$(call Package/avahi/Default/description)
- .
- This package implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local 
- Addresses" (IETF RFC3927), a protocol for automatic IP address configuration 
- from the link-local 169.254.0.0/16 range without the need for a central 
- server. It is primarily intended to be used in ad-hoc networks which lack a
- DHCP server.
- .
- This version is compiled along with the D-Bus version of libavahi.
-endef
-
 define Package/avahi-daemon
   $(call Package/avahi/Default)
   SUBMENU:=IP Addresses and Names
   DEPENDS:=+libavahi +libexpat
   TITLE+= (daemon)
-  VARIANT:=nodbus
 endef
 
-define Package/avahi-daemon-dbus
-  $(call Package/avahi/Default)
-  SUBMENU:=IP Addresses and Names
-  DEPENDS:=+libavahi-dbus +libexpat
-  TITLE+= (daemon) (dbus)
-  VARIANT:=dbus
-endef
-
 define Package/avahi-daemon/description
 $(call Package/avahi/Default/description)
  .
  This package contains an mDNS/DNS-SD daemon.
 endef
 
-define Package/avahi-daemon-dbus/description
-$(call Package/avahi/Default/description)
- .
- This package contains an mDNS/DNS-SD daemon with dbus support.
-endef
-
 define Package/avahi-daemon/conffiles
 /etc/avahi/avahi-daemon.conf
 /etc/avahi/services/http.service
 /etc/avahi/services/ssh.service
 endef
 
-define Package/avahi-daemon-dbus/conffiles
-/etc/avahi/avahi-daemon.conf
-/etc/avahi/services/http.service
-/etc/avahi/services/ssh.service
-endef
-
 define Package/avahi-dnsconfd
   $(call Package/avahi/Default)
   SUBMENU:=IP Addresses and Names
   DEPENDS:=+libavahi
   TITLE:=A Unicast DNS server from mDNS/DNS-SD configuration daemon
-  VARIANT:=nodbus
 endef
 
-define Package/avahi-dnsconfd-dbus
-  $(call Package/avahi/Default)
-  SUBMENU:=IP Addresses and Names
-  DEPENDS:=+libavahi-dbus
-  TITLE:=A Unicast DNS server from mDNS/DNS-SD configuration daemon with dbus support
-  VARIANT:=dbus
-endef
-
 define Package/avahi-dnsconfd/description
 $(call Package/avahi/Default/description)
  .
  This package contains a Unicast DNS server from mDNS/DNS-SD configuration
  daemon, which may be used to configure conventional DNS servers using mDNS
  in a DHCP-like fashion. Especially useful on IPv6.
- .
- This version does not have D-Bus support.
 endef
 
-define Package/avahi-dnsconfd-dbus/description
-$(call Package/avahi/Default/description)
+define Package/libavahi-dbus-support
+  $(call Package/avahi/Default)
+  SECTION:=libs
+  CATEGORY:=Libraries
+  VARIANT:=dbus
+  DEPENDS:=+dbus +libavahi
+  TITLE+= (D-Bus support)
+endef
+
+define Package/libavahi-dbus-support/description
+$(call Package/libavahi/description)
  .
- This package contains a Unicast DNS server from mDNS/DNS-SD configuration
- daemon, which may be used to configure conventional DNS servers using mDNS
- in a DHCP-like fashion. Especially useful on IPv6.
- .
- This version has D-Bus support.
+ The libavahi-dbus-support package enables
+ D-Bus support in libavahi, needed to support
+ the libavahi-client library and avahi-utils.
+ Selecting this package modifies the contents of the
+ libavahi package by setting the --enable-dbus compilation flag;
+ it does not generate a separate binary of its own.
+ It also automatically adds the D-Bus package to the build.
+ libavahi-dbus-support is selected automatically if you select
+ libavahi-client or avahi-utils.
 endef
 
 define Package/libavahi-client
   $(call Package/avahi/Default)
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libavahi-dbus
+  DEPENDS:=+libavahi-dbus-support +avahi-daemon
   TITLE+= (libavahi-client library)
-  VARIANT:=dbus
 endef
 
 define Package/libavahi-client/description
 $(call Package/avahi/Default/description)
  .
  This packages adds the libavahi-client library.
+ It also automatically adds the required
+ libavahi-dbus-support and the avahi-daemon packages.
  For more information please see the avahi documentation.
- .
- Requires D-Bus support.
 endef
 
 define Package/avahi-utils
@@ -218,7 +170,6 @@
   SUBMENU:=IP Addresses and Names
   DEPENDS:=+libavahi-client
   TITLE+= (utilities)
-  VARIANT:=dbus
 endef
 
 define Package/avahi-utils/description
@@ -226,9 +177,8 @@
  .
  This packages installs the following avahi utility programs:
  avahi-browse, avahi-publish, avahi-resolve, avahi-set-host-name.
+ It also automatically adds the required libavahi-client package.
  For more information please see the avahi documentation.
- .
- Requires D-Bus support.
 endef
 
 TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
@@ -276,8 +226,7 @@
 ifeq ($(BUILD_VARIANT),dbus)
 CONFIGURE_ARGS += \
 	--enable-dbus
-endif
-ifeq ($(BUILD_VARIANT),nodbus)
+else
 CONFIGURE_ARGS += \
 	--disable-dbus	
 endif
@@ -294,16 +243,17 @@
 	$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
 endef
 
-define Package/libavahi-dbus/install
+define Package/libavahi-dbus-support/install
 	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/
-	$(INSTALL_DIR) $(1)/etc/dbus-1/system.d
-	$(CP) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/* $(1)/etc/dbus-1/system.d
 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
@@ -335,18 +285,6 @@
 	$(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon
 endef
 
-define Package/avahi-daemon-dbus/install
-	$(INSTALL_DIR) $(1)/usr/sbin
-	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-daemon $(1)/usr/sbin/
-	$(INSTALL_DIR) $(1)/etc/avahi
-	$(INSTALL_DATA) ./files/avahi-daemon.conf $(1)/etc/avahi/
-	$(INSTALL_DIR) $(1)/etc/avahi/services
-	$(INSTALL_DATA) ./files/service-http $(1)/etc/avahi/services/http.service
-	$(INSTALL_DATA) ./files/service-ssh $(1)/etc/avahi/services/ssh.service
-	$(INSTALL_DIR) $(1)/etc/init.d
-	$(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon
-endef
-
 define Package/avahi-dnsconfd/install
 	$(INSTALL_DIR) $(1)/etc/avahi
 	$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/
@@ -354,21 +292,11 @@
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/
 endef
 
-define Package/avahi-dnsconfd-dbus/install
-	$(INSTALL_DIR) $(1)/etc/avahi
-	$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/
-	$(INSTALL_DIR) $(1)/usr/sbin
-	$(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))
+$(eval $(call BuildPackage,libavahi-dbus-support))
 $(eval $(call BuildPackage,libavahi))
 $(eval $(call BuildPackage,avahi-autoipd))
-$(eval $(call BuildPackage,avahi-autoipd-dbus))
 $(eval $(call BuildPackage,avahi-daemon))
-$(eval $(call BuildPackage,avahi-daemon-dbus))
 $(eval $(call BuildPackage,avahi-dnsconfd))
-$(eval $(call BuildPackage,avahi-dnsconfd-dbus))
 
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to