X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pdns.spec;h=9cea7f213151bd8f772f2774c05add80bf1b7dcb;hb=e354f7ad3c58b336dc3a262de0ed0da09befb835;hp=db2a21d2c512774ae0f032771cbc8607de333daa;hpb=2ce572618e6735163464aa6f3bbcb4e1b4cbdb90;p=packages%2Fpdns.git diff --git a/pdns.spec b/pdns.spec index db2a21d..9cea7f2 100644 --- a/pdns.spec +++ b/pdns.spec @@ -1,198 +1,208 @@ -%define name pdns -%define version 2.9.6 -%define release 1 - Summary: PowerDNS is a Versatile Database Driven Nameserver -Summary(pl): PowerDNS to wielofunkcyjny serwer nazw korzystaj±cy z relacyjnych baz danych -Name: %{name} -Version: %{version} -Release: %{release} +Summary(pl.UTF-8): PowerDNS to wielofunkcyjny serwer nazw korzystający z relacyjnych baz danych +Name: pdns +Version: 2.9.21.1 +Release: 1 License: GPL Group: Networking/Daemons -URL: http://www.powerdns.com/ Source0: http://downloads.powerdns.com/releases/%{name}-%{version}.tar.gz +# Source0-md5: 27fd39029a80cb9c0bc3037420515d1a Source1: http://downloads.powerdns.com/documentation/%{name}.pdf +# Source1-md5: 920b1660258fa2f6d6f949f0c60857b4 Source2: http://downloads.powerdns.com/documentation/%{name}.txt Source3: %{name}.init Source4: %{name}.conf Source5: %{name}.sysconfig - +Patch0: %{name}-configure.patch +Patch1: %{name}-int16.patch +Patch2: %{name}-openldap-2.3.patch +URL: http://www.powerdns.com/ BuildRequires: bison +BuildRequires: boost-devel >= 1.35.0 BuildRequires: flex -BuildRequires: mysql-devel -BuildRequires: postgresql-c++-devel +BuildRequires: libpq++-devel BuildRequires: libstdc++-devel +BuildRequires: mysql-devel +BuildRequires: openldap-devel >= 2.4.6 +BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: zlib-devel +Requires(post): sed >= 4.0 +Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id -Requires(pre): /usr/sbin/useradd +Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd -Requires(pre): /bin/id -Requires(postun): /usr/sbin/userdel +Requires(pre): /usr/sbin/useradd +Requires: rc-scripts +Provides: group(djbdns) +Provides: nameserver +Provides: user(pdns) +Obsoletes: powerdns BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -Provides: nameserver pdns powerdns -Obsoletes: nameserver pdns powerdns %description PowerDNS is a versatile nameserver which supports a large number of different backends ranging from simple zonefiles to relational databases and load balancing/failover algorithms. -%description -l pl -PowerDNS to wielofunkcyjny serwer nazw posiadaj±cy du¿± liczbê wtyczek -od prostych stref (a'la BIND) pocz±wszy, a na relacyjnych bazach danych -skoñczywszy oraz zawieraj±cy algorytmy zrównowa¿enia obci±¿enia i -prze³±czania w wypadku awarii. +%description -l pl.UTF-8 +PowerDNS to wielofunkcyjny serwer nazw posiadający dużą liczbę wtyczek +od prostych stref (a'la BIND) począwszy, a na relacyjnych bazach +danych skończywszy oraz zawierający algorytmy zrównoważenia obciążenia +i przełączania w wypadku awarii. %package backend-pipe Summary: PowerDNS support for custom pipe backend -Summary(pl): Wsparcie PowerDNS dla w³asnego mechanizmu przechowywania stref +Summary(pl.UTF-8): Wsparcie PowerDNS dla własnego mechanizmu przechowywania stref Group: Development/Libraries +Requires: %{name} = %{version}-%{release} %description backend-pipe This package allows creation of own backend using simple STDIN/STDOUT -API. Example backend script in perl is provided in package documentation. +API. Example backend script in Perl is provided in package +documentation. -%description backend-pipe -l pl -Ten pakiet pozwala na utworzenie w³asnego mechanizmu przechowywania stref -za pomoc± prostego interfejsu STDIN/STDOUT. Przyk³adowy skrypt w perlu zosta³ -do³±czony do dokumentacji pakietu. +%description backend-pipe -l pl.UTF-8 +Ten pakiet pozwala na utworzenie własnego mechanizmu przechowywania +stref za pomocą prostego interfejsu STDIN/STDOUT. Przykładowy skrypt w +Perlu został dołączony do dokumentacji pakietu. -%package backend-pgsql +%package backend-gpgsql Summary: PowerDNS support for PostgreSQL -Summary(pl): Wsparcie PowerDNS dla baz PostgresQL +Summary(pl.UTF-8): Wsparcie PowerDNS dla baz PostgresQL Group: Development/Libraries -Requires: postgresql +Requires: %{name} = %{version}-%{release} -%description backend-pgsql +%description backend-gpgsql This package allows zone storage in PostgreSQL relational db tables. -%description backend-pgsql -l pl -Ten pakiet pozwala na przechowywanie danych o strefach w tabelach +%description backend-gpgsql -l pl.UTF-8 +Ten pakiet pozwala na przechowywanie danych o strefach w tabelach relacyjnej bazy danych PostgreSQL. -%package backend-mysql +%package backend-gmysql Summary: PowerDNS support for MySQL -Summary(pl): Wsparcie PowerDNS dla baz MySQL +Summary(pl.UTF-8): Wsparcie PowerDNS dla baz MySQL Group: Development/Libraries -Requires: mysql +Requires: %{name} = %{version}-%{release} -%description backend-mysql +%description backend-gmysql This package allows zone storage in MySQL relational db tables. -%description backend-mysql -l pl -Ten pakiet pozwala na przechowywanie danych o strefach w tabelach +%description backend-gmysql -l pl.UTF-8 +Ten pakiet pozwala na przechowywanie danych o strefach w tabelach relacyjnej bazy danych MySQL. -%package static -Summary: PowerDNS static libs -Summary(pl): Biblioteki statyczne PowerDNS +%package backend-ldap +Summary: PowerDNS support for LDAP +Summary(pl.UTF-8): Wsparcie PowerDNS dla baz LDAP Group: Development/Libraries +Requires: %{name} = %{version}-%{release} -%description static -Static PowerDNS libraries. +%description backend-ldap +This package allows zone storage in LDAP directory. -%description static -l pl -Statyczne biblioteki PowerDNS. +%description backend-ldap -l pl.UTF-8 +Ten pakiet pozwala na przechowywanie danych o strefach w katalogu +LDAP. %prep - %setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 cp %{SOURCE1} . cp %{SOURCE2} . +cp %{SOURCE4} . -%build +%if "%{_lib}" == "lib64" +%{__sed} -i -e 's/module-dir=\/usr\/lib\/pdns/module-dir=\/usr\/lib64\/pdns/' pdns.conf +%endif +%build +CPPFLAGS="-DHAVE_NAMESPACE_STD -DHAVE_CXX_STRING_HEADER -DDLLIMPORT=\"\"" %configure \ - --libexecdir=%{_libexecdir} \ - --libdir=%{_libdir}/%{name} \ - --bindir=%{_sbindir} \ - --sbindir=%{_sbindir} \ - --sysconfdir=%{_sysconfdir}/%{name} \ - --with-socketdir=/var/run \ - --with-dynmodules="gmysql gpgsql pipe" \ - --with-modules="" \ - --with-pgsql-includes=/usr/include \ - --enable-mysql \ - --enable-pgsql + --libdir=%{_libdir}/%{name} \ + --sysconfdir=%{_sysconfdir}/%{name} \ + --with-socketdir=/var/run \ + --with-dynmodules="gmysql gpgsql pipe ldap" \ + --with-modules="" \ + --enable-mysql \ + --enable-pgsql \ + --with-pgsql-lib=%{_libdir} \ + --with-pgsql-includes=%{_includedir} \ + --with-mysql-lib=%{_libdir} \ + --with-mysql-includes=%{_includedir} \ + --enable-ldap \ + --disable-static %{__make} %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_sysconfdir}/%{name},/etc/sysconfig} %{__make} install \ - DESTDIR="%{buildroot}" + DESTDIR=$RPM_BUILD_ROOT -install -d %{buildroot}/%{_initrddir} -install -d %{buildroot}/%{_sysconfdir}/%{name} -install -d %{buildroot}/etc/sysconfig -install %{SOURCE3} %{buildroot}/%{_initrddir}/%{name} -install %{SOURCE4} %{buildroot}/%{_sysconfdir}/%{name}/%{name}.conf -install %{SOURCE5} %{buildroot}/etc/sysconfig/pdns +install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf +install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/pdns + +# useless - modules are dlopened by *.so +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/*.la + +%clean +rm -rf $RPM_BUILD_ROOT %pre -if [ -n "`getgid djbdns`" ]; then - if [ "`getgid djbdns`" != "32" ]; then - echo "Error: group djbdns doesn't have gid=32. Correct this before installing pdns." 1>&2 - exit 1 - fi -else - /usr/sbin/groupadd -g 32 -r -f djbdns -fi -if [ -n "`id -u pdns 2>/dev/null`" ]; then - if [ "`id -u pdns`" != "30" ]; then - echo "Error: user pdns doesn't have uid=30. Correct this before installing pdns." 1>&2 - exit 1 - fi -else - /usr/sbin/useradd -u 30 -r -d /dev/null -s /bin/false -c "pdns User" -g djbdns pdns 1>&2 -fi +%groupadd -g 32 djbdns +%useradd -u 30 -d /var/lib/pdns -s /bin/false -c "pdns User" -g djbdns pdns %post +# dirty hack so the config file is processed correctly, and server does not respawn +sed -i -e 's/^ *//' /etc/pdns/pdns.conf + /sbin/chkconfig --add pdns -if [ -f %{_localstatedir}/lock/subsys/pdns ]; then - /etc/rc.d/init.d/pdns restart >&2 -else - echo "Run \"/etc/rc.d/init.d/pdns start\" to start pdns." >&2 -fi +%service pdns restart %preun if [ "$1" = "0" ]; then - if [ -f %{_localstatedir}/lock/subsys/pdns ]; then - /etc/rc.d/init.d/pdns stop - fi + %service pdns stop /sbin/chkconfig --del pdns fi %postun if [ "$1" = "0" ]; then - /usr/sbin/userdel pdns + %userremove pdns + %groupremove djbdns fi -%clean -[ -n "%{buildroot}" -a "%{buildroot}" != / ] && rm -rf %{buildroot} - %files %defattr(644,root,root,755) -%doc ChangeLog HACKING INSTALL README TODO WARNING pdns.pdf pdns.txt -%config(noreplace) %attr(0600,root,root) %{_sysconfdir}/%{name}/%{name}.conf -%config(noreplace) %attr(0754,root,root) %{_initrddir}/%{name} -%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/pdns +%doc ChangeLog HACKING INSTALL README TODO pdns.pdf pdns.txt +%attr(754,root,root) /etc/rc.d/init.d/%{name} %dir %{_sysconfdir}/%{name} +%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pdns %attr(755,root,root) %{_sbindir}/* +%attr(755,root,root) %{_bindir}/* +%dir %{_libdir}/%{name} %{_mandir}/man8/* -%files backend-mysql +%files backend-gmysql +%defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/*mysql*.so* -%attr(644,root,root) %{_libdir}/%{name}/*mysql*.la -%files backend-pgsql +%files backend-gpgsql +%defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/*pgsql*.so* -%attr(644,root,root) %{_libdir}/%{name}/*pgsql*.la %files backend-pipe +%defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/*pipe*.so* -%attr(644,root,root) %{_libdir}/%{name}/*pipe*.la -%files static -%attr(644,root,root) %{_libdir}/%{name}/*.a +%files backend-ldap +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/%{name}/*ldap*.so*