jobextra/mesa/PKGBUILD

312 lines
10 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')
pkgver=23.1.3
pkgrel=01
pkgdesc="An open-source implementation of the OpenGL specification w/o systemd or zstd"
#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+=('python-ply' 'spirv-llvm-translator') # intel-clc dependencies
url="https://www.mesa3d.org/"
#options=('debug' '!lto') # uncomment this if you want the debug package built # Arch removed debug for 22.3.3-3 version
#options=('!lto')
makedepends=(
'clang'
'expat'
'libdrm'
'libelf'
'libglvnd'
'libunwind'
'libva'
'libvdpau'
'libx11'
'libxdamage'
'libxml2'
'libxrandr'
'libxshmfence'
'libxxf86vm'
'llvm'
'lm_sensors'
'vulkan-icd-loader'
'wayland'
# shared with lib32-mesa
'clang'
'cmake'
'elfutils'
'glslang'
'libclc'
'meson'
'python-mako'
'wayland-protocols'
'xorgproto'
# valgrind deps
'valgrind'
# d3d12 deps
'directx-headers'
# gallium-omx deps
'libomxil-bellagio'
# gallium-rusticl deps
'rust'
'rust-bindgen'
'spirv-tools'
# intel-clc deps
'python-ply'
'spirv-llvm-translator'
) # rusticl dependencies
_libdir=usr/lib
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
# 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch
# 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch
# 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch
# 0004-rusticl-Fix-bindgen-invocation.patch
LICENSE)
prepare() {
cd mesa-$pkgver
}
build() {
# Build only minimal debug info to reduce size
CFLAGS+=' -g1'
CXXFLAGS+=' -g1'
arch-meson mesa-$pkgver build \
--libdir=/$_libdir \
-D android-libbacktrace=disabled \
-D b_ndebug=true \
-D dri3=enabled \
-D egl=enabled \
-D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink,d3d12 \
-D gallium-extra-hud=true \
-D gallium-nine=true \
-D gallium-omx=bellagio \
-D gallium-opencl=icd \
-D gallium-rusticl=true \
-D gallium-va=enabled \
-D gallium-vdpau=enabled \
-D gallium-xa=enabled \
-D gbm=enabled \
-D gles1=disabled \
-D gles2=enabled \
-D glvnd=true \
-D glx=dri \
-D intel-clc=enabled \
-D libunwind=enabled \
-D llvm=enabled \
-D lmsensors=enabled \
-D microsoft-clc=disabled \
-D osmesa=true \
-D platforms=x11,wayland \
-D zstd=disabled \
-D rust_std=2021 \
-D shared-glapi=enabled \
-D valgrind=enabled \
-D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \
-D vulkan-drivers=amd,intel,intel_hasvk,swrast,virtio-experimental \
-D vulkan-layers=device-select,intel-nullhw,overlay
# 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/$_libdir/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/$_libdir/lib*OpenCL*
_install fakeinstall/$_libdir/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/$_libdir/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/$_libdir/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/$_libdir/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/$_libdir/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/$_libdir/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/$_libdir/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/$_libdir/dri/*_dri.so
_install fakeinstall/$_libdir/bellagio
_install fakeinstall/$_libdir/d3d
_install fakeinstall/$_libdir/lib{gbm,glapi}.so*
_install fakeinstall/$_libdir/libOSMesa.so*
_install fakeinstall/$_libdir/libxatracker.so*
_install fakeinstall/usr/include
_install fakeinstall/$_libdir/pkgconfig
# libglvnd support
_install fakeinstall/$_libdir/libGLX_mesa.so*
_install fakeinstall/$_libdir/libEGL_mesa.so*
# indirect rendering
ln -sr "$pkgdir"/$_libdir/libGLX_{mesa,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
}
#---- arch license gpg-key & sha256sums ----
arch=(x86_64)
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=(2f6d7381bc10fbd2d6263ad1022785b8b511046c1a904162f8f7da18eea8aed9 # mesa-23.1.3.tar.xz
7602fdbc8eca8730a9fe2aeeb7d198e5334da5c649f65a1a7f0347941592ac0a # mesa-23.1.3.tar.xz.sig
7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537) # LICENSE
## 6a29bb5b11286362b39cdaa6b61b03229a48e4f6d2df272aa0453ed6c5d4ba9b libva-mesa-driver-23.1.3-01-x86_64.pkg.tar.lz
## 3bcb656701f000ecb060bea516e31abc3ff961db874bea11d2ab8dbafb679b3f mesa-23.1.3-01-x86_64.pkg.tar.lz
## 5bf09caf5a34cde6db090509cdec89fe9a24ac76f4a0be62453cb9593d56d2b2 mesa-vdpau-23.1.3-01-x86_64.pkg.tar.lz
## 942459ad730fc09ec1651bc3368d007cc41b6d6ba2b0f08ca693ba6e2cfa0ea1 opencl-mesa-23.1.3-01-x86_64.pkg.tar.lz
## 075e146a25f867ab34f6e4eff0cdbf336fa5f621e351a1d37eb8113287fecfcb vulkan-intel-23.1.3-01-x86_64.pkg.tar.lz
## 89a4c0d09ae8bcf2c67c4b38a46b9a005b21cf35573f5f24c49ef7a8f833e046 vulkan-mesa-layers-23.1.3-01-x86_64.pkg.tar.lz
## 8d9a8fb21eb3d8ec78224dcb15321aa787aab4578125e69dfadcd0494dd1a1eb vulkan-radeon-23.1.3-01-x86_64.pkg.tar.lz
## 01afd00becea03be442983d4250f5eab414837938d33f7e0f3901bac9d1a2aea vulkan-swrast-23.1.3-01-x86_64.pkg.tar.lz
## 34e5b2bd025e417c5c66df010d8bb4f972dab3487bd302e8eadfabd0f474546c vulkan-virtio-23.1.3-01-x86_64.pkg.tar.lz