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 \ EXTRA_DIST = bgpd.init isisd.init \
isisd.service ospf6d.init ospf6d.service ospfd.init ospfd.service \ ospf6d.init ospfd.init \
quagga.logrotate quagga.pam quagga.spec \ quagga.logrotate quagga.pam quagga.spec \
quagga.sysconfig ripd.init ripd.service ripngd.init ripngd.service \ quagga.sysconfig ripd.init ripngd.init \
watchquagga.init zebra.init zebra.service \ watchquagga.init zebra.init \
README.rpm_build.md 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 ######################### ####################### Quagga configure options #########################
# with-feature options # with-feature options
%{!?with_tcp_zebra: %global with_tcp_zebra 0 } %{!?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_ospfclient: %global with_ospfclient 1 }
%{!?with_ospfapi: %global with_ospfapi 1 } %{!?with_ospfapi: %global with_ospfapi 1 }
%{!?with_irdp: %global with_irdp 1 } %{!?with_irdp: %global with_irdp 1 }
%{!?with_rtadv: %global with_rtadv 1 } %{!?with_rtadv: %global with_rtadv 1 }
%{!?with_shared: %global with_shared 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 } %{!?quagga_user: %global quagga_user quagga }
%{!?vty_group: %global vty_group quaggavty } %{!?vty_group: %global vty_group quaggavty }
%{!?with_fpm: %global with_fpm 0 } %{!?with_fpm: %global with_fpm 0 }
@ -25,9 +25,12 @@
# path defines # path defines
%define _sysconfdir /etc/quagga %define _sysconfdir /etc/quagga
%define _sbindir /usr/lib/quagga
%define zeb_src %{_builddir}/%{name}-%{quaggaversion} %define zeb_src %{_builddir}/%{name}-%{quaggaversion}
%define zeb_rh_src %{zeb_src}/redhat %define zeb_rh_src %{zeb_src}/redhat
%define zeb_docs %{zeb_src}/doc %define zeb_docs %{zeb_src}/doc
%define quagga_tools %{zeb_src}/tools
%define cumulus_dir %{zeb_src}/cumulus/etc
# defines for configure # defines for configure
%define _localstatedir /var/run/quagga %define _localstatedir /var/run/quagga
@ -52,7 +55,7 @@
# Note: For systems with systemd, watchquagga will NOT be built. Systemd # Note: For systems with systemd, watchquagga will NOT be built. Systemd
# takes over the role of restarting crashed processes. Value will # takes over the role of restarting crashed processes. Value will
# be overwritten with 0 below for systemd independent on the setting here # be overwritten with 0 below for systemd independent on the setting here
%global with_watchquagga 0 %global with_watchquagga 1
%endif %endif
# if FPM is enabled, then enable tcp_zebra as well # if FPM is enabled, then enable tcp_zebra as well
@ -62,9 +65,9 @@
%endif %endif
# misc internal defines # misc internal defines
%{!?quagga_uid: %define quagga_uid 92 } %{!?quagga_uid: %global quagga_uid 92 }
%{!?quagga_gid: %define quagga_gid 92 } %{!?quagga_gid: %global quagga_gid 92 }
%{!?vty_gid: %define vty_gid 85 } %{!?vty_gid: %global vty_gid 85 }
%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospfd6d %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospfd6d
@ -80,7 +83,7 @@
%{!?keep_build: %global keep_build 0 } %{!?keep_build: %global keep_build 0 }
#release sub-revision (the two digits after the CONFDATE) #release sub-revision (the two digits after the CONFDATE)
%{!?release_rev: %define release_rev 01 } %{!?release_rev: %global release_rev 01 }
Summary: Routing daemon Summary: Routing daemon
Name: quagga Name: quagga
@ -159,6 +162,7 @@ developing OSPF-API and quagga applications.
#CFLAGS="${CFLAGS} -Wpacked -Wpadded" #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
%configure \ %configure \
--sbindir=%{_sbindir} \
--sysconfdir=%{_sysconfdir} \ --sysconfdir=%{_sysconfdir} \
--libdir=%{_libdir} \ --libdir=%{_libdir} \
--libexecdir=%{_libexecdir} \ --libexecdir=%{_libexecdir} \
@ -214,14 +218,10 @@ developing OSPF-API and quagga applications.
%else %else
--disable-watchquagga \ --disable-watchquagga \
%endif %endif
<<<<<<< HEAD
--enable-gcc-rdynamic
=======
--enable-gcc-rdynamic \ --enable-gcc-rdynamic \
--enable-isisd=yes \ --enable-isisd=yes \
--enable-systemd=yes \ --enable-systemd=yes \
--enable-poll=yes --enable-poll=yes
>>>>>>> 5713748... rebase me
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
@ -234,22 +234,19 @@ texi2html --number-footnotes --number-sections quagga.texi
popd popd
%install %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} %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
# Remove this file, as it is uninstalled and causes errors when building on RH9 # Remove this file, as it is uninstalled and causes errors when building on RH9
rm -rf %{buildroot}/usr/share/info/dir rm -rf %{buildroot}/usr/share/info/dir
# install /etc sources # install /etc sources
%if "%{initsystem}" == "systemd" %if "%{initsystem}" == "systemd"
mkdir -p %{buildroot}%{_unitdir} mkdir -p %{buildroot}%{_unitdir}
for daemon in %{all_daemons} ; do install %{quagga_tools}/quagga.service \
if [ x"${daemon}" != x"" ] ; then %{buildroot}%{_unitdir}/quagga.service
install %{zeb_rh_src}/${daemon}.service \
%{buildroot}%{_unitdir}/${daemon}.service
fi
done
%else %else
mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/rc.d/init.d
for daemon in %{all_daemons} ; do for daemon in %{all_daemons} ; do
@ -260,12 +257,13 @@ for daemon in %{all_daemons} ; do
done done
%endif %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 \ install -m644 %{zeb_rh_src}/quagga.pam \
%{buildroot}/etc/pam.d/quagga %{buildroot}/etc/pam.d/quagga
install -m644 %{zeb_rh_src}/quagga.logrotate \ install -m644 %{zeb_rh_src}/quagga.logrotate \
%{buildroot}/etc/logrotate.d/quagga %{buildroot}/etc/logrotate.d/quagga
install -m644 %{zeb_rh_src}/quagga.sysconfig \
%{buildroot}/etc/sysconfig/quagga
install -d -m750 %{buildroot}/var/run/quagga install -d -m750 %{buildroot}/var/run/quagga
%pre %pre
@ -315,7 +313,7 @@ zebra_spec_add_service isisd 2608/tcp "ISISd vty"
%if "%{initsystem}" == "systemd" %if "%{initsystem}" == "systemd"
for daemon in %all_daemons ; do for daemon in %all_daemons ; do
%systemd_post ${daemon}.service %systemd_post quagga.service
done done
%else %else
for daemon in %all_daemons ; do for daemon in %all_daemons ; do
@ -478,6 +476,11 @@ rm -rf %{buildroot}
%{_sbindir}/ospfd %{_sbindir}/ospfd
%{_sbindir}/ripd %{_sbindir}/ripd
%{_sbindir}/bgpd %{_sbindir}/bgpd
%{_sbindir}/ssd
%{_sbindir}/quagga
%{_sbindir}/quagga-reload.py
%{_sbindir}/quagga-reload.pyc
%{_sbindir}/quagga-reload.pyo
%if %{with_watchquagga} %if %{with_watchquagga}
%{_sbindir}/watchquagga %{_sbindir}/watchquagga
%endif %endif
@ -491,7 +494,7 @@ rm -rf %{buildroot}
%{_bindir}/* %{_bindir}/*
%config /etc/quagga/[!v]* %config /etc/quagga/[!v]*
%if "%{initsystem}" == "systemd" %if "%{initsystem}" == "systemd"
%config %{_unitdir}/*.service %config %{_unitdir}/quagga.service
%else %else
%config /etc/rc.d/init.d/zebra %config /etc/rc.d/init.d/zebra
%if %{with_watchquagga} %if %{with_watchquagga}
@ -505,7 +508,7 @@ rm -rf %{buildroot}
%config /etc/rc.d/init.d/isisd %config /etc/rc.d/init.d/isisd
%config /etc/rc.d/init.d/pimd %config /etc/rc.d/init.d/pimd
%endif %endif
%config(noreplace) /etc/sysconfig/quagga %config(noreplace) /etc/default/quagga
%config(noreplace) /etc/pam.d/quagga %config(noreplace) /etc/pam.d/quagga
%config(noreplace) %attr(640,root,root) /etc/logrotate.d/* %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