# # spec file for package hdf5 # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define hdf5_libver 0 %define libname libhdf5 Name: hdf5 Version: 1.8.9 Release: 0 Summary: A general purpose library and file format for storing scientific data License: BSD-3-Clause Group: Development/Libraries/Other Url: http://www.hdfgroup.org/HDF5/ Source0: http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-%{version}%{?snaprel}.tar.bz2 Source1: h5comp Patch0: hdf5-LD_LIBRARY_PATH.patch Patch1: hdf5-non_void_return.patch Patch2: hdf5-1.8.8-tstlite.patch # Fix typo bug in parallel h5diff Patch3: hdf5-ph5diff.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gcc-fortran BuildRequires: krb5-devel BuildRequires: openssl-devel BuildRequires: zlib-devel %description HDF5 is a general purpose library and file format for storing scientific data. HDF5 can store two primary objects: datasets and groups. A dataset is essentially a multidimensional array of data elements, and a group is a structure for organizing objects in an HDF5 file. Using these two basic objects, one can create and store almost any kind of scientific data structure, such as images, arrays of vectors, and structured and unstructured grids. You can also mix and match them in HDF5 files according to your needs. %package -n %{libname}-%{hdf5_libver} Summary: HDF 5 runtime libraries Group: System/Libraries %description -n %{libname}-%{hdf5_libver} The HDF project involves the development and support of software and file formats for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. This package contains the HDF 5 runtime libraries. %package -n %{libname}_hl%{hdf5_libver} Summary: HDF 5 runtimelibraries Group: System/Libraries %description -n %{libname}_hl%{hdf5_libver} The HDF project involves the development and support of software and file formats for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. This package contains the HDF 5 runtime libraries. %package devel Summary: Hierarchical Data File Format Version 5 Group: Development/Libraries/Parallel Requires: %{name} = %{version} # Required by Fortran programs? Requires: %{libname}-%{hdf5_libver} = %{version} Requires: %{libname}_hl%{hdf5_libver} = %{version} %description devel The HDF project involves the development and support of software and file formats for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. This package contains all files needed to create projects that use hdf5. %package devel-static Summary: Hierarchical Data File Format Version 5 - static libraries Group: Development/Libraries/C and C++ Requires: hdf5-devel %description devel-static The HDF project involves the development and support of software and file formats for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. This package provides the static libraries. %package examples Summary: Examples for HDF5 Group: Development/Libraries/Parallel Requires: %{libname}-%{hdf5_libver} = %{version} Requires: %{libname}_hl%{hdf5_libver} = %{version} %description examples Examples of HDF5 library use. %prep %setup -q %patch0 -p1 -b .LD_LIBRARY_PATH %patch1 -b .non_void_return %ifarch ppc64 s390x # the tstlite test fails with "stack smashing detected" on these arches %patch2 -p1 -b .tstlite %endif %patch3 -p1 -b .ph5diff #This should be fixed in 1.8.7 find \( -name '*.[ch]*' -o -name '*.f90' -o -name '*.txt' \) -exec chmod -x {} + %build export CC=gcc export CXX=g++ export F9X=gfortran export CFLAGS="${RPM_OPT_FLAGS/O2/O0}" # export CFLAGS="%%{optflags} -fno-strict-aliasing" %configure \ --disable-dependency-tracking \ %if 0%{?suse_version} > 1140 --enable-fortran \ %endif --enable-hl \ --enable-shared \ --enable-cxx \ --with-pthread \ --with-ssl \ # --with-pic make %{?_smp_mflags} %install %makeinstall docdir=%{buildroot}%{_docdir} rm -rf %{buildroot}/%{_libdir}/*.la find %{buildroot}%{_datadir}/hdf5_examples -type f \ | grep -v ".sh$" | xargs chmod 644 %fdupes -s %{buildroot}/%{_datadir} # rpm macro for version checking mkdir -p %{buildroot}%{_sysconfdir}/rpm cat > %{buildroot}%{_sysconfdir}/rpm/macros.hdf5 < 1140 %{_libdir}/libhdf5_fortran.so.* %endif %files -n libhdf5_hl%{hdf5_libver} %defattr(0755,root,root) %{_libdir}/libhdf5_hl.so.* %{_libdir}/libhdf5_hl_cpp.so.* %if 0%{?suse_version} > 1140 %{_libdir}/libhdf5hl_fortran.so.* %endif %files devel %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/rpm/macros.hdf5 %{_bindir}/h5c++ %{_bindir}/h5cc %if 0%{?suse_version} > 1140 %{_bindir}/h5fc %endif %{_includedir}/*.h %{_libdir}/*.so %{_libdir}/*.settings %if 0%{?suse_version} > 1140 %{_includedir}/*.mod %endif %files devel-static %defattr(-,root,root) %{_libdir}/*.a %files examples %defattr(-,root,root) %{_datadir}/hdf5_examples %changelog