source: projects/specs/branches/6/p/pacemaker/pacemaker-vl.spec @ 3022

Revision 3022, 20.1 KB checked in by Takemikaduchi, 13 years ago (diff)

libxml++: rebuild vine5 package, others: rebuild with openssl-1.0.0d

Line 
1%global gname haclient
2%global uname hacluster
3%global pcmk_docdir %{_docdir}/%{name}
4
5# Supported cluster stacks, must support at least one
6%bcond_without ais
7%bcond_with heartbeat
8
9# ESMTP is not available in RHEL, only in EPEL. Allow people to build
10# the RPM without ESMTP in case they choose not to use EPEL packages
11%bcond_without esmtp
12
13# SNMP trap support only works with Net-SNMP 5.4 and above
14%bcond_without snmp
15
16# We generate some docs using Publican, but its not available everywhere
17%bcond_with publican
18
19%global specversion 3
20%global upstream_version Pacemaker-1.1.2
21%global upstream_prefix Pacemaker-1-1-
22
23# Keep around for when/if required
24#global alphatag %{upstream_version}.hg
25
26%global pcmk_release %{?alphatag:0.}%{specversion}%{?alphatag:.%{alphatag}}%{?dist}
27
28# When downloading directly from Mercurial, it will automatically add a prefix
29# Invoking 'hg archive' wont but you can add one with:
30# hg archive -t tgz -p "$upstream_prefix-$upstream_version" -r $upstream_version $upstream_version.tar.gz
31
32Name:           pacemaker
33Summary:        Scalable High-Availability cluster resource manager
34Summary(ja):    スケーラブル高可用クラスタリソースマネージャ
35Version:        1.1.2
36Release:        2%{?_dist_release}
37License:        GPLv2+ and LGPLv2+
38Url:            http://www.clusterlabs.org
39Group:          System Environment/Daemons
40Source0:        http://hg.clusterlabs.org/pacemaker/1.1/archive/%{upstream_version}.tar.bz2
41Patch1:         bug-lf-2401.patch
42Patch2:         doc-validation.patch
43Patch3:         pacemaker-1.1.2-fix-docbook-detection.patch
44Patch4:         pacemaker-1.1.2-dont-use-find-to-detect-host-env.patch
45BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
46AutoReqProv:    on
47Requires(pre):  cluster-glue
48Requires:       resource-agents
49Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
50
51# Required for core functionality
52BuildRequires:  automake autoconf libtool pkgconfig libtool-ltdl-devel python-devel
53BuildRequires:  glib2-devel cluster-glue-libs-devel libxml2-devel libxslt-devel
54BuildRequires:  pkgconfig python-devel gcc-c++ bzip2-devel gnutls-devel pam-devel
55
56# Enables optional functionality
57BuildRequires:  help2man ncurses-devel openssl-devel
58
59%if %{with esmtp}
60BuildRequires:  libesmtp-devel
61%endif
62
63%if %{with snmp}
64BuildRequires:  net-snmp-devel >= 5.4
65Requires:       net-snmp
66%endif
67
68%if %{with ais}
69BuildRequires:  corosynclib-devel
70%endif
71
72%if %{with heartbeat}
73BuildRequires:  heartbeat-devel heartbeat-libs
74%endif
75
76%if %{with publican}
77%ifarch i386 x86_64
78BuildRequires:  publican
79%endif
80%endif
81
82%description
83Pacemaker is an advanced, scalable High-Availability cluster resource
84manager for Linux-HA (Heartbeat) and/or OpenAIS.
85
86It supports "n-node" clusters with significant capabilities for
87managing resources and dependencies.
88
89It will run scripts at initialization, when machines go up or down,
90when related resources fail and can be configured to periodically check
91resource health.
92
93%package -n pacemaker-libs
94License:        GPLv2+ and LGPLv2+
95Summary:        Libraries used by the Pacemaker cluster resource manager and its clients
96Summary(ja):    Libraries used by the Pacemaker cluster resource manager and its clients
97Group:          System Environment/Daemons
98Requires:       %{name} = %{version}-%{release}
99
100%description -n pacemaker-libs
101Pacemaker is an advanced, scalable High-Availability cluster resource
102manager for Linux-HA (Heartbeat) and/or OpenAIS.
103
104It supports "n-node" clusters with significant capabilities for
105managing resources and dependencies.
106
107It will run scripts at initialization, when machines go up or down,
108when related resources fail and can be configured to periodically check
109resource health.
110
111%package -n pacemaker-libs-devel
112License:        GPLv2+ and LGPLv2+
113Summary:        Pacemaker development package
114Summary(ja):    Pacemaker 開発パッケージ
115Group:          Development/Libraries
116Requires:       %{name}-libs = %{version}-%{release}
117Requires:       cluster-glue-libs-devel
118%if %{with ais}
119Requires:       corosynclib-devel
120%endif
121%if %{with heartbeat}
122Requires:       heartbeat-devel
123%endif
124
125%description -n pacemaker-libs-devel
126Headers and shared libraries for developing tools for Pacemaker.
127
128Pacemaker is an advanced, scalable High-Availability cluster resource
129manager for Linux-HA (Heartbeat) and/or OpenAIS.
130
131It supports "n-node" clusters with significant capabilities for
132managing resources and dependencies.
133
134It will run scripts at initialization, when machines go up or down,
135when related resources fail and can be configured to periodically check
136resource health.
137
138%package        cts
139License:        GPLv2+ and LGPLv2+
140Summary:        Test framework for cluster-related technologies like Pacemaker
141Summary(ja):    Test framework for cluster-related technologies like Pacemaker
142Group:          System Environment/Daemons
143Requires:       python
144
145%description    cts
146Test framework for cluster-related technologies like Pacemaker
147
148%package        doc
149License:        GPLv2+ and LGPLv2+
150Summary:        Documentation for Pacemaker
151Summary(ja):    Documentation for Pacemaker
152Group:          Documentation
153
154%description    doc
155Documentation for Pacemaker.
156
157Pacemaker is an advanced, scalable High-Availability cluster resource
158manager for OpenAIS/Corosync.
159
160It supports "n-node" clusters with significant capabilities for
161managing resources and dependencies.
162
163It will run scripts at initialization, when machines go up or down,
164when related resources fail and can be configured to periodically check
165resource health.
166
167%prep
168%setup -q -n %{upstream_prefix}%{upstream_version}
169%patch1 -p1
170%patch2 -p0
171%patch3 -p1
172%patch4 -p1
173
174%build
175./autogen.sh
176%{configure}                    \
177        %{!?_with_heartbeat:--without-hearbeat} \
178        %{?_without_ais}        \
179        %{?_without_esmtp}      \
180        %{?_without_snmp}       \
181        --disable-ansi          \
182        --docdir=%{pcmk_docdir} \
183        --localstatedir=%{_var} \
184        --enable-fatal-warnings=no
185
186make %{_smp_mflags}
187
188%install
189rm -rf %{buildroot}
190make DESTDIR=%{buildroot} install
191
192# Scripts that need should be executable
193chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/CTSlab.py
194chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/extracttests.py
195
196# These are not actually scripts
197find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x
198find %{buildroot} -name '*.xsl' -type f -print0 | xargs -0 chmod a-x
199find %{buildroot} -name '*.rng' -type f -print0 | xargs -0 chmod a-x
200find %{buildroot} -name '*.dtd' -type f -print0 | xargs -0 chmod a-x
201 
202# Dont package static libs or compiled python
203find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f
204find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f
205
206# Don't package these either
207rm -f %{buildroot}/%{_libdir}/heartbeat/hb2openais-helper.py
208rm -f %{buildroot}/%{_libdir}/heartbeat/crm_primitive.py
209rm -f %{buildroot}/%{_libdir}/service_crm.so
210rm -f %{buildroot}/usr/lib/ocf/resource.d/pacemaker/pingd
211
212%clean
213rm -rf %{buildroot}
214
215%post -n pacemaker-libs -p /sbin/ldconfig
216
217%postun -n pacemaker-libs -p /sbin/ldconfig
218
219%files
220###########################################################
221%defattr(-,root,root)
222
223%exclude %{_datadir}/pacemaker/tests
224
225%{_datadir}/pacemaker
226%{_datadir}/snmp/mibs/PCMK-MIB.txt
227%{_libdir}/heartbeat/*
228%{_sbindir}/cibadmin
229%{_sbindir}/crm_attribute
230%{_sbindir}/crm_diff
231%{_sbindir}/crm_failcount
232%{_sbindir}/crm_master
233%{_sbindir}/crm_mon
234%{_sbindir}/crm
235%{_sbindir}/crm_simulate
236%{_sbindir}/crm_resource
237%{_sbindir}/crm_report
238%{_sbindir}/crm_standby
239%{_sbindir}/crm_verify
240%{_sbindir}/crmadmin
241%{_sbindir}/iso8601
242%{_sbindir}/attrd_updater
243%{_sbindir}/ptest
244%{_sbindir}/crm_shadow
245%{_sbindir}/cibpipe
246%{_sbindir}/crm_node
247%{_sbindir}/fence_legacy
248%{_sbindir}/stonith_admin
249%{python_sitelib}/crm
250#%{_mandir}/man8/*.8*
251%{_mandir}
252
253%if %{with heartbeat}
254%{_sbindir}/crm_uuid
255%else
256%exclude %{_sbindir}/crm_uuid
257%endif
258
259# Packaged elsewhere
260%exclude %{_datadir}/pacemaker/tests
261
262%doc COPYING
263%doc AUTHORS
264
265%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
266%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
267%dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
268%dir /usr/lib/ocf
269%dir /usr/lib/ocf/resource.d
270/usr/lib/ocf/resource.d/pacemaker
271%if %{with ais}
272%{_libexecdir}/lcrso/pacemaker.lcrso
273%endif
274
275%files -n pacemaker-libs
276%defattr(-,root,root)
277%{_libdir}/libcib.so.*
278%{_libdir}/libcrmcommon.so.*
279%{_libdir}/libcrmcluster.so.*
280%{_libdir}/libpe_status.so.*
281%{_libdir}/libpe_rules.so.*
282%{_libdir}/libpengine.so.*
283%{_libdir}/libtransitioner.so.*
284%{_libdir}/libstonithd.so.*
285%doc COPYING.LIB
286%doc AUTHORS
287
288%files doc
289%defattr(-,root,root)
290%doc %{pcmk_docdir}
291
292%files cts
293%defattr(-,root,root)
294%{python_sitelib}/cts
295%{_datadir}/pacemaker/tests/cts
296%doc COPYING.LIB
297%doc AUTHORS
298
299%files -n pacemaker-libs-devel
300%defattr(-,root,root)
301%exclude %{_datadir}/pacemaker/tests/cts
302%{_datadir}/pacemaker/tests
303%{_includedir}/pacemaker
304%{_libdir}/*.so
305%doc COPYING.LIB
306%doc AUTHORS
307
308%changelog
309* Sun Mar 20 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.1.2-2
310- rebuild with openssl-1.0.0d
311
312* Sat Jul 10 2010 Daisuke SUZUKI <daisuke@linux.or.jp>  1.1.2-1
313- initial build for Vine Linux
314
315* Mon Jun 21 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-3
316- publican is only available as a dependancy on i386/x86_64 machines
317
318* Fri Jun 11 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-2
319- Resolves rhbz#602239 - Added patch to documentation so that it passes validation
320- High: Core: Bug lf#2401 - Backed out changeset 6e6980376f01
321
322* Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.1.2-1.1
323- Mass rebuild with perl-5.12.0
324
325* Wed May 12 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.2-1
326- Update the tarball from the upstream 1.1.2 release
327  + High: ais: Bug lf#2340 - Force rogue child processes to terminate after waiting 2.5 minutes
328  + High: ais: Bug lf#2359 - Default expected votes to 2 inside Corosync/OpenAIS plugin
329  + High: ais: Bug lf#2359 - expected-quorum-votes not correctly updated after membership change
330  + High: ais: Bug rhbz#525552 - Move non-threadsafe calls to setenv() to after the fork()
331  + High: ais: Do not count votes from offline nodes and calculate current votes before sending quorum data
332  + High: ais: Ensure the list of active processes sent to clients is always up-to-date
333  + High: ais: Fix previous commit, actually return a result in get_process_list()
334  + High: ais: Fix two more uses of getpwnam() in non-thread-safe locations
335  + High: ais: Look for the correct conf variable for turning on file logging
336  + High: ais: Need to find a better and thread-safe way to set core_uses_pid. Disable for now.
337  + High: ais: Use the threadsafe version of getpwnam
338  + High: Core: Bug lf#2414 - Prevent use-after-free reported by valgrind when doing xpath based deletions
339  + High: Core: Bump the feature set due to the new failcount expiry feature
340  + High: Core: Fix memory leak in replace_xml_child() reported by valgrind
341  + High: Core: fix memory leaks exposed by valgrind
342  + High: crmd: Bug 2401 - Improved detection of partially active peers
343  + High: crmd: Bug bnc#578644 - Improve handling of cancelled operations caused by resource cleanup
344  + High: crmd: Bug lf#2379 - Ensure the cluster terminates when the PE is not available
345  + High: crmd: Bug lf#2414 - Prevent use-after-free of the PE connection after it dies
346  + High: crmd: Bug lf#2414 - Prevent use-after-free of the stonith-ng connection
347  + High: crmd: Do not allow the target_rc to be misused by resource agents
348  + High: crmd: Do not ignore action timeouts based on FSA state
349  + High: crmd: Ensure we dont get stuck in S_PENDING if we loose an election to someone that never talks to us again
350  + High: crmd: Fix memory leaks exposed by valgrind
351  + High: crmd: Remove race condition that could lead to multiple instances of a clone being active on a machine
352  + High: crmd: Send erase_status_tag() calls to the local CIB when the DC is fenced, since there is no DC to accept them
353  + High: crmd: Use global fencing notifications to prevent secondary fencing operations of the DC
354  + High: fencing: Account for stonith_get_info() always returning a pointer to the same static buffer
355  + High: PE: Allow startup probes to be disabled - their calculation is a major bottleneck for very large clusters
356  + High: PE: Bug lf#2317 - Avoid needless restart of primitive depending on a clone
357  + High: PE: Bug lf#2358 - Fix master-master anti-colocation
358  + High: PE: Bug lf#2361 - Ensure clones observe mandatory ordering constraints if the LHS is unrunnable
359  + High: PE: Bug lf#2383 - Combine failcounts for all instances of an anonymous clone on a host
360  + High: PE: Bug lf#2384 - Fix intra-set colocation and ordering
361  + High: PE: Bug lf#2403 - Enforce mandatory promotion (colocation) constraints
362  + High: PE: Bug lf#2412 - Correctly locate clone instances by their prefix
363  + High: PE: Correctly implement optional colocation between primitives and clone resources
364  + High: PE: Do not be so quick to pull the trigger on nodes that are coming up
365  + High: PE: Fix memory leaks exposed by valgrind
366  + High: PE: Fix memory leaks reported by valgrind
367  + High: PE: Repair handling of unordered groups in RHS ordering constraints
368  + High: PE: Rewrite native_merge_weights() to avoid Fix use-after-free
369  + High: PE: Suppress duplicate ordering constraints to achieve orders of magnitude speed increases for large clusters
370  + High: Shell: add support for xml in cli
371  + High: Shell: always reload status if working with the cluster (bnc#590035)
372  + High: Shell: check timeouts also against the default-action-timeout property
373  + High: Shell: Default to using the status section from the live CIB (bnc#592762)
374  + High: Shell: edit multiple meta_attributes sets in resource management (lf#2315)
375  + High: Shell: enable comments (lf#2221)
376  + High: Shell: implement new cibstatus interface and commands (bnc#580492)
377  + High: Shell: improve configure commit (lf#2336)
378  + High: Shell: new cibstatus import command (bnc#585471)
379  + High: Shell: new configure filter command
380  + High: Shell: restore error reporting in options
381  + High: Shell: split shell into modules
382  + High: Shell: support for the utilization element (old patch for the new structure)
383  + High: Shell: update previous node lookup procedure to include the id where necessary
384  + High: Tools: crm_mon - fix memory leaks exposed by valgrind
385
386* Thu Feb 11 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.1-0.1-60b7753f7310.hg
387- Update the tarball from upstream to version 60b7753f7310
388  + First public release of the 1.1 series
389
390* Wed Dec 9 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-5
391- Include patch of changeset 66b7bfd467f3:
392  Some clients such as gfs_controld want a cluster name, allow one to be specified in corosync.conf
393
394* Thu Oct 29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-4
395- Include the fixes from CoroSync integration testing
396- Move the resource templates - they are not documentation
397- Ensure documentation is placed in a standard location
398- Exclude documentation that is included elsewhere in the package
399
400- Update the tarball from upstream to version ee19d8e83c2a
401  + High: cib: Correctly clean up when both plaintext and tls remote ports are requested
402  + High: PE: Bug bnc#515172 - Provide better defaults for lt(e) and gt(e) comparisions
403  + High: PE: Bug lf#2197 - Allow master instances placemaker to be influenced by colocation constraints
404  + High: PE: Make sure promote/demote pseudo actions are created correctly
405  + High: PE: Prevent target-role from promoting more than master-max instances
406  + High: ais: Bug lf#2199 - Prevent expected-quorum-votes from being populated with garbage
407  + High: ais: Prevent deadlock - dont try to release IPC message if the connection failed
408  + High: cib: For validation errors, send back the full CIB so the client can display the errors
409  + High: cib: Prevent use-after-free for remote plaintext connections
410  + High: crmd: Bug lf#2201 - Prevent use-of-NULL when running heartbeat
411  + High: Core: Bug lf#2169 - Allow dtd/schema validation to be disabled
412  + High: PE: Bug lf#2106 - Not all anonymous clone children are restarted after configuration change
413  + High: PE: Bug lf#2170 - stop-all-resources option had no effect
414  + High: PE: Bug lf#2171 - Prevent groups from starting if they depend on a complex resource which cannot
415  + High: PE: Disable resource management if stonith-enabled=true and no stonith resources are defined
416  + High: PE: Do not include master score if it would prevent allocation
417  + High: ais: Avoid excessive load by checking for dead children every 1s (instead of 100ms)
418  + High: ais: Bug rh#525589 - Prevent shutdown deadlocks when running on CoroSync
419  + High: ais: Gracefully handle changes to the AIS nodeid
420  + High: crmd: Bug bnc#527530 - Wait for the transition to complete before leaving S_TRANSITION_ENGINE
421  + High: crmd: Prevent use-after-free with LOG_DEBUG_3
422  + Medium: xml: Mask the "symmetrical" attribute on rsc_colocation constraints (bnc#540672)
423  + Medium (bnc#520707): Tools: crm: new templates ocfs2 and clvm
424  + Medium: Build: Invert the disable ais/heartbeat logic so that --without (ais|heartbeat) is available to rpmbuild
425  + Medium: PE: Bug lf#2178 - Indicate unmanaged clones
426  + Medium: PE: Bug lf#2180 - Include node information for all failed ops
427  + Medium: PE: Bug lf#2189 - Incorrect error message when unpacking simple ordering constraint
428  + Medium: PE: Correctly log resources that would like to start but cannot
429  + Medium: PE: Stop ptest from logging to syslog
430  + Medium: ais: Include version details in plugin name
431  + Medium: crmd: Requery the resource metadata after every start operation
432
433* Fri Oct  9 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.5-3
434- rebuilt with new net-snmp
435
436* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 1.0.5-2.1
437- rebuilt with new openssl
438
439* Wed Aug 19 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-2
440- Add versioned perl dependancy as specified by
441    https://fedoraproject.org/wiki/Packaging/Perl#Packages_that_link_to_libperl
442- No longer remove RPATH data, it prevents us finding libperl.so and no other
443  libraries were being hardcoded
444- Compile in support for heartbeat
445- Conditionally add heartbeat-devel and corosynclib-devel to the -devel requirements
446  depending on which stacks are supported
447
448* Mon Aug 17 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-1
449- Add dependancy on resource-agents
450- Use the version of the configure macro that supplies --prefix, --libdir, etc
451- Update the tarball from upstream to version 462f1569a437 (Pacemaker 1.0.5 final)
452  + High: Tools: crm_resource - Advertise --move instead of --migrate
453  + Medium: Extra: New node connectivity RA that uses system ping and attrd_updater
454  + Medium: crmd: Note that dc-deadtime can be used to mask the brokeness of some switches
455
456* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.0.5-0.7.c9120a53a6ae.hg
457- Use bzipped upstream tarball.
458
459* Wed Jul  29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.6.c9120a53a6ae.hg
460- Add back missing build auto* dependancies
461- Minor cleanups to the install directive
462
463* Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.5.c9120a53a6ae.hg
464- Add a leading zero to the revision when alphatag is used
465
466* Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.4.c9120a53a6ae.hg
467- Incorporate the feedback from the cluster-glue review
468- Realistically, the version is a 1.0.5 pre-release
469- Use the global directive instead of define for variables
470- Use the haclient/hacluster group/user instead of daemon
471- Use the _configure macro
472- Fix install dependancies
473
474* Fri Jul  24 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-3
475- Include an AUTHORS and license file in each package
476- Change the library package name to pacemaker-libs to be more
477  Fedora compliant
478- Remove execute permissions from xml related files
479- Reference the new cluster-glue devel package name
480- Update the tarball from upstream to version c9120a53a6ae
481  + High: PE: Only prevent migration if the clone dependancy is stopping/starting on the target node
482  + High: PE: Bug 2160 - Dont shuffle clones due to colocation
483  + High: PE: New implementation of the resource migration (not stop/start) logic
484  + Medium: Tools: crm_resource - Prevent use-of-NULL by requiring a resource name for the -A and -a options
485  + Medium: PE: Prevent use-of-NULL in find_first_action()
486  + Low: Build: Include licensing files
487
488* Tue Jul 14 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-2
489- Reference authors from the project AUTHORS file instead of listing in description
490- Change Source0 to reference the project's Mercurial repo
491- Cleaned up the summaries and descriptions
492- Incorporate the results of Fedora package self-review
493
494* Tue Jul 14 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-1
495- Initial checkin
Note: See TracBrowser for help on using the repository browser.