Gentoo Archives: gentoo-commits

From: Marek Szuba <marecki@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/beignet/files/, dev-libs/beignet/
Date: Wed, 25 Jan 2017 14:52:01
Message-Id: 1485355867.40454aa7ee06f6f6bab999d9a23a29a3c2cce096.marecki@gentoo
1 commit: 40454aa7ee06f6f6bab999d9a23a29a3c2cce096
2 Author: Marek Szuba <marecki <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jan 25 14:50:30 2017 +0000
4 Commit: Marek Szuba <marecki <AT> gentoo <DOT> org>
5 CommitDate: Wed Jan 25 14:51:07 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40454aa7
7
8 dev-libs/beignet: bump to 1.3.0
9
10 Features optional OpenCL 2.0 support on Skylake and newer architectures (mostly
11 experimental, with large parts still simulated in software rather than
12 delegated to the GPU), moreover Python scripts executed at build time are now
13 python3-compatible.
14
15 Package-Manager: portage-2.3.0
16
17 dev-libs/beignet/Manifest | 1 +
18 dev-libs/beignet/beignet-1.3.0.ebuild | 105 +++++++++++++++++++++
19 .../beignet-1.3.0-ocl20_no_platform_check.patch | 21 +++++
20 .../beignet-1.3.0-oclicd_optional_gentoo.patch | 23 +++++
21 dev-libs/beignet/metadata.xml | 2 +
22 5 files changed, 152 insertions(+)
23
24 diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest
25 index a004d8b..5319fe6 100644
26 --- a/dev-libs/beignet/Manifest
27 +++ b/dev-libs/beignet/Manifest
28 @@ -1,3 +1,4 @@
29 DIST beignet-1.1.2-source.tar.gz 948241 SHA256 6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96 SHA512 25b7118976c385ad3b9db01afd3c9494ff9d050d44ee4266042abb4215747d8bb5086c06697f754956f562ea2b6e5ec51d51bbd651e8cd7cd0eb14eb8c83fbd4 WHIRLPOOL c3bfb7f4fa3c97bbd202ace868a08dce48753cac547b075e4c30cfff21cffcc5520ef4ef77b4e15fa8574a798f41a920e44503a160a1888e9ee4f2a737b37e82
30 DIST beignet-1.2.0-source.tar.gz 1076674 SHA256 fc7af19efb7596b04510d26c558a576eba3e95e1ef86fd6951213c6a4bf58bff SHA512 f6c0de7d6a301352125d53c843d8c4a9728526b06b215093424720e7c17eb99f8cfc4b70c61e035d5cb36ca7666c6e772fe0d7818d91421104fa1ed350d637f1 WHIRLPOOL 9ac0195b16ff0ed186dbc5e0bfb6ee3027d0426d7e2401238b69b934a010d365eb6941cd80e3650e600cbcac8d31f819e2adb67452394b07a903aad72c1e11d7
31 DIST beignet-1.2.1-source.tar.gz 1080590 SHA256 b74eb03534a12b86a896cdbd8209b072c8a38e7af456195793a498428a7ac81f SHA512 f0d0d0590be1624928d9ee1a0666f49d908eff1ee9c1a7a28c4e680523419e544f607899bcfdae7f4ce5d32d411739afb481c0c22383db4a7381ccc71326e7f2 WHIRLPOOL 74bb72220e865406100a232fd8755b37746acf3616adbc7c66389a7a7ef3d7ca959ea1234d167091161019c1c3fc0fb9b877fc70af695bd2d2bb232c83725322
32 +DIST beignet-1.3.0-source.tar.gz 1133643 SHA256 63d98b4fe8fba3dbc0299d29fef84560625e5ac51b16b8fed453021d4afb5cd5 SHA512 7eb3c8bca484462787a6b4d360059b63608305b171e33078f1b65dcbcbf6831bcca95e762af3f4f0b9c99449c7d607e63ea138149b9f3a854d7017df927aa7ee WHIRLPOOL cbaa92f67a5f53b3d3243dd08c9a680c734b732601667a40ba147023fa96c0b4f78794f76011ab172c66265ad4bf0eddd5b6b301fc0a67790dc3d30c23d7ec83
33
34 diff --git a/dev-libs/beignet/beignet-1.3.0.ebuild b/dev-libs/beignet/beignet-1.3.0.ebuild
35 new file mode 100644
36 index 00000000..e06da21
37 --- /dev/null
38 +++ b/dev-libs/beignet/beignet-1.3.0.ebuild
39 @@ -0,0 +1,105 @@
40 +# Copyright 1999-2017 Gentoo Foundation
41 +# Distributed under the terms of the GNU General Public License v2
42 +# $Id$
43 +
44 +EAPI=6
45 +
46 +PYTHON_COMPAT=( python{2_7,3_4,3_5} )
47 +CMAKE_BUILD_TYPE="Release"
48 +
49 +inherit python-any-r1 cmake-multilib flag-o-matic toolchain-funcs
50 +
51 +DESCRIPTION="OpenCL implementation for Intel GPUs"
52 +HOMEPAGE="https://01.org/beignet"
53 +
54 +LICENSE="LGPL-2.1+"
55 +SLOT="0"
56 +IUSE="ocl-icd ocl20"
57 +
58 +if [[ "${PV}" == "9999" ]]; then
59 + inherit git-r3
60 + EGIT_REPO_URI="git://anongit.freedesktop.org/beignet"
61 + KEYWORDS=""
62 +else
63 + KEYWORDS="~amd64"
64 + SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz"
65 + S=${WORKDIR}/Beignet-${PV}-Source
66 +fi
67 +
68 +COMMON="${PYTHON_DEPS}
69 + media-libs/mesa
70 + sys-devel/clang
71 + ocl20? ( >=sys-devel/llvm-3.9 >=sys-devel/llvm-3.6 )
72 + >=x11-libs/libdrm-2.4.70[video_cards_intel]
73 + x11-libs/libXext
74 + x11-libs/libXfixes"
75 +RDEPEND="${COMMON}
76 + app-eselect/eselect-opencl"
77 +DEPEND="${COMMON}
78 + ${PYTHON_DEPS}
79 + ocl-icd? ( dev-libs/ocl-icd )
80 + virtual/pkgconfig"
81 +
82 +PATCHES=(
83 + "${FILESDIR}"/no-debian-multiarch.patch
84 + "${FILESDIR}"/${P}-ocl20_no_platform_check.patch
85 + "${FILESDIR}"/${P}-oclicd_optional_gentoo.patch
86 + "${FILESDIR}"/${PN}-1.2.0_no-hardcoded-cflags.patch
87 + "${FILESDIR}"/llvm-terminfo.patch
88 +)
89 +
90 +DOCS=(
91 + docs/.
92 +)
93 +
94 +pkg_pretend() {
95 + if [[ ${MERGE_TYPE} != "binary" ]]; then
96 + if tc-is-gcc; then
97 + if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -lt 6 ]]; then
98 + eerror "Compilation with gcc older than 4.6 is not supported"
99 + die "Too old gcc found."
100 + fi
101 + fi
102 + fi
103 +}
104 +
105 +pkg_setup() {
106 + python_setup
107 +}
108 +
109 +src_prepare() {
110 + # See Bug #593968
111 + append-flags -fPIC
112 +
113 + cmake-utils_src_prepare
114 + # We cannot run tests because they require permissions to access
115 + # the hardware, and building them is very time-consuming.
116 + cmake_comment_add_subdirectory utests
117 +}
118 +
119 +multilib_src_configure() {
120 + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
121 +
122 + local mycmakeargs=(
123 + -DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}"
124 + -DOCLICD_COMPAT=$(usex ocl-icd)
125 + -DENABLE_OPENCL_20=$(usex ocl20)
126 + )
127 +
128 + cmake-utils_src_configure
129 +}
130 +
131 +multilib_src_install() {
132 + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
133 +
134 + cmake-utils_src_install
135 +
136 + insinto /etc/OpenCL/vendors/
137 + echo "${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" || die "Failed to generate ICD file"
138 + doins "${PN}-${ABI}.icd"
139 +
140 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1
141 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so
142 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1
143 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so
144 +}
145
146 diff --git a/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch b/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch
147 new file mode 100644
148 index 00000000..d7cd8ed
149 --- /dev/null
150 +++ b/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch
151 @@ -0,0 +1,21 @@
152 +--- a/CMakeLists.txt
153 ++++ b/CMakeLists.txt
154 +@@ -215,18 +215,6 @@
155 +
156 + OPTION(ENABLE_OPENCL_20 "Enable opencl 2.0 support" OFF)
157 + IF (ENABLE_OPENCL_20)
158 +- Find_Program(LSPCI lspci)
159 +- IF (NOT LSPCI)
160 +- MESSAGE(FATAL_ERROR "Looking for lspci - not found")
161 +- ENDIF (NOT LSPCI)
162 +- EXECUTE_PROCESS(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh"
163 +- RESULT_VARIABLE SUPPORT_OCL20_DEVICE
164 +- OUTPUT_VARIABLE PCI_ID_NOT_USED)
165 +-
166 +- IF (NOT SUPPORT_OCL20_DEVICE EQUAL 1)
167 +- MESSAGE(FATAL_ERROR "Only SKL and newer devices support OpenCL 2.0 now, your device don't support.")
168 +- ENDIF (NOT SUPPORT_OCL20_DEVICE EQUAL 1)
169 +-
170 + IF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN)
171 + MESSAGE(FATAL_ERROR "Please update libdrm to version 2.4.66 or later to enable OpenCL 2.0.")
172 + ENDIF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN)
173
174 diff --git a/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch b/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch
175 new file mode 100644
176 index 00000000..b51af16
177 --- /dev/null
178 +++ b/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch
179 @@ -0,0 +1,23 @@
180 +--- a/CMakeLists.txt
181 ++++ b/CMakeLists.txt
182 +@@ -197,17 +197,15 @@
183 + ENDIF(EGL_FOUND)
184 + ENDIF(ENABLE_GL_SHARING)
185 +
186 ++OPTION(OCLICD_COMPAT "OCL ICD compatibility mode" ON)
187 ++IF(OCLICD_COMPAT)
188 + Find_Package(OCLIcd)
189 + IF(OCLIcd_FOUND)
190 + MESSAGE(STATUS "Looking for OCL ICD header file - found")
191 +- configure_file (
192 +- "intel-beignet.icd.in"
193 +- "${ICD_FILE_NAME}"
194 +- )
195 +- install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${ICD_FILE_NAME} DESTINATION /etc/OpenCL/vendors)
196 + ELSE(OCLIcd_FOUND)
197 + MESSAGE(STATUS "Looking for OCL ICD header file - not found")
198 + ENDIF(OCLIcd_FOUND)
199 ++ENDIF(OCLICD_COMPAT)
200 +
201 + Find_Package(PythonInterp)
202 +
203
204 diff --git a/dev-libs/beignet/metadata.xml b/dev-libs/beignet/metadata.xml
205 index 27418e8..917f7f9 100644
206 --- a/dev-libs/beignet/metadata.xml
207 +++ b/dev-libs/beignet/metadata.xml
208 @@ -8,5 +8,7 @@
209 <use>
210 <flag name="ocl-icd">Enable compatibility with the
211 <pkg>dev-libs/ocl-icd</pkg> OpenCL ICD loader</flag>
212 + <flag name="ocl20">Enable experimental OpenCL 2.0 support on Skylake
213 + and newer architectures</flag>
214 </use>
215 </pkgmetadata>