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 8BA9315800A for ; Sun, 20 Aug 2023 17:00:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B2C032BC013; Sun, 20 Aug 2023 17:00:19 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (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 96D362BC013 for ; Sun, 20 Aug 2023 17:00:19 +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) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A1A31341204 for ; Sun, 20 Aug 2023 17:00:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 0E1A9BF4 for ; Sun, 20 Aug 2023 17:00:17 +0000 (UTC) From: "Marek Szuba" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marek Szuba" Message-ID: <1692550238.85d4a5c8f4fc13d77a81e857447ef92a86e89097.marecki@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pyopencl/, dev-python/pyopencl/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/pyopencl/Manifest dev-python/pyopencl/files/pyopencl-2023.1.2_numpy-include-dir.patch dev-python/pyopencl/pyopencl-2023.1.2.ebuild X-VCS-Directories: dev-python/pyopencl/files/ dev-python/pyopencl/ X-VCS-Committer: marecki X-VCS-Committer-Name: Marek Szuba X-VCS-Revision: 85d4a5c8f4fc13d77a81e857447ef92a86e89097 X-VCS-Branch: master Date: Sun, 20 Aug 2023 17:00:17 +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: 04216664-74e3-48f1-a033-64cd9990dcfb X-Archives-Hash: 308b4e5468517466121a54ff4f179e90 commit: 85d4a5c8f4fc13d77a81e857447ef92a86e89097 Author: Marek Szuba gentoo org> AuthorDate: Sun Aug 20 16:50:34 2023 +0000 Commit: Marek Szuba gentoo org> CommitDate: Sun Aug 20 16:50:38 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85d4a5c8 dev-python/pyopencl: add 2023.1.2 Now with py3.12 support thanks to a patch which uses the canonical NumPy way of getting the location of its header files instead of messing with imp.find_module(). Upstream said in the relevant file they did it that way because importing numpy "screws up distutils", however either this is no longer the case with the current versions of everything involved or PEP-517 installation is not affected. Signed-off-by: Marek Szuba gentoo.org> dev-python/pyopencl/Manifest | 1 + .../pyopencl-2023.1.2_numpy-include-dir.patch | 16 +++++ dev-python/pyopencl/pyopencl-2023.1.2.ebuild | 76 ++++++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/dev-python/pyopencl/Manifest b/dev-python/pyopencl/Manifest index 581263015123..02b743defb6b 100644 --- a/dev-python/pyopencl/Manifest +++ b/dev-python/pyopencl/Manifest @@ -1 +1,2 @@ DIST pyopencl-2023.1.1.tar.gz 472723 BLAKE2B 4960db0b9096ef624f0459f6711a6d1fc4561599f96c3b01c5efe3c183c8cc4284b63038b2a5e98d43c194a8e5ce3331886f675c0bc5f44073bc353675400985 SHA512 50c23132028bb2c35816b6c83c054eaf929d333fbb172230e0d696a5e6103ad6ee6ccbbbd0b5d3d2d3c5f02505340a885422097eccecb1bf51845658c7938c8f +DIST pyopencl-2023.1.2.tar.gz 473684 BLAKE2B 3912885395df515f3e935149c0bac618c371b75791ac670d1a2cd25ffe5e3ff1c4d0e82d8a475e26d3280aaa659d900ed7df66b3f6952f54266d3cd2ad3b44c2 SHA512 3414b011f0bd0420df4725904b715d54bad0ae77cb4b8619d8d769cd25b56d44a8d34788c23de80b5da5ae757f38231db980f3abcb2544117b7be7627592bf0e diff --git a/dev-python/pyopencl/files/pyopencl-2023.1.2_numpy-include-dir.patch b/dev-python/pyopencl/files/pyopencl-2023.1.2_numpy-include-dir.patch new file mode 100644 index 000000000000..7a5ce5f52bdc --- /dev/null +++ b/dev-python/pyopencl/files/pyopencl-2023.1.2_numpy-include-dir.patch @@ -0,0 +1,16 @@ +--- a/aksetup_helper.py ++++ b/aksetup_helper.py +@@ -43,11 +43,8 @@ + + + def get_numpy_incpath(): +- from imp import find_module +- # avoid actually importing numpy, it screws up distutils +- file, pathname, descr = find_module("numpy") +- from os.path import join +- return join(pathname, "core", "include") ++ import numpy as np ++ return np.get_include() + + + class NumpyExtension(Extension): diff --git a/dev-python/pyopencl/pyopencl-2023.1.2.ebuild b/dev-python/pyopencl/pyopencl-2023.1.2.ebuild new file mode 100644 index 000000000000..b25bb0a7ec5d --- /dev/null +++ b/dev-python/pyopencl/pyopencl-2023.1.2.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 multiprocessing pypi + +DESCRIPTION="Python wrapper for OpenCL" +HOMEPAGE=" + https://mathema.tician.de/software/pyopencl/ + https://pypi.org/project/pyopencl/ +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc64 ~riscv" +IUSE="examples opengl" + +# Running tests on GPUs requires both appropriate hardware and additional permissions +# having been granted to the user running them. Testing on CPUs with dev-libs/pocl +# is in theory possible but has been found to be very fragile, see e.g. Bug #872308. +RESTRICT="test" + +COMMON=">=virtual/opencl-2" +# libglvnd is only needed for the headers +DEPEND="${COMMON} + opengl? ( media-libs/libglvnd )" +RDEPEND="${COMMON} + >=dev-python/mako-0.3.6[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}] + >=dev-python/pytools-2021.2.7[${PYTHON_USEDEP}]" +BDEPEND="dev-python/numpy[${PYTHON_USEDEP}] + >=dev-python/pybind11-2.5.0[${PYTHON_USEDEP}] + test? ( dev-libs/pocl )" + +PATCHES=( + "${FILESDIR}"/${PN}-2023.1.2_numpy-include-dir.patch +) + +distutils_enable_tests pytest + +python_configure_all() { + local myconf=() + if use opengl; then + myconf+=(--cl-enable-gl) + fi + + "${EPYTHON}" configure.py \ + "${myconf[@]}" +} + +python_test() { + # Use dev-libs/pocl for testing; ignore any other OpenCL devices that might be present + local -x PYOPENCL_TEST="portable:pthread" + # Set the number of threads to match MAKEOPTS + local -x POCL_MAX_PTHREAD_COUNT=$(makeopts_jobs) + # Change to the 'test' directory so that python does not try to import pyopencl from the source directory + # (Importing from the source directory fails, because the compiled '_cl' module is only in the build directory) + pushd test >/dev/null || die + epytest + popd >/dev/null || die +} + +python_install_all() { + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi + + distutils-r1_python_install_all +}