1 # TODO: publican docs (BR: publican, inkscape)
4 %bcond_without corosync # Corosync stack support
5 %bcond_without heartbeat # Heartbeat stack support
6 %bcond_without servicelog # ServiceLog support [IBM PPC specific]
7 %bcond_without ipmi # IPMI ServiceLog support [IBM PPC specific]
10 %undefine with_servicelog
12 %if %{without servicelog}
15 Summary: The scalable High-Availability cluster resource manager
16 Summary(pl.UTF-8): Skalowalny zarządca zasobów klastrów o wysokiej dostępności
20 License: GPL v2+, LGPL v2.1+
21 Group: Applications/System
22 #Source0Download: https://github.com/ClusterLabs/pacemaker/releases
23 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
24 # Source0-md5: 335dab2fd6b3a284a6bd2bbeef60c960
25 Source1: %{name}.tmpfiles
27 Source3: %{name}.service
28 Patch0: %{name}-automake.patch
29 Patch1: %{name}-manpage_xslt.patch
30 Patch2: %{name}-update.patch
31 Patch3: %{name}-man.patch
32 Patch4: %{name}-libs.patch
33 URL: http://clusterlabs.org/wiki/Main_Page
34 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
35 BuildRequires: asciidoc
36 BuildRequires: autoconf >= 2.59
37 BuildRequires: automake
39 BuildRequires: bzip2-devel
40 BuildRequires: cluster-glue-libs-devel
41 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
42 BuildRequires: dbus-devel
43 BuildRequires: docbook-style-xsl
44 BuildRequires: e2fsprogs-devel
46 BuildRequires: gettext-tools
47 BuildRequires: glib2-devel >= 2.0
48 BuildRequires: gnutls-devel
49 BuildRequires: help2man
50 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.6}
51 BuildRequires: libesmtp-devel
52 BuildRequires: libltdl-devel
53 BuildRequires: libqb-devel >= 0.13
54 %{?with_servicelog:BuildRequires: libservicelog-devel}
55 BuildRequires: libtool
56 BuildRequires: libuuid-devel
57 BuildRequires: libxml2-devel >= 2.0
58 BuildRequires: libxslt-devel
59 BuildRequires: libxslt-progs
60 BuildRequires: ncurses-devel >= 5.4
61 BuildRequires: net-snmp-devel
62 BuildRequires: pam-devel
63 BuildRequires: pciutils-devel
64 BuildRequires: pkgconfig
65 BuildRequires: python-devel
66 BuildRequires: rpm-pythonprov
67 BuildRequires: rpmbuild(macros) >= 1.644
68 BuildRequires: systemd-units
70 Requires: %{name}-libs = %{version}-%{release}
71 Requires: cluster-glue
72 Requires: resource-agents
73 Provides: group(haclient)
74 Provides: user(hacluster)
75 Suggests: pacemaker-shell
76 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79 Pacemaker makes use of your cluster infrastructure (either
80 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
81 of the services (aka. resources) you want the cluster to provide.
83 It can do this for clusters of practically any size and comes with a
84 powerful dependency model that allows the administrator to accurately
85 express the relationships (both ordering and location) between the
88 Pacemaker was formely a part of Heartbeat.
90 %description -l pl.UTF-8
91 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
92 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
93 usług (tzw. zasobów), które ma udostępniać klaster.
95 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
96 zawiera elastyczny model zależności, pozwalający administratorowi
97 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
98 między zasobami klastra.
100 Pacemaker był wcześniej częścią pakietu Heartbeat.
103 Summary: Pacemaker libraries
104 Summary(pl.UTF-8): Biblioteki Pacemakera
106 Requires: libqb >= 0.13
109 Shared libraries for Pacemaker.
111 %description libs -l pl.UTF-8
112 Biblioteki współdzielone Pacemakera.
115 Summary: Header files for Pacemaker libraries
116 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
117 Group: Development/Libraries
118 Requires: %{name}-libs = %{version}-%{release}
121 Header files for Pacemaker libraries.
123 %description devel -l pl.UTF-8
124 Pliki nagłówkowe bibliotek Pacemakera.
127 Summary: Static Pacemaker libraries
128 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
129 Group: Development/Libraries
130 Requires: %{name}-devel = %{version}-%{release}
133 Static Pacemaker libraries.
135 %description static -l pl.UTF-8
136 Statyczne biblioteki Pacemakera.
139 Summary: Pacemaker for Heartbeat cluster
140 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
141 Group: Applications/System
142 Requires: %{name} = %{version}-%{release}
143 Requires: heartbeat >= 3.0.6
144 Obsoletes: pacemaker < 1.1
146 %description heartbeat
147 This package allows using Pacemaker on a Heartbeat cluster.
149 %description heartbeat -l pl.UTF-8
150 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
153 Summary: Pacemaker for Corosync cluster
154 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
155 Group: Applications/System
156 Requires: %{name} = %{version}-%{release}
158 Requires: systemd-units >= 38
159 %{?with_heartbeat:%requires_eq heartbeat-libs}
161 %description corosync
162 This package allows using Pacemaker on a Corosync cluster.
164 %description corosync -l pl.UTF-8
165 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
168 Summary: Remote services manager for Pacemaker
169 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
170 Group: Applications/System
171 Requires: systemd-units >= 38
172 Requires: %{name} = %{version}-%{release}
175 This package allows running Pacemaker-managed services on 'virtual'
176 nodes without actual cluster stack. This is useful to manage services
177 in virtual machines or containers running on a Pacemaker cluster.
179 %description remote -l pl.UTF-8
180 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
181 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
182 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
183 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
186 %setup -qn pacemaker-Pacemaker-%{version}
200 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
201 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
203 --disable-fatal-warnings \
204 --disable-silent-rules \
208 --with-corosync%{!?with_corosync:=no} \
210 --with-heartbeat%{!?with_heartbeat:=no} \
211 --with-initdir=/etc/rc.d/init.d \
217 rm -rf $RPM_BUILD_ROOT
218 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
221 mibdir=%{_datadir}/mibs \
222 DESTDIR=$RPM_BUILD_ROOT
224 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
226 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
228 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
230 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
231 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
235 rm -rf $RPM_BUILD_ROOT
238 %groupadd -g 60 haclient
239 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
242 /sbin/chkconfig --add %{name}
243 %service %{name} restart "%{name} daemon"
244 %systemd_post %{name}.service
247 if [ "$1" = "0" ]; then
248 %service %{name} stop
249 /sbin/chkconfig --del %{name}
253 %systemd_preun %{name}.service
259 /sbin/chkconfig --add pacemaker_remote
260 %service pacemaker_remote restart "pacemaker_remote daemon"
261 %systemd_post pacemaker_remote.service
264 %systemd_preun %{name}.service
269 %post libs -p /sbin/ldconfig
270 %postun libs -p /sbin/ldconfig
273 %defattr(644,root,root,755)
274 %doc ChangeLog README.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
275 %attr(755,root,root) %{_sbindir}/attrd_updater
276 %attr(755,root,root) %{_sbindir}/cibadmin
277 %attr(755,root,root) %{_sbindir}/crm_attribute
278 %attr(755,root,root) %{_sbindir}/crm_diff
279 %attr(755,root,root) %{_sbindir}/crm_error
280 %attr(755,root,root) %{_sbindir}/crm_failcount
281 %attr(755,root,root) %{_sbindir}/crm_master
282 %attr(755,root,root) %{_sbindir}/crm_mon
283 %attr(755,root,root) %{_sbindir}/crm_node
284 %attr(755,root,root) %{_sbindir}/crm_report
285 %attr(755,root,root) %{_sbindir}/crm_resource
286 %attr(755,root,root) %{_sbindir}/crm_simulate
287 %attr(755,root,root) %{_sbindir}/crm_shadow
288 %attr(755,root,root) %{_sbindir}/crm_standby
289 %attr(755,root,root) %{_sbindir}/crm_ticket
290 %attr(755,root,root) %{_sbindir}/crm_verify
291 %attr(755,root,root) %{_sbindir}/crmadmin
292 %attr(755,root,root) %{_sbindir}/fence_legacy
293 %attr(755,root,root) %{_sbindir}/fence_pcmk
294 %attr(755,root,root) %{_sbindir}/iso8601
295 %attr(755,root,root) %{_sbindir}/stonith_admin
296 %if %{with servicelog}
298 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
300 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
302 %dir %{_libexecdir}/%{name}
303 %attr(755,root,root) %{_libexecdir}/%{name}/attrd
304 %attr(755,root,root) %{_libexecdir}/%{name}/cib
305 %attr(755,root,root) %{_libexecdir}/%{name}/cibmon
306 %attr(755,root,root) %{_libexecdir}/%{name}/crmd
307 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd
308 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_internal_ctl
309 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_test
310 %attr(755,root,root) %{_libexecdir}/%{name}/pengine
311 %attr(755,root,root) %{_libexecdir}/%{name}/stonith-test
312 %attr(755,root,root) %{_libexecdir}/%{name}/stonithd
313 %{_datadir}/pacemaker
314 %{_datadir}/mibs/PCMK-MIB.txt
316 %{systemdunitdir}/crm_mon.service
317 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
318 %ghost /var/log/pacemaker.log
319 %{_mandir}/man7/crmd.7*
320 %{_mandir}/man7/ocf_pacemaker_*.7*
321 %{_mandir}/man7/pengine.7*
322 %{_mandir}/man7/stonithd.7*
323 %{_mandir}/man8/attrd_updater.8*
324 %{_mandir}/man8/cibadmin.8*
325 %{_mandir}/man8/crm_attribute.8*
326 %{_mandir}/man8/crm_diff.8*
327 %{_mandir}/man8/crm_error.8*
328 %{_mandir}/man8/crm_failcount.8*
329 %{_mandir}/man8/crm_master.8*
330 %{_mandir}/man8/crm_mon.8*
331 %{_mandir}/man8/crm_node.8*
332 %{_mandir}/man8/crm_report.8*
333 %{_mandir}/man8/crm_resource.8*
334 %{_mandir}/man8/crm_shadow.8*
335 %{_mandir}/man8/crm_simulate.8*
336 %{_mandir}/man8/crm_standby.8*
337 %{_mandir}/man8/crm_ticket.8*
338 %{_mandir}/man8/crm_verify.8*
339 %{_mandir}/man8/crmadmin.8*
340 %{_mandir}/man8/fence_legacy.8*
341 %{_mandir}/man8/fence_pcmk.8*
342 %{_mandir}/man8/iso8601.8*
343 %{_mandir}/man8/stonith_admin.8*
344 %if %{with servicelog}
345 %{_mandir}/man8/notifyServicelogEvent.8*
348 %dir %{_prefix}/lib/ocf/resource.d/.isolation
349 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
350 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
351 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
352 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
353 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
359 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
360 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ifspeed
361 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
362 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
363 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
364 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
366 %dir /var/lib/%{name}
367 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
368 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
369 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
370 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
371 /usr/lib/tmpfiles.d/%{name}.conf
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
377 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
379 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
381 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
383 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
385 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
387 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.10
389 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.10
391 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
393 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
397 %defattr(644,root,root,755)
398 %attr(755,root,root) %{_libdir}/libcib.so
399 %attr(755,root,root) %{_libdir}/libcrmcluster.so
400 %attr(755,root,root) %{_libdir}/libcrmcommon.so
401 %attr(755,root,root) %{_libdir}/libcrmservice.so
402 %attr(755,root,root) %{_libdir}/liblrmd.so
403 %attr(755,root,root) %{_libdir}/libpe_rules.so
404 %attr(755,root,root) %{_libdir}/libpe_status.so
405 %attr(755,root,root) %{_libdir}/libpengine.so
406 %attr(755,root,root) %{_libdir}/libstonithd.so
407 %attr(755,root,root) %{_libdir}/libtransitioner.so
409 %{_libdir}/libcrmcluster.la
410 %{_libdir}/libcrmcommon.la
411 %{_libdir}/libcrmservice.la
412 %{_libdir}/liblrmd.la
413 %{_libdir}/libpe_rules.la
414 %{_libdir}/libpe_status.la
415 %{_libdir}/libpengine.la
416 %{_libdir}/libstonithd.la
417 %{_libdir}/libtransitioner.la
418 %{_includedir}/pacemaker
419 %{_pkgconfigdir}/pacemaker.pc
420 %{_pkgconfigdir}/pacemaker-cib.pc
421 %{_pkgconfigdir}/pacemaker-cluster.pc
422 %{_pkgconfigdir}/pacemaker-fencing.pc
423 %{_pkgconfigdir}/pacemaker-lrmd.pc
424 %{_pkgconfigdir}/pacemaker-pengine.pc
425 %{_pkgconfigdir}/pacemaker-service.pc
428 %defattr(644,root,root,755)
430 %{_libdir}/libcrmcluster.a
431 %{_libdir}/libcrmcommon.a
432 %{_libdir}/libcrmservice.a
434 %{_libdir}/libpe_rules.a
435 %{_libdir}/libpe_status.a
436 %{_libdir}/libpengine.a
437 %{_libdir}/libstonithd.a
438 %{_libdir}/libtransitioner.a
441 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
443 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
444 %{systemdunitdir}/pacemaker_remote.service
445 %{_mandir}/man8/pacemaker_remoted.8*
447 %if %{with heartbeat}
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_sbindir}/crm_uuid
451 %{_mandir}/man8/crm_uuid.8*
456 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_sbindir}/pacemakerd
458 %attr(755,root,root) /etc/rc.d/init.d/%{name}
459 %{systemdunitdir}/%{name}.service
460 %{_mandir}/man8/pacemakerd.8*