]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
Merge pull request #8396 from achernavin22/ospf_fast_hello_show_run
[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_rtadv: %global with_rtadv 1 }
29 %{!?with_watchfrr: %global with_watchfrr 1 }
30 %{!?with_pathd: %global with_pathd 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 # Check for python version - use python2.7 on CentOS 6, otherwise python3
67 %if 0%{?rhel} && 0%{?rhel} < 7
68 %global use_python2 1
69 %else
70 %global use_python2 0
71 %endif
72
73 # If init system is systemd, then always enable watchfrr
74 %if "%{initsystem}" == "systemd"
75 %global with_watchfrr 1
76 %endif
77
78 #### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
79 #### Always disable it on these old systems unconditionally
80 #
81 # if CentOS / RedHat and version < 7, then disable PIMd (too old, won't work)
82 %if 0%{?rhel} && 0%{?rhel} < 7
83 %global with_pimd 0
84 %endif
85
86 # misc internal defines
87 %{!?frr_uid: %global frr_uid 92 }
88 %{!?frr_gid: %global frr_gid 92 }
89 %{!?vty_gid: %global vty_gid 85 }
90
91 %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd fabricd pathd
92
93 %if %{with_ldpd}
94 %define daemon_ldpd ldpd
95 %else
96 %define daemon_ldpd ""
97 %endif
98
99 %if %{with_pimd}
100 %define daemon_pimd pimd
101 %else
102 %define daemon_pimd ""
103 %endif
104
105 %if %{with_pbrd}
106 %define daemon_pbrd pbrd
107 %else
108 %define daemon_pbrd ""
109 %endif
110
111 %if %{with_nhrpd}
112 %define daemon_nhrpd nhrpd
113 %else
114 %define daemon_nhrpd ""
115 %endif
116
117 %if %{with_eigrpd}
118 %define daemon_eigrpd eigrpd
119 %else
120 %define daemon_eigrpd ""
121 %endif
122
123 %if %{with_babeld}
124 %define daemon_babeld babeld
125 %else
126 %define daemon_babeld ""
127 %endif
128
129 %if %{with_vrrpd}
130 %define daemon_vrrpd vrrpd
131 %else
132 %define daemon_vrrpd ""
133 %endif
134
135 %if %{with_watchfrr}
136 %define daemon_watchfrr watchfrr
137 %else
138 %define daemon_watchfrr ""
139 %endif
140
141 %if %{with_bfdd}
142 %define daemon_bfdd bfdd
143 %else
144 %define daemon_bfdd ""
145 %endif
146
147 %if %{with_pathd}
148 %define daemon_pathd pathd
149 %else
150 %define daemon_pathd ""
151 %endif
152
153 %define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd} %{daemon_vrrpd} %{daemon_pathd}
154
155 #release sub-revision (the two digits after the CONFDATE)
156 %{!?release_rev: %global release_rev 01 }
157
158 Summary: Routing daemon
159 Name: frr
160 Version: %{rpmversion}
161 Release: %{release_rev}%{?dist}
162 License: GPLv2+
163 Group: System Environment/Daemons
164 Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
165 URL: https://www.frrouting.org
166 Requires(pre): shadow-utils
167 Requires(preun): info
168 Requires(post): info
169 BuildRequires: bison >= 2.7
170 BuildRequires: c-ares-devel
171 BuildRequires: flex
172 BuildRequires: gcc
173 BuildRequires: json-c-devel
174 BuildRequires: libcap-devel
175 BuildRequires: make
176 BuildRequires: ncurses-devel
177 BuildRequires: readline-devel
178 BuildRequires: texinfo
179 BuildRequires: libyang-devel >= 1.0.184
180 %if 0%{?rhel} && 0%{?rhel} < 7
181 #python27-devel is available from ius community repo for RedHat/CentOS 6
182 BuildRequires: python27-devel
183 BuildRequires: python27-sphinx
184 %else
185 %if %{use_python2}
186 BuildRequires: python-devel >= 2.7
187 BuildRequires: python-sphinx
188 %else
189 BuildRequires: python3-devel
190 BuildRequires: python3-sphinx
191 %endif
192 %endif
193 %if 0%{?rhel} > 7
194 #platform-python-devel is needed for /usr/bin/pathfix.py
195 BuildRequires: platform-python-devel
196 %endif
197 Requires: initscripts
198 %if %{with_pam}
199 BuildRequires: pam-devel
200 %endif
201 %if "%{initsystem}" == "systemd"
202 BuildRequires: systemd
203 BuildRequires: systemd-devel
204 Requires(post): systemd
205 Requires(preun): systemd
206 Requires(postun): systemd
207 %else
208 Requires(post): chkconfig
209 Requires(preun): chkconfig
210 # Initscripts > 5.60 is required for IPv6 support
211 Requires(pre): initscripts >= 5.60
212 %endif
213 Provides: routingdaemon = %{version}-%{release}
214 Obsoletes: gated mrt zebra frr-sysvinit
215 Conflicts: bird
216
217
218 %description
219 FRRouting is a free software that manages TCP/IP based routing
220 protocol. It takes multi-server and multi-thread approach to resolve
221 the current complexity of the Internet.
222
223 FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
224 NHRP, Babel, PBR, EIGRP and BFD.
225
226 FRRouting is a fork of Quagga.
227
228
229 %package contrib
230 Summary: contrib tools for frr
231 Group: System Environment/Daemons
232
233 %description contrib
234 Contributed/3rd party tools which may be of use with frr.
235
236
237 %package pythontools
238 Summary: python tools for frr
239 %if 0%{?rhel} && 0%{?rhel} < 7
240 #python27 is available from ius community repo for RedHat/CentOS 6
241 BuildRequires: python27
242 Requires: python27-ipaddress
243 %else
244 %if %{use_python2}
245 BuildRequires: python2
246 Requires: python2-ipaddress
247 %else
248 BuildRequires: python3
249 %endif
250 %endif
251 Group: System Environment/Daemons
252
253 %description pythontools
254 Contributed python 2.7 tools which may be of use with frr.
255
256
257 %package devel
258 Summary: Header and object files for frr development
259 Group: System Environment/Daemons
260 Requires: %{name} = %{version}-%{release}
261
262 %description devel
263 The frr-devel package contains the header and object files neccessary for
264 developing OSPF-API and frr applications.
265
266
267 %package rpki-rtrlib
268 Summary: BGP RPKI support (rtrlib)
269 Group: System Environment/Daemons
270 BuildRequires: librtr-devel >= 0.5
271 Requires: %{name} = %{version}-%{release}
272
273 %description rpki-rtrlib
274 Adds RPKI support to FRR's bgpd, allowing validation of BGP routes
275 against cryptographic information stored in WHOIS databases. This is
276 used to prevent hijacking of networks on the wider internet. It is only
277 relevant to internet service providers using their own autonomous system
278 number.
279
280
281 %package snmp
282 Summary: SNMP support
283 Group: System Environment/Daemons
284 BuildRequires: net-snmp-devel
285 Requires: %{name} = %{version}-%{release}
286
287 %description snmp
288 Adds SNMP support to FRR's daemons by attaching to net-snmp's snmpd
289 through the AgentX protocol. Provides read-only access to current
290 routing state through standard SNMP MIBs.
291
292
293 %prep
294 %setup -q -n frr-%{frrversion}
295
296
297 %build
298
299 # For standard gcc verbosity, uncomment these lines:
300 #CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
301 #CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
302
303 # For ultra gcc verbosity, uncomment these lines also:
304 #CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
305 #CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
306 #CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
307 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
308
309 %configure \
310 --sbindir=%{_sbindir} \
311 --sysconfdir=%{configdir} \
312 --localstatedir=%{rundir} \
313 --disable-static \
314 --disable-werror \
315 --enable-irdp \
316 %if %{with_multipath}
317 --enable-multipath=%{with_multipath} \
318 %endif
319 --enable-vtysh \
320 %if %{with_ospfclient}
321 --enable-ospfclient \
322 %else
323 --disable-ospfclient\
324 %endif
325 %if %{with_ospfapi}
326 --enable-ospfapi \
327 %else
328 --disable-ospfapi \
329 %endif
330 %if %{with_rtadv}
331 --enable-rtadv \
332 %else
333 --disable-rtadv \
334 %endif
335 %if %{with_ldpd}
336 --enable-ldpd \
337 %else
338 --disable-ldpd \
339 %endif
340 %if %{with_pimd}
341 --enable-pimd \
342 %else
343 --disable-pimd \
344 %endif
345 %if %{with_pbrd}
346 --enable-pbrd \
347 %else
348 --disable-pbrd \
349 %endif
350 %if %{with_nhrpd}
351 --enable-nhrpd \
352 %else
353 --disable-nhrpd \
354 %endif
355 %if %{with_eigrpd}
356 --enable-eigrpd \
357 %else
358 --disable-eigrpd \
359 %endif
360 %if %{with_babeld}
361 --enable-babeld \
362 %else
363 --disable-babeld \
364 %endif
365 %if %{with_vrrpd}
366 --enable-vrrpd \
367 %else
368 --disable-vrrpd \
369 %endif
370 %if %{with_pam}
371 --with-libpam \
372 %endif
373 %if 0%{?frr_user:1}
374 --enable-user=%{frr_user} \
375 --enable-group=%{frr_user} \
376 %endif
377 %if 0%{?vty_group:1}
378 --enable-vty-group=%{vty_group} \
379 %endif
380 %if %{with_fpm}
381 --enable-fpm \
382 %else
383 --disable-fpm \
384 %endif
385 %if %{with_watchfrr}
386 --enable-watchfrr \
387 %else
388 --disable-watchfrr \
389 %endif
390 %if %{with_cumulus}
391 --enable-cumulus \
392 %endif
393 %if %{with_bgp_vnc}
394 --enable-bgp-vnc \
395 %else
396 --disable-bgp-vnc \
397 %endif
398 --enable-isisd \
399 %if "%{initsystem}" == "systemd"
400 --enable-systemd \
401 %endif
402 --enable-rpki \
403 %if %{with_bfdd}
404 --enable-bfdd \
405 %else
406 --disable-bfdd \
407 %endif
408 %if %{with_pathd}
409 --enable-pathd \
410 %else
411 --disable-pathd \
412 %endif
413 --enable-snmp
414 # end
415
416 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
417
418 %if %{use_python2}
419 # Change frr-reload.py to use python2.7
420 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/frr-reload.py
421 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/generate_support_bundle.py
422 %else
423 # Change frr-reload.py to use python3
424 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/frr-reload.py
425 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/generate_support_bundle.py
426 %endif
427
428 pushd doc
429 make info
430 popd
431
432
433 %install
434 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
435 %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir}
436 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
437
438 # Remove this file, as it is uninstalled and causes errors when building on RH9
439 rm -rf %{buildroot}/usr/share/info/dir
440
441 # Remove debian init script if it was installed
442 rm -f %{buildroot}%{_sbindir}/frr
443
444 # kill bogus libtool files
445 rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
446 rm -vf %{buildroot}%{_libdir}/*.la
447 rm -vf %{buildroot}%{_libdir}/frr/libyang_plugins/*.la
448
449 # install /etc sources
450 %if "%{initsystem}" == "systemd"
451 mkdir -p %{buildroot}%{_unitdir}
452 install -m644 %{zeb_src}/tools/frr.service %{buildroot}%{_unitdir}/frr.service
453 %else
454 mkdir -p %{buildroot}%{_initddir}
455 ln -s %{_sbindir}/frrinit.sh %{buildroot}%{_initddir}/frr
456 %endif
457
458 install %{zeb_src}/tools/etc/frr/daemons %{buildroot}%{_sysconfdir}/frr
459 install %{zeb_src}/tools/etc/frr/frr.conf %{buildroot}%{_sysconfdir}/frr
460 install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
461 install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
462 install -d -m750 %{buildroot}%{rundir}
463
464 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
465 # avoid `ERROR: ambiguous python shebang in` errors
466 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}/usr/lib/frr/*.py
467 %py_byte_compile %{__python3} %{buildroot}/usr/lib/frr/*.py
468 %endif
469
470 %pre
471 # add vty_group
472 %if 0%{?vty_group:1}
473 getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
474 %endif
475
476 # add frr user and group
477 %if 0%{?frr_user:1}
478 # Ensure that frr_gid gets correctly allocated
479 getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
480 getent passwd %{frr_user} >/dev/null || \
481 useradd -r -u %{frr_uid} -g %{frr_user} \
482 -s /sbin/nologin -c "FRRouting suite" \
483 -d %{rundir} %{frr_user}
484
485 %if 0%{?vty_group:1}
486 usermod -a -G %{vty_group} %{frr_user}
487 %endif
488 %endif
489 exit 0
490
491
492 %post
493 # zebra_spec_add_service <service name> <port/proto> <comment>
494 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
495
496 zebra_spec_add_service ()
497 {
498 # Add port /etc/services entry if it isn't already there
499 if [ -f %{_sysconfdir}/services ] && \
500 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services 2>/dev/null | %__grep -wq $1 ; then
501 echo "$1 $2 # $3" >> %{_sysconfdir}/services
502 fi
503 }
504
505 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
506 zebra_spec_add_service zebra 2601/tcp "zebra vty"
507 zebra_spec_add_service staticd 2616/tcp "staticd vty"
508 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
509 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
510 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
511 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
512 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
513 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
514 %if %{with_ospfapi}
515 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
516 %endif
517 %if %{with_babeld}
518 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
519 %endif
520 %if %{with_nhrpd}
521 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
522 %endif
523 %if %{with_pimd}
524 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
525 %endif
526 %if %{with_pbrd}
527 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
528 %endif
529 %if %{with_ldpd}
530 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
531 %endif
532 %if %{with_eigrpd}
533 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
534 %endif
535 %if %{with_bfdd}
536 zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
537 %endif
538 zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
539 %if %{with_vrrpd}
540 zebra_spec_add_service vrrpd 2619/tcp "VRRPd vty"
541 %endif
542 %if %{with_pathd}
543 zebra_spec_add_service pathd 2620/tcp "Pathd vty"
544 %endif
545
546 %if "%{initsystem}" == "systemd"
547 for daemon in %all_daemons ; do
548 %systemd_post frr.service
549 done
550 %else
551 /sbin/chkconfig --add frr
552 %endif
553
554 # Fix bad path in previous config files
555 # Config files won't get replaced by default, so we do this ugly hack to fix it
556 %__sed -i 's|watchfrr_options=|#watchfrr_options=|g' %{configdir}/daemons 2> /dev/null || true
557
558 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
559 # we install or upgrade to a frr built with systemd
560 %if "%{initsystem}" == "systemd"
561 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
562 %endif
563
564 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
565
566 # Create dummy files if they don't exist so basic functions can be used.
567 if [ ! -e %{configdir}/zebra.conf ]; then
568 echo "hostname `hostname`" > %{configdir}/zebra.conf
569 %if 0%{?frr_user:1}
570 chown %{frr_user}:%{frr_user} %{configdir}/zebra.conf*
571 %endif
572 chmod 640 %{configdir}/zebra.conf*
573 fi
574 for daemon in %{all_daemons} ; do
575 if [ x"${daemon}" != x"" ] ; then
576 if [ ! -e %{configdir}/${daemon}.conf ]; then
577 touch %{configdir}/${daemon}.conf
578 %if 0%{?frr_user:1}
579 chown %{frr_user}:%{frr_user} %{configdir}/${daemon}.conf*
580 %endif
581 fi
582 fi
583 done
584 %if 0%{?frr_user:1}
585 chown %{frr_user}:%{frr_user} %{configdir}/daemons
586 %endif
587
588 %if %{with_watchfrr}
589 # No config for watchfrr - this is part of /etc/sysconfig/frr
590 rm -f %{configdir}/watchfrr.*
591 %endif
592
593 if [ ! -e %{configdir}/vtysh.conf ]; then
594 touch %{configdir}/vtysh.conf
595 chmod 640 %{configdir}/vtysh.conf
596 %if 0%{?frr_user:1}
597 %if 0%{?vty_group:1}
598 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
599 %endif
600 %endif
601 fi
602
603
604 %postun
605 if [ "$1" -ge 1 ]; then
606 #
607 # Upgrade from older version
608 #
609 %if "%{initsystem}" == "systemd"
610 ##
611 ## Systemd Version
612 ##
613 %systemd_postun_with_restart frr.service
614 %else
615 ##
616 ## init.d Version
617 ##
618 service frr restart >/dev/null 2>&1
619 %endif
620 :
621 fi
622
623
624 %preun
625 %if "%{initsystem}" == "systemd"
626 ##
627 ## Systemd Version
628 ##
629 if [ $1 -eq 0 ] ; then
630 %systemd_preun frr.service
631 fi
632 %else
633 ##
634 ## init.d Version
635 ##
636 if [ $1 -eq 0 ] ; then
637 service frr stop >/dev/null 2>&1
638 /sbin/chkconfig --del frr
639 fi
640 %endif
641 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
642
643
644 %files
645 %doc COPYING
646 %doc doc/mpls
647 %doc README.md
648 /usr/share/yang/*.yang
649 %if 0%{?frr_user:1}
650 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
651 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
652 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
653 %else
654 %dir %attr(750,root,root) %{configdir}
655 %dir %attr(750,root,root) %{_localstatedir}/log/frr
656 %dir %attr(750,root,root) %{rundir}
657 %endif
658 %{_infodir}/frr.info.gz
659 %{_mandir}/man*/*
660 %{_sbindir}/zebra
661 %{_sbindir}/staticd
662 %{_sbindir}/ospfd
663 %{_sbindir}/ripd
664 %{_sbindir}/bgpd
665 %exclude %{_sbindir}/ssd
666 %if %{with_watchfrr}
667 %{_sbindir}/watchfrr
668 %endif
669 %{_sbindir}/ripngd
670 %{_sbindir}/ospf6d
671 %if %{with_pimd}
672 %{_sbindir}/pimd
673 %endif
674 %if %{with_pbrd}
675 %{_sbindir}/pbrd
676 %endif
677 %if %{with_vrrpd}
678 %{_sbindir}/vrrpd
679 %endif
680 %{_sbindir}/isisd
681 %{_sbindir}/fabricd
682 %if %{with_ldpd}
683 %{_sbindir}/ldpd
684 %endif
685 %if %{with_eigrpd}
686 %{_sbindir}/eigrpd
687 %endif
688 %if %{with_nhrpd}
689 %{_sbindir}/nhrpd
690 %endif
691 %if %{with_babeld}
692 %{_sbindir}/babeld
693 %endif
694 %if %{with_bfdd}
695 %{_sbindir}/bfdd
696 %endif
697 %if %{with_pathd}
698 %{_sbindir}/pathd
699 %{_libdir}/frr/modules/pathd_pcep.so
700 %endif
701 %{_libdir}/libfrr.so*
702 %{_libdir}/libfrrcares*
703 %{_libdir}/libfrrospf*
704 %if %{with_fpm}
705 %{_libdir}/frr/modules/zebra_fpm.so
706 %endif
707 %{_libdir}/frr/modules/zebra_cumulus_mlag.so
708 %{_libdir}/frr/modules/dplane_fpm_nl.so
709 %{_libdir}/frr/modules/zebra_irdp.so
710 %{_libdir}/frr/modules/bgpd_bmp.so
711 %{_bindir}/*
712 %config(noreplace) %{configdir}/[!v]*.conf*
713 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
714 %if "%{initsystem}" == "systemd"
715 %{_unitdir}/frr.service
716 %else
717 %{_initddir}/frr
718 %endif
719 %config(noreplace) %{_sysconfdir}/pam.d/frr
720 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
721 %{_sbindir}/frr-reload
722 %{_sbindir}/frrcommon.sh
723 %{_sbindir}/frrinit.sh
724 %{_sbindir}/watchfrr.sh
725
726
727 %files contrib
728 %doc tools
729
730
731 %files pythontools
732 %{_sbindir}/generate_support_bundle.py
733 %{_sbindir}/frr-reload.py
734 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
735 %{_sbindir}/__pycache__/*
736 %else
737 %{_sbindir}/generate_support_bundle.pyc
738 %{_sbindir}/generate_support_bundle.pyo
739 %{_sbindir}/frr-reload.pyc
740 %{_sbindir}/frr-reload.pyo
741 %endif
742
743
744 %post rpki-rtrlib
745 # add rpki module to daemons
746 sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{_sysconfdir}/frr/daemons
747
748 %postun rpki-rtrlib
749 # remove rpki module from daemons
750 sed -i 's/ -M rpki//' %{_sysconfdir}/frr/daemons
751
752 %files rpki-rtrlib
753 %{_libdir}/frr/modules/bgpd_rpki.so
754
755
756 %files snmp
757 %{_libdir}/libfrrsnmp.so*
758 %{_libdir}/frr/modules/*snmp.so
759
760
761 %files devel
762 %{_libdir}/lib*.so
763 %dir %{_includedir}/%{name}
764 %{_includedir}/%{name}/*.h
765 %dir %{_includedir}/%{name}/ospfd
766 %{_includedir}/%{name}/ospfd/*.h
767 %if %{with_bfdd}
768 %dir %{_includedir}/%{name}/bfdd
769 %{_includedir}/%{name}/bfdd/bfddp_packet.h
770 %endif
771 %if %{with_ospfapi}
772 %dir %{_includedir}/%{name}/ospfapi
773 %{_includedir}/%{name}/ospfapi/*.h
774 %endif
775 %if %{with_eigrpd}
776 %dir %{_includedir}/%{name}/eigrpd
777 %{_includedir}/%{name}/eigrpd/*.h
778 %endif
779
780
781 %changelog
782 * Fri Oct 30 2020 Martin Winter <mwinter@opensourcerouting.org> - %{version}
783 - Moved RPKI to subpackage
784 - Added SNMP subpackage
785
786 * Tue Jun 30 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.4
787 - BGPd
788 - Use sequence numbers for community lists
789 - Fixes to nexthop groups
790 - Add feature to limit outgoing number of routes
791 - Per Neighbor Graceful Restart
792 - Multiple Graceful Restart fixes
793 - Support sub-Type-4 and sub-Type-5 for the VPNv4 SRv6 backend
794 - rfc7606 support: treat certain malformed routes as withdraw
795 - allow origin override for route aggregates
796 - rfc6608 support: Subcodes for BGP Finite State Machine Error
797 - rfc7607 support: Codification of AS 0 Processing
798 - rfc6286 support: Autonomous-System-Wide Unique BGP Identifier for BGP-4
799 - Unequal cost multipath (a.ka. weighted ECMP) with BGP link-bandwidth
800 - Enable rfc8212 by default except datacenter profile
801 - staticd
802 - Add debug support
803 - vtysh
804 - Add copy command to copy config from file into running config
805 - LDPd
806 - adding support for LDP ordered label distribution control
807 - ISISd
808 - IS-IS Segment Routing support
809 - SHARPd
810 - add initial support to add/remove lsps
811 - Zebra
812 - fix broadcast address in IPv4 networks with /31 mask
813 - Add Graceful Restart support for Protocol Daemon restarts
814 - lib
815 - migrate route-maps to use northbound interface
816 - plus countless bug fixes and other improvements
817
818 * Mon Jun 15 2020 Sascha Kattelmann <sascha@netdef.org>
819 - Add Pathd support
820
821 * Wed May 06 2020 David Lamparter <equinox@opensourcerouting.org> - 7.3.1
822 - upstream 7.3.1
823
824 * Fri Feb 14 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.3
825 - BGPd
826 - EVPN PIP Support
827 - Route Aggregation code speed ups
828 - BGP Vector I/O speed ups
829 - New CLI: `set distance XXX`
830 - New CLI: `aggregate-address A.B.C.D/M route-map WORD`
831 - New CLI: `bgp reject-as-sets`
832 - New CLI: `advertise pip ...`
833 - New CLI: `match evpn rd ASN:NN_OR_IP-ADDRESS:NN`
834 - New CLI: `show bgp l2vpn evpn community|large-community X`
835 - New CLI: `show bgp l2vpn evpn A.B.C.D`
836 - Auto-completion for clear bgp command
837 - Add ability to set tcp socket buffer size
838 - OSPFd
839 - Partial MPLS TE support
840 - PBRd
841 - New CLI: `set vrf unchanged|NAME`
842 - BFDd
843 - VRF Support
844 - New CLI: 'show bfd peers brief'
845 - New CLI: 'clear bfd peer ...'
846 - PIMd
847 - Significant Speedups in accessing Internal Data for higher scale
848 - Support for joining any-source Multicast
849 - Updated CLI: 'show ip pim upstream-join-desired'
850 - New CLI: 'show ip pim channel'
851 - Debug Cleanup
852 - MLAG experimental support
853 - VRRPd
854 - VRF Support
855 - Northbound Conversion- NHRPd
856 - LDPd
857 - vtysh
858 - New CLI: `banner motd line LINE...`
859 - yang
860 - New CLI: `show yang operational-data XPATH`
861 - New CLI: `debug northbound`
862 - Zebra
863 - Nexthop Group support
864 - New CLI: 'debug zebra nexthop [detail]'
865 - New CLI: 'show router-id'
866 - MLAG experimental support
867 - watchfrr
868 - Additional status messages of system state to systemd
869 - New CLI: `watchfrr ignore DAEMON`
870 - Others
871 - As always all daemons have received too many bug fixes to fully list
872 - There has been a significant focus on increasing test coverage
873 - Change in Behavior:
874 - ISISd
875 - All areas created default automatically to level-1-2
876 - Zebra
877 - Nexthop Group Installation in Kernel is turned on by default
878 if the kernel supports- New CLI: 'show nexthop-group rib [singleton]'
879 - Man Pages
880 - Renamed to frr-* to remove collision with other packages
881
882 * Fri Jan 17 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.2.1
883 - BGPd
884 - Fix Addpath issue
885 - Do not apply eBGP policy for iBGP peers
886 - Show `ip` and `fqdn` in json output for `show [ip] bgp <route> json`
887 - Fix large route-distinguisher's format
888 - Fix `no bgp listen range ...` configuration command
889 - Autocomplete neighbor for clear bgp
890 - Reflect the distance in RIB when it is changed for an arbitrary afi/safi
891 - Notify "Peer De-configured" after entering 'no neighbor <neighbor> cmd
892 - Fix per afi/safi addpath peer counting
893 - Rework BGP dampening to be per AFI/SAFI
894 - Do not send next-hop as :: in MP_REACH_NLRI if no link-local exists
895 - Override peer's TTL only if peer-group is configured with TTL
896 - Remove error message for unkown afi/safi combination
897 - Keep the session down if maximum-prefix is reached
898 - OSPFd
899 - Fix BFD down not tearing down OSPF adjacency for point-to-point net
900 - BFDd
901 - Fix multiple VRF handling
902 - VRF security improvement
903 - PIMd
904 - Fix rp crash
905 - NHRPd
906 - Make sure `no ip nhrp map <something>` works as expected
907 - LDPd
908 - Add missing sanity check in the parsing of label messages
909 - Zebra
910 - Use correct state when installing evpn macs
911 - Capture dplane plugin flags
912 - lib
913 - Fix interface config when vrf changes
914 - Fix Interface Infinite Loop Walk (for special interfaces such as bond)
915 - snapcraft
916 - fix missing vrrpd daemon
917 - Others
918 - Rename man pages (to avoid conflicts with other packages)
919 - Various other fixes for code cleanup and memory leaks
920
921 * Fri Dec 27 2019 Donatas Abraitis <donatas.abraitis@gmail.com>
922 - Add CentOS 8 support
923
924 * Tue Oct 15 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.2
925 - ALL Daemons
926 - -N <namespace> to allow for config file locating when running FRR inside
927 of a namespace
928 - Impoved Testing across all daemons
929 - BFD
930 - VRF Support
931 - Conversion to Northbound interface
932 - BGP
933 - Aggregate-address add route-map support
934 - BMP Support
935 - Improved JSON output for many commands
936 - `show bgp afi safi summary failed` command
937 - `clear bop *` clears all peers
938 - Show FQDN for `show bgp ipv4 uni` commands
939 - Display BestPath selection reason as part of show commands
940 - EIGRP
941 - Infrastructure changes to allow VRF's
942 - SIGHUP signals the config reload
943 - Conversion to Northbound interface
944 - ISIS
945 - BFD Support
946 - Support for circuits with MTU > 8192
947 - PBRD
948 - fwmark support as part of match criteria
949 - autocompletion of PBRMAPS
950 - Improved Nexthop Support
951 - PIMD
952 - PIM-BSM receive support
953 - Improved debugging support
954 - Store ECMP paths that are not currently legal for use
955 - Disallow igmp query from a non-connected source
956 - Many new cli improvements and changes
957 - VRRPD
958 - Add Support for RFC 3768 and RFC 5798
959 - Route-Maps
960 - Add sequence numbers to access-lists
961 - Add `match ip next-hop type blackhole`
962 - Improved ability to notice dependency changes
963 - SHARPD
964 - `sharp watch [import|nexthop]` you can now specify a prefix instead
965 of assuming a /32
966 - STATICD
967 - Significantly Improved NHT
968 - ZEBRA
969 - Many dataplane improvements for routes, neighbor table and EVPN
970 - NHT cli can now be specified per VRF and improved ability to control
971 NHT data being shown
972 - Removed duplicate processing of routes
973 - Improved debugablility
974 - RMAC and VxLan support for the FPM
975 - LIB
976 - RCU support
977 - Nexthop Group Improvements
978 - `log-filter WORD` added
979 - Building
980 - openssl support
981 - libcap should be used as part of build or significant slowdowns
982 will be experienced
983 - Lua builds have been fixed
984 - Improved Cross building
985
986 * Mon Jun 17 2019 David Lamparter <equinox@opensourcerouting.org> - 7.1
987 - gRPC northbound plugin
988 - "table NNN" removed from zebra
989 - more dataplane MT work
990 - EVPN in non-default VRFs
991 - RFC 8212 (default deny policy for eBGP)
992 - RFC 8106 (IPv6 RA DNS options)
993
994 * Wed May 8 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0.1
995 - bgp:
996 - Don't send Updates with BGP Max-Prefix Overflow
997 - Make sure `next-hop-self all` backward compatible with force
998 - Fix as-path validation in "show bgp regexp"
999 - Fix interface-based peers to override peergroups
1000 - Fix removing private AS numbers if local-as is used
1001 - Fix show bgp labeled_unicast
1002 - Add command to lookup prefixes in rpki table
1003 - Fix peer count in "show bgp ipv6 summary"
1004 - Add missing ipv6 only peer flag action
1005 - Fix address family output in "show bgp [ipv4|ipv6] neighbors"
1006 - Add missing checks for vpnv6 nexthops
1007 - Fix nexthop for ipv6 vpn case
1008 - rip: Fix removal of passive interfaces
1009 - ospf:
1010 - Fix json timer output
1011 - Fix milliseconds in json output
1012 - bfd:
1013 - Fix source port according RFC 5881, Sec 4
1014 - Fix IPv6 link-local peer removal
1015 - Fix interface clean up when deleting interface
1016 - pim: Fix interface clean up when deleting interface
1017 - nhrp: Fix interface clean up when deleting interface
1018 - lib:
1019 - Workaround to get FRR building with libyang 0.x and 1.x
1020 - Fix in priv handling
1021 - Make priv elevation thread-safe
1022 - zebra:
1023 - Pseudowire event recovery
1024 - Fix race condition in label manager
1025 - Fix system routes selection and next-hop tracking
1026 - Set connected route metric based on devaddr metric
1027 - Display metric for connected routes
1028 - Add selected fib details to json output
1029 - Always use replace if installing new route
1030 - watchfrr: Silently ignore declare failures (for backward compatibility)
1031 - RPM packages: Switch to new init script
1032
1033 * Thu Feb 28 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0
1034 - Added libyang dependency: New work for northbound interface based on libyang
1035 - Fabricd: New Daemon based on https://datatracker.ietf.org/doc/draft-white-openfabric/
1036 - various bug fixes and other enhancements
1037
1038 * Sun Oct 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 6.0
1039 - Staticd: New daemon responsible for management of static routes
1040 - ISISd: Implement dst-src routing as per draft-ietf-isis-ipv6-dst-src-routing
1041 - BFDd: new daemon for BFD (Bidrectional Forwarding Detection). Responsible
1042 for notifying link changes to make routing protocols converge faster.
1043 - various bug fixes
1044
1045 * Thu Jul 5 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0.1
1046 - Support Automake 1.16.1
1047 - BGPd: Support for flowspec ICMP, DSCP, packet length, fragment and tcp flags
1048 - BGPd: fix rpki validation for ipv6
1049 - VRF: Workaround for kernel bug on Linux 4.14 and newer
1050 - Zebra: Fix interface based routes from zebra not marked up
1051 - Zebra: Fix large zebra memory usage when redistribute between protocols
1052 - Zebra: Allow route-maps to match on source instance
1053 - BGPd: Backport peer-attr overrides, peer-level enforce-first-as and filtered-routes fix
1054 - BGPd: fix for crash during display of filtered-routes
1055 - BGPd: Actually display labeled unicast routes received
1056 - Label Manager: Fix to work correctly behind a label manager proxy
1057
1058 * Thu Jun 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0
1059 - PIM: Add a Multicast Trace Command draft-ietf-idmr-traceroute-ipm-05
1060 - IS-IS: Implement Three-Way Handshake as per RFC5303
1061 - BGPD: Implement VPN-VRF route leaking per RFC4364.
1062 - BGPD: Implement VRF with NETNS backend
1063 - BGPD: Flowspec
1064 - PBRD: Add a new Policy Based Routing Daemon
1065
1066 * Mon May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org>
1067 - Add BFDd support
1068
1069 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1070 - Fixed RPKI RPM build
1071
1072 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
1073 - Add option to build with RPKI (default: disabled)
1074
1075 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1076 - Adapt to new documentation structure based on Sphinx
1077
1078 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
1079 - Fix script location for watchfrr restart functions in daemon config
1080 - Fix postun script to restart frr during upgrade
1081
1082 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
1083 - added NHRP and EIGRP daemon
1084
1085 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
1086 - new subpackage frr-pythontools with python 2.7 restart script
1087 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
1088 - converted to single frr init script (not per daemon) based on debian init script
1089 - created systemd service file for systemd based systems (which uses init script)
1090 - Various other RPM package fixes for FRR 2.0
1091
1092 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
1093 - Renamed to frr for FRRouting fork of Quagga
1094
1095 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
1096 - remove with_ipv6 conditionals, always build v6
1097 - Fix UTF-8 char in spec changelog
1098 - remove quagga.pam.stack, long deprecated.
1099
1100 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
1101 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
1102 --enable-netlink
1103 - Remove support for old fedora 4/5
1104 - Fix for package nameing
1105 - Fix Weekdays of previous changelogs (bogus dates)
1106 - Add conditional logic to only build tex footnotes with supported texi2html
1107 - Added pimd to files section and fix double listing of /var/lib*/quagga
1108 - Numerous fixes to unify upstart/systemd startup into same spec file
1109 - Only allow use of watchfrr for non-systemd systems. no need with systemd
1110
1111 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
1112 - buildreq updates
1113 - add a default define for with_pimd
1114
1115 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
1116 - Steal some changes from Fedora spec file:
1117 - Add with_rtadv variable
1118 - Test for groups/users with getent before group/user adding
1119 - Readline need not be an explicit prerequisite
1120 - install-info delete should be postun, not preun
1121
1122 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1123 - on package upgrade, implement careful, phased restart logic
1124 - use gcc -rdynamic flag when linking for better backtraces
1125
1126 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1127 - daemonv6_list should contain only IPv6 daemons
1128
1129 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1130 - watchfrr added
1131 - on upgrade, all daemons should be condrestart'ed
1132 - on removal, all daemons should be stopped
1133
1134 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
1135 - Use makeinfo --html to generate quagga.html
1136
1137 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
1138 - Fix with_ipv6 set to 0 build
1139
1140 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
1141 - Update to 0.97.2
1142
1143 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
1144 - Make directories be owned by the packages concerned
1145 - Update logrotate scripts to use correct path to killall and use pid files
1146
1147 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
1148 - Update to 0.97.0
1149
1150 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
1151 - build snmp support by default
1152 - build irdp support
1153 - build with shared libs
1154 - devel subpackage for archives and headers
1155
1156 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
1157 - updated sysconfig files to specify local dir
1158 - added ospf_dump.c crash quick fix patch
1159 - added ospfd persistent interface configuration patch
1160
1161 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
1162 - sync to CVS
1163 - integrate RH sysconfig patch to specify daemon options (RH)
1164 - default to have vty listen only to 127.1 (RH)
1165 - add user with fixed UID/GID (RH)
1166 - create user with shell /sbin/nologin rather than /bin/false (RH)
1167 - stop daemons on uninstall (RH)
1168 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
1169 - isisd added
1170 - cleanup tasks carried out for every daemon
1171
1172 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
1173 - Fix -devel package to include all files
1174 - Sync to 0.96.4
1175
1176 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
1177 - Renamed to Quagga
1178 - Sync to Quagga release 0.96
1179
1180 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
1181 - zebra privileges support
1182
1183 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
1184 - Fix mem leak in 'show thread cpu'
1185 - Ralph Keller's OSPF-API
1186 - Amir: Fix configure.ac for net-snmp
1187
1188 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
1189 - ospfd IOS prefix to interface matching for 'network' statement
1190 - temporary fix for PtP and IPv6
1191 - sync to zebra.org CVS
1192
1193 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
1194 - update to latest cvs
1195 - Yon's "show thread cpu" patch - 17217
1196 - walk up tree - 17218
1197 - ospfd NSSA fixes - 16681
1198 - ospfd nsm fixes - 16824
1199 - ospfd OLSA fixes and new feature - 16823
1200 - KAME and ifindex fixes - 16525
1201 - spec file changes to allow redhat files to be in tree
1202
1203 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
1204 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
1205 - Fixed up some build requirements (patch)
1206 - Added conditional build requirements for vtysh / snmp
1207 - Added conditional to files for _bindir depending on vtysh
1208
1209 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
1210 - update to latest CVS
1211 - add Greg Troxel's md5 buffer copy/dup fix
1212 - add RIPv1 fix
1213 - add Frank's multicast flag fix
1214
1215 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
1216 - update to latest CVS
1217 - timestamped crypt_seqnum patch
1218 - oi->on_write_q fix
1219
1220 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
1221 - update to latest CVS
1222 - add vtysh 'write-config (integrated|daemon)' patch
1223 - always 'make rebuild' in vtysh/ to catch new commands
1224
1225 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
1226 - update to 0.93b
1227
1228 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
1229 - update to latest CVS
1230 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
1231
1232 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
1233 - update to current CVS
1234 - add OSPF point to multipoint patch
1235 - add OSPF bugfixes
1236 - add BGP hash optimisation patch
1237
1238 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
1239 - update to 0.93-pre1 / CVS
1240 - add link state detection support
1241 - add generic PtP and RFC3021 support
1242 - various bug fixes
1243
1244 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
1245 - Fix bug #51336
1246
1247 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
1248 - Use generic initscript strings instead of initscript specific
1249 ( "Starting foo: " -> "Starting $prog:" )
1250
1251 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
1252 - Bump the release when rebuilding into the dist.
1253
1254 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
1255 - built for Powertools
1256
1257 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
1258 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
1259 - Update to 0.91a
1260 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
1261 - Should be quite Red Hat'isque now.