Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package linux-npu-driver for 
openSUSE:Factory checked in at 2026-08-19 17:58:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linux-npu-driver (Old)
 and      /work/SRC/openSUSE:Factory/.linux-npu-driver.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "linux-npu-driver"

Wed Aug 19 17:58:46 2026 rev:7 rq:1371884 version:1.35.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/linux-npu-driver/linux-npu-driver.changes        
2026-07-31 16:08:58.551911680 +0200
+++ 
/work/SRC/openSUSE:Factory/.linux-npu-driver.new.1258/linux-npu-driver.changes  
    2026-08-19 18:00:48.408346363 +0200
@@ -1,0 +2,12 @@
+Wed Aug 19 02:22:49 UTC 2026 - Alessandro de Oliveira Faria 
<[email protected]>
+
+-  Add fix-resource-cleaner-overflow.patch to resolve
+   ResourceCleaner timeout overflow on libstdc++
+
+-------------------------------------------------------------------
+Sat Aug  8 04:08:30 UTC 2026 - Alessandro de Oliveira Faria 
<[email protected]>
+
+- The packages ibze_intel_npu, linux-npu-driver, and 
+  linux-npu-driver-devel were created separately.
+
+-------------------------------------------------------------------

New:
----
  fix-resource-cleaner-overflow.patch

----------(New B)----------
  New:
-  Add fix-resource-cleaner-overflow.patch to resolve
   ResourceCleaner timeout overflow on libstdc++
----------(New E)----------

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

Other differences:
------------------
++++++ linux-npu-driver.spec ++++++
--- /var/tmp/diff_new_pack.l6MElx/_old  2026-08-19 18:00:49.762395043 +0200
+++ /var/tmp/diff_new_pack.l6MElx/_new  2026-08-19 18:00:49.766395187 +0200
@@ -17,6 +17,8 @@
 #
 
 %define _firmwaredir /lib/firmware
+%define sover 1
+%define libname libze_intel_npu%{sover}
 Name:           linux-npu-driver
 Version:        1.35.0
 Release:        0
@@ -24,17 +26,21 @@
 License:        MIT
 URL:            https://github.com/intel/linux-npu-driver
 Source0:        %{name}-%{version}.tar.xz
+Patch0:         
https://github.com/intel/linux-npu-driver/commit/84819fb90b5786fcde13552df772467f9d6b7ffe.patch#/fix-resource-cleaner-overflow.patch
 BuildRequires:  cmake
 BuildRequires:  git
 %if 0%{?suse_version} >= 1600 && 0%{?is_opensuse}
 BuildRequires:  gcc-c++ gcc
 %else
-BuildRequires:  gcc12-c++ gcc12
+BuildRequires:  gcc12
+BuildRequires:  gcc12-c++
+BuildRequires:  libasan8
+BuildRequires:  libtsan2
 %endif
 BuildRequires:  pkgconfig(gtest)
 BuildRequires:  pkgconfig(level-zero)
 BuildRequires:  pkgconfig(gmock)
-BuildRequires:  xz
+BuildRequires:  xz yaml-cpp-devel
 ExclusiveArch:  x86_64
 
 %description
@@ -43,30 +49,53 @@
 (formerly known as Meteor Lake). It enables execution of artificial
 neural network tasks.
 
+%package -n %{libname}
+Summary:        Intel NPU Level Zero user-mode driver library
+
+%description -n %{libname}
+This package contains the Intel NPU Level Zero user-mode driver
+shared library.
+
+%package devel
+Summary:        Development files for the Intel NPU Level Zero driver
+Requires:       %{libname} = %{version}
+
+%description devel
+This package contains the development linker files for the Intel NPU
+Level Zero user-mode driver.
+
 %prep
 %autosetup -p1
 
 %build
 %if 0%{?suse_version} < 1600 && 0%{?is_opensuse}
-export CC=gcc-12 CXX=g++-12
+export CC=gcc-12
+export CXX=g++-12
 %endif
 
 %cmake \
        -DENABLE_NPU_COMPILER_BUILD=OFF \
-       -DCMAKE_CXX_FLAGS="-fcf-protection=none" \
-       -DCMAKE_C_FLAGS="-fcf-protection=none" 
-DCMAKE_CXX_FLAGS="-Wno-error=missing-field-initializers" 
+        -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \
+        -DCMAKE_EXE_LINKER_FLAGS:STRING="-pie" \
+        -DCMAKE_C_FLAGS:STRING="%{optflags} -fcf-protection=none" \
+        -DCMAKE_CXX_FLAGS:STRING="%{optflags} -fcf-protection=none 
-Wno-error=missing-field-initializers"
+
 %cmake_build
 
 %install
 %cmake_install
 DESTDIR=%{buildroot} /usr/bin/cmake --install build --component fw-npu
 
-%ldconfig_scriptlets
+%ldconfig_scriptlets  -n %{libname}
 
 %files
-%{_libdir}/libze_*.so.*
-%{_libdir}/libze_*.so
 %{_bindir}/npu-kmd-test
 %{_bindir}/npu-umd-test
 %{_firmwaredir}
 
+%files -n %{libname}
+%{_libdir}/libze_intel_npu.so.*
+
+%files devel
+%{_libdir}/libze_intel_npu.so
+

++++++ fix-resource-cleaner-overflow.patch ++++++
>From 84819fb90b5786fcde13552df772467f9d6b7ffe Mon Sep 17 00:00:00 2001
From: "Alessandro de Oliveira Faria (A.K.A. CABELO)" <[email protected]>
Date: Thu, 30 Jul 2026 00:55:32 -0300
Subject: [PATCH] UMD: Prevent ResourceCleaner timeout overflow on libstdc++

Avoid passing the max steady_clock time_point to cv.wait_until, which
can overflow internally on libstdc++ and cause undefined behavior.
Instead, use cv.wait() when no timeout is set, only computing an
actual wait_until deadline when a real idle timeout is active.
---
 umd/level_zero_driver/source/context.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/umd/level_zero_driver/source/context.cpp 
b/umd/level_zero_driver/source/context.cpp
index a4d29fe..171aed5 100644
--- a/umd/level_zero_driver/source/context.cpp
+++ b/umd/level_zero_driver/source/context.cpp
@@ -258,12 +258,17 @@ ResourceCleaner::ResourceCleaner(Context *ctx, 
std::chrono::milliseconds timeout
     , thread(
           [this](Context *ctx) {
               std::unique_lock<std::mutex> lock(mutex);
-              auto timeout = 
std::chrono::time_point<std::chrono::steady_clock>::max();
+              const auto noTimeout = 
std::chrono::time_point<std::chrono::steady_clock>::max();
+              auto timeout = noTimeout;
               while (action != Action::BREAK) {
-                  if (cv.wait_until(lock, timeout) == std::cv_status::timeout) 
{
+                  if (timeout == noTimeout) {
+                      cv.wait(lock);
+                  } else if (cv.wait_until(lock, timeout) == 
std::cv_status::timeout) {
                       ctx->releaseMemory();
-                      timeout = 
std::chrono::time_point<std::chrono::steady_clock>::max();
-                  } else if (action == Action::PRUNE_AFTER_TIMEOUT) {
+                      timeout = noTimeout;
+                      continue;
+                  }
+                  if (action == Action::PRUNE_AFTER_TIMEOUT) {
                       timeout = std::chrono::steady_clock::now() + idleTimeout;
                   }
               }

Reply via email to