2 # - Source2 vs upstream provided pacemaker.service file
3 # - readd pacemaker_remote.init or drop SysV completely
6 %bcond_without corosync # Corosync stack support
7 %bcond_without servicelog # ServiceLog support [IBM PPC specific]
8 %bcond_without ipmi # IPMI ServiceLog support [IBM PPC specific]
9 %bcond_without doc # documentation
12 %undefine with_servicelog
14 %if %{without servicelog}
17 Summary: The scalable High-Availability cluster resource manager
18 Summary(pl.UTF-8): Skalowalny zarządca zasobów klastrów o wysokiej dostępności
22 License: GPL v2+, LGPL v2.1+
23 Group: Applications/System
24 #Source0Download: https://github.com/ClusterLabs/pacemaker/releases
25 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
26 # Source0-md5: 544c832d5e3d136f74822d89f31f8110
27 Source1: %{name}.tmpfiles
29 Source3: %{name}.service
30 Patch0: %{name}-link.patch
31 Patch1: %{name}-manpage_xslt.patch
32 Patch2: %{name}-update.patch
33 URL: https://wiki.clusterlabs.org/wiki/Pacemaker
34 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
35 BuildRequires: asciidoc
36 BuildRequires: autoconf >= 2.64
37 BuildRequires: automake >= 1:1.11
38 BuildRequires: bzip2-devel
39 BuildRequires: cluster-glue-libs-devel
40 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
41 BuildRequires: dbus-devel
42 BuildRequires: docbook-style-xsl
43 BuildRequires: gettext-tools
44 BuildRequires: glib2-devel >= 1:2.32.0
45 BuildRequires: gnutls-devel >= 2.12.0
46 BuildRequires: help2man
47 BuildRequires: libltdl-devel
48 BuildRequires: libqb-devel >= 0.17.0
49 %{?with_servicelog:BuildRequires: libservicelog-devel}
50 BuildRequires: libtool >= 2:2
51 BuildRequires: libuuid-devel
52 BuildRequires: libxml2-devel >= 2.0
53 BuildRequires: libxslt-devel
54 BuildRequires: libxslt-progs
55 BuildRequires: ncurses-devel >= 5.4
56 BuildRequires: pam-devel
57 BuildRequires: pkgconfig
58 BuildRequires: python3-devel >= 1:3.2
59 BuildRequires: rpm-pythonprov
60 BuildRequires: rpmbuild(macros) >= 1.644
61 BuildRequires: systemd-units
63 BuildRequires: inkscape >= 1.0
64 BuildRequires: publican
66 Requires: %{name}-libs = %{version}-%{release}
67 Requires: cluster-glue
68 Requires: resource-agents
69 Suggests: pacemaker-shell
70 Provides: group(haclient)
71 Provides: user(hacluster)
72 Obsoletes: pacemaker-heartbeat < 2.0
73 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76 Pacemaker makes use of your cluster infrastructure (either
77 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
78 of the services (aka. resources) you want the cluster to provide.
80 It can do this for clusters of practically any size and comes with a
81 powerful dependency model that allows the administrator to accurately
82 express the relationships (both ordering and location) between the
85 Pacemaker was formely a part of Heartbeat.
87 %description -l pl.UTF-8
88 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
89 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
90 usług (tzw. zasobów), które ma udostępniać klaster.
92 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
93 zawiera elastyczny model zależności, pozwalający administratorowi
94 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
95 między zasobami klastra.
97 Pacemaker był wcześniej częścią pakietu Heartbeat.
100 Summary: Pacemaker libraries
101 Summary(pl.UTF-8): Biblioteki Pacemakera
103 Requires: glib2 >= 1:2.32.0
104 Requires: gnutls-libs >= 2.12.0
105 Requires: libqb >= 0.17.0
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}
118 Requires: bzip2-devel
120 Requires: glib2-devel >= 1:2.32.0
121 Requires: gnutls-devel >= 2.12.0
122 Requires: libqb-devel >= 0.17.0
123 Requires: libxml2-devel >= 2.0
124 Requires: libxslt-devel
125 Requires: libuuid-devel
126 Requires: ncurses-devel
129 Header files for Pacemaker libraries.
131 %description devel -l pl.UTF-8
132 Pliki nagłówkowe bibliotek Pacemakera.
135 Summary: Static Pacemaker libraries
136 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
137 Group: Development/Libraries
138 Requires: %{name}-devel = %{version}-%{release}
141 Static Pacemaker libraries.
143 %description static -l pl.UTF-8
144 Statyczne biblioteki Pacemakera.
147 Summary: Remote services manager for Pacemaker
148 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
149 Group: Applications/System
150 Requires: systemd-units >= 38
151 Requires: %{name} = %{version}-%{release}
154 This package allows running Pacemaker-managed services on 'virtual'
155 nodes without actual cluster stack. This is useful to manage services
156 in virtual machines or containers running on a Pacemaker cluster.
158 %description remote -l pl.UTF-8
159 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
160 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
161 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
162 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
165 Summary: Pacemaker for Corosync cluster
166 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
167 Group: Applications/System
168 Requires: %{name} = %{version}-%{release}
169 Requires: corosync >= 2.0
170 Requires: systemd-units >= 38
172 %description corosync
173 This package allows using Pacemaker on a Corosync cluster.
175 %description corosync -l pl.UTF-8
176 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
179 Summary: Pacemaker documentation
180 Summary(pl.UTF-8): Dokumentacja do Pacemakera
184 Pacemaker documentation.
186 %description doc -l pl.UTF-8
187 Dokumentacja do Pacemakera.
190 %setup -qn pacemaker-Pacemaker-%{version}
202 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
204 PYTHON=%{__python3} \
205 --disable-fatal-warnings \
206 --disable-silent-rules \
209 --with-corosync%{!?with_corosync:=no} \
210 --with-initdir=/etc/rc.d/init.d
215 rm -rf $RPM_BUILD_ROOT
216 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
219 mibdir=%{_datadir}/mibs \
220 DESTDIR=$RPM_BUILD_ROOT
222 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
224 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/pacemaker/tests
226 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker/{COPYING,README.markdown,crm_fencing.*,licenses}
228 install -D %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{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/pacemaker/cores -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 %systemd_post pacemaker_remote.service
262 %systemd_preun %{name}.service
267 %post libs -p /sbin/ldconfig
268 %postun libs -p /sbin/ldconfig
271 %defattr(644,root,root,755)
272 %doc ChangeLog README.markdown doc/*.html doc/security.txt
273 %attr(755,root,root) %{_sbindir}/attrd_updater
274 %attr(755,root,root) %{_sbindir}/cibadmin
275 %attr(755,root,root) %{_sbindir}/crm_attribute
276 %attr(755,root,root) %{_sbindir}/crm_diff
277 %attr(755,root,root) %{_sbindir}/crm_error
278 %attr(755,root,root) %{_sbindir}/crm_failcount
279 %attr(755,root,root) %{_sbindir}/crm_master
280 %attr(755,root,root) %{_sbindir}/crm_mon
281 %attr(755,root,root) %{_sbindir}/crm_node
282 %attr(755,root,root) %{_sbindir}/crm_report
283 %attr(755,root,root) %{_sbindir}/crm_resource
284 %attr(755,root,root) %{_sbindir}/crm_rule
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_watchdog
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 %{_libexecdir}/%{name}
302 %attr(755,root,root) %{_libexecdir}/%{name}/cts-exec-helper
303 %attr(755,root,root) %{_libexecdir}/%{name}/cts-fence-helper
304 %attr(755,root,root) %{_libexecdir}/%{name}/cts-log-watcher
305 %attr(755,root,root) %{_libexecdir}/%{name}/cts-support
306 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-attrd
307 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-based
308 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-controld
309 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-execd
310 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-fenced
311 %attr(755,root,root) %{_libexecdir}/%{name}/pacemaker-schedulerd
312 %{_datadir}/pacemaker
313 %{_datadir}/mibs/PCMK-MIB.txt
314 %{py3_sitescriptdir}/cts
315 %{systemdunitdir}/crm_mon.service
316 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
317 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/crm_mon
318 %attr(750,root,haclient) %dir %{_sysconfdir}/pacemaker
319 %ghost /var/log/pacemaker.log
320 %{_mandir}/man7/ocf_pacemaker_*.7*
321 %{_mandir}/man7/pacemaker-controld.7*
322 %{_mandir}/man7/pacemaker-fenced.7*
323 %{_mandir}/man7/pacemaker-schedulerd.7*
324 %{_mandir}/man8/attrd_updater.8*
325 %{_mandir}/man8/cibadmin.8*
326 %{_mandir}/man8/crm_attribute.8*
327 %{_mandir}/man8/crm_diff.8*
328 %{_mandir}/man8/crm_error.8*
329 %{_mandir}/man8/crm_failcount.8*
330 %{_mandir}/man8/crm_master.8*
331 %{_mandir}/man8/crm_mon.8*
332 %{_mandir}/man8/crm_node.8*
333 %{_mandir}/man8/crm_report.8*
334 %{_mandir}/man8/crm_resource.8*
335 %{_mandir}/man8/crm_rule.8*
336 %{_mandir}/man8/crm_shadow.8*
337 %{_mandir}/man8/crm_simulate.8*
338 %{_mandir}/man8/crm_standby.8*
339 %{_mandir}/man8/crm_ticket.8*
340 %{_mandir}/man8/crm_verify.8*
341 %{_mandir}/man8/crmadmin.8*
342 %{_mandir}/man8/fence_legacy.8*
343 %{_mandir}/man8/fence_watchdog.8*
344 %{_mandir}/man8/iso8601.8*
345 %{_mandir}/man8/stonith_admin.8*
346 %if %{with servicelog}
348 %{_mandir}/man8/ipmiservicelogd.8*
350 %{_mandir}/man8/notifyServicelogEvent.8*
353 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthIOWait
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
359 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
360 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
361 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
362 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
363 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
364 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ifspeed
365 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
366 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
367 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
369 %dir /var/lib/%{name}
370 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
371 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
372 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cores
373 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
374 %dir %attr(770,hacluster,haclient) /var/log/%{name}
375 %dir %attr(770,hacluster,haclient) /var/log/%{name}/bundles
376 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
377 %{systemdtmpfilesdir}/%{name}.conf
380 %defattr(644,root,root,755)
381 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libcib.so.27
383 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.29
385 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.34
387 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.28
389 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.28
391 %attr(755,root,root) %{_libdir}/libpacemaker.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libpacemaker.so.1
393 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.26
395 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.28
397 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
398 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.26
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_libdir}/libcib.so
403 %attr(755,root,root) %{_libdir}/libcrmcluster.so
404 %attr(755,root,root) %{_libdir}/libcrmcommon.so
405 %attr(755,root,root) %{_libdir}/libcrmservice.so
406 %attr(755,root,root) %{_libdir}/liblrmd.so
407 %attr(755,root,root) %{_libdir}/libpacemaker.so
408 %attr(755,root,root) %{_libdir}/libpe_rules.so
409 %attr(755,root,root) %{_libdir}/libpe_status.so
410 %attr(755,root,root) %{_libdir}/libstonithd.so
412 %{_libdir}/libcrmcluster.la
413 %{_libdir}/libcrmcommon.la
414 %{_libdir}/libcrmservice.la
415 %{_libdir}/liblrmd.la
416 %{_libdir}/libpacemaker.la
417 %{_libdir}/libpe_rules.la
418 %{_libdir}/libpe_status.la
419 %{_libdir}/libstonithd.la
420 %{_includedir}/pacemaker
421 %{_pkgconfigdir}/libpacemaker.pc
422 %{_pkgconfigdir}/pacemaker.pc
423 %{_pkgconfigdir}/pacemaker-cib.pc
424 %{_pkgconfigdir}/pacemaker-cluster.pc
425 %{_pkgconfigdir}/pacemaker-fencing.pc
426 %{_pkgconfigdir}/pacemaker-lrmd.pc
427 %{_pkgconfigdir}/pacemaker-pe_rules.pc
428 %{_pkgconfigdir}/pacemaker-pe_status.pc
429 %{_pkgconfigdir}/pacemaker-service.pc
430 %{_npkgconfigdir}/pacemaker-schemas.pc
433 %defattr(644,root,root,755)
435 %{_libdir}/libcrmcluster.a
436 %{_libdir}/libcrmcommon.a
437 %{_libdir}/libcrmservice.a
439 %{_libdir}/libpacemaker.a
440 %{_libdir}/libpe_rules.a
441 %{_libdir}/libpe_status.a
442 %{_libdir}/libstonithd.a
445 %defattr(644,root,root,755)
446 %attr(755,root,root) %{_sbindir}/pacemaker-remoted
447 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
448 %{systemdunitdir}/pacemaker_remote.service
449 %{_mandir}/man8/pacemaker-remoted.8*
453 %defattr(644,root,root,755)
454 %attr(755,root,root) %{_sbindir}/pacemakerd
455 %attr(755,root,root) /etc/rc.d/init.d/%{name}
456 %{systemdunitdir}/%{name}.service
457 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pacemaker
458 %{_mandir}/man8/pacemakerd.8*
463 %defattr(644,root,root,755)
464 %dir %{_docdir}/pacemaker
465 %{_docdir}/pacemaker/Clusters_from_Scratch
466 %{_docdir}/pacemaker/Pacemaker_Administration
467 %{_docdir}/pacemaker/Pacemaker_Development
468 %{_docdir}/pacemaker/Pacemaker_Explained
469 %{_docdir}/pacemaker/Pacemaker_Remote