mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-05 12:16:41 +02:00
dev-python/cython: Sync with Gentoo
It's from Gentoo commit 8533cab5b68e924799c8ff54a825ad504ad359c6. Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
parent
4a78cb976e
commit
98fed0a2b1
@ -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
|
||||
|
||||
@ -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 '
|
||||
<dev-python/numpy-2[${PYTHON_USEDEP}]
|
||||
' "${PYTHON_TESTED[@]}")
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch"
|
||||
"${FILESDIR}/${PN}-0.29.23-test_exceptions-py310.patch"
|
||||
"${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_prepare_all() {
|
||||
# Needs dev-python/pip and doesn't like 'externally-managed' (bug #927995)
|
||||
rm tests/run/coverage_cmd_src_pkg_layout.srctree || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
# Python gets confused when it is in sys.path before build.
|
||||
local -x PYTHONPATH=
|
||||
|
||||
distutils-r1_python_compile
|
||||
}
|
||||
|
||||
python_test() {
|
||||
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
|
||||
"${PYTHON}" runtests.py \
|
||||
-vv \
|
||||
-j "$(makeopts_jobs)" \
|
||||
--work-dir "${BUILD_DIR}"/tests \
|
||||
--no-examples \
|
||||
--no-code-style \
|
||||
|| die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
|
||||
distutils-r1_python_install_all
|
||||
}
|
||||
@ -1,125 +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_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.22-spawn-multiprocessing.patch"
|
||||
"${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'
|
||||
)
|
||||
|
||||
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
|
||||
}
|
||||
@ -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 \
|
||||
@ -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)
|
||||
35
sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-3.1.2-odr.patch
vendored
Normal file
35
sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-3.1.2-odr.patch
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user