From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6704C15864F for ; Fri, 24 Mar 2023 05:12:13 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7AAEBE0900; Fri, 24 Mar 2023 05:12:11 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 444FEE0900 for ; Fri, 24 Mar 2023 05:12:11 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4A6B1340CB1 for ; Fri, 24 Mar 2023 05:12:10 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 740D4927 for ; Fri, 24 Mar 2023 05:12:07 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1679634547.9e9a93ca1c92f22f4ad15ae2e814c81deb1145f8.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/cython/files/, dev-python/cython/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/cython/cython-0.29.33-r1.ebuild dev-python/cython/cython-3.0.0_beta1-r1.ebuild dev-python/cython/cython-3.0.0_beta1.ebuild dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch X-VCS-Directories: dev-python/cython/ dev-python/cython/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 9e9a93ca1c92f22f4ad15ae2e814c81deb1145f8 X-VCS-Branch: master Date: Fri, 24 Mar 2023 05:12:07 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 591fb71d-440e-498b-8d53-3ef1d3e16653 X-Archives-Hash: 8b03420dcaa9db1f95a72e2a691af81f commit: 9e9a93ca1c92f22f4ad15ae2e814c81deb1145f8 Author: Sam James gentoo org> AuthorDate: Fri Mar 24 05:03:59 2023 +0000 Commit: Sam James gentoo org> CommitDate: Fri Mar 24 05:09:07 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9e9a93ca dev-python/cython: workaround parallel install race for importing pythran 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. This might still be a Portage issue if there's a substantial delay between creating the directory and installing the remaining files though. Thanks to Eli Schwartz for helping out. Bug: https://bugs.gentoo.org/902713 Signed-off-by: Sam James gentoo.org> ...n-3.0.0_beta1.ebuild => cython-0.29.33-r1.ebuild} | 12 ++++-------- ...0.0_beta1.ebuild => cython-3.0.0_beta1-r1.ebuild} | 0 .../cython-0.29.23-pythran-parallel-install.patch | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/dev-python/cython/cython-3.0.0_beta1.ebuild b/dev-python/cython/cython-0.29.33-r1.ebuild similarity index 89% copy from dev-python/cython/cython-3.0.0_beta1.ebuild copy to dev-python/cython/cython-0.29.33-r1.ebuild index 54bc5b850f4d..75535976ff9b 100644 --- a/dev-python/cython/cython-3.0.0_beta1.ebuild +++ b/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/dev-python/cython/cython-3.0.0_beta1.ebuild b/dev-python/cython/cython-3.0.0_beta1-r1.ebuild similarity index 100% rename from dev-python/cython/cython-3.0.0_beta1.ebuild rename to dev-python/cython/cython-3.0.0_beta1-r1.ebuild diff --git a/dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch b/dev-python/cython/files/cython-0.29.23-pythran-parallel-install.patch new file mode 100644 index 000000000000..450007b5663f --- /dev/null +++ b/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