Provide debian/ directory of heartbeat v2 backport for squeeze.

Once we have a fully working package (needs lots of testing right
now) we might want to integrate full sources, but for now this is
the relevant stuff to build the heartbeat-2_2.1.3-6lenny4~bpo60+1
Debian package for Debian/squeeze, using the sources retrieved
via
dget http://ftp.de.debian.org/debian/pool/main/h/heartbeat/heartbeat_2.1.3-6lenny4.dsc

From: Michael Prokop <mprokop@sipwise.com>
remotes/svn/trunk
Michael Prokop 15 years ago
commit 2625e302a0

43
debian/Makefile.am vendored

@ -0,0 +1,43 @@
#
# linux-ha: Linux-HA heartbeat code
#
# Copyright (C) 2001 Michael Moerz
# This instance created by Horms
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = apply changelog compat control copyright \
dpkg-checkbuild rules \
heartbeat.dirs heartbeat.files \
heartbeat.postinst heartbeat.postrm \
heartbeat.preinst \
heartbeat-dev.dirs heartbeat-dev.files \
heartbeat-gui.dirs heartbeat-gui.files \
heartbeat-2.prerm \
ldirectord.files ldirectord.postinst \
ldirectord.postrm \
patches/ipv6-check.patch \
patches/init-remote_fs.patch \
patches/init-openhpid.patch \
patches/init-ntp.patch \
patches/series/2.1.3-1 \
patches/series/2.1.3-2
clean-local:
rm -f *.substvars *.debhelper files
rm -r -f heartbeat heartbeat-dev ldirectord \
libpils0 libpils-dev libstonith0 libstonith-dev stonith tmp

529
debian/Makefile.in vendored

@ -0,0 +1,529 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = debian
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h \
$(top_builddir)/include/hb_config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALIGN = @ALIGN@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CIMOM = @CIMOM@
CMPI_HEADER_PATH = @CMPI_HEADER_PATH@
CMPI_PROVIDER_DIR = @CMPI_PROVIDER_DIR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CRM_DIR = @CRM_DIR@
CRM_ENABLED = @CRM_ENABLED@
CRYPTOLIB = @CRYPTOLIB@
CURSESLIBS = @CURSESLIBS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_TIMES_KLUDGE = @DISABLE_TIMES_KLUDGE@
DISTDIR = @DISTDIR@
DISTRO_STYLE_RPMS = @DISTRO_STYLE_RPMS@
DLOPEN_FORCE_FLAGS = @DLOPEN_FORCE_FLAGS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_CMD = @ECHO_CMD@
ECHO_E = @ECHO_E@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
GETENT = @GETENT@
GLIBHEAD = @GLIBHEAD@
GLIBLIB = @GLIBLIB@
GNUTLSHEAD = @GNUTLSHEAD@
GNUTLSLIBS = @GNUTLSLIBS@
GREP = @GREP@
GZIP_PROG = @GZIP_PROG@
HAVE_DECL_GETOPT = @HAVE_DECL_GETOPT@
HAVE_STRLCPY = @HAVE_STRLCPY@
HA_APIGID = @HA_APIGID@
HA_APIGROUP = @HA_APIGROUP@
HA_CCMUID = @HA_CCMUID@
HA_CCMUSER = @HA_CCMUSER@
HA_COREDIR = @HA_COREDIR@
HA_DATADIR = @HA_DATADIR@
HA_HAVE_ALPHASORT = @HA_HAVE_ALPHASORT@
HA_HAVE_DAEMON = @HA_HAVE_DAEMON@
HA_HAVE_INET_PTON = @HA_HAVE_INET_PTON@
HA_HAVE_SCANDIR = @HA_HAVE_SCANDIR@
HA_HAVE_SETENV = @HA_HAVE_SETENV@
HA_HAVE_STRERROR = @HA_HAVE_STRERROR@
HA_HAVE_STRNDUP = @HA_HAVE_STRNDUP@
HA_HAVE_STRNLEN = @HA_HAVE_STRNLEN@
HA_HAVE_UNSETENV = @HA_HAVE_UNSETENV@
HA_HAVE_UUID_PARSE = @HA_HAVE_UUID_PARSE@
HA_HBCONF_DIR = @HA_HBCONF_DIR@
HA_LIBDIR = @HA_LIBDIR@
HA_LIBHBDIR = @HA_LIBHBDIR@
HA_LOGDAEMON_IPC = @HA_LOGDAEMON_IPC@
HA_NOARCHDATAHBDIR = @HA_NOARCHDATAHBDIR@
HA_PLUGIN_DIR = @HA_PLUGIN_DIR@
HA_RC_DIR = @HA_RC_DIR@
HA_URLBASE = @HA_URLBASE@
HA_VARLIBDIR = @HA_VARLIBDIR@
HA_VARLIBHBDIR = @HA_VARLIBHBDIR@
HA_VARLOCKDIR = @HA_VARLOCKDIR@
HA_VARLOGDIR = @HA_VARLOGDIR@
HA_VARRUNDIR = @HA_VARRUNDIR@
HA_VARRUNHBDIR = @HA_VARRUNHBDIR@
HA_VARRUNHBRSCDIR = @HA_VARRUNHBRSCDIR@
HB_INITSTARTPRI = @HB_INITSTARTPRI@
HB_INITSTOPPRI = @HB_INITSTOPPRI@
HB_PKG = @HB_PKG@
HB_RA_DIR = @HB_RA_DIR@
HG = @HG@
HTML2TXT = @HTML2TXT@
IFCONFIG = @IFCONFIG@
IFCONFIG_A_OPT = @IFCONFIG_A_OPT@
INCLTDL = @INCLTDL@
INITDIR = @INITDIR@
INIT_EXT = @INIT_EXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IP2UTIL = @IP2UTIL@
IPCSOCKET_C = @IPCSOCKET_C@
IPCSOCKET_LO = @IPCSOCKET_LO@
JAVA_HOME = @JAVA_HOME@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBADD_DL = @LIBADD_DL@
LIBADD_INTL = @LIBADD_INTL@
LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@
LIBLTDL = @LIBLTDL@
LIBLTDL_DIR = @LIBLTDL_DIR@
LIBNETCONFIG = @LIBNETCONFIG@
LIBNETDEFINES = @LIBNETDEFINES@
LIBNETLIBS = @LIBNETLIBS@
LIBOBJS = @LIBOBJS@
LIBRT = @LIBRT@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LOCALE = @LOCALE@
LRM_ENABLED = @LRM_ENABLED@
LRM_PLUGIN_DIR = @LRM_PLUGIN_DIR@
LSB_RA_DIR = @LSB_RA_DIR@
LTLIBOBJS = @LTLIBOBJS@
MAILCMD = @MAILCMD@
MAKE = @MAKE@
MAKEINFO = @MAKEINFO@
MD5 = @MD5@
MIBS_DIR = @MIBS_DIR@
MKDIR_P = @MKDIR_P@
MKTEMP = @MKTEMP@
MSGFMT = @MSGFMT@
MSGHDR_TYPE = @MSGHDR_TYPE@
NETSTAT = @NETSTAT@
NON_FATAL_CFLAGS = @NON_FATAL_CFLAGS@
OBJEXT = @OBJEXT@
OCF_RA_DIR = @OCF_RA_DIR@
OCF_ROOT_DIR = @OCF_ROOT_DIR@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PILSPKG = @PILSPKG@
PING = @PING@
PING_TIMEOUT_OPT = @PING_TIMEOUT_OPT@
PKGCONFIG = @PKGCONFIG@
PKGNAME = @PKGNAME@
POD2MAN = @POD2MAN@
POWEROFF_CMD = @POWEROFF_CMD@
POWEROFF_OPTIONS = @POWEROFF_OPTIONS@
PRETTY_CC = @PRETTY_CC@
PROCROUTE = @PROCROUTE@
PYTHON = @PYTHON@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
QUIET_LIBTOOL_OPTS = @QUIET_LIBTOOL_OPTS@
QUIET_MAKE_OPTS = @QUIET_MAKE_OPTS@
QUORUMD_ENABLED = @QUORUMD_ENABLED@
RANLIB = @RANLIB@
REBOOT = @REBOOT@
REBOOT_OPTIONS = @REBOOT_OPTIONS@
ROUTE = @ROUTE@
ROUTEPARM = @ROUTEPARM@
RPM = @RPM@
RPMREL = @RPMREL@
RPMTARGET = @RPMTARGET@
RPM_ENABLE_MGMT_CONFIG = @RPM_ENABLE_MGMT_CONFIG@
RPM_ENABLE_OPENHPI = @RPM_ENABLE_OPENHPI@
RPM_ENABLE_SNMP_SUBAGENT = @RPM_ENABLE_SNMP_SUBAGENT@
SCP = @SCP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SNMPAGENTLIB = @SNMPAGENTLIB@
SNMPCONFIG = @SNMPCONFIG@
SNMPLIB = @SNMPLIB@
SNMP_RPM_BUILD_REQUIRES = @SNMP_RPM_BUILD_REQUIRES@
SSH = @SSH@
STONITHPKG = @STONITHPKG@
STONITH_RA_DIR = @STONITH_RA_DIR@
STRIP = @STRIP@
SWIG = @SWIG@
TAR = @TAR@
TARFILE = @TARFILE@
TEST = @TEST@
TIPC_INCLUDE = @TIPC_INCLUDE@
TSA_DIR = @TSA_DIR@
UCDSNMPDEVEL = @UCDSNMPDEVEL@
USE_MODULES = @USE_MODULES@
VALGRIND_BIN = @VALGRIND_BIN@
VERSION = @VERSION@
WHOAMI = @WHOAMI@
XML2CONFIG = @XML2CONFIG@
XPERIMENTALDIRS = @XPERIMENTALDIRS@
YACC = @YACC@
YFLAGS = @YFLAGS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_configure_args = @ac_configure_args@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
base_includedir = @base_includedir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
cleaned_configure_args = @cleaned_configure_args@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
hb_libdir = @hb_libdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pils_includedir = @pils_includedir@
pils_plugindir = @pils_plugindir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
saf_includedir = @saf_includedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
stonith_ext_plugindir = @stonith_ext_plugindir@
stonith_includedir = @stonith_includedir@
stonith_plugindir = @stonith_plugindir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
#
# linux-ha: Linux-HA heartbeat code
#
# Copyright (C) 2001 Michael Moerz
# This instance created by Horms
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = apply changelog compat control copyright \
dpkg-checkbuild rules \
heartbeat.dirs heartbeat.files \
heartbeat.postinst heartbeat.postrm \
heartbeat.preinst \
heartbeat-dev.dirs heartbeat-dev.files \
heartbeat-gui.dirs heartbeat-gui.files \
heartbeat-2.prerm \
ldirectord.files ldirectord.postinst \
ldirectord.postrm \
patches/ipv6-check.patch \
patches/init-remote_fs.patch \
patches/init-openhpid.patch \
patches/init-ntp.patch \
patches/series/2.1.3-1 \
patches/series/2.1.3-2
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu debian/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu debian/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-exec-am:
install-html: install-html-am
install-info: install-info-am
install-man:
install-pdf: install-pdf-am
install-ps: install-ps-am
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
clean-local distclean distclean-generic distclean-libtool \
distdir dvi dvi-am html html-am info info-am install \
install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall uninstall-am
clean-local:
rm -f *.substvars *.debhelper files
rm -r -f heartbeat heartbeat-dev ldirectord \
libpils0 libpils-dev libstonith0 libstonith-dev stonith tmp
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

250
debian/apply vendored

@ -0,0 +1,250 @@
#!/bin/sh
# Apply script for managing patches for debian builts
# Taken from debian kernel-source-2.4.27 package
# Original Author: Herbert Xu
set -e
length=50
die() {
echo "E: $@" >&2
exit 1
}
warn() {
echo "W: $@" >&2
}
uncompress_patch() {
patch=$1
case "$patch" in
*.bz2) bzcat $patch ;;
*.gz) zcat $patch ;;
*) cat $patch ;;
esac
}
find_patch() {
patch=$1
if [ -f "$patch" ]; then
echo "$patch"
elif [ -f "$patch.bz2" ]; then
echo "$patch.bz2"
elif [ -f "$patch.gz" ]; then
echo "$patch.gz"
else
die "$patch is in the series, but doesn't exist!"
fi
}
apply_patch() {
patch=$(find_patch $home/$1)
base=$1
if uncompress_patch "$patch" | patch -p1 -s -t --no-backup-if-mismatch; then
printf "%-${length}s\tOK (+)\n" "$base"
else
printf "%-${length}s\tFAIL (+)\n" "$base"
exit 1
fi
}
deapply_patch() {
patch=$(find_patch $home/$1)
base=$1
if uncompress_patch "$patch" | patch -p1 -s -t -R --no-backup-if-mismatch; then
printf "%-${length}s\tOK (-)\n" "$base"
else
printf "%-${length}s\tFAIL (-)\n" "$base"
exit 1
fi
}
unpatch_series() {
series=$1
[ -f "$series" ] || die "I wasn't passed a series!"
tac $series | while read action patch; do
case "$action" in
+) deapply_patch $patch ;;
-) apply_patch $patch ;;
X)
bakfile="$(dirname $patch)/.$(basename $patch).bak"
if [ -f "$bakfile" ]; then
mv -f "$bakfile" "$patch"
printf "%-${length}s\tRESTORED (X)\n" "$patch"
else
printf "%-${length}s\tNO BACKUP (X)\n" "$patch"
fi
;;
esac
done
echo "--> $(basename $series) fully unapplied."
}
patch_series() {
series=$1
[ -f "$series" ] || die "I wasn't passed a series!"
while read action patch; do
case "$action" in
+) apply_patch $patch ;;
-) deapply_patch $patch ;;
X)
bakfile="$(dirname $patch)/.$(basename $patch).bak"
if [ -f "$patch" ]; then
mv -f "$patch" "$bakfile"
printf "%-${length}s\tREMOVED (X)\n" "$patch"
else
printf "%-${length}s\tNO FILE (X)\n" "$patch"
fi
;;
esac
done < $series
echo "--> $(basename $series) fully applied."
}
bubble_sort ()
{
DIR=$1
shift
SORTED=$@
SWAPED=1
while [ $SWAPED = 1 ]; do
X=0
A=""
SWAPED=0
NEW=""
for i in $SORTED; do
if [ -z "$A" ]; then
A="$i"
continue
fi
B="$i"
if dpkg --compare-versions "$A" "$DIR" "$B"; then
SWAPED=1
NEW="$NEW $B"
else
NEW="$NEW $A"
A="$B"
fi
X=$(($X + 1))
done
SORTED="$NEW $A"
done
echo $SORTED
}
bubble_sort_fwd ()
{
bubble_sort "lt" $@
}
bubble_sort_rev ()
{
bubble_sort "gt" $@
}
if ! [ -d heartbeat ]; then
die 'Not in heartbeat top level directory. Exiting'
exit 1
fi
# for THIS particular version of the source package
#deb_version=$(sed -ne "/^heartbeat/ { s/.*(\([^)]*\)).*/\1/ p" -e "q}" \
# ${PWD}/debian/changelog)
deb_version=$(dpkg-parsechangelog | awk '/^Version: / { print $2 }')
version=${override_version:-$deb_version}
upstream=${version%-*}
revision=${version#*-}
home="$PWD/debian/patches"
if [ -f version.Debian ]; then
current=$(cat version.Debian)
current_rev=${current#*-}
current_up=${current%-*}
if [ "$current" = "$upstream" ]; then
current_rev=0
fi
else
warn "No version.Debian file, assuming pristine heartbeat $upstream"
current=$upstream
current_rev=0
fi
target=${1:-$version}
target_rev=${target#*-}
target_up=${target%-*}
# Sanity checks
if [ "$target_up" != "$upstream" ]; then
die "Upstream $target_up doesn't match $upstream!"
# We don't have that version out yet!
elif [ ! -n "$target_rev" ] || ( [ "$target_rev" != "$target" ] && dpkg --compare-versions $target_rev gt $revision ); then
year=$(($(date +%Y) + 1))
die "Can't patch to nonexistent revision $target_rev (wait until $year)"
fi
# At this point, we must handle three cases.
# 1. $target_rev is greater than $current_rev. We must patch forward for this.
# 2. $target_rev is less than $current_rev. We must reverse the list of series,
# reverse each used series (tac) and unapply applied patches and vice versa.
# 3. $target_rev is undefined, and $target is $upstream.
# Revert to upstream.
if [ "$target_rev" = "$target" ]; then
# already reverted
if [ "$current" = "$target" ]; then
echo "Nothing to do, exiting."
exit 0
fi
for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *-*)); do
srev=${base#*-}
if [ -n "$srev" ]; then
if dpkg --compare-versions $srev le $current_rev; then
unpatch_series $home/series/$base
fi
else
die "Series doesn't have a revision!"
fi
done
elif [ "$current_rev" = "$upstream" ] || dpkg --compare-versions $target_rev gt $current_rev; then
for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *-*)); do
srev=${base#*-}
if [ -n "$srev" ]; then
if dpkg --compare-versions $srev gt $current_rev && dpkg --compare-versions $srev le $target_rev; then
patch_series $home/series/$base
fi
else
die "Series doesn't have a revision!"
fi
done
elif [ $target_rev = $current_rev ]; then
echo "Nothing to do, exiting."
exit 0
elif dpkg --compare-versions $target_rev lt $current_rev; then
for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *-*)); do
srev=${base#*-}
if [ -n "$srev" ]; then
# gt because you don't want to unapply the target series
if dpkg --compare-versions $srev le $current_rev && dpkg --compare-versions $srev gt $target_rev; then
unpatch_series $home/series/$base
fi
else
die "Series doesn't have a revision!"
fi
done
fi
echo $target > version.Debian

1256
debian/changelog vendored

File diff suppressed because it is too large Load Diff

1
debian/compat vendored

@ -0,0 +1 @@
4

124
debian/control vendored

@ -0,0 +1,124 @@
Source: heartbeat-2
Section: admin
Priority: optional
Maintainer: Simon Horman <horms@debian.org>
Build-Depends: debhelper (>= 5.0.37.2), libsnmp-dev, libglib2.0-dev, perl, net-tools, iputils-ping, python, psmisc, libnet1-dev, iproute, libtool, libcurl4-openssl-dev | libcurl3-openssl-dev, libxml2-dev, bison, flex, uuid-dev, lynx, libbz2-dev, zlib1g-dev, uuid-dev, libsensors4-dev, libltdl3-dev, swig, openssh-client, libgnutls-dev, python-central (>= 0.5), python-dev, libpam0g-dev, libncurses5-dev, psmisc, libopenhpi-dev
Standards-Version: 3.7.3
XS-Python-Version: current
Package: ldirectord
Section: admin
Priority: extra
Architecture: all
Depends: ${perl:Depends}, ipvsadm, libauthen-radius-perl, libcrypt-ssleay-perl, libdbi-perl, libdigest-hmac-perl, libdigest-md5-perl, libmail-pop3client-perl, libmailtools-perl, libnet-dns-perl, libnet-imap-simple-perl, libnet-imap-simple-ssl-perl, libnet-ldap-perl, libnet-perl, libwww-perl
Recommends: rsyslog | system-log-daemon, logrotate
Conflicts: libpils0 (<< 2.0.8-3), libstonith0 (<< 2.0.8-3), stonith (<< 2.0.8-3)
XB-Python-Version: ${python:Versions}
Description: Monitors virtual services provided by LVS
ldirectord is a stand-alone daemon to monitor services of real
for virtual services provided by The Linux Virtual Server (LVS).
and works with Linux-HA's heartbeat package.
Package: heartbeat-2
Section: admin
Priority: optional
Architecture: any
Depends: ${shlibs:Depends}, ${python:Depends}, iproute, adduser, iputils-ping, psmisc, gawk, mawk, libxml2-utils, libpam-runtime (>= 0.76-14)
Recommends: rsyslog | system-log-daemon, logrotate, iptables
Provides: libstonith0, libpils0
Conflicts: libstonith0, libpils0, heartbeat
Replaces: libstonith0, libpils0
XB-Python-Version: ${python:Versions}
Description: Subsystem for High-Availability Linux
heartbeat is a basic heartbeat subsystem for Linux-HA which implements
serial, UDP, and PPP/UDP heartbeats together with IP address takeover
including a nice resource model including resource groups.
.
It currently supports a very sophisticated dependency model for n-node
clusters. It is both extremely useful and quite stable at this point in
time.
Package: heartbeat-2-dev
Section: devel
Priority: optional
Architecture: any
Depends: heartbeat-2 (= ${binary:Version})
Provides: libstonith-dev, libpils-dev
Conflicts: libstonith-dev, libpils-dev
Replaces: libstonith-dev, libpils-dev
XB-Python-Version: ${python:Versions}
Description: Subsystem for High-Availability Linux - development files
heartbeat is a basic heartbeat subsystem for Linux-HA which implements
serial, UDP, and PPP/UDP heartbeats together with IP address takeover
including a nice resource model including resource groups.
.
It currently supports a very sophisticated dependency model for n-node
clusters. It is both extremely useful and quite stable at this point in
time.
.
This package contains development files
Package: heartbeat-2-gui
Section: admin
Priority: optional
Architecture: any
Depends: ${python:Depends}, python-gtk2, python-glade2, uuid-runtime, python-xml
Suggests: heartbeat-2 (= ${binary:Version})
XB-Python-Version: ${python:Versions}
Description: Provides a gui interface to manage heartbeat clusters
GUI client for heartbeat clusters
Package: ldirectord-2
Section: admin
Priority: optional
Architecture: all
Depends: ldirectord (= ${source:Version})
Description: Monitors virtual services provided by LVS
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.
Package: stonith
Section: libs
Priority: optional
Architecture: any
Depends: heartbeat-2 (= ${binary:Version})
Description: Interface for remotely powering down a node in the cluster
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.
Package: libstonith0
Section: libs
Priority: optional
Architecture: any
Depends: heartbeat-2 (= ${binary:Version})
Description: Interface for remotely powering down a node in the cluster
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.
Package: libstonith-dev
Section: admin
Priority: optional
Architecture: all
Depends: heartbeat-2-dev (>= ${source:Version})
Description: Interface for remotely powering down a node in the cluster
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.
Package: libpils0
Section: libs
Priority: optional
Architecture: any
Depends: heartbeat-2 (= ${binary:Version})
Description: Plugin and Interface Loading System
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.
Package: libpils-dev
Section: admin
Priority: optional
Architecture: all
Depends: heartbeat-2-dev (>= ${source:Version})
Description: Plugin and Interface Loading System - development files
This is a transitional dummy package. If nothing depends on it, this
package can be safely removed.

107
debian/copyright vendored

@ -0,0 +1,107 @@
This package was first debianized by Paolo Molaro <lupus@debian.org> on
Wed, 17 Nov 1999 17:30:23 +0100.
The original sources can be found at:
http://www.linux-ha.org/download/
Upstream Authors (from doc/AUTHORS):
NOTE: The work of everyone on this project is dearly appreciated. If you
are not listed here but should be, please notify us!
The following people have kindly helped with heartbeat development by
providing code, documentation or testing, or fixes:
Alan Robertson <alanr@unix.sh>
Main architect.
Things other people don't want to do.
Contributors, ordered by last name:
Eric Ayers <eric@compgen.com>
Nightware RPC100S, and WTI RPS10 support
Andrew Beekhof <andrew@beekhof.net>
Cluster Resource Manager
Darwin Cleanups
Stéphane Billiart <stephane@reefedge.com> - unicast support
Gregor Binder <gbinder@sysfive.com> - "meatware" STONITH support
Juan Pedro Paredes Caballero <juampe@retemail.es> - Debian support
Dusan Djordjevic <dj.dule@linux.org.yu> - documentation
Kevin Dwyer <kevin@pheared.net> - ipfail, bug fixes.
Joachim Gleissner <jg@suse.de> ssh STONITH support
Luis Claudio R. Gonçalves <lclaudio@conectiva.com.br>
nice_failback code, hb_standby code, fixes
Thomas Hepper <th@ant.han.de>
solaris and Debian support
Masaki Hasegawa <masaki-h@pp.iij4u.or.jp> - send_arp research, fix
Andrew Hildebrand <andrew@pdi.com> - IRIX port.
Horms <horms@vergenet.net> <horms@verge.net.au>
LVS support, ldirectord, many fixes
Gregor Howey <ghowey@bremer-nachrichten.de>
Holger Kiehl <Holger.Kiehl@dwd.de>
Kirk Lawson <lklawson@heapy.com> - Audible alarm support
Mike Ledoux <mwl@mclinux.com>
APC master switch and WTI [WT]PS-xxx support
David Lee <t.d.lee@durham.ac.uk> - autoconf and solaris support
Xiaoxiang Liu <xiliu@ncsa.uiuc.edu>
interprocess communication library
Friedrich Lobenstock <fl@fl.priv.at> - SuSE compatibility fixes
Lars Marowsky-Brée <lmb@suse.de>
LVM, ICP and ssh STONITH support, many fixes
SuSE package maintainer
STABLE_1_0 / 1.0.x release maintenance
Michael Moerz <mike@cubit.at> - automake support
Ram Pai <linuxram@us.ibm.com> - Consensus Membership module
Rudy Pawul <rpawul@iso-ne.com>
Documentation, first production customer
Andreas Piesk <a.piesk@gmx.net>
APC Masterswitch (snmp) and APCSmart support
Jacob Rief <jacob.rief@tis.at> - ldirectord
Stefan Salzer <salt@cin.de>
Mitja Sarp <mitja@lysator.liu.se>
Initial authentication support (first big contribution)
Guochun Shi<gshi@ncsa.uiuc.edu>
Communication/core/membership layer support
Matthew Soffen <sirgeek@mrsucko.org>
FreeBSD port, Solaris fixes, and release manager
Guenther Thomsen <thomsen@cs.tu-berlin.de>
Debian compliance
Mike Tilstra <conrad@sistina.com> - VACM support
Marcelo Tosatti <marcelo@conectiva.com.br>
API support, initial plugin support
Iñaki Fernández Villanueva - debian support
Todd Wheeling <wheeling@mclinux.com>
APC master switch and WTI [WT]PS-xxx support
Volker Wiegand <Volker.Wiegand@suse.de>
/proc file system, initial SuSE support, documentation
Chris Wright <chris@wirex.com>
Multicast support, inet_pton replacement, fixes
Code for the following pieces borrowed from code by:
Tom Vogt <tom@lemuria.org> (udp code)
yuri volobuev <volobuev@t1.chem.umn.edu> (send_arp.c)
'Network UPS Tools' by Russell Kroll <rkroll@exploits.org>
homepage: http://www.exploits.org/nut/
(Andreas Piesk borrowed code for APCSmart support)
David C. Teigland <teigland@sistina.com>
wrote original meatware support for GFS stomith
salz@pebbles.bbn.com - replacement scandir function
Internet Software Consortium (bind) - replacement inet_pton()
function
All binaries provided by this package are GNU GPL or GNU LGPL.
Some source files are under the BSD licence or in the public domain,
as annotated by those files. All source files without a specific
licence statement are available licenced under the GNU GPL.
A copy of the GNU GPL licence is available on Debian systems at
/usr/share/common-licenses/GPL
A copy of the GNU LGPL licence is available on Debian systems at
/usr/share/common-licenses/LGPL
A copy of the BSD licence is available on Debian systems at
/usr/share/common-licenses/BSD

@ -0,0 +1,197 @@
#!/usr/bin/perl -w
# Copyright 2001 by Joey Hess <joeyh@debian.org>
# License: GNU General Public License (GPL)
use strict;
use Getopt::Long;
sub usage {
print STDERR <<EOF;
Usage: dpkg-checkbuild [-B] [control-file]
-B binary-only, ignore -Indep
control-file control file to process [Default: debian/control]
EOF
}
my ($me)=$0=~m:.*/(.+):;
my $binary_only=0;
if (! GetOptions('-B' => \$binary_only)) {
usage();
exit(2);
}
my $control=shift || "debian/control";
open (CONTROL, $control) || die "$control: $!\n";
my @status=parse_status();
my (@unmet, @conflicts);
while (<CONTROL>) {
chomp;
last if $_ eq ''; # end of first stanza
if (/^Build-Depends:\s+(.*)/i) {
push @unmet, build_depends($1, @status);
}
elsif (/^Build-Conflicts:\s+(.*)/i) {
push @conflicts, build_conflicts($1, @status);
}
elsif (! $binary_only && /^Build-Depends-Indep:\s+(.*)/i) {
push @unmet, build_depends($1, @status);
}
elsif (! $binary_only && /^Build-Conflicts-Indep:\s+(.*)/i) {
push @conflicts, build_conflicts($1, @status);
}
}
close CONTROL;
if (@unmet) {
print STDERR "$me: Unmet build dependancies: ";
print STDERR join(", ", @unmet), "\n";
}
if (@conflicts) {
print STDERR "$me: Build conflicts: ";
print STDERR join(", ", @conflicts), "\n";
}
exit 1 if @unmet || @conflicts;
# This part could be replaced. Silly little status file parser.
# thanks to Matt Zimmerman. Returns two hash references that
# are exactly what the other functions need...
sub parse_status {
my $status=shift || "/var/lib/dpkg/status";
my %providers;
my %version;
local $/ = '';
open(STATUS, "<$status") || die "$status: $!\n";
while (<STATUS>) {
next unless /^Status: .*ok installed$/m;
my ($package) = /^Package: (.*)$/m;
push @{$providers{$package}}, $package;
($version{$package}) = /^Version: (.*)$/m;
if (/^Provides: (.*)$/m) {
foreach (split(/,\s+/, $1)) {
push @{$providers{$_}}, $package;
}
}
}
close STATUS;
return \%version, \%providers;
}
# This function checks the build dependancies passed in as the first
# parameter. If they are satisfied, returns false. If they are unsatisfied,
# an list of the unsatisfied depends is returned.
#
# Additional parameters that must be passed:
# * A reference to a hash of all "ok installed" the packages on the system,
# with the hash key being the package name, and the value being the
# installed version.
# * A reference to a hash, where the keys are package names, and the
# value is a true value iff some package installed on the system provides
# that package (all installed packages provide themselves)
#
# Optionally, the architecture the package is to be built for can be passed
# in as the 4th parameter. If not set, dpkg will be queried for the build
# architecture.
sub build_depends {
return check_line(1, @_);
}
# This function is exactly like unmet_build_depends, except it
# checks for build conflicts, and returns a list of the packages
# that are installed and are conflicted with.
sub build_conflicts {
return check_line(0, @_);
}
# This function does all the work. The first parameter is 1 to check build
# deps, and 0 to check build conflicts.
sub check_line {
my $build_depends=shift;
my $line=shift;
my %version=%{shift()};
my %providers=%{shift()};
my $build_arch=shift || `dpkg --print-architecture`;
chomp $build_arch;
my @unmet=();
foreach my $dep (split(/,\s+/, $line)) {
my $ok=0;
my @possibles=();
ALTERNATE: foreach my $alternate (split(/\s*\|\s*/, $dep)) {
my ($package, $rest)=split(/\s+/, $alternate, 2);
# Check arch specifications.
if (defined $rest && $rest=~m/\[(.*?)\]/) {
my $arches=lc($1);
my $seen_arch='';
foreach my $arch (split(' ', $arches)) {
if ($arch eq $build_arch) {
$seen_arch=1;
next;
}
elsif ($arch eq "!$build_arch") {
next ALTERNATE;
}
elsif ($arch =~ /!/) {
# This is equivilant to
# having seen the current arch,
# unless the current arch
# is also listed..
$seen_arch=1;
}
}
if (! $seen_arch) {
next;
}
}
# This is a possibile way to meet the dependancy.
# Remove the arch stuff from $alternate.
$alternate=~s/\s+\[.*?\]//;
push @possibles, $alternate;
# Check version.
if (defined $rest && $rest=~m/\((..)\s+(.*?)\)/) {
my $relation=$1;
my $version=$2;
if (! exists $version{$package}) {
# Not installed at all, so fail.
next;
}
else {
# Compare installed and needed
# version number.
system("dpkg", "--compare-versions",
$version{$package}, $relation,
$version);
if (($? >> 8) != 0) {
next; # fail
}
}
}
elsif (! defined $providers{$package}) {
# It's not a versioned dependancy, and
# nothing provides it, so fail.
next;
}
# If we get to here, the dependancy was met.
$ok=1;
}
if (@possibles && (($build_depends && ! $ok) ||
(! $build_depends && $ok))) {
# TODO: this could return a more complex
# data structure instead to save re-parsing.
push @unmet, join (" | ", @possibles);
}
}
return @unmet;
}

@ -0,0 +1,7 @@
usr/include/clplumbing
usr/include/heartbeat
usr/include/linux-ha
usr/include/ocf
usr/include/pils
usr/include/saf
usr/include/stonith

@ -0,0 +1,138 @@
usr/include/clplumbing/GSource.h
usr/include/clplumbing/GSource_internal.h
usr/include/clplumbing/Gmain_timeout.h
usr/include/clplumbing/apphb_cs.h
usr/include/clplumbing/base64.h
usr/include/clplumbing/cl_log.h
usr/include/clplumbing/cl_malloc.h
usr/include/clplumbing/cl_misc.h
usr/include/clplumbing/cl_pidfile.h
usr/include/clplumbing/cl_plugin.h
usr/include/clplumbing/cl_poll.h
usr/include/clplumbing/cl_quorum.h
usr/include/clplumbing/cl_quorumd.h
usr/include/clplumbing/cl_random.h
usr/include/clplumbing/cl_signal.h
usr/include/clplumbing/cl_syslog.h
usr/include/clplumbing/cl_tiebreaker.h
usr/include/clplumbing/cl_uuid.h
usr/include/clplumbing/coredumps.h
usr/include/clplumbing/coredumps.h
usr/include/clplumbing/cpulimits.h
usr/include/clplumbing/ipc.h
usr/include/clplumbing/loggingdaemon.h
usr/include/clplumbing/longclock.h
usr/include/clplumbing/lsb_exitcodes.h
usr/include/clplumbing/md5.h
usr/include/clplumbing/mkstemp_mode.h
usr/include/clplumbing/netstring.h
usr/include/clplumbing/proctrack.h
usr/include/clplumbing/realtime.h
usr/include/clplumbing/recoverymgr_cs.h
usr/include/clplumbing/replytrack.h
usr/include/clplumbing/setproctitle.h
usr/include/clplumbing/timers.h
usr/include/clplumbing/uids.h
usr/include/heartbeat/HBauth.h
usr/include/heartbeat/HBcomm.h
usr/include/heartbeat/apphb.h
usr/include/heartbeat/apphb_notify.h
usr/include/heartbeat/compress.h
usr/include/heartbeat/crm/cib.h
usr/include/heartbeat/crm/common/ctrl.h
usr/include/heartbeat/crm/common/ipc.h
usr/include/heartbeat/crm/common/iso8601.h
usr/include/heartbeat/crm/common/msg.h
usr/include/heartbeat/crm/common/util.h
usr/include/heartbeat/crm/common/xml.h
usr/include/heartbeat/crm/crm.h
usr/include/heartbeat/crm/msg_xml.h
usr/include/heartbeat/crm/pengine/common.h
usr/include/heartbeat/crm/pengine/complex.h
usr/include/heartbeat/crm/pengine/rules.h
usr/include/heartbeat/crm/pengine/status.h
usr/include/heartbeat/crm/transition.h
usr/include/heartbeat/fencing/stonithd_api.h
usr/include/heartbeat/fencing/stonithd_msg.h
usr/include/heartbeat/ha_msg.h
usr/include/heartbeat/hb_api.h
usr/include/heartbeat/hb_config.h
usr/include/heartbeat/heartbeat.h
usr/include/heartbeat/lrm/lrm_api.h
usr/include/heartbeat/lrm/lrm_msg.h
usr/include/heartbeat/lrm/racommon.h
usr/include/heartbeat/lrm/raexec.h
usr/include/heartbeat/mgmt/mgmt.h
usr/include/heartbeat/mgmt/mgmt_client.h
usr/include/heartbeat/mgmt/mgmt_common.h
usr/include/heartbeat/mgmt/mgmt_tls.h
usr/include/heartbeat/recoverymgr.h
usr/include/heartbeat/replace_uuid.h
usr/include/ocf/oc_event.h
usr/include/ocf/oc_membership.h
usr/include/pils/generic.h
usr/include/pils/interface.h
usr/include/pils/plugin.h
usr/include/saf/ais.h
usr/include/saf/ais_amf.h
usr/include/saf/ais_base.h
usr/include/saf/ais_checkpoint.h
usr/include/saf/ais_event.h
usr/include/saf/ais_lock.h
usr/include/saf/ais_membership.h
usr/include/saf/ais_message.h
usr/include/stonith/expect.h
usr/include/stonith/st_ttylock.h
usr/include/stonith/stonith.h
usr/include/stonith/stonith_plugin.h
usr/lib64/libapphb.a
usr/lib64/libapphb.la
usr/lib64/libapphb.so
usr/lib64/libccmclient.a
usr/lib64/libccmclient.la
usr/lib64/libccmclient.so
usr/lib64/libcib.a
usr/lib64/libcib.la
usr/lib64/libcib.so
usr/lib64/libclm.a
usr/lib64/libclm.la
usr/lib64/libclm.so
usr/lib64/libcrmcommon.a
usr/lib64/libcrmcommon.la
usr/lib64/libcrmcommon.so
usr/lib64/libhbclient.a
usr/lib64/libhbclient.la
usr/lib64/libhbclient.so
usr/lib64/liblrm.a
usr/lib64/liblrm.la
usr/lib64/liblrm.so
usr/lib64/libpe_rules.a
usr/lib64/libpe_rules.la
usr/lib64/libpe_rules.so
usr/lib64/libpe_status.a
usr/lib64/libpe_status.la
usr/lib64/libpe_status.so
usr/lib64/libpengine.a
usr/lib64/libpengine.la
usr/lib64/libpengine.so
usr/lib64/libpils.a
usr/lib64/libpils.la
usr/lib64/libpils.so
usr/lib64/libplumb.a
usr/lib64/libplumb.la
usr/lib64/libplumb.so
usr/lib64/libplumbgpl.a
usr/lib64/libplumbgpl.la
usr/lib64/libplumbgpl.so
usr/lib64/librecoverymgr.a
usr/lib64/librecoverymgr.la
usr/lib64/librecoverymgr.so
usr/lib64/libstonith.a
usr/lib64/libstonith.la
usr/lib64/libstonith.so
usr/lib64/libstonithd.a
usr/lib64/libstonithd.la
usr/lib64/libstonithd.so
usr/lib64/libtransitioner.a
usr/lib64/libtransitioner.la
usr/lib64/libtransitioner.so

@ -0,0 +1 @@
usr/lib64/heartbeat-gui

@ -0,0 +1,26 @@
usr/bin/hb_gui
usr/lib64/heartbeat-gui/_pymgmt.so
usr/lib64/heartbeat-gui/_pymgmt.so.0
usr/lib64/heartbeat-gui/_pymgmt.so.0.0.0
usr/lib64/heartbeat-gui/haclient.py
usr/lib64/heartbeat-gui/pymgmt.py
usr/share/heartbeat-gui/active-node.png
usr/share/heartbeat-gui/add-resource.png
usr/share/heartbeat-gui/cleanup-resource.png
usr/share/heartbeat-gui/default-resource.png
usr/share/heartbeat-gui/down-resource.png
usr/share/heartbeat-gui/exit.png
usr/share/heartbeat-gui/ha.png
usr/share/heartbeat-gui/haclient.glade
usr/share/heartbeat-gui/haclient.py
usr/share/heartbeat-gui/login.png
usr/share/heartbeat-gui/logout.png
usr/share/heartbeat-gui/master-resource.png
usr/share/heartbeat-gui/mgmtcmd.py
usr/share/heartbeat-gui/remove-resource.png
usr/share/heartbeat-gui/slave-resource.png
usr/share/heartbeat-gui/standby-node.png
usr/share/heartbeat-gui/start-resource.png
usr/share/heartbeat-gui/stop-resource.png
usr/share/heartbeat-gui/up-resource.png
usr/share/locale/zh_CN/LC_MESSAGES/haclient.mo

@ -0,0 +1,33 @@
etc/ha.d
etc/ha.d/conf
etc/ha.d/cts
etc/ha.d/rc.d
etc/ha.d/resource.d
etc/init.d
etc/logrotate.d/
usr/include/pils
usr/lib64/heartbeat
usr/lib64/heartbeat/plugins
usr/lib64/heartbeat/plugins/AppHBNotification
usr/lib64/heartbeat/plugins/HBauth
usr/lib64/heartbeat/plugins/HBcomm
usr/lib64/heartbeat/plugins/test
usr/lib64/pils/plugins
usr/lib64/pils/plugins/InterfaceMgr
usr/lib64/stonith/
usr/lib64/stonith/plugins/
var/lib/heartbeat
var/lib/heartbeat/api
var/lib/heartbeat/casual
var/lib/heartbeat/ccm
var/lib/heartbeat/cores
var/lib/heartbeat/cores/root
var/lib/heartbeat/cores/nobody
var/lib/heartbeat/cores/hacluster
var/lib/heartbeat/crm
var/lib/heartbeat/ckpt
var/lib/heartbeat/pengine
var/lock/subsys
var/run/heartbeat
var/run/heartbeat/ccm
var/run/heartbeat/crm

@ -0,0 +1,361 @@
/etc/ha.d/README.config
/etc/ha.d/harc
/etc/ha.d/rc.d/ask_resources
/etc/ha.d/rc.d/hb_takeover
/etc/ha.d/rc.d/ip-request
/etc/ha.d/rc.d/ip-request-resp
/etc/ha.d/rc.d/status
/etc/ha.d/resource.d/AudibleAlarm
/etc/ha.d/resource.d/Delay
/etc/ha.d/resource.d/Filesystem
/etc/ha.d/resource.d/ICP
/etc/ha.d/resource.d/IPaddr
/etc/ha.d/resource.d/IPaddr2
/etc/ha.d/resource.d/IPsrcaddr
/etc/ha.d/resource.d/IPv6addr
/etc/ha.d/resource.d/LVM
/etc/ha.d/resource.d/LVSSyncDaemonSwap
/etc/ha.d/resource.d/LinuxSCSI
/etc/ha.d/resource.d/MailTo
/etc/ha.d/resource.d/OCF
/etc/ha.d/resource.d/Raid1
/etc/ha.d/resource.d/SendArp
/etc/ha.d/resource.d/ServeRAID
/etc/ha.d/resource.d/WAS
/etc/ha.d/resource.d/WinPopup
/etc/ha.d/resource.d/Xinetd
/etc/ha.d/resource.d/apache
/etc/ha.d/resource.d/db2
/etc/ha.d/resource.d/hto-mapfuncs
/etc/ha.d/resource.d/ids
/etc/ha.d/resource.d/portblock
/etc/ha.d/shellfuncs
/etc/heartbeat
/etc/init.d/heartbeat
/etc/logrotate.d/heartbeat
/etc/pam.d/hbmgmtd
usr/bin/cl_respawn
usr/bin/cl_status
usr/include/clplumbing/cl_reboot.h
usr/lib64/heartbeat/BasicSanityCheck
usr/lib64/heartbeat/ResourceManager
usr/lib64/heartbeat/SNMPAgentSanityCheck
usr/lib64/heartbeat/TestHeartbeatComm
usr/lib64/heartbeat/api_test
usr/lib64/heartbeat/apphbd
usr/lib64/heartbeat/apphbtest
usr/lib64/heartbeat/atest
usr/lib64/heartbeat/attrd
usr/lib64/heartbeat/base64_md5_test
usr/lib64/heartbeat/ccm
usr/lib64/heartbeat/ccm_testclient
usr/lib64/heartbeat/cib
usr/lib64/heartbeat/cibmon
usr/lib64/heartbeat/clmtest
usr/lib64/heartbeat/crm.dtd
usr/lib64/heartbeat/crm_commands.py
usr/lib64/heartbeat/crm_primitive.py
usr/lib64/heartbeat/crm_utils.py
usr/lib64/heartbeat/crmd
usr/lib64/heartbeat/cts
usr/lib64/heartbeat/dopd
usr/lib64/heartbeat/drbd-peer-outdater
usr/lib64/heartbeat/findif
usr/lib64/heartbeat/ha_config
usr/lib64/heartbeat/ha_logd
usr/lib64/heartbeat/ha_logger
usr/lib64/heartbeat/ha_propagate
usr/lib64/heartbeat/haresources2cib.py
usr/lib64/heartbeat/hb_addnode
usr/lib64/heartbeat/hb_delnode
usr/lib64/heartbeat/hb_setsite
usr/lib64/heartbeat/hb_setweight
usr/lib64/heartbeat/hb_standby
usr/lib64/heartbeat/hb_takeover
usr/lib64/heartbeat/hbagent
usr/lib64/heartbeat/heartbeat
usr/lib64/heartbeat/ipctest
usr/lib64/heartbeat/ipctransientclient
usr/lib64/heartbeat/ipctransientserver
usr/lib64/heartbeat/ipfail
usr/lib64/heartbeat/logtest
usr/lib64/heartbeat/lrmadmin
usr/lib64/heartbeat/lrmd
usr/lib64/heartbeat/lrmtest
usr/lib64/heartbeat/mach_down
usr/lib64/heartbeat/mgmtd
usr/lib64/heartbeat/mgmtdtest
usr/lib64/heartbeat/mlock
usr/lib64/heartbeat/ocf-returncodes
usr/lib64/heartbeat/ocf-shellfuncs
usr/lib64/heartbeat/pengine
usr/lib64/heartbeat/pingd
usr/lib64/heartbeat/plugins/AppHBNotification/recmgr.so
usr/lib64/heartbeat/plugins/HBauth/crc.so
usr/lib64/heartbeat/plugins/HBauth/md5.so
usr/lib64/heartbeat/plugins/HBauth/sha1.so
usr/lib64/heartbeat/plugins/HBcomm/bcast.so
usr/lib64/heartbeat/plugins/HBcomm/mcast.so
usr/lib64/heartbeat/plugins/HBcomm/ping.so
usr/lib64/heartbeat/plugins/HBcomm/ping_group.so
usr/lib64/heartbeat/plugins/HBcomm/serial.so
usr/lib64/heartbeat/plugins/HBcomm/ucast.so
usr/lib64/heartbeat/plugins/HBcompress/bz2.so
usr/lib64/heartbeat/plugins/HBcompress/zlib.so
usr/lib64/heartbeat/plugins/RAExec/heartbeat.so
usr/lib64/heartbeat/plugins/RAExec/lsb.so
usr/lib64/heartbeat/plugins/RAExec/ocf.so
usr/lib64/heartbeat/plugins/RAExec/stonith.so
usr/lib64/heartbeat/plugins/quorum/majority.so
usr/lib64/heartbeat/plugins/quorum/quorumd.so
usr/lib64/heartbeat/plugins/quorum/twonodes.so
usr/lib64/heartbeat/plugins/quorum/weight.so
usr/lib64/heartbeat/plugins/quorumd/2_0_8.so
usr/lib64/heartbeat/plugins/test/test.so
usr/lib64/heartbeat/plugins/tiebreaker/twonodes.so
usr/lib64/heartbeat/quorumd
usr/lib64/heartbeat/quorumdtest
usr/lib64/heartbeat/recoverymgrd
usr/lib64/heartbeat/req_resource
usr/lib64/heartbeat/send_arp
usr/lib64/heartbeat/stonithd
usr/lib64/heartbeat/stonithdtest/apitest
usr/lib64/heartbeat/tengine
usr/lib64/heartbeat/transient-test.sh
usr/lib64/heartbeat/ttest
usr/lib64/heartbeat/utillib.sh
usr/lib64/libapphb.so.0
usr/lib64/libapphb.so.0.0.0
usr/lib64/libccmclient.so.1
usr/lib64/libccmclient.so.1.0.0
usr/lib64/libcib.so.1
usr/lib64/libcib.so.1.0.1
usr/lib64/libclm.so.1
usr/lib64/libclm.so.1.0.0
usr/lib64/libcrmcommon.so.1
usr/lib64/libcrmcommon.so.1.0.1
usr/lib64/libhbclient.so.1
usr/lib64/libhbclient.so.1.0.0
usr/lib64/libhbmgmt.so
usr/lib64/libhbmgmt.so.0
usr/lib64/libhbmgmt.so.0.0.0
usr/lib64/libhbmgmtclient.so
usr/lib64/libhbmgmtclient.so.0
usr/lib64/libhbmgmtclient.so.0.0.0
usr/lib64/libhbmgmtcommon.so
usr/lib64/libhbmgmtcommon.so.0
usr/lib64/libhbmgmtcommon.so.0.0.0
usr/lib64/libhbmgmttls.so
usr/lib64/libhbmgmttls.so.0
usr/lib64/libhbmgmttls.so.0.0.0
usr/lib64/liblrm.so.0
usr/lib64/liblrm.so.0.0.0
usr/lib64/libpe_rules.so.2
usr/lib64/libpe_rules.so.2.0.0
usr/lib64/libpe_status.so.2
usr/lib64/libpe_status.so.2.0.0
usr/lib64/libpengine.so.3
usr/lib64/libpengine.so.3.0.0
usr/lib64/libpils.so.1
usr/lib64/libpils.so.1.0.0
usr/lib64/libplumb.so.1
usr/lib64/libplumb.so.1.0.0
usr/lib64/libplumbgpl.so.1
usr/lib64/libplumbgpl.so.1.0.0
usr/lib64/librecoverymgr.so.1
usr/lib64/librecoverymgr.so.1.0.0
usr/lib64/libstonith.so.1
usr/lib64/libstonith.so.1.0.0
usr/lib64/libstonithd.so.0
usr/lib64/libstonithd.so.0.0.0
usr/lib64/libtransitioner.so.1
usr/lib64/libtransitioner.so.1.0.0
usr/lib/ocf/resource.d/heartbeat/.ocf-binaries
usr/lib/ocf/resource.d/heartbeat/.ocf-directories
usr/lib/ocf/resource.d/heartbeat/.ocf-returncodes
usr/lib/ocf/resource.d/heartbeat/.ocf-shellfuncs
usr/lib/ocf/resource.d/heartbeat/AudibleAlarm
usr/lib/ocf/resource.d/heartbeat/ClusterMon
usr/lib/ocf/resource.d/heartbeat/Delay
usr/lib/ocf/resource.d/heartbeat/Dummy
usr/lib/ocf/resource.d/heartbeat/EvmsSCC
usr/lib/ocf/resource.d/heartbeat/Evmsd
usr/lib/ocf/resource.d/heartbeat/Filesystem
usr/lib/ocf/resource.d/heartbeat/ICP
usr/lib/ocf/resource.d/heartbeat/IPaddr
usr/lib/ocf/resource.d/heartbeat/IPaddr2
usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
usr/lib/ocf/resource.d/heartbeat/IPv6addr
usr/lib/ocf/resource.d/heartbeat/LVM
usr/lib/ocf/resource.d/heartbeat/LinuxSCSI
usr/lib/ocf/resource.d/heartbeat/MailTo
usr/lib/ocf/resource.d/heartbeat/ManageRAID
usr/lib/ocf/resource.d/heartbeat/ManageVE
usr/lib/ocf/resource.d/heartbeat/Pure-FTPd
usr/lib/ocf/resource.d/heartbeat/Raid1
usr/lib/ocf/resource.d/heartbeat/SAPDatabase
usr/lib/ocf/resource.d/heartbeat/SAPInstance
usr/lib/ocf/resource.d/heartbeat/SendArp
usr/lib/ocf/resource.d/heartbeat/ServeRAID
usr/lib/ocf/resource.d/heartbeat/SphinxSearchDaemon
usr/lib/ocf/resource.d/heartbeat/Stateful
usr/lib/ocf/resource.d/heartbeat/SysInfo
usr/lib/ocf/resource.d/heartbeat/VIPArip
usr/lib/ocf/resource.d/heartbeat/WAS
usr/lib/ocf/resource.d/heartbeat/WAS6
usr/lib/ocf/resource.d/heartbeat/WinPopup
usr/lib/ocf/resource.d/heartbeat/Xen
usr/lib/ocf/resource.d/heartbeat/Xinetd
usr/lib/ocf/resource.d/heartbeat/apache
usr/lib/ocf/resource.d/heartbeat/db2
usr/lib/ocf/resource.d/heartbeat/drbd
usr/lib/ocf/resource.d/heartbeat/eDir88
usr/lib/ocf/resource.d/heartbeat/ids
usr/lib/ocf/resource.d/heartbeat/iscsi
usr/lib/ocf/resource.d/heartbeat/mysql
usr/lib/ocf/resource.d/heartbeat/o2cb
usr/lib/ocf/resource.d/heartbeat/oracle
usr/lib/ocf/resource.d/heartbeat/oralsnr
usr/lib/ocf/resource.d/heartbeat/pgsql
usr/lib/ocf/resource.d/heartbeat/pingd
usr/lib/ocf/resource.d/heartbeat/portblock
usr/lib/ocf/resource.d/heartbeat/rsyncd
usr/lib/ocf/resource.d/heartbeat/tomcat
usr/lib64/pils/plugins/InterfaceMgr/generic.so
usr/lib64/stonith/plugins/external/ibmrsa
usr/lib64/stonith/plugins/external/ibmrsa-telnet
usr/lib64/stonith/plugins/external/ipmi
usr/lib64/stonith/plugins/external/rackpdu
usr/lib64/stonith/plugins/external/riloe
usr/lib64/stonith/plugins/external/ssh
usr/lib64/stonith/plugins/external/vmware
usr/lib64/stonith/plugins/stonith2/apcmaster.so
usr/lib64/stonith/plugins/stonith2/apcmastersnmp.so
usr/lib64/stonith/plugins/stonith2/apcsmart.so
usr/lib64/stonith/plugins/stonith2/baytech.so
usr/lib64/stonith/plugins/stonith2/bladehpi.so
usr/lib64/stonith/plugins/stonith2/cyclades.so
usr/lib64/stonith/plugins/stonith2/drac3.so
usr/lib64/stonith/plugins/stonith2/external.so
usr/lib64/stonith/plugins/stonith2/ibmhmc.so
usr/lib64/stonith/plugins/stonith2/meatware.so
usr/lib64/stonith/plugins/stonith2/null.so
usr/lib64/stonith/plugins/stonith2/nw_rpc100s.so
usr/lib64/stonith/plugins/stonith2/rcd_serial.so
usr/lib64/stonith/plugins/stonith2/ribcl.py
usr/lib64/stonith/plugins/stonith2/rps10.so
usr/lib64/stonith/plugins/stonith2/ssh.so
usr/lib64/stonith/plugins/stonith2/suicide.so
usr/lib64/stonith/plugins/stonith2/wti_nps.so
usr/sbin/attrd_updater
usr/sbin/ccm_tool
usr/sbin/cibadmin
usr/sbin/ciblint
usr/sbin/crm_attribute
usr/sbin/crm_diff
usr/sbin/crm_failcount
usr/sbin/crm_master
usr/sbin/crm_mon
usr/sbin/crm_resource
usr/sbin/crm_sh
usr/sbin/crm_standby
usr/sbin/crm_uuid
usr/sbin/crm_verify
usr/sbin/crmadmin
usr/sbin/ha_logger
usr/sbin/hb_report
usr/sbin/iso8601
usr/sbin/meatclient
usr/sbin/ocf-tester
usr/sbin/ptest
usr/sbin/stonith
usr/share/doc/heartbeat/AUTHORS
usr/share/doc/heartbeat/DirectoryMap.txt
usr/share/doc/heartbeat/GettingStarted.html
usr/share/doc/heartbeat/GettingStarted.txt
usr/share/doc/heartbeat/HardwareGuide.html
usr/share/doc/heartbeat/HardwareGuide.txt
usr/share/doc/heartbeat/README
usr/share/doc/heartbeat/README.cts
usr/share/doc/heartbeat/Requirements.html
usr/share/doc/heartbeat/Requirements.txt
usr/share/doc/heartbeat/apphbd.cf
usr/share/doc/heartbeat/authkeys
usr/share/doc/heartbeat/faqntips.html
usr/share/doc/heartbeat/faqntips.txt
usr/share/doc/heartbeat/ha.cf
usr/share/doc/heartbeat/haresources
usr/share/doc/heartbeat/hb_report.html
usr/share/doc/heartbeat/hb_report.txt
usr/share/doc/heartbeat/heartbeat_api.html
usr/share/doc/heartbeat/heartbeat_api.txt
usr/share/doc/heartbeat/logd.cf
usr/share/doc/heartbeat/rsync.html
usr/share/doc/heartbeat/rsync.txt
usr/share/doc/heartbeat/startstop
usr/share/heartbeat/BasicSanityCheck
usr/share/heartbeat/ResourceManager
usr/share/heartbeat/SNMPAgentSanityCheck
usr/share/heartbeat/TestHeartbeatComm
usr/share/heartbeat/crm.dtd
usr/share/heartbeat/cts/CIB.py
usr/share/heartbeat/cts/CM_LinuxHAv2.py
usr/share/heartbeat/cts/CM_fs.py
usr/share/heartbeat/cts/CM_hb.py
usr/share/heartbeat/cts/CTS.py
usr/share/heartbeat/cts/CTSaudits.py
usr/share/heartbeat/cts/CTSlab.py
usr/share/heartbeat/cts/CTSproxy.py
usr/share/heartbeat/cts/CTStests.py
usr/share/heartbeat/cts/LSBDummy
usr/share/heartbeat/cts/OCFIPraTest.py
usr/share/heartbeat/cts/extracttests.py
usr/share/heartbeat/cts/getpeinputs.sh
usr/share/heartbeat/ha_config
usr/share/heartbeat/ha_propagate
usr/share/heartbeat/hb_addnode
usr/share/heartbeat/hb_delnode
usr/share/heartbeat/hb_setsite
usr/share/heartbeat/hb_setweight
usr/share/heartbeat/hb_standby
usr/share/heartbeat/hb_takeover
usr/share/heartbeat/lrmtest/LRMBasicSanityCheck
usr/share/heartbeat/lrmtest/README.regression
usr/share/heartbeat/lrmtest/defaults
usr/share/heartbeat/lrmtest/descriptions
usr/share/heartbeat/lrmtest/evaltest.sh
usr/share/heartbeat/lrmtest/language
usr/share/heartbeat/lrmtest/lrmadmin-interface
usr/share/heartbeat/lrmtest/lrmregtest
usr/share/heartbeat/lrmtest/lrmregtest-heartbeat
usr/share/heartbeat/lrmtest/lrmregtest-lsb
usr/share/heartbeat/lrmtest/regression.sh
usr/share/heartbeat/lrmtest/testcases/BSC
usr/share/heartbeat/lrmtest/testcases/common.filter
usr/share/heartbeat/lrmtest/testcases/metadata
usr/share/heartbeat/lrmtest/testcases/metadata.exp
usr/share/heartbeat/lrmtest/testcases/ra-list.sh
usr/share/heartbeat/lrmtest/testcases/rscexec
usr/share/heartbeat/lrmtest/testcases/rscexec.exp
usr/share/heartbeat/lrmtest/testcases/rscmgmt
usr/share/heartbeat/lrmtest/testcases/rscmgmt.exp
usr/share/heartbeat/lrmtest/testcases/rscmgmt.log_filter
usr/share/heartbeat/lrmtest/testcases/xmllint.sh
usr/share/heartbeat/mach_down
usr/share/heartbeat/req_resource
usr/share/heartbeat/stonithdtest/STONITHDBasicSanityCheck
usr/share/heartbeat/utillib.sh
usr/share/man/man1/cl_status.1.gz
usr/share/man/man1/ha_logger.1.gz
usr/share/man/man1/hb_addnode.1.gz
usr/share/man/man1/hb_delnode.1.gz
usr/share/man/man1/hb_standby.1.gz
usr/share/man/man1/hb_takeover.1.gz
usr/share/man/man8/apphbd.8.gz
usr/share/man/man8/cibadmin.8.gz
usr/share/man/man8/crm_resource.8.gz
usr/share/man/man8/ha_logd.8.gz
usr/share/man/man8/heartbeat.8.gz
usr/share/man/man8/meatclient.8.gz
usr/share/man/man8/stonith.8.gz
usr/share/snmp/mibs/LINUX-HA-MIB.mib

@ -0,0 +1,102 @@
#!/bin/sh
#
# License: GNU General Public License (GPL)
#
# postinst script for heartbeat
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
#
case "$1" in
configure)
if ! getent group haclient > /dev/null ; then
addgroup --system --group haclient > /dev/null
fi
if ! getent passwd hacluster > /dev/null ; then
adduser --system --no-create-home \
--ingroup haclient \
--gecos "Heartbeat System Account" \
--no-create-home --disabled-login \
--home /usr/lib64/heartbeat --shell /bin/false \
--disabled-password hacluster > /dev/null
fi
#
#fifo (0600, root, root)
#
rm -f /var/lib/heartbeat/fifo
mknod -m 0600 /var/lib/heartbeat/fifo p
for i in /var/lib/heartbeat/ccm /var/lib/heartbeat/crm \
/var/run/heartbeat/ccm /var/run/heartbeat/crm \
/var/lib/heartbeat/pengine; do
chmod 750 $i
chown hacluster $i
chgrp haclient $i
done
chgrp haclient /usr/bin/cl_status
chmod 2555 /usr/bin/cl_status
for i in root nobody hacluster; do
chmod 700 /var/lib/heartbeat/cores/$i
chown $i /var/lib/heartbeat/cores/$i
chgrp root /var/lib/heartbeat/cores/$i
done
# Do we want to move the old S20 symlinks to S75 ones?
if [ -n "$2" ] ; then
if `dpkg --compare-versions "$2" lt 1.0.4-2`; then
# use debconf
. /usr/share/debconf/confmodule
db_get heartbeat/change_init || RET="false"
if [ "$RET" = "true" ]; then
/usr/sbin/update-rc.d -f heartbeat remove > /dev/null
fi
db_stop
fi
fi
update-rc.d heartbeat start 75 2 3 4 5 . stop 05 0 1 6 . >/dev/null || true
ldconfig
if which invoke-rc.d >/dev/null 2>&1; then
invoke-rc.d heartbeat start || true
else
/etc/init.d/heartbeat start || true
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
# restart heartbeat
if which invoke-rc.d >/dev/null 2>&1; then
invoke-rc.d heartbeat start || true
else
/etc/init.d/heartbeat start || true
fi
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

@ -0,0 +1,33 @@
#! /bin/sh
#
# License: GNU General Public License (GPL)
#
# postrm script for heartbeat
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
# for details, see /usr/doc/packaging-manual/
if [ "$1" = "remove" ]; then
ldconfig
update-rc.d -f heartbeat remove >/dev/null
rm -f /var/lib/heartbeat/fifo
fi
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#

@ -0,0 +1,22 @@
#!/bin/sh
#
# License: GNU General Public License (GPL)
#
# postinst script for heartbeat
#
# see: dh_installdeb(1)
if [ -x /etc/init.d/heartbeat ]; then
if which invoke-rc.d >/dev/null 2>&1; then
invoke-rc.d heartbeat stop
else
/etc/init.d/heartbeat stop
fi
fi
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

@ -0,0 +1,36 @@
#! /bin/sh
#
# License: GNU General Public License (GPL)
#
# postrm script for heartbeat
#
# see: dh_installdeb(1)
set -e
# It should be safe to remove these
# As they are no longer provided by any package
rm -f /usr/lib64/heartbeat/cts/CIB.pyc
rm -f /usr/lib64/heartbeat/cts/CM_LinuxHAv2.pyc
rm -f /usr/lib64/heartbeat/cts/CM_fs.pyc
rm -f /usr/lib64/heartbeat/cts/CM_hb.pyc
rm -f /usr/lib64/heartbeat/cts/CTS.pyc
rm -f /usr/lib64/heartbeat/cts/CTSaudits.pyc
rm -f /usr/lib64/heartbeat/cts/CTSlab.pyc
rm -f /usr/lib64/heartbeat/cts/CTSproxy.pyc
rm -f /usr/lib64/heartbeat/cts/CTStests.pyc
rm -f /usr/lib64/heartbeat/cts/OCFIPraTest.pyc
rm -f /usr/lib64/heartbeat/cts/extracttests.pyc
rm -f /usr/lib64/heartbeat/haclient.pyc
rm -f /usr/lib64/heartbeat/haresources2cib.pyc
rm -f /usr/lib64/heartbeat/mgmtcmd.pyc
rm -f /usr/lib64/heartbeat/pymgmt.pyc
rm -f /usr/lib64/stonith/plugins/stonith2/ribcl.pyc
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#

@ -0,0 +1,8 @@
/etc/ha.d/resource.d/ldirectord
/etc/init.d/ldirectord
/etc/default/ldirectord
/etc/logrotate.d/ldirectord
usr/lib/ocf/resource.d/heartbeat/ldirectord
usr/sbin/ldirectord
usr/share/doc/ldirectord/ldirectord.cf
usr/share/man/man8/ldirectord.8.gz

@ -0,0 +1,47 @@
#! /bin/sh
#
# License: GNU General Public License (GPL)
#
# postinst script for ldirectord
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see /usr/doc/packaging-manual/
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
case "$1" in
configure)
update-rc.d ldirectord defaults >/dev/null
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

@ -0,0 +1,75 @@
# HG changeset patch
# User Philipp Kolmann <philipp@kolmann.at>
# Date 1235094639 -39600
# Node ID 6d5f0f600c0b2147490af0c5e592fc995336902a
# Parent 4a4773bb2ea42046e24f6d6c3b6ff2eb6f105c41
IPv6addr fails on /64 prefixes
Hi Simon,
it seems I am the one unlucky guy who uses heartbeat with IPv6....
I started updateing my cluster today to lenny and IPv6addr fails again:
scs1:/etc/heartbeat/resource.d# ./IPv6addr 2001:629:3800:33:0:0:0:122 start
2009/02/16_20:19:50 ERROR: Generic error
ERROR: Generic error
I dug into the source of IPv6addr.c and it seems that the mask is too long
and therefore the scan_if isn't matching.
I have a 2001:629:3800:33::/64 subnet but it seems from my debug output
that IPv6addr tries to match /96 bits of the IP address which fails.
My C knowledge is sadly too little to fix this myself.
I would greatly be happy if you could help me with that.
------------------------------------------------------------------------------
Hi,
we found some discussion about this issue here:
http://www.velocityreviews.com/forums/t283343-shifting-bits-shift-32-bits-on-32-bit-int.html
In post #4 it reads:
The behaviour of shifts defined only if the value of the right operand
is less than the number of bits in the left operand. So shifting a
32-bit value by 32 or more is undefined...
further info in #7:
Better yet, read the first part of section 5.8 of the ISO/IEC 14882:2003
standard:
The behavior is undefined if the right operand is negative,
or greater than or equal to the length in bits of the
promoted left operand.
So it seems that my patch is the proper fix in the end after all.
Attached as file, since BT distroyed the formatting.
-------------------------------------------------------------------------------
This bug was reported as Debian bug #515662
http://bugs.debian.org/515662
Signed-off-by: Simon Horman <horms@verge.net.au>
diff -r 4a4773bb2ea4 -r 6d5f0f600c0b resources/OCF/IPv6addr.c
--- a/resources/OCF/IPv6addr.c Tue Feb 17 13:34:34 2009 +0100
+++ b/resources/OCF/IPv6addr.c Fri Feb 20 12:50:39 2009 +1100
@@ -499,7 +499,10 @@
n = plen / 32;
memset(mask.s6_addr32 + n + 1, 0, (3 - n) * 4);
s = 32 - plen % 32;
- mask.s6_addr32[n] = 0xffffffff << s;
+ if (s == 32)
+ mask.s6_addr32[n] = 0x0;
+ else
+ mask.s6_addr32[n] = 0xffffffff << s;
mask.s6_addr32[n] = htonl(mask.s6_addr32[n]);
}

@ -0,0 +1,28 @@
Date: Thu, 27 Dec 2007 09:40:43 +0900
From: DAIKI MATSUDA <d.matuda@gmail.com>
To: High-Availability Linux Development List <linux-ha-dev@lists.linux-ha.org>
Subject: OCF-resources: SphinxSearchDaemon is not installed
Hi, All.
Congratulations to release Heartbeat 2.1.3.
I read Alan's release mail and made own rpm package. So, I was aware
of difference that SphinxSearchDaemon RA is not installed. And I
attached the simply patch file and please confirm.
Cc: DAIKI MATSUDA <d.matuda@gmail.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Index: heartbeat/resources/OCF/Makefile.am
===================================================================
--- heartbeat.orig/resources/OCF/Makefile.am 2007-11-30 16:15:19.000000000 +0900
+++ heartbeat/resources/OCF/Makefile.am 2008-01-08 13:16:50.000000000 +0900
@@ -76,6 +76,7 @@ ocf_SCRIPTS = ClusterMon \
SAPInstance \
SendArp \
ServeRAID \
+ SphinxSearchDaemon \
Stateful \
SysInfo \
tomcat \

@ -0,0 +1,225 @@
--- /dev/null 2007-11-12 10:15:50.332049316 +0900
+++ a/resources/OCF/SphinxSearchDaemon 2007-11-29 16:49:13.000000000 +0900
@@ -0,0 +1,222 @@
+#!/bin/sh
+#
+#
+# Searchd OCF RA.
+# Manages the Sphinx search daemon
+#
+# Copyright (c) 2007 Christian Rishoj (christian@rishoj.net)
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like. Any license provided herein, whether implied or
+# otherwise, applies only to this software file. Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+
+#######################################################################
+# Initialization:
+
+. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs
+
+#######################################################################
+
+meta_data() {
+ cat <<END
+<?xml version="1.0"?>
+<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
+<resource-agent name="SphinxSearchDaemon" version="0.9">
+<version>1.0</version>
+
+<longdesc lang="en">
+This is a searchd Resource Agent. It manages the Sphinx Search Daemon.
+</longdesc>
+<shortdesc lang="en">searchd resource agent</shortdesc>
+
+<parameters>
+
+<parameter name="config" required="0" unique="1">
+<longdesc lang="en">
+searchd configuration file
+</longdesc>
+<shortdesc lang="en">Configuration file</shortdesc>
+<content type="string" default="/etc/sphinx/sphinx.conf" />
+</parameter>
+
+<parameter name="searchd" required="0" unique="0">
+<longdesc lang="en">
+searchd binary
+</longdesc>
+<shortdesc lang="en">searchd binary</shortdesc>
+<content type="string" default="/usr/local/bin/searchd" />
+</parameter>
+
+<parameter name="search" required="0" unique="0">
+<longdesc lang="en">
+Search binary for functional testing in the monitor action.
+</longdesc>
+<shortdesc lang="en">search binary</shortdesc>
+<content type="string" default="/usr/local/bin/search" />
+</parameter>
+
+<parameter name="testQuery" required="0" unique="0">
+<longdesc lang="en">
+Test query for functional testing in the monitor action.
+The query does not need to match any documents in the index.
+The purpose is merely to test whether the search daemon is
+is able to query its indices and respond properly.
+</longdesc>
+<shortdesc lang="en">test query</shortdesc>
+<content type="string" default="Heartbeat_Monitor_Query_Match_string" />
+</parameter>
+
+</parameters>
+
+<actions>
+<action name="start" timeout="90" />
+<action name="stop" timeout="100" />
+<action name="monitor" timeout="20" interval="10" depth="0" start-delay="0" />
+<action name="meta-data" timeout="5" />
+<action name="verify-all" timeout="30" />
+</actions>
+</resource-agent>
+END
+}
+
+#######################################################################
+
+searchd_usage() {
+ cat <<END
+usage: $0 {start|stop|monitor|validate-all|meta-data}
+
+Expects to have a fully populated OCF RA-compliant environment set.
+END
+}
+
+searchd_start() {
+ if ! searchd_validate ; then
+ return $OCF_ERR_GENERIC
+ fi
+ if ! searchd_status ; then
+ $OCF_RESKEY_searchd --config $OCF_RESKEY_config
+ if [ $? != 0 ]; then
+ return $OCF_ERR_GENERIC
+ fi
+ fi
+ if searchd_check ; then
+ return $OCF_SUCCESS
+ else
+ return $OCF_ERR_GENERIC
+ fi
+}
+
+searchd_stop() {
+ if ! searchd_validate ; then
+ return $OCF_ERR_GENERIC
+ fi
+ if searchd_status ; then
+ $OCF_RESKEY_searchd --config $OCF_RESKEY_config --stop
+ if [ $? = 0 ]; then
+ return $OCF_SUCCESS
+ else
+ return $OCF_ERR_GENERIC
+ fi
+ else
+ return $OCF_SUCCESS
+ fi
+}
+
+isRunning()
+{
+ kill -0 "$1" > /dev/null && [ `ps -p "$1" | grep searchd | wc -l` -eq 1 ]
+}
+
+searchd_status() {
+ pidfile=`grep -v "^#" "$OCF_RESKEY_config" | grep -w pid_file | awk -F "[ \t]*=[ \t]*" '{ print $2 }'`
+ if [ -f "$pidfile" ] ; then
+ PID=`head -n 1 $pidfile`
+ if [ ! -z "$PID" ] ; then
+ isRunning "$PID"
+ if [ $? = 0 ] ; then
+ return 0
+ fi
+ fi
+ fi
+ false
+}
+
+searchd_check() {
+ $OCF_RESKEY_search --config $OCF_RESKEY_config --noinfo "$OCF_RESKEY_testQuery" > /dev/null
+}
+
+searchd_monitor() {
+ if ! searchd_validate ; then
+ return $OCF_NOT_RUNNING
+ fi
+ if searchd_status ; then
+ if searchd_check ; then
+ return $OCF_RUNNING
+ else
+ return $OCF_ERR_GENERIC
+ fi
+ else
+ return $OCF_NOT_RUNNING
+ fi
+}
+
+searchd_validate() {
+ if [ ! -x "$OCF_RESKEY_search" ]; then
+ ocf_log err "search binary '$OCF_RESKEY_search' does not exist or cannot be executed"
+ return $OCF_ERR_ARGS
+ fi
+
+ if [ ! -x "$OCF_RESKEY_searchd" ]; then
+ ocf_log err "searchd binary '$OCF_RESKEY_searchd' does not exist or cannot be executed"
+ return $OCF_ERR_ARGS
+ fi
+
+ if [ ! -f "$OCF_RESKEY_config" ]; then
+ ocf_log err "config file '$OCF_RESKEY_config' does not exist"
+ return $OCF_ERR_ARGS
+ fi
+
+ return $OCF_SUCCESS
+}
+
+: ${OCF_RESKEY_config=/etc/sphinx/sphinx.conf}
+: ${OCF_RESKEY_search=/usr/local/bin/search}
+: ${OCF_RESKEY_searchd=/usr/local/bin/searchd}
+: ${OCF_RESKEY_testQuery=Heartbeat_Monitor_Query_Match_string}
+
+case $__OCF_ACTION in
+meta-data) meta_data
+ exit $OCF_SUCCESS
+ ;;
+start) searchd_start;;
+stop) searchd_stop;;
+monitor) searchd_monitor;;
+validate-all) searchd_validate;;
+usage|help) searchd_usage
+ exit $OCF_SUCCESS
+ ;;
+*) searchd_usage
+ exit $OCF_ERR_UNIMPLEMENTED
+ ;;
+esac
+rc=$?
+ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc"
+exit $rc
+

@ -0,0 +1,69 @@
Remove bashisms in ocf-tester, hb_report and heartbeat's init script
Debian bug #464985
See: http://bugs.debian.org/464985
In the case of the use of "echo -e" in ocf-tester, the -e flag doesn't
exist in dash and it interpates escaape sequences by default. Bash on the
other hand has the -e flag and may or may not interprate escape sequences
by default. In any case, it seems that it is never called with a string
that includes escape sequences, so it is safe just to remove -e.
In the case of the use of cnt=$((cnt + 1) in hb_report,
it seems that cnt=$(($cnt + 1) is the non-bashish way to do this.
And in the case of the use of cmd &> /dev/null in heartbeat's init
script, it seems that cmd >/dev/null 2>&1 is the non-bashish way
to do this.
Signed-off-by: Simon Horman <horms@verge.net.au>
Index: heartbeat/heartbeat/init.d/heartbeat.in
===================================================================
--- heartbeat.orig/heartbeat/init.d/heartbeat.in 2008-02-15 18:24:28.000000000 +0900
+++ heartbeat/heartbeat/init.d/heartbeat.in 2008-02-15 18:26:13.000000000 +0900
@@ -346,7 +346,7 @@ StopHA() {
EchoNoNl "Stopping High-Availability services: "
if
- $HA_BIN/heartbeat -k &> /dev/null # Kill it
+ $HA_BIN/heartbeat -k >/dev/null 2>&1 # Kill it
then
echo_success
return 0
Index: heartbeat/tools/hb_report.in
===================================================================
--- heartbeat.orig/tools/hb_report.in 2008-02-15 18:22:19.000000000 +0900
+++ heartbeat/tools/hb_report.in 2008-02-15 18:24:11.000000000 +0900
@@ -416,7 +416,7 @@ analyze_one() {
for n in `getnodes`; do
if [ "$node0" ]; then
diffcheck $1/$node0/$2 $1/$n/$2
- rc=$((rc+$?))
+ rc=$(($rc+$?))
else
node0=$n
fi
@@ -557,7 +557,7 @@ if [ "$SLAVE" = "" ]; then
[?]) usage short;;
esac
done
- shift $((OPTIND-1))
+ shift $(($OPTIND-1))
[ $# -ne 1 ] && usage short
DESTDIR=`echo $1 | sed 's,/*$,,'`
chkdirname $DESTDIR
Index: heartbeat/tools/ocf-tester.in
===================================================================
--- heartbeat.orig/tools/ocf-tester.in 2008-02-15 17:48:54.000000000 +0900
+++ heartbeat/tools/ocf-tester.in 2008-02-15 18:22:01.000000000 +0900
@@ -44,7 +44,7 @@ assert() {
exit_code=$1; shift
if [ $rc -ne $target ]; then
num_errors=`expr $num_errors + 1`
- echo -e "* rc=$rc: $msg"
+ echo "* rc=$rc: $msg"
if [ ! -z $exit_code ]; then
echo "Aborting tests"
exit $exit_code

@ -0,0 +1,110 @@
# HG changeset patch
# User Rasto Levrinc <rasto@linbit.com>
# Date 1206539836 -3600
# Node ID 47f60bebe7b25abd88ea7b5488e66dfe187416ae
# Parent 17c0cf487322287d0689a036c32f21b900ce5a80
dopd: fix basic failover; fix hb message corruption by fprintf(stderr)
check_drbd_peer() used to return FALSE for "node name not in node list",
so drbd-peer-outdater returned "invalid nodename".
Then the semantic changed, and check_drbd_peer learned about "dead" peers
and returned FALSE for them as well. Which made basic failover impossible :(
The return code was now changed to "peer unreachable" for a dead peer.
And even for nodes which really are not in the host list (and thus could be
classified as invalide), because, after all, thats what they are.
unreachable.
Node name comparison needs to be case insensitive; fixed.
During testing with 15 concurrent drbd resources several dopd crashes have been
observed, which after some debugging turned out to be simply a wrong assumption
about the global availability of stderr: some fprintf(stderr, "debug message")
had accidentally used the heartbeat communication channel file descriptor,
which seriously confused the comm layer.
All those fprintfs have now been changed to use cl_log.
diff -r 17c0cf487322 -r 47f60bebe7b2 contrib/drbd-outdate-peer/dopd.c
--- a/contrib/drbd-outdate-peer/dopd.c Mon Mar 24 16:14:12 2008 +0100
+++ b/contrib/drbd-outdate-peer/dopd.c Wed Mar 26 14:57:16 2008 +0100
@@ -202,14 +202,17 @@
}
/* check_drbd_peer()
- * walk the nodes and return TRUE if peer is not this node and it exists.
+ * walk the nodes and return
+ * FALSE if peer is not found, not a "normal" node, or "dead"
+ * (no point in trying to reach those nodes).
+ * TRUE if peer is found to be alive and "normal".
*/
gboolean
check_drbd_peer(const char *drbd_peer)
{
const char *node;
gboolean found = FALSE;
- if (!strcmp(drbd_peer, node_name)) {
+ if (!strcasecmp(drbd_peer, node_name)) {
cl_log(LOG_WARNING, "drbd peer node %s is me!\n", drbd_peer);
return FALSE;
}
@@ -306,9 +309,9 @@
} else
pthread_mutex_unlock(&conn_mutex);
} else {
- /* wrong peer was specified,
- send return code 20 to the client */
- send_to_client(curr_client, "20");
+ /* peer "dead" or not in node list.
+ * return "peer could not be reached" */
+ send_to_client(curr_client, "5");
}
ha_msg_del(msg);
diff -r 17c0cf487322 -r 47f60bebe7b2 contrib/drbd-outdate-peer/drbd-peer-outdater.c
--- a/contrib/drbd-outdate-peer/drbd-peer-outdater.c Mon Mar 24 16:14:12 2008 +0100
+++ b/contrib/drbd-outdate-peer/drbd-peer-outdater.c Wed Mar 26 14:57:16 2008 +0100
@@ -76,7 +76,7 @@
msg = msgfromIPC_noauth(server);
if (!msg) {
- fprintf(stderr, "no message from server or other "
+ cl_log(LOG_WARNING, "no message from server or other "
"instance is running\n");
if (client->mainloop != NULL &&
g_main_is_running(client->mainloop))
@@ -92,7 +92,7 @@
errno = 0;
rc = strtol(rc_string, &ep, 10);
if (errno != 0 || *ep != EOS) {
- fprintf(stderr, "unknown message: %s from server", rc_string);
+ cl_log(LOG_WARNING, "unknown message: %s from server", rc_string);
client->rc = 20; /* "officially undefined", unspecified error */
ha_msg_del(msg);
if (client->mainloop != NULL &&
@@ -124,7 +124,7 @@
outdater_timeout_dispatch(gpointer user_data)
{
dop_client_t *client = (dop_client_t *)user_data;
- fprintf(stderr, "error: could not connect to dopd after %i seconds"
+ cl_log(LOG_WARNING, "error: could not connect to dopd after %i seconds"
": timeout reached\n", client->timeout);
if (client->mainloop != NULL && g_main_is_running(client->mainloop))
g_main_quit(client->mainloop);
@@ -255,7 +255,7 @@
(gpointer)new_client, &ipc_server);
if (ipc_server == NULL) {
- fprintf(stderr, "Could not connect to "T_OUTDATER" channel\n");
+ cl_log(LOG_WARNING, "Could not connect to "T_OUTDATER" channel\n");
dop_exit(new_client); /* unreachable */
}
@@ -267,7 +267,7 @@
ha_msg_add(update, F_OUTDATER_RES, drbd_resource);
if (msg2ipcchan(update, ipc_server) != HA_OK) {
- fprintf(stderr, "Could not send message\n");
+ cl_log(LOG_WARNING, "Could not send message\n");
dop_exit(new_client);
}

@ -0,0 +1,23 @@
From: Simon Horman <horms@verge.net.au>
To: Petter Reinholdtsen <pere@hungry.com>, 459497@bugs.debian.org
Cc: linux-ha-dev@lists.linux-ha.org
Subject: [patch] init: no need to start ntp as $time is a required-start
See http://wiki.debian.org/LSBInitScripts
Cc: Petter Reinholdtsen <pere@hungry.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Index: heartbeat/heartbeat/init.d/heartbeat.in
===================================================================
--- heartbeat.orig/heartbeat/init.d/heartbeat.in 2008-01-08 11:56:04.000000000 +0900
+++ heartbeat/heartbeat/init.d/heartbeat.in 2008-01-08 11:57:15.000000000 +0900
@@ -37,7 +37,7 @@
# Short-Description: High-availability services.
# Provides: heartbeat HA
# Required-Start: $remote_fs $network $time $syslog
-# Should-Start: ntp openhpid
+# Should-Start: openhpid
# Required-Stop: $remote_fs $network $time $syslog
# Should-stop: openhpid
# Default-Start: 2 3 4 5

@ -0,0 +1,45 @@
Subject: init: should-start/stop $remote_fs to init script
From: Simon Horman <horms@verge.net.au>
To: Petter Reinholdtsen <pere@hungry.com>, 459497@bugs.debian.org
Cc: linux-ha-dev@lists.linux-ha.org
Subject: [patch] init: add should-start/stop $remote_fs to init script
In-Reply-To: <2fly7b261cx.fsf@saruman.uio.no>
On Sun, Jan 06, 2008 at 11:22:22PM +0100, Petter Reinholdtsen wrote:
[snip]
> I notice the package depend on openhpid. If heartbeat need openhpid
> to start before it in the boot, it should list it in required-start or
> should-start, depending on how hard the dependency should be. And the
> same in required-stop or should-stop, if heartbeat need to stop before
> openhpid during shutdown. I do not know the package enough to say.
Hi Petter,
I've looked into this breifly and I believe that the short answer is yes.
It seems that in Debian openhpid is a recomemdation of libopenhpi2 which
is a dependancy of heartbeat, and thus using should-start/should-stop in
the init script would be the most appropriate option. This should also
nicely cover other distributions with a loose package dependancy on
openhpid (the script in question is generic IIRC).
Acked-by: Petter Reinholdtsen <pere@hungry.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Index: heartbeat/heartbeat/init.d/heartbeat.in
===================================================================
--- heartbeat.orig/heartbeat/init.d/heartbeat.in 2008-01-07 11:53:23.000000000 +0900
+++ heartbeat/heartbeat/init.d/heartbeat.in 2008-01-07 11:54:17.000000000 +0900
@@ -37,8 +37,9 @@
# Short-Description: High-availability services.
# Provides: heartbeat HA
# Required-Start: $remote_fs $network $time $syslog
-# Should-Start: ntp
+# Should-Start: ntp openhpid
# Required-Stop: $remote_fs $network $time $syslog
+# Should-stop: openhpid
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

@ -0,0 +1,108 @@
From horms Mon Jan 7 01:27:37 2008
Return-Path: <debbugs@rietz.debian.org>
X-Spam-Checker-Version: SpamAssassin 3.2.1-kirsty.vergenet.net_2007012401
(2007-05-02) on kirsty.vergenet.net
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.2.1-kirsty.vergenet.net_2007012401
X-Original-To: horms@verge.net.au
Delivered-To: horms@vergenet.net
Received: from mail.au.vergenet.net [202.4.237.240]
by tabatha.lab.ultramonkey.org with POP3 (fetchmail-6.3.8)
for <horms@localhost> (single-drop); Mon, 07 Jan 2008 10:27:37 +0900 (JST)
Received: from rietz.debian.org (rietz.debian.org [140.211.166.43])
by kirsty.vergenet.net (Postfix) with ESMTP id 5E7CA24060
for <horms@verge.net.au>; Mon, 7 Jan 2008 09:39:43 +1100 (EST)
Received: from debbugs by rietz.debian.org with local (Exim 4.63)
(envelope-from <debbugs@rietz.debian.org>)
id 1JBe94-0008Vf-KQ; Sun, 06 Jan 2008 22:39:06 +0000
X-Loop: owner@bugs.debian.org
Subject: init: add should-start/stop $remote_fs to init script
Reply-To: Petter Reinholdtsen <pere@hungry.com>, 459497@bugs.debian.org
Resent-From: Petter Reinholdtsen <pere@hungry.com>
Original-Sender: Petter Reinholdtsen <petter.reinholdtsen@usit.uio.no>
Resent-To: debian-bugs-dist@lists.debian.org
Resent-CC: Simon Horman <horms@debian.org>
Resent-Date: Sun, 06 Jan 2008 22:39:04 +0000
Resent-Message-ID: <handler.459497.B.11996581495099@bugs.debian.org>
X-Debian-PR-Message: report 459497
X-Debian-PR-Package: heartbeat
X-Debian-PR-Keywords: patch
X-Debian-PR-Source: heartbeat
Received: via spool by submit@bugs.debian.org id=B.11996581495099
(code B ref -1); Sun, 06 Jan 2008 22:39:04 +0000
Received: (at submit) by bugs.debian.org; 6 Jan 2008 22:22:29 +0000
Received: from pat.uio.no ([129.240.10.15])
by rietz.debian.org with esmtp (Exim 4.63)
(envelope-from <pre@saruman.uio.no>)
id 1JBdsz-0001J6-9B
for submit@bugs.debian.org; Sun, 06 Jan 2008 22:22:29 +0000
Received: from mail-mx4.uio.no ([129.240.10.45])
by pat.uio.no with esmtp (Exim 4.67)
(envelope-from <pre@saruman.uio.no>)
id 1JBdst-0001Uz-E5
for submit@bugs.debian.org; Sun, 06 Jan 2008 23:22:23 +0100
Received: from saruman.uio.no ([129.240.5.17])
by mail-mx4.uio.no with esmtp (Exim 4.67)
(envelope-from <pre@saruman.uio.no>)
id 1JBdss-0006Xm-Pu; Sun, 06 Jan 2008 23:22:23 +0100
Received: from pre by saruman.uio.no with local (Exim 4.44)
id 1JBdss-0005XY-AZ; Sun, 06 Jan 2008 23:22:22 +0100
To: submit@bugs.debian.org
From: Petter Reinholdtsen <pere@hungry.com>
Date: Sun, 06 Jan 2008 23:22:22 +0100
Message-ID: <2fly7b261cx.fsf@saruman.uio.no>
User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: Petter Reinholdtsen <petter.reinholdtsen@usit.uio.no>
X-UiO-ClamAV-Virus: No
X-UiO-Spam-info: not spam, SpamAssassin (score=-4.0, required=5.0, autolearn=disabled, AWL=0.978,UIO_MAIL_IS_INTERNAL=-5)
X-UiO-Scanned: 970378EB478AA26CD34F4A6F0CC56B6A453886AE
X-UiO-SPAM-Test: remote_host: 129.240.5.17 spam_score: -39 maxlevel 99990 minaction 0 bait 0 mail/h: 1 total 38077 max/h 47 blacklist 0 greylist 0 ratelimit 0
Delivered-To: submit@bugs.debian.org
Resent-Sender: Debian BTS <debbugs@rietz.debian.org>
Resent-Date: Sun, 06 Jan 2008 22:39:06 +0000
X-Loop: oathstix_finish by kirsty.vergenet.net
X-Loop: oathstix_finish by tabatha.lab.ultramonkey.org
Status: RO
X-Status: A
Content-Length: 1632
Lines: 46
When testing dependency based boot sequencing, I discovered what I
believe is a bug in the init.d/heartbeat script. It need a mounted
/usr/, but do not depend on $remote_fs which is the dependency
required for scripts needing /usr/. It uses the default params when
calling update-rc.d, but do not list the equivalent runlevels in the
LSB header.
Debian Bug #459497. See: http://bugs.debian.org/459497
Cc: Petter Reinholdtsen <pere@hungry.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
diff -ur heartbeat-2.1.3.orig/heartbeat/init.d/heartbeat.in heartbeat-2.1.3/heartbeat/init.d/heartbeat.in
--- heartbeat-2.1.3.orig/heartbeat/init.d/heartbeat.in 2008-01-06 23:07:28.000000000 +0100
+++ heartbeat-2.1.3/heartbeat/init.d/heartbeat.in 2008-01-06 23:12:48.000000000 +0100
@@ -36,11 +36,11 @@
#
# Short-Description: High-availability services.
# Provides: heartbeat HA
-# Required-Start: $network $time $syslog
+# Required-Start: $remote_fs $network $time $syslog
# Should-Start: ntp
-# Required-Stop: $network $time $syslog
-# Default-Start: 3 5
-# Default-Stop: 0 6
+# Required-Stop: $remote_fs $network $time $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
### END INIT INFO
Happy hacking,
--
Petter Reinholdtsen

@ -0,0 +1,39 @@
Subject: IPv6addr: Check for netinet/icmp6.h instead of linux/icmpv6.h
Date: Tue, 25 Dec 2007 13:51:34 +0900
To: linux-ha-dev@lists.linux-ha.org
Cc: Tuomo Soini <tis@foobar.fi>
From: Simon Horman <horms@verge.net.au>
Configure currently checks for asm/types.h+netinet/icmp6.h,
however this check fails on debian ia64. Changing the check
to sys/types.h+netinet/icmp6.h resolves the problem for Debian,
but breaks RHEL 4.
http://developerbugs.linux-foundation.org/show_bug.cgi?id=1660
This revised check looks for sys/types.h+netinet/icmp6.h which
is more or less what resources/OCF/IPv6addr.c actually uses,
so hopefully this check keeps all the relevant parties happy.
Tuomo, could you check this patch and see if it causes you pain?
Cc: Tuomo Soini <tis@foobar.fi>
Signed-off-by: Simon Horman <horms@verge.net.au>
Index: heartbeat/configure.in
===================================================================
--- heartbeat.orig/configure.in 2007-12-25 13:24:20.000000000 +0900
+++ heartbeat/configure.in 2007-12-25 13:44:26.000000000 +0900
@@ -1099,9 +1099,9 @@ fi
CPPFLAGS="$CPPFLAGS $XML2HEAD"
dnl ************************************************************************
-dnl * Check for linux/icmpv6.h to make enable the IPv6addr resource agent
-AC_CHECK_HEADERS(linux/icmpv6.h,[],[],[#include <asm/types.h>])
-AM_CONDITIONAL(USE_IPV6ADDR, test "$ac_cv_header_linux_icmpv6_h" = yes -a $new_libnet = yes )
+dnl * Check for netinet/icmp6.h to enable the IPv6addr resource agent
+AC_CHECK_HEADERS(netinet/icmp6.h,[],[],[#include <sys/types.h>])
+AM_CONDITIONAL(USE_IPV6ADDR, test "$ac_cv_header_netinet_icmp6_h" = yes -a $new_libnet = yes )
AC_CHECK_HEADERS(libxml/xpath.h)
dnl

@ -0,0 +1,60 @@
# HG changeset patch
# User "mandrake (Geoff Harrison)" <mandrake@mandrake.net>
# Date 1200639790 -32400
# Node ID c01c9790d2b83f493a4aa5f86e1a5b1233d7daa2
# Parent eaa43842608caf75552e9f755c91e35b7a2ff6d1
[ldirectord]: clear config in memory on reload
when re-reading a config file you're not actually killing the old config
information. easy way to spot the symptom - move a node from one virtual
web pool to another.
root@lbtest-001:~# ipvsadm -L
IP Virtual Server version 1.2.1 (size=262144)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.18.100.120:www rr
-> 192.168.0.201:www Masq 1 0 0
-> 192.168.0.202:www Masq 1 0 0
TCP 172.18.100.121:www rr
-> 192.168.0.200:www Masq 1 0 0
TCP 172.18.100.120:mysql wrr
-> 192.168.0.202:mysql Masq 1 0 0
-> 192.168.0.201:mysql Masq 1 0 0
-> 192.168.0.200:mysql Masq 1 0 0
root@lbtest-001:~# /usr/sbin/ldirectord -d reload
DEBUG2: Running exec(/usr/sbin/ldirectord -d reload)
Running exec(/usr/sbin/ldirectord -d reload)
DEBUG2: Invoking ldirectord invoked as: /usr/sbin/ldirectord reload
Invoking ldirectord invoked as: /usr/sbin/ldirectord reload
DEBUG2: Exiting with exit_status 0: Exiting from ldirectord reload
Exiting with exit_status 0: Exiting from ldirectord reload
root@lbtest-001:~# ipvsadm -L
IP Virtual Server version 1.2.1 (size=262144)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.18.100.120:www rr
-> 192.168.0.201:www Masq 1 0 0
TCP 172.18.100.121:www rr
-> 192.168.0.202:www Masq 1 0 0
-> 192.168.0.200:www Masq 1 0 0
TCP 172.18.100.120:mysql wrr
-> 192.168.0.202:mysql Masq 1 0 0
-> 192.168.0.201:mysql Masq 1 0 0
-> 192.168.0.200:mysql Masq 1 0 0
this did not work previously.
CC: "mandrake (Geoff Harrison)" <mandrake@mandrake.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
diff -r eaa43842608c -r c01c9790d2b8 ldirectord/ldirectord.in
--- a/ldirectord/ldirectord.in Fri Jan 18 16:03:10 2008 +0900
+++ b/ldirectord/ldirectord.in Fri Jan 18 16:03:10 2008 +0900
@@ -965,6 +965,7 @@ sub reread_config
sub reread_config
{
@OLDVIRTUAL = @VIRTUAL;
+ @VIRTUAL = ();
my %OLD_INSTANCE = %LD_INSTANCE;
my %RELOAD;
my %STOP;

@ -0,0 +1,102 @@
# HG changeset patch
# User "mandrake (Geoff Harrison)" <mandrake@mandrake.net>
# Date 1200639790 -32400
# Node ID eaa43842608caf75552e9f755c91e35b7a2ff6d1
# Parent 7e7ff0d31af1d66e4dfd7f32905bfedfa215485c
[ldirectord] fix sql select queries - at the expense of non-select
unfortunately, the stuff to make the queries work with non-select doesn't
actually work with anything doing a select out of the db, at least if you
do something like select *
however, it is completely asinine to assume someone's going to regularly
insert data from the director into dbs he's loadbalancing across, so you
can rule that out pretty much.
I _CAN_ make this work if you want to do an insert / update in addition to
the select, but it doesn't necessarily make sense to me.
Cc: "mandrake (Geoff Harrison)" <mandrake@mandrake.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
diff -r 7e7ff0d31af1 -r eaa43842608c ldirectord/ldirectord.in
--- a/ldirectord/ldirectord.in Thu Jan 17 22:32:50 2008 +0100
+++ b/ldirectord/ldirectord.in Fri Jan 18 16:03:10 2008 +0900
@@ -426,7 +426,7 @@ For a DNS check this should the name of
For a DNS check this should the name of an A record, or the address
of a PTR record to look up.
-For a MySQL, Oracle or PostgeSQL check, this should be an SQL query.
+For a MySQL, Oracle or PostgeSQL check, this should be an SQL SELECT query.
The data returned is not checked, only that the
answer is one or more rows. This is a required setting.
@@ -2803,44 +2803,33 @@ sub check_sql
goto err_finish;
}
- # After calling "execute" $sth->{NUM_OF_FIELDS} will be greater
- # than zero for SELECT statements, and 0 for all other statements.
+ # On error "execute" will return undef.
#
- # For non-SELECT statements a non-undef value returned by
- # "execcute" inticates the number of rows returned. "0E0" (Some
- # garbage to make 0 true) or > 1. But testing for this isn't
- # particularly interesting as its quite valid for operations to
- # affect 0 rows. So for non-SELECT statements, if "execute"
- # doesn't return undef, consider the test a success.
- unless ($sth->{NUM_OF_FIELDS}) {
+ # Assuming you're using 'SELECT' you will get the number of rows
+ # returned from the db when running execute: the 'rows' method is
+ # only used when doing something that is NOT a select. I cannot
+ # imagine that you would ever want to insert or update from a
+ # regular polling on this system, so we will assume you are using
+ # SELECT here.
+ #
+ # Ideally you will do something like this: 'select * from
+ # director_slave where enabled=1' This way you can have, say, a
+ # MEMORY table in MySQL where you insert a value into a row
+ # (enabled) that says whether or not you want to actually use this
+ # in the pool from ldirector / ipvs, and disable them without
+ # actually turning off your sql server.
+
+ unless ($rows = $sth->execute) {
+ check_sql_log_errstr("Error executing statement:",
+ $dbh->errstr, $dbh->err);
+ goto err_finish;
+ }
+
+ # Actually look to see if there was data returned in this statement,
+ # else disable node
+ if($rows > 0) {
goto out;
- }
-
- # For SELECT staements "execute" will always return a true
- # value unless an error occurs. A "fetch" operation is performed
- # to obtain the row returned by the SELECT statement. Again 0
- # rows is valid.
- #
- # I suspect that for at leaast some DB engines "execute" will
- # always succeed unless there is some bizzare internal error.
- # So it seems that in order to have a reasonable test "fetch"
- # needs to be called.
- #
- # I also wonder if having a table missing
- # will result in an error or just 0 rows returned. If the
- # latter is true then I guess we need to consider 0 rows an
- # error state. But I'll have the code consider 0 rows a success
- # for now leave this to be changed if testing proves it neccessary.
-
- # As it is important that the SELECT succeeded, rather than
- # how may rows it returns, just call "fetchrow_arrayref" once.
- #
- # I guess that in a pathalogical case the query may fail
- # at a particular row. But I'm not going to worry about that for
- # now.
- $row = $sth->fetchrow_arrayref;
- unless ($row && !$sth->err) {
- check_sql_log_errstr("Error fetching row:", $dbh->errstr);
+ } else {
goto err_finish;
}

@ -0,0 +1,145 @@
From horms Fri Mar 7 01:10:23 2008
Return-Path: <debbugs@rietz.debian.org>
X-Spam-Checker-Version: SpamAssassin 3.2.1-kirsty.vergenet.net_2007012401
(2007-05-02) on kirsty.vergenet.net
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham
version=3.2.1-kirsty.vergenet.net_2007012401
X-Original-To: horms@verge.net.au
Delivered-To: horms@vergenet.net
Received: from mail.au.vergenet.net [202.4.237.240]
by tabatha.lab.ultramonkey.org with POP3 (fetchmail-6.3.8)
for <horms@localhost> (single-drop); Fri, 07 Mar 2008 10:10:23 +0900 (JST)
Received: from rietz.debian.org (rietz.debian.org [140.211.166.43])
by kirsty.vergenet.net (Postfix) with ESMTP id B7D182408E
for <horms@verge.net.au>; Fri, 7 Mar 2008 09:42:16 +1100 (EST)
Received: from debbugs by rietz.debian.org with local (Exim 4.63)
(envelope-from <debbugs@rietz.debian.org>)
id 1JXOjw-00088q-Ps; Thu, 06 Mar 2008 22:39:04 +0000
X-Loop: owner@bugs.debian.org
Subject: Bug#469764: ldirectord: Please add LSB formatted dependency info in init.d script
Reply-To: Morten Werner Forsbring <werner@debian.org>, 469764@bugs.debian.org
Resent-From: Morten Werner Forsbring <werner@debian.org>
Resent-To: debian-bugs-dist@lists.debian.org
Resent-CC: Simon Horman <horms@debian.org>
Resent-Date: Thu, 06 Mar 2008 22:39:02 +0000
Resent-Message-ID: <handler.469764.B.120484301829524@bugs.debian.org>
X-Debian-PR-Message: report 469764
X-Debian-PR-Package: ldirectord
X-Debian-PR-Keywords: patch
X-Debian-PR-Source: heartbeat
Received: via spool by submit@bugs.debian.org id=B.120484301829524
(code B ref -1); Thu, 06 Mar 2008 22:39:02 +0000
Received: (at submit) by bugs.debian.org; 6 Mar 2008 22:36:58 +0000
Received: from mail-forward.uio.no ([129.240.10.42])
by rietz.debian.org with esmtp (Exim 4.63)
(envelope-from <werner@forsbring.no>)
id 1JXOht-0007fX-KL
for submit@bugs.debian.org; Thu, 06 Mar 2008 22:36:58 +0000
Received: from mail-mx3.uio.no ([129.240.10.44])
by pat.uio.no with esmtp (Exim 4.67)
(envelope-from <werner@forsbring.no>)
id 1JXOhn-0000kO-Pq
for submit@bugs.debian.org; Thu, 06 Mar 2008 23:36:51 +0100
Received: from sid.forsbring.no ([158.36.191.200])
by mail-mx3.uio.no with esmtps (TLSv1:AES256-SHA:256)
(Exim 4.67)
(envelope-from <werner@forsbring.no>)
id 1JXOhn-0001g2-Bn
for submit@bugs.debian.org; Thu, 06 Mar 2008 23:36:51 +0100
Received: from localhost
([127.0.0.1] helo=sid.forsbring.no ident=werner)
by sid.forsbring.no with esmtp (Exim 4.63)
(envelope-from <werner@forsbring.no>)
id 1JXPW1-0005VV-Vo
for submit@bugs.debian.org; Fri, 07 Mar 2008 00:28:46 +0100
From: Morten Werner Forsbring <werner@debian.org>
To: submit@bugs.debian.org
Date: Fri, 07 Mar 2008 00:28:45 +0100
Message-ID: <87skz35t5e.fsf@sid.forsbring.no>
User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/23.0.60 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-UiO-Spam-info: not spam, SpamAssassin (score=0.0, required=5.0, autolearn=disabled, none)
X-UiO-Scanned: 0B0CA6F9839D49CEBA45966491A982F45BE308F3
X-UiO-SR-test: EE6083E1527812C73ED972CFAF5726B00DA42D2A
X-UiO-SPAM-Test: remote_host: 158.36.191.200 spam_score: 0 maxlevel 200 minaction 2 bait 0 mail/h: 4 total 287 max/h 16 blacklist 0 greylist 0 ratelimit 0
Delivered-To: submit@bugs.debian.org
Resent-Sender: Debian BTS <debbugs@rietz.debian.org>
Resent-Date: Thu, 06 Mar 2008 22:39:04 +0000
X-Loop: oathstix_finish by kirsty.vergenet.net
X-Loop: oathstix_finish by tabatha.lab.ultramonkey.org
Status: RO
Content-Length: 2365
Lines: 70
Package: ldirectord
Version: 2.1.3-3
Tags: patch
User: initscripts-ng-devel@lists.alioth.debian.org
Usertags: missing-dependency
To be able to check boot script order, and also to be able to start
boot scripts in parallel, it is important to know the dependencies of
the various boot scripts. The Linux Software Base specifies a init.d
header file format useful for this purpose, and adding such header to
the ldirectord init.d script would make it possible for us to use this
information to check the current sequence and to speed up the Debian
boot.
I am helping out with a system to update the boot sequence based on
these dependencies, and would like see this as the default in Lenny.
Because of this, it is nice if the dependencies was updated quickly.
<URL:http://refspecs.freestandards.org/LSB_2.1.0/LSB-generic/LSB-generic/initscrcomconv.html>
documents the LSB header format. Some Debian notes are available from
<URL:http://wiki.debian.org/LSBInitScripts>.
Here is a patch to document the dependencies. I hope this is correct.
Thanks in advance.
- Werner
diff -ruN heartbeat-2.1.3.orig/ldirectord/init.d/ldirectord.debian
heartbeat-2.1.3/ldirectord/init.d/ldirectord.debian
--- heartbeat-2.1.3.orig/ldirectord/init.d/ldirectord.debian
2007-12-21 21:45:48.000000000 +0100
+++ heartbeat-2.1.3/ldirectord/init.d/ldirectord.debian 2008-03-06
23:33:32.864014191 +0100
@@ -1,4 +1,13 @@
#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: ldirectord
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+#
# Author: Horms <horms@verge.net.au>
#
# Debian init script for ldirectord
diff -ruN heartbeat-2.1.3.orig/ldirectord/init.d/ldirectord.debian.in
heartbeat-2.1.3/ldirectord/init.d/ldirectord.debian.in
--- heartbeat-2.1.3.orig/ldirectord/init.d/ldirectord.debian.in
2007-12-21 16:32:27.000000000 +0100
+++ heartbeat-2.1.3/ldirectord/init.d/ldirectord.debian.in
2008-03-06 23:33:50.815012186 +0100
@@ -1,4 +1,13 @@
#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: ldirectord
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+#
# Author: Horms <horms@verge.net.au>
#
# Debian init script for ldirectord

@ -0,0 +1,76 @@
From horms Wed Mar 26 02:37:01 2008
Return-Path: <juliusrv@googlemail.com>
X-Spam-Checker-Version: SpamAssassin 3.2.1-kirsty.vergenet.net_2007012401
(2007-05-02) on kirsty.vergenet.net
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,SPF_PASS
autolearn=ham version=3.2.1-kirsty.vergenet.net_2007012401
X-Original-To: horms@verge.net.au
Delivered-To: horms@vergenet.net
Received: from mail.au.vergenet.net [202.4.237.240]
by tabatha.lab.ultramonkey.org with POP3 (fetchmail-6.3.8)
for <horms@localhost> (single-drop); Wed, 26 Mar 2008 11:37:01 +0900 (JST)
Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.239])
by kirsty.vergenet.net (Postfix) with ESMTP id C4C592408E
for <horms@verge.net.au>; Tue, 18 Mar 2008 20:31:45 +1100 (EST)
Received: by wx-out-0506.google.com with SMTP id t14so8741969wxc.29
for <horms@verge.net.au>; Tue, 18 Mar 2008 02:31:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlemail.com; s=gamma;
h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
bh=zKZkkf28M+cKoOwbFJhaOnvPkymMl1G+QAOBnXdcHIc=;
b=s1iSzxAdgUQbKzvI1Hjq7aZP2m8MRTVTjfh7tlURoJUqS5Y1iJnKhT8p7iye0j6/ccbjZvBJbkAoRSuvo7UEYoR5e2SJdiHf8QjJ1vJ1K0fGqn6JNBc4qzD8Jo4xG5ELJJ+CMdG8oYr3MU/jND4RTrkxuWvxbNDcikKwywags4k=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=googlemail.com; s=gamma;
h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
b=P4auvvQ91MMHfUp5uHajwryiKpvRdrWP+dGkuG8mXm6veK5/FNRQJ1pkuramyD0gMj8aSWv0C+UVRg4cKHa6liN+BZHBLVv1nwu+AKmpSLm96IjL3uQdFIFLcZwhaAPgwocmPA0/veKa0Hx7qfxSsHZUIP5cLuItDIl/bvFpVm0=
Received: by 10.114.80.4 with SMTP id d4mr1166627wab.44.1205832703086;
Tue, 18 Mar 2008 02:31:43 -0700 (PDT)
Received: by 10.115.73.18 with HTTP; Tue, 18 Mar 2008 02:31:43 -0700 (PDT)
Message-ID: <441703990803180231x1fc8db5buaf836ee141fe3d53@mail.gmail.com>
Date: Tue, 18 Mar 2008 10:31:43 +0100
From: "Julius Volz" <juliusrv@googlemail.com>
To: horms@verge.net.au
Subject: [PATCH] ldirectord: Correctly declare $rows variable in check_sql()
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Loop: oathstix_finish by tabatha.lab.ultramonkey.org
Hi Horms,
Are you the right person to submit patches for ldirectord now? Or
would I better just send them to the linux-ha-dev list (I already sent
this patch there, but it's been hanging in the moderator filter,
although I'm a list member...).
Anyways, here it goes again, in case you are the right person to talk to:
In check_sql() in ldirectord, the "$rows" variable is currently
declared incorrectly as "$row" in strict mode, leading to a Perl abort
during startup:
=========================================================
Global symbol "$rows" requires explicit package name at ldirectord line 2823.
Global symbol "$rows" requires explicit package name at ldirectord line 2831.
BEGIN not safe after errors--compilation aborted at ldirectord line 2924.
Signed-off-by: Simon Horman <horms@verge.net.au>
---
Fixes Debian Bug #472663
See: http://bugs.debian.org
diff -r d887e016452c ldirectord/ldirectord.in
--- a/ldirectord/ldirectord.in Mon Mar 17 12:42:23 2008
+++ b/ldirectord/ldirectord.in Mon Mar 17 16:48:50 2008
@@ -2766,7 +2766,7 @@
require DBI;
my ($v, $r, $dbd, $dbname) = @_;
my $port = ld_checkport($v, $r);
- my ($dbh, $sth, $query, $row, $result);
+ my ($dbh, $sth, $query, $rows, $result);
$result = $SERVICE_DOWN;
$query = $$r{request};
$query =~ s#^/##;

@ -0,0 +1,21 @@
Call to rsc->get_cur_state() incorrectly lists completed operations as failed (op_status=4)
LF Bug #1833
http://developerbugs.linux-foundation.org/show_bug.cgi?id=1833
Needs to go upstream
diff -r 98aeb5f25c95 lib/lrm/clientlib.c
--- a/lib/lrm/clientlib.c Fri Feb 15 17:53:27 2008 +0100
+++ b/lib/lrm/clientlib.c Fri Feb 15 17:53:56 2008 +0100
@@ -1190,10 +1190,6 @@ msg_to_op(struct ha_msg* msg)
else {
op->output = NULL;
}
- /* check the rc to revise the op_status */
- if (0 != op->rc) {
- op->op_status = LRM_OP_ERROR;
- }
} else if(op->op_status == LRM_OP_PENDING) {
op->rc = EXECRA_STATUS_UNKNOWN;

@ -0,0 +1,144 @@
From horms Sun Mar 29 21:28:35 2009
Return-Path: <bounces+20090327-horms=debian.org@packages.qa.debian.org>
X-Spam-Checker-Version: SpamAssassin 3.2.5-kirsty.vergenet.net_2007012401
(2008-06-10) on kirsty.vergenet.net
X-Spam-Level:
X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW
autolearn=ham version=3.2.5-kirsty.vergenet.net_2007012401
X-Original-To: horms@verge.net.au
Delivered-To: horms@vergenet.net
Received: from mail.au.vergenet.net [202.4.237.240]
by yukiko.kent.sydney.vergenet.net with POP3 (fetchmail-6.3.9-rc2)
for <horms@localhost> (single-drop); Mon, 30 Mar 2009 08:28:35 +1100 (EST)
Received: from master.debian.org (master.debian.org [70.103.162.29])
by kirsty.vergenet.net (Postfix) with ESMTP id A38DD24060
for <horms@verge.net.au>; Fri, 27 Mar 2009 21:06:11 +1100 (EST)
Received: from qa by master.debian.org with local (Exim 4.69)
(envelope-from <bounces+20090327-horms=debian.org@packages.qa.debian.org>)
id 1Ln8x0-0000TZ-48; Fri, 27 Mar 2009 10:06:10 +0000
Received: from rietz.debian.org ([140.211.166.43]) by master.debian.org
with esmtp (Exim 4.69) (envelope-from <debbugs@rietz.debian.org>) id
1Ln8wz-0000TK-N2 for heartbeat@packages.qa.debian.org; Fri, 27 Mar 2009
10:06:09 +0000
Received: from debbugs by rietz.debian.org with local (Exim 4.63)
(envelope-from <debbugs@rietz.debian.org>) id 1Ln8r6-0004Ok-JC; Fri,
27 Mar 2009 10:00:04 +0000
X-Loop: owner@bugs.debian.org
Subject: Bug#521394: heartbeat: ocf resources script o2cb doesn't work
Reply-To: Michel Rode <rmichel@devnu11.net>, 521394@bugs.debian.org
Resent-From: Michel Rode <rmichel@devnu11.net>
Resent-To: debian-bugs-dist@lists.debian.org
Resent-CC: Simon Horman <horms@debian.org>
Resent-Date: Fri, 27 Mar 2009 10:00:02 +0000
Resent-Message-ID: <handler.521394.B.123814779814011@bugs.debian.org>
X-Debian-PR-Message: report 521394
X-Debian-PR-Package: heartbeat
X-Debian-PR-Keywords: patch
X-Debian-PR-Source: heartbeat
Received: via spool by submit@bugs.debian.org id=B.123814779814011 (code B
ref -1); Fri, 27 Mar 2009 10:00:02 +0000
Received: (at submit) by bugs.debian.org; 27 Mar 2009 09:56:38 +0000
Received: from gryps51.uni-greifswald.de ([141.53.8.24]) by
rietz.debian.org with esmtp (Exim 4.63) (envelope-from
<rmichel@devnu11.net>) id 1Ln8nl-0003d5-OV for submit@bugs.debian.org; Fri,
27 Mar 2009 09:56:37 +0000
Received: from xen1.azubi.uni-greifswald.de (unverified) by
gryps51.uni-greifswald.de (Clearswift SMTPRS 5.2.9) with ESMTP id
<T8d53fb523f8d3508181580@gryps51.uni-greifswald.de>; Fri, 27 Mar 2009
10:56:08 +0100
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: Michel Rode <rmichel@devnu11.net>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Message-ID: <20090327095630.3482.63165.reportbug@xen1.azubi.uni-greifswald.de>
X-Mailer: reportbug 3.48
Date: Fri, 27 Mar 2009 10:56:30 +0100
Delivered-To: submit@bugs.debian.org
Resent-Date: Fri, 27 Mar 2009 10:00:04 +0000
Delivered-To: heartbeat@packages.qa.debian.org
Precedence: list
X-Loop: heartbeat@packages.qa.debian.org
X-Debian: PTS
X-Debian-Package: heartbeat
X-PTS-Package: heartbeat
X-PTS-Keyword: bts
List-Unsubscribe: <mailto:pts@qa.debian.org?body=unsubscribe+heartbeat>
Resent-Sender: Debian QA <qa@master.debian.org>
X-Loop: oathstix_finish by kirsty.vergenet.net
X-Loop: oathstix_finish by yukiko.kent.sydney.vergenet.net
Status: RO
X-Status: A
Content-Length: 3160
Lines: 70
Package: heartbeat
Version: 2.1.3-6lenny0
Severity: critical
Tags: patch
Justification: breaks the whole system
ocf resources script doe't start because there is a missing $ in line 314.
-- System Information:
Debian Release: 5.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-1-xen-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages heartbeat depends on:
ii adduser 3.110 add and remove users and groups
ii gawk 1:3.1.5.dfsg-4.1 GNU awk, a pattern scanning and pr
ii iproute 20080725-2 networking and traffic control too
ii iputils-ping 3:20071127-1 Tools to test the reachability of
ii libbz2-1.0 1.0.5-1 high-quality block-sorting file co
ii libc6 2.7-18 GNU C Library: Shared libraries
ii libcurl3 7.18.2-8lenny2 Multi-protocol file transfer libra
ii libglib2.0-0 2.16.6-1+lenny1 The GLib library of C routines
ii libgnutls26 2.4.2-6 the GNU TLS library - runtime libr
ii libltdl3 1.5.26-4 A system independent dlopen wrappe
ii libncurses5 5.7+20081213-1 shared libraries for terminal hand
ii libnet1 1.1.2.1-2 library for the construction and h
ii libopenhpi2 2.12.0-1 OpenHPI libraries (runtime and sup
ii libpam-runtime 1.0.1-5 Runtime support for the PAM librar
ii libpam0g 1.0.1-5 Pluggable Authentication Modules l
ii libsnmp15 5.4.1~dfsg-12 SNMP (Simple Network Management Pr
ii libssl0.9.8 0.9.8g-15 SSL shared libraries
ii libuuid1 1.41.3-1 universally unique id library
ii libwrap0 7.6.q-16 Wietse Venema's TCP wrappers libra
ii libxml2 2.6.32.dfsg-5 GNOME XML library
ii libxml2-utils 2.6.32.dfsg-5 XML utilities
ii mawk 1.3.3-11.1 a pattern scanning and text proces
ii psmisc 22.6-1 Utilities that use the proc filesy
ii python 2.5.2-3 An interactive high-level object-o
ii python-central 0.6.8 register and build utility for Pyt
ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime
Versions of packages heartbeat recommends:
ii iptables 1.4.2-6 administration tools for packet fi
ii logrotate 3.7.1-5 Log rotation utility
ii rsyslog [system-log-daemon] 3.18.6-4 enhanced multi-threaded syslogd
heartbeat suggests no packages.
-- no debconf information
*** /tmp/test/ocf_o2cd.patch
--- a/resources/OCF/o2cb 2009-01-22 06:58:49.000000000 +0100
+++ a/resources/OCF/o2cb 2009-03-24 15:56:28.000000000 +0100
@@ -311,7 +311,7 @@
;;
esac
-RCO2CB=INITDIR/o2cb
+RCO2CB=$INITDIR/o2cb
# RCO2CB=/etc/init.d/o2cb
if [ ! -x $RCO2CB ]; then

@ -0,0 +1 @@
+ ipv6-check.patch

@ -0,0 +1,5 @@
+ init-remote_fs.patch
+ init-openhpid.patch
+ init-ntp.patch
+ SphinxSearchDaemon.patch
+ SphinxSearchDaemon.install.patch

@ -0,0 +1,4 @@
+ bashisms.patch
+ ldirectord-fix-sql-select-queries.patch
+ ldirectord-clear-config-in-memory-on-reload.patch
+ lrm-dont-revise-op_status.patch

@ -0,0 +1 @@
+ ldirectord-init-lsb.patch

@ -0,0 +1 @@
+ ldirectord-rows.patch

@ -0,0 +1 @@
+ dopd-fix-basic-failover-fix-hb-message-corruption-by-fprintf_stderr_.patch

@ -0,0 +1 @@
+ IPv6addr-64.patch

@ -0,0 +1 @@
+ o2cb-INITDIR.patch

184
debian/rules vendored

@ -0,0 +1,184 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# Copyright 1997 to 1999 by Joey Hess.
# License: GNU General Public License (GPL)
#Thanks to Paolo Molaro <lupus@debian.org> and heartbeat_0.4.6-2.diff
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
#
# Path to SSH and SCP
# Usually this is guessed if ssh is installed.
# However, there is a long standing bug with installing ssh
# on arm in debian and this is preventing heartbeat from
# moving into sarge. By adding this we can remove the build
# dependancy on ssh and get an updated heartbeat into sarge...
# I hope. Horms 26th July 2004
#
# If this is removed then the build depandancy on ssh should be
# restored
#
cfg:=--prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--mandir=/usr/share/man \
--with-group-name=haclient --with-ccmuser-name=hacluster \
--enable-snmp-subagent --with-mibsdir=/usr/share/snmp/mibs \
--disable-fatal-warnings --enable-mgmt --enable-glib-malloc
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
CFLAGS = -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
DTMP:=`pwd`/debian/tmp
RELEASE := $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }')
UPSTREAM := $(shell echo "$(RELEASE)" | sed 's/:\?\([0-9\.]\+\)-[0-9].*/\1/')
patch:
override_version=$(RELEASE) sh debian/apply
unpatch:
override_version=$(RELEASE) sh debian/apply $(UPSTREAM)
configure: checkbuild
dh_testdir
# Allow debian packages to also be built directly from Hg archives
# Official debian packages are built from dist tarballs
test ! -e ./configure || ./configure $(cfg)
test -e ./configure || ./bootstrap $(cfg)
build: checkbuild configure build-stamp
build-stamp:
$(MAKE)
touch build-stamp
clean: configure
dh_testroot
# Add here commands to clean up after the build process.
-$(MAKE) clean MAKE=make
-$(MAKE) distclean MAKE=make
rm -f tools/ccdv
-find . -name '*.py[co]' | xargs rm -f
dh_clean build-stamp install-stamp
rm -f debian/init debian/*.debhelper debian/*.substvars config.log
rm -r -f debian/heartbeat debian/heartbeat-dev debian/ldirectord \
debian/heartbeat-2 debian/heartbeat-2-dev debian/ldirectord-2 \
debian/libstonith0 debian/libstonith-dev debian/stonith \
debian/libpils0 debian/libpils-dev \
debian/tmp
# Zero autoconf foo
rm -f config.status libltdl/config.log libltdl/config.status
install: build install-stamp
install-stamp:
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) install DESTDIR=$(DTMP) \
MAKE=make \
docdir=/usr/share/doc/heartbeat
mv $(DTMP)/usr/share/heartbeat/cts/README \
$(DTMP)/usr/share/doc/heartbeat/README.cts
find $(DTMP)/usr/share/man -type f | xargs gzip -v --best
install -c -m 755 heartbeat/init.d/heartbeat \
$(DTMP)/etc/init.d/heartbeat
-mkdir -p $(DTMP)/usr/share/doc/ldirectord/
install -c -m 644 ldirectord/ldirectord.cf \
$(DTMP)/usr/share/doc/ldirectord/
-mkdir -p $(DTMP)/etc/init.d
install -c -m 755 ldirectord/init.d/ldirectord.debian \
$(DTMP)/etc/init.d/ldirectord
-mkdir -p $(DTMP)/etc/default/
install -c -m 755 ldirectord/init.d/ldirectord.debian.default \
$(DTMP)/etc/default/ldirectord
cd $(DTMP)/etc/ && ln -s ha.d heartbeat
# debug:
find $(DTMP)
dh_movefiles --source=debian/tmp
binary-indep: build install
dh_testdir -i
dh_testroot -i
dh_installdebconf -i
dh_installdocs -i
dh_installexamples -i
# dh_installmenu -i
# dh_installemacsen -i
# dh_installpam -i
dh_installinit -i -n -u 'defaults 20 32'
# dh_installcron -i
dh_installman -i
# dh_installinfo -i
# dh_undocumented -i
dh_installchangelogs -i
dh_link -i
dh_strip -i
dh_compress -i
dh_fixperms -i
# dh_suidregister -i
dh_makeshlibs -i -V
dh_installdeb -i
dh_perl -i
dh_pycentral -i
dh_python -i `pwd`/usr/lib64/heartbeat/cts `pwd`/usr/lib64/heartbeat
dh_shlibdeps -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
binary-arch: build install
dh_testdir -a
dh_testroot -a
dh_installdebconf -a
dh_installdocs -a
dh_installexamples -a
# dh_installmenu -a
# dh_installemacsen -a
# dh_installpam -a
dh_installinit -a -n -u 'defaults 20 32'
# dh_installcron -a
dh_installman -a
# dh_installinfo -a
# dh_undocumented -a
dh_installchangelogs -a `pwd`/doc/ChangeLog
dh_link -a
dh_strip -a
dh_compress -a
dh_fixperms -a --exclude usr/bin/cl_status
# dh_suidregister -a
dh_makeshlibs -a -V
dh_installdeb -a
dh_perl -a
dh_pycentral -a
dh_python -a `pwd`/usr/lib64/heartbeat/cts `pwd`/usr/lib64/heartbeat
dh_shlibdeps -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
@echo "Any unpackaged files follow (.a and .la files omitted):"
@cd $(DTMP) && find ./ \! -type d | egrep -v \\\.l?a
checkbuild:
chmod u+x ./debian/dpkg-checkbuild
./debian/dpkg-checkbuild debian/control
.PHONY: build clean binary binary-indep binary-arch install checkbuild \
patch unpatch
Loading…
Cancel
Save