redhat: Changes to allow Cumulus start/stop methodology

Change the redhat .spec and control files to allow
redhat systemd interaction to be the same as
the debian style.  This will allow users
to use Quagga consistently across platforms.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>

Conflicts:
	redhat/Makefile.am
This commit is contained in:
Donald Sharp 2016-06-13 19:00:24 -04:00 committed by Donald Sharp
parent fb8211bbae
commit 48eefa6816
9 changed files with 30 additions and 125 deletions

View File

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

View File

@ -1,14 +0,0 @@
[Unit]
Description=BGP routing daemon
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/bgpd.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/bgpd -d $BGPD_OPTS -f /etc/quagga/bgpd.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=IS-IS routing daemon
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/isisd.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/isisd -d $ISISD_OPTS -f /etc/quagga/isisd.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=OSPF routing daemon for IPv6
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/ospf6d.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/ospf6d -d $OSPF6D_OPTS -f /etc/quagga/ospf6d.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=OSPF routing daemon
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/ospfd.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/ospfd -d $OSPFD_OPTS -f /etc/quagga/ospfd.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -11,13 +11,13 @@
####################### Quagga configure options #########################
# with-feature options
%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
%{!?with_pam: %global with_pam 1 }
%{!?with_pam: %global with_pam 0 }
%{!?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_shared: %global with_shared 1 }
%{!?with_multipath: %global with_multipath 64 }
%{!?with_multipath: %global with_multipath 256 }
%{!?quagga_user: %global quagga_user quagga }
%{!?vty_group: %global vty_group quaggavty }
%{!?with_fpm: %global with_fpm 0 }
@ -25,9 +25,12 @@
# path defines
%define _sysconfdir /etc/quagga
%define _sbindir /usr/lib/quagga
%define zeb_src %{_builddir}/%{name}-%{quaggaversion}
%define zeb_rh_src %{zeb_src}/redhat
%define zeb_docs %{zeb_src}/doc
%define quagga_tools %{zeb_src}/tools
%define cumulus_dir %{zeb_src}/cumulus/etc
# defines for configure
%define _localstatedir /var/run/quagga
@ -52,7 +55,7 @@
# 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
%global with_watchquagga 1
%endif
# if FPM is enabled, then enable tcp_zebra as well
@ -62,9 +65,9 @@
%endif
# misc internal defines
%{!?quagga_uid: %define quagga_uid 92 }
%{!?quagga_gid: %define quagga_gid 92 }
%{!?vty_gid: %define vty_gid 85 }
%{!?quagga_uid: %global quagga_uid 92 }
%{!?quagga_gid: %global quagga_gid 92 }
%{!?vty_gid: %global vty_gid 85 }
%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospfd6d
@ -80,7 +83,7 @@
%{!?keep_build: %global keep_build 0 }
#release sub-revision (the two digits after the CONFDATE)
%{!?release_rev: %define release_rev 01 }
%{!?release_rev: %global release_rev 01 }
Summary: Routing daemon
Name: quagga
@ -159,6 +162,7 @@ developing OSPF-API and quagga applications.
#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
%configure \
--sbindir=%{_sbindir} \
--sysconfdir=%{_sysconfdir} \
--libdir=%{_libdir} \
--libexecdir=%{_libexecdir} \
@ -214,14 +218,10 @@ developing OSPF-API and quagga applications.
%else
--disable-watchquagga \
%endif
<<<<<<< HEAD
--enable-gcc-rdynamic
=======
--enable-gcc-rdynamic \
--enable-isisd=yes \
--enable-systemd=yes \
--enable-poll=yes
>>>>>>> 5713748... rebase me
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
@ -234,22 +234,19 @@ texi2html --number-footnotes --number-sections quagga.texi
popd
%install
mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d,default} \
%{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 %{buildroot}/usr/share/info/dir
# 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
install %{quagga_tools}/quagga.service \
%{buildroot}%{_unitdir}/quagga.service
%else
mkdir -p %{buildroot}/etc/rc.d/init.d
for daemon in %{all_daemons} ; do
@ -260,12 +257,13 @@ for daemon in %{all_daemons} ; do
done
%endif
install %{cumulus_dir}/quagga/debian.conf %{buildroot}/etc/quagga
install %{cumulus_dir}/quagga/daemons %{buildroot}/etc/quagga
install -m644 %{cumulus_dir}/default/quagga %{buildroot}/etc/default
install -m644 %{zeb_rh_src}/quagga.pam \
%{buildroot}/etc/pam.d/quagga
install -m644 %{zeb_rh_src}/quagga.logrotate \
%{buildroot}/etc/logrotate.d/quagga
install -m644 %{zeb_rh_src}/quagga.sysconfig \
%{buildroot}/etc/sysconfig/quagga
install -d -m750 %{buildroot}/var/run/quagga
%pre
@ -315,7 +313,7 @@ zebra_spec_add_service isisd 2608/tcp "ISISd vty"
%if "%{initsystem}" == "systemd"
for daemon in %all_daemons ; do
%systemd_post ${daemon}.service
%systemd_post quagga.service
done
%else
for daemon in %all_daemons ; do
@ -478,6 +476,11 @@ rm -rf %{buildroot}
%{_sbindir}/ospfd
%{_sbindir}/ripd
%{_sbindir}/bgpd
%{_sbindir}/ssd
%{_sbindir}/quagga
%{_sbindir}/quagga-reload.py
%{_sbindir}/quagga-reload.pyc
%{_sbindir}/quagga-reload.pyo
%if %{with_watchquagga}
%{_sbindir}/watchquagga
%endif
@ -491,7 +494,7 @@ rm -rf %{buildroot}
%{_bindir}/*
%config /etc/quagga/[!v]*
%if "%{initsystem}" == "systemd"
%config %{_unitdir}/*.service
%config %{_unitdir}/quagga.service
%else
%config /etc/rc.d/init.d/zebra
%if %{with_watchquagga}
@ -505,7 +508,7 @@ rm -rf %{buildroot}
%config /etc/rc.d/init.d/isisd
%config /etc/rc.d/init.d/pimd
%endif
%config(noreplace) /etc/sysconfig/quagga
%config(noreplace) /etc/default/quagga
%config(noreplace) /etc/pam.d/quagga
%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*

View File

@ -1,14 +0,0 @@
[Unit]
Description=RIP routing daemon
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/ripd.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/ripd -d $RIPD_OPTS -f /etc/quagga/ripd.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=RIP routing daemon for IPv6
BindTo=zebra.service
After=syslog.target network.target zebra.service
ConditionPathExists=/etc/quagga/ripngd.conf
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStart=/usr/sbin/ripngd -d $RIPNGD_OPTS -f /etc/quagga/ripngd.conf
Restart=on-abort
[Install]
WantedBy=network.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=GNU Zebra routing manager
After=syslog.target network.target
ConditionPathExists=/etc/quagga/zebra.conf
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/quagga
ExecStartPre=/sbin/ip route flush proto zebra
ExecStart=/usr/sbin/zebra -d $ZEBRA_OPTS -f /etc/quagga/zebra.conf
Restart=on-abort
[Install]
WantedBy=network.target