OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael Schloh
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src openpkg-web Date: 09-Oct-2003 21:37:51
Branch: HEAD Handle: 2003100920374901
Added files:
openpkg-src/powerdns powerdns.patch
Modified files:
openpkg-src/powerdns fsl.powerdns powerdns.spec rc.powerdns
openpkg-web news.txt
Log:
Completely repair package and implement features in ticket #202
Summary:
Revision Changes Path
1.5 +51 -3 openpkg-src/powerdns/fsl.powerdns
1.1 +94 -0 openpkg-src/powerdns/powerdns.patch
1.31 +63 -34 openpkg-src/powerdns/powerdns.spec
1.13 +75 -12 openpkg-src/powerdns/rc.powerdns
1.6946 +1 -0 openpkg-web/news.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/powerdns/fsl.powerdns
============================================================================
$ cvs diff -u -r1.4 -r1.5 fsl.powerdns
--- openpkg-src/powerdns/fsl.powerdns 14 Jul 2003 18:32:41 -0000 1.4
+++ openpkg-src/powerdns/fsl.powerdns 9 Oct 2003 19:37:50 -0000 1.5
@@ -2,14 +2,62 @@
## fsl.powerdns -- OSSP fsl configuration
##
-ident (powerdns)/.+ q{
+ident (pdns)/.+ q{
prefix(
prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
)
-> {
debug: file(
- path="@l_prefix@/var/powerdns/powerdns.log",
- perm=0600
+ path="@l_prefix@/var/powerdns/pdns.log",
+ perm=0660, jitter=1, monitor=3600
+ )
+ }
+};
+
+ident (bindbe)/.+ q{
+ prefix(
+ prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+ )
+ -> {
+ debug: file(
+ path="@l_prefix@/var/powerdns/bindbe.log",
+ perm=0660, jitter=1, monitor=3600
+ )
+ }
+};
+
+ident (bind2be)/.+ q{
+ prefix(
+ prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+ )
+ -> {
+ debug: file(
+ path="@l_prefix@/var/powerdns/bind2be.log",
+ perm=0660, jitter=1, monitor=3600
+ )
+ }
+};
+
+ident (randbe)/.+ q{
+ prefix(
+ prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+ )
+ -> {
+ debug: file(
+ path="@l_prefix@/var/powerdns/randbe.log",
+ perm=0660, jitter=1, monitor=3600
+ )
+ }
+};
+
+ident (gsqlbe)/.+ q{
+ prefix(
+ prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+ )
+ -> {
+ debug: file(
+ path="@l_prefix@/var/powerdns/gsqlbe.log",
+ perm=0660, jitter=1, monitor=3600
)
}
};
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/powerdns/powerdns.patch
============================================================================
$ cvs diff -u -r0 -r1.1 powerdns.patch
--- /dev/null 2003-10-09 21:37:50.000000000 +0200
+++ powerdns.patch 2003-10-09 21:37:50.000000000 +0200
@@ -0,0 +1,94 @@
+diff -Naur pdns-2.9.11.orig/pdns/backends/bind/bindbackend.cc
pdns-2.9.11/pdns/backends/bind/bindbackend.cc
+--- pdns-2.9.11.orig/pdns/backends/bind/bindbackend.cc 2003-08-22
15:33:31.000000000 +0200
++++ pdns-2.9.11/pdns/backends/bind/bindbackend.cc 2003-10-09 18:24:43.000000000
+0200
+@@ -40,9 +40,21 @@
+ #include "misc.hh"
+ #include "dynlistener.hh"
+ #include "lock.hh"
++
++#undef L
++#define L ::bindLog()
++
+ using namespace std;
+
+
++// use own logger across corresponding classes
++// to properly identify log text from BindBackend
++Logger &bindLog(void)
++{
++ static Logger lbind("bindbe");
++ return lbind;
++}
++
+ cmap_t BindBackend::d_qnames;
+ map<int,vector<vector<BBResourceRecord>* > > BindBackend::d_zone_id_map;
+ set<string> BindBackend::s_contents;
+diff -Naur pdns-2.9.11.orig/pdns/backends/bind/bindbackend2.cc
pdns-2.9.11/pdns/backends/bind/bindbackend2.cc
+--- pdns-2.9.11.orig/pdns/backends/bind/bindbackend2.cc 2003-08-22
15:33:31.000000000 +0200
++++ pdns-2.9.11/pdns/backends/bind/bindbackend2.cc 2003-10-09 18:24:11.000000000
+0200
+@@ -40,8 +40,21 @@
+ #include "misc.hh"
+ #include "dynlistener.hh"
+ #include "lock.hh"
++
++#undef L
++#define L ::bind2Log()
++
+ using namespace std;
+
++
++// use own logger across corresponding classes
++// to properly identify log text from Bind2Backend
++Logger &bind2Log(void)
++{
++ static Logger lbind2("bind2be");
++ return lbind2;
++}
++
+ /** new scheme of things:
+ we have zone-id map
+ a zone-id has a vector of DNSResourceRecords */
+diff -Naur pdns-2.9.11.orig/pdns/backends/gsql/gsqlbackend.cc
pdns-2.9.11/pdns/backends/gsql/gsqlbackend.cc
+--- pdns-2.9.11.orig/pdns/backends/gsql/gsqlbackend.cc 2003-08-22
15:33:31.000000000 +0200
++++ pdns-2.9.11/pdns/backends/gsql/gsqlbackend.cc 2003-10-09 18:25:07.000000000
+0200
+@@ -17,6 +17,18 @@
+
+ #include <sstream>
+
++#undef L
++#define L ::gsqlLog()
++
++
++// use own logger across corresponding classes
++// to properly identify log text from GSQLBackend
++Logger &gsqlLog(void)
++{
++ static Logger lgsql("gsql");
++ return lgsql;
++}
++
+ void GSQLBackend::setNotified(u_int32_t domain_id, u_int32_t serial)
+ {
+ char output[1024];
+diff -Naur pdns-2.9.11.orig/pdns/randombackend.cc pdns-2.9.11/pdns/randombackend.cc
+--- pdns-2.9.11.orig/pdns/randombackend.cc 2003-08-22 14:57:14.000000000 +0200
++++ pdns-2.9.11/pdns/randombackend.cc 2003-10-09 18:25:23.000000000 +0200
+@@ -24,6 +24,18 @@
+ #include "ahuexception.hh"
+ #include "logger.hh"
+
++#undef L
++#define L ::randLog()
++
++
++// use own logger across corresponding classes
++// to properly identify log text from RandomBackend
++Logger &randLog(void)
++{
++ static Logger lrand("randbe");
++ return lrand;
++}
++
+ /* FIRST PART */
+ class RandomBackend : public DNSBackend
+ {
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/powerdns/powerdns.spec
============================================================================
$ cvs diff -u -r1.30 -r1.31 powerdns.spec
--- openpkg-src/powerdns/powerdns.spec 22 Aug 2003 18:01:41 -0000 1.30
+++ openpkg-src/powerdns/powerdns.spec 9 Oct 2003 19:37:50 -0000 1.31
@@ -23,19 +23,17 @@
## SUCH DAMAGE.
##
-# FIXME: mlelstv: JUNK because not well tested and no config
-
# package information
Name: powerdns
Summary: PowerDNS high performance authoritative-only name server
URL: http://www.powerdns.com/products/powerdns/
Vendor: PowerDNS.COM BV
Packager: The OpenPKG Project
-Distribution: OpenPKG [JUNK]
+Distribution: OpenPKG [EVAL]
Group: DNS
License: GPL
Version: 2.9.11
-Release: 20030822
+Release: 20031009
# package options
%option with_fsl yes
@@ -48,6 +46,7 @@
Source1: rc.powerdns
Source2: fsl.powerdns
Source3: powerdnssetup
+Patch0: powerdns.patch
# build information
Prefix: %{l_prefix}
@@ -55,8 +54,8 @@
BuildPreReq: OpenPKG, openpkg >= 20030718
PreReq: OpenPKG, openpkg >= 20030718
%if "%{with_fsl}" == "yes"
-BuildPreReq: fsl >= 1.2.0
-PreReq: fsl >= 1.2.0
+BuildPreReq: fsl >= 1.3.0
+PreReq: fsl >= 1.3.0
%endif
%if "%{with_mysql}" == "yes"
BuildPreReq: mysql
@@ -71,20 +70,31 @@
Conflicts: bind, bind8
%description
- The PowerDNS name server is a modern, advanced and high performance
- authoritative-only nameserver. It is written from scratch and
- conforms to all the relevant DNS standards documents. The PowerDNS
- name server utilizes a flexible backend architecture which can
- access DNS information from any data source. This includes file
- formats, Bind zone files, relational databases or LDAP directories.
- By connecting directly to a database, no 'reloading' is needed.
- Changes committed to the database are effective immediately. If you
- have specific needs for your DNS infrastructure then you can use the
- Backend Developers Kit to write the 'glue' between PowerDNS and your
- data or logic.
+ The PowerDNS name server is a modern, advanced and high
+ performance authoritative-only nameserver. It is written
+ from scratch in ISO C++ and conforms to all the relevant
+ DNS standards documents. The PowerDNS name server utilizes
+ a flexible backend architecture which can access DNS
+ information from any data source. This includes many file
+ formats, Bind zone files, or LDAP directories. PowerDNS
+ can connect directly to a relational database as well, and
+ benefit from immediate zone updates on any changes to the
+ database (no traditional reloading is needed). Lastly, a
+ Backend Developers Kit exists to negotiate between
+ PowerDNS and your data or logic.
%prep
%setup -q -n pdns-%{version}
+ %patch -p1
+ %{l_shtool} subst \
+ -e 's;\([^a-zA-Z0-9]\)PC\([^a-zA-Z0-9]\);\1PCa\2;g' \
+ pdns/packethandler.cc \
+ pdns/tcpreceiver.cc \
+ pdns/ueberbackend.cc \
+ pdns/dynhandler.cc \
+ pdns/dnsproxy.cc \
+ pdns/common_startup.cc \
+ pdns/common_startup.hh
%build
MODULES=""
@@ -101,10 +111,9 @@
CC="%{l_cc}" \
CXX="%{l_cxx}" \
CFLAGS="%{l_cflags -O}" \
- CXXFLAGS="%{l_cxxflags -O} -DDLLIMPORT=" \
- CPPFLAGS="%{l_cppflags} -DDLLIMPORT=" \
- LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}"
- LIBS="%{l_fsl_libs}"
+ CXXFLAGS="%{l_cxxflags -O}" \
+ CPPFLAGS="%{l_cppflags}" \
+ LDFLAGS="%{l_fsl_ldflags}" \
./configure \
--prefix=%{l_prefix} \
--sysconfdir=%{l_prefix}/etc/powerdns \
@@ -125,13 +134,14 @@
--with-modules="$MODULES" \
--with-dynmodules="" \
--disable-shared
- %{l_make} %{l_mflags -O} \
- CXXFLAGS="%{l_cxxflags -O} -DDLLIMPORT= -DHAVE_NAMESPACE_STD" \
- CPPFLAGS="%{l_cppflags} -DDLLIMPORT= -DHAVE_NAMESPACE_STD"
+ %{l_make} %{l_mflags -O} LDADD="%{l_fsl_libs}"
%install
rm -rf $RPM_BUILD_ROOT
+ %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/var/powerdns
%{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
+ strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+ strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
# clean up installation
rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib
@@ -142,15 +152,24 @@
%{l_shtool} subst %{l_value -s -a} \
$RPM_BUILD_ROOT%{l_prefix}/etc/powerdns/pdns.conf
+ # provide some reasonable default configuration values
+ %{l_shtool} subst \
+ -e 's;# \(daemon=\)no;\1yes;' \
+ -e 's;# \(launch=\);\1bind;' \
+ -e 's;# \(local-address=\)0.0.0.0;\1127.0.0.1;' \
+ -e 's;# \(logfile=\)pdns.log;\1%{l_prefix}/var/powerdns/pdns.log;' \
+ -e 's;# \(setgid=\);\1%{l_mgid};' \
+ -e 's;# \(setuid=\);\1%{l_muid};' \
+ -e 's;# \(socket-dir=\)/var/run;\1%{l_prefix}/var/powerdns;' \
+ -e 's;# \(use-logfile=\)no;\1yes;' \
+ $RPM_BUILD_ROOT%{l_prefix}/etc/powerdns/pdns.conf
+
# install run-command script
- %{l_shtool} mkdir -f -p -m 755 \
- $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+ %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.powerdns} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install setup script
- %{l_shtool} mkdir -p -m 755 \
- $RPM_BUILD_ROOT%{l_prefix}/sbin
%{l_shtool} install -c -m 755 \
%{SOURCE powerdnssetup} $RPM_BUILD_ROOT%{l_prefix}/sbin/
@@ -159,22 +178,32 @@
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE fsl.powerdns} \
$RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
- %{l_shtool} mkdir -f -p -m 755 \
- $RPM_BUILD_ROOT%{l_prefix}/var/powerdns
-
- strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
- strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%not %dir %{l_prefix}/etc/fsl' \
- '%attr(775,%{l_musr},%{l_rgrp}) %{l_prefix}/var/powerdns' \
'%config %{l_prefix}/etc/fsl/fsl.powerdns' \
+ '%dir %attr(0775,%{l_susr},%{l_mgrp}) %{l_prefix}/var/powerdns' \
+ '%dir %attr(0700,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/powerdns' \
'%config %attr(0600,%{l_susr},%{l_mgrp}) %{l_prefix}/etc/powerdns/*'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
+
+%post
+ # after upgrade, restart service
+ [ $1 -eq 2 ] || exit 0
+ eval `%{l_rc} powerdns status 2>/dev/null`
+ [ ".$powerdns_active" = .yes ] && %{l_rc} powerdns restart
+ exit 0
+
+%preun
+ # before erase, stop service and remove log files
+ [ $1 -eq 0 ] || exit 0
+ %{l_rc} powerdns stop 2>/dev/null
+ rm -f $RPM_INSTALL_PREFIX/var/powerdns/*.log* >/dev/null 2>&1 || true
+ exit 0
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/powerdns/rc.powerdns
============================================================================
$ cvs diff -u -r1.12 -r1.13 rc.powerdns
--- openpkg-src/powerdns/rc.powerdns 22 Jul 2003 08:11:03 -0000 1.12
+++ openpkg-src/powerdns/rc.powerdns 9 Oct 2003 19:37:50 -0000 1.13
@@ -5,30 +5,93 @@
%config
powerdns_enable="$openpkg_rc_def"
- powerdns_log_prolog="true"
- powerdns_log_epilog="true"
- powerdns_log_numfiles="10"
- powerdns_log_minsize="1M"
- powerdns_log_complevel="9"
+ powerdns_pdns_file="@l_prefix@/var/powerdns/pdns.log"
+ powerdns_pdns_prolog="true"
+ powerdns_pdns_epilog="true"
+ powerdns_pdns_numfiles="10"
+ powerdns_pdns_minsize="1M"
+ powerdns_pdns_complevel="9"
+ powerdns_bindbe_file="@l_prefix@/var/powerdns/bindbe.log"
+ powerdns_bindbe_prolog="true"
+ powerdns_bindbe_epilog="true"
+ powerdns_bindbe_numfiles="10"
+ powerdns_bindbe_minsize="1M"
+ powerdns_bindbe_complevel="9"
+ powerdns_bind2be_file="@l_prefix@/var/powerdns/bind2be.log"
+ powerdns_bind2be_prolog="true"
+ powerdns_bind2be_epilog="true"
+ powerdns_bind2be_numfiles="10"
+ powerdns_bind2be_minsize="1M"
+ powerdns_bind2be_complevel="9"
+ powerdns_gsqlbe_file="@l_prefix@/var/powerdns/gsqlbe.log"
+ powerdns_gsqlbe_prolog="true"
+ powerdns_gsqlbe_epilog="true"
+ powerdns_gsqlbe_numfiles="10"
+ powerdns_gsqlbe_minsize="1M"
+ powerdns_gsqlbe_complevel="9"
+
+%common
+ powerdns_pidfile="@l_prefix@/var/powerdns/pdns.pid"
+ powerdns_sckfile="@l_prefix@/var/powerdns/pdns.controlsocket"
+ powerdns_cfgfile="@l_prefix@/etc/powerdns/pdns.conf"
+ powerdns_signal () {
+ [ -f $powerdns_pidfile ] && kill -$1 `cat $powerdns_pidfile`
+ }
+
+%status -u @l_susr@ -o
+ powerdns_usable="unknown"
+ powerdns_active="no"
+ rcService powerdns enable yes && \
+ powerdns_signal 0 && powerdns_active="yes"
+ echo "powerdns_enable=\"$powerdns_enable\""
+ echo "powerdns_usable=\"$powerdns_usable\""
+ echo "powerdns_active=\"$powerdns_active\""
%start -u @l_susr@
rcService powerdns enable yes || exit 0
+ rcService powerdns active yes && exit 0
@l_prefix@/sbin/pdns_server --daemon=yes
%stop -u @l_susr@
rcService powerdns enable yes || exit 0
- @l_prefix@/bin/pdns_control quit
+ rcService powerdns active no && exit 0
+ powerdns_signal TERM
+ rm -f $powerdns_pidfile
+ rm -f $powerdns_sckfile
%restart -u @l_susr@
rcService powerdns enable yes || exit 0
- @l_prefix@/bin/pdns_control cycle
+ rcService powerdns active no && exit 0
+ rc powerdns stop
+ sleep 2
+ rc powerdns start
%daily -u @l_susr@
rcService powerdns enable yes || exit 0
+
+ # rotate logfiles
+ shtool rotate -f \
+ -n ${powerdns_pdns_numfiles} -s ${powerdns_pdns_minsize} -d \
+ -z ${powerdns_pdns_complevel} -o @l_susr@ -g @l_mgrp@ -m 660 \
+ -P "${powerdns_pdns_prolog}" \
+ -E "${powerdns_pdns_epilog}" \
+ powerdns_pdns_file
+ shtool rotate -f \
+ -n ${powerdns_bindbe_numfiles} -s ${powerdns_bindbe_minsize} -d \
+ -z ${powerdns_bindbe_complevel} -o @l_susr@ -g @l_mgrp@ -m 660 \
+ -P "${powerdns_bindbe_prolog}" \
+ -E "${powerdns_bindbe_epilog}" \
+ powerdns_bindbe_file
+ shtool rotate -f \
+ -n ${powerdns_bind2be_numfiles} -s ${powerdns_bind2be_minsize} -d \
+ -z ${powerdns_bind2be_complevel} -o @l_susr@ -g @l_mgrp@ -m 660 \
+ -P "${powerdns_bind2be_prolog}" \
+ -E "${powerdns_bind2be_epilog}" \
+ powerdns_bind2be_file
shtool rotate -f \
- -n ${powerdns_log_numfiles} -s ${powerdns_log_minsize} -d \
- -z ${powerdns_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \
- -P "${powerdns_log_prolog}" \
- -E "${powerdns_log_epilog}" \
- @l_prefix@/var/powerdns/powerdns.log
+ -n ${powerdns_gsqlbe_numfiles} -s ${powerdns_gsqlbe_minsize} -d \
+ -z ${powerdns_gsqlbe_complevel} -o @l_susr@ -g @l_mgrp@ -m 660 \
+ -P "${powerdns_gsqlbe_prolog}" \
+ -E "${powerdns_gsqlbe_epilog}" \
+ powerdns_gsqlbe_file
@@ .
patch -p0 <<'@@ .'
Index: openpkg-web/news.txt
============================================================================
$ cvs diff -u -r1.6945 -r1.6946 news.txt
--- openpkg-web/news.txt 9 Oct 2003 18:27:58 -0000 1.6945
+++ openpkg-web/news.txt 9 Oct 2003 19:37:49 -0000 1.6946
@@ -1,3 +1,4 @@
+09-Oct-2003: Upgraded package: P<powerdns-2.9.11-20031009>
09-Oct-2003: Upgraded package: P<automake-1.7.8-20031009>
09-Oct-2003: New package: P<glpk-4.1-20031009>
09-Oct-2003: Upgraded package: P<honeyd-0.6a-20031009>
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]