Package: hdf5-filter-plugin
Version: 0.0~git20221111.49e3b65-2
Severity: serious
Tags: patch
Hello,
hdf5 cannot load the plugin dynamically:
>>> import h5py
>>> h5py.h5z.filter_avail(32004)
False
This is because the library cannot be loaded due to missing HDF5 symbols:
$ python3
Python 3.10.8 (main, Nov 4 2022, 09:21:25) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> lib =
ctypes.CDLL("/usr/lib/x86_64-linux-gnu/hdf5/serial/plugins/libh5lz4.so")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/ctypes/__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/x86_64-linux-gnu/hdf5/serial/plugins/libh5lz4.so:
undefined symbol: H5E_PLINE_g
I filed a PR upstream that fixes the problem:
https://github.com/nexusformat/HDF5-External-Filter-Plugins/pull/27
I'm attaching the corresponding patch.
Thanks,
Enrico
-- System Information:
Debian Release: bookworm/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 6.0.0-4-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8),
LANGUAGE=en_IE:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages hdf5-filter-plugin depends on:
ii libbz2-1.0 1.0.8-5+b1
ii libc6 2.36-6
ii libhdf5-103-1 1.10.8+repack-4
ii liblz4-1 1.9.4-1
hdf5-filter-plugin recommends no packages.
hdf5-filter-plugin suggests no packages.
commit 3d93e1821dd10962f4477d8b3615024cf10f4cc6
Author: Enrico Zini <[email protected]>
Date: Wed Dec 7 12:19:17 2022 +0100
Added missing libraries
diff --git a/LZ4/src/CMakeLists.txt b/LZ4/src/CMakeLists.txt
index b5bf34b..1823eff 100644
--- a/LZ4/src/CMakeLists.txt
+++ b/LZ4/src/CMakeLists.txt
@@ -1,7 +1,7 @@
set(SOURCES H5Zlz4.c lz4_h5plugin.c)
set(INCLUDE_DIRS ${HDF5_INCLUDE_DIRS} ${LZ4_INCLUDE_DIRS})
-set(LINK_LIBS ${LZ4_LIBRARIES})
+set(LINK_LIBS ${LZ4_LIBRARIES} ${HDF5_LIBRARIES})
if(CMAKE_SYSTEM_NAME MATCHES Windows)
#