Date: Saturday, April 11, 2020 @ 00:29:45 Author: archange Revision: 613201
archrelease: copy trunk to community-staging-x86_64 Added: hdf5-openmpi/repos/community-staging-x86_64/ hdf5-openmpi/repos/community-staging-x86_64/PKGBUILD (from rev 613200, hdf5-openmpi/trunk/PKGBUILD) hdf5-openmpi/repos/community-staging-x86_64/mpi.patch (from rev 613200, hdf5-openmpi/trunk/mpi.patch) -----------+ PKGBUILD | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mpi.patch | 18 +++++++++++ 2 files changed, 111 insertions(+) Copied: hdf5-openmpi/repos/community-staging-x86_64/PKGBUILD (from rev 613200, hdf5-openmpi/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2020-04-11 00:29:45 UTC (rev 613201) @@ -0,0 +1,93 @@ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Maintainer: Bruno Pagani <archa...@archlinux.org> +# Contributor: Stefan Husmann <stefan-husm...@t-online.de> +# Contributor: damir <da...@archlinux.org> +# Contributor: Tom K <t...@runbox.com> +# Contributor: Jed Brown <j...@59a2.org> +# Contributor: Simone Pezzuto <junki....@gmail.com> + +_pkgname=hdf5 +_mpi=openmpi +pkgname=${_pkgname}-${_mpi} +pkgver=1.12.0 +pkgrel=1 +pkgdesc="General purpose library and file format for storing scientific data (${_mpi} version)" +arch=(x86_64) +url="https://www.hdfgroup.org/hdf5" +license=(custom) +depends=(zlib libaec bash ${_mpi}) +makedepends=(cmake time gcc-fortran) +provides=(hdf5 hdf5-cpp-fortran hdf5-fortran-${_mpi}) +conflicts=(hdf5) +replaces=(hdf5-fortran-${_mpi}) +options=(staticlibs) +source=("https://support.hdfgroup.org/ftp/HDF5/releases/${_pkgname}-${pkgver:0:4}/${_pkgname}-${pkgver/_/-}/src/${_pkgname}-${pkgver/_/-}.tar.bz2") +sha256sums=('97906268640a6e9ce0cde703d5a71c9ac3092eded729591279bf2e3ca9765f61') + +build() { + # Crazy workaround: run CMake to generate pkg-config file + mkdir -p build && cd build + CXX="mpicxx" \ + CC="mpicc" \ + FC="mpif90" \ + F9X="mpif90" \ + RUNPARALLEL="mpirun" \ + OMPI_MCA_disable_memory_allocator=1 \ + cmake ../${_pkgname}-${pkgver/_/-} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DALLOW_UNSUPPORTED=ON \ + -DHDF5_BUILD_HL_LIB=ON \ + -DHDF5_BUILD_CPP_LIB=ON \ + -DHDF5_BUILD_FORTRAN=ON \ + -DHDF5_ENABLE_PARALLEL=ON \ + -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DHDF5_ENABLE_SZIP_ENCODING=ON + # But don’t build with it, it’s quite broken + cd ../${_pkgname}-${pkgver/_/-} + ./configure \ + CXX="mpicxx" \ + CC="mpicc" \ + FC="mpif90" \ + F9X="mpif90" \ + RUNPARALLEL="mpirun" \ + OMPI_MCA_disable_memory_allocator=1 \ + --prefix=/usr \ + --docdir=/usr/share/doc/hdf5/ \ + --with-examplesdir='${DESTDIR}/${prefix}/share/doc/hdf5/examples' \ + --enable-static \ + --disable-sharedlib-rpath \ + --enable-build-mode=production \ + --enable-hl \ + --enable-cxx \ + --enable-fortran \ + --enable-parallel \ + --enable-unsupported \ + --with-pic \ + --with-zlib \ + --with-szlib + make +} + +check() { + cd ${_pkgname}-${pkgver/_/-} + # Without this, checks are failing with messages like “error while loading shared libraries: libhdf5.so.101: cannot open shared object file: No such file or directory” + export LD_LIBRARY_PATH="${srcdir}"/${pkgname}-${pkgver/_/-}/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/c++/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/fortran/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/c++/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/fortran/src/.libs/ + # This is a parallel build, they are always OpenMPI bugs + make check || warning "Tests failed" +} + +package() { + cd ${_pkgname}-${pkgver/_/-} + make DESTDIR="${pkgdir}" install + install -Dm644 COPYING -t "${pkgdir}"/usr/share/licenses/${_pkgname} + # Install pkg-config files from CMake tree + install -Dm644 ../build/CMakeFiles/hdf5{,_hl}{,_cpp}-${pkgver}.pc -t "${pkgdir}"/usr/lib/pkgconfig/ +} Copied: hdf5-openmpi/repos/community-staging-x86_64/mpi.patch (from rev 613200, hdf5-openmpi/trunk/mpi.patch) =================================================================== --- community-staging-x86_64/mpi.patch (rev 0) +++ community-staging-x86_64/mpi.patch 2020-04-11 00:29:45 UTC (rev 613201) @@ -0,0 +1,18 @@ +Prevent accidental inclusion of mpi c++ headers +when hdf5.h is included third party library + +https://bugs.gentoo.org/show_bug.cgi?id=420777 +https://bugs.archlinux.org/task/33343 + +--- a/src/H5public.h ++++ b/src/H5public.h +@@ -58,6 +58,8 @@ + # include <stddef.h> + #endif + #ifdef H5_HAVE_PARALLEL ++# define OMPI_SKIP_MPICXX /* Make sure that cxx specific headers are not included */ ++# define MPICH_SKIP_MPICXX + # include <mpi.h> + #ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */ + # include <mpio.h> +