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.