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