From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Sep 25 13:40:01 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4A83106566B for ; Fri, 25 Sep 2009 13:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B0B108FC1D for ; Fri, 25 Sep 2009 13:40:01 +0000 (UTC) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n8PDe13t033872 for ; Fri, 25 Sep 2009 13:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n8PDe1HZ033871; Fri, 25 Sep 2009 13:40:01 GMT (envelope-from gnats) Resent-Date: Fri, 25 Sep 2009 13:40:01 GMT Resent-Message-Id: <200909251340.n8PDe1HZ033871@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Justin Head Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65C9A106568D for ; Fri, 25 Sep 2009 13:34:12 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 48E138FC15 for ; Fri, 25 Sep 2009 13:34:12 +0000 (UTC) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.3/8.14.3) with ESMTP id n8PDYBox085940 for ; Fri, 25 Sep 2009 13:34:11 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.3/8.14.3/Submit) id n8PDYBQG085939; Fri, 25 Sep 2009 13:34:11 GMT (envelope-from nobody) Message-Id: <200909251334.n8PDYBQG085939@www.freebsd.org> Date: Fri, 25 Sep 2009 13:34:11 GMT From: Justin Head To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/139132: [maintainer-update] FreeBSDize Heartbeat Startup Script X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Sep 2009 13:40:01 -0000 >Number: 139132 >Category: ports >Synopsis: [maintainer-update] FreeBSDize Heartbeat Startup Script >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Fri Sep 25 13:40:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Justin Head >Release: 7.2-RELEASE-p3 >Organization: Encarnate >Environment: FreeBSD xxx.encarnate.net 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #0: Mon Sep 7 15:59:04 CDT 2009 root@xxx.encarnate.net:/usr/obj/usr/src/sys/ENC amd64 >Description: Removing the distributions rc.d script for a proper FreeBSD one. >How-To-Repeat: N/A. >Fix: Wrote a new one that is attached. Patch contains changes: - New file files/heartbeat.in - Removed file files/patch-heartbeat-init.d-heartbeat.in - Updated Makefile to copy it into place before build. Patch attached with submission follows: diff -ruN heartbeat.orig/Makefile heartbeat/Makefile --- heartbeat.orig/Makefile 2009-09-10 18:48:15.000000000 -0500 +++ heartbeat/Makefile 2009-09-24 10:12:02.000000000 -0500 @@ -93,6 +93,7 @@ pre-patch: @${MV} ${WRKDIR}/Heartbeat-STABLE-2-1-${DISTNAME} ${WRKSRC} + @${CP} -f ${FILESDIR}/heartbeat.in ${WRKSRC}/heartbeat/init.d/ post-patch: @${LN} -s ${WRKSRC}/include/config.h ${WRKSRC}/config.h diff -ruN heartbeat.orig/files/heartbeat.in heartbeat/files/heartbeat.in --- heartbeat.orig/files/heartbeat.in 1969-12-31 18:00:00.000000000 -0600 +++ heartbeat/files/heartbeat.in 2009-09-24 10:16:01.000000000 -0500 @@ -0,0 +1,211 @@ +#!/bin/sh +# + +# PROVIDE: heartbeat +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable heartbeat: +# +# heartbeat_enable="YES" Set to NO by default. +# Set to YES to enable heartbeat. +# heartbeat_gracefulstop="YES" Set to NO by default. +# Set to YES to enable more graceful resource +# stopping behaviour at shutdown. + +# Includes +. /etc/rc.subr +HA_DIR=@sysconfdir@/ha.d; export HA_DIR +. $HA_DIR/shellfuncs + +LOCKDIR=@localstatedir@/lock/subsys +SUBSYS=heartbeat +RUNDIR=@localstatedir@/run + +name="heartbeat" +rcvar=`set_rcvar` + +load_rc_config $name +: ${heartbeat_enable="NO"} +: ${heartbeat_gracefulstop="NO"} + +start_cmd="${name}_start" +stop_cmd="${name}_stop" +reload_cmd="${name}_reload" +restart_cmd="${name}_restart" +gracefulstop_cmd="${name}_gracefulstop" +command="$HA_BIN/heartbeat" +pidfile="$RUNDIR/heartbeat.pid" +required_files="$HA_DIR/ha.cf" + +if [ "$heartbeat_gracefulstop" = "YES" ]; then + stop_cmd="${name}_gracefulstop" +fi + +heartbeat_checkyesno() { + case `ha_parameter $1 | tr '[A-Z]' '[a-z]'` in + + y|yes|enable|on|true|1|manual) true;; + + *) false;; + esac +} + +heartbeat_gracefulstop() { + # Run cluster pre-stop + heartbeat_runstartstop pre-stop + + # Stop heartbeat daemon + $HA_BIN/heartbeat -k >/dev/null 2>&1 + RC=$? + + sleeptime=$((`ha_parameter deadtime` + 10)) + + echo -n "Sleeping $sleeptime seconds to allow complete resource takeover: " + sleep $sleeptime + echo "OK" + + # ??? + if [ $RC -eq 0 ]; then + rm -f $LOCKDIR/$SUBSYS + fi + + # Run cluster post-stop + heartbeat_runstartstop post-stop $RC + + # Stop Logd + logd_stop + + return $RC +} + +heartbeat_reload() { + # Re-reads configuration files. Will *keep* it's resources. + $HA_BIN/heartbeat -r >/dev/null 2>&1 +} + +heartbeat_restart() { + sleeptime=$((`ha_parameter deadtime` + 10)) + + if `heartbeat_stop`; then + echo -n "Sleeping $sleeptime seconds to allow complete resource takeover: " + sleep $sleeptime + echo "OK" + echo "" + echo "Starting heartbeat." + heartbeat_start + else + echo "Heartbeat did not stop correctly." + exit 1 + fi +} + +heartbeat_runstartstop() { + # Run custom cluster commands before/after operations + if [ -f $HA_RESOURCEDIR/startstop ]; then + $HA_RESOURCEDIR/startstop "$@" + fi +} + +heartbeat_start() { + + # Start Logd + logd_start + + # Run cluster pre-startup + heartbeat_runstartstop pre-start + + # Check if CRM enabled + if ! `heartbeat_checkyesno crm`; then + + # Heartbeat v1 configuration + $HA_NOARCHBIN/ResourceManager verifyallidle + fi + + # ??? + rm -f $RUNDIR/ppp.d/* + + if [ ! -d $RUNDIR/heartbeat ]; then + mkdir -p $RUNDIR/heartbeat/ccm + mkdir -p $RUNDIR/heartbeat/crm + chown -R @HA_CCMUSER@:@HA_APIGROUP@ $RUNDIR/heartbeat + chmod -R 750 $RUNDIR/heartbeat + fi + + # Heartbeat v1 configuration files + if [ -f $HA_DIR/ipresources -a ! -f $HA_DIR/haresources ]; then + mv $HA_DIR/ipresources $HA_DIR/haresources + fi + + # Start heartbeat daemon + $HA_BIN/heartbeat > /dev/null 2>&1 + RC=$? + + # ??? + if [ $RC -eq 0 ]; then + if [ ! -d $LOCKDIR ]; then + mkdir -p $LOCKDIR + fi + touch $LOCKDIR/$SUBSYS + fi + + # Run cluster post-startup + heartbeat_runstartstop post-start $RC + + return $RC +} + +heartbeat_stop() { + # Run cluster pre-stop + heartbeat_runstartstop pre-stop + + # Stop heartbeat daemon + $HA_BIN/heartbeat -k >/dev/null 2>&1 + RC=$? + + # ??? + if [ $RC -eq 0 ]; then + rm -f $LOCKDIR/$SUBSYS + fi + + # Run cluster post-stop + heartbeat_runstartstop post-stop $RC + + # Stop Logd + logd_stop + + return $RC +} + +logd_start() { + # Check if enabled. + if `heartbeat_checkyesno use_logd`; then + + # Check if running + if ! `$HA_BIN/ha_logd -s >/dev/null 2>&1`; then + + # Start + if ! `$HA_BIN/ha_logd -d -c $HA_DIR/logd.cf >/dev/null 2>&1`; then + exit 1 + fi + fi + fi +} + +logd_stop() { + # Check if enabled. + if `heartbeat_checkyesno use_logd`; then + + # Check if running + if `$HA_BIN/ha_logd -s >/dev/null 2>&1`; then + + # Stop + $HA_BIN/ha_logd -k >/dev/null 2>&1 + fi + fi +} + +extra_commands="reload gracefulstop" +run_rc_command "$1" + diff -ruN heartbeat.orig/files/patch-heartbeat-init.d-heartbeat.in heartbeat/files/patch-heartbeat-init.d-heartbeat.in --- heartbeat.orig/files/patch-heartbeat-init.d-heartbeat.in 2009-07-29 04:13:31.000000000 -0500 +++ heartbeat/files/patch-heartbeat-init.d-heartbeat.in 1969-12-31 18:00:00.000000000 -0600 @@ -1,39 +0,0 @@ ---- heartbeat/init.d/heartbeat.in.orig 2008-08-18 07:32:19.000000000 -0500 -+++ heartbeat/init.d/heartbeat.in 2008-10-16 02:49:27.000000000 -0500 -@@ -45,6 +45,27 @@ - ### END INIT INFO - - -+# FreeBSD -+# PROVIDE: heartbeat -+# REQUIRE: LOGIN -+# KEYWORD: shutdown -+ -+# Add the following line to /etc/rc.conf to enable heartbeat: -+# heartbeat_enable="YES" -+ -+. /etc/rc.subr -+name="heartbeat" -+rcvar='set_rcvar' -+load_rc_config $name -+: ${heartbeat_enable="NO"} -+ -+if ! checkyesno "heartbeat_enable"; then -+ exit 0 -+fi -+ -+set `echo $1 | sed s/fast//` -+ -+ - HA_DIR=@sysconfdir@/ha.d; export HA_DIR - CONFIG=$HA_DIR/ha.cf - . $HA_DIR/shellfuncs -@@ -161,7 +182,7 @@ - fi - - -- $HA_BIN/ha_logd -d >/dev/null 2>&1 -+ $HA_BIN/ha_logd -d -c $HA_DIR/logd.cf >/dev/null 2>&1 - if - [ $? -ne 0 ] - then >Release-Note: >Audit-Trail: >Unformatted: