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