Compare commits

...

7 Commits
rawhide ... f42

Author SHA1 Message Date
Elliott Sales de Andrade
9ec656f711 Update to latest version (#2402615) 2026-01-06 20:18:56 -05:00
Elliott Sales de Andrade
4657ee6ac4 Reduce testing dependencies on i686 2026-01-06 19:28:17 -05:00
Elliott Sales de Andrade
36bb5d7fa0 Ignore test failures in GTK
It seems to incorrectly set the initial size, but that is fixed in F43,
so this is only done for F42 here.

[skip changelog]
2025-09-12 04:54:26 -04:00
Elliott Sales de Andrade
f2d972fa1d Update to latest version (#2385842) 2025-08-30 03:42:05 -04:00
Elliott Sales de Andrade
d0eaec2e00 Update to latest version (#2385842) 2025-07-31 21:53:04 -04:00
Elliott Sales de Andrade
492a599cee Backport fix for OffsetBox custom picker
- fixes rhbz#2367456
2025-05-30 22:45:07 -04:00
Elliott Sales de Andrade
3560f7bf0d Fix button images in toolmanager
This was reported upstream in https://github.com/matplotlib/matplotlib/issues/30116.
2025-05-28 01:47:06 -04:00
8 changed files with 137 additions and 32 deletions

3
.gitignore vendored
View File

@@ -119,3 +119,6 @@ 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
/matplotlib-3.10.6.tar.gz
/matplotlib-3.10.8.tar.gz

View File

@@ -1,18 +1,19 @@
From 37007fd04ff67cf7c766aa6cd4fa9e564841cb17 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
From 3c225cf3905d734a27df25e3a53a904a55f2904e 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
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
lib/matplotlib/__init__.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
lib/matplotlib/__init__.py | 5 ++++-
lib/matplotlib/backend_tools.py | 16 ++++++++--------
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 5f964e0b34..f82d92466a 100644
index 2786f9b7b9..64ba02afd6 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -590,7 +590,8 @@ def get_cachedir():
@@ -593,7 +593,8 @@ def get_cachedir():
@_logged_cached('matplotlib data path: %s')
def get_data_path():
"""Return the path to Matplotlib data."""
@@ -22,7 +23,7 @@ index 5f964e0b34..f82d92466a 100644
def matplotlib_fname():
@@ -610,6 +611,7 @@ def matplotlib_fname():
@@ -613,6 +614,7 @@ def matplotlib_fname():
is not defined)
- On other platforms,
- ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined
@@ -30,7 +31,7 @@ index 5f964e0b34..f82d92466a 100644
- Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always
exist.
"""
@@ -628,6 +630,7 @@ def matplotlib_fname():
@@ -631,6 +633,7 @@ def matplotlib_fname():
yield matplotlibrc
yield os.path.join(matplotlibrc, 'matplotlibrc')
yield os.path.join(get_configdir(), 'matplotlibrc')
@@ -38,6 +39,81 @@ index 5f964e0b34..f82d92466a 100644
yield os.path.join(get_data_path(), 'matplotlibrc')
for fname in gen_candidates():
diff --git a/lib/matplotlib/backend_tools.py b/lib/matplotlib/backend_tools.py
index 87ed794022..9d80539114 100644
--- a/lib/matplotlib/backend_tools.py
+++ b/lib/matplotlib/backend_tools.py
@@ -596,7 +596,7 @@ class ToolHome(ViewsPositionsBase):
"""Restore the original view limits."""
description = 'Reset original view'
- image = 'mpl-data/images/home'
+ image = '/usr/share/matplotlib/mpl-data/images/home'
default_keymap = property(lambda self: mpl.rcParams['keymap.home'])
_on_trigger = 'home'
@@ -605,7 +605,7 @@ class ToolBack(ViewsPositionsBase):
"""Move back up the view limits stack."""
description = 'Back to previous view'
- image = 'mpl-data/images/back'
+ image = '/usr/share/matplotlib/mpl-data/images/back'
default_keymap = property(lambda self: mpl.rcParams['keymap.back'])
_on_trigger = 'back'
@@ -614,7 +614,7 @@ class ToolForward(ViewsPositionsBase):
"""Move forward in the view lim stack."""
description = 'Forward to next view'
- image = 'mpl-data/images/forward'
+ image = '/usr/share/matplotlib/mpl-data/images/forward'
default_keymap = property(lambda self: mpl.rcParams['keymap.forward'])
_on_trigger = 'forward'
@@ -623,14 +623,14 @@ class ConfigureSubplotsBase(ToolBase):
"""Base tool for the configuration of subplots."""
description = 'Configure subplots'
- image = 'mpl-data/images/subplots'
+ image = '/usr/share/matplotlib/mpl-data/images/subplots'
class SaveFigureBase(ToolBase):
"""Base tool for figure saving."""
description = 'Save the figure'
- image = 'mpl-data/images/filesave'
+ image = '/usr/share/matplotlib/mpl-data/images/filesave'
default_keymap = property(lambda self: mpl.rcParams['keymap.save'])
@@ -705,7 +705,7 @@ class ToolZoom(ZoomPanBase):
"""A Tool for zooming using a rectangle selector."""
description = 'Zoom to rectangle'
- image = 'mpl-data/images/zoom_to_rect'
+ image = '/usr/share/matplotlib/mpl-data/images/zoom_to_rect'
default_keymap = property(lambda self: mpl.rcParams['keymap.zoom'])
cursor = cursors.SELECT_REGION
radio_group = 'default'
@@ -827,7 +827,7 @@ class ToolPan(ZoomPanBase):
default_keymap = property(lambda self: mpl.rcParams['keymap.pan'])
description = 'Pan axes with left mouse, zoom with right'
- image = 'mpl-data/images/move'
+ image = '/usr/share/matplotlib/mpl-data/images/move'
cursor = cursors.MOVE
radio_group = 'default'
@@ -891,7 +891,7 @@ class ToolPan(ZoomPanBase):
class ToolHelpBase(ToolBase):
description = 'Print tool list, shortcuts and description'
default_keymap = property(lambda self: mpl.rcParams['keymap.help'])
- image = 'mpl-data/images/help'
+ image = '/usr/share/matplotlib/mpl-data/images/help'
@staticmethod
def format_shortcut(key_sequence):
--
2.49.0
2.52.0

View File

@@ -1,4 +1,4 @@
From 944d5021f46735045a69af1e57ff0bb0c43e7fbb Mon Sep 17 00:00:00 2001
From 7b4e2945933049429d00d6f3900d2cdf992c80df 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.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 64ba02afd6..9fe5fb7abf 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -1361,7 +1361,7 @@ def _val_or_rc(val, rc_name):
@@ -1364,7 +1364,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.52.0

View File

@@ -1,4 +1,4 @@
From 814405dd99896a362bdd18b42e591d6594e59dcf Mon Sep 17 00:00:00 2001
From a05766154a8aa81691f3318b706d286bb87fb1c6 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 meson-python build requirement
@@ -12,10 +12,10 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index e6d1abaf53..76755eec25 100644
index 23c441b52c..f762c85d98 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -47,7 +47,7 @@ requires-python = ">=3.10"
@@ -48,7 +48,7 @@ requires-python = ">=3.10"
[project.optional-dependencies]
# Should be a copy of the build dependencies below.
dev = [
@@ -24,7 +24,7 @@ index e6d1abaf53..76755eec25 100644
"pybind11>=2.13.2,!=2.13.3",
"setuptools_scm>=7",
# Not required by us but setuptools_scm without a version, cso _if_
@@ -71,7 +71,7 @@ dev = [
@@ -72,7 +72,7 @@ dev = [
build-backend = "mesonpy"
# Also keep in sync with optional dependencies above.
requires = [
@@ -34,5 +34,5 @@ index e6d1abaf53..76755eec25 100644
"setuptools_scm>=7",
]
--
2.49.0
2.52.0

View File

@@ -1,4 +1,4 @@
From 97f398b19278f450ffdcecf8443489ec981321a4 Mon Sep 17 00:00:00 2001
From 9522bbb8e713e167581e705dc4f8c4364b05da2d 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
@@ -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.52.0

View File

@@ -1,4 +1,4 @@
From 236b1b8164088b2b9ac85b5d83e9d6cf41269935 Mon Sep 17 00:00:00 2001
From 5944097c27a6b65168a0287daeb9f7f9b8f9f7f3 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
@@ -12,7 +12,7 @@ Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
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..cb8c458d0d 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():
@@ -20,7 +20,7 @@ index 063c72e2cd..5dd53440f7 100644
fig.savefig(result_after, format='png')
- assert result.getvalue() == result_after.getvalue()
+ if 'qt' not in backend and 'wx' not in backend:
+ if 'qt' not in backend and 'wx' not in backend and 'gtk4' 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()
@@ -28,5 +28,5 @@ index 063c72e2cd..5dd53440f7 100644
@pytest.mark.parametrize("env", _get_testable_interactive_backends())
--
2.49.0
2.52.0

View File

@@ -38,7 +38,7 @@
%global ftver 2.13.1
Name: python-matplotlib
Version: 3.10.3
Version: 3.10.8
%global Version %{version_no_tilde %{quote:%nil}}
Release: %autorelease
Summary: Python 2D plotting library
@@ -71,20 +71,25 @@ BuildRequires: glibc-langpack-en
BuildRequires: freetype-devel
BuildRequires: libpng-devel
BuildRequires: qhull-devel
%ifnarch %{ix86}
BuildRequires: xwayland-run
%endif
BuildRequires: zlib-devel
%ifnarch %{ix86}
BuildRequires: ghostscript
# No ImageMagick for EL8/ELN/EL9
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
BuildRequires: ImageMagick
%endif
BuildRequires: inkscape
%endif
BuildRequires: font(dejavusans)
BuildRequires: font(notosanscjkjp)
BuildRequires: font(wenquanyizenhei)
%ifnarch %{ix86}
BuildRequires: texlive-collection-basic
BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-collection-latex
@@ -133,6 +138,7 @@ BuildRequires: tex(cmr10.tfm)
BuildRequires: tex(cmss10.tfm)
BuildRequires: tex(cmsy10.tfm)
BuildRequires: tex(cmtt10.tfm)
%endif
%description
Matplotlib is a Python 2D plotting library which produces publication
@@ -173,7 +179,9 @@ Obsoletes: python-matplotlib-data-fonts < 3
%package -n python3-matplotlib
Summary: Python 2D plotting library
BuildRequires: python3-devel
%ifnarch %{ix86}
BuildRequires: python3dist(pycairo)
%endif
BuildRequires: python3dist(pytz)
BuildRequires: python3dist(sphinx)
Requires: dejavu-sans-fonts
@@ -187,8 +195,10 @@ BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-rerunfailures)
BuildRequires: python3dist(pytest-timeout)
BuildRequires: python3dist(pytest-xdist)
%ifnarch %{ix86}
BuildRequires: python3dist(pikepdf)
%endif
%endif
%if %{without bundled_fonts}
Requires: stix-math-fonts
%else
@@ -209,8 +219,10 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-qt5
Summary: Qt5 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt5)
BuildRequires: qt5-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt5)
@@ -222,9 +234,11 @@ Obsoletes: python3-matplotlib-qt4 < 3.5.0-0
%package -n python3-matplotlib-qt6
Summary: Qt6 backend for python3-matplotlib
BuildRequires: python3dist(cairocffi)
%ifnarch %{ix86}
BuildRequires: python3dist(pyqt6)
BuildRequires: python3-pyqt6
BuildRequires: qt6-qtwayland
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(cairocffi)
Requires: python3dist(pyqt6)
@@ -234,9 +248,11 @@ Requires: python3dist(pyqt6)
%package -n python3-matplotlib-gtk3
Summary: GTK3 backend for python3-matplotlib
%ifnarch %{ix86}
# This should be converted to typelib(Gtk) when supported
BuildRequires: gtk3
BuildRequires: python3-gobject
%endif
Requires: gtk3%{?_isa}
Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -246,9 +262,11 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-gtk4
Summary: GTK4 backend for python3-matplotlib
%ifnarch %{ix86}
# This should be converted to typelib(Gtk) when supported
BuildRequires: gtk4
BuildRequires: python3-gobject
%endif
Requires: gtk4%{?_isa}
Requires: python3-gobject%{?_isa}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
@@ -258,8 +276,10 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
%package -n python3-matplotlib-tk
Summary: Tk backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3-pillow-tk
BuildRequires: python3-tkinter
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3-pillow-tk
Requires: python3-tkinter
@@ -270,7 +290,9 @@ Requires: python3-tkinter
%if %{with wx}
%package -n python3-matplotlib-wx
Summary: WX backend for python3-matplotlib
%ifnarch %{ix86}
BuildRequires: python3dist(wxpython)
%endif
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
Requires: python3dist(wxpython)
@@ -356,12 +378,14 @@ rm -rf %{buildroot}%{_datadir}/matplotlib/mpl-data/fonts
# These files confuse pytest, and we want to test the installed copy.
rm -rf build*/
%ifnarch %{ix86}
# We need to prime this LaTeX cache stuff, or it might fail while running tests
# in parallel.
mktexfmt latex.fmt
mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt
%endif
# Also prime the font cache.
%{py3_test_envvars} %{python3} -c 'import matplotlib.font_manager'
@@ -376,6 +400,7 @@ env MPLCONFIGDIR=$PWD \
%{pytest} -ra -n auto \
-m 'not network' -k "${k-}" \
--pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d
%ifnarch %{ix86}
# Skip GTK3Cairo tests that are broken in virtual display.
k="${k-}${k+ and }not (test_interactive_thread_safety and gtk3cairo)"
k="${k-}${k+ and }not (test_interactive_timers and gtk3cairo)"
@@ -390,6 +415,7 @@ xwfb-run -- env MPLCONFIGDIR=$PWD \
-m 'not network' -k "${k-}" \
--pyargs matplotlib.tests.test_backend_gtk3 matplotlib.tests.test_backend_qt matplotlib.tests.test_backend_tk matplotlib.tests.test_backends_interactive
%endif
%endif
%files -n python3-matplotlib-data

View File

@@ -1,2 +1,2 @@
SHA512 (matplotlib-3.10.3.tar.gz) = c3027fa116f45a4a7d7ac8e7ce87f509a6604b283c39b74379e8d84a05df61283ddf4e79036c9b83b2dff13291b59945d26aeb7420873d3b275097817a12be72
SHA512 (matplotlib-3.10.8.tar.gz) = 66d07fb0b13821e88f6e6fe9f9882542340c074198dce7d5f8bf5d65d1c64326ae7517ad38d6357491c54aedd8cd1b03f555ad6d9337754db5dbd43c6305ab3f
SHA512 (matplotlib-3.10.3-with-freetype-2.13.1.tar.gz) = bb32e57bbd341c652d03361e3785145a9e89f59709eb588882f81cba4061c8aa7250c0d46ed07a588d75a055d72bbc6126c59e8777634385a458287f6ef8812f