This repository has been archived by the owner on Sep 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hdf5-vol-daos.spec
345 lines (280 loc) · 10.3 KB
/
hdf5-vol-daos.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
%global with_mpich 1
%if (0%{?rhel} >= 8)
%global with_openmpi 1
%global with_openmpi3 0
%else
%global with_openmpi 0
%global with_openmpi3 1
%endif
%global vol_test_tag 0.9.3
%global vol_major 1
%global vol_minor 1
%global vol_bugrelease 0
#%%global vol_prerelease rc4
%global vol_tag %{vol_major}.%{vol_minor}.%{vol_bugrelease}%{?vol_prerelease:%{vol_prerelease}}
%if %{with_mpich}
%global mpi_list mpich
%endif
%if %{with_openmpi}
%global mpi_list %{?mpi_list} openmpi
%endif
%if %{with_openmpi3}
%global mpi_list %{?mpi_list} openmpi3
%endif
%if (0%{?suse_version} >= 1500)
%global module_load() if [ "%{1}" == "openmpi3" ]; then MODULEPATH=/usr/share/modules module load gnu-openmpi; else MODULEPATH=/usr/share/modules module load gnu-%{1}; fi
%else
%global module_load() module load mpi/%{1}-%{_arch}
%endif
%if (0%{?suse_version} >= 1500)
%global cmake cmake
%else
%global cmake cmake3
%endif
%if (0%{?suse_version} >= 1500)
%global mpi_libdir %{_libdir}/mpi/gcc
%global mpi_lib_ext lib64
%global mpi_includedir %{_libdir}/mpi/gcc
%global mpi_include_ext /include
%else
%global mpi_libdir %{_libdir}
%global mpi_lib_ext lib
%global mpi_includedir %{_includedir}
%global mpi_include_ext -%{_arch}
%endif
Name: hdf5-vol-daos
Version: %{vol_major}.%{vol_minor}.%{vol_bugrelease}%{?vol_prerelease:~%{vol_prerelease}}
Release: 3%{?commit:.git%{shortcommit}}%{?dist}
Summary: A Multi-purpose, Application-Centric, Scalable I/O Proxy Application
License: GPL
URL: https://portal.hdfgroup.org/display/HDF5/HDF5
Source0: https://github.com/HDFGroup/vol-daos/archive/v%{vol_tag}.tar.gz
Source1: https://github.com/HDFGroup/vol-tests/archive/v%{vol_test_tag}.tar.gz
Patch0: https://github.com/HDFGroup/vol-daos/commit/3574df56fed78ee70172f17a528fae7d90051d58.patch
Patch1: https://github.com/HDFGroup/vol-daos/commit/b64776874c07732720b716b81b8dc9c14115da12.patch
BuildRequires: daos-devel%{?_isa}
# Temporarily needed until daos-devel R: libuuid-devel
BuildRequires: libuuid-devel
# Should this be in daos-devel R: boost-devel?
BuildRequires: boost-devel
BuildRequires: gcc, gcc-c++
%if (0%{?suse_version} >= 1500)
BuildRequires: cmake >= 3.1
BuildRequires: lua-lmod
%else
BuildRequires: cmake3 >= 3.1
BuildRequires: Lmod
%endif
BuildRequires: hdf5-devel%{?_isa}
%description
HDF5 VOL DAOS connector is used to leverage the
capabilities of the DAOS object storage system
within an HDF5 application. It translates HDF5 VOL
storage related calls into native daos storage operations
%if %{with_openmpi}
%package openmpi
Summary: HDF5 VOL DAOS with OpenMPI 3
BuildRequires: hdf5-openmpi-devel%{?_isa} >= 1.13.1
BuildRequires: hdf5-openmpi-static%{?_isa}
Provides: %{name}-openmpi = %{version}-%{release}
%description openmpi
HDF5 VOL DAOS with OpenMPI 3
%package openmpi-devel
Summary: HDF5 VOL DAOS devel with OpenMPI 3
Requires: hdf5-openmpi-devel%{?_isa}
BuildRequires: hdf5-openmpi-static%{?_isa}
Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
Provides: %{name}-openmpi-devel = %{version}-%{release}
%description openmpi-devel
HDF5 VOL DAOS devel with OpenMPI 3
%package openmpi-tests
Summary: HDF5 VOL DAOS tests with openmpi
Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
%description openmpi-tests
HDF5 VOL DAOS tests with openmpi
%endif
%if %{with_openmpi3}
%package openmpi3
Summary: HDF5 VOL DAOS with OpenMPI 3
BuildRequires: hdf5-openmpi3-devel%{?_isa} >= 1.13.1
BuildRequires: hdf5-openmpi3-static%{?_isa}
Provides: %{name}-openmpi3 = %{version}-%{release}
%description openmpi3
HDF5 VOL DAOS with OpenMPI 3
%package openmpi3-devel
Summary: HDF5 VOL DAOS devel with OpenMPI 3
Requires: hdf5-openmpi3-devel%{?_isa} >= 1.13.1
BuildRequires: hdf5-openmpi3-static%{?_isa}
Requires: %{name}-openmpi3%{?_isa} = %{version}-%{release}
Provides: %{name}-openmpi3-devel = %{version}-%{release}
%description openmpi3-devel
HDF5 VOL DAOS devel with OpenMPI 3
%package openmpi3-tests
Summary: HDF5 VOL DAOS tests with openmpi3
Requires: %{name}-openmpi3%{?_isa} = %{version}-%{release}
%description openmpi3-tests
HDF5 VOL DAOS tests with openmpi3
%endif
%if %{with_mpich}
%package mpich
Summary: HDF5 VOL DAOS with MPICH
BuildRequires: hdf5-mpich-devel%{?_isa} >= 1.13.1
BuildRequires: hdf5-mpich-static%{?_isa}
Provides: %{name}-mpich2 = %{version}-%{release}
%description mpich
HDF5 VOL DAOS with MPICH
%package mpich-devel
Summary: HDF5 VOL DAOS devel with MPICH
Requires: hdf5-mpich-devel%{?_isa}
BuildRequires: hdf5-mpich-static%{?_isa}
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
Provides: %{name}-mpich2-devel = %{version}-%{release}
%description mpich-devel
HDF5 VOL DAOS devel with MPICH
%package mpich-tests
Summary: HDF5 VOL DAOS tests with mpich
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
%description mpich-tests
HDF5 VOL DAOS tests with mpich
%endif
%if (0%{?suse_version} > 0)
%global __debug_package 1
%global _debuginfo_subpackages 1
%debug_package
%endif
%prep
%setup -q -n vol-daos-%{vol_tag}
%setup -q -T -D -b 1 -n vol-daos-%{vol_tag}
%patch -P 0 -p1 -b .3574df56fed78ee70172f17a528fae7d90051d58.patch
%patch -P 1 -p1 -b .b64776874c07732720b716b81b8dc9c14115da12.patch
cd ../vol-tests-%{vol_test_tag}/
cd ../vol-daos-%{vol_tag}
mv ../vol-tests-%{vol_test_tag}/* test/vol/
%build
for mpi in %{?mpi_list}; do
mkdir $mpi
pushd $mpi
%module_load $mpi
%{cmake} -DCMAKE_INSTALL_PREFIX=%{mpi_libdir}/$mpi \
-DBUILD_TESTING=ON \
-DHDF5_VOL_TEST_ENABLE_PART=ON \
-DHDF5_VOL_TEST_ENABLE_PARALLEL=ON \
-DHDF5_VOL_TEST_ENABLE_ASYNC=ON \
-DMPI_C_COMPILER=%{mpi_libdir}/$mpi/bin/mpicc \
-DHDF5_C_COMPILER_EXECUTABLE=/%{mpi_libdir}/$mpi/bin/h5pcc \
-DCMAKE_SKIP_RPATH:BOOL=ON \
..
%{make_build}
module purge
popd
done
%install
for mpi in %{?mpi_list}; do
%module_load $mpi
%{make_install} -C $mpi
module purge
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/{$mpi/hdf5_vol_daos-tests,hdf5_vol_daos/$mpi}/
ln -s ../../$mpi/hdf5_vol_daos-tests ${RPM_BUILD_ROOT}%{_libdir}/hdf5_vol_daos/$mpi/tests
for x in h5_test_testhdf5 h5vl_test h5_partest_t_bigio h5_partest_testphdf5 \
h5vl_test_parallel h5_partest_t_shapesame h5daos_test_map \
h5daos_test_map_parallel h5daos_test_oclass \
h5daos_test_metadata_parallel; do
install -m 0755 $mpi/bin/${x} ${RPM_BUILD_ROOT}%{_libdir}/$mpi/hdf5_vol_daos-tests/
done
module purge
done
%files
%license COPYING
%if %{with_openmpi}
%files openmpi
%license COPYING
%{mpi_libdir}/openmpi/lib/libhdf5_vol_daos.so.*
%{mpi_libdir}/openmpi/share
%files openmpi-devel
%license COPYING
%{mpi_libdir}/openmpi/lib/libhdf5_vol_daos.so
%{mpi_libdir}/openmpi/lib/pkgconfig/
%{mpi_libdir}/openmpi/include/*.h
%files openmpi-tests
%license COPYING
%{_libdir}/openmpi/hdf5_vol_daos-tests
%{_libdir}/hdf5_vol_daos/openmpi/tests
%endif
%if %{with_openmpi3}
%files openmpi3
%license COPYING
%{mpi_libdir}/openmpi3/lib/libhdf5_vol_daos.so.*
%{mpi_libdir}/openmpi3/share
%files openmpi3-devel
%license COPYING
%{mpi_libdir}/openmpi3/lib/libhdf5_vol_daos.so
%{mpi_libdir}/openmpi3/lib/pkgconfig/
%{mpi_libdir}/openmpi3/include/*.h
%files openmpi3-tests
%license COPYING
%{_libdir}/openmpi3/hdf5_vol_daos-tests
%{_libdir}/hdf5_vol_daos/openmpi3/tests
%endif
%if %{with_mpich}
%files mpich
%license COPYING
%{mpi_libdir}/mpich/lib/libhdf5_vol_daos.so.*
%{mpi_libdir}/mpich/share
%files mpich-devel
%license COPYING
%{mpi_libdir}/mpich/lib/libhdf5_vol_daos.so
%{mpi_libdir}/mpich/lib/pkgconfig/
%{mpi_libdir}/mpich/include/*.h
%files mpich-tests
%license COPYING
%{_libdir}/mpich/hdf5_vol_daos-tests
%{_libdir}/hdf5_vol_daos/mpich/tests
%endif
%changelog
* Tue Jul 04 2023 Brian J. Murrell <brian.murrell@intel.com> - 1.1.0-3
- Add patches as local files
* Thu Dec 1 2022 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0-2
- Update vol to bring in fix for object flags
* Tue Sep 6 2022 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0-1
- Update vol to release 1.1.0 + 3574df5
- Fix path to include dir
* Fri Jan 7 2022 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc4-1
- Update to rc4 + change for oid types
* Fri Dec 17 2021 Phillip Henderson <phillip.henderson@intel.com> - 1.1.0~rc3-9
- Enable building debuginfo package on SUSE platforms
* Fri Nov 12 2021 Wang Shilong <shilong.wang@intel.com> 1.1.0~rc3-8
- Rebuilt for breaking DAOS API change
* Mon Oct 18 2021 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc3-7
- remove BR libfabric-devel
* Thu Oct 7 2021 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc3-6
- Bring in patches to add support for labels and fix some bugs in the VOL
* Sun Sep 26 2021 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc3-5
- Add patch for vol fix for link creation with order tracking
* Wed Aug 4 2021 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc3-4
- Add patch for vol test fixes for DAOS
- add libfabric-devel
* Tue Jun 22 2021 Mohamad Chaarawi <mohamad.chaarawi@intel.com> 1.1.0~rc3-3
- Add patch for uns initializing
* Mon May 17 2021 Brian J. Murrell <brian.murrell@intel.com> - 1.1.0~rc3-2
- Package for openmpi on EL8
- Move tests under %%_libdir/$mpi to keep the dependency generator happy
- But keep backward compatible paths
* Wed Apr 07 2021 David Maldonado Moreno <david.maldonado.moreno@intel.com> - 1.1.0~rc3-1
- Add 34db47e patch that removes the boost dependencies
- Update hdf5-vol v1.1.0rc3 and vol_tests v0.9.2
* Mon Feb 08 2021 Jonathan Martinez Montes <jonathan.martinez.montes@intel.com> - 1.1.0~rc2-2
- Add test h5daos_test_metadata_parallel
* Wed Feb 03 2021 Maureen Jean <maureen.jean@intel.com> - 1.1.0~rc2-1
- Update hdf5-vol v1.1.0rc2 and vol_tests v0.9.1
* Fri Jan 29 2021 Maureen Jean <maureen.jean@intel.com> - 1.1.0~rc1
- Update hdf5-vol v1.1.0rc1 and vol_tests v0.9.0
* Fri Jan 22 2021 Kenneth Cain <kenneth.c.cain@intel.com> - 0.1-5.gfcbdc0b
- restore requires for mpich-devel/tests and openmpi3-devel/tests
* Wed Jan 20 2021 Kenneth Cain <kenneth.c.cain@intel.com> - 0.1-4.gfcbdc0b
- Update hdf5-vol to fcbdc0b, and virtual provides to build with libdaos.so.1
* Fri Nov 20 2020 Maureen Jean <maureen.jean@intel.com> - 0.1-3.gb8e6afb18f
- Update hdf5-vol to gb8e6afb18f and vol-test to gd3f80a57ca
* Mon Oct 5 2020 Brian J. Murrell <brian.murrell@intel.com> - 0.1-2.gb324b90d4
- Tests packages should not require any -devel packages
* Mon Aug 3 2020 Maureen Jean <maureen.jean@intel.com> - 0.1-1.gb324b90d4
- Initial version - vol tests g31660ab1935