[Debian-med-packaging] Bug#1081672: FTBFS with Python 3.13

Stefano Rivera stefanor at debian.org
Fri Sep 13 18:08:45 BST 2024


Source: pairtools
Version: 1.0.3-1
Severity: normal
Tags: upstream
User: debian-python at lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/open2c/pairtools/issues/250

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

building 'pairtools.lib.parse_pysam' extension
aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ipairtools/lib -I/usr/lib/python3/dist-packages/pysam -I/usr/lib/python3/dist-packages/pysam/include/samtools -I/usr/include/python3.12 -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/lib/python3/dist-packages/numpy/core/include -c /<<PKGBUILDDIR>>/pairtools/lib/parse_pysam.c -o build/temp.linux-aarch64-cpython-312/<<PKGBUILDDIR>>/pairtools/lib/parse_pysam.o
aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-aarch64-cpython-312/<<PKGBUILDDIR>>/pairtools/lib/parse_pysam.o -L/usr/lib/aarch64-linux-gnu -o /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/pairtools/lib/parse_pysam.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libctabixproxies.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libcfaidx.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libcsamfile.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libcvcf.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libcbcf.cpython-312-aarch64-linux-gnu.so /usr/lib/python3/dist-packages/pysam/libctabix.cpython-312-aarch64-linux-gnu.so
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_test -- --system=custom --test-args="export CURPY={interpreter}; \
cd {build_dir} && {interpreter} -m pytest -v"
I: pybuild base:311: export CURPY=python3.13; cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build && python3.13 -m pytest -v
============================= test session starts ==============================
platform linux -- Python 3.13.0rc2, pytest-8.3.2, pluggy-1.5.0 -- /usr/bin/python3.13
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build
configfile: pytest.ini
testpaths: tests
plugins: typeguard-4.3.0
collecting ... collected 17 items / 2 errors

==================================== ERRORS ====================================
___________________ ERROR collecting tests/test_headerops.py ___________________
ImportError while importing test module '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_headerops.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.13/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_headerops.py:2: in <module>
    from pairtools.lib import headerops
pairtools/lib/__init__.py:1: in <module>
    from . import fileio
pairtools/lib/fileio.py:2: in <module>
    import pipes
E   ModuleNotFoundError: No module named 'pipes'
____________________ ERROR collecting tests/test_select.py _____________________
ImportError while importing test module '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_select.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.13/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_select.py:6: in <module>
    from pairtools.lib import pairsam_format
pairtools/lib/__init__.py:1: in <module>
    from . import fileio
pairtools/lib/fileio.py:2: in <module>
    import pipes
E   ModuleNotFoundError: No module named 'pipes'
=========================== short test summary info ============================
ERROR tests/test_headerops.py
ERROR tests/test_select.py
!!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!!
============================== 2 errors in 0.50s ===============================
E: pybuild pybuild:389: test: plugin custom failed with: exit code=2: export CURPY=python3.13; cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build && python3.13 -m pytest -v
I: pybuild base:311: export CURPY=python3.12; cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build && python3.12 -m pytest -v
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.2, pluggy-1.5.0 -- /usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build
configfile: pytest.ini
testpaths: tests
plugins: typeguard-4.3.0
collecting ... collected 31 items

tests/test_dedup.py::test_mock_pairsam PASSED                            [  3%]
tests/test_filterbycov.py::test_mock_pairs PASSED                        [  6%]
tests/test_flip.py::test_flip PASSED                                     [  9%]
tests/test_header.py::test_generate PASSED                               [ 12%]
tests/test_headerops.py::test_make_standard_header PASSED                [ 16%]
tests/test_headerops.py::test_samheaderops PASSED                        [ 19%]
tests/test_headerops.py::test_merge_pairheaders PASSED                   [ 22%]
tests/test_headerops.py::test_merge_different_pairheaders PASSED         [ 25%]
tests/test_headerops.py::test_force_merge_pairheaders PASSED             [ 29%]
tests/test_headerops.py::test_merge_samheaders PASSED                    [ 32%]
tests/test_headerops.py::test_merge_headers PASSED                       [ 35%]
tests/test_markasdup.py::test_mock_pairsam PASSED                        [ 38%]
tests/test_merge.py::test_mock_pairsam PASSED                            [ 41%]
tests/test_parse.py::test_python_version PASSED                          [ 45%]
tests/test_parse.py::test_mock_pysam PASSED                              [ 48%]
tests/test_parse.py::test_mock_pysam_parse_all PASSED                    [ 51%]
tests/test_parse2.py::test_mock_pysam_parse2_read PASSED                 [ 54%]
tests/test_parse2.py::test_mock_pysam_parse2_pair PASSED                 [ 58%]
tests/test_restrict.py::test_restrict PASSED                             [ 61%]
tests/test_scaling.py::test_scaling PASSED                               [ 64%]
tests/test_select.py::test_preserve PASSED                               [ 67%]
tests/test_select.py::test_equal PASSED                                  [ 70%]
tests/test_select.py::test_csv PASSED                                    [ 74%]
tests/test_select.py::test_wildcard PASSED                               [ 77%]
tests/test_select.py::test_regex PASSED                                  [ 80%]
tests/test_select.py::test_chrom_subset PASSED                           [ 83%]
tests/test_select.py::test_remove_columns PASSED                         [ 87%]
tests/test_sort.py::test_mock_pairsam PASSED                             [ 90%]
tests/test_split.py::test_split PASSED                                   [ 93%]
tests/test_stats.py::test_mock_pairsam PASSED                            [ 96%]
tests/test_stats.py::test_merge_stats PASSED                             [100%]

=============================== warnings summary ===============================
pairtools/lib/fileio.py:2
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/pairtools/lib/fileio.py:2: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
    import pipes

pairtools/lib/stats.py:928
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/pairtools/lib/stats.py:928: SyntaxWarning: invalid escape sequence '\w'
    """Extract the name of the tile for each read name in the series

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
======================= 31 passed, 2 warnings in 38.56s ========================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" --system=custom "--test-args=export CURPY={interpreter}; cd {build_dir} && {interpreter} -m pytest -v" returned exit code 13
make[1]: *** [debian/rules:16: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:9: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-13T17:00:09Z


If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/712345/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano



More information about the Debian-med-packaging mailing list