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)
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.
11 ####################### Quagga configure options #########################
12 # with-feature options
13 %{!?with_snmp: %global with_snmp 1 }
14 %{!?with_vtysh: %global with_vtysh 1 }
15 %{!?with_tcp_zebra: %global with_tcp_zebra 0 }
16 %{!?with_vtysh: %global with_vtysh 1 }
17 %{!?with_pam: %global with_pam 1 }
18 %{!?with_ospfclient: %global with_ospfclient 1 }
19 %{!?with_ospfapi: %global with_ospfapi 1 }
20 %{!?with_irdp: %global with_irdp 1 }
21 %{!?with_rtadv: %global with_rtadv 1 }
22 %{!?with_isisd: %global with_isisd 1 }
23 %{!?with_pimd: %global with_pimd 1 }
24 %{!?with_nhrpd: %global with_nhrpd 1 }
25 %{!?with_shared: %global with_shared 1 }
26 %{!?with_multipath: %global with_multipath 64 }
27 %{!?quagga_user: %global quagga_user quagga }
28 %{!?vty_group: %global vty_group quaggavt }
29 %{!?with_fpm: %global with_fpm 0 }
30 %{!?with_watchquagga: %global with_watchquagga 1 }
31 # whether to build doc/quagga.html - requires a lot of TeX packages
32 %{!?with_texi2html: %global with_texi2html 0 }
35 %define _sysconfdir /etc/quagga
36 %define zeb_src %{_builddir}/%{name}-%{quaggaversion}
37 %define zeb_rh_src %{zeb_src}/redhat
38 %define zeb_docs %{zeb_src}/doc
40 # defines for configure
41 %define _localstatedir /var/run/quagga
42 ############################################################################
44 #### Version String tweak
45 # Remove invalid characters form version string and replace with _
46 %{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
47 %define quaggaversion @VERSION@
49 #### Check version of texi2html
50 # Old versions don't support "--number-footnotes" option.
52 %{expand: %%global texi2htmlversion %(type texi2html >/dev/null 2>&1 && (rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1) || echo 0 )}
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 %{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
59 # If init system is systemd, then always disable watchquagga
61 %if "%{initsystem}" == "systemd"
62 # Note: For systems with systemd, watchquagga will NOT be built. Systemd
63 # takes over the role of restarting crashed processes. Value will
64 # be overwritten with 0 below for systemd independent on the setting here
65 %global with_watchquagga 0
68 # if FPM is enabled, then enable tcp_zebra as well
71 %global with_tcp_zebra 1
74 # misc internal defines
75 %{!?quagga_uid: %global quagga_uid 92 }
76 %{!?quagga_gid: %global quagga_gid 92 }
77 %{!?vty_gid: %global vty_gid 85 }
79 %define daemon_list zebra ripd ospfd bgpd
81 %define daemonv6_list ripngd ospf6d
84 %define daemon_isisd isisd
86 %define daemon_isisd ""
90 %define daemon_pimd pimd
92 %define daemon_pimd ""
96 %define daemon_nhrpd nhrpd
98 %define daemon_nhrpd ""
101 %if %{with_watchquagga}
102 %define daemon_watchquagga watchquagga
104 %define daemon_watchquagga ""
107 %define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_watchquagga}
109 # allow build dir to be kept
110 %{!?keep_build: %global keep_build 0 }
112 #release sub-revision (the two digits after the CONFDATE)
113 %{!?release_rev: %global release_rev 01 }
115 Summary: Routing daemon
117 Version: %{rpmversion}
118 Release: @CONFDATE@%{release_rev}%{?dist}
120 Group: System Environment/Daemons
121 Source0: https://download.savannah.gnu.org/releases/quagga/%{name}-%{quaggaversion}.tar.gz
122 URL: https://www.quagga.net
124 Requires(pre): /sbin/install-info
125 Requires(preun): /sbin/install-info
126 Requires(post): /sbin/install-info
127 BuildRequires: autoconf patch libcap-devel groff
128 BuildRequires: perl-generators pkgconfig
129 %if %{with_texi2html}
130 BuildRequires: texi2html
133 BuildRequires: net-snmp-devel
137 BuildRequires: readline readline-devel ncurses ncurses-devel
141 BuildRequires: pam-devel
145 BuildRequires: c-ares-devel
148 %if "%{initsystem}" == "systemd"
149 BuildRequires: systemd
150 Requires(post): systemd
151 Requires(preun): systemd
152 Requires(postun): systemd
154 # Initscripts > 5.60 is required for IPv6 support
155 Requires(pre): initscripts >= 5.60
157 Provides: routingdaemon = %{version}-%{release}
158 BuildRoot: %{_tmppath}/%{name}-%{version}-root
159 #Obsoletes: mrt zebra quagga-sysvinit
161 %define __perl_requires %{zeb_rh_src}/quagga-filter-perl-requires.sh
164 Quagga is a free software routing protocol suite.
166 Quagga supports BGP, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM-SSM and NHRP.
169 Summary: contrib tools for quagga
170 Group: System Environment/Daemons
173 Contributed/3rd party tools which may be of use with quagga.
176 Summary: Header and object files for quagga development
177 Group: System Environment/Daemons
178 Requires: %{name} = %{version}-%{release}
181 The quagga-devel package contains the header and object files neccessary for
182 developing OSPF-API and quagga applications.
185 %setup -q -n quagga-%{quaggaversion}
190 --sysconfdir=%{_sysconfdir} \
191 --libdir=%{_libdir}/quagga \
192 --libexecdir=%{_libexecdir} \
193 --localstatedir=%{_localstatedir} \
201 %if %{with_multipath}
202 --enable-multipath=%{with_multipath} \
204 %if %{with_tcp_zebra}
210 %if %{with_ospfclient}
211 --enable-ospfclient=yes \
213 --enable-ospfclient=no\
216 --enable-ospfapi=yes \
218 --enable-ospfapi=no \
243 %if 0%{?quagga_user:1}
244 --enable-user=%quagga_user \
245 --enable-group=%quagga_user \
248 --enable-vty-group=%vty_group \
255 %if %{with_watchquagga}
256 --enable-watchquagga \
258 --disable-watchquagga \
260 --enable-gcc-rdynamic
264 %if %{with_texi2html}
266 %if %{texi2htmlversion} < 5
267 texi2html --number-sections quagga.texi
269 texi2html --number-footnotes --number-sections quagga.texi
275 mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
276 %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
277 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
279 # Remove this file, as it is uninstalled and causes errors when building on RH9
280 rm -rf %{buildroot}/usr/share/info/dir
282 # install /etc sources
283 %if "%{initsystem}" == "systemd"
284 mkdir -p %{buildroot}%{_unitdir}
285 for daemon in %{all_daemons} ; do
286 if [ x"${daemon}" != x"" ] ; then
287 install %{zeb_rh_src}/${daemon}.service \
288 %{buildroot}%{_unitdir}/${daemon}.service
292 mkdir -p %{buildroot}/etc/rc.d/init.d
293 for daemon in %{all_daemons} ; do
294 if [ x"${daemon}" != x"" ] ; then
295 install %{zeb_rh_src}/${daemon}.init \
296 %{buildroot}/etc/rc.d/init.d/${daemon}
301 install -m644 %{zeb_rh_src}/quagga.pam \
302 %{buildroot}/etc/pam.d/quagga
303 install -m644 %{zeb_rh_src}/quagga.logrotate \
304 %{buildroot}/etc/logrotate.d/quagga
305 install -m644 %{zeb_rh_src}/quagga.sysconfig \
306 %{buildroot}/etc/sysconfig/quagga
307 install -d -m750 %{buildroot}/var/run/quagga
310 %if 0%{?_tmpfilesdir:1}
311 install -d -m 755 %{buildroot}/%{_tmpfilesdir}
312 install -p -m 644 %{zeb_rh_src}/quagga-tmpfs.conf \
313 %{buildroot}/%{_tmpfilesdir}/quagga.conf
319 if getent group %vty_group > /dev/null ; then : ; else \
320 /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
323 # add quagga user and group
324 %if 0%{?quagga_user:1}
325 # Ensure that quagga_gid gets correctly allocated
326 if getent group %quagga_user >/dev/null; then : ; else \
327 /usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
329 if getent passwd %quagga_user >/dev/null ; then : ; else \
330 /usr/sbin/useradd -u %quagga_uid -g %quagga_gid -G %vty_group \
331 -M -r -s /sbin/nologin -c "Quagga routing suite" \
332 -d %_localstatedir %quagga_user 2> /dev/null || : ; \
337 # zebra_spec_add_service <service name> <port/proto> <comment>
338 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
340 zebra_spec_add_service ()
342 # Add port /etc/services entry if it isn't already there
343 if [ -f /etc/services ] && \
344 ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
345 echo "$1 $2 # $3" >> /etc/services
349 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
350 zebra_spec_add_service zebra 2601/tcp "zebra vty"
351 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
352 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
353 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
354 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
355 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
357 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
360 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
363 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
366 zebra_spec_add_service nhrpd 2612/tcp "NHRPd vty"
369 %if "%{initsystem}" == "systemd"
370 for daemon in %all_daemons ; do
371 %systemd_post ${daemon}.service
374 for daemon in %all_daemons ; do
375 /sbin/chkconfig --add ${daemon}
379 if [ -f %{_infodir}/%{name}.inf* ]; then
380 /sbin/install-info %{_infodir}/quagga.info %{_infodir}/dir
383 # Create dummy files if they don't exist so basic functions can be used.
384 if [ ! -e %{_sysconfdir}/zebra.conf ]; then
385 echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
386 %if 0%{?quagga_user:1}
387 chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
389 chmod 640 %{_sysconfdir}/zebra.conf
391 for daemon in %{all_daemons} ; do
392 if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
393 touch %{_sysconfdir}/${daemon}.conf
394 %if 0%{?quagga_user:1}
395 chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
399 %if %{with_watchquagga}
400 # No config for watchquagga - this is part of /etc/sysconfig/quagga
401 rm -f %{_sysconfdir}/watchquagga.*
404 if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
405 touch %{_sysconfdir}/vtysh.conf
406 chmod 640 %{_sysconfdir}/vtysh.conf
408 chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
413 if [ "$1" -ge 1 ]; then
414 # Find out which daemons need to be restarted.
415 for daemon in %all_daemons ; do
416 if [ -f /var/lock/subsys/${daemon} ]; then
417 eval restart_${daemon}=yes
419 eval restart_${daemon}=no
422 # Rename restart flags for daemons handled specially.
423 running_zebra="$restart_zebra"
425 %if %{with_watchquagga}
426 running_watchquagga="$restart_watchquagga"
427 restart_watchquagga=no
430 %if "%{initsystem}" == "systemd"
434 # No watchquagga for systemd version
436 # Stop all daemons other than zebra.
437 for daemon in %all_daemons ; do
438 eval restart=\$restart_${daemon}
439 [ "$restart" = yes ] && \
440 %systemd_postun_with_restart ${daemon}.service
443 [ "$running_zebra" = yes ] && \
444 %systemd_postun_with_restart $daemon.service
445 # Start all daemons other than zebra.
446 for daemon in %all_daemons ; do
447 eval restart=\$restart_${daemon}
448 [ "$restart" = yes ] && \
449 %systemd_post ${daemon}.service
455 %if %{with_watchquagga}
456 # Stop watchquagga first.
457 [ "$running_watchquagga" = yes ] && \
458 /etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
460 # Stop all daemons other than zebra and watchquagga.
461 for daemon in %all_daemons ; do
462 eval restart=\$restart_${daemon}
463 [ "$restart" = yes ] && \
464 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
467 [ "$running_zebra" = yes ] && \
468 /etc/rc.d/init.d/zebra restart >/dev/null 2>&1
469 # Start all daemons other than zebra and watchquagga.
470 for daemon in %all_daemons ; do
471 eval restart=\$restart_${daemon}
472 [ "$restart" = yes ] && \
473 /etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
475 %if %{with_watchquagga}
476 # Start watchquagga last.
477 # Avoid postun scriptlet error if watchquagga is not running.
478 [ "$running_watchquagga" = yes ] && \
479 /etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
484 if [ -f %{_infodir}/%{name}.inf* ]; then
485 /sbin/install-info --delete %{_infodir}/quagga.info %{_infodir}/dir
489 %if "%{initsystem}" == "systemd"
493 if [ "$1" = "0" ]; then
494 for daemon in %all_daemons ; do
495 %systemd_preun ${daemon}.service
502 if [ "$1" = "0" ]; then
503 for daemon in %all_daemons ; do
504 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
505 /sbin/chkconfig --del ${daemon}
511 %if !0%{?keep_build:1}
516 %defattr(-,root,root)
517 %doc */*.sample* AUTHORS COPYING
518 %if %{with_texi2html}
522 %doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
523 %if 0%{?quagga_user:1}
524 %dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
525 %dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
526 %dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
528 %dir %attr(750,root,root) %{_sysconfdir}
529 %dir %attr(750,root,root) /var/log/quagga
530 %dir %attr(750,root,root) /var/run/quagga
533 %attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
535 %{_infodir}/quagga.info*.gz
537 %if %{with_watchquagga}
538 %{_mandir}/man*/watchquagga.*
544 %if %{with_watchquagga}
545 %{_sbindir}/watchquagga
559 %{_libdir}/quagga/lib*.so
560 %{_libdir}/quagga/lib*.so.?
561 %attr(755,root,root) %{_libdir}/quagga/lib*.so.?.?.?
566 %config /etc/quagga/[!v]*
567 %if "%{initsystem}" == "systemd"
568 %{_unitdir}/*.service
570 %config /etc/rc.d/init.d/zebra
571 %if %{with_watchquagga}
572 %config /etc/rc.d/init.d/watchquagga
574 %config /etc/rc.d/init.d/ripd
575 %config /etc/rc.d/init.d/ospfd
576 %config /etc/rc.d/init.d/bgpd
577 %config /etc/rc.d/init.d/ripngd
578 %config /etc/rc.d/init.d/ospf6d
580 %config /etc/rc.d/init.d/isisd
583 %config /etc/rc.d/init.d/pimd
586 %config /etc/rc.d/init.d/nhrpd
589 %config(noreplace) /etc/sysconfig/quagga
590 %config(noreplace) /etc/pam.d/quagga
591 %config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
592 %{_tmpfilesdir}/quagga.conf
595 %defattr(-,root,root)
596 %doc AUTHORS COPYING %attr(0644,root,root) tools
599 %defattr(-,root,root)
601 %if %{with_ospfclient}
602 %{_sbindir}/ospfclient
604 %dir %{_libdir}/quagga/
605 %{_libdir}/quagga/*.a
606 %{_libdir}/quagga/*.la
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
612 %dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
613 %{_includedir}/%name/ospfapi/*.h
617 * Sun Mar 5 2017 Paul Jakma <paul@jakma.org>
619 - Make texi2html conditional, disable by default to avoid needing TeX
622 * Mon Feb 27 2017 Paul Jakma <paul@jakma.org>
623 - Apply 0001-systemd-various-service-file-improvements.patch from Fedora
624 - Review Fedora spec file and sync up with any useful differences, inc:
625 - Add tmpfiles.d config for Quagga from Fedora
626 - Add quagga-filter-perl-requires.sh from Fedora.
627 - Move libs to %%{_libdir}/quagga as per Fedora
628 - use systemd_postun_with_restart for postun
630 * Tue Feb 14 2017 Timo Teräs <timo.teras@iki.fi>
633 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
634 - remove with_ipv6 conditionals, always build v6
635 - Fix UTF-8 char in spec changelog
636 - remove quagga.pam.stack, long deprecated.
638 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
639 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
641 - Remove support for old fedora 4/5
642 - Fix for package nameing
643 - Fix Weekdays of previous changelogs (bogus dates)
644 - Add conditional logic to only build tex footnotes with supported texi2html
645 - Added pimd to files section and fix double listing of /var/lib*/quagga
646 - Numerous fixes to unify upstart/systemd startup into same spec file
647 - Only allow use of watchquagga for non-systemd systems. no need with systemd
649 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
651 - add a default define for with_pimd
653 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
654 - Steal some changes from Fedora spec file:
655 - Add with_rtadv variable
656 - Test for groups/users with getent before group/user adding
657 - Readline need not be an explicit prerequisite
658 - install-info delete should be postun, not preun
660 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
661 - on package upgrade, implement careful, phased restart logic
662 - use gcc -rdynamic flag when linking for better backtraces
664 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
665 - daemonv6_list should contain only IPv6 daemons
667 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
669 - on upgrade, all daemons should be condrestart'ed
670 - on removal, all daemons should be stopped
672 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
673 - Use makeinfo --html to generate quagga.html
675 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
676 - Fix with_ipv6 set to 0 build
678 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
681 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
682 - Make directories be owned by the packages concerned
683 - Update logrotate scripts to use correct path to killall and use pid files
685 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
688 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
689 - build snmp support by default
691 - build with shared libs
692 - devel subpackage for archives and headers
694 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
695 - updated sysconfig files to specify local dir
696 - added ospf_dump.c crash quick fix patch
697 - added ospfd persistent interface configuration patch
699 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
701 - integrate RH sysconfig patch to specify daemon options (RH)
702 - default to have vty listen only to 127.1 (RH)
703 - add user with fixed UID/GID (RH)
704 - create user with shell /sbin/nologin rather than /bin/false (RH)
705 - stop daemons on uninstall (RH)
706 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
708 - cleanup tasks carried out for every daemon
710 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
711 - Fix -devel package to include all files
714 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
716 - Sync to Quagga release 0.96
718 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
719 - zebra privileges support
721 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
722 - Fix mem leak in 'show thread cpu'
723 - Ralph Keller's OSPF-API
724 - Amir: Fix configure.ac for net-snmp
726 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
727 - ospfd IOS prefix to interface matching for 'network' statement
728 - temporary fix for PtP and IPv6
729 - sync to zebra.org CVS
731 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
732 - update to latest cvs
733 - Yon's "show thread cpu" patch - 17217
734 - walk up tree - 17218
735 - ospfd NSSA fixes - 16681
736 - ospfd nsm fixes - 16824
737 - ospfd OLSA fixes and new feature - 16823
738 - KAME and ifindex fixes - 16525
739 - spec file changes to allow redhat files to be in tree
741 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
742 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
743 - Fixed up some build requirements (patch)
744 - Added conditional build requirements for vtysh / snmp
745 - Added conditional to files for _bindir depending on vtysh
747 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
748 - update to latest CVS
749 - add Greg Troxel's md5 buffer copy/dup fix
751 - add Frank's multicast flag fix
753 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
754 - update to latest CVS
755 - timestamped crypt_seqnum patch
758 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
759 - update to latest CVS
760 - add vtysh 'write-config (integrated|daemon)' patch
761 - always 'make rebuild' in vtysh/ to catch new commands
763 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
766 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
767 - update to latest CVS
768 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
770 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
771 - update to current CVS
772 - add OSPF point to multipoint patch
774 - add BGP hash optimisation patch
776 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
777 - update to 0.93-pre1 / CVS
778 - add link state detection support
779 - add generic PtP and RFC3021 support
782 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
785 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
786 - Use generic initscript strings instead of initscript specific
787 ( "Starting foo: " -> "Starting $prog:" )
789 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
790 - Bump the release when rebuilding into the dist.
792 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
793 - built for Powertools
795 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
796 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
798 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
799 - Should be quite Red Hat'isque now.