crystfel: fix hdf5 unpack (tarball entries start with ./), silence uv hardlink warning

--strip-components=1 only stripped "." so ./configure was one level deeper;
unpack plain and cd through hdf5/hdf5-*/ instead.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
duan_jandClaude Fable 5.1 committed 2026-10-27 11:23:00 +01:00
1 parent 826d8b67d7
commit 28acdc4f10
1 file changed
+7 -3
+7 -3
View File
@@ -24,6 +24,8 @@ crystfel::env() {
UV="${UV:-/usr/bin/uv}"
# ~/.cache/uv hits the home disk quota; shared cache reuses wheels across MX builds
export UV_CACHE_DIR="/opt/psi/MX/.uv-cache"
# cache (/opt/psi) and venv (tmpdir) are on different filesystems: uv can't hardlink, don't warn
export UV_LINK_MODE=copy
export UV_PROJECT_ENVIRONMENT="${SRC_DIR}/../meson-venv"
export UV_PYTHON_INSTALL_DIR="${SRC_DIR}/../uv-python"
# venv first (meson, ninja), then PREFIX (h5cc for meson's hdf5 lookup)
@@ -45,13 +47,15 @@ pbuild::configure() {
# HDF5_CONFIG_ABORT makes configure die when zlib is missing instead of
# silently building without deflate; szip is not on Ra, so it is switched off
# rather than aborting on it.
mkdir -p hdf5 && tar -xzf hdf5-*.tar.gz -C hdf5 --strip-components=1 \
# no --strip-components: the GitHub tarball's entries start with ./hdf5-x.y.z/,
# so a fixed strip count lands configure one level off; cd through a glob instead
mkdir -p hdf5 && tar -xzf hdf5-*.tar.gz -C hdf5 \
|| std::die 42 "hdf5 tarball unpack failed - is hdf5-*.tar.gz in ${SRC_DIR}? (prep copies it there)"
( cd hdf5 \
( cd hdf5/hdf5-*/ \
&& HDF5_CONFIG_ABORT=yes ./configure --prefix="${PREFIX}" --libdir="${PREFIX}/lib64" \
--enable-build-mode=production --disable-tests --with-zlib=yes --with-szlib=no \
&& make -j"${JOBS}" && make install ) \
|| std::die 42 "hdf5 build failed - see ${SRC_DIR}/hdf5/config.log (zlib-devel missing?)"
|| std::die 42 "hdf5 build failed - see ${SRC_DIR}/hdf5/hdf5-*/config.log (zlib-devel missing?)"
[[ -x "${PREFIX}/bin/h5cc" ]] || std::die 42 "h5cc missing from ${PREFIX}/bin - meson cannot find hdf5 without it"
meson setup build --prefix="${PREFIX}" --libdir=lib64 \