Bug 2345531

Summary: python-klusta fails to build with Python 3.14: help2man: can't get `--help' info from /builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/bin/klusta
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-klustaAssignee: Ankur Sinha (FranciscoD) <sanjay.ankur>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: code, ksurma, mhroncok, neuro-sig, sanjay.ankur
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-03-14 12:55:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2345536    
Bug Blocks: 2322407    

Description Karolina Surma 2025-02-13 11:51:17 UTC
python-klusta fails to build with Python 3.14.05.

+ help2man --no-info '--name=Spikesort a dataset' --version-string=3.0.16 --output=/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/share/man/man1/klusta.1 /builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/bin/klusta
help2man: can't get `--help' info from /builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/bin/klusta

https://docs.python.org/3.14/whatsnew/3.14.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.14/fedora-rawhide-x86_64/08651033-python-klusta/

For all our attempts to build python-klusta with Python 3.14, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14/package/python-klusta/

Testing and mass rebuild of packages is happening in copr.
You can follow these instructions to test locally in mock if your package builds with Python 3.14:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14/

Let us know here if you have any questions.

Python 3.14 is planned to be included in Fedora 43.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires),
so if this package is required a lot, it's important for us to get it fixed soon.

We'd appreciate help from the people who know this package best,
but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Ben Beasley 2025-02-13 21:00:43 UTC
The root cause is h5py failing to import, bug 2345536.

# PYTHONPATH=/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/ /builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/bin/klusta --help
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/bin/klusta", line 5, in <module>
    from klusta.launch import main
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/klusta/launch.py", line 18, in <module>
    from .traces import SpikeDetekt
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/klusta/traces/__init__.py", line 9, in <module>
    from .spikedetekt import SpikeDetekt
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/klusta/traces/spikedetekt.py", line 21, in <module>
    from ..kwik.mea import (_channels_per_group,
                            _probe_adjacency_list,
                            )
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/klusta/kwik/__init__.py", line 6, in <module>
    from .creator import KwikCreator, create_kwik
  File "/builddir/build/BUILD/python-klusta-3.0.16-build/BUILDROOT/usr/lib/python3.14/site-packages/klusta/kwik/creator.py", line 14, in <module>
    from h5py import Dataset
  File "/usr/lib64/python3.14/site-packages/h5py/__init__.py", line 45, in <module>
    from ._conv import register_converters as _register_converters, \
                       unregister_converters as _unregister_converters
  File "h5py/_conv.pyx", line 1, in init h5py._conv
  File "h5py/h5r.pyx", line 1, in init h5py.h5r
  File "h5py/h5p.pyx", line 1, in init h5py.h5p
  File "h5py/h5t.pyx", line 289, in init h5py.h5t
  File "h5py/h5t.pyx", line 281, in h5py.h5t._get_available_ftypes
ValueError: chr() arg not in range(0x110000)

Comment 2 Ben Beasley 2025-03-14 12:55:23 UTC
I see a successful build in https://copr.fedorainfracloud.org/coprs/g/python/python3.14/build/8736650/, so I guess the h5py issue must have been resolved.