From 3040ea9707fbe98d50c91477aba9abfb230dd456 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 2 Apr 2025 09:03:06 +0200 Subject: [PATCH 01/31] dev-python/sphinxcontrib-plantuml: enable python3.13 Apply upstream patch to fix tests on Python 3.13. Closes: https://bugs.gentoo.org/952406 Signed-off-by: Florian Schmaus --- dev-python/sphinxcontrib-plantuml/Manifest | 1 + .../sphinxcontrib-plantuml-0.30.ebuild | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dev-python/sphinxcontrib-plantuml/Manifest b/dev-python/sphinxcontrib-plantuml/Manifest index cde7c71242796..513b43ec0e5b2 100644 --- a/dev-python/sphinxcontrib-plantuml/Manifest +++ b/dev-python/sphinxcontrib-plantuml/Manifest @@ -1 +1,2 @@ +DIST sphinxcontrib-plantuml-0.30-fix-tests-python-3.13.patch 1033 BLAKE2B d1dc69918c4b0171d060e43863993fc23dea995f102fdd889b0face66587558b4fa4a02662026d8ce166be0f92cc63b8419ae0bb2d5586b98d840fe3fe2776cf SHA512 ca134e5d2e73b28e3f6e77ac46b12d869312601af4ef7e0f9e0ada30c9d26fa1e976693f286bd3613c8b07fee152abccf889066139c35df25892addf8bc3b759 DIST sphinxcontrib-plantuml-0.30.gh.tar.gz 19378 BLAKE2B 1f146b59184acec99ff4320199943b2193c3e4c5f5d1f62c6741fb9bbd9802d7c3955bfad786bf7dd4b937b99b974f94d753212c95e7940ab066a9d6ee02af9a SHA512 e85c6332d26d09531c961f8026c72cd82ff4a31700a38cb8285f24d942340700012c08cc1f87a86389b71bfc5d32164586407b5c6777cc94d4d0022c9872ee3a diff --git a/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.30.ebuild b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.30.ebuild index 9e5036baf13ed..56cc4ddccf0d3 100644 --- a/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.30.ebuild +++ b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.30.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_{11..13} ) inherit distutils-r1 @@ -16,6 +16,8 @@ HOMEPAGE=" SRC_URI=" https://github.com/sphinx-contrib/plantuml/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz + https://github.com/sphinx-contrib/plantuml/commit/27ece3637c0ec5fa91cacf511349e290a1440ba9.patch + -> ${PN}-0.30-fix-tests-python-3.13.patch " S="${WORKDIR}/${P#sphinxcontrib-}" @@ -33,6 +35,10 @@ BDEPEND=" ) " +PATCHES=( + "${DISTDIR}"/${PN}-0.30-fix-tests-python-3.13.patch +) + distutils_enable_tests pytest python_test() { From 643d2156371598447342722fae90f614fad3432c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 1 Dec 2024 17:50:31 +0100 Subject: [PATCH 02/31] cmake.eclass: Permit overriding CTEST_{JOBS,LOADAVG} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: https://bugs.gentoo.org/945081 Signed-off-by: Michał Górny --- eclass/cmake.eclass | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 8079a5cb037b6..cc82738aedccc 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: cmake.eclass @@ -681,6 +681,19 @@ cmake-utils_src_make() { die "cmake-utils_src_make is banned. Use cmake_build instead" } +# @ECLASS_VARIABLE: CTEST_JOBS +# @USER_VARIABLE +# @DESCRIPTION: +# Maximum number of CTest jobs to run in parallel. If unset, the value +# will be determined from make options. + +# @ECLASS_VARIABLE: CTEST_LOADAVG +# @USER_VARIABLE +# @DESCRIPTION: +# Maximum load, over which no new jobs will be started by CTest. Note +# that unlike make, CTest will not start *any* jobs if the load +# is exceeded. If unset, the value will be determined from make options. + # @FUNCTION: cmake_src_test # @DESCRIPTION: # Function for testing the package. Automatically detects the build type. @@ -694,8 +707,9 @@ cmake_src_test() { [[ -n ${TEST_VERBOSE} ]] && myctestargs+=( --extra-verbose --output-on-failure ) [[ -n ${CMAKE_SKIP_TESTS} ]] && myctestargs+=( -E '('$( IFS='|'; echo "${CMAKE_SKIP_TESTS[*]}")')' ) - set -- ctest -j "$(makeopts_jobs "${MAKEOPTS}" 999)" \ - --test-load "$(makeopts_loadavg)" "${myctestargs[@]}" "$@" + set -- ctest -j "${CTEST_JOBS:-$(makeopts_jobs "${MAKEOPTS}" 999)}" \ + --test-load "${CTEST_LOADAVG:-$(makeopts_loadavg)}" \ + "${myctestargs[@]}" "$@" echo "$@" >&2 if "$@" ; then einfo "Tests succeeded." From b892fae26fa19e44f4189ebf0a4088483770805b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 1 Dec 2024 17:54:08 +0100 Subject: [PATCH 03/31] cmake.eclass: Use get_makeopts_{jobs,loadavg} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny Closes: https://github.com/gentoo/gentoo/pull/39544 Signed-off-by: Michał Górny --- eclass/cmake.eclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index cc82738aedccc..e1bad4cbd16fe 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -707,8 +707,8 @@ cmake_src_test() { [[ -n ${TEST_VERBOSE} ]] && myctestargs+=( --extra-verbose --output-on-failure ) [[ -n ${CMAKE_SKIP_TESTS} ]] && myctestargs+=( -E '('$( IFS='|'; echo "${CMAKE_SKIP_TESTS[*]}")')' ) - set -- ctest -j "${CTEST_JOBS:-$(makeopts_jobs "${MAKEOPTS}" 999)}" \ - --test-load "${CTEST_LOADAVG:-$(makeopts_loadavg)}" \ + set -- ctest -j "${CTEST_JOBS:-$(get_makeopts_jobs 999)}" \ + --test-load "${CTEST_LOADAVG:-$(get_makeopts_loadavg)}" \ "${myctestargs[@]}" "$@" echo "$@" >&2 if "$@" ; then From 53ed7604a24c384ceb50e5a16b04374374815e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 22 Mar 2025 17:00:29 +0100 Subject: [PATCH 04/31] distutils-r1.eclass: Bump build system lower bounds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This includes some important new features that packages are already relying on -- PEP 639 licenses, PEP 621 metadata support in poetry-core. Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index a65dd3ef2a8f7..b734b00747b1b 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: distutils-r1.eclass @@ -246,22 +246,23 @@ _distutils_set_globals() { fi bdep=' - >=dev-python/gpep517-15[${PYTHON_USEDEP}] + >=dev-python/gpep517-16[${PYTHON_USEDEP}] ' case ${DISTUTILS_USE_PEP517} in flit) bdep+=' - >=dev-python/flit-core-3.9.0[${PYTHON_USEDEP}] + >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] ' ;; flit_scm) bdep+=' + >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] >=dev-python/flit-scm-1.7.0[${PYTHON_USEDEP}] ' ;; hatchling) bdep+=' - >=dev-python/hatchling-1.21.1[${PYTHON_USEDEP}] + >=dev-python/hatchling-1.27.0[${PYTHON_USEDEP}] ' ;; jupyter) @@ -271,7 +272,7 @@ _distutils_set_globals() { ;; maturin) bdep+=' - >=dev-util/maturin-1.7.4[${PYTHON_USEDEP}] + >=dev-util/maturin-1.8.2[${PYTHON_USEDEP}] ' ;; no) @@ -280,37 +281,37 @@ _distutils_set_globals() { ;; meson-python) bdep+=' - >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}] + >=dev-python/meson-python-0.17.1[${PYTHON_USEDEP}] ' ;; pbr) bdep+=' - >=dev-python/pbr-6.0.0[${PYTHON_USEDEP}] + >=dev-python/pbr-6.1.1[${PYTHON_USEDEP}] ' ;; pdm-backend) bdep+=' - >=dev-python/pdm-backend-2.1.8[${PYTHON_USEDEP}] + >=dev-python/pdm-backend-2.4.3[${PYTHON_USEDEP}] ' ;; poetry) bdep+=' - >=dev-python/poetry-core-1.9.0[${PYTHON_USEDEP}] + >=dev-python/poetry-core-2.1.1[${PYTHON_USEDEP}] ' ;; scikit-build-core) bdep+=' - >=dev-python/scikit-build-core-0.9.4[${PYTHON_USEDEP}] + >=dev-python/scikit-build-core-0.10.7[${PYTHON_USEDEP}] ' ;; setuptools) bdep+=' - >=dev-python/setuptools-69.0.3[${PYTHON_USEDEP}] + >=dev-python/setuptools-75.8.2[${PYTHON_USEDEP}] ' ;; sip) bdep+=' - >=dev-python/sip-6.8.3[${PYTHON_USEDEP}] + >=dev-python/sip-6.10.0[${PYTHON_USEDEP}] ' ;; standalone) @@ -325,7 +326,7 @@ _distutils_set_globals() { eqawarn "is enabled." fi else - local setuptools_dep='>=dev-python/setuptools-69.0.3[${PYTHON_USEDEP}]' + local setuptools_dep='>=dev-python/setuptools-75.8.2[${PYTHON_USEDEP}]' case ${DISTUTILS_USE_SETUPTOOLS:-bdepend} in no|manual) @@ -501,7 +502,7 @@ distutils_enable_sphinx() { _DISTUTILS_SPHINX_PLUGINS=( "${@}" ) local deps autodoc=1 d - deps=">=dev-python/sphinx-7.2.6[\${PYTHON_USEDEP}]" + deps=">=dev-python/sphinx-8.1.3[\${PYTHON_USEDEP}]" for d; do if [[ ${d} == --no-autodoc ]]; then autodoc= @@ -525,7 +526,7 @@ distutils_enable_sphinx() { use doc || return 0 local p - for p in ">=dev-python/sphinx-7.2.6" \ + for p in ">=dev-python/sphinx-8.1.3" \ "${_DISTUTILS_SPHINX_PLUGINS[@]}" do python_has_version "${p}[${PYTHON_USEDEP}]" || @@ -533,7 +534,7 @@ distutils_enable_sphinx() { done } else - deps=">=dev-python/sphinx-7.2.6" + deps=">=dev-python/sphinx-8.1.3" fi sphinx_compile_all() { From 43f125c01529ace718a20835e1bc2887eb37613f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 22 Mar 2025 17:17:01 +0100 Subject: [PATCH 05/31] distutils-r1.eclass: Set FLIT_ALLOW_INVALID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set `FLIT_ALLOW_INVALID` to prevent license validation from breaking builds. Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 1 + 1 file changed, 1 insertion(+) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index b734b00747b1b..98e9dfb509858 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1259,6 +1259,7 @@ distutils_pep517_install() { fi # set it globally in case we were using "standalone" wrapper + local -x FLIT_ALLOW_INVALID=1 local -x HATCH_METADATA_CLASSIFIERS_NO_VERIFY=1 local -x VALIDATE_PYPROJECT_NO_NETWORK=1 local -x VALIDATE_PYPROJECT_NO_TROVE_CLASSIFIERS=1 From 565223bf1714d22dad3aa9e59b1db906bca0a498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 22 Mar 2025 17:24:56 +0100 Subject: [PATCH 06/31] dev-python/uv-build: New package, v0.6.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a hacky patched uv-build package that installs the upstream Python modules without building another copy of uv. Signed-off-by: Michał Górny --- dev-python/uv-build/Manifest | 1 + .../files/uv-build-0.6.9-use-uv.patch | 18 ++++++++ dev-python/uv-build/metadata.xml | 11 +++++ dev-python/uv-build/uv-build-0.6.11.ebuild | 45 +++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 dev-python/uv-build/Manifest create mode 100644 dev-python/uv-build/files/uv-build-0.6.9-use-uv.patch create mode 100644 dev-python/uv-build/metadata.xml create mode 100644 dev-python/uv-build/uv-build-0.6.11.ebuild diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest new file mode 100644 index 0000000000000..f5ed923127288 --- /dev/null +++ b/dev-python/uv-build/Manifest @@ -0,0 +1 @@ +DIST uv_build-0.6.11.tar.gz 292635 BLAKE2B 906d310f6884def53d4b739d0b2d246be4a2651b8add2ec94665128d9cd815830de9246ce5e7c1850842673d56c829547ebd1d707ca69984bbc15183f3ade0d8 SHA512 b68ff4c87b21bae1095ac622fdb4ed60610e44db9c73c0ae29c5566ee30ecdfee39a0c8a0659a70101c72dd04317de80f2ac7a377d2ad5a2c59fa4adabeb7c5b diff --git a/dev-python/uv-build/files/uv-build-0.6.9-use-uv.patch b/dev-python/uv-build/files/uv-build-0.6.9-use-uv.patch new file mode 100644 index 0000000000000..6e0f96d46ec3a --- /dev/null +++ b/dev-python/uv-build/files/uv-build-0.6.9-use-uv.patch @@ -0,0 +1,18 @@ +diff --git a/python/uv_build/__init__.py b/python/uv_build/__init__.py +index c8ce9c5..835ba0f 100644 +--- a/python/uv_build/__init__.py ++++ b/python/uv_build/__init__.py +@@ -39,11 +39,11 @@ def call( + + warn_config_settings(config_settings) + # Unlike `find_uv_bin`, this mechanism must work according to PEP 517 +- uv_bin = shutil.which("uv-build") ++ uv_bin = shutil.which("uv") + if uv_bin is None: + raise RuntimeError("uv was not properly installed") + # Forward stderr, capture stdout for the filename +- result = subprocess.run([uv_bin, *args], stdout=subprocess.PIPE) ++ result = subprocess.run([uv_bin, "build-backend", *args], stdout=subprocess.PIPE) + if result.returncode != 0: + sys.exit(result.returncode) + # If there was extra stdout, forward it (there should not be extra stdout) diff --git a/dev-python/uv-build/metadata.xml b/dev-python/uv-build/metadata.xml new file mode 100644 index 0000000000000..936a4b3a62821 --- /dev/null +++ b/dev-python/uv-build/metadata.xml @@ -0,0 +1,11 @@ + + + + + python@gentoo.org + + + astral-sh/uv + uv-build + + diff --git a/dev-python/uv-build/uv-build-0.6.11.ebuild b/dev-python/uv-build/uv-build-0.6.11.ebuild new file mode 100644 index 0000000000000..a93405a17200f --- /dev/null +++ b/dev-python/uv-build/uv-build-0.6.11.ebuild @@ -0,0 +1,45 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="PEP517 uv build backend" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv-build/ +" + +LICENSE="|| ( Apache-2.0 MIT )" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/uv-${PV} +" + +src_prepare() { + local PATCHES=( + # use 'uv build-backend' instead of compiling uv-build executable + # that largely overlaps with dev-python/uv + "${FILESDIR}/${PN}-0.6.9-use-uv.patch" + ) + + distutils-r1_src_prepare + + # replace the upstream build system since we don't want maturin + # to recompile uv again + sed -i -e '/^\[build-system\]$/,$d' pyproject.toml || die + cat >> pyproject.toml <<-EOF || die + [build-system] + requires = ["hatchling"] + build-backend = "hatchling.build" + + [tool.hatch.build.targets.wheel] + packages = ["python/uv_build"] + EOF +} From 77bfc6a1cdc89204c0f2daa1544ee5f402195de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 22 Mar 2025 17:26:56 +0100 Subject: [PATCH 07/31] distutils-r1.eclass: Support uv-build backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 98e9dfb509858..bbcd0b15b2622 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -137,6 +137,8 @@ # - standalone - standalone build systems without external deps # (used for bootstrapping). # +# - uv-build - uv-build backend (using dev-python/uv) +# # The variable needs to be set before the inherit line. The eclass # adds appropriate build-time dependencies and verifies the value. # @@ -316,6 +318,11 @@ _distutils_set_globals() { ;; standalone) ;; + uv-build) + bdep+=' + dev-python/uv-build[${PYTHON_USEDEP}] + ' + ;; *) die "Unknown DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" ;; @@ -905,6 +912,12 @@ _distutils-r1_print_package_versions() { dev-python/sip ) ;; + uv-build) + packages+=( + dev-python/uv + dev-python/uv-build + ) + ;; esac else case ${DISTUTILS_USE_SETUPTOOLS} in @@ -1098,6 +1111,9 @@ _distutils-r1_backend_to_key() { sipbuild.api) echo sip ;; + uv_build) + echo uv-build + ;; *) die "Unknown backend: ${backend}" ;; From 11a288e9c2e243584423b2b5f62d7286fe62d718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 23 Mar 2025 20:01:29 +0100 Subject: [PATCH 08/31] distutils-r1.eclass: Support the legacy "uv" backend too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index bbcd0b15b2622..27f2dcebc9f9e 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1111,7 +1111,7 @@ _distutils-r1_backend_to_key() { sipbuild.api) echo sip ;; - uv_build) + uv_build|uv) echo uv-build ;; *) @@ -1173,6 +1173,9 @@ _distutils-r1_get_backend() { [[ ! ${legacy_fallback} ]] && new_backend=setuptools.build_meta ;; + uv) + new_backend=uv_build + ;; esac if [[ -n ${new_backend} ]]; then From c68108e4e7f72b6fe6254caf426929610e188f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 07:41:08 +0100 Subject: [PATCH 09/31] distutils-r1.eclass: Use unique setuptools build directories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a dynamic component to the build directory used by setuptools, to enable calling distutils-r1_python_compile multiple times without having the builds share the same build directory (and therefore end up being combined). Closes: https://bugs.gentoo.org/951853 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 27f2dcebc9f9e..3e432101968a1 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1490,11 +1490,15 @@ distutils-r1_python_compile() { *) # we do this for all build systems, since other backends # and custom hooks may wrap setuptools + # + # we are appending a dynamic component so that + # distutils-r1_python_compile can be called multiple + # times and don't end up combining resulting packages mkdir -p "${BUILD_DIR}" || die local -x DIST_EXTRA_CONFIG="${BUILD_DIR}/extra-setup.cfg" cat > "${DIST_EXTRA_CONFIG}" <<-EOF || die [build] - build_base = ${BUILD_DIR}/build + build_base = ${BUILD_DIR}/build${#DISTUTILS_WHEELS[@]} [build_ext] parallel = $(makeopts_jobs "${MAKEOPTS} ${*}") From a39b02289c9eee449378334792f75dc065409a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 12:39:56 +0100 Subject: [PATCH 10/31] distutils-r1.eclass: Reflow _distutils-r1_backend_to_key() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 98 +++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 3e432101968a1..018c468f20652 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1128,65 +1128,67 @@ _distutils-r1_backend_to_key() { _distutils-r1_get_backend() { debug-print-function ${FUNCNAME} "$@" - local build_backend legacy_fallback + local build_backend if [[ -f pyproject.toml ]]; then # if pyproject.toml exists, try getting the backend from it # NB: this could fail if pyproject.toml doesn't list one build_backend=$("${EPYTHON}" -m gpep517 get-backend) fi - if [[ -z ${build_backend} && ${DISTUTILS_USE_PEP517} == setuptools && - -f setup.py ]] - then - # use the legacy setuptools backend as a fallback - build_backend=setuptools.build_meta:__legacy__ - legacy_fallback=1 - fi if [[ -z ${build_backend} ]]; then - die "Unable to obtain build-backend from pyproject.toml" + if [[ ${DISTUTILS_USE_PEP517} == setuptools && -f setup.py ]] + then + # use the legacy setuptools backend as a fallback + echo setuptools.build_meta:__legacy__ + return + else + die "Unable to obtain build-backend from pyproject.toml" + fi fi - if [[ ${DISTUTILS_USE_PEP517} != standalone ]]; then - # verify whether DISTUTILS_USE_PEP517 was set correctly - local expected_value=$(_distutils-r1_backend_to_key "${build_backend}") - if [[ ${DISTUTILS_USE_PEP517} != ${expected_value} ]]; then - eerror "DISTUTILS_USE_PEP517 does not match pyproject.toml!" - eerror " have: DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" - eerror "expected: DISTUTILS_USE_PEP517=${expected_value}" - eerror "(backend: ${build_backend})" - die "DISTUTILS_USE_PEP517 value incorrect" - fi + if [[ ${DISTUTILS_USE_PEP517} == standalone ]]; then + echo "${build_backend}" + return + fi - # fix deprecated backends up - local new_backend= - case ${build_backend} in - flit.buildapi) - new_backend=flit_core.buildapi - ;; - pdm.pep517.api) - new_backend=pdm.backend - ;; - poetry.masonry.api) - new_backend=poetry.core.masonry.api - ;; - setuptools.build_meta:__legacy__) - # this backend should only be used as implicit fallback - [[ ! ${legacy_fallback} ]] && - new_backend=setuptools.build_meta - ;; - uv) - new_backend=uv_build - ;; - esac + # verify whether DISTUTILS_USE_PEP517 was set correctly + local expected_value=$(_distutils-r1_backend_to_key "${build_backend}") + if [[ ${DISTUTILS_USE_PEP517} != ${expected_value} ]]; then + eerror "DISTUTILS_USE_PEP517 does not match pyproject.toml!" + eerror " have: DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" + eerror "expected: DISTUTILS_USE_PEP517=${expected_value}" + eerror "(backend: ${build_backend})" + die "DISTUTILS_USE_PEP517 value incorrect" + fi - if [[ -n ${new_backend} ]]; then - if [[ ! -f ${T}/.distutils_deprecated_backend_warned ]]; then - eqawarn "${build_backend} backend is deprecated. Please see:" - eqawarn "https://projects.gentoo.org/python/guide/qawarn.html#deprecated-pep-517-backends" - eqawarn "The eclass will be using ${new_backend} instead." - > "${T}"/.distutils_deprecated_backend_warned || die - fi - build_backend=${new_backend} + # fix deprecated backends up + local new_backend= + case ${build_backend} in + flit.buildapi) + new_backend=flit_core.buildapi + ;; + pdm.pep517.api) + new_backend=pdm.backend + ;; + poetry.masonry.api) + new_backend=poetry.core.masonry.api + ;; + setuptools.build_meta:__legacy__) + # this backend should only be used as implicit fallback + new_backend=setuptools.build_meta + ;; + uv) + new_backend=uv_build + ;; + esac + + if [[ -n ${new_backend} ]]; then + if [[ ! -f ${T}/.distutils_deprecated_backend_warned ]]; then + eqawarn "${build_backend} backend is deprecated. Please see:" + eqawarn "https://projects.gentoo.org/python/guide/qawarn.html#deprecated-pep-517-backends" + eqawarn "The eclass will be using ${new_backend} instead." + > "${T}"/.distutils_deprecated_backend_warned || die fi + build_backend=${new_backend} fi echo "${build_backend}" From 455723727afbadc6212338c01f06e395dbbc7516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 12:44:58 +0100 Subject: [PATCH 11/31] distutils-r1.eclass: Invert DISTUTILS_USE_PEP517 - backend mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Invert the eclass logic to map DISTUTILS_USE_PEP517 values to backends rather than the other way around. This is in preparation for making it possible to override the backend used. One side effect of this is that in case of DISTUTILS_USE_PEP517 mismatch, we no longer provide the "correct" value, and only indicate the backend used upstream. Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 122 +++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 66 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 018c468f20652..a313b94c3a0d3 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1064,58 +1064,57 @@ _distutils-r1_copy_egg_info() { find -name '*.egg-info' -type d -exec cp -R -p {} "${BUILD_DIR}"/ ';' || die } -# @FUNCTION: _distutils-r1_backend_to_key -# @USAGE: +# @FUNCTION: _distutils-r1_key_to_backend +# @USAGE: # @INTERNAL # @DESCRIPTION: -# Print the DISTUTILS_USE_PEP517 value corresponding to the backend -# passed as the only argument. -_distutils-r1_backend_to_key() { +# Print the backend corresponding to the DISTUTILS_USE_PEP517 value. +_distutils-r1_key_to_backend() { debug-print-function ${FUNCNAME} "$@" - local backend=${1} - case ${backend} in - flit_core.buildapi|flit.buildapi) - echo flit + local key=${1} + case ${key} in + flit) + echo flit_core.buildapi ;; - flit_scm:buildapi) - echo flit_scm + flit_scm) + echo flit_scm:buildapi ;; - hatchling.build) - echo hatchling + hatchling) + echo hatchling.build ;; - jupyter_packaging.build_api) - echo jupyter + jupyter) + echo jupyter_packaging.build_api ;; maturin) echo maturin ;; - mesonpy) - echo meson-python + meson-python) + echo mesonpy ;; - pbr.build) - echo pbr + pbr) + echo pbr.build ;; - pdm.backend|pdm.pep517.api) - echo pdm-backend + pdm-backend) + echo pdm.backend ;; - poetry.core.masonry.api|poetry.masonry.api) - echo poetry + poetry) + echo poetry.core.masonry.api ;; - scikit_build_core.build) - echo scikit-build-core + scikit-build-core) + echo scikit_build_core.build ;; - setuptools.build_meta|setuptools.build_meta:__legacy__) - echo setuptools + setuptools) + echo setuptools.build_meta ;; - sipbuild.api) - echo sip + sip) + echo sipbuild.api ;; - uv_build|uv) - echo uv-build + uv-build) + echo uv_build ;; *) - die "Unknown backend: ${backend}" + die "Unknown DISTUTILS_USE_PEP517 key: ${key}" ;; esac } @@ -1150,48 +1149,39 @@ _distutils-r1_get_backend() { return fi - # verify whether DISTUTILS_USE_PEP517 was set correctly - local expected_value=$(_distutils-r1_backend_to_key "${build_backend}") - if [[ ${DISTUTILS_USE_PEP517} != ${expected_value} ]]; then - eerror "DISTUTILS_USE_PEP517 does not match pyproject.toml!" - eerror " have: DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" - eerror "expected: DISTUTILS_USE_PEP517=${expected_value}" - eerror "(backend: ${build_backend})" - die "DISTUTILS_USE_PEP517 value incorrect" - fi + # get the preferred backend from the eclass + local backend_to_use=$(_distutils-r1_key_to_backend "${DISTUTILS_USE_PEP517}") + if [[ ${backend_to_use} != ${build_backend} ]]; then + # special-case deprecated backends + case ${build_backend} in + flit.buildapi) + ;; + pdm.pep517.api) + ;; + poetry.masonry.api) + ;; + setuptools.build_meta:__legacy__) + ;; + uv) + ;; + *) + eerror "DISTUTILS_USE_PEP517 does not match pyproject.toml!" + eerror " DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" + eerror " implies backend: ${backend_to_use}" + eerror " pyproject.toml: ${build_backend}" + die "DISTUTILS_USE_PEP517 value incorrect" + esac - # fix deprecated backends up - local new_backend= - case ${build_backend} in - flit.buildapi) - new_backend=flit_core.buildapi - ;; - pdm.pep517.api) - new_backend=pdm.backend - ;; - poetry.masonry.api) - new_backend=poetry.core.masonry.api - ;; - setuptools.build_meta:__legacy__) - # this backend should only be used as implicit fallback - new_backend=setuptools.build_meta - ;; - uv) - new_backend=uv_build - ;; - esac - - if [[ -n ${new_backend} ]]; then + # if we didn't die, we're dealing with a deprecated backend if [[ ! -f ${T}/.distutils_deprecated_backend_warned ]]; then eqawarn "${build_backend} backend is deprecated. Please see:" eqawarn "https://projects.gentoo.org/python/guide/qawarn.html#deprecated-pep-517-backends" - eqawarn "The eclass will be using ${new_backend} instead." + eqawarn "The eclass will be using ${backend_to_use} instead." > "${T}"/.distutils_deprecated_backend_warned || die fi - build_backend=${new_backend} fi - echo "${build_backend}" + echo "${backend_to_use}" } # @FUNCTION: distutils_wheel_install From 63092f0441a5516ebdc05c1648cc9d172d2263a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 11:36:48 +0100 Subject: [PATCH 12/31] distutils-r1.eclass: Support overriding PEP517 build backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a DISTUTILS_UPSTREAM_PEP517 variable that drives the build backend check, and can be used to override it when it is desirable to override the backend used. Closes: https://bugs.gentoo.org/951944 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index a313b94c3a0d3..ad2eeb8dcd416 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -153,6 +153,20 @@ # files are found in ${BUILD_DIR}/install after python_install(), they # will be merged into ${D}. +# @ECLASS_VARIABLE: DISTUTILS_UPSTREAM_PEP517 +# @DESCRIPTION: +# Specifies the PEP517 build backend used upstream. It is used +# by the eclass to verify the correctness of DISTUTILS_USE_PEP517, +# and matches DISTUTILS_USE_PEP517 by default. However, it can be +# overriden to workaround the eclass check, when it is desirable +# to build the wheel using other backend than the one used upstream. +# +# Please note that even in packages using PEP621 metadata, there can +# be subtle differences between the behavior of different PEP517 build +# backends, for example regarding finding package files. When using +# this option, please make sure that the package is installed correctly. +: "${DISTUTILS_UPSTREAM_PEP517:=${DISTUTILS_USE_PEP517}}" + # @ECLASS_VARIABLE: DISTUTILS_USE_SETUPTOOLS # @DEFAULT_UNSET # @PRE_INHERIT @@ -1149,9 +1163,9 @@ _distutils-r1_get_backend() { return fi - # get the preferred backend from the eclass - local backend_to_use=$(_distutils-r1_key_to_backend "${DISTUTILS_USE_PEP517}") - if [[ ${backend_to_use} != ${build_backend} ]]; then + # verify that the ebuild correctly specifies the build backend + local expected_backend=$(_distutils-r1_key_to_backend "${DISTUTILS_UPSTREAM_PEP517}") + if [[ ${expected_backend} != ${build_backend} ]]; then # special-case deprecated backends case ${build_backend} in flit.buildapi) @@ -1165,9 +1179,9 @@ _distutils-r1_get_backend() { uv) ;; *) - eerror "DISTUTILS_USE_PEP517 does not match pyproject.toml!" - eerror " DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" - eerror " implies backend: ${backend_to_use}" + eerror "DISTUTILS_UPSTREAM_PEP517 does not match pyproject.toml!" + eerror " DISTUTILS_UPSTREAM_PEP517=${DISTUTILS_USE_PEP517}" + eerror " implies backend: ${expected_backend}" eerror " pyproject.toml: ${build_backend}" die "DISTUTILS_USE_PEP517 value incorrect" esac @@ -1176,12 +1190,12 @@ _distutils-r1_get_backend() { if [[ ! -f ${T}/.distutils_deprecated_backend_warned ]]; then eqawarn "${build_backend} backend is deprecated. Please see:" eqawarn "https://projects.gentoo.org/python/guide/qawarn.html#deprecated-pep-517-backends" - eqawarn "The eclass will be using ${backend_to_use} instead." + eqawarn "The project should use ${expected_backend} instead." > "${T}"/.distutils_deprecated_backend_warned || die fi fi - echo "${backend_to_use}" + echo "$(_distutils-r1_key_to_backend "${DISTUTILS_USE_PEP517}")" } # @FUNCTION: distutils_wheel_install From 802ed172da424f9d969c2c2c53196424618feb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 12:54:47 +0100 Subject: [PATCH 13/31] dev-python/uv-build: Use DISTUTILS_UPSTREAM_PEP517 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/uv-build/uv-build-0.6.11.ebuild | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/dev-python/uv-build/uv-build-0.6.11.ebuild b/dev-python/uv-build/uv-build-0.6.11.ebuild index a93405a17200f..39fada98c1d0d 100644 --- a/dev-python/uv-build/uv-build-0.6.11.ebuild +++ b/dev-python/uv-build/uv-build-0.6.11.ebuild @@ -4,6 +4,9 @@ EAPI=8 DISTUTILS_USE_PEP517=hatchling +# maturin compiles uv-build executable for every impl, we do not want +# that, so we hack hatchling into installing the Python module instead. +DISTUTILS_UPSTREAM_PEP517=maturin PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) inherit distutils-r1 pypi @@ -31,14 +34,7 @@ src_prepare() { distutils-r1_src_prepare - # replace the upstream build system since we don't want maturin - # to recompile uv again - sed -i -e '/^\[build-system\]$/,$d' pyproject.toml || die cat >> pyproject.toml <<-EOF || die - [build-system] - requires = ["hatchling"] - build-backend = "hatchling.build" - [tool.hatch.build.targets.wheel] packages = ["python/uv_build"] EOF From e86bf6625871b1ab930ab78be38f114e5e172cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 24 Mar 2025 11:30:48 +0100 Subject: [PATCH 14/31] distutils-r1.eclass: Reflow distutils-r1_python_compile() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reflow distutils-r1_python_compile() to remove duplicate conditions and improve readability. Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 121 ++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 63 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index ad2eeb8dcd416..42e47a5b3028b 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1484,71 +1484,66 @@ distutils-r1_python_compile() { _python_check_EPYTHON - case ${DISTUTILS_USE_PEP517:-unset} in - no) - return - ;; - unset) - # legacy mode - _distutils-r1_copy_egg_info - esetup.py build -j "$(makeopts_jobs "${MAKEOPTS} ${*}")" "${@}" - ;; - *) - # we do this for all build systems, since other backends - # and custom hooks may wrap setuptools - # - # we are appending a dynamic component so that - # distutils-r1_python_compile can be called multiple - # times and don't end up combining resulting packages - mkdir -p "${BUILD_DIR}" || die - local -x DIST_EXTRA_CONFIG="${BUILD_DIR}/extra-setup.cfg" - cat > "${DIST_EXTRA_CONFIG}" <<-EOF || die - [build] - build_base = ${BUILD_DIR}/build${#DISTUTILS_WHEELS[@]} + [[ ${DISTUTILS_USE_PEP517} == no ]] && return - [build_ext] - parallel = $(makeopts_jobs "${MAKEOPTS} ${*}") - EOF - ;; - esac - - if [[ ${DISTUTILS_USE_PEP517} ]]; then - if [[ ${DISTUTILS_ALLOW_WHEEL_REUSE} ]]; then - local whl - for whl in "${!DISTUTILS_WHEELS[@]}"; do - # use only wheels corresponding to the current directory - if [[ ${PWD} != ${DISTUTILS_WHEELS["${whl}"]} ]]; then - continue - fi - - # 1. Use pure Python wheels only if we're not expected - # to build extensions. Otherwise, we may end up - # not building the extension at all when e.g. PyPy3 - # is built without one. - # - # 2. For CPython, we can reuse stable ABI wheels. Note - # that this relies on the assumption that we're building - # from the oldest to the newest implementation, - # and the wheels are forward-compatible. - if [[ - ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none-any* ) || - ( - ${EPYTHON} == python* && - # freethreading does not support stable ABI - # at the moment - ${EPYTHON} != *t && - ${whl} == *-abi3-* - ) - ]]; then - distutils_wheel_install "${BUILD_DIR}/install" "${whl}" - return - fi - done - fi - - distutils_pep517_install "${BUILD_DIR}/install" - DISTUTILS_WHEELS+=( "${DISTUTILS_WHEEL_PATH}" "${PWD}" ) + if [[ ! ${DISTUTILS_USE_PEP517} ]]; then + # legacy mode + _distutils-r1_copy_egg_info + esetup.py build -j "$(makeopts_jobs "${MAKEOPTS} ${*}")" "${@}" + return fi + + # we do this for all build systems, since other backends + # and custom hooks may wrap setuptools + # + # we are appending a dynamic component so that + # distutils-r1_python_compile can be called multiple + # times and don't end up combining resulting packages + mkdir -p "${BUILD_DIR}" || die + local -x DIST_EXTRA_CONFIG="${BUILD_DIR}/extra-setup.cfg" + cat > "${DIST_EXTRA_CONFIG}" <<-EOF || die + [build] + build_base = ${BUILD_DIR}/build${#DISTUTILS_WHEELS[@]} + + [build_ext] + parallel = $(makeopts_jobs "${MAKEOPTS} ${*}") + EOF + + if [[ ${DISTUTILS_ALLOW_WHEEL_REUSE} ]]; then + local whl + for whl in "${!DISTUTILS_WHEELS[@]}"; do + # use only wheels corresponding to the current directory + if [[ ${PWD} != ${DISTUTILS_WHEELS["${whl}"]} ]]; then + continue + fi + + # 1. Use pure Python wheels only if we're not expected + # to build extensions. Otherwise, we may end up + # not building the extension at all when e.g. PyPy3 + # is built without one. + # + # 2. For CPython, we can reuse stable ABI wheels. Note + # that this relies on the assumption that we're building + # from the oldest to the newest implementation, + # and the wheels are forward-compatible. + if [[ + ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none-any* ) || + ( + ${EPYTHON} == python* && + # freethreading does not support stable ABI + # at the moment + ${EPYTHON} != *t && + ${whl} == *-abi3-* + ) + ]]; then + distutils_wheel_install "${BUILD_DIR}/install" "${whl}" + return + fi + done + fi + + distutils_pep517_install "${BUILD_DIR}/install" + DISTUTILS_WHEELS+=( "${DISTUTILS_WHEEL_PATH}" "${PWD}" ) } # @FUNCTION: _distutils-r1_wrap_scripts From 67f008f6acc086e0a58dfebd1b019bcdad73620a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 26 Mar 2025 12:32:32 +0100 Subject: [PATCH 15/31] distutils-r1.eclass: Add a safety check for wheel install done MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a safety check to verify that distutils_wheel_install is being (usually indirectly) called in python_compile(), when using PEP517 build. If it weren't, this usually indicates that distutils-r1_python_compile (or distutils_pep517_install) was not called. Signed-off-by: Michał Górny Closes: https://github.com/gentoo/gentoo/pull/41222 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 42e47a5b3028b..e1672dd3c3b0a 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -1246,6 +1246,8 @@ distutils_wheel_install() { -o -path '*.dist-info/licenses' \ -o -path '*.dist-info/zip-safe' \ \) -delete || die + + _DISTUTILS_WHL_INSTALLED=1 } # @VARIABLE: DISTUTILS_WHEEL_PATH @@ -2011,6 +2013,11 @@ _distutils-r1_compare_installed_files() { _distutils-r1_post_python_compile() { debug-print-function ${FUNCNAME} "$@" + if [[ ! ${_DISTUTILS_WHL_INSTALLED} && ${DISTUTILS_USE_PEP517:-no} != no ]] + then + die "No wheel installed in python_compile(), did you call distutils-r1_python_compile?" + fi + local root=${BUILD_DIR}/install if [[ ${DISTUTILS_USE_PEP517} && -d ${root} ]]; then # copy executables to python-exec directory From d17ad82343d5777cccd0c317ac3af39a45d20b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 07:56:39 +0200 Subject: [PATCH 16/31] app-portage/mgorny-dev-scripts: Bump to 58 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- app-portage/mgorny-dev-scripts/Manifest | 1 + .../mgorny-dev-scripts-58.ebuild | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 app-portage/mgorny-dev-scripts/mgorny-dev-scripts-58.ebuild diff --git a/app-portage/mgorny-dev-scripts/Manifest b/app-portage/mgorny-dev-scripts/Manifest index 9b6bc5bd05212..0756ce2c92b0b 100644 --- a/app-portage/mgorny-dev-scripts/Manifest +++ b/app-portage/mgorny-dev-scripts/Manifest @@ -1 +1,2 @@ DIST mgorny-dev-scripts-57.tar.gz 19364 BLAKE2B 6e53eee063781f8edcb48ec6f72e0d727f7eac4c85edc784bc67cbda4a9eeffffc17031d95ffde1aadd593f9b6eb30973c0387d6cc4270608a704585e185d1b6 SHA512 b989631f6bc5840b8c01b3a3998b980a6702fab64c8f66c131bc3fe5835fef973ae26fd0012310bff6781f116fce23c3a990d11d7de05016a1c5ad355e83190c +DIST mgorny-dev-scripts-58.tar.gz 19367 BLAKE2B ed285ed0983b167f93b15f7c306a06dce41a78191884d8ac72dad2be536cab7446a6741a167d8b26bb623d0e3ff0ea9b980eab99ba355f17a86972e10ef62b69 SHA512 6db675eed88f2051342b6b3f44f6b907ffe70102648f69b93c9f07b5c46bafc21f4e462c895fe0554fb74fbd9c4e14cbae1961753b71d255a6da45d7854890ba diff --git a/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-58.ebuild b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-58.ebuild new file mode 100644 index 0000000000000..6adf4c2f13a3e --- /dev/null +++ b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-58.ebuild @@ -0,0 +1,32 @@ +# Copyright 2019-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Handy scripts for ebuild development and more" +HOMEPAGE="https://github.com/projg2/mgorny-dev-scripts/" +SRC_URI=" + https://github.com/projg2/mgorny-dev-scripts/archive/v${PV}.tar.gz + -> ${P}.tar.gz +" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" + +RDEPEND=" + app-portage/gentoolkit + >=app-portage/gpyutils-0.12 + dev-perl/URI + dev-util/pkgcheck + dev-vcs/git + net-misc/wget + sys-apps/portage + x11-misc/xdg-utils +" + +src_install() { + dodoc README.rst + rm -f COPYING README.rst || die + dobin * +} From e0ddc2f4b147ee755f40b113c7dd30c638bda635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 07:57:32 +0200 Subject: [PATCH 17/31] dev-python/hypothesis: Bump to 6.130.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/hypothesis/Manifest | 1 + .../hypothesis/hypothesis-6.130.7.ebuild | 110 ++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 dev-python/hypothesis/hypothesis-6.130.7.ebuild diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index 220601ea7422f..964189ed61227 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -2,3 +2,4 @@ DIST hypothesis-6.128.2.gh.tar.gz 9522813 BLAKE2B cc466d24bf45b5a0916f47d6a7ed12 DIST hypothesis-6.129.4.gh.tar.gz 9528147 BLAKE2B c85806af24ddd934338f99c9d62a577fb35c8809d71ddf23aea0d613f33e690c70662279e88f4680d48c0c3b51fa10ff99c29fde7cf2d3c094cfaa0aa65b7612 SHA512 aec846f34e3a66da8a79929da681bd41ac7deb4a83934a51ee69bf989ddb8f3f7bd8f612571e625d3334cf786e3841b4e4d05fe4368e930e5975077e0f027a7d DIST hypothesis-6.130.5.gh.tar.gz 9529886 BLAKE2B 4c9bcb811892e5c1251887e0ebebefd57104c1317e38f0ae358312b2f072c2c4e914c619a8a5505bbde57ac81f8351bbc28a1e957b0942ea10f72541937c74b2 SHA512 603c4723574683410e3d660938326c2ddc1f517311613bcf47a029f62d39e7c5a7cd053041ac6837dd53b4ecc9b4ed19c2374c43a6978837c59bfd8f0c2f9862 DIST hypothesis-6.130.6.gh.tar.gz 9530097 BLAKE2B d3f6dd0f43a509cbeb250696029ab32130b180089c2b5b8af924da04b8c64238e7ff076719f145880e590e7996d8480195d2503d64e33fd7ebe0b40d8600de88 SHA512 41254e0756af3e8116818c88996e15c1582945a592e9d7ba9d2fd023a0de62a89b697460b12b99b8560c85988737597d74ae9dc4d8336d4c643ab51cfdcde0eb +DIST hypothesis-6.130.7.gh.tar.gz 9530483 BLAKE2B da79c2f77e55e2d920147bd1a067e52931ec49a6e85895ca781e2a846c0d7e782959a07f6caa4f0ffbc44da924d6b800f4b61cc63edff8ac31bcce64758a7181 SHA512 6a102ebc03dd155f499a6d839a55fa3379125604e6b859e4fb56d6e8ad3bc0612779edc74c1cc987147e4f495d0b28ffb06461de78f8119ea7c13c14767ad8d9 diff --git a/dev-python/hypothesis/hypothesis-6.130.7.ebuild b/dev-python/hypothesis/hypothesis-6.130.7.ebuild new file mode 100644 index 0000000000000..5e0df5815a5e2 --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.130.7.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +CLI_COMPAT=( pypy3 python3_{10..13} ) +PYTHON_COMPAT=( "${CLI_COMPAT[@]}" pypy3_11 ) +PYTHON_REQ_USE="threads(+),sqlite" + +inherit distutils-r1 optfeature + +TAG=hypothesis-python-${PV} +MY_P=hypothesis-${TAG} +DESCRIPTION="A library for property based testing" +HOMEPAGE=" + https://github.com/HypothesisWorks/hypothesis/ + https://pypi.org/project/hypothesis/ +" +SRC_URI=" + https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}/hypothesis-python" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cli" + +RDEPEND=" + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}] + ' 3.9 3.10) + cli? ( + $(python_gen_cond_dep ' + dev-python/black[${PYTHON_USEDEP}] + dev-python/click[${PYTHON_USEDEP}] + ' "${CLI_COMPAT[@]}") + ) +" +BDEPEND=" + test? ( + dev-python/pexpect[${PYTHON_USEDEP}] + >=dev-python/pytest-8[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + # subtests are broken by warnings from random plugins + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin + local -x HYPOTHESIS_NO_PLUGINS=1 + + # NB: paths need to be relative to pytest.ini, + # i.e. start with hypothesis-python/ + local EPYTEST_DESELECT=() + case ${EPYTHON} in + pypy3) + EPYTEST_DESELECT+=( + # failing due to warnings from numpy/cython + hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture + ) + ;; + python3.13) + EPYTEST_DESELECT+=( + # TODO + 'hypothesis-python/tests/cover/test_reflection.py::test_clean_source[case-5]' + ) + ;; + esac + + epytest -o filterwarnings= -p rerunfailures --reruns=5 \ + tests/cover tests/pytest tests/quality +} + +src_install() { + local HAD_CLI= + + distutils-r1_src_install + + if [[ ! ${HAD_CLI} ]]; then + rm -r "${ED}/usr/bin" || die + fi +} + +python_install() { + distutils-r1_python_install + if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then + HAD_CLI=1 + else + rm -r "${D}$(python_get_scriptdir)" || die + fi +} + +pkg_postinst() { + optfeature "datetime support" dev-python/pytz + optfeature "dateutil support" dev-python/python-dateutil + optfeature "numpy support" dev-python/numpy + optfeature "django support" dev-python/django dev-python/pytz + optfeature "pandas support" dev-python/pandas + optfeature "pytest support" dev-python/pytest +} From d26f37905217c50988aac17002c9087bac18b062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:02:00 +0200 Subject: [PATCH 18/31] dev-python/json5: Bump to 0.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/json5/Manifest | 1 + dev-python/json5/json5-0.11.0.ebuild | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 dev-python/json5/json5-0.11.0.ebuild diff --git a/dev-python/json5/Manifest b/dev-python/json5/Manifest index 9230044c3c68d..522ac9398e40b 100644 --- a/dev-python/json5/Manifest +++ b/dev-python/json5/Manifest @@ -1 +1,2 @@ DIST json5-0.10.0.tar.gz 48202 BLAKE2B 78794c785c5e5636aede6db48e230a5480ac10b8bbab4041cb827deabb1f251b3f2eddc252d5d0f91f358c093feba422575fdd51448c0984195937094227e48b SHA512 1c56def363c268aa256066c8e98b3a9bfba66a3756071bf6ff41929cdd98ccf5435f08103fbbc3b505abe81f39a14fa1ec50d4a984eebc52410cbb31f999b1b9 +DIST json5-0.11.0.tar.gz 51014 BLAKE2B b285f33ad4afb4d40a9dfc598f63a2c4aa62b683648d8ba49c9a1962507db81b944cea71ef563594d3141b4b0f52348f0eb7b2aa3f0e77e525f22cd511197491 SHA512 5721720f514688c2f0c39b3610f001209fdb0f756ff35bca064aadfd0a9529157c88cb574c7f33ef3bed94ed65026f48383e6bafd65a22a27fce50ab140f447f diff --git a/dev-python/json5/json5-0.11.0.ebuild b/dev-python/json5/json5-0.11.0.ebuild new file mode 100644 index 0000000000000..f018cc63f564d --- /dev/null +++ b/dev-python/json5/json5-0.11.0.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A Python implementation of the JSON5 data format" +HOMEPAGE=" + https://github.com/dpranke/pyjson5/ + https://pypi.org/project/json5/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + +distutils_enable_tests pytest From c0ff2fc71c5228c041286333c90eefbd2bc44b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:02:31 +0200 Subject: [PATCH 19/31] dev-python/aiohttp: Bump to 3.11.16 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/aiohttp/Manifest | 1 + dev-python/aiohttp/aiohttp-3.11.16.ebuild | 135 ++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 dev-python/aiohttp/aiohttp-3.11.16.ebuild diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest index b6a47c71c1dfc..a8e2fa1140f1a 100644 --- a/dev-python/aiohttp/Manifest +++ b/dev-python/aiohttp/Manifest @@ -1,3 +1,4 @@ DIST aiohttp-3.11.13.tar.gz 7674284 BLAKE2B 1975baf20e3d1b7fa5b6b5fbdf4fb916fea57fbfb2dbe9295300fa2952b1cd7fb8aaa814e37bb5c403e43ea9930ca35f9ca17bba5359e8c07e535dfc1d71d607 SHA512 cd9745ea07041e438bb42508ed86095582b7121d233719e9d16033c34d567063c2fd091536ab45ea1695ba118d49b955c56153fe7d6b51c2ee0a4760bfd816a9 DIST aiohttp-3.11.14.tar.gz 7676994 BLAKE2B e8e048c01db9600df3bdc7bdc6e5066094b4575d08fef3ec7d0a78763a701cd3501dce435b80d3fbea28d2e7bf4110a5cc9e0ccec2bc3745835cadcb27528404 SHA512 38e51d3640b533d9bd639a59657bf7affbfc0b1a9dc40d77175d6528044e23b1e524589b9a10e0159eb8f9ba29e96b3e67529a9d11f1c53760a70800d813d13f DIST aiohttp-3.11.15.tar.gz 7676625 BLAKE2B 02a5230bd9d038f0e90e4b63e69502a8f2445b781e0b4ff6e40657d7c0d49ddce011ba28c3ddc03cd75a4e205d3544af15f9944f9908064d6f9b922862cc8ab0 SHA512 deeaed7f204fef23641d076d1fd455ebe97173726e2cfc47f82fffc654c51e975fb3012ac78bf60181771e001f3e6f3aac67e2bfc9ed9291ff6d92873969eb0e +DIST aiohttp-3.11.16.tar.gz 7676826 BLAKE2B ae430c8d5e3c84442c95f6c485be2ca69df00b7dd2047ed34d7825c0f250b71ca1490140a1aff8b3dfcdb2af367958e59c94c60b288b7f534b1e1b0457debc10 SHA512 890f576d5ec8c364f8db29b1c4a540cd39cf61fa1fd17ec70049a8c1bf401745d8326e2b7b51bbbc7a2569bfe42f7aab022c23be186bb67f064a32ed16af18dd diff --git a/dev-python/aiohttp/aiohttp-3.11.16.ebuild b/dev-python/aiohttp/aiohttp-3.11.16.ebuild new file mode 100644 index 0000000000000..2c0d281aa7536 --- /dev/null +++ b/dev-python/aiohttp/aiohttp-3.11.16.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP client/server for asyncio" +HOMEPAGE=" + https://github.com/aio-libs/aiohttp/ + https://pypi.org/project/aiohttp/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions test-rust" + +RDEPEND=" + >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}] + >=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}] + >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}] + >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] + dev-python/brotlicffi[${PYTHON_USEDEP}] + >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}] + >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] + >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}] + >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + =dev-python/async-timeout-4.0[${PYTHON_USEDEP}] + ' 3.10) +" +BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + ) + test? ( + dev-python/freezegun[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python3*') + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # increase the timeout a little + sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die + # xfail_strict fails on py3.10 + sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die + sed -i -e 's:-Werror::' Makefile || die + + distutils-r1_src_prepare +} + +python_configure() { + if [[ ! -d tools && ${EPYTHON} != pypy3 ]] && use native-extensions + then + # workaround missing files + mkdir tools || die + > requirements/cython.txt || die + > tools/gen.py || die + chmod +x tools/gen.py || die + # force rehashing first + emake requirements/.hash/cython.txt.hash + > .update-pip || die + > .install-cython || die + emake cythonize + fi +} + +python_compile() { + # implicitly disabled for pypy3 + if ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_IGNORE=( + # proxy is not packaged + tests/test_proxy_functional.py + # python_on_whales is not packaged + tests/autobahn/test_autobahn.py + # benchmarks + tests/test_benchmarks_client.py + tests/test_benchmarks_client_request.py + tests/test_benchmarks_client_ws.py + tests/test_benchmarks_cookiejar.py + tests/test_benchmarks_http_websocket.py + tests/test_benchmarks_http_writer.py + tests/test_benchmarks_web_fileresponse.py + tests/test_benchmarks_web_middleware.py + tests/test_benchmarks_web_response.py + tests/test_benchmarks_web_urldispatcher.py + ) + + local EPYTEST_DESELECT=( + # Internet + tests/test_client_session.py::test_client_session_timeout_zero + # broken by irrelevant deprecation warnings + tests/test_circular_imports.py::test_no_warnings + ) + + # upstream unconditionally blocks building C extensions + # on PyPy3 but the test suite needs an explicit switch + if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin + rm -rf aiohttp || die + epytest -m "not internal and not dev_mode" \ + -p rerunfailures --reruns=5 +} From 3c911d78d61262aa9d8275c463ac33897ea71cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:02:51 +0200 Subject: [PATCH 20/31] dev-python/lz4: Bump to 4.4.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/lz4/Manifest | 1 + dev-python/lz4/lz4-4.4.4.ebuild | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 dev-python/lz4/lz4-4.4.4.ebuild diff --git a/dev-python/lz4/Manifest b/dev-python/lz4/Manifest index 7dab8d103c7fc..403ceb471701a 100644 --- a/dev-python/lz4/Manifest +++ b/dev-python/lz4/Manifest @@ -1 +1,2 @@ DIST lz4-4.4.3.tar.gz 171848 BLAKE2B 54873ac48b5b43787dd45c92056af2d302e018c0b78acb56ccef50becb4073ded1dead6d02ef203b239a4699e0af4527da04a74d3550a5a36fcdc88dda98772c SHA512 b02899f3011453f77e99aa31c7dc717a7d0ca636475e9ead617196d906e3e2abcee511e84f68e9071b27227cad8ece7fb5f78c04bd8f44cc0959bb687b72e73f +DIST lz4-4.4.4.tar.gz 171884 BLAKE2B a5a1a183b831de32c6197007a278351ed2ff7003c77d686432887436ca8920345995f1a1c2f64144d71ad929fe0cea13939c568030b8622a6b55bc53f0cad41b SHA512 eb49fa28d8745c8d232e82565338e1021da8bc27b4f9c01277e51fbd01a30943f420ee7a983e4683ccb81e72039a12b05b56836fa06c10039ba7267df72d0fcb diff --git a/dev-python/lz4/lz4-4.4.4.ebuild b/dev-python/lz4/lz4-4.4.4.ebuild new file mode 100644 index 0000000000000..13562005ac5c4 --- /dev/null +++ b/dev-python/lz4/lz4-4.4.4.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="LZ4 Bindings for Python" +HOMEPAGE=" + https://github.com/python-lz4/python-lz4/ + https://pypi.org/project/lz4/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +DEPEND=" + app-arch/lz4:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] + dev-python/pkgconfig[${PYTHON_USEDEP}] + test? ( + dev-python/psutil[${PYTHON_USEDEP}] + ) +" + +# note: test suite fails with xdist +distutils_enable_tests pytest + +python_test() { + local EPYTEST_IGNORE=( + # lz4.stream is not officially supported and not installed by default + # (we do not support installing it at the moment) + tests/stream + ) + + rm -rf lz4 || die + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} From 7afd1cf8245933008a18af9b881735010069a805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:06:21 +0200 Subject: [PATCH 21/31] dev-python/stripe: Bump to 12.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/stripe/Manifest | 1 + dev-python/stripe/stripe-12.0.0.ebuild | 95 ++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 dev-python/stripe/stripe-12.0.0.ebuild diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest index 4d3b7ce12994e..848a86774ed5e 100644 --- a/dev-python/stripe/Manifest +++ b/dev-python/stripe/Manifest @@ -1 +1,2 @@ DIST stripe-11.6.0.tar.gz 1390405 BLAKE2B 0a630201e0c85d1c456a02f18c1383d8367e8980485cf20ab62fbad2a6a6f0612b2199626de1e7f5cefb477e7dcc07777d2af095994de04805fcba206469f6cd SHA512 f92978feef4083cb1a662da44101b9b670d442c141921f29b93a551a36d641faccdff60499115a4b8a0c62b74498403ad3ac7f04c4b16992f3cab5ee498cb25d +DIST stripe-12.0.0.tar.gz 1369861 BLAKE2B abd767466760e8e43d313e7072dcab5d74b09cd395eafb894ef0ee7d21db5503e3f36493e194ab02100f3b9d648342a91efd5c46574af290481c2a260680a974 SHA512 ab9cac4712989227562ade7a7058c2c3342c04f98f02496597047755d9f790f720c29b5f8c26da1a2f4d795793931a8a073789708f395cdfa0057a8e71724a49 diff --git a/dev-python/stripe/stripe-12.0.0.ebuild b/dev-python/stripe/stripe-12.0.0.ebuild new file mode 100644 index 0000000000000..98d38193cade0 --- /dev/null +++ b/dev-python/stripe/stripe-12.0.0.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-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} pypy3 pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Stripe Python bindings" +HOMEPAGE=" + https://github.com/stripe/stripe-python/ + https://pypi.org/project/stripe/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="telemetry" + +RDEPEND=" + >=dev-python/requests-2.20[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}] +" +# please bump dev-util/stripe-mock dep to the latest version on every bump +BDEPEND=" + test? ( + >=dev-util/stripe-mock-0.192.0 + dev-python/aiohttp[${PYTHON_USEDEP}] + dev-python/anyio[${PYTHON_USEDEP}] + dev-python/httpx[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/trio[${PYTHON_USEDEP}] + net-misc/curl + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +DOCS=( LONG_DESCRIPTION.rst CHANGELOG.md README.md ) + +src_prepare() { + distutils-r1_src_prepare + + if ! use telemetry; then + sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet + tests/test_http_client.py::TestLiveHTTPClients::test_httpx_request_async_https + 'tests/test_integration.py::TestIntegration::test_async_raw_request_timeout[asyncio-aiohttp]' + # timing + tests/test_integration.py::TestIntegration::test_passes_client_telemetry_when_enabled + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests -p anyio -p pytest_mock +} + +src_test() { + local stripe_mock_port=12111 + local stripe_mock_max_port=12121 + local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log" + # Try to start stripe-mock until we find a free port + while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do + ebegin "Trying to start stripe-mock on port ${stripe_mock_port}" + stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" & + local stripe_mock_pid=${!} + sleep 2 + # Did stripe-mock start? + curl --fail -u "sk_test_123:" \ + "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null + eend ${?} "Port ${stripe_mock_port} unavailable" + if [[ ${?} -eq 0 ]]; then + einfo "stripe-mock running on port ${stripe_mock_port}" + break + fi + (( stripe_mock_port++ )) + done + if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then + eerror "Unable to start stripe-mock for tests" + die "Please see the logfile located at: ${stripe_mock_logfile}" + fi + + local -x STRIPE_MOCK_PORT=${stripe_mock_port} + distutils-r1_src_test + + # Tear down stripe-mock + kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock" +} From 44c61dabc1ecdaef0e9072f7e1620d7e39622601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:07:05 +0200 Subject: [PATCH 22/31] dev-python/zeroconf: Bump to 0.146.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/zeroconf/Manifest | 1 + dev-python/zeroconf/zeroconf-0.146.2.ebuild | 60 +++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 dev-python/zeroconf/zeroconf-0.146.2.ebuild diff --git a/dev-python/zeroconf/Manifest b/dev-python/zeroconf/Manifest index bb828d729f653..c7ecb8b8925b8 100644 --- a/dev-python/zeroconf/Manifest +++ b/dev-python/zeroconf/Manifest @@ -1 +1,2 @@ DIST zeroconf-0.146.1.tar.gz 161874 BLAKE2B 042bc3747dac7a63e05b454a12b5884d293490909e662cf8c7ab7bf871bd4983bbf04cb2eb2ae6e075a82ab586f95ef13c201875d42250898f234f69a288b21e SHA512 a0834e37f07e465e2bf4b99ac7630f98b7c09d9608ecd86d3b8e2a3cd9c3978c400f342b97c7299f10fe07de669356c088f74e4bb26d9316c98219844dee6392 +DIST zeroconf-0.146.2.tar.gz 162157 BLAKE2B 8b35e4309759a4668db5014bf747c30d87a399467e28078501d72bbe34cd39d9a4a6045b80ea51810a4f702130200c5c7db114253ae5512db98a78d80e791c31 SHA512 eacc2b94a7a3b0eeeb941aeb0dbf1bd26c78464daadd6e2a5ad91b2b21e76041e85cffa27ff8e4ccf8c78a22771d53ecc412099699f4e643895be1a784a0540a diff --git a/dev-python/zeroconf/zeroconf-0.146.2.ebuild b/dev-python/zeroconf/zeroconf-0.146.2.ebuild new file mode 100644 index 0000000000000..8ab627f861583 --- /dev/null +++ b/dev-python/zeroconf/zeroconf-0.146.2.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{10..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)" +HOMEPAGE=" + https://github.com/python-zeroconf/python-zeroconf/ + https://pypi.org/project/zeroconf/ +" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/ifaddr-0.1.7[${PYTHON_USEDEP}] +" +# the build system uses custom build script that uses distutils to build +# C extensions, sigh +BDEPEND=" + >=dev-python/cython-3.0.8[${PYTHON_USEDEP}] + >=dev-python/setuptools-65.6.3[${PYTHON_USEDEP}] + test? ( + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +export REQUIRE_CYTHON=1 + +python_test() { + local -x SKIP_IPV6=1 + local EPYTEST_DESELECT=( + # network + tests/test_core.py::Framework::test_close_multiple_times + tests/test_core.py::Framework::test_launch_and_close + tests/test_core.py::Framework::test_launch_and_close_context_manager + + # fragile to timeouts (?) + tests/services/test_browser.py::test_service_browser_expire_callbacks + tests/utils/test_asyncio.py::test_run_coro_with_timeout + + # randomly broken by a leftover thread? + tests/test_circular_imports.py::test_circular_imports + ) + local EPYTEST_IGNORE=( + tests/benchmarks + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -o addopts= -p asyncio +} From 0db9575bd578f2124046ea8be2a3d6c48bb3cfa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:07:38 +0200 Subject: [PATCH 23/31] dev-python/pytest-django: Bump to 4.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/pytest-django/Manifest | 1 + .../pytest-django/pytest-django-4.11.0.ebuild | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 dev-python/pytest-django/pytest-django-4.11.0.ebuild diff --git a/dev-python/pytest-django/Manifest b/dev-python/pytest-django/Manifest index 31db17de811c6..59b46bf7da75d 100644 --- a/dev-python/pytest-django/Manifest +++ b/dev-python/pytest-django/Manifest @@ -1 +1,2 @@ DIST pytest-django-4.10.0.gh.tar.gz 78992 BLAKE2B 0d42b7bf11fd06ea58b38d9fedf48b12a1577b7b732a61449b787217a729e95ad7c754530bc31c3a6ce7d4c8417fce5b47bdd554b91b71ed148cdff5efb2696c SHA512 887e02a6122631adf0bb34e7b8354378d628564f736c3754a475473b9dc3ff80599bed9b7ccc12b145d0963c3cb56e7110d49c70bfd0b37e15f8a95f3f787ecf +DIST pytest-django-4.11.0.gh.tar.gz 80121 BLAKE2B d8450f007b7a4c5235b03d854a540780c10c993daf9ede82c4927ff69a4b469228a8f42628c1612006ed6312be5767b2c7a3d49e965e9b15bcb89e07ff622419 SHA512 7332c04589ae5539bb03bbdfeebd8e7435073370fcf5b20371ecc570d94ac3460661a192089d5ec7860f77aebbf91399ec78d786d89471a550b1ad9367189128 diff --git a/dev-python/pytest-django/pytest-django-4.11.0.ebuild b/dev-python/pytest-django/pytest-django-4.11.0.ebuild new file mode 100644 index 0000000000000..f889911117ccf --- /dev/null +++ b/dev-python/pytest-django/pytest-django-4.11.0.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) + +inherit distutils-r1 + +DESCRIPTION="A Django plugin for pytest" +HOMEPAGE=" + https://pypi.org/project/pytest-django/ + https://pytest-django.readthedocs.io/ + https://github.com/pytest-dev/pytest-django/ +" +SRC_URI=" + https://github.com/pytest-dev/pytest-django/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/setuptools-scm-1.11.1[${PYTHON_USEDEP}] + test? ( + dev-python/django[${PYTHON_USEDEP}] + >=dev-python/django-configurations-2.0[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + +distutils_enable_tests pytest + +python_test() { + local -x DJANGO_SETTINGS_MODULE + local -x PYTHONPATH=${PWD} + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_django.plugin,xdist.plugin + for DJANGO_SETTINGS_MODULE in pytest_django_test.settings_sqlite{,_file}; do + einfo "Testing ${DJANGO_SETTINGS_MODULE}" + epytest tests + done +} From 342aa4896a88bc7dd42239f6ad31afc0754946f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:08:12 +0200 Subject: [PATCH 24/31] dev-python/griffe: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/griffe/Manifest | 3 -- dev-python/griffe/griffe-1.6.3.ebuild | 70 --------------------------- dev-python/griffe/griffe-1.7.0.ebuild | 70 --------------------------- dev-python/griffe/griffe-1.7.1.ebuild | 70 --------------------------- 4 files changed, 213 deletions(-) delete mode 100644 dev-python/griffe/griffe-1.6.3.ebuild delete mode 100644 dev-python/griffe/griffe-1.7.0.ebuild delete mode 100644 dev-python/griffe/griffe-1.7.1.ebuild diff --git a/dev-python/griffe/Manifest b/dev-python/griffe/Manifest index ae9e0f65659f5..bd1bf78cf72d0 100644 --- a/dev-python/griffe/Manifest +++ b/dev-python/griffe/Manifest @@ -1,4 +1 @@ -DIST griffe-1.6.3.gh.tar.gz 395341 BLAKE2B c2beca0377d6d4a43a9a833142d1750d10fb4584c451cc7c9758275bfb58e6078634e79a204794b3b360d7afff0b37d68fb12d2f845ae846a6aa97ccb696538d SHA512 7b9197854ea8262bbcfa14fcd18dfb10e6bde253b92b7e88fc199f49f73d76f3641a6d3df8e383b4b1e2736a35f204eafe520347f00fd0f3c4f7bfd9a56d1e3e -DIST griffe-1.7.0.gh.tar.gz 397619 BLAKE2B ecd2b490ec4fa37e5ac4bc0ac509145093245345af81a933d9b1e763c94e3fe0e6fdcd8a8d73f276c6740a1dd5397eedaa647efee6c01bab7e55b914cc43e1fd SHA512 c69d7ddbd5641f8cc1c0b920349488dcf1f61109d3437a4658ae1379ee80cabf02073c0c25a41ba1ef5a627a8c27fd42bd6339931af043ce866ab096d064ffb2 -DIST griffe-1.7.1.gh.tar.gz 397814 BLAKE2B fe481ae8cbffb79f355881fd5030ef43275c3bd8732757f77b5038a757629024b223374c33d9a5140fe0c375e54153e9835c267548282d545596c3b4a183afc8 SHA512 e2c538e2a413f2803c714ba2326599453ca7fd4ffbb6221076ef3a00ea95a159a852b9ad766cf0e66364cd1d05748b39efac534c6b7429cb276b85d09f6e2342 DIST griffe-1.7.2.gh.tar.gz 398102 BLAKE2B ec4125401ce079dee0795b5bf2db0f74799f3a0c8a122c5c47317fa040cec79772b08aab4e168f4a6ade3ba9e9f4b17b4def17108e9c27ab69d0b701896f2f53 SHA512 4e1573cdfa8a5ba37b932448ed4647a0e37ed680ade4c099e21a0c1ef038840392d5ff906e763bba584d5777b6e6571842f848e3eb3faa4f7f474d61744ba26b diff --git a/dev-python/griffe/griffe-1.6.3.ebuild b/dev-python/griffe/griffe-1.6.3.ebuild deleted file mode 100644 index 115d0beb002b1..0000000000000 --- a/dev-python/griffe/griffe-1.6.3.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=pdm-backend -PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) - -inherit distutils-r1 - -DESCRIPTION="Signature generator for Python programs" -HOMEPAGE=" - https://mkdocstrings.github.io/griffe/ - https://github.com/mkdocstrings/griffe/ - https://pypi.org/project/griffe/ -" -# Tests need files absent from the PyPI tarballs -SRC_URI=" - https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="ISC" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~riscv" - -RDEPEND=" - >=dev-python/colorama-0.4[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/backports-strenum-1.3[${PYTHON_USEDEP}] - ' 3.10) -" -BDEPEND=" - test? ( - >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}] - >=dev-python/mkdocstrings-0.28.0[${PYTHON_USEDEP}] - >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -export PDM_BUILD_SCM_VERSION=${PV} - -python_test() { - local EPYTEST_DESELECT=( - # fragile to installed packages - # (failed on PySide2 for me) - tests/test_stdlib.py::test_fuzzing_on_stdlib - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # https://github.com/pypy/pypy/issues/5226 - tests/test_inspector.py::test_inspecting_objects_from_private_builtin_stdlib_moduless - ) - ;& - pypy3*) - EPYTEST_DESELECT+=( - # tries importing CPython-specific modules - # https://github.com/mkdocstrings/griffe/issues/362 - tests/test_loader.py::test_load_builtin_modules - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/dev-python/griffe/griffe-1.7.0.ebuild b/dev-python/griffe/griffe-1.7.0.ebuild deleted file mode 100644 index 115d0beb002b1..0000000000000 --- a/dev-python/griffe/griffe-1.7.0.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=pdm-backend -PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) - -inherit distutils-r1 - -DESCRIPTION="Signature generator for Python programs" -HOMEPAGE=" - https://mkdocstrings.github.io/griffe/ - https://github.com/mkdocstrings/griffe/ - https://pypi.org/project/griffe/ -" -# Tests need files absent from the PyPI tarballs -SRC_URI=" - https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="ISC" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~riscv" - -RDEPEND=" - >=dev-python/colorama-0.4[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/backports-strenum-1.3[${PYTHON_USEDEP}] - ' 3.10) -" -BDEPEND=" - test? ( - >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}] - >=dev-python/mkdocstrings-0.28.0[${PYTHON_USEDEP}] - >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -export PDM_BUILD_SCM_VERSION=${PV} - -python_test() { - local EPYTEST_DESELECT=( - # fragile to installed packages - # (failed on PySide2 for me) - tests/test_stdlib.py::test_fuzzing_on_stdlib - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # https://github.com/pypy/pypy/issues/5226 - tests/test_inspector.py::test_inspecting_objects_from_private_builtin_stdlib_moduless - ) - ;& - pypy3*) - EPYTEST_DESELECT+=( - # tries importing CPython-specific modules - # https://github.com/mkdocstrings/griffe/issues/362 - tests/test_loader.py::test_load_builtin_modules - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/dev-python/griffe/griffe-1.7.1.ebuild b/dev-python/griffe/griffe-1.7.1.ebuild deleted file mode 100644 index 115d0beb002b1..0000000000000 --- a/dev-python/griffe/griffe-1.7.1.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=pdm-backend -PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) - -inherit distutils-r1 - -DESCRIPTION="Signature generator for Python programs" -HOMEPAGE=" - https://mkdocstrings.github.io/griffe/ - https://github.com/mkdocstrings/griffe/ - https://pypi.org/project/griffe/ -" -# Tests need files absent from the PyPI tarballs -SRC_URI=" - https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="ISC" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~riscv" - -RDEPEND=" - >=dev-python/colorama-0.4[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/backports-strenum-1.3[${PYTHON_USEDEP}] - ' 3.10) -" -BDEPEND=" - test? ( - >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}] - >=dev-python/mkdocstrings-0.28.0[${PYTHON_USEDEP}] - >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -export PDM_BUILD_SCM_VERSION=${PV} - -python_test() { - local EPYTEST_DESELECT=( - # fragile to installed packages - # (failed on PySide2 for me) - tests/test_stdlib.py::test_fuzzing_on_stdlib - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # https://github.com/pypy/pypy/issues/5226 - tests/test_inspector.py::test_inspecting_objects_from_private_builtin_stdlib_moduless - ) - ;& - pypy3*) - EPYTEST_DESELECT+=( - # tries importing CPython-specific modules - # https://github.com/mkdocstrings/griffe/issues/362 - tests/test_loader.py::test_load_builtin_modules - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} From 68fb86d51225e54682c9f10a577ba294334e8f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:10:06 +0200 Subject: [PATCH 25/31] dev-python/mkdocs-material: Bump to 9.6.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/mkdocs-material/Manifest | 1 + .../mkdocs-material-9.6.11.ebuild | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 dev-python/mkdocs-material/mkdocs-material-9.6.11.ebuild diff --git a/dev-python/mkdocs-material/Manifest b/dev-python/mkdocs-material/Manifest index 02ae11e296c14..4e7a9c9e1402f 100644 --- a/dev-python/mkdocs-material/Manifest +++ b/dev-python/mkdocs-material/Manifest @@ -1,3 +1,4 @@ DIST mkdocs-material-9.6.10.gh.tar.gz 14812031 BLAKE2B 505d6585d99aabd1b97f3853173aaf83085c58064c0f76d91517e92de311d52e7ae3c6c2ed71c66bbf013e88d6b38ae5eab64799076238bd46e2e36b745541b7 SHA512 c2589ccc0ffe21217d57fb91a5e247c026f2c32496767a72d604152c80913e03d015291fe3a31891618e53c167348c2cd08db5b986ac0c8c820e091f381d596d +DIST mkdocs-material-9.6.11.gh.tar.gz 14819417 BLAKE2B f38539b2e62d3a44cf3296410817b086d84bfeda8f8d66ff6adc135bb9f31a26ec73bbb0bfc32d9b9d050698bbeb7d8871a92d9382e28b8c78c3cc6b26d13278 SHA512 478a719d4bd46002cd9708a3c71e68c0843703ea8465631fcb5c188f45816673966be7a6c20a9b8886b195d09f153cb7881af3e1471fe11c41a1df2a58aee390 DIST mkdocs-material-9.6.8.gh.tar.gz 14926223 BLAKE2B ce5f0ccc1f19787bbf631f0e71f1b252920e32b6e99616066c18d417e5086f8f612411fb8ba41909df8ee1fc24907879ec87234c42cd8fd6088555b46b7c7d67 SHA512 26d9677d95903c4c3a7890decb11557168dbf26c1fbd7ba1406bebf29a813283ccf43c7173a69136508ff753d61fad2ee3f49a897514fb7f6fa914070d2570b6 DIST mkdocs-material-9.6.9.gh.tar.gz 14809122 BLAKE2B 14c07f44c93de9c74ca6ee64b9be0ef2b7c06f40fa3bca95fbd935cec783ee16d02c50c77ed6b0b62fddaa9f0dcba769db1d86ca4da4363aa48c4940d5eb83f9 SHA512 166c7a5fe445e07286ccc36040a3caf4e070ad86fbcb556fa380ed91b6adfd96c881762f0cb7b96ee1f5d04ff4d65018ad119973e07920c8dd037f32c1322c46 diff --git a/dev-python/mkdocs-material/mkdocs-material-9.6.11.ebuild b/dev-python/mkdocs-material/mkdocs-material-9.6.11.ebuild new file mode 100644 index 0000000000000..60f0fcd96617d --- /dev/null +++ b/dev-python/mkdocs-material/mkdocs-material-9.6.11.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material-extensions + dev-python/mkdocs-minify-plugin + dev-python/mkdocs-redirects +" + +inherit distutils-r1 docs + +DESCRIPTION="A Material Design theme for MkDocs" +HOMEPAGE=" + https://github.com/squidfunk/mkdocs-material/ + https://pypi.org/project/mkdocs-material/ +" +SRC_URI=" + https://github.com/squidfunk/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="social" + +RDEPEND=" + >=dev-python/babel-2.10.3[${PYTHON_USEDEP}] + >=dev-python/colorama-0.4[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.0.2[${PYTHON_USEDEP}] + >=dev-python/lxml-4.6[${PYTHON_USEDEP}] + >=dev-python/markdown-3.2[${PYTHON_USEDEP}] + >=dev-python/mkdocs-1.5.3[${PYTHON_USEDEP}] + >=dev-python/paginate-0.5.6[${PYTHON_USEDEP}] + >=dev-python/pygments-2.16[${PYTHON_USEDEP}] + >=dev-python/pymdown-extensions-10.2[${PYTHON_USEDEP}] + >=dev-python/readtime-2.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/regex-2022.4.24[${PYTHON_USEDEP}] + ' 'python*') + >=dev-python/requests-2.26[${PYTHON_USEDEP}] + social? ( + >=dev-python/pillow-10.2[${PYTHON_USEDEP}] + >=media-gfx/cairosvg-2.5[${PYTHON_USEDEP}] + ) +" +BDEPEND=" + >=dev-python/trove-classifiers-2023.10.18[${PYTHON_USEDEP}] +" +# mkdocs-material-extensions depends on mkdocs-material creating a circular dep +PDEPEND=" + >=dev-python/mkdocs-material-extensions-1.2[${PYTHON_USEDEP}] +" + +PATCHES=( + # simplify pyproject to remove extra deps for metadata + "${FILESDIR}/${PN}-8.5.7-simplify-build.patch" + # import backrefs only when used (i.e. never) + "${FILESDIR}/${PN}-9.6.7-backrefs.patch" +) + +src_prepare() { + echo "__version__ = '${PV}'" > gentoo_version.py || die + distutils-r1_src_prepare +} From 78c49226bd3ed13ad911893519563a3abad00afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:10:27 +0200 Subject: [PATCH 26/31] media-gfx/fotema: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- media-gfx/fotema/Manifest | 4 -- media-gfx/fotema/fotema-1.19.0.ebuild | 91 --------------------------- media-gfx/fotema/fotema-1.19.1.ebuild | 91 --------------------------- 3 files changed, 186 deletions(-) delete mode 100644 media-gfx/fotema/fotema-1.19.0.ebuild delete mode 100644 media-gfx/fotema/fotema-1.19.1.ebuild diff --git a/media-gfx/fotema/Manifest b/media-gfx/fotema/Manifest index 0ac9a3fd31cde..196a26308d21e 100644 --- a/media-gfx/fotema/Manifest +++ b/media-gfx/fotema/Manifest @@ -1,7 +1,3 @@ -DIST fotema-1.19.0-crates.tar.xz 62327412 BLAKE2B 099677191ca1634288d9f4e6055ddfaa3e6562d96fcd06dcc51aa1cb49fed648a61f60f2d47ac51c4fd97a8a238a8f064a8f9990768e2160fd9e002b4ffb978a SHA512 11b7510aae15359e0b2bb95a7e5b4b973f1438328f8fea075264bfb16da50876c4bec5bd82c0af965c8fc9bb5c2d1126c03c077ebd0d1cda704e6b89daf504c2 -DIST fotema-1.19.0.gh.tar.gz 8950038 BLAKE2B 131c013515b11ac068944e9d3c7e4ae1809ed75bf6d7d1eebdf10c09498d519363ab2b0d35b07a6f11c3e221d8665adf289ce9ff3f820585dd97b2065a5c1322 SHA512 4750028bd30a46f37a6ca85ff9d005dd99c4d4a0d1c0df60baadc094d9630bafeff21e898543c9ef41c612237fdfbe642f7abbbcb1fbd4c8c6d3dbed369f420f -DIST fotema-1.19.1.gh.tar.gz 8951161 BLAKE2B 77bbb21eceb2b700f4e3ff787be05a71dd819c662f26813af74ddd1645b9f7864e63cab74ca35cb33e20cddc9fd286705b43fc375247b490c0ec9c6848afb82b SHA512 aebf3a37443292ec51d5fe9a079cd1e074d82bf65e6bd2ec3729181849b71c8b57d020a5382ca8b690b1278b372b56b895b35f9c7810981462543c82a13e4aeb DIST fotema-1.19.2.gh.tar.gz 8952377 BLAKE2B b41720af2f617c3d6f3e53be88bfdfec39d49a40b9b44b5a6c9b0c5e99d0280f8e8a79ebc7d0cee9fb083c0ed1ee54925953ca23e5a4807d0e1ca1c07170f337 SHA512 849ece52e13a1a8fc66864cad286e1c2bdcc9f3b73c0e0a45c42bf481e8b14a03f9e7d72a5461094a6fe804359d2ddcf0fbec1b7a82ce3a5c3cdc4e9b15c1311 DIST fotema-rust-faces-43c0d5acd6f3f4d90c6487708f2e511a73bf7c9e.gh.tar.gz 839519 BLAKE2B 7ba344d55c5d108e63556dda32aaf60cfbd2b14a05e2965ca69e54e2aab578f6ba49f7a7b89d6c32cb5ace4b80f7a84247dcbb43a98d5d709895810798966b0b SHA512 aac99659e2d82d342f52b5860d9f1e284e1658fa9e0986b1c54a81cc33f6391535a2773d79defc6a7bf1e52591dc91d91a1ef3742c38e599baed79975b42de51 -DIST fotema-v1.19.1-crates.tar.xz 63008632 BLAKE2B 62758bdd9d4cf54d3bceb187d027d8419b4ccdd2d64ab1e8c9e5679123ee729acbc16f3adeece965bac9a9a33ef093c6519581c0f75afd8327d53e159baae2f7 SHA512 0a366cc7b4bb19e0529fbc6fd5c37a9e03cdfe3ec0ff8e853f46985ffdb974f142f047376999779601abbb33385b7ed44cd6070959513fc471dec92ac76cd0cb DIST fotema-v1.19.2-crates.tar.xz 63106132 BLAKE2B f57f6e19bbaa2570530f8280e59c80cdc887d7808c9453ac27b6f64bbd175faec2f20f31b8decf61af21f1d38248a868412f27122b0ebe398c63ba3937ce0055 SHA512 58db1ef27c7e10e8d156af3beb6ba9941f7676e286ce51497ec3f6953586e648431fbd5cb8485d751b2fcce6cafd912037dc9c2ce9a5a1173d68e609b8c63712 diff --git a/media-gfx/fotema/fotema-1.19.0.ebuild b/media-gfx/fotema/fotema-1.19.0.ebuild deleted file mode 100644 index 72f90bd243cf9..0000000000000 --- a/media-gfx/fotema/fotema-1.19.0.ebuild +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CRATES=" -" - -declare -A GIT_CRATES=( - [rust-faces]='https://github.com/blissd/fotema-rust-faces;43c0d5acd6f3f4d90c6487708f2e511a73bf7c9e;fotema-rust-faces-%commit%' -) - -inherit cargo gnome2-utils meson xdg-utils - -CRATE_P=${P} -DESCRIPTION="Photo gallery for Linux" -HOMEPAGE="https://github.com/blissd/fotema" -SRC_URI=" - https://github.com/blissd/fotema/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz - ${CARGO_CRATE_URIS} -" -if [[ ${PKGBUMPING} != ${PVR} ]]; then - SRC_URI+=" - https://dev.gentoo.org/~mgorny/dist/${CRATE_P}-crates.tar.xz - " -fi - -# see LICENSES/ -LICENSE=" - CC-BY-2.0 CC-BY-4.0 CC-BY-NC-SA-4.0 CC-BY-SA-4.0 CC0-1.0 - FDL-1.3+ GPL-3+ MIT -" -# Dependent crate licenses -LICENSE+=" - Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC MIT - MPL-2.0 Unicode-3.0 WTFPL-2 ZLIB -" -SLOT="0" -KEYWORDS="~amd64" - -DEPEND=" - >=dev-libs/glib-2.66:2 - >=gui-libs/gtk-4.16:4 -" -# indirect deps via crates -DEPEND+=" - dev-libs/openssl:= - gui-libs/libadwaita - media-libs/fontconfig - media-libs/graphene - media-libs/lcms:2 - media-libs/libshumate:= - media-libs/opencv:=[contribdnn] - media-video/ffmpeg:= - sci-ml/onnx - sys-libs/libseccomp - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/pango -" -RDEPEND=" - ${DEPEND} - media-libs/glycin-loaders -" -BDEPEND=" - dev-libs/glib:2 -" - -QA_FLAGS_IGNORED="/usr/bin/fotema" - -src_configure() { - local emesonargs=( - -Dprofile=$(usex debug development default) - ) - - meson_src_configure - ln -s "${CARGO_HOME}" "${BUILD_DIR}/cargo-home" || die - - export ORT_STRATEGY=system -} - -pkg_postinst() { - gnome2_schemas_update - xdg_icon_cache_update -} - -pkg_postrm() { - gnome2_schemas_update - xdg_icon_cache_update -} diff --git a/media-gfx/fotema/fotema-1.19.1.ebuild b/media-gfx/fotema/fotema-1.19.1.ebuild deleted file mode 100644 index e2a5fa5cefb08..0000000000000 --- a/media-gfx/fotema/fotema-1.19.1.ebuild +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CRATES=" -" - -declare -A GIT_CRATES=( - [rust-faces]='https://github.com/blissd/fotema-rust-faces;43c0d5acd6f3f4d90c6487708f2e511a73bf7c9e;fotema-rust-faces-%commit%' -) - -inherit cargo gnome2-utils meson xdg-utils - -CRATE_P=${P/-/-v} -DESCRIPTION="Photo gallery for Linux" -HOMEPAGE="https://github.com/blissd/fotema" -SRC_URI=" - https://github.com/blissd/fotema/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz - ${CARGO_CRATE_URIS} -" -if [[ ${PKGBUMPING} != ${PVR} ]]; then - SRC_URI+=" - https://github.com/gentoo-crate-dist/fotema/releases/download/v${PV}/${CRATE_P}-crates.tar.xz - " -fi - -# see LICENSES/ -LICENSE=" - CC-BY-2.0 CC-BY-4.0 CC-BY-NC-SA-4.0 CC-BY-SA-4.0 CC0-1.0 - FDL-1.3+ GPL-3+ MIT -" -# Dependent crate licenses -LICENSE+=" - Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC MIT - MPL-2.0 UoI-NCSA Unicode-3.0 WTFPL-2 ZLIB -" -SLOT="0" -KEYWORDS="~amd64" - -DEPEND=" - >=dev-libs/glib-2.66:2 - >=gui-libs/gtk-4.16:4 -" -# indirect deps via crates -DEPEND+=" - dev-libs/openssl:= - gui-libs/libadwaita - media-libs/fontconfig - media-libs/graphene - media-libs/lcms:2 - media-libs/libshumate:= - media-libs/opencv:=[contribdnn] - media-video/ffmpeg:= - sci-ml/onnx - sys-libs/libseccomp - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/pango -" -RDEPEND=" - ${DEPEND} - media-libs/glycin-loaders -" -BDEPEND=" - dev-libs/glib:2 -" - -QA_FLAGS_IGNORED="/usr/bin/fotema" - -src_configure() { - local emesonargs=( - -Dprofile=$(usex debug development default) - ) - - meson_src_configure - ln -s "${CARGO_HOME}" "${BUILD_DIR}/cargo-home" || die - - export ORT_STRATEGY=system -} - -pkg_postinst() { - gnome2_schemas_update - xdg_icon_cache_update -} - -pkg_postrm() { - gnome2_schemas_update - xdg_icon_cache_update -} From 8eecc3cbdf22c120130df8ac9e6bcaa0cdc0cb6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:11:12 +0200 Subject: [PATCH 27/31] media-gfx/fotema: Bump to 1.20.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- media-gfx/fotema/Manifest | 2 + media-gfx/fotema/fotema-1.20.0.ebuild | 91 +++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 media-gfx/fotema/fotema-1.20.0.ebuild diff --git a/media-gfx/fotema/Manifest b/media-gfx/fotema/Manifest index 196a26308d21e..6ba0789ebdb23 100644 --- a/media-gfx/fotema/Manifest +++ b/media-gfx/fotema/Manifest @@ -1,3 +1,5 @@ DIST fotema-1.19.2.gh.tar.gz 8952377 BLAKE2B b41720af2f617c3d6f3e53be88bfdfec39d49a40b9b44b5a6c9b0c5e99d0280f8e8a79ebc7d0cee9fb083c0ed1ee54925953ca23e5a4807d0e1ca1c07170f337 SHA512 849ece52e13a1a8fc66864cad286e1c2bdcc9f3b73c0e0a45c42bf481e8b14a03f9e7d72a5461094a6fe804359d2ddcf0fbec1b7a82ce3a5c3cdc4e9b15c1311 +DIST fotema-1.20.0.gh.tar.gz 8952954 BLAKE2B 3d3c7d3606cc650b91ad5ee26ad1dee042cc68d7f2542a39e6f561f596875eaa2796b790ce227eba2a2f2d02162301e4397ec4e605ee714131aebe51ee869b5f SHA512 597415dc4dd347980c8a2b530b51177f651661f585ca1f64380a45bce1ea40ec967ef1017212b297bb1b53391fc208deb77309390bf4e5741aeeb769a299207f DIST fotema-rust-faces-43c0d5acd6f3f4d90c6487708f2e511a73bf7c9e.gh.tar.gz 839519 BLAKE2B 7ba344d55c5d108e63556dda32aaf60cfbd2b14a05e2965ca69e54e2aab578f6ba49f7a7b89d6c32cb5ace4b80f7a84247dcbb43a98d5d709895810798966b0b SHA512 aac99659e2d82d342f52b5860d9f1e284e1658fa9e0986b1c54a81cc33f6391535a2773d79defc6a7bf1e52591dc91d91a1ef3742c38e599baed79975b42de51 DIST fotema-v1.19.2-crates.tar.xz 63106132 BLAKE2B f57f6e19bbaa2570530f8280e59c80cdc887d7808c9453ac27b6f64bbd175faec2f20f31b8decf61af21f1d38248a868412f27122b0ebe398c63ba3937ce0055 SHA512 58db1ef27c7e10e8d156af3beb6ba9941f7676e286ce51497ec3f6953586e648431fbd5cb8485d751b2fcce6cafd912037dc9c2ce9a5a1173d68e609b8c63712 +DIST fotema-v1.20.0-crates.tar.xz 62261884 BLAKE2B 922522cd8e1882f48a6c22dc6e164c569bf224d2abd11a6eb13e1e839e1e9350a21f83cee6c5aac1e961e7be93bf2a2d9e135d3d3be2d5976763843d04d539e9 SHA512 4b549f5f4d378393553c978669a00aa07cdc3c76c37c2296bdd1d779156251c21f0a3ede3916ad4c46795628d70ee57c539f1a21b53f4b727e59b7d8e9cfd212 diff --git a/media-gfx/fotema/fotema-1.20.0.ebuild b/media-gfx/fotema/fotema-1.20.0.ebuild new file mode 100644 index 0000000000000..e2a5fa5cefb08 --- /dev/null +++ b/media-gfx/fotema/fotema-1.20.0.ebuild @@ -0,0 +1,91 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" + +declare -A GIT_CRATES=( + [rust-faces]='https://github.com/blissd/fotema-rust-faces;43c0d5acd6f3f4d90c6487708f2e511a73bf7c9e;fotema-rust-faces-%commit%' +) + +inherit cargo gnome2-utils meson xdg-utils + +CRATE_P=${P/-/-v} +DESCRIPTION="Photo gallery for Linux" +HOMEPAGE="https://github.com/blissd/fotema" +SRC_URI=" + https://github.com/blissd/fotema/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/fotema/releases/download/v${PV}/${CRATE_P}-crates.tar.xz + " +fi + +# see LICENSES/ +LICENSE=" + CC-BY-2.0 CC-BY-4.0 CC-BY-NC-SA-4.0 CC-BY-SA-4.0 CC0-1.0 + FDL-1.3+ GPL-3+ MIT +" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC MIT + MPL-2.0 UoI-NCSA Unicode-3.0 WTFPL-2 ZLIB +" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + >=dev-libs/glib-2.66:2 + >=gui-libs/gtk-4.16:4 +" +# indirect deps via crates +DEPEND+=" + dev-libs/openssl:= + gui-libs/libadwaita + media-libs/fontconfig + media-libs/graphene + media-libs/lcms:2 + media-libs/libshumate:= + media-libs/opencv:=[contribdnn] + media-video/ffmpeg:= + sci-ml/onnx + sys-libs/libseccomp + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango +" +RDEPEND=" + ${DEPEND} + media-libs/glycin-loaders +" +BDEPEND=" + dev-libs/glib:2 +" + +QA_FLAGS_IGNORED="/usr/bin/fotema" + +src_configure() { + local emesonargs=( + -Dprofile=$(usex debug development default) + ) + + meson_src_configure + ln -s "${CARGO_HOME}" "${BUILD_DIR}/cargo-home" || die + + export ORT_STRATEGY=system +} + +pkg_postinst() { + gnome2_schemas_update + xdg_icon_cache_update +} + +pkg_postrm() { + gnome2_schemas_update + xdg_icon_cache_update +} From 990ab7b67aeecf8b0534ace22dd807817fb5221e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:12:39 +0200 Subject: [PATCH 28/31] net-news/rssguard: Bump to 4.8.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- net-news/rssguard/Manifest | 1 + net-news/rssguard/rssguard-4.8.2.ebuild | 66 +++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 net-news/rssguard/rssguard-4.8.2.ebuild diff --git a/net-news/rssguard/Manifest b/net-news/rssguard/Manifest index 9430f12048f71..29553bc01fbac 100644 --- a/net-news/rssguard/Manifest +++ b/net-news/rssguard/Manifest @@ -1 +1,2 @@ DIST rssguard-4.8.1.gh.tar.gz 23782356 BLAKE2B dfc0a02ae3728794f98d48814881d66fe8ddc2e3af3cc767e53894254d6556dec78007068f098c4a8204d98d4e6a3d31718736565d036c98380d6f30dd67d5aa SHA512 68e53dd0b9924d227d4b46e5f03d93e99f6171b62ec33ad846336404f6be6c0c1c4c92eb38c5b11e9a1a4d30c07ebe3bb21f05ae450acaa73dd8a6c4f7a19106 +DIST rssguard-4.8.2.gh.tar.gz 23849361 BLAKE2B 6857a4cdf7e8aa88346fa6443c2e352eb37a21e2583ff58336a0641962df608ecfec9b60de17186ebc5af02f8dcdc430d2ef5f6ffc3f71642d7e0074911e4bf1 SHA512 8c43694a7be6e33e68b164316bba7cff96d35804ed78373a0b9727d28010c3d9f87c3dedc4be697bf10bb3074377b50b745f781db9d02dd7dbe0f2cafa99dd37 diff --git a/net-news/rssguard/rssguard-4.8.2.ebuild b/net-news/rssguard/rssguard-4.8.2.ebuild new file mode 100644 index 0000000000000..f4b49c7126c55 --- /dev/null +++ b/net-news/rssguard/rssguard-4.8.2.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake optfeature xdg + +DESCRIPTION="Simple (yet powerful) news feed reader" +HOMEPAGE="https://github.com/martinrotter/rssguard/" +SRC_URI=" + https://github.com/martinrotter/rssguard/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="|| ( LGPL-3 GPL-2+ ) AGPL-3+ BSD GPL-3+ MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="libmpv mysql qtmultimedia +sqlite webengine" +REQUIRED_USE=" + || ( mysql sqlite ) + ?? ( libmpv qtmultimedia ) +" + +BDEPEND=" + dev-qt/qttools:6[linguist] +" +DEPEND=" + dev-qt/qtbase:6[concurrent,dbus,gui,mysql?,network,sql,sqlite?,ssl,widgets] + dev-qt/qtdeclarative:6 + dev-qt/qtmultimedia:6[gstreamer] + dev-qt/qt5compat:6 + media-libs/libglvnd + sys-libs/zlib:= + libmpv? ( + dev-qt/qtbase:6[opengl] + media-video/mpv:= + ) + qtmultimedia? ( + dev-qt/qtbase:6[opengl] + dev-qt/qtmultimedia:6 + ) + webengine? ( dev-qt/qtwebengine:6[widgets(+)] ) +" +RDEPEND="${DEPEND}" + +src_configure() { + local mycmakeargs=( + -DBUILD_WITH_QT6=ON + -DNO_LITE=$(usex webengine) + -DREVISION_FROM_GIT=OFF + -DNO_UPDATE_CHECK=ON + -DENABLE_COMPRESSED_SITEMAP=ON + -DENABLE_MEDIAPLAYER_QTMULTIMEDIA=$(usex qtmultimedia) + -DENABLE_MEDIAPLAYER_LIBMPV=$(usex libmpv) + # recommended + -DMEDIAPLAYER_FORCE_OPENGL=ON + ) + + cmake_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "ad blocking functionality" "net-libs/nodejs[npm]" +} From 9df294d62d2ec80a0e5b8aca375a77044cfb6eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:15:33 +0200 Subject: [PATCH 29/31] dev-python/botocore: Bump to 1.37.25 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/botocore/Manifest | 1 + dev-python/botocore/botocore-1.37.25.ebuild | 67 +++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 dev-python/botocore/botocore-1.37.25.ebuild diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 991ba394c93d0..d304ef4e369c1 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -6,4 +6,5 @@ DIST botocore-1.37.21.gh.tar.gz 14395519 BLAKE2B 7c90142d0441b366c43c63816bfbc68 DIST botocore-1.37.22.gh.tar.gz 14402437 BLAKE2B 4519e3f3ca1c42b2e0445d98d7afd669a02009cdc34b4e3a83e801b508a1c8b6afb6b739bc168d543260e24468436395f0dc469d2e1e687f8821ed12f916e04e SHA512 15b8adbe57f73179df7cb19cb8940d6ca9510c3b4716899a3fb448271e7d15b1640b64e51d5db62d4ab0a194d4900acb9f99e40f6980e3918531c350b6bfa244 DIST botocore-1.37.23.gh.tar.gz 14408721 BLAKE2B 6309e847210a3f7f916679078fba54afff6369d0d983638a1f0535da30349e918699c022929585d5d106a47822f746429b5eb4e52f0996059ce38f989cbf05c2 SHA512 61147b40c082469c5d99ba626ce1549c2d640c25151ae39e588c1ca15c20aa3eff1eeb1d91de18c62203099d45f1a70541e675b9c5ab14f5c04f90982f9a2ddd DIST botocore-1.37.24.gh.tar.gz 14428720 BLAKE2B ca94c865048529d48eeb02721fdccb18051d7b1190645d80204d306f1774e46342f88dcb5dd51c73c1ecad133d36bf42b6b6e4f4c3bdb31b6468aea398cf4a47 SHA512 bc34c69f507144f6f84ba5af796b0c40ee2ea2d6f3eb2e51bc882ecd782f9cc0334b6ee4380aeb42800491d1f09440039ec57c2de06f45ccaa25a570889d5367 +DIST botocore-1.37.25.gh.tar.gz 14523205 BLAKE2B f6bb565b57ee8d1c61c21a5f11363e1c286d359a74884cc65d870c9f06fda7682f23cf9a88e698cef4fc8b1d1b8bee1895bff9088ee3b42e795075a43b49d1cb SHA512 79a76916d97961be7b6b7aafd56f99c0ebb8e8c59e6c1dca4aa6a9ae741528f20c75e685bddc0f843424be3bcaa7cbc541283db9446a5a54eb059efd13982bf8 DIST botocore-1.37.9.gh.tar.gz 14346488 BLAKE2B 29ac550ad462ab7c83bad7989588ec62fb57959586a8ec91be9756d90712ad86e3dfd813a347e619b7cac3fd7afb56affcd81926e15d91b8d0ceae2cd4436a8d SHA512 e191c9485e95188049c02020fcb32c4429de6cfd78f237a2026200b7240890d5759f5cdd96166cd2aec035dac82d32db155fe00d9ec6be482c655cfdb44265f9 diff --git a/dev-python/botocore/botocore-1.37.25.ebuild b/dev-python/botocore/botocore-1.37.25.ebuild new file mode 100644 index 0000000000000..9e1580d455818 --- /dev/null +++ b/dev-python/botocore/botocore-1.37.25.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-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 distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + =dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} From 71789c99d81a88ac469612417d45fc82ebe75f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:16:04 +0200 Subject: [PATCH 30/31] dev-python/boto3: Bump to 1.37.25 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/boto3/Manifest | 1 + dev-python/boto3/boto3-1.37.25.ebuild | 53 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 dev-python/boto3/boto3-1.37.25.ebuild diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index ade5e80f82d91..8745b2dcf09f6 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -6,4 +6,5 @@ DIST boto3-1.37.21.gh.tar.gz 918526 BLAKE2B eb7ed9411680d46c02050a6dda80dff93202 DIST boto3-1.37.22.gh.tar.gz 919362 BLAKE2B f36e850e4b7089325f32c41ef1d60373fbdfbf35d1d56b9236f8eae10e665474d5612c3567e58a28ef5f9164c31286b5cd86ecb9b545e34e63dd4a7119203f0e SHA512 829f7b6446746efc688828e5c6264b380f5e550b9bad85c4a572c56b4030766a049ace67f0d979f0afe1dca01cbbb9174d1e60fe9d24e8179a1c699d0ab42936 DIST boto3-1.37.23.gh.tar.gz 920294 BLAKE2B c1bfcb5dd8c883c122b530ac2756c77884d74a43caeaeaded4e7f26bf9fbe829c7b4d70968b19e2561b4ed495c8e05e141ae365fcff7fa10159ff0c04dcc1f3e SHA512 b2fb0b4730e32ec881e933eeb6e57ce5dcffe9cfe5f586a15e5a9abea5d3a515d5db0c66058af3c0c8c206472fdfef80b74b750bd024718078ec9a5a94b01e29 DIST boto3-1.37.24.gh.tar.gz 920927 BLAKE2B 420db6c337247d54992f094aecf0c1a08fd0c49c565d5b30d53d3111dc321828a09006734018f4487c633919bcf3d6ff1d073d1147c1498ba11ef7fba9f25dee SHA512 f4c6d8e8014f05b0fcc78d8d70940387f034de026674cc640ada7f2eaf001f072f96ce4231b65a123efcf8a4051bcdc3c1ab67b2e14551d3c225279a341b9ad4 +DIST boto3-1.37.25.gh.tar.gz 920853 BLAKE2B f1ef1df964b0fc8d1b3072d7c26c8737f52556745152b055940355f62ca578a2fa99110d9aaacaef6ca7173466953a4f9e9d4d1ea248cc896ac17cdde92b9fef SHA512 eda2476087dd106549ef51e83785def18bcee070c3cd03a7fca54b63d404c363aa9bf26b85760b9ac7dffc3ff51bbaf947d8e6f8e33ea5fc617a74059109e597 DIST boto3-1.37.9.gh.tar.gz 911836 BLAKE2B d190525b9c5e39b445042aba6d8e57da5e49165775901ceebe44b76fd2780ec85a2f5a8a08d3a9a5e451d42bbae19b679e565a7a9acc663258ea0b7909a9a798 SHA512 12cba48d5f2c158b372eaf4e44903e22ca963e5712c3c463fbfd20626a771efe30530852b6c9ab70132a26472ff1b4656095675a5de37524f6b489c25175f8fe diff --git a/dev-python/boto3/boto3-1.37.25.ebuild b/dev-python/boto3/boto3-1.37.25.ebuild new file mode 100644 index 0000000000000..b087a88814e88 --- /dev/null +++ b/dev-python/boto3/boto3-1.37.25.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-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 distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}] +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} From ba2c65e8b0cd8826bbe4ad8b6f2ac3c4d428468c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 2 Apr 2025 08:16:40 +0200 Subject: [PATCH 31/31] app-admin/awscli: Bump to 1.38.25 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- app-admin/awscli/Manifest | 1 + app-admin/awscli/awscli-1.38.25.ebuild | 93 ++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 app-admin/awscli/awscli-1.38.25.ebuild diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest index 166423f1b5c8d..fa7579c05bbd9 100644 --- a/app-admin/awscli/Manifest +++ b/app-admin/awscli/Manifest @@ -6,4 +6,5 @@ DIST aws-cli-1.38.21.gh.tar.gz 2943903 BLAKE2B d7b78e85e552c90321bb5f8ac3db4aee1 DIST aws-cli-1.38.22.gh.tar.gz 2944494 BLAKE2B 01ec94cc6b644a79396e532cd563851b5ecd65e7fe29ec4caad3f1383fc6fcf9798844e342fe16a74617c7e7c43db60c1c9e31ba4480ae7784d30c045edce782 SHA512 45a927a9b2cdf9c99229c3ded7d72dea28aff873336c7459a313d71d5f7a1d5f4c6c9b4ca457b66c8887b33a9e51a873fb41e60b94102c813fecf22359d6d6aa DIST aws-cli-1.38.23.gh.tar.gz 2945172 BLAKE2B e60a7465a8f03e73244eee0e8993f35cdfd4210aa16fa63ad2b5813420b0401fd7a8589da68f61c18f4c4a3aef198ac05b1e2d48ba51d0300135ea3b1d54d547 SHA512 c3bf38d2cc3e7b1f783ca9424f64bcb9c1757874d47bc7d44e98f9c42f4e1841749ec0d8a984b249215aefe1e2c44f55ff76708fb8ac630ce5bd8375a230197b DIST aws-cli-1.38.24.gh.tar.gz 2946279 BLAKE2B 96f6ad7a7c44a59b174edff0176c4d986598a49fa3606c2c5c77d1b3ccf5cf8d349155a2f8fb0c71ad10af0a5d1f5ad4f5ea042debb81ff11fd7bd60c232ced6 SHA512 145a81e957015c911fda29c419c6ebf6bd05ff3b1c9a1169bb73aa32f0557a05577bc5c8aca359a1beac1f9f98ecb91039660622e0b3613521ff771ba2ad27c6 +DIST aws-cli-1.38.25.gh.tar.gz 2946867 BLAKE2B 49cc1b731d3d35bbbb6d436beb96d30940934a7a53d126e15ac2c56f9b9c39896d720ca2fa866a887a91085c7d81d9bbc3edd7368aba3559918d4b21e4be0ee2 SHA512 3ad60d3b33d8da118d92895bf114da00e150ac3cc526397ac9101c5fff409319ddf40fea3f4820ee2159b6bd83e940784245439b7bb845939569551c9e8c2b38 DIST aws-cli-1.38.9.gh.tar.gz 2921470 BLAKE2B fb6b616095702417335be03a763a4434759c79fa1a31ec7c8c84cb59567461167b0b3c5b80baa950cd0b7298985b298c825f669b82d33ef5bd35adefe947729c SHA512 23fd65c3a0b0c8bb0cd64d52db924cddc8663671c0d80e45c9af1afb2c8558e42eed7a88d3fba2351fa1cf2d0dda1ca1b51a3baaba04b5249bd5d1551059b100 diff --git a/app-admin/awscli/awscli-1.38.25.ebuild b/app-admin/awscli/awscli-1.38.25.ebuild new file mode 100644 index 0000000000000..88651d723a583 --- /dev/null +++ b/app-admin/awscli/awscli-1.38.25.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-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 distutils-r1 shell-completion + +MY_P=aws-cli-${PV} +DESCRIPTION="Universal Command Line Environment for AWS" +HOMEPAGE=" + https://github.com/aws/aws-cli/ + https://pypi.org/project/awscli/ +" +SRC_URI=" + https://github.com/aws/aws-cli/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + +# botocore is x.(y-1).z +BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) - 1)).$(ver_cut 3-)" +RDEPEND=" + >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/rsa[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + !app-admin/awscli-bin +" +BDEPEND=" + test? ( + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pytest-forked[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + # strip overzealous upper bounds on requirements + sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die + distutils-r1_src_prepare +} + +python_test() { + local serial_tests=( + tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success + tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success} + tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success + tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking + tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows + tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking + tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success + tests/unit/customizations/test_sessionmanager.py + tests/unit/test_compat.py::TestIgnoreUserSignals + tests/unit/test_help.py + tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored + ) + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + EPYTEST_XDIST= epytest "${serial_tests[@]}" + + local EPYTEST_DESELECT=( + "${serial_tests[@]}" + + # flaky (some ordering?) + tests/functional/s3/test_cp_command.py::TestCPCommand::test_multipart_upload_with_checksum_algorithm_crc32 + ) + # integration tests require AWS credentials and Internet access + epytest tests/{functional,unit} +} + +python_install_all() { + newbashcomp bin/aws_bash_completer aws + newzshcomp bin/aws_zsh_completer.sh _aws + + distutils-r1_python_install_all + + rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die +}