]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
Merge pull request #2944 from thbtcllt/master
[mirror_frr.git] / redhat / frr.spec.in
1 # configure options
2 #
3 # Some can be overriden on rpmbuild commandline with:
4 # rpmbuild --define 'variable value'
5 # (use any value, ie 1 for flag "with_XXXX" definitions)
6 #
7 # E.g. rpmbuild --define 'release_rev 02' may be useful if building
8 # rpms again and again on the same day, so the newer rpms can be installed.
9 # bumping the number each time.
10
11 #################### FRRouting (FRR) configure options #####################
12 # with-feature options
13 %{!?with_babeld: %global with_babeld 1 }
14 %{!?with_bfdd: %global with_bfdd 1 }
15 %{!?with_bgp_vnc: %global with_bgp_vnc 0 }
16 %{!?with_cumulus: %global with_cumulus 0 }
17 %{!?with_eigrpd: %global with_eigrpd 1 }
18 %{!?with_fpm: %global with_fpm 1 }
19 %{!?with_ldpd: %global with_ldpd 1 }
20 %{!?with_multipath: %global with_multipath 256 }
21 %{!?with_nhrpd: %global with_nhrpd 1 }
22 %{!?with_ospfapi: %global with_ospfapi 1 }
23 %{!?with_ospfclient: %global with_ospfclient 1 }
24 %{!?with_pam: %global with_pam 0 }
25 %{!?with_pbrd: %global with_pbrd 1 }
26 %{!?with_pimd: %global with_pimd 1 }
27 %{!?with_rpki: %global with_rpki 0 }
28 %{!?with_rtadv: %global with_rtadv 1 }
29 %{!?with_watchfrr: %global with_watchfrr 1 }
30
31 # user and group
32 %{!?frr_user: %global frr_user frr }
33 %{!?vty_group: %global vty_group frrvty }
34
35 # path defines
36 %define configdir %{_sysconfdir}/%{name}
37 %define _sbindir /usr/lib/frr
38 %define zeb_src %{_builddir}/%{name}-%{frrversion}
39 %define zeb_rh_src %{zeb_src}/redhat
40 %define zeb_docs %{zeb_src}/doc
41 %define frr_tools %{zeb_src}/tools
42
43 # defines for configure
44 %define rundir %{_localstatedir}/run/%{name}
45
46 # define for sphinx-build binary
47 %if 0%{?rhel} && 0%{?rhel} < 7
48 %define sphinx sphinx-build2.7
49 %else
50 %define sphinx sphinx-build
51 %endif
52 ############################################################################
53
54 #### Version String tweak
55 # Remove invalid characters form version string and replace with _
56 %{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
57 %define frrversion @VERSION@
58
59 #### Check for systemd or init.d (upstart)
60 # Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
61 %if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210
62 %global initsystem systemd
63 %else
64 %if 0%{?rhel} && 0%{?rhel} < 7
65 %global initsystem upstart
66 %else
67 %{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `readlink -f /sbin/init` = /usr/lib/systemd/systemd ]]; then echo systemd; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
68 %endif
69 %endif
70
71 # If init system is systemd, then always enable watchfrr
72 %if "%{initsystem}" == "systemd"
73 %global with_watchfrr 1
74 %endif
75
76 #### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
77 #### Always disable it on these old systems unconditionally
78 #
79 # if CentOS / RedHat and version < 7, then disable PIMd (too old, won't work)
80 %if 0%{?rhel} && 0%{?rhel} < 7
81 %global with_pimd 0
82 %endif
83
84 # misc internal defines
85 %{!?frr_uid: %global frr_uid 92 }
86 %{!?frr_gid: %global frr_gid 92 }
87 %{!?vty_gid: %global vty_gid 85 }
88
89 %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd fabricd
90
91 %if %{with_ldpd}
92 %define daemon_ldpd ldpd
93 %else
94 %define daemon_ldpd ""
95 %endif
96
97 %if %{with_pimd}
98 %define daemon_pimd pimd
99 %else
100 %define daemon_pimd ""
101 %endif
102
103 %if %{with_pbrd}
104 %define daemon_pbrd pbrd
105 %else
106 %define daemon_pbrd ""
107 %endif
108
109 %if %{with_nhrpd}
110 %define daemon_nhrpd nhrpd
111 %else
112 %define daemon_nhrpd ""
113 %endif
114
115 %if %{with_eigrpd}
116 %define daemon_eigrpd eigrpd
117 %else
118 %define daemon_eigrpd ""
119 %endif
120
121 %if %{with_babeld}
122 %define daemon_babeld babeld
123 %else
124 %define daemon_babeld ""
125 %endif
126
127 %if %{with_watchfrr}
128 %define daemon_watchfrr watchfrr
129 %else
130 %define daemon_watchfrr ""
131 %endif
132
133 %if %{with_bfdd}
134 %define daemon_bfdd bfdd
135 %else
136 %define daemon_bfdd ""
137 %endif
138
139 %define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd}
140
141 #release sub-revision (the two digits after the CONFDATE)
142 %{!?release_rev: %global release_rev 01 }
143
144 Summary: Routing daemon
145 Name: frr
146 Version: %{rpmversion}
147 Release: @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 zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
464
465 %if "%{initsystem}" == "systemd"
466 for daemon in %all_daemons ; do
467 %systemd_post frr.service
468 done
469 %else
470 /sbin/chkconfig --add frr
471 %endif
472
473 # Fix bad path in previous config files
474 # Config files won't get replaced by default, so we do this ugly hack to fix it
475 %__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{configdir}/daemons 2> /dev/null || true
476
477 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
478 # we install or upgrade to a frr built with systemd
479 %if "%{initsystem}" == "systemd"
480 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
481 %endif
482
483 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
484
485 # Create dummy files if they don't exist so basic functions can be used.
486 if [ ! -e %{configdir}/zebra.conf ]; then
487 echo "hostname `hostname`" > %{configdir}/zebra.conf
488 %if 0%{?frr_user:1}
489 chown %{frr_user}:%{frr_user} %{configdir}/zebra.conf*
490 %endif
491 chmod 640 %{configdir}/zebra.conf*
492 fi
493 for daemon in %{all_daemons} ; do
494 if [ x"${daemon}" != x"" ] ; then
495 if [ ! -e %{configdir}/${daemon}.conf ]; then
496 touch %{configdir}/${daemon}.conf
497 %if 0%{?frr_user:1}
498 chown %{frr_user}:%{frr_user} %{configdir}/${daemon}.conf*
499 %endif
500 fi
501 fi
502 done
503 %if 0%{?frr_user:1}
504 chown %{frr_user}:%{frr_user} %{configdir}/daemons
505 %endif
506
507 %if %{with_watchfrr}
508 # No config for watchfrr - this is part of /etc/sysconfig/frr
509 rm -f %{configdir}/watchfrr.*
510 %endif
511
512 if [ ! -e %{configdir}/vtysh.conf ]; then
513 touch %{configdir}/vtysh.conf
514 chmod 640 %{configdir}/vtysh.conf
515 %if 0%{?frr_user:1}
516 %if 0%{?vty_group:1}
517 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
518 %endif
519 %endif
520 fi
521
522
523 %postun
524 if [ "$1" -ge 1 ]; then
525 #
526 # Upgrade from older version
527 #
528 %if "%{initsystem}" == "systemd"
529 ##
530 ## Systemd Version
531 ##
532 %systemd_postun_with_restart frr.service
533 %else
534 ##
535 ## init.d Version
536 ##
537 service frr restart >/dev/null 2>&1
538 %endif
539 :
540 fi
541
542
543 %preun
544 %if "%{initsystem}" == "systemd"
545 ##
546 ## Systemd Version
547 ##
548 if [ $1 -eq 0 ] ; then
549 %systemd_preun frr.service
550 fi
551 %else
552 ##
553 ## init.d Version
554 ##
555 if [ $1 -eq 0 ] ; then
556 service frr stop >/dev/null 2>&1
557 /sbin/chkconfig --del frr
558 fi
559 %endif
560 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
561
562
563 %files
564 %doc */*.sample* COPYING
565 %doc doc/mpls
566 %doc README.md
567 %if 0%{?frr_user:1}
568 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
569 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
570 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
571 %else
572 %dir %attr(750,root,root) %{configdir}
573 %dir %attr(750,root,root) %{_localstatedir}/log/frr
574 %dir %attr(750,root,root) %{rundir}
575 %endif
576 %if 0%{?vty_group:1}
577 %attr(750,%{frr_user},%{vty_group}) %{configdir}/vtysh.conf.sample
578 %endif
579 %{_infodir}/frr.info.gz
580 %{_mandir}/man*/*
581 %{_sbindir}/zebra
582 %{_sbindir}/staticd
583 %{_sbindir}/ospfd
584 %{_sbindir}/ripd
585 %{_sbindir}/bgpd
586 %exclude %{_sbindir}/ssd
587 %if %{with_watchfrr}
588 %{_sbindir}/watchfrr
589 %endif
590 %{_sbindir}/ripngd
591 %{_sbindir}/ospf6d
592 %if %{with_pimd}
593 %{_sbindir}/pimd
594 %endif
595 %if %{with_pbrd}
596 %{_sbindir}/pbrd
597 %endif
598 %{_sbindir}/isisd
599 %{_sbindir}/fabricd
600 %if %{with_ldpd}
601 %{_sbindir}/ldpd
602 %endif
603 %if %{with_eigrpd}
604 %{_sbindir}/eigrpd
605 %endif
606 %if %{with_nhrpd}
607 %{_sbindir}/nhrpd
608 %endif
609 %if %{with_babeld}
610 %{_sbindir}/babeld
611 %endif
612 %if %{with_bfdd}
613 %{_sbindir}/bfdd
614 %endif
615 %{_libdir}/lib*.so.0
616 %{_libdir}/lib*.so.0.*
617 %if %{with_fpm}
618 %{_libdir}/frr/modules/zebra_fpm.so
619 %endif
620 %if %{with_rpki}
621 %{_libdir}/frr/modules/bgpd_rpki.so
622 %endif
623 %{_libdir}/frr/modules/zebra_irdp.so
624 %{_bindir}/*
625 %config(noreplace) %{configdir}/[!v]*.conf*
626 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
627 %if "%{initsystem}" == "systemd"
628 %{_unitdir}/frr.service
629 %else
630 %{_initddir}/frr
631 %endif
632 %{_sbindir}/frr
633 %config(noreplace) %{_sysconfdir}/pam.d/frr
634 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
635 %{_sbindir}/frr-reload
636
637
638 %files contrib
639 %doc tools
640
641
642 %files pythontools
643 %{_sbindir}/frr-reload.py
644 %{_sbindir}/frr-reload.pyc
645 %{_sbindir}/frr-reload.pyo
646
647
648 %files devel
649 %{_libdir}/lib*.so
650 %if %{with_ospfclient}
651 %{_sbindir}/ospfclient
652 %endif
653 %dir %{_includedir}/%{name}
654 %{_includedir}/%{name}/*.h
655 %dir %{_includedir}/%{name}/ospfd
656 %{_includedir}/%{name}/ospfd/*.h
657 %if %{with_ospfapi}
658 %dir %{_includedir}/%{name}/ospfapi
659 %{_includedir}/%{name}/ospfapi/*.h
660 %endif
661 %if %{with_eigrpd}
662 %dir %{_includedir}/%{name}/eigrpd
663 %{_includedir}/%{name}/eigrpd/*.h
664 %endif
665
666
667 %changelog
668 * Sun May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - %{version}
669 - Add BFDd support
670
671 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
672 - Fixed RPKI RPM build
673
674 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
675 - Add option to build with RPKI (default: disabled)
676
677 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
678 - Adapt to new documentation structure based on Sphinx
679
680 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
681 - Fix script location for watchfrr restart functions in daemon config
682 - Fix postun script to restart frr during upgrade
683
684 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
685 - added NHRP and EIGRP daemon
686
687 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
688 - new subpackage frr-pythontools with python 2.7 restart script
689 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
690 - converted to single frr init script (not per daemon) based on debian init script
691 - created systemd service file for systemd based systems (which uses init script)
692 - Various other RPM package fixes for FRR 2.0
693
694 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
695 - Renamed to frr for FRRouting fork of Quagga
696
697 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
698 - remove with_ipv6 conditionals, always build v6
699 - Fix UTF-8 char in spec changelog
700 - remove quagga.pam.stack, long deprecated.
701
702 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
703 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
704 --enable-netlink
705 - Remove support for old fedora 4/5
706 - Fix for package nameing
707 - Fix Weekdays of previous changelogs (bogus dates)
708 - Add conditional logic to only build tex footnotes with supported texi2html
709 - Added pimd to files section and fix double listing of /var/lib*/quagga
710 - Numerous fixes to unify upstart/systemd startup into same spec file
711 - Only allow use of watchfrr for non-systemd systems. no need with systemd
712
713 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
714 - buildreq updates
715 - add a default define for with_pimd
716
717 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
718 - Steal some changes from Fedora spec file:
719 - Add with_rtadv variable
720 - Test for groups/users with getent before group/user adding
721 - Readline need not be an explicit prerequisite
722 - install-info delete should be postun, not preun
723
724 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
725 - on package upgrade, implement careful, phased restart logic
726 - use gcc -rdynamic flag when linking for better backtraces
727
728 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
729 - daemonv6_list should contain only IPv6 daemons
730
731 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
732 - watchfrr added
733 - on upgrade, all daemons should be condrestart'ed
734 - on removal, all daemons should be stopped
735
736 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
737 - Use makeinfo --html to generate quagga.html
738
739 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
740 - Fix with_ipv6 set to 0 build
741
742 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
743 - Update to 0.97.2
744
745 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
746 - Make directories be owned by the packages concerned
747 - Update logrotate scripts to use correct path to killall and use pid files
748
749 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
750 - Update to 0.97.0
751
752 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
753 - build snmp support by default
754 - build irdp support
755 - build with shared libs
756 - devel subpackage for archives and headers
757
758 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
759 - updated sysconfig files to specify local dir
760 - added ospf_dump.c crash quick fix patch
761 - added ospfd persistent interface configuration patch
762
763 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
764 - sync to CVS
765 - integrate RH sysconfig patch to specify daemon options (RH)
766 - default to have vty listen only to 127.1 (RH)
767 - add user with fixed UID/GID (RH)
768 - create user with shell /sbin/nologin rather than /bin/false (RH)
769 - stop daemons on uninstall (RH)
770 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
771 - isisd added
772 - cleanup tasks carried out for every daemon
773
774 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
775 - Fix -devel package to include all files
776 - Sync to 0.96.4
777
778 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
779 - Renamed to Quagga
780 - Sync to Quagga release 0.96
781
782 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
783 - zebra privileges support
784
785 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
786 - Fix mem leak in 'show thread cpu'
787 - Ralph Keller's OSPF-API
788 - Amir: Fix configure.ac for net-snmp
789
790 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
791 - ospfd IOS prefix to interface matching for 'network' statement
792 - temporary fix for PtP and IPv6
793 - sync to zebra.org CVS
794
795 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
796 - update to latest cvs
797 - Yon's "show thread cpu" patch - 17217
798 - walk up tree - 17218
799 - ospfd NSSA fixes - 16681
800 - ospfd nsm fixes - 16824
801 - ospfd OLSA fixes and new feature - 16823
802 - KAME and ifindex fixes - 16525
803 - spec file changes to allow redhat files to be in tree
804
805 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
806 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
807 - Fixed up some build requirements (patch)
808 - Added conditional build requirements for vtysh / snmp
809 - Added conditional to files for _bindir depending on vtysh
810
811 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
812 - update to latest CVS
813 - add Greg Troxel's md5 buffer copy/dup fix
814 - add RIPv1 fix
815 - add Frank's multicast flag fix
816
817 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
818 - update to latest CVS
819 - timestamped crypt_seqnum patch
820 - oi->on_write_q fix
821
822 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
823 - update to latest CVS
824 - add vtysh 'write-config (integrated|daemon)' patch
825 - always 'make rebuild' in vtysh/ to catch new commands
826
827 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
828 - update to 0.93b
829
830 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
831 - update to latest CVS
832 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
833
834 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
835 - update to current CVS
836 - add OSPF point to multipoint patch
837 - add OSPF bugfixes
838 - add BGP hash optimisation patch
839
840 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
841 - update to 0.93-pre1 / CVS
842 - add link state detection support
843 - add generic PtP and RFC3021 support
844 - various bug fixes
845
846 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
847 - Fix bug #51336
848
849 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
850 - Use generic initscript strings instead of initscript specific
851 ( "Starting foo: " -> "Starting $prog:" )
852
853 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
854 - Bump the release when rebuilding into the dist.
855
856 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
857 - built for Powertools
858
859 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
860 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
861 - Update to 0.91a
862 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
863 - Should be quite Red Hat'isque now.