# with-feature options
%{!?with_babeld: %global with_babeld 1 }
%{!?with_bgp_vnc: %global with_bgp_vnc 0 }
+%{!?with_cumulus: %global with_cumulus 0 }
%{!?with_eigrpd: %global with_eigrpd 1 }
%{!?with_fpm: %global with_fpm 1 }
%{!?with_ldpd: %global with_ldpd 1 }
%{!?frr_gid: %global frr_gid 92 }
%{!?vty_gid: %global vty_gid 85 }
-%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd
+%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd
%if %{with_ldpd}
%define daemon_ldpd ldpd
Group: System Environment/Daemons
Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
URL: https://www.frrouting.org
+Requires(pre): shadow-utils
Requires(preun): info
Requires(post): info
BuildRequires: bison >= 2.7
%else
--disable-watchfrr \
%endif
+%if %{with_cumulus}
+ --enable-cumulus \
+%endif
%if %{with_bgp_vnc}
--enable-bgp-vnc \
%else
%endif
install %{zeb_rh_src}/daemons %{buildroot}%{_sysconfdir}/frr
+# 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 -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
install -d -m750 %{buildroot}%{rundir}
%pre
# add vty_group
%if 0%{?vty_group:1}
-if getent group %{vty_group} > /dev/null ; then : ; else \
- /usr/sbin/groupadd -r -g %vty_gid %{vty_group} > /dev/null || : ; fi
+ getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
%endif
# add frr user and group
%if 0%{?frr_user:1}
-# Ensure that frr_gid gets correctly allocated
-if getent group %{frr_user} >/dev/null; then : ; else \
- /usr/sbin/groupadd -g %frr_gid %{frr_user} > /dev/null || : ; \
-fi
-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 %{rundir} %{frr_user} 2> /dev/null || : ; \
-fi
-%if 0%{?vty_group:1}
- /usr/sbin/usermod -a -G %{vty_group} %{frr_user}
-%endif
+ # Ensure that frr_gid gets correctly allocated
+ getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
+ getent passwd %{frr_user} >/dev/null || \
+ useradd -r -u %{frr_uid} -g %{frr_user} \
+ -s /sbin/nologin -c "FRRouting suite" \
+ -d %{rundir} %{frr_user}
+
+ %if 0%{?vty_group:1}
+ usermod -a -G %{vty_group} %{frr_user}
+ %endif
%endif
+exit 0
%post
zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
zebra_spec_add_service zebra 2601/tcp "zebra vty"
+zebra_spec_add_service staticd 2616/tcp "staticd vty"
zebra_spec_add_service ripd 2602/tcp "RIPd vty"
zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
%{_infodir}/frr.info.gz
%{_mandir}/man*/*
%{_sbindir}/zebra
+%{_sbindir}/staticd
%{_sbindir}/ospfd
%{_sbindir}/ripd
%{_sbindir}/bgpd
%{_sbindir}/ospfclient
%endif
%dir %{_includedir}/%{name}
-%{_includedir}/%name/*.h
+%{_includedir}/%{name}/*.h
%dir %{_includedir}/%{name}/ospfd
-%{_includedir}/%name/ospfd/*.h
+%{_includedir}/%{name}/ospfd/*.h
%if %{with_ospfapi}
%dir %{_includedir}/%{name}/ospfapi
- %{_includedir}/%name/ospfapi/*.h
+ %{_includedir}/%{name}/ospfapi/*.h
%endif
%if %{with_eigrpd}
%dir %{_includedir}/%{name}/eigrpd
- %{_includedir}/%name/eigrpd/*.h
+ %{_includedir}/%{name}/eigrpd/*.h
%endif