diff options
| author | ajs <ajs> | 2005-01-12 16:41:33 +0000 | 
|---|---|---|
| committer | ajs <ajs> | 2005-01-12 16:41:33 +0000 | 
| commit | fc43ecc7ba23ddce46b9ec7732ff08cd9e5bcc1b (patch) | |
| tree | ffcff2f1145b8c2f737a4239ed22eddcf4a0a0b9 /redhat | |
| parent | a8a8ddcdd6387466bfb929fe0e9c96003d9509bd (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.in | 41 | 
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  | 
