#
-# Copyright (C) 2009 OpenWrt.org
+# Copyright (C) 2009-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=mDNSResponder
PKG_VERSION:=214.3.2
-PKG_RELEASE:=1
-PKG_INSTALL:=1
+PKG_RELEASE:=4
+
PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
PKG_MD5SUM:=05d39f40767ccece4b740c5afad14a23
PKG_BUILD_DIR:=$(BUILD_DIR)/mDNSResponder-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=0
+PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-define Package/mdnsresponder
+define Package/mDNSResponder/Default
SECTION:=net
CATEGORY:=Network
SUBMENU:=IP Addresses and Names
- TITLE:=mDNSResponder
+ TITLE:=mDNS
URL:=http://developer.apple.com/networking/bonjour/
endef
-define Package/mdnsresponder/decription
+define Package/mDNSResponder/Default/description
Bonjour, also known as zero-configuration networking, enables
automatic discovery of computers, devices, and services on
IP networks.
endef
-define Build/Configure
- $(call Build/Configure/Default)
+define Package/mdns-utils
+$(call Package/mDNSResponder/Default)
+ TITLE+= client utilities
+endef
+
+define Package/mdns-utils/description
+$(call Package/mDNSResponder/Default/description)
+ .
+ This package contains mDNS client utilities:
+ - dns-sd
+ - mDNSClient
+ - mDNSIdentify
+ - mDNSNetMonitor
+ - mDNSProxyResponder
+ - mDNSResponder
+endef
+
+define Package/mdnsd
+$(call Package/mDNSResponder/Default)
+ TITLE+= server daemon
+endef
+
+define Package/mdnsd/description
+$(call Package/mDNSResponder/Default/description)
+ .
+ This package contains the mDNS server daemon.
+endef
+
+define Package/mdnsresponder
+$(call Package/mDNSResponder/Default)
+ TITLE+= suite (meta)
+ DEPENDS+= +mdns-utils +mdnsd
+endef
+
+define Package/mdnsresponder/description
+$(call Package/mDNSResponder/Default/description)
+ .
+ This meta package contains only dependencies on other packages.
endef
# I have no idea why -lc is required, but without it, C library symbols are
# not found:
MAKE_FLAGS += \
+ CFLAGS_DEBUG="$(TARGET_CFLAGS)" \
LINKOPTS=-lc \
LDCONFIG= \
ETCBASE="$(PKG_INSTALL_DIR)/etc" \
define Build/Compile
$(call Build/Compile/Default)
- # mDNSResponder's "make install" does not seem to create:
+ # XXX: mDNSResponder's "make install" does not seem to create:
mkdir -p $(PKG_INSTALL_DIR)/lib/
mkdir -p $(PKG_INSTALL_DIR)/usr/bin/
mkdir -p $(PKG_INSTALL_DIR)/usr/sbin/
mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc5.d/
mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc0.d/
mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc6.d/
+ # XXX: mDNSResponder's makefile creates absolute link
+ rm -f $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so
+ ln -fs libdns_sd.so.1 $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so
endef
define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/mDNSShared/dns_sd.h $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/*.so* $(1)/usr/lib/
+endef
+
+define Package/mdns-utils/conffile
+ /etc/init.d/mDNSResponder
+endef
+
+define Package/mdns-utils/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/dns-sd $(1)/usr/bin/
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSClientPosix $(1)/usr/bin/mDNSClient
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSIdentify $(1)/usr/bin/mDNSIdentify
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSNetMonitor $(1)/usr/bin/mDNSNetMonitor
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSProxyResponderPosix $(1)/usr/bin/mDNSProxyResponder
+ $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSResponderPosix $(1)/usr/bin/mDNSResponder
$(INSTALL_DIR) $(1)/usr/lib/
- $(CP) \
- $(PKG_BUILD_DIR)/mDNSPosix/build/prod/*.so* \
- $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so* $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_DATA) ./files/mDNSResponder.conf $(1)/etc/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/mDNSResponder.init $(1)/etc/init.d/mDNSResponder
+endef
+
+define Package/mdns-utils/conffiles
+/etc/mDNSResponder.conf
+endef
+
+define Package/mdnsd/install
$(INSTALL_DIR) $(1)/usr/sbin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/sbin/mdnsd $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/mdnsd.init $(1)/etc/init.d/mdnsd
endef
define Package/mdnsresponder/install
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/mDNSResponder.init $(1)/etc/init.d/mDNSResponder
- $(INSTALL_DIR) $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so.1 $(1)/usr/lib/
- # Note: mDNSResponder's makefile creates the following link incorrectly:
- ln -s libdns_sd.so.1 $(1)/usr/lib/libdns_sd.so
- $(INSTALL_DIR) $(1)/usr/sbin/
- $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mdnsd $(1)/usr/sbin/
- $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSResponderPosix $(1)/usr/sbin/
+ :
endef
+$(eval $(call BuildPackage,mdns-utils))
+$(eval $(call BuildPackage,mdnsd))
$(eval $(call BuildPackage,mdnsresponder))