[Debian-pan-maintainers] Bug#1114715: python-fabio: FTBFS with NumPy 2.3

Jerome Kieffer Jerome.Kieffer at esrf.fr
Tue Sep 9 06:36:54 BST 2025


Hi,

I am the upstream develeopper of FabIO and this issue has been spotted, 
reported to numpy at 
https://github.com/numpy/numpy/issues/29663
and a work-around is in place in FabIO (main branch).
I am working on a release for early October.

Cheers

Jerome

On Mon, 08 Sep 2025 21:44:34 +0200
roehling at debian.org wrote:

> Source: python-fabio
> Version: 2024.9.0-8
> Severity: important
> User: debian-python at lists.debian.org
> Usertags: numpy2.3
> Tags: ftbfs, forky, sid
> 
> Dear maintainer,
> 
> During a test rebuild for NumPy 2.3, python-fabio failed to rebuild.
> 
> Log Summary:
> -------------------------------------------------------------------------------
> [...]
> ============================= test session starts ==============================
> platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0
> rootdir: /build/reproducible-path/python-fabio-2024.9.0/.pybuild/cpython3_3.13_fabio/build
> configfile: pyproject.toml
> plugins: typeguard-4.4.4
> collected 381 items / 36 deselected / 345 selected
> 
> fabio/test/codecs/test_binaryimage.py ..                                 [  0%]
> fabio/test/codecs/test_bruker100image.py sssss                           [  2%]
> fabio/test/codecs/test_brukerimage.py ....ss                             [  3%]
> fabio/test/codecs/test_cbfimage.py sssssssssss                           [  6%]
> fabio/test/codecs/test_dm3image.py s                                     [  7%]
> fabio/test/codecs/test_dtrekimage.py s...s                               [  8%]
> fabio/test/codecs/test_edfimage.py .........ssssssssss.....s............ [ 19%]
> ......sss....                                                            [ 23%]
> fabio/test/codecs/test_edfimage_expg.py sssssssss                        [ 25%]
> fabio/test/codecs/test_eigerimage.py ....                                [ 26%]
> fabio/test/codecs/test_esperantoimage.py .sss                            [ 28%]
> fabio/test/codecs/test_fit2dimage.py sss                                 [ 28%]
> fabio/test/codecs/test_fit2dmaskimage.py sss...                          [ 30%]
> fabio/test/codecs/test_fit2dspreadsheetimage.py s                        [ 31%]
> fabio/test/codecs/test_geimage.py s                                      [ 31%]
> fabio/test/codecs/test_hdf5image.py ....                                 [ 32%]
> fabio/test/codecs/test_hipicimage.py s                                   [ 32%]
> fabio/test/codecs/test_jpeg2kimage.py .sss.sssssss.sss                   [ 37%]
> fabio/test/codecs/test_jpegimage.py .s.ssss                              [ 39%]
> fabio/test/codecs/test_kcdimage.py ss                                    [ 40%]
> fabio/test/codecs/test_lambdaimage.py ss                                 [ 40%]
> fabio/test/codecs/test_limaimage.py s...                                 [ 41%]
> fabio/test/codecs/test_mar345image.py sssss                              [ 43%]
> fabio/test/codecs/test_mccdimage.py .s                                   [ 43%]
> fabio/test/codecs/test_mpaimage.py s                                     [ 44%]
> fabio/test/codecs/test_mrcimage.py ss                                    [ 44%]
> fabio/test/codecs/test_numpyimage.py ...                                 [ 45%]
> fabio/test/codecs/test_oxdimage.py sssss                                 [ 46%]
> fabio/test/codecs/test_pilatusimage.py sssss                             [ 48%]
> fabio/test/codecs/test_pixiimage.py ...                                  [ 49%]
> fabio/test/codecs/test_pnmimage.py ss                                    [ 49%]
> fabio/test/codecs/test_raxisimage.py ss                                  [ 50%]
> fabio/test/codecs/test_speimage.py sssssssssss                           [ 53%]
> fabio/test/codecs/test_tifimage.py sssssssssssss                         [ 57%]
> fabio/test/codecs/test_xcaliburimage.py ss                               [ 57%]
> fabio/test/codecs/test_xsdimage.py sss                                   [ 58%]
> fabio/test/test_agi_bitfield.py ........                                 [ 61%]
> fabio/test/test_compression.py ..                                        [ 61%]
> fabio/test/test_densification.py ...                                     [ 62%]
> fabio/test/test_fabio.py sssssss                                         [ 64%]
> fabio/test/test_fabio_convert.py ..........                              [ 67%]
> fabio/test/test_fabio_image.py ...............FF...                      [ 73%]
> fabio/test/test_failing_files.py .......                                 [ 75%]
> fabio/test/test_file_series.py .............................             [ 83%]
> fabio/test/test_filename_steps.py ...                                    [ 84%]
> fabio/test/test_filenames.py .....                                       [ 86%]
> fabio/test/test_formats.py ..........                                    [ 88%]
> fabio/test/test_frames.py .ss.                                           [ 90%]
> fabio/test/test_header_not_singleton.py s                                [ 90%]
> fabio/test/test_image_convert.py s                                       [ 90%]
> fabio/test/test_import.py .                                              [ 91%]
> fabio/test/test_io_limits.py ssssss                                      [ 92%]
> fabio/test/test_nexus.py ..                                              [ 93%]
> fabio/test/test_open_header.py s                                         [ 93%]
> fabio/test/test_open_image.py sssssssssssssssss                          [ 98%]
> fabio/test/test_tiffio.py ...                                            [ 99%]
> fabio/test/test_utils_cli.py ..                                          [100%]
> 
> =================================== FAILURES ===================================
> ____________________________ TestPilImage2.testpil _____________________________
> 
> self = <fabio.test.test_fabio_image.TestPilImage2 testMethod=testpil>
> 
>     def testpil(self):
>     
>         for typ in self.okformats:
>             for shape in [(10, 20), (431, 1325)]:
> >               testdata = self.mkdata(shape, typ)  
>                            ^^^^^^^^^^^^^^^^^^^^^^^
> 
> fabio/test/test_fabio_image.py:208: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> fabio/test/test_fabio_image.py:236: in mkdata
>     maxi = numpy.iinfo(numpy.integer).max
>            ^^^^^^^^^^^^^^^^^^^^^^^^^^
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=object)
> int_type = <class 'numpy.integer'>
> 
>     def __init__(self, int_type):
>         try:
>             self.dtype = numeric.dtype(int_type)
>         except TypeError:
>             self.dtype = numeric.dtype(type(int_type))
>         self.kind = self.dtype.kind
>         self.bits = self.dtype.itemsize * 8
>         self.key = "%s%d" % (self.kind, self.bits)
>         if self.kind not in 'iu':
> >           raise ValueError(f"Invalid integer data type {self.kind!r}.")  
> E           ValueError: Invalid integer data type 'O'.
> 
> /usr/lib/python3/dist-packages/numpy/_core/getlimits.py:707: ValueError
> ____________________________ TestPilImage3.testpil _____________________________
> 
> self = <fabio.test.test_fabio_image.TestPilImage3 testMethod=testpil>
> 
>     def testpil(self):
>     
>         for typ in self.okformats:
>             for shape in [(10, 20), (431, 1325)]:
> >               testdata = self.mkdata(shape, typ)  
>                            ^^^^^^^^^^^^^^^^^^^^^^^
> 
> fabio/test/test_fabio_image.py:208: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> fabio/test/test_fabio_image.py:248: in mkdata
>     maxi = numpy.iinfo(numpy.integer).max
>            ^^^^^^^^^^^^^^^^^^^^^^^^^^
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=object)
> int_type = <class 'numpy.integer'>
> 
>     def __init__(self, int_type):
>         try:
>             self.dtype = numeric.dtype(int_type)
>         except TypeError:
>             self.dtype = numeric.dtype(type(int_type))
>         self.kind = self.dtype.kind
>         self.bits = self.dtype.itemsize * 8
>         self.key = "%s%d" % (self.kind, self.bits)
>         if self.kind not in 'iu':
> >           raise ValueError(f"Invalid integer data type {self.kind!r}.")  
> E           ValueError: Invalid integer data type 'O'.
> 
> /usr/lib/python3/dist-packages/numpy/_core/getlimits.py:707: ValueError
> =========================== short test summary info ============================
> FAILED fabio/test/test_fabio_image.py::TestPilImage2::testpil - ValueError: I...
> FAILED fabio/test/test_fabio_image.py::TestPilImage3::testpil - ValueError: I...
> ========== 2 failed, 177 passed, 166 skipped, 36 deselected in 3.80s ===========
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/python-fabio-2024.9.0/.pybuild/cpython3_3.13_fabio/build; python3.13 -m pytest fabio -k "not test_00 and not test_openimage and not test_frames_abort_iteration and not test_frames_full_iteration and not test_frames_random_access"
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
> make: *** [debian/rules:16: binary] Error 25
> dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
> --------------------------------------------------------------------------------
> Build finished at 2025-09-08T07:40:25Z
> 
> -------------------------------------------------------------------------------
> 
> The above is just how the build ends and not necessarily the most relevant part.
> If required, the full build log is available here (for the next 30 days):
> https://debusine.debian.net/debian/developers-roehling.numpy/artifact/2454765/
> 
> About the archive rebuild: The build was made on debusine.debian.net,
> using sbuild.
> 
> You can find the build task here:
> https://debusine.debian.net/debian/developers-roehling.numpy/work-request/163831/
> 
> If this is really a bug in one of the build-depends, please use
> reassign and affects, so that this is still visible in the BTS web
> page for this package.
> 
> Cheers
> Timo
> 
> -- 
> Debian-pan-maintainers mailing list
> Debian-pan-maintainers at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-pan-maintainers


-- 
Jérôme Kieffer



More information about the Debian-pan-maintainers mailing list