--- Begin Message ---
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.
--- End Message ---