[Pkg-samba-maint] [ctdb] 10/10: Use upstream init script

Mathieu Parent sathieu at alioth.debian.org
Thu Aug 15 18:42:47 UTC 2013


This is an automated email from the git hooks/post-receive script.

sathieu pushed a commit to branch debian-sid
in repository ctdb.

commit 8d965b3b0c5ff044c90afaca1513ae5fe124627d
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Thu Aug 15 20:33:25 2013 +0200

    Use upstream init script
---
 debian/changelog    |    1 +
 debian/ctdb.init    |  481 ---------------------------------------------------
 debian/ctdb.install |    1 +
 debian/rules        |    8 +-
 4 files changed, 5 insertions(+), 486 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 98b7a4e..529e843 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,7 @@ ctdb (2.3+debian0-1) UNRELEASED; urgency=low
   * Docs are not in Makefile anymore, install using dh_installdocs
   * sudo is now required
   * Enable PCP-PMDA (Performance Co-Pilot - Performance Metric Domain Agents)
+  * Use upstream init script
 
  -- Mathieu Parent <sathieu at debian.org>  Sat, 10 Aug 2013 19:22:53 +0200
 
diff --git a/debian/ctdb.init b/debian/ctdb.init
deleted file mode 100644
index 285028e..0000000
--- a/debian/ctdb.init
+++ /dev/null
@@ -1,481 +0,0 @@
-#!/bin/sh
-#
-##############################
-# ctdb:                        Starts the clustered tdb daemon
-#
-# chkconfig:           - 90 01
-#
-# description:                 Starts and stops the clustered tdb daemon
-# pidfile:             /var/run/ctdbd/ctdbd.pid
-#
-
-### BEGIN INIT INFO
-# Provides:            ctdb
-# Required-Start:      $network $local_fs $remote_fs
-# Required-Stop:       $network $local_fs $remote_fs
-# Default-Start:       2 3 4 5
-# Default-Stop:        0 1 6
-# Short-Description:   start and stop ctdb service
-# Description:         initscript for the ctdb service
-### END INIT INFO
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
-NAME=ctdb
-DESC="Clustered TDB"
-
-#LSB
-if [ -f /lib/lsb/init-functions ] ; then
-  . /lib/lsb/init-functions
-fi
-if ! type 'log_daemon_msg' >/dev/null; then
-    log_daemon_msg () {
-        if [ -z "${1:-}" ]; then
-            return 1
-        fi
-
-        if [ -z "${2:-}" ]; then
-            echo -n "$1:"
-            return
-        fi
-        
-        echo -n "$1: $2"
-    }
-fi
-if ! type 'log_progress_msg' >/dev/null; then
-    log_progress_msg () {
-        if [ -z "${1:-}" ]; then
-            return 1
-        fi
-        echo -n " $@"
-    }
-fi
-if ! type 'log_end_msg' >/dev/null; then
-    log_end_msg () {
-        # If no arguments were passed, return
-        if [ -z "${1:-}" ]; then
-            return 1
-        fi
-
-        retval=$1
-
-        if [ $1 -eq 0 ]; then
-            echo "."
-        elif [ $1 -eq 255 ]; then
-            /bin/echo -e " (warning)."
-        else
-            /bin/echo -e " failed!"
-        fi
-        return $retval
-    }
-fi
-
-# Source function library.
-if [ -f /etc/init.d/functions ] ; then
-    . /etc/init.d/functions
-elif [ -f /etc/rc.d/init.d/functions ] ; then
-    . /etc/rc.d/init.d/functions
-fi
-
-# rc.status
-[ -f /etc/rc.status ] && {
-    . /etc/rc.status
-    rc_reset
-    LC_ALL=en_US.UTF-8
-}
-
-# Avoid using root's TMPDIR
-unset TMPDIR
-
-[ -z "$CTDB_BASE" ] && {
-    export CTDB_BASE="/etc/ctdb"
-}
-
-[ -z "$CTDB_VARDIR" ] && {
-    export CTDB_VARDIR="/var/lib/ctdb"
-}
-
-. $CTDB_BASE/functions
-loadconfig network
-loadconfig ctdb
-
-set -e
-
-# check networking is up (for redhat)
-[ "$NETWORKING" = "no" ] && exit 0
-
-detect_init_style
-export CTDB_INIT_STYLE
-
-ctdbd=${CTDBD:-/usr/sbin/ctdbd}
-
-test -x $ctdbd || exit 0
-
-if [ "$CTDB_VALGRIND" = "yes" ]; then
-    init_style="valgrind"
-else
-    init_style="$CTDB_INIT_STYLE"
-fi
-
-build_ctdb_options () {
-
-    maybe_set () {
-	# If the 2nd arg is null then return - don't set anything.
-	# Else if the 3rd arg is set and it doesn't match the 2nd arg
-	# then return
-	[ -z "$2" -o \( -n "$3" -a "$3" != "$2" \) ] && return
-
-	val="'$2'"
-	case "$1" in
-	    --*) sep="=" ;;
-	    -*)  sep=" " ;;
-	esac
-	# For these options we're only passing a value-less flag.
-	[ -n "$3" ] && {
-	    val=""
-	    sep=""
-	}
-
-	CTDB_OPTIONS="${CTDB_OPTIONS}${CTDB_OPTIONS:+ }${1}${sep}${val}"
-    }
-
-    [ -z "$CTDB_RECOVERY_LOCK" ] && {
-        echo "No recovery lock specified. Starting CTDB without split brain prevention"
-    }
-    maybe_set "--reclock"                "$CTDB_RECOVERY_LOCK"
-
-    # build up CTDB_OPTIONS variable from optional parameters
-    maybe_set "--logfile"                "$CTDB_LOGFILE"
-    maybe_set "--nlist"                  "$CTDB_NODES"
-    maybe_set "--socket"                 "$CTDB_SOCKET"
-    maybe_set "--public-addresses"       "$CTDB_PUBLIC_ADDRESSES"
-    maybe_set "--public-interface"       "$CTDB_PUBLIC_INTERFACE"
-    maybe_set "--dbdir"                  "$CTDB_DBDIR"
-    maybe_set "--dbdir-persistent"       "$CTDB_DBDIR_PERSISTENT"
-    maybe_set "--event-script-dir"       "$CTDB_EVENT_SCRIPT_DIR"
-    maybe_set "--transport"              "$CTDB_TRANSPORT"
-    maybe_set "-d"                       "$CTDB_DEBUGLEVEL"
-    maybe_set "--debug-hung-script"      "$CTDB_DEBUG_HUNG_SCRIPT"
-    maybe_set "--notification-script"    "$CTDB_NOTIFY_SCRIPT"
-    maybe_set "--start-as-disabled"      "$CTDB_START_AS_DISABLED"    "yes"
-    maybe_set "--start-as-stopped "      "$CTDB_START_AS_STOPPED"     "yes"
-    maybe_set "--no-recmaster"           "$CTDB_CAPABILITY_RECMASTER" "no"
-    maybe_set "--no-lmaster"             "$CTDB_CAPABILITY_LMASTER"   "no"
-    maybe_set "--lvs --single-public-ip" "$CTDB_LVS_PUBLIC_IP"
-    maybe_set "--script-log-level"       "$CTDB_SCRIPT_LOG_LEVEL"
-    maybe_set "--log-ringbuf-size"       "$CTDB_LOG_RINGBUF_SIZE"
-    maybe_set "--syslog"                 "$CTDB_SYSLOG"               "yes"
-    maybe_set "--max-persistent-check-errors" "$CTDB_MAX_PERSISTENT_CHECK_ERRORS"
-}
-
-# Log given message or stdin to either syslog or a CTDB log file
-do_log ()
-{
-    script_log "ctdb.init" "$@"
-}
-
-select_tdb_checker ()
-{
-    # Find the best TDB consistency check available.
-    use_tdb_tool_check=false
-    if [ -x /usr/bin/tdbtool ] && \
-	echo "help" | /usr/bin/tdbtool | grep -q check ; then
-
-	use_tdb_tool_check=true
-    elif [ -x /usr/bin/tdbtool -a -x /usr/bin/tdbdump ] ; then
-	    do_log <<EOF
-WARNING: The installed 'tdbtool' does not offer the 'check' subcommand.
- Using 'tdbdump' for database checks.
- Consider updating 'tdbtool' for better checks!
-EOF
-    elif [ -x /usr/bin/tdbdump ] ; then
-	do_log <<EOF
-WARNING: 'tdbtool' is not available.
- Using 'tdbdump' to check the databases.
- Consider installing a recent 'tdbtool' for better checks!
-EOF
-    else
-	do_log <<EOF
-WARNING: Cannot check databases since neither
- 'tdbdump' nor 'tdbtool check' is available.
- Consider installing tdbtool or at least tdbdump!
-EOF
-        return 1
-    fi
-}
-
-check_tdb ()
-{
-    _db="$1"
-
-    if $use_tdb_tool_check ; then
-	# tdbtool always exits with 0  :-(
-	if tdbtool "$_db" check 2>/dev/null |
-	    grep -q "Database integrity is OK" ; then
-	    return 0
-	else
-	    return 1
-	fi
-    else
-	tdbdump "$_db" >/dev/null 2>/dev/null
-	return $?
-    fi
-}
-
-check_persistent_databases ()
-{
-    _dir="${CTDB_DBDIR_PERSISTENT:-${CTDB_DBDIR:-/var/ctdb}/persistent}"
-    mkdir -p "$_dir" 2>/dev/null
-
-    [ "${CTDB_MAX_PERSISTENT_CHECK_ERRORS:-0}" = "0" ] || return 0
-
-    for _db in $(ls "$_dir/"*.tdb.*[0-9] 2>/dev/null) ; do
-	check_tdb $_db || {
-	    do_log "Persistent database $_db is corrupted! CTDB will not start."
-	    return 1
-	}
-    done
-}
-
-check_non_persistent_databases ()
-{
-    _dir="${CTDB_DBDIR:-/var/ctdb}"
-    mkdir -p "$_dir" 2>/dev/null
-
-    for _db in $(ls "${_dir}/"*.tdb.*[0-9] 2>/dev/null) ; do
-	check_tdb $_db || {
-	    _backup="${_db}.$(date +'%Y%m%d.%H%M%S.%N').corrupt"
-	    do_log <<EOF
-WARNING: database ${_db} is corrupted.
- Moving to backup ${_backup} for later analysis.
-EOF
-	    mv "$_db" "$_backup"
-
-	    # Now remove excess backups
-	    ls -td "${_db}."*".corrupt" |
-	    tail -n +$((${CTDB_MAX_CORRUPT_DB_BACKUPS:-10} + 1)) |
-	    xargs rm -f
-	    
-	}
-    done
-}
-
-set_retval() {
-    return $1
-}
-
-wait_until_ready () {
-    _timeout="${1:-10}" # default is 10 seconds
-
-    _count=0
-    while ! is_ready ; do
-	if [ $_count -ge $_timeout ] ; then
-	    return 1
-	fi
-	sleep 1
-	_count=$(($_count + 1))
-    done
-}
-
-is_running() {
-    pkill -0 -f $ctdbd || return 1
-    return 0
-}
-
-is_ready() {
-    ctdb ping >/dev/null 2>&1 || return 1
-}
-
-start_ctdbd() {
-    # About to start new $ctdbd.  The ping above has failed and any
-    # new $ctdbd will destroy the Unix domain socket, so any processes
-    # that aren't yet completely useless soon will be...  so kill
-    # them.
-    pkill -9 -f "$ctdbd"
-
-    build_ctdb_options
-
-    # make sure we drop any ips that might still be held if previous
-    # instance of ctdb got killed with -9 or similar
-    drop_all_public_ips
-
-    if select_tdb_checker ; then
-	check_persistent_databases || return $?
-	check_non_persistent_databases
-    fi
-
-    if [ "$CTDB_SUPPRESS_COREFILE" = "yes" ]; then
-	ulimit -c 0
-    else
-	ulimit -c unlimited
-    fi
-
-    case $init_style in
-	valgrind)
-	    eval valgrind -q --log-file=/var/log/ctdb/ctdb_valgrind.log \
-		$ctdbd --valgrinding "$CTDB_OPTIONS"
-	    RETVAL=$?
-	    echo
-	    ;;
-	suse)
-	    eval startproc $ctdbd "$CTDB_OPTIONS"
-	    RETVAL=$?
-	    ;;
-	redhat)
-	    eval $ctdbd "$CTDB_OPTIONS"
-	    RETVAL=$?
-	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ctdb || RETVAL=1
-	    ;;
-	debian)
-	    eval start-stop-daemon --start --quiet --background \
-		--exec $ctdbd -- "$CTDB_OPTIONS"
-	    RETVAL=$?
-	    ;;
-    esac
-
-    if [ $RETVAL -eq 0 ] ; then
-	if ! wait_until_ready ; then
-	    RETVAL=1
-	    pkill -9 -f $ctdbd >/dev/null 2>&1
-	fi
-    fi
-
-    case $init_style in
-	suse)
-	    set_retval $RETVAL
-	    rc_status -v
-	    ;;
-	redhat)
-	    [ $RETVAL -eq 0 ] && success || failure
-	    echo
-	    ;;
-    esac
-
-    return $RETVAL
-}	
-
-stop_ctdbd() {
-    ctdb shutdown >/dev/null 2>&1
-    RETVAL=$?
-    count=0
-    if [ "$init_style" = "debian" ]; then
-        start-stop-daemon --stop --quiet --exec $ctdbd
-        RETVAL=$?
-    fi
-    while is_running ; do
-        sleep 1
-        count=$(($count + 1))
-	[ $count -gt 30 ] && {
-	        echo -n "killing ctdbd "
-	        pkill -9 -f $ctdbd
-	        pkill -9 -f $CTDB_BASE/events.d/
-        }
-    done
-    # make sure all ips are dropped, pfkill -9 might leave them hanging around
-    drop_all_public_ips
-
-    case $init_style in
-        suse)
-	        # re-set the return code to the recorded RETVAL in order
-	        # to print the correct status message
-	        set_retval $RETVAL
-	        rc_status -v
-	    ;;
-        redhat)
-	        [ $RETVAL -eq 0 ] && success || failure
-	        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ctdb
-	        echo ""
-	    ;;
-    esac
-
-    return $RETVAL
-}	
-
-case "$1" in
-    start)
-        log_daemon_msg "Starting $DESC " "$NAME"
-        # Check if it's running first
-        if is_running ;  then
-            log_progress_msg "already running"
-            log_end_msg 0
-            exit 0
-        fi
-        if start_ctdbd && is_running ;  then
-            # It's ok, the server started and is running
-            log_end_msg 0
-        else
-            # Either we could not start it or it is not running
-            # after we did
-            log_end_msg 1
-        fi
-        ;;
-    stop)
-        log_daemon_msg "Stopping $DESC" "$NAME"
-        if is_running ; then
-            # Only stop the server if we see it running
-            stop_ctdbd
-            log_end_msg $?
-        else
-        echo 'Output from "ctdb ping":'
-        echo "$_out"
-
-            # If it's not running don't do anything
-            log_progress_msg "not running"
-            log_end_msg 0
-            exit 0
-        fi
-        ;;
-    restart|force-reload)
-[ -x "$CTDB_BASE/rc.ctdb" ] && "$CTDB_BASE/rc.ctdb" $1
-
-        log_daemon_msg "Restarting $DESC" "$NAME"
-        is_running && stop_ctdbd
-        start_ctdbd
-        is_running
-        log_end_msg $?
-        ;;
-    status)
-        log_daemon_msg "Checking status of $DESC" "$NAME"
-        if is_running ;  then
-            log_progress_msg "running"
-            echo
-            ctdb status
-            log_end_msg 0
-        else
-            log_progress_msg "not running"
-            log_end_msg 1
-            exit 1
-        fi
- 	    ;;
-    condrestart|try-restart)
-        if is_running ;  then
-            log_daemon_msg "Restarting $DESC" "$NAME"
-            stop_ctdbd
-            start_ctdbd
-            log_end_msg $?
-        fi
-        ;;
-    cron)
-        # used from cron to auto-restart ctdb
-        if ! is_running ; then
-            log_daemon_msg "Starting $DESC " "$NAME"
-            if start_ctdbd && is_running ;  then
-                # It's ok, the server started and is running
-                log_end_msg 0
-            else
-                # Either we could not start it or it is not running
-                # after we did
-                log_end_msg 1
-            fi
-        fi
-        ;;
-    reload)
-	# do nothing
-	;;
-    *)
-        echo "Usage: \$0 {start|stop|restart|force-reload|status|cron|condrestart|try-restart}"
-        exit 2
-        ;;
-esac
-
-exit $?
diff --git a/debian/ctdb.install b/debian/ctdb.install
index 4375606..5664ad7 100644
--- a/debian/ctdb.install
+++ b/debian/ctdb.install
@@ -1,5 +1,6 @@
 etc/ctdb
 etc/default/ctdb
+etc/init.d/ctdb
 etc/sudoers.d
 usr/bin/*
 usr/sbin/*
diff --git a/debian/rules b/debian/rules
index 1b6793a..fd9ddee 100755
--- a/debian/rules
+++ b/debian/rules
@@ -30,9 +30,11 @@ override_dh_auto_test:
 
 override_dh_auto_install:
 	dh_auto_install
-	# Install /etc/default/ctdb
+	# Install /etc/default/ctdb and /etc/init.d/ctdb
 	mkdir -p $(DESTDIR)/etc/default
 	install -m644 config/ctdb.sysconfig $(DESTDIR)/etc/default/ctdb
+	mkdir -p $(DESTDIR)/etc/init.d
+	install -m755 config/ctdb.init $(DESTDIR)/etc/init.d/ctdb
 
 override_dh_installdocs:
 	cp config/events.d/README README.eventscripts
@@ -49,10 +51,6 @@ endif
 	#upstream changelog 
 	grep -A 10000 '%changelog' packaging/RPM/ctdb.spec.in > $(CURDIR)/debian/ctdb/usr/share/doc/ctdb/changelog
 
-override_dh_installinit:
-	#install init script
-	dh_installinit -pctdb --no-start --no-restart-on-upgrade
-
 override_dh_strip:
 	dh_strip --dbg-package=ctdb-dbg
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-samba/ctdb.git



More information about the Pkg-samba-maint mailing list