[Pacemaker] minimizing cluster-glue dependencies

Pádraig Brady P at draigBrady.com
Wed Sep 7 08:23:18 EDT 2011


On 09/07/2011 12:25 PM, Andrew Beekhof wrote:
> If you want the patch in fedora you still need to talk to me about it.
> How about posting the changes instead of the end result (the SRPM) ?

Attached is the diff to the spec file and
the 2 new files from SOURCES/

cheers,
Pádraig.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pacemaker-clplumbing.diff
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20110907/17cea555/attachment-0003.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pacemaker-clplumbing.tar.gz
Type: application/x-gzip
Size: 106286 bytes
Desc: not available
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20110907/17cea555/attachment-0001.bin>
-------------- next part --------------
--- pacemaker.spec	2011-04-27 10:46:27.000000000 +0000
+++ SPECS/pacemaker.spec	2011-09-07 12:18:01.302603993 +0000
@@ -20,7 +20,7 @@
 # We generate some docs using Publican, but its not available everywhere
 %bcond_with publican
 
-%global specversion 1
+%global specversion 2
 %global upstream_version Pacemaker-1.1.5
 %global upstream_prefix Pacemaker-1-1-
 
@@ -45,12 +45,14 @@
 Url:		http://www.clusterlabs.org
 Group:		System Environment/Daemons
 Source0:	http://hg.clusterlabs.org/pacemaker/1.1/archive/%{upstream_version}.tar.bz2
+Source1:	pacemaker-clplumbing.tar.gz
 Patch3:		cman-fencing-ack.patch
 Patch4:		cman-dispatch-all.patch
 Patch5:		cman-disconnect.patch
 Patch6:		cman-fencing-override.patch
 Patch7:		pacemaker-multilib-header.patch
 Patch8:		stonith-manpage.patch
+Patch9:		pacemaker-clplumbing.diff
 
 BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv:	on
@@ -60,8 +62,8 @@
 
 # Required for core functionality
 BuildRequires:	automake autoconf libtool pkgconfig libtool-ltdl-devel python-devel
-BuildRequires:	glib2-devel cluster-glue-libs-devel libxml2-devel libxslt-devel 
-BuildRequires:	pkgconfig python-devel gcc-c++ bzip2-devel gnutls-devel pam-devel
+BuildRequires:	glib2-devel cluster-glue-libs-devel libxml2-devel libxslt-devel
+BuildRequires:	pkgconfig python-devel gcc-c++ bzip2-devel gnutls-devel pam-devel libuuid-devel
 
 # Enables optional functionality
 BuildRequires:	help2man ncurses-devel openssl-devel libselinux-devel docbook-style-xsl resource-agents
@@ -109,6 +111,7 @@
 Summary:	Libraries used by the Pacemaker cluster resource manager and its clients
 Group:		System Environment/Daemons
 Requires:	%{name} = %{version}-%{release}
+Requires:	%{name}-pengine-libs = %{version}-%{release}
 
 %description -n pacemaker-libs
 Pacemaker is an advanced, scalable High-Availability cluster resource
@@ -126,6 +129,7 @@
 Summary:	Pacemaker development package
 Group:		Development/Libraries
 Requires:	%{name}-libs = %{version}-%{release}
+Requires:	%{name}-pengine-libs-devel = %{version}-%{release}
 Requires:	cluster-glue-libs-devel
 %if %{with ais}
 Requires:	corosynclib-devel
@@ -147,6 +151,48 @@
 when related resources fail and can be configured to periodically check
 resource health.
 
+%package -n pacemaker-pengine-libs
+License:	GPLv2+ and LGPLv2+
+Summary:	Policy Engine Libraries used by the Pacemaker cluster resource manager and its clients
+Group:		System Environment/Daemons
+
+%description -n pacemaker-pengine-libs
+Pacemaker is an advanced, scalable High-Availability cluster resource
+manager for Linux-HA (Heartbeat) and/or OpenAIS.
+
+It supports "n-node" clusters with significant capabilities for
+managing resources and dependencies.
+
+It will run scripts at initialization, when machines go up or down,
+when related resources fail and can be configured to periodically check
+resource health.
+
+%package -n pacemaker-pengine-libs-devel
+License:	GPLv2+ and LGPLv2+
+Summary:	Pacemaker development package
+Group:		Development/Libraries
+Requires:	%{name}-pengine-libs = %{version}-%{release}
+%if %{with ais}
+Requires:	corosynclib-devel
+%endif
+%if %{with heartbeat}
+Requires:	heartbeat-devel
+%endif
+
+%description -n pacemaker-pengine-libs-devel
+Headers and shared libraries for developing tools
+for the Policy Engine component of Pacemaker.
+
+Pacemaker is an advanced, scalable High-Availability cluster resource
+manager for Linux-HA (Heartbeat) and/or OpenAIS.
+
+It supports "n-node" clusters with significant capabilities for
+managing resources and dependencies.
+
+It will run scripts at initialization, when machines go up or down,
+when related resources fail and can be configured to periodically check
+resource health.
+
 %package	cts
 License:	GPLv2+ and LGPLv2+
 Summary:	Test framework for cluster-related technologies like Pacemaker
@@ -176,12 +222,14 @@
 
 %prep
 %setup -q -n %{upstream_prefix}%{upstream_version}
+%setup -D -T -a 1 -n %{upstream_prefix}%{upstream_version}
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 
 %build
 ./autogen.sh
@@ -247,6 +295,10 @@
 
 %postun -n pacemaker-libs -p /sbin/ldconfig
 
+%post -n pacemaker-pengine-libs -p /sbin/ldconfig
+
+%postun -n pacemaker-pengine-libs -p /sbin/ldconfig
+
 %files
 ###########################################################
 %defattr(-,root,root)
@@ -310,13 +362,18 @@
 %files -n pacemaker-libs
 %defattr(-,root,root)
 %{_libdir}/libcib.so.*
-%{_libdir}/libcrmcommon.so.*
 %{_libdir}/libcrmcluster.so.*
-%{_libdir}/libpe_status.so.*
+%{_libdir}/libstonithd.so.*
+%doc COPYING.LIB
+%doc AUTHORS
+
+%files -n pacemaker-pengine-libs
+%defattr(-,root,root)
+%{_libdir}/libcrmcommon.so.*
 %{_libdir}/libpe_rules.so.*
+%{_libdir}/libpe_status.so.*
 %{_libdir}/libpengine.so.*
 %{_libdir}/libtransitioner.so.*
-%{_libdir}/libstonithd.so.*
 %doc COPYING.LIB
 %doc AUTHORS
 
@@ -335,12 +392,34 @@
 %defattr(-,root,root)
 %exclude %{_datadir}/pacemaker/tests/cts
 %{_datadir}/pacemaker/tests
-%{_includedir}/pacemaker
-%{_libdir}/*.so
+%exclude %{_includedir}/pacemaker/crm/transition.h
+%{_includedir}/pacemaker/crm/*.h
+%{_includedir}/pacemaker/crm_config.h
+%{_libdir}/libcib.so
+%{_libdir}/libcrmcluster.so
+%{_libdir}/libstonithd.so
+%doc COPYING.LIB
+%doc AUTHORS
+
+%files -n pacemaker-pengine-libs-devel
+%defattr(-,root,root)
+%exclude %{_datadir}/pacemaker/tests/cts
+%{_includedir}/pacemaker/crm/common
+%{_includedir}/pacemaker/crm/pengine
+%{_includedir}/pacemaker/crm/transition.h
+%{_libdir}/libcrmcommon.so
+%{_libdir}/libpe_rules.so
+%{_libdir}/libpe_status.so
+%{_libdir}/libpengine.so
+%{_libdir}/libtransitioner.so
 %doc COPYING.LIB
 %doc AUTHORS
 
 %changelog
+* Tue Sep 06 2011 Pádraig Brady <P at draigBrady.com> 1.1.5-2
+- Split out pacemaker-pengine-libs from pacemaker-libs
+- Removed dependency on cluster-glue-libs by copying needed components
+
 * Wed Apr 27 2011 Andrew Beekhof <andrew at beekhof.net> 1.1.5-1
 - New upstream release plus patches for CMAN integration
  


More information about the Pacemaker mailing list