From 091e17820f93696e7ccc40a5e99a6a649658952e Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 27 Mar 2023 07:22:08 +0000 Subject: [PATCH] dev-python/cython: Sync with Gentoo It's from Gentoo commit 7ab3a69ccc2bef6752e6b9c98c5ab58ac996295c. --- ..._beta1.ebuild => cython-0.29.33-r1.ebuild} | 12 +-- .../cython/cython-3.0.0_beta1-r2.ebuild | 74 +++++++++++++++++++ ...hon-0.29.23-pythran-parallel-install.patch | 20 +++++ 3 files changed, 98 insertions(+), 8 deletions(-) rename sdk_container/src/third_party/portage-stable/dev-python/cython/{cython-3.0.0_beta1.ebuild => cython-0.29.33-r1.ebuild} (89%) create mode 100644 sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1-r2.ebuild create mode 100644 sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-0.29.33-r1.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/cython/cython-0.29.33-r1.ebuild index 54bc5b850f..75535976ff 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-0.29.33-r1.ebuild @@ -9,7 +9,6 @@ PYTHON_REQ_USE="threads(+)" inherit distutils-r1 toolchain-funcs elisp-common -MY_P=${P/_beta/b} DESCRIPTION="A Python to C compiler" HOMEPAGE=" https://cython.org/ @@ -17,10 +16,9 @@ HOMEPAGE=" https://pypi.org/project/Cython/ " SRC_URI=" - https://github.com/cython/cython/archive/${PV/_beta/b}.tar.gz - -> ${MY_P}.gh.tar.gz + https://github.com/cython/cython/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz " -S=${WORKDIR}/${MY_P} LICENSE="Apache-2.0" SLOT="0" @@ -43,14 +41,12 @@ BDEPEND=" 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" ) SITEFILE=50cython-gentoo.el -distutils_enable_sphinx docs \ - dev-python/jinja \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs +distutils_enable_sphinx docs python_compile() { # Python gets confused when it is in sys.path before build. diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1-r2.ebuild new file mode 100644 index 0000000000..3765013cc2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.0_beta1-r2.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9..11} pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 toolchain-funcs elisp-common + +MY_P=${P/_beta/b} +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" +SRC_URI=" + https://github.com/cython/cython/archive/${PV/_beta/b}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' python3_{8..10}) + ) +" + +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/jinja \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs + +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}" pypy3 python3.11; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + tc-export CC + # https://github.com/cython/cython/issues/1911 + local -x CFLAGS="${CFLAGS} -fno-strict-overflow" + "${PYTHON}" runtests.py -vv --work-dir "${BUILD_DIR}"/tests || + 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/files/cython-0.29.23-pythran-parallel-install.patch b/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch new file mode 100644 index 0000000000..450007b566 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch @@ -0,0 +1,20 @@ +An empty directory in site-packages is a valid Python module, unfortunately, because +of namespaces. If installing packages in parallel, the pythran module might "exist" +but be empty (hence no __version__ attribute). Catch AttributeError to avoid a narrow +race. + +See https://bugs.gentoo.org/902713. + +This might still be a Portage issue if there's a substantial delay between creating +the directory and installing the remaining files though. +--- a/Cython/Compiler/Pythran.py ++++ b/Cython/Compiler/Pythran.py +@@ -10,7 +10,7 @@ try: + import pythran + pythran_is_pre_0_9 = tuple(map(int, pythran.__version__.split('.')[0:2])) < (0, 9) + pythran_is_pre_0_9_6 = tuple(map(int, pythran.__version__.split('.')[0:3])) < (0, 9, 6) +-except ImportError: ++except (AttributeError, ImportError): + pythran = None + pythran_is_pre_0_9 = True + pythran_is_pre_0_9_6 = True