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>

Reply via email to