Browse Source

pacemaker: new package, 1.1.2, build with corosync, without heartbeat3

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@1322 ec354946-7b23-47d6-9f5a-488ba84defc7
daisuke 14 years ago
parent
commit
23b648d50b
1 changed files with 492 additions and 0 deletions
  1. 492 0
      p/pacemaker/pacemaker-vl.spec

+ 492 - 0
p/pacemaker/pacemaker-vl.spec

@@ -0,0 +1,492 @@
+%global gname haclient
+%global uname hacluster
+%global pcmk_docdir %{_docdir}/%{name}
+
+# Supported cluster stacks, must support at least one
+%bcond_without ais
+%bcond_with heartbeat
+
+# ESMTP is not available in RHEL, only in EPEL. Allow people to build
+# the RPM without ESMTP in case they choose not to use EPEL packages
+%bcond_without esmtp
+
+# SNMP trap support only works with Net-SNMP 5.4 and above
+%bcond_without snmp
+
+# We generate some docs using Publican, but its not available everywhere
+%bcond_with publican
+
+%global specversion 3
+%global upstream_version Pacemaker-1.1.2
+%global upstream_prefix Pacemaker-1-1-
+
+# Keep around for when/if required
+#global alphatag %{upstream_version}.hg
+
+%global pcmk_release %{?alphatag:0.}%{specversion}%{?alphatag:.%{alphatag}}%{?dist}
+
+# When downloading directly from Mercurial, it will automatically add a prefix
+# Invoking 'hg archive' wont but you can add one with:
+# hg archive -t tgz -p "$upstream_prefix-$upstream_version" -r $upstream_version $upstream_version.tar.gz
+
+Name:		pacemaker
+Summary:	Scalable High-Availability cluster resource manager
+Summary(ja):	スケーラブル高可用クラスタリソースマネージャ
+Version:	1.1.2
+Release:        1%{?_dist_release}
+License:	GPLv2+ and LGPLv2+
+Url:		http://www.clusterlabs.org
+Group:		System Environment/Daemons
+Source0:	http://hg.clusterlabs.org/pacemaker/1.1/archive/%{upstream_version}.tar.bz2
+Patch1:		bug-lf-2401.patch
+Patch2:		doc-validation.patch
+Patch3:		pacemaker-1.1.2-fix-docbook-detection.patch
+Patch4:		pacemaker-1.1.2-dont-use-find-to-detect-host-env.patch
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
+AutoReqProv:	on
+Requires(pre):	cluster-glue
+Requires:	resource-agents
+Requires:	perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+
+# 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
+
+# Enables optional functionality
+BuildRequires:	help2man ncurses-devel openssl-devel
+
+%if %{with esmtp}
+BuildRequires:	libesmtp-devel
+%endif
+
+%if %{with snmp}
+BuildRequires:	net-snmp-devel >= 5.4
+Requires:	net-snmp
+%endif
+
+%if %{with ais}
+BuildRequires:	corosynclib-devel
+%endif
+
+%if %{with heartbeat}
+BuildRequires:	heartbeat-devel heartbeat-libs
+%endif
+
+%if %{with publican}
+%ifarch i386 x86_64
+BuildRequires:	publican
+%endif
+%endif
+
+%description
+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-libs
+License:	GPLv2+ and LGPLv2+
+Summary:	Libraries used by the Pacemaker cluster resource manager and its clients
+Summary(ja):	Libraries used by the Pacemaker cluster resource manager and its clients
+Group:		System Environment/Daemons
+Requires:	%{name} = %{version}-%{release}
+
+%description -n pacemaker-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-libs-devel 
+License:	GPLv2+ and LGPLv2+
+Summary:	Pacemaker development package
+Summary(ja):	Pacemaker 開発パッケージ
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	cluster-glue-libs-devel
+%if %{with ais}
+Requires:	corosynclib-devel
+%endif
+%if %{with heartbeat}
+Requires:	heartbeat-devel
+%endif
+
+%description -n pacemaker-libs-devel
+Headers and shared libraries for developing tools for 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
+Summary(ja):	Test framework for cluster-related technologies like Pacemaker
+Group:		System Environment/Daemons
+Requires:	python
+
+%description	cts
+Test framework for cluster-related technologies like Pacemaker
+
+%package	doc
+License:	GPLv2+ and LGPLv2+
+Summary:	Documentation for Pacemaker
+Summary(ja):	Documentation for Pacemaker
+Group:		Documentation
+
+%description	doc
+Documentation for Pacemaker.
+
+Pacemaker is an advanced, scalable High-Availability cluster resource
+manager for OpenAIS/Corosync.
+
+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.
+
+%prep
+%setup -q -n %{upstream_prefix}%{upstream_version}
+%patch1 -p1
+%patch2 -p0
+%patch3 -p1
+%patch4 -p1
+
+%build
+./autogen.sh
+%{configure}			\
+	%{!?_with_heartbeat:--without-hearbeat}	\
+	%{?_without_ais}	\
+	%{?_without_esmtp}	\
+	%{?_without_snmp}	\
+	--disable-ansi          \
+	--docdir=%{pcmk_docdir}	\
+	--localstatedir=%{_var}	\
+	--enable-fatal-warnings=no
+
+make %{_smp_mflags}
+
+%install
+rm -rf %{buildroot}
+make DESTDIR=%{buildroot} install
+
+# Scripts that need should be executable
+chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/CTSlab.py
+chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/extracttests.py
+
+# These are not actually scripts
+find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x
+find %{buildroot} -name '*.xsl' -type f -print0 | xargs -0 chmod a-x
+find %{buildroot} -name '*.rng' -type f -print0 | xargs -0 chmod a-x
+find %{buildroot} -name '*.dtd' -type f -print0 | xargs -0 chmod a-x
+ 
+# Dont package static libs or compiled python
+find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f
+find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f
+
+# Don't package these either
+rm -f %{buildroot}/%{_libdir}/heartbeat/hb2openais-helper.py
+rm -f %{buildroot}/%{_libdir}/heartbeat/crm_primitive.py
+rm -f %{buildroot}/%{_libdir}/service_crm.so
+rm -f %{buildroot}/usr/lib/ocf/resource.d/pacemaker/pingd
+
+%clean
+rm -rf %{buildroot}
+
+%post -n pacemaker-libs -p /sbin/ldconfig
+
+%postun -n pacemaker-libs -p /sbin/ldconfig
+
+%files
+###########################################################
+%defattr(-,root,root)
+
+%exclude %{_datadir}/pacemaker/tests
+
+%{_datadir}/pacemaker
+%{_datadir}/snmp/mibs/PCMK-MIB.txt
+%{_libdir}/heartbeat/*
+%{_sbindir}/cibadmin
+%{_sbindir}/crm_attribute
+%{_sbindir}/crm_diff
+%{_sbindir}/crm_failcount
+%{_sbindir}/crm_master
+%{_sbindir}/crm_mon
+%{_sbindir}/crm
+%{_sbindir}/crm_simulate
+%{_sbindir}/crm_resource
+%{_sbindir}/crm_report
+%{_sbindir}/crm_standby
+%{_sbindir}/crm_verify
+%{_sbindir}/crmadmin
+%{_sbindir}/iso8601
+%{_sbindir}/attrd_updater
+%{_sbindir}/ptest
+%{_sbindir}/crm_shadow
+%{_sbindir}/cibpipe
+%{_sbindir}/crm_node
+%{_sbindir}/fence_legacy
+%{_sbindir}/stonith_admin
+%{python_sitelib}/crm
+#%{_mandir}/man8/*.8*
+%{_mandir}
+
+%if %{with heartbeat}
+%{_sbindir}/crm_uuid
+%else
+%exclude %{_sbindir}/crm_uuid
+%endif
+
+# Packaged elsewhere
+%exclude %{_datadir}/pacemaker/tests
+
+%doc COPYING
+%doc AUTHORS
+
+%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
+%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
+%dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
+%dir /usr/lib/ocf
+%dir /usr/lib/ocf/resource.d
+/usr/lib/ocf/resource.d/pacemaker
+%if %{with ais}
+%{_libexecdir}/lcrso/pacemaker.lcrso
+%endif
+
+%files -n pacemaker-libs
+%defattr(-,root,root)
+%{_libdir}/libcib.so.*
+%{_libdir}/libcrmcommon.so.*
+%{_libdir}/libcrmcluster.so.*
+%{_libdir}/libpe_status.so.*
+%{_libdir}/libpe_rules.so.*
+%{_libdir}/libpengine.so.*
+%{_libdir}/libtransitioner.so.*
+%{_libdir}/libstonithd.so.*
+%doc COPYING.LIB
+%doc AUTHORS
+
+%files doc
+%defattr(-,root,root)
+%doc %{pcmk_docdir}
+
+%files cts
+%defattr(-,root,root)
+%{python_sitelib}/cts
+%{_datadir}/pacemaker/tests/cts
+%doc COPYING.LIB
+%doc AUTHORS
+
+%files -n pacemaker-libs-devel
+%defattr(-,root,root)
+%exclude %{_datadir}/pacemaker/tests/cts
+%{_datadir}/pacemaker/tests
+%{_includedir}/pacemaker
+%{_libdir}/*.so
+%doc COPYING.LIB
+%doc AUTHORS
+
+%changelog
+* Sat Jul 10 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 	1.1.2-1
+- initial build for Vine Linux
+
+* Mon Jun 21 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-3
+- publican is only available as a dependancy on i386/x86_64 machines
+
+* Fri Jun 11 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-2
+- Resolves rhbz#602239 - Added patch to documentation so that it passes validation
+- High: Core: Bug lf#2401 - Backed out changeset 6e6980376f01
+
+* Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.1.2-1.1
+- Mass rebuild with perl-5.12.0
+
+* Wed May 12 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-1
+- Update the tarball from the upstream 1.1.2 release 
+  + High: ais: Bug lf#2340 - Force rogue child processes to terminate after waiting 2.5 minutes
+  + High: ais: Bug lf#2359 - Default expected votes to 2 inside Corosync/OpenAIS plugin
+  + High: ais: Bug lf#2359 - expected-quorum-votes not correctly updated after membership change
+  + High: ais: Bug rhbz#525552 - Move non-threadsafe calls to setenv() to after the fork()
+  + High: ais: Do not count votes from offline nodes and calculate current votes before sending quorum data
+  + High: ais: Ensure the list of active processes sent to clients is always up-to-date
+  + High: ais: Fix previous commit, actually return a result in get_process_list()
+  + High: ais: Fix two more uses of getpwnam() in non-thread-safe locations
+  + High: ais: Look for the correct conf variable for turning on file logging
+  + High: ais: Need to find a better and thread-safe way to set core_uses_pid. Disable for now.
+  + High: ais: Use the threadsafe version of getpwnam
+  + High: Core: Bug lf#2414 - Prevent use-after-free reported by valgrind when doing xpath based deletions
+  + High: Core: Bump the feature set due to the new failcount expiry feature
+  + High: Core: Fix memory leak in replace_xml_child() reported by valgrind
+  + High: Core: fix memory leaks exposed by valgrind
+  + High: crmd: Bug 2401 - Improved detection of partially active peers
+  + High: crmd: Bug bnc#578644 - Improve handling of cancelled operations caused by resource cleanup
+  + High: crmd: Bug lf#2379 - Ensure the cluster terminates when the PE is not available
+  + High: crmd: Bug lf#2414 - Prevent use-after-free of the PE connection after it dies
+  + High: crmd: Bug lf#2414 - Prevent use-after-free of the stonith-ng connection
+  + High: crmd: Do not allow the target_rc to be misused by resource agents
+  + High: crmd: Do not ignore action timeouts based on FSA state
+  + High: crmd: Ensure we dont get stuck in S_PENDING if we loose an election to someone that never talks to us again
+  + High: crmd: Fix memory leaks exposed by valgrind
+  + High: crmd: Remove race condition that could lead to multiple instances of a clone being active on a machine
+  + High: crmd: Send erase_status_tag() calls to the local CIB when the DC is fenced, since there is no DC to accept them
+  + High: crmd: Use global fencing notifications to prevent secondary fencing operations of the DC
+  + High: fencing: Account for stonith_get_info() always returning a pointer to the same static buffer
+  + High: PE: Allow startup probes to be disabled - their calculation is a major bottleneck for very large clusters
+  + High: PE: Bug lf#2317 - Avoid needless restart of primitive depending on a clone
+  + High: PE: Bug lf#2358 - Fix master-master anti-colocation
+  + High: PE: Bug lf#2361 - Ensure clones observe mandatory ordering constraints if the LHS is unrunnable
+  + High: PE: Bug lf#2383 - Combine failcounts for all instances of an anonymous clone on a host
+  + High: PE: Bug lf#2384 - Fix intra-set colocation and ordering
+  + High: PE: Bug lf#2403 - Enforce mandatory promotion (colocation) constraints
+  + High: PE: Bug lf#2412 - Correctly locate clone instances by their prefix
+  + High: PE: Correctly implement optional colocation between primitives and clone resources
+  + High: PE: Do not be so quick to pull the trigger on nodes that are coming up
+  + High: PE: Fix memory leaks exposed by valgrind
+  + High: PE: Fix memory leaks reported by valgrind
+  + High: PE: Repair handling of unordered groups in RHS ordering constraints
+  + High: PE: Rewrite native_merge_weights() to avoid Fix use-after-free
+  + High: PE: Suppress duplicate ordering constraints to achieve orders of magnitude speed increases for large clusters
+  + High: Shell: add support for xml in cli
+  + High: Shell: always reload status if working with the cluster (bnc#590035)
+  + High: Shell: check timeouts also against the default-action-timeout property
+  + High: Shell: Default to using the status section from the live CIB (bnc#592762)
+  + High: Shell: edit multiple meta_attributes sets in resource management (lf#2315)
+  + High: Shell: enable comments (lf#2221)
+  + High: Shell: implement new cibstatus interface and commands (bnc#580492)
+  + High: Shell: improve configure commit (lf#2336)
+  + High: Shell: new cibstatus import command (bnc#585471)
+  + High: Shell: new configure filter command
+  + High: Shell: restore error reporting in options
+  + High: Shell: split shell into modules
+  + High: Shell: support for the utilization element (old patch for the new structure)
+  + High: Shell: update previous node lookup procedure to include the id where necessary
+  + High: Tools: crm_mon - fix memory leaks exposed by valgrind
+
+* Thu Feb 11 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.1-0.1-60b7753f7310.hg
+- Update the tarball from upstream to version 60b7753f7310
+  + First public release of the 1.1 series
+
+* Wed Dec 9 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-5
+- Include patch of changeset 66b7bfd467f3:
+  Some clients such as gfs_controld want a cluster name, allow one to be specified in corosync.conf
+
+* Thu Oct 29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-4
+- Include the fixes from CoroSync integration testing
+- Move the resource templates - they are not documentation
+- Ensure documentation is placed in a standard location
+- Exclude documentation that is included elsewhere in the package
+
+- Update the tarball from upstream to version ee19d8e83c2a
+  + High: cib: Correctly clean up when both plaintext and tls remote ports are requested
+  + High: PE: Bug bnc#515172 - Provide better defaults for lt(e) and gt(e) comparisions
+  + High: PE: Bug lf#2197 - Allow master instances placemaker to be influenced by colocation constraints
+  + High: PE: Make sure promote/demote pseudo actions are created correctly
+  + High: PE: Prevent target-role from promoting more than master-max instances
+  + High: ais: Bug lf#2199 - Prevent expected-quorum-votes from being populated with garbage
+  + High: ais: Prevent deadlock - dont try to release IPC message if the connection failed
+  + High: cib: For validation errors, send back the full CIB so the client can display the errors
+  + High: cib: Prevent use-after-free for remote plaintext connections
+  + High: crmd: Bug lf#2201 - Prevent use-of-NULL when running heartbeat
+  + High: Core: Bug lf#2169 - Allow dtd/schema validation to be disabled
+  + High: PE: Bug lf#2106 - Not all anonymous clone children are restarted after configuration change
+  + High: PE: Bug lf#2170 - stop-all-resources option had no effect
+  + High: PE: Bug lf#2171 - Prevent groups from starting if they depend on a complex resource which cannot
+  + High: PE: Disable resource management if stonith-enabled=true and no stonith resources are defined
+  + High: PE: Do not include master score if it would prevent allocation
+  + High: ais: Avoid excessive load by checking for dead children every 1s (instead of 100ms)
+  + High: ais: Bug rh#525589 - Prevent shutdown deadlocks when running on CoroSync
+  + High: ais: Gracefully handle changes to the AIS nodeid
+  + High: crmd: Bug bnc#527530 - Wait for the transition to complete before leaving S_TRANSITION_ENGINE
+  + High: crmd: Prevent use-after-free with LOG_DEBUG_3
+  + Medium: xml: Mask the "symmetrical" attribute on rsc_colocation constraints (bnc#540672)
+  + Medium (bnc#520707): Tools: crm: new templates ocfs2 and clvm
+  + Medium: Build: Invert the disable ais/heartbeat logic so that --without (ais|heartbeat) is available to rpmbuild
+  + Medium: PE: Bug lf#2178 - Indicate unmanaged clones
+  + Medium: PE: Bug lf#2180 - Include node information for all failed ops
+  + Medium: PE: Bug lf#2189 - Incorrect error message when unpacking simple ordering constraint
+  + Medium: PE: Correctly log resources that would like to start but cannot
+  + Medium: PE: Stop ptest from logging to syslog
+  + Medium: ais: Include version details in plugin name
+  + Medium: crmd: Requery the resource metadata after every start operation
+
+* Fri Oct  9 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.5-3
+- rebuilt with new net-snmp
+
+* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 1.0.5-2.1
+- rebuilt with new openssl
+
+* Wed Aug 19 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-2
+- Add versioned perl dependancy as specified by
+    https://fedoraproject.org/wiki/Packaging/Perl#Packages_that_link_to_libperl
+- No longer remove RPATH data, it prevents us finding libperl.so and no other
+  libraries were being hardcoded
+- Compile in support for heartbeat
+- Conditionally add heartbeat-devel and corosynclib-devel to the -devel requirements 
+  depending on which stacks are supported
+
+* Mon Aug 17 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-1
+- Add dependancy on resource-agents
+- Use the version of the configure macro that supplies --prefix, --libdir, etc
+- Update the tarball from upstream to version 462f1569a437 (Pacemaker 1.0.5 final)
+  + High: Tools: crm_resource - Advertise --move instead of --migrate
+  + Medium: Extra: New node connectivity RA that uses system ping and attrd_updater
+  + Medium: crmd: Note that dc-deadtime can be used to mask the brokeness of some switches
+
+* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.0.5-0.7.c9120a53a6ae.hg
+- Use bzipped upstream tarball.
+
+* Wed Jul  29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.6.c9120a53a6ae.hg
+- Add back missing build auto* dependancies
+- Minor cleanups to the install directive
+
+* Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.5.c9120a53a6ae.hg
+- Add a leading zero to the revision when alphatag is used
+
+* Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.4.c9120a53a6ae.hg
+- Incorporate the feedback from the cluster-glue review
+- Realistically, the version is a 1.0.5 pre-release
+- Use the global directive instead of define for variables
+- Use the haclient/hacluster group/user instead of daemon
+- Use the _configure macro
+- Fix install dependancies
+
+* Fri Jul  24 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-3
+- Include an AUTHORS and license file in each package
+- Change the library package name to pacemaker-libs to be more 
+  Fedora compliant
+- Remove execute permissions from xml related files
+- Reference the new cluster-glue devel package name
+- Update the tarball from upstream to version c9120a53a6ae
+  + High: PE: Only prevent migration if the clone dependancy is stopping/starting on the target node
+  + High: PE: Bug 2160 - Dont shuffle clones due to colocation
+  + High: PE: New implementation of the resource migration (not stop/start) logic
+  + Medium: Tools: crm_resource - Prevent use-of-NULL by requiring a resource name for the -A and -a options
+  + Medium: PE: Prevent use-of-NULL in find_first_action()
+  + Low: Build: Include licensing files
+
+* Tue Jul 14 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-2
+- Reference authors from the project AUTHORS file instead of listing in description
+- Change Source0 to reference the project's Mercurial repo
+- Cleaned up the summaries and descriptions
+- Incorporate the results of Fedora package self-review
+
+* Tue Jul 14 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-1
+- Initial checkin