2 %bcond_without corosync # build with corosync stack
3 %bcond_without heartbeat # build without heartbeat stack
4 Summary: The scalable High-Availability cluster resource manager
8 License: GPL v2+; LGPL v2.1+
9 Group: Applications/System
10 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
11 # Source0-md5: 24f3a2bdbac63e640062c207eb838016
12 Source1: %{name}.tmpfiles
14 Source3: %{name}.service
15 Patch0: %{name}-libs.patch
16 URL: http://clusterlabs.org/wiki/Main_Page
17 BuildRequires: asciidoc
18 BuildRequires: autoconf
19 BuildRequires: automake
20 BuildRequires: bzip2-devel
21 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
22 BuildRequires: e2fsprogs-devel
23 BuildRequires: glib2-devel
24 BuildRequires: gnutls-devel
25 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.5-6}
26 BuildRequires: libesmtp-devel
28 BuildRequires: libtool
29 BuildRequires: libxml2-devel
30 BuildRequires: libxslt-devel
31 BuildRequires: ncurses-devel
32 BuildRequires: net-snmp-devel
33 BuildRequires: pam-devel
34 BuildRequires: pkgconfig
35 BuildRequires: python-devel
36 BuildRequires: rpm-pythonprov
38 BuildRequires: pciutils-devel
39 BuildRequires: cluster-glue-libs-devel
40 Requires: cluster-glue
41 Requires: resource-agents
42 Requires: %{name}-libs = %{version}-%{release}
43 Provides: group(haclient)
44 Provides: user(hacluster)
45 Suggests: pacemaker-shell
46 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 # Unresolved symbol in libpe_status.so.3.0.0: get_object_root
49 # not handled by -libs patch, as it is a circular dependency
50 %define skip_post_check_so libpe_status.so.*
53 Pacemaker makes use of your cluster infrastructure (either
54 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
55 of the services (aka. resources) you want the cluster to provide.
57 It can do this for clusters of practically any size and comes with a
58 powerful dependency model that allows the administrator to accurately
59 express the relationships (both ordering and location) between the
62 Pacemaker was formely a part of Heartbeat.
65 Summary: Pacemaker libraries
69 Shared libraries for Pacemaker.
72 Summary: Pacemaker for Heartbeat cluster
73 Group: Applications/System
75 Obsoletes: %{name} < 1.1
76 Conflicts: heartbeat < 2.99.0
77 Requires: %{name} = %{version}-%{release}
79 %description heartbeat
80 This package allows using Pacemaker on a Heartbeat cluster.
83 Summary: Pacemaker for Corosync cluster
84 Group: Applications/System
86 Requires: %{name} = %{version}-%{release}
89 This package allows using Pacemaker on a Corosync cluster.
92 Summary: Header files for Pacemaker libraries
93 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemaker
94 Group: Development/Libraries
95 Requires: %{name}-libs = %{version}-%{release}
98 Header files for Pacemaker libraries.
101 Summary: Static Pacemaker libraries
102 Summary(pl.UTF-8): Statyczne biblioteki Pacemaker
103 Group: Development/Libraries
104 Requires: %{name}-devel = %{version}-%{release}
107 Static Pacemaker libraries.
110 %setup -qn pacemaker-Pacemaker-%{version}
121 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}" \
122 --with-heartbeat%{!?with_heartbeat:=no} \
123 --with-corosync%{!?with_corosync:=no} \
127 --with-initdir=/etc/rc.d/init.d \
128 --disable-fatal-warnings
133 rm -rf $RPM_BUILD_ROOT
134 install -d $RPM_BUILD_ROOT{/usr/lib/tmpfiles.d,/etc/rc.d/init.d,%{systemdunitdir}}
137 DESTDIR=$RPM_BUILD_ROOT
139 rm -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
141 install %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
142 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
143 install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
146 rm -rf $RPM_BUILD_ROOT
149 %groupadd -g 60 haclient
150 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
153 /sbin/chkconfig --add %{name}
154 %service %{name} restart "%{name} daemon"
156 %systemd_post %{name}.service
159 if [ "$1" = "0" ]; then
160 %service %{name} stop
161 /sbin/chkconfig --del %{name}
163 %systemd_preun %{name}.service
168 %post libs -p /sbin/ldconfig
169 %postun libs -p /sbin/ldconfig
172 %defattr(644,root,root,755)
173 %doc doc/README* doc/*.html doc/*.txt AUTHORS COPYING*
174 %{_datadir}/pacemaker
175 %dir %{_libdir}/%{name}
176 %attr(755,root,root) %{_libdir}/%{name}/attrd
177 %attr(755,root,root) %{_libdir}/%{name}/cib
178 %attr(755,root,root) %{_libdir}/%{name}/cibmon
179 %attr(755,root,root) %{_libdir}/%{name}/crmd
180 %attr(755,root,root) %{_libdir}/%{name}/lrmd
181 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
182 %attr(755,root,root) %{_libdir}/%{name}/pengine
183 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
184 %attr(755,root,root) %{_libdir}/%{name}/stonithd
185 %attr(755,root,root) %{_bindir}/ccs2cib
186 %attr(755,root,root) %{_bindir}/ccs_flatten
187 %attr(755,root,root) %{_bindir}/disable_rgmanager
188 %attr(755,root,root) %{_sbindir}/attrd_updater
189 %attr(755,root,root) %{_sbindir}/cibadmin
190 %attr(755,root,root) %{_sbindir}/crm_attribute
191 %attr(755,root,root) %{_sbindir}/crm_diff
192 %attr(755,root,root) %{_sbindir}/crm_error
193 %attr(755,root,root) %{_sbindir}/crm_failcount
194 %attr(755,root,root) %{_sbindir}/crm_master
195 %attr(755,root,root) %{_sbindir}/crm_mon
196 %attr(755,root,root) %{_sbindir}/crm_node
197 %attr(755,root,root) %{_sbindir}/crm_report
198 %attr(755,root,root) %{_sbindir}/crm_resource
199 %attr(755,root,root) %{_sbindir}/crm_simulate
200 %attr(755,root,root) %{_sbindir}/crm_shadow
201 %attr(755,root,root) %{_sbindir}/crm_standby
202 %attr(755,root,root) %{_sbindir}/crm_ticket
203 %attr(755,root,root) %{_sbindir}/crm_uuid
204 %attr(755,root,root) %{_sbindir}/crm_verify
205 %attr(755,root,root) %{_sbindir}/crmadmin
206 %attr(755,root,root) %{_sbindir}/fence_legacy
207 %attr(755,root,root) %{_sbindir}/fence_pcmk
208 %attr(755,root,root) %{_sbindir}/iso8601
209 %attr(755,root,root) %{_sbindir}/stonith_admin
211 %{_datadir}/snmp/mibs
214 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
215 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
216 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
217 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
218 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
219 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
220 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
221 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
222 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
223 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
224 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
225 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
226 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
227 /usr/lib/tmpfiles.d/%{name}.conf
228 %dir /var/lib/%{name}
229 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
230 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
231 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
234 %defattr(644,root,root,755)
235 %attr(755,root,root) %{_libdir}/lib*.so.*.*
236 %attr(755,root,root) %{_libdir}/lib*.so.[0-9]
238 %if %{with heartbeat}
240 %defattr(644,root,root,755)
241 %attr(755,root,root) %{_libdir}/heartbeat/attrd
242 %attr(755,root,root) %{_libdir}/heartbeat/cib
243 %attr(755,root,root) %{_libdir}/heartbeat/crmd
244 %attr(755,root,root) %{_libdir}/heartbeat/pengine
245 %attr(755,root,root) %{_libdir}/heartbeat/stonithd
250 %defattr(644,root,root,755)
251 %attr(755,root,root) %{_sbindir}/pacemakerd
252 %attr(755,root,root) /etc/rc.d/init.d/%{name}
253 %{systemdunitdir}/%{name}.service
257 %defattr(644,root,root,755)
258 %{_includedir}/pacemaker
261 %{_pkgconfigdir}/*.pc
264 %defattr(644,root,root,755)