]> git.pld-linux.org Git - packages/hdf5.git/blob - hdf5.spec
- more cmake fixes
[packages/hdf5.git] / hdf5.spec
1 # TODO:
2 # - finish (optional) MPI support (1.8.14: fails on mpi_file_open check)
3 # - check missing file
4 #
5 # Conditional build:
6 %bcond_without  fortran2003     # Fortran 2003 interface
7 %bcond_without  szip            # SZIP compression support
8 %bcond_with     mpi             # parallel version of library using MPI
9 #
10 Summary:        Hierarchical Data Format 5 library
11 Summary(pl.UTF-8):      Biblioteka HDF5 (Hierarchical Data Format 5)
12 Name:           hdf5
13 Version:        1.8.15
14 Release:        3
15 License:        Nearly BSD, but changed sources must be marked
16 Group:          Libraries
17 Source0:        ftp://ftp.hdfgroup.org/HDF5/current/src/%{name}-%{version}.tar.bz2
18 # Source0-md5:  c3cfd7aeca8ca15160d9784af6748ac4
19 Patch0:         %{name}-config.patch
20 Patch1:         %{name}-sig.patch
21 Patch2:         %{name}-cmake.patch
22 Patch3:         %{name}-format.patch
23 URL:            http://www.hdfgroup.org/HDF5/
24 BuildRequires:  autoconf >= 2.69
25 BuildRequires:  automake >= 1:1.11
26 BuildRequires:  gcc-fortran >= %{?with_fortran2003:6:4.2}%{!?with_fortran2003:5:4.0}
27 BuildRequires:  libjpeg-devel >= 6b
28 BuildRequires:  libstdc++-devel
29 BuildRequires:  libtool >= 2:2.2
30 %{?with_mpi:BuildRequires:      mpi-devel}
31 %{?with_szip:BuildRequires:     szip-devel >= 2.0}
32 BuildRequires:  zlib-devel >= 1.1.3
33 Obsoletes:      hdf5_hl
34 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35
36 %description
37 HDF5 is a completely new Hierarchical Data Format product consisting
38 of a data format specification and a supporting library
39 implementation. HDF5 is designed to address some of the limitations of
40 the older HDF product and to address current and anticipated
41 requirements of modern systems and applications.
42
43 %description -l pl.UTF-8
44 HDF5 jest całkowicie nowym produktem Hierarchiczego Formatu Danych,
45 składającym się ze specyfikacji formatu danych oraz obsługującej go
46 biblioteki. HDF5 został zaprojektowany aby pozbyć się ograniczeń
47 poprzedniego HDF oraz żeby zaspokoić bieżące i przyszłe potrzeby
48 współczesnych systemów i aplikacji.
49
50 %package devel
51 Summary:        HDF5 library development package
52 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki HDF5
53 Group:          Development/Libraries
54 Requires:       %{name} = %{version}-%{release}
55 %{?with_szip:Requires:  szip-devel >= 2.0}
56 Requires:       zlib-devel
57 Obsoletes:      hdf5_hl-devel
58 Obsoletes:      hdf5_hl-tutor
59
60 %description devel
61 Header files for HDF5 library and HDF5 documentation.
62
63 %description devel -l pl.UTF-8
64 Pliki nagłówkowe biblioteki HDF5 oraz dokumentacja HDF5.
65
66 %package static
67 Summary:        HDF5 static library
68 Summary(pl.UTF-8):      Statyczna biblioteka HDF5
69 Group:          Development/Libraries
70 Requires:       %{name}-devel = %{version}-%{release}
71 Obsoletes:      hdf5_hl-static
72
73 %description static
74 Static version of HDF5 library.
75
76 %description static -l pl.UTF-8
77 Statyczna wersja biblioteki HDF5.
78
79 %package c++
80 Summary:        C++ APIs for HDF5
81 Summary(pl.UTF-8):      API C++ bibliotek HDF5
82 Group:          Libraries
83 Requires:       %{name} = %{version}-%{release}
84
85 %description c++
86 C++ APIs for HDF5 (both base hdf5 and hdf5_hl).
87
88 %description c++ -l pl.UTF-8
89 API C++ dla bibliotek HDF5 (zarówno podstawowej hdf5, jak i hdf5_hl).
90
91 %package c++-devel
92 Summary:        Header files for HDF5 C++ APIs
93 Summary(pl.UTF-8):      Pliki nagłówkowe API C++ bibliotek HDF5
94 Group:          Development/Libraries
95 Requires:       %{name}-c++ = %{version}-%{release}
96 Requires:       %{name}-devel = %{version}-%{release}
97 Requires:       libstdc++-devel
98
99 %description c++-devel
100 Header files for HDF5 C++ APIs (both base hdf5 and hdf5_hl).
101
102 %description c++-devel -l pl.UTF-8
103 Pliki nagłówkowe API C++ bibliotek HDF5 (zarówno podstawowej hdf5, jak
104 i hdf5_hl).
105
106 %package c++-static
107 Summary:        C++ APIs for HDF5 - static libraries
108 Summary(pl.UTF-8):      API C++ bibliotek HDF5 - biblioteki statyczne
109 Group:          Development/Libraries
110 Requires:       %{name}-c++-devel = %{version}-%{release}
111
112 %description c++-static
113 C++ APIs for HDF5 (both base hdf5 and hdf5_hl) - static libraries.
114
115 %description c++-static -l pl.UTF-8
116 API C++ dla bibliotek HDF5 (zarówno podstawowej hdf5, jak i hdf5_hl) -
117 biblioteki statyczne.
118
119 %package fortran
120 Summary:        Fortran APIs for HDF5
121 Summary(pl.UTF-8):      API Fortran bibliotek HDF5
122 Group:          Libraries
123 Requires:       %{name} = %{version}-%{release}
124
125 %description fortran
126 Fortran APIs for HDF5 (both base hdf5 and hdf5_hl).
127
128 %description fortran -l pl.UTF-8
129 API Fortran dla bibliotek HDF5 (zarówno podstawowej hdf5, jak i
130 hdf5_hl).
131
132 %package fortran-devel
133 Summary:        Header files for HDF5 Fortran APIs
134 Summary(pl.UTF-8):      Pliki nagłówkowe API Fortran bibliotek HDF5
135 Group:          Development/Libraries
136 Requires:       %{name}-devel = %{version}-%{release}
137 Requires:       %{name}-fortran = %{version}-%{release}
138 Requires:       gcc-fortran >= %{?with_fortran2003:6:4.2}%{!?with_fortran2003:5:4.0}
139
140 %description fortran-devel
141 Module and header files for HDF5 Fortran APIs (both base hdf5 and
142 hdf5_hl).
143
144 %description fortran-devel -l pl.UTF-8
145 Moduły i pliki nagłówkowe API C++ bibliotek HDF5 (zarówno podstawowej
146 hdf5, jak i hdf5_hl).
147
148 %package fortran-static
149 Summary:        Fortran APIs for HDF5 - static libraries
150 Summary(pl.UTF-8):      API Fortran bibliotek HDF5 - biblioteki statyczne
151 Group:          Development/Libraries
152 Requires:       %{name}-fortran-devel = %{version}-%{release}
153
154 %description fortran-static
155 Fortran APIs for HDF5 (both base hdf5 and hdf5_hl) - static libraries.
156
157 %description fortran-static -l pl.UTF-8
158 API Fortran dla bibliotek HDF5 (zarówno podstawowej hdf5, jak i
159 hdf5_hl) - biblioteki statyczne.
160
161 %package progs
162 Summary:        HDF5 utilities
163 Summary(pl.UTF-8):      Narzędzia do plików HDF5
164 Group:          Applications/File
165 Requires:       %{name} = %{version}-%{release}
166
167 %description progs
168 Utilities to convert from/to HDF5 format.
169
170 %description progs -l pl.UTF-8
171 Narzędzia do konwersji z i to formatu HDF5.
172
173 %prep
174 %setup -q
175 %patch0 -p1
176 %patch1 -p1
177 %patch2 -p1
178 %patch3 -p1
179
180 %build
181 %{__libtoolize}
182 %{__aclocal}
183 %{__autoconf}
184 %{__autoheader}
185 %{__automake}
186 %configure \
187         --docdir=%{_docdir} \
188         --disable-silent-rules \
189         --enable-cxx \
190         --enable-fortran \
191         %{?with_fortran2003:--enable-fortran2003} \
192         --enable-linux-lfs \
193         %{?with_mpi:--enable-parallel --enable-unsupported} \
194         --enable-production \
195         --enable-shared \
196         --with-pthread \
197         %{?with_szip:--with-szlib}
198
199 #       --enable-threadsafe is incompatible with cxx/fortran
200
201 %{__make}
202
203 %install
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT%{_includedir}
206
207 %{__make} install-recursive \
208         DESTDIR=$RPM_BUILD_ROOT
209
210 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/hl
211 %{__make} -C examples install-examples \
212         EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/c \
213         EXAMPLETOPDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
214 %{__make} -C c++/examples install-examples \
215         EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/c++
216 %{__make} -C hl/examples install-examples \
217         EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/hl/c \
218         EXAMPLETOPDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/hl
219 %{__make} -C hl/c++/examples install-examples \
220         EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/hl/c++
221
222 install -d $RPM_BUILD_ROOT%{_datadir}/cmake/hdf5
223 vmajor=$(sed -ne 's/^#define H5_VERS_MAJOR\s*\([0-9]\+\).*/\1/p' src/H5public.h)
224 vminor=$(sed -ne 's/^#define H5_VERS_MINOR\s*\([0-9]\+\).*/\1/p' src/H5public.h)
225 vrel=$(sed -ne 's/^#define H5_VERS_RELEASE\s*\([0-9]\+\).*/\1/p' src/H5public.h)
226 vsubr=$(sed -ne 's/^#define H5_VERS_SUBRELEASE\s*\([^ \t]\+\).*/\1/p' src/H5public.h)
227 for f in FindHDF5.cmake hdf5-config-version.cmake hdf5-config.cmake hdf5-targets.cmake hdf5-targets-noconfig.cmake ; do
228         sed -e 's,@HDF5_PACKAGE@,hdf5,' \
229             -e 's,@HDF_PACKAGE_EXT@,,' \
230             -e "s,@HDF5_VERSION_STRING@,%{version}," \
231             -e "s,@HDF5_VERSION_MAJOR@,1.8," \
232             -e "s,@HDF5_VERSION_MINOR@,$vrel," \
233             -e "s,@H5_VERS_MAJOR@,$vmajor," \
234             -e "s,@H5_VERS_MINOR@,$vminor," \
235             -e "s,@H5_VERS_RELEASE@,$vrel," \
236             -e "s,@H5_VERS_SUBRELEASE@,$vsubr," \
237             -e 's,@HDF5_ENABLE_PARALLEL@,OFF,' \
238             -e 's,@HDF5_BUILD_FORTRAN@,ON,' \
239             -e 's,@HDF5_ENABLE_F2003@,%{?with_fortran2003:ON}%{!?with_fortran2003:OFF},' \
240             -e 's,@HDF5_BUILD_CPP_LIB@,ON,' \
241             -e 's,@HDF5_BUILD_TOOLS@,ON,' \
242             -e 's,@HDF5_BUILD_HL_LIB@,ON,' \
243             -e 's,@HDF5_ENABLE_Z_LIB_SUPPORT@,ON,' \
244             -e 's,@HDF5_ENABLE_SZIP_SUPPORT@,%{?with_szip:ON}%{!?with_szip:OFF},' \
245             -e 's,@HDF5_ENABLE_SZIP_ENCODING@,%{?with_szip:ON}%{!?with_szip:OFF},' \
246             -e 's,@BUILD_SHARED_LIBS@,ON,' \
247             -e 's,@HDF5_PACKAGE_EXTLIBS@,OFF,' \
248             -e 's,@ZLIB_PACKAGE_NAME@,zlib,' \
249             -e 's,@SZIP_PACKAGE_NAME@,szip,' \
250             -e 's,@HDF5_LIBRARIES_TO_EXPORT@,hdf5,' \
251             -e 's,@lib@,%{_lib},' \
252             %{?with_mpi:-e 's,@MPI_C_INCLUDE_PATH@,%{_includedir},'} \
253             %{?with_mpi:-e 's,@MPI_C_LIBRARIES@,%{_libdir},'} \
254             -e 's,@PACKAGE_INCLUDE_INSTALL_DIR@,%{_includedir},' \
255             -e 's,@PACKAGE_SHARE_INSTALL_DIR@,%{_datadir}/cmake/hdf5,' \
256             -e 's,@PACKAGE_CURRENT_BUILD_DIR@,%{_prefix},' \
257                 config/cmake/${f}.in > $RPM_BUILD_ROOT%{_datadir}/cmake/hdf5/$f
258 done
259
260 %clean
261 rm -rf $RPM_BUILD_ROOT
262
263 %post   -p /sbin/ldconfig
264 %postun -p /sbin/ldconfig
265
266 %post   c++ -p /sbin/ldconfig
267 %postun c++ -p /sbin/ldconfig
268
269 %post   fortran -p /sbin/ldconfig
270 %postun fortran -p /sbin/ldconfig
271
272 %files
273 %defattr(644,root,root,755)
274 %doc COPYING README.txt release_docs/{HISTORY*.txt,RELEASE.txt}
275 %attr(755,root,root) %{_libdir}/libhdf5.so.*.*.*
276 %attr(755,root,root) %ghost %{_libdir}/libhdf5.so.10
277 %attr(755,root,root) %{_libdir}/libhdf5_hl.so.*.*.*
278 %attr(755,root,root) %ghost %{_libdir}/libhdf5_hl.so.10
279 # used to show configuration at runtime
280 %{_libdir}/libhdf5.settings
281
282 %files devel
283 %defattr(644,root,root,755)
284 %attr(755,root,root) %{_bindir}/h5cc
285 %attr(755,root,root) %{_libdir}/libhdf5.so
286 %attr(755,root,root) %{_libdir}/libhdf5_hl.so
287 %{_libdir}/libhdf5.la
288 %{_libdir}/libhdf5_hl.la
289 %{_includedir}/H5ACpublic.h
290 %{_includedir}/H5Apublic.h
291 %{_includedir}/H5Cpublic.h
292 %{_includedir}/H5DOpublic.h
293 %{_includedir}/H5DSpublic.h
294 %{_includedir}/H5Dpublic.h
295 %{_includedir}/H5Epubgen.h
296 %{_includedir}/H5Epublic.h
297 %{_includedir}/H5FDcore.h
298 %{_includedir}/H5FDdirect.h
299 %{_includedir}/H5FDfamily.h
300 %{_includedir}/H5FDlog.h
301 %{_includedir}/H5FDmpi.h
302 %{_includedir}/H5FDmpio.h
303 %{_includedir}/H5FDmulti.h
304 %{_includedir}/H5FDpublic.h
305 %{_includedir}/H5FDsec2.h
306 %{_includedir}/H5FDstdio.h
307 %{_includedir}/H5Fpublic.h
308 %{_includedir}/H5Gpublic.h
309 %{_includedir}/H5IMpublic.h
310 %{_includedir}/H5Include.h
311 %{_includedir}/H5Ipublic.h
312 %{_includedir}/H5LTpublic.h
313 %{_includedir}/H5Lpublic.h
314 %{_includedir}/H5MMpublic.h
315 %{_includedir}/H5Opublic.h
316 %{_includedir}/H5PTpublic.h
317 %{_includedir}/H5Ppublic.h
318 %{_includedir}/H5PLextern.h
319 %{_includedir}/H5PLpublic.h
320 %{_includedir}/H5Rpublic.h
321 %{_includedir}/H5Spublic.h
322 %{_includedir}/H5TBpublic.h
323 %{_includedir}/H5Tpublic.h
324 %{_includedir}/H5Zpublic.h
325 %{_includedir}/H5api_adpt.h
326 %{_includedir}/H5overflow.h
327 %{_includedir}/H5pubconf.h
328 %{_includedir}/H5public.h
329 %{_includedir}/H5version.h
330 %{_includedir}/hdf5.h
331 %{_includedir}/hdf5_hl.h
332
333 %{_datadir}/cmake/hdf5
334 %dir %{_examplesdir}/%{name}-%{version}
335 %{_examplesdir}/%{name}-%{version}/README
336 %{_examplesdir}/%{name}-%{version}/run-all-ex.sh
337 %{_examplesdir}/%{name}-%{version}/c
338 %dir %{_examplesdir}/%{name}-%{version}/hl
339 %{_examplesdir}/%{name}-%{version}/hl/run-hl-ex.sh
340 %{_examplesdir}/%{name}-%{version}/hl/c
341
342 %files static
343 %defattr(644,root,root,755)
344 %{_libdir}/libhdf5.a
345 %{_libdir}/libhdf5_hl.a
346
347 %files c++
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{_libdir}/libhdf5_cpp.so.*.*.*
350 %attr(755,root,root) %ghost %{_libdir}/libhdf5_cpp.so.10
351 %attr(755,root,root) %{_libdir}/libhdf5_hl_cpp.so.*.*.*
352 %attr(755,root,root) %ghost %{_libdir}/libhdf5_hl_cpp.so.10
353
354 %files c++-devel
355 %defattr(644,root,root,755)
356 %attr(755,root,root) %{_bindir}/h5c++
357 %attr(755,root,root) %{_libdir}/libhdf5_cpp.so
358 %attr(755,root,root) %{_libdir}/libhdf5_hl_cpp.so
359 %{_libdir}/libhdf5_cpp.la
360 %{_libdir}/libhdf5_hl_cpp.la
361 %{_includedir}/H5AbstractDs.h
362 %{_includedir}/H5ArrayType.h
363 %{_includedir}/H5AtomType.h
364 %{_includedir}/H5Attribute.h
365 %{_includedir}/H5Classes.h
366 %{_includedir}/H5CommonFG.h
367 %{_includedir}/H5CompType.h
368 %{_includedir}/H5Cpp.h
369 %{_includedir}/H5CppDoc.h
370 %{_includedir}/H5DataSet.h
371 %{_includedir}/H5DataSpace.h
372 %{_includedir}/H5DataType.h
373 %{_includedir}/H5DcreatProp.h
374 %{_includedir}/H5DxferProp.h
375 %{_includedir}/H5EnumType.h
376 %{_includedir}/H5Exception.h
377 %{_includedir}/H5FaccProp.h
378 %{_includedir}/H5FcreatProp.h
379 %{_includedir}/H5File.h
380 %{_includedir}/H5FloatType.h
381 %{_includedir}/H5Group.h
382 %{_includedir}/H5IdComponent.h
383 %{_includedir}/H5IntType.h
384 %{_includedir}/H5Library.h
385 %{_includedir}/H5Location.h
386 %{_includedir}/H5Object.h
387 %{_includedir}/H5PacketTable.h
388 %{_includedir}/H5PredType.h
389 %{_includedir}/H5PropList.h
390 %{_includedir}/H5StrType.h
391 %{_includedir}/H5VarLenType.h
392 %{_examplesdir}/%{name}-%{version}/c++
393 %{_examplesdir}/%{name}-%{version}/hl/c++
394
395 %files c++-static
396 %defattr(644,root,root,755)
397 %{_libdir}/libhdf5_cpp.a
398 %{_libdir}/libhdf5_hl_cpp.a
399
400 %files fortran
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_libdir}/libhdf5_fortran.so.*.*.*
403 %attr(755,root,root) %ghost %{_libdir}/libhdf5_fortran.so.10
404 %attr(755,root,root) %{_libdir}/libhdf5hl_fortran.so.*.*.*
405 %attr(755,root,root) %ghost %{_libdir}/libhdf5hl_fortran.so.10
406
407 %files fortran-devel
408 %defattr(644,root,root,755)
409 %attr(755,root,root) %{_bindir}/h5fc
410 %attr(755,root,root) %{_libdir}/libhdf5_fortran.so
411 %attr(755,root,root) %{_libdir}/libhdf5hl_fortran.so
412 %{_libdir}/libhdf5_fortran.la
413 %{_libdir}/libhdf5hl_fortran.la
414 %{_includedir}/H5f90i.h
415 %{_includedir}/H5f90i_gen.h
416 %{_includedir}/h5_dble_interface.mod
417 %{_includedir}/h5a.mod
418 %{_includedir}/h5a_provisional.mod
419 %{_includedir}/h5d.mod
420 %{_includedir}/h5d_provisional.mod
421 %{_includedir}/h5ds.mod
422 %{_includedir}/h5e.mod
423 %{_includedir}/h5e_provisional.mod
424 %{_includedir}/h5f.mod
425 %{_includedir}/h5f_provisional.mod
426 %{_includedir}/h5fortran_types.mod
427 %{_includedir}/h5g.mod
428 %{_includedir}/h5global.mod
429 %{_includedir}/h5i.mod
430 %{_includedir}/h5im.mod
431 %{_includedir}/h5l.mod
432 %{_includedir}/h5l_provisional.mod
433 %{_includedir}/h5lib.mod
434 %{_includedir}/h5lib_provisional.mod
435 %{_includedir}/h5lt.mod
436 %{_includedir}/h5o.mod
437 %{_includedir}/h5o_provisional.mod
438 %{_includedir}/h5p.mod
439 %{_includedir}/h5p_provisional.mod
440 %{_includedir}/h5r.mod
441 %{_includedir}/h5r_provisional.mod
442 %{_includedir}/h5s.mod
443 %{_includedir}/h5t.mod
444 %{_includedir}/h5t_provisional.mod
445 %{_includedir}/h5tb.mod
446 %{_includedir}/h5test_kind_storage_size_mod.mod
447 %{_includedir}/h5z.mod
448 %{_includedir}/hdf5.mod
449
450 %files fortran-static
451 %defattr(644,root,root,755)
452 %{_libdir}/libhdf5_fortran.a
453 %{_libdir}/libhdf5hl_fortran.a
454
455 %files progs
456 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_bindir}/gif2h5
458 %attr(755,root,root) %{_bindir}/h52gif
459 %attr(755,root,root) %{_bindir}/h5copy
460 %attr(755,root,root) %{_bindir}/h5debug
461 %attr(755,root,root) %{_bindir}/h5diff
462 %attr(755,root,root) %{_bindir}/h5dump
463 %attr(755,root,root) %{_bindir}/h5import
464 %attr(755,root,root) %{_bindir}/h5jam
465 %attr(755,root,root) %{_bindir}/h5ls
466 %attr(755,root,root) %{_bindir}/h5mkgrp
467 %attr(755,root,root) %{_bindir}/h5perf_serial
468 %attr(755,root,root) %{_bindir}/h5redeploy
469 %attr(755,root,root) %{_bindir}/h5repack
470 %attr(755,root,root) %{_bindir}/h5repart
471 %attr(755,root,root) %{_bindir}/h5stat
472 %attr(755,root,root) %{_bindir}/h5unjam
This page took 0.112051 seconds and 4 git commands to generate.