build-aux/gen-version \
codedocs/doxygen.conf \
contrib/powerdns.solaris.init.d \
- contrib/systemd-pdns.service \
pdns/named.conf.parsertest \
regression-tests/zones/unit.test
cd $DISTDIR
-if $(echo $VERSION | grep -q -E '^0\.0\.'); then
- # make sure we don't break dependencies for master releases
- sed -i '/pdns-server (<< 3.4.6-2)/d' debian/control
-fi
-
cat > debian/changelog << EOF
pdns (${VERSION}-${RELEASE}) unstable; urgency=medium
-- ${DEBFULLNAME} <${DEBEMAIL}> $(date -R)
EOF
+
+PDNS_VERSION=$VERSION
+
+. /etc/os-release
+export ID="${ID}"
+export VERSION_ID="${VERSION_ID}"
+
+fakeroot debian/rules debian/control
+
+if $(echo $PDNS_VERSION | grep -q -E '^0\.0\.'); then
+ # make sure we don't break dependencies for master releases
+ sed -i '/pdns-server (<< 3.4.6-2)/d' debian/control
+fi
+
DH_OPTIONS=--parallel fakeroot debian/rules binary
Requires(postun): systemd-units
BuildRequires: systemd-units
+BuildRequires: systemd-devel
BuildRequires: boost-devel
BuildRequires: lua-devel
BuildRequires: bison
--with-lua \
--with-dynmodules='%{backends} random' \
--enable-tools \
- --enable-unit-tests
+ --enable-unit-tests \
+ --enable-systemd
make %{?_smp_mflags}
%install
-
make install DESTDIR=%{buildroot}
%{__rm} -f %{buildroot}%{_libdir}/%{name}/*.la
%{__rm} -rf %{buildroot}%{_docdir}
%{buildroot}/usr/sbin/pdns_server --no-config --config | sed \
-e 's!# config-dir=.*!config-dir=%{_sysconfdir}%{name}!' \
- -e 's!# daemon=.*!daemon=yes!' \
- -e 's!# guardian=.*!guardian=yes!' \
+ -e 's!# daemon=.*!daemon=no!' \
+ -e 's!# guardian=.*!guardian=no!' \
-e 's!# launch=.*!&\\nlaunch=!' \
-e 's!# setgid=.*!setgid=pdns!' \
-e 's!# setuid=.*!setuid=pdns!' \
%{__mv} %{buildroot}/%{_bindir}/zone2ldap %{buildroot}/%{_bindir}/pdns-zone2ldap
%{__mv} %{buildroot}/%{_mandir}/man1/zone2ldap.1 %{buildroot}/%{_mandir}/man1/pdns-zone2ldap.1
-# install systemd unit file
-%{__install} -D -p -m 644 contrib/systemd-pdns.service %{buildroot}%{_unitdir}/%{name}.service
-
%check
make %{?_smp_mflags} -C pdns check
BuildRequires: bison
BuildRequires: openssl-devel
BuildRequires: systemd-rpm-macros
+BuildRequires: systemd-devel
Provides: powerdns = %{version}-%{release}
%global backends %{backends} bind
--with-lua \
--with-dynmodules='%{backends} random' \
--enable-tools \
- --enable-unit-tests
+ --enable-unit-tests \
+ --enable-systemd
make %{?_smp_mflags}
%{__mv} %{buildroot}/%{_bindir}/zone2ldap %{buildroot}/%{_bindir}/pdns-zone2ldap
%{__mv} %{buildroot}/%{_mandir}/man1/zone2ldap.1 %{buildroot}/%{_mandir}/man1/pdns-zone2ldap.1
-# install systemd unit file
-%{__install} -D -p -m 644 contrib/systemd-pdns.service %{buildroot}%{_unitdir}/%{name}.service
-
%check
make %{?_smp_mflags} -C pdns check
Standards-Version: 3.9.6
Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
Origin: PowerDNS
-Build-Depends: debhelper (>= 9~), dh-autoreconf, dh-systemd, po-debconf, libtool, flex, bison, libmysqlclient-dev, libpq-dev, libssl-dev, libpolarssl-dev, libgdbm-dev, libldap2-dev, libsqlite3-dev, dpkg-dev (>= 1.17.0~), libboost-dev, libboost-serialization-dev, libboost-program-options-dev, libboost-test-dev, autotools-dev, automake, autoconf, liblua5.2-dev, pkg-config, ragel, libgmp-dev, libbotan1.10-dev, libcurl4-openssl-dev, libzmq-dev, libyaml-cpp-dev (>= 0.5), libgeoip-dev, libopendbx1-dev, libcdb-dev, unixodbc-dev (>= 2.3.1)
+Build-Depends: debhelper (>= 9~), dh-autoreconf, dh-systemd, po-debconf, libtool, flex, bison, libmysqlclient-dev, libpq-dev, libssl-dev, libpolarssl-dev, libgdbm-dev, libldap2-dev, libsqlite3-dev, dpkg-dev (>= 1.17.0~), libboost-dev, libboost-serialization-dev, libboost-program-options-dev, libboost-test-dev, autotools-dev, automake, autoconf, liblua5.2-dev, pkg-config, ragel, libgmp-dev, libbotan1.10-dev, libcurl4-openssl-dev, libzmq-dev, libyaml-cpp-dev (>= 0.5), libgeoip-dev, libopendbx1-dev, libcdb-dev, unixodbc-dev (>= 2.3.1) @LIBSYSTEMDDEV@
Homepage: http://www.powerdns.com/
Package: pdns-server
debian/config/pdns.simplebind.conf usr/share/pdns-server/
debian/resolvconf/pdns etc/resolvconf/update.d/
debian/insserv.d/pdns-server etc/insserv.d/
+lib/systemd/system/pdns.service
+++ /dev/null
-[Unit]
-Description=PowerDNS Authoritative Server
-After=network-online.target
-
-[Service]
-Type=simple
-ExecStart=/usr/sbin/pdns_server --daemon=no
-ExecStop=/usr/bin/pdns_control quit
-TimeoutStopSec=5
-Restart=on-failure
-RestartSec=2
-PrivateTmp=true
-
-[Install]
-WantedBy=multi-user.target
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+ENABLE_SYSTEMD := --enable-systemd --with-systemd=/lib/systemd/system
+LIBSYSTEMD_DEV := , libsystemd-dev
+DEBHELPER_WITH_SYSTEMD := --with systemd
+
+# $(ID) and $(VERSION_ID) come from the environment, source this from /etc/os-release
+ifeq ($(ID), ubuntu)
+ ifeq ($(VERSION_ID), 14.04)
+ # Disable building with and depending on systemd on Ubuntu Trusty
+ ENABLE_SYSTEMD=
+ LIBSYSTEMD_DEV=
+ DEBHELPER_WITH_SYSTEMD=
+ endif
+endif
+
+debian/control: debian/control.in
+ sed -e "s!@LIBSYSTEMDDEV@!$(LIBSYSTEMD_DEV)!" $< > $@
+
# Use new build system
%:
- dh $@ --with autoreconf --parallel
+ dh $@ \
+ --with autoreconf \
+ --parallel \
+ $(DEBHELPER_WITH_SYSTEMD)
override_dh_auto_configure:
test -f pdns/dnslabeltext.cc && mv pdns/dnslabeltext.cc debian/dnslabeltext.cc.moved || true
--with-pgsql-includes=`pg_config --includedir` \
--enable-botan1.10 \
--enable-tools \
- --enable-unit-tests
+ --enable-unit-tests \
+ $(ENABLE_SYSTEMD)
# pdns-server has a debug package
override_dh_strip:
effective_tld_names.dat
/dnsmessage.pb.cc
/dnsmessage.pb.h
-
+/pdns.service
bindparser.h \
named.conf.parsertest \
pdns.conf-dist \
- delaypipe.hh delaypipe.cc
+ delaypipe.hh delaypipe.cc \
+ pdns.service.in
BUILT_SOURCES = \
bind-dnssec.schema.sqlite3.sql.h \
dnsdist:
@echo "Please build dnsdist from the dnsdistdist/ dir"
@exit 1
+
+if HAVE_SYSTEMD
+pdns.service: pdns.service.in
+ $(AM_V_GEN)sed -e 's![@]sbindir[@]!$(sbindir)!' < $< > $@
+
+systemdsystemunitdir = $(SYSTEMD_DIR)
+
+systemdsystemunit_DATA = \
+ pdns.service
+endif
[Service]
Type=notify
-ExecStart=/usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --write-pid=no
+ExecStart=@sbindir@/pdns_server --guardian=no --daemon=no --disable-syslog --write-pid=no
Restart=on-failure
StartLimitInterval=0
PrivateTmp=true