## ## powerdns.spec -- OpenPKG RPM Specification ## Copyright (c) 2000-2003 The OpenPKG Project ## Copyright (c) 2000-2003 Ralf S. Engelschall ## Copyright (c) 2000-2003 Cable & Wireless ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # 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 [EVAL] Group: DNS License: GPL Version: 2.9.11 Release: 20031009 # package options %option with_fsl yes %option with_pipe no %option with_mysql no %option with_pgsql no # list of sources Source0: http://downloads.powerdns.com/releases/pdns-%{version}.tar.gz Source1: rc.powerdns Source2: fsl.powerdns Source3: powerdnssetup Patch0: powerdns.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20030718 PreReq: OpenPKG, openpkg >= 20030718 %if "%{with_fsl}" == "yes" BuildPreReq: fsl >= 1.3.0 PreReq: fsl >= 1.3.0 %endif %if "%{with_mysql}" == "yes" BuildPreReq: mysql PreReq: mysql %endif %if "%{with_pgsql}" == "yes" BuildPreReq: postgresql, postgresql::with_cxx = yes PreReq: postgresql, postgresql::with_cxx = yes %endif AutoReq: no AutoReqProv: no Conflicts: bind, bind8 %description 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="" %if "%{with_pipe}" == "yes" MODULES="$MODULES pipe" %endif %if "%{with_mysql}" == "yes" MODULES="$MODULES gmysql" %endif %if "%{with_pgsql}" == "yes" MODULES="$MODULES gpgsql" %endif MODULES=`echo "$MODULES" | sed 's;^ ;;'` CC="%{l_cc}" \ CXX="%{l_cxx}" \ CFLAGS="%{l_cflags -O}" \ CXXFLAGS="%{l_cxxflags -O}" \ CPPFLAGS="%{l_cppflags}" \ LDFLAGS="%{l_fsl_ldflags}" \ ./configure \ --prefix=%{l_prefix} \ --sysconfdir=%{l_prefix}/etc/powerdns \ %if "%{with_mysql}" == "yes" --enable-mysql \ --with-mysql=%{l_prefix} \ %else --disable-mysql \ %endif %if "%{with_pgsql}" == "yes" --enable-pgsql \ --with-pgsql=%{l_prefix} \ --with-pgsql-includes=%{l_prefix}/include/libpq++ \ --with-pgsql-lib=%{l_prefix}/lib \ %else --disable-pgsql \ %endif --with-modules="$MODULES" \ --with-dynmodules="" \ --disable-shared %{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 # setup config file mv $RPM_BUILD_ROOT%{l_prefix}/etc/powerdns/pdns.conf-dist \ $RPM_BUILD_ROOT%{l_prefix}/etc/powerdns/pdns.conf %{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} install -c -m 755 %{l_value -s -a} \ %{SOURCE rc.powerdns} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ # install setup script %{l_shtool} install -c -m 755 \ %{SOURCE powerdnssetup} $RPM_BUILD_ROOT%{l_prefix}/sbin/ # install OSSP fsl configuration %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl %{l_shtool} install -c -m 644 %{l_value -s -a} \ %{SOURCE fsl.powerdns} \ $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%not %dir %{l_prefix}/etc/fsl' \ '%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