Add mdnsresponder package
authorUlf Samuelsson <ulf.samuelsson@atmel.com>
Sat, 11 Aug 2007 16:44:54 +0000 (16:44 -0000)
committerUlf Samuelsson <ulf.samuelsson@atmel.com>
Sat, 11 Aug 2007 16:44:54 +0000 (16:44 -0000)
package/Config.in
package/mdnsresponder/Config.in [new file with mode: 0644]
package/mdnsresponder/mDNSResponderPosix.conf [new file with mode: 0644]
package/mdnsresponder/mdnsresponder.mk [new file with mode: 0644]
package/mdnsresponder/rc.mdnsresponder [new file with mode: 0644]

index 09617df9c59da57333c326806f94c9820f5e39ad..b653cfc94051cd5609e63b3756286d689d72334e 100644 (file)
@@ -146,6 +146,7 @@ source "package/libcgicc/Config.in"
 source "package/libpcap/Config.in"
 source "package/links/Config.in"
 source "package/lrzsz/Config.in"
+source "package/mdnsresponder/Config.in"
 source "package/mrouted/Config.in"
 source "package/nbd/Config.in"
 source "package/ncftp/Config.in"
diff --git a/package/mdnsresponder/Config.in b/package/mdnsresponder/Config.in
new file mode 100644 (file)
index 0000000..3c5235b
--- /dev/null
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_MDNSRESPONDER
+       bool "mDNSResponder"
+       default n
+       help
+         The mDNSResponder project is a component of Bonjour,
+         Apple's initiative for zero-configuration networking.
+
+         http://developer.apple.com/networking/bonjour/index.html
+
+config BR2_PACKAGE_MDNSRESPONDER_UTILS
+       bool "client and utils"
+       default n
+       depends on BR2_PACKAGE_MDNSRESPONDER
+       help
+         Install the client applications and debug utils
+
+
diff --git a/package/mdnsresponder/mDNSResponderPosix.conf b/package/mdnsresponder/mDNSResponderPosix.conf
new file mode 100644 (file)
index 0000000..639e7be
--- /dev/null
@@ -0,0 +1,23 @@
+# See http://www.dns-sd.org/ServiceTypes.html for service types and parameters.
+# Format is:
+#      name
+#      service type
+#      port
+#      [params, name=value, one per line]
+# NOTE: At least as of 107.1 there is a bug where you cannot have a blank line
+# NOTE: before the first entry if there are any leading comments.
+#yourhost
+#_ssh._tcp.
+#22
+
+#yourhost
+#_http._tcp.
+#80
+#path=/
+
+#yourhost
+#_ftp._tcp.
+#21
+#u=yourusername
+#p=password
+#path=/somepath
diff --git a/package/mdnsresponder/mdnsresponder.mk b/package/mdnsresponder/mdnsresponder.mk
new file mode 100644 (file)
index 0000000..83e9118
--- /dev/null
@@ -0,0 +1,92 @@
+#############################################################
+#
+# mDNSResponder
+#
+#############################################################
+MDNSRESPONDER_VERSION:=107.6
+MDNSRESPONDER_SOURCE:=mDNSResponder-$(MDNSRESPONDER_VERSION).tar.gz
+MDNSRESPONDER_SITE:=http://www.opensource.apple.com/darwinsource/tarballs/other/$(MDNSRESPONDER_SOURCE)
+MDNSRESPONDER_DIR:=$(BUILD_DIR)/mDNSResponder-$(MDNSRESPONDER_VERSION)
+MDNSRESPONDER_CAT:=zcat
+MDNSRESPONDER_INSTDEPS:=
+
+ifeq ($(BR2_PACKAGE_MDNSRESPONDER_UTILS),y)
+       MDNSRESPONDER_INSTDEPS+=$(TARGET_DIR)/usr/bin/mDNSClientPosix
+endif
+
+$(DL_DIR)/$(MDNSRESPONDER_SOURCE):
+       $(WGET) -P $(DL_DIR) $(MDNSRESPONDER_SITE)
+
+$(MDNSRESPONDER_DIR)/.unpacked: $(DL_DIR)/$(MDNSRESPONDER_SOURCE)
+       $(MDNSRESPONDER_CAT) $(DL_DIR)/$(MDNSRESPONDER_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       touch $(MDNSRESPONDER_DIR)/.unpacked
+
+$(MDNSRESPONDER_DIR)/.configured: $(MDNSRESPONDER_DIR)/.unpacked
+       $(SED) 's:OPTIONALTARG = nss_mdns::' $(MDNSRESPONDER_DIR)/mDNSPosix/Makefile
+       touch $(MDNSRESPONDER_DIR)/.configured
+
+$(MDNSRESPONDER_DIR)/.built: $(MDNSRESPONDER_DIR)/.configured
+       $(MAKE) CC=$(TARGET_CC) os="linux" LD="$(TARGET_CC) -shared" LOCALBASE="/usr" -C $(MDNSRESPONDER_DIR)/mDNSPosix
+       touch $(MDNSRESPONDER_DIR)/.built
+
+$(STAGING_DIR)/usr/lib/libdns_sd.so: $(MDNSRESPONDER_DIR)/.built
+       # lib
+       $(INSTALL) -m 644 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/libdns_sd.so $(STAGING_DIR)/usr/lib/
+       ln -sf $(STAGING_DIR)/usr/lib/libdns_sd.so $(STAGING_DIR)/usr/lib/libdns_sd.so.1
+       # include
+       $(INSTALL) -m 644 -D $(MDNSRESPONDER_DIR)/mDNSShared/dns_sd.h $(STAGING_DIR)/usr/include/
+
+$(TARGET_DIR)/usr/sbin/mdnsd: $(STAGING_DIR)/usr/lib/libdns_sd.so
+       # sbin
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/dnsextd $(TARGET_DIR)/usr/sbin/
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mDNSResponderPosix $(TARGET_DIR)/usr/sbin/
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mdnsd $(TARGET_DIR)/usr/sbin/
+       # lib
+       $(INSTALL) -m 644 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/libdns_sd.so $(TARGET_DIR)/usr/lib/
+       ln -sf $(TARGET_DIR)/usr/lib/libdns_sd.so $(TARGET_DIR)/usr/lib/libdns_sd.so.1
+       # etc
+       $(INSTALL) -m 0644 -D package/mdnsresponder/mDNSResponderPosix.conf $(TARGET_DIR)/etc/  
+       # init
+       $(INSTALL) -m 0755 -D package/mdnsresponder/rc.mdnsresponder $(TARGET_DIR)/etc/init.d/S80mdnsresponder  
+
+$(TARGET_DIR)/usr/bin/mDNSClientPosix: $(STAGING_DIR)/usr/lib/libdns_sd.so
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mDNSNetMonitor $(TARGET_DIR)/usr/sbin/
+       # bin
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/Clients/build/dns-sd $(TARGET_DIR)/usr/bin/
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mDNSProxyResponderPosix $(TARGET_DIR)/usr/bin/
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mDNSIdentify $(TARGET_DIR)/usr/bin/
+       $(INSTALL) -m 755 -D $(MDNSRESPONDER_DIR)/mDNSPosix/build/prod/mDNSClientPosix $(TARGET_DIR)/usr/bin/
+
+
+mdnsresponder: uclibc $(TARGET_DIR)/usr/sbin/mdnsd $(MDNSRESPONDER_INSTDEPS)
+
+mdnsresponder-source: $(DL_DIR)/$(MDNSRESPONDER_SOURCE)
+
+mdnsresponder-clean:
+       rm -f $(MDNSRESPONDER_DIR)/.configured $(MDNSRESPONDER_DIR)/.built $(MDNSRESPONDER_DIR)/.staged
+       -$(MAKE) os=linux -C $(MDNSRESPONDER_DIR)/mDNSPosix clean
+       rm -f $(TARGET_DIR)/usr/sbin/dnsextd
+       rm -f $(TARGET_DIR)/usr/sbin/mDNSResponderPosix
+       rm -f $(TARGET_DIR)/usr/sbin/mDNSNetMonitor
+       rm -f $(TARGET_DIR)/usr/sbin/mdnsd
+       rm -f $(TARGET_DIR)/usr/bin/dns-sd
+       rm -f $(TARGET_DIR)/usr/bin/mDNSProxyResponderPosix
+       rm -f $(TARGET_DIR)/usr/bin/mDNSIdentify
+       rm -f $(TARGET_DIR)/usr/bin/mDNSClientPosix
+       rm -f $(TARGET_DIR)/usr/lib/libdns_sd.so*
+       rm -f $(STAGING_DIR)/usr/lib/libdns_sd.so*
+       rm -f $(STAGING_DIR)/usr/include/dns_sd.h
+       rm -f $(TARGET_DIR)/etc/mDNSResponderPosix.conf
+       rm -f $(TARGET_DIR)/etc/init.d/S80mdnsresponder
+
+mdnsresponder-dirclean:
+       rm -rf $(MDNSRESPONDER_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_MDNSRESPONDER)),y)
+TARGETS+=mdnsresponder
+endif
diff --git a/package/mdnsresponder/rc.mdnsresponder b/package/mdnsresponder/rc.mdnsresponder
new file mode 100644 (file)
index 0000000..1b08cf0
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Starts mDNSResponderPosix and mdnsd
+#
+
+umask 077
+
+start() {
+       echo -n "Starting mdnsd: "
+       start-stop-daemon --start --quiet --pidfile /var/run/mdnsd.pid \
+                --exec /usr/sbin/mdnsd
+       if [ "$?" != "0" ] ; then
+               echo "FAIL"
+               return 1
+       fi
+       echo "OK"
+
+       echo -n "Starting mDNSResponderPosix: "
+       start-stop-daemon --start --quiet --pidfile /var/run/mDNSResponderPosix.pid \
+                --exec /usr/sbin/mDNSResponderPosix \
+                -- -b -f /etc/mDNSResponderPosix.conf -P /var/run/mDNSResponderPosix.pid
+       if [ "$?" != "0" ] ; then
+               echo "FAIL"
+               return 1
+       fi
+       echo "OK"
+}
+stop() {
+       echo -n "Stopping mDNSResponderPosix: "
+       start-stop-daemon --stop --quiet --pidfile /var/run/mDNSResponderPosix.pid
+       if [ "$?" != "0" ] ; then
+               echo "FAIL"
+               return 1
+       fi
+       echo "OK"
+
+       echo -n "Stopping mdnsd: "
+       start-stop-daemon --stop --quiet --pidfile /var/run/mdnsd.pid
+       if [ "$?" != "0" ] ; then
+               echo "FAIL"
+               return 1
+       fi
+       echo "OK"
+}
+
+restart() {
+       stop
+       start
+}
+
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart|reload)
+       restart
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|restart}"
+       exit 1
+esac
+
+exit $?
+