ports/101672: [PATCH] dns/dns_balance: update to 2.0, bugfix, take maintainership

Stanislav Sedov ssedov at mbsd.msk.ru
Tue Aug 8 20:30:17 UTC 2006


>Number:         101672
>Category:       ports
>Synopsis:       [PATCH] dns/dns_balance: update to 2.0, bugfix, take maintainership
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 08 20:30:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Stanislav Sedov
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
MBSD labs, Inc.
>Environment:
System: FreeBSD fonon.realnet 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Wed Aug  2 21:44:37 MSD
>Description:
- Update to 2.0
- Fix RC_SUBR script (use command_interpreter, either it doesn't stop correctly)
- Take maintainership

>How-To-Repeat:
>Fix:

--- dns_balance-2.0.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/Makefile /var/tmp/ruby/dns_balance/Makefile
--- /usr/ports/dns/dns_balance/Makefile	Thu Nov 17 22:13:22 2005
+++ /var/tmp/ruby/dns_balance/Makefile	Wed Aug  9 00:20:49 2006
@@ -6,12 +6,12 @@
 #
 
 PORTNAME=	dns_balance
-PORTVERSION=	1.1
+PORTVERSION=	2.0
 CATEGORIES=	dns
 MASTER_SITES=	http://www.netlab.is.tsukuba.ac.jp/~yokota/archive/
 DISTNAME=	DNS-Balance-${PORTVERSION}
 
-MAINTAINER=	ports at FreeBSD.org
+MAINTAINER=	ssedov at mbsd.msk.ru
 COMMENT=	A dynamic load-balancing DNS server
 
 USE_RUBY=	yes
@@ -21,62 +21,60 @@
 
 RUBY_SHEBANG_FILES=	${WRKSRC}/dns_balance.rb \
 			${WRKSRC}/sample/makedb.rb \
-			${WRKSRC}/sample/makeringdb.rb \
 			${WRKSRC}/sample/make_namespace.rb
+
 ETCS=		addrdb.rb \
 		namespace.rb
+ETCDIR=		${PREFIX}/etc/${PORTNAME}
 LIBS=		as_search.rb \
 		cache.rb \
 		datatype.rb \
 		log_writer.rb \
 		multilog.rb \
 		util.rb
-EXAMPLES_EXEC=	make_namespace.rb \
-		makedb.rb \
-		makeringdb.rb \
-		ringupdate.sh
-EXAMPLES_DATA=	addr \
-		addr.ring \
-		addr.ring.txt \
-		namespace.txt
-DOCS_EN=	Q_and_A.dns_balance.eng \
-		README.dns_balance.eng \
-		README.dnsbalance+daemontools.eng
-DOCS_JA=	ChangeLog \
-		Q_and_A.dns_balance \
-		README.dns_balance \
-		README.dnsbalance+daemontools
-SUBST=		PREFIX=${PREFIX} RC_SUBR=${RC_SUBR}
+
+PLIST_SUB+=	ETCDIR=${ETCDIR}
+SUB_LIST+=	RUBY=${RUBY}
 
 post-patch:
-	${SED} ${SUBST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${WRKSRC}/dns_balance.rb > ${WRKSRC}/dns_balance
+	${SED} -E -e "s,%%PREFIX%%,${PREFIX},g" \
+		-e "s,%%PORTNAME%%,${PORTNAME},g" \
+		-e "s,%%ETCDIR%%,${ETCDIR},g" \
+		${WRKSRC}/dns_balance.rb > ${WRKSRC}/dns_balance
 
 do-install:
+#
+# Install main executable
+#
 	${INSTALL_SCRIPT} ${WRKSRC}/dns_balance ${PREFIX}/sbin/
+#
+# Install sample configuration files
+#
 	${MKDIR} ${PREFIX}/etc/${PORTNAME}
-.for f in ${ETCS}
-	${INSTALL_DATA} ${WRKSRC}/${f} ${PREFIX}/etc/${PORTNAME}/${f}-dist
-	[ -f ${PREFIX}/etc/${PORTNAME}/${f} ] || ${INSTALL_DATA} ${WRKSRC}/${f} ${PREFIX}/etc/${PORTNAME}/${f}
+.for FILE in ${ETCS}
+	${INSTALL_DATA} ${WRKSRC}/${FILE} ${ETCDIR}/${FILE}.dist
+. if !exists(${ETCDIR}/${FILE})
+	${INSTALL_DATA} ${WRKSRC}/${FILE} ${ETCDIR}/${FILE}
+. endif
 .endfor
+
+#
+# Install library files
+#
 	${MKDIR} ${PREFIX}/lib/${PORTNAME}
-.for f in ${LIBS}
-	${INSTALL_DATA} ${WRKSRC}/${f} ${PREFIX}/lib/${PORTNAME}/
+.for FILE in ${LIBS}
+	${INSTALL_DATA} ${WRKSRC}/${FILE} ${PREFIX}/lib/${PORTNAME}/
 .endfor
+
+#
+# Install port's documentation
+#
 .if !defined(NOPORTDOCS)
 	${MKDIR} ${EXAMPLESDIR}
-.for f in ${EXAMPLES_EXEC}
-	${INSTALL_DATA} ${WRKSRC}/sample/${f} ${EXAMPLESDIR}/
-.endfor
-.for f in ${EXAMPLES_DATA}
-	${INSTALL_SCRIPT} ${WRKSRC}/sample/${f} ${EXAMPLESDIR}/
-.endfor
-	${MKDIR} ${DOCSDIR}/ja
-.for f in ${DOCS_EN}
-	${INSTALL_DATA} ${WRKSRC}/${f} ${DOCSDIR}/
-.endfor
-.for f in ${DOCS_JA}
-	${INSTALL_SCRIPT} ${WRKSRC}/${f} ${DOCSDIR}/ja/
-.endfor
+	${INSTALL_DATA} ${WRKSRC}/sample/* ${EXAMPLESDIR}
+
+	${MKDIR} ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README* ${WRKSRC}/Q_and_A* ${DOCSDIR}
 .endif
 
 .include <bsd.port.mk>
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/distinfo /var/tmp/ruby/dns_balance/distinfo
--- /usr/ports/dns/dns_balance/distinfo	Thu Nov 24 04:44:31 2005
+++ /var/tmp/ruby/dns_balance/distinfo	Mon Aug  7 14:33:55 2006
@@ -1,3 +1,3 @@
-MD5 (DNS-Balance-1.1.tar.gz) = a01bcf3fc7ce6ac7ad5b6bb5e441ad9d
-SHA256 (DNS-Balance-1.1.tar.gz) = 09148f5e5fb5f1e2ef384d93e55fd36e2d3d5537cd7f69fb032ec8a3573b36b0
-SIZE (DNS-Balance-1.1.tar.gz) = 16496
+MD5 (DNS-Balance-2.0.tar.gz) = 2d68bb2fd5279906feaf5570027ce267
+SHA256 (DNS-Balance-2.0.tar.gz) = 117d42986f7b090e827110ba74a00f6a488244f74605e22c5587a13e604bf4de
+SIZE (DNS-Balance-2.0.tar.gz) = 17256
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/files/dns_balance.sh.in /var/tmp/ruby/dns_balance/files/dns_balance.sh.in
--- /usr/ports/dns/dns_balance/files/dns_balance.sh.in	Mon Feb 20 23:46:56 2006
+++ /var/tmp/ruby/dns_balance/files/dns_balance.sh.in	Wed Aug  9 00:20:13 2006
@@ -11,12 +11,14 @@
 rcvar=`set_rcvar`
 
 load_rc_config ${name}
-
 : ${dns_balance_enable="NO"}
-: ${dns_balance_pidfile="/var/run/dns_balance.pid"}
-: ${dns_balance_flags="-l /var/log/dns_balance.log -p ${dns_balance_pidfile}"}
+: ${dns_balance_logfile="/var/log/${name}.log"}
+: ${dns_balance_pidfile="/var/log/${name}.pid"}
+: ${dns_balance_flags=""}
 
-command="env ROOT=%%PREFIX%%/lib/dns_balance %%PREFIX%%/sbin/dns_balance"
+command="%%PREFIX%%/sbin/${name}"
+command_args="-l ${dns_balance_logfile} -p ${dns_balance_pidfile}"
+command_interpreter=%%RUBY%%
 pidfile=${dns_balance_pidfile}
 
 run_rc_command "$1"
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/files/patch-dns_balance.rb /var/tmp/ruby/dns_balance/files/patch-dns_balance.rb
--- /usr/ports/dns/dns_balance/files/patch-dns_balance.rb	Tue Jul 20 00:58:53 2004
+++ /var/tmp/ruby/dns_balance/files/patch-dns_balance.rb	Tue Aug  8 23:55:59 2006
@@ -1,36 +1,42 @@
---- dns_balance.rb.orig	Thu Feb  6 17:39:46 2003
-+++ dns_balance.rb	Sun Jul 18 00:58:12 2004
-@@ -19,6 +19,8 @@
- require 'thread'
- require 'getopts'
- 
-+$:.unshift "%%PREFIX%%/etc/dns_balance", "%%PREFIX%%/lib/dns_balance"
-+
- require 'datatype.rb'
- require 'multilog.rb'
- require 'log_writer.rb'
-@@ -39,9 +41,11 @@
- # ´Ø¿ô
- 
- def usage()
--  print "Usage: ruby dns_balance.rb [-lh] [-i ipaddr]\n"
-+  print "Usage: dns_balance.rb [-h] [-i ipaddr] [-l logfile] [-p pidfile]\n"
-+  print "       -l logfile print log to logfile\n"
-   print "       -i ipaddr  listen IP address (default:0.0.0.0)\n"
-   print "       -h         help message\n"
-+  print "       -p pidfile record PID in pidfile\n"
-   print "       --as       Enable AS namespace\n"
-   exit(111)
- end
-@@ -184,12 +188,45 @@
- # main
- 
- srand()
--getopts("lh", "i:0.0.0.0", "d:", "as")
-+getopts("h", "i:0.0.0.0", "d:", "as", 'l:', 'p:')
- 
- usage() if $OPT_h
+--- dns_balance.rb.orig	Sat Jun 11 02:23:56 2005
++++ dns_balance.rb	Tue Aug  8 23:51:31 2006
+@@ -7,14 +7,7 @@
+ # $Id: dns_balance.rb,v 1.25 2003/06/13 22:07:27 elca Exp $
+ 
+ # DNS Balance ¤Î¸ºß¤¹¤ë¥Ñ¥¹Ì¾
+-if ENV["ROOT"] == nil
+-  warn("\"ROOT\" environment is recommended. Use current directory in this time.")
+-  PREFIX = "."
+-#  exit(111)
+-else
+-  PREFIX = ENV["ROOT"]
+-  $LOAD_PATH.unshift(PREFIX)
+-end
++$LOAD_PATH.unshift("%%PREFIX%%/etc/%%PORTNAME%%", "%%PREFIX%%/lib/%%PORTNAME%%")
+ $LOAD_PATH.freeze
+ 
+ require 'socket'
+@@ -204,6 +197,14 @@
+   opt.on("--as", "Enable AS namespace") {
+     OPT["as"] = true
+   }
++  opt.on("-l LOGFILE", String, "Print log to LOGFILE") {
++    |o|
++    OPT["l"] = o;
++  }
++  opt.on("-p PIDFILE", String, "Record PID to PIDFILE") {
++    |o|
++    OPT["p"] = o;
++  }
+   opt.on_tail("-h", "--help", "Show this help message and exit") {
+     STDERR.printf("%s", opt.to_s)
+     exit(111)
+@@ -212,10 +213,42 @@
+ }
+ OPT.freeze
  
+-ML = MultiLog::new
+-ML.open
 +exit! if fork
 +Process::setsid
 +exit! if fork
@@ -39,14 +45,14 @@
 +STDERR.close
 +
 +$pidfile = nil
-+if $OPT_p
-+  $pidfile = $OPT_p
++if OPT["p"]
++  $pidfile = OPT["p"]
 +  File::open($pidfile, 'w') { |f| f.puts $$ }
 +end
 +
-+$logout = nil
-+if $OPT_l
-+  $logout = File::open($OPT_l, 'a+')
++$logout = nil                                                               
++if OPT["l"]
++  $logout = File::open(OPT["l"], 'a+')
 +  $logout.sync = true
 +end
 +
@@ -58,15 +64,34 @@
 +  }
 +end
 +
- ML = MultiLog.new
--ML.open
-+if $OPT_l
-+  $logout = File::open($OPT_l, 'a+')
++ ML = MultiLog.new
++if OPT["l"] 
++  $logout = File::open(OPT["l"], 'a+')
 +  $logout.sync = true
 +  ML.open($logout)
 +else
 +  ML.open
 +end
  
- ML.log("dir: " + Prefix)
+-ML.log("dir: " + PREFIX)
  ML.log("start")
+ 
+ 
+@@ -224,7 +257,7 @@
+ #
+ Thread::start {
+   loop {
+-    if test(?r, PREFIX + "/addr") || test(?r, "./addr")
++    if test(?r, "%%ETCDIR%%" + "/addr")
+       begin
+ 	load("addr")
+ 
+@@ -234,7 +267,7 @@
+       end
+     end
+ 
+-    #if test(?r, PREFIX + "/addr-once") || test(?r, "./addr-once")
++    #if test(?r, "%%ETCDIR%%" + "/addr-once")
+     #  Thread.exit
+     #end
+ 
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/pkg-descr /var/tmp/ruby/dns_balance/pkg-descr
--- /usr/ports/dns/dns_balance/pkg-descr	Mon Mar  5 11:58:43 2001
+++ /var/tmp/ruby/dns_balance/pkg-descr	Tue Aug  8 23:53:49 2006
@@ -6,4 +6,9 @@
 o Implements "A" record lookups only.  This would be good for
   security.
 
-WWW:	http://openlab.ring.gr.jp/dns_balance/index.html.en
+This (FreeBSD) version differs from original in the following:
+- It works as a daemon
+- Has ability to write messages to logfile
+- Can save it's PID
+
+WWW:	http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/dns_balance/
diff -ruN --exclude=CVS /usr/ports/dns/dns_balance/pkg-plist /var/tmp/ruby/dns_balance/pkg-plist
--- /usr/ports/dns/dns_balance/pkg-plist	Thu Nov 17 22:13:22 2005
+++ /var/tmp/ruby/dns_balance/pkg-plist	Tue Aug  8 23:34:06 2006
@@ -1,9 +1,9 @@
 sbin/dns_balance
- at unexec if cmp -s %D/etc/dns_balance/addrdb.rb %D/etc/dns_balance/addrdb.rb-dist; then rm -f %D/etc/dns_balance/addrdb.rb; fi
-etc/dns_balance/addrdb.rb-dist
+ at unexec if cmp -s %%ETCDIR%%/addrdb.rb %%ETCDIR%%/addrdb.rb.dist; then rm -f %%ETCDIR%%/addrdb.rb; fi
+etc/dns_balance/addrdb.rb.dist
 @exec [ ! -f %B/addrdb.rb ] && cp %B/%f %B/addrdb.rb
- at unexec if cmp -s %D/etc/dns_balance/namespace.rb %D/etc/dns_balance/namespace.rb-dist; then rm -f %D/etc/dns_balance/namespace.rb; fi
-etc/dns_balance/namespace.rb-dist
+ at unexec if cmp -s %%ETCDIR%%/namespace.rb %%ETCDIR%%/namespace.rb.dist; then rm -f %%ETCDIR%%/namespace.rb; fi
+etc/dns_balance/namespace.rb.dist
 @exec [ ! -f %B/namespace.rb ] && cp %B/%f %B/namespace.rb
 @dirrm etc/dns_balance
 lib/dns_balance/as_search.rb
@@ -13,14 +13,12 @@
 lib/dns_balance/multilog.rb
 lib/dns_balance/util.rb
 @dirrm lib/dns_balance
+%%PORTDOCS%%%%DOCSDIR%%/Q_and_A.dns_balance
 %%PORTDOCS%%%%DOCSDIR%%/Q_and_A.dns_balance.eng
+%%PORTDOCS%%%%DOCSDIR%%/README.dns_balance
 %%PORTDOCS%%%%DOCSDIR%%/README.dns_balance.eng
+%%PORTDOCS%%%%DOCSDIR%%/README.dnsbalance+daemontools
 %%PORTDOCS%%%%DOCSDIR%%/README.dnsbalance+daemontools.eng
-%%PORTDOCS%%%%DOCSDIR%%/ja/ChangeLog
-%%PORTDOCS%%%%DOCSDIR%%/ja/Q_and_A.dns_balance
-%%PORTDOCS%%%%DOCSDIR%%/ja/README.dns_balance
-%%PORTDOCS%%%%DOCSDIR%%/ja/README.dnsbalance+daemontools
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/ja
 %%PORTDOCS%%@dirrm %%DOCSDIR%%
 %%PORTDOCS%%%%EXAMPLESDIR%%/addr
 %%PORTDOCS%%%%EXAMPLESDIR%%/addr.ring
@@ -28,6 +26,7 @@
 %%PORTDOCS%%%%EXAMPLESDIR%%/make_namespace.rb
 %%PORTDOCS%%%%EXAMPLESDIR%%/makedb.rb
 %%PORTDOCS%%%%EXAMPLESDIR%%/makeringdb.rb
+%%PORTDOCS%%%%EXAMPLESDIR%%/namespace.rb
 %%PORTDOCS%%%%EXAMPLESDIR%%/namespace.txt
 %%PORTDOCS%%%%EXAMPLESDIR%%/ringupdate.sh
 %%PORTDOCS%%@dirrm %%EXAMPLESDIR%%
--- dns_balance-2.0.patch ends here ---

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



More information about the freebsd-ports-bugs mailing list