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
+

Reply via email to