Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package Mesa for openSUSE:Factory checked in 
at 2026-10-18 22:54:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Mesa (Old)
 and      /work/SRC/openSUSE:Factory/.Mesa.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Mesa"

Sun Oct 18 22:54:13 2026 rev:591 rq:1385476 version:26.2.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/Mesa/Mesa.changes        2026-10-02 
23:02:49.920007634 +0200
+++ /work/SRC/openSUSE:Factory/.Mesa.new.3698736/Mesa.changes   2026-10-18 
22:54:33.964243884 +0200
@@ -1,0 +2,22 @@
+Sat Oct 17 11:56:57 UTC 2026 - Stefan Dirsch <[email protected]>
+
+- Mesa-libRusticlOpenCL: no longer require libclc(llvmN); see
+  changes during update of libclc to version 23.1.0 ...
+
+-------------------------------------------------------------------
+Fri Oct 16 07:41:39 UTC 2026 - Stefan Dirsch <[email protected]>
+
+- Update to 26.2.5 bugfix release
+  --> https://docs.mesa3d.org/relnotes/26.2.5
+
+-------------------------------------------------------------------
+Thu Oct 15 21:10:24 UTC 2026 - Aaron Puchert <[email protected]>
+
+- Add n_hardcode-libclc-path.patch to work around missing libclc.pc
+  with libclc 23. Upstream might solve this via config option.
+- Downport upstream patches so that we find newer libclc files:
+  * U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch
+  * U_nir-load_libclc-turn-sys_path-into-an-array.patch
+  * U_nir-load_libclc-add-llvm-23-libclc-paths.patch
+
+-------------------------------------------------------------------

Old:
----
  mesa-26.2.4.tar.xz
  mesa-26.2.4.tar.xz.sig

New:
----
  U_nir-load_libclc-add-llvm-23-libclc-paths.patch
  U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch
  U_nir-load_libclc-turn-sys_path-into-an-array.patch
  mesa-26.2.5.tar.xz
  mesa-26.2.5.tar.xz.sig
  n_hardcode-libclc-path.patch

----------(New B)----------
  New:  * U_nir-load_libclc-turn-sys_path-into-an-array.patch
  * U_nir-load_libclc-add-llvm-23-libclc-paths.patch
  New:- Downport upstream patches so that we find newer libclc files:
  * U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch
  * U_nir-load_libclc-turn-sys_path-into-an-array.patch
  New:  * U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch
  * U_nir-load_libclc-turn-sys_path-into-an-array.patch
  * U_nir-load_libclc-add-llvm-23-libclc-paths.patch
  New:
- Add n_hardcode-libclc-path.patch to work around missing libclc.pc
  with libclc 23. Upstream might solve this via config option.
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Mesa.spec ++++++
--- /var/tmp/diff_new_pack.lBhoNu/_old  2026-10-18 22:54:39.383470741 +0200
+++ /var/tmp/diff_new_pack.lBhoNu/_new  2026-10-18 22:54:39.385470825 +0200
@@ -151,9 +151,9 @@
 %endif
 
 Name:           Mesa%{psuffix}
-Version:        26.2.4
+Version:        26.2.5
 Release:        0
-%define pkg_version 26.2.4
+%define pkg_version 26.2.5
 Summary:        System for rendering 3-D graphics
 License:        MIT
 Group:          System/Libraries
@@ -184,6 +184,10 @@
 # download with 'osc service runall download_files'; github tarballs have 
different checksums!
 Source22:       
http://static.crates.io/crates/rustc-hash/rustc-hash-%{_rustc_hash_crate_ver}.crate#/rustc-hash-%{_rustc_hash_crate_ver}.tar.gz
 Patch2:         n_add-Mesa-headers-again.patch
+Patch3:         n_hardcode-libclc-path.patch
+Patch4:         U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch
+Patch5:         U_nir-load_libclc-turn-sys_path-into-an-array.patch
+Patch6:         U_nir-load_libclc-add-llvm-23-libclc-paths.patch
 Patch17:        tlsdesc_test.patch
 # never to be upstreamed
 Patch54:        n_drirc-disable-rgb10-for-chromium-on-amd.patch
@@ -615,11 +619,7 @@
 %package -n Mesa-libRusticlOpenCL
 Summary:        Mesa OpenCL implementation (Rusticl)
 Group:          System/Libraries
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150300
-Requires:       libclc(llvm%{_llvm_sonum})
-%else
 Requires:       libclc
-%endif
 
 %description -n Mesa-libRusticlOpenCL
 This package contains the Mesa Rust-written OpenCL implementation.
@@ -789,6 +789,10 @@
 %if %provide_gl_headers_for_mesa == 0
 %patch -P 2 -p1
 %endif
+%patch -P 3 -p1
+%patch -P 4 -p1
+%patch -P 5 -p1
+%patch -P 6 -p1
 %patch -P 17 -p1
 # no longer needed since gstreamer-plugins-vaapi 1.18.4
 %if 0%{?suse_version} < 1550


++++++ U_nir-load_libclc-add-llvm-23-libclc-paths.patch ++++++
>From 6b9cd5ab9cc3bfd0c79d9500a07a5e74351c72d1 Mon Sep 17 00:00:00 2001
From: Karol Herbst <[email protected]>
Date: Tue, 22 Sep 2026 14:13:28 +0200
Subject: [PATCH 3/3] nir/load_libclc: add llvm-23 libclc paths

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/44624>
---
 src/compiler/clc/nir_load_libclc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/compiler/clc/nir_load_libclc.c 
b/src/compiler/clc/nir_load_libclc.c
index 17b901db47c..889bde610a3 100644
--- a/src/compiler/clc/nir_load_libclc.c
+++ b/src/compiler/clc/nir_load_libclc.c
@@ -52,7 +52,7 @@ struct clc_file {
    unsigned bit_size;
    const char *static_data;
    size_t static_data_size;
-   const char *sys_paths[1];
+   const char *sys_paths[2];
 };
 
 static const struct clc_file libclc_files[] = {
@@ -65,6 +65,7 @@ static const struct clc_file libclc_files[] = {
 #ifdef DYNAMIC_LIBCLC_PATH
       .sys_paths = {
          DYNAMIC_LIBCLC_PATH "spirv-mesa3d-.spv",
+         DYNAMIC_LIBCLC_PATH "spirv32-unknown-unknown/libclc.spv",
       },
 #endif
    },
@@ -77,6 +78,7 @@ static const struct clc_file libclc_files[] = {
 #ifdef DYNAMIC_LIBCLC_PATH
       .sys_paths = {
          DYNAMIC_LIBCLC_PATH "spirv64-mesa3d-.spv",
+         DYNAMIC_LIBCLC_PATH "spirv64-unknown-unknown/libclc.spv",
       },
 #endif
    },
-- 
2.55.0


++++++ U_nir-load_libclc-do-not-compare-sys_path-against-NULL.patch ++++++
>From 1219dc3f7fe83b1f7f200190bf02a86ab57b3d4f Mon Sep 17 00:00:00 2001
From: Karol Herbst <[email protected]>
Date: Tue, 22 Sep 2026 13:53:43 +0200
Subject: [PATCH 1/3] nir/load_libclc: do not compare sys_path against NULL

sys_path will become an array and the NULL checks were all a bit awkward
because all the code was already guarded with DYNAMIC_LIBCLC_PATH anyway
and most likely constant folded away.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/44624>
---
 src/compiler/clc/nir_load_libclc.c | 76 ++++++++++++++----------------
 1 file changed, 35 insertions(+), 41 deletions(-)

diff --git a/src/compiler/clc/nir_load_libclc.c 
b/src/compiler/clc/nir_load_libclc.c
index edcd13b3b26..913dd8ff7a7 100644
--- a/src/compiler/clc/nir_load_libclc.c
+++ b/src/compiler/clc/nir_load_libclc.c
@@ -145,20 +145,18 @@ map_clc_data(struct clc_data *clc)
    }
 
 #ifdef DYNAMIC_LIBCLC_PATH
-   if (clc->file->sys_path != NULL) {
-      if (clc->size % SPIRV_WORD_SIZE != 0) {
-         fprintf(stderr, "File length isn't a multiple of the word size\n");
-         return false;
-      }
-
-      clc->data = mmap(NULL, clc->size, PROT_READ, MAP_PRIVATE, clc->fd, 0);
-      if (clc->data == MAP_FAILED) {
-         fprintf(stderr, "Failed to mmap libclc SPIR-V: %m\n");
-         return false;
-      }
+   if (clc->size % SPIRV_WORD_SIZE != 0) {
+      fprintf(stderr, "File length isn't a multiple of the word size\n");
+      return false;
+   }
 
-      return true;
+   clc->data = mmap(NULL, clc->size, PROT_READ, MAP_PRIVATE, clc->fd, 0);
+   if (clc->data == MAP_FAILED) {
+      fprintf(stderr, "Failed to mmap libclc SPIR-V: %m\n");
+      return false;
    }
+
+   return true;
 #endif
 
    return true;
@@ -175,12 +173,10 @@ close_clc_data(struct clc_data *clc)
    }
 
 #ifdef DYNAMIC_LIBCLC_PATH
-   if (clc->file->sys_path != NULL) {
-      if (clc->data)
-         munmap((void *)clc->data, clc->size);
-      clc->data = NULL;
-      close(clc->fd);
-   }
+   if (clc->data)
+      munmap((void *)clc->data, clc->size);
+   clc->data = NULL;
+   close(clc->fd);
 #endif
 }
 
@@ -198,34 +194,32 @@ open_clc_data(struct clc_data *clc, unsigned ptr_bit_size)
    }
 
 #ifdef DYNAMIC_LIBCLC_PATH
-   if (clc->file->sys_path != NULL) {
-      int fd = open(clc->file->sys_path, O_RDONLY);
-      if (fd < 0)
-         return false;
+   int fd = open(clc->file->sys_path, O_RDONLY);
+   if (fd < 0)
+      return false;
 
-      struct stat stat;
-      int ret = fstat(fd, &stat);
-      if (ret < 0) {
-         fprintf(stderr, "fstat failed on %s: %m\n", clc->file->sys_path);
-         close(fd);
-         return false;
-      }
+   struct stat stat;
+   int ret = fstat(fd, &stat);
+   if (ret < 0) {
+      fprintf(stderr, "fstat failed on %s: %m\n", clc->file->sys_path);
+      close(fd);
+      return false;
+   }
 
-      clc->fd = fd;
-      clc->size = stat.st_size;
+   clc->fd = fd;
+   clc->size = stat.st_size;
 
-      if (!map_clc_data(clc)) {
-         close_clc_data(clc);
-         return false;
-      }
+   if (!map_clc_data(clc)) {
+      close_clc_data(clc);
+      return false;
+   }
 
-      blake3_hasher ctx;
-      _mesa_blake3_init(&ctx);
-      _mesa_blake3_update(&ctx, clc->data, clc->size);
-      _mesa_blake3_final(&ctx, clc->cache_key);
+   blake3_hasher ctx;
+   _mesa_blake3_init(&ctx);
+   _mesa_blake3_update(&ctx, clc->data, clc->size);
+   _mesa_blake3_final(&ctx, clc->cache_key);
 
-      return true;
-   }
+   return true;
 #endif
 
    return false;
-- 
2.55.0


++++++ U_nir-load_libclc-turn-sys_path-into-an-array.patch ++++++
>From 62ee563fd398169005906245831db680f813b19f Mon Sep 17 00:00:00 2001
From: Karol Herbst <[email protected]>
Date: Tue, 22 Sep 2026 14:11:09 +0200
Subject: [PATCH 2/3] nir/load_libclc: turn sys_path into an array

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/44624>
---
 src/compiler/clc/nir_load_libclc.c | 55 +++++++++++++++++-------------
 1 file changed, 31 insertions(+), 24 deletions(-)

diff --git a/src/compiler/clc/nir_load_libclc.c 
b/src/compiler/clc/nir_load_libclc.c
index 913dd8ff7a7..17b901db47c 100644
--- a/src/compiler/clc/nir_load_libclc.c
+++ b/src/compiler/clc/nir_load_libclc.c
@@ -52,7 +52,7 @@ struct clc_file {
    unsigned bit_size;
    const char *static_data;
    size_t static_data_size;
-   const char *sys_path;
+   const char *sys_paths[1];
 };
 
 static const struct clc_file libclc_files[] = {
@@ -63,7 +63,9 @@ static const struct clc_file libclc_files[] = {
       .static_data_size = sizeof(libclc_spirv_mesa3d_spv),
 #endif
 #ifdef DYNAMIC_LIBCLC_PATH
-      .sys_path = DYNAMIC_LIBCLC_PATH "spirv-mesa3d-.spv",
+      .sys_paths = {
+         DYNAMIC_LIBCLC_PATH "spirv-mesa3d-.spv",
+      },
 #endif
    },
    {
@@ -73,7 +75,9 @@ static const struct clc_file libclc_files[] = {
       .static_data_size = sizeof(libclc_spirv64_mesa3d_spv),
 #endif
 #ifdef DYNAMIC_LIBCLC_PATH
-      .sys_path = DYNAMIC_LIBCLC_PATH "spirv64-mesa3d-.spv",
+      .sys_paths = {
+         DYNAMIC_LIBCLC_PATH "spirv64-mesa3d-.spv",
+      },
 #endif
    },
 };
@@ -194,32 +198,35 @@ open_clc_data(struct clc_data *clc, unsigned ptr_bit_size)
    }
 
 #ifdef DYNAMIC_LIBCLC_PATH
-   int fd = open(clc->file->sys_path, O_RDONLY);
-   if (fd < 0)
-      return false;
+   for (unsigned i = 0; i < ARRAY_SIZE(clc->file->sys_paths); i++) {
+      const char *sys_path = clc->file->sys_paths[i];
+      int fd = open(sys_path, O_RDONLY);
+      if (fd < 0)
+         continue;
 
-   struct stat stat;
-   int ret = fstat(fd, &stat);
-   if (ret < 0) {
-      fprintf(stderr, "fstat failed on %s: %m\n", clc->file->sys_path);
-      close(fd);
-      return false;
-   }
+      struct stat stat;
+      int ret = fstat(fd, &stat);
+      if (ret < 0) {
+         fprintf(stderr, "fstat failed on %s: %m\n", sys_path);
+         close(fd);
+         continue;
+      }
 
-   clc->fd = fd;
-   clc->size = stat.st_size;
+      clc->fd = fd;
+      clc->size = stat.st_size;
 
-   if (!map_clc_data(clc)) {
-      close_clc_data(clc);
-      return false;
-   }
+      if (!map_clc_data(clc)) {
+         close_clc_data(clc);
+         continue;
+      }
 
-   blake3_hasher ctx;
-   _mesa_blake3_init(&ctx);
-   _mesa_blake3_update(&ctx, clc->data, clc->size);
-   _mesa_blake3_final(&ctx, clc->cache_key);
+      blake3_hasher ctx;
+      _mesa_blake3_init(&ctx);
+      _mesa_blake3_update(&ctx, clc->data, clc->size);
+      _mesa_blake3_final(&ctx, clc->cache_key);
 
-   return true;
+      return true;
+   }
 #endif
 
    return false;
-- 
2.55.0


++++++ mesa-26.2.4.tar.xz -> mesa-26.2.5.tar.xz ++++++
/work/SRC/openSUSE:Factory/Mesa/mesa-26.2.4.tar.xz 
/work/SRC/openSUSE:Factory/.Mesa.new.3698736/mesa-26.2.5.tar.xz differ: char 
27, line 1

++++++ n_hardcode-libclc-path.patch ++++++
libclc 23 removed libclc.pc, so we hardcode the path for now.

diff --git a/meson.build b/meson.build
index ee207a97e7a..72030fb67b5 100644
--- a/meson.build
+++ b/meson.build
@@ -1048,17 +1048,6 @@ with_poly = [
   with_kosmickrisp_vk,
 ].contains(true)
 
-dep_clc = null_dep
-if with_gallium_rusticl or with_microsoft_clc
-  dep_clc = dependency('mesa-libclc', required : false,
-    not_found_message :
-    'mesa-libclc not found. Build will fall back to upstream libclc, however ' 
+
-    'this is not recommended for most use cases.')
-  if not dep_clc.found()
-    dep_clc = dependency('libclc')
-  endif
-endif
-
 with_gfx_compute = [
   with_any_opengl,
   with_any_vk,
diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build
index 249fd31f478..e86da476cca 100644
--- a/src/compiler/clc/meson.build
+++ b/src/compiler/clc/meson.build
@@ -40,10 +40,10 @@ if not _shared_llvm or \
   _libmesaclc_cpp_args += ['-DUSE_STATIC_OPENCL_C_H=1']
 endif
 
-if dep_clc.found()
+if true
   files_libmesaclc += 'nir_load_libclc.c'
 
-  _basedir = dep_clc.get_variable(pkgconfig : 'libexecdir')
+  _basedir = '/usr/share/clc'
 
   _static_libclc = get_option('static-libclc')
   if _static_libclc.length() > 0

Reply via email to