Source: python-scrapy
Version: 2.8.0-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: [email protected]
Usertags: ftbfs-20230216 ftbfs-bookworm
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> =================================== FAILURES
> ===================================
> ________________ ProxyConnectTestCase.test_https_connect_tunnel
> ________________
>
> self = <tests.test_proxy_connect.ProxyConnectTestCase
> testMethod=test_https_connect_tunnel>
>
> def setUp(self):
> try:
> import mitmproxy # noqa: F401
> except ImportError:
> self.skipTest("mitmproxy is not installed")
>
> self.mockserver = MockServer()
> self.mockserver.__enter__()
> self._oldenv = os.environ.copy()
>
> self._proxy = MitmProxy()
> > proxy_url = self._proxy.start()
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:79:
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <tests.test_proxy_connect.MitmProxy object at 0x7fdd47be8bd0>
>
> def start(self):
> from scrapy.utils.test import get_testenv
>
> script = """
> import sys
> from mitmproxy.tools.main import mitmdump
> sys.argv[0] = "mitmdump"
> sys.exit(mitmdump())
> """
> cert_path = Path(__file__).parent.resolve() / "keys" /
> "mitmproxy-ca.pem"
> self.proc = Popen(
> [
> sys.executable,
> "-c",
> script,
> "--listen-host",
> "127.0.0.1",
> "--listen-port",
> "0",
> "--proxyauth",
> f"{self.auth_user}:{self.auth_pass}",
> "--certs",
> str(cert_path),
> "--ssl-insecure",
> ],
> stdout=PIPE,
> env=get_testenv(),
> )
> line = self.proc.stdout.readline().decode("utf-8")
> > host_port = re.search(r"listening at http://([^:]+:\d+)",
> > line).group(1)
> E AttributeError: 'NoneType' object has no attribute 'group'
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:52:
> AttributeError
> ----------------------------- Captured stderr call
> -----------------------------
> Traceback (most recent call last):
> File "<string>", line 3, in <module>
> File "/usr/lib/python3/dist-packages/mitmproxy/tools/main.py", line 9, in
> <module>
> from mitmproxy import exceptions, master
> File "/usr/lib/python3/dist-packages/mitmproxy/master.py", line 7, in
> <module>
> from mitmproxy import eventsequence
> File "/usr/lib/python3/dist-packages/mitmproxy/eventsequence.py", line 6,
> in <module>
> from mitmproxy import http
> File "/usr/lib/python3/dist-packages/mitmproxy/http.py", line 26, in
> <module>
> from mitmproxy.net import encoding
> File "/usr/lib/python3/dist-packages/mitmproxy/net/encoding.py", line 13,
> in <module>
> import zstandard as zstd
> File "/usr/lib/python3/dist-packages/zstandard/__init__.py", line 39, in
> <module>
> from .backend_c import * # type: ignore
> ^^^^^^^^^^^^^^^^^^^^^^^^
> ImportError: zstd C API versions mismatch; Python bindings were not
> compiled/linked against expected zstd version (10504 returned by the lib,
> 10502 hardcoded in zstd headers, 10502 hardcoded in the cext)
> ______________ ProxyConnectTestCase.test_https_tunnel_auth_error
> _______________
>
> self = <tests.test_proxy_connect.ProxyConnectTestCase
> testMethod=test_https_tunnel_auth_error>
>
> def setUp(self):
> try:
> import mitmproxy # noqa: F401
> except ImportError:
> self.skipTest("mitmproxy is not installed")
>
> self.mockserver = MockServer()
> self.mockserver.__enter__()
> self._oldenv = os.environ.copy()
>
> self._proxy = MitmProxy()
> > proxy_url = self._proxy.start()
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:79:
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <tests.test_proxy_connect.MitmProxy object at 0x7fdd47909910>
>
> def start(self):
> from scrapy.utils.test import get_testenv
>
> script = """
> import sys
> from mitmproxy.tools.main import mitmdump
> sys.argv[0] = "mitmdump"
> sys.exit(mitmdump())
> """
> cert_path = Path(__file__).parent.resolve() / "keys" /
> "mitmproxy-ca.pem"
> self.proc = Popen(
> [
> sys.executable,
> "-c",
> script,
> "--listen-host",
> "127.0.0.1",
> "--listen-port",
> "0",
> "--proxyauth",
> f"{self.auth_user}:{self.auth_pass}",
> "--certs",
> str(cert_path),
> "--ssl-insecure",
> ],
> stdout=PIPE,
> env=get_testenv(),
> )
> line = self.proc.stdout.readline().decode("utf-8")
> > host_port = re.search(r"listening at http://([^:]+:\d+)",
> > line).group(1)
> E AttributeError: 'NoneType' object has no attribute 'group'
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:52:
> AttributeError
> ----------------------------- Captured stderr call
> -----------------------------
> Traceback (most recent call last):
> File "<string>", line 3, in <module>
> File "/usr/lib/python3/dist-packages/mitmproxy/tools/main.py", line 9, in
> <module>
> from mitmproxy import exceptions, master
> File "/usr/lib/python3/dist-packages/mitmproxy/master.py", line 7, in
> <module>
> from mitmproxy import eventsequence
> File "/usr/lib/python3/dist-packages/mitmproxy/eventsequence.py", line 6,
> in <module>
> from mitmproxy import http
> File "/usr/lib/python3/dist-packages/mitmproxy/http.py", line 26, in
> <module>
> from mitmproxy.net import encoding
> File "/usr/lib/python3/dist-packages/mitmproxy/net/encoding.py", line 13,
> in <module>
> import zstandard as zstd
> File "/usr/lib/python3/dist-packages/zstandard/__init__.py", line 39, in
> <module>
> from .backend_c import * # type: ignore
> ^^^^^^^^^^^^^^^^^^^^^^^^
> ImportError: zstd C API versions mismatch; Python bindings were not
> compiled/linked against expected zstd version (10504 returned by the lib,
> 10502 hardcoded in zstd headers, 10502 hardcoded in the cext)
> _
> ProxyConnectTestCase.test_https_tunnel_without_leak_proxy_authorization_header
> _
>
> self = <tests.test_proxy_connect.ProxyConnectTestCase
> testMethod=test_https_tunnel_without_leak_proxy_authorization_header>
>
> def setUp(self):
> try:
> import mitmproxy # noqa: F401
> except ImportError:
> self.skipTest("mitmproxy is not installed")
>
> self.mockserver = MockServer()
> self.mockserver.__enter__()
> self._oldenv = os.environ.copy()
>
> self._proxy = MitmProxy()
> > proxy_url = self._proxy.start()
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:79:
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> self = <tests.test_proxy_connect.MitmProxy object at 0x7fdd47bee650>
>
> def start(self):
> from scrapy.utils.test import get_testenv
>
> script = """
> import sys
> from mitmproxy.tools.main import mitmdump
> sys.argv[0] = "mitmdump"
> sys.exit(mitmdump())
> """
> cert_path = Path(__file__).parent.resolve() / "keys" /
> "mitmproxy-ca.pem"
> self.proc = Popen(
> [
> sys.executable,
> "-c",
> script,
> "--listen-host",
> "127.0.0.1",
> "--listen-port",
> "0",
> "--proxyauth",
> f"{self.auth_user}:{self.auth_pass}",
> "--certs",
> str(cert_path),
> "--ssl-insecure",
> ],
> stdout=PIPE,
> env=get_testenv(),
> )
> line = self.proc.stdout.readline().decode("utf-8")
> > host_port = re.search(r"listening at http://([^:]+:\d+)",
> > line).group(1)
> E AttributeError: 'NoneType' object has no attribute 'group'
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/tests/test_proxy_connect.py:52:
> AttributeError
> ----------------------------- Captured stderr call
> -----------------------------
> Traceback (most recent call last):
> File "<string>", line 3, in <module>
> File "/usr/lib/python3/dist-packages/mitmproxy/tools/main.py", line 9, in
> <module>
> from mitmproxy import exceptions, master
> File "/usr/lib/python3/dist-packages/mitmproxy/master.py", line 7, in
> <module>
> from mitmproxy import eventsequence
> File "/usr/lib/python3/dist-packages/mitmproxy/eventsequence.py", line 6,
> in <module>
> from mitmproxy import http
> File "/usr/lib/python3/dist-packages/mitmproxy/http.py", line 26, in
> <module>
> from mitmproxy.net import encoding
> File "/usr/lib/python3/dist-packages/mitmproxy/net/encoding.py", line 13,
> in <module>
> import zstandard as zstd
> File "/usr/lib/python3/dist-packages/zstandard/__init__.py", line 39, in
> <module>
> from .backend_c import * # type: ignore
> ^^^^^^^^^^^^^^^^^^^^^^^^
> ImportError: zstd C API versions mismatch; Python bindings were not
> compiled/linked against expected zstd version (10504 returned by the lib,
> 10502 hardcoded in zstd headers, 10502 hardcoded in the cext)
> =============================== warnings summary
> ===============================
> ../../../../../../usr/lib/python3/dist-packages/twisted/web/http.py:103
> /usr/lib/python3/dist-packages/twisted/web/http.py:103: DeprecationWarning:
> 'cgi' is deprecated and slated for removal in Python 3.13
> import cgi
>
> ../../../../../../usr/lib/python3/dist-packages/pyftpdlib/authorizers.py:372
> /usr/lib/python3/dist-packages/pyftpdlib/authorizers.py:372:
> DeprecationWarning: 'crypt' is deprecated and slated for removal in Python
> 3.13
> import crypt
>
> ../../../../../../usr/lib/python3/dist-packages/pyftpdlib/authorizers.py:374
> /usr/lib/python3/dist-packages/pyftpdlib/authorizers.py:374:
> DeprecationWarning: 'spwd' is deprecated and slated for removal in Python 3.13
> import spwd
>
> ../../../../../../usr/lib/python3.11/asynchat.py:48
> /usr/lib/python3.11/asynchat.py:48: DeprecationWarning: The asyncore module
> is deprecated and will be removed in Python 3.12. The recommended replacement
> is asyncio
> import asyncore
>
> ../../../../../../usr/lib/python3/dist-packages/pyftpdlib/handlers.py:5
> /usr/lib/python3/dist-packages/pyftpdlib/handlers.py:5: DeprecationWarning:
> The asynchat module is deprecated and will be removed in Python 3.12. The
> recommended replacement is asyncio
> import asynchat
>
> tests/test_crawl.py: 2 warnings
> tests/test_downloader_handlers.py: 161 warnings
> tests/test_downloader_handlers_http2.py: 166 warnings
> tests/test_webclient.py: 4 warnings
>
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build/scrapy/core/downloader/contextfactory.py:76:
> DeprecationWarning: Passing method to
> twisted.internet.ssl.CertificateOptions was deprecated in Twisted 17.1.0.
> Please use a combination of insecurelyLowerMinimumTo, raiseMinimumTo, and
> lowerMaximumSecurityTo instead, as Twisted will correctly configure the
> method.
> return CertificateOptions(
>
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info
> ============================
> FAILED
> tests/test_proxy_connect.py::ProxyConnectTestCase::test_https_connect_tunnel
> FAILED
> tests/test_proxy_connect.py::ProxyConnectTestCase::test_https_tunnel_auth_error
> FAILED
> tests/test_proxy_connect.py::ProxyConnectTestCase::test_https_tunnel_without_leak_proxy_authorization_header
> = 3 failed, 2910 passed, 125 skipped, 24 deselected, 24 xfailed, 338 warnings
> in 529.47s (0:08:49) =
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_scrapy/build; python3.11 -m pytest
> --ignore tests/test_command_check.py -k 'not (test_squeues.py and
> (test_peek_fifo or test_peek_one_element or test_peek_lifo))'
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11
> returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2023/02/16/python-scrapy_2.8.0-1_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230216;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230216&[email protected]&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.