From 1b7d2781c5fffbe24a354231c4de8d3edaff3883 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Wed, 16 May 2018 23:55:56 +0200 Subject: [PATCH] temp: add mesa This new mesa package isn't built for armhf yet in Alpine, but the previous one breaks plasma mobile right now. --- temp/mesa/APKBUILD | 271 ++++++++++++++++++++++++++++++ temp/mesa/drmdeps.patch | 41 +++++ temp/mesa/glx_ro_text_segm.patch | 28 +++ temp/mesa/musl-fix-includes.patch | 22 +++ 4 files changed, 362 insertions(+) create mode 100644 temp/mesa/APKBUILD create mode 100644 temp/mesa/drmdeps.patch create mode 100644 temp/mesa/glx_ro_text_segm.patch create mode 100644 temp/mesa/musl-fix-includes.patch diff --git a/temp/mesa/APKBUILD b/temp/mesa/APKBUILD new file mode 100644 index 000000000..1108f59ca --- /dev/null +++ b/temp/mesa/APKBUILD @@ -0,0 +1,271 @@ +# Copied from Alpine because their build-edge-armhf is stuck +pkgname=mesa +pkgver=18.0.2 +pkgrel=1 +pkgdesc="Mesa DRI OpenGL library" +url="http://www.mesa3d.org" +arch="all" +license="MIT SGI-B-2.0 BSL-1.0" +subpackages="$pkgname-dev + $pkgname-dri-ati:_dri + $pkgname-dri-nouveau:_dri + $pkgname-dri-freedreno:_dri + $pkgname-dri-swrast:_dri + $pkgname-dri-virtio:_dri + $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles + $pkgname-xatracker $pkgname-osmesa $pkgname-gbm + $pkgname-vulkan-ati:_vulkan + " +_llvmver=5 +depends_dev="libdrm-dev dri2proto libxext-dev libxdamage-dev libxcb-dev glproto + dri3proto presentproto libxshmfence-dev" +makedepends="$depends_dev expat-dev xextproto python3 libxt-dev makedepend + talloc-dev py3-libxml2 flex bison llvm$_llvmver-dev eudev-dev libvdpau-dev + libxvmc-dev gettext zlib-dev libelf-dev py-mako libva-dev + autoconf automake libtool libxxf86vm-dev libx11-dev libxfixes-dev + wayland-dev wayland-protocols" +source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz + glx_ro_text_segm.patch + musl-fix-includes.patch + drmdeps.patch + " +replaces="mesa-dricore" + +_dri_driverdir=/usr/lib/xorg/modules/dri +_dri_drivers="r200,radeon,nouveau,swrast" +_gallium_drivers="r300,r600,radeonsi,nouveau,freedreno,swrast,virgl" +_vulkan_drivers="radeon" + +_arch_opts= + +case "$CARCH" in +x86*) + _dri_drivers="${_dri_drivers},i915,i965" + _gallium_drivers="${_gallium_drivers},svga" + _vulkan_drivers="$_vulkan_drivers,intel" + subpackages="$subpackages $pkgname-dri-intel:_dri $pkgname-dri-vmwgfx:_dri $pkgname-vulkan-intel:_vulkan" + _arch_opts="--enable-dri3" + case "$CARCH" in + x86) _arch_opts="$_arch_opts --enable-glx-rts --disable-asm";; + esac + ;; +armhf|aarch64) + _gallium_drivers="${_gallium_drivers},vc4" + subpackages="$subpackages $pkgname-dri-vc4:_dri" + case "$CARCH" in + armhf) CFLAGS="$CFLAGS -mfpu=neon";; + esac + ;; +esac + +prepare() { + cd "$builddir" + default_prepare + libtoolize --force \ + && aclocal \ + && automake --add-missing \ + && autoreconf +} + +build() { + cd "$builddir" + + export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-dri-driverdir=$_dri_driverdir \ + --with-gallium-drivers=${_gallium_drivers} \ + --with-dri-drivers=${_dri_drivers} \ + --with-vulkan-drivers=${_vulkan_drivers} \ + --with-llvm-prefix=/usr/lib/llvm$_llvmver \ + --with-platforms=x11,drm,wayland \ + --enable-llvm \ + --enable-llvm-shared-libs \ + --enable-shared-glapi \ + --enable-gbm \ + --enable-dri \ + --enable-glx \ + --enable-gallium-osmesa \ + --enable-gles1 \ + --enable-gles2 \ + --enable-egl \ + --enable-texture-float \ + --enable-xa \ + --enable-vdpau \ + --enable-va \ + --disable-xvmc \ + --disable-glx-tls \ + --disable-nine \ + $_arch_opts + make +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + + # provided by wayland + rm -v "$pkgdir"/usr/lib/libwayland-egl.so* + rm -v "$pkgdir"/usr/lib/pkgconfig/wayland-egl.pc +} + +egl() { + pkgdesc="Mesa libEGL runtime libraries" + replaces="mesa" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/ +} + +gl() { + pkgdesc="Mesa libGL runtime libraries" + replaces="mesa" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/ +} + +glapi() { + pkgdesc="Mesa shared glapi" + replaces="$pkgname-gles" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/ +} + +gles() { + pkgdesc="Mesa libGLESv2 runtime libraries" + replaces="mesa" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/ +} + +xatracker() { + pkgdesc="Mesa XA state tracker for vmware" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libxatracker*.so.* "$subpkgdir"/usr/lib/ +} + +osmesa() { + pkgdesc="Mesa offscreen rendering libraries" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libOSMesa.so.* "$subpkgdir"/usr/lib/ +} + +gbm() { + pkgdesc="Mesa gbm library" + replaces="mesa" + + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/ +} + +_mv_dri() { + install -d "$subpkgdir"/$_dri_driverdir + + while [ $# -gt 0 ]; do + mv "$pkgdir"/$_dri_driverdir/${1}.so \ + "$subpkgdir"/$_dri_driverdir/ + shift + done +} + +_mv_vdpau() { + local i + install -d "$subpkgdir"/usr/lib/vdpau + for i in "$@"; do + mv "$pkgdir"/usr/lib/vdpau/libvdpau_$i.* \ + "$subpkgdir"/usr/lib/vdpau/ + done +} + +_mv_gpipe() { + return 0 + # http://cgit.freedesktop.org/mesa/mesa/commit/?id=44ec468e8033553c26a112cebba41c343db00eb1 + # https://code.google.com/p/chromium/issues/detail?id=412089 +# local i +# install -d "$subpkgdir"/usr/lib/gallium-pipe +# for i in "$@"; do +# mv "$pkgdir"/usr/lib/gallium-pipe/pipe_$i.* \ +# "$subpkgdir"/usr/lib/gallium-pipe/ +# done +} + +_mv_vulkan() { + local i + install -d "$subpkgdir"/usr/lib + install -d "$subpkgdir"/usr/share/vulkan/icd.d + for i in "$@"; do + mv "$pkgdir"/usr/lib/libvulkan_${i}.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/share/vulkan/icd.d/${i}* "$subpkgdir"/usr/share/vulkan/icd.d/ + done +} + +_mv_va() { + local i + install -d "$subpkgdir"/usr/lib/dri + for i in "$@"; do + mv "$pkgdir"/usr/lib/dri/${i}_drv_video.so \ + "$subpkgdir"/usr/lib/dri/ + done +} + +_dri() { + local n=${subpkgname##*-dri-} + pkgdesc="Mesa DRI driver for $n" + + case $n in + ati) + _mv_dri radeon_dri r200_dri r300_dri r600_dri radeonsi_dri \ + && _mv_vdpau r300 r600 radeonsi \ + && _mv_gpipe r300 r600 \ + && _mv_va r600 radeonsi + ;; + intel) + _mv_dri i915_dri i965_dri + ;; + nouveau) + _mv_dri nouveau_dri nouveau_vieux_dri \ + && _mv_vdpau nouveau \ + && _mv_gpipe nouveau \ + && _mv_va nouveau + ;; + freedreno) + _mv_dri msm_dri kgsl_dri + ;; + swrast) + _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast + ;; + vc4) + _mv_dri vc4_dri + ;; + vmwgfx) + _mv_dri vmwgfx_dri && _mv_gpipe vmwgfx + ;; + virtio) + _mv_dri virtio_gpu_dri + ;; + esac +} + +_vulkan() { + local n=${subpkgname##*-vulkan-} + pkgdesc="Mesa Vulkan API driver for $n" + + case $n in + ati) + _mv_vulkan radeon ;; + intel) + _mv_vulkan intel ;; + esac +} +sha512sums="77d24d01c4c22596d28421aeb74932ff232730a4f556ae1a2e8777ece2876e4e352679575385c065505df4a2a83d2c1cf30db92dcf88038417e36a2768332d7e mesa-18.0.2.tar.xz +c3d4804ebc24c7216e4c9d4995fb92e116be7f478024b44808ee134a4c93bb51d1f66fe5fb6eca254f124c4abf6f81272b027824b3e2650a9607818bf793035a glx_ro_text_segm.patch +910dd69c29b9b51b3b66e975baefbd8a6458500ef3164837036a4ac923c33254d558d678a100025ba2a69fd1111aa6b3ec83f332a66cae4207431e5e1c8ec567 musl-fix-includes.patch +3409483217dbec732286e628e268e1e8cd392b7e8efb13c7651b38e6563aa5a4988279efb029096dcd092ebe7a92eece103014ed420d2b242eab8d0237f056fd drmdeps.patch" diff --git a/temp/mesa/drmdeps.patch b/temp/mesa/drmdeps.patch new file mode 100644 index 000000000..36b6889b3 --- /dev/null +++ b/temp/mesa/drmdeps.patch @@ -0,0 +1,41 @@ +--- a/src/gallium/winsys/radeon/drm/Makefile.am ++++ b/src/gallium/winsys/radeon/drm/Makefile.am +@@ -7,4 +7,6 @@ + + noinst_LTLIBRARIES = libradeonwinsys.la + ++libradeonwinsys_la_LIBADD = -ldrm_radeon ++ + libradeonwinsys_la_SOURCES = $(C_SOURCES) +--- a/src/gallium/winsys/radeon/drm/Makefile.in ++++ b/src/gallium/winsys/radeon/drm/Makefile.in +@@ -119,7 +119,7 @@ + CONFIG_CLEAN_FILES = + CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) +-libradeonwinsys_la_LIBADD = ++libradeonwinsys_la_LIBADD = -ldrm_radeon + am__objects_1 = radeon_drm_bo.lo radeon_drm_cs.lo \ + radeon_drm_surface.lo radeon_drm_winsys.lo + am_libradeonwinsys_la_OBJECTS = $(am__objects_1) +--- a/src/gallium/winsys/amdgpu/drm/Makefile.am ++++ b/src/gallium/winsys/amdgpu/drm/Makefile.am +@@ -11,6 +11,6 @@ + noinst_LTLIBRARIES = libamdgpuwinsys.la + + libamdgpuwinsys_la_LIBADD = \ +- $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la ++ $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la -ldrm_amdgpu + + libamdgpuwinsys_la_SOURCES = $(C_SOURCES) +--- a/src/gallium/winsys/amdgpu/drm/Makefile.in ++++ b/src/gallium/winsys/amdgpu/drm/Makefile.in +@@ -572,7 +572,7 @@ + AM_CXXFLAGS = $(AM_CFLAGS) + noinst_LTLIBRARIES = libamdgpuwinsys.la + libamdgpuwinsys_la_LIBADD = \ +- $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la ++ $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la -ldrm_amdgpu + + libamdgpuwinsys_la_SOURCES = $(C_SOURCES) + all: all-am diff --git a/temp/mesa/glx_ro_text_segm.patch b/temp/mesa/glx_ro_text_segm.patch new file mode 100644 index 000000000..8cad4876b --- /dev/null +++ b/temp/mesa/glx_ro_text_segm.patch @@ -0,0 +1,28 @@ +2011-02-09 Jeremy Huddleston @])], ++ [enable_glx_rts="$enableval"], ++ [enable_glx_rts=no]) ++if test "x$enable_glx_rts" = xyes; then ++ DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT" ++else ++ enable_glx_rts=no ++fi ++ ++ + dnl + dnl libGL configuration per driver + dnl diff --git a/temp/mesa/musl-fix-includes.patch b/temp/mesa/musl-fix-includes.patch new file mode 100644 index 000000000..556aa9cd9 --- /dev/null +++ b/temp/mesa/musl-fix-includes.patch @@ -0,0 +1,22 @@ +--- a/src/util/rand_xor.c ++++ b/src/util/rand_xor.c +@@ -24,6 +24,8 @@ + + #if defined(__linux__) + #include ++#include ++#include + #include + #include + #else +--- ./src/gallium/winsys/svga/drm/vmw_screen.h.orig ++++ ./src/gallium/winsys/svga/drm/vmw_screen.h +@@ -34,7 +34,7 @@ + #ifndef VMW_SCREEN_H_ + #define VMW_SCREEN_H_ + +- ++#include + #include "pipe/p_compiler.h" + #include "pipe/p_state.h" +