commit: b485ae43a8567e1879c5611452cdcc10c89dc277
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 11 22:56:44 2022 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sun Dec 11 22:56:44 2022 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=b485ae43
dev-python/dpctl: new package, add 0.14.0
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
dev-python/dpctl/dpctl-0.14.0.ebuild | 60 ++++++++++++++++
.../files/dpctl-0.14.0-dont-fetch-level-zero.patch | 82 ++++++++++++++++++++++
.../files/dpctl-0.14.0-dont-fetch-pybind.patch | 21 ++++++
.../dpctl/files/dpctl-0.14.0-find-opencl.patch | 13 ++++
.../dpctl/files/dpctl-0.14.0-include-tuple.patch | 47 +++++++++++++
dev-python/dpctl/metadata.xml | 12 ++++
6 files changed, 235 insertions(+)
diff --git a/dev-python/dpctl/dpctl-0.14.0.ebuild
b/dev-python/dpctl/dpctl-0.14.0.ebuild
new file mode 100644
index 000000000..ffb22d0cf
--- /dev/null
+++ b/dev-python/dpctl/dpctl-0.14.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+DESCRIPTION="Data Parallel Control "
+HOMEPAGE="https://github.com/IntelPython/dpctl"
+SRC_URI="https://github.com/IntelPython/dpctl/archive/refs/tags/${PV}.tar.gz
-> ${P}.gh.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/scikit-build[${PYTHON_USEDEP}]
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ dev-util/cmake
+ dev-vcs/git
+ sys-devel/DPC++
+"
+
+DEPEND="
+ dev-libs/level-zero
+ dev-libs/opencl-icd-loader
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ sci-libs/oneDAL
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-find-opencl.patch"
+ "${FILESDIR}/${P}-dont-fetch-level-zero.patch"
+ "${FILESDIR}/${P}-dont-fetch-pybind.patch"
+ "${FILESDIR}/${P}-include-tuple.patch"
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # DPC++ compiler required for full functionality
+ export CC="${ESYSROOT}/usr/lib/llvm/intel/bin/clang"
+ export CXX="${ESYSROOT}/usr/lib/llvm/intel/bin/clang++"
+ export DPCPPROOT="${ESYSROOT}/usr/lib/llvm/intel"
+
+ # Build system reads version from git tag
+ git init -q || die
+ git config --global user.email "[email protected]" || die
+ git config --global user.name "Larry the Cow" || die
+ git add . || die
+ git commit -qm "init" || die
+ git tag -a "${PV}" -m "${PN} version ${PV}" || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-level-zero.patch
b/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-level-zero.patch
new file mode 100644
index 000000000..ac0301886
--- /dev/null
+++ b/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-level-zero.patch
@@ -0,0 +1,82 @@
+diff --git a/libsyclinterface/cmake/modules/GetLevelZeroHeaders.cmake
b/libsyclinterface/cmake/modules/GetLevelZeroHeaders.cmake
+index 2929c33..731f054 100644
+--- a/libsyclinterface/cmake/modules/GetLevelZeroHeaders.cmake
++++ b/libsyclinterface/cmake/modules/GetLevelZeroHeaders.cmake
+@@ -26,76 +26,10 @@
+
+ function(get_level_zero_headers)
+
+- if(EXISTS level-zero)
+- # Update the checkout
+- execute_process(
+- COMMAND ${GIT_EXECUTABLE} fetch
+- RESULT_VARIABLE result
+- ERROR_VARIABLE error
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/level-zero
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- ERROR_STRIP_TRAILING_WHITESPACE
+- )
+-
+- if(NOT result EQUAL 0)
+- message(FATAL_ERROR
+- "Could not update Level Zero sources."
+- )
+- endif()
+- else()
+- # Clone the Level Zero git repo
+- execute_process(
+- COMMAND ${GIT_EXECUTABLE} clone
https://github.com/oneapi-src/level-zero.git
+- RESULT_VARIABLE result
+- ERROR_VARIABLE error
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- ERROR_STRIP_TRAILING_WHITESPACE
+- )
+-
+- if(NOT result EQUAL 0)
+- message(FATAL_ERROR
+- "Could not clone Level Zero sources from
github.com/oneapi-src/level-zero."
+- )
+- endif()
+- endif()
+-
+- # Use git describe to get latest tag name
+- execute_process(
+- COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
+- RESULT_VARIABLE result
+- OUTPUT_VARIABLE latest_tag
+- ERROR_VARIABLE error
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/level-zero
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- ERROR_STRIP_TRAILING_WHITESPACE
+- )
+-
+- if(NOT result EQUAL 0)
+- message(FATAL_ERROR
+- "Could not get the name for the latest release."
+- )
+- endif()
+-
+- # Use git describe to get latest tag name
+- execute_process(
+- COMMAND ${GIT_EXECUTABLE} checkout ${latest_tag}
+- RESULT_VARIABLE result
+- ERROR_VARIABLE error
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/level-zero
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- ERROR_STRIP_TRAILING_WHITESPACE
+- )
+-
+- if(NOT result EQUAL 0)
+- message(FATAL_ERROR
+- "Could not checkout the latest release."
+- )
+- endif()
+-
+ # Populate the path to the headers
+ find_path(LEVEL_ZERO_INCLUDE_DIR
+ NAMES zet_api.h
+- PATHS ${CMAKE_BINARY_DIR}/level-zero/include
++ PATHS /usr/include/level_zero
+ NO_DEFAULT_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_CMAKE_PATH
diff --git a/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-pybind.patch
b/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-pybind.patch
new file mode 100644
index 000000000..b2b8c5d81
--- /dev/null
+++ b/dev-python/dpctl/files/dpctl-0.14.0-dont-fetch-pybind.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index da138c1..ecab139 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,15 +28,7 @@ install(FILES ${_dpctl_capi_headers}
+ # Define CMAKE_INSTALL_xxx: LIBDIR, INCLUDEDIR
+ include(GNUInstallDirs)
+
+-# Fetch pybind11
+-include(FetchContent)
+-
+-FetchContent_Declare(
+- pybind11
+- URL https://github.com/pybind/pybind11/archive/refs/tags/v2.10.1.tar.gz
+- URL_HASH
SHA256=111014b516b625083bef701df7880f78c2243835abdb263065b6b59b960b6bad
+-)
+-FetchContent_MakeAvailable(pybind11)
++include(/usr/share/cmake/pybind11/pybind11Config.cmake)
+
+ add_subdirectory(dpctl)
+
diff --git a/dev-python/dpctl/files/dpctl-0.14.0-find-opencl.patch
b/dev-python/dpctl/files/dpctl-0.14.0-find-opencl.patch
new file mode 100644
index 000000000..3841816ee
--- /dev/null
+++ b/dev-python/dpctl/files/dpctl-0.14.0-find-opencl.patch
@@ -0,0 +1,13 @@
+diff --git a/libsyclinterface/cmake/modules/FindIntelSycl.cmake
b/libsyclinterface/cmake/modules/FindIntelSycl.cmake
+index 84e8946..ccc2591 100644
+--- a/libsyclinterface/cmake/modules/FindIntelSycl.cmake
++++ b/libsyclinterface/cmake/modules/FindIntelSycl.cmake
+@@ -134,7 +134,7 @@ if(${clangxx_result} MATCHES "0")
+ find_file(
+ IntelSycl_OPENCL_LIBRARY
+ NAMES "libOpenCL.so"
+- PATHS ${IntelSycl_LIBRARY_DIR}
++ PATHS /usr/lib64
+ )
+ endif()
+
diff --git a/dev-python/dpctl/files/dpctl-0.14.0-include-tuple.patch
b/dev-python/dpctl/files/dpctl-0.14.0-include-tuple.patch
new file mode 100644
index 000000000..44b950cb6
--- /dev/null
+++ b/dev-python/dpctl/files/dpctl-0.14.0-include-tuple.patch
@@ -0,0 +1,47 @@
+From d0d3e6f1a9ffbac91f24cc06abce6dcad6509a6b Mon Sep 17 00:00:00 2001
+From: Julien Jerphanion <[email protected]>
+Date: Tue, 6 Dec 2022 10:24:26 +0100
+Subject: [PATCH 1/2] MAINT Include tuple in 'utils/strided_iters.hpp'
+
+This include directive seems to have been forgotten and it is impossible
+for me to compile dpctl without it.
+---
+ dpctl/tensor/libtensor/include/utils/strided_iters.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
b/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
+index c24ed54941..595ad3f4a7 100644
+--- a/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
++++ b/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
+@@ -30,6 +30,7 @@
+ #include <array>
+ #include <numeric> // std::iota
+ #include <vector>
++#include <tuple>
+
+ /* An N-dimensional array can be stored in a single
+ * contiguous chunk of memory by contiguously laying
+
+From f75ccd8c8aeaae92f0cb03874f93be5e7a63a6a7 Mon Sep 17 00:00:00 2001
+From: Julien Jerphanion <[email protected]>
+Date: Tue, 6 Dec 2022 14:45:40 +0100
+Subject: [PATCH 2/2] Make clang-format happy
+
+---
+ dpctl/tensor/libtensor/include/utils/strided_iters.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
b/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
+index 595ad3f4a7..0abd7f4f2a 100644
+--- a/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
++++ b/dpctl/tensor/libtensor/include/utils/strided_iters.hpp
+@@ -29,8 +29,8 @@
+ #include <algorithm> // sort
+ #include <array>
+ #include <numeric> // std::iota
+-#include <vector>
+ #include <tuple>
++#include <vector>
+
+ /* An N-dimensional array can be stored in a single
+ * contiguous chunk of memory by contiguously laying
diff --git a/dev-python/dpctl/metadata.xml b/dev-python/dpctl/metadata.xml
new file mode 100644
index 000000000..06d339ee1
--- /dev/null
+++ b/dev-python/dpctl/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>[email protected]</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">IntelPython/dpctl</remote-id>
+ <remote-id type="pypi">dpctl</remote-id>
+ </upstream>
+</pkgmetadata>