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