1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
10 groups = Networking/DNS
11 url = http://powerdns.com/
13 summary = A modern, advanced and high performance authoritative-only nameserver.
16 The PowerDNS Nameserver is a modern, advanced and high performance
17 authoritative-only nameserver. It is written from scratch and conforms
18 to all relevant DNS standards documents.
19 Furthermore, PowerDNS interfaces with almost any database.
22 source_dl = http://downloads.powerdns.com/releases/
35 # No paralilelism build.
38 configure_options += \
39 --sysconfdir=%{sysconfdir}/pdns \
40 --libdir=%{libdir}/powerdns \
42 --with-dynmodules="pipe geo gsqlite3" \
51 # Create directories for pdns sqlite db.
52 mkdir -p %{BUILDROOT}%{datadir}/pdns/
53 mkdir -p %{BUILDROOT}%{sharedstatedir}/pdns/
55 # Install shema for sqlite database.
56 install -m 0644 %{DIR_SOURCE}/pdns.table \
57 %{BUILDROOT}%{datadir}/pdns/pdns.table
59 # Install default configuration.
60 install -m 0644 %{DIR_SOURCE}/pdns.conf \
61 %{BUILDROOT}%{sysconfdir}/pdns/pdns.conf
63 # Create empty database file.
64 touch %{BUILDROOT}%{sharedstatedir}/pdns/pdns.db
66 # Fix permissions and ownership from database.
67 chown -R pdns:pdns %{BUILDROOT}%{sharedstatedir}/pdns
68 chmod 660 %{BUILDROOT}%{sharedstatedir}/pdns/pdns.db
70 # Remove unneded binaries.
71 rm -vf %{BUILDROOT}%{bindir}/zone2ldap
73 # Remove rpath from binaries and backend libs.
74 chrpath --delete %{BUILDROOT}/usr/bin/pdns_control
75 chrpath --delete %{BUILDROOT}/usr/bin/zone2sql
76 chrpath --delete %{BUILDROOT}/usr/sbin/pdns_server
77 chrpath --delete %{BUILDROOT}%{libdir}/powerdns/*.so
78 chrpath --delete %{BUILDROOT}/usr/bin/dnsreplay
79 chrpath --delete %{BUILDROOT}/usr/bin/pdnssec
84 getent group pdns >/dev/null || groupadd -r pdns
85 getent passwd pdns >/dev/null || \
86 useradd -r -g pdns -d %{sharedstatedir}/pdns -s /sbin/nologin \
87 -c "PowerDNS user" pdns
107 systemctl daemon-reload >/dev/null 2>&1 || :
109 # Check if DB allready exists. Create pdns sqlite database if not.
110 if [ ! -s "%{sharedstatedir}/pdns/pdns.db" ]; then
111 sqlite3 %{sharedstatedir}/pdns/pdns.db < %{datadir}/pdns/pdns.table
116 systemctl --no-reload disable pdns.service >/dev/null 2>&1 || :
117 systemctl stop pdns.service >/dev/null 2>&1 || :
119 # Backup existing database.
120 mv %{sharedstatedir}/pdns/pdns.db{,.bak}
124 systemctl daemon-reload >/dev/null 2>&1 || :
128 systemctl daemon-reload >/dev/null 2>&1 || :
129 systemctl try-restart pdns.service >/dev/null 2>&1 || :
133 package %{name}-debuginfo