diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | redhat/quagga.spec.in | 41 |
2 files changed, 47 insertions, 3 deletions
@@ -1,3 +1,12 @@ +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. + 2005-01-07 Paul Jakma <paul@dishone.st> * configure.ac: Bump version to 0.98.0 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 |