1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-24 19:55:26 +03:00
aports/community/hdf5/APKBUILD
2021-07-24 00:07:53 -06:00

127 lines
4.2 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Contributor: Isaac Dunham <ibid.ag@gmail.com>
# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
#
# HDF5 depends on zlib and provides a C interface by default.
# Optionally, it can be built with szip (which has limitations on
# commercial use and thus is non-free), MPI, and C++ and Fortran bindings.
# C++ and Fortran bindings may not be thread-safe:
# building either and passing --enable-threadsafe is unsupported.
# Additionally, the 'high-level' bindings are incompatible with threadsafe
# builds, due to inadequate locking.
pkgname=hdf5
pkgver=1.12.1
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 !mips64 !riscv64" # blocked by java-jdk
license="custom"
options="!check" # test suite takes a very long time
depends_dev="zlib-dev"
makedepends="cmake $depends_dev gfortran java-jdk perl"
subpackages="$pkgname-fortran java-$pkgname:java $pkgname-static $pkgname-doc $pkgname-dev"
source="https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver%.*}/hdf5-$pkgver/src/hdf5-$pkgver.tar.bz2"
# secfixes:
# 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
}
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
# 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 \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DHDF5_BUILD_HL_LIB=ON \
-DHDF5_BUILD_CPP_LIB=ON \
-DHDF5_BUILD_FORTRAN=ON \
-DHDF5_BUILD_JAVA=ON \
-DJAVA_HOME=/usr/lib/jvm/default-jvm/ \
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
-DHDF5_ENABLE_SZIP_ENCODING=OFF \
-DDEFAULT_API_VERSION=v18 \
${CMAKE_CROSSOPTS} ..
cd $builddir
# But dont build with it, its quite broken
./configure \
--prefix=/usr \
--docdir=/usr/share/doc/hdf5/ \
--with-examplesdir='${prefix}/share/doc/hdf5/examples' \
--enable-static \
--disable-sharedlib-rpath \
--enable-build-mode=production \
--enable-hl \
--enable-cxx \
--enable-fortran \
--enable-java \
--with-pic \
--with-zlib \
--without-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/
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
}
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/
}
fortran() {
pkgdesc="Fortran bindings for HDF5 library"
amove usr/lib/libhdf5*fortran.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/
}
sha512sums="
158a067ee284ccb9e2c4db12e9d37cf187d90d9ef1bed7a6303e2c3a2fd216d7b13a46c5f46018b097511281c4246156b6f917633ca88872f10f0ad04be285fd hdf5-1.12.1.tar.bz2
"