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