%global snaprel %{nil} # NOTE: Try not to realease new versions to released versions of Fedora # You need to recompile all users of HDF5 for each version change Name: hdf5 Version: 1.8.9 Release: 2%{?dist} Summary: A general purpose library and file format for storing scientific data License: BSD Group: System Environment/Libraries 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-1.8.8-tstlite.patch # Fix typo bug in parallel h5diff Patch3: hdf5-ph5diff.patch BuildRequires: krb5-devel, openssl-devel, zlib-devel, gcc-gfortran, time # Needed for mpi tests BuildRequires: openssh-clients %global with_mpich2 1 %global with_openmpi 1 %if 0%{?rhel} %ifarch ppc64 # No mpich2 on ppc64 in EL %global with_mpich2 0 %endif %endif %ifarch s390 s390x %{arm} # No openmpi on s390(x) %global with_openmpi 0 %endif %if %{with_mpich2} %global mpi_list mpich2 %endif %if %{with_openmpi} %global mpi_list %{?mpi_list} openmpi %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 devel Summary: HDF5 development files Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: zlib-devel %description devel HDF5 development headers and libraries. %package static Summary: HDF5 static libraries Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static HDF5 static libraries. %if %{with_mpich2} %package mpich2 Summary: HDF5 mpich2 libraries Group: Development/Libraries Requires: mpich2 BuildRequires: mpich2-devel %description mpich2 HDF5 parallel mpich2 libraries %package mpich2-devel Summary: HDF5 mpich2 development files Group: Development/Libraries Requires: %{name}-mpich2%{?_isa} = %{version}-%{release} Requires: mpich2 %description mpich2-devel HDF5 parallel mpich2 development files %package mpich2-static Summary: HDF5 mpich2 static libraries Group: Development/Libraries Requires: %{name}-mpich2-devel%{?_isa} = %{version}-%{release} %description mpich2-static HDF5 parallel mpich2 static libraries %endif %if %{with_openmpi} %package openmpi Summary: HDF5 openmpi libraries Group: Development/Libraries Requires: openmpi BuildRequires: openmpi-devel %description openmpi HDF5 parallel openmpi libraries %package openmpi-devel Summary: HDF5 openmpi development files Group: Development/Libraries Requires: %{name}-openmpi%{_isa} = %{version}-%{release} Requires: openmpi-devel %description openmpi-devel HDF5 parallel openmpi development files %package openmpi-static Summary: HDF5 openmpi static libraries Group: Development/Libraries Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} %description openmpi-static HDF5 parallel openmpi static libraries %endif %prep #setup -q -n %{name}-%{version}%{?snaprel} %setup -q %patch0 -p1 -b .LD_LIBRARY_PATH %ifarch ppc64 s390x # the tstlite test fails with "stack smashing detected" on these arches %patch1 -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 #Do out of tree builds %global _configure ../configure #Common configure options %global configure_opts \\\ --disable-dependency-tracking \\\ --enable-fortran \\\ --enable-fortran2003 \\\ --enable-hl \\\ --enable-shared \\\ %{nil} # --enable-cxx and --enable-parallel flags are incompatible # --with-mpe=DIR Use MPE instrumentation [default=no] # --enable-cxx/fortran/parallel and --enable-threadsafe flags are incompatible #Serial build export CC=gcc export CXX=g++ export F9X=gfortran export CFLAGS="${RPM_OPT_FLAGS/O2/O0}" mkdir build pushd build ln -s ../configure . %configure \ %{configure_opts} \ --enable-cxx make popd #MPI builds export CC=mpicc export CXX=mpicxx export F9X=mpif90 for mpi in %{mpi_list} do mkdir $mpi pushd $mpi module load $mpi-%{_arch} ln -s ../configure . %configure \ %{configure_opts} \ --enable-parallel \ --libdir=%{_libdir}/$mpi/lib \ --bindir=%{_libdir}/$mpi/bin \ --sbindir=%{_libdir}/$mpi/sbin \ --includedir=%{_includedir}/$mpi-%{_arch} \ --datarootdir=%{_libdir}/$mpi/share \ --mandir=%{_libdir}/$mpi/share/man \ make module purge popd done %install make -C build install DESTDIR=${RPM_BUILD_ROOT} rm $RPM_BUILD_ROOT/%{_libdir}/*.la for mpi in %{mpi_list} do module load $mpi-%{_arch} make -C $mpi install DESTDIR=${RPM_BUILD_ROOT} rm $RPM_BUILD_ROOT/%{_libdir}/$mpi/lib/*.la module purge done #Fortran modules mkdir -p ${RPM_BUILD_ROOT}%{_fmoddir} mv ${RPM_BUILD_ROOT}%{_includedir}/*.mod ${RPM_BUILD_ROOT}%{_fmoddir} #Fixup example permissions find ${RPM_BUILD_ROOT}%{_datadir} \( -name '*.[ch]*' -o -name '*.f90' \) -exec chmod -x {} + #Fixup headers and scripts for multiarch %ifarch x86_64 ppc64 ia64 s390x sparc64 alpha sed -i -e s/H5pubconf.h/H5pubconf-64.h/ ${RPM_BUILD_ROOT}%{_includedir}/H5public.h mv ${RPM_BUILD_ROOT}%{_includedir}/H5pubconf.h \ ${RPM_BUILD_ROOT}%{_includedir}/H5pubconf-64.h for x in h5c++ h5cc h5fc do mv ${RPM_BUILD_ROOT}%{_bindir}/${x} \ ${RPM_BUILD_ROOT}%{_bindir}/${x}-64 install -m 0755 %SOURCE1 ${RPM_BUILD_ROOT}%{_bindir}/${x} done %else sed -i -e s/H5pubconf.h/H5pubconf-32.h/ ${RPM_BUILD_ROOT}%{_includedir}/H5public.h mv ${RPM_BUILD_ROOT}%{_includedir}/H5pubconf.h \ ${RPM_BUILD_ROOT}%{_includedir}/H5pubconf-32.h for x in h5c++ h5cc h5fc do mv ${RPM_BUILD_ROOT}%{_bindir}/${x} \ ${RPM_BUILD_ROOT}%{_bindir}/${x}-32 install -m 0755 %SOURCE1 ${RPM_BUILD_ROOT}%{_bindir}/${x} done %endif # rpm macro for version checking mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/rpm cat > ${RPM_BUILD_ROOT}%{_sysconfdir}/rpm/macros.hdf5 < - 1.8.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Tue May 15 2012 Orion Poplawski 1.8.9-1 - Update to 1.8.9 * Mon Feb 20 2012 Dan Horák 1.8.8-9 - use %%{mpi_list} also for tests * Wed Feb 15 2012 Peter Robinson - 1.8.8-8 - disable openmpi for ARM as we currently don't have it * Fri Feb 10 2012 Orion Poplawski 1.8.8-7 - Add patch to fix parallel mpi tests - Add patch to fix bug in parallel h5diff * Sat Jan 7 2012 Orion Poplawski 1.8.8-6 - Enable Fortran 2003 support (bug 772387) * Wed Dec 21 2011 Dan Horák 1.8.8-5 - reintroduce the tstlite patch for ppc64 and s390x * Thu Dec 01 2011 Caolán McNamara 1.8.8-4 - Related: rhbz#758334 hdf5 doesn't build on ppc64 * Fri Nov 25 2011 Orion Poplawski 1.8.8-3 - Enable static MPI builds * Wed Nov 16 2011 Orion Poplawski 1.8.8-2 - Add rpm macro %%{_hdf5_version} for convenience * Tue Nov 15 2011 Orion Poplawski 1.8.8-1 - Update to 1.8.8 - Drop tstlite patch - Add patch to avoid setting LD_LIBRARY_PATH * Wed Jun 01 2011 Karsten Hopp 1.8.7-2 - drop ppc64 longdouble patch, not required anymore * Tue May 17 2011 Orion Poplawski 1.8.7-1 - Update to 1.8.7 * Tue Mar 29 2011 Deji Akingunola - 1.8.6-2 - Rebuild for mpich2 soname bump * Fri Feb 18 2011 Orion Poplawski 1.8.6-1 - Update to 1.8.6-1 - Update tstlite patch - not fixed yet * Wed Feb 09 2011 Fedora Release Engineering - 1.8.5.patch1-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sun Feb 6 2011 Orion Poplawski 1.8.5.patch1-7 - Add Requires: zlib-devel to hdf5-devel * Sun Dec 12 2010 Dan Horák 1.8.5.patch1-6 - fully conditionalize MPI support * Wed Dec 8 2010 Orion Poplawski 1.8.5.patch1-5 - Add EL6 compatibility - no mpich2 on ppc64 * Wed Oct 27 2010 Orion Poplawski 1.8.5.patch1-4 - Really fixup all permissions * Wed Oct 27 2010 Orion Poplawski 1.8.5.patch1-3 - Add docs to the mpi packages - Fixup example source file permissions * Tue Oct 26 2010 Orion Poplawski 1.8.5.patch1-2 - Build parallel hdf5 packages for mpich2 and openmpi - Rework multiarch support and drop multiarch patch * Tue Sep 7 2010 Orion Poplawski 1.8.5.patch1-1 - Update to 1.8.5-patch1 * Wed Jun 23 2010 Orion Poplawski 1.8.5-4 - Re-add rebased tstlite patch - not fixed yet * Wed Jun 23 2010 Orion Poplawski 1.8.5-3 - Update longdouble patch for 1.8.5 * Wed Jun 23 2010 Orion Poplawski 1.8.5-2 - Re-add longdouble patch on ppc64 for EPEL builds * Mon Jun 21 2010 Orion Poplawski 1.8.5-1 - Update to 1.8.5 - Drop patches fixed upstream * Mon Mar 1 2010 Orion Poplawski 1.8.4.patch1-1 - Update to 1.8.4-patch1 * Wed Jan 6 2010 Orion Poplawski 1.8.4-1 - Update to 1.8.4 - Must compile with -O0 due to gcc-4.4 incompatability - No longer need -fno-strict-aliasing * Thu Oct 1 2009 Orion Poplawski 1.8.3-3.snap12 - Update to 1.8.3-snap12 - Update signal patch - Drop detect and filter-as-option patch fixed upstream - Drop ppc only patch - Add patch to skip tstlite test for now, problem reported upstream - Fixup some source file permissions * Fri Jul 24 2009 Fedora Release Engineering - 1.8.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Tue Jun 2 2009 Orion Poplawski 1.8.3-1 - Update to 1.8.3 - Update signal and detect patches - Drop open patch fixed upstream * Sat Apr 18 2009 Karsten Hopp 1.8.2-1.1 - fix s390x builds, s390x is 64bit, s390 is 32bit * Mon Feb 23 2009 Orion Poplawski 1.8.2-1 - Update to 1.8.2 - Add patch to compile H5detect without optimization - make detection of datatype characteristics more robust - esp. long double - Update signal patch - Drop destdir patch fixed upstream - Drop scaleoffset patch - Re-add -fno-strict-aliasing - Keep settings file needed for -showconfig (bug #481032) - Wrapper script needs to pass arguments (bug #481032) * Wed Oct 8 2008 Orion Poplawski 1.8.1-3 - Add sparc64 to 64-bit conditionals * Fri Sep 26 2008 Orion Poplawski 1.8.1-2 - Add patch to filter -little as option used on sh arch (#464052) * Thu Jun 5 2008 Orion Poplawski 1.8.1-1 - Update to 1.8.1 * Tue May 27 2008 Orion Poplawski 1.8.1-0.rc1.1 - Update to 1.8.1-rc1 * Tue May 13 2008 Orion Poplawski 1.8.0.snap5-2 - Use new %%{_fmoddir} macro - Re-enable ppc64, disable failing tests. Failing tests are for experimental long double support. * Mon May 5 2008 Orion Poplawski 1.8.0.snap5-1 - Update to 1.8.0-snap5 - Remove --enable-threadsafe, incompatible with --enable-cxx and --enable-fortran - ExcludeArch ppc64 until we can get it to build (bug #445423) * Tue Mar 4 2008 Orion Poplawski 1.8.0-2 - Remove failing test for now * Fri Feb 29 2008 Orion Poplawski 1.8.0-1 - Update to 1.8.0, drop upstreamed patches - Update signal patch - Move static libraries into -static sub-package - Make -devel multiarch (bug #341501) * Wed Feb 6 2008 Orion Poplawski 1.6.6-7 - Add patch to fix strict-aliasing - Disable production mode to enable debuginfo * Tue Feb 5 2008 Orion Poplawski 1.6.6-6 - Add patch to fix calling free() in H5PropList.cpp * Tue Feb 5 2008 Orion Poplawski 1.6.6-5 - Add patch to support s390 (bug #431510) * Mon Jan 7 2008 Orion Poplawski 1.6.6-4 - Add patches to support sparc (bug #427651) * Tue Dec 4 2007 Orion Poplawski 1.6.6-3 - Rebuild against new openssl * Fri Nov 23 2007 Orion Poplawski 1.6.6-2 - Add patch to build on alpha (bug #396391) * Wed Oct 17 2007 Orion Poplawski 1.6.6-1 - Update to 1.6.6, drop upstreamed patches - Explicitly set compilers * Fri Aug 24 2007 Orion Poplawski 1.6.5-9 - Update license tag to BSD - Rebuild for BuildID * Wed Aug 8 2007 Orion Poplawski 1.6.5-8 - Fix memset typo - Pass mode to open with O_CREAT * Mon Feb 12 2007 Orion Poplawski 1.6.5-7 - New project URL - Add patch to use POSIX sort key option - Remove useless and multilib conflicting Makefiles from html docs (bug #228365) - Make hdf5-devel own %%{_docdir}/%%{name} * Tue Aug 29 2006 Orion Poplawski 1.6.5-6 - Rebuild for FC6 * Wed Mar 15 2006 Orion Poplawski 1.6.5-5 - Change rpath patch to not need autoconf - Add patch for libtool on x86_64 - Fix shared lib permissions * Mon Mar 13 2006 Orion Poplawski 1.6.5-4 - Add patch to avoid HDF setting the compiler flags * Mon Feb 13 2006 Orion Poplawski 1.6.5-3 - Rebuild for gcc/glibc changes * Wed Dec 21 2005 Orion Poplawski 1.6.5-2 - Don't ship h5perf with missing library * Wed Dec 21 2005 Orion Poplawski 1.6.5-1 - Update to 1.6.5 * Wed Dec 21 2005 Orion Poplawski 1.6.4-9 - Rebuild * Wed Nov 30 2005 Orion Poplawski 1.6.4-8 - Package fortran files properly - Move compiler wrappers to devel * Fri Nov 18 2005 Orion Poplawski 1.6.4-7 - Add patch for fortran compilation on ppc * Wed Nov 16 2005 Orion Poplawski 1.6.4-6 - Bump for new openssl * Tue Sep 20 2005 Orion Poplawski 1.6.4-5 - Enable fortran since the gcc bug is now fixed * Tue Jul 05 2005 Orion Poplawski 1.6.4-4 - Make example scripts executable * Wed Jul 01 2005 Orion Poplawski 1.6.4-3 - Add --enable-threads --with-pthreads to configure - Add %%check - Add some %%docs - Use %%makeinstall - Add patch to fix test for h5repack - Add patch to fix h5diff_attr.c * Mon Jun 27 2005 Tom "spot" Callaway 1.6.4-2 - remove szip from spec, since szip license doesn't meet Fedora standards * Sun Apr 3 2005 Tom "spot" Callaway 1.6.4-1 - inital package for Fedora Extras