commit caada572281c79cf0a208e7d0503943a923c4b493feb07dc9bd0e5702be5c002 Author: Marcus Meissner Date: Mon Jan 6 10:18:54 2020 +0000 Accepting request 755955 from home:emendonca:network Adding working tests; removing _servicedata. OBS-URL: https://build.opensuse.org/request/show/755955 OBS-URL: https://build.opensuse.org/package/show/network/frr?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/fix_tests.patch b/fix_tests.patch new file mode 100644 index 0000000..269dee2 --- /dev/null +++ b/fix_tests.patch @@ -0,0 +1,29 @@ +--- tests/topotests/lib/topotest.py-orig 2019-12-10 23:17:14.241938136 -0300 ++++ tests/topotests/lib/topotest.py 2019-12-10 23:17:27.978005193 -0300 +@@ -29,7 +29,10 @@ + import sys + import functools + import glob +-import StringIO ++try: ++ from StringIO import StringIO ++except ImportError: ++ from io import StringIO + import subprocess + import tempfile + import platform +--- tests/topotests/lib/common_config.py-orig 2019-12-10 23:17:59.526550785 -0300 ++++ tests/topotests/lib/common_config.py 2019-12-10 23:18:23.139134928 -0300 +@@ -28,7 +28,11 @@ + from functools import wraps + from re import search as re_search + +-import StringIO ++try: ++ from StringIO import StringIO ++except ImportError: ++ from io import StringIO ++ + import os + import ConfigParser + import traceback diff --git a/frr-frr7.2.tar.xz b/frr-frr7.2.tar.xz new file mode 100644 index 0000000..5a4d4e7 --- /dev/null +++ b/frr-frr7.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c19d7ce84b6e1e8fc612ab2966f256f775510cec4055c675028efb919c1cb0e +size 4191880 diff --git a/frr-tmpfiles.d b/frr-tmpfiles.d new file mode 100644 index 0000000..719f4b9 --- /dev/null +++ b/frr-tmpfiles.d @@ -0,0 +1 @@ +d @frr_statedir@ 0751 frr frrvty diff --git a/frr.changes b/frr.changes new file mode 100644 index 0000000..7755acb --- /dev/null +++ b/frr.changes @@ -0,0 +1,37 @@ +------------------------------------------------------------------- +Wed Dec 11 23:18:06 UTC 2019 - Erico Mendonca + +- fix_tests.patch: correct syntax for Python 3 imports in tests. +- Enabling tests + +------------------------------------------------------------------- +Wed Dec 11 02:37:42 UTC 2019 - erico.mendonca@suse.com + +- Update to version frr7.2: + * zebra: use correct state when installing evpn macs + * lib: set entry to xpath in if_update_to_new_vrf + * zebra: capture dplane plugin flags + * bgpd: Autocomplete neighbor for clear bgp + * ospfd,eigrpd: don't take address of packed struct member + * bgpd: Prevent crash in bgp_table_range_lookup + * bgpd: Fix memory leak in json output of show commands + * tests: Test if `distance bgp (1-255) (1-255) (1-255)` works + * bgpd: Reflect the distance in RIB when it is changed for an arbitrary afi/safi + * bfdd: fix multiple VRF handling + +------------------------------------------------------------------- +Tue Dec 10 12:58:21 UTC 2019 - Erico Mendonca + +- Updating to version 7.2 +- Adding systemd scripts +- Fixing build and permission issues + +------------------------------------------------------------------- +Tue Jun 18 08:59:05 UTC 2019 - Martin Hauke + +- Update to version 7.0.1 + +------------------------------------------------------------------- +Sat Feb 2 13:50:16 UTC 2019 - mardnh@gmx.de + +- Initial package, version 6.0.2 diff --git a/frr.spec b/frr.spec new file mode 100644 index 0000000..7d159c3 --- /dev/null +++ b/frr.spec @@ -0,0 +1,658 @@ +# +# spec file for package frr +# +# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2019, Martin Hauke +# +# 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 https://bugs.opensuse.org/ +# + +%define skip_python2 1 + +%if 0%{?suse_version} >= 1210 +%bcond_without systemd +%else +%bcond_with systemd +%endif + +%define frr_user frr +%define frr_group frr +%define frrvty_group frrvty +%define frr_home %{_localstatedir}/lib/%{name} +%define frr_statedir %{_rundir}/%{name} +%define frr_daemondir %{_prefix}/lib/frr +%bcond_without babeld +%bcond_without bfdd +%bcond_without bgpd +%bcond_without bgp_vnc +%bcond_with cumulus +%bcond_with datacenter +%bcond_without doc +%bcond_without eigrpd +%bcond_without fpm +%bcond_without irdp +%bcond_without isisd +%bcond_without ldpd +%bcond_without multipath +%bcond_without nhrpd +%bcond_without ospf6d +%bcond_without ospfapi +%bcond_without ospfclient +%bcond_without ospfd +%bcond_without pam +%bcond_without pbrd +%bcond_with pcre +%bcond_without pimd +%bcond_with protobuf +%bcond_without ripd +%bcond_without ripngd +%bcond_with rpki +%bcond_without rtadv +%bcond_without snmp +%bcond_without sharpd +%bcond_without staticd +%bcond_without vtysh +%bcond_without watchfrr +%bcond_without zebra +%bcond_with zeromq +############################################ +# TODO: +# * Use new init scripts +# - https://github.com/FRRouting/frr/issues/3652 +# - https://github.com/FRRouting/frr/issues/3493 +# * More Functionals tests +Name: frr +Version: 7.2 +Release: 0 +Summary: FRRouting Routing daemon +License: LGPL-2.1-or-later +Group: Productivity/Networking/System +URL: https://www.frrouting.org +#Git-Clone: https://github.com/FRRouting/frr.git +Source: %{name}-%{name}%{version}.tar.xz +Source1: %{name}-tmpfiles.d +Patch0: fix_tests.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: bison >= 2.7 +BuildRequires: flex +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: readline-devel +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(libcares) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libyang) >= 0.16.7 +BuildRequires: python-rpm-macros +BuildRequires: %{python_module devel} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module mininet} +# FIXME: use proper Requires(pre/post/preun/...) +PreReq: %{install_info_prereq} +Requires(post): %{install_info_prereq} +Requires(pre): shadow +Requires(preun): %{install_info_prereq} +Recommends: logrotate +Conflicts: quagga +Provides: zebra = %{version} +Obsoletes: zebra < %{version} +%if %{with systemd} +BuildRequires: systemd-rpm-macros +%{?systemd_requires} +%endif + +%if %{with doc} +BuildRequires: makeinfo +BuildRequires: %{python_module Sphinx} +%endif +%if %{with pam} +BuildRequires: pam-devel +%endif +%if %{with pcre} +BuildRequires: pkgconfig(libpcre) +%endif +%if %{with protobuf} +BuildRequires: protobuf-c +BuildRequires: pkgconfig(libprotobuf-c) +%endif +%if %{with rpki} +BuildRequires: pkgconfig(rtrlib) >= 0.5.0 +%endif +%if %{with snmp} +BuildRequires: net-snmp-devel +%endif +%if %{with zeromq} +BuildRequires: pkgconfig(libzmq) >= 4.0.0 +%endif + +%description +FRR is free software which manages TCP/IP based routing protocols. +It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng, +PIM and LDP as well as the IPv6 versions of these. + +FRR is a fork of Quagga.. + +%package -n libfrrfpm_pb0 +Summary: FRRouting fpm protobuf library +Group: System/Libraries + +%description -n libfrrfpm_pb0 +This library contains forwarding plane manager protobuf definitions +for FRRouting. + +%package -n libfrr_pb0 +Summary: FRRouting protobuf library +Group: System/Libraries + +%description -n libfrr_pb0 +This library contains protobuf memory management for FRRouting.. + +%package -n libfrrospfapiclient0 +Summary: API for FRRouting's OSPFv2 implementation +Group: System/Libraries + +%description -n libfrrospfapiclient0 +This library contains part of the OSPFv2 implementation of FRRouting. + +%if %{with snmp} +%package -n libfrrsnmp0 +Summary: FRRouting snmp library +Group: System/Libraries + +%description -n libfrrsnmp0 +This library contains part of the net-snmp agentx implementation of FRRouting. +%endif + +%if %{with zeromq} +%package -n libfrrzmq0 +Summary: FRRouting zeromq library +Group: System/Libraries + +%description -n libfrrzmq0 +This library contains part of the zermomq implementation of FRRouting. +%endif + +%package -n libfrr0 +Summary: FRRouting utility library +Group: System/Libraries + +%description -n libfrr0 +This library contains various utility functions to FRRouting, such as +data types, buffers and socket handling. + +%package -n libfrrcares0 +Summary: FRRouting utility library +Group: System/Libraries + +%description -n libfrrcares0 +This library contains various utility functions to FRRouting, such as +data types, buffers and socket handling. + +%package devel +Summary: Header and object files for frr development +Group: Development/Libraries/C and C++ +Requires: libfrr0 = %{version} +%if %{with protobuf} +Requires: libfrr_pb0 = %{version} +Requires: libfrrfpm_pb0 = %{version} +%endif +%if %{with ospfapi} +Requires: libfrrospfapiclient0 = %{version} +%endif +%if %{with snmp} +Requires: libfrrsnmp0 = %{version} +%endif +%if %{with zeromq} +Requires: libfrrzmq0 = %{version} +%endif + +%description devel +The frr-devel package contains the header and object files necessary for +developing OSPF-API and frr applications. + +%prep +%setup -q -n %{name}-%{name}%{version} +%patch0 -p0 + +%build +# GCC LTO objects must be "fat" to avoid assembly errors +export CFLAGS="-ffat-lto-objects" + +autoreconf -fiv +%configure \ + --enable-exampledir=%{_docdir}/%{name}/examples \ + --sysconfdir=%{_sysconfdir}/%{name} \ + --localstatedir=%{frr_statedir} \ + --sbindir=%{frr_daemondir} \ + --with-moduledir=%{_libdir}/frr/modules \ + --disable-static \ + --with-vtysh-pager=%{_bindir}/less \ + --enable-user=%{frr_user} \ + --enable-group=%{frr_group} \ + --enable-vty-group=%{frrvty_group} \ + --enable-configfile-mask=0640 \ + --enable-logfile-mask=0640 \ +%if %{with doc} + --enable-doc \ + --enable-doc-html \ +%endif +%if %{with babeld} + --enable-babeld \ +%else + --disable-babeld \ +%endif +%if %{with bfdd} + --enable-bfdd \ +%else + --disable-bfdd \ +%endif +%if %{with bgpd} + --enable-bgpd \ +%else + --disable-bgpd \ +%endif +%if %{with bgp_vnc} + --enable-bgp-vnc \ +%else + --disable-bgp-vnc \ +%endif +%if %{with cumulus} + --enable-cumulus \ +%endif +%if %{with datacenter} + --enable-datacenter \ +%endif +%if %{with eigrpd} + --enable-eigrpd \ +%else + --disable-eigrpd \ +%endif +%if %{with fpm} + --enable-fpm \ +%else + --disable-fpm \ +%endif +%if %{with irdp} + --enable-irdp \ +%else + --disable-irdp \ +%endif +%if %{with isisd} + --enable-isisd \ +%else + --disable-isisd \ +%endif +%if %{with ldpd} + --enable-ldpd \ +%else + --disable-ldpd \ +%endif +%if %{with multipath} + --enable-multipath=256 \ +%endif +%if %{with nhrpd} + --enable-nhrpd \ +%else + --disable-nhrpd \ +%endif +%if %{with snmp} + --enable-snmp \ +%endif +%if %{with zeromq} + --enable-zeromq \ +%endif +%if %{with ospfd} + --enable-ospfd \ +%else + --disable-ospfd \ +%endif +%if %{with ospf6d} + --enable-ospf6d \ +%else + --disable-ospf6d \ +%endif +%if %{with ospfapi} + --enable-ospfapi \ +%else + --disable-ospfapi \ +%endif +%if %{with ospfclient} + --enable-ospfclient \ +%else + --disable-ospfclient \ +%endif +%if %{with pam} + --with-libpam \ +%endif +%if %{with pcre} + --enable-pcreposix \ +%endif +%if %{with pbrd} + --enable-pbrd \ +%else + --disable-pbrd \ +%endif +%if %{with pimd} + --enable-pimd \ +%else + --disable-pimd \ +%endif +%if %{with protobuf} + --enable-protobuf \ +%endif +%if %{with ripd} + --enable-ripd \ +%else + --disable-ripd \ +%endif +%if %{with ripngd} + --enable-ripngd \ +%else + --disable-ripngd \ +%endif +%if %{with rpki} + --enable-rpki \ +%else + --disable-rpki \ +%endif +%if %{with rtadv} + --enable-rtadv \ +%else + --disable-rtadv \ +%endif +%if %{with sharpd} + --enable-sharpd \ +%else + --disable-sharpd \ +%endif +%if %{with staticd} + --enable-staticd \ +%else + --disable-staticd \ +%endif +%if %{with vtysh} + --enable-vtysh \ +%else + --disable-vtysh \ +%endif +%if %{with watchfrr} + --enable-watchfrr \ +%else + --disable-watchfrr \ +%endif +%if %{with zebra} + --enable-zebra \ +%else + --disable-zebra \ +%endif + --enable-systemd + +make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" + +%install +make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install +find %{buildroot} -type f -name "*.la" -delete -print +install -d %{buildroot}%{_sysconfdir}/frr +%if %{with doc} +install -d %{buildroot}/%{_docdir}/%{name} +mv %{buildroot}/%{_datadir}/doc/frr/html %{buildroot}/%{_docdir}/%{name} +%endif + +# remove stray buildinfo files +find %{buildroot}/%{_docdir}/%{name} -type f -name .buildinfo -delete + +# systemd init scripts +install -D -m 0644 tools/frr.service %{buildroot}%{_unitdir}/frr.service +install -D -m 0644 tools%{_sysconfdir}/frr/daemons %{buildroot}%{_sysconfdir}/frr/daemons + +# add rpki module to daemon +%if %{with rpki} +sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{buildroot}%{_sysconfdir}/frr/daemons +%endif +install -D -m 0644 redhat/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr +install -D -m 0644 redhat/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr +install -d -m 0750 %{buildroot}%{rundir} +install -d -m 0750 %{buildroot}%{_localstatedir}/log/frr +install -D -m 0644 %{SOURCE1} %{buildroot}/%{_tmpfilesdir}/%{name}.conf +sed -e "s|@frr_statedir@|%{frr_statedir}|g" -i %{buildroot}/%{_tmpfilesdir}/%{name}.conf +install -d %{buildroot}%{_sbindir} +ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcfrr +rm -f %{buildroot}%{frr_daemondir}/ssd +cat > %{buildroot}%{_sysconfdir}/frr/frr.conf << __EOF__ +!hostname frr + +!password frr +!enable password frr + +log file %{_localstatedir}/log/frr/frr.log +__EOF__ +cat > %{buildroot}%{_sysconfdir}/frr/vtysh.conf << __EOF__ +! vtysh is using PAM authentication allowing root to use it. +__EOF__ + +%check +make -C tests + +%pre +# Create frr user/groups +getent group %{frr_group} >/dev/null || groupadd -r %{frr_group} +getent group %{frrvty_group} >/dev/null || groupadd -r %{frrvty_group} +getent passwd %{frr_user} >/dev/null || useradd -r -g %{frr_group} -G %{frrvty_group} -d %{frr_home} -s /sbin/nologin -c "FRRouting suite" %{frr_user} +exit 0 + +%service_add_pre %{name}.service + +%post +%service_add_post %{name}.service +%if %{with doc} +%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} +%endif +%tmpfiles_create %{_tmpfilesdir}/%{name}.conf || true + +%preun +%service_del_preun %{name}.service + +%postun +%service_del_postun %{name}.service +%if %{with doc} +%install_info_delete --info-dir=%{_infodir} %{_infodir}/frr.info%{ext_info} +%endif + +# delete the user and groups created if it's an uninstall +if [ "$1" = "0" ]; then + userdel -r frr + groupdel frr + groupdel frrvty +fi + + +%if %{with protobuf} +%post -n libfrr_pb0 -p /sbin/ldconfig +%postun -n libfrr_pb0 -p /sbin/ldconfig +%post -n libfrrfpm_pb0 -p /sbin/ldconfig +%postun -n libfrrfpm_pb0 -p /sbin/ldconfig +%endif + +%if %{with ospfapi} +%post -n libfrrospfapiclient0 -p /sbin/ldconfig +%postun -n libfrrospfapiclient0 -p /sbin/ldconfig +%endif + +%if %{with snmp} +%post -n libfrrsnmp0 -p /sbin/ldconfig +%postun -n libfrrsnmp0 -p /sbin/ldconfig +%endif + +%if %{with zeromq} +%post -n libfrrzmq0 -p /sbin/ldconfig +%postun -n libfrrzmq0 -p /sbin/ldconfig +%endif + +%post -n libfrr0 -p /sbin/ldconfig +%postun -n libfrr0 -p /sbin/ldconfig +%post -n libfrrcares0 -p /sbin/ldconfig +%postun -n libfrrcares0 -p /sbin/ldconfig + +%files +%license COPYING COPYING-LGPLv2.1 +%doc README.md +%doc doc/mpls +%doc %{_docdir}/%{name}/examples +%dir %attr(750,%{frr_user},%{frr_user}) %{_sysconfdir}/%{name} +%config(noreplace) %attr(640,%{frr_user},%{frr_group}) %{_sysconfdir}/%{name}/[!v]*.conf* +%config(noreplace) %attr(640,%{frr_user},%{frrvty_group}) %{_sysconfdir}/%{name}/vtysh.conf +%config(noreplace) %%attr(640,%{frr_user},%{frr_group}) %{_sysconfdir}/%{name}/daemons +%config(noreplace) %{_sysconfdir}/pam.d/frr +%config(noreplace) %{_sysconfdir}/logrotate.d/frr +%if %{with doc} +%{_infodir}/frr.info%{?ext_info} +%{_mandir}/man?/* +%{_docdir}/%{name}/html +%endif +%{_unitdir}/%%{name}.service +%dir %{_tmpfilesdir} +%{_tmpfilesdir}/%{name}.conf +%dir %attr(-,%{frr_user},%{frr_group}) %{_localstatedir}/log/frr +%dir %attr(-,%{frr_user},%{frr_group}) %ghost %{frr_statedir} +%{_sbindir}/rc%{name} +%dir %{_prefix}/lib/frr +%{_prefix}/lib/frr/fabricd +%{_prefix}/lib/frr/vrrpd +%{_datadir}/yang +%if %{with pimd} +%{_bindir}/mtracebis +%endif +%if %{with vtysh} +%{_bindir}/vtysh +%endif +%if %{with babeld} +%{frr_daemondir}/babeld +%endif +%if %{with bfdd} +%{frr_daemondir}/bfdd +%endif +%if %{with bgpd} +%{frr_daemondir}/bgpd +%endif +%if %{with eigrpd} +%{frr_daemondir}/eigrpd +%endif +%{frr_daemondir}/frr +%{frr_daemondir}/frr-reload +%{frr_daemondir}/frr-reload.py +%{frr_daemondir}/frrcommon.sh +%{frr_daemondir}/frrinit.sh +%if %{with isisd} +%{frr_daemondir}/isisd +%endif +%if %{with ldpd} +%{frr_daemondir}/ldpd +%endif +%if %{with nhrpd} +%{frr_daemondir}/nhrpd +%endif +%if %{with ospf6d} +%{frr_daemondir}/ospf6d +%endif +%if %{with ospfd} +%{frr_daemondir}/ospfd +%endif +%if %{with pbrd} +%{frr_daemondir}/pbrd +%endif +%if %{with pimd} +%{frr_daemondir}/pimd +%endif +%if %{with ripd} +%{frr_daemondir}/ripd +%endif +%if %{with ripngd} +%{frr_daemondir}/ripngd +%endif +%if %{with sharpd} +%{frr_daemondir}/sharpd +%endif +%if %{with staticd} +%{frr_daemondir}/staticd +%endif +%if %{with watchfrr} +%{frr_daemondir}/watchfrr +%{frr_daemondir}/watchfrr.sh +%endif +%if %{with zebra} +%{frr_daemondir}/zebra +%endif +%dir %{_libdir}/frr +%dir %{_libdir}/frr/modules +%if %{with zebra} && %{with fpm} +%{_libdir}/frr/modules/zebra_fpm.so +%endif +%if %{with zebra} && %{with irdp} +%{_libdir}/frr/modules/zebra_irdp.so +%endif +%if %{with bgpd} && %{with rpki} +%{_libdir}/frr/modules/bgpd_rpki.so +%endif +%{_prefix}/lib/frr/vrrpd +%{_libdir}/frr/modules/bgpd_bmp.so + +%if %{with protobuf} +%files -n libfrr_pb0 +%{_libdir}/libfrr_pb.so.0* + +%files -n libfrrfpm_pb0 +%{_libdir}/libfrrfpm_pb.so.0* +%endif + +%if %{with ospfapi} +%files -n libfrrospfapiclient0 +%{_libdir}/libfrrospfapiclient.so.0* +%endif + +%if %{with snmp} +%files -n libfrrsnmp0 +%{_libdir}/libfrrsnmp.so.0* +%{_libdir}/frr/modules/*_snmp.so +%endif + +%if %{with zeromq} +%files -n libfrrzmq0 +%{_libdir}/libfrrzmq.so.0* +%endif + +%files -n libfrr0 +%{_libdir}/libfrr.so.0* + +%files -n libfrrcares0 +%{_libdir}/libfrrcares.so.0 +%{_libdir}/libfrrcares.so.0.0.0 + +%files devel +%dir %{_includedir}/%{name} +%{_includedir}/%{name}/*.h +%if %{with ospfd} +%dir %{_includedir}/%{name}/ospfd +%{_includedir}/%{name}/ospfd/*.h +%endif +%if %{with ospfapi} +%dir %{_includedir}/%{name}/ospfapi +%{_includedir}/%{name}/ospfapi/*.h +%endif +%if %{with eigrpd} +%dir %{_includedir}/%{name}/eigrpd +%{_includedir}/%{name}/eigrpd/*.h +%endif +%{_libdir}/lib*.so + +%changelog