diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest index d4948a0948..204f84dc5f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest @@ -1,3 +1 @@ -DIST cython-3.0.12.tar.gz 2757617 BLAKE2B 064549e36e03424065eab081b60e2761d198490cfd4d7836ea236b833ada3962e6ed42ba1710b33418f8a31ac282cdc156ceb544ee21be80ee34b7a3d3f6c7fb SHA512 c4e85596eeea444fae983d32ce8731cc5d0d612d1f96b998db3aa7946e8be151a7ea62c6df163d875111e306c870656b82a8468dd873cacf84c7bd5671a39bc3 -DIST cython-3.1.1.tar.gz 3175446 BLAKE2B 4a75df724e313220321b05b7839bd406e5e923eb860337b7819c31152859396e5bda65a0a06ace196839bed729e28e51a1349c178e615ba58cf9bc80dc706b0d SHA512 5c64b5d280b234d93d02e91ab22567342350671c605df30a3ac7b41b64e0605eb0aef7bc721f68d35d6048085eaa392cb0a803df32ca902e51e2009c987d962e DIST cython-3.1.2.tar.gz 3184825 BLAKE2B 8be6016f3e9a5a7db71fd1cab65424db1a1cd8e9d0118f01432964eb816135021f77542aff2b1f0fd2af8f657f952ebce2f420d7610ae37c6c6956f94e54a636 SHA512 c674027dae58377ea71d8d8b15601e6e0c80435807603251e685608218805fef2e6eac4bbebd3c50c319cd7da660ff9ce1a6daeb673eb40ce70bbfe7f0069600 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.12-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.12-r1.ebuild deleted file mode 100644 index 99a15f0d03..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.12-r1.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# 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_TESTED=( python3_{10..12} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 pypy3_11 python3_13 ) -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" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - =3.13. - --exclude 'subinterpreters_threading_stress_test' - ) - - 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 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2-r1.ebuild similarity index 93% rename from sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2-r1.ebuild index 24a437ad5c..6145478e66 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2-r1.ebuild @@ -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 )" @@ -39,6 +39,8 @@ 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 \ diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-test_exceptions-py310.patch b/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-test_exceptions-py310.patch deleted file mode 100644 index 0c9fb2c9ea..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-test_exceptions-py310.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/tests/run/test_exceptions.pyx -+++ b/tests/run/test_exceptions.pyx -@@ -188,7 +188,10 @@ - - # should not apply to subclasses, see issue #31161 - s = '''if True:\nprint "No indent"''' -- ckmsg(s, "expected an indented block", IndentationError) -+ if sys.version_info >= (3, 10): -+ ckmsg(s, "expected an indented block after 'if' statement on line 1", IndentationError) -+ else: -+ ckmsg(s, "expected an indented block", IndentationError) - - s = '''if True:\n print()\n\texec "mixed tabs and spaces"''' - ckmsg(s, "inconsistent use of tabs and spaces in indentation", TabError) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-3.1.2-odr.patch b/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-3.1.2-odr.patch new file mode 100644 index 0000000000..f5dacc748d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-3.1.2-odr.patch @@ -0,0 +1,35 @@ +From 269dea7ac6f10566c3b1ea3850f6a45538e998ee Mon Sep 17 00:00:00 2001 +From: Ray Speth +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); + } +