public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2011-06-30 23:48 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2011-06-30 23:48 UTC (permalink / raw
  To: gentoo-commits

commit:     ff7d0a3f799ff452ff51f8ad535c67b8fe862629
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 30 23:48:31 2011 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Thu Jun 30 23:48:31 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=ff7d0a3f

media-libs/mesa: adapt ebuild for configure changes, thanks to miknix in bug #372927. make i915g default.

---
 ...elect-mesa.conf.7.11 => eselect-mesa.conf.7.12} |    2 +-
 media-libs/mesa/mesa-9999.ebuild                   |   72 +++++++++++---------
 2 files changed, 41 insertions(+), 33 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.7.11 b/media-libs/mesa/files/eselect-mesa.conf.7.12
similarity index 97%
rename from media-libs/mesa/files/eselect-mesa.conf.7.11
rename to media-libs/mesa/files/eselect-mesa.conf.7.12
index 3a1b196..73b2752 100644
--- a/media-libs/mesa/files/eselect-mesa.conf.7.11
+++ b/media-libs/mesa/files/eselect-mesa.conf.7.12
@@ -16,7 +16,7 @@ declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not asso
 MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
 MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
 MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
-MESA_DRIVERS[i915,default]="classic"
+MESA_DRIVERS[i915,default]="gallium"
 
 MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
 MESA_DRIVERS[i965,classicdriver]="i965_dri.so"

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 670fdc4..fe3f798 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -45,7 +45,7 @@ for card in ${VIDEO_CARDS}; do
 done
 
 IUSE="${IUSE_VIDEO_CARDS}
-	bindist +classic d3d debug +egl +gallium gles +llvm motif +nptl openvg pic selinux shared-dricore wayland kernel_FreeBSD"
+	bindist +classic d3d debug +egl +gallium gles +llvm motif +nptl openvg pic selinux shared-dricore +shared-glapi wayland kernel_FreeBSD"
 
 LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.24"
 # not a runtime dependency of this package, but dependency of packages which
@@ -209,9 +209,11 @@ src_configure() {
 		$(use_enable gles gles2)
 		$(use_enable egl)
 		$(use_enable openvg)
-		$(use_enable gallium)
 	"
-	use egl && myconf+="--with-egl-platforms=$(use wayland && echo "wayland,")drm,x11"
+	if use egl; then
+		use shared-glapi || die "egl needs shared-glapi. Please either enable shared-glapi or disable the egl use flag ."
+		myconf+="--with-egl-platforms=$(use wayland && echo "wayland,")drm,x11"
+	fi
 
 	if use !gallium && use !classic; then
 		ewarn "You enabled neither classic nor gallium USE flags. No hardware"
@@ -221,36 +223,22 @@ src_configure() {
 		myconf+="
 			--with-state-trackers=glx,dri$(use egl && echo ",egl")$(use openvg && echo ",vega")$(use d3d && echo ",d3d1x")
 			$(use_enable llvm gallium-llvm)
-			$(use_enable video_cards_vmware gallium-svga)
-			$(use_enable video_cards_nouveau gallium-nouveau)
-			$(use_enable video_cards_intel gallium-i915)
-			$(use_enable video_cards_intel gallium-i965)
-			$(use_enable video_cards_radeon gallium-r300)
-			$(use_enable video_cards_radeon gallium-r600)
 		"
-		if use video_cards_i915 || \
-				use video_cards_intel; then
-			myconf+=" --enable-gallium-i915"
-		else
-			myconf+=" --disable-gallium-i915"
-		fi
-		if use video_cards_i965 || \
-				use video_cards_intel; then
-			myconf+=" --enable-gallium-i965"
-		else
-			myconf+=" --disable-gallium-i965"
-		fi
-		if use video_cards_r300 || \
-				use video_cards_radeon; then
-			myconf+=" --enable-gallium-r300"
-		else
-			myconf+=" --disable-gallium-r300"
+		gallium_enable swrast
+		gallium_enable video_cards_vmware svga
+		gallium_enable video_cards_nouveau nouveau
+		gallium_enable video_cards_i915 i915
+		gallium_enable video_cards_i965 i965
+		if ! use video_cards_i915 && \
+				! use video_cards_i965; then
+			gallium_enable video_cards_intel i915 i965
 		fi
-		if use video_cards_r600 || \
-				use video_cards_radeon; then
-			myconf+=" --enable-gallium-r600"
-		else
-			myconf+=" --disable-gallium-r600"
+
+		gallium_enable video_cards_r300 r300
+		gallium_enable video_cards_r600 r600
+		if ! use video_cards_r300 && \
+				! use video_cards_r600; then
+			gallium_enable video_cards_radeon r300 r600
 		fi
 	else
 		if use video_cards_nouveau || use video_cards_vmware; then
@@ -272,7 +260,9 @@ src_configure() {
 		$(use_enable nptl glx-tls) \
 		$(use_enable !pic asm) \
 		$(use_enable shared-dricore) \
+		$(use_enable shared-glapi) \
 		--with-dri-drivers=${DRI_DRIVERS} \
+		--with-gallium-drivers=${GALLIUM_DRIVERS} \
 		${myconf}
 }
 
@@ -296,7 +286,7 @@ src_install() {
 
 	# Install config file for eselect mesa
 	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.7.11" eselect-mesa.conf || die
+	newins "${FILESDIR}/eselect-mesa.conf.7.12" eselect-mesa.conf || die
 
 	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
 	# because user can eselect desired GL provider.
@@ -370,6 +360,7 @@ pkg_postinst() {
 
 # $1 - VIDEO_CARDS flag
 # other args - names of DRI drivers to enable
+# TODO: avoid code duplication for a more elegant implementation
 driver_enable() {
 	case $# in
 		# for enabling unconditionally
@@ -386,3 +377,20 @@ driver_enable() {
 			;;
 	esac
 }
+
+gallium_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			GALLIUM_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					GALLIUM_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2012-01-20 22:27 Matt Turner
  0 siblings, 0 replies; 17+ messages in thread
From: Matt Turner @ 2012-01-20 22:27 UTC (permalink / raw
  To: gentoo-commits

commit:     3e843e8ffd6a5387a3fc328a1f637a082916f5ed
Author:     Matt Turner <mattst88 <AT> gmail <DOT> com>
AuthorDate: Fri Jan 20 22:26:32 2012 +0000
Commit:     Matt Turner <mattst88 <AT> gmail <DOT> com>
CommitDate: Fri Jan 20 22:26:32 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=3e843e8f

media-libs/mesa: add mesa-8.0_rc1

---
 ...select-mesa.conf.7.12 => eselect-mesa.conf.8.0} |    0
 .../mesa/{mesa-9999.ebuild => mesa-8.0_rc1.ebuild} |    5 +++--
 media-libs/mesa/mesa-9999.ebuild                   |    2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.7.12 b/media-libs/mesa/files/eselect-mesa.conf.8.0
similarity index 100%
rename from media-libs/mesa/files/eselect-mesa.conf.7.12
rename to media-libs/mesa/files/eselect-mesa.conf.8.0

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-8.0_rc1.ebuild
similarity index 98%
copy from media-libs/mesa/mesa-9999.ebuild
copy to media-libs/mesa/mesa-8.0_rc1.ebuild
index 806eb32..91c0646 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-8.0_rc1.ebuild
@@ -156,7 +156,8 @@ src_prepare() {
 	fi
 
 	# fix for hardened pax_kernel, bug 240956
-	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
+	# FIXME: uncomment this when mesa-8.0 is moved to the main tree
+	#[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
 
 	# Solaris needs some recent POSIX stuff in our case
 	if [[ ${CHOST} == *-solaris* ]] ; then
@@ -267,7 +268,7 @@ src_install() {
 
 	# Install config file for eselect mesa
 	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.7.12" eselect-mesa.conf
+	newins "${FILESDIR}/eselect-mesa.conf.8.0" eselect-mesa.conf
 
 	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
 	# because user can eselect desired GL provider.

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 806eb32..eeb347b 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -267,7 +267,7 @@ src_install() {
 
 	# Install config file for eselect mesa
 	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.7.12" eselect-mesa.conf
+	newins "${FILESDIR}/eselect-mesa.conf.8.0" eselect-mesa.conf
 
 	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
 	# because user can eselect desired GL provider.



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2012-02-10 18:32 Matt Turner
  0 siblings, 0 replies; 17+ messages in thread
From: Matt Turner @ 2012-02-10 18:32 UTC (permalink / raw
  To: gentoo-commits

commit:     feb9ebc999f9a6256d7c1ee4938d284e104b43a9
Author:     Matt Turner <mattst88 <AT> gmail <DOT> com>
AuthorDate: Fri Feb 10 18:31:17 2012 +0000
Commit:     Matt Turner <mattst88 <AT> gmail <DOT> com>
CommitDate: Fri Feb 10 18:31:17 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=feb9ebc9

media-libs/mesa: relax r300's requirement of llvm, bug 380303

---
 .../mesa-8.0-dont-require-llvm-for-r300.patch      |   27 ++++++++++++++++++++
 .../mesa-9999-dont-require-llvm-for-r300.patch     |   27 ++++++++++++++++++++
 media-libs/mesa/mesa-8.0.ebuild                    |    7 ++---
 media-libs/mesa/mesa-9999.ebuild                   |    7 ++---
 4 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch
new file mode 100644
index 0000000..6a20914
--- /dev/null
+++ b/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch
@@ -0,0 +1,27 @@
+diff --git a/configure.ac b/configure.ac
+index 846b623..fbd05c1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1839,14 +1839,6 @@ gallium_check_st() {
+     fi
+ }
+ 
+-gallium_require_llvm() {
+-    if test "x$MESA_LLVM" = x0; then
+-        case "$host_cpu" in
+-        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
+-        esac
+-    fi
+-}
+-
+ dnl Gallium drivers
+ dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
+ if test "x$with_gallium_drivers" != x; then
+@@ -1868,7 +1860,6 @@ if test "x$with_gallium_drivers" != x; then
+             gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
+             ;;
+         xr300)
+-            gallium_require_llvm "Gallium R300"
+             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
+             ;;

diff --git a/media-libs/mesa/files/mesa-9999-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-9999-dont-require-llvm-for-r300.patch
new file mode 100644
index 0000000..b294083
--- /dev/null
+++ b/media-libs/mesa/files/mesa-9999-dont-require-llvm-for-r300.patch
@@ -0,0 +1,27 @@
+diff --git a/configure.ac b/configure.ac
+index 846b623..fbd05c1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1839,14 +1839,6 @@ gallium_check_st() {
+     fi
+ }
+ 
+-gallium_require_llvm() {
+-    if test "x$MESA_LLVM" = x0; then
+-        case "$host_cpu" in
+-        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
+-        esac
+-    fi
+-}
+-
+ dnl Gallium drivers
+ dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
+ if test "x$with_gallium_drivers" != x; then
+@@ -1868,7 +1860,6 @@ if test "x$with_gallium_drivers" != x; then
+             ;;
+         xr300)
+             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+-            gallium_require_llvm "Gallium R300"
+             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
+             ;;

diff --git a/media-libs/mesa/mesa-8.0.ebuild b/media-libs/mesa/mesa-8.0.ebuild
index 469c078..8c63cf4 100644
--- a/media-libs/mesa/mesa-8.0.ebuild
+++ b/media-libs/mesa/mesa-8.0.ebuild
@@ -55,10 +55,6 @@ REQUIRED_USE="
 	llvm?   ( gallium )
 	openvg? ( egl gallium )
 	gbm?    ( shared-glapi )
-	gallium? (
-		video_cards_r300?   ( x86? ( llvm ) amd64? ( llvm ) )
-		video_cards_radeon? ( x86? ( llvm ) amd64? ( llvm ) )
-	)
 	g3dvl? ( || ( vdpau xvmc ) )
 	vdpau? ( g3dvl )
 	xvmc?  ( g3dvl )
@@ -155,6 +151,9 @@ src_prepare() {
 		epatch
 	fi
 
+	# relax the requirement that r300 must have llvm, bug 380303
+	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
+
 	# fix for hardened pax_kernel, bug 240956
 	# FIXME: uncomment this when mesa-8.0 is moved to the main tree
 	#[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 1f868f5..fea2d84 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -56,10 +56,6 @@ REQUIRED_USE="
 	llvm?   ( gallium )
 	openvg? ( egl gallium )
 	gbm?    ( shared-glapi )
-	gallium? (
-		video_cards_r300?   ( x86? ( llvm ) amd64? ( llvm ) )
-		video_cards_radeon? ( x86? ( llvm ) amd64? ( llvm ) )
-	)
 	g3dvl? ( || ( vdpau xvmc ) )
 	vdpau? ( g3dvl )
 	xvmc?  ( g3dvl )
@@ -156,6 +152,9 @@ src_prepare() {
 		epatch
 	fi
 
+	# relax the requirement that r300 must have llvm, bug 380303
+	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
+
 	# fix for hardened pax_kernel, bug 240956
 	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
 



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2012-02-10 18:55 Matt Turner
  0 siblings, 0 replies; 17+ messages in thread
From: Matt Turner @ 2012-02-10 18:55 UTC (permalink / raw
  To: gentoo-commits

commit:     4c934d060d16f8ebcd1d1efc1941e2c7d7e01ca0
Author:     Matt Turner <mattst88 <AT> gmail <DOT> com>
AuthorDate: Fri Feb 10 18:55:04 2012 +0000
Commit:     Matt Turner <mattst88 <AT> gmail <DOT> com>
CommitDate: Fri Feb 10 18:55:04 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=4c934d06

media-libs/mesa: move 8.0 to the main tree

---
 .../mesa-8.0-dont-require-llvm-for-r300.patch      |   27 --
 media-libs/mesa/mesa-8.0.ebuild                    |  391 --------------------
 2 files changed, 0 insertions(+), 418 deletions(-)

diff --git a/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch
deleted file mode 100644
index 6a20914..0000000
--- a/media-libs/mesa/files/mesa-8.0-dont-require-llvm-for-r300.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 846b623..fbd05c1 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1839,14 +1839,6 @@ gallium_check_st() {
-     fi
- }
- 
--gallium_require_llvm() {
--    if test "x$MESA_LLVM" = x0; then
--        case "$host_cpu" in
--        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
--        esac
--    fi
--}
--
- dnl Gallium drivers
- dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
- if test "x$with_gallium_drivers" != x; then
-@@ -1868,7 +1860,6 @@ if test "x$with_gallium_drivers" != x; then
-             gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
-             ;;
-         xr300)
--            gallium_require_llvm "Gallium R300"
-             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
-             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
-             ;;

diff --git a/media-libs/mesa/mesa-8.0.ebuild b/media-libs/mesa/mesa-8.0.ebuild
deleted file mode 100644
index 8c63cf4..0000000
--- a/media-libs/mesa/mesa-8.0.ebuild
+++ /dev/null
@@ -1,391 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
-
-if [[ ${PV} = 9999* ]]; then
-	GIT_ECLASS="git-2"
-	EXPERIMENTAL="true"
-fi
-
-inherit base autotools multilib flag-o-matic toolchain-funcs ${GIT_ECLASS}
-
-OPENGL_DIR="xorg-x11"
-
-MY_PN="${PN/m/M}"
-MY_P="${MY_PN}-${PV/_/-}"
-MY_SRC_P="${MY_PN}Lib-${PV/_/-}"
-
-FOLDER="${PV/_rc*/}"
-
-DESCRIPTION="OpenGL-like graphic library for Linux"
-HOMEPAGE="http://mesa3d.sourceforge.net/"
-
-#SRC_PATCHES="mirror://gentoo/${P}-gentoo-patches-01.tar.bz2"
-if [[ $PV = 9999* ]]; then
-	SRC_URI="${SRC_PATCHES}"
-else
-	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
-		${SRC_PATCHES}"
-fi
-
-# Most of the code is MIT/X11.
-# ralloc is LGPL-3
-# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
-LICENSE="MIT LGPL-3 SGI-B-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
-
-INTEL_CARDS="i915 i965 intel"
-RADEON_CARDS="r100 r200 r300 r600 radeon"
-VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
-for card in ${VIDEO_CARDS}; do
-	IUSE_VIDEO_CARDS+=" video_cards_${card}"
-done
-
-IUSE="${IUSE_VIDEO_CARDS}
-	bindist +classic d3d debug +egl g3dvl +gallium gbm gles1 gles2 +llvm +nptl openvg osmesa pax_kernel pic selinux shared-dricore +shared-glapi vdpau wayland xvmc kernel_FreeBSD"
-
-REQUIRED_USE="
-	d3d?    ( gallium )
-	g3dvl?  ( gallium )
-	llvm?   ( gallium )
-	openvg? ( egl gallium )
-	gbm?    ( shared-glapi )
-	g3dvl? ( || ( vdpau xvmc ) )
-	vdpau? ( g3dvl )
-	xvmc?  ( g3dvl )
-	video_cards_intel?  ( || ( classic gallium ) )
-	video_cards_i915?   ( || ( classic gallium ) )
-	video_cards_i965?   ( classic )
-	video_cards_nouveau? ( || ( classic gallium ) )
-	video_cards_radeon? ( || ( classic gallium ) )
-	video_cards_r100?   ( classic )
-	video_cards_r200?   ( classic )
-	video_cards_r300?   ( gallium )
-	video_cards_r600?   ( gallium )
-	video_cards_vmware? ( gallium )
-"
-
-LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.31"
-# not a runtime dependency of this package, but dependency of packages which
-# depend on this package, bug #342393
-EXTERNAL_DEPEND="
-	>=x11-proto/dri2proto-2.6
-	>=x11-proto/glproto-1.4.15
-"
-# keep correct libdrm and dri2proto dep
-# keep blocks in rdepend for binpkg
-RDEPEND="${EXTERNAL_DEPEND}
-	!<x11-base/xorg-server-1.7
-	!<=x11-proto/xf86driproto-2.0.3
-	classic? ( app-admin/eselect-mesa )
-	gallium? ( app-admin/eselect-mesa )
-	>=app-admin/eselect-opengl-1.2.2
-	dev-libs/expat
-	gbm? ( sys-fs/udev )
-	>=x11-libs/libX11-1.3.99.901
-	x11-libs/libXdamage
-	x11-libs/libXext
-	x11-libs/libXxf86vm
-	>=x11-libs/libxcb-1.8
-	d3d? ( app-emulation/wine )
-	vdpau? ( >=x11-libs/libvdpau-0.4.1 )
-	wayland? ( dev-libs/wayland )
-	xvmc? ( x11-libs/libXvMC )
-	${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
-"
-for card in ${INTEL_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
-	"
-done
-
-for card in ${RADEON_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
-	"
-done
-
-DEPEND="${RDEPEND}
-	llvm? ( >=sys-devel/llvm-2.9 )
-	=dev-lang/python-2*
-	dev-libs/libxml2[python]
-	dev-util/pkgconfig
-	sys-devel/bison
-	sys-devel/flex
-	x11-misc/makedepend
-	>=x11-proto/xextproto-7.0.99.1
-	x11-proto/xf86driproto
-	x11-proto/xf86vidmodeproto
-"
-
-S="${WORKDIR}/${MY_P}"
-
-# It is slow without texrels, if someone wants slow
-# mesa without texrels +pic use is worth the shot
-QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-
-# Think about: ggi, fbcon, no-X configs
-
-pkg_setup() {
-	# workaround toc-issue wrt #386545
-	use ppc64 && append-flags -mminimal-toc
-}
-
-src_unpack() {
-	default
-	[[ $PV = 9999* ]] && git-2_src_unpack
-}
-
-src_prepare() {
-	# apply patches
-	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
-		EPATCH_FORCE="yes" \
-		EPATCH_SOURCE="${WORKDIR}/patches" \
-		EPATCH_SUFFIX="patch" \
-		epatch
-	fi
-
-	# relax the requirement that r300 must have llvm, bug 380303
-	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
-
-	# fix for hardened pax_kernel, bug 240956
-	# FIXME: uncomment this when mesa-8.0 is moved to the main tree
-	#[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
-
-	# Solaris needs some recent POSIX stuff in our case
-	if [[ ${CHOST} == *-solaris* ]] ; then
-		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
-	fi
-
-	base_src_prepare
-
-	eautoreconf
-}
-
-src_configure() {
-	local myconf
-
-	if use classic; then
-	# Configurable DRI drivers
-		driver_enable swrast
-
-	# Intel code
-		driver_enable video_cards_i915 i915
-		driver_enable video_cards_i965 i965
-			if ! use video_cards_i915 && \
-				! use video_cards_i965; then
-			driver_enable video_cards_intel i915 i965
-		fi
-
-		# Nouveau code
-		driver_enable video_cards_nouveau nouveau
-
-		# ATI code
-		driver_enable video_cards_r100 radeon
-		driver_enable video_cards_r200 r200
-		if ! use video_cards_r100 && \
-				! use video_cards_r200; then
-			driver_enable video_cards_radeon radeon r200
-		fi
-	fi
-
-	if use egl; then
-		myconf+="
-			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
-			$(use_enable gallium gallium-egl)
-		"
-	fi
-
-	if use gallium; then
-		myconf+="
-			$(use_enable d3d d3d1x)
-			$(use_enable g3dvl gallium-g3dvl)
-			$(use_enable llvm gallium-llvm)
-			$(use_enable openvg)
-			$(use_enable vdpau)
-			$(use_enable xvmc)
-		"
-		gallium_enable swrast
-		gallium_enable video_cards_vmware svga
-		gallium_enable video_cards_nouveau nouveau
-		gallium_enable video_cards_i915 i915
-		if ! use video_cards_i915; then
-			gallium_enable video_cards_intel i915
-		fi
-
-		gallium_enable video_cards_r300 r300
-		gallium_enable video_cards_r600 r600
-		if ! use video_cards_r300 && \
-				! use video_cards_r600; then
-			gallium_enable video_cards_radeon r300 r600
-		fi
-	fi
-
-	# x86 hardened pax_kernel needs glx-rts, bug 240956
-	if use pax_kernel; then
-		myconf+="
-			$(use_enable x86 glx-rts)
-		"
-	fi
-
-	econf \
-		--enable-dri \
-		--enable-glx \
-		$(use_enable !bindist texture-float) \
-		$(use_enable debug) \
-		$(use_enable egl) \
-		$(use_enable gbm) \
-		$(use_enable gles1) \
-		$(use_enable gles2) \
-		$(use_enable nptl glx-tls) \
-		$(use_enable osmesa) \
-		$(use_enable !pic asm) \
-		$(use_enable shared-dricore) \
-		$(use_enable shared-glapi) \
-		--with-dri-drivers=${DRI_DRIVERS} \
-		--with-gallium-drivers=${GALLIUM_DRIVERS} \
-		${myconf}
-}
-
-src_install() {
-	base_src_install
-
-	if use !bindist; then
-		dodoc docs/patents.txt
-	fi
-
-	# Save the glsl-compiler for later use
-	if ! tc-is-cross-compiler; then
-		dobin "${S}"/src/glsl/glsl_compiler
-	fi
-
-	# Install config file for eselect mesa
-	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.8.0" eselect-mesa.conf
-
-	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
-	# because user can eselect desired GL provider.
-	ebegin "Moving libGL and friends for dynamic switching"
-		dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/{lib,extensions,include}
-		local x
-		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL,OpenVG}.{la,a,so*}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/lib \
-					|| die "Failed to move ${x}"
-			fi
-		done
-		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/include \
-					|| die "Failed to move ${x}"
-			fi
-		done
-	eend $?
-
-	if use classic || use gallium; then
-			ebegin "Moving DRI/Gallium drivers for dynamic switching"
-			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
-			keepdir /usr/$(get_libdir)/dri
-			dodir /usr/$(get_libdir)/mesa
-			for x in ${gallium_drivers[@]}; do
-				if [ -f "${S}/$(get_libdir)/gallium/${x}" ]; then
-					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
-						|| die "Failed to move ${x}"
-					insinto "/usr/$(get_libdir)/dri/"
-					if [ -f "${S}/$(get_libdir)/${x}" ]; then
-						insopts -m0755
-						doins "${S}/$(get_libdir)/${x}"
-					fi
-				fi
-			done
-			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
-				if [ -f ${x} -o -L ${x} ]; then
-					mv -f "${x}" "${x/dri/mesa}" \
-						|| die "Failed to move ${x}"
-				fi
-			done
-			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
-			ln -s ../mesa/*.so . || die "Creating symlink failed"
-			# remove symlinks to drivers known to eselect
-			for x in ${gallium_drivers[@]}; do
-				if [ -f ${x} -o -L ${x} ]; then
-					rm "${x}" || die "Failed to remove ${x}"
-				fi
-			done
-			popd
-		eend $?
-	fi
-}
-
-pkg_postinst() {
-	# Switch to the xorg implementation.
-	echo
-	eselect opengl set --use-old ${OPENGL_DIR}
-	# Select classic/gallium drivers
-	if use classic || use gallium; then
-		eselect mesa set --auto
-	fi
-
-	# warn about patent encumbered texture-float
-	if use !bindist; then
-		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
-		elog "enabled. Please see patents.txt for an explanation."
-	fi
-
-	local using_radeon r_flag
-	for r_flag in ${RADEON_CARDS}; do
-		if use video_cards_${r_flag}; then
-			using_radeon=1
-			break
-		fi
-	done
-
-	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
-		elog "Note that in order to have full S3TC support, it is necessary to install"
-		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
-		elog "textures in some apps, and some others even require this to run."
-	fi
-}
-
-# $1 - VIDEO_CARDS flag
-# other args - names of DRI drivers to enable
-# TODO: avoid code duplication for a more elegant implementation
-driver_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			DRI_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					DRI_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}
-
-gallium_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			GALLIUM_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					GALLIUM_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2012-04-15 20:09 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2012-04-15 20:09 UTC (permalink / raw
  To: gentoo-commits

commit:     8437c90f8cfe02f0cd82f307e9e587350d19e883
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 15 20:09:48 2012 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Sun Apr 15 20:09:48 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=8437c90f

media-libs/mesa: re-add classic to eselect-mesa.conf for emul-linux-x86-mesa and because eselect-mesa barfs.

---
 ...eselect-mesa.conf.8.0 => eselect-mesa.conf.8.1} |    2 ++
 media-libs/mesa/mesa-9999.ebuild                   |    2 +-
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.0 b/media-libs/mesa/files/eselect-mesa.conf.8.1
similarity index 94%
rename from media-libs/mesa/files/eselect-mesa.conf.8.0
rename to media-libs/mesa/files/eselect-mesa.conf.8.1
index 2fc9900..63a21aa 100644
--- a/media-libs/mesa/files/eselect-mesa.conf.8.0
+++ b/media-libs/mesa/files/eselect-mesa.conf.8.1
@@ -23,10 +23,12 @@ MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
 MESA_DRIVERS[i965,default]="classic"
 
 MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
+MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
 MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
 MESA_DRIVERS[r300,default]="gallium"
 
 MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
+MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
 MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
 MESA_DRIVERS[r600,default]="gallium"
 

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 776c961..d5d5965 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -287,7 +287,7 @@ src_install() {
 
 	# Install config file for eselect mesa
 	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.8.0" eselect-mesa.conf
+	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
 
 	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
 	# because user can eselect desired GL provider.



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-04-28 12:53 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-04-28 12:53 UTC (permalink / raw
  To: gentoo-commits

commit:     9af789d85685393d4a9c79897caaf67281a061da
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 28 12:53:27 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Sun Apr 28 12:53:27 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=9af789d8

media-libs/mesa: add flags for building the ilo driver

---
 media-libs/mesa/files/eselect-mesa.conf.8.1 |   38 ---------------------------
 media-libs/mesa/mesa-9999.ebuild            |   21 ++++++++------
 2 files changed, 12 insertions(+), 47 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.1 b/media-libs/mesa/files/eselect-mesa.conf.8.1
deleted file mode 100644
index 63a21aa..0000000
--- a/media-libs/mesa/files/eselect-mesa.conf.8.1
+++ /dev/null
@@ -1,38 +0,0 @@
-# mesa classic/gallium implementations in this release
-
-# Syntax description:
-# * MESA_IMPLEMENTATIONS contains a space-delimited list of switchable
-#   classic/gallium implementations.
-# * MESA_DRIVERS is an associative array, for each member "foo" of
-#   MESA_IMPLEMENTATIONS it contains the following elements:
-#   foo,description - Human-readable description of the driver
-#   foo,classicdriver - Filename of the classic driver
-#   foo,galliumdriver - Filename of the gallium driver
-#   foo,default - which of classic or gallium is chosen by default
-
-MESA_IMPLEMENTATIONS="i915 i965 r300 r600 sw"
-declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not associative."
-
-MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
-MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
-MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
-MESA_DRIVERS[i915,default]="gallium"
-
-MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
-MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
-MESA_DRIVERS[i965,default]="classic"
-
-MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
-MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
-MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
-MESA_DRIVERS[r300,default]="gallium"
-
-MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
-MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
-MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
-MESA_DRIVERS[r600,default]="gallium"
-
-MESA_DRIVERS[sw,description]="sw (Software renderer)"
-MESA_DRIVERS[sw,classicdriver]="swrast_dri.so"
-MESA_DRIVERS[sw,galliumdriver]="swrastg_dri.so"
-MESA_DRIVERS[sw,default]="gallium"

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 4c015b4..3d020b4 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -40,7 +40,7 @@ LICENSE="MIT SGI-B-2.0"
 SLOT="0"
 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
 
-INTEL_CARDS="i915 i965 intel"
+INTEL_CARDS="i915 i965 ilo intel"
 RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
 VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
 for card in ${VIDEO_CARDS}; do
@@ -64,7 +64,7 @@ REQUIRED_USE="
 	xorg?  ( gallium )
 	video_cards_intel?  ( || ( classic gallium ) )
 	video_cards_i915?   ( || ( classic gallium ) )
-	video_cards_i965?   ( classic )
+	video_cards_i965?   ( || ( classic gallium ) )
 	video_cards_nouveau? ( || ( classic gallium ) )
 	video_cards_radeon? ( || ( classic gallium ) )
 	video_cards_r100?   ( classic )
@@ -75,7 +75,7 @@ REQUIRED_USE="
 	video_cards_vmware? ( gallium )
 "
 
-LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.40"
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.44"
 # keep correct libdrm and dri2proto dep
 # keep blocks in rdepend for binpkg
 RDEPEND="
@@ -189,8 +189,9 @@ src_configure() {
 	# Intel code
 		driver_enable video_cards_i915 i915
 		driver_enable video_cards_i965 i965
-			if ! use video_cards_i915 && \
-				! use video_cards_i965; then
+		if ! use video_cards_i915 && \
+			! use video_cards_i965 && \
+				! use video_cards_ilo; then
 			driver_enable video_cards_intel i915 i965
 		fi
 
@@ -225,8 +226,10 @@ src_configure() {
 		gallium_enable video_cards_vmware svga
 		gallium_enable video_cards_nouveau nouveau
 		gallium_enable video_cards_i915 i915
-		if ! use video_cards_i915; then
-			gallium_enable video_cards_intel i915
+		gallium_enable video_cards_ilo ilo
+		if ! use video_cards_i915 && \
+			! use video_cards_ilo; then
+			gallium_enable video_cards_intel i915 ilo
 		fi
 
 		gallium_enable video_cards_r300 r300
@@ -280,7 +283,7 @@ src_install() {
 
 	# Install config file for eselect mesa
 	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
+	newins "${FILESDIR}/eselect-mesa.conf.9.2" eselect-mesa.conf
 
 	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
 	# because user can eselect desired GL provider.
@@ -310,7 +313,7 @@ src_install() {
 
 	if use classic || use gallium; then
 			ebegin "Moving DRI/Gallium drivers for dynamic switching"
-			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
+			local gallium_drivers=( i915_dri.so ilo_dri.so r300_dri.so r600_dri.so swrast_dri.so )
 			keepdir /usr/$(get_libdir)/dri
 			dodir /usr/$(get_libdir)/mesa
 			for x in ${gallium_drivers[@]}; do


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-06 17:37 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-05-06 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     dc54c2234305050351d51de40bead4c30669f341
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Mon May  6 17:35:36 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Mon May  6 17:35:36 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=dc54c223

Revert "Add patch for multigpu in clover"

This reverts commit 5fc6d117965dd1cbc2abd547fcd3648935c13e71.

---
 ...ort-multiple-devices-in-clCreateContextFr.patch |   51 --------------------
 media-libs/mesa/mesa-9999.ebuild                   |    1 -
 2 files changed, 0 insertions(+), 52 deletions(-)

diff --git a/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch b/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch
deleted file mode 100644
index bd050ad..0000000
--- a/media-libs/mesa/files/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 7ab4839745069e22ff2e2636fd27b463fa308838 Mon Sep 17 00:00:00 2001
-From: Tom Stellard <thomas.stellard@amd.com>
-Date: Thu, 11 Apr 2013 10:37:55 -0400
-Subject: [PATCH] clover: Support multiple devices in clCreateContextFromType()
-
----
- src/gallium/state_trackers/clover/api/context.cpp | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
-index 99b9566..5caa48c 100644
---- a/src/gallium/state_trackers/clover/api/context.cpp
-+++ b/src/gallium/state_trackers/clover/api/context.cpp
-@@ -22,6 +22,7 @@
- 
- #include "api/util.hpp"
- #include "core/context.hpp"
-+#include "core/platform.hpp"
- 
- using namespace clover;
- 
-@@ -63,18 +64,22 @@ clCreateContextFromType(const cl_context_properties *props,
-                         void *user_data, cl_int *errcode_ret) try {
-    cl_platform_id platform;
-    cl_uint num_platforms;
--   cl_device_id dev;
-    cl_int ret;
-+   std::vector<cl_device_id> devs;
- 
-    ret = clGetPlatformIDs(1, &platform, &num_platforms);
-    if (ret || !num_platforms)
-       throw error(CL_INVALID_PLATFORM);
- 
--   ret = clGetDeviceIDs(platform, type, 1, &dev, 0);
--   if (ret)
-+   if (platform->begin() == platform->end())
-       throw error(CL_DEVICE_NOT_FOUND);
- 
--   return clCreateContext(props, 1, &dev, pfn_notify, user_data, errcode_ret);
-+   for (clover::platform::iterator i = platform->begin(), e = platform->end();
-+                                                         i != e; ++i) {
-+      devs.push_back(&*i);
-+   }
-+
-+   return clCreateContext(props, devs.size(), devs.data(), pfn_notify, user_data, errcode_ret);
- 
- } catch(error &e) {
-    ret_error(errcode_ret, e);
--- 
-1.8.1.5
-

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index b809ebf..b8a130d 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -175,7 +175,6 @@ src_prepare() {
 
 	# use non-NULL platform id
 	epatch "${FILESDIR}/${P}-use-a-struct-for-cl_platform_id.patch"
-	epatch "${FILESDIR}/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch"
 
 	# fix for hardened pax_kernel, bug 240956
 	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-06 17:37 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-05-06 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     6f4ee443484f56cda4b1d2bf75fbec4433e9b428
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Mon May  6 17:35:35 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Mon May  6 17:35:35 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=6f4ee443

Revert "Drop unneded patch"

This reverts commit 201ee7f354d412a56865d72e92f3d6b8c34f3b45.

---
 ...mesa-9999-use-a-struct-for-cl_platform_id.patch |  400 ++++++++++++++++++++
 media-libs/mesa/mesa-9999.ebuild                   |    1 +
 2 files changed, 401 insertions(+), 0 deletions(-)

diff --git a/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch b/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch
new file mode 100644
index 0000000..e5c7786
--- /dev/null
+++ b/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch
@@ -0,0 +1,400 @@
+From 39d5479f931bfce9641fb43d99a50cea63952de6 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Wed, 10 Apr 2013 19:16:43 +0000
+Subject: clover: Use a struct to represent cl_platform_id
+
+---
+diff --git a/src/gallium/state_trackers/clover/Makefile.am b/src/gallium/state_trackers/clover/Makefile.am
+index 33ff03d..b4c197a 100644
+--- a/src/gallium/state_trackers/clover/Makefile.am
++++ b/src/gallium/state_trackers/clover/Makefile.am
+@@ -50,6 +50,8 @@ libclover_la_SOURCES = \
+ 	core/format.cpp \
+ 	core/memory.hpp \
+ 	core/memory.cpp \
++	core/platform.hpp \
++	core/platform.cpp \
+ 	core/resource.hpp \
+ 	core/resource.cpp \
+ 	core/sampler.hpp \
+diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
+index 80afb6b..99b9566 100644
+--- a/src/gallium/state_trackers/clover/api/context.cpp
++++ b/src/gallium/state_trackers/clover/api/context.cpp
+@@ -41,8 +41,7 @@ clCreateContext(const cl_context_properties *props, cl_uint num_devs,
+       throw error(CL_INVALID_DEVICE);
+ 
+    for (auto p : mprops) {
+-      if (!(p.first == CL_CONTEXT_PLATFORM &&
+-            (cl_platform_id)p.second == NULL))
++      if (p.first != CL_CONTEXT_PLATFORM)
+          throw error(CL_INVALID_PROPERTY);
+    }
+ 
+@@ -61,17 +60,25 @@ clCreateContextFromType(const cl_context_properties *props,
+                         cl_device_type type,
+                         void (CL_CALLBACK *pfn_notify)(
+                            const char *, const void *, size_t, void *),
+-                        void *user_data, cl_int *errcode_ret) {
++                        void *user_data, cl_int *errcode_ret) try {
++   cl_platform_id platform;
++   cl_uint num_platforms;
+    cl_device_id dev;
+    cl_int ret;
+ 
+-   ret = clGetDeviceIDs(0, type, 1, &dev, 0);
+-   if (ret) {
+-      ret_error(errcode_ret, ret);
+-      return NULL;
+-   }
++   ret = clGetPlatformIDs(1, &platform, &num_platforms);
++   if (ret || !num_platforms)
++      throw error(CL_INVALID_PLATFORM);
++
++   ret = clGetDeviceIDs(platform, type, 1, &dev, 0);
++   if (ret)
++      throw error(CL_DEVICE_NOT_FOUND);
+ 
+    return clCreateContext(props, 1, &dev, pfn_notify, user_data, errcode_ret);
++
++} catch(error &e) {
++   ret_error(errcode_ret, e);
++   return NULL;
+ }
+ 
+ PUBLIC cl_int
+diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
+index cf68d0f..dfb440d 100644
+--- a/src/gallium/state_trackers/clover/api/device.cpp
++++ b/src/gallium/state_trackers/clover/api/device.cpp
+@@ -21,29 +21,25 @@
+ //
+ 
+ #include "api/util.hpp"
++#include "core/platform.hpp"
+ #include "core/device.hpp"
+ 
+ using namespace clover;
+ 
+-static device_registry registry;
+-
+ PUBLIC cl_int
+ clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type,
+                cl_uint num_entries, cl_device_id *devices,
+                cl_uint *num_devices) {
+    std::vector<cl_device_id> devs;
+ 
+-   if (platform != NULL)
+-      return CL_INVALID_PLATFORM;
+-
+    if ((!num_entries && devices) ||
+        (!num_devices && !devices))
+       return CL_INVALID_VALUE;
+ 
+    // Collect matching devices
+-   for (device &dev : registry) {
++   for (device &dev : *platform) {
+       if (((device_type & CL_DEVICE_TYPE_DEFAULT) &&
+-           &dev == &registry.front()) ||
++           &dev == &platform->front()) ||
+           (device_type & dev.type()))
+          devs.push_back(&dev);
+    }
+@@ -223,13 +219,15 @@ clGetDeviceInfo(cl_device_id dev, cl_device_info param,
+       return string_property(buf, size, size_ret, "FULL_PROFILE");
+ 
+    case CL_DEVICE_VERSION:
+-      return string_property(buf, size, size_ret, "OpenCL 1.1 MESA " PACKAGE_VERSION);
++      return string_property(buf, size, size_ret,
++                             "OpenCL 1.1 MESA " PACKAGE_VERSION);
+ 
+    case CL_DEVICE_EXTENSIONS:
+       return string_property(buf, size, size_ret, "");
+ 
+    case CL_DEVICE_PLATFORM:
+-      return scalar_property<cl_platform_id>(buf, size, size_ret, NULL);
++      return scalar_property<cl_platform_id>(buf, size, size_ret,
++                                             dev->platform);
+ 
+    case CL_DEVICE_HOST_UNIFIED_MEMORY:
+       return scalar_property<cl_bool>(buf, size, size_ret, CL_TRUE);
+diff --git a/src/gallium/state_trackers/clover/api/platform.cpp b/src/gallium/state_trackers/clover/api/platform.cpp
+index f99b694..90111c7 100644
+--- a/src/gallium/state_trackers/clover/api/platform.cpp
++++ b/src/gallium/state_trackers/clover/api/platform.cpp
+@@ -21,9 +21,12 @@
+ //
+ 
+ #include "api/util.hpp"
++#include "core/platform.hpp"
+ 
+ using namespace clover;
+ 
++static platform __platform;
++
+ PUBLIC cl_int
+ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
+                  cl_uint *num_platforms) {
+@@ -34,7 +37,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
+    if (num_platforms)
+       *num_platforms = 1;
+    if (platforms)
+-      *platforms = NULL;
++      *platforms = &__platform;
+ 
+    return CL_SUCCESS;
+ }
+@@ -42,7 +45,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
+ PUBLIC cl_int
+ clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name,
+                   size_t size, void *buf, size_t *size_ret) {
+-   if (platform != NULL)
++   if (platform != &__platform)
+       return CL_INVALID_PLATFORM;
+ 
+    switch (param_name) {
+diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
+index d93a1f6..8c6a8a6 100644
+--- a/src/gallium/state_trackers/clover/core/device.cpp
++++ b/src/gallium/state_trackers/clover/core/device.cpp
+@@ -38,13 +38,16 @@ namespace {
+    }
+ }
+ 
+-_cl_device_id::_cl_device_id(pipe_loader_device *ldev) : ldev(ldev) {
++_cl_device_id::_cl_device_id(clover::platform *platform,
++                             pipe_loader_device *ldev) :
++   platform(platform), ldev(ldev) {
+    pipe = pipe_loader_create_screen(ldev, PIPE_SEARCH_DIR);
+    if (!pipe || !pipe->get_param(pipe, PIPE_CAP_COMPUTE))
+       throw error(CL_INVALID_DEVICE);
+ }
+ 
+-_cl_device_id::_cl_device_id(_cl_device_id &&dev) : pipe(dev.pipe), ldev(dev.ldev) {
++_cl_device_id::_cl_device_id(_cl_device_id &&dev) :
++   platform(dev.platform), pipe(dev.pipe), ldev(dev.ldev) {
+    dev.ldev = NULL;
+    dev.pipe = NULL;
+ }
+@@ -56,6 +59,15 @@ _cl_device_id::~_cl_device_id() {
+       pipe_loader_release(&ldev, 1);
+ }
+ 
++void
++_cl_device_id::operator=(_cl_device_id &&dev) {
++   platform = dev.platform;
++   pipe = dev.pipe;
++   ldev = dev.ldev;
++   dev.ldev = NULL;
++   dev.pipe = NULL;
++}
++
+ cl_device_type
+ _cl_device_id::type() const {
+    switch (ldev->type) {
+@@ -179,16 +191,3 @@ _cl_device_id::ir_target() const {
+                                                     PIPE_COMPUTE_CAP_IR_TARGET);
+    return { target.data() };
+ }
+-
+-device_registry::device_registry() {
+-   int n = pipe_loader_probe(NULL, 0);
+-   std::vector<pipe_loader_device *> ldevs(n);
+-
+-   pipe_loader_probe(&ldevs.front(), n);
+-
+-   for (pipe_loader_device *ldev : ldevs) {
+-      try {
+-         devs.emplace_back(ldev);
+-      } catch (error &) {}
+-   }
+-}
+diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp
+index 5b92751..897a003 100644
+--- a/src/gallium/state_trackers/clover/core/device.hpp
++++ b/src/gallium/state_trackers/clover/core/device.hpp
+@@ -32,17 +32,21 @@
+ 
+ namespace clover {
+    typedef struct _cl_device_id device;
++   typedef struct _cl_platform_id platform;
+    class root_resource;
+    class hard_event;
+ }
+ 
+ struct _cl_device_id {
+ public:
+-   _cl_device_id(pipe_loader_device *ldev);
++   _cl_device_id(clover::platform *platform, pipe_loader_device *ldev);
+    _cl_device_id(_cl_device_id &&dev);
+    _cl_device_id(const _cl_device_id &dev) = delete;
+    ~_cl_device_id();
+ 
++   void operator=(_cl_device_id &&dev);
++   void operator=(const _cl_device_id &dev) = delete;
++
+    cl_device_type type() const;
+    cl_uint vendor_id() const;
+    size_t max_images_read() const;
+@@ -70,41 +74,11 @@ public:
+    friend std::set<cl_image_format>
+    clover::supported_formats(cl_context, cl_mem_object_type);
+ 
++   clover::platform *platform;
++
+ private:
+    pipe_screen *pipe;
+    pipe_loader_device *ldev;
+ };
+ 
+-namespace clover {
+-   ///
+-   /// Container of all the compute devices that are available in the
+-   /// system.
+-   ///
+-   class device_registry {
+-   public:
+-      typedef std::vector<device>::iterator iterator;
+-
+-      device_registry();
+-
+-      iterator begin() {
+-         return devs.begin();
+-      }
+-
+-      iterator end() {
+-         return devs.end();
+-      }
+-
+-      device &front() {
+-         return devs.front();
+-      }
+-
+-      device &back() {
+-         return devs.back();
+-      }
+-
+-   protected:
+-      std::vector<device> devs;
+-   };
+-}
+-
+ #endif
+diff --git a/src/gallium/state_trackers/clover/core/platform.cpp b/src/gallium/state_trackers/clover/core/platform.cpp
+new file mode 100644
+index 0000000..f557ef2
+--- a/dev/null
++++ b/src/gallium/state_trackers/clover/core/platform.cpp
+@@ -0,0 +1,38 @@
++//
++// Copyright 2012 Francisco Jerez
++//
++// Permission is hereby granted, free of charge, to any person obtaining a
++// copy of this software and associated documentation files (the "Software"),
++// to deal in the Software without restriction, including without limitation
++// the rights to use, copy, modify, merge, publish, distribute, sublicense,
++// and/or sell copies of the Software, and to permit persons to whom the
++// Software is furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++// THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
++// OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++// SOFTWARE.
++//
++
++#include "core/platform.hpp"
++
++using namespace clover;
++
++_cl_platform_id::_cl_platform_id() {
++   int n = pipe_loader_probe(NULL, 0);
++   std::vector<pipe_loader_device *> ldevs(n);
++
++   pipe_loader_probe(&ldevs.front(), n);
++
++   for (pipe_loader_device *ldev : ldevs) {
++      try {
++         devs.emplace_back(this, ldev);
++      } catch (error &) {}
++   }
++}
+diff --git a/src/gallium/state_trackers/clover/core/platform.hpp b/src/gallium/state_trackers/clover/core/platform.hpp
+new file mode 100644
+index 0000000..eeb6d60
+--- a/dev/null
++++ b/src/gallium/state_trackers/clover/core/platform.hpp
+@@ -0,0 +1,66 @@
++//
++// Copyright 2013 Francisco Jerez
++//
++// Permission is hereby granted, free of charge, to any person obtaining a
++// copy of this software and associated documentation files (the "Software"),
++// to deal in the Software without restriction, including without limitation
++// the rights to use, copy, modify, merge, publish, distribute, sublicense,
++// and/or sell copies of the Software, and to permit persons to whom the
++// Software is furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++// THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
++// OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++// SOFTWARE.
++//
++
++#ifndef __CORE_PLATFORM_HPP__
++#define __CORE_PLATFORM_HPP__
++
++#include <vector>
++
++#include "core/base.hpp"
++#include "core/device.hpp"
++
++namespace clover {
++   typedef struct _cl_platform_id platform;
++}
++
++struct _cl_platform_id {
++public:
++   typedef std::vector<clover::device>::iterator iterator;
++
++   _cl_platform_id();
++
++   ///
++   /// Container of all compute devices that are available in the platform.
++   ///
++   /// @{
++   iterator begin() {
++      return devs.begin();
++   }
++
++   iterator end() {
++      return devs.end();
++   }
++
++   clover::device &front() {
++      return devs.front();
++   }
++
++   clover::device &back() {
++      return devs.back();
++   }
++   /// @}
++
++protected:
++   std::vector<clover::device> devs;
++};
++
++#endif
+--
+cgit v0.9.0.2-2-gbebe

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index face637..b809ebf 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -174,6 +174,7 @@ src_prepare() {
 	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
 
 	# use non-NULL platform id
+	epatch "${FILESDIR}/${P}-use-a-struct-for-cl_platform_id.patch"
 	epatch "${FILESDIR}/0001-clover-Support-multiple-devices-in-clCreateContextFr.patch"
 
 	# fix for hardened pax_kernel, bug 240956


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-06 17:37 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-05-06 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     291ed7747fe1028b547b68a83e071daa9e5a37ba
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Mon May  6 17:35:37 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Mon May  6 17:35:37 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=291ed774

Revert "Add patch to use non-null platform-id"

This reverts commit 80e8f10f730178ef1bc1e873fd8e8539136250a1.

---
 ...mesa-9999-clover-use-non-null-platform-id.patch |   87 --------------------
 media-libs/mesa/mesa-9999.ebuild                   |    3 -
 2 files changed, 0 insertions(+), 90 deletions(-)

diff --git a/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch b/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch
deleted file mode 100644
index 5be513d..0000000
--- a/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From: Tom Stellard <thomas.stellard at amd.com>
-
-Using a NULL value for the platform_id is legal according to the spec,
-however, passing a NULL value as the platform parameter to
-clGetPlatformInfo() results in implementation defined behavior.
-
-In order to avoid implementation defined behavior some apps require that
-the platfrom_id is non-NULL.  To statisfy this requirement, we just need
-to hard-code clover's platform_id to something other than NULL.
-
-v2:
-  - Handle platform check in clGetDeviceIDs()
-  - Use a macro for MESA_PLATFORM_ID
-
-v3:
-  - Use MESA_PLATFORM_ID when calling clGetDeviceIDs() from
-    clCreateContextFromType()
----
- src/gallium/state_trackers/clover/api/context.cpp  | 2 +-
- src/gallium/state_trackers/clover/api/device.cpp   | 2 +-
- src/gallium/state_trackers/clover/api/platform.cpp | 4 ++--
- src/gallium/state_trackers/clover/api/util.hpp     | 2 ++
- 4 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
-index 80afb6b..d509619 100644
---- a/src/gallium/state_trackers/clover/api/context.cpp
-+++ b/src/gallium/state_trackers/clover/api/context.cpp
-@@ -65,7 +65,7 @@ clCreateContextFromType(const cl_context_properties *props,
-    cl_device_id dev;
-    cl_int ret;
- 
--   ret = clGetDeviceIDs(0, type, 1, &dev, 0);
-+   ret = clGetDeviceIDs(MESA_PLATFORM_ID, type, 1, &dev, 0);
-    if (ret) {
-       ret_error(errcode_ret, ret);
-       return NULL;
-diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
-index cf68d0f..d9b0223 100644
---- a/src/gallium/state_trackers/clover/api/device.cpp
-+++ b/src/gallium/state_trackers/clover/api/device.cpp
-@@ -33,7 +33,7 @@ clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type,
-                cl_uint *num_devices) {
-    std::vector<cl_device_id> devs;
- 
--   if (platform != NULL)
-+   if (platform != MESA_PLATFORM_ID)
-       return CL_INVALID_PLATFORM;
- 
-    if ((!num_entries && devices) ||
-diff --git a/src/gallium/state_trackers/clover/api/platform.cpp b/src/gallium/state_trackers/clover/api/platform.cpp
-index f99b694..3a988a6 100644
---- a/src/gallium/state_trackers/clover/api/platform.cpp
-+++ b/src/gallium/state_trackers/clover/api/platform.cpp
-@@ -34,7 +34,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
-    if (num_platforms)
-       *num_platforms = 1;
-    if (platforms)
--      *platforms = NULL;
-+      *platforms = MESA_PLATFORM_ID;
- 
-    return CL_SUCCESS;
- }
-@@ -42,7 +42,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
- PUBLIC cl_int
- clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name,
-                   size_t size, void *buf, size_t *size_ret) {
--   if (platform != NULL)
-+   if (platform != MESA_PLATFORM_ID)
-       return CL_INVALID_PLATFORM;
- 
-    switch (param_name) {
-diff --git a/src/gallium/state_trackers/clover/api/util.hpp b/src/gallium/state_trackers/clover/api/util.hpp
-index 2f9ec1f..0e80cda 100644
---- a/src/gallium/state_trackers/clover/api/util.hpp
-+++ b/src/gallium/state_trackers/clover/api/util.hpp
-@@ -31,6 +31,8 @@
- #include "core/base.hpp"
- #include "pipe/p_compiler.h"
- 
-+#define MESA_PLATFORM_ID ((cl_platform_id)0xc1c1c1c1)
-+
- namespace clover {
-    ///
-    /// Return a matrix (a container of containers) in \a buf with
--- 
-1.7.11.4

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 5892639..1d33cf4 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -173,9 +173,6 @@ src_prepare() {
 	# relax the requirement that r300 must have llvm, bug 380303
 	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
 
-	# use non-NULL platform id
-	epatch "${FILESDIR}/${P}-clover-use-non-null-platform-id.patch"
-
 	# fix for hardened pax_kernel, bug 240956
 	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
 


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-06 17:37 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-05-06 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     384dc5f81f583d3186c9cfbce16f5cde19201dc6
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Mon May  6 17:35:36 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Mon May  6 17:35:36 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=384dc5f8

Revert "Update patches"

This reverts commit cb2c78f3358ef8d77ae830a29c673378f036392f.

---
 ...mesa-9999-clover-use-non-null-platform-id.patch |  103 +++++
 ...mesa-9999-use-a-struct-for-cl_platform_id.patch |  400 --------------------
 media-libs/mesa/mesa-9999.ebuild                   |    2 +-
 3 files changed, 104 insertions(+), 401 deletions(-)

diff --git a/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch b/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch
new file mode 100644
index 0000000..1c2d065
--- /dev/null
+++ b/media-libs/mesa/files/mesa-9999-clover-use-non-null-platform-id.patch
@@ -0,0 +1,103 @@
+From cc0fb86ba8ca9c96806f05e71b70db3da5edf4fd Mon Sep 17 00:00:00 2001
+From: Tom Stellard <thomas.stellard@amd.com>
+Date: Fri, 5 Apr 2013 13:23:01 -0700
+Subject: [PATCH] clover: Use a non-NULL value to represent the platform_id v3
+
+Using a NULL value for the platform_id is legal according to the spec,
+however, passing a NULL value as the platform parameter to
+clGetPlatformInfo() results in implementation defined behavior.
+
+In order to avoid implementation defined behavior some apps require that
+the platfrom_id is non-NULL.  To statisfy this requirement, we just need
+to hard-code clover's platform_id to something other than NULL.
+
+v2:
+  - Handle platform check in clGetDeviceIDs()
+  - Use a macro for MESA_PLATFORM_ID
+
+v3:
+  - Use MESA_PLATFORM_ID when calling clGetDeviceIDs() from
+    clCreateContextFromType()
+
+v4:
+  - Use MESA_PLATFORM_ID when checking the CL_CONTEXT_PLATFORM property
+---
+ src/gallium/state_trackers/clover/api/context.cpp  | 4 ++--
+ src/gallium/state_trackers/clover/api/device.cpp   | 2 +-
+ src/gallium/state_trackers/clover/api/platform.cpp | 4 ++--
+ src/gallium/state_trackers/clover/api/util.hpp     | 2 ++
+ 4 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
+index 80afb6b..f25856f 100644
+--- a/src/gallium/state_trackers/clover/api/context.cpp
++++ b/src/gallium/state_trackers/clover/api/context.cpp
+@@ -42,7 +42,7 @@ clCreateContext(const cl_context_properties *props, cl_uint num_devs,
+ 
+    for (auto p : mprops) {
+       if (!(p.first == CL_CONTEXT_PLATFORM &&
+-            (cl_platform_id)p.second == NULL))
++            (cl_platform_id)p.second == MESA_PLATFORM_ID))
+          throw error(CL_INVALID_PROPERTY);
+    }
+ 
+@@ -65,7 +65,7 @@ clCreateContextFromType(const cl_context_properties *props,
+    cl_device_id dev;
+    cl_int ret;
+ 
+-   ret = clGetDeviceIDs(0, type, 1, &dev, 0);
++   ret = clGetDeviceIDs(MESA_PLATFORM_ID, type, 1, &dev, 0);
+    if (ret) {
+       ret_error(errcode_ret, ret);
+       return NULL;
+diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
+index cf68d0f..d9b0223 100644
+--- a/src/gallium/state_trackers/clover/api/device.cpp
++++ b/src/gallium/state_trackers/clover/api/device.cpp
+@@ -33,7 +33,7 @@ clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type,
+                cl_uint *num_devices) {
+    std::vector<cl_device_id> devs;
+ 
+-   if (platform != NULL)
++   if (platform != MESA_PLATFORM_ID)
+       return CL_INVALID_PLATFORM;
+ 
+    if ((!num_entries && devices) ||
+diff --git a/src/gallium/state_trackers/clover/api/platform.cpp b/src/gallium/state_trackers/clover/api/platform.cpp
+index f99b694..3a988a6 100644
+--- a/src/gallium/state_trackers/clover/api/platform.cpp
++++ b/src/gallium/state_trackers/clover/api/platform.cpp
+@@ -34,7 +34,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
+    if (num_platforms)
+       *num_platforms = 1;
+    if (platforms)
+-      *platforms = NULL;
++      *platforms = MESA_PLATFORM_ID;
+ 
+    return CL_SUCCESS;
+ }
+@@ -42,7 +42,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
+ PUBLIC cl_int
+ clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name,
+                   size_t size, void *buf, size_t *size_ret) {
+-   if (platform != NULL)
++   if (platform != MESA_PLATFORM_ID)
+       return CL_INVALID_PLATFORM;
+ 
+    switch (param_name) {
+diff --git a/src/gallium/state_trackers/clover/api/util.hpp b/src/gallium/state_trackers/clover/api/util.hpp
+index 2f9ec1f..0e80cda 100644
+--- a/src/gallium/state_trackers/clover/api/util.hpp
++++ b/src/gallium/state_trackers/clover/api/util.hpp
+@@ -31,6 +31,8 @@
+ #include "core/base.hpp"
+ #include "pipe/p_compiler.h"
+ 
++#define MESA_PLATFORM_ID ((cl_platform_id)0xc1c1c1c1)
++
+ namespace clover {
+    ///
+    /// Return a matrix (a container of containers) in \a buf with
+-- 
+1.8.1.5
+

diff --git a/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch b/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch
deleted file mode 100644
index e5c7786..0000000
--- a/media-libs/mesa/files/mesa-9999-use-a-struct-for-cl_platform_id.patch
+++ /dev/null
@@ -1,400 +0,0 @@
-From 39d5479f931bfce9641fb43d99a50cea63952de6 Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez@riseup.net>
-Date: Wed, 10 Apr 2013 19:16:43 +0000
-Subject: clover: Use a struct to represent cl_platform_id
-
----
-diff --git a/src/gallium/state_trackers/clover/Makefile.am b/src/gallium/state_trackers/clover/Makefile.am
-index 33ff03d..b4c197a 100644
---- a/src/gallium/state_trackers/clover/Makefile.am
-+++ b/src/gallium/state_trackers/clover/Makefile.am
-@@ -50,6 +50,8 @@ libclover_la_SOURCES = \
- 	core/format.cpp \
- 	core/memory.hpp \
- 	core/memory.cpp \
-+	core/platform.hpp \
-+	core/platform.cpp \
- 	core/resource.hpp \
- 	core/resource.cpp \
- 	core/sampler.hpp \
-diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp
-index 80afb6b..99b9566 100644
---- a/src/gallium/state_trackers/clover/api/context.cpp
-+++ b/src/gallium/state_trackers/clover/api/context.cpp
-@@ -41,8 +41,7 @@ clCreateContext(const cl_context_properties *props, cl_uint num_devs,
-       throw error(CL_INVALID_DEVICE);
- 
-    for (auto p : mprops) {
--      if (!(p.first == CL_CONTEXT_PLATFORM &&
--            (cl_platform_id)p.second == NULL))
-+      if (p.first != CL_CONTEXT_PLATFORM)
-          throw error(CL_INVALID_PROPERTY);
-    }
- 
-@@ -61,17 +60,25 @@ clCreateContextFromType(const cl_context_properties *props,
-                         cl_device_type type,
-                         void (CL_CALLBACK *pfn_notify)(
-                            const char *, const void *, size_t, void *),
--                        void *user_data, cl_int *errcode_ret) {
-+                        void *user_data, cl_int *errcode_ret) try {
-+   cl_platform_id platform;
-+   cl_uint num_platforms;
-    cl_device_id dev;
-    cl_int ret;
- 
--   ret = clGetDeviceIDs(0, type, 1, &dev, 0);
--   if (ret) {
--      ret_error(errcode_ret, ret);
--      return NULL;
--   }
-+   ret = clGetPlatformIDs(1, &platform, &num_platforms);
-+   if (ret || !num_platforms)
-+      throw error(CL_INVALID_PLATFORM);
-+
-+   ret = clGetDeviceIDs(platform, type, 1, &dev, 0);
-+   if (ret)
-+      throw error(CL_DEVICE_NOT_FOUND);
- 
-    return clCreateContext(props, 1, &dev, pfn_notify, user_data, errcode_ret);
-+
-+} catch(error &e) {
-+   ret_error(errcode_ret, e);
-+   return NULL;
- }
- 
- PUBLIC cl_int
-diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
-index cf68d0f..dfb440d 100644
---- a/src/gallium/state_trackers/clover/api/device.cpp
-+++ b/src/gallium/state_trackers/clover/api/device.cpp
-@@ -21,29 +21,25 @@
- //
- 
- #include "api/util.hpp"
-+#include "core/platform.hpp"
- #include "core/device.hpp"
- 
- using namespace clover;
- 
--static device_registry registry;
--
- PUBLIC cl_int
- clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type,
-                cl_uint num_entries, cl_device_id *devices,
-                cl_uint *num_devices) {
-    std::vector<cl_device_id> devs;
- 
--   if (platform != NULL)
--      return CL_INVALID_PLATFORM;
--
-    if ((!num_entries && devices) ||
-        (!num_devices && !devices))
-       return CL_INVALID_VALUE;
- 
-    // Collect matching devices
--   for (device &dev : registry) {
-+   for (device &dev : *platform) {
-       if (((device_type & CL_DEVICE_TYPE_DEFAULT) &&
--           &dev == &registry.front()) ||
-+           &dev == &platform->front()) ||
-           (device_type & dev.type()))
-          devs.push_back(&dev);
-    }
-@@ -223,13 +219,15 @@ clGetDeviceInfo(cl_device_id dev, cl_device_info param,
-       return string_property(buf, size, size_ret, "FULL_PROFILE");
- 
-    case CL_DEVICE_VERSION:
--      return string_property(buf, size, size_ret, "OpenCL 1.1 MESA " PACKAGE_VERSION);
-+      return string_property(buf, size, size_ret,
-+                             "OpenCL 1.1 MESA " PACKAGE_VERSION);
- 
-    case CL_DEVICE_EXTENSIONS:
-       return string_property(buf, size, size_ret, "");
- 
-    case CL_DEVICE_PLATFORM:
--      return scalar_property<cl_platform_id>(buf, size, size_ret, NULL);
-+      return scalar_property<cl_platform_id>(buf, size, size_ret,
-+                                             dev->platform);
- 
-    case CL_DEVICE_HOST_UNIFIED_MEMORY:
-       return scalar_property<cl_bool>(buf, size, size_ret, CL_TRUE);
-diff --git a/src/gallium/state_trackers/clover/api/platform.cpp b/src/gallium/state_trackers/clover/api/platform.cpp
-index f99b694..90111c7 100644
---- a/src/gallium/state_trackers/clover/api/platform.cpp
-+++ b/src/gallium/state_trackers/clover/api/platform.cpp
-@@ -21,9 +21,12 @@
- //
- 
- #include "api/util.hpp"
-+#include "core/platform.hpp"
- 
- using namespace clover;
- 
-+static platform __platform;
-+
- PUBLIC cl_int
- clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
-                  cl_uint *num_platforms) {
-@@ -34,7 +37,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
-    if (num_platforms)
-       *num_platforms = 1;
-    if (platforms)
--      *platforms = NULL;
-+      *platforms = &__platform;
- 
-    return CL_SUCCESS;
- }
-@@ -42,7 +45,7 @@ clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms,
- PUBLIC cl_int
- clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name,
-                   size_t size, void *buf, size_t *size_ret) {
--   if (platform != NULL)
-+   if (platform != &__platform)
-       return CL_INVALID_PLATFORM;
- 
-    switch (param_name) {
-diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
-index d93a1f6..8c6a8a6 100644
---- a/src/gallium/state_trackers/clover/core/device.cpp
-+++ b/src/gallium/state_trackers/clover/core/device.cpp
-@@ -38,13 +38,16 @@ namespace {
-    }
- }
- 
--_cl_device_id::_cl_device_id(pipe_loader_device *ldev) : ldev(ldev) {
-+_cl_device_id::_cl_device_id(clover::platform *platform,
-+                             pipe_loader_device *ldev) :
-+   platform(platform), ldev(ldev) {
-    pipe = pipe_loader_create_screen(ldev, PIPE_SEARCH_DIR);
-    if (!pipe || !pipe->get_param(pipe, PIPE_CAP_COMPUTE))
-       throw error(CL_INVALID_DEVICE);
- }
- 
--_cl_device_id::_cl_device_id(_cl_device_id &&dev) : pipe(dev.pipe), ldev(dev.ldev) {
-+_cl_device_id::_cl_device_id(_cl_device_id &&dev) :
-+   platform(dev.platform), pipe(dev.pipe), ldev(dev.ldev) {
-    dev.ldev = NULL;
-    dev.pipe = NULL;
- }
-@@ -56,6 +59,15 @@ _cl_device_id::~_cl_device_id() {
-       pipe_loader_release(&ldev, 1);
- }
- 
-+void
-+_cl_device_id::operator=(_cl_device_id &&dev) {
-+   platform = dev.platform;
-+   pipe = dev.pipe;
-+   ldev = dev.ldev;
-+   dev.ldev = NULL;
-+   dev.pipe = NULL;
-+}
-+
- cl_device_type
- _cl_device_id::type() const {
-    switch (ldev->type) {
-@@ -179,16 +191,3 @@ _cl_device_id::ir_target() const {
-                                                     PIPE_COMPUTE_CAP_IR_TARGET);
-    return { target.data() };
- }
--
--device_registry::device_registry() {
--   int n = pipe_loader_probe(NULL, 0);
--   std::vector<pipe_loader_device *> ldevs(n);
--
--   pipe_loader_probe(&ldevs.front(), n);
--
--   for (pipe_loader_device *ldev : ldevs) {
--      try {
--         devs.emplace_back(ldev);
--      } catch (error &) {}
--   }
--}
-diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp
-index 5b92751..897a003 100644
---- a/src/gallium/state_trackers/clover/core/device.hpp
-+++ b/src/gallium/state_trackers/clover/core/device.hpp
-@@ -32,17 +32,21 @@
- 
- namespace clover {
-    typedef struct _cl_device_id device;
-+   typedef struct _cl_platform_id platform;
-    class root_resource;
-    class hard_event;
- }
- 
- struct _cl_device_id {
- public:
--   _cl_device_id(pipe_loader_device *ldev);
-+   _cl_device_id(clover::platform *platform, pipe_loader_device *ldev);
-    _cl_device_id(_cl_device_id &&dev);
-    _cl_device_id(const _cl_device_id &dev) = delete;
-    ~_cl_device_id();
- 
-+   void operator=(_cl_device_id &&dev);
-+   void operator=(const _cl_device_id &dev) = delete;
-+
-    cl_device_type type() const;
-    cl_uint vendor_id() const;
-    size_t max_images_read() const;
-@@ -70,41 +74,11 @@ public:
-    friend std::set<cl_image_format>
-    clover::supported_formats(cl_context, cl_mem_object_type);
- 
-+   clover::platform *platform;
-+
- private:
-    pipe_screen *pipe;
-    pipe_loader_device *ldev;
- };
- 
--namespace clover {
--   ///
--   /// Container of all the compute devices that are available in the
--   /// system.
--   ///
--   class device_registry {
--   public:
--      typedef std::vector<device>::iterator iterator;
--
--      device_registry();
--
--      iterator begin() {
--         return devs.begin();
--      }
--
--      iterator end() {
--         return devs.end();
--      }
--
--      device &front() {
--         return devs.front();
--      }
--
--      device &back() {
--         return devs.back();
--      }
--
--   protected:
--      std::vector<device> devs;
--   };
--}
--
- #endif
-diff --git a/src/gallium/state_trackers/clover/core/platform.cpp b/src/gallium/state_trackers/clover/core/platform.cpp
-new file mode 100644
-index 0000000..f557ef2
---- a/dev/null
-+++ b/src/gallium/state_trackers/clover/core/platform.cpp
-@@ -0,0 +1,38 @@
-+//
-+// Copyright 2012 Francisco Jerez
-+//
-+// Permission is hereby granted, free of charge, to any person obtaining a
-+// copy of this software and associated documentation files (the "Software"),
-+// to deal in the Software without restriction, including without limitation
-+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+// and/or sell copies of the Software, and to permit persons to whom the
-+// Software is furnished to do so, subject to the following conditions:
-+//
-+// The above copyright notice and this permission notice shall be included in
-+// all copies or substantial portions of the Software.
-+//
-+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-+// THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-+// OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+// SOFTWARE.
-+//
-+
-+#include "core/platform.hpp"
-+
-+using namespace clover;
-+
-+_cl_platform_id::_cl_platform_id() {
-+   int n = pipe_loader_probe(NULL, 0);
-+   std::vector<pipe_loader_device *> ldevs(n);
-+
-+   pipe_loader_probe(&ldevs.front(), n);
-+
-+   for (pipe_loader_device *ldev : ldevs) {
-+      try {
-+         devs.emplace_back(this, ldev);
-+      } catch (error &) {}
-+   }
-+}
-diff --git a/src/gallium/state_trackers/clover/core/platform.hpp b/src/gallium/state_trackers/clover/core/platform.hpp
-new file mode 100644
-index 0000000..eeb6d60
---- a/dev/null
-+++ b/src/gallium/state_trackers/clover/core/platform.hpp
-@@ -0,0 +1,66 @@
-+//
-+// Copyright 2013 Francisco Jerez
-+//
-+// Permission is hereby granted, free of charge, to any person obtaining a
-+// copy of this software and associated documentation files (the "Software"),
-+// to deal in the Software without restriction, including without limitation
-+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+// and/or sell copies of the Software, and to permit persons to whom the
-+// Software is furnished to do so, subject to the following conditions:
-+//
-+// The above copyright notice and this permission notice shall be included in
-+// all copies or substantial portions of the Software.
-+//
-+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-+// THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-+// OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+// SOFTWARE.
-+//
-+
-+#ifndef __CORE_PLATFORM_HPP__
-+#define __CORE_PLATFORM_HPP__
-+
-+#include <vector>
-+
-+#include "core/base.hpp"
-+#include "core/device.hpp"
-+
-+namespace clover {
-+   typedef struct _cl_platform_id platform;
-+}
-+
-+struct _cl_platform_id {
-+public:
-+   typedef std::vector<clover::device>::iterator iterator;
-+
-+   _cl_platform_id();
-+
-+   ///
-+   /// Container of all compute devices that are available in the platform.
-+   ///
-+   /// @{
-+   iterator begin() {
-+      return devs.begin();
-+   }
-+
-+   iterator end() {
-+      return devs.end();
-+   }
-+
-+   clover::device &front() {
-+      return devs.front();
-+   }
-+
-+   clover::device &back() {
-+      return devs.back();
-+   }
-+   /// @}
-+
-+protected:
-+   std::vector<clover::device> devs;
-+};
-+
-+#endif
---
-cgit v0.9.0.2-2-gbebe

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index b8a130d..5892639 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -174,7 +174,7 @@ src_prepare() {
 	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch
 
 	# use non-NULL platform id
-	epatch "${FILESDIR}/${P}-use-a-struct-for-cl_platform_id.patch"
+	epatch "${FILESDIR}/${P}-clover-use-non-null-platform-id.patch"
 
 	# fix for hardened pax_kernel, bug 240956
 	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-23 21:30 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-05-23 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     72ba6f41a9759e713de73adc59f47ed7b45a2090
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Thu May 23 21:27:45 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Thu May 23 21:27:45 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=72ba6f41

media-libs/mesa: fix eselect-mesa and let ilo depend on gallium

---
 media-libs/mesa/files/eselect-mesa.conf.9.2 |    2 +-
 media-libs/mesa/mesa-9999.ebuild            |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.9.2 b/media-libs/mesa/files/eselect-mesa.conf.9.2
index ff590f5..4058b68 100644
--- a/media-libs/mesa/files/eselect-mesa.conf.9.2
+++ b/media-libs/mesa/files/eselect-mesa.conf.9.2
@@ -20,7 +20,7 @@ MESA_DRIVERS[i915,default]="gallium"
 
 MESA_DRIVERS[i965,description]="i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)"
 MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
-MESA_DRIVERS[i965,galliumdriver]="ilo_dri.so"
+MESA_DRIVERS[i965,galliumdriver]="i965g_dri.so"
 MESA_DRIVERS[i965,default]="classic"
 
 MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 072a01d..1994217 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -66,6 +66,7 @@ REQUIRED_USE="
 	video_cards_intel?  ( || ( classic gallium ) )
 	video_cards_i915?   ( || ( classic gallium ) )
 	video_cards_i965?   ( || ( classic gallium ) )
+	video_cards_ilo?    ( gallium )
 	video_cards_nouveau? ( || ( classic gallium ) )
 	video_cards_radeon? ( || ( classic gallium ) )
 	video_cards_r100?   ( classic )


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-05-23 23:03 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-05-23 23:03 UTC (permalink / raw
  To: gentoo-commits

commit:     140c045fa14f0620f95ebe67f6df14d049897304
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Thu May 23 23:00:38 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Thu May 23 23:00:38 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=140c045f

media-libs/mesa: revert to ilo_dri.so, not build i915g and ilo, when only i965 is selected

---
 media-libs/mesa/files/eselect-mesa.conf.9.2 |    2 +-
 media-libs/mesa/mesa-9999.ebuild            |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.9.2 b/media-libs/mesa/files/eselect-mesa.conf.9.2
index 4058b68..ff590f5 100644
--- a/media-libs/mesa/files/eselect-mesa.conf.9.2
+++ b/media-libs/mesa/files/eselect-mesa.conf.9.2
@@ -20,7 +20,7 @@ MESA_DRIVERS[i915,default]="gallium"
 
 MESA_DRIVERS[i965,description]="i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)"
 MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
-MESA_DRIVERS[i965,galliumdriver]="i965g_dri.so"
+MESA_DRIVERS[i965,galliumdriver]="ilo_dri.so"
 MESA_DRIVERS[i965,default]="classic"
 
 MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 1994217..0f02e71 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -65,7 +65,7 @@ REQUIRED_USE="
 	xorg?  ( gallium )
 	video_cards_intel?  ( || ( classic gallium ) )
 	video_cards_i915?   ( || ( classic gallium ) )
-	video_cards_i965?   ( || ( classic gallium ) )
+	video_cards_i965?   ( classic )
 	video_cards_ilo?    ( gallium )
 	video_cards_nouveau? ( || ( classic gallium ) )
 	video_cards_radeon? ( || ( classic gallium ) )
@@ -239,7 +239,8 @@ src_configure() {
 		gallium_enable video_cards_i915 i915
 		gallium_enable video_cards_ilo ilo
 		if ! use video_cards_i915 && \
-			! use video_cards_ilo; then
+			! use video_cards_i965 && \
+				! use video_cards_ilo; then
 			gallium_enable video_cards_intel i915 ilo
 		fi
 


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-07-20 17:10 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-07-20 17:10 UTC (permalink / raw
  To: gentoo-commits

commit:     d15bdd994c26ee21d527b124ffc67c0eca92d919
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Sat Jul 20 17:11:18 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Sat Jul 20 17:11:18 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=d15bdd99

media-libs/mesa-9.1.5: bump

Package-Manager: portage-2.2.0_alpha188

---
 media-libs/mesa/files/eselect-mesa.conf.8.1        |  38 ++
 media-libs/mesa/files/glx_ro_text_segm.patch       |  28 ++
 .../mesa-8.1-dont-require-llvm-for-r300.patch      |  25 ++
 media-libs/mesa/mesa-9.1.5.ebuild                  | 419 +++++++++++++++++++++
 media-libs/mesa/metadata.xml                       |   1 +
 5 files changed, 511 insertions(+)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.1 b/media-libs/mesa/files/eselect-mesa.conf.8.1
new file mode 100644
index 0000000..63a21aa
--- /dev/null
+++ b/media-libs/mesa/files/eselect-mesa.conf.8.1
@@ -0,0 +1,38 @@
+# mesa classic/gallium implementations in this release
+
+# Syntax description:
+# * MESA_IMPLEMENTATIONS contains a space-delimited list of switchable
+#   classic/gallium implementations.
+# * MESA_DRIVERS is an associative array, for each member "foo" of
+#   MESA_IMPLEMENTATIONS it contains the following elements:
+#   foo,description - Human-readable description of the driver
+#   foo,classicdriver - Filename of the classic driver
+#   foo,galliumdriver - Filename of the gallium driver
+#   foo,default - which of classic or gallium is chosen by default
+
+MESA_IMPLEMENTATIONS="i915 i965 r300 r600 sw"
+declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not associative."
+
+MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
+MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
+MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
+MESA_DRIVERS[i915,default]="gallium"
+
+MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
+MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
+MESA_DRIVERS[i965,default]="classic"
+
+MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
+MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
+MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
+MESA_DRIVERS[r300,default]="gallium"
+
+MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
+MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
+MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
+MESA_DRIVERS[r600,default]="gallium"
+
+MESA_DRIVERS[sw,description]="sw (Software renderer)"
+MESA_DRIVERS[sw,classicdriver]="swrast_dri.so"
+MESA_DRIVERS[sw,galliumdriver]="swrastg_dri.so"
+MESA_DRIVERS[sw,default]="gallium"

diff --git a/media-libs/mesa/files/glx_ro_text_segm.patch b/media-libs/mesa/files/glx_ro_text_segm.patch
new file mode 100644
index 0000000..495b7dc
--- /dev/null
+++ b/media-libs/mesa/files/glx_ro_text_segm.patch
@@ -0,0 +1,28 @@
+2011-02-09	Jeremy Huddleston <jeremyhu@freedesktop.org
+
+	#240956
+	* configure.ac	add support to enable readonly test segment on x86
+
+--- configure.ac.orig	2008-11-17 23:19:38.000000000 +0100
++++ configure.ac	2008-11-17 23:20:17.000000000 +0100
+@@ -499,6 +499,20 @@
+     enable_xcb=no
+ fi
+ 
++
++dnl readonly text segment on x86 hardened platforms
++AC_ARG_ENABLE([glx_rts],
++    [AS_HELP_STRING([--enable-glx-rts],
++        [on x86, use a readonly text segment for libGL @<:@default=disabled@:>@])],
++    [enable_glx_rts="$enableval"],
++    [enable_glx_rts=no])
++if test "x$enable_glx_rts" = xyes; then
++    DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
++else
++    enable_glx_rts=no
++fi
++
++
+ dnl
+ dnl libGL configuration per driver
+ dnl

diff --git a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
new file mode 100644
index 0000000..9fe7e32
--- /dev/null
+++ b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
@@ -0,0 +1,25 @@
+--- a/configure.ac	2012-05-12 11:50:09.786970584 +0200
++++ b/configure.ac	2012-05-12 12:00:00.770582272 +0200
+@@ -1922,14 +1922,6 @@
+     fi
+ }
+ 
+-gallium_require_llvm() {
+-    if test "x$MESA_LLVM" = x0; then
+-        case "$host_cpu" in
+-        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
+-        esac
+-    fi
+-}
+-
+ gallium_require_drm_loader() {
+     if test "x$enable_gallium_loader" = xyes; then
+         PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
+@@ -1962,7 +1954,6 @@
+             ;;
+         xr300)
+             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+-            gallium_require_llvm "Gallium R300"
+             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
+             ;;

diff --git a/media-libs/mesa/mesa-9.1.5.ebuild b/media-libs/mesa/mesa-9.1.5.ebuild
new file mode 100644
index 0000000..fea75b1
--- /dev/null
+++ b/media-libs/mesa/mesa-9.1.5.ebuild
@@ -0,0 +1,419 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/mesa-9.1.4.ebuild,v 1.1 2013/07/01 23:20:00 chithanh Exp $
+
+EAPI=5
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
+
+if [[ ${PV} = 9999* ]]; then
+	GIT_ECLASS="git-2"
+	EXPERIMENTAL="true"
+fi
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit base autotools multilib flag-o-matic python-single-r1 toolchain-funcs ${GIT_ECLASS}
+
+OPENGL_DIR="xorg-x11"
+
+MY_PN="${PN/m/M}"
+MY_P="${MY_PN}-${PV/_rc/-rc}"
+MY_SRC_P="${MY_PN}Lib-${PV/_rc/-rc}"
+
+FOLDER="${PV/_rc*/}"
+
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="http://mesa3d.sourceforge.net/"
+
+#SRC_PATCHES="mirror://gentoo/${PN}-9.1-gentoo-patches-05.tar.bz2"
+if [[ $PV = 9999* ]]; then
+	SRC_URI="${SRC_PATCHES}"
+else
+	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
+		${SRC_PATCHES}"
+fi
+
+# The code is MIT/X11.
+# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
+LICENSE="MIT SGI-B-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+INTEL_CARDS="i915 i965 intel"
+RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
+VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
+for card in ${VIDEO_CARDS}; do
+	IUSE_VIDEO_CARDS+=" video_cards_${card}"
+done
+
+IUSE="${IUSE_VIDEO_CARDS}
+	bindist +classic debug +egl +gallium gbm gles1 gles2 +llvm +nptl
+	openvg osmesa pax_kernel pic r600-llvm-compiler selinux +shared-glapi vdpau
+	wayland xvmc xa xorg kernel_FreeBSD"
+
+REQUIRED_USE="
+	llvm?   ( gallium )
+	openvg? ( egl gallium )
+	gbm?    ( shared-glapi )
+	gles1?  ( egl )
+	gles2?  ( egl )
+	r600-llvm-compiler? ( gallium llvm || ( video_cards_r600 video_cards_radeon ) )
+	wayland? ( egl )
+	xa?  ( gallium )
+	xorg?  ( gallium )
+	video_cards_intel?  ( || ( classic gallium ) )
+	video_cards_i915?   ( || ( classic gallium ) )
+	video_cards_i965?   ( classic )
+	video_cards_nouveau? ( || ( classic gallium ) )
+	video_cards_radeon? ( || ( classic gallium ) )
+	video_cards_r100?   ( classic )
+	video_cards_r200?   ( classic )
+	video_cards_r300?   ( gallium )
+	video_cards_r600?   ( gallium )
+	video_cards_radeonsi?   ( gallium llvm )
+	video_cards_vmware? ( gallium )
+"
+
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.42"
+# keep correct libdrm and dri2proto dep
+# keep blocks in rdepend for binpkg
+RDEPEND="
+	!<x11-base/xorg-server-1.7
+	!<=x11-proto/xf86driproto-2.0.3
+	classic? ( app-admin/eselect-mesa )
+	gallium? ( app-admin/eselect-mesa )
+	>=app-admin/eselect-opengl-1.2.7
+	dev-libs/expat
+	gbm? ( virtual/udev )
+	>=x11-libs/libX11-1.3.99.901
+	x11-libs/libXdamage
+	x11-libs/libXext
+	x11-libs/libXxf86vm
+	>=x11-libs/libxcb-1.8.1
+	vdpau? ( >=x11-libs/libvdpau-0.4.1 )
+	wayland? ( >=dev-libs/wayland-1.0.3 )
+	xorg? (
+		x11-base/xorg-server:=[-minimal]
+		x11-libs/libdrm[libkms]
+	)
+	xvmc? ( >=x11-libs/libXvMC-1.0.6 )
+	${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
+"
+for card in ${INTEL_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
+	"
+done
+
+for card in ${RADEON_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
+	"
+done
+
+DEPEND="${RDEPEND}
+	llvm? (
+		>=sys-devel/llvm-2.9
+		r600-llvm-compiler? ( sys-devel/llvm[video_cards_radeon] )
+		video_cards_radeonsi? ( sys-devel/llvm[video_cards_radeon] )
+	)
+	${PYTHON_DEPS}
+	dev-libs/libxml2[python,${PYTHON_USEDEP}]
+	sys-devel/bison
+	sys-devel/flex
+	virtual/pkgconfig
+	>=x11-proto/dri2proto-2.6
+	>=x11-proto/glproto-1.4.15-r1
+	>=x11-proto/xextproto-7.0.99.1
+	x11-proto/xf86driproto
+	x11-proto/xf86vidmodeproto
+"
+
+S="${WORKDIR}/${MY_P}"
+
+# It is slow without texrels, if someone wants slow
+# mesa without texrels +pic use is worth the shot
+QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+
+# Think about: ggi, fbcon, no-X configs
+
+pkg_setup() {
+	# workaround toc-issue wrt #386545
+	use ppc64 && append-flags -mminimal-toc
+
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	default
+	[[ $PV = 9999* ]] && git-2_src_unpack
+}
+
+src_prepare() {
+	# apply patches
+	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
+		EPATCH_FORCE="yes" \
+		EPATCH_SOURCE="${WORKDIR}/patches" \
+		EPATCH_SUFFIX="patch" \
+		epatch
+	fi
+
+	# relax the requirement that r300 must have llvm, bug 380303
+	epatch "${FILESDIR}"/${PN}-8.1-dont-require-llvm-for-r300.patch
+
+	# fix for hardened pax_kernel, bug 240956
+	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
+
+	# Solaris needs some recent POSIX stuff in our case
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
+	fi
+
+	# Tests fail against python-3, bug #407887
+	sed -i 's|/usr/bin/env python|/usr/bin/env python2|' src/glsl/tests/compare_ir || die
+
+	base_src_prepare
+
+	eautoreconf
+}
+
+src_configure() {
+	local myconf
+
+	if use classic; then
+	# Configurable DRI drivers
+		driver_enable swrast
+
+	# Intel code
+		driver_enable video_cards_i915 i915
+		driver_enable video_cards_i965 i965
+			if ! use video_cards_i915 && \
+				! use video_cards_i965; then
+			driver_enable video_cards_intel i915 i965
+		fi
+
+		# Nouveau code
+		driver_enable video_cards_nouveau nouveau
+
+		# ATI code
+		driver_enable video_cards_r100 radeon
+		driver_enable video_cards_r200 r200
+		if ! use video_cards_r100 && \
+				! use video_cards_r200; then
+			driver_enable video_cards_radeon radeon r200
+		fi
+	fi
+
+	if use egl; then
+		myconf+="
+			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
+			$(use_enable gallium gallium-egl)
+		"
+	fi
+
+	if use gallium; then
+		myconf+="
+			$(use_enable llvm gallium-llvm)
+			$(use_enable openvg)
+			$(use_enable r600-llvm-compiler)
+			$(use_enable vdpau)
+			$(use_enable xvmc)
+		"
+		gallium_enable swrast
+		gallium_enable video_cards_vmware svga
+		gallium_enable video_cards_nouveau nouveau
+		gallium_enable video_cards_i915 i915
+		if ! use video_cards_i915; then
+			gallium_enable video_cards_intel i915
+		fi
+
+		gallium_enable video_cards_r300 r300
+		gallium_enable video_cards_r600 r600
+		gallium_enable video_cards_radeonsi radeonsi
+		if ! use video_cards_r300 && \
+				! use video_cards_r600; then
+			gallium_enable video_cards_radeon r300 r600
+		fi
+	fi
+
+	# x86 hardened pax_kernel needs glx-rts, bug 240956
+	if use pax_kernel; then
+		myconf+="
+			$(use_enable x86 glx-rts)
+		"
+	fi
+
+	# build fails with BSD indent, bug #428112
+	use userland_GNU || export INDENT=cat
+
+	econf \
+		--enable-dri \
+		--enable-glx \
+		$(use_enable !bindist texture-float) \
+		$(use_enable debug) \
+		$(use_enable egl) \
+		$(use_enable gbm) \
+		$(use_enable gles1) \
+		$(use_enable gles2) \
+		$(use_enable nptl glx-tls) \
+		$(use_enable osmesa) \
+		$(use_enable !pic asm) \
+		$(use_enable shared-glapi) \
+		$(use_enable xa) \
+		$(use_enable xorg) \
+		--with-dri-drivers=${DRI_DRIVERS} \
+		--with-gallium-drivers=${GALLIUM_DRIVERS} \
+		PYTHON2="${PYTHON}" \
+		${myconf}
+}
+
+src_install() {
+	base_src_install
+
+	find "${ED}" -name '*.la' -exec rm -f {} + || die
+
+	if use !bindist; then
+		dodoc docs/patents.txt
+	fi
+
+	# Install config file for eselect mesa
+	insinto /usr/share/mesa
+	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
+
+	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
+	# because user can eselect desired GL provider.
+	ebegin "Moving libGL and friends for dynamic switching"
+		local x
+		local gl_dir="/usr/$(get_libdir)/opengl/${OPENGL_DIR}/"
+		dodir ${gl_dir}/{lib,extensions,include/GL}
+		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL*,OpenVG}.{la,a,so*}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/lib \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include/GL \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/{EGL,GLES*,VG,KHR}; do
+			if [ -d ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include \
+					|| die "Failed to move ${x}"
+			fi
+		done
+	eend $?
+
+	if use classic || use gallium; then
+			ebegin "Moving DRI/Gallium drivers for dynamic switching"
+			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
+			keepdir /usr/$(get_libdir)/dri
+			dodir /usr/$(get_libdir)/mesa
+			for x in ${gallium_drivers[@]}; do
+				if [ -f "${S}/$(get_libdir)/gallium/${x}" ]; then
+					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
+						|| die "Failed to move ${x}"
+					insinto "/usr/$(get_libdir)/dri/"
+					if [ -f "${S}/$(get_libdir)/${x}" ]; then
+						insopts -m0755
+						doins "${S}/$(get_libdir)/${x}"
+					fi
+				fi
+			done
+			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
+				if [ -f ${x} -o -L ${x} ]; then
+					mv -f "${x}" "${x/dri/mesa}" \
+						|| die "Failed to move ${x}"
+				fi
+			done
+			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
+			ln -s ../mesa/*.so . || die "Creating symlink failed"
+			# remove symlinks to drivers known to eselect
+			for x in ${gallium_drivers[@]}; do
+				if [ -f ${x} -o -L ${x} ]; then
+					rm "${x}" || die "Failed to remove ${x}"
+				fi
+			done
+			popd
+		eend $?
+	fi
+}
+
+pkg_postinst() {
+	# Switch to the xorg implementation.
+	echo
+	eselect opengl set --use-old ${OPENGL_DIR}
+
+	# switch to xorg-x11 and back if necessary, bug #374647 comment 11
+	OLD_IMPLEM="$(eselect opengl show)"
+	if [[ ${OPENGL_DIR}x != ${OLD_IMPLEM}x ]]; then
+		eselect opengl set ${OPENGL_DIR}
+		eselect opengl set ${OLD_IMPLEM}
+	fi
+
+	# Select classic/gallium drivers
+	if use classic || use gallium; then
+		eselect mesa set --auto
+	fi
+
+	# warn about patent encumbered texture-float
+	if use !bindist; then
+		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
+		elog "enabled. Please see patents.txt for an explanation."
+	fi
+
+	local using_radeon r_flag
+	for r_flag in ${RADEON_CARDS}; do
+		if use video_cards_${r_flag}; then
+			using_radeon=1
+			break
+		fi
+	done
+
+	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
+		elog "Note that in order to have full S3TC support, it is necessary to install"
+		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
+		elog "textures in some apps, and some others even require this to run."
+	fi
+}
+
+# $1 - VIDEO_CARDS flag
+# other args - names of DRI drivers to enable
+# TODO: avoid code duplication for a more elegant implementation
+driver_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			DRI_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					DRI_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}
+
+gallium_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			GALLIUM_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					GALLIUM_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index bb27bfa..837da73 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -8,6 +8,7 @@
 	<flag name='egl'>Enable EGL support.</flag>
 	<flag name='gallium'>Build drivers based on Gallium3D, the new architecture for 3D graphics drivers.</flag>
 	<flag name='gbm'>Enable the Graphics Buffer Manager for EGL on KMS.</flag>
+	<flag name='shared-glapi'>Enable sharing of common code for the OpenGL API.</flag>
 	<flag name='gles1'>Enable GLESv1 support.</flag>
 	<flag name='gles2'>Enable GLESv2 support.</flag>
 	<flag name='llvm'>Enable LLVM backend for Gallium3D.</flag>


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-07-29 15:26 Chi-Thanh Christopher Nguyen
  0 siblings, 0 replies; 17+ messages in thread
From: Chi-Thanh Christopher Nguyen @ 2013-07-29 15:26 UTC (permalink / raw
  To: gentoo-commits

commit:     a6f8007128a12b7e88e50a5a04838a902f296e18
Author:     Chi-Thanh Christopher Nguyen <chithanh <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 29 15:26:13 2013 +0000
Commit:     Chi-Thanh Christopher Nguyen <chithanh <AT> cs <DOT> tu-berlin <DOT> de>
CommitDate: Mon Jul 29 15:26:13 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=a6f80071

media-libs/mesa: in g-x86

---
 media-libs/mesa/files/eselect-mesa.conf.8.1        |  38 --
 media-libs/mesa/files/glx_ro_text_segm.patch       |  28 --
 .../mesa-8.1-dont-require-llvm-for-r300.patch      |  25 --
 media-libs/mesa/mesa-9.1.5.ebuild                  | 419 ---------------------
 media-libs/mesa/metadata.xml                       |   1 -
 5 files changed, 511 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.1 b/media-libs/mesa/files/eselect-mesa.conf.8.1
deleted file mode 100644
index 63a21aa..0000000
--- a/media-libs/mesa/files/eselect-mesa.conf.8.1
+++ /dev/null
@@ -1,38 +0,0 @@
-# mesa classic/gallium implementations in this release
-
-# Syntax description:
-# * MESA_IMPLEMENTATIONS contains a space-delimited list of switchable
-#   classic/gallium implementations.
-# * MESA_DRIVERS is an associative array, for each member "foo" of
-#   MESA_IMPLEMENTATIONS it contains the following elements:
-#   foo,description - Human-readable description of the driver
-#   foo,classicdriver - Filename of the classic driver
-#   foo,galliumdriver - Filename of the gallium driver
-#   foo,default - which of classic or gallium is chosen by default
-
-MESA_IMPLEMENTATIONS="i915 i965 r300 r600 sw"
-declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not associative."
-
-MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
-MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
-MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
-MESA_DRIVERS[i915,default]="gallium"
-
-MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
-MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
-MESA_DRIVERS[i965,default]="classic"
-
-MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
-MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
-MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
-MESA_DRIVERS[r300,default]="gallium"
-
-MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
-MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
-MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
-MESA_DRIVERS[r600,default]="gallium"
-
-MESA_DRIVERS[sw,description]="sw (Software renderer)"
-MESA_DRIVERS[sw,classicdriver]="swrast_dri.so"
-MESA_DRIVERS[sw,galliumdriver]="swrastg_dri.so"
-MESA_DRIVERS[sw,default]="gallium"

diff --git a/media-libs/mesa/files/glx_ro_text_segm.patch b/media-libs/mesa/files/glx_ro_text_segm.patch
deleted file mode 100644
index 495b7dc..0000000
--- a/media-libs/mesa/files/glx_ro_text_segm.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-2011-02-09	Jeremy Huddleston <jeremyhu@freedesktop.org
-
-	#240956
-	* configure.ac	add support to enable readonly test segment on x86
-
---- configure.ac.orig	2008-11-17 23:19:38.000000000 +0100
-+++ configure.ac	2008-11-17 23:20:17.000000000 +0100
-@@ -499,6 +499,20 @@
-     enable_xcb=no
- fi
- 
-+
-+dnl readonly text segment on x86 hardened platforms
-+AC_ARG_ENABLE([glx_rts],
-+    [AS_HELP_STRING([--enable-glx-rts],
-+        [on x86, use a readonly text segment for libGL @<:@default=disabled@:>@])],
-+    [enable_glx_rts="$enableval"],
-+    [enable_glx_rts=no])
-+if test "x$enable_glx_rts" = xyes; then
-+    DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
-+else
-+    enable_glx_rts=no
-+fi
-+
-+
- dnl
- dnl libGL configuration per driver
- dnl

diff --git a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
deleted file mode 100644
index 9fe7e32..0000000
--- a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/configure.ac	2012-05-12 11:50:09.786970584 +0200
-+++ b/configure.ac	2012-05-12 12:00:00.770582272 +0200
-@@ -1922,14 +1922,6 @@
-     fi
- }
- 
--gallium_require_llvm() {
--    if test "x$MESA_LLVM" = x0; then
--        case "$host_cpu" in
--        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
--        esac
--    fi
--}
--
- gallium_require_drm_loader() {
-     if test "x$enable_gallium_loader" = xyes; then
-         PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
-@@ -1962,7 +1954,6 @@
-             ;;
-         xr300)
-             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
--            gallium_require_llvm "Gallium R300"
-             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
-             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
-             ;;

diff --git a/media-libs/mesa/mesa-9.1.5.ebuild b/media-libs/mesa/mesa-9.1.5.ebuild
deleted file mode 100644
index fea75b1..0000000
--- a/media-libs/mesa/mesa-9.1.5.ebuild
+++ /dev/null
@@ -1,419 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/mesa-9.1.4.ebuild,v 1.1 2013/07/01 23:20:00 chithanh Exp $
-
-EAPI=5
-
-EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
-
-if [[ ${PV} = 9999* ]]; then
-	GIT_ECLASS="git-2"
-	EXPERIMENTAL="true"
-fi
-
-PYTHON_COMPAT=( python{2_6,2_7} )
-
-inherit base autotools multilib flag-o-matic python-single-r1 toolchain-funcs ${GIT_ECLASS}
-
-OPENGL_DIR="xorg-x11"
-
-MY_PN="${PN/m/M}"
-MY_P="${MY_PN}-${PV/_rc/-rc}"
-MY_SRC_P="${MY_PN}Lib-${PV/_rc/-rc}"
-
-FOLDER="${PV/_rc*/}"
-
-DESCRIPTION="OpenGL-like graphic library for Linux"
-HOMEPAGE="http://mesa3d.sourceforge.net/"
-
-#SRC_PATCHES="mirror://gentoo/${PN}-9.1-gentoo-patches-05.tar.bz2"
-if [[ $PV = 9999* ]]; then
-	SRC_URI="${SRC_PATCHES}"
-else
-	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
-		${SRC_PATCHES}"
-fi
-
-# The code is MIT/X11.
-# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
-LICENSE="MIT SGI-B-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
-
-INTEL_CARDS="i915 i965 intel"
-RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
-VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
-for card in ${VIDEO_CARDS}; do
-	IUSE_VIDEO_CARDS+=" video_cards_${card}"
-done
-
-IUSE="${IUSE_VIDEO_CARDS}
-	bindist +classic debug +egl +gallium gbm gles1 gles2 +llvm +nptl
-	openvg osmesa pax_kernel pic r600-llvm-compiler selinux +shared-glapi vdpau
-	wayland xvmc xa xorg kernel_FreeBSD"
-
-REQUIRED_USE="
-	llvm?   ( gallium )
-	openvg? ( egl gallium )
-	gbm?    ( shared-glapi )
-	gles1?  ( egl )
-	gles2?  ( egl )
-	r600-llvm-compiler? ( gallium llvm || ( video_cards_r600 video_cards_radeon ) )
-	wayland? ( egl )
-	xa?  ( gallium )
-	xorg?  ( gallium )
-	video_cards_intel?  ( || ( classic gallium ) )
-	video_cards_i915?   ( || ( classic gallium ) )
-	video_cards_i965?   ( classic )
-	video_cards_nouveau? ( || ( classic gallium ) )
-	video_cards_radeon? ( || ( classic gallium ) )
-	video_cards_r100?   ( classic )
-	video_cards_r200?   ( classic )
-	video_cards_r300?   ( gallium )
-	video_cards_r600?   ( gallium )
-	video_cards_radeonsi?   ( gallium llvm )
-	video_cards_vmware? ( gallium )
-"
-
-LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.42"
-# keep correct libdrm and dri2proto dep
-# keep blocks in rdepend for binpkg
-RDEPEND="
-	!<x11-base/xorg-server-1.7
-	!<=x11-proto/xf86driproto-2.0.3
-	classic? ( app-admin/eselect-mesa )
-	gallium? ( app-admin/eselect-mesa )
-	>=app-admin/eselect-opengl-1.2.7
-	dev-libs/expat
-	gbm? ( virtual/udev )
-	>=x11-libs/libX11-1.3.99.901
-	x11-libs/libXdamage
-	x11-libs/libXext
-	x11-libs/libXxf86vm
-	>=x11-libs/libxcb-1.8.1
-	vdpau? ( >=x11-libs/libvdpau-0.4.1 )
-	wayland? ( >=dev-libs/wayland-1.0.3 )
-	xorg? (
-		x11-base/xorg-server:=[-minimal]
-		x11-libs/libdrm[libkms]
-	)
-	xvmc? ( >=x11-libs/libXvMC-1.0.6 )
-	${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
-"
-for card in ${INTEL_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
-	"
-done
-
-for card in ${RADEON_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
-	"
-done
-
-DEPEND="${RDEPEND}
-	llvm? (
-		>=sys-devel/llvm-2.9
-		r600-llvm-compiler? ( sys-devel/llvm[video_cards_radeon] )
-		video_cards_radeonsi? ( sys-devel/llvm[video_cards_radeon] )
-	)
-	${PYTHON_DEPS}
-	dev-libs/libxml2[python,${PYTHON_USEDEP}]
-	sys-devel/bison
-	sys-devel/flex
-	virtual/pkgconfig
-	>=x11-proto/dri2proto-2.6
-	>=x11-proto/glproto-1.4.15-r1
-	>=x11-proto/xextproto-7.0.99.1
-	x11-proto/xf86driproto
-	x11-proto/xf86vidmodeproto
-"
-
-S="${WORKDIR}/${MY_P}"
-
-# It is slow without texrels, if someone wants slow
-# mesa without texrels +pic use is worth the shot
-QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-
-# Think about: ggi, fbcon, no-X configs
-
-pkg_setup() {
-	# workaround toc-issue wrt #386545
-	use ppc64 && append-flags -mminimal-toc
-
-	python-single-r1_pkg_setup
-}
-
-src_unpack() {
-	default
-	[[ $PV = 9999* ]] && git-2_src_unpack
-}
-
-src_prepare() {
-	# apply patches
-	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
-		EPATCH_FORCE="yes" \
-		EPATCH_SOURCE="${WORKDIR}/patches" \
-		EPATCH_SUFFIX="patch" \
-		epatch
-	fi
-
-	# relax the requirement that r300 must have llvm, bug 380303
-	epatch "${FILESDIR}"/${PN}-8.1-dont-require-llvm-for-r300.patch
-
-	# fix for hardened pax_kernel, bug 240956
-	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
-
-	# Solaris needs some recent POSIX stuff in our case
-	if [[ ${CHOST} == *-solaris* ]] ; then
-		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
-	fi
-
-	# Tests fail against python-3, bug #407887
-	sed -i 's|/usr/bin/env python|/usr/bin/env python2|' src/glsl/tests/compare_ir || die
-
-	base_src_prepare
-
-	eautoreconf
-}
-
-src_configure() {
-	local myconf
-
-	if use classic; then
-	# Configurable DRI drivers
-		driver_enable swrast
-
-	# Intel code
-		driver_enable video_cards_i915 i915
-		driver_enable video_cards_i965 i965
-			if ! use video_cards_i915 && \
-				! use video_cards_i965; then
-			driver_enable video_cards_intel i915 i965
-		fi
-
-		# Nouveau code
-		driver_enable video_cards_nouveau nouveau
-
-		# ATI code
-		driver_enable video_cards_r100 radeon
-		driver_enable video_cards_r200 r200
-		if ! use video_cards_r100 && \
-				! use video_cards_r200; then
-			driver_enable video_cards_radeon radeon r200
-		fi
-	fi
-
-	if use egl; then
-		myconf+="
-			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
-			$(use_enable gallium gallium-egl)
-		"
-	fi
-
-	if use gallium; then
-		myconf+="
-			$(use_enable llvm gallium-llvm)
-			$(use_enable openvg)
-			$(use_enable r600-llvm-compiler)
-			$(use_enable vdpau)
-			$(use_enable xvmc)
-		"
-		gallium_enable swrast
-		gallium_enable video_cards_vmware svga
-		gallium_enable video_cards_nouveau nouveau
-		gallium_enable video_cards_i915 i915
-		if ! use video_cards_i915; then
-			gallium_enable video_cards_intel i915
-		fi
-
-		gallium_enable video_cards_r300 r300
-		gallium_enable video_cards_r600 r600
-		gallium_enable video_cards_radeonsi radeonsi
-		if ! use video_cards_r300 && \
-				! use video_cards_r600; then
-			gallium_enable video_cards_radeon r300 r600
-		fi
-	fi
-
-	# x86 hardened pax_kernel needs glx-rts, bug 240956
-	if use pax_kernel; then
-		myconf+="
-			$(use_enable x86 glx-rts)
-		"
-	fi
-
-	# build fails with BSD indent, bug #428112
-	use userland_GNU || export INDENT=cat
-
-	econf \
-		--enable-dri \
-		--enable-glx \
-		$(use_enable !bindist texture-float) \
-		$(use_enable debug) \
-		$(use_enable egl) \
-		$(use_enable gbm) \
-		$(use_enable gles1) \
-		$(use_enable gles2) \
-		$(use_enable nptl glx-tls) \
-		$(use_enable osmesa) \
-		$(use_enable !pic asm) \
-		$(use_enable shared-glapi) \
-		$(use_enable xa) \
-		$(use_enable xorg) \
-		--with-dri-drivers=${DRI_DRIVERS} \
-		--with-gallium-drivers=${GALLIUM_DRIVERS} \
-		PYTHON2="${PYTHON}" \
-		${myconf}
-}
-
-src_install() {
-	base_src_install
-
-	find "${ED}" -name '*.la' -exec rm -f {} + || die
-
-	if use !bindist; then
-		dodoc docs/patents.txt
-	fi
-
-	# Install config file for eselect mesa
-	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
-
-	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
-	# because user can eselect desired GL provider.
-	ebegin "Moving libGL and friends for dynamic switching"
-		local x
-		local gl_dir="/usr/$(get_libdir)/opengl/${OPENGL_DIR}/"
-		dodir ${gl_dir}/{lib,extensions,include/GL}
-		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL*,OpenVG}.{la,a,so*}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/lib \
-					|| die "Failed to move ${x}"
-			fi
-		done
-		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/include/GL \
-					|| die "Failed to move ${x}"
-			fi
-		done
-		for x in "${ED}"/usr/include/{EGL,GLES*,VG,KHR}; do
-			if [ -d ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/include \
-					|| die "Failed to move ${x}"
-			fi
-		done
-	eend $?
-
-	if use classic || use gallium; then
-			ebegin "Moving DRI/Gallium drivers for dynamic switching"
-			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
-			keepdir /usr/$(get_libdir)/dri
-			dodir /usr/$(get_libdir)/mesa
-			for x in ${gallium_drivers[@]}; do
-				if [ -f "${S}/$(get_libdir)/gallium/${x}" ]; then
-					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
-						|| die "Failed to move ${x}"
-					insinto "/usr/$(get_libdir)/dri/"
-					if [ -f "${S}/$(get_libdir)/${x}" ]; then
-						insopts -m0755
-						doins "${S}/$(get_libdir)/${x}"
-					fi
-				fi
-			done
-			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
-				if [ -f ${x} -o -L ${x} ]; then
-					mv -f "${x}" "${x/dri/mesa}" \
-						|| die "Failed to move ${x}"
-				fi
-			done
-			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
-			ln -s ../mesa/*.so . || die "Creating symlink failed"
-			# remove symlinks to drivers known to eselect
-			for x in ${gallium_drivers[@]}; do
-				if [ -f ${x} -o -L ${x} ]; then
-					rm "${x}" || die "Failed to remove ${x}"
-				fi
-			done
-			popd
-		eend $?
-	fi
-}
-
-pkg_postinst() {
-	# Switch to the xorg implementation.
-	echo
-	eselect opengl set --use-old ${OPENGL_DIR}
-
-	# switch to xorg-x11 and back if necessary, bug #374647 comment 11
-	OLD_IMPLEM="$(eselect opengl show)"
-	if [[ ${OPENGL_DIR}x != ${OLD_IMPLEM}x ]]; then
-		eselect opengl set ${OPENGL_DIR}
-		eselect opengl set ${OLD_IMPLEM}
-	fi
-
-	# Select classic/gallium drivers
-	if use classic || use gallium; then
-		eselect mesa set --auto
-	fi
-
-	# warn about patent encumbered texture-float
-	if use !bindist; then
-		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
-		elog "enabled. Please see patents.txt for an explanation."
-	fi
-
-	local using_radeon r_flag
-	for r_flag in ${RADEON_CARDS}; do
-		if use video_cards_${r_flag}; then
-			using_radeon=1
-			break
-		fi
-	done
-
-	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
-		elog "Note that in order to have full S3TC support, it is necessary to install"
-		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
-		elog "textures in some apps, and some others even require this to run."
-	fi
-}
-
-# $1 - VIDEO_CARDS flag
-# other args - names of DRI drivers to enable
-# TODO: avoid code duplication for a more elegant implementation
-driver_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			DRI_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					DRI_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}
-
-gallium_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			GALLIUM_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					GALLIUM_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index 837da73..bb27bfa 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -8,7 +8,6 @@
 	<flag name='egl'>Enable EGL support.</flag>
 	<flag name='gallium'>Build drivers based on Gallium3D, the new architecture for 3D graphics drivers.</flag>
 	<flag name='gbm'>Enable the Graphics Buffer Manager for EGL on KMS.</flag>
-	<flag name='shared-glapi'>Enable sharing of common code for the OpenGL API.</flag>
 	<flag name='gles1'>Enable GLESv1 support.</flag>
 	<flag name='gles2'>Enable GLESv2 support.</flag>
 	<flag name='llvm'>Enable LLVM backend for Gallium3D.</flag>


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-08-03 11:01 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-08-03 11:01 UTC (permalink / raw
  To: gentoo-commits

commit:     846fcd581b80fc21d583c30905f92046a01cd9ab
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Sat Aug  3 11:01:48 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Sat Aug  3 11:01:48 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=846fcd58

media-libs/mesa: bump 9.1.6

Package-Manager: portage-2.2.0_alpha191

---
 media-libs/mesa/files/eselect-mesa.conf.8.1        |  38 ++
 media-libs/mesa/files/glx_ro_text_segm.patch       |  28 ++
 .../mesa-8.1-dont-require-llvm-for-r300.patch      |  25 ++
 media-libs/mesa/mesa-9.1.6.ebuild                  | 419 +++++++++++++++++++++
 media-libs/mesa/metadata.xml                       |   1 +
 5 files changed, 511 insertions(+)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.1 b/media-libs/mesa/files/eselect-mesa.conf.8.1
new file mode 100644
index 0000000..63a21aa
--- /dev/null
+++ b/media-libs/mesa/files/eselect-mesa.conf.8.1
@@ -0,0 +1,38 @@
+# mesa classic/gallium implementations in this release
+
+# Syntax description:
+# * MESA_IMPLEMENTATIONS contains a space-delimited list of switchable
+#   classic/gallium implementations.
+# * MESA_DRIVERS is an associative array, for each member "foo" of
+#   MESA_IMPLEMENTATIONS it contains the following elements:
+#   foo,description - Human-readable description of the driver
+#   foo,classicdriver - Filename of the classic driver
+#   foo,galliumdriver - Filename of the gallium driver
+#   foo,default - which of classic or gallium is chosen by default
+
+MESA_IMPLEMENTATIONS="i915 i965 r300 r600 sw"
+declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not associative."
+
+MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
+MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
+MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
+MESA_DRIVERS[i915,default]="gallium"
+
+MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
+MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
+MESA_DRIVERS[i965,default]="classic"
+
+MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
+MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
+MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
+MESA_DRIVERS[r300,default]="gallium"
+
+MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
+MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
+MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
+MESA_DRIVERS[r600,default]="gallium"
+
+MESA_DRIVERS[sw,description]="sw (Software renderer)"
+MESA_DRIVERS[sw,classicdriver]="swrast_dri.so"
+MESA_DRIVERS[sw,galliumdriver]="swrastg_dri.so"
+MESA_DRIVERS[sw,default]="gallium"

diff --git a/media-libs/mesa/files/glx_ro_text_segm.patch b/media-libs/mesa/files/glx_ro_text_segm.patch
new file mode 100644
index 0000000..495b7dc
--- /dev/null
+++ b/media-libs/mesa/files/glx_ro_text_segm.patch
@@ -0,0 +1,28 @@
+2011-02-09	Jeremy Huddleston <jeremyhu@freedesktop.org
+
+	#240956
+	* configure.ac	add support to enable readonly test segment on x86
+
+--- configure.ac.orig	2008-11-17 23:19:38.000000000 +0100
++++ configure.ac	2008-11-17 23:20:17.000000000 +0100
+@@ -499,6 +499,20 @@
+     enable_xcb=no
+ fi
+ 
++
++dnl readonly text segment on x86 hardened platforms
++AC_ARG_ENABLE([glx_rts],
++    [AS_HELP_STRING([--enable-glx-rts],
++        [on x86, use a readonly text segment for libGL @<:@default=disabled@:>@])],
++    [enable_glx_rts="$enableval"],
++    [enable_glx_rts=no])
++if test "x$enable_glx_rts" = xyes; then
++    DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
++else
++    enable_glx_rts=no
++fi
++
++
+ dnl
+ dnl libGL configuration per driver
+ dnl

diff --git a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
new file mode 100644
index 0000000..9fe7e32
--- /dev/null
+++ b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
@@ -0,0 +1,25 @@
+--- a/configure.ac	2012-05-12 11:50:09.786970584 +0200
++++ b/configure.ac	2012-05-12 12:00:00.770582272 +0200
+@@ -1922,14 +1922,6 @@
+     fi
+ }
+ 
+-gallium_require_llvm() {
+-    if test "x$MESA_LLVM" = x0; then
+-        case "$host_cpu" in
+-        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
+-        esac
+-    fi
+-}
+-
+ gallium_require_drm_loader() {
+     if test "x$enable_gallium_loader" = xyes; then
+         PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
+@@ -1962,7 +1954,6 @@
+             ;;
+         xr300)
+             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+-            gallium_require_llvm "Gallium R300"
+             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
+             ;;

diff --git a/media-libs/mesa/mesa-9.1.6.ebuild b/media-libs/mesa/mesa-9.1.6.ebuild
new file mode 100644
index 0000000..1eb8fca
--- /dev/null
+++ b/media-libs/mesa/mesa-9.1.6.ebuild
@@ -0,0 +1,419 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
+
+if [[ ${PV} = 9999* ]]; then
+	GIT_ECLASS="git-2"
+	EXPERIMENTAL="true"
+fi
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit base autotools multilib flag-o-matic python-single-r1 toolchain-funcs ${GIT_ECLASS}
+
+OPENGL_DIR="xorg-x11"
+
+MY_PN="${PN/m/M}"
+MY_P="${MY_PN}-${PV/_rc/-rc}"
+MY_SRC_P="${MY_PN}Lib-${PV/_rc/-rc}"
+
+FOLDER="${PV/_rc*/}"
+
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="http://mesa3d.sourceforge.net/"
+
+#SRC_PATCHES="mirror://gentoo/${PN}-9.1-gentoo-patches-05.tar.bz2"
+if [[ $PV = 9999* ]]; then
+	SRC_URI="${SRC_PATCHES}"
+else
+	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
+		${SRC_PATCHES}"
+fi
+
+# The code is MIT/X11.
+# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
+LICENSE="MIT SGI-B-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+INTEL_CARDS="i915 i965 intel"
+RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
+VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
+for card in ${VIDEO_CARDS}; do
+	IUSE_VIDEO_CARDS+=" video_cards_${card}"
+done
+
+IUSE="${IUSE_VIDEO_CARDS}
+	bindist +classic debug +egl +gallium gbm gles1 gles2 +llvm +nptl
+	openvg osmesa pax_kernel pic r600-llvm-compiler selinux +shared-glapi vdpau
+	wayland xvmc xa xorg kernel_FreeBSD"
+
+REQUIRED_USE="
+	llvm?   ( gallium )
+	openvg? ( egl gallium )
+	gbm?    ( shared-glapi )
+	gles1?  ( egl )
+	gles2?  ( egl )
+	r600-llvm-compiler? ( gallium llvm || ( video_cards_r600 video_cards_radeon ) )
+	wayland? ( egl )
+	xa?  ( gallium )
+	xorg?  ( gallium )
+	video_cards_intel?  ( || ( classic gallium ) )
+	video_cards_i915?   ( || ( classic gallium ) )
+	video_cards_i965?   ( classic )
+	video_cards_nouveau? ( || ( classic gallium ) )
+	video_cards_radeon? ( || ( classic gallium ) )
+	video_cards_r100?   ( classic )
+	video_cards_r200?   ( classic )
+	video_cards_r300?   ( gallium )
+	video_cards_r600?   ( gallium )
+	video_cards_radeonsi?   ( gallium llvm )
+	video_cards_vmware? ( gallium )
+"
+
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.42"
+# keep correct libdrm and dri2proto dep
+# keep blocks in rdepend for binpkg
+RDEPEND="
+	!<x11-base/xorg-server-1.7
+	!<=x11-proto/xf86driproto-2.0.3
+	classic? ( app-admin/eselect-mesa )
+	gallium? ( app-admin/eselect-mesa )
+	>=app-admin/eselect-opengl-1.2.7
+	dev-libs/expat
+	gbm? ( virtual/udev )
+	>=x11-libs/libX11-1.3.99.901
+	x11-libs/libXdamage
+	x11-libs/libXext
+	x11-libs/libXxf86vm
+	>=x11-libs/libxcb-1.8.1
+	vdpau? ( >=x11-libs/libvdpau-0.4.1 )
+	wayland? ( >=dev-libs/wayland-1.0.3 )
+	xorg? (
+		x11-base/xorg-server:=[-minimal]
+		x11-libs/libdrm[libkms]
+	)
+	xvmc? ( >=x11-libs/libXvMC-1.0.6 )
+	${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
+"
+for card in ${INTEL_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
+	"
+done
+
+for card in ${RADEON_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
+	"
+done
+
+DEPEND="${RDEPEND}
+	llvm? (
+		>=sys-devel/llvm-2.9
+		r600-llvm-compiler? ( sys-devel/llvm[video_cards_radeon] )
+		video_cards_radeonsi? ( sys-devel/llvm[video_cards_radeon] )
+	)
+	${PYTHON_DEPS}
+	dev-libs/libxml2[python,${PYTHON_USEDEP}]
+	sys-devel/bison
+	sys-devel/flex
+	virtual/pkgconfig
+	>=x11-proto/dri2proto-2.6
+	>=x11-proto/glproto-1.4.15-r1
+	>=x11-proto/xextproto-7.0.99.1
+	x11-proto/xf86driproto
+	x11-proto/xf86vidmodeproto
+"
+
+S="${WORKDIR}/${MY_P}"
+
+# It is slow without texrels, if someone wants slow
+# mesa without texrels +pic use is worth the shot
+QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+
+# Think about: ggi, fbcon, no-X configs
+
+pkg_setup() {
+	# workaround toc-issue wrt #386545
+	use ppc64 && append-flags -mminimal-toc
+
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	default
+	[[ $PV = 9999* ]] && git-2_src_unpack
+}
+
+src_prepare() {
+	# apply patches
+	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
+		EPATCH_FORCE="yes" \
+		EPATCH_SOURCE="${WORKDIR}/patches" \
+		EPATCH_SUFFIX="patch" \
+		epatch
+	fi
+
+	# relax the requirement that r300 must have llvm, bug 380303
+	epatch "${FILESDIR}"/${PN}-8.1-dont-require-llvm-for-r300.patch
+
+	# fix for hardened pax_kernel, bug 240956
+	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
+
+	# Solaris needs some recent POSIX stuff in our case
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
+	fi
+
+	# Tests fail against python-3, bug #407887
+	sed -i 's|/usr/bin/env python|/usr/bin/env python2|' src/glsl/tests/compare_ir || die
+
+	base_src_prepare
+
+	eautoreconf
+}
+
+src_configure() {
+	local myconf
+
+	if use classic; then
+	# Configurable DRI drivers
+		driver_enable swrast
+
+	# Intel code
+		driver_enable video_cards_i915 i915
+		driver_enable video_cards_i965 i965
+			if ! use video_cards_i915 && \
+				! use video_cards_i965; then
+			driver_enable video_cards_intel i915 i965
+		fi
+
+		# Nouveau code
+		driver_enable video_cards_nouveau nouveau
+
+		# ATI code
+		driver_enable video_cards_r100 radeon
+		driver_enable video_cards_r200 r200
+		if ! use video_cards_r100 && \
+				! use video_cards_r200; then
+			driver_enable video_cards_radeon radeon r200
+		fi
+	fi
+
+	if use egl; then
+		myconf+="
+			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
+			$(use_enable gallium gallium-egl)
+		"
+	fi
+
+	if use gallium; then
+		myconf+="
+			$(use_enable llvm gallium-llvm)
+			$(use_enable openvg)
+			$(use_enable r600-llvm-compiler)
+			$(use_enable vdpau)
+			$(use_enable xvmc)
+		"
+		gallium_enable swrast
+		gallium_enable video_cards_vmware svga
+		gallium_enable video_cards_nouveau nouveau
+		gallium_enable video_cards_i915 i915
+		if ! use video_cards_i915; then
+			gallium_enable video_cards_intel i915
+		fi
+
+		gallium_enable video_cards_r300 r300
+		gallium_enable video_cards_r600 r600
+		gallium_enable video_cards_radeonsi radeonsi
+		if ! use video_cards_r300 && \
+				! use video_cards_r600; then
+			gallium_enable video_cards_radeon r300 r600
+		fi
+	fi
+
+	# x86 hardened pax_kernel needs glx-rts, bug 240956
+	if use pax_kernel; then
+		myconf+="
+			$(use_enable x86 glx-rts)
+		"
+	fi
+
+	# build fails with BSD indent, bug #428112
+	use userland_GNU || export INDENT=cat
+
+	econf \
+		--enable-dri \
+		--enable-glx \
+		$(use_enable !bindist texture-float) \
+		$(use_enable debug) \
+		$(use_enable egl) \
+		$(use_enable gbm) \
+		$(use_enable gles1) \
+		$(use_enable gles2) \
+		$(use_enable nptl glx-tls) \
+		$(use_enable osmesa) \
+		$(use_enable !pic asm) \
+		$(use_enable shared-glapi) \
+		$(use_enable xa) \
+		$(use_enable xorg) \
+		--with-dri-drivers=${DRI_DRIVERS} \
+		--with-gallium-drivers=${GALLIUM_DRIVERS} \
+		PYTHON2="${PYTHON}" \
+		${myconf}
+}
+
+src_install() {
+	base_src_install
+
+	find "${ED}" -name '*.la' -exec rm -f {} + || die
+
+	if use !bindist; then
+		dodoc docs/patents.txt
+	fi
+
+	# Install config file for eselect mesa
+	insinto /usr/share/mesa
+	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
+
+	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
+	# because user can eselect desired GL provider.
+	ebegin "Moving libGL and friends for dynamic switching"
+		local x
+		local gl_dir="/usr/$(get_libdir)/opengl/${OPENGL_DIR}/"
+		dodir ${gl_dir}/{lib,extensions,include/GL}
+		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL*,OpenVG}.{la,a,so*}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/lib \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include/GL \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/{EGL,GLES*,VG,KHR}; do
+			if [ -d ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include \
+					|| die "Failed to move ${x}"
+			fi
+		done
+	eend $?
+
+	if use classic || use gallium; then
+			ebegin "Moving DRI/Gallium drivers for dynamic switching"
+			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
+			keepdir /usr/$(get_libdir)/dri
+			dodir /usr/$(get_libdir)/mesa
+			for x in ${gallium_drivers[@]}; do
+				if [ -f "${S}/$(get_libdir)/gallium/${x}" ]; then
+					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
+						|| die "Failed to move ${x}"
+					insinto "/usr/$(get_libdir)/dri/"
+					if [ -f "${S}/$(get_libdir)/${x}" ]; then
+						insopts -m0755
+						doins "${S}/$(get_libdir)/${x}"
+					fi
+				fi
+			done
+			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
+				if [ -f ${x} -o -L ${x} ]; then
+					mv -f "${x}" "${x/dri/mesa}" \
+						|| die "Failed to move ${x}"
+				fi
+			done
+			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
+			ln -s ../mesa/*.so . || die "Creating symlink failed"
+			# remove symlinks to drivers known to eselect
+			for x in ${gallium_drivers[@]}; do
+				if [ -f ${x} -o -L ${x} ]; then
+					rm "${x}" || die "Failed to remove ${x}"
+				fi
+			done
+			popd
+		eend $?
+	fi
+}
+
+pkg_postinst() {
+	# Switch to the xorg implementation.
+	echo
+	eselect opengl set --use-old ${OPENGL_DIR}
+
+	# switch to xorg-x11 and back if necessary, bug #374647 comment 11
+	OLD_IMPLEM="$(eselect opengl show)"
+	if [[ ${OPENGL_DIR}x != ${OLD_IMPLEM}x ]]; then
+		eselect opengl set ${OPENGL_DIR}
+		eselect opengl set ${OLD_IMPLEM}
+	fi
+
+	# Select classic/gallium drivers
+	if use classic || use gallium; then
+		eselect mesa set --auto
+	fi
+
+	# warn about patent encumbered texture-float
+	if use !bindist; then
+		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
+		elog "enabled. Please see patents.txt for an explanation."
+	fi
+
+	local using_radeon r_flag
+	for r_flag in ${RADEON_CARDS}; do
+		if use video_cards_${r_flag}; then
+			using_radeon=1
+			break
+		fi
+	done
+
+	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
+		elog "Note that in order to have full S3TC support, it is necessary to install"
+		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
+		elog "textures in some apps, and some others even require this to run."
+	fi
+}
+
+# $1 - VIDEO_CARDS flag
+# other args - names of DRI drivers to enable
+# TODO: avoid code duplication for a more elegant implementation
+driver_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			DRI_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					DRI_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}
+
+gallium_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			GALLIUM_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					GALLIUM_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index bb27bfa..837da73 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -8,6 +8,7 @@
 	<flag name='egl'>Enable EGL support.</flag>
 	<flag name='gallium'>Build drivers based on Gallium3D, the new architecture for 3D graphics drivers.</flag>
 	<flag name='gbm'>Enable the Graphics Buffer Manager for EGL on KMS.</flag>
+	<flag name='shared-glapi'>Enable sharing of common code for the OpenGL API.</flag>
 	<flag name='gles1'>Enable GLESv1 support.</flag>
 	<flag name='gles2'>Enable GLESv2 support.</flag>
 	<flag name='llvm'>Enable LLVM backend for Gallium3D.</flag>


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-08-03 11:18 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-08-03 11:18 UTC (permalink / raw
  To: gentoo-commits

commit:     54d66fa5a094611050952cc1b2b8e9d8fe95779f
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Sat Aug  3 11:18:43 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Sat Aug  3 11:18:43 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=54d66fa5

media-libs/mesa: added in portage, removing

Package-Manager: portage-2.2.0_alpha191

---
 media-libs/mesa/files/eselect-mesa.conf.8.1        |  38 --
 media-libs/mesa/files/glx_ro_text_segm.patch       |  28 --
 .../mesa-8.1-dont-require-llvm-for-r300.patch      |  25 --
 media-libs/mesa/mesa-9.1.6.ebuild                  | 419 ---------------------
 media-libs/mesa/metadata.xml                       |   1 -
 5 files changed, 511 deletions(-)

diff --git a/media-libs/mesa/files/eselect-mesa.conf.8.1 b/media-libs/mesa/files/eselect-mesa.conf.8.1
deleted file mode 100644
index 63a21aa..0000000
--- a/media-libs/mesa/files/eselect-mesa.conf.8.1
+++ /dev/null
@@ -1,38 +0,0 @@
-# mesa classic/gallium implementations in this release
-
-# Syntax description:
-# * MESA_IMPLEMENTATIONS contains a space-delimited list of switchable
-#   classic/gallium implementations.
-# * MESA_DRIVERS is an associative array, for each member "foo" of
-#   MESA_IMPLEMENTATIONS it contains the following elements:
-#   foo,description - Human-readable description of the driver
-#   foo,classicdriver - Filename of the classic driver
-#   foo,galliumdriver - Filename of the gallium driver
-#   foo,default - which of classic or gallium is chosen by default
-
-MESA_IMPLEMENTATIONS="i915 i965 r300 r600 sw"
-declare -A MESA_DRIVERS || die "MESA_DRIVERS already in environment and not associative."
-
-MESA_DRIVERS[i915,description]="i915 (Intel 915, 945)"
-MESA_DRIVERS[i915,classicdriver]="i915_dri.so"
-MESA_DRIVERS[i915,galliumdriver]="i915g_dri.so"
-MESA_DRIVERS[i915,default]="gallium"
-
-MESA_DRIVERS[i965,description]="i965 (Intel 965, G/Q3x, G/Q4x)"
-MESA_DRIVERS[i965,classicdriver]="i965_dri.so"
-MESA_DRIVERS[i965,default]="classic"
-
-MESA_DRIVERS[r300,description]="r300 (Radeon R300-R500)"
-MESA_DRIVERS[r300,classicdriver]="r300_dri.so"
-MESA_DRIVERS[r300,galliumdriver]="r300g_dri.so"
-MESA_DRIVERS[r300,default]="gallium"
-
-MESA_DRIVERS[r600,description]="r600 (Radeon R600-R700, Evergreen, Northern Islands)"
-MESA_DRIVERS[r600,classicdriver]="r600_dri.so"
-MESA_DRIVERS[r600,galliumdriver]="r600g_dri.so"
-MESA_DRIVERS[r600,default]="gallium"
-
-MESA_DRIVERS[sw,description]="sw (Software renderer)"
-MESA_DRIVERS[sw,classicdriver]="swrast_dri.so"
-MESA_DRIVERS[sw,galliumdriver]="swrastg_dri.so"
-MESA_DRIVERS[sw,default]="gallium"

diff --git a/media-libs/mesa/files/glx_ro_text_segm.patch b/media-libs/mesa/files/glx_ro_text_segm.patch
deleted file mode 100644
index 495b7dc..0000000
--- a/media-libs/mesa/files/glx_ro_text_segm.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-2011-02-09	Jeremy Huddleston <jeremyhu@freedesktop.org
-
-	#240956
-	* configure.ac	add support to enable readonly test segment on x86
-
---- configure.ac.orig	2008-11-17 23:19:38.000000000 +0100
-+++ configure.ac	2008-11-17 23:20:17.000000000 +0100
-@@ -499,6 +499,20 @@
-     enable_xcb=no
- fi
- 
-+
-+dnl readonly text segment on x86 hardened platforms
-+AC_ARG_ENABLE([glx_rts],
-+    [AS_HELP_STRING([--enable-glx-rts],
-+        [on x86, use a readonly text segment for libGL @<:@default=disabled@:>@])],
-+    [enable_glx_rts="$enableval"],
-+    [enable_glx_rts=no])
-+if test "x$enable_glx_rts" = xyes; then
-+    DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
-+else
-+    enable_glx_rts=no
-+fi
-+
-+
- dnl
- dnl libGL configuration per driver
- dnl

diff --git a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
deleted file mode 100644
index 9fe7e32..0000000
--- a/media-libs/mesa/files/mesa-8.1-dont-require-llvm-for-r300.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/configure.ac	2012-05-12 11:50:09.786970584 +0200
-+++ b/configure.ac	2012-05-12 12:00:00.770582272 +0200
-@@ -1922,14 +1922,6 @@
-     fi
- }
- 
--gallium_require_llvm() {
--    if test "x$MESA_LLVM" = x0; then
--        case "$host_cpu" in
--        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
--        esac
--    fi
--}
--
- gallium_require_drm_loader() {
-     if test "x$enable_gallium_loader" = xyes; then
-         PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
-@@ -1962,7 +1954,6 @@
-             ;;
-         xr300)
-             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
--            gallium_require_llvm "Gallium R300"
-             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
-             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
-             ;;

diff --git a/media-libs/mesa/mesa-9.1.6.ebuild b/media-libs/mesa/mesa-9.1.6.ebuild
deleted file mode 100644
index 1eb8fca..0000000
--- a/media-libs/mesa/mesa-9.1.6.ebuild
+++ /dev/null
@@ -1,419 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
-
-if [[ ${PV} = 9999* ]]; then
-	GIT_ECLASS="git-2"
-	EXPERIMENTAL="true"
-fi
-
-PYTHON_COMPAT=( python{2_6,2_7} )
-
-inherit base autotools multilib flag-o-matic python-single-r1 toolchain-funcs ${GIT_ECLASS}
-
-OPENGL_DIR="xorg-x11"
-
-MY_PN="${PN/m/M}"
-MY_P="${MY_PN}-${PV/_rc/-rc}"
-MY_SRC_P="${MY_PN}Lib-${PV/_rc/-rc}"
-
-FOLDER="${PV/_rc*/}"
-
-DESCRIPTION="OpenGL-like graphic library for Linux"
-HOMEPAGE="http://mesa3d.sourceforge.net/"
-
-#SRC_PATCHES="mirror://gentoo/${PN}-9.1-gentoo-patches-05.tar.bz2"
-if [[ $PV = 9999* ]]; then
-	SRC_URI="${SRC_PATCHES}"
-else
-	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
-		${SRC_PATCHES}"
-fi
-
-# The code is MIT/X11.
-# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
-LICENSE="MIT SGI-B-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
-
-INTEL_CARDS="i915 i965 intel"
-RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
-VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} nouveau vmware"
-for card in ${VIDEO_CARDS}; do
-	IUSE_VIDEO_CARDS+=" video_cards_${card}"
-done
-
-IUSE="${IUSE_VIDEO_CARDS}
-	bindist +classic debug +egl +gallium gbm gles1 gles2 +llvm +nptl
-	openvg osmesa pax_kernel pic r600-llvm-compiler selinux +shared-glapi vdpau
-	wayland xvmc xa xorg kernel_FreeBSD"
-
-REQUIRED_USE="
-	llvm?   ( gallium )
-	openvg? ( egl gallium )
-	gbm?    ( shared-glapi )
-	gles1?  ( egl )
-	gles2?  ( egl )
-	r600-llvm-compiler? ( gallium llvm || ( video_cards_r600 video_cards_radeon ) )
-	wayland? ( egl )
-	xa?  ( gallium )
-	xorg?  ( gallium )
-	video_cards_intel?  ( || ( classic gallium ) )
-	video_cards_i915?   ( || ( classic gallium ) )
-	video_cards_i965?   ( classic )
-	video_cards_nouveau? ( || ( classic gallium ) )
-	video_cards_radeon? ( || ( classic gallium ) )
-	video_cards_r100?   ( classic )
-	video_cards_r200?   ( classic )
-	video_cards_r300?   ( gallium )
-	video_cards_r600?   ( gallium )
-	video_cards_radeonsi?   ( gallium llvm )
-	video_cards_vmware? ( gallium )
-"
-
-LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.42"
-# keep correct libdrm and dri2proto dep
-# keep blocks in rdepend for binpkg
-RDEPEND="
-	!<x11-base/xorg-server-1.7
-	!<=x11-proto/xf86driproto-2.0.3
-	classic? ( app-admin/eselect-mesa )
-	gallium? ( app-admin/eselect-mesa )
-	>=app-admin/eselect-opengl-1.2.7
-	dev-libs/expat
-	gbm? ( virtual/udev )
-	>=x11-libs/libX11-1.3.99.901
-	x11-libs/libXdamage
-	x11-libs/libXext
-	x11-libs/libXxf86vm
-	>=x11-libs/libxcb-1.8.1
-	vdpau? ( >=x11-libs/libvdpau-0.4.1 )
-	wayland? ( >=dev-libs/wayland-1.0.3 )
-	xorg? (
-		x11-base/xorg-server:=[-minimal]
-		x11-libs/libdrm[libkms]
-	)
-	xvmc? ( >=x11-libs/libXvMC-1.0.6 )
-	${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
-"
-for card in ${INTEL_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
-	"
-done
-
-for card in ${RADEON_CARDS}; do
-	RDEPEND="${RDEPEND}
-		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
-	"
-done
-
-DEPEND="${RDEPEND}
-	llvm? (
-		>=sys-devel/llvm-2.9
-		r600-llvm-compiler? ( sys-devel/llvm[video_cards_radeon] )
-		video_cards_radeonsi? ( sys-devel/llvm[video_cards_radeon] )
-	)
-	${PYTHON_DEPS}
-	dev-libs/libxml2[python,${PYTHON_USEDEP}]
-	sys-devel/bison
-	sys-devel/flex
-	virtual/pkgconfig
-	>=x11-proto/dri2proto-2.6
-	>=x11-proto/glproto-1.4.15-r1
-	>=x11-proto/xextproto-7.0.99.1
-	x11-proto/xf86driproto
-	x11-proto/xf86vidmodeproto
-"
-
-S="${WORKDIR}/${MY_P}"
-
-# It is slow without texrels, if someone wants slow
-# mesa without texrels +pic use is worth the shot
-QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
-
-# Think about: ggi, fbcon, no-X configs
-
-pkg_setup() {
-	# workaround toc-issue wrt #386545
-	use ppc64 && append-flags -mminimal-toc
-
-	python-single-r1_pkg_setup
-}
-
-src_unpack() {
-	default
-	[[ $PV = 9999* ]] && git-2_src_unpack
-}
-
-src_prepare() {
-	# apply patches
-	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
-		EPATCH_FORCE="yes" \
-		EPATCH_SOURCE="${WORKDIR}/patches" \
-		EPATCH_SUFFIX="patch" \
-		epatch
-	fi
-
-	# relax the requirement that r300 must have llvm, bug 380303
-	epatch "${FILESDIR}"/${PN}-8.1-dont-require-llvm-for-r300.patch
-
-	# fix for hardened pax_kernel, bug 240956
-	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
-
-	# Solaris needs some recent POSIX stuff in our case
-	if [[ ${CHOST} == *-solaris* ]] ; then
-		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
-	fi
-
-	# Tests fail against python-3, bug #407887
-	sed -i 's|/usr/bin/env python|/usr/bin/env python2|' src/glsl/tests/compare_ir || die
-
-	base_src_prepare
-
-	eautoreconf
-}
-
-src_configure() {
-	local myconf
-
-	if use classic; then
-	# Configurable DRI drivers
-		driver_enable swrast
-
-	# Intel code
-		driver_enable video_cards_i915 i915
-		driver_enable video_cards_i965 i965
-			if ! use video_cards_i915 && \
-				! use video_cards_i965; then
-			driver_enable video_cards_intel i915 i965
-		fi
-
-		# Nouveau code
-		driver_enable video_cards_nouveau nouveau
-
-		# ATI code
-		driver_enable video_cards_r100 radeon
-		driver_enable video_cards_r200 r200
-		if ! use video_cards_r100 && \
-				! use video_cards_r200; then
-			driver_enable video_cards_radeon radeon r200
-		fi
-	fi
-
-	if use egl; then
-		myconf+="
-			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
-			$(use_enable gallium gallium-egl)
-		"
-	fi
-
-	if use gallium; then
-		myconf+="
-			$(use_enable llvm gallium-llvm)
-			$(use_enable openvg)
-			$(use_enable r600-llvm-compiler)
-			$(use_enable vdpau)
-			$(use_enable xvmc)
-		"
-		gallium_enable swrast
-		gallium_enable video_cards_vmware svga
-		gallium_enable video_cards_nouveau nouveau
-		gallium_enable video_cards_i915 i915
-		if ! use video_cards_i915; then
-			gallium_enable video_cards_intel i915
-		fi
-
-		gallium_enable video_cards_r300 r300
-		gallium_enable video_cards_r600 r600
-		gallium_enable video_cards_radeonsi radeonsi
-		if ! use video_cards_r300 && \
-				! use video_cards_r600; then
-			gallium_enable video_cards_radeon r300 r600
-		fi
-	fi
-
-	# x86 hardened pax_kernel needs glx-rts, bug 240956
-	if use pax_kernel; then
-		myconf+="
-			$(use_enable x86 glx-rts)
-		"
-	fi
-
-	# build fails with BSD indent, bug #428112
-	use userland_GNU || export INDENT=cat
-
-	econf \
-		--enable-dri \
-		--enable-glx \
-		$(use_enable !bindist texture-float) \
-		$(use_enable debug) \
-		$(use_enable egl) \
-		$(use_enable gbm) \
-		$(use_enable gles1) \
-		$(use_enable gles2) \
-		$(use_enable nptl glx-tls) \
-		$(use_enable osmesa) \
-		$(use_enable !pic asm) \
-		$(use_enable shared-glapi) \
-		$(use_enable xa) \
-		$(use_enable xorg) \
-		--with-dri-drivers=${DRI_DRIVERS} \
-		--with-gallium-drivers=${GALLIUM_DRIVERS} \
-		PYTHON2="${PYTHON}" \
-		${myconf}
-}
-
-src_install() {
-	base_src_install
-
-	find "${ED}" -name '*.la' -exec rm -f {} + || die
-
-	if use !bindist; then
-		dodoc docs/patents.txt
-	fi
-
-	# Install config file for eselect mesa
-	insinto /usr/share/mesa
-	newins "${FILESDIR}/eselect-mesa.conf.8.1" eselect-mesa.conf
-
-	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
-	# because user can eselect desired GL provider.
-	ebegin "Moving libGL and friends for dynamic switching"
-		local x
-		local gl_dir="/usr/$(get_libdir)/opengl/${OPENGL_DIR}/"
-		dodir ${gl_dir}/{lib,extensions,include/GL}
-		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL*,OpenVG}.{la,a,so*}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/lib \
-					|| die "Failed to move ${x}"
-			fi
-		done
-		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
-			if [ -f ${x} -o -L ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/include/GL \
-					|| die "Failed to move ${x}"
-			fi
-		done
-		for x in "${ED}"/usr/include/{EGL,GLES*,VG,KHR}; do
-			if [ -d ${x} ]; then
-				mv -f "${x}" "${ED}${gl_dir}"/include \
-					|| die "Failed to move ${x}"
-			fi
-		done
-	eend $?
-
-	if use classic || use gallium; then
-			ebegin "Moving DRI/Gallium drivers for dynamic switching"
-			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
-			keepdir /usr/$(get_libdir)/dri
-			dodir /usr/$(get_libdir)/mesa
-			for x in ${gallium_drivers[@]}; do
-				if [ -f "${S}/$(get_libdir)/gallium/${x}" ]; then
-					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
-						|| die "Failed to move ${x}"
-					insinto "/usr/$(get_libdir)/dri/"
-					if [ -f "${S}/$(get_libdir)/${x}" ]; then
-						insopts -m0755
-						doins "${S}/$(get_libdir)/${x}"
-					fi
-				fi
-			done
-			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
-				if [ -f ${x} -o -L ${x} ]; then
-					mv -f "${x}" "${x/dri/mesa}" \
-						|| die "Failed to move ${x}"
-				fi
-			done
-			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
-			ln -s ../mesa/*.so . || die "Creating symlink failed"
-			# remove symlinks to drivers known to eselect
-			for x in ${gallium_drivers[@]}; do
-				if [ -f ${x} -o -L ${x} ]; then
-					rm "${x}" || die "Failed to remove ${x}"
-				fi
-			done
-			popd
-		eend $?
-	fi
-}
-
-pkg_postinst() {
-	# Switch to the xorg implementation.
-	echo
-	eselect opengl set --use-old ${OPENGL_DIR}
-
-	# switch to xorg-x11 and back if necessary, bug #374647 comment 11
-	OLD_IMPLEM="$(eselect opengl show)"
-	if [[ ${OPENGL_DIR}x != ${OLD_IMPLEM}x ]]; then
-		eselect opengl set ${OPENGL_DIR}
-		eselect opengl set ${OLD_IMPLEM}
-	fi
-
-	# Select classic/gallium drivers
-	if use classic || use gallium; then
-		eselect mesa set --auto
-	fi
-
-	# warn about patent encumbered texture-float
-	if use !bindist; then
-		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
-		elog "enabled. Please see patents.txt for an explanation."
-	fi
-
-	local using_radeon r_flag
-	for r_flag in ${RADEON_CARDS}; do
-		if use video_cards_${r_flag}; then
-			using_radeon=1
-			break
-		fi
-	done
-
-	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
-		elog "Note that in order to have full S3TC support, it is necessary to install"
-		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
-		elog "textures in some apps, and some others even require this to run."
-	fi
-}
-
-# $1 - VIDEO_CARDS flag
-# other args - names of DRI drivers to enable
-# TODO: avoid code duplication for a more elegant implementation
-driver_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			DRI_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					DRI_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}
-
-gallium_enable() {
-	case $# in
-		# for enabling unconditionally
-		1)
-			GALLIUM_DRIVERS+=",$1"
-			;;
-		*)
-			if use $1; then
-				shift
-				for i in $@; do
-					GALLIUM_DRIVERS+=",${i}"
-				done
-			fi
-			;;
-	esac
-}

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index 837da73..bb27bfa 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -8,7 +8,6 @@
 	<flag name='egl'>Enable EGL support.</flag>
 	<flag name='gallium'>Build drivers based on Gallium3D, the new architecture for 3D graphics drivers.</flag>
 	<flag name='gbm'>Enable the Graphics Buffer Manager for EGL on KMS.</flag>
-	<flag name='shared-glapi'>Enable sharing of common code for the OpenGL API.</flag>
 	<flag name='gles1'>Enable GLESv1 support.</flag>
 	<flag name='gles2'>Enable GLESv2 support.</flag>
 	<flag name='llvm'>Enable LLVM backend for Gallium3D.</flag>


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/
@ 2013-10-19 14:32 David Heidelberger
  0 siblings, 0 replies; 17+ messages in thread
From: David Heidelberger @ 2013-10-19 14:32 UTC (permalink / raw
  To: gentoo-commits

commit:     ec9cc37b89628f0ec077f65646fb2ce90fce192e
Author:     David Heidelberger <david.heidelberger <AT> ixit <DOT> cz>
AuthorDate: Sat Oct 19 14:31:44 2013 +0000
Commit:     David Heidelberger <d.okias <AT> gmail <DOT> com>
CommitDate: Sat Oct 19 14:31:44 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/x11.git;a=commit;h=ec9cc37b

media-libs/mesa: bump 9.2.2

Package-Manager: portage-2.2.7

---
 media-libs/mesa/files/glx_ro_text_segm.patch       |  28 ++
 .../mesa-9.2-dont-require-llvm-for-r300.patch      |  12 +
 media-libs/mesa/mesa-9.2.2.ebuild                  | 478 +++++++++++++++++++++
 media-libs/mesa/metadata.xml                       |   2 +-
 4 files changed, 519 insertions(+), 1 deletion(-)

diff --git a/media-libs/mesa/files/glx_ro_text_segm.patch b/media-libs/mesa/files/glx_ro_text_segm.patch
new file mode 100644
index 0000000..495b7dc
--- /dev/null
+++ b/media-libs/mesa/files/glx_ro_text_segm.patch
@@ -0,0 +1,28 @@
+2011-02-09	Jeremy Huddleston <jeremyhu@freedesktop.org
+
+	#240956
+	* configure.ac	add support to enable readonly test segment on x86
+
+--- configure.ac.orig	2008-11-17 23:19:38.000000000 +0100
++++ configure.ac	2008-11-17 23:20:17.000000000 +0100
+@@ -499,6 +499,20 @@
+     enable_xcb=no
+ fi
+ 
++
++dnl readonly text segment on x86 hardened platforms
++AC_ARG_ENABLE([glx_rts],
++    [AS_HELP_STRING([--enable-glx-rts],
++        [on x86, use a readonly text segment for libGL @<:@default=disabled@:>@])],
++    [enable_glx_rts="$enableval"],
++    [enable_glx_rts=no])
++if test "x$enable_glx_rts" = xyes; then
++    DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
++else
++    enable_glx_rts=no
++fi
++
++
+ dnl
+ dnl libGL configuration per driver
+ dnl

diff --git a/media-libs/mesa/files/mesa-9.2-dont-require-llvm-for-r300.patch b/media-libs/mesa/files/mesa-9.2-dont-require-llvm-for-r300.patch
new file mode 100644
index 0000000..bd24787
--- /dev/null
+++ b/media-libs/mesa/files/mesa-9.2-dont-require-llvm-for-r300.patch
@@ -0,0 +1,12 @@
+diff --git a/configure.ac b/configure.ac
+index 21a1986..94b2247 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1777,7 +1777,6 @@ if test "x$with_gallium_drivers" != x; then
+         xr300)
+             HAVE_GALLIUM_R300=yes
+             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+-            gallium_require_llvm "Gallium R300"
+             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+             gallium_check_st "radeon/drm" "dri-r300" "" "" "xvmc-r300" "vdpau-r300"
+             ;;

diff --git a/media-libs/mesa/mesa-9.2.2.ebuild b/media-libs/mesa/mesa-9.2.2.ebuild
new file mode 100644
index 0000000..2e44083
--- /dev/null
+++ b/media-libs/mesa/mesa-9.2.2.ebuild
@@ -0,0 +1,478 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/mesa/mesa"
+
+if [[ ${PV} = 9999* ]]; then
+	GIT_ECLASS="git-2"
+	EXPERIMENTAL="true"
+fi
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit base autotools multilib multilib-minimal flag-o-matic \
+	python-any-r1 toolchain-funcs ${GIT_ECLASS}
+
+OPENGL_DIR="xorg-x11"
+
+MY_PN="${PN/m/M}"
+MY_P="${MY_PN}-${PV/_/-}"
+MY_SRC_P="${MY_PN}Lib-${PV/_/-}"
+
+FOLDER="${PV/_rc*/}"
+
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="http://mesa3d.sourceforge.net/"
+
+#SRC_PATCHES="mirror://gentoo/${P}-gentoo-patches-01.tar.bz2"
+if [[ $PV = 9999* ]]; then
+	SRC_URI="${SRC_PATCHES}"
+else
+	SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${FOLDER}/${MY_SRC_P}.tar.bz2
+		${SRC_PATCHES}"
+fi
+
+# The code is MIT/X11.
+# GLES[2]/gl[2]{,ext,platform}.h are SGI-B-2.0
+LICENSE="MIT SGI-B-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+INTEL_CARDS="i915 i965 ilo intel"
+RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
+VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} freedreno nouveau vmware"
+for card in ${VIDEO_CARDS}; do
+	IUSE_VIDEO_CARDS+=" video_cards_${card}"
+done
+
+IUSE="${IUSE_VIDEO_CARDS}
+	bindist +classic debug +egl +gallium gbm gles1 gles2 +llvm +nptl opencl
+	openvg osmesa pax_kernel pic r600-llvm-compiler selinux vdpau
+	wayland xvmc xa xorg kernel_FreeBSD"
+
+REQUIRED_USE="
+	llvm?   ( gallium )
+	openvg? ( egl gallium )
+	opencl? (
+		gallium
+		video_cards_r600? ( r600-llvm-compiler )
+		video_cards_radeon? ( r600-llvm-compiler )
+		video_cards_radeonsi? ( r600-llvm-compiler )
+	)
+	gles1?  ( egl )
+	gles2?  ( egl )
+	r600-llvm-compiler? ( gallium llvm || ( video_cards_r600 video_cards_radeonsi video_cards_radeon ) )
+	wayland? ( egl )
+	xa?  ( gallium )
+	xorg?  ( gallium )
+	video_cards_freedreno?  ( gallium )
+	video_cards_intel?  ( || ( classic gallium ) )
+	video_cards_i915?   ( || ( classic gallium ) )
+	video_cards_i965?   ( classic )
+	video_cards_ilo?    ( gallium )
+	video_cards_nouveau? ( || ( classic gallium ) )
+	video_cards_radeon? ( || ( classic gallium ) )
+	video_cards_r100?   ( classic )
+	video_cards_r200?   ( classic )
+	video_cards_r300?   ( gallium )
+	video_cards_r600?   ( gallium )
+	video_cards_radeonsi?   ( gallium llvm )
+	video_cards_vmware? ( gallium )
+"
+
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.46"
+# keep correct libdrm and dri2proto dep
+# keep blocks in rdepend for binpkg
+RDEPEND="
+	!<x11-base/xorg-server-1.7
+	!<=x11-proto/xf86driproto-2.0.3
+	abi_x86_32? ( !app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)] )
+	classic? ( app-admin/eselect-mesa )
+	gallium? ( app-admin/eselect-mesa )
+	>=app-admin/eselect-opengl-1.2.7
+	dev-libs/expat[${MULTILIB_USEDEP}]
+	gbm? ( virtual/udev[${MULTILIB_USEDEP}] )
+	>=x11-libs/libX11-1.3.99.901[${MULTILIB_USEDEP}]
+	x11-libs/libXdamage[${MULTILIB_USEDEP}]
+	x11-libs/libXext[${MULTILIB_USEDEP}]
+	x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+	>=x11-libs/libxcb-1.8.1[${MULTILIB_USEDEP}]
+	opencl? (
+				app-admin/eselect-opencl
+				dev-libs/libclc
+			)
+	vdpau? ( >=x11-libs/libvdpau-0.4.1[${MULTILIB_USEDEP}] )
+	wayland? ( >=dev-libs/wayland-1.0.3[${MULTILIB_USEDEP}] )
+	xorg? (
+		x11-base/xorg-server:=
+		x11-libs/libdrm[libkms]
+	)
+	xvmc? ( >=x11-libs/libXvMC-1.0.6[${MULTILIB_USEDEP}] )
+	${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_nouveau?,video_cards_vmware?,${MULTILIB_USEDEP}]
+"
+for card in ${INTEL_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
+	"
+done
+
+for card in ${RADEON_CARDS}; do
+	RDEPEND="${RDEPEND}
+		video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
+	"
+done
+
+DEPEND="${RDEPEND}
+	llvm? (
+		>=sys-devel/llvm-2.9[${MULTILIB_USEDEP}]
+		r600-llvm-compiler? ( sys-devel/llvm[video_cards_radeon] )
+		video_cards_radeonsi? ( sys-devel/llvm[video_cards_radeon] )
+	)
+	opencl? (
+				>=sys-devel/llvm-3.3-r1[video_cards_radeon,${MULTILIB_USEDEP}]
+				>=sys-devel/clang-3.3[${MULTILIB_USEDEP}]
+				>=sys-devel/gcc-4.6
+	)
+	sys-devel/bison
+	sys-devel/flex
+	virtual/pkgconfig
+	>=x11-proto/dri2proto-2.6[${MULTILIB_USEDEP}]
+	>=x11-proto/glproto-1.4.15-r1[${MULTILIB_USEDEP}]
+	>=x11-proto/xextproto-7.0.99.1[${MULTILIB_USEDEP}]
+	x11-proto/xf86driproto[${MULTILIB_USEDEP}]
+	x11-proto/xf86vidmodeproto[${MULTILIB_USEDEP}]
+	$(python_gen_any_dep 'dev-libs/libxml2[python,${PYTHON_USEDEP}]')
+"
+
+python_check_deps() {
+	has_version "dev-libs/libxml2[python,${PYTHON_USEDEP}]"
+}
+
+S="${WORKDIR}/${MY_P}"
+
+# It is slow without texrels, if someone wants slow
+# mesa without texrels +pic use is worth the shot
+QA_EXECSTACK="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+QA_WX_LOAD="usr/lib*/opengl/xorg-x11/lib/libGL.so*"
+
+# Think about: ggi, fbcon, no-X configs
+
+pkg_setup() {
+	# workaround toc-issue wrt #386545
+	use ppc64 && append-flags -mminimal-toc
+
+	python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	default
+	[[ $PV = 9999* ]] && git-2_src_unpack
+}
+
+src_prepare() {
+	# apply patches
+	if [[ ${PV} != 9999* && -n ${SRC_PATCHES} ]]; then
+		EPATCH_FORCE="yes" \
+		EPATCH_SOURCE="${WORKDIR}/patches" \
+		EPATCH_SUFFIX="patch" \
+		epatch
+	fi
+
+	# relax the requirement that r300 must have llvm, bug 380303
+	epatch "${FILESDIR}"/${PN}-9.2-dont-require-llvm-for-r300.patch
+
+	# fix for hardened pax_kernel, bug 240956
+	[[ ${PV} != 9999* ]] && epatch "${FILESDIR}"/glx_ro_text_segm.patch
+
+	# Solaris needs some recent POSIX stuff in our case
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		sed -i -e "s/-DSVR4/-D_POSIX_C_SOURCE=200112L/" configure.ac || die
+	fi
+
+	base_src_prepare
+
+	eautoreconf
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	local myconf
+
+	if use classic; then
+	# Configurable DRI drivers
+		driver_enable swrast
+
+	# Intel code
+		driver_enable video_cards_i915 i915
+		driver_enable video_cards_i965 i965
+		if ! use video_cards_i915 && \
+			! use video_cards_i965; then
+			driver_enable video_cards_intel i915 i965
+		fi
+
+		# Nouveau code
+		driver_enable video_cards_nouveau nouveau
+
+		# ATI code
+		driver_enable video_cards_r100 radeon
+		driver_enable video_cards_r200 r200
+		if ! use video_cards_r100 && \
+				! use video_cards_r200; then
+			driver_enable video_cards_radeon radeon r200
+		fi
+	fi
+
+	if use egl; then
+		myconf+="
+			--with-egl-platforms=x11$(use wayland && echo ",wayland")$(use gbm && echo ",drm")
+			$(use_enable gallium gallium-egl)
+		"
+	fi
+
+	if use gallium; then
+		myconf+="
+			$(use_enable llvm gallium-llvm)
+			$(use_enable openvg)
+			$(use_enable r600-llvm-compiler)
+			$(use_enable vdpau)
+			$(use_enable xvmc)
+		"
+		gallium_enable swrast
+		gallium_enable video_cards_vmware svga
+		gallium_enable video_cards_nouveau nouveau
+		gallium_enable video_cards_i915 i915
+		gallium_enable video_cards_ilo ilo
+		if ! use video_cards_i915 && \
+			! use video_cards_i965; then
+			gallium_enable video_cards_intel i915
+		fi
+
+		gallium_enable video_cards_r300 r300
+		gallium_enable video_cards_r600 r600
+		gallium_enable video_cards_radeonsi radeonsi
+		if ! use video_cards_r300 && \
+				! use video_cards_r600; then
+			gallium_enable video_cards_radeon r300 r600
+		fi
+
+		gallium_enable video_cards_freedreno freedreno
+		# opencl stuff
+		if use opencl; then
+			myconf+="
+				$(use_enable opencl)
+				--with-opencl-libdir="${EPREFIX}/usr/$(get_libdir)/OpenCL/vendors/mesa"
+				--with-clang-libdir="${EPREFIX}/usr/lib"
+				"
+		fi
+	fi
+
+	# x86 hardened pax_kernel needs glx-rts, bug 240956
+	if use pax_kernel; then
+		myconf+="
+			$(use_enable x86 glx-rts)
+		"
+	fi
+
+	# build fails with BSD indent, bug #428112
+	use userland_GNU || export INDENT=cat
+
+	if ! multilib_is_native_abi; then
+		myconf+="--disable-xorg
+			LLVM_CONFIG=${EPREFIX}/usr/bin/llvm-config.${ABI}"
+	fi
+
+	econf \
+		--enable-dri \
+		--enable-glx \
+		--enable-shared-glapi \
+		$(use_enable !bindist texture-float) \
+		$(use_enable debug) \
+		$(use_enable egl) \
+		$(use_enable gbm) \
+		$(use_enable gles1) \
+		$(use_enable gles2) \
+		$(use_enable nptl glx-tls) \
+		$(use_enable osmesa) \
+		$(use_enable !pic asm) \
+		$(use_enable xa) \
+		$(use_enable xorg) \
+		--with-dri-drivers=${DRI_DRIVERS} \
+		--with-gallium-drivers=${GALLIUM_DRIVERS} \
+		--with-llvm-shared-libs \
+		PYTHON2="${PYTHON}" \
+		${myconf}
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	# Move libGL and others from /usr/lib to /usr/lib/opengl/blah/lib
+	# because user can eselect desired GL provider.
+	ebegin "Moving libGL and friends for dynamic switching"
+		local x
+		local gl_dir="/usr/$(get_libdir)/opengl/${OPENGL_DIR}/"
+		dodir ${gl_dir}/{lib,extensions,include/GL}
+		for x in "${ED}"/usr/$(get_libdir)/lib{EGL,GL*,OpenVG}.{la,a,so*}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/lib \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
+			if [ -f ${x} -o -L ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include/GL \
+					|| die "Failed to move ${x}"
+			fi
+		done
+		for x in "${ED}"/usr/include/{EGL,GLES*,VG,KHR}; do
+			if [ -d ${x} ]; then
+				mv -f "${x}" "${ED}${gl_dir}"/include \
+					|| die "Failed to move ${x}"
+			fi
+		done
+	eend $?
+
+	if use classic || use gallium; then
+			ebegin "Moving DRI/Gallium drivers for dynamic switching"
+			local gallium_drivers=( i915_dri.so i965_dri.so r300_dri.so r600_dri.so swrast_dri.so )
+			keepdir /usr/$(get_libdir)/dri
+			dodir /usr/$(get_libdir)/mesa
+			for x in ${gallium_drivers[@]}; do
+				if [ -f "$(get_libdir)/gallium/${x}" ]; then
+					mv -f "${ED}/usr/$(get_libdir)/dri/${x}" "${ED}/usr/$(get_libdir)/dri/${x/_dri.so/g_dri.so}" \
+						|| die "Failed to move ${x}"
+					insinto "/usr/$(get_libdir)/dri/"
+					if [ -f "$(get_libdir)/${x}" ]; then
+						insopts -m0755
+						doins "$(get_libdir)/${x}"
+					fi
+				fi
+			done
+			for x in "${ED}"/usr/$(get_libdir)/dri/*.so; do
+				if [ -f ${x} -o -L ${x} ]; then
+					mv -f "${x}" "${x/dri/mesa}" \
+						|| die "Failed to move ${x}"
+				fi
+			done
+			pushd "${ED}"/usr/$(get_libdir)/dri || die "pushd failed"
+			ln -s ../mesa/*.so . || die "Creating symlink failed"
+			# remove symlinks to drivers known to eselect
+			for x in ${gallium_drivers[@]}; do
+				if [ -f ${x} -o -L ${x} ]; then
+					rm "${x}" || die "Failed to remove ${x}"
+				fi
+			done
+			popd
+		eend $?
+	fi
+	if use opencl; then
+		ebegin "Moving Gallium/Clover OpenCL implementation for dynamic switching"
+		local cl_dir="/usr/$(get_libdir)/OpenCL/vendors/mesa"
+		dodir ${cl_dir}/{lib,include}
+		if [ -f "${ED}/usr/$(get_libdir)/libOpenCL.so" ]; then
+			mv -f "${ED}"/usr/$(get_libdir)/libOpenCL.so* \
+			"${ED}"${cl_dir}
+		fi
+		if [ -f "${ED}/usr/include/CL/opencl.h" ]; then
+			mv -f "${ED}"/usr/include/CL \
+			"${ED}"${cl_dir}/include
+		fi
+		eend $?
+	fi
+}
+
+multilib_src_install_all() {
+	prune_libtool_files --all
+	einstalldocs
+
+	if use !bindist; then
+		dodoc docs/patents.txt
+	fi
+
+	# Install config file for eselect mesa
+	insinto /usr/share/mesa
+	newins "${FILESDIR}/eselect-mesa.conf.9.2" eselect-mesa.conf
+}
+
+pkg_postinst() {
+	# Switch to the xorg implementation.
+	echo
+	eselect opengl set --use-old ${OPENGL_DIR}
+
+	# switch to xorg-x11 and back if necessary, bug #374647 comment 11
+	OLD_IMPLEM="$(eselect opengl show)"
+	if [[ ${OPENGL_DIR}x != ${OLD_IMPLEM}x ]]; then
+		eselect opengl set ${OPENGL_DIR}
+		eselect opengl set ${OLD_IMPLEM}
+	fi
+
+	# Select classic/gallium drivers
+	if use classic || use gallium; then
+		eselect mesa set --auto
+	fi
+
+	# Switch to mesa opencl
+	if use opencl; then
+		eselect opencl set --use-old ${PN}
+	fi
+
+	# warn about patent encumbered texture-float
+	if use !bindist; then
+		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
+		elog "enabled. Please see patents.txt for an explanation."
+	fi
+
+	local using_radeon r_flag
+	for r_flag in ${RADEON_CARDS}; do
+		if use video_cards_${r_flag}; then
+			using_radeon=1
+			break
+		fi
+	done
+
+	if [[ ${using_radeon} = 1 ]] && ! has_version media-libs/libtxc_dxtn; then
+		elog "Note that in order to have full S3TC support, it is necessary to install"
+		elog "media-libs/libtxc_dxtn as well. This may be necessary to get nice"
+		elog "textures in some apps, and some others even require this to run."
+	fi
+}
+
+# $1 - VIDEO_CARDS flag
+# other args - names of DRI drivers to enable
+# TODO: avoid code duplication for a more elegant implementation
+driver_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			DRI_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					DRI_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}
+
+gallium_enable() {
+	case $# in
+		# for enabling unconditionally
+		1)
+			GALLIUM_DRIVERS+=",$1"
+			;;
+		*)
+			if use $1; then
+				shift
+				for i in $@; do
+					GALLIUM_DRIVERS+=",${i}"
+				done
+			fi
+			;;
+	esac
+}

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index bb27bfa..1bc2962 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -11,8 +11,8 @@
 	<flag name='gles1'>Enable GLESv1 support.</flag>
 	<flag name='gles2'>Enable GLESv2 support.</flag>
 	<flag name='llvm'>Enable LLVM backend for Gallium3D.</flag>
+	<flag name='opencl'>Enable the Clover Gallium OpenCL state tracker.</flag>
 	<flag name='openvg'>Enable the OpenVG 2D acceleration API for Gallium3D.</flag>
-	<flag name='opencl'>Enable OpenCL via mesa</flag>
 	<flag name='osmesa'>Build the Mesa library for off-screen rendering.</flag>
 	<flag name='pax_kernel'>Enable if the user plans to run the package under a pax enabled hardened kernel</flag>
 	<flag name='pic'>disable optimized assembly code that is not PIC friendly</flag>


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2013-10-19 14:32 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-06 17:37 [gentoo-commits] proj/x11:master commit in: media-libs/mesa/, media-libs/mesa/files/ Chi-Thanh Christopher Nguyen
  -- strict thread matches above, loose matches on Subject: below --
2013-10-19 14:32 David Heidelberger
2013-08-03 11:18 David Heidelberger
2013-08-03 11:01 David Heidelberger
2013-07-29 15:26 Chi-Thanh Christopher Nguyen
2013-07-20 17:10 David Heidelberger
2013-05-23 23:03 David Heidelberger
2013-05-23 21:30 David Heidelberger
2013-05-06 17:37 Chi-Thanh Christopher Nguyen
2013-05-06 17:37 Chi-Thanh Christopher Nguyen
2013-05-06 17:37 Chi-Thanh Christopher Nguyen
2013-04-28 12:53 Chi-Thanh Christopher Nguyen
2012-04-15 20:09 Chi-Thanh Christopher Nguyen
2012-02-10 18:55 Matt Turner
2012-02-10 18:32 Matt Turner
2012-01-20 22:27 Matt Turner
2011-06-30 23:48 Chi-Thanh Christopher Nguyen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox