commit: b8ee5e5435a9f7ede0a79c944d7d901eba0938a8 Author: Sebastian Pipping <sping <AT> gentoo <DOT> org> AuthorDate: Fri Mar 28 18:21:56 2025 +0000 Commit: Sebastian Pipping <sping <AT> gentoo <DOT> org> CommitDate: Fri Mar 28 19:07:15 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8ee5e54
app-containers/docker-compose: Python 3.13 Closes: https://bugs.gentoo.org/952185 Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org> .../docker-compose/docker-compose-1.29.2-r8.ebuild | 81 ++++++++++++++++++++++ .../files/docker-compose-1.29.2-python-3.13.patch | 35 ++++++++++ 2 files changed, 116 insertions(+) diff --git a/app-containers/docker-compose/docker-compose-1.29.2-r8.ebuild b/app-containers/docker-compose/docker-compose-1.29.2-r8.ebuild new file mode 100644 index 000000000000..a0bbd6b27ad5 --- /dev/null +++ b/app-containers/docker-compose/docker-compose-1.29.2-r8.ebuild @@ -0,0 +1,81 @@ +# Copyright 2018-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..13} ) + +inherit bash-completion-r1 distutils-r1 + +MY_PV=${PV/_/-} +DESCRIPTION="Multi-container orchestration for Docker" +HOMEPAGE="https://github.com/docker/compose" +SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.gh.tar.gz" + +S="${WORKDIR}/compose-${MY_PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +RDEPEND=" + >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] + >=dev-python/docker-7[${PYTHON_USEDEP}] + >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] + >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] + >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}] + >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] + dev-python/paramiko[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.6.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] + >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] + >=dev-python/six-1.3.0[${PYTHON_USEDEP}] + >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] + >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" + +DEPEND="${RDEPEND} + test? ( + >=dev-python/pytest-5[${PYTHON_USEDEP}] + >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}] + dev-python/py[${PYTHON_USEDEP}] + )" + +EPYTEST_DESELECT=( + # These are not ready for >=dev-python/docker-7 + tests/unit/cli/docker_client_test.py::TLSConfigTestCase:: +) + +distutils_enable_tests pytest + +PATCHES=( + # Bug #679968 -- https://bugs.gentoo.org/679968 + # Bug #681002 -- https://bugs.gentoo.org/681002 + "${FILESDIR}"/${PN}-1.29.0-setup-py.patch + "${FILESDIR}"/${P}-tests-unit-cli-test-py.patch + # Bug #920631 -- https://bugs.gentoo.org/920631 + "${FILESDIR}"/${P}-docker-7.patch + "${FILESDIR}"/${P}-python-3.13.patch +) + +DOCS=( CHANGELOG.md README.md ) + +src_prepare() { + # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." + sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die + + default +} + +python_test() { + epytest tests/unit/ +} + +python_install_all() { + newbashcomp contrib/completion/bash/docker-compose ${PN} + + insinto /usr/share/zsh/site-functions + doins contrib/completion/zsh/* + + distutils-r1_python_install_all +} diff --git a/app-containers/docker-compose/files/docker-compose-1.29.2-python-3.13.patch b/app-containers/docker-compose/files/docker-compose-1.29.2-python-3.13.patch new file mode 100644 index 000000000000..15bcef2d9a07 --- /dev/null +++ b/app-containers/docker-compose/files/docker-compose-1.29.2-python-3.13.patch @@ -0,0 +1,35 @@ +From e84ec8f7ed416df359b8e26f86232b5c8c1b41d4 Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping <[email protected]> +Date: Fri, 28 Mar 2025 19:42:43 +0100 +Subject: [PATCH] Replace pipes.quote by shlex.quote for Python 3.13 + +--- + compose/cli/main.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/compose/cli/main.py b/compose/cli/main.py +index fabd608..fe6ccc2 100644 +--- a/compose/cli/main.py ++++ b/compose/cli/main.py +@@ -2,8 +2,8 @@ import contextlib + import functools + import json + import logging +-import pipes + import re ++import shlex + import subprocess + import sys + from distutils.spawn import find_executable +@@ -1579,7 +1579,7 @@ def call_docker(args, dockeropts, environment): + ) + + args = [executable_path] + tls_options + args +- log.debug(" ".join(map(pipes.quote, args))) ++ log.debug(" ".join(map(shlex.quote, args))) + + filtered_env = {k: v for k, v in environment.items() if v is not None} + +-- +2.48.1 +
