summaryrefslogtreecommitdiff
path: root/x11-apps
diff options
context:
space:
mode:
authorAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2020-07-28 09:54:54 -0400
committerAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2020-07-28 09:54:54 -0400
commit734427ad69fcf920f861ebfe4b1141c89496317b (patch)
treed49fd81a147f543237569152cae03aedb0dfa534 /x11-apps
parentd241ee7943383a8ad8aacd70d5e301a6acf22c38 (diff)
downloadgentoo-overlay-734427ad69fcf920f861ebfe4b1141c89496317b.tar.xz
gentoo-overlay-734427ad69fcf920f861ebfe4b1141c89496317b.zip
import more packages
Diffstat (limited to 'x11-apps')
-rw-r--r--x11-apps/mesa-progs/Manifest1
-rw-r--r--x11-apps/mesa-progs/files/mesa-progs-8.4.0-improve-printing.patch289
-rw-r--r--x11-apps/mesa-progs/mesa-progs-8.4.0-r1.ebuild68
-rw-r--r--x11-apps/mesa-progs/mesa-progs-9999.ebuild64
-rw-r--r--x11-apps/mesa-progs/metadata.xml15
5 files changed, 437 insertions, 0 deletions
diff --git a/x11-apps/mesa-progs/Manifest b/x11-apps/mesa-progs/Manifest
new file mode 100644
index 0000000..3f7b33b
--- /dev/null
+++ b/x11-apps/mesa-progs/Manifest
@@ -0,0 +1 @@
+DIST mesa-demos-8.4.0.tar.bz2 10073259 BLAKE2B d251e705c6e3d2fe959161d736401fd06ba267a9c389341098373670b6f44ca7cdb451d96e94e3b22f006b696a9b19e38096423f6438544539f46beda91c03f4 SHA512 b72d03cad36e0535ff18dcfb222ec4200064b9264f6da51a6e5f03b0dd912abe188bc1d600b6698de3ce6f63b28d2ce01565886ca8e7079edc4967fbf2fb0957
diff --git a/x11-apps/mesa-progs/files/mesa-progs-8.4.0-improve-printing.patch b/x11-apps/mesa-progs/files/mesa-progs-8.4.0-improve-printing.patch
new file mode 100644
index 0000000..ffc4d3f
--- /dev/null
+++ b/x11-apps/mesa-progs/files/mesa-progs-8.4.0-improve-printing.patch
@@ -0,0 +1,289 @@
+From aa9e66f2d1e96937c56e4141bf8c966a8a59983f Mon Sep 17 00:00:00 2001
+From: Brian Paul <brianp@vmware.com>
+Date: Wed, 28 Feb 2018 11:14:34 -0700
+Subject: [PATCH 1/4] glxinfo/wglinfo: remove print_shader_limits() code
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+And add queries of GL 2.0 limits. All the VS, FS, GS limits which were
+reported with print_shader_limits() are also covered by the GL 2.0 and
+3.2 queries.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105285
+Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ src/xdemos/glinfo_common.c | 89 +++++---------------------------------
+ 1 file changed, 11 insertions(+), 78 deletions(-)
+
+diff --git a/src/xdemos/glinfo_common.c b/src/xdemos/glinfo_common.c
+index 3668026b..7ffbeac5 100644
+--- a/src/xdemos/glinfo_common.c
++++ b/src/xdemos/glinfo_common.c
+@@ -378,74 +378,6 @@ struct token_name
+ };
+
+
+-static void
+-print_shader_limit_list(const struct token_name *lim)
+-{
+- GLint max[1];
+- unsigned i;
+-
+- for (i = 0; lim[i].token; i++) {
+- glGetIntegerv(lim[i].token, max);
+- if (glGetError() == GL_NO_ERROR) {
+- printf(" %s = %d\n", lim[i].name, max[0]);
+- }
+- }
+-}
+-
+-
+-/**
+- * Print interesting limits for vertex/fragment shaders.
+- */
+-static void
+-print_shader_limits(GLenum target)
+-{
+- static const struct token_name vertex_limits[] = {
+- { GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB, "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB" },
+- { GL_MAX_VARYING_FLOATS_ARB, "GL_MAX_VARYING_FLOATS_ARB" },
+- { GL_MAX_VERTEX_ATTRIBS_ARB, "GL_MAX_VERTEX_ATTRIBS_ARB" },
+- { GL_MAX_TEXTURE_IMAGE_UNITS_ARB, "GL_MAX_TEXTURE_IMAGE_UNITS_ARB" },
+- { GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB" },
+- { GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB, "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB" },
+- { GL_MAX_TEXTURE_COORDS_ARB, "GL_MAX_TEXTURE_COORDS_ARB" },
+- { GL_MAX_VERTEX_OUTPUT_COMPONENTS , "GL_MAX_VERTEX_OUTPUT_COMPONENTS " },
+- { (GLenum) 0, NULL }
+- };
+- static const struct token_name fragment_limits[] = {
+- { GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB, "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB" },
+- { GL_MAX_TEXTURE_COORDS_ARB, "GL_MAX_TEXTURE_COORDS_ARB" },
+- { GL_MAX_TEXTURE_IMAGE_UNITS_ARB, "GL_MAX_TEXTURE_IMAGE_UNITS_ARB" },
+- { GL_MAX_FRAGMENT_INPUT_COMPONENTS , "GL_MAX_FRAGMENT_INPUT_COMPONENTS " },
+- { (GLenum) 0, NULL }
+- };
+- static const struct token_name geometry_limits[] = {
+- { GL_MAX_GEOMETRY_UNIFORM_COMPONENTS, "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS" },
+- { GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS, "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS" },
+- { GL_MAX_GEOMETRY_OUTPUT_VERTICES , "GL_MAX_GEOMETRY_OUTPUT_VERTICES " },
+- { GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS, "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS" },
+- { GL_MAX_GEOMETRY_INPUT_COMPONENTS , "GL_MAX_GEOMETRY_INPUT_COMPONENTS " },
+- { GL_MAX_GEOMETRY_OUTPUT_COMPONENTS, "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS" },
+- { (GLenum) 0, NULL }
+- };
+-
+- switch (target) {
+- case GL_VERTEX_SHADER:
+- printf(" GL_VERTEX_SHADER_ARB:\n");
+- print_shader_limit_list(vertex_limits);
+- break;
+-
+- case GL_FRAGMENT_SHADER:
+- printf(" GL_FRAGMENT_SHADER_ARB:\n");
+- print_shader_limit_list(fragment_limits);
+- break;
+-
+- case GL_GEOMETRY_SHADER:
+- printf(" GL_GEOMETRY_SHADER:\n");
+- print_shader_limit_list(geometry_limits);
+- break;
+- }
+-}
+-
+-
+ /**
+ * Print interesting limits for vertex/fragment programs.
+ */
+@@ -627,7 +559,17 @@ print_limits(const char *extensions, const char *oglstring, int version,
+ { 1, GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS, "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", "GL_ARB_tessellation_shader" },
+ { 1, GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS, "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS", "GL_ARB_tessellation_shader" },
+ #endif
+-
++#if defined(GL_VERSION_2_0)
++ { 1, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", "2.0" },
++ { 1, GL_MAX_DRAW_BUFFERS, "GL_MAX_DRAW_BUFFERS", "2.0" },
++ { 1, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", "2.0" },
++ { 1, GL_MAX_TEXTURE_COORDS, "GL_MAX_TEXTURE_COORDS", "2.0" },
++ { 1, GL_MAX_TEXTURE_IMAGE_UNITS, "GL_MAX_TEXTURE_IMAGE_UNITS", "2.0" },
++ { 1, GL_MAX_VARYING_FLOATS, "GL_MAX_VARYING_FLOATS", "2.0" },
++ { 1, GL_MAX_VERTEX_ATTRIBS, "GL_MAX_VERTEX_ATTRIBS", "2.0" },
++ { 1, GL_MAX_VERTEX_UNIFORM_COMPONENTS, "GL_MAX_VERTEX_UNIFORM_COMPONENTS", "2.0" },
++ { 1, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", "2.0" },
++#endif
+ #if defined(GL_VERSION_3_0)
+ { 1, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", "3.0" },
+ { 1, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", "3.0" },
+@@ -819,15 +761,6 @@ print_limits(const char *extensions, const char *oglstring, int version,
+ print_program_limits(GL_FRAGMENT_PROGRAM_ARB, extfuncs);
+ }
+ #endif
+- if (extension_supported("GL_ARB_vertex_shader", extensions)) {
+- print_shader_limits(GL_VERTEX_SHADER_ARB);
+- }
+- if (extension_supported("GL_ARB_fragment_shader", extensions)) {
+- print_shader_limits(GL_FRAGMENT_SHADER_ARB);
+- }
+- if (version >= 32) {
+- print_shader_limits(GL_GEOMETRY_SHADER);
+- }
+ }
+
+
+--
+2.19.2
+
+From 9804a083feb676cf810905a6826f708f54a15be2 Mon Sep 17 00:00:00 2001
+From: Brian Paul <brianp@vmware.com>
+Date: Wed, 28 Feb 2018 11:19:43 -0700
+Subject: [PATCH 2/4] glxinfo/wglinfo: fix VP/FP strings, indentation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Print extensions string instead of program target.
+Use less indentation to match other sections.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105285
+Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ src/xdemos/glinfo_common.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/xdemos/glinfo_common.c b/src/xdemos/glinfo_common.c
+index 7ffbeac5..57dccc82 100644
+--- a/src/xdemos/glinfo_common.c
++++ b/src/xdemos/glinfo_common.c
+@@ -419,10 +419,10 @@ print_program_limits(GLenum target,
+ int i;
+
+ if (target == GL_VERTEX_PROGRAM_ARB) {
+- printf(" GL_VERTEX_PROGRAM_ARB:\n");
++ printf(" GL_ARB_vertex_program:\n");
+ }
+ else if (target == GL_FRAGMENT_PROGRAM_ARB) {
+- printf(" GL_FRAGMENT_PROGRAM_ARB:\n");
++ printf(" GL_ARB_fragment_program:\n");
+ }
+ else {
+ return; /* something's wrong */
+@@ -431,14 +431,14 @@ print_program_limits(GLenum target,
+ for (i = 0; common_limits[i].token; i++) {
+ extfuncs->GetProgramivARB(target, common_limits[i].token, max);
+ if (glGetError() == GL_NO_ERROR) {
+- printf(" %s = %d\n", common_limits[i].name, max[0]);
++ printf(" %s = %d\n", common_limits[i].name, max[0]);
+ }
+ }
+ if (target == GL_FRAGMENT_PROGRAM_ARB) {
+ for (i = 0; fragment_limits[i].token; i++) {
+ extfuncs->GetProgramivARB(target, fragment_limits[i].token, max);
+ if (glGetError() == GL_NO_ERROR) {
+- printf(" %s = %d\n", fragment_limits[i].name, max[0]);
++ printf(" %s = %d\n", fragment_limits[i].name, max[0]);
+ }
+ }
+ }
+--
+2.19.2
+
+From 6a7cee63b714699b98a31b3e57039d26506465ae Mon Sep 17 00:00:00 2001
+From: Brian Paul <brianp@vmware.com>
+Date: Mon, 5 Mar 2018 09:37:17 -0700
+Subject: [PATCH 3/4] glxinfo/wglinfo: print (110) instead of empty line
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The GL_SHADING_LANGUAGE_VERSION query returns an empty string for
+GLSL 1.10. Instead of printing an empty line, print (110).
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105285
+Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ src/xdemos/glinfo_common.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/xdemos/glinfo_common.c b/src/xdemos/glinfo_common.c
+index 57dccc82..a8ec12e7 100644
+--- a/src/xdemos/glinfo_common.c
++++ b/src/xdemos/glinfo_common.c
+@@ -745,8 +745,17 @@ print_limits(const char *extensions, const char *oglstring, int version,
+ glGetIntegerv(GL_NUM_SHADING_LANGUAGE_VERSIONS, &n);
+ printf(" GL_NUM_SHADING_LANGUAGE_VERSIONS = %d\n", n);
+ for (i = 0; i < n; i++) {
+- printf(" %s\n", (const char *)
+- extfuncs->GetStringi(GL_SHADING_LANGUAGE_VERSION, i));
++ const char *lang = (const char *)
++ extfuncs->GetStringi(GL_SHADING_LANGUAGE_VERSION, i);
++ if (lang[0] == 0) {
++ /* The empty string is really GLSL 1.10. Instead of
++ * printing an empty line, print (110). For more info,
++ * see the GL 4.3 compatibility profile specification,
++ * page 628.
++ */
++ lang = "(110)";
++ }
++ printf(" %s\n", lang);
+ }
+ }
+ #endif
+--
+2.19.2
+
+From 27a0e5af804b3d28c51bd05ad38d25a2c8b4112d Mon Sep 17 00:00:00 2001
+From: Brian Paul <brianp@vmware.com>
+Date: Mon, 5 Mar 2018 09:44:41 -0700
+Subject: [PATCH 4/4] glxinfo/wglinfo: improve GL_ARB_imaging query code
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Print GL_MAX_CONVOLUTION_WIDTH, HEIGHT on separate lines.
+Print GL_MAX_COLOR_MATRIX_STACK_DEPTH in same section.
+
+Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ src/xdemos/glinfo_common.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/src/xdemos/glinfo_common.c b/src/xdemos/glinfo_common.c
+index a8ec12e7..92467d67 100644
+--- a/src/xdemos/glinfo_common.c
++++ b/src/xdemos/glinfo_common.c
+@@ -464,7 +464,6 @@ print_limits(const char *extensions, const char *oglstring, int version,
+ { 1, GL_MAX_ATTRIB_STACK_DEPTH, "GL_MAX_ATTRIB_STACK_DEPTH", NULL },
+ { 1, GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", NULL },
+ { 1, GL_MAX_CLIP_PLANES, "GL_MAX_CLIP_PLANES", NULL },
+- { 1, GL_MAX_COLOR_MATRIX_STACK_DEPTH, "GL_MAX_COLOR_MATRIX_STACK_DEPTH", "GL_ARB_imaging" },
+ { 1, GL_MAX_ELEMENTS_VERTICES, "GL_MAX_ELEMENTS_VERTICES", NULL },
+ { 1, GL_MAX_ELEMENTS_INDICES, "GL_MAX_ELEMENTS_INDICES", NULL },
+ { 1, GL_MAX_EVAL_ORDER, "GL_MAX_EVAL_ORDER", NULL },
+@@ -716,12 +715,16 @@ print_limits(const char *extensions, const char *oglstring, int version,
+
+ /* these don't fit into the above mechanism, unfortunately */
+ if (extension_supported("GL_ARB_imaging", extensions)) {
++ GLint d;
++ printf(" GL_ARB_imaging:\n");
+ extfuncs->GetConvolutionParameteriv(GL_CONVOLUTION_2D,
+- GL_MAX_CONVOLUTION_WIDTH, max);
++ GL_MAX_CONVOLUTION_WIDTH, &d);
++ printf(" GL_MAX_CONVOLUTION_WIDTH = %d\n", d);
+ extfuncs->GetConvolutionParameteriv(GL_CONVOLUTION_2D,
+- GL_MAX_CONVOLUTION_HEIGHT, max+1);
+- printf(" GL_ARB_imaging:\n");
+- printf(" GL_MAX_CONVOLUTION_WIDTH/HEIGHT = %d, %d\n", max[0], max[1]);
++ GL_MAX_CONVOLUTION_HEIGHT, &d);
++ printf(" GL_MAX_CONVOLUTION_HEIGHT = %d\n", d);
++ glGetIntegerv(GL_MAX_COLOR_MATRIX_STACK_DEPTH, &d);
++ printf(" GL_MAX_COLOR_MATRIX_STACK_DEPTH = %d\n", d);
+ }
+
+ if (extension_supported("GL_ARB_texture_compression", extensions)) {
+--
+2.19.2
+
diff --git a/x11-apps/mesa-progs/mesa-progs-8.4.0-r1.ebuild b/x11-apps/mesa-progs/mesa-progs-8.4.0-r1.ebuild
new file mode 100644
index 0000000..295d0d1
--- /dev/null
+++ b/x11-apps/mesa-progs/mesa-progs-8.4.0-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+MY_PN="${PN/progs/demos}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Mesa's OpenGL utility and demo programs (glxgears and glxinfo)"
+HOMEPAGE="https://www.mesa3d.org/ https://mesa.freedesktop.org/ https://gitlab.freedesktop.org/mesa/demos"
+if [[ ${PV} = 9999* ]]; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/demos.git"
+ EGIT_CHECKOUT_DIR="${S}"
+ EXPERIMENTAL="true"
+else
+ SRC_URI="https://mesa.freedesktop.org/archive/demos/${MY_P}.tar.bz2
+ https://mesa.freedesktop.org/archive/demos/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+ S="${WORKDIR}/${MY_P}"
+fi
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="egl gles2"
+
+RDEPEND="
+ media-libs/mesa[egl?,gles2?]
+ media-libs/glew
+ virtual/opengl
+ x11-libs/libX11"
+DEPEND="${RDEPEND}
+ virtual/glu
+ x11-base/xorg-proto"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-improve-printing.patch
+)
+
+src_prepare() {
+ default
+ [[ $PV = 9999* ]] && eautoreconf
+}
+
+src_compile() {
+ emake -C src/xdemos glxgears glxinfo
+
+ if use egl; then
+ emake LDLIBS="-lEGL" -C src/egl/opengl/ eglinfo
+ emake -C src/egl/eglut/ libeglut_x11.la
+ emake LDLIBS="-lGL -lEGL -lX11 -lm" -C src/egl/opengl/ eglgears_x11
+
+ if use gles2; then
+ emake LDLIBS="-lGLESv2 -lEGL -lX11" -C src/egl/opengles2/ es2_info
+ emake LDLIBS="-lGLESv2 -lEGL -lX11 -lm" -C src/egl/opengles2/ es2gears_x11
+ fi
+ fi
+}
+
+src_install() {
+ dobin src/xdemos/{glxgears,glxinfo}
+ if use egl; then
+ dobin src/egl/opengl/egl{info,gears_x11}
+
+ use gles2 && dobin src/egl/opengles2/es2{_info,gears_x11}
+ fi
+}
diff --git a/x11-apps/mesa-progs/mesa-progs-9999.ebuild b/x11-apps/mesa-progs/mesa-progs-9999.ebuild
new file mode 100644
index 0000000..96677b7
--- /dev/null
+++ b/x11-apps/mesa-progs/mesa-progs-9999.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+MY_PN="${PN/progs/demos}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Mesa's OpenGL utility and demo programs (glxgears and glxinfo)"
+HOMEPAGE="https://www.mesa3d.org/ https://mesa.freedesktop.org/ https://gitlab.freedesktop.org/mesa/demos"
+if [[ ${PV} = 9999* ]]; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/demos.git"
+ EGIT_CHECKOUT_DIR="${S}"
+ EXPERIMENTAL="true"
+else
+ SRC_URI="https://mesa.freedesktop.org/archive/demos/${MY_P}.tar.bz2
+ https://mesa.freedesktop.org/archive/demos/${PV}/${MY_P}.tar.bz2"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+ S="${WORKDIR}/${MY_P}"
+fi
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="egl gles2"
+
+RDEPEND="
+ media-libs/glew
+ media-libs/mesa[egl?,gles2?]
+ virtual/opengl
+ x11-libs/libX11"
+DEPEND="${RDEPEND}
+ virtual/glu
+ x11-base/xorg-proto"
+
+src_prepare() {
+ default
+ [[ $PV = 9999* ]] && eautoreconf
+}
+
+src_compile() {
+ emake -C src/xdemos glxgears glxinfo
+
+ if use egl; then
+ emake LDLIBS="-lEGL" -C src/egl/opengl/ eglinfo
+ emake -C src/egl/eglut/ libeglut_x11.la
+ emake LDLIBS="-lGL -lEGL -lX11 -lm" -C src/egl/opengl/ eglgears_x11
+
+ if use gles2; then
+ emake LDLIBS="-lGLESv2 -lEGL -lX11" -C src/egl/opengles2/ es2_info
+ emake LDLIBS="-lGLESv2 -lEGL -lX11 -lm" -C src/egl/opengles2/ es2gears_x11
+ fi
+ fi
+}
+
+src_install() {
+ dobin src/xdemos/{glxgears,glxinfo}
+ if use egl; then
+ dobin src/egl/opengl/egl{info,gears_x11}
+
+ use gles2 && dobin src/egl/opengles2/es2{_info,gears_x11}
+ fi
+}
diff --git a/x11-apps/mesa-progs/metadata.xml b/x11-apps/mesa-progs/metadata.xml
new file mode 100644
index 0000000..733cce5
--- /dev/null
+++ b/x11-apps/mesa-progs/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>x11@gentoo.org</email>
+ <name>X11</name>
+ </maintainer>
+ <use>
+ <flag name="egl">Build EGL utilities</flag>
+ <flag name="gles2">Build OpenGL ES 2 utilities</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">mesa3d</remote-id>
+ </upstream>
+</pkgmetadata>