From c63f5f2c16470106356ba6740ae7937569a1551c Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 13 Jun 2016 19:00:24 -0400 Subject: [PATCH] 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 --- redhat/Makefile.am | 8 +++---- redhat/bgpd.service | 14 ------------- redhat/isisd.service | 14 ------------- redhat/ospf6d.service | 14 ------------- redhat/ospfd.service | 14 ------------- redhat/pimd.service | 14 ------------- redhat/quagga.spec.in | 49 +++++++++++++++++++++++++------------------ redhat/ripd.service | 14 ------------- redhat/ripngd.service | 14 ------------- redhat/zebra.service | 14 ------------- 10 files changed, 33 insertions(+), 136 deletions(-) delete mode 100644 redhat/bgpd.service delete mode 100644 redhat/isisd.service delete mode 100644 redhat/ospf6d.service delete mode 100644 redhat/ospfd.service delete mode 100644 redhat/pimd.service delete mode 100644 redhat/ripd.service delete mode 100644 redhat/ripngd.service delete mode 100644 redhat/zebra.service diff --git a/redhat/Makefile.am b/redhat/Makefile.am index fadfe64c7c..20bca27cb2 100644 --- a/redhat/Makefile.am +++ b/redhat/Makefile.am @@ -1,8 +1,8 @@ -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 pimd.init pimd.service zebra.init zebra.service \ + quagga.sysconfig ripd.init ripngd.init \ + watchquagga.init pimd.init zebra.init \ README.rpm_build.md diff --git a/redhat/bgpd.service b/redhat/bgpd.service deleted file mode 100644 index 5040284dbb..0000000000 --- a/redhat/bgpd.service +++ /dev/null @@ -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 diff --git a/redhat/isisd.service b/redhat/isisd.service deleted file mode 100644 index 4cdf67d67e..0000000000 --- a/redhat/isisd.service +++ /dev/null @@ -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 diff --git a/redhat/ospf6d.service b/redhat/ospf6d.service deleted file mode 100644 index 3c9c466899..0000000000 --- a/redhat/ospf6d.service +++ /dev/null @@ -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 diff --git a/redhat/ospfd.service b/redhat/ospfd.service deleted file mode 100644 index 5e3de23935..0000000000 --- a/redhat/ospfd.service +++ /dev/null @@ -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 diff --git a/redhat/pimd.service b/redhat/pimd.service deleted file mode 100644 index d62fe64880..0000000000 --- a/redhat/pimd.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=PIM multicast routing engine -BindTo=zebra.service -After=syslog.target network.target zebra.service -ConditionPathExists=/etc/quagga/pimd.conf - -[Service] -Type=forking -EnvironmentFile=/etc/sysconfig/quagga -ExecStart=/usr/sbin/pimd -d $PIMD_OPTS -f /etc/quagga/pimd.conf -Restart=on-abort - -[Install] -WantedBy=network.target diff --git a/redhat/quagga.spec.in b/redhat/quagga.spec.in index 0443b0812d..72d8b060d5 100644 --- a/redhat/quagga.spec.in +++ b/redhat/quagga.spec.in @@ -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 pimd ripngd ospfd6d @@ -81,7 +84,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 @@ -160,6 +163,7 @@ developing OSPF-API and quagga applications. #CFLAGS="${CFLAGS} -Wpacked -Wpadded" %configure \ + --sbindir=%{_sbindir} \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ @@ -215,7 +219,9 @@ developing OSPF-API and quagga applications. %else --disable-watchquagga \ %endif - --enable-gcc-rdynamic + --enable-gcc-rdynamic \ + --enable-systemd=yes \ + --enable-poll=yes make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" @@ -228,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 @@ -254,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 @@ -310,7 +314,7 @@ zebra_spec_add_service pimd 2611/tcp "PIMd 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 @@ -473,6 +477,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 @@ -487,7 +496,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} @@ -501,7 +510,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/* diff --git a/redhat/ripd.service b/redhat/ripd.service deleted file mode 100644 index d35dc47a12..0000000000 --- a/redhat/ripd.service +++ /dev/null @@ -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 diff --git a/redhat/ripngd.service b/redhat/ripngd.service deleted file mode 100644 index 567e88806c..0000000000 --- a/redhat/ripngd.service +++ /dev/null @@ -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 diff --git a/redhat/zebra.service b/redhat/zebra.service deleted file mode 100644 index 27c3a5229f..0000000000 --- a/redhat/zebra.service +++ /dev/null @@ -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 -- 2.39.5