6dd3ef2fcb
This adds a Mesa package overriding Mesa in Alpine, and: 1) builds a much newer version of Mesa than what is found in Alpine (by *not* building amd/radeonsi support, so no dependency on llvm). 2) builds Mesa with tegra and etnaviv drivers (note, as of now, the librem5 devkit gpu is not supported in the etnaviv driver here) This breaks "pmbootstrap qemu" for some people, use --host-qemu as workaround for now (a fix will be available soon): https://wiki.postmarketos.org/wiki/Troubleshooting:QEMU#Using_QEMU_from_the_host_system Since this also fixes the blackscreen bug on lg-hammerhead, the trade-off with the qemu bug is worth it. [ci:skip-build]: already built successfully in CI
252 lines
5.3 KiB
Text
252 lines
5.3 KiB
Text
# Forked from Alpine, so we can upgrade the version and build etnaviv and tegra
|
|
pkgname=mesa
|
|
pkgver=9999
|
|
_pkgver=19.0
|
|
pkgrel=0
|
|
pkgdesc="[${_pkgver}] Mesa DRI OpenGL library"
|
|
url="https://www.mesa3d.org"
|
|
arch="all"
|
|
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
|
|
|
|
"
|
|
depends_dev="
|
|
libdrm-dev
|
|
libxext-dev
|
|
libxdamage-dev
|
|
libxcb-dev
|
|
libxshmfence-dev
|
|
"
|
|
makedepends="
|
|
$depends_dev
|
|
bison
|
|
eudev-dev
|
|
expat-dev
|
|
flex
|
|
gettext
|
|
libelf-dev
|
|
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/${_pkgver}/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-${_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/
|
|
}
|
|
|
|
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="a8b7da7552ba120011dbb81943e343dfd43b35e59daab3206ad9befc9f9152ab87a1e4ac5509580a541611df5a0349219ed6c839884bbffcd7d58111b7035b57 mesa-19.0.tar.gz
|
|
cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc 10-adjust-cache-deflate-buffer.patch
|
|
02db65893d55b5667d9c3bc193fc089e5408596431e06363fe2adea00c9e3c4e80612f3d03dc61f931d1a6ae04340bccf55e1376cf00bbf2433990713649d286 20-musl.patch
|
|
a7bbc0d8836fe5eb7220c7b41d8af439878a3876302de32739243232f979ea9c63d2069fcd78bef370eafef0a21f491ef99219ae686e965326475764244bbe5d meson-add-toggle-for-TLS-support-in-GLX.patch"
|