From 1355b6bffa6316275a471787e3e59bc88dcaccf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Wed, 12 Mar 2025 23:53:38 -0300 Subject: [PATCH] mesa: enable nouveau vulkan driver. The Rust distfiles necessary for the Vulkan driver have been added directly to the main distfiles variable, because the driver will be built for most platforms, and this simplifies checksum updating. --- srcpkgs/mesa-vulkan-nouveau | 1 + srcpkgs/mesa/template | 54 ++++++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 4 deletions(-) create mode 120000 srcpkgs/mesa-vulkan-nouveau diff --git a/srcpkgs/mesa-vulkan-nouveau b/srcpkgs/mesa-vulkan-nouveau new file mode 120000 index 00000000000..1ad1bbec7ab --- /dev/null +++ b/srcpkgs/mesa-vulkan-nouveau @@ -0,0 +1 @@ +mesa \ No newline at end of file diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template index 69c45a93b55..26d5866c4ff 100644 --- a/srcpkgs/mesa/template +++ b/srcpkgs/mesa/template @@ -1,9 +1,14 @@ # Template file for 'mesa' pkgname=mesa version=24.3.4 -revision=1 +revision=2 build_style=meson _llvmver=19 +_syn_version=2.0.68 +_proc_macro_version=1.0.86 +_quote_version=1.0.33 +_unicode_ident_version=1.0.12 +_paste_version=1.0.14 #Disable LTO flag should be present, see https://gitlab.freedesktop.org/mesa/mesa/-/issues/6911 configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled -Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri @@ -23,8 +28,23 @@ maintainer="Orphaned " license="MIT, LGPL-2.1-or-later" homepage="https://www.mesa3d.org/" changelog="https://docs.mesa3d.org/relnotes.html" -distfiles="https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz" -checksum=e641ae27191d387599219694560d221b7feaa91c900bcec46bf444218ed66025 +distfiles="https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz + https://crates.io/api/v1/crates/syn/${_syn_version}/download>syn-${_syn_version}.tar.gz + https://crates.io/api/v1/crates/proc-macro2/${_proc_macro_version}/download>proc-macro2-${_proc_macro_version}.tar.gz + https://crates.io/api/v1/crates/quote/${_quote_version}/download>quote-${_quote_version}.tar.gz + https://crates.io/api/v1/crates/unicode-ident/${_unicode_ident_version}/download>unicode-ident-${_unicode_ident_version}.tar.gz + https://crates.io/api/v1/crates/paste/${_paste_version}/download>paste-${_paste_version}.tar.gz" +checksum="e641ae27191d387599219694560d221b7feaa91c900bcec46bf444218ed66025 + 901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9 + 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77 + 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae + 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b + de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +skip_extraction="syn-${_syn_version}.tar.gz + proc-macro2-${_proc_macro_version}.tar.gz + quote-${_quote_version}.tar.gz + unicode-ident-${_unicode_ident_version}.tar.gz + paste-${_paste_version}.tar.gz" build_helper="qemu" build_options="wayland" @@ -113,6 +133,9 @@ if [ "$_have_nv" ]; then # transitional dummy packages subpackages+=" mesa-tegra-dri" fi + _vulkan_drivers+=",nouveau" + hostmakedepends+=" cbindgen" + subpackages+=" mesa-vulkan-nouveau" # transitional dummy packages subpackages+=" mesa-nouveau-dri" fi @@ -193,6 +216,21 @@ case "$XBPS_TARGET_MACHINE" in ppc*) configure_args+=" -Dpower8=false" ;; esac +_prepare_subproject() { + local subname=$1 + local subversion=$2 + vsrcextract -C subprojects/${subname}-${subversion} ${subname}-${subversion}.tar.gz + cp subprojects/packagefiles/${subname}/meson.build subprojects/${subname}-${subversion} +} + +post_extract() { + _prepare_subproject syn ${_syn_version} + _prepare_subproject proc-macro2 ${_proc_macro_version} + _prepare_subproject quote ${_quote_version} + _prepare_subproject unicode-ident ${_unicode_ident_version} + _prepare_subproject paste ${_paste_version} +} + post_configure() { if [ "$CROSS_BUILD" ]; then find -iname "*.ninja" -exec sed -i "{}" \ @@ -355,6 +393,14 @@ mesa-vulkan-intel_package() { } } +mesa-vulkan-nouveau_package() { + short_desc="Mesa Nouveau Vulkan driver" + pkg_install() { + vmove "usr/share/vulkan/icd.d/nouveau*.json" + vmove "usr/lib/libvulkan_nouveau*.so" + } +} + mesa-vulkan-radeon_package() { short_desc="Mesa Radeon Vulkan driver" pkg_install() { @@ -449,7 +495,7 @@ mesa-nouveau-dri_package() { short_desc="Mesa DRI drivers for NVIDIA GPUs (transitional dummy package)" depends="mesa-dri" if [ "$_have_hwdec" ]; then - depends+=" mesa-vaapi mesa-vdpau" + depends+=" mesa-vaapi mesa-vdpau mesa-vulkan-nouveau" fi }