2016-07-11 17:35:17 +02:00
|
|
|
#
|
|
|
|
# spec file for package dnsdist
|
|
|
|
#
|
|
|
|
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
|
|
#
|
|
|
|
|
|
|
|
%if 0%{?suse_version} > 1230 || 0%{?rhel_version} > 600 || 0%{?centos_version} > 600 || 0%{?fedora_version} >= 20 || 0%{?el7}%{?fc20}%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
|
|
|
|
%bcond_without systemd
|
|
|
|
%else
|
|
|
|
%bcond_with systemd
|
|
|
|
%endif
|
|
|
|
|
2017-02-19 19:41:16 +01:00
|
|
|
%if 0%{?fedora_version} >= 24 || 0%{?fc24}%{?fc25} || 0%{?suse_version} > 1320
|
2016-07-11 17:35:17 +02:00
|
|
|
%bcond_with systemd_separetedlibs
|
|
|
|
%else
|
|
|
|
%bcond_without systemd_separetedlibs
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%if 0%{?suse_version} >= 1320 || 0%{?is_opensuse} || 0%{?fedora_version} >= 21 || 0%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
|
|
|
|
%bcond_without dnsdist_sodium
|
|
|
|
%else
|
|
|
|
%bcond_with dnsdist_sodium
|
|
|
|
%endif
|
|
|
|
|
2017-02-19 19:41:16 +01:00
|
|
|
%if 0%{?is_opensuse} || 0%{?fedora_version} >= 21 || 0%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
|
|
|
|
%bcond_without dnsdist_re2
|
|
|
|
%else
|
|
|
|
%bcond_with dnsdist_re2
|
|
|
|
%endif
|
|
|
|
|
2016-07-11 17:35:17 +02:00
|
|
|
%if 0%{?suse_version}
|
|
|
|
%bcond_without apparmor
|
|
|
|
%else
|
|
|
|
%bcond_with apparmor
|
|
|
|
%endif
|
|
|
|
#
|
|
|
|
# this should only be needed if we have to patch the ragel files
|
|
|
|
# in which case it might be faster to just run it locally and put the regenerated file into the tarball
|
|
|
|
%bcond_with dnsdist_ragel
|
|
|
|
|
|
|
|
%bcond_with dnsdist_luajit
|
|
|
|
|
|
|
|
%if 0%{?suse_version} && ! ( 0%{?suse_version} == 1315 && ! 0%{?is_opensuse} )
|
|
|
|
%bcond_without dnsdist_protobuf
|
|
|
|
%else
|
|
|
|
%bcond_with dnsdist_protobuf
|
|
|
|
%endif
|
|
|
|
|
|
|
|
Name: dnsdist
|
2019-08-14 10:32:24 +02:00
|
|
|
Version: 1.4.0~rc1
|
2016-07-11 17:35:17 +02:00
|
|
|
Release: 0
|
|
|
|
License: GPL-2.0
|
|
|
|
Summary: A highly DNS-, DoS- and abuse-aware loadbalancer
|
|
|
|
Url: http://www.powerdns.com/
|
|
|
|
Group: Productivity/Networking/DNS/Servers
|
2019-08-14 10:32:24 +02:00
|
|
|
Source0: https://downloads.powerdns.com/releases/dnsdist-1.4.0-rc1.tar.bz2
|
|
|
|
Source1: https://downloads.powerdns.com/releases/dnsdist-1.4.0-rc1.tar.bz2.asc
|
|
|
|
Source2: https://dnsdist.org/_static/dnsdist-keyblock.asc#/dnsdist.keyring
|
|
|
|
Source11: dnsdist.lua
|
|
|
|
Source12: usr.sbin.dnsdist
|
|
|
|
Source13: local.usr.sbin.dnsdist
|
|
|
|
Patch1: dnsdist_bindir.patch
|
2016-07-11 17:35:17 +02:00
|
|
|
%if %{with apparmor}
|
|
|
|
BuildRequires: apparmor-profiles
|
|
|
|
%endif
|
|
|
|
BuildRequires: boost-devel >= 1.35.0
|
|
|
|
BuildRequires: gcc-c++ >= 4.8
|
2018-04-02 01:58:01 +02:00
|
|
|
BuildRequires: libfstrm-devel
|
|
|
|
BuildRequires: gnutls-devel
|
2016-07-11 17:35:17 +02:00
|
|
|
%if %{with dnsdist_sodium}
|
|
|
|
BuildRequires: libsodium-devel
|
|
|
|
%endif
|
|
|
|
%if %{with dnsdist_protobuf}
|
|
|
|
BuildRequires: protobuf-devel
|
|
|
|
%endif
|
|
|
|
%if %{with dnsdist_luajit}
|
|
|
|
BuildRequires: luajit-devel
|
|
|
|
%else
|
|
|
|
BuildRequires: lua-devel
|
|
|
|
%endif
|
2017-08-21 18:30:36 +02:00
|
|
|
BuildRequires: net-snmp-devel
|
2016-07-11 17:35:17 +02:00
|
|
|
BuildRequires: pkgconfig
|
|
|
|
%if %{with dnsdist_ragel}
|
|
|
|
BuildRequires: ragel
|
|
|
|
%endif
|
2017-02-19 19:41:16 +01:00
|
|
|
%if %{with dnsdist_re2}
|
|
|
|
BuildRequires: re2-devel
|
|
|
|
%endif
|
2016-07-11 17:35:17 +02:00
|
|
|
BuildRequires: libedit-devel
|
|
|
|
%if 0%{?suse_version}
|
|
|
|
Requires(post): %fillup_prereq
|
|
|
|
%endif
|
|
|
|
%if %{with systemd}
|
|
|
|
BuildRequires: pkgconfig(systemd)
|
|
|
|
%if %{with systemd_separetedlibs}
|
|
|
|
BuildRequires: pkgconfig(libsystemd-daemon)
|
2017-02-19 19:41:16 +01:00
|
|
|
%else
|
|
|
|
BuildRequires: pkgconfig(libsystemd)
|
2016-07-11 17:35:17 +02:00
|
|
|
%endif
|
|
|
|
%{?systemd_requires}
|
|
|
|
%endif
|
2018-04-02 02:06:52 +02:00
|
|
|
Requires(pre): shadow
|
2016-07-11 17:35:17 +02:00
|
|
|
%define home %{_var}/lib/%{name}
|
|
|
|
|
|
|
|
%description
|
|
|
|
dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life
|
|
|
|
is to route traffic to the best server, delivering top performance to
|
|
|
|
legitimate users while shunting or blocking abusive traffic.
|
|
|
|
|
|
|
|
dnsdist is dynamic, in the sense that its configuration can be changed at
|
|
|
|
runtime, and that its statistics can be queried from a console-like interface.
|
|
|
|
|
|
|
|
%prep
|
2019-08-14 10:32:24 +02:00
|
|
|
%autosetup -n %{name}-1.4.0-rc1
|
2016-07-11 17:35:17 +02:00
|
|
|
|
|
|
|
%build
|
|
|
|
%configure \
|
2018-04-02 01:58:01 +02:00
|
|
|
--enable-dns-over-tls \
|
2016-07-11 17:35:17 +02:00
|
|
|
%if %{with dnsdist_sodium}
|
|
|
|
--enable-libsodium --enable-dnscrypt \
|
|
|
|
%endif
|
2017-02-19 19:41:16 +01:00
|
|
|
%if %{with dnsdist_re2}
|
|
|
|
--enable-re2 \
|
|
|
|
%endif
|
2016-07-11 17:35:17 +02:00
|
|
|
%if %{with dnsdist_protobuf}
|
|
|
|
--with-protobuf \
|
|
|
|
%endif
|
|
|
|
--disable-silent-rules --bindir=%{_sbindir} --sysconfdir=%{_sysconfdir}/%{name}/
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
|
|
|
%install
|
|
|
|
make install DESTDIR=%{buildroot} %{?_smp_mflags}
|
|
|
|
#
|
|
|
|
%if %{with systemd} && 0%{?suse_version}
|
|
|
|
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
|
|
|
%endif
|
|
|
|
%if %{with apparmor}
|
2019-08-14 10:32:24 +02:00
|
|
|
install -D -m 0644 %{S:12} %{buildroot}%{_sysconfdir}/apparmor.d/usr.sbin.dnsdist
|
|
|
|
install -D -m 0644 %{S:13} %{buildroot}%{_sysconfdir}/apparmor.d/local/usr.sbin.dnsdist
|
2016-07-11 17:35:17 +02:00
|
|
|
%endif
|
|
|
|
|
|
|
|
install -Dd -m 0750 %{buildroot}%{_sysconfdir}/%{name}/ %{buildroot}%{home}/
|
2019-08-14 10:32:24 +02:00
|
|
|
install -m 0640 %{S:11} %{buildroot}%{_sysconfdir}/%{name}/dnsdist.conf
|
2016-07-11 17:35:17 +02:00
|
|
|
|
|
|
|
%pre
|
2018-02-16 13:34:26 +01:00
|
|
|
getent group %{name} >/dev/null || /usr/sbin/groupadd -r %{name}
|
|
|
|
getent passwd %{name} >/dev/null || \
|
|
|
|
/usr/sbin/useradd -g %{name} -s /bin/false -r -c "%{name}" -d %{home} %{name}
|
2016-07-11 17:35:17 +02:00
|
|
|
# START BIG SYSTEMD
|
|
|
|
%if %{with systemd}
|
|
|
|
%if 0%{?suse_version}
|
|
|
|
%service_add_pre %{name}.service
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%preun
|
|
|
|
%if 0%{?suse_version}
|
|
|
|
%service_del_preun %{name}.service
|
|
|
|
%else
|
|
|
|
%systemd_preun %{name}.service
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%post
|
|
|
|
%if 0%{?suse_version}
|
|
|
|
%service_add_post %{name}.service
|
|
|
|
%else
|
|
|
|
%systemd_post %{name}.service
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%postun
|
|
|
|
%if 0%{?suse_version}
|
|
|
|
%service_del_postun %{name}.service
|
|
|
|
%else
|
|
|
|
%systemd_postun_with_restart %{name}.service
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
# /END BIG SYSTEMD
|
|
|
|
|
|
|
|
%files
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%doc README.md
|
|
|
|
%{_sbindir}/dnsdist
|
|
|
|
%{_mandir}/man1/dnsdist.1*
|
|
|
|
%if %{with systemd}
|
2018-04-02 01:58:01 +02:00
|
|
|
%{_unitdir}/%{name}*.service
|
2016-07-11 17:35:17 +02:00
|
|
|
%if 0%{?suse_version}
|
|
|
|
%{_sbindir}/rc%{name}
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
%if %{with apparmor}
|
|
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/usr.sbin.dnsdist
|
|
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/local/usr.sbin.dnsdist
|
|
|
|
%endif
|
|
|
|
%config(noreplace) %attr(-,root,%{name}) %{_sysconfdir}/%{name}/
|
|
|
|
%dir %attr(700,%{name},%{name}) %{home}
|
|
|
|
|
|
|
|
%changelog
|