]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
670bc6f4c91060b7c6f1bb4dd8d721866be7149d
[mirror_frr.git] / redhat / frr.spec.in
1 # configure options
2 #
3 # Some can be overridden on rpmbuild commandline with:
4 # rpmbuild --define 'variable value'
5 # (use any value, ie 1 for flag "with_XXXX" definitions)
6 #
7 # E.g. rpmbuild --define 'release_rev 02' may be useful if building
8 # rpms again and again on the same day, so the newer rpms can be installed.
9 # bumping the number each time.
10
11 #################### FRRouting (FRR) configure options #####################
12 # with-feature options
13 %{!?with_babeld: %global with_babeld 1 }
14 %{!?with_bfdd: %global with_bfdd 1 }
15 %{!?with_bgp_vnc: %global with_bgp_vnc 0 }
16 %{!?with_cumulus: %global with_cumulus 0 }
17 %{!?with_eigrpd: %global with_eigrpd 1 }
18 %{!?with_fpm: %global with_fpm 1 }
19 %{!?with_ldpd: %global with_ldpd 1 }
20 %{!?with_multipath: %global with_multipath 256 }
21 %{!?with_nhrpd: %global with_nhrpd 1 }
22 %{!?with_ospfapi: %global with_ospfapi 1 }
23 %{!?with_ospfclient: %global with_ospfclient 1 }
24 %{!?with_pam: %global with_pam 0 }
25 %{!?with_pbrd: %global with_pbrd 1 }
26 %{!?with_pimd: %global with_pimd 1 }
27 %{!?with_vrrpd: %global with_vrrpd 1 }
28 %{!?with_rpki: %global with_rpki 0 }
29 %{!?with_rtadv: %global with_rtadv 1 }
30 %{!?with_watchfrr: %global with_watchfrr 1 }
31
32 # user and group
33 %{!?frr_user: %global frr_user frr }
34 %{!?vty_group: %global vty_group frrvty }
35
36 # path defines
37 %define configdir %{_sysconfdir}/%{name}
38 %define _sbindir /usr/lib/frr
39 %define zeb_src %{_builddir}/%{name}-%{frrversion}
40 %define zeb_rh_src %{zeb_src}/redhat
41 %define zeb_docs %{zeb_src}/doc
42 %define frr_tools %{zeb_src}/tools
43
44 # defines for configure
45 %define rundir %{_localstatedir}/run/%{name}
46
47 ############################################################################
48
49 #### Version String tweak
50 # Remove invalid characters form version string and replace with _
51 %{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
52 %define frrversion @VERSION@
53
54 #### Check for systemd or init.d (upstart)
55 # Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
56 %if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210
57 %global initsystem systemd
58 %else
59 %if 0%{?rhel} && 0%{?rhel} < 7
60 %global initsystem upstart
61 %else
62 %{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `readlink -f /sbin/init` = /usr/lib/systemd/systemd ]]; then echo systemd; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
63 %endif
64 %endif
65
66 # If init system is systemd, then always enable watchfrr
67 %if "%{initsystem}" == "systemd"
68 %global with_watchfrr 1
69 %endif
70
71 #### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
72 #### Always disable it on these old systems unconditionally
73 #
74 # if CentOS / RedHat and version < 7, then disable PIMd (too old, won't work)
75 %if 0%{?rhel} && 0%{?rhel} < 7
76 %global with_pimd 0
77 %endif
78
79 # misc internal defines
80 %{!?frr_uid: %global frr_uid 92 }
81 %{!?frr_gid: %global frr_gid 92 }
82 %{!?vty_gid: %global vty_gid 85 }
83
84 %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd fabricd
85
86 %if %{with_ldpd}
87 %define daemon_ldpd ldpd
88 %else
89 %define daemon_ldpd ""
90 %endif
91
92 %if %{with_pimd}
93 %define daemon_pimd pimd
94 %else
95 %define daemon_pimd ""
96 %endif
97
98 %if %{with_pbrd}
99 %define daemon_pbrd pbrd
100 %else
101 %define daemon_pbrd ""
102 %endif
103
104 %if %{with_nhrpd}
105 %define daemon_nhrpd nhrpd
106 %else
107 %define daemon_nhrpd ""
108 %endif
109
110 %if %{with_eigrpd}
111 %define daemon_eigrpd eigrpd
112 %else
113 %define daemon_eigrpd ""
114 %endif
115
116 %if %{with_babeld}
117 %define daemon_babeld babeld
118 %else
119 %define daemon_babeld ""
120 %endif
121
122 %if %{with_vrrpd}
123 %define daemon_vrrpd vrrpd
124 %else
125 %define daemon_vrrpd ""
126 %endif
127
128 %if %{with_watchfrr}
129 %define daemon_watchfrr watchfrr
130 %else
131 %define daemon_watchfrr ""
132 %endif
133
134 %if %{with_bfdd}
135 %define daemon_bfdd bfdd
136 %else
137 %define daemon_bfdd ""
138 %endif
139
140 %define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd} %{daemon_vrrpd}
141
142 #release sub-revision (the two digits after the CONFDATE)
143 %{!?release_rev: %global release_rev 01 }
144
145 Summary: Routing daemon
146 Name: frr
147 Version: %{rpmversion}
148 Release: %{release_rev}%{?dist}
149 License: GPLv2+
150 Group: System Environment/Daemons
151 Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
152 URL: https://www.frrouting.org
153 Requires(pre): shadow-utils
154 Requires(preun): info
155 Requires(post): info
156 BuildRequires: bison >= 2.7
157 BuildRequires: c-ares-devel
158 BuildRequires: flex
159 BuildRequires: gcc
160 BuildRequires: json-c-devel
161 BuildRequires: libcap-devel
162 BuildRequires: make
163 BuildRequires: ncurses-devel
164 BuildRequires: readline-devel
165 BuildRequires: texinfo
166 BuildRequires: libyang-devel >= 0.16.74
167 %if 0%{?rhel} && 0%{?rhel} < 7
168 #python27-devel is available from ius community repo for RedHat/CentOS 6
169 BuildRequires: python27-devel
170 BuildRequires: python27-sphinx
171 %else
172 %if 0%{?rhel} && 0%{?rhel} > 7
173 BuildRequires: python2-devel
174 #platform-python-devel is needed for /usr/bin/pathfix.py
175 BuildRequires: platform-python-devel
176 %else
177 BuildRequires: python-devel >= 2.7
178 BuildRequires: python-sphinx
179 %endif
180 %endif
181 Requires: initscripts
182 %if %{with_pam}
183 BuildRequires: pam-devel
184 %endif
185 %if %{with_rpki}
186 BuildRequires: librtr-devel >= 0.5
187 %endif
188 %if "%{initsystem}" == "systemd"
189 BuildRequires: systemd
190 BuildRequires: systemd-devel
191 Requires(post): systemd
192 Requires(preun): systemd
193 Requires(postun): systemd
194 %else
195 Requires(post): chkconfig
196 Requires(preun): chkconfig
197 # Initscripts > 5.60 is required for IPv6 support
198 Requires(pre): initscripts >= 5.60
199 %endif
200 Provides: routingdaemon = %{version}-%{release}
201 Obsoletes: gated mrt zebra frr-sysvinit
202 Conflicts: bird
203
204
205 %description
206 FRRouting is a free software that manages TCP/IP based routing
207 protocol. It takes multi-server and multi-thread approach to resolve
208 the current complexity of the Internet.
209
210 FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
211 NHRP, Babel, PBR, EIGRP and BFD.
212
213 FRRouting is a fork of Quagga.
214
215
216 %package contrib
217 Summary: contrib tools for frr
218 Group: System Environment/Daemons
219
220 %description contrib
221 Contributed/3rd party tools which may be of use with frr.
222
223
224 %package pythontools
225 Summary: python tools for frr
226 %if 0%{?rhel} && 0%{?rhel} > 7
227 BuildRequires: python2
228 Requires: python2-ipaddress
229 %else
230 BuildRequires: python
231 Requires: python-ipaddress
232 %endif
233 Group: System Environment/Daemons
234
235 %description pythontools
236 Contributed python 2.7 tools which may be of use with frr.
237
238
239 %package devel
240 Summary: Header and object files for frr development
241 Group: System Environment/Daemons
242 Requires: %{name} = %{version}-%{release}
243
244 %description devel
245 The frr-devel package contains the header and object files neccessary for
246 developing OSPF-API and frr applications.
247
248
249 %prep
250 %setup -q -n frr-%{frrversion}
251
252
253 %build
254
255 # For standard gcc verbosity, uncomment these lines:
256 #CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
257 #CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
258
259 # For ultra gcc verbosity, uncomment these lines also:
260 #CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
261 #CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
262 #CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
263 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
264
265 %configure \
266 --sbindir=%{_sbindir} \
267 --sysconfdir=%{configdir} \
268 --localstatedir=%{rundir} \
269 --disable-static \
270 --disable-werror \
271 --enable-irdp \
272 %if %{with_multipath}
273 --enable-multipath=%{with_multipath} \
274 %endif
275 --enable-vtysh \
276 %if %{with_ospfclient}
277 --enable-ospfclient \
278 %else
279 --disable-ospfclient\
280 %endif
281 %if %{with_ospfapi}
282 --enable-ospfapi \
283 %else
284 --disable-ospfapi \
285 %endif
286 %if %{with_rtadv}
287 --enable-rtadv \
288 %else
289 --disable-rtadv \
290 %endif
291 %if %{with_ldpd}
292 --enable-ldpd \
293 %else
294 --disable-ldpd \
295 %endif
296 %if %{with_pimd}
297 --enable-pimd \
298 %else
299 --disable-pimd \
300 %endif
301 %if %{with_pbrd}
302 --enable-pbrd \
303 %else
304 --disable-pbrd \
305 %endif
306 %if %{with_nhrpd}
307 --enable-nhrpd \
308 %else
309 --disable-nhrpd \
310 %endif
311 %if %{with_eigrpd}
312 --enable-eigrpd \
313 %else
314 --disable-eigrpd \
315 %endif
316 %if %{with_babeld}
317 --enable-babeld \
318 %else
319 --disable-babeld \
320 %endif
321 %if %{with_vrrpd}
322 --enable-vrrpd \
323 %else
324 --disable-vrrpd \
325 %endif
326 %if %{with_pam}
327 --with-libpam \
328 %endif
329 %if 0%{?frr_user:1}
330 --enable-user=%{frr_user} \
331 --enable-group=%{frr_user} \
332 %endif
333 %if 0%{?vty_group:1}
334 --enable-vty-group=%{vty_group} \
335 %endif
336 %if %{with_fpm}
337 --enable-fpm \
338 %else
339 --disable-fpm \
340 %endif
341 %if %{with_watchfrr}
342 --enable-watchfrr \
343 %else
344 --disable-watchfrr \
345 %endif
346 %if %{with_cumulus}
347 --enable-cumulus \
348 %endif
349 %if %{with_bgp_vnc}
350 --enable-bgp-vnc \
351 %else
352 --disable-bgp-vnc \
353 %endif
354 --enable-isisd \
355 %if "%{initsystem}" == "systemd"
356 --enable-systemd \
357 %endif
358 %if %{with_rpki}
359 --enable-rpki \
360 %else
361 --disable-rpki \
362 %endif
363 %if %{with_bfdd}
364 --enable-bfdd \
365 %else
366 --disable-bfdd \
367 %endif
368 # end
369
370 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
371
372 pushd doc
373 make info
374 popd
375
376
377 %install
378 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
379 %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir}
380 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
381
382 # Remove this file, as it is uninstalled and causes errors when building on RH9
383 rm -rf %{buildroot}/usr/share/info/dir
384
385 # Remove debian init script if it was installed
386 rm -f %{buildroot}%{_sbindir}/frr
387
388 # kill bogus libtool files
389 rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
390 rm -vf %{buildroot}%{_libdir}/*.la
391 rm -vf %{buildroot}%{_libdir}/frr/libyang_plugins/*.la
392
393 # install /etc sources
394 %if "%{initsystem}" == "systemd"
395 mkdir -p %{buildroot}%{_unitdir}
396 install -m644 %{zeb_src}/tools/frr.service %{buildroot}%{_unitdir}/frr.service
397 %else
398 mkdir -p %{buildroot}%{_initddir}
399 ln -s %{_sbindir}/frrinit.sh %{buildroot}%{_initddir}/frr
400 %endif
401
402 install %{zeb_src}/tools/etc/frr/daemons %{buildroot}%{_sysconfdir}/frr
403 # add rpki module to daemon
404 %if %{with_rpki}
405 sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{buildroot}%{_sysconfdir}/frr/daemons
406 %endif
407 install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
408 install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
409 install -d -m750 %{buildroot}%{rundir}
410
411 %if 0%{?rhel} && 0%{?rhel} > 7
412 # avoid `ERROR: ambiguous python shebang in` errors
413 pathfix.py -pni "%{__python2} %{py2_shbang_opts}" %{buildroot}/usr/lib/frr/*.py
414 %py_byte_compile %{__python2} %{buildroot}/usr/lib/frr/*.py
415 %endif
416
417 %pre
418 # add vty_group
419 %if 0%{?vty_group:1}
420 getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
421 %endif
422
423 # add frr user and group
424 %if 0%{?frr_user:1}
425 # Ensure that frr_gid gets correctly allocated
426 getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
427 getent passwd %{frr_user} >/dev/null || \
428 useradd -r -u %{frr_uid} -g %{frr_user} \
429 -s /sbin/nologin -c "FRRouting suite" \
430 -d %{rundir} %{frr_user}
431
432 %if 0%{?vty_group:1}
433 usermod -a -G %{vty_group} %{frr_user}
434 %endif
435 %endif
436 exit 0
437
438
439 %post
440 # zebra_spec_add_service <service name> <port/proto> <comment>
441 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
442
443 zebra_spec_add_service ()
444 {
445 # Add port /etc/services entry if it isn't already there
446 if [ -f %{_sysconfdir}/services ] && \
447 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services 2>/dev/null | %__grep -wq $1 ; then
448 echo "$1 $2 # $3" >> %{_sysconfdir}/services
449 fi
450 }
451
452 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
453 zebra_spec_add_service zebra 2601/tcp "zebra vty"
454 zebra_spec_add_service staticd 2616/tcp "staticd vty"
455 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
456 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
457 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
458 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
459 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
460 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
461 %if %{with_ospfapi}
462 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
463 %endif
464 %if %{with_babeld}
465 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
466 %endif
467 %if %{with_nhrpd}
468 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
469 %endif
470 %if %{with_pimd}
471 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
472 %endif
473 %if %{with_pbrd}
474 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
475 %endif
476 %if %{with_ldpd}
477 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
478 %endif
479 %if %{with_eigrpd}
480 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
481 %endif
482 %if %{with_bfdd}
483 zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
484 %endif
485 zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
486 %if %{with_vrrpd}
487 zebra_spec_add_service vrrpd 2619/tcp "VRRPd vty"
488 %endif
489
490 %if "%{initsystem}" == "systemd"
491 for daemon in %all_daemons ; do
492 %systemd_post frr.service
493 done
494 %else
495 /sbin/chkconfig --add frr
496 %endif
497
498 # Fix bad path in previous config files
499 # Config files won't get replaced by default, so we do this ugly hack to fix it
500 %__sed -i 's|watchfrr_options=|#watchfrr_options=|g' %{configdir}/daemons 2> /dev/null || true
501
502 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
503 # we install or upgrade to a frr built with systemd
504 %if "%{initsystem}" == "systemd"
505 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
506 %endif
507
508 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
509
510 # Create dummy files if they don't exist so basic functions can be used.
511 if [ ! -e %{configdir}/zebra.conf ]; then
512 echo "hostname `hostname`" > %{configdir}/zebra.conf
513 %if 0%{?frr_user:1}
514 chown %{frr_user}:%{frr_user} %{configdir}/zebra.conf*
515 %endif
516 chmod 640 %{configdir}/zebra.conf*
517 fi
518 for daemon in %{all_daemons} ; do
519 if [ x"${daemon}" != x"" ] ; then
520 if [ ! -e %{configdir}/${daemon}.conf ]; then
521 touch %{configdir}/${daemon}.conf
522 %if 0%{?frr_user:1}
523 chown %{frr_user}:%{frr_user} %{configdir}/${daemon}.conf*
524 %endif
525 fi
526 fi
527 done
528 %if 0%{?frr_user:1}
529 chown %{frr_user}:%{frr_user} %{configdir}/daemons
530 %endif
531
532 %if %{with_watchfrr}
533 # No config for watchfrr - this is part of /etc/sysconfig/frr
534 rm -f %{configdir}/watchfrr.*
535 %endif
536
537 if [ ! -e %{configdir}/vtysh.conf ]; then
538 touch %{configdir}/vtysh.conf
539 chmod 640 %{configdir}/vtysh.conf
540 %if 0%{?frr_user:1}
541 %if 0%{?vty_group:1}
542 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
543 %endif
544 %endif
545 fi
546
547
548 %postun
549 if [ "$1" -ge 1 ]; then
550 #
551 # Upgrade from older version
552 #
553 %if "%{initsystem}" == "systemd"
554 ##
555 ## Systemd Version
556 ##
557 %systemd_postun_with_restart frr.service
558 %else
559 ##
560 ## init.d Version
561 ##
562 service frr restart >/dev/null 2>&1
563 %endif
564 :
565 fi
566
567
568 %preun
569 %if "%{initsystem}" == "systemd"
570 ##
571 ## Systemd Version
572 ##
573 if [ $1 -eq 0 ] ; then
574 %systemd_preun frr.service
575 fi
576 %else
577 ##
578 ## init.d Version
579 ##
580 if [ $1 -eq 0 ] ; then
581 service frr stop >/dev/null 2>&1
582 /sbin/chkconfig --del frr
583 fi
584 %endif
585 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
586
587
588 %files
589 %doc */*.sample* COPYING
590 %doc doc/mpls
591 %doc README.md
592 /usr/share/yang/*.yang
593 %if 0%{?frr_user:1}
594 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
595 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
596 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
597 %else
598 %dir %attr(750,root,root) %{configdir}
599 %dir %attr(750,root,root) %{_localstatedir}/log/frr
600 %dir %attr(750,root,root) %{rundir}
601 %endif
602 %if 0%{?vty_group:1}
603 %attr(750,%{frr_user},%{vty_group}) %{configdir}/vtysh.conf.sample
604 %endif
605 %{_infodir}/frr.info.gz
606 %{_mandir}/man*/*
607 %{_sbindir}/zebra
608 %{_sbindir}/staticd
609 %{_sbindir}/ospfd
610 %{_sbindir}/ripd
611 %{_sbindir}/bgpd
612 %exclude %{_sbindir}/ssd
613 %if %{with_watchfrr}
614 %{_sbindir}/watchfrr
615 %endif
616 %{_sbindir}/ripngd
617 %{_sbindir}/ospf6d
618 %if %{with_pimd}
619 %{_sbindir}/pimd
620 %endif
621 %if %{with_pbrd}
622 %{_sbindir}/pbrd
623 %endif
624 %if %{with_vrrpd}
625 %{_sbindir}/vrrpd
626 %endif
627 %{_sbindir}/isisd
628 %{_sbindir}/fabricd
629 %if %{with_ldpd}
630 %{_sbindir}/ldpd
631 %endif
632 %if %{with_eigrpd}
633 %{_sbindir}/eigrpd
634 %endif
635 %if %{with_nhrpd}
636 %{_sbindir}/nhrpd
637 %endif
638 %if %{with_babeld}
639 %{_sbindir}/babeld
640 %endif
641 %if %{with_bfdd}
642 %{_sbindir}/bfdd
643 %endif
644 %{_libdir}/lib*.so.0
645 %{_libdir}/lib*.so.0.*
646 %if %{with_fpm}
647 %{_libdir}/frr/modules/zebra_fpm.so
648 %endif
649 %if %{with_rpki}
650 %{_libdir}/frr/modules/bgpd_rpki.so
651 %endif
652 %{_libdir}/frr/modules/zebra_cumulus_mlag.so
653 %{_libdir}/frr/modules/zebra_irdp.so
654 %{_libdir}/frr/modules/bgpd_bmp.so
655 %{_bindir}/*
656 %config(noreplace) %{configdir}/[!v]*.conf*
657 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
658 %if "%{initsystem}" == "systemd"
659 %{_unitdir}/frr.service
660 %else
661 %{_initddir}/frr
662 %endif
663 %config(noreplace) %{_sysconfdir}/pam.d/frr
664 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
665 %{_sbindir}/frr-reload
666 %{_sbindir}/frrcommon.sh
667 %{_sbindir}/frrinit.sh
668 %{_sbindir}/watchfrr.sh
669
670
671 %files contrib
672 %doc tools
673
674
675 %files pythontools
676 %{_sbindir}/generate_support_bundle.py
677 %{_sbindir}/generate_support_bundle.pyc
678 %{_sbindir}/generate_support_bundle.pyo
679 %{_sbindir}/frr-reload.py
680 %{_sbindir}/frr-reload.pyc
681 %{_sbindir}/frr-reload.pyo
682
683
684 %files devel
685 %{_libdir}/lib*.so
686 %dir %{_includedir}/%{name}
687 %{_includedir}/%{name}/*.h
688 %dir %{_includedir}/%{name}/ospfd
689 %{_includedir}/%{name}/ospfd/*.h
690 %if %{with_ospfapi}
691 %dir %{_includedir}/%{name}/ospfapi
692 %{_includedir}/%{name}/ospfapi/*.h
693 %endif
694 %if %{with_eigrpd}
695 %dir %{_includedir}/%{name}/eigrpd
696 %{_includedir}/%{name}/eigrpd/*.h
697 %endif
698
699
700 %changelog
701 * Fri Dec 27 2019 Donatas Abraitis <donatas.abraitis@gmail.com>
702 - Add CentOS 8 support
703
704 * Mon May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - %{version}
705 - Add BFDd support
706
707 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
708 - Fixed RPKI RPM build
709
710 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
711 - Add option to build with RPKI (default: disabled)
712
713 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
714 - Adapt to new documentation structure based on Sphinx
715
716 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
717 - Fix script location for watchfrr restart functions in daemon config
718 - Fix postun script to restart frr during upgrade
719
720 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
721 - added NHRP and EIGRP daemon
722
723 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
724 - new subpackage frr-pythontools with python 2.7 restart script
725 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
726 - converted to single frr init script (not per daemon) based on debian init script
727 - created systemd service file for systemd based systems (which uses init script)
728 - Various other RPM package fixes for FRR 2.0
729
730 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
731 - Renamed to frr for FRRouting fork of Quagga
732
733 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
734 - remove with_ipv6 conditionals, always build v6
735 - Fix UTF-8 char in spec changelog
736 - remove quagga.pam.stack, long deprecated.
737
738 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
739 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
740 --enable-netlink
741 - Remove support for old fedora 4/5
742 - Fix for package nameing
743 - Fix Weekdays of previous changelogs (bogus dates)
744 - Add conditional logic to only build tex footnotes with supported texi2html
745 - Added pimd to files section and fix double listing of /var/lib*/quagga
746 - Numerous fixes to unify upstart/systemd startup into same spec file
747 - Only allow use of watchfrr for non-systemd systems. no need with systemd
748
749 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
750 - buildreq updates
751 - add a default define for with_pimd
752
753 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
754 - Steal some changes from Fedora spec file:
755 - Add with_rtadv variable
756 - Test for groups/users with getent before group/user adding
757 - Readline need not be an explicit prerequisite
758 - install-info delete should be postun, not preun
759
760 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
761 - on package upgrade, implement careful, phased restart logic
762 - use gcc -rdynamic flag when linking for better backtraces
763
764 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
765 - daemonv6_list should contain only IPv6 daemons
766
767 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
768 - watchfrr added
769 - on upgrade, all daemons should be condrestart'ed
770 - on removal, all daemons should be stopped
771
772 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
773 - Use makeinfo --html to generate quagga.html
774
775 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
776 - Fix with_ipv6 set to 0 build
777
778 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
779 - Update to 0.97.2
780
781 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
782 - Make directories be owned by the packages concerned
783 - Update logrotate scripts to use correct path to killall and use pid files
784
785 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
786 - Update to 0.97.0
787
788 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
789 - build snmp support by default
790 - build irdp support
791 - build with shared libs
792 - devel subpackage for archives and headers
793
794 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
795 - updated sysconfig files to specify local dir
796 - added ospf_dump.c crash quick fix patch
797 - added ospfd persistent interface configuration patch
798
799 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
800 - sync to CVS
801 - integrate RH sysconfig patch to specify daemon options (RH)
802 - default to have vty listen only to 127.1 (RH)
803 - add user with fixed UID/GID (RH)
804 - create user with shell /sbin/nologin rather than /bin/false (RH)
805 - stop daemons on uninstall (RH)
806 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
807 - isisd added
808 - cleanup tasks carried out for every daemon
809
810 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
811 - Fix -devel package to include all files
812 - Sync to 0.96.4
813
814 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
815 - Renamed to Quagga
816 - Sync to Quagga release 0.96
817
818 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
819 - zebra privileges support
820
821 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
822 - Fix mem leak in 'show thread cpu'
823 - Ralph Keller's OSPF-API
824 - Amir: Fix configure.ac for net-snmp
825
826 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
827 - ospfd IOS prefix to interface matching for 'network' statement
828 - temporary fix for PtP and IPv6
829 - sync to zebra.org CVS
830
831 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
832 - update to latest cvs
833 - Yon's "show thread cpu" patch - 17217
834 - walk up tree - 17218
835 - ospfd NSSA fixes - 16681
836 - ospfd nsm fixes - 16824
837 - ospfd OLSA fixes and new feature - 16823
838 - KAME and ifindex fixes - 16525
839 - spec file changes to allow redhat files to be in tree
840
841 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
842 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
843 - Fixed up some build requirements (patch)
844 - Added conditional build requirements for vtysh / snmp
845 - Added conditional to files for _bindir depending on vtysh
846
847 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
848 - update to latest CVS
849 - add Greg Troxel's md5 buffer copy/dup fix
850 - add RIPv1 fix
851 - add Frank's multicast flag fix
852
853 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
854 - update to latest CVS
855 - timestamped crypt_seqnum patch
856 - oi->on_write_q fix
857
858 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
859 - update to latest CVS
860 - add vtysh 'write-config (integrated|daemon)' patch
861 - always 'make rebuild' in vtysh/ to catch new commands
862
863 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
864 - update to 0.93b
865
866 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
867 - update to latest CVS
868 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
869
870 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
871 - update to current CVS
872 - add OSPF point to multipoint patch
873 - add OSPF bugfixes
874 - add BGP hash optimisation patch
875
876 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
877 - update to 0.93-pre1 / CVS
878 - add link state detection support
879 - add generic PtP and RFC3021 support
880 - various bug fixes
881
882 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
883 - Fix bug #51336
884
885 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
886 - Use generic initscript strings instead of initscript specific
887 ( "Starting foo: " -> "Starting $prog:" )
888
889 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
890 - Bump the release when rebuilding into the dist.
891
892 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
893 - built for Powertools
894
895 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
896 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
897 - Update to 0.91a
898 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
899 - Should be quite Red Hat'isque now.