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

roehling at debian.org roehling at debian.org
Mon Sep 8 20:44:34 BST 2025


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



More information about the Debian-pan-maintainers mailing list