Date: Friday, January 12, 2018 @ 18:58:06 Author: foutrelis Revision: 281690
archrelease: copy trunk to multilib-x86_64 Added: lib32-mesa/repos/multilib-x86_64/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch (from rev 281689, lib32-mesa/trunk/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch) lib32-mesa/repos/multilib-x86_64/0002-glvnd-fix-gl-dot-pc.patch (from rev 281689, lib32-mesa/trunk/0002-glvnd-fix-gl-dot-pc.patch) lib32-mesa/repos/multilib-x86_64/LICENSE (from rev 281689, lib32-mesa/trunk/LICENSE) lib32-mesa/repos/multilib-x86_64/PKGBUILD (from rev 281689, lib32-mesa/trunk/PKGBUILD) Deleted: lib32-mesa/repos/multilib-x86_64/0002-glvnd-fix-gl-dot-pc.patch lib32-mesa/repos/multilib-x86_64/LICENSE lib32-mesa/repos/multilib-x86_64/PKGBUILD -----------------------------------------------------------+ 0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch | 74 ++ 0002-glvnd-fix-gl-dot-pc.patch | 24 LICENSE | 164 ++--- PKGBUILD | 335 ++++++------ 4 files changed, 338 insertions(+), 259 deletions(-) Copied: lib32-mesa/repos/multilib-x86_64/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch (from rev 281689, lib32-mesa/trunk/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch) =================================================================== --- 0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch (rev 0) +++ 0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch 2018-01-12 18:58:06 UTC (rev 281690) @@ -0,0 +1,74 @@ +From 897c54d522ab960a879b763a15e489f630c491ee Mon Sep 17 00:00:00 2001 +From: Thomas Hellstrom <thellst...@vmware.com> +Date: Thu, 11 Jan 2018 10:19:23 +0100 +Subject: [PATCH] loader/dri3: Avoid freeing renderbuffers in use +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upon reception of an event that lowered the number of active back buffers, +the code would immediately try to free all back buffers with an id equal to or +higher than the new number of active back buffers. + +However, that could lead to an active or to-be-active back buffer being freed, +since the old number of back buffers was used when obtaining an idle back +buffer for use. + +This lead to crashes when lowering the number of active back buffers by +transitioning from page-flipping to non-page-flipping presents. + +Fix this by computing the number of active back buffers only when trying to +obtain a new back buffer. + +Fixes: 15e208c4cc ("loader/dri3: Don't accidently free buffer holding new back content") +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104214 +Cc: "17.3" <mesa-sta...@lists.freedesktop.org> +Tested-by: Andriy.Khulap <andriy.khu...@globallogic.com> +Tested-by: Vadym Shovkoplias <vadym.shovkopl...@globallogic.com> +Reviewed-by: Michel Dänzer <michel.daen...@amd.com> +Signed-off-by: Thomas Hellstrom <thellst...@vmware.com> +--- + src/loader/loader_dri3_helper.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c +index cc890bc923..8f8efcb646 100644 +--- a/src/loader/loader_dri3_helper.c ++++ b/src/loader/loader_dri3_helper.c +@@ -205,7 +205,6 @@ void + loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval) + { + draw->swap_interval = interval; +- dri3_update_num_back(draw); + } + + /** dri3_free_render_buffer +@@ -377,7 +376,6 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw, + draw->flipping = false; + break; + } +- dri3_update_num_back(draw); + + if (draw->vtable->show_fps) + draw->vtable->show_fps(draw, ce->ust); +@@ -402,7 +400,8 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw, + buf->busy = 0; + + if (buf && draw->num_back <= b && b < LOADER_DRI3_MAX_BACK && +- draw->cur_blit_source != b) { ++ draw->cur_blit_source != b && ++ !buf->busy) { + dri3_free_render_buffer(draw, buf); + draw->buffers[b] = NULL; + } +@@ -537,6 +536,7 @@ dri3_find_back(struct loader_dri3_drawable *draw) + /* Check whether we need to reuse the current back buffer as new back. + * In that case, wait until it's not busy anymore. + */ ++ dri3_update_num_back(draw); + num_to_consider = draw->num_back; + if (!loader_dri3_have_image_blit(draw) && draw->cur_blit_source != -1) { + num_to_consider = 1; +-- +2.15.1 + Deleted: 0002-glvnd-fix-gl-dot-pc.patch =================================================================== --- 0002-glvnd-fix-gl-dot-pc.patch 2018-01-12 18:57:55 UTC (rev 281689) +++ 0002-glvnd-fix-gl-dot-pc.patch 2018-01-12 18:58:06 UTC (rev 281690) @@ -1,12 +0,0 @@ -diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in ---- mesa-12.0.3/src/mesa/gl.pc.in.jx 2016-01-18 02:39:26.000000000 -0500 -+++ mesa-12.0.3/src/mesa/gl.pc.in 2016-10-25 13:06:44.013159358 -0400 -@@ -7,7 +7,7 @@ Name: gl - Description: Mesa OpenGL library - Requires.private: @GL_PC_REQ_PRIV@ - Version: @PACKAGE_VERSION@ --Libs: -L${libdir} -l@GL_LIB@ -+Libs: -L${libdir} -lGL - Libs.private: @GL_PC_LIB_PRIV@ - Cflags: -I${includedir} @GL_PC_CFLAGS@ - glx_tls: @GLX_TLS@ Copied: lib32-mesa/repos/multilib-x86_64/0002-glvnd-fix-gl-dot-pc.patch (from rev 281689, lib32-mesa/trunk/0002-glvnd-fix-gl-dot-pc.patch) =================================================================== --- 0002-glvnd-fix-gl-dot-pc.patch (rev 0) +++ 0002-glvnd-fix-gl-dot-pc.patch 2018-01-12 18:58:06 UTC (rev 281690) @@ -0,0 +1,12 @@ +diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in +--- mesa-12.0.3/src/mesa/gl.pc.in.jx 2016-01-18 02:39:26.000000000 -0500 ++++ mesa-12.0.3/src/mesa/gl.pc.in 2016-10-25 13:06:44.013159358 -0400 +@@ -7,7 +7,7 @@ Name: gl + Description: Mesa OpenGL library + Requires.private: @GL_PC_REQ_PRIV@ + Version: @PACKAGE_VERSION@ +-Libs: -L${libdir} -l@GL_LIB@ ++Libs: -L${libdir} -lGL + Libs.private: @GL_PC_LIB_PRIV@ + Cflags: -I${includedir} @GL_PC_CFLAGS@ + glx_tls: @GLX_TLS@ Deleted: LICENSE =================================================================== --- LICENSE 2018-01-12 18:57:55 UTC (rev 281689) +++ LICENSE 2018-01-12 18:58:06 UTC (rev 281690) @@ -1,82 +0,0 @@ -Disclaimer - -Mesa is a 3-D graphics library with an API which is very similar to -that of OpenGL* -To the extent that Mesa utilizes the OpenGL command syntax or state -machine, it is being used with authorization from Silicon Graphics, -Inc.(SGI). However, the author does not possess an OpenGL license -from SGI, and makes no claim that Mesa is in any way a compatible -replacement for OpenGL or associated with SGI. Those who want a -licensed implementation of OpenGL should contact a licensed -vendor. - -Please do not refer to the library as MesaGL (for legal -reasons). It's just Mesa or The Mesa 3-D graphics -library - -* OpenGL is a trademark of Silicon Graphics Incorporated. - -License / Copyright Information - -The Mesa distribution consists of several components. Different copyrights -and licenses apply to different components. For example, GLUT is copyrighted -by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa -device drivers are copyrighted by their authors. See below for a list of -Mesa's main components and the license for each. - -The core Mesa library is licensed according to the terms of the MIT license. -This allows integration with the XFree86, Xorg and DRI projects. - -The default Mesa license is as follows: - -Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - -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 -BRIAN PAUL 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. - -Attention, Contributors - -When contributing to the Mesa project you must agree to the licensing terms -of the component to which you're contributing. -The following section lists the primary components of the Mesa distribution -and their respective licenses. - - -Mesa Component Licenses - -Component Location Primary Author License ----------------------------------------------------------------------------- -Main Mesa code src/mesa/ Brian Paul Mesa (MIT) - -Device drivers src/mesa/drivers/* See drivers See drivers - -Ext headers include/GL/glext.h SGI SGI Free B - include/GL/glxext.h - -GLUT src/glut/ Mark Kilgard Mark's copyright - -Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL - -SGI GLU library src/glu/sgi/ SGI SGI Free B - -demo programs progs/demos/ various see source files - -X demos progs/xdemos/ Brian Paul see source files - -SGI demos progs/samples/ SGI SGI copyright - -RedBook demos progs/redbook/ SGI SGI copyright Copied: lib32-mesa/repos/multilib-x86_64/LICENSE (from rev 281689, lib32-mesa/trunk/LICENSE) =================================================================== --- LICENSE (rev 0) +++ LICENSE 2018-01-12 18:58:06 UTC (rev 281690) @@ -0,0 +1,82 @@ +Disclaimer + +Mesa is a 3-D graphics library with an API which is very similar to +that of OpenGL* +To the extent that Mesa utilizes the OpenGL command syntax or state +machine, it is being used with authorization from Silicon Graphics, +Inc.(SGI). However, the author does not possess an OpenGL license +from SGI, and makes no claim that Mesa is in any way a compatible +replacement for OpenGL or associated with SGI. Those who want a +licensed implementation of OpenGL should contact a licensed +vendor. + +Please do not refer to the library as MesaGL (for legal +reasons). It's just Mesa or The Mesa 3-D graphics +library + +* OpenGL is a trademark of Silicon Graphics Incorporated. + +License / Copyright Information + +The Mesa distribution consists of several components. Different copyrights +and licenses apply to different components. For example, GLUT is copyrighted +by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa +device drivers are copyrighted by their authors. See below for a list of +Mesa's main components and the license for each. + +The core Mesa library is licensed according to the terms of the MIT license. +This allows integration with the XFree86, Xorg and DRI projects. + +The default Mesa license is as follows: + +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +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 +BRIAN PAUL 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. + +Attention, Contributors + +When contributing to the Mesa project you must agree to the licensing terms +of the component to which you're contributing. +The following section lists the primary components of the Mesa distribution +and their respective licenses. + + +Mesa Component Licenses + +Component Location Primary Author License +---------------------------------------------------------------------------- +Main Mesa code src/mesa/ Brian Paul Mesa (MIT) + +Device drivers src/mesa/drivers/* See drivers See drivers + +Ext headers include/GL/glext.h SGI SGI Free B + include/GL/glxext.h + +GLUT src/glut/ Mark Kilgard Mark's copyright + +Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL + +SGI GLU library src/glu/sgi/ SGI SGI Free B + +demo programs progs/demos/ various see source files + +X demos progs/xdemos/ Brian Paul see source files + +SGI demos progs/samples/ SGI SGI copyright + +RedBook demos progs/redbook/ SGI SGI copyright Deleted: PKGBUILD =================================================================== --- PKGBUILD 2018-01-12 18:57:55 UTC (rev 281689) +++ PKGBUILD 2018-01-12 18:58:06 UTC (rev 281690) @@ -1,165 +0,0 @@ -# $Id$ -# Maintainer: Laurent Carlier <lordhea...@gmail.com> -# Contributor: Jan de Groot <j...@archlinux.org> -# Contributor: Andreas Radke <andy...@archlinux.org> - -pkgbase=lib32-mesa -pkgname=('lib32-vulkan-intel' 'lib32-vulkan-radeon' 'lib32-libva-mesa-driver' 'lib32-mesa-vdpau' 'lib32-mesa') -pkgver=17.3.2 -pkgrel=1 -arch=('x86_64') -makedepends=('python2-mako' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'glproto' 'lib32-libdrm' 'dri2proto' 'dri3proto' 'presentproto' - 'lib32-libxshmfence' 'lib32-libxxf86vm' 'lib32-libxdamage' 'gcc-multilib' 'lib32-libelf' 'lib32-llvm' 'lib32-libvdpau' - 'lib32-libva' 'lib32-wayland' 'wayland-protocols' 'lib32-libglvnd' 'lib32-lm_sensors') -url="http://mesa3d.sourceforge.net" -license=('custom') -source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} - LICENSE - 0002-glvnd-fix-gl-dot-pc.patch) -sha256sums=('e2844a13f2d6f8f24bee65804a51c42d8dc6ae9c36cff7ee61d0940e796d64c6' - 'SKIP' - '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' - '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966') -validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.veli...@gmail.com> -validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez <ta...@igalia.com>" -validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasua...@igalia.com>" - -prepare() { - cd ${srcdir}/mesa-${pkgver} - - # glvnd support patches - from Fedora - # non-upstreamed ones - patch -Np1 -i ../0002-glvnd-fix-gl-dot-pc.patch - - autoreconf -fiv -} - -build() { - export CC="gcc -m32" - export CXX="g++ -m32" - export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" - export LLVM_CONFIG="/usr/bin/llvm-config32" - - cd ${srcdir}/mesa-${pkgver} - - ./configure \ - --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu \ - --libdir=/usr/lib32 \ - --prefix=/usr \ - --sysconfdir=/etc \ - --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl,swr \ - --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \ - --with-platforms=x11,drm,wayland \ - --with-vulkan-drivers=intel,radeon \ - --disable-xvmc \ - --disable-libunwind \ - --enable-libglvnd \ - --enable-llvm \ - --enable-llvm-shared-libs \ - --enable-shared-glapi \ - --enable-lmsensors \ - --enable-glx-tls \ - --enable-egl \ - --enable-glx \ - --enable-gles1 \ - --enable-gles2 \ - --enable-gbm \ - --enable-dri \ - --enable-gallium-osmesa \ - --enable-gallium-extra-hud \ - --enable-texture-float \ - --enable-nine \ - --enable-vdpau - - make - - mkdir $srcdir/fakeinstall - make DESTDIR=${srcdir}/fakeinstall install -} - -package_lib32-vulkan-intel() { - pkgdesc="Intel's Vulkan mesa driver (32-bit)" - depends=('lib32-wayland' 'lib32-libx11' 'lib32-gcc-libs' 'lib32-libxshmfence') - provides=('lib32-vulkan-driver') - - install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d - cp -rv ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/intel_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/ - - install -m755 -d ${pkgdir}/usr/lib32 - cp -rv ${srcdir}/fakeinstall/usr/lib32/libvulkan_intel.so ${pkgdir}/usr/lib32/ - - install -m755 -d "${pkgdir}/usr/share/licenses/lib32-vulkan-intel" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-intel/" -} - -package_lib32-vulkan-radeon() { - pkgdesc="Radeon's Vulkan mesa driver (32-bit)" - depends=('lib32-wayland' 'lib32-libx11' 'lib32-llvm-libs' 'lib32-libdrm' 'lib32-libelf' 'lib32-libxshmfence') - provides=('lib32-vulkan-driver') - - install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d - cp -rv ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/ - - install -m755 -d ${pkgdir}/usr/lib32 - cp -rv ${srcdir}/fakeinstall/usr/lib32/libvulkan_radeon.so ${pkgdir}/usr/lib32/ - - install -m755 -d "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon/" -} - -package_lib32-libva-mesa-driver() { - pkgdesc="VA-API implementation for gallium (32-bit)" - depends=('lib32-libdrm' 'lib32-libx11' 'lib32-expat' 'lib32-llvm-libs' 'lib32-libelf' 'lib32-lm_sensors' - 'lib32-libxshmfence') - - install -m755 -d ${pkgdir}/usr/lib32/dri - cp -av ${srcdir}/fakeinstall/usr/lib32/dri/*_drv_video.so ${pkgdir}/usr/lib32/dri - - install -m755 -d "${pkgdir}/usr/share/licenses/lib32-libva-mesa-driver" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-libva-mesa-driver/" -} - -package_lib32-mesa-vdpau() { - pkgdesc="Mesa VDPAU drivers (32-bit)" - depends=('lib32-libdrm' 'lib32-libx11' 'lib32-expat' 'lib32-llvm-libs' 'lib32-libelf' 'lib32-lm_sensors' - 'lib32-libxshmfence') - - install -m755 -d ${pkgdir}/usr/lib32/vdpau - cp -av ${srcdir}/fakeinstall/usr/lib32/vdpau/* ${pkgdir}/usr/lib32/vdpau - - install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa-vdpau" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa-vdpau/" -} - -package_lib32-mesa() { - pkgdesc="an open-source implementation of the OpenGL specification (32-bit)" - depends=('lib32-libdrm' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libxshmfence' 'lib32-lm_sensors' - 'lib32-libelf' 'lib32-llvm-libs' 'lib32-wayland' 'lib32-libglvnd' 'mesa') - optdepends=('opengl-man-pages: for the OpenGL API man pages' - 'lib32-mesa-vdpau: for accelerated video playback') - provides=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl' 'lib32-opengl-driver') - conflicts=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl') - replaces=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl') - - install -m755 -d ${pkgdir}/usr/lib32/dri - # ati-dri, nouveay-dri, intel-dri, swrast - cp -av ${srcdir}/fakeinstall/usr/lib32/dri/*_dri.so ${pkgdir}/usr/lib32/dri - - install -m755 -d ${pkgdir}/usr/lib32 - cp -rv ${srcdir}/fakeinstall/usr/lib32/d3d ${pkgdir}/usr/lib32 - cp -rv ${srcdir}/fakeinstall/usr/lib32/lib{gbm,glapi}.so* ${pkgdir}/usr/lib32/ - cp -rv ${srcdir}/fakeinstall/usr/lib32/libOSMesa.so* ${pkgdir}/usr/lib32/ - cp -rv ${srcdir}/fakeinstall/usr/lib32/libwayland*.so* ${pkgdir}/usr/lib32/ - cp -rv ${srcdir}/fakeinstall/usr/lib32/libswrAVX*.so* ${pkgdir}/usr/lib32/ - - cp -rv ${srcdir}/fakeinstall/usr/lib32/pkgconfig ${pkgdir}/usr/lib32/ - - # libglvnd support - cp -rv ${srcdir}/fakeinstall/usr/lib32/libGLX_mesa.so* ${pkgdir}/usr/lib32/ - cp -rv ${srcdir}/fakeinstall/usr/lib32/libEGL_mesa.so* ${pkgdir}/usr/lib32/ - # indirect rendering - ln -s /usr/lib32/libGLX_mesa.so.0 ${pkgdir}/usr/lib32/libGLX_indirect.so.0 - - install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa/" -} Copied: lib32-mesa/repos/multilib-x86_64/PKGBUILD (from rev 281689, lib32-mesa/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2018-01-12 18:58:06 UTC (rev 281690) @@ -0,0 +1,170 @@ +# $Id$ +# Maintainer: Laurent Carlier <lordhea...@gmail.com> +# Contributor: Jan de Groot <j...@archlinux.org> +# Contributor: Andreas Radke <andy...@archlinux.org> + +pkgbase=lib32-mesa +pkgname=('lib32-vulkan-intel' 'lib32-vulkan-radeon' 'lib32-libva-mesa-driver' 'lib32-mesa-vdpau' 'lib32-mesa') +pkgver=17.3.2 +pkgrel=2 +arch=('x86_64') +makedepends=('python2-mako' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'glproto' 'lib32-libdrm' 'dri2proto' 'dri3proto' 'presentproto' + 'lib32-libxshmfence' 'lib32-libxxf86vm' 'lib32-libxdamage' 'gcc-multilib' 'lib32-libelf' 'lib32-llvm' 'lib32-libvdpau' + 'lib32-libva' 'lib32-wayland' 'wayland-protocols' 'lib32-libglvnd' 'lib32-lm_sensors') +url="http://mesa3d.sourceforge.net" +license=('custom') +source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} + LICENSE + 0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch + 0002-glvnd-fix-gl-dot-pc.patch) +sha256sums=('e2844a13f2d6f8f24bee65804a51c42d8dc6ae9c36cff7ee61d0940e796d64c6' + 'SKIP' + '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' + '777a5cf59eefc51fb89d60e3f6a47a7b974b794d309f6532ab107c36cd0bad19' + '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966') +validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.veli...@gmail.com> +validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez <ta...@igalia.com>" +validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasua...@igalia.com>" + +prepare() { + cd ${srcdir}/mesa-${pkgver} + + # https://bugs.freedesktop.org/show_bug.cgi?id=104214 + patch -Np1 -i ../0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch + + # glvnd support patches - from Fedora + # non-upstreamed ones + patch -Np1 -i ../0002-glvnd-fix-gl-dot-pc.patch + + autoreconf -fiv +} + +build() { + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + export LLVM_CONFIG="/usr/bin/llvm-config32" + + cd ${srcdir}/mesa-${pkgver} + + ./configure \ + --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu \ + --libdir=/usr/lib32 \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl,swr \ + --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \ + --with-platforms=x11,drm,wayland \ + --with-vulkan-drivers=intel,radeon \ + --disable-xvmc \ + --disable-libunwind \ + --enable-libglvnd \ + --enable-llvm \ + --enable-llvm-shared-libs \ + --enable-shared-glapi \ + --enable-lmsensors \ + --enable-glx-tls \ + --enable-egl \ + --enable-glx \ + --enable-gles1 \ + --enable-gles2 \ + --enable-gbm \ + --enable-dri \ + --enable-gallium-osmesa \ + --enable-gallium-extra-hud \ + --enable-texture-float \ + --enable-nine \ + --enable-vdpau + + make + + mkdir $srcdir/fakeinstall + make DESTDIR=${srcdir}/fakeinstall install +} + +package_lib32-vulkan-intel() { + pkgdesc="Intel's Vulkan mesa driver (32-bit)" + depends=('lib32-wayland' 'lib32-libx11' 'lib32-gcc-libs' 'lib32-libxshmfence') + provides=('lib32-vulkan-driver') + + install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d + cp -rv ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/intel_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/ + + install -m755 -d ${pkgdir}/usr/lib32 + cp -rv ${srcdir}/fakeinstall/usr/lib32/libvulkan_intel.so ${pkgdir}/usr/lib32/ + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-vulkan-intel" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-intel/" +} + +package_lib32-vulkan-radeon() { + pkgdesc="Radeon's Vulkan mesa driver (32-bit)" + depends=('lib32-wayland' 'lib32-libx11' 'lib32-llvm-libs' 'lib32-libdrm' 'lib32-libelf' 'lib32-libxshmfence') + provides=('lib32-vulkan-driver') + + install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d + cp -rv ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/ + + install -m755 -d ${pkgdir}/usr/lib32 + cp -rv ${srcdir}/fakeinstall/usr/lib32/libvulkan_radeon.so ${pkgdir}/usr/lib32/ + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon/" +} + +package_lib32-libva-mesa-driver() { + pkgdesc="VA-API implementation for gallium (32-bit)" + depends=('lib32-libdrm' 'lib32-libx11' 'lib32-expat' 'lib32-llvm-libs' 'lib32-libelf' 'lib32-lm_sensors' + 'lib32-libxshmfence') + + install -m755 -d ${pkgdir}/usr/lib32/dri + cp -av ${srcdir}/fakeinstall/usr/lib32/dri/*_drv_video.so ${pkgdir}/usr/lib32/dri + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-libva-mesa-driver" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-libva-mesa-driver/" +} + +package_lib32-mesa-vdpau() { + pkgdesc="Mesa VDPAU drivers (32-bit)" + depends=('lib32-libdrm' 'lib32-libx11' 'lib32-expat' 'lib32-llvm-libs' 'lib32-libelf' 'lib32-lm_sensors' + 'lib32-libxshmfence') + + install -m755 -d ${pkgdir}/usr/lib32/vdpau + cp -av ${srcdir}/fakeinstall/usr/lib32/vdpau/* ${pkgdir}/usr/lib32/vdpau + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa-vdpau" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa-vdpau/" +} + +package_lib32-mesa() { + pkgdesc="an open-source implementation of the OpenGL specification (32-bit)" + depends=('lib32-libdrm' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libxshmfence' 'lib32-lm_sensors' + 'lib32-libelf' 'lib32-llvm-libs' 'lib32-wayland' 'lib32-libglvnd' 'mesa') + optdepends=('opengl-man-pages: for the OpenGL API man pages' + 'lib32-mesa-vdpau: for accelerated video playback') + provides=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl' 'lib32-opengl-driver') + conflicts=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl') + replaces=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri' 'lib32-mesa-libgl') + + install -m755 -d ${pkgdir}/usr/lib32/dri + # ati-dri, nouveay-dri, intel-dri, swrast + cp -av ${srcdir}/fakeinstall/usr/lib32/dri/*_dri.so ${pkgdir}/usr/lib32/dri + + install -m755 -d ${pkgdir}/usr/lib32 + cp -rv ${srcdir}/fakeinstall/usr/lib32/d3d ${pkgdir}/usr/lib32 + cp -rv ${srcdir}/fakeinstall/usr/lib32/lib{gbm,glapi}.so* ${pkgdir}/usr/lib32/ + cp -rv ${srcdir}/fakeinstall/usr/lib32/libOSMesa.so* ${pkgdir}/usr/lib32/ + cp -rv ${srcdir}/fakeinstall/usr/lib32/libwayland*.so* ${pkgdir}/usr/lib32/ + cp -rv ${srcdir}/fakeinstall/usr/lib32/libswrAVX*.so* ${pkgdir}/usr/lib32/ + + cp -rv ${srcdir}/fakeinstall/usr/lib32/pkgconfig ${pkgdir}/usr/lib32/ + + # libglvnd support + cp -rv ${srcdir}/fakeinstall/usr/lib32/libGLX_mesa.so* ${pkgdir}/usr/lib32/ + cp -rv ${srcdir}/fakeinstall/usr/lib32/libEGL_mesa.so* ${pkgdir}/usr/lib32/ + # indirect rendering + ln -s /usr/lib32/libGLX_mesa.so.0 ${pkgdir}/usr/lib32/libGLX_indirect.so.0 + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa/" +}