distro/redhat: Update to support CentOS/RHEL/Fedora, upstart/init/systemd

* redhat/quagga.spec.in: Update to support CentOS, RHEL and Fedora, and
  support the various init systems across different versions of these
  distros, e.g.  upstart/init/systemd.

  Clean up various warnings from rpmlint.

  Remove configure options that are gone.

A few edits and commit message by:
Paul Jakma <paul.jakma@hpe.com> / <paul@jakma.org>

(cherry picked from commit a5efdb60905049e1224a020b78dd9699bdd15b29)
This commit is contained in:
Martin Winter 2015-10-29 22:15:42 -07:00 committed by Daniel Walton
parent 30da458561
commit f755bf6de7
3 changed files with 424 additions and 145 deletions

View File

@ -3,4 +3,6 @@ EXTRA_DIST = bgpd.init bgpd.service isisd.init \
isisd.service ospf6d.init ospf6d.service ospfd.init ospfd.service \
quagga.logrotate quagga.pam quagga.spec \
quagga.sysconfig ripd.init ripd.service ripngd.init ripngd.service \
watchquagga.init pimd.init pimd.service zebra.init zebra.service
watchquagga.init pimd.init pimd.service zebra.init zebra.service \
README.rpm_build.md

128
redhat/README.rpm_build.md Normal file
View File

@ -0,0 +1,128 @@
Building your own Quagga RPM
============================
(Tested on CentOS 6, CentOS 7 and Fedora 22.)
1. Install the following packages to build the RPMs:
yum install git autoconf automake libtool make gawk readline-devel \
texinfo dejagnu net-snmp-devel groff rpm-build net-snmp-devel \
libcap-devel texi2html
(use `dnf install` on new Fedora instead of `yum install `)
2. Checkout Quagga under a **unpriviledged** user account
git clone git://git.savannah.nongnu.org/quagga.git quagga
3. Run Bootstrap and make distribution tar.gz
cd quagga
./bootstrap.sh
./configure --with-pkg-extra-version=-MyRPMVersion
make dist
Note: configure parameters are not important for the RPM building - except the
`with-pkg-extra-version` if you want to give the RPM a specific name to
mark your own unoffical build
4. Create RPM directory structure and populate with sources
mkdir rpmbuild
mkdir rpmbuild/SOURCES
mkdir rpmbuild/SPECS
cp redhat/*.spec rpmbuild/SPECS/
cp quagga*.tar.gz rpmbuild/SOURCES/
5. Edit rpm/SPECS/quagga.spec with configuration as needed
Look at the beginning of the file and adjust the following parameters to enable
or disable features as required:
################# Quagga configure options ####################
# with-feature options
%{!?with_snmp: %global with_snmp 1 }
%{!?with_vtysh: %global with_vtysh 1 }
%{!?with_ospf_te: %global with_ospf_te 1 }
%{!?with_opaque_lsa: %global with_opaque_lsa 1 }
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
%{!?with_vtysh: %global with_vtysh 1 }
%{!?with_pam: %global with_pam 1 }
%{!?with_ospfclient: %global with_ospfclient 1 }
%{!?with_ospfapi: %global with_ospfapi 1 }
%{!?with_irdp: %global with_irdp 1 }
%{!?with_rtadv: %global with_rtadv 1 }
%{!?with_isisd: %global with_isisd 1 }
%{!?with_pimd: %global with_pimd 1 }
%{!?with_shared: %global with_shared 1 }
%{!?with_multipath: %global with_multipath 64 }
%{!?quagga_user: %global quagga_user quagga }
%{!?vty_group: %global vty_group quaggavt }
%{!?with_fpm: %global with_fpm 0 }
%{!?with_watchquagga: %global with_watchquagga 1 }
6. Build the RPM
rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/quagga.spec
DONE.
If all works correctly, then you should end up with the RPMs under `rpmbuild/RPMS`
and the Source RPM under `rpmbuild/SRPMS`
Enabling daemons after installation of the package:
---------------------------------------------------
### init.d based systems (ie CentOS 6):
1. Enable the daemons as needed to run after boot (Zebra is mandatory)
chkconfig zebra on
chkconfig ospfd on
chkconfig ospf6d on
chkconfig bgpd on
... etc
2. If you want to run `watchquagga`, then configure `/etc/sysconfig/quagga`
and uncomment the line with the daemons for `watchquagga` to monitor,
then enable watchquagga
chkconfig watchquagga on
3. Check your firewall / IPtables to make sure the routing protocols are
allowed.
4. Start the daemons (or reboot)
service zebra start
service bgpd start
service ospfd start
... etc
Configuration is stored in `/etc/quagga/*.conf` files.
### systemd based systems (ie CentOS 7, Fedora 22)
1. Enable the daemons as needed to run after boot (Zebra is mandatory)
systemctl enable zebra
systemctl enable ospfd
systemctl enable ospf6d
systemctl enable bgpd
... etc
Note: There is no watchquagga on systemd based systems. Systemd contains
the functionality of monitoring and restarting daemons.
2. Check your firewall / IPtables to make sure the routing protocols are
allowed.
3. Start the daemons (or reboot)
systemctl start zebra
systemctl start bgpd
systemctl start ospfd
... etc
Configuration is stored in `/etc/quagga/*.conf` files.

View File

@ -2,6 +2,7 @@
#
# Some can be overriden on rpmbuild commandline with:
# rpmbuild --define 'variable value'
# (use any value, ie 1 for flag "with_XXXX" definitions)
#
# E.g. rpmbuild --define 'release_rev 02' may be useful if building
# rpms again and again on the same day, so the newer rpms can be installed.
@ -9,107 +10,141 @@
####################### Quagga configure options #########################
# with-feature options
%{!?with_snmp: %define with_snmp 1 }
%{!?with_vtysh: %define with_vtysh 1 }
%{!?with_ospf_te: %define with_ospf_te 1 }
%{!?with_nssa: %define with_nssa 1 }
%{!?with_opaque_lsa: %define with_opaque_lsa 1 }
%{!?with_tcp_zebra: %define with_tcp_zebra 0 }
%{!?with_vtysh: %define with_vtysh 1 }
%{!?with_pam: %define with_pam 1 }
%{!?with_ospfclient: %define with_ospfclient 1 }
%{!?with_ospfapi: %define with_ospfapi 1 }
%{!?with_irdp: %define with_irdp 1 }
%{!?with_rtadv: %define with_rtadv 1 }
%{!?with_isisd: %define with_isisd 1 }
%{!?with_pimd: %define with_pimd 1 }
%{!?with_shared: %define with_shared 1 }
%{!?with_multipath: %define with_multipath 64 }
%{!?quagga_user: %define quagga_user quagga }
%{!?vty_group: %define vty_group quaggavty }
%{!?with_snmp: %global with_snmp 1 }
%{!?with_vtysh: %global with_vtysh 1 }
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
%{!?with_vtysh: %global with_vtysh 1 }
%{!?with_pam: %global with_pam 1 }
%{!?with_ospfclient: %global with_ospfclient 1 }
%{!?with_ospfapi: %global with_ospfapi 1 }
%{!?with_irdp: %global with_irdp 1 }
%{!?with_rtadv: %global with_rtadv 1 }
%{!?with_isisd: %global with_isisd 1 }
%{!?with_pimd: %global with_pimd 1 }
%{!?with_shared: %global with_shared 1 }
%{!?with_multipath: %global with_multipath 64 }
%{!?quagga_user: %global quagga_user quagga }
%{!?vty_group: %global vty_group quaggavt }
%{!?with_fpm: %global with_fpm 0 }
%{!?with_watchquagga: %global with_watchquagga 1 }
# path defines
%define _sysconfdir /etc/quagga
%define zeb_src %{_builddir}/%{name}-%{version}
%define zeb_src %{_builddir}/%{name}-%{quaggaversion}
%define zeb_rh_src %{zeb_src}/redhat
%define zeb_docs %{zeb_src}/doc
# defines for configure
%define _libexecdir %{_exec_prefix}/libexec/quagga
%define _libdir %{_exec_prefix}/%{_lib}/quagga
%define _includedir %{_prefix}/include
%define _localstatedir /var/run/quagga
############################################################################
####################### distro specific tweaks #############################
# default distro. Override with rpmbuild -D "dist XXX"
%{expand: %%define default_dist %(rpm -q --qf 'fc%%{VERSION}' fedora-release | grep -v 'not installed')}
%{!?dist: %define dist %{default_dist}}
#### Version String tweak
# Remove invalid characters form version string and replace with _
%{expand: %%define rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
%define quaggaversion @VERSION@
# as distros change packages we depend on, our Requires have to change, sadly.
%define quagga_buildreqs texi2html texinfo autoconf pam-devel
%define quagga_buildreqs %{expand:%{quagga_buildreqs}} patch libcap-devel
#### Check version of texi2html
# Old versions don't support "--number-footnotes" option.
%{expand: %%global texi2htmlversion %(rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1 )}
# FC4 and 5 split texi2html out of tetex package.
%define quagga_buildreqs %{expand:%{quagga_buildreqs}} texi2html
#### Check for systemd or init.d (upstart)
# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
#
# If init system is systemd, then always disable watchquagga
#
%if "%{initsystem}" == "systemd"
# Note: For systems with systemd, watchquagga will NOT be built. Systemd
# takes over the role of restarting crashed processes. Value will
# be overwritten with 0 below for systemd independent on the setting here
%global with_watchquagga 0
%endif
# man page probably needs groff for groff_ms macros
%define quagga_buildreqs %{expand:%{quagga_buildreqs}} groff
############################################################################
# if FPM is enabled, then enable tcp_zebra as well
#
%if %{with_fpm}
%global with_tcp_zebra 1
%endif
# misc internal defines
%{!?quagga_uid: %define quagga_uid 92 }
%{!?quagga_gid: %define quagga_gid 92 }
%{!?vty_gid: %define vty_gid 85 }
%define daemon_list zebra ripd ospfd bgpd
%define daemonv6_list ripngd ospf6d
%if %{with_isisd}
%define daemon_other isisd
%define daemon_isisd isisd
%else
%define daemon_other ""
%define daemon_isisd ""
%endif
%define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_other} watchquagga
%if %{with_pimd}
%define daemon_pimd pimd
%else
%define daemon_pimd ""
%endif
%if %{with_watchquagga}
%define daemon_watchquagga watchquagga
%else
%define daemon_watchquagga ""
%endif
%define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_watchquagga}
# allow build dir to be kept
%{!?keep_build: %define keep_build 0 }
%{!?keep_build: %global keep_build 0 }
#release sub-revision (the two digits after the CONFDATE)
%{!?release_rev: %define release_rev 01 }
Summary: Routing daemon
Name: quagga
Version: @VERSION@
Release: @CONFDATE@%{release_rev}
License: GPL
Group: System Environment/Daemons
Source0: http://www.quagga.net/snapshots/cvs/%{name}-%{version}.tar.gz
URL: http://www.quagga.net
Name: quagga
Version: %{rpmversion}
Release: @CONFDATE@%{release_rev}%{?dist}
License: GPLv2+
Group: System Environment/Daemons
Source0: http://download.savannah.gnu.org/releases/quagga/%{name}-%{quaggaversion}.tar.gz
URL: http://www.quagga.net
Requires: ncurses
Requires(pre): /sbin/install-info
Requires(preun): /sbin/install-info
Requires(post): /sbin/install-info
BuildRequires: texi2html texinfo autoconf patch libcap-devel groff
%if %{with_snmp}
BuildRequires: net-snmp-devel
Requires(pre): net-snmp
Requires: net-snmp
%endif
%if %{with_vtysh}
BuildRequires: readline readline-devel ncurses ncurses-devel
Requires(pre): ncurses
Requires: ncurses
%endif
BuildRequires: %{quagga_buildreqs}
%if %{with_pam}
BuildRequires: pam-devel
Requires: pam
%endif
%if "%{initsystem}" == "systemd"
BuildRequires: systemd
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%else
# Initscripts > 5.60 is required for IPv6 support
Requires(pre): initscripts >= 5.60
Requires(pre): ncurses pam
Requires(pre): /sbin/install-info
Provides: routingdaemon
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Obsoletes: bird gated mrt zebra
%endif
Provides: routingdaemon = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Obsoletes: bird gated mrt zebra quagga-sysvinit
%description
Quagga is a free software that manages TCP/IP based routing
protocol. It takes multi-server and multi-thread approach to resolve
the current complexity of the Internet.
Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, and RIPng.
Quagga supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng and PIM.
Quagga is intended to be used as a Route Server and a Route Reflector. It is
not a toolkit, it provides full routing power under a new architecture.
@ -127,13 +162,14 @@ Contributed/3rd party tools which may be of use with quagga.
%package devel
Summary: Header and object files for quagga development
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
%description devel
The quagga-devel package contains the header and object files neccessary for
developing OSPF-API and quagga applications.
%prep
%setup -q
%setup -q -n quagga-%{quaggaversion}
%build
@ -148,6 +184,11 @@ developing OSPF-API and quagga applications.
#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
%configure \
--sysconfdir=%{_sysconfdir} \
--libdir=%{_libdir} \
--libexecdir=%{_libexecdir} \
--localstatedir=%{_localstatedir} \
--disable-werror \
%if !%{with_shared}
--disable-shared \
%endif
@ -160,15 +201,6 @@ developing OSPF-API and quagga applications.
%if %{with_tcp_zebra}
--enable-tcp-zebra \
%endif
%if %{with_nssa}
--enable-nssa \
%endif
%if %{with_opaque_lsa}
--enable-opaque-lsa \
%endif
%if %{with_ospf_te}
--enable-ospf-te \
%endif
%if %{with_vtysh}
--enable-vtysh \
%endif
@ -200,57 +232,79 @@ developing OSPF-API and quagga applications.
%if %{with_pam}
--with-libpam \
%endif
%if %quagga_user
%if 0%{?quagga_user:1}
--enable-user=%quagga_user \
--enable-group=%quagga_user \
%endif
%if %vty_group
%if 0%{?vty_group:1}
--enable-vty-group=%vty_group \
%endif
--enable-netlink --enable-gcc-rdynamic
%if %{with_fpm}
--enable-fpm \
%else
--disable-fpm \
%endif
%if %{with_watchquagga}
--enable-watchquagga \
%else
--disable-watchquagga \
%endif
--enable-gcc-rdynamic
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
pushd doc
%if %{texi2htmlversion} < 5
texi2html --number-sections quagga.texi
%else
texi2html --number-footnotes --number-sections quagga.texi
%endif
popd
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d,pam.d} \
$RPM_BUILD_ROOT/var/log/quagga $RPM_BUILD_ROOT%{_infodir}
make install \
DESTDIR=$RPM_BUILD_ROOT
mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
%{buildroot}/var/log/quagga %{buildroot}%{_infodir}
make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
# Remove this file, as it is uninstalled and causes errors when building on RH9
rm -rf $RPM_BUILD_ROOT/usr/share/info/dir
rm -rf %{buildroot}/usr/share/info/dir
# install etc sources
# install /etc sources
%if "%{initsystem}" == "systemd"
mkdir -p %{buildroot}%{_unitdir}
for daemon in %{all_daemons} ; do
if [ x"${daemon}" != x"" ] ; then
install %{zeb_rh_src}/${daemon}.service \
%{buildroot}%{_unitdir}/${daemon}.service
fi
done
%else
mkdir -p %{buildroot}/etc/rc.d/init.d
for daemon in %{all_daemons} ; do
if [ x"${daemon}" != x"" ] ; then
install %{zeb_rh_src}/${daemon}.init \
$RPM_BUILD_ROOT/etc/rc.d/init.d/${daemon}
%{buildroot}/etc/rc.d/init.d/${daemon}
fi
done
%endif
install -m644 %{zeb_rh_src}/quagga.pam \
$RPM_BUILD_ROOT/etc/pam.d/quagga
%{buildroot}/etc/pam.d/quagga
install -m644 %{zeb_rh_src}/quagga.logrotate \
$RPM_BUILD_ROOT/etc/logrotate.d/quagga
%{buildroot}/etc/logrotate.d/quagga
install -m644 %{zeb_rh_src}/quagga.sysconfig \
$RPM_BUILD_ROOT/etc/sysconfig/quagga
install -d -m750 $RPM_BUILD_ROOT/var/run/quagga
%{buildroot}/etc/sysconfig/quagga
install -d -m750 %{buildroot}/var/run/quagga
%pre
# add vty_group
%if %vty_group
%if 0%{?vty_group:1}
if getent group %vty_group > /dev/null ; then : ; else \
/usr/sbin/groupadd -r %vty_group > /dev/null || : ; fi
/usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
%endif
# add quagga user and group
%if %quagga_user
%if 0%{?quagga_user:1}
# Ensure that quagga_gid gets correctly allocated
if getent group %quagga_user >/dev/null; then : ; else \
/usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
@ -292,77 +346,145 @@ zebra_spec_add_service isisd 2608/tcp "ISISd vty"
zebra_spec_add_service pimd 2611/tcp "PIMd vty"
%endif
for daemon in %daemon_list ; do
%if "%{initsystem}" == "systemd"
for daemon in %all_daemons ; do
%systemd_post ${daemon}.service
done
%else
for daemon in %all_daemons ; do
/sbin/chkconfig --add ${daemon}
done
%endif
/sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
# Create dummy files if they don't exist so basic functions can be used.
if [ ! -e %{_sysconfdir}/zebra.conf ]; then
echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
%if %{quagga_user}
chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf
%if 0%{?quagga_user:1}
chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
%endif
chmod 640 %{_sysconfdir}/zebra.conf
fi
for daemon in %{all_daemons} ; do
if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
touch %{_sysconfdir}/${daemon}.conf
%if 0%{?quagga_user:1}
chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
%endif
fi
done
%if %{with_watchquagga}
# No config for watchquagga - this is part of /etc/sysconfig/quagga
rm -f %{_sysconfdir}/watchquagga.*
%endif
if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
touch %{_sysconfdir}/vtysh.conf
chmod 640 %{_sysconfdir}/vtysh.conf
%if 0%{?vty_group:1}
chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
%endif
fi
%postun
if [ "$1" -ge 1 ]; then
# Find out which daemons need to be restarted.
for daemon in %all_daemons ; do
if [ -f /var/lock/subsys/$daemon ]; then
eval restart_$daemon=yes
if [ -f /var/lock/subsys/${daemon} ]; then
eval restart_${daemon}=yes
else
eval restart_$daemon=no
eval restart_${daemon}=no
fi
done
# Rename restart flags for daemons handled specially.
running_zebra="$restart_zebra"
restart_zebra=no
running_watchquagga="$restart_watchquagga"
restart_watchquagga=no
# Stop watchquagga first.
[ "$running_watchquagga" = yes ] && \
/etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
# Stop all daemons other than zebra and watchquagga.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
/etc/rc.d/init.d/$daemon stop >/dev/null 2>&1
done
# Restart zebra.
[ "$running_zebra" = yes ] && \
/etc/rc.d/init.d/zebra restart >/dev/null 2>&1
# Start all daemons other than zebra and watchquagga.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
/etc/rc.d/init.d/$daemon start >/dev/null 2>&1
done
# Start watchquagga last.
# Avoid postun scriptlet error if watchquagga is not running.
[ "$running_watchquagga" = yes ] && \
/etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
%if %{with_watchquagga}
running_watchquagga="$restart_watchquagga"
restart_watchquagga=no
%endif
%if "%{initsystem}" == "systemd"
##
## Systemd Version
##
# No watchquagga for systemd version
#
# Stop all daemons other than zebra.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
%systemd_postun ${daemon}.service
done
# Restart zebra.
[ "$running_zebra" = yes ] && \
%systemd_postun_with_restart $daemon.service
# Start all daemons other than zebra.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
%systemd_post ${daemon}.service
done
%else
##
## init.d Version
##
%if %{with_watchquagga}
# Stop watchquagga first.
[ "$running_watchquagga" = yes ] && \
/etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
%endif
# Stop all daemons other than zebra and watchquagga.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
/etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
done
# Restart zebra.
[ "$running_zebra" = yes ] && \
/etc/rc.d/init.d/zebra restart >/dev/null 2>&1
# Start all daemons other than zebra and watchquagga.
for daemon in %all_daemons ; do
eval restart=\$restart_${daemon}
[ "$restart" = yes ] && \
/etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
done
%if %{with_watchquagga}
# Start watchquagga last.
# Avoid postun scriptlet error if watchquagga is not running.
[ "$running_watchquagga" = yes ] && \
/etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
%endif
%endif
fi
/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
%preun
if [ "$1" = "0" ]; then
for daemon in %all_daemons ; do
/etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
/sbin/chkconfig --del ${daemon}
done
/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
fi
%if "%{initsystem}" == "systemd"
##
## Systemd Version
##
if [ "$1" = "0" ]; then
for daemon in %all_daemons ; do
%systemd_preun ${daemon}.service
done
fi
%else
##
## init.d Version
##
if [ "$1" = "0" ]; then
for daemon in %all_daemons ; do
/etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
/sbin/chkconfig --del ${daemon}
done
fi
%endif
/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
%clean
%if !%{keep_build}
rm -rf $RPM_BUILD_ROOT
%if !0%{?keep_build:1}
rm -rf %{buildroot}
%endif
%files
@ -371,26 +493,27 @@ rm -rf $RPM_BUILD_ROOT
%doc doc/quagga.html
%doc doc/mpls
%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
%if %{quagga_user}
%if 0%{?quagga_user:1}
%dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
%dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
%dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
%else
%dir %attr(750,root,root) %{_sysconfdir}
%dir %attr(750,root,root) /var/log/quagga
%dir %attr(755,root,root) /usr/share/info
%dir %attr(750,root,root) /var/run/quagga
%endif
%if %{vty_group}
%if 0%{?vty_group:1}
%attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
%endif
%{_infodir}/*info*
%{_infodir}/quagga.info.gz
%{_mandir}/man*/*
%{_sbindir}/zebra
%{_sbindir}/ospfd
%{_sbindir}/ripd
%{_sbindir}/bgpd
%{_sbindir}/watchquagga
%if %{with_watchquagga}
%{_sbindir}/watchquagga
%endif
%{_sbindir}/ripngd
%{_sbindir}/ospf6d
%if %{with_pimd}
@ -399,17 +522,33 @@ rm -rf $RPM_BUILD_ROOT
%if %{with_isisd}
%{_sbindir}/isisd
%endif
%dir %attr(755,root,root) %{_libdir}
%if %{with_shared}
%dir %{_libdir}
%{_libdir}/lib*.so
%{_libdir}/lib*.so.*
%attr(755,root,root) %{_libdir}/lib*.so
%attr(755,root,root) %{_libdir}/lib*.so.*
%endif
%if %{with_vtysh}
%{_bindir}/*
%endif
%config /etc/quagga/[!v]*
%config /etc/rc.d/init.d/*
%if "%{initsystem}" == "systemd"
%config %{_unitdir}/*.service
%else
%config /etc/rc.d/init.d/zebra
%if %{with_watchquagga}
%config /etc/rc.d/init.d/watchquagga
%endif
%config /etc/rc.d/init.d/ripd
%config /etc/rc.d/init.d/ospfd
%config /etc/rc.d/init.d/bgpd
%config /etc/rc.d/init.d/ripngd
%config /etc/rc.d/init.d/ospf6d
%if %{with_isisd}
%config /etc/rc.d/init.d/isisd
%endif
%if %{with_pimd}
%config /etc/rc.d/init.d/pimd
%endif
%endif
%config(noreplace) /etc/sysconfig/quagga
%config(noreplace) /etc/pam.d/quagga
%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
@ -435,17 +574,27 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Fri Sep 4 2015 Paul Jakma <paul@jakma.org> - %{version}
- package the pimd binary
* Thu Feb 11 2016 Paul Jakma <paul@jakma.org> - %{version}
- remove with_ipv6 conditionals, always build v6
- Fix UTF-8 char in spec changelog
- remove quagga.pam.stack, long deprecated.
* Fri Sep 4 2015 Paul Jakma <paul@jakma.org> - %{version}
* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
--enable-netlink
- Remove support for old fedora 4/5
- Fix for package nameing
- Fix Weekdays of previous changelogs (bogus dates)
- Add conditional logic to only build tex footnotes with supported texi2html
- Added pimd to files section and fix double listing of /var/lib*/quagga
- Numerous fixes to unify upstart/systemd startup into same spec file
- Only allow use of watchquagga for non-systemd systems. no need with systemd
* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
- buildreq updates
- add a default define for with_pimd
* Thu Sep 12 2005 Paul Jakma <paul@dishone.st>
* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
- Steal some changes from Fedora spec file:
- Add with_rtadv variable
- Test for groups/users with getent before group/user adding
@ -498,7 +647,7 @@ rm -rf $RPM_BUILD_ROOT
- add user with fixed UID/GID (RH)
- create user with shell /sbin/nologin rather than /bin/false (RH)
- stop daemons on uninstall (RH)
- delete info file on %preun, not %postun to avoid deletion on upgrade. (RH)
- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
- isisd added
- cleanup tasks carried out for every daemon
@ -510,10 +659,10 @@ rm -rf $RPM_BUILD_ROOT
- Renamed to Quagga
- Sync to Quagga release 0.96
* Tue Mar 20 2003 Paul Jakma <paul@dishone.st>
* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
- zebra privileges support
* Mon Mar 18 2003 Paul Jakma <paul@dishone.st>
* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
- Fix mem leak in 'show thread cpu'
- Ralph Keller's OSPF-API
- Amir: Fix configure.ac for net-snmp
@ -537,7 +686,7 @@ rm -rf $RPM_BUILD_ROOT
- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
- Fixed up some build requirements (patch)
- Added conditional build requirements for vtysh / snmp
- Added conditional to %files for %_bindir depending on vtysh
- Added conditional to files for _bindir depending on vtysh
* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
- update to latest CVS
@ -577,7 +726,7 @@ rm -rf $RPM_BUILD_ROOT
* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
- Fix bug #51336
* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
- Use generic initscript strings instead of initscript specific
( "Starting foo: " -> "Starting $prog:" )