python3-docker: Fix for requests 2.32.0: CVE-2024-35195 backport

After backporting the CVE-2024-35195 in poky, parts of python3-requests
got updated to 2.32.0 which is incompatible with the current
docker-compose command.

This patch will fix the following error message:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.10/site-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/lib/python3.10/site-packages/compose/cli/main.py", line 200, in perform_command
    project = project_from_options('.', options)
  File "/usr/lib/python3.10/site-packages/compose/cli/command.py", line 60, in project_from_options
    return get_project(
  File "/usr/lib/python3.10/site-packages/compose/cli/command.py", line 152, in get_project
    client = get_client(
  File "/usr/lib/python3.10/site-packages/compose/cli/docker_client.py", line 41, in get_client
    client = docker_client(
  File "/usr/lib/python3.10/site-packages/compose/cli/docker_client.py", line 170, in docker_client
    client = APIClient(use_ssh_client=not use_paramiko_ssh, **kwargs)
  File "/usr/lib/python3.10/site-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
  File "/usr/lib/python3.10/site-packages/docker/api/client.py", line 221, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: Not supported URL scheme http+docker

Signed-off-by: Christian Ege <christian.ege@ifm.com>

Reference: 4149812ca9

Signed-off-by: Libo Chen <libo.chen.cn@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Christian Ege 2025-04-16 20:58:05 +08:00 committed by Bruce Ashfield
parent 55ed2134a4
commit 227cefa126
2 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,31 @@
From 2efec099ad80c18136dc38d9dafd1bb868bf4c90 Mon Sep 17 00:00:00 2001
From: Felix Fontein <felix@fontein.de>
Date: Mon, 20 May 2024 21:08:25 +0200
Subject: [PATCH] Add hotfix for requests 2.32.0. (#861)
Upstream-Status: Backport
[https://github.com/ansible-collections/community.docker/commit/ab8b6662c28a2c7b0473d43fcf0b26adb2877ede]
Signed-off-by: Libo Chen <libo.chen.cn@windriver.com>
---
docker/transport/basehttpadapter.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/docker/transport/basehttpadapter.py b/docker/transport/basehttpadapter.py
index 4d819b6..3ffe78b 100644
--- a/docker/transport/basehttpadapter.py
+++ b/docker/transport/basehttpadapter.py
@@ -6,3 +6,10 @@ class BaseHTTPAdapter(requests.adapters.HTTPAdapter):
super(BaseHTTPAdapter, self).close()
if hasattr(self, 'pools'):
self.pools.clear()
+
+ # Hotfix for requests 2.32.0: its commit
+ # https://github.com/psf/requests/commit/c0813a2d910ea6b4f8438b91d315b8d181302356
+ # changes requests.adapters.HTTPAdapter to no longer call get_connection() from
+ # send(), but instead call _get_connection().
+ def _get_connection(self, request, *args, **kwargs):
+ return self.get_connection(request.url, kwargs.get('proxies'))
--
2.35.5

View File

@ -3,6 +3,10 @@ HOMEPAGE = "https://github.com/docker/docker-py"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=34f3846f940453127309b920eeb89660"
SRC_URI:append = " \
file://0001-hotfix-requests-issue.patch \
"
SRC_URI[md5sum] = "9cc5156a2ff6458a8f52114b9bbc0d7e"
SRC_URI[sha256sum] = "3e8bc47534e0ca9331d72c32f2881bb13b93ded0bcdeab3c833fb7cf61c0a9a5"