[Debian-astro-maintainers] Bug#1114716: python-fitsio: FTBFS with NumPy 2.3

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


Source: python-fitsio
Version: 1.2.6+dfsg-1
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-fitsio failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
!!

        ********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX license expression:

        License :: OSI Approved :: GNU General Public License (GPL)

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running build
running build_py
creating /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
copying fitsio/util.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
copying fitsio/fits_exceptions.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
copying fitsio/fitslib.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
copying fitsio/__init__.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
copying fitsio/header.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
creating /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/hdu
copying fitsio/hdu/image.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/hdu
copying fitsio/hdu/__init__.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/hdu
copying fitsio/hdu/base.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/hdu
copying fitsio/hdu/table.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/hdu
creating /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_lib.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_header.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_warnings.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_image.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_table.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/makedata.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_header_junk.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/checks.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/__init__.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_empty_slice.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
copying fitsio/tests/test_image_compression.py -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/tests
running egg_info
creating fitsio.egg-info
writing fitsio.egg-info/PKG-INFO
writing dependency_links to fitsio.egg-info/dependency_links.txt
writing requirements to fitsio.egg-info/requires.txt
writing top-level names to fitsio.egg-info/top_level.txt
writing manifest file 'fitsio.egg-info/SOURCES.txt'
reading manifest file 'fitsio.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*' under directory 'cfitsio-4.4.1-20240617'
adding license file 'LICENSE.txt'
writing manifest file 'fitsio.egg-info/SOURCES.txt'
/usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'fitsio.test_images' is absent from the `packages` configuration.
!!

        ********************************************************************************
        ############################
        # Package would be ignored #
        ############################
        Python recognizes 'fitsio.test_images' as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.

        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that 'fitsio.test_images' is explicitly added
        to the `packages` configuration field.

        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).

        You can read more about "package discovery" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

        If you don't want 'fitsio.test_images' to be distributed and are
        already explicitly excluding 'fitsio.test_images' via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.

        You can read more about "package data files" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        ********************************************************************************

!!
  check.warn(importable)
copying fitsio/fitsio_pywrap.c -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio
creating /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/test_images
copying fitsio/test_images/test_gzip_compressed_image.fits.fz -> /build/reproducible-path/python-fitsio-1.2.6+dfsg/.pybuild/cpython3_3.13_fitsio/build/fitsio/test_images
running build_ext
building 'fitsio._fitsio_wrap' extension
creating build/temp.linux-x86_64-cpython-313/fitsio
x86_64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/python-fitsio-1.2.6+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DFITSIO_PYWRAP_ALWAYS_NONSTANDARD_STRINGS -I/usr/lib/x86_64-linux-gnu/python3-numpy/numpy/_core/include -I/usr/include/python3.13 -c fitsio/fitsio_pywrap.c -o build/temp.linux-x86_64-cpython-313/fitsio/fitsio_pywrap.o
fitsio/fitsio_pywrap.c: In function ‘write_var_num_column’:
fitsio/fitsio_pywrap.c:2359:9: error: ‘NPY_C_CONTIGUOUS’ undeclared (first use in this function); did you mean ‘PyBUF_C_CONTIGUOUS’?
 2359 |         NPY_C_CONTIGUOUS
      |         ^~~~~~~~~~~~~~~~
      |         PyBUF_C_CONTIGUOUS
fitsio/fitsio_pywrap.c:2359:9: note: each undeclared identifier is reported only once for each function it appears in
fitsio/fitsio_pywrap.c:2360:11: error: ‘NPY_ALIGNED’ undeclared (first use in this function); did you mean ‘Py_ALIGNED’?
 2360 |         | NPY_ALIGNED
      |           ^~~~~~~~~~~
      |           Py_ALIGNED
fitsio/fitsio_pywrap.c:2361:11: error: ‘NPY_NOTSWAPPED’ undeclared (first use in this function); did you mean ‘NPY_NOTYPE’?
 2361 |         | NPY_NOTSWAPPED
      |           ^~~~~~~~~~~~~~
      |           NPY_NOTYPE
fitsio/fitsio_pywrap.c:2362:11: error: ‘NPY_ELEMENTSTRIDES’ undeclared (first use in this function); did you mean ‘NPY_ARRAY_ELEMENTSTRIDES’?
 2362 |         | NPY_ELEMENTSTRIDES;
      |           ^~~~~~~~~~~~~~~~~~
      |           NPY_ARRAY_ELEMENTSTRIDES
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
E: pybuild pybuild:389: build: plugin distutils failed with: exit code=1: /usr/bin/python3 setup.py build --use-system-fitsio
dh_auto_build: error: pybuild --build -i python{version} -p 3.13 returned exit code 13
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2025-09-08T07:40:22Z

-------------------------------------------------------------------------------

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/2454763/

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/163835/

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-astro-maintainers mailing list