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