%{!?with_pbrd: %global with_pbrd 1 }
# path defines
-%define _sysconfdir /etc/frr
+%define configdir %{_sysconfdir}/%{name}
%define _sbindir /usr/lib/frr
%define zeb_src %{_builddir}/%{name}-%{frrversion}
%define zeb_rh_src %{zeb_src}/redhat
%define frr_tools %{zeb_src}/tools
# defines for configure
-%define _localstatedir /var/run/frr
+%define rundir %{_localstatedir}/run/%{name}
# define for sphinx-build binary
%if 0%{?rhel} && 0%{?rhel} < 7
Group: System Environment/Daemons
Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
URL: https://www.frrouting.org
-Requires(pre): /sbin/install-info
-Requires(preun): /sbin/install-info
-Requires(post): /sbin/install-info
+Requires(preun): info
+Requires(post): info
BuildRequires: gcc patch libcap-devel
-BuildRequires: readline readline-devel ncurses ncurses-devel
+BuildRequires: readline-devel ncurses-devel
BuildRequires: json-c-devel bison >= 2.7 flex make
BuildRequires: c-ares-devel texinfo
%if 0%{?rhel} && 0%{?rhel} < 7
%else
BuildRequires: python-devel >= 2.7 python-sphinx
%endif
-Requires: ncurses json-c initscripts
+Requires: json-c initscripts
%if %{with_pam}
BuildRequires: pam-devel
-Requires: pam
%endif
%if %{with_rpki}
BuildRequires: librtr-devel >= 0.5
-Requires: librtr >= 0.5
%endif
%if "%{initsystem}" == "systemd"
BuildRequires: systemd systemd-devel
Requires(preun): systemd
Requires(postun): systemd
%else
+Requires(post): chkconfig
+Requires(preun): chkconfig
# Initscripts > 5.60 is required for IPv6 support
Requires(pre): initscripts >= 5.60
%endif
%package pythontools
Summary: python tools for frr
BuildRequires: python
-Requires: python python-ipaddr
+Requires: python-ipaddr
Group: System Environment/Daemons
%description pythontools
%configure \
--sbindir=%{_sbindir} \
- --sysconfdir=%{_sysconfdir} \
- --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --localstatedir=%{_localstatedir} \
+ --sysconfdir=%{configdir} \
+ --localstatedir=%{rundir} \
--disable-werror \
--enable-irdp \
%if !%{with_shared}
%if %{with_ospfapi}
--enable-ospfapi \
%else
- --enable-ospfapi \
+ --disable-ospfapi \
%endif
%if %{with_rtadv}
--enable-rtadv \
%else
- --enable-rtadv \
+ --disable-rtadv \
%endif
%if %{with_ldpd}
--enable-ldpd \
--enable-systemd \
%endif
%if %{with_rpki}
- --enable-rpki \
+ --enable-rpki
+%else
+ --disable-rpki
%endif
- --enable-poll
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" SPHINXBUILD=%{sphinx}
if getent passwd %frr_user >/dev/null ; then : ; else \
/usr/sbin/useradd -u %frr_uid -g %frr_gid \
-M -r -s /sbin/nologin -c "FRRouting suite" \
- -d %_localstatedir %frr_user 2> /dev/null || : ; \
+ -d %{rundir} %frr_user 2> /dev/null || : ; \
fi
%if 0%{?vty_group:1}
/usr/sbin/usermod -a -G %vty_group %frr_user
# Fix bad path in previous config files
# Config files won't get replaced by default, so we do this ugly hack to fix it
-%__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{_sysconfdir}/daemons 2> /dev/null || true
+%__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{configdir}/daemons 2> /dev/null || true
# With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
# we install or upgrade to a frr built with systemd
%if "%{initsystem}" == "systemd"
- %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{_sysconfdir}/daemons 2> /dev/null || true
+ %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
%endif
/sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
# Create dummy files if they don't exist so basic functions can be used.
-if [ ! -e %{_sysconfdir}/zebra.conf ]; then
- echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
+if [ ! -e %{configdir}/zebra.conf ]; then
+ echo "hostname `hostname`" > %{configdir}/zebra.conf
%if 0%{?frr_user:1}
- chown %frr_user:%frr_user %{_sysconfdir}/zebra.conf*
+ chown %frr_user:%frr_user %{configdir}/zebra.conf*
%endif
- chmod 640 %{_sysconfdir}/zebra.conf*
+ chmod 640 %{configdir}/zebra.conf*
fi
for daemon in %{all_daemons} ; do
if [ x"${daemon}" != x"" ] ; then
- if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
- touch %{_sysconfdir}/${daemon}.conf
+ if [ ! -e %{configdir}/${daemon}.conf ]; then
+ touch %{configdir}/${daemon}.conf
%if 0%{?frr_user:1}
- chown %frr_user:%frr_user %{_sysconfdir}/${daemon}.conf*
+ chown %frr_user:%frr_user %{configdir}/${daemon}.conf*
%endif
fi
fi
done
%if 0%{?frr_user:1}
- chown %frr_user:%frr_user %{_sysconfdir}/daemons
+ chown %frr_user:%frr_user %{configdir}/daemons
%endif
%if %{with_watchfrr}
# No config for watchfrr - this is part of /etc/sysconfig/frr
- rm -f %{_sysconfdir}/watchfrr.*
+ rm -f %{configdir}/watchfrr.*
%endif
-if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
- touch %{_sysconfdir}/vtysh.conf
- chmod 640 %{_sysconfdir}/vtysh.conf
+if [ ! -e %{configdir}/vtysh.conf ]; then
+ touch %{configdir}/vtysh.conf
+ chmod 640 %{configdir}/vtysh.conf
%if 0%{?frr_user:1}
%if 0%{?vty_group:1}
- chown %{frr_user}:%{vty_group} %{_sysconfdir}/vtysh.conf*
+ chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
%endif
%endif
fi
%doc doc/mpls
%doc ChangeLog NEWS README
%if 0%{?frr_user:1}
-%dir %attr(751,%frr_user,%frr_user) %{_sysconfdir}
+%dir %attr(751,%frr_user,%frr_user) %{configdir}
%dir %attr(750,%frr_user,%frr_user) /var/log/frr
%dir %attr(751,%frr_user,%frr_user) /var/run/frr
%else
-%dir %attr(750,root,root) %{_sysconfdir}
+%dir %attr(750,root,root) %{configdir}
%dir %attr(750,root,root) /var/log/frr
%dir %attr(750,root,root) /var/run/frr
%endif
%if 0%{?vty_group:1}
-%attr(750,%frr_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
+%attr(750,%frr_user,%vty_group) %{configdir}/vtysh.conf.sample
%endif
%{_infodir}/frr.info.gz
%{_mandir}/man*/*
%config(noreplace) /etc/frr/[!v]*.conf*
%config(noreplace) %attr(750,%frr_user,%frr_user) /etc/frr/daemons
%if "%{initsystem}" == "systemd"
- %attr(644,root,root) %{_unitdir}/frr.service
- %{_sbindir}/frr
+ %{_unitdir}/frr.service
%else
/etc/rc.d/init.d/frr
- %{_sbindir}/frr
%endif
+%{_sbindir}/frr
%config(noreplace) /etc/pam.d/frr
%config(noreplace) /etc/logrotate.d/frr
%{_sbindir}/frr-reload