]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
redhat: remove superfluous Requires for json-c
[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 # 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: 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=%{configdir} \
234 --localstatedir=%{rundir} \
235 --disable-werror \
236 --enable-irdp \
237 %if !%{with_shared}
238 --disable-shared \
239 %endif
240 %if %{with_multipath}
241 --enable-multipath=%{with_multipath} \
242 %endif
243 --enable-vtysh \
244 %if %{with_ospfclient}
245 --enable-ospfclient \
246 %else
247 --disable-ospfclient\
248 %endif
249 %if %{with_ospfapi}
250 --enable-ospfapi \
251 %else
252 --disable-ospfapi \
253 %endif
254 %if %{with_rtadv}
255 --enable-rtadv \
256 %else
257 --disable-rtadv \
258 %endif
259 %if %{with_ldpd}
260 --enable-ldpd \
261 %else
262 --disable-ldpd \
263 %endif
264 %if %{with_pimd}
265 --enable-pimd \
266 %else
267 --disable-pimd \
268 %endif
269 %if %{with_pbrd}
270 --enable-pbrd \
271 %else
272 --disable-pbrd \
273 %endif
274 %if %{with_nhrpd}
275 --enable-nhrpd \
276 %else
277 --disable-nhrpd \
278 %endif
279 %if %{with_eigrpd}
280 --enable-eigrpd \
281 %else
282 --disable-eigrpd \
283 %endif
284 %if %{with_babeld}
285 --enable-babeld \
286 %else
287 --disable-babeld \
288 %endif
289 %if %{with_pam}
290 --with-libpam \
291 %endif
292 %if 0%{?frr_user:1}
293 --enable-user=%frr_user \
294 --enable-group=%frr_user \
295 %endif
296 %if 0%{?vty_group:1}
297 --enable-vty-group=%vty_group \
298 %endif
299 %if %{with_fpm}
300 --enable-fpm \
301 %else
302 --disable-fpm \
303 %endif
304 %if %{with_watchfrr}
305 --enable-watchfrr \
306 %else
307 --disable-watchfrr \
308 %endif
309 %if %{with_bgp_vnc}
310 --enable-bgp-vnc \
311 %else
312 --disable-bgp-vnc \
313 %endif
314 --enable-isisd \
315 %if "%{initsystem}" == "systemd"
316 --enable-systemd \
317 %endif
318 %if %{with_rpki}
319 --enable-rpki
320 %else
321 --disable-rpki
322 %endif
323
324 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" SPHINXBUILD=%{sphinx}
325
326 pushd doc
327 make SPHINXBUILD=%{sphinx} info
328 popd
329
330 %install
331 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
332 %{buildroot}/var/log/frr %{buildroot}%{_infodir}
333 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" SPHINXBUILD=%{sphinx} install
334
335 # Remove this file, as it is uninstalled and causes errors when building on RH9
336 rm -rf %{buildroot}/usr/share/info/dir
337
338 # Remove debian init script if it was installed
339 rm -f %{buildroot}%{_sbindir}/frr
340
341 # kill bogus libtool files for modules
342 rm -f %{buildroot}%{_libdir}/frr/modules/*.la
343
344 # install /etc sources
345 %if "%{initsystem}" == "systemd"
346 mkdir -p %{buildroot}%{_unitdir}
347 install -m644 %{zeb_rh_src}/frr.service %{buildroot}%{_unitdir}/frr.service
348 install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
349 %else
350 mkdir -p %{buildroot}%{_initddir}
351 install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
352 ln -s %{_sbindir}/frr %{buildroot}%{_initddir}/frr
353 %endif
354
355 install %{zeb_rh_src}/daemons %{buildroot}%{_sysconfdir}/frr
356 install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
357 install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
358 install -d -m750 %{buildroot}%{rundir}
359
360 %pre
361 # add vty_group
362 %if 0%{?vty_group:1}
363 if getent group %vty_group > /dev/null ; then : ; else \
364 /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
365 %endif
366
367 # add frr user and group
368 %if 0%{?frr_user:1}
369 # Ensure that frr_gid gets correctly allocated
370 if getent group %frr_user >/dev/null; then : ; else \
371 /usr/sbin/groupadd -g %frr_gid %frr_user > /dev/null || : ; \
372 fi
373 if getent passwd %frr_user >/dev/null ; then : ; else \
374 /usr/sbin/useradd -u %frr_uid -g %frr_gid \
375 -M -r -s /sbin/nologin -c "FRRouting suite" \
376 -d %{rundir} %frr_user 2> /dev/null || : ; \
377 fi
378 %if 0%{?vty_group:1}
379 /usr/sbin/usermod -a -G %vty_group %frr_user
380 %endif
381 %endif
382
383
384 %post
385 # zebra_spec_add_service <service name> <port/proto> <comment>
386 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
387
388 zebra_spec_add_service ()
389 {
390 # Add port /etc/services entry if it isn't already there
391 if [ -f %{_sysconfdir}/services ] && \
392 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services | %__grep -wq $1 ; then
393 echo "$1 $2 # $3" >> %{_sysconfdir}/services
394 fi
395 }
396
397 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
398 zebra_spec_add_service zebra 2601/tcp "zebra vty"
399 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
400 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
401 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
402 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
403 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
404 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
405 %if %{with_ospfapi}
406 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
407 %endif
408 %if %{with_babeld}
409 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
410 %endif
411 %if %{with_nhrpd}
412 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
413 %endif
414 %if %{with_pimd}
415 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
416 %endif
417 %if %{with_pbrd}
418 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
419 %endif
420 %if %{with_ldpd}
421 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
422 %endif
423 %if %{with_eigrpd}
424 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
425 %endif
426
427 %if "%{initsystem}" == "systemd"
428 for daemon in %all_daemons ; do
429 %systemd_post frr.service
430 done
431 %else
432 /sbin/chkconfig --add frr
433 %endif
434
435 # Fix bad path in previous config files
436 # Config files won't get replaced by default, so we do this ugly hack to fix it
437 %__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{configdir}/daemons 2> /dev/null || true
438
439 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
440 # we install or upgrade to a frr built with systemd
441 %if "%{initsystem}" == "systemd"
442 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
443 %endif
444
445 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
446
447 # Create dummy files if they don't exist so basic functions can be used.
448 if [ ! -e %{configdir}/zebra.conf ]; then
449 echo "hostname `hostname`" > %{configdir}/zebra.conf
450 %if 0%{?frr_user:1}
451 chown %frr_user:%frr_user %{configdir}/zebra.conf*
452 %endif
453 chmod 640 %{configdir}/zebra.conf*
454 fi
455 for daemon in %{all_daemons} ; do
456 if [ x"${daemon}" != x"" ] ; then
457 if [ ! -e %{configdir}/${daemon}.conf ]; then
458 touch %{configdir}/${daemon}.conf
459 %if 0%{?frr_user:1}
460 chown %frr_user:%frr_user %{configdir}/${daemon}.conf*
461 %endif
462 fi
463 fi
464 done
465 %if 0%{?frr_user:1}
466 chown %frr_user:%frr_user %{configdir}/daemons
467 %endif
468
469 %if %{with_watchfrr}
470 # No config for watchfrr - this is part of /etc/sysconfig/frr
471 rm -f %{configdir}/watchfrr.*
472 %endif
473
474 if [ ! -e %{configdir}/vtysh.conf ]; then
475 touch %{configdir}/vtysh.conf
476 chmod 640 %{configdir}/vtysh.conf
477 %if 0%{?frr_user:1}
478 %if 0%{?vty_group:1}
479 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
480 %endif
481 %endif
482 fi
483
484 %postun
485 if [ "$1" -ge 1 ]; then
486 #
487 # Upgrade from older version
488 #
489 %if "%{initsystem}" == "systemd"
490 ##
491 ## Systemd Version
492 ##
493 %systemd_postun_with_restart frr.service
494 %else
495 ##
496 ## init.d Version
497 ##
498 service frr restart >/dev/null 2>&1
499 %endif
500 :
501 fi
502
503 %preun
504 %if "%{initsystem}" == "systemd"
505 ##
506 ## Systemd Version
507 ##
508 if [ $1 -eq 0 ] ; then
509 %systemd_preun frr.service
510 fi
511 %else
512 ##
513 ## init.d Version
514 ##
515 if [ $1 -eq 0 ] ; then
516 service frr stop >/dev/null 2>&1
517 /sbin/chkconfig --del frr
518 fi
519 %endif
520 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
521
522 %clean
523 %if !0%{?keep_build:1}
524 rm -rf %{buildroot}
525 %endif
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.