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: Fri, 02 Sep 2016 07:38:27
Message-Id: 1472801831.cd119cad371b2ddd61a50479eacf83e9f7f6efce.marecki@gentoo
1 commit: cd119cad371b2ddd61a50479eacf83e9f7f6efce
2 Author: Marek Szuba <marecki <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 1 09:14:49 2016 +0000
4 Commit: Marek Szuba <marecki <AT> gentoo <DOT> org>
5 CommitDate: Fri Sep 2 07:37:11 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd119cad
7
8 dev-libs/beignet: new package.
9
10 An OpenCL implementation for Intel GPUs.
11
12 Multilib-aware, tested with on amd64 with ABI_X86="32 64". Builds with both
13 stable versions of sys-devel/llvm currently in Portage (3.5.0 and 3.7.1-r3).
14
15 Tests provided by upstream are not run because they require permissions
16 to access the GPU which the Portage user does not have.
17
18 Gentoo-Bug: 545924
19 Package-Manager: portage-2.3.0
20
21 dev-libs/beignet/Manifest | 1 +
22 dev-libs/beignet/beignet-1.1.2.ebuild | 96 ++++++++++++++++++++++
23 .../beignet/files/llvm-empty-system-libs.patch | 11 +++
24 dev-libs/beignet/files/llvm-terminfo.patch | 20 +++++
25 dev-libs/beignet/files/no-debian-multiarch.patch | 39 +++++++++
26 dev-libs/beignet/files/no-hardcoded-cflags.patch | 13 +++
27 dev-libs/beignet/metadata.xml | 8 ++
28 7 files changed, 188 insertions(+)
29
30 diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest
31 new file mode 100644
32 index 00000000..b8b6ac7
33 --- /dev/null
34 +++ b/dev-libs/beignet/Manifest
35 @@ -0,0 +1 @@
36 +DIST beignet-1.1.2.tar.gz 948241 SHA256 6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96 SHA512 25b7118976c385ad3b9db01afd3c9494ff9d050d44ee4266042abb4215747d8bb5086c06697f754956f562ea2b6e5ec51d51bbd651e8cd7cd0eb14eb8c83fbd4 WHIRLPOOL c3bfb7f4fa3c97bbd202ace868a08dce48753cac547b075e4c30cfff21cffcc5520ef4ef77b4e15fa8574a798f41a920e44503a160a1888e9ee4f2a737b37e82
37
38 diff --git a/dev-libs/beignet/beignet-1.1.2.ebuild b/dev-libs/beignet/beignet-1.1.2.ebuild
39 new file mode 100644
40 index 00000000..2591bc8
41 --- /dev/null
42 +++ b/dev-libs/beignet/beignet-1.1.2.ebuild
43 @@ -0,0 +1,96 @@
44 +# Copyright 1999-2016 Gentoo Foundation
45 +# Distributed under the terms of the GNU General Public License v2
46 +# $Id$
47 +
48 +EAPI=6
49 +
50 +PYTHON_COMPAT=( python2_7 )
51 +CMAKE_BUILD_TYPE="Release"
52 +
53 +inherit python-any-r1 cmake-multilib
54 +
55 +DESCRIPTION="OpenCL implementation for Intel GPUs"
56 +HOMEPAGE="https://01.org/beignet"
57 +
58 +LICENSE="LGPL-2.1+"
59 +SLOT="0"
60 +
61 +if [[ "${PV}" == "9999" ]]; then
62 + inherit git-r3
63 + EGIT_REPO_URI="git://anongit.freedesktop.org/beignet"
64 + KEYWORDS=""
65 +else
66 + KEYWORDS="~amd64"
67 + SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz -> ${P}.tar.gz"
68 + S=${WORKDIR}/Beignet-${PV}-Source
69 +fi
70 +
71 +COMMON="${PYTHON_DEPS}
72 + media-libs/mesa
73 + sys-devel/clang
74 + >=sys-devel/llvm-3.5
75 + x11-libs/libdrm[video_cards_intel]
76 + x11-libs/libXext
77 + x11-libs/libXfixes"
78 +RDEPEND="${COMMON}
79 + app-eselect/eselect-opencl"
80 +DEPEND="${COMMON}
81 + virtual/pkgconfig"
82 +
83 +PATCHES=(
84 + "${FILESDIR}"/no-debian-multiarch.patch
85 + "${FILESDIR}"/no-hardcoded-cflags.patch
86 + "${FILESDIR}"/llvm-terminfo.patch
87 + "${FILESDIR}"/llvm-empty-system-libs.patch
88 +)
89 +
90 +DOCS=(
91 + docs/.
92 +)
93 +
94 +pkg_pretend() {
95 + if [[ ${MERGE_TYPE} != "binary" ]]; then
96 + if [[ $(tc-getCC) == *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 + cmake-utils_src_prepare
111 + # We cannot run tests because they require permissions to access
112 + # the hardware, and building them is very time-consuming.
113 + cmake_comment_add_subdirectory utests
114 +}
115 +
116 +multilib_src_configure() {
117 + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
118 +
119 + local mycmakeargs=(
120 + -DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}"
121 + )
122 +
123 + cmake-utils_src_configure
124 +}
125 +
126 +multilib_src_install() {
127 + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
128 +
129 + cmake-utils_src_install
130 +
131 + insinto /etc/OpenCL/vendors/
132 + echo "${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd"
133 + doins "${PN}-${ABI}.icd"
134 +
135 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1
136 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so
137 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1
138 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so
139 +}
140
141 diff --git a/dev-libs/beignet/files/llvm-empty-system-libs.patch b/dev-libs/beignet/files/llvm-empty-system-libs.patch
142 new file mode 100644
143 index 00000000..d5e0cd7
144 --- /dev/null
145 +++ b/dev-libs/beignet/files/llvm-empty-system-libs.patch
146 @@ -0,0 +1,11 @@
147 +--- a/CMake/FindLLVM.cmake 2015-12-18 06:39:59.000000000 +0000
148 ++++ b/CMake/FindLLVM.cmake 2016-08-31 15:05:11.210679204 +0000
149 +@@ -99,7 +99,7 @@
150 + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_ORIG
151 + OUTPUT_STRIP_TRAILING_WHITESPACE
152 + )
153 +-string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS ${LLVM_SYSTEM_LIBS_ORIG})
154 ++string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_ORIG}")
155 + endif (LLVM_VERSION_NODOT VERSION_GREATER 34)
156 +
157 + macro(add_one_lib name)
158
159 diff --git a/dev-libs/beignet/files/llvm-terminfo.patch b/dev-libs/beignet/files/llvm-terminfo.patch
160 new file mode 100644
161 index 00000000..afbbc26
162 --- /dev/null
163 +++ b/dev-libs/beignet/files/llvm-terminfo.patch
164 @@ -0,0 +1,20 @@
165 +--- a/backend/src/CMakeLists.txt 2015-12-18 07:40:03.000000000 +0100
166 ++++ b/backend/src/CMakeLists.txt 2016-08-01 13:44:31.475875150 +0200
167 +@@ -153,7 +153,7 @@
168 +
169 + add_library(gbeinterp SHARED gbe_bin_interpreter.cpp)
170 +
171 +-if (LLVM_VERSION_NODOT VERSION_EQUAL 34)
172 ++if (NOT (LLVM_VERSION_NODOT LESS 34))
173 + find_library(TERMINFO NAMES tinfo ncurses)
174 + if (${TERMINFO} STREQUAL TERMINFO-NOTFOUND)
175 + message(FATAL_ERROR "no libtinfo or libncurses is found in system")
176 +@@ -161,7 +161,7 @@
177 + target_link_libraries(gbe ${TERMINFO})
178 + message(STATUS "use ${TERMINFO} as terminal control library")
179 + endif (${TERMINFO} STREQUAL TERMINFO-NOTFOUND)
180 +-endif(LLVM_VERSION_NODOT VERSION_EQUAL 34)
181 ++endif(NOT (LLVM_VERSION_NODOT LESS 34))
182 +
183 + link_directories (${LLVM_LIBRARY_DIR} ${DRM_LIBDIR})
184 +
185
186 diff --git a/dev-libs/beignet/files/no-debian-multiarch.patch b/dev-libs/beignet/files/no-debian-multiarch.patch
187 new file mode 100644
188 index 00000000..c9aef4d
189 --- /dev/null
190 +++ b/dev-libs/beignet/files/no-debian-multiarch.patch
191 @@ -0,0 +1,39 @@
192 +--- a/CMakeLists.txt 2015-04-17 04:27:51.000000000 +0200
193 ++++ b/CMakeLists.txt 2015-05-20 20:59:17.895041760 +0200
194 +@@ -39,14 +39,9 @@
195 +
196 + SET(CMAKE_VERBOSE_MAKEFILE "false")
197 + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")
198 +-INCLUDE (GNUInstallDirs OPTIONAL)
199 +-# support old CMake without GNUInstallDirs
200 +-if (NOT CMAKE_INSTALL_FULL_LIBDIR)
201 +- set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
202 +- set (BEIGNET_LIBRARY_ARCHITECTURE "")
203 +-else (NOT CMAKE_INSTALL_FULL_LIBDIR)
204 +- set (BEIGNET_LIBRARY_ARCHITECTURE "${CMAKE_LIBRARY_ARCHITECTURE}")
205 +-endif (NOT CMAKE_INSTALL_FULL_LIBDIR)
206 ++
207 ++set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
208 ++set (BEIGNET_LIBRARY_ARCHITECTURE "")
209 +
210 + if (NOT LIB_INSTALL_DIR)
211 + set (LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
212 +@@ -55,17 +50,7 @@
213 + set (BEIGNET_INSTALL_DIR "${LIB_INSTALL_DIR}/beignet/")
214 + endif (NOT BEIGNET_INSTALL_DIR)
215 +
216 +-# allow co-installation of 32- and 64-bit versions:
217 +-# https://wiki.debian.org/Multiarch
218 +-if (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
219 +- set (ICD_FILE_NAME "intel-beignet.icd")
220 +-else (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
221 +- if (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "")
222 +- set (ICD_FILE_NAME "intel-beignet.icd")
223 +- else (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "")
224 +- set (ICD_FILE_NAME "intel-beignet-${BEIGNET_LIBRARY_ARCHITECTURE}.icd")
225 +- endif (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "")
226 +-endif (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
227 ++set (ICD_FILE_NAME "intel-beignet.icd")
228 +
229 + # Force Release with debug info
230 + if (NOT CMAKE_BUILD_TYPE)
231
232 diff --git a/dev-libs/beignet/files/no-hardcoded-cflags.patch b/dev-libs/beignet/files/no-hardcoded-cflags.patch
233 new file mode 100644
234 index 00000000..3dd67b7
235 --- /dev/null
236 +++ b/dev-libs/beignet/files/no-hardcoded-cflags.patch
237 @@ -0,0 +1,13 @@
238 +--- a/CMakeLists.txt 2016-08-31 17:13:26.000000000 +0000
239 ++++ b/CMakeLists.txt 2016-08-31 17:00:40.000000000 +0000
240 +@@ -70,8 +70,8 @@
241 + elseif (COMPILER STREQUAL "ICC")
242 + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E")
243 + endif ()
244 +-set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof")
245 +-set (CMAKE_C_FLAGS "${CMAKE_C_CXX_FLAGS}")
246 ++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof")
247 ++set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
248 + set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1")
249 + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
250 + set (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0")
251
252 diff --git a/dev-libs/beignet/metadata.xml b/dev-libs/beignet/metadata.xml
253 new file mode 100644
254 index 00000000..3e5026e
255 --- /dev/null
256 +++ b/dev-libs/beignet/metadata.xml
257 @@ -0,0 +1,8 @@
258 +<?xml version="1.0" encoding="UTF-8"?>
259 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
260 +<pkgmetadata>
261 + <maintainer type="person">
262 + <email>marecki@g.o</email>
263 + <name>Marek Szuba</name>
264 + </maintainer>
265 +</pkgmetadata>