diff options
Diffstat (limited to 'community/hdf5/APKBUILD')
-rw-r--r-- | community/hdf5/APKBUILD | 123 |
1 files changed, 104 insertions, 19 deletions
diff --git a/community/hdf5/APKBUILD b/community/hdf5/APKBUILD index e418712fb01..8ba01ff5480 100644 --- a/community/hdf5/APKBUILD +++ b/community/hdf5/APKBUILD @@ -10,33 +10,66 @@ # builds, due to inadequate locking. pkgname=hdf5 -pkgver=1.12.0 +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 - update_config_sub - update_config_guess + # 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 \ @@ -44,26 +77,32 @@ 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='${DESTDIR}/${prefix}/share/doc/hdf5/examples' \ + --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 } @@ -83,8 +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*-${pkgver}.pc -t "${pkgdir}"/usr/lib/pkgconfig/ + # 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="84abbdbb1345f326c552f383e9fae9f9af7233f0dcf10f2cd631efdb517ac528bbcaf083b499144ace29c1898fcc5b5953e1ef1797e61ac8041fdc17a94d6e1f hdf5-1.12.0.tar.bz2" +sha512sums=" +06d51638a56f387f6d0ef484b72e182509c15ab639315052be9821adeed6ad08551c50d7fe84d2b550b64211f68484cf3022a4660c8004cd0afd90eaa83c1bb1 hdf5-1.14.3.tar.bz2 +" |