-# 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: 2
+Version: 1.0.12
+Release: 6
License: GPL v2+ and LGPL v2+
-Group: Base
-URL: http://www.linux-ha.org/
+Group: Aplications/System
+# for future releases:
+#Source0Download: https://github.com/ClusterLabs/cluster-glue/releases
+#Source0: https://github.com/ClusterLabs/cluster-glue/archive/%{version}/glue-%{version}.tar.gz
Source0: http://hg.linux-ha.org/glue/archive/glue-%{version}.tar.bz2
-# Source0-md5: 7d0acd99d43edac849dc76f43cfa4c7f
-Source1: logd.service
-BuildRequires: OpenIPMI-devel
-BuildRequires: autoconf
+# Source0-md5: ec620466d6f23affa3b074b72bca7870
+Patch0: %{name}-link.patch
+Patch1: %{name}-opt.patch
+Patch2: %{name}-rc.patch
+Patch3: %{name}-heartbeat-libexecdir.patch
+Patch4: x32-long-long-time-types.patch
+URL: http://www.linux-ha.org/wiki/Cluster_Glue
+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
understands the OCF and LSB standards, and an interface to common
STONITH devices.
+%description -l pl.UTF-8
+Zbiór wspólnych narzędzi przydatnych przy pisaniu zarządców klastrów,
+takich jak Pacemaker. Pakiet zawiera zarządcę zasobów lokalnych
+zgodnego ze standardami OCF i LSB oraz interfejs do wspólnych urządzeń
+STONITH.
+
%package libs
Summary: Reusable cluster libraries
-Group: Development/Libraries
+Summary(pl.UTF-8): Biblioteki klastrowe wielokrotnego użytku
+Group: Libraries
Obsoletes: libheartbeat2
%description libs
A collection of libraries that are useful for writing cluster managers
such as Pacemaker.
+%description libs -l pl.UTF-8
+Zbiór bibliotek przydatnych przy pisaniu zarządców klastrów, takich
+jak Pacemaker.
+
%package libs-devel
-Summary: Headers and libraries for writing cluster managers
+Summary: Header files for writing cluster managers
+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
-Headers and shared libraries for a useful for writing cluster managers
-such as Pacemaker.
+Header files useful for writing cluster managers such as Pacemaker.
+
+%description libs-devel -l pl.UTF-8
+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
%prep
%setup -q -n Reusable-Cluster-Components-glue--glue-%{version}
-sed -i -e's;#!/usr/bin/env \(python\|perl\);#!/usr/bin/\1;' \
- lib/plugins/stonith/external/*
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%ifarch x32
+%patch4 -p1
+%endif
+
+%{__sed} -i -e '1{
+ s,^#!.*python$,#!%{__python},
+ s,^#!.*bin/env perl,#!%{__perl},
+}' \
+ lib/plugins/stonith/external/*
%build
%{__libtoolize}
%{__autoheader}
%{__automake}
%{__autoconf}
+CPPFLAGS="%{rpmcppflags} -DOPENIPMI_DEFINE_SELECTOR_T"
%configure \
- --with-initdir=/etc/rc.d/init.d \
+ PYTHON=%{__python} \
+ --docdir=%{_docdir}/%{name}-%{version} \
--disable-fatal-warnings \
+ --disable-static \
+ --enable-ipmilan \
--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 \
+ --with-rundir=/var/run
%{__make}
%install
find $RPM_BUILD_ROOT -name '*.la' -delete
-%{__sed} -e's;@libdir@;%{_libdir};g' \
- %{SOURCE1} > $RPM_BUILD_ROOT%{systemdunitdir}/logd.service
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc AUTHORS logd/logd.cf
+%doc AUTHORS ChangeLog logd/logd.cf doc/stonith/README*
%attr(754,root,root) /etc/rc.d/init.d/logd
%{systemdunitdir}/logd.service
%attr(755,root,root) %{_sbindir}/hb_report
%attr(755,root,root) %{_sbindir}/lrmadmin
%attr(755,root,root) %{_sbindir}/meatclient
-%attr(755,root,root) %{_sbindir}/sbd
%attr(755,root,root) %{_sbindir}/cibsecret
%{_mandir}/man1/ha_logger.1*
%{_mandir}/man8/ha_logd.8*
%attr(755,root,root) %{_datadir}/%{name}/ha_cf_support.sh
%attr(755,root,root) %{_datadir}/%{name}/openais_conf_support.sh
%attr(755,root,root) %{_datadir}/%{name}/utillib.sh
-%attr(755,root,root) %{_datadir}/%{name}/combine-logs.pl
%attr(755,root,root) %{_datadir}/%{name}/ha_log.sh
-%dir %{_libdir}/heartbeat/plugins/RAExec
+%attr(755,root,root) %{_libexecdir}/heartbeat/ha_logd
+%attr(755,root,root) %{_libexecdir}/heartbeat/lrmd
+
%dir %{_libdir}/heartbeat/plugins/InterfaceMgr
-%dir %{_libdir}/heartbeat/plugins/compress
-%attr(755,root,root) %{_libdir}/heartbeat/lrmd
-%attr(755,root,root) %{_libdir}/heartbeat/ha_logd
%attr(755,root,root) %{_libdir}/heartbeat/plugins/InterfaceMgr/generic.so
+%dir %{_libdir}/heartbeat/plugins/RAExec
%attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/heartbeat.so
%attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/lsb.so
%attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/ocf.so
+%dir %{_libdir}/heartbeat/plugins/compress
%attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/bz2.so
%attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/zlib.so
%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
-%attr(755,root,root) %{_libdir}/heartbeat/ipctest
-%attr(755,root,root) %{_libdir}/heartbeat/ipctransientclient
-%attr(755,root,root) %{_libdir}/heartbeat/ipctransientserver
-%attr(755,root,root) %{_libdir}/heartbeat/transient-test.sh
-%attr(755,root,root) %{_libdir}/heartbeat/base64_md5_test
-%attr(755,root,root) %{_libdir}/heartbeat/logtest
+%files tests
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctest
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientclient
+%attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientserver
+%attr(755,root,root) %{_libexecdir}/heartbeat/transient-test.sh
+%attr(755,root,root) %{_libexecdir}/heartbeat/base64_md5_test
+%attr(755,root,root) %{_libexecdir}/heartbeat/logtest
%dir %{_libdir}/heartbeat/plugins/test
%attr(755,root,root) %{_libdir}/heartbeat/plugins/test/test.so
%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