From b5a125ff69dc69b86eeaee0ea96b8894b1f6ea4d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 03:15:12 +0000 Subject: [PATCH 01/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 65d146772c9b96beaf15c623bba1c4a311d2c783 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 06:36:39 +0000 Subject: [PATCH 02/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From cb921b4252cd1c63ff452e8fd01f24f414abdde5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 29 Jan 2024 11:11:21 +0000 Subject: [PATCH 03/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c26fa011b2aedcdde7b0ce5a0400415d0a9a45d1 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 14 Mar 2024 06:07:40 -0400 Subject: [PATCH 04/11] Update to latest version (#2264330) --- .gitignore | 2 ++ python-matplotlib.spec | 4 ++-- sources | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0fa2157..3889a9d 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,5 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-3.8.1.tar.gz /matplotlib-3.8.1-with-freetype-2.13.1.tar.gz /matplotlib-3.8.2.tar.gz +/matplotlib-3.8.3.tar.gz +/matplotlib-3.8.3-with-freetype-2.13.1.tar.gz diff --git a/python-matplotlib.spec b/python-matplotlib.spec index b27dfaa..b501b46 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -30,13 +30,13 @@ %global _docdir_fmt %{name} # Updated test images for new FreeType. -%global mpl_images_version 3.8.1 +%global mpl_images_version 3.8.3 # The version of FreeType in this Fedora branch. %global ftver 2.13.1 Name: python-matplotlib -Version: 3.8.2 +Version: 3.8.3 %global Version %{version_no_tilde %{quote:%nil}} Release: %autorelease Summary: Python 2D plotting library diff --git a/sources b/sources index f445446..262e706 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.8.2.tar.gz) = 4336ca9799bb03fc2f885e35889ad1c62412f7d7b6aa8e284049f75d1166d2f6753c27cf827f0e7f0bb461d3707ccf63a3172ed82f26ec413c0a6578791f957b -SHA512 (matplotlib-3.8.1-with-freetype-2.13.1.tar.gz) = 724802e6e4ecc4c8e36b858da5039a2906a2303b5131780950733eb1965e89fbbce131566b79f533fc1bd185c95e5d50ea3ba24be4ee9b79c073056fe7b3f0dc +SHA512 (matplotlib-3.8.3.tar.gz) = 457d1d62b76752938a24780c697461949de00d779df55df122d789f9ebef154edda037f2a804241880a0b442c5fa8139b8ab13054898b8e08fd17a56bdc23312 +SHA512 (matplotlib-3.8.3-with-freetype-2.13.1.tar.gz) = 72b207fac6539cf9e64706cbd61be4bf2349be8d5f66083db1f014cdbdf049c48f2ce17a67ac0e646f668818cff6ffa9053fc31f2c2f4bc3f8e9f70272146d8f From 1d44751f59067b3d97ca218405b4307a24905711 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 14 Mar 2024 17:41:05 -0400 Subject: [PATCH 05/11] Fix SPDX license expression --- python-matplotlib.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-matplotlib.spec b/python-matplotlib.spec index b501b46..31465aa 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -42,7 +42,7 @@ Release: %autorelease Summary: Python 2D plotting library # qt_editor backend is MIT # ResizeObserver at end of lib/matplotlib/backends/web_backend/js/mpl.js is CC0 -License: PSF-2.0 and MIT and CC0-1.0 +License: PSF-2.0 AND MIT AND CC0-1.0 URL: https://matplotlib.org Source0: %pypi_source matplotlib %{Version} Source1: mplsetup.cfg From 97d2c5437b44d705672c2ef22f60d95123ca7854 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 4 Apr 2024 02:52:09 -0400 Subject: [PATCH 06/11] Update to latest version (#2273293) --- .gitignore | 1 + 0001-matplotlibrc-path-search-fix.patch | 4 +-- 0002-Unpin-NumPy-build-requirement.patch | 33 ++++++++++++------- ...sion-to-2.13.1-and-update-tolerances.patch | 14 ++++---- ...windows-implementation-on-32-bit-x86.patch | 4 +-- ...e-some-tolerances-for-non-x86-arches.patch | 8 ++--- python-matplotlib.spec | 2 +- sources | 2 +- 8 files changed, 40 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 3889a9d..4beb23f 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-3.8.2.tar.gz /matplotlib-3.8.3.tar.gz /matplotlib-3.8.3-with-freetype-2.13.1.tar.gz +/matplotlib-3.8.4.tar.gz diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index eaa9bd6..170cd01 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,4 +1,4 @@ -From a035d73964343cbba0daad79b9349153a51af56a Mon Sep 17 00:00:00 2001 +From ce0e47a95ec43750080afa889b35ec26106a6a47 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 @@ -39,5 +39,5 @@ index 353406832c..26dd9372e1 100644 for fname in gen_candidates(): -- -2.41.0 +2.43.0 diff --git a/0002-Unpin-NumPy-build-requirement.patch b/0002-Unpin-NumPy-build-requirement.patch index 65a283f..f471bf4 100644 --- a/0002-Unpin-NumPy-build-requirement.patch +++ b/0002-Unpin-NumPy-build-requirement.patch @@ -1,4 +1,4 @@ -From 789bb69a3175c6ecc03449128d72cac63522d98f Mon Sep 17 00:00:00 2001 +From 05484ecf85b7f9ca67da454a4147098023626a81 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 11 Aug 2023 02:36:06 -0400 Subject: [PATCH 2/5] Unpin NumPy build requirement @@ -9,22 +9,33 @@ run against a version different from the one it was built against. Signed-off-by: Elliott Sales de Andrade --- - pyproject.toml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + pyproject.toml | 13 +------------ + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/pyproject.toml b/pyproject.toml -index 7131609c63..e76ec736d7 100644 +index 44f56d8cc1..33ce124527 100644 --- a/pyproject.toml +++ b/pyproject.toml -@@ -2,7 +2,7 @@ - build-backend = "setuptools.build_meta" - requires = [ - "certifi>=2020.06.20", -- "numpy>=1.25", -+ "numpy", +@@ -5,18 +5,7 @@ requires = [ "pybind11>=2.6", "setuptools>=64", "setuptools_scm>=7", +- +- # Comments on numpy build requirement range: +- # +- # 1. >=2.0.x is the numpy requirement for wheel builds for distribution +- # on PyPI - building against 2.x yields wheels that are also +- # ABI-compatible with numpy 1.x at runtime. +- # 2. Note that building against numpy 1.x works fine too - users and +- # redistributors can do this by installing the numpy version they like +- # and disabling build isolation. +- # 3. The <2.3 upper bound is for matching the numpy deprecation policy, +- # it should not be loosened. +- "numpy>=2.0.0rc1,<2.3", ++ "numpy", + ] + + [tool.setuptools_scm] -- -2.41.0 +2.43.0 diff --git a/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch b/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch index 453effe..abbe775 100644 --- a/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch +++ b/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch @@ -1,4 +1,4 @@ -From a5490ca593e1515bddbc96491efd8d1ff5e372d6 Mon Sep 17 00:00:00 2001 +From 1bbba2045f0722ccd97513037d49f2f656e349df Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 14 Feb 2020 06:05:42 -0500 Subject: [PATCH 3/5] Set FreeType version to 2.13.1 and update tolerances @@ -29,10 +29,10 @@ index 26dd9372e1..81b77d455f 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 6c5dd712b7..0a70c37891 100644 +index 0372747009..9cee2dbd41 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -7623,7 +7623,7 @@ def test_normal_axes(): +@@ -7642,7 +7642,7 @@ def test_normal_axes(): ] for nn, b in enumerate(bbaxis): targetbb = mtransforms.Bbox.from_bounds(*target[nn]) @@ -41,7 +41,7 @@ index 6c5dd712b7..0a70c37891 100644 target = [ [150.0, 119.999, 930.0, 11.111], -@@ -7641,7 +7641,7 @@ def test_normal_axes(): +@@ -7660,7 +7660,7 @@ def test_normal_axes(): target = [85.5138, 75.88888, 1021.11, 1017.11] targetbb = mtransforms.Bbox.from_bounds(*target) @@ -51,7 +51,7 @@ index 6c5dd712b7..0a70c37891 100644 # 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 a866916c58..a746cc2ca9 100644 +index 8a83515f16..26bc9d6c48 100644 --- a/lib/matplotlib/tests/test_backend_pgf.py +++ b/lib/matplotlib/tests/test_backend_pgf.py @@ -165,7 +165,7 @@ def test_pathclip(): @@ -118,7 +118,7 @@ index 759ac6aada..8140d4d69f 100644 @image_comparison(['legend_stackplot.png']) diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py -index 9d6e78da2c..5f6ed538d1 100644 +index 9a1c6be6fc..7df88e96b4 100644 --- a/lib/matplotlib/tests/test_polar.py +++ b/lib/matplotlib/tests/test_polar.py @@ -321,7 +321,7 @@ def test_get_tightbbox_polar(): @@ -198,5 +198,5 @@ index 9f78d88c87..6dc740e8f7 100644 def do_custom_build(self, env): # We're using a system freetype -- -2.41.0 +2.43.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 8aa0ba0..5f99162 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 88d4c6305161338ecb1f095c92ad7c6920ac5697 Mon Sep 17 00:00:00 2001 +From 59c900f49d605c1300c4bdaef23c94ad32a07e29 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 1948e6333e..158417a1c0 100644 resultY = resultY * window.reshape((-1, 1)) resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :] -- -2.41.0 +2.43.0 diff --git a/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch b/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch index 1277dee..2c2c672 100644 --- a/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch +++ b/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch @@ -1,4 +1,4 @@ -From c3b9e1f09d8b061db4810640afb4b92f0cc25aaf Mon Sep 17 00:00:00 2001 +From f6edb2b275f8fb4daa047df0b12008eac53306f0 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 11 Aug 2023 05:13:38 -0400 Subject: [PATCH 5/5] TST: Increase some tolerances for non-x86 arches @@ -9,10 +9,10 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py -index 9cebc8a33e..080f17ac81 100644 +index b3fcffcc6e..f400312859 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py -@@ -2249,7 +2249,7 @@ def test_scatter_masked_color(): +@@ -2264,7 +2264,7 @@ def test_scatter_masked_color(): len(super(type(path3d), path3d).get_facecolors()) @@ -22,5 +22,5 @@ index 9cebc8a33e..080f17ac81 100644 fig = plt.figure() ax = fig.add_subplot(projection='3d') -- -2.41.0 +2.43.0 diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 31465aa..178e655 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -36,7 +36,7 @@ %global ftver 2.13.1 Name: python-matplotlib -Version: 3.8.3 +Version: 3.8.4 %global Version %{version_no_tilde %{quote:%nil}} Release: %autorelease Summary: Python 2D plotting library diff --git a/sources b/sources index 262e706..5d4bd21 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.8.3.tar.gz) = 457d1d62b76752938a24780c697461949de00d779df55df122d789f9ebef154edda037f2a804241880a0b442c5fa8139b8ab13054898b8e08fd17a56bdc23312 +SHA512 (matplotlib-3.8.4.tar.gz) = d4c6a5b3484927dbae1b1203e9984b67d08c958c4a5136abaa805f1eb221146fb1211e5f20456e281d41fc09c94917a796ffacfdb185c58eeeb6d19e60c78b1a SHA512 (matplotlib-3.8.3-with-freetype-2.13.1.tar.gz) = 72b207fac6539cf9e64706cbd61be4bf2349be8d5f66083db1f014cdbdf049c48f2ce17a67ac0e646f668818cff6ffa9053fc31f2c2f4bc3f8e9f70272146d8f From aff8846c806c5f52e445f79accc716058a44f1e9 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 17 May 2024 01:06:08 -0400 Subject: [PATCH 07/11] Update to latest version (#2274216) --- .gitignore | 2 + 0001-matplotlibrc-path-search-fix.patch | 14 +- 0002-Unpin-NumPy-build-requirement.patch | 14 +- ...sion-to-2.13.1-and-update-tolerances.patch | 137 +++++++----------- ...windows-implementation-on-32-bit-x86.patch | 8 +- ...e-some-tolerances-for-non-x86-arches.patch | 26 ---- mplsetup.cfg | 8 - python-matplotlib.spec | 36 ++--- sources | 4 +- 9 files changed, 94 insertions(+), 155 deletions(-) delete mode 100644 0005-TST-Increase-some-tolerances-for-non-x86-arches.patch delete mode 100644 mplsetup.cfg diff --git a/.gitignore b/.gitignore index 4beb23f..e9e9d42 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,5 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-3.8.3.tar.gz /matplotlib-3.8.3-with-freetype-2.13.1.tar.gz /matplotlib-3.8.4.tar.gz +/matplotlib-3.9.0.tar.gz +/matplotlib-3.9.0-with-freetype-2.13.1.tar.gz diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index 170cd01..5ba6270 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,7 +1,7 @@ -From ce0e47a95ec43750080afa889b35ec26106a6a47 Mon Sep 17 00:00:00 2001 +From 7aa7b4d240236c0660be400a7a9ef7d5837e6d47 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 +Subject: [PATCH 1/4] matplotlibrc path search fix Signed-off-by: Elliott Sales de Andrade --- @@ -9,10 +9,10 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 353406832c..26dd9372e1 100644 +index 9e9325a27d..346e3d3454 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -582,7 +582,8 @@ def get_cachedir(): +@@ -586,7 +586,8 @@ def get_cachedir(): @_logged_cached('matplotlib data path: %s') def get_data_path(): """Return the path to Matplotlib data.""" @@ -22,7 +22,7 @@ index 353406832c..26dd9372e1 100644 def matplotlib_fname(): -@@ -602,6 +603,7 @@ def matplotlib_fname(): +@@ -606,6 +607,7 @@ def matplotlib_fname(): is not defined) - On other platforms, - ``$HOME/.matplotlib/matplotlibrc`` if ``$HOME`` is defined @@ -30,7 +30,7 @@ index 353406832c..26dd9372e1 100644 - Lastly, it looks in ``$MATPLOTLIBDATA/matplotlibrc``, which should always exist. """ -@@ -620,6 +622,7 @@ def matplotlib_fname(): +@@ -624,6 +626,7 @@ def matplotlib_fname(): yield matplotlibrc yield os.path.join(matplotlibrc, 'matplotlibrc') yield os.path.join(get_configdir(), 'matplotlibrc') @@ -39,5 +39,5 @@ index 353406832c..26dd9372e1 100644 for fname in gen_candidates(): -- -2.43.0 +2.44.0 diff --git a/0002-Unpin-NumPy-build-requirement.patch b/0002-Unpin-NumPy-build-requirement.patch index f471bf4..0f536ac 100644 --- a/0002-Unpin-NumPy-build-requirement.patch +++ b/0002-Unpin-NumPy-build-requirement.patch @@ -1,7 +1,7 @@ -From 05484ecf85b7f9ca67da454a4147098023626a81 Mon Sep 17 00:00:00 2001 +From 6caae8127c121be0ad36e0e7b47518519543dffd Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 11 Aug 2023 02:36:06 -0400 -Subject: [PATCH 2/5] Unpin NumPy build requirement +Subject: [PATCH 2/4] Unpin NumPy build requirement This is so high simply to take advantage of the new backwards-compatibility guarantee in NumPy 1.25, but Fedora will never @@ -13,12 +13,12 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/pyproject.toml b/pyproject.toml -index 44f56d8cc1..33ce124527 100644 +index fe75b325dc..4c34fa395f 100644 --- a/pyproject.toml +++ b/pyproject.toml -@@ -5,18 +5,7 @@ requires = [ +@@ -75,18 +75,7 @@ requires = [ + "meson-python>=0.13.1", "pybind11>=2.6", - "setuptools>=64", "setuptools_scm>=7", - - # Comments on numpy build requirement range: @@ -35,7 +35,7 @@ index 44f56d8cc1..33ce124527 100644 + "numpy", ] - [tool.setuptools_scm] + [tool.meson-python.args] -- -2.43.0 +2.44.0 diff --git a/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch b/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch index abbe775..d8a3a14 100644 --- a/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch +++ b/0003-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch @@ -1,38 +1,51 @@ -From 1bbba2045f0722ccd97513037d49f2f656e349df Mon Sep 17 00:00:00 2001 +From d2ce17b7096e9f83f9ba4ac37052fe5d2e07f223 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 14 Feb 2020 06:05:42 -0500 -Subject: [PATCH 3/5] Set FreeType version to 2.13.1 and update tolerances +Subject: [PATCH 3/4] Set FreeType version to 2.13.1 and update tolerances Signed-off-by: Elliott Sales de Andrade --- - lib/matplotlib/__init__.py | 2 +- - lib/matplotlib/tests/test_axes.py | 4 ++-- - lib/matplotlib/tests/test_backend_pgf.py | 2 +- - .../tests/test_constrainedlayout.py | 10 ++++----- - lib/matplotlib/tests/test_legend.py | 4 ++-- - lib/matplotlib/tests/test_polar.py | 2 +- - lib/matplotlib/tests/test_tightlayout.py | 10 ++++----- - setupext.py | 21 +++++++++++++++++-- - 8 files changed, 36 insertions(+), 19 deletions(-) + 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_constrainedlayout.py | 10 +++++----- + lib/matplotlib/tests/test_legend.py | 4 ++-- + lib/matplotlib/tests/test_polar.py | 2 +- + lib/matplotlib/tests/test_tightlayout.py | 10 +++++----- + 8 files changed, 18 insertions(+), 18 deletions(-) +diff --git a/extern/meson.build b/extern/meson.build +index 662feb7872..df42b908af 100644 +--- a/extern/meson.build ++++ b/extern/meson.build +@@ -14,7 +14,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.13.1' + + freetype_proj = subproject( + f'freetype-@LOCAL_FREETYPE_VERSION@', diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py -index 26dd9372e1..81b77d455f 100644 +index 346e3d3454..ebf5818417 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -1307,7 +1307,7 @@ def _val_or_rc(val, rc_name): +@@ -1313,7 +1313,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 `setupext.py` + # 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.13.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 0372747009..9cee2dbd41 100644 +index 0ed5a11c13..ee220f1854 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -7642,7 +7642,7 @@ def test_normal_axes(): +@@ -7714,7 +7714,7 @@ def test_normal_axes(): ] for nn, b in enumerate(bbaxis): targetbb = mtransforms.Bbox.from_bounds(*target[nn]) @@ -41,7 +54,7 @@ index 0372747009..9cee2dbd41 100644 target = [ [150.0, 119.999, 930.0, 11.111], -@@ -7660,7 +7660,7 @@ def test_normal_axes(): +@@ -7732,7 +7732,7 @@ def test_normal_axes(): target = [85.5138, 75.88888, 1021.11, 1017.11] targetbb = mtransforms.Bbox.from_bounds(*target) @@ -64,10 +77,10 @@ index 8a83515f16..26bc9d6c48 100644 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_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py -index 6703dfe315..ea6a8d9630 100644 +index 4dc4d9501e..47a4e80bb5 100644 --- a/lib/matplotlib/tests/test_constrainedlayout.py +++ b/lib/matplotlib/tests/test_constrainedlayout.py -@@ -432,7 +432,7 @@ def test_hidden_axes(): +@@ -435,7 +435,7 @@ def test_hidden_axes(): extents1 = np.copy(axs[0, 0].get_position().extents) np.testing.assert_allclose( @@ -76,7 +89,7 @@ index 6703dfe315..ea6a8d9630 100644 def test_colorbar_align(): -@@ -638,9 +638,9 @@ def test_compressed1(): +@@ -641,9 +641,9 @@ def test_compressed1(): fig.draw_without_rendering() pos = axs[0, 0].get_position() @@ -88,7 +101,7 @@ index 6703dfe315..ea6a8d9630 100644 # wider than tall fig, axs = plt.subplots(2, 3, layout='compressed', -@@ -653,10 +653,10 @@ def test_compressed1(): +@@ -656,10 +656,10 @@ def test_compressed1(): pos = axs[0, 0].get_position() np.testing.assert_allclose(pos.x0, 0.06195, atol=1e-3) @@ -102,10 +115,10 @@ index 6703dfe315..ea6a8d9630 100644 @pytest.mark.parametrize('arg, state', [ diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py -index 759ac6aada..8140d4d69f 100644 +index 0353f1408b..f5b341daaa 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py -@@ -516,9 +516,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, @@ -116,9 +129,9 @@ index 759ac6aada..8140d4d69f 100644 + legbb[nn], rtol=1) - @image_comparison(['legend_stackplot.png']) + @image_comparison(['legend_stackplot.png'], diff --git a/lib/matplotlib/tests/test_polar.py b/lib/matplotlib/tests/test_polar.py -index 9a1c6be6fc..7df88e96b4 100644 +index 6b3c08d2eb..5160112e37 100644 --- a/lib/matplotlib/tests/test_polar.py +++ b/lib/matplotlib/tests/test_polar.py @@ -321,7 +321,7 @@ def test_get_tightbbox_polar(): @@ -131,72 +144,28 @@ index 9a1c6be6fc..7df88e96b4 100644 @check_figures_equal(extensions=["png"]) diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py -index 968f0da7b5..89caa81b98 100644 +index 9c654f4d1f..9678e34a80 100644 --- a/lib/matplotlib/tests/test_tightlayout.py +++ b/lib/matplotlib/tests/test_tightlayout.py -@@ -173,12 +173,12 @@ def test_outward_ticks(): - plt.tight_layout() +@@ -174,13 +174,13 @@ def test_outward_ticks(): # These values were obtained after visual checking that they correspond # to a tight layouting that did take the ticks into account. -- ans = [[[0.091, 0.607], [0.433, 0.933]], -- [[0.579, 0.607], [0.922, 0.933]], -- [[0.091, 0.140], [0.433, 0.466]], -- [[0.579, 0.140], [0.922, 0.466]]] -+ ans = [[[0.09, 0.61], [0.43, 0.93]], -+ [[0.58, 0.61], [0.92, 0.93]], -+ [[0.09, 0.14], [0.43, 0.47]], -+ [[0.58, 0.14], [0.92, 0.47]]] + expected = [ +- [[0.091, 0.607], [0.433, 0.933]], +- [[0.579, 0.607], [0.922, 0.933]], +- [[0.091, 0.140], [0.433, 0.466]], +- [[0.579, 0.140], [0.922, 0.466]], ++ [[0.09, 0.61], [0.43, 0.93]], ++ [[0.58, 0.61], [0.92, 0.93]], ++ [[0.09, 0.14], [0.43, 0.47]], ++ [[0.58, 0.14], [0.92, 0.47]], + ] for nn, ax in enumerate(fig.axes): - assert_array_equal(np.round(ax.get_position().get_points(), 3), + assert_array_equal(np.round(ax.get_position().get_points(), 2), - ans[nn]) + expected[nn]) -diff --git a/setupext.py b/setupext.py -index 9f78d88c87..6dc740e8f7 100644 ---- a/setupext.py -+++ b/setupext.py -@@ -176,14 +176,30 @@ _freetype_hashes = { - '955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a', - '2.10.1': - '3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110', -+ '2.10.2': -+ 'e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab', -+ '2.10.3': -+ '9dfb4e11efd6e460a87b1991a64bc69344ee7dc219d9b29e7faabc1c168ce8b0', -+ '2.10.4': -+ '5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac', -+ '2.11.0': -+ 'a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f', - '2.11.1': -- 'f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b' -+ 'f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b', -+ '2.12.0': -+ '7940a46eeb0255baaa87c553d72778c4f8daa2b8888c8e2a05766a2a8686740c', -+ '2.12.1': -+ 'efe71fd4b8246f1b0b1b9bfca13cfff1c9ad85930340c27df469733bbb620938', -+ '2.13.0': -+ 'a7aca0e532a276ea8d85bd31149f0a74c33d19c8d287116ef8f5f8357b4f1f80', -+ '2.13.1': -+ '0b109c59914f25b4411a8de2a506fdd18fa8457eb86eca6c7b15c19110a92fa5', - } - # This is the version of FreeType to use when building a local version. It - # must match the value in lib/matplotlib.__init__.py, and the cache path in - # `.circleci/config.yml`. Also update the docs in - # `docs/devel/dependencies.rst`. --TESTING_VERSION_OF_FREETYPE = '2.6.1' -+TESTING_VERSION_OF_FREETYPE = '2.13.1' - if sys.platform.startswith('win') and platform.machine() == 'ARM64': - # older versions of freetype are not supported for win/arm64 - # Matplotlib tests will not pass -@@ -599,6 +615,7 @@ class FreeType(SetupPackage): - name = ext.name.split('.')[-1] - ext.extra_link_args.append( - f'-Wl,-exported_symbol,_PyInit_{name}') -+ ext.libraries.append('brotlidec') - - def do_custom_build(self, env): - # We're using a system freetype -- -2.43.0 +2.44.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 5f99162..56a4743 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,7 +1,7 @@ -From 59c900f49d605c1300c4bdaef23c94ad32a07e29 Mon Sep 17 00:00:00 2001 +From 0aecbcfd5fd12c79f1f71998be9f86fc4108d91d 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 +Subject: [PATCH 4/4] Use old stride_windows implementation on 32-bit x86 Signed-off-by: Elliott Sales de Andrade --- @@ -9,7 +9,7 @@ Signed-off-by: Elliott Sales de Andrade 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/mlab.py b/lib/matplotlib/mlab.py -index 1948e6333e..158417a1c0 100644 +index e1f08c0da5..5c0d56c74d 100644 --- a/lib/matplotlib/mlab.py +++ b/lib/matplotlib/mlab.py @@ -49,6 +49,7 @@ Spectral functions @@ -80,5 +80,5 @@ index 1948e6333e..158417a1c0 100644 resultY = resultY * window.reshape((-1, 1)) resultY = np.fft.fft(resultY, n=pad_to, axis=0)[:numFreqs, :] -- -2.43.0 +2.44.0 diff --git a/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch b/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch deleted file mode 100644 index 2c2c672..0000000 --- a/0005-TST-Increase-some-tolerances-for-non-x86-arches.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f6edb2b275f8fb4daa047df0b12008eac53306f0 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Fri, 11 Aug 2023 05:13:38 -0400 -Subject: [PATCH 5/5] TST: Increase some tolerances for non-x86 arches - -Signed-off-by: Elliott Sales de Andrade ---- - lib/mpl_toolkits/mplot3d/tests/test_axes3d.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py -index b3fcffcc6e..f400312859 100644 ---- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py -+++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py -@@ -2264,7 +2264,7 @@ def test_scatter_masked_color(): - len(super(type(path3d), path3d).get_facecolors()) - - --@mpl3d_image_comparison(['surface3d_zsort_inf.png'], style='mpl20') -+@mpl3d_image_comparison(['surface3d_zsort_inf.png'], style='mpl20', tol=0.055) - def test_surface3d_zsort_inf(): - fig = plt.figure() - ax = fig.add_subplot(projection='3d') --- -2.43.0 - diff --git a/mplsetup.cfg b/mplsetup.cfg deleted file mode 100644 index 362e6ab..0000000 --- a/mplsetup.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[libs] -system_freetype = True -system_qhull = True - -[packages] -tests = True -toolkits = True -toolkits_tests = True diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 178e655..999d600 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -26,17 +26,19 @@ % endif %endif +%global build_backend_args -Csetup-args="-Dsystem-freetype=true" -Csetup-args="-Dsystem-qhull=true" -Cinstall-args="--tags=data,python-runtime,runtime,tests" + # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name} # Updated test images for new FreeType. -%global mpl_images_version 3.8.3 +%global mpl_images_version 3.9.0 # The version of FreeType in this Fedora branch. %global ftver 2.13.1 Name: python-matplotlib -Version: 3.8.4 +Version: 3.9.0 %global Version %{version_no_tilde %{quote:%nil}} Release: %autorelease Summary: Python 2D plotting library @@ -45,7 +47,6 @@ Summary: Python 2D plotting library License: PSF-2.0 AND MIT AND CC0-1.0 URL: https://matplotlib.org Source0: %pypi_source matplotlib %{Version} -Source1: mplsetup.cfg # Fedora-specific patches; see: # https://github.com/fedora-python/matplotlib/tree/fedora-patches @@ -60,9 +61,8 @@ Patch1003: 0003-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patc # https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888 Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch -# https://github.com/matplotlib/matplotlib/pull/26502 -Patch0002: 0005-TST-Increase-some-tolerances-for-non-x86-arches.patch +BuildRequires: ipython BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-langpack-en @@ -220,6 +220,7 @@ Obsoletes: python3-matplotlib-qt4 < 3.5.0-0 Summary: Qt6 backend for python3-matplotlib BuildRequires: python3dist(cairocffi) BuildRequires: python3dist(pyqt6) +BuildRequires: python3-pyqt6 Requires: python3-matplotlib%{?_isa} = %{version}-%{release} Requires: python3dist(cairocffi) Requires: python3dist(pyqt6) @@ -303,22 +304,19 @@ Requires: python3-matplotlib%{?_isa} = %{version}-%{release} # Updated test images for new FreeType. gzip -dc %SOURCE1000 | tar xf - --transform='s~^mpl-images-%{mpl_images_version}-with-freetype-%{ftver}/~~' -# Copy mplsetup.cfg to the builddir -cp -p %{SOURCE1} mplsetup.cfg - # Backports or reported upstream %autopatch -p1 -M 999 %generate_buildrequires -%pyproject_buildrequires -r +%pyproject_buildrequires -w %build_backend_args %build %set_build_flags export http_proxy=http://127.0.0.1/ -MPLCONFIGDIR=$PWD %pyproject_wheel +MPLCONFIGDIR=$PWD %pyproject_wheel %build_backend_args %if %{with html} # Need to make built matplotlib libs available for the sphinx extensions: MPLCONFIGDIR=$PWD \ @@ -336,7 +334,6 @@ export http_proxy=http://127.0.0.1/ MPLCONFIGDIR=$PWD %pyproject_install # Delete unnecessary files. -rm %{buildroot}%{python3_sitearch}/matplotlib/backends/web_backend/.{eslintrc.js,prettierignore,prettierrc} rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/.gitignore rm %{buildroot}%{python3_sitearch}/matplotlib/tests/tinypages/_static/.gitignore @@ -364,17 +361,22 @@ mktexfmt xelatex.fmt %{py3_test_envvars} %{python3} -c 'import matplotlib.font_manager' export http_proxy=http://127.0.0.1/ -# Skips: -# * test_invisible_Line_rendering: Checks for "slowness" that often fails on a -# heavily-loaded builder. -# * test_form_widget_get_with_datetime_and_date_fields is flaky. + +# This test checks for "slowness" that often fails on a heavily-loaded builder. +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" +%ifarch %{ix86} +# This test won't work due to Xvfb not existing. +k="${k-}${k+ and }not test_cross_Qt_imports" +%endif + MPLCONFIGDIR=$PWD \ %ifnarch %{ix86} xvfb-run -a -s "-screen 0 640x480x24" \ %endif env %{pytest} -ra -n auto \ - -m 'not network' \ - -k 'not test_invisible_Line_rendering and not test_form_widget_get_with_datetime_and_date_fields' \ + -m 'not network' -k "${k-}" \ --pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d %endif diff --git a/sources b/sources index 5d4bd21..f1a039c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.8.4.tar.gz) = d4c6a5b3484927dbae1b1203e9984b67d08c958c4a5136abaa805f1eb221146fb1211e5f20456e281d41fc09c94917a796ffacfdb185c58eeeb6d19e60c78b1a -SHA512 (matplotlib-3.8.3-with-freetype-2.13.1.tar.gz) = 72b207fac6539cf9e64706cbd61be4bf2349be8d5f66083db1f014cdbdf049c48f2ce17a67ac0e646f668818cff6ffa9053fc31f2c2f4bc3f8e9f70272146d8f +SHA512 (matplotlib-3.9.0.tar.gz) = 135ee2f97c26cb60479cc10bf8a833384c393993d8a905ab869f4c73b91a50ffa596f84ce349af7f1a0b08a21e1906394cf6a702bb567a9c3999d40f54974326 +SHA512 (matplotlib-3.9.0-with-freetype-2.13.1.tar.gz) = 5589711f02270772d77e648d04eaabe550e7efb247edf3a6b0847c2e476c50d788add9a36f765063801a466f6fb30df00a20ff6e46cf79546f0e0f7127e2ae06 From 51c7ba15fe09b3055f1257f61c18765bdd5f09fd Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Thu, 30 May 2024 09:34:33 +0200 Subject: [PATCH 08/11] Move IPython to html dependencies It's only required for generating the documentation, see: https://github.com/matplotlib/matplotlib/blob/v3.9.0/requirements/doc/doc-requirements.txt#L12 --- python-matplotlib.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 999d600..9728267 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -62,7 +62,6 @@ Patch1003: 0003-Set-FreeType-version-to-%{ftver}-and-update-tolerances.patc # https://github.com/matplotlib/matplotlib/pull/21190#issuecomment-1223271888 Patch0001: 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch -BuildRequires: ipython BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-langpack-en @@ -282,6 +281,7 @@ BuildRequires: make BuildRequires: python3dist(sphinx) BuildRequires: tex(latex) BuildRequires: tex-preview +BuildRequires: ipython %endif Requires: python3-matplotlib%{?_isa} = %{version}-%{release} From e7c8d98b417d0cdbe537021d3b2b8eaf92f6fe12 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 20:41:40 +0200 Subject: [PATCH 09/11] Bootstrap for Python 3.13 --- python-matplotlib.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 9728267..aa1a8d3 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -1,3 +1,4 @@ +%global _without_check 1 %bcond_with html %bcond_without check # https://fedorahosted.org/fpc/ticket/381 From 3d74b361b13ddda6dfadeb785aad75b61c9b64a4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sun, 9 Jun 2024 22:43:11 +0200 Subject: [PATCH 10/11] Rebuilt for Python 3.13 --- python-matplotlib.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/python-matplotlib.spec b/python-matplotlib.spec index aa1a8d3..9728267 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -1,4 +1,3 @@ -%global _without_check 1 %bcond_with html %bcond_without check # https://fedorahosted.org/fpc/ticket/381 From ec553ec0745480f0bc7e748a69a6416041b09201 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 5 Jul 2024 04:50:01 -0400 Subject: [PATCH 11/11] Update to latest version (#2295755) --- .gitignore | 2 ++ python-matplotlib.spec | 4 ++-- sources | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e9e9d42..83645e4 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,5 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-3.8.4.tar.gz /matplotlib-3.9.0.tar.gz /matplotlib-3.9.0-with-freetype-2.13.1.tar.gz +/matplotlib-3.9.1.tar.gz +/matplotlib-3.9.1-with-freetype-2.13.1.tar.gz diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 9728267..1ef08e9 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -32,13 +32,13 @@ %global _docdir_fmt %{name} # Updated test images for new FreeType. -%global mpl_images_version 3.9.0 +%global mpl_images_version 3.9.1 # The version of FreeType in this Fedora branch. %global ftver 2.13.1 Name: python-matplotlib -Version: 3.9.0 +Version: 3.9.1 %global Version %{version_no_tilde %{quote:%nil}} Release: %autorelease Summary: Python 2D plotting library diff --git a/sources b/sources index f1a039c..10eb91a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (matplotlib-3.9.0.tar.gz) = 135ee2f97c26cb60479cc10bf8a833384c393993d8a905ab869f4c73b91a50ffa596f84ce349af7f1a0b08a21e1906394cf6a702bb567a9c3999d40f54974326 -SHA512 (matplotlib-3.9.0-with-freetype-2.13.1.tar.gz) = 5589711f02270772d77e648d04eaabe550e7efb247edf3a6b0847c2e476c50d788add9a36f765063801a466f6fb30df00a20ff6e46cf79546f0e0f7127e2ae06 +SHA512 (matplotlib-3.9.1.tar.gz) = a1d48c42a5f4f04b57e34d25df842917e6380b8d6b6d1018c9b630cbbea4619b1d75729a218a6f52b63d4a61c2204bb26ad8f741566f84e41ca73190e419f672 +SHA512 (matplotlib-3.9.1-with-freetype-2.13.1.tar.gz) = 7d7d04d410265e6f3adc95bc103f12432f5c3c2b3788ab11f2326054f1cd116ff795bd2d2999cdb4da997df597bec00bbba61acea6de5eb9d56c686aa47a7bf7