Bug#959940: hdmf FTBFS with h5py 2.10.0
Yaroslav Halchenko
debian at onerussian.com
Sat May 9 23:18:58 BST 2020
Package: python3-h5py
Version: 2.10.0-7
Followup-For: Bug #959940
Please see https://github.com/hdmf-dev/hdmf/issues/343#issuecomment-625972582
for possibly more info:
@tillea @yarikoptic the debian port contains this code in h5py_2.10.0-7.debian/debian/wrapper_module/h5py/__init__.py
from sys import modules as sys_modules
# [snip]
# make generic h5py module behaviour the same as specific builds
# by importing public and weak internal symbols (single _underscore)
api = [ k for k in _h5py.__dict__.keys() if not k.startswith('__') and not k.endswith('__') ]
this_module=sys_modules[__name__]
for key in api:
# "imports" symbols (makes them accessible)
setattr(this_module,key,getattr(_h5py,key))
# rename symbols as properties of toplevel h5py module
sys_modules['h5py.{}'.format(key)] = getattr(_h5py,key)
Since remove_deprecated_highlevel_module_2f41c78.patch is not
applied, the api list includes 'highlevel' so then
sys.modules['h5py.highlevel'] is set to h5py.highlevel. This is problematic
because sys.modules is traversed in the context manager for
unittest.TestCase.assertWarns and getattr is called on it, but h5py.highlevel
is intentionally lazily imported by h5py, I think, because it is deprecated. So
one solution might be to apply the patch. Another might be to add and not k ==
'highlevel' to the line that sets api above.
In the above "patch" is the remove_deprecated_highlevel_module_2f41c78.patch patch
which was disabled in
commit ed17e72dc2fa47f590b78632401512546d3d3e1e
Author: Drew Parsons <dparsons at debian.org>
Date: Sun Apr 5 18:31:33 2020 +0800
disable upstream patches and update drop_deprecation_tests.patch
aid HDF5 transition by giving bitshuffle more time to update
(see Bug#955456)
changes to drop_deprecation_tests.patch needed to pass h5py tests
diff --git a/debian/patches/series b/debian/patches/series
index 6753f8e..9f3468d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,8 +7,8 @@ fix_2.10_docs.patch
hdf5_pkgconfig.patch
build_flavour.patch
stop_circular_dep.patch
-drop_deprecated_dtype_6a77b91.patch
-remove_deprecated_highlevel_module_2f41c78.patch
-file_default_read_5e71c49.patch
+#drop_deprecated_dtype_6a77b91.patch
+#remove_deprecated_highlevel_module_2f41c78.patch
+#file_default_read_5e71c49.patch
drop_deprecation_tests.patch
tests_as_local_build.patch
Cheers,
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (900, 'testing'), (600, 'unstable'), (300, 'experimental'), (100, 'unstable-debug'), (100, 'stable-updates'), (100, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.6.0-1-amd64 (SMP w/12 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages python3-h5py depends on:
ii python3-h5py-serial 2.10.0-7
python3-h5py recommends no packages.
Versions of packages python3-h5py suggests:
pn python-h5py-doc <none>
-- no debconf information
More information about the debian-science-maintainers
mailing list