hdf5/hdf5.spec
Matthias Mailänder 2d24c31f44 Accepting request 390197 from home:michel_mno:branches:science
- add hdf5-mpi.patch same as fedora commit id
  78ddcff82b10fd80eafb7b2dc5e4ce2bb9ecbe3c
  should avoid transient hung of t_pflush1 test

OBS-URL: https://build.opensuse.org/request/show/390197
OBS-URL: https://build.opensuse.org/package/show/science/hdf5?expand=0&rev=25
2016-04-17 13:34:23 +00:00

1160 lines
46 KiB
RPMSpec

#
# spec file for package hdf5
#
# Copyright (c) 2016 SUSE LINUX 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/
#
%if 0%{?sles_version}
%define _mvapich2 1
%endif
%if 0%{?suse_version}
%define _openmpi 1
%endif
%define _mpi %{?_openmpi:openmpi} %{?_mvapich2:mvapich2}
# TODO: The so numbers autodetected by update_so_version.sh
# do not match the so numbers that are actually buit.
%define sonum 10
%define sonum_CXX 11
%define sonum_F 10
%define sonum_HL 10
%define sonum_HL_CXX 11
%define sonum_HL_F 10
%define sonum_TOOLS 10
Name: hdf5
Version: 1.8.16
Release: 0
Summary: Command-line programs for the HDF5 scientific data format
License: BSD-3-Clause
Group: Productivity/Scientific/Other
Url: http://www.hdfgroup.org/HDF5/
Source0: http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%{version}/src/hdf5-%{version}.tar.bz2
Source1000: baselibs.conf
Source1001: baselibs.conf.in
Source1002: update_so_version.sh
Patch0: hdf5-LD_LIBRARY_PATH.patch
Patch1: hdf5-non_void_return.patch
# not really needed but we want to get noticed if hdf5 doesn' t know our host
Patch2: hdf5-1.8.11-abort_unknown_host_config.patch
%ifarch %arm
Patch4: hdf5-1.8.10-tests-arm.patch
%endif
Patch5: hdf5-ldouble-ppc64le.patch
Patch6: hdf5-buildcompare.patch
Patch7: hdf5-mpi.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: krb5-devel
BuildRequires: openssl-devel
BuildRequires: zlib-devel
%if 0%{?_openmpi}
BuildRequires: openmpi-devel
%endif
%if 0%{?_mvapich2}
BuildRequires: mvapich2-devel
%endif
Requires: libhdf5-%{sonum} = %{version}
Requires: libhdf5_cpp%{sonum_CXX} = %{version}
Requires: libhdf5_fortran%{sonum_F} = %{version}
Requires: libhdf5_hl%{sonum_HL} = %{version}
Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
%description
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains utility functions for working with HDF5 files.
%package -n %{name}-openmpi
Summary: Command-line programs for the HDF5 scientific data format
Group: Productivity/Scientific/Other
Requires: libhdf5-%{sonum}-openmpi = %{version}
Requires: libhdf5_fortran%{sonum_F}-openmpi = %{version}
Requires: libhdf5_hl%{sonum_HL}-openmpi = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F}-openmpi = %{version}
%description -n %{name}-openmpi
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the openmpi version utility functions for working
with HDF5 files.
%package -n %{name}-mvapich2
Summary: Command-line programs for the HDF5 scientific data format
Group: Productivity/Scientific/Other
Requires: libhdf5-%{sonum}-mvapich2 = %{version}
Requires: libhdf5_fortran%{sonum_F}-mvapich2 = %{version}
Requires: libhdf5_hl%{sonum_HL}-mvapich2 = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F}-mvapich2 = %{version}
%description -n %{name}-mvapich2
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the mvapich2 version utility functions for working
with HDF5 files.
%package -n libhdf5-%{sonum}
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5 = %{version}
Obsoletes: libhdf5 < %{version}
%description -n libhdf5-%{sonum}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the HDF5 runtime libraries.
%package -n libhdf5-%{sonum}-openmpi
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5-openmpi = %{version}
Obsoletes: libhdf5-openmpi < %{version}
%description -n libhdf5-%{sonum}-openmpi
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the openmpi version of the HDF5 runtime libraries.
%package -n libhdf5-%{sonum}-mvapich2
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5-mvapich2 = %{version}
Obsoletes: libhdf5-mvapich2 < %{version}
%description -n libhdf5-%{sonum}-mvapich2
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the mvapich2 version of the HDF5 runtime libraries.
%package -n libhdf5_hl%{sonum_HL}
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_hl = %{version}
Obsoletes: libhdf5_hl < %{version}
%description -n libhdf5_hl%{sonum_HL}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the the high-level HDF5 runtime libraries.
%package -n libhdf5_hl%{sonum_HL}-openmpi
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_hl-openmpi = %{version}
Obsoletes: libhdf5_hl-openmpi < %{version}
%description -n libhdf5_hl%{sonum_HL}-openmpi
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the openmpi version of the high-level HDF5
runtime libraries.
%package -n libhdf5_hl%{sonum_HL}-mvapich2
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_hl-mvapich2 = %{version}
Obsoletes: libhdf5_hl-mvapich2 < %{version}
%description -n libhdf5_hl%{sonum_HL}-mvapich2
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the mvapich2 version of the high-level HDF5
runtime libraries.
%package -n libhdf5_cpp%{sonum_CXX}
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_cpp = %{version}
Obsoletes: libhdf5_cpp < %{version}
%description -n libhdf5_cpp%{sonum_CXX}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the HDF5 runtime libraries.
%package -n libhdf5_hl_cpp%{sonum_HL_CXX}
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_hl_cpp = %{version}
Obsoletes: libhdf5_hl_cpp < %{version}
%description -n libhdf5_hl_cpp%{sonum_HL_CXX}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the the high-level HDF5 runtime libraries.
%package -n libhdf5_fortran%{sonum_F}
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_fortran = %{version}
Obsoletes: libhdf5_fortran < %{version}
%description -n libhdf5_fortran%{sonum_F}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the HDF5 runtime libraries.
%package -n libhdf5_fortran%{sonum_F}-openmpi
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_fortran-openmpi = %{version}
Obsoletes: libhdf5_fortran-openmpi < %{version}
%description -n libhdf5_fortran%{sonum_F}-openmpi
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the openmpi version of the HDF5 runtime libraries.
%package -n libhdf5_fortran%{sonum_F}-mvapich2
Summary: Shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5_fortran-mvapich2 = %{version}
Obsoletes: libhdf5_fortran-mvapich2 < %{version}
%description -n libhdf5_fortran%{sonum_F}-mvapich2
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the mvapich2 version of the HDF5 runtime libraries.
%package -n libhdf5hl_fortran%{sonum_HL_F}
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5hl_fortran = %{version}
Obsoletes: libhdf5hl_fortran < %{version}
%description -n libhdf5hl_fortran%{sonum_HL_F}
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the the high-level HDF5 runtime libraries.
%package -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5hl_fortran-openmpi = %{version}
Obsoletes: libhdf5hl_fortran-openmpi < %{version}
%description -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the openmpi version of the high-level HDF5
runtime libraries.
%package -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
Summary: High-level shared libraries for the HDF5 scientific data format
Group: Productivity/Scientific/Other
# To avoid unresolvable errors due to multiple providers of the library
Provides: libhdf5hl_fortran-mvapich2 = %{version}
Obsoletes: libhdf5hl_fortran-mvapich2 < %{version}
%description -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains the mvapich2 version of the high-level HDF5
runtime libraries.
%package devel-data
Summary: Development data files for %{name}
Group: Development/Libraries/Other
%description devel-data
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains generic files needed to create projects that use
any version of HDF5.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: %{name}-devel-data = %{version}
# Required by Fortran programs?
Requires: libhdf5-%{sonum} = %{version}
Requires: libhdf5_cpp%{sonum_CXX} = %{version}
Requires: libhdf5_fortran%{sonum_F} = %{version}
Requires: libhdf5_hl%{sonum_HL} = %{version}
Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
%description devel
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains all files needed to create projects that use
HDF5.
%package openmpi-devel
Summary: Development files for %{name}-openmpi
Group: Development/Libraries/Parallel
Requires: %{name}-devel-data = %{version}
Requires: %{name}-openmpi = %{version}
# Required by Fortran programs?
Requires: libhdf5-%{sonum}-openmpi = %{version}
Requires: libhdf5_fortran%{sonum_F}-openmpi = %{version}
Requires: libhdf5_hl%{sonum_HL}-openmpi = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F}-openmpi = %{version}
%description openmpi-devel
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains all files needed to create projects that use
the openmpi version of HDF5.
%package mvapich2-devel
Summary: Development files for %{name}-mvapich2
Group: Development/Libraries/Parallel
Requires: %{name}-devel-data = %{version}
Requires: %{name}-mvapich2 = %{version}
# Required by Fortran programs?
Requires: libhdf5-%{sonum}-mvapich2 = %{version}
Requires: libhdf5_fortran%{sonum_F}-mvapich2 = %{version}
Requires: libhdf5_hl%{sonum_HL}-mvapich2 = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F}-mvapich2 = %{version}
%description mvapich2-devel
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package contains all files needed to create projects that use
the mvapich2 version of HDF5.
%package devel-static
Summary: Static development files for %{name}
Group: Development/Libraries/Other
Requires: %{name}-devel = %{version}
%description devel-static
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package provides the static libraries for HDF5.
%package openmpi-devel-static
Summary: Static development files for %{name}-openmpi
Group: Development/Libraries/Parallel
Requires: %{name}-openmpi-devel = %{version}
%description openmpi-devel-static
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package provides the static libraries for the openmpi version of HDF5.
%package mvapich2-devel-static
Summary: Static development files for %{name}-mvapich2
Group: Development/Libraries/Parallel
Requires: %{name}-mvapich2-devel = %{version}
%description mvapich2-devel-static
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package provides the static libraries for the mvapich2 version of HDF5.
%package examples
Summary: Examples for %{name}
Group: Documentation/Other
Requires: libhdf5-%{sonum} = %{version}
Requires: libhdf5_cpp%{sonum_CXX} = %{version}
Requires: libhdf5_fortran%{sonum_F} = %{version}
Requires: libhdf5_hl%{sonum_HL} = %{version}
Requires: libhdf5_hl_cpp%{sonum_HL_CXX} = %{version}
Requires: libhdf5hl_fortran%{sonum_HL_F} = %{version}
%description examples
HDF5 is a data model, library, and file format for storing and
managing data. It supports an unlimited variety of datatypes, and
is designed for flexible and efficient I/O and for high volume and
complex data. HDF5 is portable and is extensible, allowing
applications to evolve in their use of HDF5.
The HDF5 technology suite is designed to organize, store, discover,
access, analyze, share, and preserve diverse, complex data in
continuously evolving heterogeneous computing and storage environments.
HDF5 supports all types of data stored digitally, regardless of origin
or size. Petabytes of remote sensing data collected by satellites,
terabytes of computational results from nuclear testing models, and
megabytes of high-resolution MRI brain scans are stored in HDF5 files,
together with metadata necessary for efficient data sharing,
processing, visualization, and archiving.
This package provides examples of HDF5 library use.
%prep
%setup -q
%patch0 -p1 -b .LD_LIBRARY_PATH
%patch1 -p0 -b .non_void_return
%patch2 -p0 -b .abort_unknown_host_config
%ifarch %arm
%patch4 -p0 -b .tests-arm
%endif
%patch5 -p1
%patch6 -p1
%patch7 -p1
echo "prepare parallel builds: %_mpi"
for build_dir in build %_mpi; do
mkdir $build_dir
ln -s ../configure $build_dir
done
%build
export CC=gcc
export CXX=g++
export F9X=gfortran
# workaround for known gcc issue, see RELEASE.txt
if gcc --version |grep -q " 4\.[68]"; then
export CFLAGS="${RPM_OPT_FLAGS/-O2/-O0}"
fi
%ifarch %arm
# we want to have useful H5_CFLAGS on arm too
test -e config/linux-gnueabi || cp config/linux-gnu config/linux-gnueabi
%endif
# NOTE: --enable-unsupported is required when --enable-fortran
# and/or --enable-cxx is enabled along with --enable-threadsafe.
# Building with thise combination results in thread-safe C
# libraries and non-thread-safe fotran and/or C++ libraries. So
# you have to explicitly allow building the thread-safe C
# library and the non-thread-safe C++ and fortran libraries in
# order to make sure people don't assume that their fotran or
# C++ code is thread-safe. Since our users are going to be
# accessing this through other programs, this doesn't matter.
pushd build
%configure \
--docdir=%{_docdir}/%{name} \
--disable-dependency-tracking \
--enable-fortran \
--enable-fortran2003 \
--enable-unsupported \
--enable-hl \
--enable-shared \
--enable-cxx \
--enable-threadsafe \
--enable-production \
--with-pthread
make V=1 %{?_smp_mflags}
popd
for mpi in %_mpi;
do
pushd $mpi
export CC="%{_libdir}/mpi/gcc/$mpi/bin/mpicc"
export FC="%{_libdir}/mpi/gcc/$mpi/bin/mpif90"
export F77="%{_libdir}/mpi/gcc/$mpi/bin/mpif77"
export LD_LIBRARY_PATH="%{_libdir}/mpi/gcc/$mpi/%_lib"
%configure \
--docdir=%{_docdir}/%{name} \
--prefix=%{_libdir}/mpi/gcc/$mpi \
--exec-prefix=%{_libdir}/mpi/gcc/$mpi \
--bindir=%{_libdir}/mpi/gcc/$mpi/bin \
--libdir=%{_libdir}/mpi/gcc/$mpi/%_lib \
--datadir=%{_libdir}/mpi/gcc/$mpi/share \
--includedir=%{_libdir}/mpi/gcc/$mpi/include \
--disable-dependency-tracking \
--enable-fortran \
--enable-fortran2003 \
--enable-unsupported \
--enable-hl \
--enable-shared \
--enable-threadsafe \
--enable-parallel \
--enable-production \
--with-pthread
make %{?_smp_mflags}
popd
done
%install
# install serial and parallel builds, (the serial one will win in case of
# duplicate files)
for build_dir in %_mpi build; do
make install DESTDIR="%buildroot" -C "$build_dir"
done
find "%buildroot/%{_libdir}" -type f -name "*.la" | xargs rm -f
find %{buildroot}%{_datadir}/hdf5_examples -type f \
| grep -v ".sh$" | xargs chmod 644
# delete examples from parallel builds
rm -rf %{buildroot}%{_libdir}/mpi/gcc/*/share/hdf5_examples
%if 0%{?suse_version} >= 1110
%fdupes -s %{buildroot}/%{_datadir}
%endif
# rpm macro for version checking
mkdir -p %{buildroot}%{_sysconfdir}/rpm
cat > %{buildroot}%{_sysconfdir}/rpm/macros.hdf5 <<EOF
#
# RPM macros for hdf5 packaging
#
%_hdf5_sonum %{sonum}
%_hdf5_version %{version}
EOF
%check
%if 0%{?qemu_user_space_build}
# default timeout is 1200 seconds
export HDF5_ALARM_SECONDS=3600
%endif
make -C build check
# ignore errors for parallel builds
export HDF5_Make_Ignore=yes
for mpi in %_mpi; do
make -C $mpi check
done
%post -n libhdf5-%{sonum} -p /sbin/ldconfig
%postun -n libhdf5-%{sonum} -p /sbin/ldconfig
%post -n libhdf5_hl%{sonum_HL} -p /sbin/ldconfig
%postun -n libhdf5_hl%{sonum_HL} -p /sbin/ldconfig
%post -n libhdf5_cpp%{sonum_CXX} -p /sbin/ldconfig
%postun -n libhdf5_cpp%{sonum_CXX} -p /sbin/ldconfig
%post -n libhdf5_hl_cpp%{sonum_HL_CXX} -p /sbin/ldconfig
%postun -n libhdf5_hl_cpp%{sonum_HL_CXX} -p /sbin/ldconfig
%post -n libhdf5_fortran%{sonum_F} -p /sbin/ldconfig
%postun -n libhdf5_fortran%{sonum_F} -p /sbin/ldconfig
%post -n libhdf5hl_fortran%{sonum_HL_F} -p /sbin/ldconfig
%postun -n libhdf5hl_fortran%{sonum_HL_F} -p /sbin/ldconfig
%if 0%{?_openmpi}
%post -n libhdf5-%{sonum}-openmpi -p /sbin/ldconfig
%postun -n libhdf5-%{sonum}-openmpi -p /sbin/ldconfig
%post -n libhdf5_hl%{sonum_HL}-openmpi -p /sbin/ldconfig
%postun -n libhdf5_hl%{sonum_HL}-openmpi -p /sbin/ldconfig
%post -n libhdf5_fortran%{sonum_F}-openmpi -p /sbin/ldconfig
%postun -n libhdf5_fortran%{sonum_F}-openmpi -p /sbin/ldconfig
%post -n libhdf5hl_fortran%{sonum_HL_F}-openmpi -p /sbin/ldconfig
%postun -n libhdf5hl_fortran%{sonum_HL_F}-openmpi -p /sbin/ldconfig
%endif
%if 0%{?_mvapich2}
%post -n libhdf5-%{sonum}-mvapich2 -p /sbin/ldconfig
%postun -n libhdf5-%{sonum}-mvapich2 -p /sbin/ldconfig
%post -n libhdf5_hl%{sonum_HL}-mvapich2 -p /sbin/ldconfig
%postun -n libhdf5_hl%{sonum_HL}-mvapich2 -p /sbin/ldconfig
%post -n libhdf5_fortran%{sonum_F}-mvapich2 -p /sbin/ldconfig
%postun -n libhdf5_fortran%{sonum_F}-mvapich2 -p /sbin/ldconfig
%post -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2 -p /sbin/ldconfig
%postun -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2 -p /sbin/ldconfig
%endif
%files
%defattr(-,root,root)
%{_bindir}/gif2h5
%{_bindir}/h52gif
%{_bindir}/h5copy
%{_bindir}/h5debug
%{_bindir}/h5diff
%{_bindir}/h5dump
%{_bindir}/h5import
%{_bindir}/h5jam
%{_bindir}/h5ls
%{_bindir}/h5mkgrp
%{_bindir}/h5perf_serial
%{_bindir}/h5redeploy
%{_bindir}/h5repack
%{_bindir}/h5repart
%{_bindir}/h5stat
%{_bindir}/h5unjam
%files -n libhdf5-%{sonum}
%defattr(-,root,root)
%doc COPYING ACKNOWLEDGMENTS README.txt
%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt
%doc release_docs/HISTORY-1_8.txt
%doc release_docs/RELEASE.txt
%defattr(0755,root,root)
%{_libdir}/libhdf5.so.%{sonum}
%{_libdir}/libhdf5.so.%{sonum}.*
%files -n libhdf5_hl%{sonum_HL}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/libhdf5_hl.so.%{sonum_HL}
%{_libdir}/libhdf5_hl.so.%{sonum_HL}.*
%files -n libhdf5_cpp%{sonum_CXX}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/libhdf5_cpp.so.%{sonum_CXX}
%{_libdir}/libhdf5_cpp.so.%{sonum_CXX}.*
%files -n libhdf5_hl_cpp%{sonum_HL_CXX}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}
%{_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}.*
%files -n libhdf5_fortran%{sonum_F}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/libhdf5_fortran.so.%{sonum_F}
%{_libdir}/libhdf5_fortran.so.%{sonum_F}.*
%files -n libhdf5hl_fortran%{sonum_HL_F}
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}
%{_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
%files devel-data
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/rpm/macros.hdf5
%files devel
%defattr(-,root,root)
%{_bindir}/h5c++
%{_bindir}/h5cc
%{_bindir}/h5fc
%{_includedir}/*.h
%{_libdir}/*.so
%{_libdir}/*.settings
%{_includedir}/*.mod
%files devel-static
%defattr(-,root,root)
%{_libdir}/*.a
%files examples
%defattr(-,root,root)
%{_datadir}/hdf5_examples
%if 0%{?_openmpi}
%files -n %{name}-openmpi
%defattr(-,root,root)
%{_libdir}/mpi/gcc/openmpi/bin/gif2h5
%{_libdir}/mpi/gcc/openmpi/bin/h52gif
%{_libdir}/mpi/gcc/openmpi/bin/h5copy
%{_libdir}/mpi/gcc/openmpi/bin/h5debug
%{_libdir}/mpi/gcc/openmpi/bin/h5diff
%{_libdir}/mpi/gcc/openmpi/bin/h5dump
%{_libdir}/mpi/gcc/openmpi/bin/h5import
%{_libdir}/mpi/gcc/openmpi/bin/h5jam
%{_libdir}/mpi/gcc/openmpi/bin/h5ls
%{_libdir}/mpi/gcc/openmpi/bin/h5mkgrp
%{_libdir}/mpi/gcc/openmpi/bin/h5perf
%{_libdir}/mpi/gcc/openmpi/bin/h5perf_serial
%{_libdir}/mpi/gcc/openmpi/bin/h5redeploy
%{_libdir}/mpi/gcc/openmpi/bin/h5repack
%{_libdir}/mpi/gcc/openmpi/bin/h5repart
%{_libdir}/mpi/gcc/openmpi/bin/h5stat
%{_libdir}/mpi/gcc/openmpi/bin/h5unjam
%{_libdir}/mpi/gcc/openmpi/bin/ph5diff
%files -n libhdf5-%{sonum}-openmpi
%defattr(-,root,root)
%doc COPYING ACKNOWLEDGMENTS README.txt
%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt
%doc release_docs/HISTORY-1_8.txt
%doc release_docs/RELEASE.txt
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5.so.%{sonum}
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5.so.%{sonum}.*
%files -n libhdf5_hl%{sonum_HL}-openmpi
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_hl.so.%{sonum_HL}
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_hl.so.%{sonum_HL}.*
%files -n libhdf5_fortran%{sonum_F}-openmpi
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_fortran.so.%{sonum_F}
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5_fortran.so.%{sonum_F}.*
%files -n libhdf5hl_fortran%{sonum_HL_F}-openmpi
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}
%{_libdir}/mpi/gcc/openmpi/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
%files openmpi-devel
%defattr(-,root,root)
%{_libdir}/mpi/gcc/openmpi/bin/h5pcc
%{_libdir}/mpi/gcc/openmpi/bin/h5pfc
%{_libdir}/mpi/gcc/openmpi/include/*.h
%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.so
%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.settings
%{_libdir}/mpi/gcc/openmpi/include/*.mod
%files openmpi-devel-static
%defattr(-,root,root)
%{_libdir}/mpi/gcc/openmpi/%{_lib}/*.a
%endif
%if 0%{?_mvapich2}
%files -n %{name}-mvapich2
%defattr(-,root,root)
%{_libdir}/mpi/gcc/mvapich2/bin/gif2h5
%{_libdir}/mpi/gcc/mvapich2/bin/h52gif
%{_libdir}/mpi/gcc/mvapich2/bin/h5copy
%{_libdir}/mpi/gcc/mvapich2/bin/h5debug
%{_libdir}/mpi/gcc/mvapich2/bin/h5diff
%{_libdir}/mpi/gcc/mvapich2/bin/h5dump
%{_libdir}/mpi/gcc/mvapich2/bin/h5import
%{_libdir}/mpi/gcc/mvapich2/bin/h5jam
%{_libdir}/mpi/gcc/mvapich2/bin/h5ls
%{_libdir}/mpi/gcc/mvapich2/bin/h5mkgrp
%{_libdir}/mpi/gcc/mvapich2/bin/h5perf
%{_libdir}/mpi/gcc/mvapich2/bin/h5perf_serial
%{_libdir}/mpi/gcc/mvapich2/bin/h5redeploy
%{_libdir}/mpi/gcc/mvapich2/bin/h5repack
%{_libdir}/mpi/gcc/mvapich2/bin/h5repart
%{_libdir}/mpi/gcc/mvapich2/bin/h5stat
%{_libdir}/mpi/gcc/mvapich2/bin/h5unjam
%{_libdir}/mpi/gcc/mvapich2/bin/ph5diff
%files -n libhdf5-%{sonum}-mvapich2
%defattr(-,root,root)
%doc COPYING ACKNOWLEDGMENTS README.txt
%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt
%doc release_docs/HISTORY-1_8.txt
%doc release_docs/RELEASE.txt
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5.so.%{sonum}
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5.so.%{sonum}.*
%files -n libhdf5_hl%{sonum_HL}-mvapich2
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_hl.so.%{sonum_HL}
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_hl.so.%{sonum_HL}.*
%files -n libhdf5_fortran%{sonum_F}-mvapich2
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_fortran.so.%{sonum_F}
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5_fortran.so.%{sonum_F}.*
%files -n libhdf5hl_fortran%{sonum_HL_F}-mvapich2
%defattr(-,root,root)
%doc COPYING
%defattr(0755,root,root)
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/libhdf5hl_fortran.so.%{sonum_HL_F}.*
%files mvapich2-devel
%defattr(-,root,root)
%{_libdir}/mpi/gcc/mvapich2/bin/h5pcc
%{_libdir}/mpi/gcc/mvapich2/bin/h5pfc
%{_libdir}/mpi/gcc/mvapich2/include/*.h
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.so
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.settings
%{_libdir}/mpi/gcc/mvapich2/include/*.mod
%files mvapich2-devel-static
%defattr(-,root,root)
%{_libdir}/mpi/gcc/mvapich2/%{_lib}/*.a
%endif
%changelog