]> git.pld-linux.org Git - packages/cluster-glue.git/blob - cluster-glue.spec
- allow packaging on systems without systemd
[packages/cluster-glue.git] / cluster-glue.spec
1 # TODO:
2 # - pldize ha_logd initscript (look heartbeat.init?)
3 # - stonith-libs? pils? (any sense? libs are small and have little external dependencies)
4 # - separate some stonith plugins which have external dependencies?
5 #
6 # Conditional build:
7 %bcond_without  systemd # systemd
8 %bcond_without  vacm    # VACM stonith plugin
9 #
10 Summary:        Reusable cluster components
11 Summary(pl.UTF-8):      Komponenty klastrowe wielokrotnego użytku
12 Name:           cluster-glue
13 Version:        1.0.12
14 Release:        6
15 License:        GPL v2+ and LGPL v2+
16 Group:          Aplications/System
17 # for future releases:
18 #Source0Download: https://github.com/ClusterLabs/cluster-glue/releases
19 #Source0:       https://github.com/ClusterLabs/cluster-glue/archive/%{version}/glue-%{version}.tar.gz
20 Source0:        http://hg.linux-ha.org/glue/archive/glue-%{version}.tar.bz2
21 # Source0-md5:  ec620466d6f23affa3b074b72bca7870
22 Patch0:         %{name}-link.patch
23 Patch1:         %{name}-opt.patch
24 Patch2:         %{name}-rc.patch
25 Patch3:         %{name}-heartbeat-libexecdir.patch
26 Patch4:         x32-long-long-time-types.patch
27 URL:            http://www.linux-ha.org/wiki/Cluster_Glue
28 BuildRequires:  OpenIPMI-devel >= 1.4
29 BuildRequires:  asciidoc
30 BuildRequires:  autoconf >= 2.53
31 BuildRequires:  automake
32 BuildRequires:  bzip2-devel
33 BuildRequires:  curl-devel
34 BuildRequires:  docbook-dtd42-xml
35 BuildRequires:  docbook-dtd44-xml
36 BuildRequires:  docbook-style-xsl
37 BuildRequires:  glib2-devel >= 2.0
38 BuildRequires:  help2man
39 BuildRequires:  libaio-devel
40 BuildRequires:  libltdl-devel
41 BuildRequires:  libnet-devel >= 1.0
42 BuildRequires:  libstdc++-devel
43 BuildRequires:  libtool
44 BuildRequires:  libuuid-devel
45 BuildRequires:  libxml2-devel >= 2.0
46 BuildRequires:  libxslt-progs
47 BuildRequires:  ncurses-devel
48 BuildRequires:  net-snmp-devel >= 5.4
49 BuildRequires:  openhpi-devel
50 BuildRequires:  openssl-devel
51 BuildRequires:  perl-tools-pod
52 BuildRequires:  pkgconfig
53 BuildRequires:  python3-devel
54 BuildRequires:  rpm-pythonprov
55 %{?with_vacm:BuildRequires:     vacm-devel}
56 BuildRequires:  zlib-devel
57 Requires(post,preun):   /sbin/chkconfig
58 Requires(postun):       /usr/sbin/groupdel
59 Requires(postun):       /usr/sbin/userdel
60 Requires(pre):  /bin/id
61 Requires(pre):  /usr/bin/getgid
62 Requires(pre):  /usr/sbin/groupadd
63 Requires(pre):  /usr/sbin/useradd
64 Requires(post,preun,postun):    systemd-units
65 Requires:       systemd-units
66 Requires:       %{name}-libs = %{version}-%{release}
67 Requires:       perl-TimeDate
68 Requires:       rc-scripts
69 Provides:       group(haclient)
70 Provides:       user(hacluster)
71 # Directives to allow upgrade from combined heartbeat packages
72 Provides:       heartbeat-pils = 3.0.0-1
73 Obsoletes:      heartbeat-common
74 Obsoletes:      heartbeat-pils < 3.0.0-1
75 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
77 %description
78 A collection of common tools that are useful for writing cluster
79 managers such as Pacemaker. Provides a local resource manager that
80 understands the OCF and LSB standards, and an interface to common
81 STONITH devices.
82
83 %description -l pl.UTF-8
84 Zbiór wspólnych narzędzi przydatnych przy pisaniu zarządców klastrów,
85 takich jak Pacemaker. Pakiet zawiera zarządcę zasobów lokalnych
86 zgodnego ze standardami OCF i LSB oraz interfejs do wspólnych urządzeń
87 STONITH.
88
89 %package libs
90 Summary:        Reusable cluster libraries
91 Summary(pl.UTF-8):      Biblioteki klastrowe wielokrotnego użytku
92 Group:          Libraries
93 Obsoletes:      libheartbeat2
94
95 %description libs
96 A collection of libraries that are useful for writing cluster managers
97 such as Pacemaker.
98
99 %description libs -l pl.UTF-8
100 Zbiór bibliotek przydatnych przy pisaniu zarządców klastrów, takich
101 jak Pacemaker.
102
103 %package libs-devel
104 Summary:        Header files for writing cluster managers
105 Summary(pl.UTF-8):      Pliki nagłówkowe do pisania zarządców klastrów
106 Group:          Development/Libraries
107 Requires:       %{name}-libs = %{version}-%{release}
108 Requires:       glib2-devel >= 2.0
109 Requires:       libltdl-devel
110 Obsoletes:      libheartbeat-devel
111
112 %description libs-devel
113 Header files useful for writing cluster managers such as Pacemaker.
114
115 %description libs-devel -l pl.UTF-8
116 Pliki nagłówkowe przydatne przy pisaniu zarządców klastrów, takich jak
117 Pacemaker.
118
119 %package tests
120 Summary:        Tests for cluster-glue framework
121 Summary(pl.UTF-8):      Testy dla szkieletu cluster-glue
122 Group:          Development
123 Requires:       %{name}-libs = %{version}-%{release}
124
125 %description tests
126 Tests for cluster-glue framework.
127
128 %description tests -l pl.UTF-8
129 Testy dla szkieletu cluster-glue.
130
131 %package stonith
132 Summary:        Provides an interface to Shoot The Other Node In The Head
133 Summary(pl.UTF-8):      Interfejs do "odstrzelenia" drugiego węzła w klastrze
134 Group:          Applications/System
135 Requires:       OpenIPMI >= 2.0.3
136 Provides:       heartbeat-stonith = 3.0.0-1
137 Obsoletes:      heartbeat-stonith < 3.0.0-1
138
139 %description stonith
140 Provides an interface to Shoot The Other Node In The Head.
141
142 %description stonith -l pl.UTF-8
143 STONITH (Shoot The Other Node In The Head) to interfejs służący do
144 "odstrzelenia" drugiego węzła w klastrze.
145
146 %prep
147 %setup -q -n Reusable-Cluster-Components-glue--glue-%{version}
148 %patch0 -p1
149 %patch1 -p1
150 %patch2 -p1
151 %patch3 -p1
152 %ifarch x32
153 %patch4 -p1
154 %endif
155
156 %{__sed} -i -e '1{
157         s,^#!.*python$,#!%{__python3},
158         s,^#!.*bin/env perl,#!%{__perl},
159 }' \
160         lib/plugins/stonith/external/*
161
162 %build
163 %{__libtoolize}
164 %{__aclocal}
165 %{__autoheader}
166 %{__automake}
167 %{__autoconf}
168 CPPFLAGS="%{rpmcppflags} -DOPENIPMI_DEFINE_SELECTOR_T"
169 %configure \
170         PYTHON=%{__python3} \
171         --docdir=%{_docdir}/%{name}-%{version} \
172         --disable-fatal-warnings \
173         --disable-static \
174         --enable-ipmilan \
175         --with-daemon-group=haclient \
176         --with-daemon-user=hacluster \
177         --with-initdir=/etc/rc.d/init.d \
178         --with-rundir=/var/run
179 %{__make}
180
181 %install
182 rm -rf $RPM_BUILD_ROOT
183 install -d $RPM_BUILD_ROOT%{systemdunitdir}
184
185 %{__make} install \
186         DESTDIR=$RPM_BUILD_ROOT
187
188 find $RPM_BUILD_ROOT -name '*.la' -delete
189
190 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
191
192 %clean
193 rm -rf $RPM_BUILD_ROOT
194
195 %pre
196 %groupadd -g 60 haclient
197 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
198
199 %post
200 /sbin/chkconfig --add logd
201 %service logd restart
202 %systemd_post logd.service
203
204 %preun
205 if [ "$1" = "0" ]; then
206         %service -q logd stop
207         /sbin/chkconfig --del logd
208 fi
209 %systemd_preun logd.service
210
211 %postun
212 if [ "$1" = "0" ]; then
213         %userremove hacluster
214         %groupremove haclient
215 fi
216 %systemd_reload
217
218 %post   libs -p /sbin/ldconfig
219 %postun libs -p /sbin/ldconfig
220
221 %files
222 %defattr(644,root,root,755)
223 %doc AUTHORS ChangeLog logd/logd.cf doc/stonith/README*
224 %attr(754,root,root) /etc/rc.d/init.d/logd
225 %if %{with systemd}
226 %{systemdunitdir}/logd.service
227 %endif
228
229 %attr(755,root,root) %{_sbindir}/ha_logger
230 %attr(755,root,root) %{_sbindir}/hb_report
231 %attr(755,root,root) %{_sbindir}/lrmadmin
232 %attr(755,root,root) %{_sbindir}/meatclient
233 %attr(755,root,root) %{_sbindir}/cibsecret
234 %{_mandir}/man1/ha_logger.1*
235 %{_mandir}/man8/ha_logd.8*
236 %{_mandir}/man8/hb_report.8*
237 %{_mandir}/man8/lrmadmin.8*
238 %{_mandir}/man8/meatclient.8*
239
240 %dir %{_datadir}/%{name}
241 %attr(755,root,root) %{_datadir}/%{name}/ha_cf_support.sh
242 %attr(755,root,root) %{_datadir}/%{name}/openais_conf_support.sh
243 %attr(755,root,root) %{_datadir}/%{name}/utillib.sh
244 %attr(755,root,root) %{_datadir}/%{name}/ha_log.sh
245
246 %attr(755,root,root) %{_libexecdir}/heartbeat/ha_logd
247 %attr(755,root,root) %{_libexecdir}/heartbeat/lrmd
248
249 %dir %{_libdir}/heartbeat/plugins/InterfaceMgr
250 %attr(755,root,root) %{_libdir}/heartbeat/plugins/InterfaceMgr/generic.so
251 %dir %{_libdir}/heartbeat/plugins/RAExec
252 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/heartbeat.so
253 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/lsb.so
254 %attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/ocf.so
255 %dir %{_libdir}/heartbeat/plugins/compress
256 %attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/bz2.so
257 %attr(755,root,root) %{_libdir}/heartbeat/plugins/compress/zlib.so
258
259 %dir /var/lib/heartbeat
260 %attr(711,root,root) %dir /var/lib/heartbeat/cores
261 %attr(700,root,root) %dir /var/lib/heartbeat/cores/root
262 %attr(700,hacluster,root) %dir /var/lib/heartbeat/cores/hacluster
263 # we don't want any files owned by nobody
264 %attr(700,root,root) %dir /var/lib/heartbeat/cores/nobody
265
266 %files libs
267 %defattr(644,root,root,755)
268 %attr(755,root,root) %{_libdir}/liblrm.so.*.*.*
269 %attr(755,root,root) %ghost %{_libdir}/liblrm.so.2
270 %attr(755,root,root) %{_libdir}/libpils.so.*.*.*
271 %attr(755,root,root) %ghost %{_libdir}/libpils.so.2
272 %attr(755,root,root) %{_libdir}/libplumb.so.*.*.*
273 %attr(755,root,root) %ghost %{_libdir}/libplumb.so.2
274 %attr(755,root,root) %{_libdir}/libplumbgpl.so.*.*.*
275 %attr(755,root,root) %ghost %{_libdir}/libplumbgpl.so.2
276 %attr(755,root,root) %{_libdir}/libstonith.so.*.*.*
277 %attr(755,root,root) %ghost %{_libdir}/libstonith.so.1
278 %dir %{_libdir}/heartbeat
279 %dir %{_libdir}/heartbeat/plugins
280 # also used by resource-agents runtime package (shouldn't agent_config.h be in resource-agents-devel?)
281 %dir %{_includedir}/heartbeat
282
283 %files libs-devel
284 %defattr(644,root,root,755)
285 %attr(755,root,root) %{_libdir}/liblrm.so
286 %attr(755,root,root) %{_libdir}/libpils.so
287 %attr(755,root,root) %{_libdir}/libplumb.so
288 %attr(755,root,root) %{_libdir}/libplumbgpl.so
289 %attr(755,root,root) %{_libdir}/libstonith.so
290 %{_includedir}/clplumbing
291 %{_includedir}/heartbeat/compress.h
292 %{_includedir}/heartbeat/glue_config.h
293 %{_includedir}/heartbeat/ha_msg.h
294 %{_includedir}/heartbeat/lrm
295 %{_includedir}/stonith
296 %{_includedir}/pils
297
298 %files tests
299 %defattr(644,root,root,755)
300 %attr(755,root,root) %{_libexecdir}/heartbeat/ipctest
301 %attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientclient
302 %attr(755,root,root) %{_libexecdir}/heartbeat/ipctransientserver
303 %attr(755,root,root) %{_libexecdir}/heartbeat/transient-test.sh
304 %attr(755,root,root) %{_libexecdir}/heartbeat/base64_md5_test
305 %attr(755,root,root) %{_libexecdir}/heartbeat/logtest
306
307 %dir %{_libdir}/heartbeat/plugins/test
308 %attr(755,root,root) %{_libdir}/heartbeat/plugins/test/test.so
309
310 %dir %{_datadir}/%{name}
311 %dir %{_datadir}/%{name}/lrmtest
312 %{_datadir}/%{name}/lrmtest/README.regression
313 %{_datadir}/%{name}/lrmtest/defaults
314 %{_datadir}/%{name}/lrmtest/descriptions
315 %{_datadir}/%{name}/lrmtest/language
316 %{_datadir}/%{name}/lrmtest/lrmadmin-interface
317 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/LRMBasicSanityCheck
318 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/lrmregtest*
319 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/*.sh
320
321 %dir %{_datadir}/%{name}/lrmtest/testcases
322 %{_datadir}/%{name}/lrmtest/testcases/BSC
323 %{_datadir}/%{name}/lrmtest/testcases/basicset
324 %{_datadir}/%{name}/lrmtest/testcases/metadata
325 %{_datadir}/%{name}/lrmtest/testcases/metadata.exp
326 %{_datadir}/%{name}/lrmtest/testcases/rscexec
327 %{_datadir}/%{name}/lrmtest/testcases/rscexec.exp
328 %{_datadir}/%{name}/lrmtest/testcases/rscmgmt
329 %{_datadir}/%{name}/lrmtest/testcases/rscmgmt.exp
330 %{_datadir}/%{name}/lrmtest/testcases/stonith
331 %{_datadir}/%{name}/lrmtest/testcases/stonith.exp
332 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/testcases/*filter
333 %attr(755,root,root) %{_datadir}/%{name}/lrmtest/testcases/*.sh
334
335 %files stonith
336 %defattr(644,root,root,755)
337 %doc doc/stonith/README*
338 %attr(755,root,root) %{_sbindir}/stonith
339 %{_mandir}/man8/stonith.8*
340 %dir %{_libdir}/stonith
341 %dir %{_libdir}/stonith/plugins
342 %dir %{_libdir}/stonith/plugins/external
343 %attr(755,root,root) %{_libdir}/stonith/plugins/external/*
344 %dir %{_libdir}/stonith/plugins/stonith2
345 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmaster.so
346 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcmastersnmp.so
347 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/apcsmart.so
348 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/baytech.so
349 # R: openhpi
350 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/bladehpi.so
351 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/cyclades.so
352 # R: curl libxml2
353 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/drac3.so
354 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/external.so
355 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ibmhmc.so
356 # R: OpenIPMI
357 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ipmilan.so
358 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/meatware.so
359 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/null.so
360 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/nw_rpc100s.so
361 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rcd_serial.so
362 # R: libxml2
363 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rhcs.so
364 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/rps10.so
365 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ssh.so
366 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/suicide.so
367 %if %{with vacm}
368 # R: vacm-libs
369 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/vacm.so
370 %endif
371 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_mpc.so
372 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/wti_nps.so
373 %attr(755,root,root) %{_libdir}/stonith/plugins/stonith2/ribcl.py
374 %attr(755,root,root) %{_libdir}/stonith/plugins/xen0-ha-dom0-stonith-helper
This page took 0.077332 seconds and 4 git commands to generate.