packages/mdnsreposnder: various changes:

* split into mdns-utils (client utilities), mdnsd (server daemon) & mdnsresponder (meta package)
 * provide a default mDNSReponder config file advertising the SSH server
 * use new service functions

git-svn-id: svn://svn.openwrt.org/openwrt/packages@28970 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nico 2011-11-12 01:30:33 +00:00
parent f8939bdcbf
commit 310f999c39
4 changed files with 109 additions and 28 deletions

View File

@ -1,5 +1,5 @@
#
# 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.
@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=mDNSResponder
PKG_VERSION:=214.3.2
PKG_RELEASE:=1
PKG_INSTALL:=1
PKG_RELEASE:=2
PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
PKG_MD5SUM:=05d39f40767ccece4b740c5afad14a23
@ -18,30 +18,68 @@ 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" \
@ -55,7 +93,7 @@ MAKE_PATH = mDNSPosix
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/
@ -72,28 +110,49 @@ define Build/Compile
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/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))

View File

@ -0,0 +1,4 @@
"OpenWrt SSH"
_ssh._tcp. local
22
OpenWrt SSH server

View File

@ -1,14 +1,14 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009 OpenWrt.org
# Copyright (C) 2009-2011 OpenWrt.org
START=60
START=61
SERVICE_USE_PID=1
start() {
/usr/sbin/mDNSResponderPosix -b -f /etc/mdns.conf
/usr/sbin/mdnsd
service_start /usr/bin/mDNSResponder -b -f /etc/mDNSResponder.conf
}
stop() {
killall mDNSResponderPosix 2> /dev/null
killall mdnsd 2> /dev/null
service_stop /usr/bin/mDNSResponder
}

View File

@ -0,0 +1,18 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2011 OpenWrt.org
START=60
SERVICE_USE_PID=1
start() {
[ -d /var/run/mdnsd ] || {
mkdir -m 0755 -p /var/run/mdnsd
chown nobody:nogroup /var/run/mdnsd
}
service_start /usr/sbin/mdnsd
}
stop() {
service_stop /usr/sbin/mdnsd
}