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