summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO17
-rw-r--r--PKGBUILD136
-rw-r--r--hdf5-1.12.0-compat-1.6.patch89
3 files changed, 166 insertions, 76 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d60abfedb10a..73564467b78a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 02403a5d4f85..b0e23718f785 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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) */