public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/python-matplotlib] rawhide: Update to latest version (#2488230)
Date: Tue, 21 Jul 2026 08:02:50 GMT	[thread overview]
Message-ID: <178462097038.1.5278750689114963591.rpms-python-matplotlib-3b8e6a95d6d1@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/python-matplotlib
Branch : rawhide
Commit : 3b8e6a95d6d16f0f5ac7f7111f39b6c50122d151
Author : Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date   : 2026-07-21T02:43:04-04:00
Stats  : +59/-376 in 10 file(s)
URL    : https://src.fedoraproject.org/rpms/python-matplotlib/c/3b8e6a95d6d16f0f5ac7f7111f39b6c50122d151?branch=rawhide

Log:
Update to latest version (#2488230)

---
diff --git a/.gitignore b/.gitignore
index 0bfad3b..bbca267 100644
--- a/.gitignore
+++ b/.gitignore
@@ -124,3 +124,5 @@ matplotlib-1.0.0-without-gpc.tar.gz
 /matplotlib-3.10.8.tar.gz
 /matplotlib-3.10.8-with-freetype-2.14.1.tar.gz
 /matplotlib-3.10.9.tar.gz
+/matplotlib-3.11.0.tar.gz
+/matplotlib-3.11.1.tar.gz

diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch
index 9b54971..8ca7199 100644
--- a/0001-matplotlibrc-path-search-fix.patch
+++ b/0001-matplotlibrc-path-search-fix.patch
@@ -1,7 +1,7 @@
-From 9923f41efae1860369827d5938c9cd03de805a2e Mon Sep 17 00:00:00 2001
+From ceebac42f7c5f4e5fce786bba191a5e7ece3d411 Mon Sep 17 00:00:00 2001
 From: Sandro Tosi <morph@debian.org>
 Date: Wed, 27 Sep 2017 19:35:59 -0400
-Subject: [PATCH 1/5] matplotlibrc path search fix
+Subject: [PATCH 1/2] matplotlibrc path search fix
 
 Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
 ---
@@ -9,10 +9,10 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
  1 file changed, 2 insertions(+)
 
 diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
-index 2786f9b7b9..79cccf0892 100644
+index 2a83cc1f10..97e279d4ae 100644
 --- a/lib/matplotlib/__init__.py
 +++ b/lib/matplotlib/__init__.py
-@@ -613,6 +613,7 @@ def matplotlib_fname():
+@@ -654,6 +654,7 @@ def matplotlib_fname():
            is not defined)
      - On other platforms,
        - ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -20,7 +20,7 @@ index 2786f9b7b9..79cccf0892 100644
      - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
        exist.
      """
-@@ -631,6 +632,7 @@ def matplotlib_fname():
+@@ -672,6 +673,7 @@ def matplotlib_fname():
              yield matplotlibrc
              yield os.path.join(matplotlibrc, 'matplotlibrc')
          yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -29,5 +29,5 @@ index 2786f9b7b9..79cccf0892 100644
  
      for fname in gen_candidates():
 -- 
-2.52.0
+2.54.0
 

diff --git a/0002-Reduce-required-libraqm-version.patch b/0002-Reduce-required-libraqm-version.patch
new file mode 100644
index 0000000..56aa373
--- /dev/null
+++ b/0002-Reduce-required-libraqm-version.patch
@@ -0,0 +1,26 @@
+From ecb3525caeb6df5557a103ed3fb219b6dec65f36 Mon Sep 17 00:00:00 2001
+From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
+Date: Wed, 24 Jun 2026 13:15:47 -0400
+Subject: [PATCH 2/2] Reduce required libraqm version
+
+Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
+---
+ extern/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/extern/meson.build b/extern/meson.build
+index 08c15a1e36..cebe153603 100644
+--- a/extern/meson.build
++++ b/extern/meson.build
+@@ -25,7 +25,7 @@ else
+ endif
+ 
+ if get_option('system-libraqm')
+-  libraqm_dep = dependency('raqm', version: '>=0.10.4')
++  libraqm_dep = dependency('raqm', version: '>=0.10.0')
+ else
+   subproject('harfbuzz',
+     default_options: [
+-- 
+2.54.0
+

diff --git a/0002-Set-FreeType-version-to-2.14.1-and-update-tolerances.patch b/0002-Set-FreeType-version-to-2.14.1-and-update-tolerances.patch
deleted file mode 100644
index 0efbf81..0000000
--- a/0002-Set-FreeType-version-to-2.14.1-and-update-tolerances.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 964b447ac115c94ed91edd8066887390d0d0ed60 Mon Sep 17 00:00:00 2001
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Fri, 14 Feb 2020 06:05:42 -0500
-Subject: [PATCH 2/5] Set FreeType version to 2.14.1 and update tolerances
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- extern/meson.build                       | 2 +-
- lib/matplotlib/__init__.py               | 2 +-
- lib/matplotlib/tests/test_axes.py        | 4 ++--
- lib/matplotlib/tests/test_backend_pgf.py | 2 +-
- lib/matplotlib/tests/test_ft2font.py     | 6 +++---
- lib/matplotlib/tests/test_legend.py      | 4 ++--
- lib/matplotlib/tests/test_polar.py       | 2 +-
- 7 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/extern/meson.build b/extern/meson.build
-index 5463183a90..928eb6bd56 100644
---- a/extern/meson.build
-+++ b/extern/meson.build
-@@ -13,7 +13,7 @@ else
-   # must match the value in `lib/matplotlib.__init__.py`. Also update the docs
-   # in `docs/devel/dependencies.rst`. Bump the cache key in
-   # `.circleci/config.yml` when changing requirements.
--  LOCAL_FREETYPE_VERSION = '2.6.1'
-+  LOCAL_FREETYPE_VERSION = '2.14.1'
- 
-   freetype_proj = subproject(
-     f'freetype-@LOCAL_FREETYPE_VERSION@',
-diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
-index 79cccf0892..04d716b54c 100644
---- a/lib/matplotlib/__init__.py
-+++ b/lib/matplotlib/__init__.py
-@@ -1363,7 +1363,7 @@ def _val_or_rc(val, rc_name):
- def _init_tests():
-     # The version of FreeType to install locally for running the tests. This must match
-     # the value in `meson.build`.
--    LOCAL_FREETYPE_VERSION = '2.6.1'
-+    LOCAL_FREETYPE_VERSION = '2.14.1'
- 
-     from matplotlib import ft2font
-     if (ft2font.__freetype_version__ != LOCAL_FREETYPE_VERSION or
-diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
-index b9eb145b14..3a93369f22 100644
---- a/lib/matplotlib/tests/test_axes.py
-+++ b/lib/matplotlib/tests/test_axes.py
-@@ -8083,7 +8083,7 @@ def test_normal_axes():
-     ]
-     for nn, b in enumerate(bbaxis):
-         targetbb = mtransforms.Bbox.from_bounds(*target[nn])
--        assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
-+        assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=0)
- 
-     target = [
-         [150.0, 119.999, 930.0, 11.111],
-@@ -8101,7 +8101,7 @@ def test_normal_axes():
- 
-     target = [85.5138, 75.88888, 1021.11, 1017.11]
-     targetbb = mtransforms.Bbox.from_bounds(*target)
--    assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
-+    assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=0)
- 
-     # test that get_position roundtrips to get_window_extent
-     axbb = ax.get_position().transformed(fig.transFigure).bounds
-diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
-index e218a81cdc..839ad724e1 100644
---- a/lib/matplotlib/tests/test_backend_pgf.py
-+++ b/lib/matplotlib/tests/test_backend_pgf.py
-@@ -165,7 +165,7 @@ def test_pathclip():
- # test mixed mode rendering
- @needs_pgf_xelatex
- @pytest.mark.backend('pgf')
--@image_comparison(['pgf_mixedmode.pdf'], style='default')
-+@image_comparison(['pgf_mixedmode.pdf'], style='default', tol=0.87)
- def test_mixedmode():
-     mpl.rcParams.update({'font.family': 'serif', 'pgf.rcfonts': False})
-     Y, X = np.ogrid[-1:1:40j, -1:1:40j]
-diff --git a/lib/matplotlib/tests/test_ft2font.py b/lib/matplotlib/tests/test_ft2font.py
-index 6ba23bab34..0aee3222f1 100644
---- a/lib/matplotlib/tests/test_ft2font.py
-+++ b/lib/matplotlib/tests/test_ft2font.py
-@@ -706,10 +706,10 @@ def test_ft2font_get_sfnt_table(font_name, header):
- 
- @pytest.mark.parametrize('left, right, unscaled, unfitted, default', [
-     # These are all the same class.
--    ('A', 'A', 57, 248, 256), ('A', 'À', 57, 248, 256), ('A', 'Á', 57, 248, 256),
--    ('A', 'Â', 57, 248, 256), ('A', 'Ã', 57, 248, 256), ('A', 'Ä', 57, 248, 256),
-+    ('A', 'A', 57, 247, 256), ('A', 'À', 57, 247, 256), ('A', 'Á', 57, 247, 256),
-+    ('A', 'Â', 57, 247, 256), ('A', 'Ã', 57, 247, 256), ('A', 'Ä', 57, 247, 256),
-     # And a few other random ones.
--    ('D', 'A', -36, -156, -128), ('T', '.', -243, -1056, -1024),
-+    ('D', 'A', -36, -156, -128), ('T', '.', -243, -1055, -1024),
-     ('X', 'C', -149, -647, -640), ('-', 'J', 114, 495, 512),
- ])
- def test_ft2font_get_kerning(left, right, unscaled, unfitted, default):
-diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
-index eb3bfca7c2..c01be3aec0 100644
---- a/lib/matplotlib/tests/test_legend.py
-+++ b/lib/matplotlib/tests/test_legend.py
-@@ -520,9 +520,9 @@ def test_figure_legend_outside():
-         fig.draw_without_rendering()
- 
-         assert_allclose(axs.get_window_extent().extents,
--                        axbb[nn])
-+                        axbb[nn], rtol=1)
-         assert_allclose(leg.get_window_extent().extents,
--                        legbb[nn])
-+                        legbb[nn], rtol=1)
- 
- 
- @image_comparison(['legend_stackplot.png'],
-diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py
-index 844ab8cf3a..826a8a0c3a 100644
---- a/lib/matplotlib/tests/test_polar.py
-+++ b/lib/matplotlib/tests/test_polar.py
-@@ -328,7 +328,7 @@ def test_get_tightbbox_polar():
-     fig.canvas.draw()
-     bb = ax.get_tightbbox(fig.canvas.get_renderer())
-     assert_allclose(
--        bb.extents, [107.7778,  29.2778, 539.7847, 450.7222], rtol=1e-03)
-+        bb.extents, [107.7778,  29.2778, 539.7847, 450.7222], rtol=1)
- 
- 
- @check_figures_equal(extensions=["png"])
--- 
-2.52.0
-

diff --git a/0003-Unpin-build-requirements.patch b/0003-Unpin-build-requirements.patch
deleted file mode 100644
index bdf5dd6..0000000
--- a/0003-Unpin-build-requirements.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From c111ec4612f00cca5be9eba71d77833f0c6898d4 Mon Sep 17 00:00:00 2001
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Fri, 13 Dec 2024 02:03:33 -0500
-Subject: [PATCH 3/5] Unpin build requirements
-
-meson-python is pinned to fix sdists, but we already have one and are
-building a wheel, which should be fine.
-
-setuptools-scm is pinned to fix editable installs, which aren't used in
-Fedora.
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- pyproject.toml | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index 96b69829e6..f762c85d98 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -48,9 +48,9 @@ requires-python = ">=3.10"
- [project.optional-dependencies]
- # Should be a copy of the build dependencies below.
- dev = [
--    "meson-python>=0.13.1,<0.17.0",
-+    "meson-python>=0.13.1",
-     "pybind11>=2.13.2,!=2.13.3",
--    "setuptools_scm>=7,<10",
-+    "setuptools_scm>=7",
-     # Not required by us but setuptools_scm without a version, cso _if_
-     # installed, then setuptools_scm 8 requires at least this version.
-     # Unfortunately, we can't do a sort of minimum-if-instaled dependency, so
-@@ -72,9 +72,9 @@ dev = [
- build-backend = "mesonpy"
- # Also keep in sync with optional dependencies above.
- requires = [
--    "meson-python>=0.13.1,<0.17.0",
-+    "meson-python>=0.13.1",
-     "pybind11>=2.13.2,!=2.13.3",
--    "setuptools_scm>=7,<10",
-+    "setuptools_scm>=7",
- ]
- 
- [tool.meson-python.args]
--- 
-2.52.0
-

diff --git a/0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch b/0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
deleted file mode 100644
index 8f564d6..0000000
--- a/0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From a27a1f937fb42d4212fd07af500eec4be6ccbbf7 Mon Sep 17 00:00:00 2001
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Mon, 22 Aug 2022 18:43:28 -0400
-Subject: [PATCH 4/5] Use old stride_windows implementation on 32-bit x86
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- lib/matplotlib/mlab.py | 39 +++++++++++++++++++++++++++++++++++----
- 1 file changed, 35 insertions(+), 4 deletions(-)
-
-diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py
-index 8326ac186e..bdaa34b734 100644
---- a/lib/matplotlib/mlab.py
-+++ b/lib/matplotlib/mlab.py
-@@ -49,6 +49,7 @@ Spectral functions
- 
- import functools
- from numbers import Number
-+import sys
- 
- import numpy as np
- 
-@@ -210,6 +211,30 @@ def detrend_linear(y):
-     return y - (b*x + a)
- 
- 
-+def _stride_windows(x, n, noverlap=0):
-+    if noverlap >= n:
-+        raise ValueError('noverlap must be less than n')
-+    if n < 1:
-+        raise ValueError('n cannot be less than 1')
-+
-+    x = np.asarray(x)
-+
-+    if n == 1 and noverlap == 0:
-+        return x[np.newaxis]
-+    if n > x.size:
-+        raise ValueError('n cannot be greater than the length of x')
-+
-+    # np.lib.stride_tricks.as_strided easily leads to memory corruption for
-+    # non integer shape and strides, i.e. noverlap or n. See #3845.
-+    noverlap = int(noverlap)
-+    n = int(n)
-+
-+    step = n - noverlap
-+    shape = (n, (x.shape[-1]-noverlap)//step)
-+    strides = (x.strides[0], step*x.strides[0])
-+    return np.lib.stride_tricks.as_strided(x, shape=shape, strides=strides)
-+
-+
- def _spectral_helper(x, y=None, NFFT=None, Fs=None, detrend_func=None,
-                      window=None, noverlap=None, pad_to=None,
-                      sides=None, scale_by_freq=None, mode=None):
-@@ -304,8 +329,11 @@ def _spectral_helper(x, y=None, NFFT=None, Fs=None, detrend_func=None,
-         raise ValueError(
-             "The window length must match the data's first dimension")
- 
--    result = np.lib.stride_tricks.sliding_window_view(
--        x, NFFT, axis=0)[::NFFT - noverlap].T
-+    if sys.maxsize > 2**32:  # NumPy version on 32-bit OOMs.
-+        result = np.lib.stride_tricks.sliding_window_view(
-+            x, NFFT, axis=0)[::NFFT - noverlap].T
-+    else:
-+        result = _stride_windows(x, NFFT, noverlap=noverlap)
-     result = detrend(result, detrend_func, axis=0)
-     result = result * window.reshape((-1, 1))
-     result = np.fft.fft(result, n=pad_to, axis=0)[:numFreqs, :]
-@@ -313,8 +341,11 @@ def _spectral_helper(x, y=None, NFFT=None, Fs=None, detrend_func=None,
- 
-     if not same_data:
-         # if same_data is False, mode must be 'psd'
--        resultY = np.lib.stride_tricks.sliding_window_view(
--            y, NFFT, axis=0)[::NFFT - noverlap].T
-+        if sys.maxsize > 2**32:  # NumPy version on 32-bit OOMs.
-+            resultY = np.lib.stride_tricks.sliding_window_view(
-+                y, NFFT, axis=0)[::NFFT - noverlap].T
-+        else:
-+            resultY = _stride_windows(y, NFFT, noverlap=noverlap)
-         resultY = detrend(resultY, detrend_func, axis=0)
-         resultY = resultY * window.reshape((-1, 1))
-         resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :]
--- 
-2.52.0
-

diff --git a/0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch b/0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch
deleted file mode 100644
index c355b64..0000000
--- a/0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 30ba8c34f00168385961dd924713b7fe8ef7605c Mon Sep 17 00:00:00 2001
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Tue, 12 Nov 2024 01:05:25 -0500
-Subject: [PATCH 5/5] Partially revert "TST: Fix minor issues in interactive
- backend test (#28838)"
-
-This reverts commit 7c7f94c5f71e99f148255e3bb570fec25c8fe754.
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- lib/matplotlib/tests/test_backends_interactive.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/lib/matplotlib/tests/test_backends_interactive.py b/lib/matplotlib/tests/test_backends_interactive.py
-index 594681391e..38293e1003 100644
---- a/lib/matplotlib/tests/test_backends_interactive.py
-+++ b/lib/matplotlib/tests/test_backends_interactive.py
-@@ -232,7 +232,10 @@ def _test_interactive_impl():
-     result_after = io.BytesIO()
-     fig.savefig(result_after, format='png')
- 
--    assert result.getvalue() == result_after.getvalue()
-+    if 'qt' not in backend and 'wx' not in backend:
-+        # FIXME: This should be enabled everywhere once Qt5 is fixed on macOS
-+        # to not resize incorrectly.
-+        assert result.getvalue() == result_after.getvalue()
- 
- 
- @pytest.mark.parametrize("env", _get_testable_interactive_backends())
--- 
-2.52.0
-

diff --git a/0006-Fix-Python-3.15-compatibility-issues.patch b/0006-Fix-Python-3.15-compatibility-issues.patch
deleted file mode 100644
index 20ca19c..0000000
--- a/0006-Fix-Python-3.15-compatibility-issues.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1355efe730108ce7b4e660c0725bb98cf0aacc0c Mon Sep 17 00:00:00 2001
-From: Lumir Balhar <lbalhar@redhat.com>
-Date: Tue, 31 Mar 2026 14:19:34 +0200
-Subject: [PATCH] Fix Python 3.15 compatibility issues
-
-Fix several test failures with Python 3.15:
-
-1. test_fork: Python 3.15 raises DeprecationWarning when using fork() in
-   a multi-threaded process. Filter these warnings as the test properly
-   handles fork safety.
-
-2. test_rcupdate: Increase tolerance for minor PGF rendering differences.
----
- lib/matplotlib/tests/test_backend_pgf.py  | 2 +-
- lib/matplotlib/tests/test_font_manager.py | 3 +++
- 5 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
-index 839ad72..a7a12f2 100644
---- a/lib/matplotlib/tests/test_backend_pgf.py
-+++ b/lib/matplotlib/tests/test_backend_pgf.py
-@@ -131,7 +131,7 @@ def test_rcupdate():
-                 'pgf.preamble': ('\\usepackage[utf8x]{inputenc}'
-                                  '\\usepackage[T1]{fontenc}'
-                                  '\\usepackage{sfmath}')}]
--    tol = [0, 13.2] if _old_gs_version else [0, 0]
-+    tol = [0, 13.2] if _old_gs_version else [0, 5.0]  # Increased tolerance for Python 3.15
-     for i, rc_set in enumerate(rc_sets):
-         with mpl.rc_context(rc_set):
-             for substring, pkg in [('sfmath', 'sfmath'), ('utf8x', 'ucs')]:
- 
-diff --git a/lib/matplotlib/tests/test_font_manager.py b/lib/matplotlib/tests/test_font_manager.py
-index d15b892..79e29e2 100644
---- a/lib/matplotlib/tests/test_font_manager.py
-+++ b/lib/matplotlib/tests/test_font_manager.py
-@@ -230,6 +230,9 @@ def _model_handler(_):
- 
- @pytest.mark.skipif(not hasattr(os, "register_at_fork"),
-                     reason="Cannot register at_fork handlers")
-+# Python 3.15+ raises DeprecationWarning for fork in multi-threaded process
-+@pytest.mark.filterwarnings("ignore:.*multi-threaded.*fork.*:DeprecationWarning")
-+@pytest.mark.filterwarnings("ignore:.*multi-threaded.*fork.*:RuntimeWarning")
- def test_fork():
-     _model_handler(0)  # Make sure the font cache is filled.
-     ctx = multiprocessing.get_context("fork")
--- 
-2.53.0
-

diff --git a/python-matplotlib.spec b/python-matplotlib.spec
index 9309998..b1038c9 100644
--- a/python-matplotlib.spec
+++ b/python-matplotlib.spec
@@ -11,6 +11,7 @@
 
 %global build_backend_args %{shrink:
   -Csetup-args="-Dsystem-freetype=true"
+  -Csetup-args="-Dsystem-libraqm=true"
   -Csetup-args="-Dsystem-qhull=true"
   -Cinstall-args="--tags=data,python-runtime,runtime,tests"
 }
@@ -18,14 +19,15 @@
 # Use the same directory of the main package for subpackage licence and docs
 %global _docdir_fmt %{name}
 
+# Whether patching test images is necessary.
+%bcond patched_test_images 0
 # Updated test images for new FreeType.
-%global mpl_images_version 3.10.8
-
+%global mpl_images_version 3.11.0
 # The version of FreeType in this Fedora branch.
-%global ftver 2.14.1
+%global ftver 2.14.3
 
 Name:           python-matplotlib
-Version:        3.10.9
+Version:        3.11.1
 %global Version %{version_no_tilde %{quote:%nil}}
 Release:        %autorelease
 Summary:        Python 2D plotting library
@@ -37,29 +39,25 @@ Source0:        %pypi_source matplotlib %{Version}
 
 # Fedora-specific patches; see:
 # https://github.com/fedora-python/matplotlib/tree/fedora-patches
+%if %{with patched_test_images}
 # Updated test images for new FreeType.
 Source1000:     https://github.com/QuLogic/mpl-images/archive/v%{mpl_images_version}-with-freetype-%{ftver}/matplotlib-%{mpl_images_version}-with-freetype-%{ftver}.tar.gz
+%endif
 # Search in /etc/matplotlibrc:
 Patch1001:      0001-matplotlibrc-path-search-fix.patch
+%if %{with patched_test_images}
 # Increase tolerances for new FreeType everywhere:
 Patch1002:      0002-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patch
-# We don't need to use older meson-python/setuptools.
-Patch1003:      0003-Unpin-build-requirements.patch
-
-# https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888
-Patch0001:      0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch
-
-# Temporary fix for some tests.
-Patch0002:      0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch
-
-# Fix Python 3.15 compatibility issues
-# Upstream issue: https://github.com/matplotlib/matplotlib/issues/31429
-Patch0003:      0006-Fix-Python-3.15-compatibility-issues.patch
+%endif
+# libraqm is still 0.10.1
+# https://src.fedoraproject.org/rpms/libraqm/pull-request/8
+Patch1003:      0002-Reduce-required-libraqm-version.patch
 
 BuildRequires:  gcc
 BuildRequires:  gcc-c++
 BuildRequires:  glibc-langpack-en
 BuildRequires:  freetype-devel
+BuildRequires:  libraqm-devel
 BuildRequires:  qhull-devel
 %ifnarch %{ix86}
 BuildRequires:  xwayland-run
@@ -193,12 +191,12 @@ errorcharts, scatterplots, etc, with just a few lines of code.
 Summary:        Qt5 backend for python3-matplotlib
 BuildRequires:  python3dist(cairocffi)
 %ifnarch %{ix86}
-BuildRequires:  python3dist(pyqt5)
+BuildRequires:  python3-qt5
 BuildRequires:  qt5-qtwayland
 %endif
 Requires:       python3-matplotlib%{?_isa} = %{version}-%{release}
 Requires:       python3dist(cairocffi)
-Requires:       python3dist(pyqt5)
+Requires:       python3-qt5
 
 %description -n python3-matplotlib-qt5
 %{summary}
@@ -307,9 +305,12 @@ Requires:       python3-matplotlib%{?_isa} = %{version}-%{release}
 %autosetup -n matplotlib-%{Version} -N
 
 # Fedora-specific patches follow:
+%pyproject_patch_dependency setuptools_scm:drop_upper
 %autopatch -q -p1 -m 1000
+%if %{with patched_test_images}
 # Updated test images for new FreeType.
 gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/~~'
+%endif
 
 # Backports or reported upstream
 %autopatch -q -p1 -M 999
@@ -338,8 +339,8 @@ export http_proxy=http://127.0.0.1/
 %pyproject_install
 
 # Delete unnecessary files.
-rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/.gitignore
-rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/_static/.gitignore
+rm %{buildroot}%{python3_sitearch}/matplotlib/tests/data/tinypages/.gitignore
+rm %{buildroot}%{python3_sitearch}/matplotlib/tests/data/tinypages/_static/.gitignore
 
 # Move files to Fedora-specific locations.
 %if %{without bundled_fonts}
@@ -369,16 +370,9 @@ export http_proxy=http://127.0.0.1/
 k="${k-}${k+ and }not test_invisible_Line_rendering"
 # This test is flaky.
 k="${k-}${k+ and }not test_form_widget_get_with_datetime_and_date_fields"
-# test_auto_date_locator_intmult_tz fails with Python 3.15.0b1
-# reported: https://github.com/matplotlib/matplotlib/issues/31429#issuecomment-4508466829
-k="${k-}${k+ and }not test_auto_date_locator_intmult_tz"
-# test_pcolornearestunits and test_other_signal_before_sigint fail with Python 3.15.0b2
-k="${k-}${k+ and }not test_pcolornearestunits and not test_other_signal_before_sigint"
-
-%ifarch s390x
-# See https://src.fedoraproject.org/rpms/python-contourpy/c/c9e9d71643
-k="${k-}${k+ and }not (test_contour and algorithm)"
-%endif
+# Needs update for latest TeX Live.
+# https://github.com/matplotlib/matplotlib/pull/31785
+k="${k-}${k+ and }not test_rcupdate"
 
 env MPLCONFIGDIR=$PWD \
     %{pytest} -ra -n auto \

diff --git a/sources b/sources
index 666e95b..ffcc826 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-SHA512 (matplotlib-3.10.9.tar.gz) = 432b234e78e416d779cb1c5c7924f2e68997d9da8a204e7bd5b199aeaafdc900a93e492a464d21daccb11124c01567437c440c4d3ddbf3f772834e4217460a1f
-SHA512 (matplotlib-3.10.8-with-freetype-2.14.1.tar.gz) = 03f5b406caced1e2a59f914a64808b146954ce2285551cb2314664f883a05cbc93a92a28f5c259817a77e048012542d09a0180a230591e40ccef297f477a1e5b
+SHA512 (matplotlib-3.11.1.tar.gz) = 9300ac294f151c478cc8fc38d94931d1431f4083adeac6061c78a100abbbaa8145cd826dab9275319ae91ddb617a4fa4cd2bff1320832941181f707b43ba872a

                 reply	other threads:[~2026-07-21  8:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178462097038.1.5278750689114963591.rpms-python-matplotlib-3b8e6a95d6d1@fedoraproject.org \
    --to=quantum.analyst@gmail.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox