From d1b40fe8a2b22f2dd9d6d51777ff377d18ae8aa8 Mon Sep 17 00:00:00 2001 From: K900 Date: Sun, 16 Nov 2025 13:17:22 +0300 Subject: [PATCH] mesa: fix build on Darwin after 25.3 Fixes #462078. Upstream pls. --- pkgs/development/libraries/mesa/darwin.nix | 6 +++- .../libraries/mesa/fix-darwin-build.patch | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/mesa/fix-darwin-build.patch diff --git a/pkgs/development/libraries/mesa/darwin.nix b/pkgs/development/libraries/mesa/darwin.nix index e19d1a0e44a4..e99d86cd5489 100644 --- a/pkgs/development/libraries/mesa/darwin.nix +++ b/pkgs/development/libraries/mesa/darwin.nix @@ -25,6 +25,11 @@ stdenv.mkDerivation { meta ; + patches = [ + # Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38429 + ./fix-darwin-build.patch + ]; + outputs = [ "out" "dev" @@ -58,7 +63,6 @@ stdenv.mkDerivation { "--sysconfdir=/etc" "--datadir=${placeholder "out"}/share" (lib.mesonEnable "glvnd" false) - (lib.mesonEnable "shared-glapi" true) (lib.mesonEnable "llvm" true) ]; diff --git a/pkgs/development/libraries/mesa/fix-darwin-build.patch b/pkgs/development/libraries/mesa/fix-darwin-build.patch new file mode 100644 index 000000000000..e649bb9ccfde --- /dev/null +++ b/pkgs/development/libraries/mesa/fix-darwin-build.patch @@ -0,0 +1,34 @@ +diff --git a/src/glx/apple/apple_cgl.c b/src/glx/apple/apple_cgl.c +index 81b6730f8e29b3920216461858b98bcd3b7a870c..9bdfe555949482ddb6153ee926967ac5c04fe7c8 100644 +--- a/src/glx/apple/apple_cgl.c ++++ b/src/glx/apple/apple_cgl.c +@@ -34,6 +34,7 @@ + + #include "apple_cgl.h" + #include "apple_glx.h" ++#include "util/os_misc.h" + + #ifndef OPENGL_FRAMEWORK_PATH + #define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL" +diff --git a/src/loader/loader.c b/src/loader/loader.c +index d06a368c1bbff180fcc9432183db66398b75f4a3..0567beb3dee569895fbb36c7e7c3df34be8b32b7 100644 +--- a/src/loader/loader.c ++++ b/src/loader/loader.c +@@ -139,6 +139,9 @@ iris_predicate(int fd, const char *driver) + bool + nouveau_zink_predicate(int fd, const char *driver) + { ++#ifndef HAVE_LIBDRM ++ return true; ++#else + /* Never load on nv proprietary driver */ + if (!drm_fd_is_nouveau(fd)) + return false; +@@ -191,6 +194,7 @@ nouveau_zink_predicate(int fd, const char *driver) + if (!use_zink && !strcmp(driver, "nouveau")) + return true; + return false; ++#endif + } + +