Package: src:python-klein Version: 24.8.0-2 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-klein, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:317: python3.14 setup.py clean /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) /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. [... snipped ...] # a more general form than ``property`` return else: if not callable(attr): raise BrokenMethodImplementation( desc, "implementation is not a method", attr, iface, candidate ) # sigh, it's callable, but we don't know how to introspect it, so # we have to give it a pass. return # Make sure that the required and implemented method signatures are # the same. mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) if mess: > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPResponse: The contract of klein._imessage.IHTTPResponse.__annotate_func__(format) is violated because 'FrozenHTTPResponse.__annotate__()' doesn't allow enough arguments. /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation During handling of the above exception, another exception occurred: self = <test.test_response.FrozenHTTPResponseTests testMethod=test_interface> def test_interface(self) -> None: """ L{FrozenHTTPResponse} implements L{IHTTPResponse}. """ response = self.responseFromBytes() > self.assertProvides(IHTTPResponse, response) test/test_response.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/_trial.py:34: in assertProvides self.fail(f"{obj} does not provide {interface}") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <test.test_response.FrozenHTTPResponseTests testMethod=test_interface> msg = "FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPResponse" def fail(self, msg: Optional[object] = None) -> NoReturn: """ Absolutely fail the test. Do not pass go, do not collect $200. @param msg: the message that will be displayed as the reason for the failure """ > raise self.failureException(msg) E twisted.trial.unittest.FailTest: FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPResponse /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest ________________ FrozenHTTPResponseTests.test_interface_message ________________ self = <test.test_response.FrozenHTTPResponseTests testMethod=test_interface_message> interface = <InterfaceClass klein._imessage.IHTTPMessage> obj = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) def assertProvides(self, interface: Type[Interface], obj: object) -> None: """ Assert that a object provides an interface. @param interface: The interface the object is expected to provide. @param obj: The object to test. """ try: > self.assertTrue(verifyObject(interface, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test/_trial.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject return _verify(iface, candidate, tentative, vtype='o') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify raise excs[0] /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify _verify_element(iface, name, desc, candidate, vtype) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ iface = <InterfaceClass klein._imessage.IHTTPMessage> name = '__annotate_func__' desc = <zope.interface.interface.Method object at 0x7f9814e7a990 klein._imessage.IHTTPMessage.__annotate_func__(format)> candidate = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) vtype = 'o' def _verify_element(iface, name, desc, candidate, vtype): # Here the `desc` is either an `Attribute` or `Method` instance try: attr = getattr(candidate, name) except AttributeError: if (not isinstance(desc, Method)) and vtype == 'c': # We can't verify non-methods on classes, since the # class may provide attrs in it's __init__. return # TODO: This should use ``raise...from`` raise BrokenImplementation(iface, desc, candidate) if not isinstance(desc, Method): # If it's not a method, there's nothing else we can test return if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): # The first case is what you get for things like ``dict.pop`` # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The # second case is what you get for things like ``dict().pop`` on # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. # In neither case can we get a signature, so there's nothing # to verify. Even the inspect module gives up and raises # ValueError: no signature found. The ``__text_signature__`` attribute # isn't typically populated either. # # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not # true for things like ``dict.pop`` (but might be true for C # extensions?) return if isinstance(attr, FunctionType): if isinstance(candidate, type) and vtype == 'c': # This is an "unbound method". # Only unwrap this if we're verifying implementedBy; # otherwise we can unwrap @staticmethod on classes that directly # provide an interface. meth = fromFunction(attr, iface, name=name, imlevel=1) else: # Nope, just a normal function meth = fromFunction(attr, iface, name=name) elif ( isinstance(attr, MethodTypes) and type(attr.__func__) is FunctionType ): meth = fromMethod(attr, iface, name) elif isinstance(attr, property) and vtype == 'c': # Without an instance we cannot be sure it's not a # callable. # TODO: This should probably check inspect.isdatadescriptor(), # a more general form than ``property`` return else: if not callable(attr): raise BrokenMethodImplementation( desc, "implementation is not a method", attr, iface, candidate ) # sigh, it's callable, but we don't know how to introspect it, so # we have to give it a pass. return # Make sure that the required and implemented method signatures are # the same. mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) if mess: > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPMessage: The contract of klein._imessage.IHTTPMessage.__annotate_func__(format) is violated because 'FrozenHTTPResponse.__annotate__()' doesn't allow enough arguments. /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation During handling of the above exception, another exception occurred: self = <test.test_response.FrozenHTTPResponseTests testMethod=test_interface_message> def test_interface_message(self) -> None: """ Message instance implements L{IHTTPMessage}. """ message = self.messageFromBytes() > cast(TestCase, self).assertProvides(IHTTPMessage, message) test/test_message.py:48: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/_trial.py:34: in assertProvides self.fail(f"{obj} does not provide {interface}") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <test.test_response.FrozenHTTPResponseTests testMethod=test_interface_message> msg = "FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage" def fail(self, msg: Optional[object] = None) -> NoReturn: """ Absolutely fail the test. Do not pass go, do not collect $200. @param msg: the message that will be displayed as the reason for the failure """ > raise self.failureException(msg) E twisted.trial.unittest.FailTest: FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest =============================== warnings summary =============================== ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:35 /usr/lib/python3/dist-packages/twisted/web/static.py:35: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead dangerousPathError = resource._UnsafeNoResource("Invalid request URL.") ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:264 /usr/lib/python3/dist-packages/twisted/web/static.py:264: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead childNotFound = resource._UnsafeNoResource("File not found.") ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:265 /usr/lib/python3/dist-packages/twisted/web/static.py:265: DeprecationWarning: twisted.web.resource._UnsafeForbiddenResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.forbidden instead, which properly escapes HTML. instead forbidden = resource._UnsafeForbiddenResource() test/test_form.py:46 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_klein/build/test/test_form.py:46: PytestCollectionWarning: cannot collect test class 'TestObject' because it has a __init__ constructor (from: .pybuild/cpython3_3.14_klein/build/test/test_form.py) @attr.s(auto_attribs=True, hash=False) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test/test_headers.py::FrozenHTTPHeadersTests::test_interface - twisted... FAILED test/test_headers.py::MutableHTTPHeadersTests::test_interface - twiste... FAILED test/test_headers_compat.py::HTTPHeadersWrappingHeadersTests::test_interface FAILED test/test_request.py::FrozenHTTPRequestTests::test_interface - twisted... FAILED test/test_request.py::FrozenHTTPRequestTests::test_interface_message FAILED test/test_request_compat.py::HTTPRequestWrappingIRequestTests::test_headers FAILED test/test_request_compat.py::HTTPRequestWrappingIRequestTests::test_interface FAILED test/test_response.py::FrozenHTTPResponseTests::test_interface - twist... FAILED test/test_response.py::FrozenHTTPResponseTests::test_interface_message ================== 9 failed, 237 passed, 4 warnings in 1.01s =================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_klein/build; python3.14 -m pytest I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_klein/build; python3.13 -m pytest ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> configfile: pyproject.toml plugins: typeguard-4.4.4, hypothesis-6.148.2 collected 246 items test/test_app.py ............................... [ 12%] test/test_attrs_zope.py ... [ 13%] test/test_exports.py ..... [ 15%] test/test_form.py ..................... [ 24%] test/test_headers.py ..................................... [ 39%] test/test_headers_compat.py .............. [ 45%] test/test_memory.py ... [ 46%] test/test_plating.py ....................... [ 55%] test/test_request.py ........... [ 60%] test/test_request_compat.py ....... [ 63%] test/test_requirer.py ..... [ 65%] test/test_resource.py .................................................. [ 85%] ............... [ 91%] test/test_response.py ........... [ 95%] test/test_session.py ........ [ 99%] test/test_trial.py .. [100%] =============================== warnings summary =============================== ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:35 /usr/lib/python3/dist-packages/twisted/web/static.py:35: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead dangerousPathError = resource._UnsafeNoResource("Invalid request URL.") ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:264 /usr/lib/python3/dist-packages/twisted/web/static.py:264: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead childNotFound = resource._UnsafeNoResource("File not found.") ../../../../../../usr/lib/python3/dist-packages/twisted/web/static.py:265 /usr/lib/python3/dist-packages/twisted/web/static.py:265: DeprecationWarning: twisted.web.resource._UnsafeForbiddenResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.forbidden instead, which properly escapes HTML. instead forbidden = resource._UnsafeForbiddenResource() test/test_form.py:46 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_klein/build/test/test_form.py:46: PytestCollectionWarning: cannot collect test class 'TestObject' because it has a __init__ constructor (from: .pybuild/cpython3_3.13_klein/build/test/test_form.py) @attr.s(auto_attribs=True, hash=False) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======================= 246 passed, 4 warnings in 0.85s ======================== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:7: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

