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