diff --git a/frr.spec b/frr.spec index 0cf6d7f..716d247 100644 --- a/frr.spec +++ b/frr.spec @@ -1,44 +1,67 @@ -%global frrversion 7.5.1 -%global frr_libdir /usr/libexec/frr +%global frr_libdir %{_libexecdir}/frr %global _hardened_build 1 %define _legacy_common_support 1 -Name: frr -Version: 7.5.1 -Release: 4%{?checkout}%{?dist} -Summary: Routing daemon -License: GPLv2+ -URL: http://www.frrouting.org -Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{frrversion}/%{name}-%{frrversion}.tar.gz -Source1: %{name}-tmpfiles.conf -BuildRequires: perl-generators -BuildRequires: gcc gcc-c++ -BuildRequires: net-snmp-devel -BuildRequires: texinfo libcap-devel autoconf automake libtool patch groff -BuildRequires: readline readline-devel ncurses ncurses-devel -BuildRequires: git pam-devel c-ares-devel -BuildRequires: json-c-devel bison >= 2.7 flex perl-XML-LibXML -BuildRequires: python3-devel python3-sphinx python3-pytest -BuildRequires: systemd systemd-devel -BuildRequires: libyang-devel >= 0.16.74 -BuildRequires: make -BuildRequires: grpc-devel grpc-plugins -Requires: net-snmp ncurses -Requires(post): systemd /sbin/install-info -Requires(post): hostname -Requires(preun): systemd /sbin/install-info -Requires(postun): systemd -Provides: routingdaemon = %{version}-%{release} -Conflicts: quagga +Name: frr +Version: 7.5.1 +Release: 5%{?dist} +Summary: Routing daemon +License: GPLv2+ +URL: http://www.frrouting.org +Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz +Source1: %{name}-tmpfiles.conf -Patch0000: 0000-remove-babeld-and-ldpd.patch -Patch0001: 0001-use-python3.patch -Patch0002: 0002-enable-openssl.patch -Patch0003: 0003-disable-eigrp-crypto.patch -Patch0004: 0004-fips-mode.patch -Patch0005: 0005-icc-options.patch -Patch0006: 0006-move-to-libexec.patch +Patch0000: 0000-remove-babeld-and-ldpd.patch +Patch0001: 0001-use-python3.patch +Patch0002: 0002-enable-openssl.patch +Patch0003: 0003-disable-eigrp-crypto.patch +Patch0004: 0004-fips-mode.patch +Patch0005: 0005-icc-options.patch +Patch0006: 0006-move-to-libexec.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: bison >= 2.7 +BuildRequires: c-ares-devel +BuildRequires: flex +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: git +BuildRequires: groff +BuildRequires: grpc-devel +BuildRequires: grpc-plugins +BuildRequires: json-c-devel +BuildRequires: libcap-devel +BuildRequires: libtool +BuildRequires: libyang-devel >= 0.16.74 +BuildRequires: make +BuildRequires: ncurses +BuildRequires: ncurses-devel +BuildRequires: net-snmp-devel +BuildRequires: pam-devel +BuildRequires: patch +BuildRequires: perl-XML-LibXML +BuildRequires: perl-generators +BuildRequires: python3-devel +BuildRequires: python3-pytest +BuildRequires: python3-sphinx +BuildRequires: readline +BuildRequires: readline-devel +BuildRequires: systemd +BuildRequires: systemd-devel +BuildRequires: texinfo + +Requires: ncurses +Requires: net-snmp +Requires(post): /sbin/install-info +Requires(post): hostname +Requires(post): systemd +Requires(postun): systemd +Requires(preun): /sbin/install-info +Requires(preun): systemd +Conflicts: quagga +Provides: routingdaemon = %{version}-%{release} %description FRRouting is free software that manages TCP/IP based routing protocols. It takes @@ -82,13 +105,12 @@ autoreconf -ivf %make_build MAKEINFO="makeinfo --no-split" PYTHON=%{__python3} -pushd doc -make info -popd +# Build info documentation +%make_build -C doc info %install -mkdir -p %{buildroot}/etc/{frr,rc.d/init.d,sysconfig,logrotate.d,pam.d,default} \ - %{buildroot}/var/log/frr %{buildroot}%{_infodir} \ +mkdir -p %{buildroot}%{_sysconfdir}/{frr,rc.d/init.d,sysconfig,logrotate.d,pam.d,default} \ + %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir} \ %{buildroot}%{_unitdir} mkdir -p -m 0755 %{buildroot}%{_libdir}/frr @@ -97,21 +119,21 @@ mkdir -p %{buildroot}%{_tmpfilesdir} %make_install # Remove this file, as it is uninstalled and causes errors when building on RH9 -rm -rf %{buildroot}/usr/share/info/dir +rm -rf %{buildroot}%{_infodir}/dir install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf -install -p -m 644 %{_builddir}/%{name}-%{frrversion}/tools/etc/frr/daemons %{buildroot}/etc/frr/daemons -install -p -m 644 %{_builddir}/%{name}-%{frrversion}/tools/frr.service %{buildroot}%{_unitdir}/frr.service -install -p -m 755 %{_builddir}/%{name}-%{frrversion}/tools/frrinit.sh %{buildroot}%{frr_libdir}/frr -install -p -m 755 %{_builddir}/%{name}-%{frrversion}/tools/frrcommon.sh %{buildroot}%{frr_libdir}/frrcommon.sh -install -p -m 755 %{_builddir}/%{name}-%{frrversion}/tools/watchfrr.sh %{buildroot}%{frr_libdir}/watchfrr.sh +install -p -m 644 tools/etc/frr/daemons %{buildroot}%{_sysconfdir}/frr/daemons +install -p -m 644 tools/frr.service %{buildroot}%{_unitdir}/frr.service +install -p -m 755 tools/frrinit.sh %{buildroot}%{frr_libdir}/frr +install -p -m 755 tools/frrcommon.sh %{buildroot}%{frr_libdir}/frrcommon.sh +install -p -m 755 tools/watchfrr.sh %{buildroot}%{frr_libdir}/watchfrr.sh -install -p -m 644 %{_builddir}/%{name}-%{frrversion}/redhat/frr.logrotate %{buildroot}/etc/logrotate.d/frr -install -p -m 644 %{_builddir}/%{name}-%{frrversion}/redhat/frr.pam %{buildroot}/etc/pam.d/frr +install -p -m 644 redhat/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr +install -p -m 644 redhat/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr install -d -m 775 %{buildroot}/run/frr -rm %{buildroot}%{_libdir}/frr/*.la -rm %{buildroot}%{_libdir}/frr/modules/*.la +# Delete libtool archives +find %{buildroot} -type f -name "*.la" -delete -print #Upstream does not maintain a stable API, these headers from -devel subpackage are no longer needed rm %{buildroot}%{_libdir}/frr/*.so @@ -159,10 +181,9 @@ if [ $1 -eq 0 ]; then fi %check -make check PYTHON=%{__python3} +%make_build check PYTHON=%{__python3} %files -%defattr(-,root,root) %license COPYING %doc zebra/zebra.conf.sample %doc isisd/isisd.conf.sample @@ -174,7 +195,7 @@ make check PYTHON=%{__python3} %doc pimd/pimd.conf.sample %doc doc/mpls %dir %attr(750,frr,frr) %{_sysconfdir}/frr -%dir %attr(755,frr,frr) /var/log/frr +%dir %attr(755,frr,frr) %{_localstatedir}/log/frr %dir %attr(755,frr,frr) /run/frr %{_infodir}/*info* %{_mandir}/man*/* @@ -185,15 +206,18 @@ make check PYTHON=%{__python3} %{_libdir}/frr/*.so.* %dir %{_libdir}/frr/modules %{_libdir}/frr/modules/* -%config(noreplace) %attr(644,root,root) /etc/logrotate.d/frr -%config(noreplace) %attr(644,frr,frr) /etc/frr/daemons -%config(noreplace) /etc/pam.d/frr +%config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/frr +%config(noreplace) %attr(644,frr,frr) %{_sysconfdir}/frr/daemons +%config(noreplace) %{_sysconfdir}/pam.d/frr %{_unitdir}/*.service -%dir /usr/share/yang -/usr/share/yang/*.yang +%dir %{_datadir}/yang +%{_datadir}/yang/*.yang %{_tmpfilesdir}/%{name}.conf %changelog +* Wed Jul 07 2021 Neal Gompa - 7.5.1-5 +- Clean up the spec file for legibility and modern spec standards + * Wed Jul 07 2021 Michal Ruprich - 7.5.1-4 - Rebuild for newer abseil-cpp @@ -279,4 +303,3 @@ make check PYTHON=%{__python3} * Wed Jun 19 2019 Michal Ruprich - 7.0-2 - Initial build -