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: a3b9d075bc9114ff698966e57e50bb12
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
108 Shared libraries for Pacemaker.
110 %description libs -l pl.UTF-8
111 Biblioteki współdzielone Pacemakera.
114 Summary: Header files for Pacemaker libraries
115 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
116 Group: Development/Libraries
117 Requires: %{name}-libs = %{version}-%{release}
120 Header files for Pacemaker libraries.
122 %description devel -l pl.UTF-8
123 Pliki nagłówkowe bibliotek Pacemakera.
126 Summary: Static Pacemaker libraries
127 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
128 Group: Development/Libraries
129 Requires: %{name}-devel = %{version}-%{release}
132 Static Pacemaker libraries.
134 %description static -l pl.UTF-8
135 Statyczne biblioteki Pacemakera.
138 Summary: Pacemaker for Heartbeat cluster
139 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
140 Group: Applications/System
141 Requires: %{name} = %{version}-%{release}
142 Requires: heartbeat >= 3.0.6
143 Obsoletes: pacemaker < 1.1
145 %description heartbeat
146 This package allows using Pacemaker on a Heartbeat cluster.
148 %description heartbeat -l pl.UTF-8
149 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
152 Summary: Pacemaker for Corosync cluster
153 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
154 Group: Applications/System
155 Requires: %{name} = %{version}-%{release}
157 Requires: systemd-units >= 38
158 %{?with_heartbeat:%requires_eq heartbeat-libs}
160 %description corosync
161 This package allows using Pacemaker on a Corosync cluster.
163 %description corosync -l pl.UTF-8
164 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
167 Summary: Remote services manager for Pacemaker
168 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
169 Group: Applications/System
170 Requires: systemd-units >= 38
171 Requires: %{name} = %{version}-%{release}
174 This package allows running Pacemaker-managed services on 'virtual'
175 nodes without actual cluster stack. This is useful to manage services
176 in virtual machines or containers running on a Pacemaker cluster.
178 %description remote -l pl.UTF-8
179 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
180 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
181 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
182 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
185 %setup -qn pacemaker-Pacemaker-%{version}
199 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
200 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
202 --disable-fatal-warnings \
203 --disable-silent-rules \
207 --with-corosync%{!?with_corosync:=no} \
209 --with-heartbeat%{!?with_heartbeat:=no} \
210 --with-initdir=/etc/rc.d/init.d \
216 rm -rf $RPM_BUILD_ROOT
217 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
220 mibdir=%{_datadir}/mibs \
221 DESTDIR=$RPM_BUILD_ROOT
223 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
225 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
227 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
229 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
230 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
234 rm -rf $RPM_BUILD_ROOT
237 %groupadd -g 60 haclient
238 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
241 /sbin/chkconfig --add %{name}
242 %service %{name} restart "%{name} daemon"
243 %systemd_post %{name}.service
246 if [ "$1" = "0" ]; then
247 %service %{name} stop
248 /sbin/chkconfig --del %{name}
252 %systemd_preun %{name}.service
258 /sbin/chkconfig --add pacemaker_remote
259 %service pacemaker_remote restart "pacemaker_remote daemon"
260 %systemd_post pacemaker_remote.service
263 %systemd_preun %{name}.service
268 %post libs -p /sbin/ldconfig
269 %postun libs -p /sbin/ldconfig
272 %defattr(644,root,root,755)
273 %doc ChangeLog README.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
274 %attr(755,root,root) %{_sbindir}/attrd_updater
275 %attr(755,root,root) %{_sbindir}/cibadmin
276 %attr(755,root,root) %{_sbindir}/crm_attribute
277 %attr(755,root,root) %{_sbindir}/crm_diff
278 %attr(755,root,root) %{_sbindir}/crm_error
279 %attr(755,root,root) %{_sbindir}/crm_failcount
280 %attr(755,root,root) %{_sbindir}/crm_master
281 %attr(755,root,root) %{_sbindir}/crm_mon
282 %attr(755,root,root) %{_sbindir}/crm_node
283 %attr(755,root,root) %{_sbindir}/crm_report
284 %attr(755,root,root) %{_sbindir}/crm_resource
285 %attr(755,root,root) %{_sbindir}/crm_simulate
286 %attr(755,root,root) %{_sbindir}/crm_shadow
287 %attr(755,root,root) %{_sbindir}/crm_standby
288 %attr(755,root,root) %{_sbindir}/crm_ticket
289 %attr(755,root,root) %{_sbindir}/crm_verify
290 %attr(755,root,root) %{_sbindir}/crmadmin
291 %attr(755,root,root) %{_sbindir}/fence_legacy
292 %attr(755,root,root) %{_sbindir}/fence_pcmk
293 %attr(755,root,root) %{_sbindir}/iso8601
294 %attr(755,root,root) %{_sbindir}/stonith_admin
295 %if %{with servicelog}
297 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
299 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
301 %dir %{_libdir}/%{name}
302 %attr(755,root,root) %{_libdir}/%{name}/attrd
303 %attr(755,root,root) %{_libdir}/%{name}/cib
304 %attr(755,root,root) %{_libdir}/%{name}/cibmon
305 %attr(755,root,root) %{_libdir}/%{name}/crmd
306 %attr(755,root,root) %{_libdir}/%{name}/lrmd
307 %attr(755,root,root) %{_libdir}/%{name}/lrmd_internal_ctl
308 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
309 %attr(755,root,root) %{_libdir}/%{name}/pengine
310 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
311 %attr(755,root,root) %{_libdir}/%{name}/stonithd
312 %{_datadir}/pacemaker
313 %{_datadir}/mibs/PCMK-MIB.txt
315 %{systemdunitdir}/crm_mon.service
316 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
317 %ghost /var/log/pacemaker.log
318 %{_mandir}/man7/crmd.7*
319 %{_mandir}/man7/ocf_pacemaker_*.7*
320 %{_mandir}/man7/pengine.7*
321 %{_mandir}/man7/stonithd.7*
322 %{_mandir}/man8/attrd_updater.8*
323 %{_mandir}/man8/cibadmin.8*
324 %{_mandir}/man8/crm_attribute.8*
325 %{_mandir}/man8/crm_diff.8*
326 %{_mandir}/man8/crm_error.8*
327 %{_mandir}/man8/crm_failcount.8*
328 %{_mandir}/man8/crm_master.8*
329 %{_mandir}/man8/crm_mon.8*
330 %{_mandir}/man8/crm_node.8*
331 %{_mandir}/man8/crm_report.8*
332 %{_mandir}/man8/crm_resource.8*
333 %{_mandir}/man8/crm_shadow.8*
334 %{_mandir}/man8/crm_simulate.8*
335 %{_mandir}/man8/crm_standby.8*
336 %{_mandir}/man8/crm_ticket.8*
337 %{_mandir}/man8/crm_verify.8*
338 %{_mandir}/man8/crmadmin.8*
339 %{_mandir}/man8/fence_legacy.8*
340 %{_mandir}/man8/fence_pcmk.8*
341 %{_mandir}/man8/iso8601.8*
342 %{_mandir}/man8/stonith_admin.8*
343 %if %{with servicelog}
344 %{_mandir}/man8/notifyServicelogEvent.8*
347 %dir %{_prefix}/lib/ocf/resource.d/.isolation
348 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
349 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
350 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
351 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
352 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
353 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
359 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
360 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
361 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
362 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
364 %dir /var/lib/%{name}
365 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
366 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
367 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
368 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
369 /usr/lib/tmpfiles.d/%{name}.conf
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
374 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
375 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
377 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
379 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
381 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
383 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
385 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.10
387 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.10
389 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
391 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
395 %defattr(644,root,root,755)
396 %attr(755,root,root) %{_libdir}/libcib.so
397 %attr(755,root,root) %{_libdir}/libcrmcluster.so
398 %attr(755,root,root) %{_libdir}/libcrmcommon.so
399 %attr(755,root,root) %{_libdir}/libcrmservice.so
400 %attr(755,root,root) %{_libdir}/liblrmd.so
401 %attr(755,root,root) %{_libdir}/libpe_rules.so
402 %attr(755,root,root) %{_libdir}/libpe_status.so
403 %attr(755,root,root) %{_libdir}/libpengine.so
404 %attr(755,root,root) %{_libdir}/libstonithd.so
405 %attr(755,root,root) %{_libdir}/libtransitioner.so
407 %{_libdir}/libcrmcluster.la
408 %{_libdir}/libcrmcommon.la
409 %{_libdir}/libcrmservice.la
410 %{_libdir}/liblrmd.la
411 %{_libdir}/libpe_rules.la
412 %{_libdir}/libpe_status.la
413 %{_libdir}/libpengine.la
414 %{_libdir}/libstonithd.la
415 %{_libdir}/libtransitioner.la
416 %{_includedir}/pacemaker
417 %{_pkgconfigdir}/pacemaker.pc
418 %{_pkgconfigdir}/pacemaker-cib.pc
419 %{_pkgconfigdir}/pacemaker-cluster.pc
420 %{_pkgconfigdir}/pacemaker-fencing.pc
421 %{_pkgconfigdir}/pacemaker-lrmd.pc
422 %{_pkgconfigdir}/pacemaker-pengine.pc
423 %{_pkgconfigdir}/pacemaker-service.pc
426 %defattr(644,root,root,755)
428 %{_libdir}/libcrmcluster.a
429 %{_libdir}/libcrmcommon.a
430 %{_libdir}/libcrmservice.a
432 %{_libdir}/libpe_rules.a
433 %{_libdir}/libpe_status.a
434 %{_libdir}/libpengine.a
435 %{_libdir}/libstonithd.a
436 %{_libdir}/libtransitioner.a
439 %defattr(644,root,root,755)
440 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
441 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
442 %{systemdunitdir}/pacemaker_remote.service
443 %{_mandir}/man8/pacemaker_remoted.8*
445 %if %{with heartbeat}
447 %defattr(644,root,root,755)
448 %attr(755,root,root) %{_sbindir}/crm_uuid
449 %{_mandir}/man8/crm_uuid.8*
454 %defattr(644,root,root,755)
455 %attr(755,root,root) %{_sbindir}/pacemakerd
456 %attr(755,root,root) /etc/rc.d/init.d/%{name}
457 %{systemdunitdir}/%{name}.service
458 %{_mandir}/man8/pacemakerd.8*