ports/69912: New Port dns/mDNSResponder a re-port of Apple's mDNS responder code

Andrew andrew at ugh.net.au
Mon Aug 2 16:50:24 UTC 2004


>Number:         69912
>Category:       ports
>Synopsis:       New Port dns/mDNSResponder a re-port of Apple's mDNS responder code
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 02 16:50:23 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Andrew
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
UgH!
>Environment:
System: FreeBSD starbug.ugh.net.au 4.7-STABLE FreeBSD 4.7-STABLE #9: Sun Oct 27 22:46:03 EST 2002     andrew at starbug.ugh.net.au:/usr/obj/usr/src/sys/STARBUG  i386


	
>Description:

This is a port of Apple's rendezvous. I did one of these a while back but by
the time a committer had a chance to look at it Apple had released a new
version and hidden the old. The man pages were written a while ago and may not
match the current versions perfectly but I don't have time to update them
now.

I'm suddenly getting a lot of email about my old port so I finally got around
to this port of the current version.

>How-To-Repeat:
	
>Fix:


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	mDNSResponder
#	mDNSResponder/files
#	mDNSResponder/files/patch-Responder.c
#	mDNSResponder/files/mDNSResponder.sh
#	mDNSResponder/files/mDNSResponder.conf.sample
#	mDNSResponder/files/patch-NetMonitor.c
#	mDNSResponder/Makefile
#	mDNSResponder/pkg-descr
#	mDNSResponder/pkg-plist
#	mDNSResponder/distinfo
#	mDNSResponder/pkg-message
#
echo c - mDNSResponder
mkdir -p mDNSResponder > /dev/null 2>&1
echo c - mDNSResponder/files
mkdir -p mDNSResponder/files > /dev/null 2>&1
echo x - mDNSResponder/files/patch-Responder.c
sed 's/^X//' >mDNSResponder/files/patch-Responder.c << 'END-of-mDNSResponder/files/patch-Responder.c'
X--- mDNSPosix/Responder.c.orig	Thu Apr  8 09:51:09 2004
X+++ mDNSPosix/Responder.c	Mon Aug  2 22:48:55 2004
X@@ -404,7 +404,7 @@
X     // Parse command line options using getopt.
X     
X     do {
X-        ch = getopt(argc, argv, "v:rn:t:d:x:p:f:dPb");
X+        ch = getopt(argc, argv, "v:rn:t:d:x:p:f:dP:b");
X         if (ch != -1) {
X             switch (ch) {
X                 case 'v':
END-of-mDNSResponder/files/patch-Responder.c
echo x - mDNSResponder/files/mDNSResponder.sh
sed 's/^X//' >mDNSResponder/files/mDNSResponder.sh << 'END-of-mDNSResponder/files/mDNSResponder.sh'
X#!/bin/sh
X
X# PROVIDE: mDNSResponder
X# REQUIRE: NETWORKING
X# KEYWORD: FreeBSD
X
X. %%RC_SUBR%%
X
Xname=mDNSResponder
Xrcvar=`set_rcvar`
X
Xcommand=%%PREFIX%%/sbin/mDNSResponder
X
XmDNSResponder_enable=${mDNSResponder_enable:-"NO"}
XmDNSResponder_flags=${mDNSResponder_flags:-"-b -n `/bin/hostname -s`"}
X
Xpidfile="/var/run/mDNSResponder.pid"
X
Xload_rc_config $name
Xrun_rc_command "$1"
END-of-mDNSResponder/files/mDNSResponder.sh
echo x - mDNSResponder/files/mDNSResponder.conf.sample
sed 's/^X//' >mDNSResponder/files/mDNSResponder.conf.sample << 'END-of-mDNSResponder/files/mDNSResponder.conf.sample'
Xtweedlebug
X_afpovertcp._tcp.
X
X548
X
Xhumphrey
X_ipp._tcp.
Xipp://humphrey.local/laser
X631
END-of-mDNSResponder/files/mDNSResponder.conf.sample
echo x - mDNSResponder/files/patch-NetMonitor.c
sed 's/^X//' >mDNSResponder/files/patch-NetMonitor.c << 'END-of-mDNSResponder/files/patch-NetMonitor.c'
X--- mDNSPosix/NetMonitor.c.orig	Mon Aug  2 22:54:18 2004
X+++ mDNSPosix/NetMonitor.c	Mon Aug  2 22:54:42 2004
X@@ -214,6 +214,7 @@
X #include <string.h>			// For bcopy()
X #include <time.h>			// For "struct tm" etc.
X #include <netdb.h>			// For gethostbyname()
X+#include <sys/types.h>		// so we can include socket
X #include <sys/socket.h>		// For AF_INET, AF_INET6, etc.
X #include <arpa/inet.h>		// For inet_addr()
X #include <netinet/in.h>		// For INADDR_NONE
END-of-mDNSResponder/files/patch-NetMonitor.c
echo x - mDNSResponder/Makefile
sed 's/^X//' >mDNSResponder/Makefile << 'END-of-mDNSResponder/Makefile'
X# New ports collection makefile for:	mDNSResponder
X# Date created:	29 December 2002
X# Whom:	Andrew Stevenson <andrew at ugh.net.au>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	mDNSResponder
XPORTVERSION=	58.8
XCATEGORIES=	dns
X# You must agree to the APSL and manually fetch mDNSResponder-58.8.tar.gz from
X# ${MASTER_SITES}:source
XMASTER_SITES=	http://www.opensource.apple.com/darwinsource/tarballs/apsl/:source	\
X				ftp://ftp.ugh.net.au/pub/unix/mDNSdocs/:docs \
X				ftp://ftp.megamirror.com/pub/ugh/unix/newmail/:docs \
X				http://ftp.megamirror.com/pub/ugh/unix/newmail/:docs
XDISTFILES=	mDNSResponder-58.8.tar.gz:source \
X			mDNSdocs-1.0.tar.gz:docs
X
XMAINTAINER=	andrew at ugh.net.au
XCOMMENT=	Apple's multicast DNS responder/client (part of Rendezvous/ZeroConf)
X
X# I've asked Apple about distribution terms. Ron Dumont <rond at apple.com>,
X# Program Manager for open source at Apple, says packages can be distributed
X# "...as long as the license headers are maintained in the files.  The APSL
X# should also be included in the package as a text file...". He said that the
X# conditions were the same for the original source. That said you still need
X# to agree to the APSL at Apple's web site to get a username and password to
X# download mDNSResponder-58.8.tar.gz in the first place.
XRESTRICTED=	"Must agree to APSL before downloading the source code - http://www.opensource.apple.com/apsl/"
XRESTRICTED_FILES=	mDNSResponder-58.8.tar.gz
X.if defined(BATCH) || defined(PACKAGE_BUILDING)
XIGNORE=	${RESTRICTED}
X.endif
X
XMAN1=	mDNSClient.1
XMAN8=	mDNSResponder.8 \
X		mDNSProxyResponder.8
X
XUSE_RC_SUBR=	yes
X
XUSE_GMAKE=	yes
XBUILD_WRKSRC=	${WRKSRC}/mDNSPosix
XMAKE_ARGS=	os=freebsd
XPROGRAM_SUFFIX=	Posix
XPROGRAMS_BIN=	mDNSClientPosix mDNSIdentify
XPROGRAMS_SBIN=	mDNSNetMonitor mDNSProxyResponderPosix mDNSResponderPosix
X
Xpre-fetch:
X	@[ -f ${DISTDIR}/${RESTRICTED_FILES} ] || ( \
X	${ECHO} "********************************************************************";	\
X	${ECHO} "Please get ${RESTRICTED_FILES} from";									\
X	${ECHO} "	http://developer.apple.com/darwin/projects/rendezvous/";			\
X	${ECHO} "and place it in ${DISTDIR}. You will need to agree to the";			\
X	${ECHO} "APSL (Apple Public Source License) first.";							\
X	${ECHO} "********************************************************************";	\
X	${FALSE}																		\
X	)
X
Xpost-build:
X	@${SED} -e 's|%%PREFIX%%|${PREFIX}|g' -e 's|%%RC_SUBR%%|${RC_SUBR}|g' ${FILESDIR}/mDNSResponder.sh > ${WRKDIR}/mDNSResponder.sh
X
Xdo-install:
X	# install binaries
X.	for directory in bin sbin
X.		for program in ${PROGRAMS_${directory:U}}
X			${INSTALL_PROGRAM} ${BUILD_WRKSRC}/build/${program} ${PREFIX}/${directory}/${program:S/${PROGRAM_SUFFIX}$//}
X.		endfor
X.	endfor
X	# install man pages
X.	for section in 1 2 3 4 5 6 7 8
X.		for page in ${MAN${section}}
X			${INSTALL_MAN} ${WRKDIR}/mDNSdocs/${page} ${MAN${section}PREFIX}/man/man${page:E}/
X.		endfor
X.	endfor
X	# install docs and license
X	@-${MKDIR} ${DOCSDIR}
X	${INSTALL_MAN} ${WRKSRC}/APPLE_LICENSE ${DOCSDIR}
X.	if !defined(NOPORTDOCS)
X		${INSTALL_MAN} ${WRKSRC}/README.txt ${PREFIX}/share/doc/${PORTNAME}
X.	endif
X	# install scripts and examples
X	${INSTALL_DATA} ${FILESDIR}/mDNSResponder.conf.sample ${PREFIX}/etc
X	${INSTALL_SCRIPT} ${WRKDIR}/mDNSResponder.sh ${PREFIX}/etc/rc.d
X
Xpost-install:
X	@if [ -f ${MASTERDIR}/pkg-message ]; then		\
X		${CAT} ${MASTERDIR}/pkg-message |			\
X			${SED} "s|%%DOCSDIR%%|${DOCSDIR}|g";	\
X	fi
X
X.include <bsd.port.mk>
END-of-mDNSResponder/Makefile
echo x - mDNSResponder/pkg-descr
sed 's/^X//' >mDNSResponder/pkg-descr << 'END-of-mDNSResponder/pkg-descr'
XThis is a port of Apple's multicast DNS responder (and client). It allows
Xname to address translation without requiring a DNS and allows for service
Xdiscovery without requiring any other support infrastructure.
X
XApple refer to this technology as Rendezvous and the IETF call it Zeroconf.
X
XN.B. This port does not provide dynamic configuration of IPv4 link-local
Xaddresses.
X
XWWW: http://developer.apple.com/darwin/projects/rendezvous/
X
X- Andrew
Xandrew at ugh.net.au
END-of-mDNSResponder/pkg-descr
echo x - mDNSResponder/pkg-plist
sed 's/^X//' >mDNSResponder/pkg-plist << 'END-of-mDNSResponder/pkg-plist'
Xbin/mDNSClient
Xbin/mDNSIdentify
Xsbin/mDNSNetMonitor
Xsbin/mDNSProxyResponder
Xsbin/mDNSResponder
Xetc/mDNSResponder.conf.sample
Xetc/rc.d/mDNSResponder.sh
X%%DOCSDIR%%/APPLE_LICENSE
X%%PORTDOCS%%%%DOCSDIR%%/README.txt
X at dirrm %%DOCSDIR%%
END-of-mDNSResponder/pkg-plist
echo x - mDNSResponder/distinfo
sed 's/^X//' >mDNSResponder/distinfo << 'END-of-mDNSResponder/distinfo'
XMD5 (mDNSResponder-58.8.tar.gz) = b8511918fe91450886857a8757e3e7d9
XSIZE (mDNSResponder-58.8.tar.gz) = 481676
XMD5 (mDNSdocs-1.0.tar.gz) = df051ab199a700c30203989caa758bfe
XSIZE (mDNSdocs-1.0.tar.gz) = 4241
END-of-mDNSResponder/distinfo
echo x - mDNSResponder/pkg-message
sed 's/^X//' >mDNSResponder/pkg-message << 'END-of-mDNSResponder/pkg-message'
XPlease note that this software is covered by the Apple Public Source License.
X
XThis license is available on the web at:
X	http://www.opensource.apple.com/apsl/
XThere is also a copy in your filesystem at:
X	%%DOCSDIR%%/APPLE_LICENSE
END-of-mDNSResponder/pkg-message
exit

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list