--- /dev/null
+--- Reusable-Cluster-Components-glue--glue-1.0.11/lib/plugins/stonith/Makefile.am.orig 2012-10-15 15:58:55.000000000 +0200
++++ Reusable-Cluster-Components-glue--glue-1.0.11/lib/plugins/stonith/Makefile.am 2013-09-06 15:41:19.579970814 +0200
+@@ -156,7 +156,7 @@
+
+ rhcs_la_SOURCES = rhcs.c $(INCFILES)
+ rhcs_la_LDFLAGS = -export-dynamic -module -avoid-version
+-rhcs_la_LIBADD = $(top_builddir)/lib/stonith/libstonith.la $(top_builddir)/replace/libreplace.la
++rhcs_la_LIBADD = $(top_builddir)/lib/stonith/libstonith.la $(top_builddir)/replace/libreplace.la $(LIBXML2)
+
+ ibmhmc_la_SOURCES = ibmhmc.c $(INCFILES)
+ ibmhmc_la_LDFLAGS = -export-dynamic -module -avoid-version
+@@ -196,7 +196,7 @@
+
+ vacm_la_SOURCES = vacm.c $(INCFILES)
+ vacm_la_LDFLAGS = -export-dynamic -module -avoid-version
+-vacm_la_LIBADD = $(top_builddir)/lib/stonith/libstonith.la $(top_builddir)/replace/libreplace.la
++vacm_la_LIBADD = $(top_builddir)/lib/stonith/libstonith.la $(top_builddir)/replace/libreplace.la -lvacmclient
+
+ wti_nps_la_SOURCES = wti_nps.c $(INCFILES)
+ wti_nps_la_LDFLAGS = -export-dynamic -module -avoid-version
+--- Reusable-Cluster-Components-glue--glue-1.0.11/configure.ac.orig 2013-09-06 16:40:51.983154227 +0200
++++ Reusable-Cluster-Components-glue--glue-1.0.11/configure.ac 2013-09-06 17:26:50.276371805 +0200
+@@ -545,14 +545,13 @@
+ dnl ===============================================
+ dnl Libraries
+ dnl ===============================================
+-AC_CHECK_LIB(socket, socket)
+-AC_CHECK_LIB(c, dlopen) dnl if dlopen is in libc...
+-AC_CHECK_LIB(dl, dlopen) dnl for Linux
+-AC_CHECK_LIB(rt, sched_getscheduler) dnl for Tru64
+-AC_CHECK_LIB(gnugetopt, getopt_long) dnl if available
+-AC_CHECK_LIB(uuid, uuid_parse) dnl e2fsprogs
+-AC_CHECK_LIB(uuid, uuid_create) dnl ossp
+-AC_CHECK_LIB(posix4, sched_getscheduler)
++AC_SEARCH_LIBS(socket, [socket])
++AC_SEARCH_LIBS(dlopen, [dl])
++AC_SEARCH_LIBS(sched_getscheduler, [rt posix4])
++AC_SEARCH_LIBS(getopt_long, [gnugetopt]) dnl if available
++AC_CHECK_LIB(uuid, uuid_parse, [LIBUUID=-luuid]) dnl e2fsprogs
++AC_CHECK_LIB(uuid, uuid_create, [LIBUUID=-luuid]) dnl ossp
++AC_SUBST([LIBUUID])
+
+ if test x"${PKGCONFIG}" = x""; then
+ AC_MSG_ERROR(You need pkgconfig installed in order to build ${PACKAGE})
+@@ -699,7 +697,8 @@
+ else
+ XML2HEAD="`$XML2CONFIG --cflags`"
+ AC_MSG_RESULT($XML2HEAD)
+- AC_CHECK_LIB(xml2, xmlReadMemory)
++ AC_CHECK_LIB(xml2, xmlReadMemory, [LIBXML2=-lxml2])
++ AC_SUBST([LIBXML2])
+ fi
+
+ CPPFLAGS="$CPPFLAGS $XML2HEAD"
+@@ -1107,7 +1105,7 @@
+ dnl check if header file and lib are there for zlib
+ zlib_installed="yes"
+ AC_CHECK_HEADERS(zlib.h, , [zlib_installed="no"],)
+-AC_CHECK_LIB(z, compress , , [zlib_installed="no"])
++AC_CHECK_LIB(z, compress , [LIBZ=-lz], [zlib_installed="no"])
+ AM_CONDITIONAL(BUILD_ZLIB_COMPRESS_MODULE, test "x${zlib_installed}" = "xyes")
+ if test "x${zlib_installed}" = "xno"; then
+ FatalMissingThing "zlib" \
+@@ -1116,7 +1114,7 @@
+
+ bz2_installed="yes"
+ AC_CHECK_HEADERS(bzlib.h, , [bz2_installed="no"],)
+-AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress , , [bz2_installed="no"])
++AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress , [LIBBZ2=-lbz2], [bz2_installed="no"])
+ AM_CONDITIONAL(BUILD_BZ2_COMPRESS_MODULE, test "x${bz2_installed}" = "xyes")
+
+ #if test x$ac_cv_lib_bz2_BZ2_bzBuffToBuffCompress != xyes ; then
+--- Reusable-Cluster-Components-glue--glue-1.0.11/lib/clplumbing/Makefile.am.orig 2012-10-15 15:58:55.000000000 +0200
++++ Reusable-Cluster-Components-glue--glue-1.0.11/lib/clplumbing/Makefile.am 2013-09-06 17:39:45.736339262 +0200
+@@ -61,7 +61,7 @@
+ uids.c
+
+ libplumb_la_LIBADD = $(top_builddir)/replace/libreplace.la \
+- $(top_builddir)/lib/pils/libpils.la
++ $(top_builddir)/lib/pils/libpils.la $(LIBUUID)
+ libplumb_la_LDFLAGS = -version-info 3:0:1
+
+ libplumbgpl_la_SOURCES = setproctitle.c
+--- Reusable-Cluster-Components-glue--glue-1.0.11/lib/stonith/Makefile.am.orig 2012-10-15 15:58:55.000000000 +0200
++++ Reusable-Cluster-Components-glue--glue-1.0.11/lib/stonith/Makefile.am 2013-09-06 17:49:16.516315308 +0200
+@@ -33,7 +33,7 @@
+
+ stonith_SOURCES = main.c
+
+-stonith_LDADD = libstonith.la $(top_builddir)/lib/pils/libpils.la $(GLIBLIB) \
++stonith_LDADD = libstonith.la $(top_builddir)/lib/pils/libpils.la $(GLIBLIB) $(LIBXML2) \
+ $(top_builddir)/lib/clplumbing/libplumb.la \
+ $(top_builddir)/lib/clplumbing/libplumbgpl.la
+ stonith_LDFLAGS = @LIBADD_DL@ @LIBLTDL@ -export-dynamic @DLOPEN_FORCE_FLAGS@ @LIBADD_INTL@
+--- Reusable-Cluster-Components-glue--glue-1.0.11/lib/plugins/lrm/Makefile.am.orig 2012-10-15 15:58:55.000000000 +0200
++++ Reusable-Cluster-Components-glue--glue-1.0.11/lib/plugins/lrm/Makefile.am 2013-09-06 17:59:43.946288978 +0200
+@@ -44,6 +44,7 @@
+
+ lsb_la_SOURCES = raexeclsb.c
+ lsb_la_LDFLAGS = -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version
++lsb_la_LIBADD = $(LIBXML2)
+
+ ocf_la_SOURCES = raexecocf.c
+ ocf_la_LDFLAGS = -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version
-# TODO
-# - tests packaged in -devel to own pkg or just rm -rf
+# TODO:
# - pldize ha_logd initscript (look heartbeat.init?)
-# - stonith-libs? pils?
+# - stonith-libs? pils? (any sense? libs are small and have little external dependencies)
+# - separate some stonith plugins which have external dependencies?
+#
+# Conditional build:
+%bcond_without vacm # VACM stonith plugin
+#
Summary: Reusable cluster components
Summary(pl.UTF-8): Komponenty klastrowe wielokrotnego użytku
Name: cluster-glue
Version: 1.0.11
Release: 5
License: GPL v2+ and LGPL v2+
-Group: Base
+Group: Aplications/System
Source0: http://hg.linux-ha.org/glue/archive/glue-%{version}.tar.bz2
# Source0-md5: 7d0acd99d43edac849dc76f43cfa4c7f
Source1: logd.service
+Patch0: %{name}-link.patch
+Patch1: %{name}-opt.patch
URL: http://www.linux-ha.org/
-BuildRequires: OpenIPMI-devel
-BuildRequires: autoconf
+BuildRequires: OpenIPMI-devel >= 1.4
+BuildRequires: autoconf >= 2.53
BuildRequires: automake
BuildRequires: bzip2-devel
BuildRequires: curl-devel
BuildRequires: docbook-dtd42-xml
BuildRequires: docbook-dtd44-xml
BuildRequires: docbook-style-xsl
-BuildRequires: glib2-devel
+BuildRequires: glib2-devel >= 2.0
+BuildRequires: help2man
BuildRequires: libaio-devel
BuildRequires: libltdl-devel
-BuildRequires: libnet-devel
+BuildRequires: libnet-devel >= 1.0
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: libuuid-devel
-BuildRequires: libxml2-devel
+BuildRequires: libxml2-devel >= 2.0
BuildRequires: libxslt-progs
BuildRequires: ncurses-devel
BuildRequires: net-snmp-devel >= 5.4
BuildRequires: openhpi-devel
BuildRequires: openssl-devel
+BuildRequires: perl-tools-pod
BuildRequires: pkgconfig
BuildRequires: python-devel
BuildRequires: rpm-pythonprov
+%{?with_vacm:BuildRequires: vacm-devel}
BuildRequires: zlib-devel
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Obsoletes: heartbeat-pils < 3.0.0-1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define filterout_ld -Wl,--as-needed
-
%description
A collection of common tools that are useful for writing cluster
managers such as Pacemaker. Provides a local resource manager that
%package libs
Summary: Reusable cluster libraries
Summary(pl.UTF-8): Biblioteki klastrowe wielokrotnego użytku
-Group: Development/Libraries
+Group: Libraries
Obsoletes: libheartbeat2
%description libs
Summary(pl.UTF-8): Pliki nagłówkowe do pisania zarządców klastrów
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
+Requires: glib2-devel >= 2.0
+Requires: libltdl-devel
Obsoletes: libheartbeat-devel
%description libs-devel
Pliki nagłówkowe przydatne przy pisaniu zarządców klastrów, takich jak
Pacemaker.
+%package tests
+Summary: Tests for cluster-glue framework
+Summary(pl.UTF-8): Testy dla szkieletu cluster-glue
+Group: Development
+Requires: %{name}-libs = %{version}-%{release}
+
+%description tests
+Tests for cluster-glue framework.
+
+%description tests -l pl.UTF-8
+Testy dla szkieletu cluster-glue.
+
%package stonith
Summary: Provides an interface to Shoot The Other Node In The Head
Summary(pl.UTF-8): Interfejs do "odstrzelenia" drugiego węzła w klastrze
%prep
%setup -q -n Reusable-Cluster-Components-glue--glue-%{version}
+%patch0 -p1
+%patch1 -p1
+
sed -i -e's;#!/usr/bin/env \(python\|perl\);#!/usr/bin/\1;' \
lib/plugins/stonith/external/*
%{__automake}
%{__autoconf}
%configure \
- --with-initdir=/etc/rc.d/init.d \
+ --docdir=%{_docdir}/%{name}-%{version} \
--disable-fatal-warnings \
+ --disable-static \
--with-daemon-group=haclient \
- --with-daemon-user=hacluster\
- --docdir=%{_docdir}/%{name}-%{version} \
- --disable-static
+ --with-daemon-user=hacluster \
+ --with-initdir=/etc/rc.d/init.d
%{__make}
%install
find $RPM_BUILD_ROOT -name '*.la' -delete
-%{__sed} -e's;@libdir@;%{_libdir};g' \
+%{__sed} -e 's;@libdir@;%{_libdir};g' \
%{SOURCE1} > $RPM_BUILD_ROOT%{systemdunitdir}/logd.service
%clean
%files
%defattr(644,root,root,755)
-%doc AUTHORS logd/logd.cf
+%doc AUTHORS ChangeLog logd/logd.cf
%attr(754,root,root) /etc/rc.d/init.d/logd
%{systemdunitdir}/logd.service
%attr(755,root,root) %ghost %{_libdir}/libstonith.so.1
%dir %{_libdir}/heartbeat
%dir %{_libdir}/heartbeat/plugins
+# also used by resource-agents runtime package (shouldn't agent_config.h be in resource-agents-devel?)
%dir %{_includedir}/heartbeat
%files libs-devel
%attr(755,root,root) %{_libdir}/libplumbgpl.so
%attr(755,root,root) %{_libdir}/libstonith.so
%{_includedir}/clplumbing
-%{_includedir}/heartbeat/*
+%{_includedir}/heartbeat/compress.h
+%{_includedir}/heartbeat/glue_config.h
+%{_includedir}/heartbeat/ha_msg.h
+%{_includedir}/heartbeat/lrm
%{_includedir}/stonith
%{_includedir}/pils
+%files tests
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/heartbeat/ipctest
%attr(755,root,root) %{_libdir}/heartbeat/ipctransientclient
%attr(755,root,root) %{_libdir}/heartbeat/ipctransientserver
%dir %{_libdir}/stonith/plugins/external
%attr(755,root,root) %{_libdir}/stonith/plugins/external/*
%dir %{_libdir}/stonith/plugins/stonith2
-%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/*.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmaster.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmastersnmp.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcsmart.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/baytech.so
+# R: openhpi
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/bladehpi.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/cyclades.so
+# R: curl libxml2
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/drac3.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/external.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ibmhmc.so
+# R: OpenIPMI
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ipmilan.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/meatware.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/null.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/nw_rpc100s.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rcd_serial.so
+# R: libxml2
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rhcs.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rps10.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ssh.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/suicide.so
+%if %{with vacm}
+# R: vacm-libs
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/vacm.so
+%endif
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_mpc.so
+%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_nps.so
%attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ribcl.py
%attr(755,root,root) %{_libdir}/stonith/plugins/xen0-ha-dom0-stonith-helper