Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-numpy for openSUSE:Factory 
checked in at 2024-04-03 17:18:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-numpy (Old)
 and      /work/SRC/openSUSE:Factory/.python-numpy.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-numpy"

Wed Apr  3 17:18:42 2024 rev:126 rq:1164093 version:1.26.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-numpy/python-numpy.changes        
2024-01-17 22:14:49.913965478 +0100
+++ /work/SRC/openSUSE:Factory/.python-numpy.new.1905/python-numpy.changes      
2024-04-03 17:19:02.850470885 +0200
@@ -1,0 +2,8 @@
+Thu Mar 28 13:54:34 UTC 2024 - Fabian Vogt <fv...@suse.com>
+
+- Add patch to fix detection of some features:
+  * 0001-feature-module-Fix-handling-of-multiple-conflicts-pe.patch
+- Add patch to fix test failure on some platforms (boo#1221902):
+  * 0001-BUG-Fix-test_impossible_feature_enable-failing-witho.patch
+
+-------------------------------------------------------------------

New:
----
  0001-BUG-Fix-test_impossible_feature_enable-failing-witho.patch
  0001-feature-module-Fix-handling-of-multiple-conflicts-pe.patch

BETA DEBUG BEGIN:
  New:- Add patch to fix test failure on some platforms (boo#1221902):
  * 0001-BUG-Fix-test_impossible_feature_enable-failing-witho.patch
  New:- Add patch to fix detection of some features:
  * 0001-feature-module-Fix-handling-of-multiple-conflicts-pe.patch
- Add patch to fix test failure on some platforms (boo#1221902):
BETA DEBUG END:

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

Other differences:
------------------
++++++ python-numpy.spec ++++++
--- /var/tmp/diff_new_pack.W4U3Cu/_old  2024-04-03 17:19:04.046514954 +0200
+++ /var/tmp/diff_new_pack.W4U3Cu/_new  2024-04-03 17:19:04.050515102 +0200
@@ -1,5 +1,5 @@
 #
-# spec file
+# spec file for package python-numpy
 #
 # Copyright (c) 2024 SUSE LLC
 #
@@ -86,6 +86,10 @@
 Patch0:         numpy-buildfix.patch
 # PATCH-FIX-OPENSUSE numpy-1.9.0-remove-__declspec.patch -- fix for spurious 
compiler warnings that cause build failure
 Patch1:         numpy-1.9.0-remove-__declspec.patch
+# PATCH-FIX-UPSTREAM https://github.com/numpy/numpy/pull/26151
+Patch2:         0001-BUG-Fix-test_impossible_feature_enable-failing-witho.patch
+# PATCH-FIX-UPSTREAM https://github.com/numpy/meson/pull/12
+Patch3:         0001-feature-module-Fix-handling-of-multiple-conflicts-pe.patch
 BuildRequires:  %{python_module Cython >= 3.0}
 BuildRequires:  %{python_module base >= 3.9}
 BuildRequires:  %{python_module devel}
@@ -139,7 +143,7 @@
 Requires:       alts
 %else
 Requires(post): update-alternatives
-Requires(postun):update-alternatives
+Requires(postun): update-alternatives
 %endif
 %else
 BuildRequires:  %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
@@ -332,7 +336,6 @@
 %endif
 %ifarch %{arm}
 # https://github.com/numpy/numpy/issues/24001
-test_failok+=" or (test_cpu_features and test_impossible_feature_enable)"
 test_failok+=" or (test_cpu_features and test_features)"
 test_failok+=" or (test_umath and test_unary_spurious_fpexception)"
 %endif

++++++ 0001-BUG-Fix-test_impossible_feature_enable-failing-witho.patch ++++++
>From bf50761dee8f0670542bcdc1fd9bff5cdb0448d4 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fv...@suse.de>
Date: Thu, 28 Mar 2024 14:39:45 +0100
Subject: [PATCH] BUG: Fix test_impossible_feature_enable failing without
 BASELINE_FEAT

If the build has no baseline features set, the test ended up setting
e.g. NPY_ENABLE_CPU_FEATURES="ASIMDHP, None". This actually made the
execution succeed, as the warning for decoding "None" overrode the
error for the real feature. Fix the error handling there by removing
the errorneous "return 0;", add a test for this, and avoid passing
"None" by accident.
---
 numpy/core/src/common/npy_cpu_features.c |  1 -
 numpy/core/tests/test_cpu_features.py    | 14 ++++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/numpy/core/src/common/npy_cpu_features.c 
b/numpy/core/src/common/npy_cpu_features.c
index bd149f8b4..f4d25cc50 100644
--- a/numpy/core/src/common/npy_cpu_features.c
+++ b/numpy/core/src/common/npy_cpu_features.c
@@ -324,7 +324,6 @@ npy__cpu_check_env(int disable, const char *env) {
         ) < 0) {
             return -1;
         }
-        return 0;
     }
 
     #define NOTSUPP_BODY \
diff --git a/numpy/core/tests/test_cpu_features.py 
b/numpy/core/tests/test_cpu_features.py
index 48ab30a4a..88e4ad185 100644
--- a/numpy/core/tests/test_cpu_features.py
+++ b/numpy/core/tests/test_cpu_features.py
@@ -308,8 +308,8 @@ def test_impossible_feature_enable(self):
         err_type = "RuntimeError"
         self._expect_error(msg, err_type)
 
-        # Ensure that only the bad feature gets reported
-        feats = f"{bad_feature}, {self.BASELINE_FEAT}"
+        # Ensure that it fails even when providing garbage in addition
+        feats = f"{bad_feature}, Foobar"
         self.env['NPY_ENABLE_CPU_FEATURES'] = feats
         msg = (
             f"You cannot enable CPU features \\({bad_feature}\\), since they "
@@ -317,6 +317,16 @@ def test_impossible_feature_enable(self):
         )
         self._expect_error(msg, err_type)
 
+        if self.BASELINE_FEAT is not None:
+            # Ensure that only the bad feature gets reported
+            feats = f"{bad_feature}, {self.BASELINE_FEAT}"
+            self.env['NPY_ENABLE_CPU_FEATURES'] = feats
+            msg = (
+                f"You cannot enable CPU features \\({bad_feature}\\), since "
+                "they are not supported by your machine."
+            )
+            self._expect_error(msg, err_type)
+
 is_linux = sys.platform.startswith('linux')
 is_cygwin = sys.platform.startswith('cygwin')
 machine  = platform.machine()
-- 
2.44.0


++++++ 0001-feature-module-Fix-handling-of-multiple-conflicts-pe.patch ++++++
>From 79e7c3c3262374de778145946b612135fb7cd581 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fv...@suse.de>
Date: Thu, 28 Mar 2024 13:15:54 +0100
Subject: [PATCH] feature module: Fix handling of multiple conflicts per
 attribute

- Attributes without match were never actually added to the list
- Only the last conflict actually had an effect, earlier results were
  discarded
---
 vendored-meson/meson/mesonbuild/modules/features/module.py | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/vendored-meson/meson/mesonbuild/modules/features/module.py 
b/vendored-meson/meson/mesonbuild/modules/features/module.py
index 0be6af06c..a6f357b3f 100644
--- a/vendored-meson/meson/mesonbuild/modules/features/module.py
+++ b/vendored-meson/meson/mesonbuild/modules/features/module.py
@@ -371,15 +371,12 @@ class Module(NewExtensionModule):
                 values: List[ConflictAttr] = getattr(fet, attr)
                 accumulate_values = test_result[attr]  # type: ignore
                 for conflict in values:
-                    if not conflict.match:
-                        accumulate_values.append(conflict.val)
-                        continue
                     conflict_vals: List[str] = []
                     # select the acc items based on the match
                     new_acc: List[str] = []
                     for acc in accumulate_values:
                         # not affected by the match so we keep it
-                        if not conflict.match.match(acc):
+                        if not (conflict.match and conflict.match.match(acc)):
                             new_acc.append(acc)
                             continue
                         # no filter so we totaly escape it
@@ -396,7 +393,7 @@ class Module(NewExtensionModule):
                             continue
                         conflict_vals.append(conflict.mjoin.join(filter_val))
                     new_acc.append(conflict.val + 
conflict.mjoin.join(conflict_vals))
-                    test_result[attr] = new_acc  # type: ignore
+                    accumulate_values = test_result[attr] = new_acc  # type: 
ignore
 
         test_args = compiler.has_multi_arguments
         args = test_result['args']
-- 
2.44.0

Reply via email to