summaryrefslogtreecommitdiff
path: root/redhat
diff options
context:
space:
mode:
authorajs <ajs>2005-01-12 16:41:33 +0000
committerajs <ajs>2005-01-12 16:41:33 +0000
commitfc43ecc7ba23ddce46b9ec7732ff08cd9e5bcc1b (patch)
treeffcff2f1145b8c2f737a4239ed22eddcf4a0a0b9 /redhat
parenta8a8ddcdd6387466bfb929fe0e9c96003d9509bd (diff)
2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* redhat/quagga.spec.in: Pass --enable-gcc-rdynamic to configure to get gcc to link with -rdynamic for better backtraces. When the rpm is upgraded, the restart logic now works as follows: 1. stop watchquagga; 2. stop all routing daemons; 3. restart zebra if it was running; 4. start all routing daemons that were running; and 5. start watchquagga if it was running.
Diffstat (limited to 'redhat')
-rw-r--r--redhat/quagga.spec.in41
1 files changed, 38 insertions, 3 deletions
diff --git a/redhat/quagga.spec.in b/redhat/quagga.spec.in
index a2a3ad16..b22ebc57 100644
--- a/redhat/quagga.spec.in
+++ b/redhat/quagga.spec.in
@@ -177,7 +177,7 @@ developing OSPF-API and quagga applications.
%if %vty_group
--enable-vty-group=%vty_group \
%endif
---enable-netlink
+--enable-netlink --enable-gcc-rdynamic
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
@@ -273,10 +273,41 @@ if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
fi
%postun
-if [ "$1" -ge "1" ]; then
+if [ "$1" -ge 1 ]; then
+ # Find out which daemons need to be restarted.
for daemon in %all_daemons ; do
- /etc/rc.d/init.d/${daemon} condrestart >/dev/null 2>&1
+ if [ -f /var/lock/subsys/$daemon ]; then
+ eval restart_$daemon=yes
+ else
+ 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.
+ [ "$running_watchquagga" = yes ] && \
+ /etc/rc.d/init.d/watchquagga start >/dev/null 2>&1
fi
%preun
@@ -362,6 +393,10 @@ rm -rf $RPM_BUILD_ROOT
%changelog
%changelog
+* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+- on package upgrade, implement careful, phased restart logic
+- use gcc -rdynamic flag when linking for better backtraces
+
* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
- daemonv6_list should contain only IPv6 daemons