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