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
--------------------------------------------------------------------------------

Reply via email to