X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bird.spec;h=cc52d09c9e6419fc8eacd88ed8ab57674e31bc35;hb=97a5aa47e447775ccff43353fb3b43455b66c1bd;hp=b02508b9e0705563b371c6c037cf94a96bc2f6ad;hpb=42582df4bc6808972ae367464bc1944e9914cc8f;p=packages%2Fbird.git diff --git a/bird.spec b/bird.spec index b02508b..cc52d09 100644 --- a/bird.spec +++ b/bird.spec @@ -1,37 +1,47 @@ - -%bcond_without ipv6 # disable IPv6 support (and building bird-ipv6 package) -%bcond_without ipv4 # disable IPv4 support (and building bird-ipv4 package) - # TODO: # - trigger to clean up after old bird package (stop, chkconfig --del) - -Summary: Routing daemon -Summary(pl): Demon dynamicznego routingu +# +# Conditional build: +%bcond_without ipv6 # disable IPv6 support (and building bird-ipv6 package) +%bcond_without ipv4 # disable IPv4 support (and building bird-ipv4 package) +%bcond_with alien # enable possibility to import 'alien' routes import into bird's routing table +# +Summary: The BIRD Internet Routing Daemon +Summary(pl.UTF-8): Demon BIRD Internetowego Routingu Dynamicznego Name: bird -Version: 1.0.9 -Release: 0.3 -License: GPL +Version: 1.6.8 +Release: 1 +License: GPL v2+ Group: Networking/Daemons Source0: ftp://bird.network.cz/pub/bird/%{name}-%{version}.tar.gz -# Source0-md5: 6a1d94b8a33b80e754ea4f9cc0ac1ff3 +# Source0-md5: abe29a927e21a3d7f8092641f06093c2 Source1: %{name}-ipv4.init Source2: %{name}-ipv4.sysconfig Source3: %{name}-ipv6.init Source4: %{name}-ipv6.sysconfig -Patch0: %{name}-posix.patch -Patch1: %{name}-flex.patch +Source5: ftp://bird.network.cz/pub/bird/%{name}-doc-%{version}.tar.gz +# Source5-md5: d5b69caeee629479e0261aba18d35758 +Source6: %{name}-ipv4.service +Source7: %{name}-ipv6.service +Patch0: %{name}-allowalien.patch +Patch1: gcc.patch URL: http://bird.network.cz/ BuildRequires: autoconf BuildRequires: automake +BuildRequires: bison +BuildRequires: flex BuildRequires: readline-devel >= 4.2 -PreReq: rc-scripts +BuildRequires: rpmbuild(macros) >= 1.268 Requires(post,preun): /sbin/chkconfig Requires: bird-daemon -BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +Requires: rc-scripts +Requires(postun): /usr/sbin/userdel +Requires(pre): /usr/sbin/useradd Obsoletes: gated Obsoletes: mrt Obsoletes: zebra Obsoletes: zebra-guile +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description The BIRD project is an attempt to create a routing daemon running on @@ -39,25 +49,25 @@ UNIX-like systems (but not necessarily limited to them) with full support of all modern routing protocols, easy to use configuration interface and powerful route filtering language. -%description -l pl +%description -l pl.UTF-8 Projekt BIRD ma na celu utworzenie daemona dynamicznego routingu -pracuj±cego na systemach UNIX z pe³nym wsparciem dla nowoczesnych -protoko³ów routingu, ³atwym interfejsem konfiguracji i jêzykiem -filtrów o du¿ych mo¿liwo¶ciach. +pracującego na systemach UNIX z pełnym wsparciem dla nowoczesnych +protokołów routingu, łatwym interfejsem konfiguracji i językiem +filtrów o dużych możliwościach. %package ipv4 Summary: Routing daemon for IPv4 -Summary(pl): Demon dynamicznego routingu IPv4 +Summary(pl.UTF-8): Demon dynamicznego routingu IPv4 Group: Networking/Daemons -PreReq: rc-scripts Requires(post,preun): /sbin/chkconfig -Provides: routingdaemon +Requires: %{name} = %{version}-%{release} +Requires: rc-scripts Provides: bird-daemon +Provides: routingdaemon Obsoletes: gated Obsoletes: mrt Obsoletes: zebra Obsoletes: zebra-guile -Requires: %{name} = %{version}-%{release} %description ipv4 The BIRD project is an attempt to create a routing daemon running on @@ -65,25 +75,25 @@ UNIX-like systems (but not necessarily limited to them) with full support of all modern routing protocols, easy to use configuration interface and powerful route filtering language. -%description -l pl ipv4 +%description ipv4 -l pl.UTF-8 Projekt BIRD ma na celu utworzenie daemona dynamicznego routingu -pracuj±cego na systemach UNIX z pe³nym wsparciem dla nowoczesnych -protoko³ów routingu, ³atwym interfejsem konfiguracji i jêzykiem -filtrów o du¿ych mo¿liwo¶ciach. +pracującego na systemach UNIX z pełnym wsparciem dla nowoczesnych +protokołów routingu, łatwym interfejsem konfiguracji i językiem +filtrów o dużych możliwościach. %package ipv6 Summary: Routing daemon for IPv6 -Summary(pl): Demon dynamicznego routingu IPv6 +Summary(pl.UTF-8): Demon dynamicznego routingu IPv6 Group: Networking/Daemons -PreReq: rc-scripts Requires(post,preun): /sbin/chkconfig -Provides: routingdaemon +Requires: %{name} = %{version}-%{release} +Requires: rc-scripts Provides: bird-daemon +Provides: routingdaemon Obsoletes: gated Obsoletes: mrt Obsoletes: zebra Obsoletes: zebra-guile -Requires: %{name} = %{version}-%{release} %description ipv6 The BIRD project is an attempt to create a routing daemon running on @@ -91,27 +101,29 @@ UNIX-like systems (but not necessarily limited to them) with full support of all modern routing protocols, easy to use configuration interface and powerful route filtering language. -%description -l pl ipv6 +%description ipv6 -l pl.UTF-8 Projekt BIRD ma na celu utworzenie daemona dynamicznego routingu -pracuj±cego na systemach UNIX z pe³nym wsparciem dla nowoczesnych -protoko³ów routingu, ³atwym interfejsem konfiguracji i jêzykiem -filtrów o du¿ych mo¿liwo¶ciach. +pracującego na systemach UNIX z pełnym wsparciem dla nowoczesnych +protokołów routingu, łatwym interfejsem konfiguracji i językiem +filtrów o dużych możliwościach. %prep -%setup -q -%patch0 -p1 +%setup -q -a 5 +%{?with_alien:%patch0 -p1} %patch1 -p1 %build cp -f /usr/share/automake/config.* tools +%{__autoconf} + +export CFLAGS="%{rpmcflags} -I%{_includedir}/ncursesw -fno-strict-aliasing -fno-strict-overflow" %if %{with ipv6} -%{__autoconf} %configure \ --disable-memcheck \ --enable-client \ --enable-ipv6 -%{__make} +%{__make} -j1 mv bird bird-6 @@ -123,72 +135,92 @@ mv bird bird-6 --disable-memcheck \ --enable-client \ --disable-ipv6 -%{__make} +%{__make} -j1 %endif %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,/etc/sysconfig,%{_sbindir}} +install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,/etc/sysconfig,%{_sbindir}} \ + $RPM_BUILD_ROOT%{systemdunitdir} install birdc $RPM_BUILD_ROOT%{_sbindir} -%if %{with ipv6} +%if %{with ipv4} install bird $RPM_BUILD_ROOT%{_sbindir} install doc/bird.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-ipv4 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}-ipv4 +install %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}-ipv4.service %endif %if %{with ipv6} install bird-6 $RPM_BUILD_ROOT%{_sbindir} cat < $RPM_BUILD_ROOT%{_sbindir}/birdc-6 #!/bin/sh -exec %{_sbindir}/birdc -s /var/run/bird-6.ctl +exec %{_sbindir}/birdc -s /var/run/bird6.ctl EOF +:> $RPM_BUILD_ROOT%{_sysconfdir}/%{name}6.conf install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-ipv6 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}-ipv6 +install %{SOURCE7} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}-ipv6.service %endif %clean rm -rf $RPM_BUILD_ROOT -%post ipv4 -/sbin/chkconfig --add %{name}-ipv4 >&2 +%pre +%groupadd -g 271 bird +%useradd -u 271 -d /usr/share/empty -s /bin/false -c "bird routing daemon" -g bird bird -if [ -f /var/lock/subsys/%{name}-ipv4 ]; then - /etc/rc.d/init.d/%{name}-ipv4 restart >&2 -else - echo "Run '/etc/rc.d/init.d/%{name}-ipv4 start' to start routing deamon." >&2 +%postun +if [ "$1" = "0" ]; then + %userremove bird + %groupremove bird fi +%post ipv4 +/sbin/chkconfig --add %{name}-ipv4 +%service %{name}-ipv4 restart "routing daemon" +%systemd_post %{name}-ipv4.service + %preun ipv4 if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/%{name}-ipv4 ]; then - /etc/rc.d/init.d/%{name}-ipv4 stop >&2 - fi - /sbin/chkconfig --del %{name}-ipv4 >&2 + %service %{name}-ipv4 stop + /sbin/chkconfig --del %{name}-ipv4 fi +%systemd_preun %{name}-ipv4.service -%post ipv6 -/sbin/chkconfig --add %{name}-ipv6 >&2 +%postun ipv4 +%systemd_reload -if [ -f /var/lock/subsys/%{name}-ipv6 ]; then - /etc/rc.d/init.d/%{name}-ipv6 restart >&2 -else - echo "Run '/etc/rc.d/init.d/%{name}-ipv6 start' to start routing deamon." >&2 -fi +%post ipv6 +/sbin/chkconfig --add %{name}-ipv6 +%service %{name}-ipv6 restart "routing daemon" +%systemd_post %{name}-ipv6.service %preun ipv6 if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/%{name}-ipv6 ]; then - /etc/rc.d/init.d/%{name}-ipv6 stop >&2 - fi - /sbin/chkconfig --del %{name}-ipv6 >&2 + %service %{name}-ipv6 stop + /sbin/chkconfig --del %{name}-ipv6 fi +%systemd_preun %{name}-ipv6.service + +%postun ipv6 +%systemd_reload + +%triggerpostun ipv4 -- %{name}-ipv4 < 1.3.4-3 +chmod 0640 /etc/bird.conf +chgrp bird /etc/bird.conf + +%triggerpostun -- %{name}-ipv4 < 1.4.5-2 +%systemd_trigger %{name}-ipv4.service + +%triggerpostun -- %{name}-ipv6 < 1.4.5-2 +%systemd_trigger %{name}-ipv6.service %files %defattr(644,root,root,755) -%doc doc/*.html TODO README +%doc doc/*.html doc/reply_codes %{name}-doc-%{version}/doc/*.pdf ChangeLog NEWS README %attr(755,root,root) %{_sbindir}/birdc %if %{with ipv4} @@ -196,8 +228,9 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/bird %attr(754,root,root) /etc/rc.d/init.d/bird-ipv4 -%attr(754,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/bird-ipv4 -%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/bird.conf +%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bird-ipv4 +%attr(640,root,bird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bird.conf +%{systemdunitdir}/%{name}-ipv4.service %endif %if %{with ipv6} @@ -205,7 +238,8 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/bird-6 %attr(755,root,root) %{_sbindir}/birdc-6 -%attr(754,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/bird-ipv6 -%attr(754,root,root) %config(noreplace) %verify(not size mtime md5) /etc/rc.d/init.d/bird-ipv6 -#%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/bird-6.conf +%attr(754,root,root) /etc/rc.d/init.d/bird-ipv6 +%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bird-ipv6 +%attr(640,root,bird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bird6.conf +%{systemdunitdir}/%{name}-ipv6.service %endif