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