Subject: [PATCH] Update Mesa to 22.2
From: "Dr. Arne Babenhauserheide" <[email-masked]>
To: [email-masked]
Date: Tue, 14 Mar 2023 06:31:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

the attached patch updates mesa to version 22.

The new Mesa package is mostly taken from core-updates, then I adapted
only the strictly required dependencies.

Many thanks to theh person who wrote the comment that mesa-opencl also
needs clang updated!

From e27c543e0071fe09f827d8f892ce6f5772f3f941 Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <[email-masked]>
Date: Mon, 13 Mar 2023 20:56:39 +0100
Subject: [PATCH] gnu: Update mesa to 22.2.4

* gnu/packages/freedesktop.scm (wayland-protocols): update to 1.26
* gnu/packages/gl.scm (mesa): update to 22.2.4, via core-updates
* gnu/packages/xdisorg.scm (libdrm): update to 2.4.114
---
 gnu/packages/freedesktop.scm |  4 +-
 gnu/packages/gl.scm          | 98 +++++++++++++++++-------------------
 gnu/packages/xdisorg.scm     |  4 +-
 3 files changed, 51 insertions(+), 55 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 40edcfdab4..96789121f3 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1242,7 +1242,7 @@ (define-public wayland
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.23")
+    (version "1.26")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1250,7 +1250,7 @@ (define-public wayland-protocols
                     "wayland-protocols-" version ".tar.xz"))
               (sha256
                (base32
-                "0xizccackgwszjhlq7jjiv2z2gwppljx0w32ga91bxlnby8z22kc"))))
+                "04vgllmpmrv14x3x64ns01vgwx4hriljayjkz9idgbv83i63hly5"))))
     (build-system meson-build-system)
     (inputs
      (list wayland))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 4ae96032cd..f334751db4 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -266,7 +266,7 @@ (define libva-without-mesa
 (define-public mesa
   (package
     (name "mesa")
-    (version "21.3.8")
+    (version "22.2.4")
     (source
       (origin
         (method url-fetch)
@@ -278,61 +278,65 @@ (define-public mesa
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "19wx5plk6z0hhi0zdzxjx8ynl3lhlc5mbd8vhwqyk92kvhxjf3g7"))
+          "1azpr68pdg63yq3igmzwsgn2ypg49m0mp3hfkq0lcyswr99npmv5"))
         (patches
-         (search-patches "mesa-skip-tests.patch"))))
+         (list)))) ;; (search-patch "mesa-fix-sporadic-test-failures.patch")))))
     (build-system meson-build-system)
     (propagated-inputs
-      (list ;; The following are in the Requires.private field of gl.pc.
-            libdrm
-            libvdpau
-            libx11
-            libxdamage
-            libxfixes
-            libxshmfence
-            libxxf86vm
-            xorgproto))
+     ;; The following are in the Requires.private field of gl.pc.
+     (list libdrm
+           libvdpau
+           libx11
+           libxdamage
+           libxfixes
+           libxshmfence
+           libxxf86vm
+           xorgproto))
     (inputs
-     (append (list expat
-                   elfutils                 ;libelf required for r600 when using llvm
-                   (force libva-without-mesa)
-                   libxml2
-                   libxrandr
-                   libxvmc
-                   wayland
-                   wayland-protocols)
-             ;; TODO: Resort alphabetically.
-             ;; Note: update the 'clang' input of mesa-opencl when bumping this.
-             (list llvm-11)))
+     (list expat
+              elfutils                  ;libelf required for r600 when using llvm
+           (force libva-without-mesa)
+           libxml2
+           libxrandr
+           libxvmc
+           wayland
+           wayland-protocols
+           ;; TODO: Resort alphabetically.
+           ;; Note: update the 'clang' input of mesa-opencl when bumping this.
+           llvm-14))
     (native-inputs
-     (append (list bison
-                   flex
-                   gettext-minimal
-                   pkg-config
-                   python-wrapper
-                   python-libxml2                  ;for OpenGL ES 1.1 and 2.0 support
-                   python-mako
-                   (@ (gnu packages base) which))
-             ;; TODO: Resort alphabetically.
-             (list glslang)))
+     (list bison
+           flex
+           gettext-minimal
+           glslang
+           pkg-config
+           python-libxml2               ;for OpenGL ES 1.1 and 2.0 support
+           python-mako
+           python-wrapper
+           (@ (gnu packages base) which)
+                 ;; TODO: Resort alphabetically.
+             glslang))
     (outputs '("out" "bin"))
     (arguments
      `(#:configure-flags
        '(,@(match (%current-system)
              ("aarch64-linux"
               ;; TODO: Fix svga driver for non-Intel architectures.
-              '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
+              '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
+panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
              ("armhf-linux"
               ;; Freedreno FTBFS when built on a 64-bit machine.
-              '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
+              '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
+r300,r600,swrast,tegra,v3d,vc4,virgl"))
              ((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux")
               '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
              (_
-              '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
+              '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,\
+svga,swrast,virgl")))
          ;; Enable various optional features.  TODO: opencl requires libclc,
          ;; omx requires libomxil-bellagio
          "-Dplatforms=x11,wayland"
-         "-Dglx=dri"        ;Thread Local Storage, improves performance
+         "-Dglx=dri"               ;Thread Local Storage, improves performance
          ;; "-Dopencl=true"
          ;; "-Domx=true"
          "-Dosmesa=true"
@@ -362,15 +366,7 @@ (define-public mesa
          ;; Also enable the tests.
          "-Dbuild-tests=true"
 
-         ;; on non-intel systems, drop i915 and i965
-         ;; from the default dri drivers
-         ,@(match (%current-system)
-             ((or "x86_64-linux" "i686-linux")
-              '("-Ddri-drivers=i915,i965,nouveau,r200,r100"))
-             (_
-              '("-Ddri-drivers=nouveau,r200,r100")))
-
-                "-Dllvm=enabled")       ; default is x86/x86_64 only
+         "-Dllvm=enabled")              ; default is x86/x86_64 only
 
        ;; XXX: 'debugoptimized' causes LTO link failures on some drivers.  The
        ;; documentation recommends using 'release' for performance anyway.
@@ -419,10 +415,10 @@ (define-public mesa
                     (substitute* "src/amd/common/meson.build"
                       (("and not with_platform_windows") "and with_platform_windows"))))
                  ("i686-linux"
-                  ;; Disable new test from Mesa 19 that fails on i686.  Upstream
-                  ;; report: <https://bugs.freedesktop.org/show_bug.cgi?id=110612>.
-                  `((substitute* "src/util/tests/format/meson.build"
-                      (("'u_format_test',") ""))))
+                  ;; This test is known to fail on i686 (see:
+                  ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091).
+                  `((substitute* "src/util/meson.build"
+                      ((".*'tests/u_debug_stack_test.cpp',.*") ""))))
                  ("aarch64-linux"
                   ;; The ir3_disasm test segfaults.
                   ;; The simplest way to skip it is to run a different test instead.
@@ -521,7 +517,7 @@ (define-public mesa-opencl
        (prepend libclc)))
     (native-inputs
      (modify-inputs (package-native-inputs mesa)
-       (prepend clang-11)))))
+       (prepend clang-14)))))
 
 (define-public mesa-opencl-icd
   (package/inherit mesa-opencl
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ec5cdbdc28..e76fc3d07e 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -709,7 +709,7 @@ (define-public pixman
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.107")
+    (version "2.4.114")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -717,7 +717,7 @@ (define-public libdrm
                     version ".tar.xz"))
               (sha256
                (base32
-                "127qf1rzhaf13vdd75a58v5q34617hvangjlfnlkcdh37gqcwm65"))))
+                "09nhk3jx3qzggl5vyii3yh4zm0npjqsbxhzvxrg2xla77a2cyj9h"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-- 
2.39.2

The patch from core-updates is still missing. It may be a good idea to
add that, too.

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de