jobextra/mesa/PKGBUILD
2023-02-25 19:17:37 +02:00

277 lines
11 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgbase=mesa
pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast'
'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
pkgdesc="An open-source implementation of the OpenGL specification w/o systemd or zstd"
pkgver=23.0.0
pkgrel=02
arch=('x86_64')
#options=('debug' '!lto') # uncomment this if you want the debug package built # Arch removed debug for 22.3.3-3 version
options=('!lto')
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'elfutils' 'llvm'
'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors' 'libxrandr'
'valgrind' 'glslang' 'vulkan-icd-loader' 'directx-headers' 'cmake' 'meson')
makedepends+=('rust' 'rust-bindgen' 'spirv-tools' 'spirv-llvm-translator') # rusticl dependencies
url="https://www.mesa3d.org/"
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch
0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
LICENSE)
prepare() {
cd mesa-$pkgver
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7111
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17247
# https://github.com/HansKristian-Work/vkd3d-proton/issues/1200
patch -Np1 -i ../0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch
# https://gitlab.freedesktop.org/drm/intel/-/issues/6851
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449
patch -Np1 -i ../0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
patch -Np1 -i ../0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
}
build() {
# Build only minimal debug info to reduce size
CFLAGS+=' -g1'
CXXFLAGS+=' -g1'
arch-meson mesa-$pkgver build \
-D b_ndebug=true \
-D platforms=x11,wayland \
-D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink,d3d12 \
-D vulkan-drivers=amd,intel,intel_hasvk,swrast,virtio-experimental \
-D vulkan-layers=device-select,intel-nullhw,overlay \
-D dri3=enabled \
-D egl=enabled \
-D gallium-extra-hud=true \
-D gallium-nine=true \
-D gallium-omx=bellagio \
-D gallium-opencl=icd \
-D gallium-va=enabled \
-D gallium-vdpau=enabled \
-D gallium-xa=enabled \
-D gallium-rusticl=true \
-D rust_std=2021 \
-D gbm=enabled \
-D gles1=disabled \
-D gles2=enabled \
-D glvnd=true \
-D glx=dri \
-D libunwind=enabled \
-D llvm=enabled \
-D lmsensors=enabled \
-D osmesa=true \
-D zstd=disabled \
-D shared-glapi=enabled \
-D microsoft-clc=disabled \
-D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \
-D valgrind=enabled
# Print config
meson configure build
ninja -C build
meson compile -C build
# fake installation to be seperated into packages
# outside of fakeroot but mesa doesn't need to chown/mod
DESTDIR="${srcdir}/fakeinstall" meson install -C build
}
_install() {
local src f dir
for src; do
f="${src#fakeinstall/}"
dir="${pkgdir}/${f%/*}"
install -m755 -d "${dir}"
mv -v "${src}" "${dir}/"
done
}
package_vulkan-mesa-layers() {
pkgdesc="Mesa's Vulkan layers"
depends=('libdrm' 'libxcb' 'wayland' 'python')
conflicts=('vulkan-mesa-layer')
replaces=('vulkan-mesa-layer')
_install fakeinstall/usr/share/vulkan/explicit_layer.d
_install fakeinstall/usr/share/vulkan/implicit_layer.d
_install fakeinstall/usr/lib/libVkLayer_*.so
_install fakeinstall/usr/bin/mesa-overlay-control.py
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_opencl-mesa() {
pkgdesc="OpenCL support with clover and rusticl for mesa drivers"
depends=('libdrm' 'libclc' 'clang' 'expat' 'spirv-llvm-translator')
optdepends=('opencl-headers: headers necessary for OpenCL development')
provides=('opencl-driver')
_install fakeinstall/etc/OpenCL
_install fakeinstall/usr/lib/lib*OpenCL*
_install fakeinstall/usr/lib/gallium-pipe
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_vulkan-intel() {
pkgdesc="Intel's Vulkan mesa driver w/o systemd or zstd"
depends=('wayland' 'libx11' 'libxshmfence' 'libdrm')
optdepends=('vulkan-mesa-layers: additional vulkan layers')
provides=('vulkan-driver')
_install fakeinstall/usr/share/vulkan/icd.d/intel_*.json
_install fakeinstall/usr/lib/libvulkan_intel*.so
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_vulkan-radeon() {
pkgdesc="Radeon's Vulkan mesa driver w/o systemd"
depends=('wayland' 'libx11' 'libxshmfence' 'libelf' 'libdrm' 'llvm-libs')
optdepends=('vulkan-mesa-layers: additional vulkan layers')
provides=('vulkan-driver')
_install fakeinstall/usr/share/drirc.d/00-radv-defaults.conf
_install fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json
_install fakeinstall/usr/lib/libvulkan_radeon.so
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_vulkan-swrast() {
pkgdesc="Vulkan software rasteriser driver w/o systemd or zstd "
depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'llvm-libs' 'libunwind')
optdepends=('vulkan-mesa-layers: additional vulkan layers')
conflicts=('vulkan-mesa')
replaces=('vulkan-mesa')
provides=('vulkan-driver')
_install fakeinstall/usr/share/vulkan/icd.d/lvp_icd*.json
_install fakeinstall/usr/lib/libvulkan_lvp.so
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_vulkan-virtio() {
pkgdesc="Venus Vulkan mesa driver for Virtual Machines w/o systemd or zstd"
depends=('wayland' 'libx11' 'libxshmfence' 'libdrm')
optdepends=('vulkan-mesa-layers: additional vulkan layers')
provides=('vulkan-driver')
_install fakeinstall/usr/share/vulkan/icd.d/virtio_icd*.json
_install fakeinstall/usr/lib/libvulkan_virtio.so
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_libva-mesa-driver() {
pkgdesc="VA-API drivers"
depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
depends+=('libexpat.so')
provides=('libva-driver')
_install fakeinstall/usr/lib/dri/*_drv_video.so
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}
package_mesa-vdpau() {
pkgdesc="VDPAU drivers"
depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
depends+=('libexpat.so')
provides=('vdpau-driver')
_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' 'libunwind' 'llvm-libs' 'lm_sensors' 'libglvnd'
'vulkan-icd-loader')
depends+=('libsensors.so' 'libexpat.so')
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*
_install fakeinstall/usr/lib/libxatracker.so*
_install fakeinstall/usr/include
_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
}
#---- license gpg-key sha256sums ----
license=('custom')
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>
'A5CC9FEC93F2F837CB044912336909B6B25FADFA' # Juan A. Suarez Romero <jasuarez@igalia.com>
'71C4B75620BC75708B4BDB254C95FAAB3EB073EC' # Dylan Baker <dylan@pnwbakers.com>
'57551DE15B968F6341C248F68D8E31AFC32428A6') # Eric Engestrom <eric@engestrom.ch>
sha256sums=(01f3cff3763f09e0adabcb8011e4aebc6ad48f6a4dd4bae904fe918707d253e4 # mesa-23.0.0.tar.xz
54dcc0a47dab08be7c9c0911c19de911fd36aa0a7b2cf5c61b3fdf0bf49d07ae # mesa-23.0.0.tar.xz.sig
2b09d2d8792b8f4b9c91aa245859014d163e6c9c1f00749bb0817e8590d56e7a # 0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch
721debc4b0f90a20886555b5caf0c410b536b3ede063365fc5b758e56cbb1ccf # 0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
e2a9fd69ef0795fcce8d83fbb307c7c09c00ffa0d81f102d4df8355d7ffed050 # 0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537) # LICENSE
sha512sums=('127e2759a2a31cacd65a0891719ab7bb4a9188844022b4bccaebbedce9c550b9ccb160ad519178ea0d851c4bcb8f0f56febda248ed2ba82b5ddf804855e4694b'
'SKIP'
'fb89a3cc9801f259faa7da81b12b8e003fcef10b64a30abf5592a159859c9f39941c8042f89fa93dee4d4e107c139ccdb48f255f45a72b6f9c7ce0da5bd0bd56'
'27018f163dd93e492c5d6080690ee6aae7f63de80c014e941a2e42a5eca87cf14de5ec8a35a51472f9b204839b43b14ac663a6095c1c7ef8dd7f8a3861fb936a'
'd7a54efea5a4be9d893c67b97fc846a45ef148c1bc1057ed91c377086d8f18aaa49eab5f9b3f3557e82457f8e23c2b8727b62880003529e1fe364b7ea15daccf'
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7')
# 05c796415d6f44c442a8b977f99da3261b524d73eb98c671858cf48e0c488efd libva-mesa-driver-23.0.0-02-x86_64.pkg.tar.lz
# 233cc4c147c2d29cbdf7a72f195f614a4662a8d7118dd05590838d6c57de23c0 mesa-23.0.0-02-x86_64.pkg.tar.lz
# d996f68d90488780c8b1d4d89d35d161e2dfdb900c513a1c4aadb13517e4fcbf mesa-vdpau-23.0.0-02-x86_64.pkg.tar.lz
# 22406bbaa8919255e38182dfa87ef790f6e0d6054dd8b3a5a3ea4f7c20c1b4c2 opencl-mesa-23.0.0-02-x86_64.pkg.tar.lz
# 91fc2be9ebc9b4c3ed20d71c24876848b1de3c08bb233fa9ce13ef9291592301 vulkan-intel-23.0.0-02-x86_64.pkg.tar.lz
# 2aea35ea6d2a4e8bd9c91e877ce2d265139d2f231b108e47c5acd51e9222f245 vulkan-mesa-layers-23.0.0-02-x86_64.pkg.tar.lz
# b490dc39df6a496d7838aef5d36aba59d8da307f793651b1a5c0eec0ec78657d vulkan-radeon-23.0.0-02-x86_64.pkg.tar.lz
# 1746e8efb0c3605c09bbcc537a5143c99fca005a4da1889d10413d7e64ba08af vulkan-swrast-23.0.0-02-x86_64.pkg.tar.lz
# f57c35e309963f51d84d8af876d78116f73ce17c6e4e30711076df6b23bb10a5 vulkan-virtio-23.0.0-02-x86_64.pkg.tar.lz