Created
January 19, 2020 19:37
-
-
Save denysvitali/9b978bb7306b5efa2ccfc788f7046fca to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Maintainer: Andreas Radke <[email protected]> | |
# ALARM: Kevin Mihelich <[email protected]> | |
# - Removed DRI and Gallium3D drivers/packages for chipsets that don't exist in our ARM devices (intel, radeon, VMware svga). | |
# - disable assembly and rip out VC4 forced NEON for v6/v7 | |
# - remove makedepend on valgrind, -Dvalgrind=false | |
pkgbase=mesa | |
pkgname=('libva-mesa-driver' 'mesa-vdpau' 'mesa') | |
pkgdesc="An open-source implementation of the OpenGL specification" | |
pkgver=19.3.2 | |
pkgrel=2 | |
arch=('x86_64') | |
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm' | |
'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' | |
'elfutils' 'llvm' 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors' | |
'libxrandr' 'meson') | |
url="https://www.mesa3d.org/" | |
license=('custom') | |
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} | |
0001-Rip-out-VC4-forced-NEON.patch | |
LICENSE) | |
sha512sums=('fb69999fa7a15cd6f2c254fb6e8fe635e56dc49a5c2c762a96c77815cbad77060b8f81a02e67ac9ec58092ab866e080fb928086a5ac1e61c3efe882e5825cd28' | |
'SKIP' | |
'ba55fd9816ebd9147be120da1fd4fa0364d19967a11570e6d5dd9d8b4f7971df46ced8b151ee07afaaa98043e131eed14918ec25f8c9b0f7e5c53f452674ee5c' | |
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7') | |
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <[email protected]> | |
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <[email protected]> | |
'E3E8F480C52ADD73B278EE78E1ECBE07D7D70895' # Juan Antonio Suárez Romero (Igalia, S.L.) <[email protected]> | |
'A5CC9FEC93F2F837CB044912336909B6B25FADFA' # Juan A. Suarez Romero <[email protected]> | |
'71C4B75620BC75708B4BDB254C95FAAB3EB073EC') # Dylan Baker <[email protected]> | |
prepare() { | |
cd mesa-$pkgver | |
[[ $CARCH == "armv6h" || $CARCH == "armv7h" ]] && patch -p1 -i ../0001-Rip-out-VC4-forced-NEON.patch || true | |
} | |
build() { | |
MESON_OPT="-D asm=false" | |
case "${CARCH}" in | |
armv6h) GALLIUM=",vc4" ;; | |
armv7h) GALLIUM=",etnaviv,kmsro,lima,panfrost,tegra,v3d,vc4" ;; | |
aarch64) GALLIUM=",kmsro,lima,panfrost,tegra,v3d,vc4" ;; | |
esac | |
echo "CARCH:" | |
echo $CARCH | |
arch-meson mesa-$pkgver build \ | |
-D b_lto=false \ | |
-D b_ndebug=true \ | |
-D platforms=x11,wayland,drm,surfaceless \ | |
-D dri-drivers=nouveau \ | |
-D gallium-drivers=freedreno,tegra,nouveau,swrast,virgl${GALLIUM} \ | |
-D vulkan-drivers= \ | |
-D dri3=true \ | |
-D egl=true \ | |
-D gallium-extra-hud=true \ | |
-D gallium-nine=true \ | |
-D gallium-omx=bellagio \ | |
-D gallium-va=true \ | |
-D gallium-vdpau=true \ | |
-D gallium-xa=false \ | |
-D gallium-xvmc=false \ | |
-D gbm=true \ | |
-D gles1=false \ | |
-D gles2=true \ | |
-D glvnd=true \ | |
-D glx=dri \ | |
-D libunwind=false \ | |
-D llvm=true \ | |
-D lmsensors=true \ | |
-D osmesa=gallium \ | |
-D shared-glapi=true \ | |
-D valgrind=false $MESON_OPT | |
# 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_libva-mesa-driver() { | |
pkgdesc="VA-API implementation for gallium" | |
depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') | |
_install fakeinstall/usr/lib/dri/*_drv_video.so | |
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE | |
} | |
package_mesa-vdpau() { | |
pkgdesc="Mesa VDPAU drivers" | |
depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') | |
_install fakeinstall/usr/lib/vdpau | |
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE | |
} | |
package_mesa() { | |
depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' | |
'libomxil-bellagio' 'llvm-libs' 'lm_sensors' 'libglvnd') | |
optdepends=('opengl-man-pages: for the OpenGL API man pages' | |
'mesa-vdpau: for accelerated video playback' | |
'libva-mesa-driver: for accelerated video playback') | |
provides=('mesa-libgl' 'opengl-driver') | |
conflicts=('mesa-libgl') | |
replaces=('mesa-libgl') | |
_install fakeinstall/usr/share/drirc.d/00-mesa-defaults.conf | |
_install fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json | |
# ati-dri, nouveau-dri, intel-dri, svga-dri, swrast, swr | |
_install fakeinstall/usr/lib/dri/*_dri.so | |
_install fakeinstall/usr/lib/bellagio | |
_install fakeinstall/usr/lib/d3d | |
_install fakeinstall/usr/lib/lib{gbm,glapi}.so* | |
_install fakeinstall/usr/lib/libOSMesa.so* | |
# in vulkan-headers | |
rm -rfv fakeinstall/usr/include/vulkan | |
_install fakeinstall/usr/include | |
rm -f fakeinstall/usr/lib/pkgconfig/{egl,gl}.pc | |
_install fakeinstall/usr/lib/pkgconfig | |
# libglvnd support | |
_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" | |
# make sure there are no files left to install | |
find fakeinstall -depth -print0 | xargs -0 rmdir | |
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment