# Forked from Alpine, so we can upgrade the version and build etnaviv and tegra pkgname=mesa pkgver=9999 _pkgver=19.0.0-rc7 pkgrel=2 pkgdesc="[${_pkgver}] Mesa DRI OpenGL library" url="https://www.mesa3d.org" arch="armhf armv7 aarch64" license="MIT SGI-B-2.0 BSL-1.0" subpackages=" $pkgname-dev $pkgname-dri-swrast:_dri $pkgname-dri-nouveau:_dri $pkgname-dri-freedreno:_dri $pkgname-dri-virtio:_dri $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles $pkgname-osmesa $pkgname-gbm $pkgname-xatracker " depends_dev=" libdrm-dev libxext-dev libxdamage-dev libxcb-dev libxshmfence-dev " makedepends=" $depends_dev bison eudev-dev expat-dev flex gettext elfutils-libelf libtool libxfixes-dev libva-dev libvdpau-dev libx11-dev libxrandr-dev libxxf86vm-dev libxt-dev libxvmc-dev makedepend py-mako py3-libxml2 python3 talloc-dev wayland-dev wayland-protocols xorgproto zlib-dev meson ninja " source=" https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-${_pkgver}/mesa-mesa-${_pkgver}.tar.gz 10-adjust-cache-deflate-buffer.patch 20-musl.patch meson-add-toggle-for-TLS-support-in-GLX.patch " replaces="mesa-dricore" _dri_driverdir=/usr/lib/dri _dri_drivers="nouveau" _gallium_drivers="swrast,freedreno,virgl,nouveau" case "$CARCH" in x86*) _dri_drivers="${_dri_drivers},i915,i965" _gallium_drivers="${_gallium_drivers},svga" subpackages="$subpackages \ $pkgname-dri-intel:_dri \ $pkgname-dri-vmwgfx:_dri" ;; armhf|aarch64) _gallium_drivers="${_gallium_drivers},vc4,kmsro,etnaviv,tegra" subpackages="$subpackages $pkgname-dri-vc4:_dri $pkgname-dri-etnaviv:_dri $pkgname-dri-imx:_dri $pkgname-dri-tegra:_dri" ;; esac builddir="$srcdir/mesa-mesa-${_pkgver}" build() { cd "$builddir" export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700" mkdir "$builddir"/build meson -Ddri-search-path="$_dri_driverdir" \ -Dgallium-drivers="$_gallium_drivers" \ -Ddri-drivers="$_dri_drivers" \ -Dvulkan-drivers= \ -Dplatforms=x11,wayland,drm \ -Ddri3=true \ -Degl=true \ -Dglx=dri \ -Dgles1=true \ -Dgles2=true \ -Dshared-glapi=true \ -Dosmesa=gallium \ -Dgbm=true \ -Dglx-tls=false \ -Dprefix="$pkgdir"/usr "$builddir"/build ninja -C "$builddir"/build } package() { cd "$builddir" ninja -C "$builddir"/build install } egl() { pkgdesc="[${_pkgver}] Mesa libEGL runtime libraries" replaces="mesa" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/ } gl() { pkgdesc="[${_pkgver}] Mesa libGL runtime libraries" replaces="mesa" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/ } glapi() { pkgdesc="[${_pkgver}] Mesa shared glapi" replaces="$pkgname-gles" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/ } gles() { pkgdesc="[${_pkgver}] Mesa libGLESv2 runtime libraries" replaces="mesa" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/ } osmesa() { pkgdesc="[${_pkgver}] Mesa offscreen rendering libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libOSMesa.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/ } gbm() { pkgdesc="[${_pkgver}] 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_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="[${_pkgver}] Mesa DRI driver for $n" case $n in intel) _mv_dri i915_dri i965_dri ;; 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 ;; swrast) _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast ;; etnaviv) _mv_dri etnaviv_dri ;; imx) _mv_dri imx-drm_dri ;; tegra) _mv_dri tegra_dri ;; nouveau) _mv_dri nouveau_dri nouveau_vieux_dri \ && _mv_vdpau nouveau \ && _mv_gpipe nouveau \ && _mv_va nouveau ;; esac } sha512sums="27b2d15e03ac0444f576b478501b15654d6400d2769db87491eb3b2224bafcabff5d1d1c1f0165ae31272c2b4d965c6d9230703c29ef81314283a9f59ed6e3c6 mesa-mesa-19.0.0-rc7.tar.gz cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc 10-adjust-cache-deflate-buffer.patch 02db65893d55b5667d9c3bc193fc089e5408596431e06363fe2adea00c9e3c4e80612f3d03dc61f931d1a6ae04340bccf55e1376cf00bbf2433990713649d286 20-musl.patch a7bbc0d8836fe5eb7220c7b41d8af439878a3876302de32739243232f979ea9c63d2069fcd78bef370eafef0a21f491ef99219ae686e965326475764244bbe5d meson-add-toggle-for-TLS-support-in-GLX.patch"