]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
build: move SPHINXBUILD= to configure in rpm build
[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
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: @CONFDATE@%{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 %if 0%{?rhel} && 0%{?rhel} < 7
166 #python27-devel is available from ius community repo for RedHat/CentOS 6
167 BuildRequires: python27-devel
168 BuildRequires: python27-sphinx
169 %else
170 BuildRequires: python-devel >= 2.7
171 BuildRequires: python-sphinx
172 %endif
173 %if %{with_pam}
174 BuildRequires: pam-devel
175 %endif
176 %if %{with_rpki}
177 BuildRequires: librtr-devel >= 0.5
178 %endif
179 %if "%{initsystem}" == "systemd"
180 BuildRequires: systemd
181 BuildRequires: systemd-devel
182 Requires(post): systemd
183 Requires(preun): systemd
184 Requires(postun): systemd
185 %else
186 Requires(post): chkconfig
187 Requires(preun): chkconfig
188 # Initscripts > 5.60 is required for IPv6 support
189 Requires(pre): initscripts >= 5.60
190 Requires: initscripts
191 %endif
192 Provides: routingdaemon = %{version}-%{release}
193 Obsoletes: gated mrt zebra frr-sysvinit
194 Conflicts: bird
195
196
197 %description
198 FRRouting is a free software that manages TCP/IP based routing
199 protocol. It takes multi-server and multi-thread approach to resolve
200 the current complexity of the Internet.
201
202 FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
203 NHRP, Babel, PBR, EIGRP and BFD.
204
205 FRRouting is a fork of Quagga.
206
207
208 %package contrib
209 Summary: contrib tools for frr
210 Group: System Environment/Daemons
211
212 %description contrib
213 Contributed/3rd party tools which may be of use with frr.
214
215
216 %package pythontools
217 Summary: python tools for frr
218 BuildRequires: python
219 Requires: python-ipaddr
220 Group: System Environment/Daemons
221
222 %description pythontools
223 Contributed python 2.7 tools which may be of use with frr.
224
225
226 %package devel
227 Summary: Header and object files for frr development
228 Group: System Environment/Daemons
229 Requires: %{name} = %{version}-%{release}
230
231 %description devel
232 The frr-devel package contains the header and object files neccessary for
233 developing OSPF-API and frr applications.
234
235
236 %prep
237 %setup -q -n frr-%{frrversion}
238
239
240 %build
241
242 # For standard gcc verbosity, uncomment these lines:
243 #CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
244 #CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
245
246 # For ultra gcc verbosity, uncomment these lines also:
247 #CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
248 #CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
249 #CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
250 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
251
252 %configure \
253 --sbindir=%{_sbindir} \
254 --sysconfdir=%{configdir} \
255 --localstatedir=%{rundir} \
256 --disable-static \
257 --disable-werror \
258 --enable-irdp \
259 %if %{with_multipath}
260 --enable-multipath=%{with_multipath} \
261 %endif
262 --enable-vtysh \
263 %if %{with_ospfclient}
264 --enable-ospfclient \
265 %else
266 --disable-ospfclient\
267 %endif
268 %if %{with_ospfapi}
269 --enable-ospfapi \
270 %else
271 --disable-ospfapi \
272 %endif
273 %if %{with_rtadv}
274 --enable-rtadv \
275 %else
276 --disable-rtadv \
277 %endif
278 %if %{with_ldpd}
279 --enable-ldpd \
280 %else
281 --disable-ldpd \
282 %endif
283 %if %{with_pimd}
284 --enable-pimd \
285 %else
286 --disable-pimd \
287 %endif
288 %if %{with_pbrd}
289 --enable-pbrd \
290 %else
291 --disable-pbrd \
292 %endif
293 %if %{with_nhrpd}
294 --enable-nhrpd \
295 %else
296 --disable-nhrpd \
297 %endif
298 %if %{with_eigrpd}
299 --enable-eigrpd \
300 %else
301 --disable-eigrpd \
302 %endif
303 %if %{with_babeld}
304 --enable-babeld \
305 %else
306 --disable-babeld \
307 %endif
308 %if %{with_pam}
309 --with-libpam \
310 %endif
311 %if 0%{?frr_user:1}
312 --enable-user=%{frr_user} \
313 --enable-group=%{frr_user} \
314 %endif
315 %if 0%{?vty_group:1}
316 --enable-vty-group=%{vty_group} \
317 %endif
318 %if %{with_fpm}
319 --enable-fpm \
320 %else
321 --disable-fpm \
322 %endif
323 %if %{with_watchfrr}
324 --enable-watchfrr \
325 %else
326 --disable-watchfrr \
327 %endif
328 %if %{with_cumulus}
329 --enable-cumulus \
330 %endif
331 %if %{with_bgp_vnc}
332 --enable-bgp-vnc \
333 %else
334 --disable-bgp-vnc \
335 %endif
336 --enable-isisd \
337 %if "%{initsystem}" == "systemd"
338 --enable-systemd \
339 %endif
340 %if %{with_rpki}
341 --enable-rpki \
342 %else
343 --disable-rpki \
344 %endif
345 %if %{with_bfdd}
346 --enable-bfdd \
347 %else
348 --disable-bfdd \
349 %endif
350 SPHINXBUILD=%{sphinx}
351
352 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
353
354 pushd doc
355 make info
356 popd
357
358
359 %install
360 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
361 %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir}
362 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
363
364 # Remove this file, as it is uninstalled and causes errors when building on RH9
365 rm -rf %{buildroot}/usr/share/info/dir
366
367 # Remove debian init script if it was installed
368 rm -f %{buildroot}%{_sbindir}/frr
369
370 # kill bogus libtool files
371 rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
372 rm -vf %{buildroot}%{_libdir}/*.la
373
374 # install /etc sources
375 %if "%{initsystem}" == "systemd"
376 mkdir -p %{buildroot}%{_unitdir}
377 install -m644 %{zeb_rh_src}/frr.service %{buildroot}%{_unitdir}/frr.service
378 install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
379 %else
380 mkdir -p %{buildroot}%{_initddir}
381 install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
382 ln -s %{_sbindir}/frr %{buildroot}%{_initddir}/frr
383 %endif
384
385 install %{zeb_rh_src}/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
464 %if "%{initsystem}" == "systemd"
465 for daemon in %all_daemons ; do
466 %systemd_post frr.service
467 done
468 %else
469 /sbin/chkconfig --add frr
470 %endif
471
472 # Fix bad path in previous config files
473 # Config files won't get replaced by default, so we do this ugly hack to fix it
474 %__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{configdir}/daemons 2> /dev/null || true
475
476 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
477 # we install or upgrade to a frr built with systemd
478 %if "%{initsystem}" == "systemd"
479 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
480 %endif
481
482 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
483
484 # Create dummy files if they don't exist so basic functions can be used.
485 if [ ! -e %{configdir}/zebra.conf ]; then
486 echo "hostname `hostname`" > %{configdir}/zebra.conf
487 %if 0%{?frr_user:1}
488 chown %{frr_user}:%{frr_user} %{configdir}/zebra.conf*
489 %endif
490 chmod 640 %{configdir}/zebra.conf*
491 fi
492 for daemon in %{all_daemons} ; do
493 if [ x"${daemon}" != x"" ] ; then
494 if [ ! -e %{configdir}/${daemon}.conf ]; then
495 touch %{configdir}/${daemon}.conf
496 %if 0%{?frr_user:1}
497 chown %{frr_user}:%{frr_user} %{configdir}/${daemon}.conf*
498 %endif
499 fi
500 fi
501 done
502 %if 0%{?frr_user:1}
503 chown %{frr_user}:%{frr_user} %{configdir}/daemons
504 %endif
505
506 %if %{with_watchfrr}
507 # No config for watchfrr - this is part of /etc/sysconfig/frr
508 rm -f %{configdir}/watchfrr.*
509 %endif
510
511 if [ ! -e %{configdir}/vtysh.conf ]; then
512 touch %{configdir}/vtysh.conf
513 chmod 640 %{configdir}/vtysh.conf
514 %if 0%{?frr_user:1}
515 %if 0%{?vty_group:1}
516 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
517 %endif
518 %endif
519 fi
520
521
522 %postun
523 if [ "$1" -ge 1 ]; then
524 #
525 # Upgrade from older version
526 #
527 %if "%{initsystem}" == "systemd"
528 ##
529 ## Systemd Version
530 ##
531 %systemd_postun_with_restart frr.service
532 %else
533 ##
534 ## init.d Version
535 ##
536 service frr restart >/dev/null 2>&1
537 %endif
538 :
539 fi
540
541
542 %preun
543 %if "%{initsystem}" == "systemd"
544 ##
545 ## Systemd Version
546 ##
547 if [ $1 -eq 0 ] ; then
548 %systemd_preun frr.service
549 fi
550 %else
551 ##
552 ## init.d Version
553 ##
554 if [ $1 -eq 0 ] ; then
555 service frr stop >/dev/null 2>&1
556 /sbin/chkconfig --del frr
557 fi
558 %endif
559 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
560
561
562 %files
563 %doc */*.sample* AUTHORS COPYING
564 %doc doc/mpls
565 %doc ChangeLog NEWS README
566 %if 0%{?frr_user:1}
567 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
568 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
569 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
570 %else
571 %dir %attr(750,root,root) %{configdir}
572 %dir %attr(750,root,root) %{_localstatedir}/log/frr
573 %dir %attr(750,root,root) %{rundir}
574 %endif
575 %if 0%{?vty_group:1}
576 %attr(750,%{frr_user},%{vty_group}) %{configdir}/vtysh.conf.sample
577 %endif
578 %{_infodir}/frr.info.gz
579 %{_mandir}/man*/*
580 %{_sbindir}/zebra
581 %{_sbindir}/staticd
582 %{_sbindir}/ospfd
583 %{_sbindir}/ripd
584 %{_sbindir}/bgpd
585 %exclude %{_sbindir}/ssd
586 %if %{with_watchfrr}
587 %{_sbindir}/watchfrr
588 %endif
589 %{_sbindir}/ripngd
590 %{_sbindir}/ospf6d
591 %if %{with_pimd}
592 %{_sbindir}/pimd
593 %endif
594 %if %{with_pbrd}
595 %{_sbindir}/pbrd
596 %endif
597 %{_sbindir}/isisd
598 %if %{with_ldpd}
599 %{_sbindir}/ldpd
600 %endif
601 %if %{with_eigrpd}
602 %{_sbindir}/eigrpd
603 %endif
604 %if %{with_nhrpd}
605 %{_sbindir}/nhrpd
606 %endif
607 %if %{with_babeld}
608 %{_sbindir}/babeld
609 %endif
610 %if %{with_bfdd}
611 %{_sbindir}/bfdd
612 %endif
613 %{_libdir}/lib*.so.0
614 %{_libdir}/lib*.so.0.*
615 %if %{with_fpm}
616 %{_libdir}/frr/modules/zebra_fpm.so
617 %endif
618 %if %{with_rpki}
619 %{_libdir}/frr/modules/bgpd_rpki.so
620 %endif
621 %{_libdir}/frr/modules/zebra_irdp.so
622 %{_bindir}/*
623 %config(noreplace) %{configdir}/[!v]*.conf*
624 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
625 %if "%{initsystem}" == "systemd"
626 %{_unitdir}/frr.service
627 %else
628 %{_initddir}/frr
629 %endif
630 %{_sbindir}/frr
631 %config(noreplace) %{_sysconfdir}/pam.d/frr
632 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
633 %{_sbindir}/frr-reload
634
635
636 %files contrib
637 %doc tools
638
639
640 %files pythontools
641 %{_sbindir}/frr-reload.py
642 %{_sbindir}/frr-reload.pyc
643 %{_sbindir}/frr-reload.pyo
644
645
646 %files devel
647 %{_libdir}/lib*.so
648 %if %{with_ospfclient}
649 %{_sbindir}/ospfclient
650 %endif
651 %dir %{_includedir}/%{name}
652 %{_includedir}/%{name}/*.h
653 %dir %{_includedir}/%{name}/ospfd
654 %{_includedir}/%{name}/ospfd/*.h
655 %if %{with_ospfapi}
656 %dir %{_includedir}/%{name}/ospfapi
657 %{_includedir}/%{name}/ospfapi/*.h
658 %endif
659 %if %{with_eigrpd}
660 %dir %{_includedir}/%{name}/eigrpd
661 %{_includedir}/%{name}/eigrpd/*.h
662 %endif
663
664
665 %changelog
666 * Sun Oct 7 2018 Martin Winter <mwinter@opensourcerouting.org> - %{version}
667 - Staticd: New daemon responsible for management of static routes
668 - ISISd: Implement dst-src routing as per draft-ietf-isis-ipv6-dst-src-routing
669 - BFDd: new daemon for BFD (Bidrectional Forwarding Detection). Responsiblei
670 for notifying link changes to make routing protocols converge faster.
671 - various bug fixes
672
673 * Thu Jul 5 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0.1
674 - Support Automake 1.16.1
675 - BGPd: Support for flowspec ICMP, DSCP, packet length, fragment and tcp flags
676 - BGPd: fix rpki validation for ipv6
677 - VRF: Workaround for kernel bug on Linux 4.14 and newer
678 - Zebra: Fix interface based routes from zebra not marked up
679 - Zebra: Fix large zebra memory usage when redistribute between protocols
680 - Zebra: Allow route-maps to match on source instance
681 - BGPd: Backport peer-attr overrides, peer-level enforce-first-as and filtered-routes fix
682 - BGPd: fix for crash during display of filtered-routes
683 - BGPd: Actually display labeled unicast routes received
684 - Label Manager: Fix to work correctly behind a label manager proxy
685
686 * Thu Jun 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0
687 - PIM: Add a Multicast Trace Command draft-ietf-idmr-traceroute-ipm-05
688 - IS-IS: Implement Three-Way Handshake as per RFC5303
689 - BGPD: Implement VPN-VRF route leaking per RFC4364.
690 - BGPD: Implement VRF with NETNS backend
691 - BGPD: Flowspec
692 - PBRD: Add a new Policy Based Routing Daemon
693
694 * Sun May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - %{version}
695 - Add BFDd support
696
697 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org> - 4.0.1
698 - Fixed RPKI RPM build
699
700 * Sun Mar 11 2018 Martin Winter <mwinter@opensourcerouting.org> - 4.0
701 - ISIS-MT - https://tools.ietf.org/html/rfc5120
702 - BGP - RPKI (RFC 6810)
703 - BGP - v4 labeled unicast as per RFC 3107
704 - BGP/Zebra - Type 2 and 3 EVPN with symmetric and asymmetric routing
705 - EIGRP - https://tools.ietf.org/html/rfc7868
706 - FRR - Tab completion for iface names, prefix-lists, route-maps, BGP peers
707 - BABEL - https://tools.ietf.org/html/rfc6126
708 - PIM VRF - Added the ability to work with VRF’s to PIM
709 - OSPFv2 VRF - Added the ability to work with VRF’s to OSPFv2
710 - OSPFv2 Experimental SR - draft-ietf-ospf-segment-routing-extensions-24
711 - ZEBRA - Add ability to create a static route that leaks across VRF’s.
712
713 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
714 - Add option to build with RPKI (default: disabled)
715
716 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
717 - Adapt to new documentation structure based on Sphinx
718
719 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
720 - Fix script location for watchfrr restart functions in daemon config
721 - Fix postun script to restart frr during upgrade
722
723 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
724 - added NHRP and EIGRP daemon
725
726 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
727 - new subpackage frr-pythontools with python 2.7 restart script
728 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
729 - converted to single frr init script (not per daemon) based on debian init script
730 - created systemd service file for systemd based systems (which uses init script)
731 - Various other RPM package fixes for FRR 2.0
732
733 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
734 - Renamed to frr for FRRouting fork of Quagga
735
736 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
737 - remove with_ipv6 conditionals, always build v6
738 - Fix UTF-8 char in spec changelog
739 - remove quagga.pam.stack, long deprecated.
740
741 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
742 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
743 --enable-netlink
744 - Remove support for old fedora 4/5
745 - Fix for package nameing
746 - Fix Weekdays of previous changelogs (bogus dates)
747 - Add conditional logic to only build tex footnotes with supported texi2html
748 - Added pimd to files section and fix double listing of /var/lib*/quagga
749 - Numerous fixes to unify upstart/systemd startup into same spec file
750 - Only allow use of watchfrr for non-systemd systems. no need with systemd
751
752 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
753 - buildreq updates
754 - add a default define for with_pimd
755
756 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
757 - Steal some changes from Fedora spec file:
758 - Add with_rtadv variable
759 - Test for groups/users with getent before group/user adding
760 - Readline need not be an explicit prerequisite
761 - install-info delete should be postun, not preun
762
763 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
764 - on package upgrade, implement careful, phased restart logic
765 - use gcc -rdynamic flag when linking for better backtraces
766
767 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
768 - daemonv6_list should contain only IPv6 daemons
769
770 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
771 - watchfrr added
772 - on upgrade, all daemons should be condrestart'ed
773 - on removal, all daemons should be stopped
774
775 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
776 - Use makeinfo --html to generate quagga.html
777
778 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
779 - Fix with_ipv6 set to 0 build
780
781 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
782 - Update to 0.97.2
783
784 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
785 - Make directories be owned by the packages concerned
786 - Update logrotate scripts to use correct path to killall and use pid files
787
788 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
789 - Update to 0.97.0
790
791 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
792 - build snmp support by default
793 - build irdp support
794 - build with shared libs
795 - devel subpackage for archives and headers
796
797 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
798 - updated sysconfig files to specify local dir
799 - added ospf_dump.c crash quick fix patch
800 - added ospfd persistent interface configuration patch
801
802 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
803 - sync to CVS
804 - integrate RH sysconfig patch to specify daemon options (RH)
805 - default to have vty listen only to 127.1 (RH)
806 - add user with fixed UID/GID (RH)
807 - create user with shell /sbin/nologin rather than /bin/false (RH)
808 - stop daemons on uninstall (RH)
809 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
810 - isisd added
811 - cleanup tasks carried out for every daemon
812
813 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
814 - Fix -devel package to include all files
815 - Sync to 0.96.4
816
817 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
818 - Renamed to Quagga
819 - Sync to Quagga release 0.96
820
821 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
822 - zebra privileges support
823
824 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
825 - Fix mem leak in 'show thread cpu'
826 - Ralph Keller's OSPF-API
827 - Amir: Fix configure.ac for net-snmp
828
829 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
830 - ospfd IOS prefix to interface matching for 'network' statement
831 - temporary fix for PtP and IPv6
832 - sync to zebra.org CVS
833
834 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
835 - update to latest cvs
836 - Yon's "show thread cpu" patch - 17217
837 - walk up tree - 17218
838 - ospfd NSSA fixes - 16681
839 - ospfd nsm fixes - 16824
840 - ospfd OLSA fixes and new feature - 16823
841 - KAME and ifindex fixes - 16525
842 - spec file changes to allow redhat files to be in tree
843
844 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
845 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
846 - Fixed up some build requirements (patch)
847 - Added conditional build requirements for vtysh / snmp
848 - Added conditional to files for _bindir depending on vtysh
849
850 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
851 - update to latest CVS
852 - add Greg Troxel's md5 buffer copy/dup fix
853 - add RIPv1 fix
854 - add Frank's multicast flag fix
855
856 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
857 - update to latest CVS
858 - timestamped crypt_seqnum patch
859 - oi->on_write_q fix
860
861 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
862 - update to latest CVS
863 - add vtysh 'write-config (integrated|daemon)' patch
864 - always 'make rebuild' in vtysh/ to catch new commands
865
866 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
867 - update to 0.93b
868
869 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
870 - update to latest CVS
871 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
872
873 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
874 - update to current CVS
875 - add OSPF point to multipoint patch
876 - add OSPF bugfixes
877 - add BGP hash optimisation patch
878
879 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
880 - update to 0.93-pre1 / CVS
881 - add link state detection support
882 - add generic PtP and RFC3021 support
883 - various bug fixes
884
885 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
886 - Fix bug #51336
887
888 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
889 - Use generic initscript strings instead of initscript specific
890 ( "Starting foo: " -> "Starting $prog:" )
891
892 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
893 - Bump the release when rebuilding into the dist.
894
895 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
896 - built for Powertools
897
898 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
899 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
900 - Update to 0.91a
901 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
902 - Should be quite Red Hat'isque now.