From 1e981e8fefdc339e31555bfaf74184932c3bdff0 Mon Sep 17 00:00:00 2001 From: Ruben Date: Jul 20 2011 15:07:05 +0000 Subject: New release candidate Add MongoDB backend Enable LUA support Convert to systemd --- diff --git a/.gitignore b/.gitignore index 9941fbd..0e40640 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ pdns-2.9.22.tar.gz /pdns-3.0-pre.20110327.2103.tar.gz +/pdns-3.0-rc2.tar.gz +/pdns-3.0-rc3.tar.gz diff --git a/pdns-fix-lua-detection.patch b/pdns-fix-lua-detection.patch new file mode 100644 index 0000000..29b352a --- /dev/null +++ b/pdns-fix-lua-detection.patch @@ -0,0 +1,12 @@ +diff -up pdns-3.0-rc3/configure.orig pdns-3.0-rc3/configure +--- pdns-3.0-rc3/configure.orig 2011-07-20 14:09:39.960000514 +0200 ++++ pdns-3.0-rc3/configure 2011-07-20 14:09:46.288007162 +0200 +@@ -16494,7 +16494,7 @@ $as_echo_n "checking if with lua... " >& + + # Check whether --with-lua was given. + if test "${with_lua+set}" = set; then : +- withval=$with_lua; WITH_LUA=$withval] ++ withval=$with_lua; WITH_LUA=$withval + else + WITH_LUA=yes + fi diff --git a/pdns-fix-mongo-backend.patch b/pdns-fix-mongo-backend.patch new file mode 100644 index 0000000..31bb402 --- /dev/null +++ b/pdns-fix-mongo-backend.patch @@ -0,0 +1,16 @@ +diff -up pdns-3.0-rc3/modules/mongodbbackend/Makefile.in.orig pdns-3.0-rc3/modules/mongodbbackend/Makefile.in +--- pdns-3.0-rc3/modules/mongodbbackend/Makefile.in.orig 2011-07-20 14:41:20.181000073 +0200 ++++ pdns-3.0-rc3/modules/mongodbbackend/Makefile.in 2011-07-20 14:41:45.191996169 +0200 +@@ -256,10 +256,10 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + AM_CPPFLAGS = @THREADFLAGS@ + EXTRA_DIST = OBJECTFILES OBJECTLIBS +-INCLUDES = -I/opt/mongo/include/mongo/ ++INCLUDES = -I/usr/include/mongo/ + lib_LTLIBRARIES = libmongodbbackend.la + libmongodbbackend_la_SOURCES = mongodbbackend.cc mongodbbackend.hh minimal.cc slave.cc master.cc reload.cc private.cc dnssec.cc supermaster.cc crc32.cc +-libmongodbbackend_la_LDFLAGS = -module -avoid-version -L/opt/mongo/lib64 $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS) ++libmongodbbackend_la_LDFLAGS = -module -avoid-version $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS) + all: all-am + + .SUFFIXES: diff --git a/pdns-fix-postgres-detection.patch b/pdns-fix-postgres-detection.patch deleted file mode 100644 index 288b5bf..0000000 --- a/pdns-fix-postgres-detection.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up pdns-3.0-pre.20110327.2103/configure.orig pdns-3.0-pre.20110327.2103/configure ---- pdns-3.0-pre.20110327.2103/configure.orig 2011-03-28 09:44:22.690000393 +0200 -+++ pdns-3.0-pre.20110327.2103/configure 2011-03-28 09:46:26.822000001 +0200 -@@ -18224,7 +18224,7 @@ if test "${with_pgsql+set}" = set; then - withval=$with_pgsql; PGSQL_lib_check="$withval/lib/pgsql $with_pgsql/lib" - PGSQL_inc_check="$withval/include/pgsql" - else -- PGSQL_lib_check="/usr/local/pgsql/lib/pgsql /usr/local/lib/pgsql /opt/pgsql/lib/pgsql /usr/lib/pgsql /usr/local/pgsql/lib /usr/local/lib /opt/pgsql/lib /usr/lib" -+ PGSQL_lib_check="/usr/local/pgsql/lib/pgsql /usr/local/lib/pgsql /opt/pgsql/lib/pgsql /usr/lib/pgsql /usr/local/pgsql/lib /usr/local/lib /opt/pgsql/lib /usr/lib /usr/lib64" - PGSQL_inc_check="/usr/local/pgsql/include/pgsql /usr/include /usr/local/include/postgresql/ /usr/local/include /opt/pgsql/include/pgsql /opt/pgsql/include /usr/include/pgsql/ /usr/include/postgresql" - fi - -@@ -18244,8 +18244,7 @@ fi - $as_echo_n "checking for PgSQL library directory... " >&6; } - PGSQL_libdir= - for m in $PGSQL_lib_check; do -- if test -d "$m" && \ -- (test -f "$m/libpq.a" || test -f "$m/libpq++.a") -+ if test -d "$m" && test -f "$m/libpq.so" - then - PGSQL_libdir=$m - break diff --git a/pdns.service b/pdns.service new file mode 100644 index 0000000..d9877ad --- /dev/null +++ b/pdns.service @@ -0,0 +1,13 @@ +[Unit] +Description=PDNS DNS Server +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/pdns_server --daemon --guardian=yes +ExecReload=/usr/bin/pdns_control cycle +ExecStop=/usr/bin/pdns_control quit + +[Install] +WantedBy=multi-user.target + diff --git a/pdns.spec b/pdns.spec index bf498a8..9b2f517 100644 --- a/pdns.spec +++ b/pdns.spec @@ -1,22 +1,24 @@ -%global alphatag pre.20110327.2103 +%global alphatag rc3 Summary: A modern, advanced and high performance authoritative-only nameserver Name: pdns Version: 3.0 -Release: 4.%{alphatag}%{?dist} +Release: 5.%{alphatag}%{?dist} Group: System Environment/Daemons License: GPLv2 URL: http://powerdns.com -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: http://downloads.powerdns.com/releases/%{name}-%{version}-%{alphatag}.tar.gz -Patch0: %{name}-fixinit.patch -Patch1: pdns-fix-postgres-detection.patch +Source1: pdns.service +Patch0: pdns-fix-mongo-backend.patch +Patch1: pdns-fix-lua-detection.patch -Requires(post): %{_sbindir}/useradd, /sbin/chkconfig -Requires(preun): /sbin/service, /sbin/chkconfig +Requires(pre): shadow-utils +Requires(post): systemd-units, systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units -BuildRequires: boost-devel, chrpath, lua-devel +BuildRequires: boost-devel, chrpath, lua-devel, cryptopp-devel, systemd-units Provides: powerdns = %{version}-%{release} %description @@ -28,37 +30,43 @@ Furthermore, PowerDNS interfaces with almost any database. %package backend-mysql Summary: MySQL backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: mysql-devel %package backend-postgresql Summary: PostgreSQL backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: postgresql-devel %package backend-pipe Summary: Pipe backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %package backend-geo Summary: Geo backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %package backend-ldap Summary: LDAP backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: openldap-devel %package backend-sqlite Summary: SQLite backend for %{name} Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: sqlite-devel +%package backend-mongodb +Summary: MongoDB backend for %{name} +Group: System Environment/Daemons +Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: mongodb-devel + %description backend-mysql This package contains the gmysql backend for %{name} @@ -79,11 +87,14 @@ This package contains the ldap backend for %{name} %description backend-sqlite This package contains the SQLite backend for %{name} +%description backend-mongodb +This package contains the MongoDB backend for %{name} + %prep %setup -q -n %{name}-%{version}-%{alphatag} -%patch0 -p1 -b .fixinit -%patch1 -p1 -b .postgres +%patch0 -p1 -b .fixmongo +%patch1 -p1 -b .fixlua %build export CPPFLAGS="-DLDAP_DEPRECATED %{optflags}" @@ -93,18 +104,19 @@ export CPPFLAGS="-DLDAP_DEPRECATED %{optflags}" --libdir=%{_libdir}/%{name} \ --disable-static \ --with-modules='' \ - --with-dynmodules='pipe gmysql gpgsql geo ldap gsqlite3' \ - --with-mysql-lib=%{_libdir}/mysql \ - --with-sqlite3-lib=%{_libdir} + --with-lua \ + --with-dynmodules='pipe gmysql gpgsql geo ldap gsqlite3 mongodb' \ + --enable-cryptopp + +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{?_smp_mflags} %install -%{__rm} -rf %{buildroot} make install DESTDIR=%{buildroot} %{__rm} -f %{buildroot}%{_libdir}/%{name}/*.la -%{__install} -p -D -m 0755 pdns/pdns %{buildroot}%{_initrddir}/pdns %{__mv} %{buildroot}%{_sysconfdir}/%{name}/pdns.conf{-dist,} # add the pdns user to the config file @@ -118,26 +130,55 @@ chrpath --delete %{buildroot}%{_bindir}/zone2sql chrpath --delete %{buildroot}%{_sbindir}/pdns_server chrpath --delete %{buildroot}%{_libdir}/%{name}/*.so +# Copy systemd service file +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/pdns.service + + +%pre +getent group pdns >/dev/null || groupadd -r pdns +getent passwd pdns >/dev/null || \ + useradd -r -g pdns -d / -s /sbin/nologin \ + -c "PowerDNS user" pdns +exit 0 + + %post if [ $1 -eq 1 ]; then - /sbin/chkconfig --add pdns - userid=`id -u pdns 2>/dev/null` - if [ x"$userid" = x ]; then - %{_sbindir}/useradd -c "PowerDNS user" -s /sbin/nologin -r -d / pdns > /dev/null || : - fi + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi + + %preun if [ $1 -eq 0 ]; then - /sbin/service pdns stop >/dev/null 2>&1 || : - /sbin/chkconfig --del pdns + # Package removal; not upgrade + /bin/systemctl --no-reload disable pdns.service &>/dev/null || : + /bin/systemctl stop pdns.service &>/dev/null || : fi -%clean -%{__rm} -rf %{buildroot} + +%postun +/bin/systemctl daemon-reload &>/dev/null || : +if [ $1 -ge 1 ]; then + # Package upgrade; not install + /bin/systemctl try-restart pdns.service &>/dev/null || : +fi + + +%triggerun -- pdns < 3.0-rc3 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply pdns +# to migrate them to systemd targets +%{_bindir}/systemd-sysv-convert --save pdns &>/dev/null ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del pdns &>/dev/null || : +/bin/systemctl try-restart pdns.service &>/dev/null || : + %files %defattr(-,root,root,-) -%doc ChangeLog TODO pdns +%doc COPYING README %{_bindir}/dnsreplay %{_bindir}/pdns_control %{_bindir}/pdnssec @@ -147,44 +188,49 @@ fi %{_mandir}/man8/pdns_control.8.gz %{_mandir}/man8/pdns_server.8.gz %{_mandir}/man8/zone2sql.8.gz -%{_initrddir}/pdns +%{_unitdir}/pdns.service %dir %{_libdir}/%{name}/ %dir %{_sysconfdir}/%{name}/ %config(noreplace) %{_sysconfdir}/%{name}/pdns.conf %files backend-mysql %defattr(-,root,root,-) -%doc COPYING %{_libdir}/%{name}/libgmysqlbackend.so %files backend-postgresql %defattr(-,root,root,-) -%doc COPYING %{_libdir}/%{name}/libgpgsqlbackend.so %files backend-pipe %defattr(-,root,root,-) -%doc COPYING %{_libdir}/%{name}/libpipebackend.so %files backend-geo %defattr(-,root,root,-) -%doc COPYING modules/geobackend/README +%doc modules/geobackend/README %{_libdir}/%{name}/libgeobackend.so %files backend-ldap %defattr(-,root,root,-) -%doc COPYING %{_libdir}/%{name}/libldapbackend.so %files backend-sqlite %defattr(-,root,root,-) -%doc COPYING %{_libdir}/%{name}/libgsqlite3backend.so +%files backend-mongodb +%defattr(-,root,root,-) +%{_libdir}/%{name}/libmongodbbackend.so + %changelog -* Sat Apr 09 2011 Ruben Kerkhof 3.0-4. +* Wed Jul 20 2011 Ruben Kerkhof 3.0-5.rc3 +- New release candidate +- Add MongoDB backend +- Enable LUA support +- Convert to systemd + +* Sat Apr 09 2011 Ruben Kerkhof 3.0-4.pre.20110327.2103.fc16 - Rebuilt for new boost * Mon Mar 28 2011 Ruben Kerkhof 3.0-3.pre.20110327.2103 diff --git a/sources b/sources index a015fa9..855f530 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b4ea207b6c43d0f39c96d3156f5fba95 pdns-3.0-pre.20110327.2103.tar.gz +c77a88084c6d33c3b028482c511f80a4 pdns-3.0-rc3.tar.gz