diff options
-rw-r--r-- | libre/mesa/0004-meson-Add-library-versions-to-swr-drivers.patch | 71 | ||||
-rw-r--r-- | libre/mesa/0005-meson-Version-libMesaOpenCL-like-autotools-does.patch | 43 | ||||
-rw-r--r-- | libre/mesa/LICENSE | 87 | ||||
-rw-r--r-- | libre/mesa/PKGBUILD | 180 |
4 files changed, 262 insertions, 119 deletions
diff --git a/libre/mesa/0004-meson-Add-library-versions-to-swr-drivers.patch b/libre/mesa/0004-meson-Add-library-versions-to-swr-drivers.patch new file mode 100644 index 000000000..b9ae485df --- /dev/null +++ b/libre/mesa/0004-meson-Add-library-versions-to-swr-drivers.patch @@ -0,0 +1,71 @@ +From cd56731b2c63532d6ed97f7b39afa5977936b3bc Mon Sep 17 00:00:00 2001 +Message-Id: <cd56731b2c63532d6ed97f7b39afa5977936b3bc.1523725229.git.jan.steffens@gmail.com> +In-Reply-To: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com> +References: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com> +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Sat, 14 Apr 2018 18:43:23 +0200 +Subject: [PATCH 4/5] meson: Add library versions to swr drivers + +This is for parity with autotools. + +Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +--- + src/gallium/drivers/swr/meson.build | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/gallium/drivers/swr/meson.build b/src/gallium/drivers/swr/meson.build +index 43e1c5cc50..a6dbd7a3f6 100644 +--- a/src/gallium/drivers/swr/meson.build ++++ b/src/gallium/drivers/swr/meson.build +@@ -198,6 +198,7 @@ if with_swr_arches.contains('avx') + link_args : [ld_args_gc_sections], + include_directories : [swr_incs], + dependencies : [dep_thread, dep_llvm], ++ version : '0.0.0', + install : true, + ) + endif +@@ -230,6 +231,7 @@ if with_swr_arches.contains('avx2') + link_args : [ld_args_gc_sections], + include_directories : [swr_incs], + dependencies : [dep_thread, dep_llvm], ++ version : '0.0.0', + install : true, + ) + endif +@@ -257,30 +259,32 @@ if with_swr_arches.contains('knl') + link_args : [ld_args_gc_sections], + include_directories : [swr_incs], + dependencies : [dep_thread, dep_llvm], ++ version : '0.0.0', + install : true, + ) + endif + + if with_swr_arches.contains('skx') + swr_skx_args = cpp.first_supported_argument( + '-target-cpu=x86-skylake', '-march=skylake-avx512', '-xCORE-AVX512', + prefix : ''' + #if !defined(__AVX512F__) || !defined(__AVX512BW__) + # error + #endif ''', + ) + if swr_skx_args == [] + error('Cannot find SKX support for swr.') + endif + + swr_arch_defines += '-DHAVE_SWR_SKX' + swr_arch_libs += shared_library( + 'swrSKX', + [files_swr_common, files_swr_arch], + cpp_args : [swr_cpp_args, swr_skx_args, '-DKNOB_ARCH=KNOB_ARCH_AVX512'], + link_args : [ld_args_gc_sections], + include_directories : [swr_incs], + dependencies : [dep_thread, dep_llvm], ++ version : '0.0.0', + install : true, + ) + endif +-- +2.16.2 + diff --git a/libre/mesa/0005-meson-Version-libMesaOpenCL-like-autotools-does.patch b/libre/mesa/0005-meson-Version-libMesaOpenCL-like-autotools-does.patch new file mode 100644 index 000000000..de93fc31a --- /dev/null +++ b/libre/mesa/0005-meson-Version-libMesaOpenCL-like-autotools-does.patch @@ -0,0 +1,43 @@ +From 064f328419936a8a5df2b0474ae76196d92e6fa0 Mon Sep 17 00:00:00 2001 +Message-Id: <064f328419936a8a5df2b0474ae76196d92e6fa0.1523725229.git.jan.steffens@gmail.com> +In-Reply-To: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com> +References: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com> +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Sat, 14 Apr 2018 18:49:14 +0200 +Subject: [PATCH 5/5] meson: Version libMesaOpenCL like autotools does + +This is for parity with autotools. It names the library +libMesaOpenCL.so.1.0.0 and points mesa.icd to the .1 symlink. + +opencl_version now matches configure.ac's OPENCL_VERSION. + +Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +--- + src/gallium/targets/opencl/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build +index bebe0547d4..317ad8dab4 100644 +--- a/src/gallium/targets/opencl/meson.build ++++ b/src/gallium/targets/opencl/meson.build +@@ -20,7 +20,7 @@ + + opencl_link_args = [] + opencl_link_deps = [] +-opencl_version = '1.0' ++opencl_version = '1' + + if with_ld_version_script + opencl_link_args += [ +@@ -55,7 +55,7 @@ libopencl = shared_library( + cpp.find_library('clangLex', dirs : llvm_libdir), + cpp.find_library('clangBasic', dirs : llvm_libdir), + ], +- version : opencl_version, ++ version : '@0@.0.0'.format(opencl_version), + install : true, + ) + +-- +2.16.2 + diff --git a/libre/mesa/LICENSE b/libre/mesa/LICENSE index ae33d2709..060f4a925 100644 --- a/libre/mesa/LICENSE +++ b/libre/mesa/LICENSE @@ -1,33 +1,34 @@ +The Mesa 3D Graphics Library + 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. + Mesa is a 3-D graphics library with an API which is very similar to + that of [1]OpenGL.* To the extent that Mesa utilizes the OpenGL command + syntax or state machine, it is being used with authorization from + [2]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 + 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. + * OpenGL is a trademark of [3]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 Mesa distribution consists of several components. Different + copyrights and licenses apply to different components. For example, the + GLX client code uses the SGI Free Software License B, and 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 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: + The default Mesa license is as follows: Copyright (C) 1999-2007 Brian Paul All Rights Reserved. @@ -44,39 +45,39 @@ 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. +THE AUTHORS OR COPYRIGHT HOLDERS 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. - + 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) +Component Location License +------------------------------------------------------------------ +Main Mesa code src/mesa/ MIT -Device drivers src/mesa/drivers/* See drivers See drivers +Device drivers src/mesa/drivers/* MIT, generally -Ext headers include/GL/glext.h SGI SGI Free B - include/GL/glxext.h +Gallium code src/gallium/ MIT -GLUT src/glut/ Mark Kilgard Mark's copyright - -Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL +Ext headers include/GL/glext.h Khronos + include/GL/glxext.h -SGI GLU library src/glu/sgi/ SGI SGI Free B +GLX client code src/glx/ SGI Free Software License B -demo programs progs/demos/ various see source files +C11 thread include/c11/threads*.h Boost (permissive) emulation -X demos progs/xdemos/ Brian Paul see source files + In general, consult the source files for license terms. -SGI demos progs/samples/ SGI SGI copyright +References -RedBook demos progs/redbook/ SGI SGI copyright + 1. https://www.opengl.org/ + 2. https://www.sgi.com/ + 3. https://www.sgi.com/ diff --git a/libre/mesa/PKGBUILD b/libre/mesa/PKGBUILD index ced62b28b..57ff9b558 100644 --- a/libre/mesa/PKGBUILD +++ b/libre/mesa/PKGBUILD @@ -4,12 +4,14 @@ pkgbase=mesa pkgname=("${pkgbase}") -pkgver=17.3.7 +pkgdesc="A free implementation of the OpenGL specification, without nonfree software recommendations in drirc" +pkgver=18.0.3 pkgrel=1.parabola1 arch=('i686' 'x86_64' 'armv7h') makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto' 'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' - 'elfutils' 'llvm' 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors') + 'elfutils' 'llvm' 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors' + 'meson') makedepends_x86_64=('libclc' 'libunwind') makedepends_i686=("${makedepends_x86_64[@]}") url="https://www.mesa3d.org/" @@ -17,86 +19,108 @@ license=('custom') source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} LICENSE 0001-glvnd-fix-gl-dot-pc.patch + 0004-meson-Add-library-versions-to-swr-drivers.patch + 0005-meson-Version-libMesaOpenCL-like-autotools-does.patch drirc) -sha512sums=('ec48565556aa4281056cee5dbef140553651fdfbb76ce32397de048db1cf65f5e18787c72b998de7da2de795d27e7040bde84651ade4726fc3a69a23b166ba4e' +source_armv7h=("atomic.patch::https://cgit.freedesktop.org/mesa/mesa/patch/?id=498faea103aa7966b435f21d8ff5e36172389b1e") +sha512sums=('decd050bab049d17bcde3f832d4da0ffdb80f147c99377a162739bbe72fd6fd32b51e56e6fc66895b8c30fc19a1815bae164b21aa557816c3998ad18c1ffca2d' 'SKIP' - '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2' + 'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7' '75849eca72ca9d01c648d5ea4f6371f1b8737ca35b14be179e14c73cc51dca0739c333343cdc228a6d464135f4791bcdc21734e2debecd29d57023c8c088b028' + '0f5da6e48885713c7ddef9e5715e178e0a499bcb622d7f19e15b9e4b4647331d7bf14829218b6ab80f17bae90fd95b8df6a0a81203d8081686805ca5329531ff' + 'd3c01f61a0a0cc2f01e66e0126ad8b6386d4a53c1dc1b3b134800e4cd25507e458bac860cbed10cf4b46b04e8d50aba233870587b89c058fffd57436b48289bf' '7d949d1f45e68b8ec71ca0192569eeb6fc98b540e9696fea437894db02d98a78724ae4021f244137dd2ed2c8c167e96016f20306b4cf83c2defc8acd10170a1e') -validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com> -validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez <tanty@igalia.com>" -validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>" +sha512sums_armv7h=('75cd21bccc84a6b6b0de39c6d209c8bee0e5143b486433184ca078e8bc6797d30746be3ce5f7a89eea9bc3c7e2d68880412511fd6b9946252c7c7638523c6caa') +validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com> + '946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com> + 'E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>" prepare() { - cd ${srcdir}/mesa-${pkgver} + cd mesa-${pkgver} # glvnd support patches - from Fedora # non-upstreamed ones patch -Np1 -i ../0001-glvnd-fix-gl-dot-pc.patch - autoreconf -fiv + # Upstreamed meson fixes + patch -Np1 -i ../0004-meson-Add-library-versions-to-swr-drivers.patch + patch -Np1 -i ../0005-meson-Version-libMesaOpenCL-like-autotools-does.patch } build() { - cd ${srcdir}/mesa-${pkgver} - case "$CARCH" in x86_64|i686) - GALLIUM=r300,r600,radeonsi,nouveau,svga,swrast,virgl,swr - DRI=i915,i965,r200,radeon,nouveau,swrast - VULKAN=intel,radeon - LIBUNWIND='--enable-libunwind' - VDPAU_AND_XA='--enable-xa --enable-vdpau' - OPENCL='--enable-opencl --enable-opencl-icd' + DRI=i915,i965,r100,r200,nouveau + GALLIUM=r300,r600,radeonsi,nouveau,virgl,svga,swrast,swr + VULKAN=amd,intel + SWR_ARCHES=avx,avx2 + OPENCL=icd + GALLIUM_XA=true + LIBUNWIND=true ;; armv7h) - GALLIUM=freedreno,nouveau,swrast,virgl,vc4,etnaviv,imx - DRI=nouveau,swrast + DRI=nouveau + GALLIUM=freedreno,nouveau,swrast,virgl,etnaviv,imx,vc4 VULKAN= - LIBUNWIND= - VDPAU_AND_XA= + SWR_ARCHES= OPENCL= + GALLIUM_XA=false + LIBUNWIND=false ;; esac - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-gallium-drivers=${GALLIUM} \ - --with-dri-drivers=${DRI} \ - --with-platforms=x11,drm,wayland \ - --with-vulkan-drivers=${VULKAN} \ - --disable-xvmc \ - --enable-llvm \ - --enable-llvm-shared-libs \ - --enable-shared-glapi \ - --enable-libglvnd \ - $LIBUNWIND \ - --enable-lmsensors \ - --enable-egl \ - --enable-glx \ - --enable-glx-tls \ - --enable-gles1 \ - --enable-gles2 \ - --enable-gbm \ - --enable-dri \ - --enable-gallium-osmesa \ - --enable-gallium-extra-hud \ - --enable-texture-float \ - $VDPAU_AND_XA \ - --enable-omx-bellagio \ - --enable-nine \ - $OPENCL \ - --with-clang-libdir=/usr/lib - - make - - # fake installation - mkdir $srcdir/fakeinstall - make DESTDIR=${srcdir}/fakeinstall install + arch-meson mesa-$pkgver build \ + -D b_lto=false \ + -D b_ndebug=true \ + -D platforms=x11,wayland,drm,surfaceless \ + -D dri-drivers=${DRI} \ + -D gallium-drivers=${GALLIUM} \ + -D vulkan-drivers=${VULKAN} \ + -D swr-arches=${SWR_ARCHES} \ + -D dri3=true \ + -D egl=true \ + -D gallium-extra-hud=true \ + -D gallium-nine=true \ + -D gallium-omx=true \ + -D gallium-opencl=${OPENCL} \ + -D gallium-va=true \ + -D gallium-vdpau=true \ + -D gallium-xa=${GALLIUM_XA} \ + -D gallium-xvmc=false \ + -D gbm=true \ + -D gles1=true \ + -D gles2=true \ + -D glvnd=true \ + -D glx=dri \ + -D libunwind=${LIBUNWIND} \ + -D llvm=true \ + -D lmsensors=true \ + -D osmesa=gallium \ + -D shared-glapi=true \ + -D texture-float=true \ + -D valgrind=false + + # Print config + meson configure build + + ninja -C build + + # fake installation to be seperated into packages + # outside of fakeroot but mesa doesn't need to chown/mod + DESTDIR=${srcdir}/fakeinstall ninja -C build install +} + +_install() { + local src f dir + for src; do + f="${src#fakeinstall/}" + dir="${pkgdir}/${f%/*}" + install -m755 -d "${dir}" + mv -v "${src}" "${dir}/" + done } package_mesa() { - pkgdesc="A free implementation of the OpenGL specification, without nonfree software recommendations in drirc" depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 'libomxil-bellagio' 'llvm-libs' 'lm_sensors' 'libglvnd') depends_x86_64=('libunwind') @@ -112,36 +136,40 @@ package_mesa() { install -m755 -d ${pkgdir}/etc cp -v ${srcdir}/drirc ${pkgdir}/etc - install -m755 -d ${pkgdir}/usr/share/glvnd/egl_vendor.d - cp -rv ${srcdir}/fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json ${pkgdir}/usr/share/glvnd/egl_vendor.d/ + _install fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json - install -m755 -d ${pkgdir}/usr/lib/dri # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast - cp -av ${srcdir}/fakeinstall/usr/lib/dri/*_dri.so ${pkgdir}/usr/lib/dri + _install fakeinstall/usr/lib/dri/*_dri.so - cp -rv ${srcdir}/fakeinstall/usr/lib/bellagio ${pkgdir}/usr/lib - cp -rv ${srcdir}/fakeinstall/usr/lib/d3d ${pkgdir}/usr/lib - cp -rv ${srcdir}/fakeinstall/usr/lib/lib{gbm,glapi}.so* ${pkgdir}/usr/lib/ - cp -rv ${srcdir}/fakeinstall/usr/lib/libOSMesa.so* ${pkgdir}/usr/lib/ - cp -rv ${srcdir}/fakeinstall/usr/lib/libwayland*.so* ${pkgdir}/usr/lib/ + _install fakeinstall/usr/lib/bellagio + _install fakeinstall/usr/lib/d3d + _install fakeinstall/usr/lib/lib{gbm,glapi}.so* + _install fakeinstall/usr/lib/libOSMesa.so* + _install fakeinstall/usr/lib/libwayland*.so* if [ "$CARCH" != "armv7h" ]; then - cp -rv ${srcdir}/fakeinstall/usr/lib/libxatracker.so* ${pkgdir}/usr/lib/ - cp -rv ${srcdir}/fakeinstall/usr/lib/libswrAVX*.so* ${pkgdir}/usr/lib/ + _install fakeinstall/usr/lib/libxatracker.so* + _install fakeinstall/usr/lib/libswrAVX*.so* fi - cp -rv ${srcdir}/fakeinstall/usr/include ${pkgdir}/usr - cp -rv ${srcdir}/fakeinstall/usr/lib/pkgconfig ${pkgdir}/usr/lib/ + # in libglvnd + rm -v fakeinstall/usr/lib/libGLESv{1_CM,2}.so* - # remove vulkan headers - rm -rf ${pkgdir}/usr/include/vulkan + # in vulkan-headers + rm -rv fakeinstall/usr/include/vulkan + + _install fakeinstall/usr/include + _install fakeinstall/usr/lib/pkgconfig # libglvnd support - cp -rv ${srcdir}/fakeinstall/usr/lib/libGLX_mesa.so* ${pkgdir}/usr/lib/ - cp -rv ${srcdir}/fakeinstall/usr/lib/libEGL_mesa.so* ${pkgdir}/usr/lib/ + _install fakeinstall/usr/lib/libGLX_mesa.so* + _install fakeinstall/usr/lib/libEGL_mesa.so* + # indirect rendering - ln -s /usr/lib/libGLX_mesa.so.0 ${pkgdir}/usr/lib/libGLX_indirect.so.0 + ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0" + + # make sure there are no files left to install + #find fakeinstall -depth -print0 | xargs -0 rmdir - install -m755 -d "${pkgdir}/usr/share/licenses/mesa" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/" + install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } |