]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blame - pdns/pdns.nm
pdns: Rework package / Remove LDAP Support.
[people/ms/ipfire-3.x.git] / pdns / pdns.nm
CommitLineData
1e42f23e 1###############################################################################
802ea3af
MT
2# IPFire.org - An Open Source Firewall Solution #
3# Copyright (C) - IPFire Development Team <info@ipfire.org> #
1e42f23e
MT
4###############################################################################
5
802ea3af 6name = pdns
dfe7386f 7version = 3.1
476b248c 8release = 2
1e42f23e 9
802ea3af
MT
10groups = Networking/DNS
11url = http://powerdns.com/
12license = GPLv2
13summary = A modern, advanced and high performance authoritative-only nameserver.
1e42f23e 14
802ea3af
MT
15description
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.
1e42f23e 19 Furthermore, PowerDNS interfaces with almost any database.
802ea3af
MT
20end
21
aa429b66 22source_dl = http://downloads.powerdns.com/releases/
802ea3af
MT
23
24build
25 requires
26 boost-devel
27 chrpath
28 gcc-c++
29 lua-devel
476b248c 30 shadow-utils
802ea3af
MT
31 sqlite-devel
32 zlib-devel
33 end
34
476b248c 35 # No paralilelism build.
802ea3af
MT
36 PARALLELISMFLAGS =
37
38 configure_options += \
476b248c 39 --sysconfdir=%{sysconfdir}/pdns \
aa429b66 40 --libdir=%{libdir}/powerdns \
802ea3af 41 --with-modules="" \
476b248c 42 --with-dynmodules="pipe geo gsqlite3" \
802ea3af
MT
43 --with-lua \
44 --disable-static
45
476b248c
SS
46 prepare_cmds
47 %{create_user}
48 end
49
802ea3af 50 install_cmds
476b248c
SS
51 # Create directories for pdns sqlite db.
52 mkdir -p %{BUILDROOT}%{datadir}/pdns/
53 mkdir -p %{BUILDROOT}%{sharedstatedir}/pdns/
54
55 # Install shema for sqlite database.
56 install -m 0644 %{DIR_SOURCE}/pdns.table \
57 %{BUILDROOT}%{datadir}/pdns/pdns.table
58
59 # Install default configuration.
60 install -m 0644 %{DIR_SOURCE}/pdns.conf \
61 %{BUILDROOT}%{sysconfdir}/pdns/pdns.conf
62
63 # Create empty database file.
64 touch %{BUILDROOT}%{sharedstatedir}/pdns/pdns.db
65
66 # Fix permissions and ownership from database.
67 chown -R pdns:pdns %{BUILDROOT}%{sharedstatedir}/pdns
68 chmod 660 %{BUILDROOT}%{sharedstatedir}/pdns/pdns.db
69
70 # Remove unneded binaries.
71 rm -vf %{BUILDROOT}%{bindir}/zone2ldap
72
73 # Remove rpath from binaries and backend libs.
802ea3af 74 chrpath --delete %{BUILDROOT}/usr/bin/pdns_control
802ea3af
MT
75 chrpath --delete %{BUILDROOT}/usr/bin/zone2sql
76 chrpath --delete %{BUILDROOT}/usr/sbin/pdns_server
aa429b66 77 chrpath --delete %{BUILDROOT}%{libdir}/powerdns/*.so
802ea3af 78 chrpath --delete %{BUILDROOT}/usr/bin/dnsreplay
aa429b66 79 chrpath --delete %{BUILDROOT}/usr/bin/pdnssec
802ea3af
MT
80 end
81end
82
476b248c
SS
83create_user
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
88end
89
802ea3af
MT
90packages
91 package %{name}
476b248c
SS
92 prerequires
93 coreutils
94 shadow-utils
95 sqlite
96 end
97
98 configfiles
99 /etc/pdns/pdns.conf
100 end
101
102 script prein
103 %{create_user}
104 end
105
106 script postin
107 systemctl daemon-reload >/dev/null 2>&1 || :
108
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
112 fi
113 end
114
115 script preun
116 systemctl --no-reload disable pdns.service >/dev/null 2>&1 || :
117 systemctl stop pdns.service >/dev/null 2>&1 || :
118
119 # Backup existing database.
120 mv %{sharedstatedir}/pdns/pdns.db{,.bak}
121 end
122
123 script postun
124 systemctl daemon-reload >/dev/null 2>&1 || :
125 end
126
127 script postup
128 systemctl daemon-reload >/dev/null 2>&1 || :
129 systemctl try-restart pdns.service >/dev/null 2>&1 || :
130 end
131 end
1f9bc2f0
MT
132
133 package %{name}-debuginfo
134 template DEBUGINFO
135 end
802ea3af 136end