[Debian-astro-maintainers] Bug#1103060: pyraf: FTBFS in testing/i386: KeyError: 'setuptools_scm'

Lucas Nussbaum lucas at debian.org
Mon Apr 14 12:21:03 BST 2025


Source: pyraf
Version: 2.2.2-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20250414 ftbfs-trixie

Hi,

During a rebuild of all packages in testing (trixie), your package failed
to build on i386.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:311: python3.13 setup.py config 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:311: /usr/bin/python3 setup.py build 
> WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
>     section = defn.get("tool", {})[tool_name]
>               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
> KeyError: 'setuptools_scm'
> running build
> running build_py
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/fill_clcache.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/iraffunctions.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/MplCanvasAdapter.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/cltoken.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafinst.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/clcache.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/tpar.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/filecache.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafimcur.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/clparse.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/__main__.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gkitkplot.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafecl.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gki.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/clast.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafcompleter.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/cllinecache.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/epar.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gkigcur.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafhelp.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/pyrafglobals.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/splash.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/msgiowidget.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/urwfiledlg.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/clscan.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/tkplottext.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafpar.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafdisplay.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/pycmdline.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafgwcs.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/ipython_api.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/msgiobuffer.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gkiiraf.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafimport.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/pseteparoption.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/iraftask.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gkicmd.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gwm.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/version.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/aqutil.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafnames.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafukey.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/GkiMpl.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/gkitkbase.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/generic.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/graphcap.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/Ptkplot.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/pyrafTk.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/cgeneric.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/urwutil.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/irafexecute.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/iraf.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/cl2py.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/fontdata.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/wutil.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/sqliteshelve.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/subproc.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/textattrib.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/newWindowHack.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/__init__.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/scanf.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_tasks.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_using_tasks.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_plot.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_basic.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/utils.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_invocation.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_cli.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_clcache.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_core_nongraphics.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/__init__.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> copying pyraf/tests/test_graphics.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/irafutils.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/compmixin.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/irafglobals.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/capable.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/tkrotext.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/basicpar.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/teal.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/vtor_checks.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/filedlg.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/cfgpars.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/dialog.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/alert.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/listdlg.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/eparoption.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/taskpars.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/minmatch.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/teal_bttn.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/editpar.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> copying pyraf/tools/__init__.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/test_cfgobj.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/test_irafutils.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/test_minmatch.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/test_compmixin.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/__init__.py -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> running egg_info
> creating pyraf.egg-info
> writing pyraf.egg-info/PKG-INFO
> writing dependency_links to pyraf.egg-info/dependency_links.txt
> writing entry points to pyraf.egg-info/entry_points.txt
> writing requirements to pyraf.egg-info/requires.txt
> writing top-level names to pyraf.egg-info/top_level.txt
> writing manifest file 'pyraf.egg-info/SOURCES.txt'
> reading manifest file 'pyraf.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no previously-included files matching '*.pyc' found anywhere in distribution
> warning: no previously-included files matching '*.o' found anywhere in distribution
> warning: no previously-included files matching '*.so' found anywhere in distribution
> warning: no previously-included files matching '*.sqlite3' found anywhere in distribution
> warning: manifest_maker: MANIFEST.in, line 9: unknown action 'recursive-inclulde'
> 
> adding license file 'LICENSE.txt'
> writing manifest file 'pyraf.egg-info/SOURCES.txt'
> copying pyraf/blankcursor.xbm -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/epar.optionDB -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/ipythonrc-pyraf -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/pyraflogo_rgb_web.gif -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> copying pyraf/xutil.c -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> copying pyraf/noiraf/cl.par -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> copying pyraf/noiraf/clpackage.cl -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> copying pyraf/noiraf/login.cl -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> copying pyraf/noiraf/system.cl -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> copying pyraf/noiraf/system.par -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/noiraf
> creating /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psdump_prow_250.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psdump_prow_256.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psdump_prow_256_250.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psdump_prow_256_250_200.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/pset_msstat_input.fits -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psi_land_prow_250.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psi_land_prow_256.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psi_land_prow_256_250.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tests/data/psi_land_prow_256_250_200.ps -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tests/data
> copying pyraf/tools/tests/cfgobj_output.ref -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/rt_sample.cfg -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> copying pyraf/tools/tests/rt_sample.cfgspc -> /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/tools/tests
> running build_ext
> building 'pyraf.xutil' extension
> creating build/temp.linux-i686-cpython-313/pyraf
> i686-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/pyraf-2.2.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.13 -c pyraf/xutil.c -o build/temp.linux-i686-cpython-313/pyraf/xutil.o
> i686-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -Wl,-z,now -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/pyraf-2.2.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-i686-cpython-313/pyraf/xutil.o -L/usr/lib/i386-linux-gnu -lX11 -o /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/xutil.cpython-313-i386-linux-gnu.so
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build; python3.13 -m pytest 
> tput: No value for $TERM and no -T specified
> ============================= test session starts ==============================
> platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
> rootdir: /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build
> configfile: pyproject.toml
> plugins: hypothesis-6.127.4, doctestplus-1.4.0, typeguard-4.4.2, cov-5.0.0, mock-3.14.0, astropy-header-0.2.2, remotedata-0.4.1, filter-subpackage-0.2.0, arraydiff-0.6.1, astropy-0.11.0
> 
> No graphics display available for this session.
> Graphics tasks that attempt to plot to an interactive screen will fail.
> For help, search "PyRAF FAQ 5.13"
> 
> Created directory /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/.iraf/pyraf for cache
> collected 404 items
> 
> pyraf/tests/test_basic.py ....
> pyraf/tests/test_clcache.py .
> pyraf/tests/test_cli.py ..........................................................................................................................................................................................
> pyraf/tests/test_core_nongraphics.py .....................x..
> pyraf/tests/test_graphics.py ......sssss
> pyraf/tests/test_invocation.py ..................F.....x........x........ssss..s
> pyraf/tests/test_plot.py ssssssssssssssssssssssssssss
> pyraf/tests/test_tasks.py .........................................................
> pyraf/tests/test_using_tasks.py sssssss
> pyraf/tools/tests/test_cfgobj.py .
> pyraf/tools/tests/test_compmixin.py ....
> pyraf/tools/tests/test_irafutils.py .............
> pyraf/tools/tests/test_minmatch.py ...................
> 
> =================================== FAILURES ===================================
> ________________________ test_invoke_command[True-bye-] ________________________
> 
> _with_pyraf = <pyraf.tests.test_invocation.PyrafEx object at 0xf255f030>
> test_input = 'bye', expected = '', use_ecl = True
> 
>     @pytest.mark.parametrize('test_input,expected', cl_cases)
>     @pytest.mark.parametrize('use_ecl', [False, True])
>     def test_invoke_command(_with_pyraf, test_input, expected, use_ecl):
>         """Issue basic commands to CL parser
>         """
>         result = _with_pyraf.run(['-c', test_input], use_ecl=use_ecl)
> >       assert not result.code, result.stderr
> E       AssertionError: ERROR: Child process '/bin/sh -c /bin/ls -1ad [a-y]* 2> /dev/null' exited with return code 2 
> E            '<source code not available>' 
> E               line 0: cl$cl.par 
> E            '<source code not available>' 
> E               line 0: cl$cl.par 
> E            '<source code not available>' 
> E               line 0: hlib$clpackage.cl 
> E         Traceback (most recent call last):
> E           File "<frozen runpy>", line 198, in _run_module_as_main
> E           File "<frozen runpy>", line 88, in _run_code
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/__main__.py", line 166, in <module>
> E             main()
> E             ~~~~^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/__main__.py", line 130, in main
> E             iraf.Init(**initkw)
> E             ~~~~~~~~~^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 217, in Init
> E             clpkg.run(_doprint=0, _hush=hush, _save=1)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 222, in run
> E             self._ecl_handle_error(e)
> E             ~~~~~~~~~~~~~~~~~~~~~~^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 370, in _ecl_handle_error
> E             raise e
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 220, in run
> E             return _runcore()
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 204, in _runcore
> E             self._run(redirKW, specialKW)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 495, in _run
> E             return iraftask.IrafPkg._run(self, *args, **kw)
> E                    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 1746, in _run
> E             self._runCode()
> E             ~~~~~~~~~~~~~^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 1537, in _runCode
> E             self._clFunction(*parList, **kw)
> E             ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
> E           File "<CL script clpackage.clpackage>", line 32, in clpackage
> E             iraf.cl(Stdin='hlib$extpkg.cl')
> E             ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 834, in __call__
> E             return self.run(*args, **kw)
> E                    ~~~~~~~~^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 222, in run
> E             self._ecl_handle_error(e)
> E             ~~~~~~~~~~~~~~~~~~~~~~^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 370, in _ecl_handle_error
> E             raise e
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 220, in run
> E             return _runcore()
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 204, in _runcore
> E             self._run(redirKW, specialKW)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 456, in _run
> E             return iraftask.IrafPythonTask._run(self, *args, **kw)
> E                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 1273, in _run
> E             self._pyFunction(*pl)
> E             ~~~~~~~~~~~~~~~~^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 2682, in _clProcedure
> E             clExecute(_sys.stdin.read(), locals=theLocals, Stdin=_sys.__stdin__)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 3341, in clExecute
> E             exec(pycode.vars.proc_name + "(taskObj=iraf.cl)", locals)
> E             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "<string>", line 1, in <module>
> E           File "<CL script CL1>", line 33, in string_proc
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 834, in __call__
> E             return self.run(*args, **kw)
> E                    ~~~~~~~~^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 222, in run
> E             self._ecl_handle_error(e)
> E             ~~~~~~~~~~~~~~~~~~~~~~^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 379, in _ecl_handle_error
> E             raise e
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 220, in run
> E             return _runcore()
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 204, in _runcore
> E             self._run(redirKW, specialKW)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/irafecl.py", line 456, in _run
> E             return iraftask.IrafPythonTask._run(self, *args, **kw)
> E                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraftask.py", line 1273, in _run
> E             self._pyFunction(*pl)
> E             ~~~~~~~~~~~~~~~~^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 2682, in _clProcedure
> E             clExecute(_sys.stdin.read(), locals=theLocals, Stdin=_sys.__stdin__)
> E             ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 3341, in clExecute
> E             exec(pycode.vars.proc_name + "(taskObj=iraf.cl)", locals)
> E             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> E           File "<string>", line 1, in <module>
> E           File "<CL script CL2>", line 17, in string_proc
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py", line 2234, in clOscmd
> E             status = _subproc.subshellRedir(s, shell=shell)
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/subproc.py", line 769, in subshellRedir
> E             return systemRedir((shell, "-c", cmd))
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/subproc.py", line 747, in systemRedir
> E             process = RedirProcess(cmd)
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/subproc.py", line 800, in __init__
> E             Subprocess.__init__(self,
> E             ~~~~~~~~~~~~~~~~~~~^^^^^^
> E                                 cmd,
> E                                 ^^^^
> E             ...<2 lines>...
> E                                 control_stdout=doOut,
> E                                 ^^^^^^^^^^^^^^^^^^^^^
> E                                 control_stdin=doIn)
> E                                 ^^^^^^^^^^^^^^^^^^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/subproc.py", line 95, in __init__
> E             self.fork()
> E             ~~~~~~~~~^^
> E           File "/build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/subproc.py", line 209, in fork
> E             raise SubprocessError(
> E                 f"Child process '{self.cmd}' exited "
> E                 f"with return code {rc:d}")
> E         pyraf.subproc.SubprocessError: Child process '/bin/sh -c /bin/ls -1ad [a-y]* 2> /dev/null' exited with return code 2
> E         
> E       assert not 1
> E        +  where 1 = <pyraf.tests.test_invocation.PyrafEx object at 0xf255f030>.code
> 
> pyraf/tests/test_invocation.py:99: AssertionError
> =============================== warnings summary ===============================
> pyraf/scanf.py:116
>   /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/scanf.py:116: SyntaxWarning: invalid escape sequence '\-'
>     (\\S+) \- ([+-]?\\d+) errors, ([+-]?\\d+) warnings
> 
> pyraf/iraffunctions.py:91
>   /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build/pyraf/iraffunctions.py:91: DeprecationWarning: finfo() dtype cannot be None. This behavior will raise an error in the future. (Deprecated in NumPy 1.25)
>     FP_EPSILON = _numpy.finfo(None).eps
> 
> pyraf/tools/tests/test_minmatch.py::test_getall
>   /usr/lib/python3/dist-packages/_pytest/python.py:163: PytestReturnNotNoneWarning: Expected None, but pyraf/tools/tests/test_minmatch.py::test_getall returned [1, 2, 10], which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
>     warnings.warn(
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED pyraf/tests/test_invocation.py::test_invoke_command[True-bye-] - Asser...
> ====== 1 failed, 355 passed, 45 skipped, 3 xfailed, 3 warnings in 31.30s =======
> could not open XWindow display
> could not open XWindow display
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/pyraf-2.2.2/.pybuild/cpython3_3.13_pyraf/build; python3.13 -m pytest 
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2025/04/14/pyraf_2.2.2-2_testing-i386.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250414;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the Debian-astro-maintainers mailing list