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