File quagga.spec of Package quagga.3363
#
# spec file for package quagga
#
# Copyright (c) 2016 SUSE LINUX 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/
#
%bcond_without tcp_zebra
%bcond_without irdp
%bcond_with isis
%bcond_with isis_topology
%bcond_without pcre
Name: quagga
Version: 0.99.22.1
Release: 0
Summary: Free Routing Software (for BGP, OSPF and RIP, for example)
License: LGPL-2.1+
Group: Productivity/Networking/Routing
Url: http://www.quagga.net
Source: http://download.savannah.gnu.org/releases/quagga/quagga-0.99.22.1.tar.gz
Source3: http://download.savannah.gnu.org/releases/quagga/quagga-0.99.22.1.tar.asc
# downloaded from: http://download.savannah.gnu.org/releases/quagga/pgp-54CD2E60.asc
Source4: quagga.keyring
Source1: %{name}-SUSE.tar.bz2
Source2: %{name}.pam
Patch1: %{name}-add-ospf6_main-return-value.patch
Patch2: %{name}-add-table_test-return-value.patch
Patch3: %{name}-CVE-2016-2342-VPNv4-NLRI-memcpy-stack-overflow.patch
Patch4: %{name}-CVE-2016-4049-fix-buf-ovflow-bgp-dump-routes.patch
Patch5: %{name}-CVE-2016-1245-stack-overrun-in-IPv6-RA-receive.patch
BuildRequires: libtool
BuildRequires: net-snmp-devel
BuildRequires: pam-devel
BuildRequires: readline-devel
%if %{with pcre}
BuildRequires: pcre-devel
%endif
%if 0%{suse_version} > 1220
BuildRequires: makeinfo
%endif
PreReq: %fillup_prereq
PreReq: %insserv_prereq
PreReq: %install_info_prereq
# pwdutils for useradd and groupadd
PreReq: pwdutils
Recommends: logrotate
Provides: zebra
Obsoletes: zebra
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Quagga is a routing software suite, providing implementations of
OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for Unix platforms,
particularly FreeBSD and Linux and also NetBSD, to mention a few.
Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro.
The Quagga tree aims to build a more involved community around Quagga
than the current centralised model of GNU Zebra.
%package devel
Summary: Free Routing Software (for BGP, OSPF and RIP, for example)
Group: Productivity/Networking/Routing
Requires: %{name} = %{version}
%description devel
Quagga is a routing software suite, providing implementations of
OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for Unix platforms,
particularly FreeBSD and Linux and also NetBSD, to mention a few.
Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro.
The Quagga tree aims to build a more involved community around Quagga
than the current centralised model of GNU Zebra.
%prep
%setup -q -a 1
%patch1 -p 1
%patch2 -p 1
%patch3 -p 1
%patch4 -p 1
%patch5 -p 1
%build
if ! ls /proc/net/{dev,route,snmp} >/dev/null; then
echo "ERROR: /proc is not mounted" >&2;
exit 1;
fi
rm -f m4/libtool.m4 m4/lt*.m4
autoreconf --force --install
export CFLAGS="%{optflags} -fno-strict-aliasing"
%configure --disable-static --with-pic \
--enable-vtysh \
--enable-rtadv \
--enable-snmp \
--enable-ipv6 \
--with-libpam \
--enable-netlink \
%if %{with isis}
--enable-isisd \
%endif
%if %{with isis_topology}
--enable-isis-topology \
%endif
%if %{with tcp_zebra}
--enable-tcp-zebra \
%endif
%if %{with irdp}
--enable-irdp \
%endif
%if %{with pcre}
--enable-pcreposix \
%endif
--sysconfdir=%{_sysconfdir}/quagga \
--localstatedir=%{_localstatedir}/run/quagga \
--enable-multipath=0
make %{?_smp_mflags}
%install
rm -r doc/quagga.info
make DESTDIR=%{buildroot} install
rm -rf %{buildroot}%{_libdir}/lib{ospf,zebra}.la
install -d %{buildroot}%{_sysconfdir}/{init.d,quagga,pam.d,logrotate.d}
install -m 755 SUSE/* %{buildroot}%{_sysconfdir}/init.d/
install -m 644 %{S:2} %{buildroot}%{_sysconfdir}/pam.d/quagga
install -d -m 750 %{buildroot}%{_localstatedir}/log/quagga
install -d -m 751 %{buildroot}%{_localstatedir}/run/quagga
install -m 644 redhat/quagga.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/quagga
ln -sf %{_sysconfdir}/init.d/zebra %{buildroot}%{_sbindir}/rczebra
ln -sf %{_sysconfdir}/init.d/bgpd %{buildroot}%{_sbindir}/rcbgpd
ln -sf %{_sysconfdir}/init.d/ospf6d %{buildroot}%{_sbindir}/rcospf6d
ln -sf %{_sysconfdir}/init.d/ospfd %{buildroot}%{_sbindir}/rcospfd
ln -sf %{_sysconfdir}/init.d/ripngd %{buildroot}%{_sbindir}/rcripngd
ln -sf %{_sysconfdir}/init.d/ripd %{buildroot}%{_sbindir}/rcripd
rm -f %{buildroot}%{_sysconfdir}/quagga/*.sample*
cat > %{buildroot}%{_sysconfdir}/quagga/zebra.conf << __EOF__
hostname quagga
password quagga
enable password quagga
log file %{_localstatedir}/log/quagga/quagga.log
__EOF__
touch %{buildroot}%{_sysconfdir}/quagga/vtysh.conf
%pre
%{_sbindir}/groupadd -r quagga 2> /dev/null || :
%{_sbindir}/useradd -r -g quagga -s %{_bindir}/false \
-c "Quagga routing daemon" \
-d %{_localstatedir}/run/quagga quagga 2> /dev/null || :
%post
/sbin/ldconfig
%fillup_and_insserv
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%preun
%stop_on_removal zebra bgpd ospf6d ospfd ripd ripngd
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%restart_on_update zebra bgpd ospf6d ospfd ripd ripngd
%insserv_cleanup
/sbin/ldconfig
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%doc */*.sample* AUTHORS COPYING* ChangeLog NEWS README REPORTING-BUGS SERVICES TODO
%{_sbindir}/*
%config %attr(750,root,quagga) %{_sysconfdir}/quagga/
%config(noreplace) %attr(640,root,quagga) %{_sysconfdir}/%{name}/*.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/*
%config %{_sysconfdir}/init.d/*
%config (noreplace)%{_sysconfdir}/pam.d/*
%{_bindir}/*
%dir %attr(-,quagga,quagga) %{_localstatedir}/log/quagga
%dir %attr(-,quagga,quagga) %ghost %{_localstatedir}/run/quagga
%{_infodir}/quagga.info*
%{_mandir}/man?/*
%attr(755,root,root) %{_libdir}/lib*.so.*
%files devel
%defattr(644,root,root,755)
%{_libdir}/*.so
%{_libdir}/*.la
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/*.h
%dir %{_includedir}/%{name}/ospfd
%{_includedir}/%{name}/ospfd/*.h
%dir %{_includedir}/%{name}/ospfapi
%{_includedir}/%{name}/ospfapi/*.h
%changelog