mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-24 19:55:26 +03:00
127 lines
4.2 KiB
Text
127 lines
4.2 KiB
Text
# 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 don’t build with it, it’s 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
|
||
"
|