From owner-freebsd-ports-bugs@FreeBSD.ORG Thu Jan 23 10:10:01 2014 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A9FBA8D4 for ; Thu, 23 Jan 2014 10:10:01 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 882DE1A71 for ; Thu, 23 Jan 2014 10:10:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id s0NAA1CP070840 for ; Thu, 23 Jan 2014 10:10:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id s0NAA1OE070839; Thu, 23 Jan 2014 10:10:01 GMT (envelope-from gnats) Date: Thu, 23 Jan 2014 10:10:01 GMT Message-Id: <201401231010.s0NAA1OE070839@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Matthieu Volat Subject: Re: ports/178052: New port submission: dns/mDNSRedponder_nss X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: Matthieu Volat List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Jan 2014 10:10:01 -0000 The following reply was made to PR ports/178052; it has been noted by GNATS. From: Matthieu Volat To: bug-followup@FreeBSD.org, mazhe@alkumuna.eu Cc: Subject: Re: ports/178052: New port submission: dns/mDNSRedponder_nss Date: Thu, 23 Jan 2014 11:08:50 +0100 --Apple-Mail=_50CC5A70-FFB3-42DB-A552-F03EAA581E16 Content-Type: multipart/mixed; boundary="Apple-Mail=_7B59EC6F-AE17-4B5C-88DF-37B8D14FC7D4" --Apple-Mail=_7B59EC6F-AE17-4B5C-88DF-37B8D14FC7D4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii And another update that follows integration of version 544 in ports, = which makes name queries work again! --Apple-Mail=_7B59EC6F-AE17-4B5C-88DF-37B8D14FC7D4 Content-Disposition: attachment; filename=mDNSResponder_nss.sh.txt Content-Type: text/plain; x-unix-mode=0644; name="mDNSResponder_nss.sh.txt" Content-Transfer-Encoding: quoted-printable # 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_nss # mDNSResponder_nss/files # mDNSResponder_nss/files/nss_mdns_freebsd.c # mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c # mDNSResponder_nss/Makefile # mDNSResponder_nss/distinfo # mDNSResponder_nss/pkg-descr # mDNSResponder_nss/pkg-plist # echo c - mDNSResponder_nss mkdir -p mDNSResponder_nss > /dev/null 2>&1 echo c - mDNSResponder_nss/files mkdir -p mDNSResponder_nss/files > /dev/null 2>&1 echo x - mDNSResponder_nss/files/nss_mdns_freebsd.c sed 's/^X//' >mDNSResponder_nss/files/nss_mdns_freebsd.c << = 'fd1c46f3f4a4f438620948d5ef5dcad0' X#include X#include X#include X#include X#include X#include X#include X#include X#include X#include X Xextern int _nss_mdns_gethostbyname2_r(const char *, int, X struct hostent *, char *, size_t, int *, int *); Xextern int _nss_mdns_gethostbyaddr_r(const void *, socklen_t, int, X struct hostent *, char *, size_t, int *, int *); X Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_gethostbyname2_r); Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_gethostbyaddr_r); Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_getaddrinfo); X Xstatic ns_mtab methods[] =3D { X { NSDB_HOSTS, "gethostbyname_r", __nss_compat_gethostbyname2_r, = NULL }, X { NSDB_HOSTS, "gethostbyname2_r", __nss_compat_gethostbyname2_r, = NULL }, X { NSDB_HOSTS, "gethostbyaddr_r", __nss_compat_gethostbyaddr_r, = NULL }, X { NSDB_HOSTS, "getaddrinfo", __nss_compat_getaddrinfo, NULL }, X}; X Xns_mtab * Xnss_module_register(const char *source, unsigned int *mtabsize, X nss_module_unregister_fn *unreg) X{ X *mtabsize =3D sizeof(methods)/sizeof(methods[0]); X *unreg =3D NULL; X return methods; X} X Xstatic int X__nss_compat_gethostbyname2_r(void *retval, void *mdata, va_list ap) X{ X int s; X X const char *name; X int af; X struct hostent *hptr; X char *buffer; X size_t buflen; X int *errnop; X int *h_errnop; X X name =3D va_arg(ap, const char *); X af =3D va_arg(ap, int); X hptr =3D va_arg(ap, struct hostent *); X buffer =3D va_arg(ap, char *); X buflen =3D va_arg(ap, size_t); X errnop =3D va_arg(ap, int *); X h_errnop =3D va_arg(ap, int *); X X s =3D _nss_mdns_gethostbyname2_r( X name, af, hptr, buffer, buflen, errnop, = h_errnop); X *(struct hostent **)retval =3D (s =3D=3D NS_SUCCESS) ? hptr : = NULL; X X return s; X} X Xstatic int X__nss_compat_gethostbyaddr_r(void *retval, void *mdata, va_list ap) X{ X int s; X=09 X const void *addr; X socklen_t addrlen; X int af; X struct hostent *hptr; X char *buffer; X size_t buflen; X int *errnop; X int *h_errnop; X X addr =3D va_arg(ap, const void *); X addrlen =3D va_arg(ap, socklen_t); X af =3D va_arg(ap, int); X hptr =3D va_arg(ap, struct hostent *); X buffer =3D va_arg(ap, char *); X buflen =3D va_arg(ap, size_t); X errnop =3D va_arg(ap, int *); X h_errnop =3D va_arg(ap, int *); X X s =3D _nss_mdns_gethostbyaddr_r( X addr, addrlen, af, hptr, buffer, buflen, errnop, = h_errnop); X *(struct hostent **)retval =3D (s =3D=3D NS_SUCCESS) ? hptr : = NULL; X X return s; X}=20 X Xstatic void Xaiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo = **aip) X{ X int s; X struct hostent host; X char hostbuf[8*1024]; X int err, herr; X char **addrp; X char addrstr[INET6_ADDRSTRLEN]; X struct addrinfo hints, *res0, *res; X X s =3D _nss_mdns_gethostbyname2_r(name, af, &host, hostbuf, = sizeof(hostbuf), X &err, &herr); X if (s !=3D NS_SUCCESS) X return; X X for (addrp =3D host.h_addr_list; *addrp; addrp++) { X /* XXX this sucks, but get_ai is not public */ X if (!inet_ntop(host.h_addrtype, *addrp, X addrstr, sizeof(addrstr))) X continue; X hints =3D *pai; X hints.ai_flags =3D AI_NUMERICHOST; X hints.ai_family =3D af; X if (getaddrinfo(addrstr, NULL, &hints, &res0)) X continue; X for (res =3D res0; res; res =3D res->ai_next) X res->ai_flags =3D pai->ai_flags; X X (*aip)->ai_next =3D res0; X while ((*aip)->ai_next) X *aip =3D (*aip)->ai_next; X } X} X Xstatic int X__nss_compat_getaddrinfo(void *retval, void *mdata, va_list ap) X{ X struct addrinfo sentinel, *cur; X const char *name; X struct addrinfo *ai; X X name =3D va_arg(ap, char *); X ai =3D va_arg(ap, struct addrinfo *); X X memset(&sentinel, 0, sizeof(sentinel)); X cur =3D &sentinel; X X if ((ai->ai_family =3D=3D AF_UNSPEC) || (ai->ai_family =3D=3D = AF_INET6)) X aiforaf(name, AF_INET6, ai, &cur); X if ((ai->ai_family =3D=3D AF_UNSPEC) || (ai->ai_family =3D=3D = AF_INET)) X aiforaf(name, AF_INET, ai, &cur); X X if (!sentinel.ai_next) { X h_errno =3D HOST_NOT_FOUND; X return NS_NOTFOUND; X } X *((struct addrinfo **)retval) =3D sentinel.ai_next; X X return NS_SUCCESS; X} X fd1c46f3f4a4f438620948d5ef5dcad0 echo x - mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c sed 's/^X//' >mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c << = '04c37d337133d3147a842456f108671e' X--- ./mDNSPosix/nss_mdns.c.orig 2012-04-15 08:07:19.000000000 = +0200 X+++ ./mDNSPosix/nss_mdns.c 2013-11-05 11:00:14.000000000 +0100 X@@ -379,7 +379,18 @@ X #define ENTNAME hostent X #define DATABASE "hosts" X=20 X-#include X+#if defined __FreeBSD__ X+# include X+enum nss_status { X+ NSS_STATUS_SUCCESS =3D NS_SUCCESS, X+ NSS_STATUS_NOTFOUND =3D NS_NOTFOUND, X+ NSS_STATUS_UNAVAIL =3D NS_UNAVAIL, X+ NSS_STATUS_TRYAGAIN =3D NS_TRYAGAIN, X+ NSS_STATUS_RETURN =3D NS_RETURN X+}; X+#elif defined __Linux__ X+# include X+#endif X // For nss_status X #include X // For hostent X@@ -1684,7 +1695,7 @@ X //---------- X // Types and Constants X=20 X-const char * k_conf_file =3D "/etc/nss_mdns.conf"; X+const char * k_conf_file =3D PREFIX"/etc/nss_mdns.conf"; X #define CONF_LINE_SIZE 1024 X=20 X const char k_comment_char =3D '#'; 04c37d337133d3147a842456f108671e echo x - mDNSResponder_nss/Makefile sed 's/^X//' >mDNSResponder_nss/Makefile << = '7e3b9888bc2028cc8d4b6de5e5439908' X# $FreeBSD$ X XPORTNAME=3D mDNSResponder_nss XPORTVERSION=3D 544 XCATEGORIES=3D dns net XMASTER_SITES=3D = http://opensource.apple.com/tarballs/mDNSResponder/ XDISTNAME=3D ${PORTNAME:S/_nss//}-${PORTVERSION} X XMAINTAINER=3D mazhe@alkumuna.eu XCOMMENT=3D Apple mDNS responder - FreeBSD nsswitch module X XLICENSE=3D APACHE20 BSD3CLAUSE XLICENSE_COMB=3D dual X XLIB_DEPENDS=3D dns_sd:${PORTSDIR}/net/mDNSResponder X XCONFLICTS_INSTALL=3D dns/nss_mdns X XWRKSRC=3D ${WRKDIR}/${PORTNAME:S/_nss//}-${PORTVERSION} X Xpost-extract: X @${CP} ${FILESDIR}/nss_mdns_freebsd.c ${WRKSRC}/mDNSPosix X Xdo-build: X (cd ${WRKSRC}/mDNSPosix && ${CC} ${CFLAGS} -c -std=3Dc99 -Wall = -fPIC \ X -I. -I${PREFIX}/include -DPREFIX=3D\"${PREFIX}\" \ X nss_mdns.c nss_mdns_freebsd.c) X (cd ${WRKSRC}/mDNSPosix && ${LD} -shared nss_mdns.o = nss_mdns_freebsd.o \ X -o nss_mdns.so.1 -L${PREFIX}/lib -R${PREFIX}/lib = -ldns_sd) X Xdo-install: X ${INSTALL_LIB} ${WRKSRC}/mDNSPosix/nss_mdns.so.1 = ${STAGEDIR}${PREFIX}/lib X ${LN} -sf ${PREFIX}/lib/nss_mdns.so.1 = ${STAGEDIR}${PREFIX}/lib/nss_mdns.so X ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} X ${INSTALL_DATA} ${WRKSRC}/mDNSPosix/nss_mdns.conf = ${STAGEDIR}${EXAMPLESDIR} X ${INSTALL_MAN} ${WRKSRC}/mDNSPosix/nss_mdns.conf.5 = ${STAGEDIR}${MANPREFIX}/man/man5 X Xpost-install: X ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/nss_mdns.so.1 X X.include 7e3b9888bc2028cc8d4b6de5e5439908 echo x - mDNSResponder_nss/distinfo sed 's/^X//' >mDNSResponder_nss/distinfo << = 'e71e320fe90ee26782adad7d882aface' XSHA256 (mDNSResponder-544.tar.gz) =3D = c6ad1d53c28d28c0e3689bdf5efd9ce6f5c4c3692e8ad76e5eeb4d0c248929ac XSIZE (mDNSResponder-544.tar.gz) =3D 2153326 e71e320fe90ee26782adad7d882aface echo x - mDNSResponder_nss/pkg-descr sed 's/^X//' >mDNSResponder_nss/pkg-descr << = '07f8ea0275e014c1f4a148c27143e2e7' XThis is a nsswitch plugin from Apple's mDNSResponder code, adapted for = FreeBSD's Xnsswitch and libc. 07f8ea0275e014c1f4a148c27143e2e7 echo x - mDNSResponder_nss/pkg-plist sed 's/^X//' >mDNSResponder_nss/pkg-plist << = '58c811c6c92a205f1ff5b1ae9e5fef5e' Xlib/nss_mdns.so Xlib/nss_mdns.so.1 Xman/man5/nss_mdns.conf.5.gz X%%EXAMPLESDIR%%/nss_mdns.conf X@dirrm %%EXAMPLESDIR%% 58c811c6c92a205f1ff5b1ae9e5fef5e exit --Apple-Mail=_7B59EC6F-AE17-4B5C-88DF-37B8D14FC7D4 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_7B59EC6F-AE17-4B5C-88DF-37B8D14FC7D4-- --Apple-Mail=_50CC5A70-FFB3-42DB-A552-F03EAA581E16 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAlLg6joACgkQ+ENDeYKZi37RdwCgxDyTLjteDPWmaBRlIC9mhHxN /9AAoIEhPuip7YUjNlOODmh2J9XU8zGA =ZSQY -----END PGP SIGNATURE----- --Apple-Mail=_50CC5A70-FFB3-42DB-A552-F03EAA581E16--