]> git.pld-linux.org Git - packages/pacemaker.git/blob - pacemaker.spec
ab5cab419697f53c42eec465e80ca31147c4577a
[packages/pacemaker.git] / pacemaker.spec
1 # TODO:
2 # - Source2 vs upstream provided pacemaker.service file
3 # - readd pacemaker_remote.init or drop SysV completely
4 #
5 # Conditional build:
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
10 #
11 %ifnarch ppc ppc64
12 %undefine       with_servicelog
13 %endif
14 %if %{without servicelog}
15 %undefine       with_ipmi
16 %endif
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
19 Name:           pacemaker
20 Version:        2.1.2
21 Release:        1
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
28 Source2:        %{name}.init
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
62 %if %{with doc}
63 BuildRequires:  inkscape >= 1.0
64 BuildRequires:  publican
65 %endif
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)
74
75 %description
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.
79
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
83 cluster resources.
84
85 Pacemaker was formely a part of Heartbeat.
86
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.
91
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.
96
97 Pacemaker był wcześniej częścią pakietu Heartbeat.
98
99 %package libs
100 Summary:        Pacemaker libraries
101 Summary(pl.UTF-8):      Biblioteki Pacemakera
102 Group:          Libraries
103 Requires:       glib2 >= 1:2.32.0
104 Requires:       gnutls-libs >= 2.12.0
105 Requires:       libqb >= 0.17.0
106
107 %description libs
108 Shared libraries for Pacemaker.
109
110 %description libs -l pl.UTF-8
111 Biblioteki współdzielone Pacemakera.
112
113 %package devel
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
119 Requires:       dbus-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
127
128 %description devel
129 Header files for Pacemaker libraries.
130
131 %description devel -l pl.UTF-8
132 Pliki nagłówkowe bibliotek Pacemakera.
133
134 %package static
135 Summary:        Static Pacemaker libraries
136 Summary(pl.UTF-8):      Statyczne biblioteki Pacemakera
137 Group:          Development/Libraries
138 Requires:       %{name}-devel = %{version}-%{release}
139
140 %description static
141 Static Pacemaker libraries.
142
143 %description static -l pl.UTF-8
144 Statyczne biblioteki Pacemakera.
145
146 %package remote
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}
152
153 %description remote
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.
157
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.
163
164 %package corosync
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
171
172 %description corosync
173 This package allows using Pacemaker on a Corosync cluster.
174
175 %description corosync -l pl.UTF-8
176 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
177
178 %package doc
179 Summary:        Pacemaker documentation
180 Summary(pl.UTF-8):      Dokumentacja do Pacemakera
181 Group:          Documentation
182
183 %description doc
184 Pacemaker documentation.
185
186 %description doc -l pl.UTF-8
187 Dokumentacja do Pacemakera.
188
189 %prep
190 %setup -qn pacemaker-Pacemaker-%{version}
191 %patch0 -p1
192 %patch1 -p1
193 %patch2 -p1
194
195 %build
196 %{__libtoolize}
197 %{__aclocal} -I m4
198 %{__autoconf}
199 %{__autoheader}
200 %{__automake}
201
202 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
203 %configure \
204         PYTHON=%{__python3} \
205         --disable-fatal-warnings \
206         --disable-silent-rules \
207         --enable-systemd \
208         --disable-upstart \
209         --with-corosync%{!?with_corosync:=no} \
210         --with-initdir=/etc/rc.d/init.d
211
212 %{__make}
213
214 %install
215 rm -rf $RPM_BUILD_ROOT
216 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
217
218 %{__make} install \
219         mibdir=%{_datadir}/mibs \
220         DESTDIR=$RPM_BUILD_ROOT
221
222 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
223
224 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/pacemaker/tests
225 # package as %doc
226 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker/{COPYING,README.markdown,crm_fencing.*,licenses}
227
228 install -D %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
229 %if %{with corosync}
230 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
231 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
232 %endif
233
234 %clean
235 rm -rf $RPM_BUILD_ROOT
236
237 %pre
238 %groupadd -g 60 haclient
239 %useradd -u 17 -d /var/lib/pacemaker/cores -c "Heartbeat User" -g haclient hacluster
240
241 %post corosync
242 /sbin/chkconfig --add %{name}
243 %service %{name} restart "%{name} daemon"
244 %systemd_post %{name}.service
245
246 %preun
247 if [ "$1" = "0" ]; then
248         %service %{name} stop
249         /sbin/chkconfig --del %{name}
250 fi
251
252 %preun corosync
253 %systemd_preun %{name}.service
254
255 %postun corosync
256 %systemd_reload
257
258 %post remote
259 %systemd_post pacemaker_remote.service
260
261 %preun remote
262 %systemd_preun %{name}.service
263
264 %postun remote
265 %systemd_reload
266
267 %post   libs -p /sbin/ldconfig
268 %postun libs -p /sbin/ldconfig
269
270 %files
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}
296 %if %{with ipmi}
297 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
298 %endif
299 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
300 %endif
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}
347 %if %{with ipmi}
348 %{_mandir}/man8/ipmiservicelogd.8*
349 %endif
350 %{_mandir}/man8/notifyServicelogEvent.8*
351 %endif
352
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
368
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
378
379 %files libs
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
399
400 %files devel
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
411 %{_libdir}/libcib.la
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
431
432 %files static
433 %defattr(644,root,root,755)
434 %{_libdir}/libcib.a
435 %{_libdir}/libcrmcluster.a
436 %{_libdir}/libcrmcommon.a
437 %{_libdir}/libcrmservice.a
438 %{_libdir}/liblrmd.a
439 %{_libdir}/libpacemaker.a
440 %{_libdir}/libpe_rules.a
441 %{_libdir}/libpe_status.a
442 %{_libdir}/libstonithd.a
443
444 %files remote
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*
450
451 %if %{with corosync}
452 %files corosync
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*
459 %endif
460
461 %if %{with doc}
462 %files doc
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
470 %endif
This page took 0.051281 seconds and 2 git commands to generate.