dev-python/cython: Sync with Gentoo

It's from Gentoo commit 8eca40411ce61aff30e79599e1dad4e59cdac0f9.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2025-11-17 07:07:47 +00:00 committed by Krzesimir Nowak
parent 368eb89a86
commit 333c816822
6 changed files with 133 additions and 70 deletions

View File

@ -1,5 +1,6 @@
DIST cython-3.1.2.tar.gz 3184825 BLAKE2B 8be6016f3e9a5a7db71fd1cab65424db1a1cd8e9d0118f01432964eb816135021f77542aff2b1f0fd2af8f657f952ebce2f420d7610ae37c6c6956f94e54a636 SHA512 c674027dae58377ea71d8d8b15601e6e0c80435807603251e685608218805fef2e6eac4bbebd3c50c319cd7da660ff9ce1a6daeb673eb40ce70bbfe7f0069600
DIST cython-3.1.3.tar.gz 3186689 BLAKE2B 520adbaf737b2625a5b6d5802484d84dccf12867ec4c6d379816b84c4413e9a766ee3c21f0ce4209f7961b19346f5e874ab09ed7bf9dc9a259afb8e65ae2359e SHA512 dbf14b486e9dc3cf978abd80f0fcc16d9ed8077d5a44c66b669291d6cc89beeae3e901e4975cee44208dcf52f11ba331a8d73587bf55891976a9ec4818a2470b
DIST cython-3.1.4.tar.gz 3190778 BLAKE2B 7e554db21ba009dc70157ad03b414091f9bba15586c5fa842b23cc28c116dc153857e99c9981dd0f783f696b6afa3b2689424231b88ae89bcf9233fa8006b9c9 SHA512 dd524d7de59f949a8bac1cb944a7a2b4eb26b13107db4fd6f9af000d5af18dd08ac5768253721e3513f5b4c1593fdd8cf055f4ffc17d541b2b90ca461522e8f1
DIST cython-3.1.5.tar.gz 3192050 BLAKE2B c076c14685cc0d01d3f70dd35c8dd6c8c6c285f0a7cd575b4b20d6b4ce941e8cc70e1859b4185e0bc485c6963e74e5b33fe9030ec9feb881cc8692434f497ae8 SHA512 cff0cebd3b72b47f92a0bb8f77e564655a966ee58442b7fe76db2263b8b0d5b3636bfb0a561b1f27fd10cfd113e52388b32971bea66f4d2cb6dbf8580465b873
DIST cython-3.1.6.tar.gz 3192329 BLAKE2B 78ea2c33ce38441574c0566b2c093ed91c01b523812484a8da5f426c46d64d0e4c67c2b3e1bf8122c399a9c18372fe93ff63d20fcc2907e0a84c79fd1107d79d SHA512 29950bcb02b2000ffd278a881d91e9c99f554375238a1ea1e7866d6fff120233bca8d7a7c05de93136fddacdb4c071652de8c3b63b6c312dff43435193fe7b89
DIST cython-3.1.7.tar.gz 3192740 BLAKE2B ed0d15e387389de3e2b35d03326032a0ca112b24b0245ed764e5acbedcc0df07f50561ef18715679bf29fd2da6a288621033722741b2fc25809b43964e856786 SHA512 0d1ab6b0d53168588ea03116a5a2f4106f87266bca0fc46ec9ebc7c881da7ee2a83d9d7d841b551add73aedab7b2ca94419e87f6a387b1ab7ba850030a981fb1
DIST cython-3.2.0.tar.gz 3267264 BLAKE2B 86aa3698f28c0859d0a846025698d4739deebdbabbf0f6bd9134b4a01fce3fce4b87b1db726c2ab490b0a41091185183f41a67424dfd555067167a4b257c6aa7 SHA512 902f8389792bfa7937f5e1c024a537561e7e0367d1e6e6eefa84ebc25e961968e95bda5095b1cf2b26e994b4b14c0a039b97df80066620c166368a3f0ebd7f4b
DIST cython-3.2.1.tar.gz 3270455 BLAKE2B 10eb8e6e027b3cc594c997efed4e98ded445f666c44ff7d9d027ae32bead6826df22508bbc78241684e7dcdcbe178a70b5d909c5ab541b5c49660f961f2abe26 SHA512 b6f64b2c32c355a9c5a3586fdea768ad1924cb4b421d4395d443dadc1cf06e2fe4f3f85d237789eb0a68c9857750cbefefb022475ed7f3d8787551bea3d2fb7d

View File

@ -21,7 +21,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test test-full"
RESTRICT="!test? ( test )"
@ -37,7 +37,6 @@ BDEPEND="
"
PATCHES=(
"${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch"
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
)

View File

@ -21,7 +21,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test test-full"
RESTRICT="!test? ( test )"
@ -37,10 +37,7 @@ BDEPEND="
"
PATCHES=(
"${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch"
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
# https://github.com/cython/cython/pull/6957
"${FILESDIR}/${P}-odr.patch"
)
distutils_enable_sphinx docs \

View File

@ -0,0 +1,128 @@
# 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_FULLY_TESTED=( python3_{11..14} )
PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t )
PYTHON_REQ_USE="threads(+)"
inherit distutils-r1 multiprocessing pypi toolchain-funcs
DESCRIPTION="A Python to C compiler"
HOMEPAGE="
https://cython.org/
https://github.com/cython/cython/
https://pypi.org/project/Cython/
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test test-full"
RESTRICT="!test? ( test )"
BDEPEND="
${RDEPEND}
test? (
test-full? (
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
' "${PYTHON_FULLY_TESTED[@]}")
)
)
"
PATCHES=(
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
)
distutils_enable_sphinx docs \
dev-python/jinja2 \
dev-python/sphinx-issues \
dev-python/sphinx-tabs
python_compile() {
# Python gets confused when it is in sys.path before build.
local -x PYTHONPATH=
if use elibc_musl ; then
# Workaround for bug #925318
local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152"
fi
distutils-r1_python_compile
}
python_test() {
# PYTHON_TESTED controls whether we expect the testsuite to
# pass at all, while PYTHON_FULLY_TESTED allows skipping before
# numpy is ported (and possibly other deps in future).
if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
einfo "Skipping tests on ${EPYTHON} (xfail)"
return
fi
# Needed to avoid confusing cache tests
unset CYTHON_FORCE_REGEN
tc-export CC
local testargs=(
-vv
-j "$(makeopts_jobs)"
--work-dir "${BUILD_DIR}"/tests
--no-examples
--no-code-style
# Fails to find embedded.c
--exclude 'embedded'
# coverage_installed_pkg needs dev-python/pip and doesn't like
# 'externally-managed' (bug #927995), but we don't really
# want automagic test dependencies at all, so just skip
# unimportant-for-us coverage tests entirely.
--exclude 'run.coverage*'
--exclude 'Cython.Coverage'
# Automagic on dev-python/python-tests, could add this in future
--exclude 'run.test_exceptions'
# TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport)
# This only shows up as a failure with >=3.13.
--exclude 'subinterpreters_threading_stress_test'
# The fix for https://github.com/cython/cython/issues/6938
# changes these tests s.t. they break with our build layout.
--exclude 'build.depfile*'
)
if [[ ${EPYTHON} == pypy3* ]] ; then
testargs+=(
# Recursion issue
--exclude 'run.if_else_expr'
--exclude 'run.test_patma*'
# Slight output difference (missing '<')
--exclude 'run.cpp_exception_ptr_just_handler'
)
fi
# Keep test-full for numpy as it's large and doesn't pass tests itself
# on niche arches.
if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then
testargs+=(
--exclude 'run.numpy*'
--exclude 'run.ufunc'
--exclude 'numpy*'
)
fi
"${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}"
}
python_install_all() {
local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
distutils-r1_python_install_all
}

View File

@ -1,27 +0,0 @@
Needed to prevent a loop while calling cythonize on macOS - or any platform
defaulting to the 'spawn' method, as Python 3.8 does on Darwin.
https://github.com/cython/cython/pull/3263
[Rebased on 0.29.22]
From 15ae78bb74a856836dd64828326f4f0812d36520 Mon Sep 17 00:00:00 2001
From: Marcel Bargull <marcel.bargull@udo.edu>
Date: Fri, 6 Dec 2019 18:21:19 +0100
Subject: [PATCH] Disable parallel cythonization for "spawn" start method.
---
--- a/Cython/Build/Dependencies.py
+++ b/Cython/Build/Dependencies.py
@@ -1071,6 +1071,11 @@ def cythonize(module_list, exclude=None, nthreads=0, aliases=None, quiet=False,
if N <= 1:
nthreads = 0
+ if nthreads:
+ import multiprocessing
+ if multiprocessing.get_start_method() == 'spawn':
+ print('Disabling parallel cythonization for "spawn" process start method.')
+ nthreads = 0
if nthreads:
# Requires multiprocessing (or Python >= 2.6)
try:

View File

@ -1,35 +0,0 @@
From 269dea7ac6f10566c3b1ea3850f6a45538e998ee Mon Sep 17 00:00:00 2001
From: Ray Speth <yarmond@gmail.com>
Date: Tue, 10 Jun 2025 03:09:03 -0400
Subject: [PATCH] Mark utility function static to avoid ODR violations (#6957)
PR #6882 introduces a new method `__pyx_CommonTypesMetaclass_get_module`
in `CommonStructures.c`. Unlike other functions in this file, it is not
marked `static`, which causes one-definition-rule violations when trying
to compile multiple `.pyx` files into a single extension module.
For context, this module structure is used in
[Cantera](https://github.com/Cantera/cantera). We build the combined
module
[here](https://github.com/Cantera/cantera/blob/b308592776130d82eaac4949283fc87c031cdc97/interfaces/cython/SConscript#L46-L81),
and then use a custom "finder" to load the submodules as defined
[here](https://github.com/Cantera/cantera/blob/main/interfaces/cython/cantera/_cantera.pyx).
Marking this function `static` restores the previous capability.
---
Cython/Utility/CommonStructures.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cython/Utility/CommonStructures.c b/Cython/Utility/CommonStructures.c
index 94f7cc89066..3f1ce6d8408 100644
--- a/Cython/Utility/CommonStructures.c
+++ b/Cython/Utility/CommonStructures.c
@@ -161,7 +161,7 @@ static int __pyx_CommonTypesMetaclass_init(PyObject *module); /* proto */
//@requires: FetchCommonType
//@substitute: naming
-PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
+static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
}