#1143321 httpcore: FTBFS: E ModuleNotFoundError: No module named 'certifi'

Package:
src:httpcore
Source:
src:httpcore
Submitter:
Santiago Vila
Date:
2026-08-24 18:19:03 UTC
Severity:
normal
Tags:
#1143321#5
Date:
2026-08-01 22:36:05 UTC
From:
To:
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/202608/

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:httpcore, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:142: Building wheel for python3.13 with "build" module
I: pybuild base:385: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_httpcore
* Building wheel...
Successfully built httpcore-1.0.9-py3-none-any.whl

[... snipped ...]

    import httpcore
httpcore/__init__.py:1: in <module>
    from ._api import request, stream
httpcore/_api.py:7: in <module>
    from ._sync.connection_pool import ConnectionPool
httpcore/_sync/__init__.py:1: in <module>
    from .connection import HTTPConnection
httpcore/_sync/connection.py:13: in <module>
    from .._ssl import default_ssl_context
httpcore/_ssl.py:3: in <module>
    import certifi
E   ModuleNotFoundError: No module named 'certifi'

#1143321#10
Date:
2026-08-10 09:08:52 UTC
From:
To:
Dear morph,

Could you fix this bug ?

I can do a NMU if needed.

BTW why this package is not python3 team maintained ?

rouca

#1143321#15
Date:
2026-08-11 18:36:17 UTC
From:
To:
control: tag -1 +patch

Hi,

Here is the trivial patch
--- a/debian/control +++ b/debian/control @@ -7,6 +7,7 @@ Build-Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-anyio <!nocheck>, + python3-certifi <!nocheck>, python3-h2 <!nocheck>, python3-hatch-fancy-pypi-readme, python3-hatchling,
#1143321#22
Date:
2026-08-14 15:31:30 UTC
From:
To:
Hello Alexandre, Bastien,

should we trigger a NMU with some delay? I had a look at AUTORM's list, it is
impressive, some thousands! of packages depend on httpcore:

$ wget https://udd.debian.org/cgi-bin/autoremovals.cgi -O - 2>/dev/null | grep httpcore | wc -l
4624

I can do it, the fix is simple (adding python3-certifi to build dependencies)

Best regards,	     	Georges.

#1143321#27
Date:
2026-08-16 10:42:20 UTC
From:
To:
Hi George,

I think you could go ahead with NMU

rouca

#1143321#32
Date:
2026-08-16 11:15:44 UTC
From:
To:
Hello,

I "dput --delayed 15" httpcore's source package, with release number 1.0.9-1.1

Here is the head of debian/changelog:

httpcore (1.0.9-1.1) unstable; urgency=medium

  * Non-maintainer upload
  * added a build-dependency on python3-certifi. Closes: #1143321

#1143321#37
Date:
2026-08-24 17:53:53 UTC
From:
To:
To avoid wasting further contributors time I've tested the chagne
and rescheduled the upload to 0-day now.

Best,
Chris

#1143321#42
Date:
2026-08-24 18:17:15 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
httpcore, 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 1143321@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Georges Khaznadar <georgesk@debian.org> (supplier of updated httpcore 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 ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 14 Aug 2026 17:14:39 +0200
Source: httpcore
Architecture: source
Version: 1.0.9-1.1
Distribution: unstable
Urgency: medium
Maintainer: Sandro Tosi <morph@debian.org>
Changed-By: Georges Khaznadar <georgesk@debian.org>
Closes: 1143321
Changes:
 httpcore (1.0.9-1.1) unstable; urgency=medium
 .
   * Non-maintainer upload
   * added a build-dependency on python3-certifi. Closes: #1143321
Checksums-Sha1:
 a50fea160a52d2a1edd06510e89d8eb7b40270a6 2406 httpcore_1.0.9-1.1.dsc
 9bd1d2474a843d1ed9512ed8e8da393d1bd16556 4368 httpcore_1.0.9-1.1.debian.tar.xz
 ba02edbada098eaac83a2c1a18fa22cbcbe575d9 8053 httpcore_1.0.9-1.1_source.buildinfo
Checksums-Sha256:
 fd0724a3f4aacca2cb05254ecfb3d9dd5cf4648933d3542c595dd1285dc2405c 2406 httpcore_1.0.9-1.1.dsc
 4a72363f2a0cd96b234f0dbb1c1430330d0e13f12226ab88e2dc6fad9586ca17 4368 httpcore_1.0.9-1.1.debian.tar.xz
 8c75b3e8a8457a2e1e3395d8496f9fdb154b32e905a0fe68194c34573096ee6a 8053 httpcore_1.0.9-1.1_source.buildinfo
Files:
 a6875bcc4d12e2fb7e08251579c86a8e 2406 python optional httpcore_1.0.9-1.1.dsc
 9e858667d8ecb56749aa9ed6cd1fe663 4368 python optional httpcore_1.0.9-1.1.debian.tar.xz
 b07dca0f4e1fd606122d7b92ba97e6ee 8053 python optional httpcore_1.0.9-1.1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEEM0CzZP9nFT+3zK6FHCgWkHE2rjkFAmp/MkQUHGdlb3JnZXNr
QGRlYmlhbi5vcmcACgkQHCgWkHE2rjnjaA//WtDJwK73+6yBbk+zkEPx1DFsLEgp
kG7ulHJs3t74XSuuI8atpTpR8ivpx+HRdxJKIFDem+QSnBB5W3LYPrroH8YS4FPP
UXogg+rjAHjrnaBe3LBlVpOPh5PVtS+SfSQLuyzFlWC196e1jMfsZLmsxSsi1wSG
JvqWtWZytKlBzidWQBLT5/hJL75E3ibYKJQaD6lbCyM9pvMLDwx7/0CPQQcaOftb
Zf2jWnBmR68OYSvQF0ogaNgzw+54kBVleBsr3mOu+4mob7KC4KXuLATsCjj3BjNN
wGU3LlEkOvukRAt//UsmmkenWcPwlxNS35weDkimeHtBPyMV3Ei8m8GaEC3mb1/2
lh5TdJkr/MjAyD0wVv9l227iQoL3i5Zq4AFMt3QYDajtGmwwqdLCFtgXhkW04EUG
tSDX6JUG1f9pkrhI2fhYCjR79YO9gO0WgDzItSttHI+w3XU+TgHA66xZ0wiZ4pN/
Psc6djxHq9PukUFGvVO86dcHE1Gn76agd0LRYpaF4UtIqp1BNDvHwJzNTnDu3QKm
XxTJWPPxPzbKCizx1XSNosmZr7jMDDi8OatXlUo+qpoOqDMvO+nrzyV0qDuVryXp
Ki7U3+ivAazlM/BwIjPAMSDElRNBTJF9Q89D/EOPihsBz50ZEodFXfj+NG9KIsEi
iI4mVIdSRGO9Z5U=
=z3Cw
-----END PGP SIGNATURE-----