123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495 |
- %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: 2%{?_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
- * Sun Mar 20 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.1.2-2
- - rebuild with openssl-1.0.0d
- * 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
|