jobextra/mesa/PKGBUILD

314 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')
pkgver=23.1.1
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=(a2679031ed5b73b29c4f042ac64d96f83b0cfe4858617de32e2efc196c653a40 # mesa-23.1.1.tar.xz
2986ab688cc5058e552e08b7a00e795b8e3764322b53ccf3eb8545303cbda0cb # mesa-23.1.1.tar.xz.sig
7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537) # LICENSE
## 101fdfb140a0e77ba46f559868700df4ce9ad853074412eccf324b92cfc29d6b libva-mesa-driver-23.1.1-01-x86_64.pkg.tar.lz
## 9a17082cfca02223a09746cd75d5cdde6a16e057699ebec91e8078984e4612bf mesa-23.1.1-01-x86_64.pkg.tar.lz
## a2679031ed5b73b29c4f042ac64d96f83b0cfe4858617de32e2efc196c653a40 mesa-23.1.1.tar.xz
## 2986ab688cc5058e552e08b7a00e795b8e3764322b53ccf3eb8545303cbda0cb mesa-23.1.1.tar.xz.sig
## 6f8f9fcc1e7f39d82b62780191d2f544cbe833d6ab5f268a1a5bc4b0288214e6 mesa-vdpau-23.1.1-01-x86_64.pkg.tar.lz
## 2afd2a6621ee73220d93edb0febae9432371e91d26c489aa6e85b94a07a1faa8 opencl-mesa-23.1.1-01-x86_64.pkg.tar.lz
## d731081f3166c9d40c0f21c525bea732323609838129f9cb2e7f23feb8d738b1 vulkan-intel-23.1.1-01-x86_64.pkg.tar.lz
## 27bdcaa32fdeb59d22030d486f9831eaf392d36908b183d9b599f307812504fd vulkan-mesa-layers-23.1.1-01-x86_64.pkg.tar.lz
## 15050a5e334dedcde1985e7aca1e72ac0ee16bd21afaf7527a5110f6626d5dc8 vulkan-radeon-23.1.1-01-x86_64.pkg.tar.lz
## a3992a49fc358c1be0c62b48a2d5f2c31d7f170a7e7793dc4d2e7ad59aedd693 vulkan-swrast-23.1.1-01-x86_64.pkg.tar.lz
## 0db2311ad8942e85a13018b18e0d3ca6159afdbc8c75bc765f8bae6dccb1ff51 vulkan-virtio-23.1.1-01-x86_64.pkg.tar.lz