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