summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2018-06-28 12:53:13 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2018-06-28 12:53:13 +0300
commit08b57aa38a665e7a4b88c709246cada7b4a28711 (patch)
tree16c4b4d6ec0f9aeccb60efa977d7c24580d8bce7
parent3973c33e411b911fa06a560f7fa67877ae98ef44 (diff)
added slightly edited mesa from x11 repo
-rw-r--r--metadata/categories.conf1
-rw-r--r--packages/x11-dri/mesa/files/0001-build-fix-building-vdpau-va.patch42
-rw-r--r--packages/x11-dri/mesa/files/045f38a50759bb225cb179703bc7050f6de752b1.patch42
-rw-r--r--packages/x11-dri/mesa/files/1d01b52d761227c9675b2785cc242ec51e803e84.patch36
-rw-r--r--packages/x11-dri/mesa/files/3c288da5eec81ee58b85927df18d9194ead8f5c2.patch27
-rw-r--r--packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch39
-rw-r--r--packages/x11-dri/mesa/files/fix-build-without-dri.patch29
-rw-r--r--packages/x11-dri/mesa/files/mesa-11.1-musl.patch27
-rw-r--r--packages/x11-dri/mesa/files/mesa-12.0-musl.patch28
-rw-r--r--packages/x11-dri/mesa/files/mesa-13.0-musl.patch28
-rw-r--r--packages/x11-dri/mesa/files/mesa-17.1.1-musl.patch20
-rw-r--r--packages/x11-dri/mesa/files/mesa-add-NDEBUG-without-rtti.patch21
-rw-r--r--packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch40
-rw-r--r--packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path.patch60
-rw-r--r--packages/x11-dri/mesa/mesa-11.2.2-r1.exheres-012
-rw-r--r--packages/x11-dri/mesa/mesa-12.0.6-r2.exheres-012
-rw-r--r--packages/x11-dri/mesa/mesa-13.0.6-r3.exheres-013
-rw-r--r--packages/x11-dri/mesa/mesa-17.1.9-r2.exheres-013
-rw-r--r--packages/x11-dri/mesa/mesa-17.2.8-r1.exheres-012
-rw-r--r--packages/x11-dri/mesa/mesa-17.3.9.exheres-012
-rw-r--r--packages/x11-dri/mesa/mesa-18.0.5.exheres-017
-rw-r--r--packages/x11-dri/mesa/mesa-18.1.2.exheres-018
-rw-r--r--packages/x11-dri/mesa/mesa-meson.exlib346
-rw-r--r--packages/x11-dri/mesa/mesa-scm.exheres-015
-rw-r--r--packages/x11-dri/mesa/mesa.exlib512
25 files changed, 1422 insertions, 0 deletions
diff --git a/metadata/categories.conf b/metadata/categories.conf
index acf5fa1..ab0966b 100644
--- a/metadata/categories.conf
+++ b/metadata/categories.conf
@@ -5,3 +5,4 @@ x11-themes
sys-devel
dev-util
dev-libs
+x11-dri
diff --git a/packages/x11-dri/mesa/files/0001-build-fix-building-vdpau-va.patch b/packages/x11-dri/mesa/files/0001-build-fix-building-vdpau-va.patch
new file mode 100644
index 0000000..e08b607
--- /dev/null
+++ b/packages/x11-dri/mesa/files/0001-build-fix-building-vdpau-va.patch
@@ -0,0 +1,42 @@
+From a578f009d13ef004ba28c14ba9d9b3733175c3ef Mon Sep 17 00:00:00 2001
+From: Rasmus Thomsen <cogitri@exherbo.org>
+Date: Thu, 26 Apr 2018 20:45:48 +0200
+Subject: [PATCH] build: fix building vdpau&va
+Upstream: No, this most likely isn't the correct way to fix this. However, Mesa's
+build system is massive, so I'll file a bug an see what upstream does about it :)
+
+In some situations underlinking occurs. We have to link to xcb-xfixes.
+---
+ src/gallium/targets/va/meson.build | 2 +-
+ src/gallium/targets/vdpau/meson.build | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/gallium/targets/va/meson.build b/src/gallium/targets/va/meson.build
+index 57d267e..1bd544f 100644
+--- a/src/gallium/targets/va/meson.build
++++ b/src/gallium/targets/va/meson.build
+@@ -46,7 +46,7 @@ libva_gallium = shared_library(
+ libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
+ ],
+ dependencies : [
+- dep_libdrm, dep_thread, driver_r600, driver_radeonsi, driver_nouveau,
++ dep_libdrm, dep_thread, driver_r600, driver_radeonsi, driver_nouveau, dep_xcb_xfixes,
+ ],
+ link_depends : va_link_depends,
+ install : true,
+diff --git a/src/gallium/targets/vdpau/meson.build b/src/gallium/targets/vdpau/meson.build
+index 93969d8..9caffc2 100644
+--- a/src/gallium/targets/vdpau/meson.build
++++ b/src/gallium/targets/vdpau/meson.build
+@@ -51,7 +51,7 @@ libvdpau_gallium = shared_library(
+ libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
+ ],
+ dependencies : [
+- dep_thread, driver_r300, driver_r600, driver_radeonsi, driver_nouveau,
++ dep_thread, driver_r300, driver_r600, driver_radeonsi, driver_nouveau, dep_xcb_xfixes,
+ ],
+ link_depends : vdpau_link_depends,
+ )
+--
+2.17.0
+
diff --git a/packages/x11-dri/mesa/files/045f38a50759bb225cb179703bc7050f6de752b1.patch b/packages/x11-dri/mesa/files/045f38a50759bb225cb179703bc7050f6de752b1.patch
new file mode 100644
index 0000000..d39901e
--- /dev/null
+++ b/packages/x11-dri/mesa/files/045f38a50759bb225cb179703bc7050f6de752b1.patch
@@ -0,0 +1,42 @@
+Source/Upstream: Git master, https://cgit.freedesktop.org/mesa/mesa/commit/?id=045f38a50759bb225cb179703bc7050f6de752b1
+Reason: Collides with files installed by vulkan-loader: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/
+
+From 045f38a50759bb225cb179703bc7050f6de752b1 Mon Sep 17 00:00:00 2001
+From: Matt Turner <mattst88@gmail.com>
+Date: Mon, 23 Jan 2017 16:48:01 -0800
+Subject: vulkan: Don't install vk_platform.h or vulkan.h.
+
+These files belong to the vulkan loader.
+
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+
+diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am
+index fba3d66..95f276e 100644
+--- a/src/intel/vulkan/Makefile.am
++++ b/src/intel/vulkan/Makefile.am
+@@ -23,9 +23,11 @@ include Makefile.sources
+
+ vulkan_includedir = $(includedir)/vulkan
+
+-vulkan_include_HEADERS = \
++noinst_HEADERS = \
+ $(top_srcdir)/include/vulkan/vk_platform.h \
+- $(top_srcdir)/include/vulkan/vulkan.h \
++ $(top_srcdir)/include/vulkan/vulkan.h
++
++vulkan_include_HEADERS = \
+ $(top_srcdir)/include/vulkan/vulkan_intel.h
+
+ lib_LTLIBRARIES = libvulkan_intel.la
+@@ -189,7 +191,7 @@ libvulkan_test_la_LIBADD = $(VULKAN_LIB_DEPS)
+
+ include $(top_srcdir)/install-lib-links.mk
+
+-noinst_HEADERS = \
++noinst_HEADERS += \
+ tests/state_pool_test_helper.h
+
+ LDADD = \
+--
+cgit v0.10.2
+
diff --git a/packages/x11-dri/mesa/files/1d01b52d761227c9675b2785cc242ec51e803e84.patch b/packages/x11-dri/mesa/files/1d01b52d761227c9675b2785cc242ec51e803e84.patch
new file mode 100644
index 0000000..a81d32f
--- /dev/null
+++ b/packages/x11-dri/mesa/files/1d01b52d761227c9675b2785cc242ec51e803e84.patch
@@ -0,0 +1,36 @@
+Upstream: Yes
+From 1d01b52d761227c9675b2785cc242ec51e803e84 Mon Sep 17 00:00:00 2001
+From: Dylan Baker <dylan@pnwbakers.com>
+Date: Tue, 24 Apr 2018 14:15:47 -0700
+Subject: meson: Fix no-rtti in llvm detection
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Because I clearly wasn't thinking and clearly didn't do a good job
+testing. Sigh
+
+Fixes: c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4
+ ("meson: fix builds against LLVM built without rtti")
+Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
+Reviewed-by: Marek Olšák <marek.olsak@amd.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 590ac40..52a1075 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1149,7 +1149,7 @@ if with_llvm
+ # programs, so we need to build all C++ code in mesa without rtti as well to
+ # ensure that linking works.
+ if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
+- cpp_args('-fno-rtti')
++ cpp_args += '-fno-rtti'
+ endif
+ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
+ error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
+--
+cgit v1.1
+
diff --git a/packages/x11-dri/mesa/files/3c288da5eec81ee58b85927df18d9194ead8f5c2.patch b/packages/x11-dri/mesa/files/3c288da5eec81ee58b85927df18d9194ead8f5c2.patch
new file mode 100644
index 0000000..4850c97
--- /dev/null
+++ b/packages/x11-dri/mesa/files/3c288da5eec81ee58b85927df18d9194ead8f5c2.patch
@@ -0,0 +1,27 @@
+Upstream: yes
+
+From 3c288da5eec81ee58b85927df18d9194ead8f5c2 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 12 Jun 2018 11:59:01 +0100
+Subject: [PATCH] drivers/dri/i965: add missing #include
+
+brw_bufmgr.h uses time_t without include time.h, so the build fails under musl.
+
+Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
+---
+ src/mesa/drivers/dri/i965/brw_bufmgr.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.h b/src/mesa/drivers/dri/i965/brw_bufmgr.h
+index 8cdf944e3da..32fc7a553c9 100644
+--- a/src/mesa/drivers/dri/i965/brw_bufmgr.h
++++ b/src/mesa/drivers/dri/i965/brw_bufmgr.h
+@@ -37,6 +37,8 @@
+ #include <stdbool.h>
+ #include <stdint.h>
+ #include <stdio.h>
++#include <time.h>
++
+ #include "util/u_atomic.h"
+ #include "util/list.h"
+
diff --git a/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch b/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
new file mode 100644
index 0000000..18f7b00
--- /dev/null
+++ b/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
@@ -0,0 +1,39 @@
+Upstream: Yes
+From c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4 Mon Sep 17 00:00:00 2001
+From: Dylan Baker <dylan@pnwbakers.com>
+Date: Mon, 16 Apr 2018 14:47:58 -0700
+Subject: meson: fix builds against LLVM built without rtti
+
+Building without rtti is a frought with peril, but it's something that
+autotools supports so we need to support it too.
+
+Since we've moved to version 0.44 as a whole we can use the meson
+functionality for accessing random llvm-config options we can check for
+rtti and add -fno-rtti to all C++ code accordingly.
+
+Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
+---
+ meson.build | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 2e10ed7..4019b21 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1143,6 +1143,13 @@ if with_llvm
+ '-DHAVE_LLVM=0x0@0@0@1@'.format(_llvm_version[0], _llvm_version[1]),
+ '-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
+ ]
++
++ # LLVM can be built without rtti, turning off rtti changes the ABI of C++
++ # programs, so we need to build all C++ code in mesa without rtti as well to
++ # ensure that linking works.
++ if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
++ cpp_args('-fno-rtti')
++ endif
+ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
+ error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
+ endif
+--
+cgit v1.1
+
diff --git a/packages/x11-dri/mesa/files/fix-build-without-dri.patch b/packages/x11-dri/mesa/files/fix-build-without-dri.patch
new file mode 100644
index 0000000..d6ab841
--- /dev/null
+++ b/packages/x11-dri/mesa/files/fix-build-without-dri.patch
@@ -0,0 +1,29 @@
+Author: Rasmus Thomsen <cogitri@exherbo.org>
+Reason: Fix build without dri
+Upstream: No, not yet
+diff --git a/src/gallium/auxiliary/pipe-loader/meson.build b/src/gallium/auxiliary/pipe-loader/meson.build
+index 32e8188..31b3e7e 100644
+--- a/src/gallium/auxiliary/pipe-loader/meson.build
++++ b/src/gallium/auxiliary/pipe-loader/meson.build
+@@ -35,6 +35,12 @@ if with_gallium_drisw_kms
+ libpipe_loader_defines += '-DHAVE_PIPE_LOADER_KMS'
+ endif
+
++if with_dri == true
++ dri_args = '-DHAVE_PIPE_LOADER_DRI=1'
++else
++ dri_args = [ ]
++endif
++
+ libpipe_loader_static = static_library(
+ 'pipe_loader_static',
+ [files_pipe_loader, xmlpool_options_h],
+@@ -43,7 +49,7 @@ libpipe_loader_static = static_library(
+ inc_gallium_winsys,
+ ],
+ c_args : [
+- c_vis_args, '-DHAVE_PIPE_LOADER_DRI', '-DGALLIUM_STATIC_TARGETS=1',
++ c_vis_args, dri_args , '-DGALLIUM_STATIC_TARGETS=1',
+ libpipe_loader_defines,
+ ],
+ link_with : [libloader, libxmlconfig],
diff --git a/packages/x11-dri/mesa/files/mesa-11.1-musl.patch b/packages/x11-dri/mesa/files/mesa-11.1-musl.patch
new file mode 100644
index 0000000..596f6eb
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-11.1-musl.patch
@@ -0,0 +1,27 @@
+Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=93059
+From 09d5b4c04356c7bd56089605aed7742be89644c1 Mon Sep 17 00:00:00 2001
+From: Kylie McClain <somasis@exherbo.org>
+Date: Sat, 21 Nov 2015 16:39:20 -0500
+Subject: [PATCH] i965: don't underlink i965_dri.so, causes miserable failure
+ on musl libc
+
+---
+ src/mesa/drivers/dri/i965/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
+index 9d003e4..8797431 100644
+--- a/src/mesa/drivers/dri/i965/Makefile.am
++++ b/src/mesa/drivers/dri/i965/Makefile.am
+@@ -44,7 +44,7 @@ AM_CXXFLAGS = $(AM_CFLAGS)
+
+ noinst_LTLIBRARIES = libi965_dri.la libi965_compiler.la
+ libi965_dri_la_SOURCES = $(i965_FILES)
+-libi965_dri_la_LIBADD = libi965_compiler.la $(INTEL_LIBS)
++libi965_dri_la_LIBADD = libi965_compiler.la $(INTEL_LIBS) $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+
+ libi965_compiler_la_SOURCES = $(i965_compiler_FILES)
+
+--
+2.6.3
+
diff --git a/packages/x11-dri/mesa/files/mesa-12.0-musl.patch b/packages/x11-dri/mesa/files/mesa-12.0-musl.patch
new file mode 100644
index 0000000..1893d87
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-12.0-musl.patch
@@ -0,0 +1,28 @@
+Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=93059
+From 553b874eefbdafb0b1f509cd39f861f5c3b98efe Mon Sep 17 00:00:00 2001
+From: Kylie McClain <somasis@exherbo.org>
+Date: Sat, 21 Nov 2015 16:39:20 -0500
+Subject: [PATCH] i965: don't underlink i965_dri.so, causes miserable failure
+ on musl libc
+
+---
+ src/mesa/drivers/dri/i965/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
+index 0a5222e..0a88ec5 100644
+--- a/src/mesa/drivers/dri/i965/Makefile.am
++++ b/src/mesa/drivers/dri/i965/Makefile.am
+@@ -52,7 +52,8 @@ libi965_dri_la_SOURCES = $(i965_FILES)
+ libi965_dri_la_LIBADD = \
+ $(top_builddir)/src/intel/isl/libisl.la \
+ libi965_compiler.la \
+- $(INTEL_LIBS)
++ $(INTEL_LIBS) \
++ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+
+ libi965_compiler_la_SOURCES = \
+ $(i965_compiler_FILES) \
+--
+2.8.3
+
diff --git a/packages/x11-dri/mesa/files/mesa-13.0-musl.patch b/packages/x11-dri/mesa/files/mesa-13.0-musl.patch
new file mode 100644
index 0000000..5b898cd
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-13.0-musl.patch
@@ -0,0 +1,28 @@
+Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=93059
+From 8c30dacc9d7f1e47f2519ab0e998a5e33f3cf75a Mon Sep 17 00:00:00 2001
+From: Kylie McClain <somasis@exherbo.org>
+Date: Sat, 21 Nov 2015 16:39:20 -0500
+Subject: [PATCH] i965: don't underlink i965_dri.so, causes miserable failure
+ on musl libc
+
+---
+ src/mesa/drivers/dri/i965/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
+index a192fc0..dd3c7b1 100644
+--- a/src/mesa/drivers/dri/i965/Makefile.am
++++ b/src/mesa/drivers/dri/i965/Makefile.am
+@@ -83,7 +83,8 @@ libi965_dri_la_LIBADD = \
+ libi965_compiler.la \
+ $(top_builddir)/src/intel/blorp/libblorp.la \
+ $(I965_PERGEN_LIBS) \
+- $(INTEL_LIBS)
++ $(INTEL_LIBS) \
++ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+
+ libi965_compiler_la_SOURCES = \
+ $(i965_compiler_FILES) \
+--
+2.10.2
+
diff --git a/packages/x11-dri/mesa/files/mesa-17.1.1-musl.patch b/packages/x11-dri/mesa/files/mesa-17.1.1-musl.patch
new file mode 100644
index 0000000..50c2d8b
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-17.1.1-musl.patch
@@ -0,0 +1,20 @@
+Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=93059
+From 8c30dacc9d7f1e47f2519ab0e998a5e33f3cf75a Mon Sep 17 00:00:00 2001
+From: Kylie McClain <somasis@exherbo.org>
+Date: Sat, 21 Nov 2015 16:39:20 -0500
+Subject: [PATCH] i965: don't underlink i965_dri.so, causes miserable failure
+ on musl libc
+
+diff -Naur mesa-17.1.1/src/mesa/drivers/dri/i965/Makefile.am mesa-17.1.1.new/src/mesa/drivers/dri/i965/Makefile.am
+--- mesa-17.1.1/src/mesa/drivers/dri/i965/Makefile.am 2017-05-25 09:13:13.000000000 +0200
++++ mesa-17.1.1.new/src/mesa/drivers/dri/i965/Makefile.am 2017-05-29 18:12:35.469258076 +0200
+@@ -41,7 +41,8 @@
+ $(DEFINES) \
+ $(VISIBILITY_CFLAGS) \
+ $(LIBDRM_CFLAGS) \
+- $(VALGRIND_CFLAGS)
++ $(VALGRIND_CFLAGS) \
++ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+
+ AM_CXXFLAGS = $(AM_CFLAGS)
+
diff --git a/packages/x11-dri/mesa/files/mesa-add-NDEBUG-without-rtti.patch b/packages/x11-dri/mesa/files/mesa-add-NDEBUG-without-rtti.patch
new file mode 100644
index 0000000..47403cf
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-add-NDEBUG-without-rtti.patch
@@ -0,0 +1,21 @@
+Author: Rasmus Thomsen <cogitri@exherbo.org>
+Reason: Mesa's meson build system doesn't pass
+NDEBUG to the cppargs when building with LLVM
+without RTTI support enabled. This causes the
+build to fail because some parts of debugging
+need RTTI support.
+Upstream: Created bug for it, https://bugs.freedesktop.org/show_bug.cgi?id=106391
+diff --git a/meson.build b/meson.build
+index 6e61766809..269b5bd3b9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1150,6 +1150,9 @@ if with_llvm
+ # ensure that linking works.
+ if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
+ cpp_args += '-fno-rtti'
++ pre_args += [
++ '-DNDEBUG',
++ ]
+ endif
+ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
+ error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
diff --git a/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch b/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch
new file mode 100644
index 0000000..bce9bf7
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch
@@ -0,0 +1,40 @@
+Source: See below, slightly modified for 17.2.0
+Upstream: under review, https://patchwork.freedesktop.org/patch/157889/
+Reason: Fix cross compiling
+
+diff --git a/configure.ac b/configure.ac
+index 0bd9650..c5dc8da 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1696,12 +1696,18 @@ if test "x$with_platforms" = xauto; then
+ with_platforms=$with_egl_platforms
+ fi
+
+-PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
++AC_ARG_WITH([wayland-scanner-path],
++ [AS_HELP_STRING([--with-wayland-scanner-path=PATH],
++ [Path to wayland-scanner (by default the path from
++ 'pkg-config --variable=wayland_scanner wayland-scanner' is used)])],
++ [WAYLAND_SCANNER="$withval"],
++ [WAYLAND_SCANNER="auto"])
++if test x$WAYLAND_SCANNER = xauto; then
++ PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
+ WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`,
+- WAYLAND_SCANNER='')
+-if test "x$WAYLAND_SCANNER" = x; then
+- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:])
++ WAYLAND_SCANNER=":")
+ fi
++AC_SUBST(WAYLAND_SCANNER)
+
+ PKG_CHECK_EXISTS([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED], [have_wayland_protocols=yes], [have_wayland_protocols=no])
+ if test "x$have_wayland_protocols" = xyes; then
+@@ -1718,7 +1724,7 @@ for plat in $platforms; do
+ PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
+
+ if test "x$WAYLAND_SCANNER" = "x:"; then
+- AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform])
++ AC_MSG_ERROR([wayland-scanner is needed by Wayland platform but it could not be found and --with-wayland-scanner-path was not used])
+ fi
+ if test "x$have_wayland_protocols" = xno; then
+ AC_MSG_ERROR([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED is needed to compile the wayland platform])
diff --git a/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path.patch b/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path.patch
new file mode 100644
index 0000000..a80f11a
--- /dev/null
+++ b/packages/x11-dri/mesa/files/mesa-configure.ac-Add-with-wayland-scanner-path.patch
@@ -0,0 +1,60 @@
+Upstream: under review, https://patchwork.freedesktop.org/patch/157889/
+Reason: Fix cross compiling
+
+From b9f3b1cd55ef45e196dfa9c4f9469c7a7fa7f91d Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 23 May 2017 11:13:57 +0300
+Subject: [PATCH] configure.ac: Add --with-wayland-scanner-path
+
+Modify wayland-scanner lookup: Use the path given by pkg-config
+but offer an option to override the path with
+"--with-wayland-scanner-path=PATH". The latter is useful for
+cross-compile situations.
+
+AC_PATH_PROG is no longer used (if the scanner is installed it should
+get found by pkg-config). AC_SUBST is added so the output variable is
+created when only the configure option is used.
+---
+ configure.ac | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b069f54155..5bd8dc76ab 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1661,12 +1661,19 @@ if test "x$with_platforms" = xauto; then
+ with_platforms=$with_egl_platforms
+ fi
+
+-PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
++
++AC_ARG_WITH([wayland-scanner-path],
++ [AS_HELP_STRING([--with-wayland-scanner-path=PATH],
++ [Path to wayland-scanner (by default the path from
++ 'pkg-config --variable=wayland_scanner wayland-scanner' is used)])],
++ [WAYLAND_SCANNER="$withval"],
++ [WAYLAND_SCANNER="auto"])
++if test x$WAYLAND_SCANNER = xauto; then
++ PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
+ WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`,
+- WAYLAND_SCANNER='')
+-if test "x$WAYLAND_SCANNER" = x; then
+- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:])
++ WAYLAND_SCANNER=":")
+ fi
++AC_SUBST(WAYLAND_SCANNER)
+
+ # Do per platform setups and checks
+ platforms=`IFS=', '; echo $with_platforms`
+@@ -1677,7 +1684,7 @@ for plat in $platforms; do
+ PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
+
+ if test "x$WAYLAND_SCANNER" = "x:"; then
+- AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform])
++ AC_MSG_ERROR([wayland-scanner is needed by Wayland platform but it could not be found and --with-wayland-scanner-path was not used])
+ fi
+ DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM"
+ ;;
+--
+2.13.2
+
diff --git a/packages/x11-dri/mesa/mesa-11.2.2-r1.exheres-0 b/packages/x11-dri/mesa/mesa-11.2.2-r1.exheres-0
new file mode 100644
index 0000000..4916199
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-11.2.2-r1.exheres-0
@@ -0,0 +1,12 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/mesa-11.1-musl.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-12.0.6-r2.exheres-0 b/packages/x11-dri/mesa/mesa-12.0.6-r2.exheres-0
new file mode 100644
index 0000000..8467eea
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-12.0.6-r2.exheres-0
@@ -0,0 +1,12 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/mesa-12.0-musl.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-13.0.6-r3.exheres-0 b/packages/x11-dri/mesa/mesa-13.0.6-r3.exheres-0
new file mode 100644
index 0000000..82fded6
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-13.0.6-r3.exheres-0
@@ -0,0 +1,13 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/045f38a50759bb225cb179703bc7050f6de752b1.patch
+ "${FILES}"/mesa-13.0-musl.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-17.1.9-r2.exheres-0 b/packages/x11-dri/mesa/mesa-17.1.9-r2.exheres-0
new file mode 100644
index 0000000..caa9ead
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-17.1.9-r2.exheres-0
@@ -0,0 +1,13 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/mesa-17.1.1-musl.patch
+ "${FILES}"/mesa-configure.ac-Add-with-wayland-scanner-path.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-17.2.8-r1.exheres-0 b/packages/x11-dri/mesa/mesa-17.2.8-r1.exheres-0
new file mode 100644
index 0000000..c1b6e6e
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-17.2.8-r1.exheres-0
@@ -0,0 +1,12 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-17.3.9.exheres-0 b/packages/x11-dri/mesa/mesa-17.3.9.exheres-0
new file mode 100644
index 0000000..2d4389e
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-17.3.9.exheres-0
@@ -0,0 +1,12 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~armv7 ~armv8 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/mesa-configure.ac-Add-with-wayland-scanner-path-17.2.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-18.0.5.exheres-0 b/packages/x11-dri/mesa/mesa-18.0.5.exheres-0
new file mode 100644
index 0000000..00d12ff
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-18.0.5.exheres-0
@@ -0,0 +1,17 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Copyright 2018 Rasmus Thomsen <cogitri@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa-meson
+
+PLATFORMS="~amd64 ~armv7 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/0001-build-fix-building-vdpau-va.patch
+ "${FILES}"/fix-build-without-dri.patch
+ "${FILES}"/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
+ "${FILES}"/1d01b52d761227c9675b2785cc242ec51e803e84.patch
+ "${FILES}"/mesa-add-NDEBUG-without-rtti.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-18.1.2.exheres-0 b/packages/x11-dri/mesa/mesa-18.1.2.exheres-0
new file mode 100644
index 0000000..f870e35
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-18.1.2.exheres-0
@@ -0,0 +1,18 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Copyright 2018 Rasmus Thomsen <cogitri@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa-meson
+
+PLATFORMS="~amd64 ~armv7 ~x86"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/0001-build-fix-building-vdpau-va.patch
+ "${FILES}"/fix-build-without-dri.patch
+ "${FILES}"/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
+ "${FILES}"/1d01b52d761227c9675b2785cc242ec51e803e84.patch
+ "${FILES}"/mesa-add-NDEBUG-without-rtti.patch
+ "${FILES}"/3c288da5eec81ee58b85927df18d9194ead8f5c2.patch
+)
+
diff --git a/packages/x11-dri/mesa/mesa-meson.exlib b/packages/x11-dri/mesa/mesa-meson.exlib
new file mode 100644
index 0000000..e94774b
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-meson.exlib
@@ -0,0 +1,346 @@
+# Copyright 2018 Rasmus Thomsen <cogitri@exherbo.org>
+# Based in part upon 'mesa.exlib' which is:
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2008-2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Copyright 2013 Saleem Abdulrasool <compnerd@compnerd.org>
+
+if ever is_scm ; then
+ SCM_REPOSITORY="https://anongit.freedesktop.org/git/${PN}/${PN}.git"
+ require scm-git
+else
+ MY_PV=${PV%%-rc*}
+ DOWNLOADS="
+ https://mesa.freedesktop.org/archive/${MY_PV}/${PNV}.tar.xz
+ https://mesa.freedesktop.org/archive/${PNV}.tar.xz
+ "
+ UPSTREAM_RELEASE_NOTES="https://www.mesa3d.org/relnotes/${PV}.html"
+fi
+
+require alternatives meson [ meson_minimum_version=0.42 ]
+
+export_exlib_phases src_prepare src_configure src_install
+
+SUMMARY="Mesa's OpenGL library"
+HOMEPAGE="https://www.mesa3d.org"
+
+LICENCES="MIT"
+SLOT="0"
+MYOPTIONS="
+ d3d9 [[ description = [ Gallium Direct3D 9.x state tracker ] requires = [ llvm X ] ]]
+ d3d9? (
+ video_drivers:
+ (
+ i915
+ intel
+ nouveau
+ r300
+ radeon
+ vmware
+ ) [[ number-selected = at-least-one ]]
+ )
+ gl-vendor [[
+ description = [ Install a glvnd (gl vendor) file to allow for parallel install of multiple GL implementations ]
+ ]]
+ llvm [[ description = [ Using LLVM as the shader backend for Gallium ] ]]
+ opencl [[ description = [ Enable the OpenCL Gallium state tracker ] requires = [ llvm ] ]]
+ sensors [[ description = [ Gallium extra HUD and sensors support ] ]]
+ sensors? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+ texture-float [[ description = [ Enable floating-point textures and renderbuffers. SGI claims to hold patents on this code. ] ]]
+ va [[ description = [ Enable the VA-API state tracker ] ]]
+ va? (
+ ( X wayland ) [[ number-selected = at-least-one ]]
+ video_drivers:
+ (
+ nouveau
+ radeon
+ ) [[ number-selected = at-least-one ]]
+ )
+ vdpau [[ description = [ Enable support for VDPAU hardware accelerated video decoding ] requires = [ X ] ]]
+ wayland
+ X [[ description = [ Enable GLX ] presumed = true ]]
+ xa [[ description = [ Enable the X Acceleration API (xatracker) ] ]]
+ xvmc [[ description = [ Enable support for XvMC hardware accelerated video decoding ] ]]
+ (
+ platform:
+ amd64
+ x86
+ video_drivers:
+ (
+ i915 [[ description = [ Gallium driver for i915 based Intel GPUs ] ]]
+ intel [[ description = [ Driver for i915, i965 and newer ] ]]
+ ) [[ number-selected = at-most-one ]]
+ gallium-swrast [[
+ description = [ Gallium based software driver ]
+ requires = [ llvm ]
+ ]]
+ (
+ nouveau [[ description = [ (Gallium) Generally for newer Nvidia cards ] ]]
+ nouveau-legacy [[ description = [ Generally for older Nvidia cards ] ]]
+ ) [[ number-selected = at-most-one ]]
+ (
+ r300 [[ description = [ (Gallium) Driver for Radeon cards from 9500 (r300) to X1950 (r500) ] ]]
+ radeon [[ description = [ (Gallium) Driver for the Radeon HD-2000 (r600) and newer ] ]]
+ ) [[ requires = [ llvm video_drivers: gallium-swrast ] ]]
+ radeon-legacy [[ description = [ Classic driver for cards older than the Radeon 9500 (r300) ] ]]
+ virtio-gpu [[ description = [ Gallium driver for guest systems on hypervisors with VirtIO-GPU ] ]]
+ vmware [[ description = [ Gallium driver for VMware's SVGA virtual GPU ] ]]
+ )
+ (
+ platform:
+ armv7
+ video_drivers:
+ (
+ vc4 [[ description = [ Gallium driver for Raspberry Pi Videocore graphics ] ]]
+ )
+ )
+ llvm? (
+ ( video_drivers: gallium-swrast i915 nouveau r300 radeon ) [[ number-selected = at-least-one ]]
+ )
+ opencl? (
+ ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]]
+ )
+ valgrind [[ description = [ Support valgrind intrinsics to suppress false warnings ] ]]
+ vdpau? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+ xa? ( ( video_drivers: i915 nouveau vmware ) [[ number-selected = at-least-one ]] )
+ xvmc? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+"
+
+# NOTE(Cogitri): The below version is needed to build mesa at all
+LIBDRM_REQUIRED='[>=2.4.75]'
+# The below version is needed to build amdvk or radeonsi
+LIBDRM_REQUIRED_AMDGPU='[>=2.4.91]'
+# The below version is needed to build any of the other radeon drivers
+LIBDRM_REQUIRED_RADEON='[>=2.4.71]'
+# The below version is needed to build dri or gallium nouveau
+LIBDRM_REQUIRED_NOUVEAU='[>=2.4.66]'
+# The below version is needed to build dri or gallium i915
+LIBDRM_REQUIRED_INTEL='[>=2.4.75]'
+# NOTE(Cogitri): for xcb-glx
+XCBDRI2_REQUIRED='[>=1.8.1]'
+
+# TODO state trackers: OpenMAX(omx), requires additional new dependency libomxil-bellagio
+DEPENDENCIES="
+ build:
+ dev-lang/python:2.7
+ dev-libs/libpthread-stubs[>=0.4]
+ dev-python/Mako[>=0.8.0][python_abis:2.7]
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkg-config[>=0.9.0]
+ !x11-dri/eclectic-opengl
+ gl-vendor? ( dev-libs/libglvnd[>=0.2.0] )
+ opencl? ( dev-lang/clang[>=3.9] )
+ X? ( x11-proto/xorgproto )
+ build+run:
+ dev-libs/expat
+ sys-libs/zlib[>=1.2.3]
+ x11-dri/libdrm${LIBDRM_REQUIRED}
+ llvm? ( dev-lang/llvm[>=3.9.0][-static(-)] [[
+ note = [ meson build system doesn't support static llvm ]
+ ]]
+ )
+ sensors? (
+ sys-apps/lm_sensors[>=3.4.0]
+ )
+ opencl? (
+ dev-lang/llvm[>=3.9.0][-static(-)]
+ dev-libs/libclc
+ )
+ va? (
+ x11-libs/libX11
+ x11-libs/libva[>=1.6.0]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ valgrind? ( dev-util/valgrind )
+ vdpau? (
+ x11-libs/libX11
+ x11-libs/libvdpau[>=1.1]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ video_drivers:i915? ( x11-dri/libdrm${LIBDRM_REQUIRED_INTEL}[video_drivers:intel(+)] )
+ video_drivers:intel? ( x11-dri/libdrm${LIBDRM_REQUIRED_INTEL}[video_drivers:intel(+)] )
+ video_drivers:nouveau? ( x11-dri/libdrm${LIBDRM_REQUIRED_NOUVEAU}[video_drivers:nouveau(-)] )
+ video_drivers:nouveau-legacy? ( x11-dri/libdrm${LIBDRM_REQUIRED_NOUVEAU}[video_drivers:nouveau(-)] )
+ video_drivers:r300? ( x11-dri/libdrm${LIBDRM_REQUIRED_RADEON}[video_drivers:radeon(-)] )
+ video_drivers:radeon? (
+ dev-lang/llvm[>=4.0.0][-static(-)]
+ dev-util/elfutils
+ x11-dri/libdrm${LIBDRM_REQUIRED_AMDGPU}[video_drivers:radeon(-)]
+ )
+ video_drivers:radeon-legacy? ( x11-dri/libdrm${LIBDRM_REQUIRED_RADEON}[video_drivers:radeon(-)] )
+ video_drivers:vc4? ( x11-dri/libdrm[video_drivers:vc4(-)] )
+ video_drivers:vmware? ( x11-dri/libdrm[video_drivers:vmware(-)] )
+ wayland? (
+ sys-libs/wayland[>=1.11]
+ sys-libs/wayland-protocols[>=1.8.0]
+ )
+ X? (
+ x11-libs/libICE
+ x11-libs/libX11[xcb(+)]
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage[>=1.1]
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxshmfence[>=1.1]
+ x11-libs/libXxf86vm
+ )
+ xvmc? (
+ x11-libs/libX11
+ x11-libs/libXvMC[>=1.0.6]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ !sys-libs/wayland[<1.15.0] [[
+ description = [ wayland imported libwayland-egl from mesa ]
+ resolution = uninstall-blocked-after
+ ]]
+ run:
+ opencl? (
+ dev-libs/ocl-icd
+ )
+ !media-libs/libtxc_dxtn [[
+ description = [ mesa now bundles libtxc_dxtn ]
+ resolution = uninstall-blocked-after
+ ]]
+ suggestion:
+ x11-dri/mesa-demos [[
+ description = [ Provides useful programs like glxinfo ]
+ ]]
+"
+
+mesa-meson_src_prepare() {
+ # Meson's meson build system requires pkg-config to do some
+ # fancy, custom stuff, which use pkg-config directly.
+ edo mkdir "${WORKBASE}"/bin
+ edo ln -s "/usr/$(exhost --build)/bin/${PKG_CONFIG}" "${WORKBASE}"/bin/pkg-config
+ export PATH="${WORKBASE}/bin:${PATH}"
+
+ meson_src_prepare
+}
+
+mesa-meson_src_configure() {
+ DRI_DRIVERS=( )
+ EGL_PLATFORMS=( )
+ GALLIUM_DRIVERS=( )
+ VULKAN_DRIVERS=( )
+
+ option !video_drivers:gallium-swrast && DRI_DRIVERS+=( swrast )
+ option video_drivers:intel && DRI_DRIVERS+=( i915 i965 )
+ option video_drivers:nouveau-legacy && DRI_DRIVERS+=( nouveau )
+ option video_drivers:radeon-legacy && DRI_DRIVERS+=( r100 r200 )
+
+ # TODO: pl111,freedeno,softpipe,vc4,etnaviv,imx,svga,swr
+ option video_drivers:gallium-swrast && GALLIUM_DRIVERS+=( swrast )
+ option video_drivers:i915 && GALLIUM_DRIVERS+=( i915 )
+ option video_drivers:nouveau && GALLIUM_DRIVERS+=( nouveau )
+ option video_drivers:r300 && GALLIUM_DRIVERS+=( r300 )
+ option video_drivers:radeon && GALLIUM_DRIVERS+=( r600 radeonsi )
+ option video_drivers:vc4 && GALLIUM_DRIVERS+=( vc4 )
+ option video_drivers:virtio-gpu && GALLIUM_DRIVERS+=( virgl )
+ option video_drivers:vmware && GALLIUM_DRIVERS+=( svga )
+
+ option X && EGL_PLATFORMS+=( x11 )
+ option wayland && EGL_PLATFORMS+=( wayland )
+ EGL_PLATFORMS+=( drm surfaceless )
+
+ option video_drivers:intel && VULKAN_DRIVERS+=( intel )
+ option video_drivers:radeon && VULKAN_DRIVERS+=( amd )
+
+ local MESA_SRC_CONFIGURE_PARAMS
+
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ -Dasm=true
+ -Ddri-drivers="$(IFS=, ; echo "${DRI_DRIVERS[*]}")"
+ -Degl=true
+ -Dgallium-drivers=$(IFS=, ; echo "${GALLIUM_DRIVERS[*]}")
+ -Dgles1=true
+ -Dgles2=true
+ -Dlibunwind=false
+ -Dopengl=true
+ -Dshared-glapi=true
+ -Dplatforms=$(IFS=, ; echo "${EGL_PLATFORMS[*]}")
+ -Dshader-cache=true
+ -Dvulkan-drivers=$(IFS=, ; echo "${VULKAN_DRIVERS[*]}")
+
+ # OSMesa needs either gallium_softpipe (GALLIUM_DRIVERS=swrast) or dri swrast
+ # (DRI_DRIVERS=SWRAST) to be enabled.
+ $(meson_switch video_drivers:gallium-swrast osmesa gallium classic)
+
+ $(meson_switch d3d9 gallium-nine)
+ $(meson_switch gl-vendor glvnd)
+ $(meson_switch llvm)
+ $(meson_switch opencl gallium-opencl icd disabled)
+ $(meson_switch sensors lmsensors)
+ $(meson_switch sensors gallium-extra-hud)
+ $(meson_switch texture-float)
+ $(meson_switch va gallium-va)
+ $(meson_switch valgrind)
+ $(meson_switch vdpau gallium-vdpau)
+ $(meson_switch X dri3)
+ $(meson_switch X glx dri disabled)
+ $(meson_switch xa gallium-xa)
+ $(meson_switch xvmc gallium-xvmc)
+ )
+
+ # Missing dependency
+ if ever at_least 18.1; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ -Dgallium-omx=disabled
+ )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ -Dgallium-omx=false
+ )
+ fi
+
+ exmeson "${MESA_SRC_CONFIGURE_PARAMS[@]}" "${MESON_SOURCE}"
+}
+
+mesa-meson_src_install() {
+ dodir /usr
+
+ local host=$(exhost --target)
+ local X_alternatives=()
+
+ meson_src_install
+
+ # alternatives
+ local libs=(libEGL libGLESv1_CM libGLESv2)
+ option X && libs+=(libGL)
+
+ edo mkdir "${IMAGE}"/usr/${host}/lib/opengl/
+
+ local lib path_old path_new soname
+ for lib in "${libs[@]}"; do
+ path_new=/usr/${host}/lib/opengl/${lib}-xorg.so
+ path_old=$(readlink -f "${IMAGE}"/usr/${host}/lib/${lib}.so)
+
+ edo mv \
+ "${path_old}" \
+ "${IMAGE}"/${path_new}
+
+ local objdump=$(exhost --tool-prefix)objdump
+ soname=$(edo ${objdump} -p "${IMAGE}"/${path_new} | sed -n 's/^ *SONAME *//p')
+
+ # clean up the leftover symlinks
+ edo rm "${IMAGE}"/usr/${host}/lib/{${lib}.so,${soname}}
+
+ X_alternatives+=(
+ /usr/${host}/lib/${lib}.so ${path_new}
+ /usr/${host}/lib/${soname} ${path_new}
+ )
+ done
+
+ if option wayland ; then
+ # wayland[>=1.15] imported libwayland-egl in order to allow multiple
+ # drivers using it.
+ edo rm "${IMAGE}"/usr/$(exhost --target)/lib/pkgconfig/wayland-egl.pc \
+ "${IMAGE}"/usr/$(exhost --target)/lib/libwayland-egl.so*
+ fi
+
+ alternatives_for opengl X.org 10 ${X_alternatives[@]}
+
+ edo rm -rf "${IMAGE}"/usr/${host}/include/GL/{glew,glxew,wglew}.h
+}
+
diff --git a/packages/x11-dri/mesa/mesa-scm.exheres-0 b/packages/x11-dri/mesa/mesa-scm.exheres-0
new file mode 100644
index 0000000..a9e8833
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa-scm.exheres-0
@@ -0,0 +1,15 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2009, 2010 Ingmar Vanhassel <ingmar@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require mesa
+
+PLATFORMS="~amd64 ~armv7 ~x86"
+
+src_install() {
+ mesa_src_install
+
+ # scm doesn't care about --disable-glut there :(
+ edo rm -f "${IMAGE}/usr/include/GL/glut.h"
+}
+
diff --git a/packages/x11-dri/mesa/mesa.exlib b/packages/x11-dri/mesa/mesa.exlib
new file mode 100644
index 0000000..c124ed2
--- /dev/null
+++ b/packages/x11-dri/mesa/mesa.exlib
@@ -0,0 +1,512 @@
+# Copyright 2008 Alexander Færøy <eroyf@eroyf.org>
+# Copyright 2008-2011 Ingmar Vanhassel <ingmar@exherbo.org>
+# Copyright 2013 Saleem Abdulrasool <compnerd@compnerd.org>
+# Distributed under the terms of the GNU General Public License v2
+# Based in part upon 'mesa-7.0.3.ebuild' which is:
+# Copyright 1999-2008 Gentoo Foundation
+
+if ever is_scm ; then
+ SCM_REPOSITORY="https://anongit.freedesktop.org/git/${PN}/${PN}.git"
+ require scm-git
+else
+ MY_PV=${PV%%-rc*}
+ DOWNLOADS="
+ https://mesa.freedesktop.org/archive/${MY_PV}/${PNV}.tar.xz
+ https://mesa.freedesktop.org/archive/${PNV}.tar.xz
+ "
+ UPSTREAM_RELEASE_NOTES="https://www.mesa3d.org/relnotes/${PV}.html"
+fi
+
+require alternatives toolchain-funcs
+require flag-o-matic
+require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.16 1.15 ] ]
+
+export_exlib_phases src_configure src_install pkg_postinst
+
+OPENGL_DIR="xorg-x11"
+
+SUMMARY="Mesa's OpenGL library"
+HOMEPAGE="https://www.mesa3d.org"
+
+# Licences for parts we don't install:
+# GLUT: Mark Kilgard's copyright
+LICENCES="MIT"
+SLOT="0"
+MYOPTIONS="
+ llvm [[ description = [ Using LLVM as the shader backend for Gallium ] ]]
+ llvm-static [[ description = [ Link to LLVM statically ] requires = [ llvm ] ]]
+ opencl [[ description = [ Enable the OpenCL Gallium state tracker ] requires = [ llvm ] ]]
+ texture-float [[ description = [ Enable floating-point textures and renderbuffers. SGI claims to hold patents on this code. ] ]]
+ va [[ description = [ Enable the VA-API state tracker ] ]]
+ wayland
+ X [[ description = [ Enable GLX ] presumed = true ]]
+ xa [[ description = [ Enable the X Acceleration API (xatracker) ] ]]
+ xvmc [[ description = [ Enable support for XvMC hardware accelerated video decoding ] ]]
+ (
+ platform:
+ amd64
+ x86
+ video_drivers:
+ (
+ i915 [[ description = [ Gallium driver for i915 based Intel GPUs ] ]]
+ intel [[ description = [ Driver for i915, i965 and newer ] ]]
+ ) [[ number-selected = at-most-one ]]
+ gallium-swrast [[ description = [ Gallium based software driver ] ]]
+ (
+ nouveau [[ description = [ (Gallium) Generally for newer Nvidia cards ] ]]
+ nouveau-legacy [[ description = [ Generally for older Nvidia cards ] ]]
+ ) [[ number-selected = at-most-one ]]
+ (
+ r300 [[ description = [ (Gallium) Driver for Radeon cards from 9500 (r300) to X1950 (r500) ] ]]
+ radeon [[ description = [ (Gallium) Driver for the Radeon HD-2000 (r600) and newer ] ]]
+ ) [[ requires = [ llvm video_drivers: gallium-swrast ] ]]
+ radeon-legacy [[ description = [ Classic driver for cards older than the Radeon 9500 (r300) ] ]]
+ virtio-gpu [[ description = [ Gallium driver for guest systems on hypervisors with VirtIO-GPU ] ]]
+ vmware [[ description = [ Gallium driver for VMware's SVGA virtual GPU ] ]]
+ )
+ (
+ platform:
+ armv7
+ video_drivers:
+ (
+ vc4 [[ description = [ Gallium driver for Raspberry Pi Videocore graphics ] ]]
+ )
+ )
+ llvm? (
+ ( video_drivers: gallium-swrast i915 nouveau r300 radeon ) [[ number-selected = at-least-one ]]
+ )
+ opencl? (
+ ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]]
+ )
+ vdpau? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+ xa? ( ( video_drivers: i915 nouveau vmware radeon ) [[ number-selected = at-least-one ]] )
+ xvmc? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+"
+
+if ever at_least 17.1.3; then
+ MYOPTIONS+="
+ vdpau [[ description = [ Enable support for VDPAU hardware accelerated video decoding ] requires = [ X ] ]]
+ va? (
+ ( X wayland ) [[ number-selected = at-least-one ]]
+ )
+ "
+else
+ MYOPTIONS+="
+ vdpau [[ description = [ Enable support for VDPAU hardware accelerated video decoding ] ]]
+ "
+fi
+
+if ever at_least 13.0.0; then
+ MYOPTIONS+="
+ sensors [[ description = [ Gallium extra HUD and sensors support ] ]]
+ sensors? ( ( video_drivers: nouveau radeon ) [[ number-selected = at-least-one ]] )
+ "
+else
+ MYOPTIONS+="
+ ( providers: eudev systemd ) [[ number-selected = exactly-one ]]
+ "
+fi
+
+if ever at_least 12.0.0-rc1; then
+ MYOPTIONS+="
+ gl-vendor [[
+ description = [ Install a glvnd (gl vendor) file to allow for parallel install of multiple GL implementations ]
+ ]]
+ valgrind [[ description = [ Support valgrind intrinsics to suppress false warnings ] ]]
+ "
+fi
+
+if ! ever at_least 17.1.3; then
+ MYOPTIONS+="
+ ( providers: gcrypt libressl nettle openssl ) [[ number-selected = exactly-one ]]
+ "
+fi
+
+# these high versions are not required for every package but as long as we don't need to deal with different versions use the latest
+if ever at_least 17.3.7; then
+ LIBDRM_REQUIRED='[>=2.4.91]'
+elif ever at_least 17.2.0; then
+ LIBDRM_REQUIRED='[>=2.4.82]'
+elif ever at_least 17.1.3; then
+ LIBDRM_REQUIRED='[>=2.4.80]'
+else
+ LIBDRM_REQUIRED='[>=2.4.69]'
+fi
+
+
+DEPENDENCIES="
+ build:
+ dev-lang/python:2.7
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkg-config[>=0.9.0]
+ !x11-dri/eclectic-opengl
+ llvm? (
+ !llvm-static? ( dev-lang/llvm[>=3.7][-static] )
+ llvm-static? ( dev-lang/llvm[>=3.7][static] )
+ )
+ opencl? (
+ dev-lang/clang[>=3.4]
+ )
+ video_drivers:radeon? ( dev-lang/llvm[>=3.6.0] )
+ X? ( x11-proto/xorgproto )
+ build+run:
+ dev-libs/expat
+ x11-dri/libdrm${LIBDRM_REQUIRED}
+ opencl? ( dev-libs/libclc )
+ va? (
+ x11-libs/libX11
+ x11-libs/libva[>=1.6.0]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ vdpau? (
+ x11-libs/libX11
+ x11-libs/libvdpau[>=1.1]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ video_drivers:i915? ( x11-dri/libdrm[video_drivers:intel(+)] )
+ video_drivers:intel? ( x11-dri/libdrm[video_drivers:intel(+)] )
+ video_drivers:nouveau? ( x11-dri/libdrm[video_drivers:nouveau(-)] )
+ video_drivers:nouveau-legacy? ( x11-dri/libdrm[video_drivers:nouveau(-)] )
+ video_drivers:r300? ( x11-dri/libdrm[video_drivers:radeon(-)] )
+ video_drivers:radeon? (
+ dev-util/elfutils
+ x11-dri/libdrm[video_drivers:radeon(-)]
+ )
+ video_drivers:radeon-legacy? ( x11-dri/libdrm[video_drivers:radeon(-)] )
+ video_drivers:vc4? ( x11-dri/libdrm[video_drivers:vc4(-)] )
+ video_drivers:vmware? ( x11-dri/libdrm[video_drivers:vmware(-)] )
+ wayland? ( sys-libs/wayland[>=1.2.0] )
+ X? (
+ x11-libs/libICE
+ x11-libs/libX11[xcb(+)]
+ x11-libs/libXau
+ x11-libs/libxcb[>=1.9.3]
+ x11-libs/libXdamage[>=1.1.1]
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxshmfence[>=1.1]
+ x11-libs/libXxf86vm
+ )
+ xvmc? (
+ x11-libs/libX11
+ x11-libs/libXvMC[>=1.0.6]
+ x11-libs/libxcb${XCBDRI2_REQUIRED}
+ )
+ run:
+ llvm? (
+ !llvm-static? ( dev-lang/llvm[>=3.7][-static] )
+ )
+ opencl? (
+ dev-libs/ocl-icd
+ )
+ suggestion:
+ x11-dri/mesa-demos
+"
+
+if ever at_least 13.0.0; then
+ DEPENDENCIES+="
+ build+run:
+ sensors? (
+ sys-apps/lm_sensors[>=3.4.0]
+ [[ note = [ lm_sensors version in configure.ac is bogus ] ]]
+ )
+ "
+else
+ DEPENDENCIES+="
+ build:
+ providers:eudev? ( sys-apps/eudev )
+ providers:systemd? ( sys-apps/systemd[>=151] )
+ "
+fi
+
+if ever at_least 12.0.0-rc1; then
+ DEPENDENCIES+="
+ build:
+ gl-vendor? ( dev-libs/libglvnd )
+ valgrind? ( dev-util/valgrind )
+ "
+fi
+
+if ! ever at_least 17.1.3; then
+ DEPENDENCIES+="
+ build+run:
+ providers:gcrypt? ( dev-libs/libgcrypt )
+ providers:libressl? ( dev-libs/libressl:= )
+ providers:nettle? ( dev-libs/nettle )
+ providers:openssl? ( dev-libs/openssl )
+ "
+fi
+
+if ever at_least 17.1.3; then
+ DEPENDENCIES+="
+ build:
+ dev-libs/libpthread-stubs[>=0.4]
+ gl-vendor? ( dev-libs/libglvnd[>=0.2.0] )
+ video_drivers:radeon? ( dev-lang/llvm[>=3.9.0] )
+ build+run:
+ sys-libs/zlib[>=1.2.3]
+ wayland? ( sys-libs/wayland[>=1.11] )
+ "
+fi
+
+if ever at_least 17.2.0; then
+ DEPENDENCIES+="
+ build:
+ dev-libs/libpthread-stubs[>=0.4]
+ gl-vendor? ( dev-libs/libglvnd[>=0.2.0] )
+ video_drivers:radeon? ( dev-lang/llvm[>=3.9.0] )
+ build+run:
+ sys-libs/zlib[>=1.2.3]
+ wayland? (
+ sys-libs/wayland[>=1.11]
+ sys-libs/wayland-protocols[>=1.8.0]
+ )
+ "
+fi
+
+if ever at_least 17.3.3; then
+ DEPENDENCIES+="
+ build:
+ opencl? ( dev-lang/llvm[>=3.9.0] )
+ build+run:
+ !media-libs/libtxc_dxtn [[
+ description = [ mesa now bundles libtxc_dxtn ]
+ resolution = uninstall-blocked-after
+ ]]
+ "
+elif ever at_least 13.0.0; then
+ DEPENDENCIES+="
+ build:
+ dev-python/Mako[>=0.8.0][python_abis:2.7]
+ "
+else
+ DEPENDENCIES+="
+ build:
+ dev-python/Mako[>=0.3.4][python_abis:2.7]
+ "
+fi
+
+if ever at_least scm; then
+ DEPENDENCIES+="
+ build:
+ dev-python/Mako
+ "
+fi
+
+DEFAULT_SRC_TEST_PARAMS=( PTHREAD_LIBS="-lpthread" )
+
+AT_M4DIR=( m4 )
+
+mesa_src_configure() {
+ DRI_DRIVERS=( )
+ EGL_PLATFORMS=( )
+ GALLIUM_DRIVERS_NOSW=( )
+ GALLIUM_DRIVERS=( )
+ VULKAN_DRIVERS=( )
+
+ option !video_drivers:gallium-swrast && DRI_DRIVERS+=( swrast )
+ option video_drivers:intel && DRI_DRIVERS+=( i915 i965 )
+ option video_drivers:nouveau-legacy && DRI_DRIVERS+=( nouveau )
+ option video_drivers:radeon-legacy && DRI_DRIVERS+=( radeon r200 )
+
+ # TODO: noop, swr, vc5, etnaviv, imx, pl111
+ option video_drivers:i915 && GALLIUM_DRIVERS_NOSW+=( i915 )
+ option video_drivers:nouveau && GALLIUM_DRIVERS_NOSW+=( nouveau )
+ option video_drivers:r300 && GALLIUM_DRIVERS_NOSW+=( r300 )
+ option video_drivers:radeon && GALLIUM_DRIVERS_NOSW+=( r600 radeonsi )
+ option video_drivers:vc4 && GALLIUM_DRIVERS_NOSW+=( vc4 )
+ option video_drivers:virtio-gpu && GALLIUM_DRIVERS_NOSW+=( virgl )
+ option video_drivers:vmware && GALLIUM_DRIVERS_NOSW+=( svga )
+
+ # TODO: gallium-swr
+ GALLIUM_DRIVERS=( "${GALLIUM_DRIVERS_NOSW[@]}" )
+ option video_drivers:gallium-swrast && GALLIUM_DRIVERS+=( swrast )
+
+ option X && EGL_PLATFORMS+=( x11 )
+ option wayland && EGL_PLATFORMS+=( wayland )
+ EGL_PLATFORMS+=( drm surfaceless )
+
+ option video_drivers:intel && VULKAN_DRIVERS+=( intel )
+ option video_drivers:radeon && VULKAN_DRIVERS+=( radeon )
+
+ local MESA_SRC_CONFIGURE_PARAMS
+
+ # NOTE(compnerd) disable the assembly dispatching. The code is absolutely horrid, fragile, and
+ # is disabled by other distributions as well (including Fedora and RHEL). It is also broken
+ # with LTO, and is not intended to be fixed. https://bugs.freedesktop.org/show_bug.cgi?id=55080
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ $(option llvm && echo --with-llvm-prefix=/usr/$(exhost --target))
+ $($(option platform:x86 || option platform:amd64) && echo --disable-asm)
+ --enable-osmesa # off-screen mesa
+ )
+
+ if [[ ${#DRI_DRIVERS[@]} -gt 0 ]]; then
+ MESA_SRC_CONFIGURE_PARAMS+=( --with-dri-drivers=$(IFS=, ; echo "${DRI_DRIVERS[*]}") )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=( --without-dri-drivers )
+ fi
+
+ if [[ ${#GALLIUM_DRIVERS[*]} -gt 0 ]] ; then
+ MESA_SRC_CONFIGURE_PARAMS+=( --with-gallium-drivers=$(IFS=, ; echo "${GALLIUM_DRIVERS[*]}") )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=( --without-gallium-drivers )
+ fi
+
+ if [[ ${#GALLIUM_DRIVERS_NOSW[*]} -gt 0 ]] ; then
+ MESA_SRC_CONFIGURE_PARAMS+=( $(option video_drivers:gallium-swrast && echo "--enable-nine") )
+ fi
+
+ if ever at_least 12.0.0-rc1; then
+ if [[ ${#VULKAN_DRIVERS[@]} -gt 0 ]]; then
+ MESA_SRC_CONFIGURE_PARAMS+=( --with-vulkan-drivers=$(IFS=, ; echo "${VULKAN_DRIVERS[*]}") )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=( --without-vulkan-drivers )
+ fi
+ MESA_SRC_CONFIGURE_PARAMS+=( $(option_enable gl-vendor libglvnd) )
+ fi
+
+ # TODO gallium_tests
+ # TODO state trackers: OpenMAX(omx), requires additional new dependency libomxil-bellagio
+
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --with-pic
+ --enable-dri
+ --enable-egl
+ --enable-gbm
+ --enable-gles1
+ --enable-gles2
+ --enable-shared-glapi
+ --disable-glx-read-only-text
+ $(option_enable !llvm-static llvm-shared-libs)
+ $(option_enable opencl)
+ $(option_enable opencl opencl-icd)
+ $(option_enable texture-float)
+ $(option_enable va)
+ $(option_enable vdpau)
+ $(option_enable X dri3)
+ $(option_enable X glx)
+ $(option_enable X glx-tls)
+ $(option_enable xa)
+ $(option_enable xvmc)
+ )
+
+ if ever at_least 17.3.4; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --enable-driglx-direct
+ --disable-omx-bellagio
+ )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --disable-omx
+ )
+ fi
+
+ if ever at_least 12.0.0-rc1; then
+ MESA_SRC_CONFIGURE_PARAMS+=( $(option_enable valgrind) )
+ fi
+
+ if ! ever at_least 12.0.2; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ $(option_enable video_drivers:radeon r600-llvm-compiler)
+ )
+ fi
+
+ if ever at_least 13.0.0; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ $(option_enable sensors lmsensors)
+ $(option_enable sensors gallium_extra_hud)
+ )
+ else
+ MESA_SRC_CONFIGURE_PARASM+=(
+ --disable-sysfs
+ )
+ fi
+
+ if ever at_least 17.1.3; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --disable-libunwind
+ --with-platforms=$(IFS=, ; echo "${EGL_PLATFORMS[*]}")
+ --with-wayland-scanner-path=/usr/$(exhost --build)/bin/wayland-scanner
+ $(option_enable llvm)
+ )
+ else
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --enable-shader-cache
+ --with-egl-platforms=$(IFS=, ; echo "${EGL_PLATFORMS[*]}")
+ $(option_enable llvm gallium-llvm)
+ )
+ if option providers:libressl || option providers:openssl; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --with-sha1=libcrypto
+ )
+ elif option providers:gcrypt; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --with-sha1=libgcrypt
+ )
+ elif option providers:nettle; then
+ MESA_SRC_CONFIGURE_PARAMS+=(
+ --with-sha1=libnettle
+ )
+ fi
+ fi
+
+ # Fix using the 32bit python while it isn't needed.
+ # TODO: Something with python.exlib to require the neccessary modules to be built for the
+ # selected python.
+ #PYTHON2=/usr/bin/python2 \
+ # TODO: check if something similar to the above might be necessary when cross-compiling
+ # mesa. Obviously the path doesn't work on cross. (heirecka)
+ econf "${MESA_SRC_CONFIGURE_PARAMS[@]}"
+}
+
+mesa_src_install() {
+ dodir /usr
+
+ local host=$(exhost --target)
+ local X_alternatives=()
+
+ default
+
+ # alternatives
+ local libs=(libEGL libGLESv1_CM libGLESv2)
+ option X && libs+=(libGL)
+
+ edo mkdir "${IMAGE}"/usr/${host}/lib/opengl/
+
+ local lib path_old path_new soname
+ for lib in "${libs[@]}"; do
+ path_new=/usr/${host}/lib/opengl/${lib}-xorg.so
+ path_old=$(readlink -f "${IMAGE}"/usr/${host}/lib/${lib}.so)
+
+ edo mv \
+ "${path_old}" \
+ "${IMAGE}"/${path_new}
+
+ local objdump=$(exhost --tool-prefix)objdump
+ soname=$(edo ${objdump} -p "${IMAGE}"/${path_new} | sed -n 's/^ *SONAME *//p')
+
+ # clean up the leftover symlinks
+ edo rm "${IMAGE}"/usr/${host}/lib/{${lib}.so,${soname}}
+
+ X_alternatives+=(
+ /usr/${host}/lib/${lib}.so ${path_new}
+ /usr/${host}/lib/${soname} ${path_new}
+ )
+ done
+
+ alternatives_for opengl X.org 10 ${X_alternatives[@]}
+
+ edo rm -rf "${IMAGE}"/usr/${host}/include/GL/{glew,glxew,wglew}.h
+}
+
+mesa_pkg_postinst() {
+ # Clean up after old eclectic-opengl module
+ if [[ -f ${ROOT}/etc/env.d/03opengl ]] ; then
+ rm "${ROOT}/etc/env.d/03opengl" || ewarn "Remove /etc/env.d/03opengl manually"
+ fi
+
+ alternatives_pkg_postinst
+}
+