aboutsummaryrefslogtreecommitdiffstats
path: root/community/hdf5/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/hdf5/APKBUILD')
-rw-r--r--community/hdf5/APKBUILD127
1 files changed, 112 insertions, 15 deletions
diff --git a/community/hdf5/APKBUILD b/community/hdf5/APKBUILD
index b5865f2fbf1..8ba01ff5480 100644
--- a/community/hdf5/APKBUILD
+++ b/community/hdf5/APKBUILD
@@ -10,26 +10,66 @@
# builds, due to inadequate locking.
pkgname=hdf5
-pkgver=1.10.6
-pkgrel=1
+pkgver=1.14.3
+_pkgver=${pkgver/_p/-}
+pkgrel=0
pkgdesc="HDF5 is a data model, library, and file format for storing and managing data"
url="https://www.hdfgroup.org/solutions/hdf5/"
arch="all"
license="custom"
-options="!check" # test suite takes a very long time
depends_dev="zlib-dev"
-makedepends="cmake $depends_dev perl"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="http://www.hdfgroup.org/ftp/HDF5/current18/src/hdf5-$pkgver.tar.bz2"
-source="https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver%.*}/hdf5-$pkgver/src/hdf5-$pkgver.tar.bz2"
+makedepends="cmake $depends_dev gfortran libaec-dev perl"
+checkdepends="diffutils"
+subpackages="$pkgname-tools $pkgname-fortran $pkgname-cpp $pkgname-hl $pkgname-hl-fortran:hl_fortran $pkgname-hl-cpp:hl_cpp $pkgname-static $pkgname-doc $pkgname-dev"
+source="https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver%.*}/hdf5-${pkgver%_*}/src/hdf5-$_pkgver.tar.bz2"
+builddir=$srcdir/$pkgname-$_pkgver
+
+# Optional dependency java-jdk is not available on riscv64
+# Tests fail on s390x and x86
+_with_java=""
+_enable_java=""
+case "$CARCH" in
+ riscv64 | s390x | x86) ;;
+ *)
+ makedepends="$makedepends openjdk8"
+ subpackages="$subpackages java-$pkgname:java"
+ _with_java="-DHDF5_BUILD_JAVA=ON -DJAVA_HOME=/usr/lib/jvm/default-jvm"
+ _enable_java="--enable-java"
+ ;;
+esac
+
+# secfixes:
+# 1.12.2-r0:
+# - CVE-2018-17432
+# 1.12.1-r0:
+# - CVE-2018-11206
+# - CVE-2018-13869
+# - CVE-2018-13870
+# - CVE-2018-14033
+# - CVE-2018-14460
+# - CVE-2018-17435
+# - CVE-2019-9151
+# - CVE-2020-10811
+
+prepare() {
+ default_prepare
+
+ # Don't mess with build flags
+ sed -e '/-Werror/d' -i configure
+}
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
+ export PATH=/usr/lib/jvm/default-jvm/bin:$PATH
# Crazy workaround: run CMake to generate pkg-config file
- cmake -B build \
+ # 2nd workaround: cmake creates the file pac_Cconftest.out in the current
+ # directory, but checks if it is successfully created in the build dir.
+ # So the current directory must be build.
+ mkdir build && cd build
+ cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
@@ -37,29 +77,38 @@ build() {
-DCMAKE_C_FLAGS="$CFLAGS" \
-DHDF5_BUILD_HL_LIB=ON \
-DHDF5_BUILD_CPP_LIB=ON \
- -DHDF5_BUILD_FORTRAN=OFF \
+ -DHDF5_BUILD_FORTRAN=ON \
+ $_with_java \
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
- -DHDF5_ENABLE_SZIP_SUPPORT=OFF \
- -DHDF5_ENABLE_SZIP_ENCODING=OFF \
- ${CMAKE_CROSSOPTS} .
+ -DHDF5_ENABLE_SZIP_SUPPORT=ON \
+ -DHDF5_ENABLE_SZIP_ENCODING=ON \
+ -DUSE_LIBAEC=ON \
+ -DDEFAULT_API_VERSION=v18 \
+ $CMAKE_CROSSOPTS ..
+ cd $builddir
# But don’t build with it, it’s quite broken
./configure \
--prefix=/usr \
--docdir=/usr/share/doc/hdf5/ \
+ --with-examplesdir='/usr/share/doc/hdf5/examples' \
--enable-static \
--disable-sharedlib-rpath \
--enable-build-mode=production \
--enable-hl \
--enable-cxx \
- --disable-fortran \
+ --enable-fortran \
+ $_enable_java \
--with-pic \
--with-zlib \
- --without-szlib
+ --with-szlib \
+ --with-default-api-version=v18
make
}
check() {
+ # 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/
@@ -73,6 +122,54 @@ package() {
make DESTDIR="$pkgdir" install
install -Dm0644 COPYING "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING
+ # Install pkg-config files from CMake tree
+ install -Dm644 build/CMakeFiles/hdf5*.pc -t "$pkgdir"/usr/lib/pkgconfig/
+}
+
+tools() {
+ pkgdesc="Runtime tools for HDF5 library"
+ amove usr/bin/*
+}
+
+fortran() {
+ pkgdesc="Fortran runtime files for serial platforms for HDF5 library"
+ amove usr/lib/libhdf5_fortran.so.*
+}
+
+cpp() {
+ pkgdesc="C++ runtime files for serial platforms for HDF5 library"
+ amove usr/lib/libhdf5_cpp.so.*
+}
+
+hl() {
+ pkgdesc="High Level C API runtime files for serial platforms for HDF5 library"
+ amove usr/lib/libhdf5_hl.so.*
+}
+
+hl_fortran() {
+ pkgdesc="High Level Fortran runtime files for serial platforms for HDF5 library"
+ amove usr/lib/libhdf5hl_fortran.so.*
+}
+
+hl_cpp() {
+ pkgdesc="High Level C++ runtime files for serial platforms for HDF5 library"
+ amove usr/lib/libhdf5_hl_cpp.so.*
+}
+
+java() {
+ pkgdesc="Java bindings for HDF5 library"
+ mkdir -p "$subpkgdir"/usr/share/java/
+ mkdir -p "$subpkgdir"/usr/lib/jni/
+ mv "$pkgdir"/usr/lib/jarhdf5-$_pkgver.jar "$subpkgdir"/usr/share/java/
+ ln -s jarhdf5-$_pkgver.jar "$subpkgdir"/usr/share/java/jarhdf5.jar
+ mv "$pkgdir"/usr/lib/libhdf5_java.so "$subpkgdir"/usr/lib/jni/
+}
+
+dev() {
+ default_dev
+ amove usr/lib/libhdf5.settings
}
-sha512sums="821392718605e3f7a287d4729d022a55fd7b91ddaa2e9a3f35ab8fce3d3d4871a0cc88215be3052887cbac3615cc8953569c7f131217962103c98151c0ab58d4 hdf5-1.10.6.tar.bz2"
+sha512sums="
+06d51638a56f387f6d0ef484b72e182509c15ab639315052be9821adeed6ad08551c50d7fe84d2b550b64211f68484cf3022a4660c8004cd0afd90eaa83c1bb1 hdf5-1.14.3.tar.bz2
+"