]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
135c065b15a59ae459bc990e6be27cbcd1bf8bc5
[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_pim6d: %global with_pim6d 0 }
28 %{!?with_vrrpd: %global with_vrrpd 1 }
29 %{!?with_rtadv: %global with_rtadv 1 }
30 %{!?with_watchfrr: %global with_watchfrr 1 }
31 %{!?with_pathd: %global with_pathd 1 }
32
33 # user and group
34 %{!?frr_user: %global frr_user frr }
35 %{!?vty_group: %global vty_group frrvty }
36
37 # path defines
38 %define configdir %{_sysconfdir}/%{name}
39 %define _sbindir /usr/lib/frr
40 %define zeb_src %{_builddir}/%{name}-%{frrversion}
41 %define zeb_rh_src %{zeb_src}/redhat
42 %define zeb_docs %{zeb_src}/doc
43 %define frr_tools %{zeb_src}/tools
44
45 # defines for configure
46 %define rundir %{_localstatedir}/run/%{name}
47
48 ############################################################################
49
50 #### Version String tweak
51 # Remove invalid characters form version string and replace with _
52 %{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
53 %define frrversion @VERSION@
54
55 #### Check for systemd or init.d (upstart)
56 # Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
57 %if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210
58 %global initsystem systemd
59 %else
60 %if 0%{?rhel} && 0%{?rhel} < 7
61 %global initsystem upstart
62 %else
63 %{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)}
64 %endif
65 %endif
66
67 # Check for python version - use python2.7 on CentOS 6, otherwise python3
68 %if 0%{?rhel} && 0%{?rhel} < 7
69 %global use_python2 1
70 %else
71 %global use_python2 0
72 %endif
73
74 # If init system is systemd, then always enable watchfrr
75 %if "%{initsystem}" == "systemd"
76 %global with_watchfrr 1
77 %endif
78
79 #### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
80 #### Always disable it on these old systems unconditionally
81 #
82 # if CentOS / RedHat and version < 7, then disable PIMd (too old, won't work)
83 %if 0%{?rhel} && 0%{?rhel} < 7
84 %global with_pimd 0
85 %global with_pim6d 0
86 %endif
87
88 # misc internal defines
89 %{!?frr_uid: %global frr_uid 92 }
90 %{!?frr_gid: %global frr_gid 92 }
91 %{!?vty_gid: %global vty_gid 85 }
92
93 %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd fabricd pathd
94
95 %if %{with_ldpd}
96 %define daemon_ldpd ldpd
97 %else
98 %define daemon_ldpd ""
99 %endif
100
101 %if %{with_pimd}
102 %define daemon_pimd pimd
103 %else
104 %define daemon_pimd ""
105 %endif
106
107 %if %{with_pim6d}
108 %define daemon_pim6d pim6d
109 %else
110 %define daemon_pim6d ""
111 %endif
112
113 %if %{with_pbrd}
114 %define daemon_pbrd pbrd
115 %else
116 %define daemon_pbrd ""
117 %endif
118
119 %if %{with_nhrpd}
120 %define daemon_nhrpd nhrpd
121 %else
122 %define daemon_nhrpd ""
123 %endif
124
125 %if %{with_eigrpd}
126 %define daemon_eigrpd eigrpd
127 %else
128 %define daemon_eigrpd ""
129 %endif
130
131 %if %{with_babeld}
132 %define daemon_babeld babeld
133 %else
134 %define daemon_babeld ""
135 %endif
136
137 %if %{with_vrrpd}
138 %define daemon_vrrpd vrrpd
139 %else
140 %define daemon_vrrpd ""
141 %endif
142
143 %if %{with_watchfrr}
144 %define daemon_watchfrr watchfrr
145 %else
146 %define daemon_watchfrr ""
147 %endif
148
149 %if %{with_bfdd}
150 %define daemon_bfdd bfdd
151 %else
152 %define daemon_bfdd ""
153 %endif
154
155 %if %{with_pathd}
156 %define daemon_pathd pathd
157 %else
158 %define daemon_pathd ""
159 %endif
160
161 %define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_pim6d} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd} %{daemon_vrrpd} %{daemon_pathd}
162
163 #release sub-revision (the two digits after the CONFDATE)
164 %{!?release_rev: %global release_rev 01 }
165
166 Summary: Routing daemon
167 Name: frr
168 Version: %{rpmversion}
169 Release: %{release_rev}%{?dist}
170 License: GPLv2+
171 Group: System Environment/Daemons
172 Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
173 URL: https://www.frrouting.org
174 Requires(pre): shadow-utils
175 Requires(preun): info
176 Requires(post): info
177 BuildRequires: bison >= 2.7
178 BuildRequires: c-ares-devel
179 BuildRequires: flex
180 BuildRequires: gcc
181 BuildRequires: json-c-devel
182 BuildRequires: libcap-devel
183 BuildRequires: make
184 BuildRequires: ncurses-devel
185 BuildRequires: readline-devel
186 BuildRequires: texinfo
187 BuildRequires: libyang2-devel
188 %if 0%{?rhel} && 0%{?rhel} < 7
189 #python27-devel is available from ius community repo for RedHat/CentOS 6
190 BuildRequires: python27-devel
191 BuildRequires: python27-sphinx
192 %else
193 %if %{use_python2}
194 BuildRequires: python-devel >= 2.7
195 BuildRequires: python-sphinx
196 %else
197 BuildRequires: python3-devel
198 BuildRequires: python3-sphinx
199 %endif
200 %endif
201 %if 0%{?rhel} > 7
202 #platform-python-devel is needed for /usr/bin/pathfix.py
203 BuildRequires: platform-python-devel
204 %endif
205 Requires: initscripts
206 %if %{with_pam}
207 BuildRequires: pam-devel
208 %endif
209 %if "%{initsystem}" == "systemd"
210 BuildRequires: systemd
211 BuildRequires: systemd-devel
212 Requires(post): systemd
213 Requires(preun): systemd
214 Requires(postun): systemd
215 %else
216 Requires(post): chkconfig
217 Requires(preun): chkconfig
218 # Initscripts > 5.60 is required for IPv6 support
219 Requires(pre): initscripts >= 5.60
220 %endif
221 Provides: routingdaemon = %{version}-%{release}
222 Obsoletes: gated mrt zebra frr-sysvinit
223 Conflicts: bird
224
225
226 %description
227 FRRouting is a free software that manages TCP/IP based routing
228 protocol. It takes multi-server and multi-thread approach to resolve
229 the current complexity of the Internet.
230
231 FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
232 NHRP, Babel, PBR, EIGRP and BFD.
233
234 FRRouting is a fork of Quagga.
235
236
237 %package contrib
238 Summary: contrib tools for frr
239 Group: System Environment/Daemons
240
241 %description contrib
242 Contributed/3rd party tools which may be of use with frr.
243
244
245 %package pythontools
246 Summary: python tools for frr
247 %if 0%{?rhel} && 0%{?rhel} < 7
248 #python27 is available from ius community repo for RedHat/CentOS 6
249 BuildRequires: python27
250 Requires: python27-ipaddress
251 %else
252 %if %{use_python2}
253 BuildRequires: python2
254 Requires: python2-ipaddress
255 %else
256 BuildRequires: python3
257 %endif
258 %endif
259 Group: System Environment/Daemons
260
261 %description pythontools
262 Contributed python 2.7 tools which may be of use with frr.
263
264
265 %package devel
266 Summary: Header and object files for frr development
267 Group: System Environment/Daemons
268 Requires: %{name} = %{version}-%{release}
269
270 %description devel
271 The frr-devel package contains the header and object files necessary for
272 developing OSPF-API and frr applications.
273
274
275 %package rpki-rtrlib
276 Summary: BGP RPKI support (rtrlib)
277 Group: System Environment/Daemons
278 BuildRequires: librtr-devel >= 0.8
279 Requires: %{name} = %{version}-%{release}
280
281 %description rpki-rtrlib
282 Adds RPKI support to FRR's bgpd, allowing validation of BGP routes
283 against cryptographic information stored in WHOIS databases. This is
284 used to prevent hijacking of networks on the wider internet. It is only
285 relevant to internet service providers using their own autonomous system
286 number.
287
288
289 %package snmp
290 Summary: SNMP support
291 Group: System Environment/Daemons
292 BuildRequires: net-snmp-devel
293 Requires: %{name} = %{version}-%{release}
294
295 %description snmp
296 Adds SNMP support to FRR's daemons by attaching to net-snmp's snmpd
297 through the AgentX protocol. Provides read-only access to current
298 routing state through standard SNMP MIBs.
299
300
301 %prep
302 %setup -q -n frr-%{frrversion}
303
304
305 %build
306
307 # For standard gcc verbosity, uncomment these lines:
308 #CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
309 #CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
310
311 # For ultra gcc verbosity, uncomment these lines also:
312 #CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
313 #CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
314 #CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
315 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
316
317 %configure \
318 --sbindir=%{_sbindir} \
319 --sysconfdir=%{configdir} \
320 --localstatedir=%{rundir} \
321 --disable-static \
322 --disable-werror \
323 --enable-irdp \
324 %if %{with_multipath}
325 --enable-multipath=%{with_multipath} \
326 %endif
327 --enable-vtysh \
328 %if %{with_ospfclient}
329 --enable-ospfclient \
330 %else
331 --disable-ospfclient\
332 %endif
333 %if %{with_ospfapi}
334 --enable-ospfapi \
335 %else
336 --disable-ospfapi \
337 %endif
338 %if %{with_rtadv}
339 --enable-rtadv \
340 %else
341 --disable-rtadv \
342 %endif
343 %if %{with_ldpd}
344 --enable-ldpd \
345 %else
346 --disable-ldpd \
347 %endif
348 %if %{with_pimd}
349 --enable-pimd \
350 %else
351 --disable-pimd \
352 %endif
353 %if %{with_pim6d}
354 --enable-pim6d \
355 %else
356 --disable-pim6d \
357 %endif
358 %if %{with_pbrd}
359 --enable-pbrd \
360 %else
361 --disable-pbrd \
362 %endif
363 %if %{with_nhrpd}
364 --enable-nhrpd \
365 %else
366 --disable-nhrpd \
367 %endif
368 %if %{with_eigrpd}
369 --enable-eigrpd \
370 %else
371 --disable-eigrpd \
372 %endif
373 %if %{with_babeld}
374 --enable-babeld \
375 %else
376 --disable-babeld \
377 %endif
378 %if %{with_vrrpd}
379 --enable-vrrpd \
380 %else
381 --disable-vrrpd \
382 %endif
383 %if %{with_pam}
384 --with-libpam \
385 %endif
386 %if 0%{?frr_user:1}
387 --enable-user=%{frr_user} \
388 --enable-group=%{frr_user} \
389 %endif
390 %if 0%{?vty_group:1}
391 --enable-vty-group=%{vty_group} \
392 %endif
393 %if %{with_fpm}
394 --enable-fpm \
395 %else
396 --disable-fpm \
397 %endif
398 %if %{with_watchfrr}
399 --enable-watchfrr \
400 %else
401 --disable-watchfrr \
402 %endif
403 %if %{with_cumulus}
404 --enable-cumulus \
405 %endif
406 %if %{with_bgp_vnc}
407 --enable-bgp-vnc \
408 %else
409 --disable-bgp-vnc \
410 %endif
411 --enable-isisd \
412 %if "%{initsystem}" == "systemd"
413 --enable-systemd \
414 %endif
415 --enable-rpki \
416 %if %{with_bfdd}
417 --enable-bfdd \
418 %else
419 --disable-bfdd \
420 %endif
421 %if %{with_pathd}
422 --enable-pathd \
423 %else
424 --disable-pathd \
425 %endif
426 --enable-snmp
427 # end
428
429 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
430
431 %if %{use_python2}
432 # Change frr-reload.py to use python2.7
433 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/frr-reload.py
434 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/generate_support_bundle.py
435 %else
436 # Change frr-reload.py to use python3
437 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/frr-reload.py
438 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/generate_support_bundle.py
439 %endif
440
441 pushd doc
442 make info
443 popd
444
445
446 %install
447 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
448 %{buildroot}%{_infodir}
449 mkdir -m 0755 -p %{buildroot}%{_localstatedir}/log/frr
450 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
451
452 # Remove this file, as it is uninstalled and causes errors when building on RH9
453 rm -rf %{buildroot}/usr/share/info/dir
454
455 # Remove debian init script if it was installed
456 rm -f %{buildroot}%{_sbindir}/frr
457
458 # kill bogus libtool files
459 rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
460 rm -vf %{buildroot}%{_libdir}/*.la
461 rm -vf %{buildroot}%{_libdir}/frr/libyang_plugins/*.la
462
463 # install /etc sources
464 %if "%{initsystem}" == "systemd"
465 mkdir -p %{buildroot}%{_unitdir}
466 install -m644 %{zeb_src}/tools/frr.service %{buildroot}%{_unitdir}/frr.service
467 %else
468 mkdir -p %{buildroot}%{_initddir}
469 ln -s %{_sbindir}/frrinit.sh %{buildroot}%{_initddir}/frr
470 %endif
471
472 install %{zeb_src}/tools/etc/frr/daemons %{buildroot}%{_sysconfdir}/frr
473 install %{zeb_src}/tools/etc/frr/frr.conf %{buildroot}%{_sysconfdir}/frr/frr.conf.template
474 install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
475 install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
476 install -d -m750 %{buildroot}%{rundir}
477
478 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
479 # avoid `ERROR: ambiguous python shebang in` errors
480 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}/usr/lib/frr/*.py
481 %py_byte_compile %{__python3} %{buildroot}/usr/lib/frr/*.py
482 %else
483 # remove ospfclient.py (if present) as it requires > python36
484 rm -f %{buildroot}%{_sbindir}/ospfclient.py
485 %endif
486
487 %pre
488 # add vty_group
489 %if 0%{?vty_group:1}
490 getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
491 %endif
492
493 # add frr user and group
494 %if 0%{?frr_user:1}
495 # Ensure that frr_gid gets correctly allocated
496 getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
497 getent passwd %{frr_user} >/dev/null || \
498 useradd -r -u %{frr_uid} -g %{frr_user} \
499 -s /sbin/nologin -c "FRRouting suite" \
500 -d %{rundir} %{frr_user}
501
502 %if 0%{?vty_group:1}
503 usermod -a -G %{vty_group} %{frr_user}
504 %endif
505 %endif
506 exit 0
507
508
509 %post
510 # zebra_spec_add_service <service name> <port/proto> <comment>
511 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
512
513 zebra_spec_add_service ()
514 {
515 # Add port /etc/services entry if it isn't already there
516 if [ -f %{_sysconfdir}/services ] && \
517 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services 2>/dev/null | %__grep -wq $1 ; then
518 echo "$1 $2 # $3" >> %{_sysconfdir}/services
519 fi
520 }
521
522 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
523 zebra_spec_add_service zebra 2601/tcp "zebra vty"
524 zebra_spec_add_service staticd 2616/tcp "staticd vty"
525 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
526 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
527 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
528 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
529 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
530 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
531 %if %{with_ospfapi}
532 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
533 %endif
534 %if %{with_babeld}
535 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
536 %endif
537 %if %{with_nhrpd}
538 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
539 %endif
540 %if %{with_pimd}
541 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
542 %endif
543 %if %{with_pbrd}
544 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
545 %endif
546 %if %{with_ldpd}
547 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
548 %endif
549 %if %{with_eigrpd}
550 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
551 %endif
552 %if %{with_bfdd}
553 zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
554 %endif
555 zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
556 %if %{with_vrrpd}
557 zebra_spec_add_service vrrpd 2619/tcp "VRRPd vty"
558 %endif
559 %if %{with_pathd}
560 zebra_spec_add_service pathd 2620/tcp "Pathd vty"
561 %endif
562
563 %if "%{initsystem}" == "systemd"
564 for daemon in %all_daemons ; do
565 %systemd_post frr.service
566 done
567 %else
568 /sbin/chkconfig --add frr
569 %endif
570
571 # Fix bad path in previous config files
572 # Config files won't get replaced by default, so we do this ugly hack to fix it
573 %__sed -i 's|watchfrr_options=|#watchfrr_options=|g' %{configdir}/daemons 2> /dev/null || true
574
575 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
576 # we install or upgrade to a frr built with systemd
577 %if "%{initsystem}" == "systemd"
578 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
579 %endif
580
581 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
582
583 # Create dummy config file if they don't exist so basic functions can be used.
584 if [ ! -e %{configdir}/frr.conf ] && [ ! -e %{configdir}/zebra.conf ]; then
585 # No frr.conf and per daemon configs exist
586 mv %{configdir}/frr.conf.template %{configdir}/frr.conf
587 %if 0%{?frr_user:1}
588 chown %{frr_user}:%{frr_user} %{configdir}/frr.conf
589 %endif
590 chmod 640 %{configdir}/frr.conf
591 fi
592 %if 0%{?frr_user:1}
593 chown %{frr_user}:%{frr_user} %{configdir}/daemons
594 %endif
595
596 %if %{with_watchfrr}
597 # No config for watchfrr - this is part of /etc/sysconfig/frr
598 rm -f %{configdir}/watchfrr.*
599 %endif
600
601 if [ ! -e %{configdir}/vtysh.conf ]; then
602 touch %{configdir}/vtysh.conf
603 chmod 640 %{configdir}/vtysh.conf
604 %if 0%{?frr_user:1}
605 %if 0%{?vty_group:1}
606 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
607 %endif
608 %endif
609 fi
610
611
612 %postun
613 if [ "$1" -ge 1 ]; then
614 #
615 # Upgrade from older version
616 #
617 %if "%{initsystem}" == "systemd"
618 ##
619 ## Systemd Version
620 ##
621 %systemd_postun_with_restart frr.service
622 %else
623 ##
624 ## init.d Version
625 ##
626 service frr restart >/dev/null 2>&1
627 %endif
628 :
629 fi
630
631
632 %preun
633 %if "%{initsystem}" == "systemd"
634 ##
635 ## Systemd Version
636 ##
637 if [ $1 -eq 0 ] ; then
638 %systemd_preun frr.service
639 fi
640 %else
641 ##
642 ## init.d Version
643 ##
644 if [ $1 -eq 0 ] ; then
645 service frr stop >/dev/null 2>&1
646 /sbin/chkconfig --del frr
647 fi
648 %endif
649 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
650
651
652 %files
653 %doc COPYING
654 %doc doc/mpls
655 %doc README.md
656 /usr/share/yang/*.yang
657 %if 0%{?frr_user:1}
658 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
659 %dir %attr(755,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
660 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
661 %else
662 %dir %attr(750,root,root) %{configdir}
663 %dir %attr(755,root,root) %{_localstatedir}/log/frr
664 %dir %attr(750,root,root) %{rundir}
665 %endif
666 %{_infodir}/frr.info.gz
667 %{_mandir}/man*/*
668 %{_sbindir}/zebra
669 %{_sbindir}/staticd
670 %{_sbindir}/ospfd
671 %{_sbindir}/ripd
672 %{_sbindir}/bgpd
673 %exclude %{_sbindir}/ssd
674 %if %{with_watchfrr}
675 %{_sbindir}/watchfrr
676 %endif
677 %{_sbindir}/ripngd
678 %{_sbindir}/ospf6d
679 %if %{with_pimd}
680 %{_sbindir}/pimd
681 %endif
682 %if %{with_pim6d}
683 %{_sbindir}/pim6d
684 %endif
685 %if %{with_pbrd}
686 %{_sbindir}/pbrd
687 %endif
688 %if %{with_vrrpd}
689 %{_sbindir}/vrrpd
690 %endif
691 %{_sbindir}/isisd
692 %{_sbindir}/fabricd
693 %if %{with_ldpd}
694 %{_sbindir}/ldpd
695 %endif
696 %if %{with_eigrpd}
697 %{_sbindir}/eigrpd
698 %endif
699 %if %{with_nhrpd}
700 %{_sbindir}/nhrpd
701 %endif
702 %if %{with_babeld}
703 %{_sbindir}/babeld
704 %endif
705 %if %{with_bfdd}
706 %{_sbindir}/bfdd
707 %endif
708 %if %{with_pathd}
709 %{_sbindir}/pathd
710 %{_libdir}/frr/modules/pathd_pcep.so
711 %endif
712 %{_libdir}/libfrr.so*
713 %{_libdir}/libfrrcares*
714 %{_libdir}/libfrrospf*
715 %if %{with_fpm}
716 %{_libdir}/frr/modules/zebra_fpm.so
717 %endif
718 %{_libdir}/frr/modules/zebra_cumulus_mlag.so
719 %{_libdir}/frr/modules/dplane_fpm_nl.so
720 %{_libdir}/frr/modules/zebra_irdp.so
721 %{_libdir}/frr/modules/bgpd_bmp.so
722 %{_bindir}/*
723 %config(noreplace) %{configdir}/[!v]*.conf*
724 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
725 %if "%{initsystem}" == "systemd"
726 %{_unitdir}/frr.service
727 %else
728 %{_initddir}/frr
729 %endif
730 %config(noreplace) %{_sysconfdir}/pam.d/frr
731 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
732 %{_sbindir}/frr-reload
733 %{_sbindir}/frrcommon.sh
734 %{_sbindir}/frrinit.sh
735 %{_sbindir}/watchfrr.sh
736
737
738 %files contrib
739 %doc tools
740
741 %files pythontools
742 %{_sbindir}/generate_support_bundle.py
743 %{_sbindir}/frr-reload.py
744 %{_sbindir}/frr_babeltrace.py
745 %if %{with_ospfclient} && (0%{?rhel} > 7 || 0%{?fedora} > 29)
746 %{_sbindir}/ospfclient.py
747 %endif
748 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
749 %{_sbindir}/__pycache__/*
750 %else
751 %{_sbindir}/generate_support_bundle.pyc
752 %{_sbindir}/generate_support_bundle.pyo
753 %{_sbindir}/frr-reload.pyc
754 %{_sbindir}/frr-reload.pyo
755 %{_sbindir}/frr_babeltrace.pyc
756 %{_sbindir}/frr_babeltrace.pyo
757 %endif
758
759
760 %post rpki-rtrlib
761 # add rpki module to daemons
762 sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{_sysconfdir}/frr/daemons
763
764 %postun rpki-rtrlib
765 # remove rpki module from daemons
766 sed -i 's/ -M rpki//' %{_sysconfdir}/frr/daemons
767
768 %files rpki-rtrlib
769 %{_libdir}/frr/modules/bgpd_rpki.so
770
771
772 %files snmp
773 %{_libdir}/libfrrsnmp.so*
774 %{_libdir}/frr/modules/*snmp.so
775
776
777 %files devel
778 %{_libdir}/lib*.so
779 %dir %{_includedir}/%{name}
780 %{_includedir}/%{name}/*.h
781 %dir %{_includedir}/%{name}/ospfd
782 %{_includedir}/%{name}/ospfd/*.h
783 %if %{with_bfdd}
784 %dir %{_includedir}/%{name}/bfdd
785 %{_includedir}/%{name}/bfdd/bfddp_packet.h
786 %endif
787 %if %{with_ospfapi}
788 %dir %{_includedir}/%{name}/ospfapi
789 %{_includedir}/%{name}/ospfapi/*.h
790 %endif
791 %if %{with_eigrpd}
792 %dir %{_includedir}/%{name}/eigrpd
793 %{_includedir}/%{name}/eigrpd/*.h
794 %endif
795
796
797 %changelog
798 * Tue Jun 7 2022 Donatas Abraitis <donatas@opensourcerouting.org> - %{version}
799
800 * Tue Mar 1 2022 Jafar Al-Gharaibeh <jafar@atcorp.com> - 8.2
801 - The FRRouting community would like to announce FRR Release 8.2.
802 - This release consists of just over 800 commits from 62 authors.
803 - Selected features and bug fixes are listed below.
804 - babeld:
805 - Fix the checks for truncated packets
806 - bfdd:
807 - Correct one spelling error of comment
808 - Fix detection timeout update
809 - Fix possibly wrong counter of control packets
810 - bgpd:
811 - Add "json" option to a few more show commands
812 - Add 'show bgp <afi> <safi> json detail' header data
813 - Add a 6 hour warning to missing policy
814 - Add an ability to match ipv6 next-hop by prefix-list
815 - Add autocomplete for access-list under bmp node
816 - Add autocomplete for as-path filters
817 - Add autocomplete for set/match community/large/ext lists
818 - Add long-lived graceful restart capability
819 - Add peer-groups to neighbor autocomplete
820 - Adjust symbolic names for cease notifications according to rfc4486
821 - Deprecate dpa, advertiser and rcid_path path attributes
822 - Extended bgp administrative shutdown communication
823 - Fix crash when using "show bgp vrf all"
824 - Fix inconsistency of match ip/ipv6 next-hop commands
825 - Fix missing name of default vrf
826 - Handle TCP connection errors with connection callbacks for RPKI
827 - Implement llgr helper mode
828 - Implement rfc9072
829 - Support redirect import more than one route-target ipv6
830 - docker:
831 - Update alpine build enable set own version
832 - isisd:
833 - Add link state traffic engineering support
834 - Fix router capability tlv parsing issues
835 - Fix running-config for fast-reroute
836 - Make isis work with default vrf name different than 'default'
837 - ospf6d
838 - Add missing vrf parameter to "clear ipv6 ospf6 interface"
839 - Add prompt for commands with non-exist vrf
840 - Add support for nssa type-7 address ranges
841 - Add the ability of specifying router-id/area-id in no debug ospf6
842 - Do not originate type-4 lsa when nssa
843 - Do not send type-5 into stub area
844 - Fix ecmp inter-area route nexthop update
845 - Fix memory leak for `show ipv6 ospf6 zebra json`
846 - ospfd
847 - Fix wrong comparison of routemap name
848 - Fix crash on "ospf send-extra-data zebra"
849 - Fix incorrect detection of topology changes in helper mode
850 - Fix loss of mixed form in "range" command
851 - Fix no-form of "graceful-restart" command
852 - Fix summary-address deletion
853 - Fix wrong parsing of te subtlv
854 - pbrd
855 - Add vlan actions to vty
856 - Pbr route maps get addr family of nhgs
857 - Protect from a possible null dereference
858 - pimd
859 - Do not allow 224.0.0.0/24 range in igmp join
860 - Fix igmp user config
861 - Fix msdp mesh grp with wildcard member addr
862 - Fix stale forwarding entries left around after join goes away
863 - Fix FRR drops IGMP packets for TOS value other than 0XC0
864 - redhat
865 - Check if frr.conf already exists
866 - Logrotate file has typo for staticd
867 - ripd
868 - Fix packet send for non primary addresses
869 - vtysh
870 - Add missing rpki node when showing config
871 - Improve startup time by ca. Ă—6
872 - remove `address-family evpn`
873 - watchfrr
874 - Allow an integrated config to work within a namespace
875 - zebra
876 - Add optional nhg id output to `show ip ro`
877 - Add resolver flag for nexthop in json
878 - Add support for json output in srv6 locator detail command
879 - Don't lose next hop weights while exporting via fpm
880 - Fix buffer overflow
881 - Fix netns deletion
882 - Fix route-map application when when using vrfs
883
884 * Tue Nov 2 2021 Jafar Al-Gharaibeh <jafar@atcorp.com> - 8.1
885 - FRR 8.1 brings a long list of enhancements and fixes with 1200 commits from
886 - 75 developers. Thanks to all contributers.
887 - New Features:
888 - Lua hooks are now feature complete, with one hook available for use (http://docs.frrouting.org/en/latest/scripting.html)
889 - Improvements to SRv6 (Segment Routing over IPv6) (http://docs.frrouting.org/en/latest/zebra.html#segment-routing-ipv6)
890 - Improvements to Prefix-SID (Type 5)
891 - EVPN route type-5 gateway IP overlay Index (http://docs.frrouting.org/en/latest/bgp.html#evpn-overlay-index-gateway-ip)
892 - OSPFv3 NSSA and NSSA totally stub areas (http://docs.frrouting.org/en/latest/ospf6d.html#ospf6-area)
893 - OSPFv3 ASBR summarization (http://docs.frrouting.org/en/latest/ospf6d.html#asbr-summarisation-support-in-ospfv3)
894 - OSPFv3 Graceful Restart (http://docs.frrouting.org/en/latest/ospf6d.html#graceful-restart)
895 - OSPFv2 Graceful Restart (restarting mode added, helper was already implemented) (http://docs.frrouting.org/en/latest/ospfd.html#graceful-restart)
896 - Behavior Changes
897 - Every node in running config now has an explicit "exit" tag
898 - Link bandwidth in BGP is now correctly encoded according to IEEE 754. To stay with old incorrect encoding use:
899 - `neighbor PEER disable-link-bw-encoding-ieee`
900 - Changelog
901 - alpine:
902 Fix path for daemons file install
903 - BGP:
904 - Add "json" option to "show bgp as-path-access-list"
905 - Add `disable-addpath-rx` knob
906 - Add an ability to set extcommunity to none in route-maps
907 - Add counter of displayed show bgp summary when filtering
908 - Add knob to config cond-adv scanner period
909 - Add route-map `match alias` command
910 - Add rpki source address configuration
911 - Add show bgp summary filter by neighbor or as
912 - Add terse display option on show bgp summary
913 - Allow for auto-completion of community alias's created
914 - Bgp knob to teardown session immediately when peer is unreachable
915 - Expand 'bgp default <afi>-<safi>' cmds
916 - Extend evpn next hop tracking to type-1 and type-4 routes
917 - Fix "no router bgp x vrf default"
918 - Flowspec redirect vrf uses vrf table instead of allocated table id
919 - Handle quick flaps of an evpn prefix properly
920 - Initial batch of evpn lttng tracepoints
921 - Limit processing to what is needed in rpki validation
922 - Modify vrf/view display in show bgp summary
923 - Set 4096 instead of 65535 as new max packet size for a new peer
924 - Set extended msg size only if we advertised and received capability
925 - Show bgp community alias in json community list output
926 - Show bgp prefixes by community alias
927 - Show max packet size per update-group
928 - Split soft reconfigure table task into several jobs to not block vtysh
929 - Store distance received from a redistribute statement
930 - Update route-type-1 legend to match output
931 - ISIS:
932 - Fix sending of lsp with null seqno
933 - lib:
934 - Add "json" option to "show ip[v6] access-list"
935 - Add "json" option to "show ip[v6] prefix-list"
936 - Add "json" option to "show route-map"
937 - Prevent grpc assert on missing yang node
938 - NHRP:
939 - Clear cache when shortcuts are cleared
940 - Fix corrupt address being shown for shortcuts with no cache entry
941 - Set prefix correctly in resolution request
942 - OSPF6:
943 - Add debug commands for lsa all and route all
944 - Add warning log for late hello packets
945 - Add write-multiplier configuration
946 - Don't update router-id if at least one adjacency is full
947 - Extend the "redistribute" command with more options
948 - Fix issue when displaying the redistribute command
949 - Fix logging of border router routes
950 - Json output for database dump show command
951 - Link state id in lsa database json output
952 - Send lsa update immediately when ospf instance is deleted
953 - OSPF:
954 - Fix crash when creating vlink in unknown vrf
955 - Gr conformance fix for hello packet dr election
956 - Print extra lsa information in some log messages
957 - Rfc conformance test case 25.23 issue fix
958 - Show ip ospf route json does not shown metric and tag
959 - Summary lsa is not originated when process is reset
960 - pathd:
961 - Handle pcinitiated configuration, main thread
962 - Handle pcinitiated messages, thread controller
963 - Handle srp_id correctly
964 - If pce ret no-path to pcreq don't retry pcreq nor delegate
965 - PBR:
966 - Add `match ip-protocol [tcp|udp]`
967 - Add ability to set/unset src and dest ports
968 - Nhg "add" edge case for last in table range
969 - Start inclusion of src and dst ports for pbrd
970 - PIM:
971 - Add tos/ttl check for igmp conformance
972 - Allow join prune intervals to be as small as 5 seconds
973 - Allow msdp group name 'default'
974 - Fix register suppress timer code
975 - Fix uaf/heap corruption in bsm code
976 - Fix command "no ip msdp mesh-group member"
977 - Igmp groups are not getting timeout
978 - Igmp memberships are not querier specific
979 - Igmp sockets need to be iface-bound too
980 - Prevent uninited usage of nexthop
981 - Support msdp global timers configuration
982 - vtysh
983 - Add cli timestamp '-t' flag
984 - Add error code if daemon is not running
985 - Fix searching commands in parent nodes
986 - yang:
987 - Add msdp timer configuration
988 - Fix bgp multicast prefix type
989 - Mark a couple of prefix-list/access-list leafs as mandatory
990 - Move multicast prefix type definition
991 - Replace an empty pattern with a zero-length restriction
992 - Rework pim msdp mesh group
993 - Simplify msdp peer handling
994 - zebra :
995 - Add "json" option to "show interface"
996 - Various improvment to dataplane interface
997 - Add message counts for `show zebra client`
998 - Add nhg id to show ip route json
999 - Add show command for ra interface lists
1000 - Fix ipv4 routes with ipv6 link local next hops install in fpm
1001 - Handle bridge mac address update in evpn contexts
1002 - Move individual lines to table in `show zebra client` command
1003 - Refresh vxlan evpn contexts, when bridge interface goes up
1004 - Update zl3vni when bridge link refreshed in other namespaces
1005
1006 * Wed Jul 21 2021 Martin Winter <mwinter@opensourcerouting.org> - 8.0
1007 - Major changes
1008 - New daemon pathd for segment routing
1009 - EVPN Multihoming is now fully supported
1010 - OSPFv3 now supports VRFs
1011 - TI-LFA has been implemented in IS-IS and OSPF
1012 - Ability for Zebra to dump netlink messages in a human-friendly format
1013 - LDP gained SNMP support
1014 - libyang minimun version is now 2.0
1015 - BABEL:
1016 - Add `distribute-list` commands
1017 - Fix memory leak in connected route handling
1018 - BGP:
1019 - Add support for use of aliases with communities
1020 - Add support of tcp-mss for neighbors
1021 - Add support for EVPN Multihoming
1022 - Add ability to show BGP routes from a particular table version
1023 - Add support for for RFC 8050 (MRT add-path)
1024 - Add SNMP support for MPLS VPN
1025 - Add `show bgp summary wide` command to show more detailed output
1026 on wide terminals
1027 - Add ability for peer-groups to have `ttl-security hops` configured
1028 - Add support for conditional Advertisement
1029 - Add support for RFC 4271 Delay Open Timer
1030 - Add a knob to not advertise until route is installed in fib
1031 - Add BGP-wide configuration for graceful shutdown
1032 - Add support for RFC 8654 extended messages
1033 - Improve RPKI reporting as well as new show commands
1034 - Improve handling of VRF route leaking
1035 - Improve scaling behavior for dynamic neighbors
1036 - Improve LL nexthop tracking to be interface based
1037 - Improve route reachability handling with respect to blackhole routes
1038 - Improve SNMP traps to RFC 4273 notifications
1039 - Improve EVPN routes to use L3 NHG's where applicable
1040 - Improvements to EVPN
1041 - Improvements to update behavior
1042 - Fix various issues with connection resolution
1043 - Fix statistics commands in some situations
1044 - Fix non-determistic locally-originated paths in bestpath selection
1045 - Continue working on transitioning to YANG/Northbound configuration
1046 - Various bug fixes and performance improvements
1047 - EIGRP:
1048 - Add `distribute-list` commands
1049 - Ensure received AS number is the same as ours in all situations
1050 - Properly validate TLV lengths in some situations
1051 - IS-IS:
1052 - Add ldb-sync functionality
1053 - Add TI-LFA functionality
1054 - Add support for Anycast-SID's
1055 - Add support for classic LFA RFC 5286
1056 - Add `show isis fast-reroute summary` command
1057 - Add support for Remote LFA RFC 7490
1058 - Fix Attach-bit processing in some scenarios
1059 - Cleanup BFD integration
1060 - Various bug fixes and performance improvements
1061 - LDP:
1062 - Add SNMP support
1063 - Support for LDP IGP Synchronization
1064 - Support for RLFA clients
1065 - Various bug fixes and performance improvements
1066 - LIBFRR:
1067 - Various bugfixes and performance improvements
1068 - NHRP:
1069 - Add `nhrp multicast-nflog-group (1-65535)` command
1070 - Add configuration options for vici socket path
1071 - Add support for forwarding multicast packets
1072 - Fix handling of MTU
1073 - Fix handling of NAT extension
1074 - Retry IPsec under some conditions
1075 - OSPFv2:
1076 - Add OSPF GR helper support
1077 - Add JSON support for various commands
1078 - Add `summary-address A.B.C.D/M ...` commands
1079 - Add `area X nssa suppress-fa` command
1080 - Add support for TI-LFA
1081 - Add support for BFD profiles
1082 - Add support for Traffic Engineering database
1083 - Add support for usage of DMPVPN with OSPF
1084 - Add `clear ip ospf neighbor` commands
1085 - Add YANG support for route-maps
1086 - Improvements to SNMP
1087 - Fixes for type 5 and type 7 LSA handling
1088 - Various bug fixes and performance improvements
1089 - OSPFv3:
1090 - Add support for VRFs
1091 - Add JSON support to a bunch of commands
1092 - Add ability to control maximum paths for routes
1093 - Add `show ipv6 ospf6 vrfs` command
1094 - Add support for BFD profiles
1095 - Fix to not send hellos on loopbacks
1096 - Cleanup area handling around interfaces
1097 - YANG support for route-maps
1098 - Various bug fixes and performance improvements
1099 - OSPFCLIENT:
1100 - Cleanup trust of user input
1101 - PATHd:
1102 - Add support of SR-TE policy management daemon
1103 - Add optional support for PCEP to pathd
1104 - Integrate PCEP-LIB into FRR
1105 - PBR:
1106 - Add `set installable` nhg command
1107 - Improve interface up/down event handling
1108 - PIM:
1109 - Add YANG integration
1110 - Add JSON support to various commands
1111 - Add BFD profile support
1112 - Fixes to IGMP conformance
1113 - Fixes to behavior surrounding Prune and Prune-pending
1114 - Various bug fixes and performance improvements
1115 - RIPNG:
1116 - Fix interface wakeup after shutdown
1117 - SHARP:
1118 - Add ability to use Nexthop Groups
1119 - Add v4 redistribute watching
1120 - Add TED support
1121 - Various bug fixes
1122 - STATIC:
1123 - Fix nexthop handling in some situations
1124 - Forbid blackhole and non-blackhole nexthops in a single route
1125 - VRRP:
1126 - printf formatting cleanups
1127 - VTYSH:
1128 - Add a `show history` command
1129 - Add `show memory <daemon>` support
1130 - Start deprecation cycle for `address-family evpn`
1131 - Display version with --help
1132 - Various bug fixes
1133 - WATCHFRR:
1134 - Fix some crashes
1135 - ZEBRA:
1136 - Add JSON support to various commands
1137 - Add Human readable netlink dumps
1138 - Add L2 NHG support
1139 - Add support for LSPs to FPM dataplane
1140 - Add ability for other protocol daemons to install nexthop groups into the kernel
1141 - Add YANG support for route-maps
1142 - Improve scale performance when handling a large number of VRF's
1143 - Improve network namespace handling
1144 - Improve asic-offload handling
1145 - Improve FreeBSD interface and route handling
1146 - Improve handling of neighbors in kernel dataplane plugin
1147 - Improve label manager
1148 - Improve route-map processing
1149 - Improve debug-ability of routes and VRFs
1150 - Improve FPM dataplane plugin
1151 - Improve handling of reachability / nexthop tracking on shutdown interfaces
1152 - Improve EVPN support
1153 - Fix startup handling of `set src X`
1154 - Various bug fixes and performance improvements
1155
1156 * Wed Mar 3 2021 Martin Winter <mwinter@opensourcerouting.org> - 7.5.1
1157 - BABEL:
1158 - Fix connected route leak on change
1159 - BFD:
1160 - Session lookup was sometimes wrong
1161 - Memory leak and handling cleanups
1162 - In some situations handle vrf appropriately when receiving packets
1163 - BGP:
1164 - Peer Group Inheritance Fixes
1165 - Dissallow attempt to peer peers reachable via blackholes
1166 - Send BMP down message when reachability fails
1167 - Cleanup handling of aggregator data when the AGG AS is 0
1168 - Handle `neighbor <peer-group allowas-in` config changes properly
1169 - Properly parse community and lcommunity values in some circumstances
1170 - Allow peer-groups to configure `ttl-security hops`
1171 - Prevent v6 routes with v4 nexthops from being installed
1172 - Allow `default-originate` to be cleared from a peer group
1173 - Fix evpn route-map vni filter at origin
1174 - local routes were using non-default distance
1175 - Properly track if the nexthop was updated in some circumstances
1176 - Cleanup `show running` when running bgp with `-e X` values
1177 - Various Memory leaks in show commands
1178 - Properly withdraw exported routes when deleting a VRF
1179 - Avoid resetting ebgp-multihop if peer setting is the same as peer-group
1180 - Properly encode flowspec rules to zebra in some rare circumstances
1181 - Generate statistics for routes in bgp when we have exactly 1 route
1182 - Properly apply route-map for the default-originate command
1183 - EIGRP:
1184 - Properly set MTU for eigrp packets sent
1185 - Various memory leaks and using uninited data fixes
1186 - ISIS:
1187 - When last area address is removed, resign if we were the DR
1188 - Various memory leaks and using uninited data fixes
1189 - LDP:
1190 - Various memory leaks and using uninited data fixes
1191 - NHRP:
1192 - Use onlink routes when prefix == nh
1193 - Shortcut routes are installed with proper nexthop
1194 - OSPF:
1195 - Prevent duplicate packet read in multiple vrf situation
1196 - Fix area removal at interface level
1197 - Restore Point to MultiPoint interface types
1198 - Correctly handle MTU change on startup
1199 - Multi Instance initialization sometimes was not successful
1200 - NSSA translate-always was not working properly
1201 - OSPFv3:
1202 - Don't send hellos on loopback interfaces
1203 - Handle ECMP better when a sub-path is removed
1204 - Memory leak and handling fixes
1205 - Fix Link LSA not updating when router priority is modified
1206 - Some output from show commands was wrong
1207 - Intra area remote connected prefixes sometimes not installed
1208 - PBR:
1209 - Various memory leaks and using uninited data fixes
1210 - PIM:
1211 - SGRpt prune received during prune didn't override holdtime
1212 - Various memory leaks and using uninited data fixes
1213 - STATIC:
1214 - Fix VRF and usage on startup in some instances
1215 - Tableid was being mishandled in some cases
1216 - VTYSH:
1217 - Disable bracketed paste in readline.
1218 - WATCHFRR:
1219 - Various memory leaks and using uninited data fixes
1220 - ZEBRA:
1221 - Always install blackhole routes using kernel routes instead of nexthops
1222 - Various memory leaks and using uninited data fixes
1223 - Dissallow resolution to duplicate nexthops that created infinite nexthops
1224 - Apply the route-map delay-timer globally
1225 - Some routes were stuck in Queued state when using the FPM
1226 - Better handle vrf creation when using namespaces
1227 - Set NUD_NOARP on sticky mac entries in addtion to NTF_STICKY
1228 - Allow `set src X` to work on startup
1229 - FRR Library:
1230 - Fix a variety of memory leaks
1231 - Fix VRF Creation in some instances
1232 - RPKI context editing was not properly handled in reload situations
1233 - routemap code was not properly handling modification of CLI in some instances
1234 - SNAPCRAFT:
1235 - Update to using rtrlib 0.7.0
1236 - Fix passthrough path for Libyang 1.x
1237 - ALPINE:
1238 - Remove old docker deps
1239
1240 * Mon Nov 2 2020 Donald Sharp <sharpd@nvidia.com> - 7.5
1241 - BFD
1242 - Profile support
1243 - Minimum ttl support
1244 - BGP
1245 - rpki VRF support
1246 - GR fixes
1247 - Add wide option to display of routes
1248 - Add `maximum-prefix <num> force`
1249 - Add `bestpath-routes` to neighbor command
1250 - Add `bgp shutdown message MSG...` command
1251 - Add v6 Flowspec support
1252 - Add `neighbor <neigh> shutdown rtt` command
1253 - Allow update-delay to be applied globaly
1254 - EVPN
1255 - Beginning of MultiHoming Support
1256 - ISIS
1257 - Segment Routing Support
1258 - VRF Support
1259 - Guard against adj timer display overflow
1260 - Add support for Anycast-SIDs
1261 - Add support for Topology Independent LFA (TI-LFA)
1262 - Add `lsp-gen-interval 2` to isis configuration
1263 - OSPF
1264 - Segment Routing support for ECMP
1265 - Various LSA fixes
1266 - Prevent crash if transferring config amongst instances
1267 - PBR
1268 - Adding json support to commands
1269 - DSCP/ECN based PBR Matching
1270 - PIM
1271 - Add more json support to commands
1272 - Fix missing mesh-group commands
1273 - MSDP SA forwarding
1274 - Clear (s,g,rpt) ifchannel on (*, G) prune received
1275 - Fix igmp querier election and IP address mapping
1276 - Crash fix when RP is removed
1277 - STATIC
1278 - Northbound Support
1279 - YANG
1280 - Filter and route-map Support
1281 - OSPF model definition
1282 - BGP model definition
1283 - VTYSH
1284 - Speed up output across daemons
1285 - Fix build-time errors for some --enable flags
1286 - Speed up output of configuration across daemons
1287 - ZEBRA
1288 - nexthop group support for FPM
1289 - northbound support for rib model
1290 - Backup nexthop support
1291 - netlink batching support
1292 - Allow upper level protocols to request ARP
1293 - Add json output for zebra ES, ES-EVI and access vlan dumps
1294 -
1295 - Upgrade to using libyang1.0.184
1296 -
1297 - RPM
1298 - Moved RPKI to subpackage
1299 - Added SNMP subpackage
1300 -
1301 - As always there are too many bugfixes to list individually. This release
1302 - compromises just over 1k of commits by the community, with contributors from
1303 - 70 people.
1304
1305 * Tue Jun 30 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.4
1306 - BGPd
1307 - Use sequence numbers for community lists
1308 - Fixes to nexthop groups
1309 - Add feature to limit outgoing number of routes
1310 - Per Neighbor Graceful Restart
1311 - Multiple Graceful Restart fixes
1312 - Support sub-Type-4 and sub-Type-5 for the VPNv4 SRv6 backend
1313 - rfc7606 support: treat certain malformed routes as withdraw
1314 - allow origin override for route aggregates
1315 - rfc6608 support: Subcodes for BGP Finite State Machine Error
1316 - rfc7607 support: Codification of AS 0 Processing
1317 - rfc6286 support: Autonomous-System-Wide Unique BGP Identifier for BGP-4
1318 - Unequal cost multipath (a.ka. weighted ECMP) with BGP link-bandwidth
1319 - Enable rfc8212 by default except datacenter profile
1320 - staticd
1321 - Add debug support
1322 - vtysh
1323 - Add copy command to copy config from file into running config
1324 - LDPd
1325 - adding support for LDP ordered label distribution control
1326 - ISISd
1327 - IS-IS Segment Routing support
1328 - SHARPd
1329 - add initial support to add/remove lsps
1330 - Zebra
1331 - fix broadcast address in IPv4 networks with /31 mask
1332 - Add Graceful Restart support for Protocol Daemon restarts
1333 - lib
1334 - migrate route-maps to use northbound interface
1335 - plus countless bug fixes and other improvements
1336
1337 * Mon Jun 15 2020 Sascha Kattelmann <sascha@netdef.org>
1338 - Add Pathd support
1339
1340 * Wed May 06 2020 David Lamparter <equinox@opensourcerouting.org> - 7.3.1
1341 - upstream 7.3.1
1342
1343 * Fri Feb 14 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.3
1344 - BGPd
1345 - EVPN PIP Support
1346 - Route Aggregation code speed ups
1347 - BGP Vector I/O speed ups
1348 - New CLI: `set distance XXX`
1349 - New CLI: `aggregate-address A.B.C.D/M route-map WORD`
1350 - New CLI: `bgp reject-as-sets`
1351 - New CLI: `advertise pip ...`
1352 - New CLI: `match evpn rd ASN:NN_OR_IP-ADDRESS:NN`
1353 - New CLI: `show bgp l2vpn evpn community|large-community X`
1354 - New CLI: `show bgp l2vpn evpn A.B.C.D`
1355 - Auto-completion for clear bgp command
1356 - Add ability to set tcp socket buffer size
1357 - OSPFd
1358 - Partial MPLS TE support
1359 - PBRd
1360 - New CLI: `set vrf unchanged|NAME`
1361 - BFDd
1362 - VRF Support
1363 - New CLI: 'show bfd peers brief'
1364 - New CLI: 'clear bfd peer ...'
1365 - PIMd
1366 - Significant Speedups in accessing Internal Data for higher scale
1367 - Support for joining any-source Multicast
1368 - Updated CLI: 'show ip pim upstream-join-desired'
1369 - New CLI: 'show ip pim channel'
1370 - Debug Cleanup
1371 - MLAG experimental support
1372 - VRRPd
1373 - VRF Support
1374 - Northbound Conversion- NHRPd
1375 - LDPd
1376 - vtysh
1377 - New CLI: `banner motd line LINE...`
1378 - yang
1379 - New CLI: `show yang operational-data XPATH`
1380 - New CLI: `debug northbound`
1381 - Zebra
1382 - Nexthop Group support
1383 - New CLI: 'debug zebra nexthop [detail]'
1384 - New CLI: 'show router-id'
1385 - MLAG experimental support
1386 - watchfrr
1387 - Additional status messages of system state to systemd
1388 - New CLI: `watchfrr ignore DAEMON`
1389 - Others
1390 - As always all daemons have received too many bug fixes to fully list
1391 - There has been a significant focus on increasing test coverage
1392 - Change in Behavior:
1393 - ISISd
1394 - All areas created default automatically to level-1-2
1395 - Zebra
1396 - Nexthop Group Installation in Kernel is turned on by default
1397 if the kernel supports- New CLI: 'show nexthop-group rib [singleton]'
1398 - Man Pages
1399 - Renamed to frr-* to remove collision with other packages
1400
1401 * Fri Jan 17 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.2.1
1402 - BGPd
1403 - Fix Addpath issue
1404 - Do not apply eBGP policy for iBGP peers
1405 - Show `ip` and `fqdn` in json output for `show [ip] bgp <route> json`
1406 - Fix large route-distinguisher's format
1407 - Fix `no bgp listen range ...` configuration command
1408 - Autocomplete neighbor for clear bgp
1409 - Reflect the distance in RIB when it is changed for an arbitrary afi/safi
1410 - Notify "Peer De-configured" after entering 'no neighbor <neighbor> cmd
1411 - Fix per afi/safi addpath peer counting
1412 - Rework BGP dampening to be per AFI/SAFI
1413 - Do not send next-hop as :: in MP_REACH_NLRI if no link-local exists
1414 - Override peer's TTL only if peer-group is configured with TTL
1415 - Remove error message for unkown afi/safi combination
1416 - Keep the session down if maximum-prefix is reached
1417 - OSPFd
1418 - Fix BFD down not tearing down OSPF adjacency for point-to-point net
1419 - BFDd
1420 - Fix multiple VRF handling
1421 - VRF security improvement
1422 - PIMd
1423 - Fix rp crash
1424 - NHRPd
1425 - Make sure `no ip nhrp map <something>` works as expected
1426 - LDPd
1427 - Add missing sanity check in the parsing of label messages
1428 - Zebra
1429 - Use correct state when installing evpn macs
1430 - Capture dplane plugin flags
1431 - lib
1432 - Fix interface config when vrf changes
1433 - Fix Interface Infinite Loop Walk (for special interfaces such as bond)
1434 - snapcraft
1435 - fix missing vrrpd daemon
1436 - Others
1437 - Rename man pages (to avoid conflicts with other packages)
1438 - Various other fixes for code cleanup and memory leaks
1439
1440 * Fri Dec 27 2019 Donatas Abraitis <donatas.abraitis@gmail.com>
1441 - Add CentOS 8 support
1442
1443 * Tue Oct 15 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.2
1444 - ALL Daemons
1445 - -N <namespace> to allow for config file locating when running FRR inside
1446 of a namespace
1447 - Impoved Testing across all daemons
1448 - BFD
1449 - VRF Support
1450 - Conversion to Northbound interface
1451 - BGP
1452 - Aggregate-address add route-map support
1453 - BMP Support
1454 - Improved JSON output for many commands
1455 - `show bgp afi safi summary failed` command
1456 - `clear bop *` clears all peers
1457 - Show FQDN for `show bgp ipv4 uni` commands
1458 - Display BestPath selection reason as part of show commands
1459 - EIGRP
1460 - Infrastructure changes to allow VRF's
1461 - SIGHUP signals the config reload
1462 - Conversion to Northbound interface
1463 - ISIS
1464 - BFD Support
1465 - Support for circuits with MTU > 8192
1466 - PBRD
1467 - fwmark support as part of match criteria
1468 - autocompletion of PBRMAPS
1469 - Improved Nexthop Support
1470 - PIMD
1471 - PIM-BSM receive support
1472 - Improved debugging support
1473 - Store ECMP paths that are not currently legal for use
1474 - Disallow igmp query from a non-connected source
1475 - Many new cli improvements and changes
1476 - VRRPD
1477 - Add Support for RFC 3768 and RFC 5798
1478 - Route-Maps
1479 - Add sequence numbers to access-lists
1480 - Add `match ip next-hop type blackhole`
1481 - Improved ability to notice dependency changes
1482 - SHARPD
1483 - `sharp watch [import|nexthop]` you can now specify a prefix instead
1484 of assuming a /32
1485 - STATICD
1486 - Significantly Improved NHT
1487 - ZEBRA
1488 - Many dataplane improvements for routes, neighbor table and EVPN
1489 - NHT cli can now be specified per VRF and improved ability to control
1490 NHT data being shown
1491 - Removed duplicate processing of routes
1492 - Improved debugablility
1493 - RMAC and VxLan support for the FPM
1494 - LIB
1495 - RCU support
1496 - Nexthop Group Improvements
1497 - `log-filter WORD` added
1498 - Building
1499 - openssl support
1500 - libcap should be used as part of build or significant slowdowns
1501 will be experienced
1502 - Lua builds have been fixed
1503 - Improved Cross building
1504
1505 * Mon Jun 17 2019 David Lamparter <equinox@opensourcerouting.org> - 7.1
1506 - gRPC northbound plugin
1507 - "table NNN" removed from zebra
1508 - more dataplane MT work
1509 - EVPN in non-default VRFs
1510 - RFC 8212 (default deny policy for eBGP)
1511 - RFC 8106 (IPv6 RA DNS options)
1512
1513 * Wed May 8 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0.1
1514 - bgp:
1515 - Don't send Updates with BGP Max-Prefix Overflow
1516 - Make sure `next-hop-self all` backward compatible with force
1517 - Fix as-path validation in "show bgp regexp"
1518 - Fix interface-based peers to override peergroups
1519 - Fix removing private AS numbers if local-as is used
1520 - Fix show bgp labeled_unicast
1521 - Add command to lookup prefixes in rpki table
1522 - Fix peer count in "show bgp ipv6 summary"
1523 - Add missing ipv6 only peer flag action
1524 - Fix address family output in "show bgp [ipv4|ipv6] neighbors"
1525 - Add missing checks for vpnv6 nexthops
1526 - Fix nexthop for ipv6 vpn case
1527 - rip: Fix removal of passive interfaces
1528 - ospf:
1529 - Fix json timer output
1530 - Fix milliseconds in json output
1531 - bfd:
1532 - Fix source port according RFC 5881, Sec 4
1533 - Fix IPv6 link-local peer removal
1534 - Fix interface clean up when deleting interface
1535 - pim: Fix interface clean up when deleting interface
1536 - nhrp: Fix interface clean up when deleting interface
1537 - lib:
1538 - Workaround to get FRR building with libyang 0.x and 1.x
1539 - Fix in priv handling
1540 - Make priv elevation thread-safe
1541 - zebra:
1542 - Pseudowire event recovery
1543 - Fix race condition in label manager
1544 - Fix system routes selection and next-hop tracking
1545 - Set connected route metric based on devaddr metric
1546 - Display metric for connected routes
1547 - Add selected fib details to json output
1548 - Always use replace if installing new route
1549 - watchfrr: Silently ignore declare failures (for backward compatibility)
1550 - RPM packages: Switch to new init script
1551
1552 * Thu Feb 28 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0
1553 - Added libyang dependency: New work for northbound interface based on libyang
1554 - Fabricd: New Daemon based on https://datatracker.ietf.org/doc/draft-white-openfabric/
1555 - various bug fixes and other enhancements
1556
1557 * Sun Oct 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 6.0
1558 - Staticd: New daemon responsible for management of static routes
1559 - ISISd: Implement dst-src routing as per draft-ietf-isis-ipv6-dst-src-routing
1560 - BFDd: new daemon for BFD (Bidrectional Forwarding Detection). Responsible
1561 for notifying link changes to make routing protocols converge faster.
1562 - various bug fixes
1563
1564 * Thu Jul 5 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0.1
1565 - Support Automake 1.16.1
1566 - BGPd: Support for flowspec ICMP, DSCP, packet length, fragment and tcp flags
1567 - BGPd: fix rpki validation for ipv6
1568 - VRF: Workaround for kernel bug on Linux 4.14 and newer
1569 - Zebra: Fix interface based routes from zebra not marked up
1570 - Zebra: Fix large zebra memory usage when redistribute between protocols
1571 - Zebra: Allow route-maps to match on source instance
1572 - BGPd: Backport peer-attr overrides, peer-level enforce-first-as and filtered-routes fix
1573 - BGPd: fix for crash during display of filtered-routes
1574 - BGPd: Actually display labeled unicast routes received
1575 - Label Manager: Fix to work correctly behind a label manager proxy
1576
1577 * Thu Jun 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0
1578 - PIM: Add a Multicast Trace Command draft-ietf-idmr-traceroute-ipm-05
1579 - IS-IS: Implement Three-Way Handshake as per RFC5303
1580 - BGPD: Implement VPN-VRF route leaking per RFC4364.
1581 - BGPD: Implement VRF with NETNS backend
1582 - BGPD: Flowspec
1583 - PBRD: Add a new Policy Based Routing Daemon
1584
1585 * Mon May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org>
1586 - Add BFDd support
1587
1588 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1589 - Fixed RPKI RPM build
1590
1591 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
1592 - Add option to build with RPKI (default: disabled)
1593
1594 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1595 - Adapt to new documentation structure based on Sphinx
1596
1597 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
1598 - Fix script location for watchfrr restart functions in daemon config
1599 - Fix postun script to restart frr during upgrade
1600
1601 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
1602 - added NHRP and EIGRP daemon
1603
1604 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
1605 - new subpackage frr-pythontools with python 2.7 restart script
1606 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
1607 - converted to single frr init script (not per daemon) based on debian init script
1608 - created systemd service file for systemd based systems (which uses init script)
1609 - Various other RPM package fixes for FRR 2.0
1610
1611 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
1612 - Renamed to frr for FRRouting fork of Quagga
1613
1614 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
1615 - remove with_ipv6 conditionals, always build v6
1616 - Fix UTF-8 char in spec changelog
1617 - remove quagga.pam.stack, long deprecated.
1618
1619 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
1620 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
1621 --enable-netlink
1622 - Remove support for old fedora 4/5
1623 - Fix for package nameing
1624 - Fix Weekdays of previous changelogs (bogus dates)
1625 - Add conditional logic to only build tex footnotes with supported texi2html
1626 - Added pimd to files section and fix double listing of /var/lib*/quagga
1627 - Numerous fixes to unify upstart/systemd startup into same spec file
1628 - Only allow use of watchfrr for non-systemd systems. no need with systemd
1629
1630 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
1631 - buildreq updates
1632 - add a default define for with_pimd
1633
1634 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
1635 - Steal some changes from Fedora spec file:
1636 - Add with_rtadv variable
1637 - Test for groups/users with getent before group/user adding
1638 - Readline need not be an explicit prerequisite
1639 - install-info delete should be postun, not preun
1640
1641 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1642 - on package upgrade, implement careful, phased restart logic
1643 - use gcc -rdynamic flag when linking for better backtraces
1644
1645 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1646 - daemonv6_list should contain only IPv6 daemons
1647
1648 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1649 - watchfrr added
1650 - on upgrade, all daemons should be condrestart'ed
1651 - on removal, all daemons should be stopped
1652
1653 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
1654 - Use makeinfo --html to generate quagga.html
1655
1656 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
1657 - Fix with_ipv6 set to 0 build
1658
1659 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
1660 - Update to 0.97.2
1661
1662 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
1663 - Make directories be owned by the packages concerned
1664 - Update logrotate scripts to use correct path to killall and use pid files
1665
1666 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
1667 - Update to 0.97.0
1668
1669 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
1670 - build snmp support by default
1671 - build irdp support
1672 - build with shared libs
1673 - devel subpackage for archives and headers
1674
1675 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
1676 - updated sysconfig files to specify local dir
1677 - added ospf_dump.c crash quick fix patch
1678 - added ospfd persistent interface configuration patch
1679
1680 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
1681 - sync to CVS
1682 - integrate RH sysconfig patch to specify daemon options (RH)
1683 - default to have vty listen only to 127.1 (RH)
1684 - add user with fixed UID/GID (RH)
1685 - create user with shell /sbin/nologin rather than /bin/false (RH)
1686 - stop daemons on uninstall (RH)
1687 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
1688 - isisd added
1689 - cleanup tasks carried out for every daemon
1690
1691 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
1692 - Fix -devel package to include all files
1693 - Sync to 0.96.4
1694
1695 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
1696 - Renamed to Quagga
1697 - Sync to Quagga release 0.96
1698
1699 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
1700 - zebra privileges support
1701
1702 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
1703 - Fix mem leak in 'show thread cpu'
1704 - Ralph Keller's OSPF-API
1705 - Amir: Fix configure.ac for net-snmp
1706
1707 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
1708 - ospfd IOS prefix to interface matching for 'network' statement
1709 - temporary fix for PtP and IPv6
1710 - sync to zebra.org CVS
1711
1712 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
1713 - update to latest cvs
1714 - Yon's "show thread cpu" patch - 17217
1715 - walk up tree - 17218
1716 - ospfd NSSA fixes - 16681
1717 - ospfd nsm fixes - 16824
1718 - ospfd OLSA fixes and new feature - 16823
1719 - KAME and ifindex fixes - 16525
1720 - spec file changes to allow redhat files to be in tree
1721
1722 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
1723 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
1724 - Fixed up some build requirements (patch)
1725 - Added conditional build requirements for vtysh / snmp
1726 - Added conditional to files for _bindir depending on vtysh
1727
1728 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
1729 - update to latest CVS
1730 - add Greg Troxel's md5 buffer copy/dup fix
1731 - add RIPv1 fix
1732 - add Frank's multicast flag fix
1733
1734 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
1735 - update to latest CVS
1736 - timestamped crypt_seqnum patch
1737 - oi->on_write_q fix
1738
1739 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
1740 - update to latest CVS
1741 - add vtysh 'write-config (integrated|daemon)' patch
1742 - always 'make rebuild' in vtysh/ to catch new commands
1743
1744 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
1745 - update to 0.93b
1746
1747 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
1748 - update to latest CVS
1749 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
1750
1751 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
1752 - update to current CVS
1753 - add OSPF point to multipoint patch
1754 - add OSPF bugfixes
1755 - add BGP hash optimisation patch
1756
1757 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
1758 - update to 0.93-pre1 / CVS
1759 - add link state detection support
1760 - add generic PtP and RFC3021 support
1761 - various bug fixes
1762
1763 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
1764 - Fix bug #51336
1765
1766 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
1767 - Use generic initscript strings instead of initscript specific
1768 ( "Starting foo: " -> "Starting $prog:" )
1769
1770 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
1771 - Bump the release when rebuilding into the dist.
1772
1773 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
1774 - built for Powertools
1775
1776 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
1777 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
1778 - Update to 0.91a
1779 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
1780 - Should be quite Red Hat'isque now.