hdf5/hdf5.spec
Stephan Kulow 536bc903c7 Accepting request 125782 from devel:libraries:c_c++
- remove unused source file h5comp
 - enable all tests on ppc again (remove hdf5-1.8.8-tstlite.patch)
 - build fixes for arm
   * avoid some false positives "no-return-in-nonvoid-function"
   * disable some tests on arm only (hdf5-1.8.9-tests-arm.patch) (forwarded request 125770 from rudi_m)

OBS-URL: https://build.opensuse.org/request/show/125782
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hdf5?expand=0&rev=5
2012-06-26 13:51:23 +00:00

245 lines
6.8 KiB
RPMSpec

#
# 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
Patch0: hdf5-LD_LIBRARY_PATH.patch
Patch1: hdf5-non_void_return.patch
# Fix typo bug in parallel h5diff (fixed in 1.9.x)
Patch3: hdf5-ph5diff.patch
%ifarch %arm
Patch4: hdf5-1.8.9-tests-arm.patch
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: gcc-c++
%if 0%{?suse_version} > 1140
BuildRequires: gcc-fortran
%endif
BuildRequires: krb5-devel
BuildRequires: openssl-devel
BuildRequires: zlib-devel
%if 0%{?suse_version} >= 1110
BuildRequires: fdupes
%endif
%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 -p0 -b .non_void_return
%patch3 -p1 -b .ph5diff
%ifarch %arm
%patch4 -p0 -b .tests-arm
%endif
%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
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
%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 R packaging
#
#
# Make R search index.txt
#
%_hdf5_version %{version}
EOF
%check
make check
%post -n %{libname}-%{hdf5_libver} -p /sbin/ldconfig
%postun -n %{libname}-%{hdf5_libver} -p /sbin/ldconfig
%post -n %{libname}_hl%{hdf5_libver} -p /sbin/ldconfig
%postun -n %{libname}_hl%{hdf5_libver} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc COPYING MANIFEST README.txt release_docs/RELEASE.txt
%doc release_docs/HISTORY-1_0-1_8_0_rc3.txt release_docs/HISTORY-1_8.txt
%doc release_docs/RELEASE.txt
%{_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 %{libname}-%{hdf5_libver}
%defattr(0755,root,root)
%{_libdir}/libhdf5.so.*
%{_libdir}/libhdf5_cpp.so.*
%if 0%{?suse_version} > 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