Source: python-booleanoperations
Version: 0.9.0-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20250412 ftbfs-trixie

Hi,

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


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 
> /usr/lib/python3/dist-packages/setuptools/__init__.py:94: 
> _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are 
> deprecated.
> !!
> 
>         
> ********************************************************************************
>         Requirements should be satisfied by a PEP 517 installer.
>         If you are using pip, you can try `pip install --use-pep517`.
>         
> ********************************************************************************
> 
> !!
>   dist.fetch_build_eggs(dist.setup_requires)
> 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 
> /usr/lib/python3/dist-packages/setuptools/__init__.py:94: 
> _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are 
> deprecated.
> !!
> 
>         
> ********************************************************************************
>         Requirements should be satisfied by a PEP 517 installer.
>         If you are using pip, you can try `pip install --use-pep517`.
>         
> ********************************************************************************
> 
> !!
>   dist.fetch_build_eggs(dist.setup_requires)
> 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/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/_version.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/booleanGlyph.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/exceptions.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/flatten.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/booleanOperationManager.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
> copying Lib/booleanOperations/__init__.py -> 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build/booleanOperations
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build;
>  python3.13 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
> rootdir: /build/reproducible-path/python-booleanoperations-0.9.0
> configfile: setup.cfg
> plugins: typeguard-4.4.2
> collected 47 items
> 
> tests/test_BooleanGlyph.py FFFFFFFF..................................... [ 
> 95%]
> ..                                                                       
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _________________ BooleanTests.test_QTail_reversed_difference 
> __________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests 
> testMethod=test_QTail_reversed_difference>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[710 chars], ((250.0, 100.0), 
> 'curve', True, None), ((168[1018 chars]ath') != (('be[710 chars], 
> ((249.99999999999997, 100.0), 'curve', True,[1044 chars]ath')
> E       
> E       First differing element 14:
> E       ((250.0, 100.0), 'curve', True, None)
> E       ((249.99999999999997, 100.0), 'curve', True, None)
> E       
> E       Diff is 2102 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'QTail_reversed' failed for 'difference'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> ________________ BooleanTests.test_QTail_reversed_intersection 
> _________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests 
> testMethod=test_QTail_reversed_intersection>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[984 chars].0, 250.0), 'curve', 
> True, None), ((400.0, 332[293 chars]ath') != (('be[984 chars].0, 
> 249.99999999999997), 'curve', True, None),[306 chars]ath')
> E       
> E       First differing element 18:
> E       ((400.0, 250.0), 'curve', True, None)
> E       ((400.0, 249.99999999999997), 'curve', True, None)
> E       
> E       Diff is 1523 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'QTail_reversed' failed for 'intersection'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> ____________________ BooleanTests.test_QTail_reversed_union 
> ____________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests 
> testMethod=test_QTail_reversed_union>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[985 chars].0, 250.0), 'curve', 
> True, None), ((500.0, 388[285 chars]ath') != (('be[985 chars].0, 
> 249.99999999999997), 'curve', True, None),[298 chars]ath')
> E       
> E       First differing element 18:
> E       ((500.0, 250.0), 'curve', True, None)
> E       ((500.0, 249.99999999999997), 'curve', True, None)
> E       
> E       Diff is 1516 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'QTail_reversed' failed for 'union'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> _____________________ BooleanTests.test_QTail_reversed_xor 
> _____________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests 
> testMethod=test_QTail_reversed_xor>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[710 chars], ((250.0, 100.0), 
> 'curve', True, None), ((168[1341 chars]ath') != (('be[710 chars], 
> ((249.99999999999997, 100.0), 'curve', True,[1367 chars]ath')
> E       
> E       First differing element 14:
> E       ((250.0, 100.0), 'curve', True, None)
> E       ((249.99999999999997, 100.0), 'curve', True, None)
> E       
> E       Diff is 2443 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'QTail_reversed' failed for 'xor'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> ________________________ BooleanTests.test_Q_difference 
> ________________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests testMethod=test_Q_difference>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[714 chars]250.0, 100.0), 
> 'curve', True, None), ((168.0, [1022 chars]ath') != (('be[714 
> chars]250.00000000000003, 100.0), 'curve', True, Non[1048 chars]ath')
> E       
> E       First differing element 14:
> E       ((250.0, 100.0), 'curve', True, None)
> E       ((250.00000000000003, 100.0), 'curve', True, None)
> E       
> E       Diff is 2098 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'Q' failed for 'difference'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> _______________________ BooleanTests.test_Q_intersection 
> _______________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests testMethod=test_Q_intersection>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[973 chars]400.0, 250.0), 
> 'curve', True, None), ((400.0, [296 chars]ath') != (('be[973 
> chars]400.00000000000006, 250.0), 'curve', True, Non[309 chars]ath')
> E       
> E       First differing element 18:
> E       ((400.0, 250.0), 'curve', True, None)
> E       ((400.00000000000006, 250.0), 'curve', True, None)
> E       
> E       Diff is 1489 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'Q' failed for 'intersection'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> __________________________ BooleanTests.test_Q_union 
> ___________________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests testMethod=test_Q_union>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[476 chars].0, 250.0), 'curve', 
> True, None), ((500.0, 388[1106 chars]ath') != (('be[476 chars].0, 
> 249.99999999999997), 'curve', True, None),[1132 chars]ath')
> E       
> E       First differing element 10:
> E       ((500.0, 250.0), 'curve', True, None)
> E       ((500.0, 249.99999999999997), 'curve', True, None)
> E       
> E       Diff is 1944 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'Q' failed for 'union'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> ___________________________ BooleanTests.test_Q_xor 
> ____________________________
> 
> self = <tests.test_BooleanGlyph.BooleanTests testMethod=test_Q_xor>
> 
>     def test(self):
>         if VERBOSE:
>             print("test: '%s' for '%s'" % (glyph.name, booleanMethodName))
>         testPen = DigestPointPen()
>         func(*args, outPen=testPen)
>         expectedPen = DigestPointPen()
>         expectedGlyph.drawPoints(expectedPen)
> >       self.assertEqual(testPen.getDigest(), expectedPen.getDigest(), "Glyph 
> > name '%s' failed for '%s'." % (glyph.name, booleanMethodName))
> E       AssertionError: Tuples differ: (('be[714 chars]250.0, 100.0), 
> 'curve', True, None), ((168.0, [1345 chars]ath') != (('be[714 
> chars]250.00000000000003, 100.0), 'curve', True, Non[1371 chars]ath')
> E       
> E       First differing element 14:
> E       ((250.0, 100.0), 'curve', True, None)
> E       ((250.00000000000003, 100.0), 'curve', True, None)
> E       
> E       Diff is 2439 characters long. Set self.maxDiff to None to see it. : 
> Glyph name 'Q' failed for 'xor'.
> 
> tests/test_BooleanGlyph.py:50: AssertionError
> =========================== short test summary info 
> ============================
> FAILED 
> tests/test_BooleanGlyph.py::BooleanTests::test_QTail_reversed_difference
> FAILED 
> tests/test_BooleanGlyph.py::BooleanTests::test_QTail_reversed_intersection
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_QTail_reversed_union - 
> ...
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_QTail_reversed_xor - 
> As...
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_Q_difference - 
> Assertio...
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_Q_intersection - 
> Assert...
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_Q_union - 
> AssertionErro...
> FAILED tests/test_BooleanGlyph.py::BooleanTests::test_Q_xor - 
> AssertionError:...
> ========================= 8 failed, 39 passed in 0.39s 
> =========================
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
> /build/reproducible-path/python-booleanoperations-0.9.0/.pybuild/cpython3_3.13_booleanOperations/build;
>  python3.13 -m pytest tests
> 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/12/python-booleanoperations_0.9.0-3_testing.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250412;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250412&fusertaguser=lu...@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.

Reply via email to