diff options
-rw-r--r-- | .SRCINFO | 17 | ||||
-rw-r--r-- | PKGBUILD | 136 | ||||
-rw-r--r-- | hdf5-1.12.0-compat-1.6.patch | 89 |
3 files changed, 166 insertions, 76 deletions
@@ -1,26 +1,27 @@ pkgbase = hdf5-java - pkgdesc = General purpose library and file format for storing scientific data, w/java bindings - pkgver = 1.10.4 - pkgrel = 1 + pkgdesc = General purpose library and file format for storing scientific data , w/java bindings + pkgver = 1.12.0 + pkgrel = 3 url = https://www.hdfgroup.org/hdf5 arch = x86_64 license = custom makedepends = cmake makedepends = time makedepends = gcc-fortran - makedepends = java-environment + makedepends = jdk-openjdk + makedepends = inetutils depends = zlib depends = libaec depends = bash provides = hdf5-cpp-fortran - provides = hdf5-java provides = hdf5 conflicts = hdf5 - conflicts = hdf5-openmpi replaces = hdf5-cpp-fortran options = staticlibs - source = https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.4/src/hdf5-1.10.4.tar.bz2 - sha256sums = 1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df + source = hdf5-java-1.12.0.tar.gz::https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/CMake-hdf5-1.12.0.tar.gz + source = hdf5-1.12.0-compat-1.6.patch + sha256sums = 01b9c01c45cc8c66da86e69c510e17f3cff0706a65d8683cd86af405eaf75397 + sha256sums = 72ad497c56760bb3af8193c88d3fa264125829850b843697de55d934c56f7f44 pkgname = hdf5-java @@ -2,83 +2,83 @@ # Maintainer: Grey Christoforo <first name at last name dot net> pkgname=hdf5-java -_pkgname=hdf5 -pkgver=1.10.4 -pkgrel=1 -pkgdesc="General purpose library and file format for storing scientific data, w/java bindings" -arch=('x86_64') +pkgver=1.12.0 +_pkgver=${pkgver%.*} +pkgrel=3 +pkgdesc="General purpose library and file format for storing scientific data , w/java bindings" +arch=(x86_64) url="https://www.hdfgroup.org/hdf5" -license=('custom') -depends=('zlib' 'libaec' 'bash') -makedepends=('cmake' 'time' 'gcc-fortran' 'java-environment') -replaces=('hdf5-cpp-fortran') -provides=('hdf5-cpp-fortran' 'hdf5-java' 'hdf5') -conflicts=('hdf5' 'hdf5-openmpi') +license=(custom) +depends=( +zlib +libaec +bash +) +makedepends=( +cmake +time +gcc-fortran +jdk-openjdk +inetutils +) +replaces=(hdf5-cpp-fortran) +provides=(hdf5-cpp-fortran hdf5) +conflicts=(hdf5) options=('staticlibs') -source=("https://support.hdfgroup.org/ftp/HDF5/releases/${_pkgname}-${pkgver:0:4}/${_pkgname}-${pkgver/_/-}/src/${_pkgname}-${pkgver/_/-}.tar.bz2") -sha256sums=('1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df') +source=("${pkgname}-${pkgver}.tar.gz::https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${_pkgver}/hdf5-${pkgver}/src/CMake-hdf5-${pkgver}.tar.gz" + "hdf5-1.12.0-compat-1.6.patch") +sha256sums=('01b9c01c45cc8c66da86e69c510e17f3cff0706a65d8683cd86af405eaf75397' + '72ad497c56760bb3af8193c88d3fa264125829850b843697de55d934c56f7f44') -build() { - # Crazy workaround: run CMake to generate pkg-config file - mkdir -p build && cd build - JAVADOC='javadoc -Xdoclint:none' \ - cmake ../${_pkgname}-${pkgver/_/-} \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DHDF5_BUILD_HL_LIB=ON \ - -DHDF5_BUILD_CPP_LIB=ON \ - -DHDF5_BUILD_FORTRAN=ON \ - -DHDF5_BUILD_JAVA=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 \ - JAVADOC='javadoc -Xdoclint:none' \ - --prefix=/usr \ - --docdir=/usr/share/doc/hdf5/ \ - --enable-static \ - --disable-sharedlib-rpath \ - --enable-build-mode=production \ - --enable-hl \ - --enable-cxx \ - --enable-fortran \ - --enable-java \ - --with-pic \ - --with-zlib \ - --with-szlib - make -} +# as per +# https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake +# and +# https://portal.hdfgroup.org/display/support/How+to+Change+HDF5+CMake+Build+Options -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/ - make check -} +prepare(){ + cd CMake-hdf5-${pkgver} -package() { - cd ${_pkgname}-${pkgver/_/-} + # enable java + sed '/^set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")/s/^/#/g' -i HDF5options.cmake + sed '/^#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=ON")/s/^#//g' -i HDF5options.cmake + + # enable fortran + sed '/^set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")/s/^/#/g' -i HDF5options.cmake + sed '/^#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=ON")/s/^#//g' -i HDF5options.cmake + + # I don't know why I wouldn't want thread safety...but this doesn't build. missing pthread dep? + #sed '/^#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_THREADSAFE:BOOL=ON")/s/^#//g' -i HDF5options.cmake - make DESTDIR="${pkgdir}" install + # use legacy API + #echo 'set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DDEFAULT_API_VERSION:STRING=v110")' >> HDF5options.cmake - # Remove leftover test files - rm "${pkgdir}"/usr/include/tst{ds,image,lite,table}{,_tests}.mod + # don't package external libs + sed '/^set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")/s/^/#/g' -i HDF5options.cmake - # Move examples to a proper place - install -dm755 "${pkgdir}"/usr/share/doc/${_pkgname} - mv "${pkgdir}"/usr/share/{hdf5_examples,doc/${_pkgname}/examples} + # enable zlib and szlib + sed '/HDF5_ENABLE_Z_LIB_SUPPORT/c\set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON")' -i HDF5options.cmake + sed '/HDF5_ENABLE_SZIP_SUPPORT/c\set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON")' -i HDF5options.cmake + sed '/HDF5_ENABLE_SZIP_ENCODING/c\set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=ON")' -i HDF5options.cmake - install -Dm644 COPYING -t "${pkgdir}"/usr/share/licenses/${_pkgname} + # zlib and szlib are not "external" + sed '/^set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}")/s/^/#/g' -i HDF5options.cmake +} + +build(){ + cd CMake-hdf5-${pkgver} + ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix,INSTALLDIR=/usr -C Release -V -O hdf5.log + #./build-unix.sh + cd build + make +} + +package() { + cd "${srcdir}/CMake-hdf5-${pkgver}/build" + make DESTDIR="${pkgdir}" install + install -Dm644 ../hdf5-${pkgver}/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/ + # Fix 1.6 compatibility for h5py, is this still needed? + #cd "${pkgdir}"/usr/include/ + #patch -p1 -i "${srcdir}"/hdf5-1.12.0-compat-1.6.patch } diff --git a/hdf5-1.12.0-compat-1.6.patch b/hdf5-1.12.0-compat-1.6.patch new file mode 100644 index 000000000000..eda1919dc94b --- /dev/null +++ b/hdf5-1.12.0-compat-1.6.patch @@ -0,0 +1,89 @@ +--- a/H5version.h ++++ b/H5version.h +@@ -97,6 +97,10 @@ + #define H5Ewalk_vers 1 + #endif /* !defined(H5Ewalk_vers) */ + ++#if !defined(H5Fget_info_vers) ++ #define H5Fget_info_vers 1 ++#endif /* !defined(H5Fget_info_vers) */ ++ + #if !defined(H5Gcreate_vers) + #define H5Gcreate_vers 1 + #endif /* !defined(H5Gcreate_vers) */ +@@ -105,6 +109,38 @@ + #define H5Gopen_vers 1 + #endif /* !defined(H5Gopen_vers) */ + ++#if !defined(H5Lget_info_vers) ++ #define H5Lget_info_vers 1 ++#endif /* !defined(H5Lget_info_vers) */ ++ ++#if !defined(H5Lget_info_by_idx_vers) ++ #define H5Lget_info_by_idx_vers 1 ++#endif /* !defined(H5Lget_info_by_idx_vers) */ ++ ++#if !defined(H5Oget_info_vers) ++ #define H5Oget_info_vers 1 ++#endif /* !defined(H5Oget_info_vers) */ ++ ++#if !defined(H5Oget_info_by_idx_vers) ++ #define H5Oget_info_by_idx_vers 1 ++#endif /* !defined(H5Oget_info_by_idx_vers) */ ++ ++#if !defined(H5Oget_info_by_name_vers) ++ #define H5Oget_info_by_name_vers 1 ++#endif /* !defined(H5Oget_info_by_name_vers) */ ++ ++#if !defined(H5Ovisit_vers) ++ #define H5Ovisit_vers 1 ++#endif /* !defined(H5Ovisit_vers) */ ++ ++#if !defined(H5Ovisit_by_name_vers) ++ #define H5Ovisit_by_name_vers 1 ++#endif /* !defined(H5Ovisit_by_name_vers) */ ++ ++#if !defined(H5Pencode_vers) ++ #define H5Pencode_vers 1 ++#endif /* !defined(H5Pencode_vers) */ ++ + #if !defined(H5Pget_filter_vers) + #define H5Pget_filter_vers 1 + #endif /* !defined(H5Pget_filter_vers) */ +@@ -133,6 +169,10 @@ + #define H5Tarray_create_vers 1 + #endif /* !defined(H5Tarray_create_vers) */ + ++#if !defined(H5Sencode_vers) ++ #define H5Sencode_vers 1 ++#endif /* !defined(H5Sencode_vers) */ ++ + #if !defined(H5Tcommit_vers) + #define H5Tcommit_vers 1 + #endif /* !defined(H5Tcommit_vers) */ +@@ -153,6 +193,14 @@ + #define H5E_auto_t_vers 1 + #endif /* !defined(H5E_auto_t_vers) */ + ++#if !defined(H5O_info_t_vers) ++ #define H5O_info_t_vers 1 ++#endif /* !defined(H5O_info_t_vers) */ ++ ++#if !defined(H5O_iterate_t_vers) ++ #define H5O_iterate_t_vers 1 ++#endif /* !defined(H5O_iterate_t_vers) */ ++ + #if !defined(H5Z_class_t_vers) + #define H5Z_class_t_vers 1 + #endif /* !defined(H5Z_class_t_vers) */ +@@ -261,6 +309,10 @@ + #define H5Ovisit_by_name_vers 1 + #endif /* !defined(H5Ovisit_by_name_vers) */ + ++#if !defined(H5Pencode_vers) ++ #define H5Pencode_vers 1 ++#endif /* !defined(H5Pencode_vers) */ ++ + #if !defined(H5Pget_filter_vers) + #define H5Pget_filter_vers 2 + #endif /* !defined(H5Pget_filter_vers) */ |