mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 02:30:38 +00:00
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:
parent
30da458561
commit
f755bf6de7
@ -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
128
redhat/README.rpm_build.md
Normal 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.
|
||||
|
@ -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:" )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user