Date: Sun, 17 Aug 2008 16:10:34 GMT From: Josh Carroll <josh.carroll@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/126592: New port: dns/bind9-sdb-postgresql Message-ID: <200808171610.m7HGAY1n018725@www.freebsd.org> Resent-Message-ID: <200808171620.m7HGK3ib091658@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 126592 >Category: ports >Synopsis: New port: dns/bind9-sdb-postgresql >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: Sun Aug 17 16:20:02 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Josh Carroll >Release: 7.0-STABLE/amd64 (Sat Aug 16) >Organization: N/A >Environment: FreeBSD pflog.net 7.0-STABLE FreeBSD 7.0-STABLE #0: Sat Aug 16 09:06:23 EDT 2008 root@pflog.net:/usr/jails/folsom/usr/obj/usr/src/sys/PFLOG amd64 >Description: This is a new port for bind9 adding PostgreSQL support, similar to the net/bind9-sdb-ldap port. Note that portlint reports two fatal errors: FATAL: Makefile: [44]: OPTIONS is set after including bsd.port.pre.mk. FATAL: Makefile: [46]: OPTIONS is set after including bsd.port.pre.mk. However, I did this in order to allow THREADS support to be enabled per default in 7.0-RELEASE (and newer), the same as is done for the dns/bind94 port. >How-To-Repeat: N/A >Fix: Attached .shar for the new port. Patch attached with submission follows: # 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: # # bind9-sdb-postgresql # bind9-sdb-postgresql/files # bind9-sdb-postgresql/files/patch-sdb_postgresql # bind9-sdb-postgresql/Makefile # bind9-sdb-postgresql/distinfo # bind9-sdb-postgresql/pkg-descr # bind9-sdb-postgresql/pkg-message # bind9-sdb-postgresql/pkg-plist # echo c - bind9-sdb-postgresql mkdir -p bind9-sdb-postgresql > /dev/null 2>&1 echo c - bind9-sdb-postgresql/files mkdir -p bind9-sdb-postgresql/files > /dev/null 2>&1 echo x - bind9-sdb-postgresql/files/patch-sdb_postgresql sed 's/^X//' >bind9-sdb-postgresql/files/patch-sdb_postgresql << '1aa7366fae95938af2524f3d9220fedd' Xdiff -urN ../bind-9.4.2-P2.orig/bin/named/Makefile.in ./bin/named/Makefile.in X--- ../bind-9.4.2-P2.orig/bin/named/Makefile.in 2005-09-04 20:18:10.000000000 -0400 X+++ ./bin/named/Makefile.in 2008-08-11 21:04:01.000000000 -0400 X@@ -26,10 +26,10 @@ X # X # Add database drivers here. X # X-DBDRIVER_OBJS = X-DBDRIVER_SRCS = X-DBDRIVER_INCLUDES = X-DBDRIVER_LIBS = X+DBDRIVER_OBJS = pgsqldb.@O@ X+DBDRIVER_SRCS = pgsqldb.c X+DBDRIVER_INCLUDES = -I../../contrib/sdb/pgsql -I${LOCALBASE}/include X+DBDRIVER_LIBS = -L${LOCALBASE}/lib -lpq X X DLZ_DRIVER_DIR = ${top_srcdir}/contrib/dlz/drivers X Xdiff -urN ../bind-9.4.2-P2.orig/bin/named/main.c ./bin/named/main.c X--- ../bind-9.4.2-P2.orig/bin/named/main.c 2006-11-10 13:51:14.000000000 -0500 X+++ ./bin/named/main.c 2008-08-11 21:04:01.000000000 -0400 X@@ -72,6 +72,7 @@ X * Include header files for database drivers here. X */ X /* #include "xxdb.h" */ X+#include <pgsqldb.h> X X /* X * Include DLZ drivers if appropriate. X@@ -681,6 +682,7 @@ X * Add calls to register sdb drivers here. X */ X /* xxdb_init(); */ X+ pgsqldb_init(); X X #ifdef DLZ X /* X@@ -707,6 +709,7 @@ X * Add calls to unregister sdb drivers here. X */ X /* xxdb_clear(); */ X+ pgsqldb_clear(); X X #ifdef DLZ X /* Xdiff -urN ../bind-9.4.2-P2.orig/bin/named/pgsqldb.c ./bin/named/pgsqldb.c X--- ../bind-9.4.2-P2.orig/bin/named/pgsqldb.c 1969-12-31 19:00:00.000000000 -0500 X+++ ./bin/named/pgsqldb.c 2008-08-11 21:04:01.000000000 -0400 X@@ -0,0 +1,348 @@ X+/* X+ * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") X+ * Copyright (C) 2000, 2001 Internet Software Consortium. X+ * X+ * Permission to use, copy, modify, and distribute this software for any X+ * purpose with or without fee is hereby granted, provided that the above X+ * copyright notice and this permission notice appear in all copies. X+ * X+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH X+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY X+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, X+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM X+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE X+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR X+ * PERFORMANCE OF THIS SOFTWARE. X+ */ X+ X+/* $Id: pgsqldb.c,v 1.13 2004/03/05 05:04:32 marka Exp $ */ X+ X+#include <config.h> X+ X+#include <stdio.h> X+#include <string.h> X+#include <stdlib.h> X+ X+#include <libpq-fe.h> X+ X+#include <isc/mem.h> X+#include <isc/print.h> X+#include <isc/result.h> X+#include <isc/util.h> X+ X+#include <dns/sdb.h> X+#include <dns/result.h> X+ X+#include <named/globals.h> X+ X+#include "pgsqldb.h" X+ X+/* X+ * A simple database driver that interfaces to a PostgreSQL database. This X+ * is not complete, and not designed for general use. It opens one X+ * connection to the database per zone, which is inefficient. It also may X+ * not handle quoting correctly. X+ * X+ * The table must contain the fields "name", "rdtype", and "rdata", and X+ * is expected to contain a properly constructed zone. The program "zonetodb" X+ * creates such a table. X+ */ X+ X+static dns_sdbimplementation_t *pgsqldb = NULL; X+ X+struct dbinfo { X+ PGconn *conn; X+ char *database; X+ char *table; X+ char *host; X+ char *user; X+ char *passwd; X+}; X+ X+static void X+pgsqldb_destroy(const char *zone, void *driverdata, void **dbdata); X+ X+/* X+ * Canonicalize a string before writing it to the database. X+ * "dest" must be an array of at least size 2*strlen(source) + 1. X+ */ X+static void X+quotestring(const char *source, char *dest) { X+ while (*source != 0) { X+ if (*source == '\'') X+ *dest++ = '\''; X+ /* SQL doesn't treat \ as special, but PostgreSQL does */ X+ else if (*source == '\\') X+ *dest++ = '\\'; X+ *dest++ = *source++; X+ } X+ *dest++ = 0; X+} X+ X+/* X+ * Connect to the database. X+ */ X+static isc_result_t X+db_connect(struct dbinfo *dbi) { X+ dbi->conn = PQsetdbLogin(dbi->host, NULL, NULL, NULL, dbi->database, X+ dbi->user, dbi->passwd); X+ X+ if (PQstatus(dbi->conn) == CONNECTION_OK) X+ return (ISC_R_SUCCESS); X+ else X+ return (ISC_R_FAILURE); X+} X+ X+/* X+ * Check to see if the connection is still valid. If not, attempt to X+ * reconnect. X+ */ X+static isc_result_t X+maybe_reconnect(struct dbinfo *dbi) { X+ if (PQstatus(dbi->conn) == CONNECTION_OK) X+ return (ISC_R_SUCCESS); X+ X+ return (db_connect(dbi)); X+} X+ X+/* X+ * This database operates on absolute names. X+ * X+ * Queries are converted into SQL queries and issued synchronously. Errors X+ * are handled really badly. X+ */ X+static isc_result_t X+pgsqldb_lookup(const char *zone, const char *name, void *dbdata, X+ dns_sdblookup_t *lookup) X+{ X+ isc_result_t result; X+ struct dbinfo *dbi = dbdata; X+ PGresult *res; X+ char str[1500]; X+ char *canonname; X+ int i; X+ X+ UNUSED(zone); X+ X+ canonname = isc_mem_get(ns_g_mctx, strlen(name) * 2 + 1); X+ if (canonname == NULL) X+ return (ISC_R_NOMEMORY); X+ quotestring(name, canonname); X+ snprintf(str, sizeof(str), X+ "SELECT TTL,RDTYPE,RDATA FROM \"%s\" WHERE " X+ "lower(NAME) = lower('%s')", dbi->table, canonname); X+ isc_mem_put(ns_g_mctx, canonname, strlen(name) * 2 + 1); X+ X+ result = maybe_reconnect(dbi); X+ if (result != ISC_R_SUCCESS) X+ return (result); X+ X+ res = PQexec(dbi->conn, str); X+ if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { X+ PQclear(res); X+ return (ISC_R_FAILURE); X+ } X+ if (PQntuples(res) == 0) { X+ PQclear(res); X+ return (ISC_R_NOTFOUND); X+ } X+ X+ for (i = 0; i < PQntuples(res); i++) { X+ char *ttlstr = PQgetvalue(res, i, 0); X+ char *type = PQgetvalue(res, i, 1); X+ char *data = PQgetvalue(res, i, 2); X+ dns_ttl_t ttl; X+ char *endp; X+ ttl = strtol(ttlstr, &endp, 10); X+ if (*endp != '\0') { X+ PQclear(res); X+ return (DNS_R_BADTTL); X+ } X+ result = dns_sdb_putrr(lookup, type, ttl, data); X+ if (result != ISC_R_SUCCESS) { X+ PQclear(res); X+ return (ISC_R_FAILURE); X+ } X+ } X+ X+ PQclear(res); X+ return (ISC_R_SUCCESS); X+} X+ X+/* X+ * Issue an SQL query to return all nodes in the database and fill the X+ * allnodes structure. X+ */ X+static isc_result_t X+pgsqldb_allnodes(const char *zone, void *dbdata, dns_sdballnodes_t *allnodes) { X+ struct dbinfo *dbi = dbdata; X+ PGresult *res; X+ isc_result_t result; X+ char str[1500]; X+ int i; X+ X+ UNUSED(zone); X+ X+ snprintf(str, sizeof(str), X+ "SELECT TTL,NAME,RDTYPE,RDATA FROM \"%s\" ORDER BY NAME", X+ dbi->table); X+ X+ result = maybe_reconnect(dbi); X+ if (result != ISC_R_SUCCESS) X+ return (result); X+ X+ res = PQexec(dbi->conn, str); X+ if (!res || PQresultStatus(res) != PGRES_TUPLES_OK ) { X+ PQclear(res); X+ return (ISC_R_FAILURE); X+ } X+ if (PQntuples(res) == 0) { X+ PQclear(res); X+ return (ISC_R_NOTFOUND); X+ } X+ X+ for (i = 0; i < PQntuples(res); i++) { X+ char *ttlstr = PQgetvalue(res, i, 0); X+ char *name = PQgetvalue(res, i, 1); X+ char *type = PQgetvalue(res, i, 2); X+ char *data = PQgetvalue(res, i, 3); X+ dns_ttl_t ttl; X+ char *endp; X+ ttl = strtol(ttlstr, &endp, 10); X+ if (*endp != '\0') { X+ PQclear(res); X+ return (DNS_R_BADTTL); X+ } X+ result = dns_sdb_putnamedrr(allnodes, name, type, ttl, data); X+ if (result != ISC_R_SUCCESS) { X+ PQclear(res); X+ return (ISC_R_FAILURE); X+ } X+ } X+ X+ PQclear(res); X+ return (ISC_R_SUCCESS); X+} X+ X+/* X+ * Create a connection to the database and save any necessary information X+ * in dbdata. X+ * X+ * argv[0] is the name of the database X+ * argv[1] is the name of the table X+ * argv[2] (if present) is the name of the host to connect to X+ * argv[3] (if present) is the name of the user to connect as X+ * argv[4] (if present) is the name of the password to connect with X+ */ X+static isc_result_t X+pgsqldb_create(const char *zone, int argc, char **argv, X+ void *driverdata, void **dbdata) X+{ X+ struct dbinfo *dbi; X+ isc_result_t result; X+ X+ UNUSED(zone); X+ UNUSED(driverdata); X+ X+ if (argc < 2) X+ return (ISC_R_FAILURE); X+ X+ dbi = isc_mem_get(ns_g_mctx, sizeof(struct dbinfo)); X+ if (dbi == NULL) X+ return (ISC_R_NOMEMORY); X+ dbi->conn = NULL; X+ dbi->database = NULL; X+ dbi->table = NULL; X+ dbi->host = NULL; X+ dbi->user = NULL; X+ dbi->passwd = NULL; X+ X+#define STRDUP_OR_FAIL(target, source) \ X+ do { \ X+ target = isc_mem_strdup(ns_g_mctx, source); \ X+ if (target == NULL) { \ X+ result = ISC_R_NOMEMORY; \ X+ goto cleanup; \ X+ } \ X+ } while (0); X+ X+ STRDUP_OR_FAIL(dbi->database, argv[0]); X+ STRDUP_OR_FAIL(dbi->table, argv[1]); X+ if (argc > 2) X+ STRDUP_OR_FAIL(dbi->host, argv[2]); X+ if (argc > 3) X+ STRDUP_OR_FAIL(dbi->user, argv[3]); X+ if (argc > 4) X+ STRDUP_OR_FAIL(dbi->passwd, argv[4]); X+ X+ result = db_connect(dbi); X+ if (result != ISC_R_SUCCESS) X+ goto cleanup; X+ X+ *dbdata = dbi; X+ return (ISC_R_SUCCESS); X+ X+ cleanup: X+ pgsqldb_destroy(zone, driverdata, (void **)&dbi); X+ return (result); X+} X+ X+/* X+ * Close the connection to the database. X+ */ X+static void X+pgsqldb_destroy(const char *zone, void *driverdata, void **dbdata) { X+ struct dbinfo *dbi = *dbdata; X+ X+ UNUSED(zone); X+ UNUSED(driverdata); X+ X+ if (dbi->conn != NULL) X+ PQfinish(dbi->conn); X+ if (dbi->database != NULL) X+ isc_mem_free(ns_g_mctx, dbi->database); X+ if (dbi->table != NULL) X+ isc_mem_free(ns_g_mctx, dbi->table); X+ if (dbi->host != NULL) X+ isc_mem_free(ns_g_mctx, dbi->host); X+ if (dbi->user != NULL) X+ isc_mem_free(ns_g_mctx, dbi->user); X+ if (dbi->passwd != NULL) X+ isc_mem_free(ns_g_mctx, dbi->passwd); X+ if (dbi->database != NULL) X+ isc_mem_free(ns_g_mctx, dbi->database); X+ isc_mem_put(ns_g_mctx, dbi, sizeof(struct dbinfo)); X+} X+ X+/* X+ * Since the SQL database corresponds to a zone, the authority data should X+ * be returned by the lookup() function. Therefore the authority() function X+ * is NULL. X+ */ X+static dns_sdbmethods_t pgsqldb_methods = { X+ pgsqldb_lookup, X+ NULL, /* authority */ X+ pgsqldb_allnodes, X+ pgsqldb_create, X+ pgsqldb_destroy X+}; X+ X+/* X+ * Wrapper around dns_sdb_register(). X+ */ X+isc_result_t X+pgsqldb_init(void) { X+ unsigned int flags; X+ flags = 0; X+ return (dns_sdb_register("pgsql", &pgsqldb_methods, NULL, flags, X+ ns_g_mctx, &pgsqldb)); X+} X+ X+/* X+ * Wrapper around dns_sdb_unregister(). X+ */ X+void X+pgsqldb_clear(void) { X+ if (pgsqldb != NULL) X+ dns_sdb_unregister(&pgsqldb); X+} Xdiff -urN ../bind-9.4.2-P2.orig/bin/named/pgsqldb.h ./bin/named/pgsqldb.h X--- ../bind-9.4.2-P2.orig/bin/named/pgsqldb.h 1969-12-31 19:00:00.000000000 -0500 X+++ ./bin/named/pgsqldb.h 2008-08-11 21:04:01.000000000 -0400 X@@ -0,0 +1,25 @@ X+/* X+ * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") X+ * Copyright (C) 2000, 2001 Internet Software Consortium. X+ * X+ * Permission to use, copy, modify, and distribute this software for any X+ * purpose with or without fee is hereby granted, provided that the above X+ * copyright notice and this permission notice appear in all copies. X+ * X+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH X+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY X+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, X+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM X+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE X+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR X+ * PERFORMANCE OF THIS SOFTWARE. X+ */ X+ X+/* $Id: pgsqldb.h,v 1.3 2004/03/05 05:04:32 marka Exp $ */ X+ X+#include <isc/types.h> X+ X+isc_result_t pgsqldb_init(void); X+ X+void pgsqldb_clear(void); X+ 1aa7366fae95938af2524f3d9220fedd echo x - bind9-sdb-postgresql/Makefile sed 's/^X//' >bind9-sdb-postgresql/Makefile << '9aa13509a0b9ec7448ed3af2b4f93b1c' X# New ports collection makefile for: bind9-sdb-postgresql X# Date created: 16 Aug 2008 X# Whom: Josh Carroll <josh.carroll@gmail.com> X# X# $FreeBSD: ports/dns/bind9-sdb-postgresql/Makefile,v 1.6 2008/07/04 15:43:37 dougb Exp $ X# X XPORTNAME= bind9 XPORTVERSION= 9.4.2.2 XCATEGORIES= dns net ipv6 XMASTER_SITES= ${MASTER_SITE_ISC} XMASTER_SITE_SUBDIR= bind9/${ISCVERSION} XPKGNAMESUFFIX= -sdb-postgresql XDISTNAME= bind-${ISCVERSION} XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}${EXTRACT_SUFX}.asc XEXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} X XMAINTAINER= josh.carroll@gmail.com XCOMMENT= Bind9, patched for use with a PostgreSQL-based backend X XCONFLICTS= bind9-9.* bind9-dlz-* host-* skalibs-* X X# ISC releases things like 9.3.0rc1, which our versioning doesn't like XISCVERSION= 9.4.2-P2 X XGNU_CONFIGURE= yes XCONFIGURE_ARGS= --localstatedir=/var --disable-linux-caps --with-openssl \ X --with-randomdev=/dev/random X XUSE_OPENSSL= yes XUSE_PGSQL= yes X XCONFLICTS= bind9-9.[35].* bind9-dlz-* bind9-sdb-ldap-* host-* X XOPTIONS= REPLACE_BASE "Replace base BIND with this version" off \ X LARGE_FILE "64-bit file support" off \ X SIGCHASE "dig/host/nslookup will do DNSSEC validation" off \ X IPV6 "IPv6 Support (autodetected by default)" off X X.include <bsd.port.pre.mk> X X# We are ok by default from 7.0-RELEASE on X.if ${OSVERSION} >= 700055 XOPTIONS+= THREADS "Compile with thread support" on X.else XOPTIONS+= THREADS "Compile w/threads (Not Recommended <FreeBSD-7)" off X.endif X X.if defined(WITH_OPENSSL_PORT) XCONFIGURE_ARGS+= --with-openssl=${LOCALBASE} X.else XCONFIGURE_ARGS+= --with-openssl X.endif X X.if defined(WITH_LARGE_FILE) XCONFIGURE_ARGS+= --enable-largefile X.endif X X.if defined(WITH_SIGCHASE) XCONFIGURE_ARGS+= STD_CDEFINES="-DDIG_SIGCHASE=1" X.endif X X.if defined(WITH_IPV6) XCONFIGURE_ARGS+= --enable-ipv6 X.endif X X.if !defined(WITHOUT_THREADS) XCONFIGURE_ARGS+= --enable-threads X.else XCONFIGURE_ARGS+= --disable-threads X.endif X X.if defined(WITH_REPLACE_BASE) XPKGNAMESUFFIX= -sdb-postgresql-base XPREFIX= /usr XBIND_DESTETC= /etc/namedb XCONFIGURE_ARGS+= --prefix=${PREFIX} \ X --sysconfdir=${BIND_DESTETC} X.else XBIND_DESTETC= ${PREFIX}/etc X.endif X XPLIST_SUB= BIND_DESTETC="${BIND_DESTETC}" X XMAN1= dig.1 host.1 nslookup.1 XMAN3= lwres.3 lwres_addr_parse.3 lwres_buffer.3 lwres_buffer_add.3 \ X lwres_buffer_back.3 lwres_buffer_clear.3 lwres_buffer_first.3 \ X lwres_buffer_forward.3 lwres_buffer_getmem.3 lwres_buffer_getuint16.3 \ X lwres_buffer_getuint32.3 lwres_buffer_getuint8.3 lwres_buffer_init.3 \ X lwres_buffer_invalidate.3 lwres_buffer_putmem.3 \ X lwres_buffer_putuint16.3 lwres_buffer_putuint32.3 \ X lwres_buffer_putuint8.3 lwres_buffer_subtract.3 lwres_conf_clear.3 \ X lwres_conf_get.3 lwres_conf_init.3 lwres_conf_parse.3 \ X lwres_conf_print.3 lwres_config.3 lwres_context.3 \ X lwres_context_allocmem.3 lwres_context_create.3 \ X lwres_context_destroy.3 lwres_context_freemem.3 \ X lwres_context_initserial.3 lwres_context_nextserial.3 \ X lwres_context_sendrecv.3 lwres_endhostent.3 lwres_endhostent_r.3 \ X lwres_freeaddrinfo.3 lwres_freehostent.3 lwres_gabn.3 \ X lwres_gabnrequest_free.3 lwres_gabnrequest_parse.3 \ X lwres_gabnrequest_render.3 lwres_gabnresponse_free.3 \ X lwres_gabnresponse_parse.3 lwres_gabnresponse_render.3 \ X lwres_gai_strerror.3 lwres_getaddrinfo.3 lwres_getaddrsbyname.3 \ X lwres_gethostbyaddr.3 lwres_gethostbyaddr_r.3 lwres_gethostbyname.3 \ X lwres_gethostbyname2.3 lwres_gethostbyname_r.3 lwres_gethostent.3 \ X lwres_gethostent_r.3 lwres_getipnode.3 lwres_getipnodebyaddr.3 \ X lwres_getipnodebyname.3 lwres_getnamebyaddr.3 lwres_getnameinfo.3 \ X lwres_getrrsetbyname.3 lwres_gnba.3 lwres_gnbarequest_free.3 \ X lwres_gnbarequest_parse.3 lwres_gnbarequest_render.3 \ X lwres_gnbaresponse_free.3 lwres_gnbaresponse_parse.3 \ X lwres_gnbaresponse_render.3 lwres_herror.3 lwres_hstrerror.3 \ X lwres_inetntop.3 lwres_lwpacket_parseheader.3 \ X lwres_lwpacket_renderheader.3 lwres_net_ntop.3 lwres_noop.3 \ X lwres_nooprequest_free.3 lwres_nooprequest_parse.3 \ X lwres_nooprequest_render.3 lwres_noopresponse_free.3 \ X lwres_noopresponse_parse.3 lwres_noopresponse_render.3 \ X lwres_packet.3 lwres_resutil.3 lwres_sethostent.3 \ X lwres_sethostent_r.3 lwres_string_parse.3 XMAN5= named.conf.5 rndc.conf.5 XMAN8= dnssec-keygen.8 dnssec-signzone.8 lwresd.8 named-checkconf.8 \ X named-checkzone.8 named.8 nsupdate.8 rndc-confgen.8 rndc.8 XMLINKS= named-checkzone.8 named-compilezone.8 X Xpost-patch: X.for FILE in check/named-checkconf.8 named/named.8 nsupdate/nsupdate.8 \ X rndc/rndc.8 X @${MV} ${WRKSRC}/bin/${FILE} ${WRKSRC}/bin/${FILE}.Dist X @${SED} -e 's#/etc/named.conf#${BIND_DESTETC}/named.conf#g' \ X -e 's#/etc/rndc.conf#${BIND_DESTETC}/rndc.conf#g' \ X ${WRKSRC}/bin/${FILE}.Dist > ${WRKSRC}/bin/${FILE} X.endfor X Xpost-install: X ${INSTALL_DATA} ${WRKSRC}/bin/rndc/rndc.conf \ X ${BIND_DESTETC}/rndc.conf.sample X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR}/arm ${DOCSDIR}/misc X ${INSTALL_DATA} ${WRKSRC}/doc/arm/Bv9ARM*html ${DOCSDIR}/arm X ${INSTALL_DATA} ${WRKSRC}/doc/misc/[a-z]* ${DOCSDIR}/misc X ${CP} ${WRKSRC}/CHANGES ${WRKSRC}/COPYRIGHT ${WRKSRC}/FAQ \ X ${WRKSRC}/README ${DOCSDIR}/ X.endif X X @${CAT} ${PKGMESSAGE} X X.include <bsd.port.post.mk> 9aa13509a0b9ec7448ed3af2b4f93b1c echo x - bind9-sdb-postgresql/distinfo sed 's/^X//' >bind9-sdb-postgresql/distinfo << '5077f5302ff12d53090f1f154db09597' XMD5 (bind-9.4.2-P2.tar.gz) = 74464f8af260ad71a19a3400a1ae00bb XSHA256 (bind-9.4.2-P2.tar.gz) = eddf17749abb469bd67213c151450c8e07414d7fcf5a4cd0dc6c03da9656d74d XSIZE (bind-9.4.2-P2.tar.gz) = 6456550 XMD5 (bind-9.4.2-P2.tar.gz.asc) = 996776035ce9531fef6c3097dd282502 XSHA256 (bind-9.4.2-P2.tar.gz.asc) = 111fa20580d5553d5c40f4d001130f1e33382736b3c32fa6912ffa76d81e73de XSIZE (bind-9.4.2-P2.tar.gz.asc) = 486 5077f5302ff12d53090f1f154db09597 echo x - bind9-sdb-postgresql/pkg-descr sed 's/^X//' >bind9-sdb-postgresql/pkg-descr << 'f160da3882e07985dac0f4f39978637f' XBIND version 9 Nameserver, with PostgreSQL backend support. X XWWW: http://www.isc.org/index.pl?/sw/bind/index.php f160da3882e07985dac0f4f39978637f echo x - bind9-sdb-postgresql/pkg-message sed 's/^X//' >bind9-sdb-postgresql/pkg-message << 'cbcbb820768dc15ad55dfb96452d4ab1' X************************************************************************* X* _ _____ _____ _____ _ _ _____ ___ ___ _ _ * X* / \|_ _|_ _| ____| \ | |_ _|_ _/ _ \| \ | | * X* / _ \ | | | | | _| | \| | | | | | | | | \| | * X* / ___ \| | | | | |___| |\ | | | | | |_| | |\ | * X* /_/ \_\_| |_| |_____|_| \_| |_| |___\___/|_| \_| * X* * X* If you are running BIND 9 in a chroot environment, make * X* sure that there is a /dev/random device in the chroot. * X* * X* BIND 9 also requires configuration of rndc, including a * X* "secret" key. The easiest, and most secure way to configure * X* rndc is to run 'rndc-confgen -a' to generate the proper conf * X* file, with a new random key, and appropriate file permissions. * X* * X* The /etc/rc.d/named script in the base will do both for you. * X* * X************************************************************************* cbcbb820768dc15ad55dfb96452d4ab1 echo x - bind9-sdb-postgresql/pkg-plist sed 's/^X//' >bind9-sdb-postgresql/pkg-plist << '8291183769a947a7b9d2a7f890cfe54e' Xbin/dig Xbin/host Xbin/isc-config.sh Xbin/nslookup Xbin/nsupdate Xinclude/bind9/check.h Xinclude/bind9/getaddresses.h Xinclude/bind9/version.h Xinclude/dns/acl.h Xinclude/dns/adb.h Xinclude/dns/byaddr.h Xinclude/dns/cache.h Xinclude/dns/callbacks.h Xinclude/dns/cert.h Xinclude/dns/compress.h Xinclude/dns/db.h Xinclude/dns/dbiterator.h Xinclude/dns/dbtable.h Xinclude/dns/diff.h Xinclude/dns/dispatch.h Xinclude/dns/dnssec.h Xinclude/dns/ds.h Xinclude/dns/enumclass.h Xinclude/dns/enumtype.h Xinclude/dns/events.h Xinclude/dns/fixedname.h Xinclude/dns/journal.h Xinclude/dns/keyflags.h Xinclude/dns/keytable.h Xinclude/dns/keyvalues.h Xinclude/dns/lib.h Xinclude/dns/log.h Xinclude/dns/master.h Xinclude/dns/masterdump.h Xinclude/dns/message.h Xinclude/dns/name.h Xinclude/dns/ncache.h Xinclude/dns/nsec.h Xinclude/dns/peer.h Xinclude/dns/portlist.h Xinclude/dns/rbt.h Xinclude/dns/rcode.h Xinclude/dns/rdata.h Xinclude/dns/rdataclass.h Xinclude/dns/rdatalist.h Xinclude/dns/rdataset.h Xinclude/dns/rdatasetiter.h Xinclude/dns/rdataslab.h Xinclude/dns/rdatastruct.h Xinclude/dns/rdatatype.h Xinclude/dns/request.h Xinclude/dns/resolver.h Xinclude/dns/result.h Xinclude/dns/rootns.h Xinclude/dns/sdb.h Xinclude/dns/secalg.h Xinclude/dns/secproto.h Xinclude/dns/soa.h Xinclude/dns/ssu.h Xinclude/dns/tcpmsg.h Xinclude/dns/time.h Xinclude/dns/tkey.h Xinclude/dns/tsig.h Xinclude/dns/ttl.h Xinclude/dns/types.h Xinclude/dns/validator.h Xinclude/dns/version.h Xinclude/dns/view.h Xinclude/dns/xfrin.h Xinclude/dns/zone.h Xinclude/dns/zonekey.h Xinclude/dns/zt.h Xinclude/dst/dst.h Xinclude/dst/lib.h Xinclude/dst/result.h Xinclude/isc/app.h Xinclude/isc/assertions.h Xinclude/isc/atomic.h Xinclude/isc/base64.h Xinclude/isc/bitstring.h Xinclude/isc/boolean.h Xinclude/isc/buffer.h Xinclude/isc/bufferlist.h Xinclude/isc/commandline.h Xinclude/isc/condition.h Xinclude/isc/dir.h Xinclude/isc/entropy.h Xinclude/isc/error.h Xinclude/isc/event.h Xinclude/isc/eventclass.h Xinclude/isc/file.h Xinclude/isc/formatcheck.h Xinclude/isc/fsaccess.h Xinclude/isc/hash.h Xinclude/isc/heap.h Xinclude/isc/hex.h Xinclude/isc/hmacmd5.h Xinclude/isc/int.h Xinclude/isc/interfaceiter.h Xinclude/isc/lang.h Xinclude/isc/lex.h Xinclude/isc/lfsr.h Xinclude/isc/lib.h Xinclude/isc/list.h Xinclude/isc/log.h Xinclude/isc/magic.h Xinclude/isc/md5.h Xinclude/isc/mem.h Xinclude/isc/msgcat.h Xinclude/isc/msgs.h Xinclude/isc/mutex.h Xinclude/isc/mutexblock.h Xinclude/isc/net.h Xinclude/isc/netaddr.h Xinclude/isc/netdb.h Xinclude/isc/offset.h Xinclude/isc/once.h Xinclude/isc/ondestroy.h Xinclude/isc/os.h Xinclude/isc/parseint.h Xinclude/isc/platform.h Xinclude/isc/print.h Xinclude/isc/quota.h Xinclude/isc/random.h Xinclude/isc/ratelimiter.h Xinclude/isc/refcount.h Xinclude/isc/region.h Xinclude/isc/resource.h Xinclude/isc/result.h Xinclude/isc/resultclass.h Xinclude/isc/rwlock.h Xinclude/isc/serial.h Xinclude/isc/sha1.h Xinclude/isc/sha2.h Xinclude/isc/sockaddr.h Xinclude/isc/socket.h Xinclude/isc/stdio.h Xinclude/isc/stdlib.h Xinclude/isc/stdtime.h Xinclude/isc/string.h Xinclude/isc/symtab.h Xinclude/isc/syslog.h Xinclude/isc/task.h Xinclude/isc/taskpool.h Xinclude/isc/thread.h Xinclude/isc/time.h Xinclude/isc/timer.h Xinclude/isc/types.h Xinclude/isc/util.h Xinclude/isc/version.h Xinclude/isccc/alist.h Xinclude/isccc/base64.h Xinclude/isccc/cc.h Xinclude/isccc/ccmsg.h Xinclude/isccc/events.h Xinclude/isccc/lib.h Xinclude/isccc/result.h Xinclude/isccc/sexpr.h Xinclude/isccc/symtab.h Xinclude/isccc/symtype.h Xinclude/isccc/types.h Xinclude/isccc/util.h Xinclude/isccc/version.h Xinclude/isccfg/aclconf.h Xinclude/isccfg/cfg.h Xinclude/isccfg/grammar.h Xinclude/isccfg/log.h Xinclude/isccfg/namedconf.h Xinclude/isccfg/version.h Xinclude/lwres/context.h Xinclude/lwres/int.h Xinclude/lwres/ipv6.h Xinclude/lwres/lang.h Xinclude/lwres/list.h Xinclude/lwres/lwbuffer.h Xinclude/lwres/lwpacket.h Xinclude/lwres/lwres.h Xinclude/lwres/net.h Xinclude/lwres/netdb.h Xinclude/lwres/platform.h Xinclude/lwres/result.h Xinclude/lwres/version.h Xlib/libbind9.a Xlib/libdns.a Xlib/libisc.a Xlib/libisccc.a Xlib/libisccfg.a Xlib/liblwres.a Xsbin/dnssec-keygen Xsbin/dnssec-signzone Xsbin/lwresd Xsbin/named Xsbin/named-checkconf Xsbin/named-checkzone Xsbin/named-compilezone Xsbin/rndc Xsbin/rndc-confgen X%%PORTDOCS%%%%DOCSDIR%%/CHANGES X%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT X%%PORTDOCS%%%%DOCSDIR%%/FAQ X%%PORTDOCS%%%%DOCSDIR%%/README X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch01.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch02.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch03.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch04.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch05.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch06.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch07.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch08.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch09.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.ch10.html X%%PORTDOCS%%%%DOCSDIR%%/arm/Bv9ARM.html X%%PORTDOCS%%%%DOCSDIR%%/misc/dnssec X%%PORTDOCS%%%%DOCSDIR%%/misc/format-options.pl X%%PORTDOCS%%%%DOCSDIR%%/misc/ipv6 X%%PORTDOCS%%%%DOCSDIR%%/misc/migration X%%PORTDOCS%%%%DOCSDIR%%/misc/migration-4to9 X%%PORTDOCS%%%%DOCSDIR%%/misc/options X%%PORTDOCS%%%%DOCSDIR%%/misc/rfc-compliance X%%PORTDOCS%%%%DOCSDIR%%/misc/roadmap X%%PORTDOCS%%%%DOCSDIR%%/misc/sdb X%%PORTDOCS%%@dirrm %%DOCSDIR%%/arm X%%PORTDOCS%%@dirrm %%DOCSDIR%%/misc X%%PORTDOCS%%@dirrm %%DOCSDIR%% X@unexec rm -f %%BIND_DESTETC%%/rndc.conf.sample X@dirrm include/bind9 X@dirrm include/dns X@dirrm include/dst X@dirrmtry include/isc X@dirrm include/isccc X@dirrm include/isccfg X@dirrm include/lwres 8291183769a947a7b9d2a7f890cfe54e exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808171610.m7HGAY1n018725>