public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Marek Szuba" <marecki@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pyopencl/, dev-python/pyopencl/files/
Date: Sun, 20 Aug 2023 17:00:17 +0000 (UTC)	[thread overview]
Message-ID: <1692550238.85d4a5c8f4fc13d77a81e857447ef92a86e89097.marecki@gentoo> (raw)

commit:     85d4a5c8f4fc13d77a81e857447ef92a86e89097
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 20 16:50:34 2023 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> 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 <marecki <AT> 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
+}


             reply	other threads:[~2023-08-20 17:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-20 17:00 Marek Szuba [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-11-25 10:35 [gentoo-commits] repo/gentoo:master commit in: dev-python/pyopencl/, dev-python/pyopencl/files/ Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1692550238.85d4a5c8f4fc13d77a81e857447ef92a86e89097.marecki@gentoo \
    --to=marecki@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox