diff --git a/.gitignore b/.gitignore index a87b763..f221992 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-3.10.0-with-freetype-2.13.1.tar.gz /matplotlib-3.10.3.tar.gz /matplotlib-3.10.3-with-freetype-2.13.1.tar.gz +/matplotlib-3.10.5.tar.gz diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index 0fe5e71..179afbc 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,18 +1,18 @@ -From 37007fd04ff67cf7c766aa6cd4fa9e564841cb17 Mon Sep 17 00:00:00 2001 +From fde17e6359d32d90abcebc39a464c3f559a3fbca Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 27 Sep 2017 19:35:59 -0400 Subject: [PATCH 1/5] matplotlibrc path search fix Signed-off-by: Elliott Sales de Andrade --- - lib/matplotlib/__init__.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) + lib/matplotlib/__init__.py | 2 ++ + 1 file changed, 2 insertions(+) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 5f964e0b34..f82d92466a 100644 +index 2786f9b7b9..79cccf0892 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -610,6 +610,7 @@ def matplotlib_fname(): +@@ -613,6 +613,7 @@ def matplotlib_fname(): is not defined) - On other platforms, - ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined @@ -20,7 +20,7 @@ index 5f964e0b34..f82d92466a 100644 - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always exist. """ -@@ -628,6 +629,7 @@ def matplotlib_fname(): +@@ -631,6 +632,7 @@ def matplotlib_fname(): yield matplotlibrc yield os.path.join(matplotlibrc, 'matplotlibrc') yield os.path.join(get_configdir(), 'matplotlibrc') @@ -29,5 +29,5 @@ index 5f964e0b34..f82d92466a 100644 for fname in gen_candidates(): -- -2.49.0 +2.50.0 diff --git a/0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch b/0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch index d6fb22c..b8588c9 100644 --- a/0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch +++ b/0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch @@ -1,4 +1,4 @@ -From 944d5021f46735045a69af1e57ff0bb0c43e7fbb Mon Sep 17 00:00:00 2001 +From 77bca4cb9812bb6d3abf4ad727c98e81b2952a15 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 14 Feb 2020 06:05:42 -0500 Subject: [PATCH 2/5] Set FreeType version to 2.13.1 and update tolerances @@ -28,10 +28,10 @@ index 5463183a90..c7233815af 100644 freetype_proj = subproject( f'freetype-@LOCAL_FREETYPE_VERSION@', diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index f82d92466a..c0551b5b5f 100644 +index 79cccf0892..3b81bf54bc 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -1361,7 +1361,7 @@ def _val_or_rc(val, rc_name): +@@ -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`. @@ -41,10 +41,10 @@ index f82d92466a..c0551b5b5f 100644 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 e3fc1ada99..28870ea736 100644 +index 159fc70282..b304186fc9 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -8065,7 +8065,7 @@ def test_normal_axes(): +@@ -8084,7 +8084,7 @@ def test_normal_axes(): ] for nn, b in enumerate(bbaxis): targetbb = mtransforms.Bbox.from_bounds(*target[nn]) @@ -53,7 +53,7 @@ index e3fc1ada99..28870ea736 100644 target = [ [150.0, 119.999, 930.0, 11.111], -@@ -8083,7 +8083,7 @@ def test_normal_axes(): +@@ -8102,7 +8102,7 @@ def test_normal_axes(): target = [85.5138, 75.88888, 1021.11, 1017.11] targetbb = mtransforms.Bbox.from_bounds(*target) @@ -94,10 +94,10 @@ index 6ba23bab34..0aee3222f1 100644 ]) 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 5e69044866..0b6413e97f 100644 +index eb3bfca7c2..c01be3aec0 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py -@@ -508,9 +508,9 @@ def test_figure_legend_outside(): +@@ -520,9 +520,9 @@ def test_figure_legend_outside(): fig.draw_without_rendering() assert_allclose(axs.get_window_extent().extents, @@ -110,7 +110,7 @@ index 5e69044866..0b6413e97f 100644 @image_comparison(['legend_stackplot.png'], diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py -index 87c8efe304..af5f2d2c6a 100644 +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(): @@ -123,5 +123,5 @@ index 87c8efe304..af5f2d2c6a 100644 @check_figures_equal(extensions=["png"]) -- -2.49.0 +2.50.0 diff --git a/0003-Unpin-meson-python-build-requirement.patch b/0003-Unpin-meson-python-build-requirement.patch index 00aea30..cb910d6 100644 --- a/0003-Unpin-meson-python-build-requirement.patch +++ b/0003-Unpin-meson-python-build-requirement.patch @@ -1,4 +1,4 @@ -From 814405dd99896a362bdd18b42e591d6594e59dcf Mon Sep 17 00:00:00 2001 +From 825d864d5210f5a67554b0e0c874ab997cd74676 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 13 Dec 2024 02:03:33 -0500 Subject: [PATCH 3/5] Unpin meson-python build requirement @@ -12,7 +12,7 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml -index e6d1abaf53..76755eec25 100644 +index 5666016f05..2cd1e1c758 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ requires-python = ">=3.10" @@ -34,5 +34,5 @@ index e6d1abaf53..76755eec25 100644 "setuptools_scm>=7", ] -- -2.49.0 +2.50.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 index 6d8f420..732da2f 100644 --- a/0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch +++ b/0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch @@ -1,4 +1,4 @@ -From 97f398b19278f450ffdcecf8443489ec981321a4 Mon Sep 17 00:00:00 2001 +From a91551b8de91535eef12752f95dfcb97aea8aed5 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 22 Aug 2022 18:43:28 -0400 Subject: [PATCH 4/5] Use old stride_windows implementation on 32-bit x86 @@ -80,5 +80,5 @@ index 8326ac186e..bdaa34b734 100644 resultY = resultY * window.reshape((-1, 1)) resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :] -- -2.49.0 +2.50.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 index 08756e6..cf81647 100644 --- a/0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch +++ b/0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch @@ -1,4 +1,4 @@ -From 236b1b8164088b2b9ac85b5d83e9d6cf41269935 Mon Sep 17 00:00:00 2001 +From ba6139686ff3c884aa2e6a5397c1f2f2cc951346 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Tue, 12 Nov 2024 01:05:25 -0500 Subject: [PATCH 5/5] Partially revert "TST: Fix minor issues in interactive @@ -12,7 +12,7 @@ Signed-off-by: Elliott Sales de Andrade 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 063c72e2cd..5dd53440f7 100644 +index 4e3c1bbc2b..903ae87cbb 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(): @@ -28,5 +28,5 @@ index 063c72e2cd..5dd53440f7 100644 @pytest.mark.parametrize("env", _get_testable_interactive_backends()) -- -2.49.0 +2.50.0 diff --git a/30101.patch b/30101.patch deleted file mode 100644 index a7f6a09..0000000 --- a/30101.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4b8e2a011804f44233e6973697c31a97075e78d4 Mon Sep 17 00:00:00 2001 -From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> -Date: Sat, 24 May 2025 02:01:41 +0200 -Subject: [PATCH] Backport PR #30096: Fix OffsetBox custom picker - ---- - lib/matplotlib/offsetbox.py | 4 +++- - lib/matplotlib/tests/test_offsetbox.py | 10 ++++++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py -index e987e969871a..f3b9bb7d5d2f 100644 ---- a/lib/matplotlib/offsetbox.py -+++ b/lib/matplotlib/offsetbox.py -@@ -1506,7 +1506,9 @@ def __init__(self, ref_artist, use_blit=False): - @staticmethod - def _picker(artist, mouseevent): - # A custom picker to prevent dragging on mouse scroll events -- return (artist.contains(mouseevent) and mouseevent.name != "scroll_event"), {} -+ if mouseevent.name == "scroll_event": -+ return False, {} -+ return artist.contains(mouseevent) - - # A property, not an attribute, to maintain picklability. - canvas = property(lambda self: self.ref_artist.get_figure(root=True).canvas) -diff --git a/lib/matplotlib/tests/test_offsetbox.py b/lib/matplotlib/tests/test_offsetbox.py -index b23a8da7dc05..57add85b110a 100644 ---- a/lib/matplotlib/tests/test_offsetbox.py -+++ b/lib/matplotlib/tests/test_offsetbox.py -@@ -460,3 +460,13 @@ def test_draggable_in_subfigure(): - fig.canvas.draw() # Texts are non-pickable until the first draw. - MouseEvent("button_press_event", fig.canvas, 1, 1)._process() - assert ann._draggable.got_artist -+ # Stop dragging the annotation. -+ MouseEvent("button_release_event", fig.canvas, 1, 1)._process() -+ assert not ann._draggable.got_artist -+ # A scroll event should not initiate a drag. -+ MouseEvent("scroll_event", fig.canvas, 1, 1)._process() -+ assert not ann._draggable.got_artist -+ # An event outside the annotation should not initiate a drag. -+ bbox = ann.get_window_extent() -+ MouseEvent("button_press_event", fig.canvas, bbox.x1+2, bbox.y1+2)._process() -+ assert not ann._draggable.got_artist diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 74d5739..82d3b18 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -38,7 +38,7 @@ %global ftver 2.13.1 Name: python-matplotlib -Version: 3.10.3 +Version: 3.10.5 %global Version %{version_no_tilde %{quote:%nil}} Release: %autorelease Summary: Python 2D plotting library @@ -65,12 +65,6 @@ 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 -# https://github.com/matplotlib/matplotlib/pull/29393 -Patch0004: python3.14.patch - -# https://github.com/matplotlib/matplotlib/pull/30096 -Patch0005: https://github.com/matplotlib/matplotlib/pull/30101.patch - BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-langpack-en diff --git a/python3.14.patch b/python3.14.patch deleted file mode 100644 index 5ca176f..0000000 --- a/python3.14.patch +++ /dev/null @@ -1,84 +0,0 @@ -From caf65e3e55bbf7d60712beb9053ee51a134608b0 Mon Sep 17 00:00:00 2001 -From: Thomas A Caswell -Date: Tue, 31 Dec 2024 15:08:31 -0500 -Subject: [PATCH] MNT: use copy.deepcopy to implement deepcopy method - -We provide deepcopy and copy methods as a shortcut for users to avoid having to -import the copy module and call the required function. Directly calling -`__deepcopy__` side-steps all of the memoization machinery and may lead to -incorrect results. ---- - lib/matplotlib/path.py | 20 ++++++++++++++++++-- - lib/matplotlib/transforms.py | 8 +++++++- - 2 files changed, 25 insertions(+), 3 deletions(-) - -diff --git a/lib/matplotlib/path.py b/lib/matplotlib/path.py -index 5f5a0f3..eac8cbd 100644 ---- a/lib/matplotlib/path.py -+++ b/lib/matplotlib/path.py -@@ -11,6 +11,7 @@ visualisation. - - import copy - from functools import lru_cache -+import sys - from weakref import WeakValueDictionary - - import numpy as np -@@ -282,11 +283,26 @@ class Path: - readonly, even if the source `Path` is. - """ - # Deepcopying arrays (vertices, codes) strips the writeable=False flag. -- p = copy.deepcopy(super(), memo) -+ if sys.version_info >= (3, 14): -+ from copy import _reconstruct, _keep_alive -+ rv = super().__reduce_ex__(4) -+ assert memo is not None -+ p = _reconstruct(self, memo, *rv) -+ if memo is not None: -+ memo[id(self)] = p -+ _keep_alive(self, memo) -+ -+ else: -+ p = copy.deepcopy(super(), memo) - p._readonly = False - return p - -- deepcopy = __deepcopy__ -+ def deepcopy(self, memo=None): -+ """ -+ Return a shallow copy of the `Path`, which will share the -+ vertices and codes with the source `Path`. -+ """ -+ return copy.deepcopy(self, memo=memo) - - @classmethod - def make_compound_path_from_polys(cls, XY): -diff --git a/lib/matplotlib/transforms.py b/lib/matplotlib/transforms.py -index 2934b0a..74d3c68 100644 ---- a/lib/matplotlib/transforms.py -+++ b/lib/matplotlib/transforms.py -@@ -38,6 +38,7 @@ of how to use transforms. - import copy - import functools - import itertools -+import sys - import textwrap - import weakref - import math -@@ -141,7 +142,12 @@ class TransformNode: - for k, v in self._parents.items() if v is not None} - - def __copy__(self): -- other = copy.copy(super()) -+ if sys.version_info >= (3, 14): -+ from copy import _reconstruct -+ rv = super().__reduce_ex__(4) -+ other = _reconstruct(self, None, *rv) -+ else: -+ other = copy.copy(super()) - # If `c = a + b; a1 = copy(a)`, then modifications to `a1` do not - # propagate back to `c`, i.e. we need to clear the parents of `a1`. - other._parents = {} --- -2.48.1 - diff --git a/sources b/sources index 14ce69a..f4bb4d9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.10.3.tar.gz) = c3027fa116f45a4a7d7ac8e7ce87f509a6604b283c39b74379e8d84a05df61283ddf4e79036c9b83b2dff13291b59945d26aeb7420873d3b275097817a12be72 +SHA512 (matplotlib-3.10.5.tar.gz) = 761388d0aad410b80179b3bb97d63b6a99d71338a0eb8801702f4a38f4a1a0fdecd8fbb6401e664d2f30a0256f412167c7c102fc494664c1837495572ebf3caa SHA512 (matplotlib-3.10.3-with-freetype-2.13.1.tar.gz) = bb32e57bbd341c652d03361e3785145a9e89f59709eb588882f81cba4061c8aa7250c0d46ed07a588d75a055d72bbc6126c59e8777634385a458287f6ef8812f