Your message dated Fri, 09 Jan 2026 12:33:52 +0000
with message-id <[email protected]>
and subject line Bug#1123258: fixed in zope.interface 8.2-1
has caused the Debian Bug report #1123258,
regarding python-klein: FTBFS: dh_auto_test: error: pybuild --test 
--test-pytest -i python{version} -p "3.14 3.13" returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1123258: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123258
Debian Bug Tracking System
Contact [email protected] with problems
--- 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 ---
--- Begin Message ---
Source: zope.interface
Source-Version: 8.2-1
Done: Colin Watson <[email protected]>

We believe that the bug you reported is fixed in the latest version of
zope.interface, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Colin Watson <[email protected]> (supplier of updated zope.interface package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Fri, 09 Jan 2026 12:10:55 +0000
Source: zope.interface
Architecture: source
Version: 8.2-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Colin Watson <[email protected]>
Closes: 1123258
Changes:
 zope.interface (8.2-1) unstable; urgency=medium
 .
   * New upstream release:
     - Ignore ``__annotate_func__`` added in Python 3.14b1 (closes:
       #1123258).
Checksums-Sha1:
 beca7928826b509ae75945c977b7551dbc44a0fd 2385 zope.interface_8.2-1.dsc
 f76cd2d31055c7adfaa00abb0ed86761d535cdf2 229719 zope.interface_8.2.orig.tar.gz
 41ac8601c8dfb4ff5a633107e9b04c1d6d69322d 7316 
zope.interface_8.2-1.debian.tar.xz
Checksums-Sha256:
 9dca8fc31bddf37f940dc36bbaff680c9d6aa51474a3f88ebfe7c899183c32a3 2385 
zope.interface_8.2-1.dsc
 aa0cfc6fe1513a7381f4c6bf008f50681cd7d56f27a5618bce8c2f1e919de061 229719 
zope.interface_8.2.orig.tar.gz
 bd1d28fe4e5d9aca60bd589c3e9eacf0eb8f39acccbafd3a702f037bc6c28e7a 7316 
zope.interface_8.2-1.debian.tar.xz
Files:
 7c231bf1f4396531eff46c6ee54b13aa 2385 zope optional zope.interface_8.2-1.dsc
 b843bb7eeb2d30db7e5e250d0b7042cd 229719 zope optional 
zope.interface_8.2.orig.tar.gz
 37c7ee570062c34430c02e62094da2b5 7316 zope optional 
zope.interface_8.2-1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEErApP8SYRtvzPAcEROTWH2X2GUAsFAmlg8GoACgkQOTWH2X2G
UAutLw/8CXXvJ101mGmB3G6jHZSONsQmP+y/PijvlvE287nsGYPWt67rMpbaUE92
cNWRqplhvfQ4jh84ACi3YXmSnzYHoFtvjDiS8n6UcbK9Y5/m/K0JJFr1G6Hn6iRI
q3t79yNF/NyBnMweo3Zn4xmdza0jiwSfd6BGq6LzWkma63STO60HLEXqUJvZ0dro
G1+qC7mF0DnJqCQy5H6WG9KWHxzklFAvcpbWt7joE1xQCKHeDJR2JAyQuV3ym7WE
r3OGObyyoDL5evR2Qcnxigjh890f+OlcLgUwioSm+LLmEOuN+tCrw2/i/PnLuEcY
YgNfmrfacOEMaE2vkHsEJcQNTzbYL0/OWLmkKt7Y7BZf/QLQUVvBbOc4kI/MImmB
sLsT1QufTcXYs6MgI5z+aWsFMF9cZaeVB3rW2x2ygT//AODE3DMMRWKVIUkrNUUm
umJpyLjhVnfDVwjfGexpwRJ/QzzKBqTXCcEQlmW8SjDpnoVnt+uugN4r4BcC428b
x1y1Jqcdu48IAjmIVbc7i7cr9klGtEPNHHobvQ798Fq7Wxhc7hQl0UiOIAgdNCBP
vP9a85NUi8Q+i/xfPKkHayg4v6ltZDoN6DdNpjKw6RhTf0520D60b2tDMAtlwAMI
irD7dKA6qtxs/EStgCUDJeJQvHyqOn0Fd6QuuNYKIwOb61ikzik=
=1xVH
-----END PGP SIGNATURE-----

Attachment: pgpGyJJwoouUG.pgp
Description: PGP signature


--- End Message ---

Reply via email to