On Rawhide and (now-branched) F39, python-tables cannot be imported due to missing libblosc2.so. Reproducible: Always Steps to Reproduce: 1. mock -r fedora-rawhide-x86_64 --install python3-tables 2. mock -r fedora-rawhide-x86_64 --shell 3. python3 -c 'import tables' Actual Results: Traceback (most recent call last): File "/usr/lib64/python3.12/site-packages/tables/__init__.py", line 26, in <module> cdll.LoadLibrary(blosc2_lib) File "/usr/lib64/python3.12/ctypes/__init__.py", line 460, in LoadLibrary return self._dlltype(name) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/ctypes/__init__.py", line 379, in __init__ self._handle = _dlopen(self._name, mode) ^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: libblosc2.so: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib64/python3.12/site-packages/tables/__init__.py", line 28, in <module> cdll.LoadLibrary(os.path.join(current_dir, blosc2_lib)) File "/usr/lib64/python3.12/ctypes/__init__.py", line 460, in LoadLibrary return self._dlltype(name) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/ctypes/__init__.py", line 379, in __init__ self._handle = _dlopen(self._name, mode) ^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: /usr/lib64/python3.12/site-packages/tables/libblosc2.so: cannot open shared object file: No such file or directory Expected Results: Command completes without error.
Because python-tables uses the blosc2 C library via ctypes/dlopen(), no automatic dependency can be generated. I don’t have time to make a PR right now, but it looks like simply adding a manual dependency will be the way to go.
blosc2 is already required: ``` $ rpm -q --requires python3-tables | grep blosc libblosc.so.1()(64bit) libblosc2.so.2()(64bit) python3.12dist(blosc2) >= 2 ``` But it's trying to load a soversion-less name, and failing since there's no dependency on the devel library (which there shouldn't be.) Since the Python extensions are already linked with blosc and blosc2, I'm not sure that this package really needs the manual loading of the blosc2 library at all.
Hmm, you’re right. It needs closer investigation, but it looks like the check for libblosc2.so in __init__.py may be unnecessary and harmful in the RPM package. It may be best to patch the initial “blosc2_found = False” to “blosc2_found = True”.
While the blosc2 library search check is still useless in the RPM package, upstream has made it workable in an unreleased commit: https://github.com/PyTables/PyTables/commit/bbb02dd0b2f137ab52b447fe5be304805c2dc7ea The following PR backports that commit as a patch: https://src.fedoraproject.org/rpms/python-tables/pull-request/5 However, there are two unrelated errors that prevent this from building. These appear in Rawhide too (https://koschei.fedoraproject.org/package/python-tables), and appear to be due to the upgrade of python-numexpr from 2.8.4. to 2.8.5.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39.
FEDORA-2023-18dd57e0e3 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-18dd57e0e3
FEDORA-2023-18dd57e0e3 has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2023-03e0a07474 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-03e0a07474
FEDORA-2023-03e0a07474 has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report.