diff --git a/.gitignore b/.gitignore index f5347ce..fcd190a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.1.1.tar.gz /matplotlib-2.1.2.tar.gz /matplotlib-2.1.2-with-freetype-2.8.tar.gz +/matplotlib-2.2.2.tar.gz +/matplotlib-2.2.2-with-freetype-2.8.tar.gz diff --git a/0001-Add-libdl-on-Unix-like-systems.patch b/0001-Add-libdl-on-Unix-like-systems.patch deleted file mode 100644 index 5cbbeca..0000000 --- a/0001-Add-libdl-on-Unix-like-systems.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 77bae7e7ea5c02f5be0d59dabeae6c3c09571fbe Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Wed, 24 Jan 2018 02:51:55 -0500 -Subject: [PATCH] Add libdl on Unix-like systems. - -Not linking with libdl causes errors when -z defs is in the linker -flags. - -Signed-off-by: Elliott Sales de Andrade ---- - setupext.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/setupext.py b/setupext.py -index d0f3f2070..6d2c3e296 100644 ---- a/setupext.py -+++ b/setupext.py -@@ -1493,6 +1493,8 @@ class BackendTkAgg(OptionalBackendPackage): - if sys.platform == 'win32': - # PSAPI library needed for finding Tcl / Tk at run time - ext.libraries.extend(['psapi']) -+ elif sys.platform != 'darwin': -+ ext.libraries.extend(['dl']) - - - class BackendGtk(OptionalBackendPackage): --- -2.14.3 - diff --git a/0001-Force-using-system-qhull.patch b/0001-Force-using-system-qhull.patch new file mode 100644 index 0000000..d8079bc --- /dev/null +++ b/0001-Force-using-system-qhull.patch @@ -0,0 +1,43 @@ +From 46361ca058295e3f08d3c54196d990c497834306 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade +Date: Fri, 30 Mar 2018 03:15:51 -0400 +Subject: [PATCH] Force using system qhull. + +Signed-off-by: Elliott Sales de Andrade +--- + setupext.py | 17 ++--------------- + 1 file changed, 2 insertions(+), 15 deletions(-) + +diff --git a/setupext.py b/setupext.py +index d2ff239ad..30e0c9085 100644 +--- a/setupext.py ++++ b/setupext.py +@@ -1318,23 +1318,10 @@ class Qhull(SetupPackage): + + def check(self): + self.__class__.found_external = True +- try: +- return self._check_for_pkg_config( +- 'libqhull', 'libqhull/qhull_a.h', min_version='2015.2') +- except CheckFailed as e: +- self.__class__.found_pkgconfig = False +- self.__class__.found_external = False +- return str(e) + ' Using local copy.' ++ return ' Using system copy.' + + def add_flags(self, ext): +- if self.found_external: +- pkg_config.setup_extension(ext, 'qhull', +- default_libraries=['qhull']) +- else: +- ext.include_dirs.insert(0, 'extern') +- ext.sources.extend(sorted(glob.glob('extern/libqhull/*.c'))) +- if sysconfig.get_config_var('LIBM') == '-lm': +- ext.libraries.extend('m') ++ ext.libraries.append('qhull') + + + class TTConv(SetupPackage): +-- +2.14.3 + diff --git a/0001-matplotlibrc-path-search-fix.patch b/0001-matplotlibrc-path-search-fix.patch index f069fde..a11c26c 100644 --- a/0001-matplotlibrc-path-search-fix.patch +++ b/0001-matplotlibrc-path-search-fix.patch @@ -1,7 +1,7 @@ -From 69b627b84fa8081748d93d180deb2218b99270a4 Mon Sep 17 00:00:00 2001 +From 69c596604b1dee1b8aeb066907a4543053e375a9 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 27 Sep 2017 19:35:59 -0400 -Subject: [PATCH 1/4] matplotlibrc path search fix +Subject: [PATCH 1/3] 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 3ba486af1..b8caf27dc 100644 +index 93397070f..c68b8ca9a 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -635,9 +635,12 @@ def _get_data_path(): +@@ -739,9 +739,12 @@ def _get_data_path(): _file = _decode_filesystem_path(__file__) path = os.sep.join([os.path.dirname(_file), 'mpl-data']) @@ -25,7 +25,7 @@ index 3ba486af1..b8caf27dc 100644 # setuptools' namespace_packages may highjack this init file # so need to try something known to be in matplotlib, not basemap import matplotlib.afm -@@ -731,7 +734,7 @@ def matplotlib_fname(): +@@ -836,7 +839,7 @@ def matplotlib_fname(): yield matplotlibrc yield os.path.join(matplotlibrc, 'matplotlibrc') yield os.path.join(_get_configdir(), 'matplotlibrc') @@ -33,7 +33,7 @@ index 3ba486af1..b8caf27dc 100644 + yield '/etc/matplotlibrc' for fname in gen_candidates(): - if os.path.isfile(fname): + if os.path.exists(fname): -- 2.14.3 diff --git a/0002-Increase-tolerances-for-FreeType-2.7.1.patch b/0002-Increase-tolerances-for-FreeType-2.7.1.patch deleted file mode 100644 index 4db5b16..0000000 --- a/0002-Increase-tolerances-for-FreeType-2.7.1.patch +++ /dev/null @@ -1,118 +0,0 @@ -From f146998e2bf6db54dae926ceec57d2baa6003ea0 Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Tue, 23 Jan 2018 20:22:05 -0500 -Subject: [PATCH 2/4] Increase tolerances for FreeType 2.7.1. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/testing/decorators.py | 2 +- - lib/matplotlib/tests/test_axes.py | 5 ++--- - lib/matplotlib/tests/test_mathtext.py | 4 ++-- - lib/matplotlib/tests/test_patches.py | 3 +-- - lib/matplotlib/tests/test_streamplot.py | 3 +-- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 6 files changed, 8 insertions(+), 11 deletions(-) - -diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py -index c5e069b31..ebd68cfab 100644 ---- a/lib/matplotlib/testing/decorators.py -+++ b/lib/matplotlib/testing/decorators.py -@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, - return decorator - - --def image_comparison(baseline_images, extensions=None, tol=0, -+def image_comparison(baseline_images, extensions=None, tol=0.1, - freetype_version=None, remove_text=False, - savefig_kwarg=None, - # Default of mpl_test_settings fixture and cleanup too. -diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 7164d0cec..6492cc140 100644 ---- a/lib/matplotlib/tests/test_axes.py -+++ b/lib/matplotlib/tests/test_axes.py -@@ -671,8 +671,7 @@ def test_polar_rlabel_position(): - ax.tick_params(rotation='auto') - - --@image_comparison(baseline_images=['polar_theta_wedge'], style='default', -- tol=0.01 if six.PY2 else 0) -+@image_comparison(baseline_images=['polar_theta_wedge'], style='default') - def test_polar_theta_limits(): - r = np.arange(0, 3.0, 0.01) - theta = 2*np.pi*r -@@ -4679,7 +4678,7 @@ def test_rc_spines(): - - - @image_comparison(baseline_images=['rc_grid'], extensions=['png'], -- savefig_kwarg={'dpi': 40}) -+ savefig_kwarg={'dpi': 40}, tol=0.2) - def test_rc_grid(): - fig = plt.figure() - rc_dict0 = { -diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py -index 7ef77ce6a..b8c9c9e8b 100644 ---- a/lib/matplotlib/tests/test_mathtext.py -+++ b/lib/matplotlib/tests/test_mathtext.py -@@ -174,7 +174,7 @@ def baseline_images(request, fontset, index): - ['cm', 'stix', 'stixsans', 'dejavusans', - 'dejavuserif']) - @pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True) --@image_comparison(baseline_images=None) -+@image_comparison(baseline_images=None, tol=0.31) - def test_mathtext_rendering(baseline_images, fontset, index, test): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -@@ -188,7 +188,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test): - ['cm', 'stix', 'stixsans', 'dejavusans', - 'dejavuserif']) - @pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True) --@image_comparison(baseline_images=None, extensions=['png']) -+@image_comparison(baseline_images=None, extensions=['png'], tol=0.3) - def test_mathfont_rendering(baseline_images, fontset, index, test): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) -diff --git a/lib/matplotlib/tests/test_patches.py b/lib/matplotlib/tests/test_patches.py -index 20ffa6b08..81737c84d 100644 ---- a/lib/matplotlib/tests/test_patches.py -+++ b/lib/matplotlib/tests/test_patches.py -@@ -267,9 +267,8 @@ def test_wedge_movement(): - assert getattr(w, attr) == new_v - - --# png needs tol>=0.06, pdf tol>=1.617 - @image_comparison(baseline_images=['wedge_range'], -- remove_text=True, tol=1.65 if on_win else 0) -+ remove_text=True) - def test_wedge_range(): - ax = plt.axes() - -diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index 1d7e09fef..48f1e0683 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -40,8 +40,7 @@ def test_startpoints(): - plt.plot(start_x, start_y, 'ok') - - --@image_comparison(baseline_images=['streamplot_colormap'], -- tol=.02) -+@image_comparison(baseline_images=['streamplot_colormap']) - def test_colormap(): - X, Y, U, V = velocity_field() - plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, -diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c157433c7..c13f3be2f 100644 ---- a/lib/mpl_toolkits/tests/test_mplot3d.py -+++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -658,7 +658,7 @@ class TestVoxels(object): - @image_comparison( - baseline_images=['voxels-xyz'], - extensions=['png'], -- tol=0.01 -+ tol=0.02 - ) - def test_xyz(self): - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) --- -2.14.3 - diff --git a/0002-Increase-tolerances-for-non-x86_64-arches.patch b/0002-Increase-tolerances-for-non-x86_64-arches.patch new file mode 100644 index 0000000..c7b6857 --- /dev/null +++ b/0002-Increase-tolerances-for-non-x86_64-arches.patch @@ -0,0 +1,27 @@ +From ee4772513109de1c2dadb4d4989eedd2a5f92e51 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade +Date: Tue, 23 Jan 2018 20:27:17 -0500 +Subject: [PATCH 2/3] Increase tolerances for non-x86_64 arches. + +Signed-off-by: Elliott Sales de Andrade +--- + lib/matplotlib/tests/test_streamplot.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index 81a51e711..4f70ce861 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -58,8 +58,7 @@ def test_linewidth(): + linewidth=lw) + + +-@image_comparison(baseline_images=['streamplot_masks_and_nans'], +- tol=0.04 if on_win else 0) ++@image_comparison(baseline_images=['streamplot_masks_and_nans'], tol=0.01) + def test_masks_and_nans(): + X, Y, U, V = velocity_field() + mask = np.zeros(U.shape, dtype=bool) +-- +2.14.3 + diff --git a/0004-Increase-some-tolerances-for-32-bit-systems.patch b/0003-Increase-some-tolerances-for-32-bit-systems.patch similarity index 55% rename from 0004-Increase-some-tolerances-for-32-bit-systems.patch rename to 0003-Increase-some-tolerances-for-32-bit-systems.patch index a7012bc..e81469d 100644 --- a/0004-Increase-some-tolerances-for-32-bit-systems.patch +++ b/0003-Increase-some-tolerances-for-32-bit-systems.patch @@ -1,28 +1,48 @@ -From 25c7d1af15f4478e795250360d2f778a76c2358d Mon Sep 17 00:00:00 2001 +From 10e4a0fbcab2ad59b95e1391d3285aff07e1f473 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade -Date: Wed, 24 Jan 2018 01:38:52 -0500 -Subject: [PATCH 4/4] Increase some tolerances for 32-bit systems. +Date: Sat, 31 Mar 2018 00:15:14 -0400 +Subject: [PATCH 3/3] Increase some tolerances for 32-bit systems. Signed-off-by: Elliott Sales de Andrade --- - lib/matplotlib/tests/test_artist.py | 3 ++- - lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++++---------------- - lib/matplotlib/tests/test_collections.py | 2 +- - lib/matplotlib/tests/test_colorbar.py | 11 +++++---- - lib/matplotlib/tests/test_contour.py | 6 ++--- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_pickle.py | 2 +- - lib/matplotlib/tests/test_quiver.py | 2 +- - lib/matplotlib/tests/test_transforms.py | 2 +- - lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- - 11 files changed, 39 insertions(+), 37 deletions(-) + lib/matplotlib/testing/decorators.py | 2 +- + lib/matplotlib/tests/test_artist.py | 3 +- + lib/matplotlib/tests/test_axes.py | 47 +++++++++++----------- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_colorbar.py | 11 ++--- + lib/matplotlib/tests/test_constrainedlayout.py | 2 +- + lib/matplotlib/tests/test_contour.py | 6 +-- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_mathtext.py | 4 +- + lib/matplotlib/tests/test_patches.py | 3 +- + lib/matplotlib/tests/test_patheffects.py | 2 +- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_quiver.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 3 +- + lib/matplotlib/tests/test_transforms.py | 2 +- + .../tests/test_axisartist_floating_axes.py | 4 +- + .../test_axisartist_grid_helper_curvelinear.py | 4 +- + lib/mpl_toolkits/tests/test_mplot3d.py | 4 +- + 18 files changed, 52 insertions(+), 53 deletions(-) +diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py +index 0ce6e6252..9a80eec1a 100644 +--- a/lib/matplotlib/testing/decorators.py ++++ b/lib/matplotlib/testing/decorators.py +@@ -408,7 +408,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator + + +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.1, + freetype_version=None, remove_text=False, + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. diff --git a/lib/matplotlib/tests/test_artist.py b/lib/matplotlib/tests/test_artist.py -index 786d50903..105714ef4 100644 +index 8d1a01294..02acbb206 100644 --- a/lib/matplotlib/tests/test_artist.py +++ b/lib/matplotlib/tests/test_artist.py -@@ -95,7 +95,8 @@ def test_collection_transform_of_none(): +@@ -96,7 +96,8 @@ def test_collection_transform_of_none(): assert isinstance(c._transOffset, mtransforms.IdentityTransform) @@ -33,10 +53,10 @@ index 786d50903..105714ef4 100644 exterior = mpath.Path.unit_rectangle().deepcopy() exterior.vertices *= 4 diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 6492cc140..8609d8c31 100644 +index 77ec92b01..f16e70cfd 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -483,7 +483,7 @@ def test_single_point(): +@@ -523,7 +523,7 @@ def test_single_point(): plt.plot('b', 'b', 'o', data=data) @@ -45,7 +65,17 @@ index 6492cc140..8609d8c31 100644 def test_single_date(): time1 = [721964.0] data1 = [-65.54] -@@ -971,7 +971,7 @@ def test_fill_between_interpolate(): +@@ -707,8 +707,7 @@ def test_polar_rlabel_position(): + ax.tick_params(rotation='auto') + + +-@image_comparison(baseline_images=['polar_theta_wedge'], style='default', +- tol=0.01 if six.PY2 else 0) ++@image_comparison(baseline_images=['polar_theta_wedge'], style='default') + def test_polar_theta_limits(): + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r +@@ -1008,7 +1007,7 @@ def test_fill_between_interpolate(): @image_comparison(baseline_images=['fill_between_interpolate_decreasing'], @@ -54,7 +84,7 @@ index 6492cc140..8609d8c31 100644 def test_fill_between_interpolate_decreasing(): p = np.array([724.3, 700, 655]) t = np.array([9.4, 7, 2.2]) -@@ -1085,7 +1085,7 @@ def test_pcolormesh(): +@@ -1122,7 +1121,7 @@ def test_pcolormesh(): @image_comparison(baseline_images=['pcolormesh_datetime_axis'], @@ -63,7 +93,7 @@ index 6492cc140..8609d8c31 100644 def test_pcolormesh_datetime_axis(): fig = plt.figure() fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1111,7 +1111,7 @@ def test_pcolormesh_datetime_axis(): +@@ -1148,7 +1147,7 @@ def test_pcolormesh_datetime_axis(): @image_comparison(baseline_images=['pcolor_datetime_axis'], @@ -72,7 +102,7 @@ index 6492cc140..8609d8c31 100644 def test_pcolor_datetime_axis(): fig = plt.figure() fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -1167,7 +1167,7 @@ def test_canonical(): +@@ -1205,7 +1204,7 @@ def test_canonical(): @image_comparison(baseline_images=['arc_angles'], remove_text=True, @@ -81,7 +111,7 @@ index 6492cc140..8609d8c31 100644 def test_arc_angles(): from matplotlib import patches # Ellipse parameters -@@ -2433,7 +2433,7 @@ def test_boxplot_mod_artist_after_plotting(): +@@ -2467,7 +2466,7 @@ def test_boxplot_mod_artist_after_plotting(): @image_comparison(baseline_images=['violinplot_vert_baseline', 'violinplot_vert_baseline'], @@ -90,7 +120,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_baseline(): # First 9 digits of frac(sqrt(2)) np.random.seed(414213562) -@@ -2451,7 +2451,7 @@ def test_vert_violinplot_baseline(): +@@ -2485,7 +2484,7 @@ def test_vert_violinplot_baseline(): @image_comparison(baseline_images=['violinplot_vert_showmeans'], @@ -99,7 +129,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_showmeans(): ax = plt.axes() # First 9 digits of frac(sqrt(3)) -@@ -2462,7 +2462,7 @@ def test_vert_violinplot_showmeans(): +@@ -2496,7 +2495,7 @@ def test_vert_violinplot_showmeans(): @image_comparison(baseline_images=['violinplot_vert_showextrema'], @@ -108,7 +138,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_showextrema(): ax = plt.axes() # First 9 digits of frac(sqrt(5)) -@@ -2473,7 +2473,7 @@ def test_vert_violinplot_showextrema(): +@@ -2507,7 +2506,7 @@ def test_vert_violinplot_showextrema(): @image_comparison(baseline_images=['violinplot_vert_showmedians'], @@ -117,7 +147,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_showmedians(): ax = plt.axes() # First 9 digits of frac(sqrt(7)) -@@ -2484,7 +2484,7 @@ def test_vert_violinplot_showmedians(): +@@ -2518,7 +2517,7 @@ def test_vert_violinplot_showmedians(): @image_comparison(baseline_images=['violinplot_vert_showall'], @@ -126,7 +156,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_showall(): ax = plt.axes() # First 9 digits of frac(sqrt(11)) -@@ -2495,7 +2495,7 @@ def test_vert_violinplot_showall(): +@@ -2529,7 +2528,7 @@ def test_vert_violinplot_showall(): @image_comparison(baseline_images=['violinplot_vert_custompoints_10'], @@ -135,7 +165,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_custompoints_10(): ax = plt.axes() # First 9 digits of frac(sqrt(13)) -@@ -2506,7 +2506,7 @@ def test_vert_violinplot_custompoints_10(): +@@ -2540,7 +2539,7 @@ def test_vert_violinplot_custompoints_10(): @image_comparison(baseline_images=['violinplot_vert_custompoints_200'], @@ -144,7 +174,7 @@ index 6492cc140..8609d8c31 100644 def test_vert_violinplot_custompoints_200(): ax = plt.axes() # First 9 digits of frac(sqrt(17)) -@@ -2517,7 +2517,7 @@ def test_vert_violinplot_custompoints_200(): +@@ -2551,7 +2550,7 @@ def test_vert_violinplot_custompoints_200(): @image_comparison(baseline_images=['violinplot_horiz_baseline'], @@ -153,7 +183,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_baseline(): ax = plt.axes() # First 9 digits of frac(sqrt(19)) -@@ -2528,7 +2528,7 @@ def test_horiz_violinplot_baseline(): +@@ -2562,7 +2561,7 @@ def test_horiz_violinplot_baseline(): @image_comparison(baseline_images=['violinplot_horiz_showmedians'], @@ -162,7 +192,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_showmedians(): ax = plt.axes() # First 9 digits of frac(sqrt(23)) -@@ -2539,7 +2539,7 @@ def test_horiz_violinplot_showmedians(): +@@ -2573,7 +2572,7 @@ def test_horiz_violinplot_showmedians(): @image_comparison(baseline_images=['violinplot_horiz_showmeans'], @@ -171,7 +201,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_showmeans(): ax = plt.axes() # First 9 digits of frac(sqrt(29)) -@@ -2550,7 +2550,7 @@ def test_horiz_violinplot_showmeans(): +@@ -2584,7 +2583,7 @@ def test_horiz_violinplot_showmeans(): @image_comparison(baseline_images=['violinplot_horiz_showextrema'], @@ -180,7 +210,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_showextrema(): ax = plt.axes() # First 9 digits of frac(sqrt(31)) -@@ -2561,7 +2561,7 @@ def test_horiz_violinplot_showextrema(): +@@ -2595,7 +2594,7 @@ def test_horiz_violinplot_showextrema(): @image_comparison(baseline_images=['violinplot_horiz_showall'], @@ -189,7 +219,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_showall(): ax = plt.axes() # First 9 digits of frac(sqrt(37)) -@@ -2572,7 +2572,7 @@ def test_horiz_violinplot_showall(): +@@ -2606,7 +2605,7 @@ def test_horiz_violinplot_showall(): @image_comparison(baseline_images=['violinplot_horiz_custompoints_10'], @@ -198,7 +228,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_custompoints_10(): ax = plt.axes() # First 9 digits of frac(sqrt(41)) -@@ -2583,7 +2583,7 @@ def test_horiz_violinplot_custompoints_10(): +@@ -2617,7 +2616,7 @@ def test_horiz_violinplot_custompoints_10(): @image_comparison(baseline_images=['violinplot_horiz_custompoints_200'], @@ -207,7 +237,7 @@ index 6492cc140..8609d8c31 100644 def test_horiz_violinplot_custompoints_200(): ax = plt.axes() # First 9 digits of frac(sqrt(43)) -@@ -3909,7 +3909,7 @@ def test_psd_noise(): +@@ -3964,7 +3963,7 @@ def test_psd_noise(): @image_comparison(baseline_images=['csd_freqs'], remove_text=True, @@ -216,7 +246,16 @@ index 6492cc140..8609d8c31 100644 def test_csd_freqs(): '''test axes.csd with sinusoidal stimuli''' n = 10000 -@@ -5153,7 +5153,7 @@ def test_date_timezone_y(): +@@ -4823,7 +4822,7 @@ def test_rc_spines(): + + + @image_comparison(baseline_images=['rc_grid'], extensions=['png'], +- savefig_kwarg={'dpi': 40}) ++ savefig_kwarg={'dpi': 40}, tol=0.2) + def test_rc_grid(): + fig = plt.figure() + rc_dict0 = { +@@ -5318,7 +5317,7 @@ def test_date_timezone_y(): @image_comparison(baseline_images=['date_timezone_x_and_y'], @@ -226,10 +265,10 @@ index 6492cc140..8609d8c31 100644 # Tests issue 5575 time_index = [pytz.timezone('UTC').localize(datetime.datetime( diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index c27aeb11a..9d39a3e91 100644 +index 291647d17..265f23fed 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py -@@ -468,7 +468,7 @@ def test_EllipseCollection(): +@@ -467,7 +467,7 @@ def test_EllipseCollection(): @image_comparison(baseline_images=['polycollection_close'], @@ -239,10 +278,10 @@ index c27aeb11a..9d39a3e91 100644 from mpl_toolkits.mplot3d import Axes3D diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py -index b75ba7e9f..cfbb16444 100644 +index 539ee8c83..ae21e723f 100644 --- a/lib/matplotlib/tests/test_colorbar.py +++ b/lib/matplotlib/tests/test_colorbar.py -@@ -96,7 +96,7 @@ def _colorbar_extension_length(spacing): +@@ -95,7 +95,7 @@ def _colorbar_extension_length(spacing): @image_comparison( baseline_images=['colorbar_extensions_shape_uniform', 'colorbar_extensions_shape_proportional'], @@ -251,7 +290,7 @@ index b75ba7e9f..cfbb16444 100644 def test_colorbar_extension_shape(): '''Test rectangular colorbar extensions.''' # Create figures for uniform and proportionally spaced colorbars. -@@ -106,7 +106,7 @@ def test_colorbar_extension_shape(): +@@ -105,7 +105,7 @@ def test_colorbar_extension_shape(): @image_comparison(baseline_images=['colorbar_extensions_uniform', 'colorbar_extensions_proportional'], @@ -260,7 +299,7 @@ index b75ba7e9f..cfbb16444 100644 def test_colorbar_extension_length(): '''Test variable length colorbar extensions.''' # Create figures for uniform and proportionally spaced colorbars. -@@ -120,7 +120,7 @@ def test_colorbar_extension_length(): +@@ -119,7 +119,7 @@ def test_colorbar_extension_length(): 'cbar_sharing', ], extensions=['png'], remove_text=True, @@ -269,7 +308,7 @@ index b75ba7e9f..cfbb16444 100644 def test_colorbar_positioning(): data = np.arange(1200).reshape(30, 40) levels = [0, 200, 400, 600, 800, 1000, 1200] -@@ -174,7 +174,7 @@ def test_colorbar_positioning(): +@@ -173,7 +173,7 @@ def test_colorbar_positioning(): @image_comparison(baseline_images=['cbar_with_subplots_adjust'], extensions=['png'], remove_text=True, @@ -278,7 +317,7 @@ index b75ba7e9f..cfbb16444 100644 def test_gridspec_make_colorbar(): plt.figure() data = np.arange(1200).reshape(30, 40) -@@ -234,7 +234,8 @@ def test_colorbarbase(): +@@ -233,7 +233,8 @@ def test_colorbarbase(): @image_comparison( baseline_images=['colorbar_closed_patch'], @@ -288,11 +327,24 @@ index b75ba7e9f..cfbb16444 100644 def test_colorbar_closed_patch(): fig = plt.figure(figsize=(8, 6)) ax1 = fig.add_axes([0.05, 0.85, 0.9, 0.1]) +diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py +index 9c36fb247..929e38bd8 100644 +--- a/lib/matplotlib/tests/test_constrainedlayout.py ++++ b/lib/matplotlib/tests/test_constrainedlayout.py +@@ -296,7 +296,7 @@ def test_constrained_layout12(): + ax.set_xlabel('x-label') + + +-@image_comparison(baseline_images=['constrained_layout13'], tol=2.e-2, ++@image_comparison(baseline_images=['constrained_layout13'], tol=3.e-2, + extensions=['png']) + def test_constrained_layout13(): + 'Test that padding works.' diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py -index 16ac9e865..29c1b26f2 100644 +index 35d33b972..f10483ce4 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py -@@ -228,7 +228,7 @@ def test_given_colors_levels_and_extends(): +@@ -225,7 +225,7 @@ def test_given_colors_levels_and_extends(): @image_comparison(baseline_images=['contour_datetime_axis'], @@ -301,16 +353,16 @@ index 16ac9e865..29c1b26f2 100644 def test_contour_datetime_axis(): fig = plt.figure() fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) -@@ -254,7 +254,7 @@ def test_contour_datetime_axis(): +@@ -251,7 +251,7 @@ def test_contour_datetime_axis(): @image_comparison(baseline_images=['contour_test_label_transforms'], - extensions=['png'], remove_text=True) -+ extensions=['png'], remove_text=True, tol=0.74) ++ extensions=['png'], remove_text=True, tol=1.38) def test_labels(): # Adapted from pylab_examples example code: contour_demo.py # see issues #2475, #2843, and #2818 for explanation -@@ -283,7 +283,7 @@ def test_labels(): +@@ -282,7 +282,7 @@ def test_labels(): @image_comparison(baseline_images=['contour_corner_mask_False', 'contour_corner_mask_True'], @@ -320,10 +372,10 @@ index 16ac9e865..29c1b26f2 100644 n = 60 mask_level = 0.95 diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index fd6430d56..e9bf1b1db 100644 +index 26e3b4a7e..269f814bb 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py -@@ -754,7 +754,7 @@ def test_imshow_endianess(): +@@ -784,7 +784,7 @@ def test_imshow_endianess(): @image_comparison(baseline_images=['imshow_masked_interpolation'], @@ -332,24 +384,61 @@ index fd6430d56..e9bf1b1db 100644 def test_imshow_masked_interpolation(): cm = copy(plt.get_cmap('viridis')) +diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py +index cdc1093e1..ac0d8bf05 100644 +--- a/lib/matplotlib/tests/test_mathtext.py ++++ b/lib/matplotlib/tests/test_mathtext.py +@@ -173,7 +173,7 @@ def baseline_images(request, fontset, index): + ['cm', 'stix', 'stixsans', 'dejavusans', + 'dejavuserif']) + @pytest.mark.parametrize('baseline_images', ['mathtext'], indirect=True) +-@image_comparison(baseline_images=None) ++@image_comparison(baseline_images=None, tol=0.31) + def test_mathtext_rendering(baseline_images, fontset, index, test): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +@@ -187,7 +187,7 @@ def test_mathtext_rendering(baseline_images, fontset, index, test): + ['cm', 'stix', 'stixsans', 'dejavusans', + 'dejavuserif']) + @pytest.mark.parametrize('baseline_images', ['mathfont'], indirect=True) +-@image_comparison(baseline_images=None, extensions=['png']) ++@image_comparison(baseline_images=None, extensions=['png'], tol=0.3) + def test_mathfont_rendering(baseline_images, fontset, index, test): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) +diff --git a/lib/matplotlib/tests/test_patches.py b/lib/matplotlib/tests/test_patches.py +index ff1abb9c6..cc90e6bb0 100644 +--- a/lib/matplotlib/tests/test_patches.py ++++ b/lib/matplotlib/tests/test_patches.py +@@ -266,9 +266,8 @@ def test_wedge_movement(): + assert getattr(w, attr) == new_v + + +-# png needs tol>=0.06, pdf tol>=1.617 + @image_comparison(baseline_images=['wedge_range'], +- remove_text=True, tol=1.65 if on_win else 0) ++ remove_text=True) + def test_wedge_range(): + ax = plt.axes() + diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index e36d6deb6..985d69cb2 100644 +index fe7265957..2addc35ed 100644 --- a/lib/matplotlib/tests/test_patheffects.py +++ b/lib/matplotlib/tests/test_patheffects.py -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): +@@ -121,7 +121,7 @@ def test_SimplePatchShadow_offset(): assert pe._offset == (4, 5) --@image_comparison(baseline_images=['collection'], tol=0.019) +-@image_comparison(baseline_images=['collection'], tol=0.02) +@image_comparison(baseline_images=['collection'], tol=0.084) def test_collection(): x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) data = np.sin(x) + np.cos(y) diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py -index bd6ac6862..512f07948 100644 +index 89a5a512e..a25961284 100644 --- a/lib/matplotlib/tests/test_pickle.py +++ b/lib/matplotlib/tests/test_pickle.py -@@ -43,7 +43,7 @@ def test_simple(): +@@ -42,7 +42,7 @@ def test_simple(): @image_comparison(baseline_images=['multi_pickle'], extensions=['png'], remove_text=True, @@ -371,11 +460,25 @@ index a0e1e674f..ede6bfc64 100644 def test_barbs(): x = np.linspace(-5, 5, 5) X, Y = np.meshgrid(x, x) +diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py +index 4f70ce861..5bc8184f7 100644 +--- a/lib/matplotlib/tests/test_streamplot.py ++++ b/lib/matplotlib/tests/test_streamplot.py +@@ -39,8 +39,7 @@ def test_startpoints(): + plt.plot(start_x, start_y, 'ok') + + +-@image_comparison(baseline_images=['streamplot_colormap'], +- tol=.02) ++@image_comparison(baseline_images=['streamplot_colormap']) + def test_colormap(): + X, Y, U, V = velocity_field() + plt.streamplot(X, Y, U, V, color=U, density=0.6, linewidth=2, diff --git a/lib/matplotlib/tests/test_transforms.py b/lib/matplotlib/tests/test_transforms.py -index 8f19a50f3..fa4a9aa18 100644 +index 06985db84..8efaef898 100644 --- a/lib/matplotlib/tests/test_transforms.py +++ b/lib/matplotlib/tests/test_transforms.py -@@ -75,7 +75,7 @@ def test_external_transform_api(): +@@ -74,7 +74,7 @@ def test_external_transform_api(): @image_comparison(baseline_images=['pre_transform_data'], @@ -384,11 +487,55 @@ index 8f19a50f3..fa4a9aa18 100644 def test_pre_transform_plotting(): # a catch-all for as many as possible plot layouts which handle # pre-transforming the data NOTE: The axis range is important in this +diff --git a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py +index de7226609..af2283541 100644 +--- a/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py ++++ b/lib/mpl_toolkits/tests/test_axisartist_floating_axes.py +@@ -24,7 +24,7 @@ def test_subplot(): + + + @image_comparison(baseline_images=['curvelinear3'], +- extensions=['png'], style='default', tol=0.01) ++ extensions=['png'], style='default', tol=0.02) + def test_curvelinear3(): + fig = plt.figure(figsize=(5, 5)) + fig.clf() +@@ -80,7 +80,7 @@ def test_curvelinear3(): + + + @image_comparison(baseline_images=['curvelinear4'], +- extensions=['png'], style='default', tol=0.01) ++ extensions=['png'], style='default', tol=0.05) + def test_curvelinear4(): + fig = plt.figure(figsize=(5, 5)) + fig.clf() +diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py +index a7c637428..61d41d354 100644 +--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py ++++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py +@@ -91,7 +91,7 @@ def test_custom_transform(): + + + @image_comparison(baseline_images=['polar_box'], +- extensions=['png'], style='default', tol=0.03) ++ extensions=['png'], style='default', tol=0.08) + def test_polar_box(): + fig = plt.figure(figsize=(5, 5)) + +@@ -152,7 +152,7 @@ def test_polar_box(): + + + @image_comparison(baseline_images=['axis_direction'], +- extensions=['png'], style='default', tol=0.03) ++ extensions=['png'], style='default', tol=0.05) + def test_axis_direction(): + fig = plt.figure(figsize=(5, 5)) + diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py -index c13f3be2f..81a28aadb 100644 +index 0a506db92..44e1681fc 100644 --- a/lib/mpl_toolkits/tests/test_mplot3d.py +++ b/lib/mpl_toolkits/tests/test_mplot3d.py -@@ -198,7 +198,7 @@ def test_text3d(): +@@ -225,7 +225,7 @@ def test_text3d(): ax.set_zlabel('Z axis') @@ -397,6 +544,15 @@ index c13f3be2f..81a28aadb 100644 def test_trisurf3d(): n_angles = 36 n_radii = 8 +@@ -704,7 +704,7 @@ class TestVoxels(object): + @image_comparison( + baseline_images=['voxels-xyz'], + extensions=['png'], +- tol=0.01 ++ tol=0.02 + ) + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) -- 2.14.3 diff --git a/0004-Increase-some-tolerances-for-non-x86-arches.patch b/0003-Increase-some-tolerances-for-non-x86-arches.patch similarity index 59% rename from 0004-Increase-some-tolerances-for-non-x86-arches.patch rename to 0003-Increase-some-tolerances-for-non-x86-arches.patch index 349ce92..f3584b0 100644 --- a/0004-Increase-some-tolerances-for-non-x86-arches.patch +++ b/0003-Increase-some-tolerances-for-non-x86-arches.patch @@ -1,27 +1,30 @@ -From cd26dbd863d0cf2cce4d249c4941cf68d6f838ba Mon Sep 17 00:00:00 2001 +From 0e88d3f2ada26de2dc3362f30064551b9ea2322b Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade -Date: Wed, 24 Jan 2018 03:02:19 -0500 -Subject: [PATCH 4/4] Increase some tolerances for non-x86 arches. +Date: Sat, 31 Mar 2018 00:33:37 -0400 +Subject: [PATCH 3/3] Increase some tolerances for non-x86 arches. Signed-off-by: Elliott Sales de Andrade --- - lib/matplotlib/tests/test_arrow_patches.py | 4 ++-- - lib/matplotlib/tests/test_axes.py | 5 +++-- - lib/matplotlib/tests/test_collections.py | 2 +- - lib/matplotlib/tests/test_cycles.py | 6 +++--- - lib/matplotlib/tests/test_image.py | 2 +- - lib/matplotlib/tests/test_legend.py | 6 +++--- - lib/matplotlib/tests/test_pickle.py | 2 +- - lib/matplotlib/tests/test_scale.py | 2 +- - lib/matplotlib/tests/test_streamplot.py | 2 +- - lib/matplotlib/tests/test_units.py | 4 ++-- - 10 files changed, 18 insertions(+), 17 deletions(-) + lib/matplotlib/tests/test_arrow_patches.py | 4 ++-- + lib/matplotlib/tests/test_axes.py | 7 ++++--- + lib/matplotlib/tests/test_collections.py | 2 +- + lib/matplotlib/tests/test_constrainedlayout.py | 2 +- + lib/matplotlib/tests/test_cycles.py | 6 +++--- + lib/matplotlib/tests/test_figure.py | 2 +- + lib/matplotlib/tests/test_image.py | 2 +- + lib/matplotlib/tests/test_legend.py | 6 +++--- + lib/matplotlib/tests/test_pickle.py | 2 +- + lib/matplotlib/tests/test_scale.py | 2 +- + lib/matplotlib/tests/test_streamplot.py | 2 +- + lib/matplotlib/tests/test_units.py | 4 ++-- + lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py | 2 +- + 13 files changed, 22 insertions(+), 21 deletions(-) diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py -index 0a5894a30..1f75169ca 100644 +index 44f87c5fe..fb50ae710 100644 --- a/lib/matplotlib/tests/test_arrow_patches.py +++ b/lib/matplotlib/tests/test_arrow_patches.py -@@ -69,7 +69,7 @@ def __prepare_fancyarrow_dpi_cor_test(): +@@ -68,7 +68,7 @@ def __prepare_fancyarrow_dpi_cor_test(): @image_comparison(baseline_images=['fancyarrow_dpi_cor_100dpi'], @@ -30,7 +33,7 @@ index 0a5894a30..1f75169ca 100644 savefig_kwarg=dict(dpi=100)) def test_fancyarrow_dpi_cor_100dpi(): """ -@@ -84,7 +84,7 @@ def test_fancyarrow_dpi_cor_100dpi(): +@@ -83,7 +83,7 @@ def test_fancyarrow_dpi_cor_100dpi(): @image_comparison(baseline_images=['fancyarrow_dpi_cor_200dpi'], @@ -40,10 +43,19 @@ index 0a5894a30..1f75169ca 100644 def test_fancyarrow_dpi_cor_200dpi(): """ diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py -index 6492cc140..3bd1c0fda 100644 +index 77ec92b01..49a4d9290 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py -@@ -3229,7 +3229,8 @@ def test_vertex_markers(): +@@ -389,7 +389,7 @@ def test_annotate_default_arrow(): + assert ann.arrow_patch is not None + + +-@image_comparison(baseline_images=['polar_axes'], style='default') ++@image_comparison(baseline_images=['polar_axes'], style='default', tol=0.01) + def test_polar_annotations(): + # you can specify the xypoint and the xytext in different + # positions and coordinate systems, and optionally turn on a +@@ -3284,7 +3284,8 @@ def test_vertex_markers(): @image_comparison(baseline_images=['vline_hline_zorder', @@ -53,7 +65,7 @@ index 6492cc140..3bd1c0fda 100644 def test_eb_line_zorder(): x = list(xrange(10)) -@@ -4866,7 +4867,7 @@ def test_title_location_roundtrip(): +@@ -5017,7 +5018,7 @@ def test_title_location_roundtrip(): @image_comparison(baseline_images=["loglog"], remove_text=True, @@ -63,10 +75,10 @@ index 6492cc140..3bd1c0fda 100644 fig, ax = plt.subplots() x = np.arange(1, 11) diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py -index c27aeb11a..969bf41cf 100644 +index 291647d17..6b623ef52 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py -@@ -444,7 +444,7 @@ def test_barb_limits(): +@@ -443,7 +443,7 @@ def test_barb_limits(): @image_comparison(baseline_images=['EllipseCollection_test_image'], @@ -75,8 +87,21 @@ index c27aeb11a..969bf41cf 100644 remove_text=True) def test_EllipseCollection(): # Test basic functionality +diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py +index 9c36fb247..3834e4e26 100644 +--- a/lib/matplotlib/tests/test_constrainedlayout.py ++++ b/lib/matplotlib/tests/test_constrainedlayout.py +@@ -223,7 +223,7 @@ def test_constrained_layout9(): + + + @image_comparison(baseline_images=['constrained_layout10'], +- extensions=['png']) ++ extensions=['png'], tol=0.01) + def test_constrained_layout10(): + 'Test for handling legend outside axis' + fig, axs = plt.subplots(2, 2, constrained_layout=True) diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py -index eadaf2508..5d1144f5e 100644 +index 95611f36c..0a118b636 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -10,7 +10,7 @@ from cycler import cycler @@ -106,11 +131,24 @@ index eadaf2508..5d1144f5e 100644 def test_linestylecycle_basic(): fig = plt.figure() ax = fig.add_subplot(111) +diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py +index 229ce192c..0e7a10d46 100644 +--- a/lib/matplotlib/tests/test_figure.py ++++ b/lib/matplotlib/tests/test_figure.py +@@ -14,7 +14,7 @@ import numpy as np + import pytest + + +-@image_comparison(baseline_images=['figure_align_labels']) ++@image_comparison(baseline_images=['figure_align_labels'], tol=0.01) + def test_align_labels(): + # Check the figure.align_labels() command + fig = plt.figure(tight_layout=True) diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py -index fd6430d56..b4190713f 100644 +index 26e3b4a7e..2c7cedf74 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py -@@ -754,7 +754,7 @@ def test_imshow_endianess(): +@@ -784,7 +784,7 @@ def test_imshow_endianess(): @image_comparison(baseline_images=['imshow_masked_interpolation'], @@ -120,10 +158,10 @@ index fd6430d56..b4190713f 100644 cm = copy(plt.get_cmap('viridis')) diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py -index e63aa8ef9..d984bcac1 100644 +index 55b8adc77..1784ff966 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py -@@ -141,7 +141,7 @@ def test_multiple_keys(): +@@ -145,7 +145,7 @@ def test_multiple_keys(): @image_comparison(baseline_images=['rgba_alpha'], @@ -132,7 +170,7 @@ index e63aa8ef9..d984bcac1 100644 def test_alpha_rgba(): import matplotlib.pyplot as plt -@@ -152,7 +152,7 @@ def test_alpha_rgba(): +@@ -156,7 +156,7 @@ def test_alpha_rgba(): @image_comparison(baseline_images=['rcparam_alpha'], @@ -141,7 +179,7 @@ index e63aa8ef9..d984bcac1 100644 def test_alpha_rcparam(): import matplotlib.pyplot as plt -@@ -179,7 +179,7 @@ def test_fancy(): +@@ -183,7 +183,7 @@ def test_fancy(): ncol=2, shadow=True, title="My legend", numpoints=1) @@ -151,23 +189,23 @@ index e63aa8ef9..d984bcac1 100644 x = np.linspace(1, 100, 100) y = x diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py -index bd6ac6862..ea8afd807 100644 +index 89a5a512e..99051dee7 100644 --- a/lib/matplotlib/tests/test_pickle.py +++ b/lib/matplotlib/tests/test_pickle.py -@@ -41,7 +41,7 @@ def test_simple(): - pickle.dump(fig, BytesIO(), pickle.HIGHEST_PROTOCOL) +@@ -42,7 +42,7 @@ def test_simple(): - --@image_comparison(baseline_images=['multi_pickle'], -+@image_comparison(baseline_images=['multi_pickle'], tol=0.004, + @image_comparison(baseline_images=['multi_pickle'], extensions=['png'], remove_text=True, - style='mpl20') +- style='mpl20') ++ style='mpl20', tol=0.004) def test_complete(): + fig = plt.figure('Figure with a label?', figsize=(10, 6)) + diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py -index 9b78377b2..4994ba91d 100644 +index c50a0a896..a33fcccf0 100644 --- a/lib/matplotlib/tests/test_scale.py +++ b/lib/matplotlib/tests/test_scale.py -@@ -75,7 +75,7 @@ def test_extra_kwargs_raise(): +@@ -97,7 +97,7 @@ def test_logscale_transform_repr(): @image_comparison(baseline_images=['logscale_nonpos_values'], remove_text=True, @@ -177,7 +215,7 @@ index 9b78377b2..4994ba91d 100644 np.random.seed(19680801) xs = np.random.normal(size=int(1e3)) diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index aadcf6bfd..473991268 100644 +index 4f70ce861..4e52ed0c4 100644 --- a/lib/matplotlib/tests/test_streamplot.py +++ b/lib/matplotlib/tests/test_streamplot.py @@ -48,7 +48,7 @@ def test_colormap(): @@ -190,10 +228,10 @@ index aadcf6bfd..473991268 100644 X, Y, U, V = velocity_field() speed = np.sqrt(U*U + V*V) diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py -index f72ac2c60..781a3850e 100644 +index 65c8da7ea..c69d1d531 100644 --- a/lib/matplotlib/tests/test_units.py +++ b/lib/matplotlib/tests/test_units.py -@@ -39,7 +39,7 @@ class Quantity(object): +@@ -43,7 +43,7 @@ class Quantity(object): # Tests that the conversion machinery works properly for classes that # work as a facade over numpy arrays (like pint) @@ -202,7 +240,7 @@ index f72ac2c60..781a3850e 100644 extensions=['png'], remove_text=False, style='mpl20') def test_numpy_facade(): # Create an instance of the conversion interface and -@@ -83,7 +83,7 @@ def test_numpy_facade(): +@@ -87,7 +87,7 @@ def test_numpy_facade(): # Tests gh-8908 @@ -211,6 +249,19 @@ index f72ac2c60..781a3850e 100644 extensions=['png'], remove_text=True, style='mpl20') def test_plot_masked_units(): data = np.linspace(-5, 5) +diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py +index a7c637428..8fc5b25b1 100644 +--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py ++++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py +@@ -91,7 +91,7 @@ def test_custom_transform(): + + + @image_comparison(baseline_images=['polar_box'], +- extensions=['png'], style='default', tol=0.03) ++ extensions=['png'], style='default', tol=0.04) + def test_polar_box(): + fig = plt.figure(figsize=(5, 5)) + -- 2.14.3 diff --git a/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch b/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch deleted file mode 100644 index bc5d355..0000000 --- a/0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1e4e5f12b804561ab5b6bfa4ad76d44523d1568e Mon Sep 17 00:00:00 2001 -From: Elliott Sales de Andrade -Date: Tue, 23 Jan 2018 20:27:17 -0500 -Subject: [PATCH 3/4] Increase tolerances for FT 2.7.1 and other arches. - -Signed-off-by: Elliott Sales de Andrade ---- - lib/matplotlib/tests/test_patheffects.py | 2 +- - lib/matplotlib/tests/test_streamplot.py | 3 +-- - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py -index 9b8a4379c..e36d6deb6 100644 ---- a/lib/matplotlib/tests/test_patheffects.py -+++ b/lib/matplotlib/tests/test_patheffects.py -@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): - assert pe._offset == (4, 5) - - --@image_comparison(baseline_images=['collection'], tol=0.015) -+@image_comparison(baseline_images=['collection'], tol=0.019) - def test_collection(): - x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) - data = np.sin(x) + np.cos(y) -diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py -index 48f1e0683..aadcf6bfd 100644 ---- a/lib/matplotlib/tests/test_streamplot.py -+++ b/lib/matplotlib/tests/test_streamplot.py -@@ -58,8 +58,7 @@ def test_linewidth(): - linewidth=lw) - - --@image_comparison(baseline_images=['streamplot_masks_and_nans'], -- tol=0.04 if on_win else 0) -+@image_comparison(baseline_images=['streamplot_masks_and_nans'], tol=0.01) - def test_masks_and_nans(): - X, Y, U, V = velocity_field() - mask = np.zeros(U.shape, dtype=bool) --- -2.14.3 - diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 154df55..0ff4726 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -32,9 +32,12 @@ #global rctag rc1 +# The version of FreeType in this Fedora branch. +%global ftver 2.8 + Name: python-matplotlib -Version: 2.1.2 -Release: 4%{?rctag:.%{rctag}}%{?dist} +Version: 2.2.2 +Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library # qt4_editor backend is MIT License: Python and MIT @@ -42,19 +45,23 @@ URL: http://matplotlib.org Source0: https://github.com/matplotlib/matplotlib/archive/v%{version}%{?rctag}/matplotlib-%{version}%{?rctag}.tar.gz Source1: setup.cfg -# https://github.com/matplotlib/matplotlib/pull/10310 -Patch0001: 0001-Add-libdl-on-Unix-like-systems.patch +# Because the qhull package stopped shipping pkgconfig files. +# https://src.fedoraproject.org/rpms/qhull/pull-request/1 +Patch0001: 0001-Force-using-system-qhull.patch -# Fedora-specific patches. -# https://github.com/QuLogic/mpl-images -Source1000: matplotlib-%{version}-with-freetype-2.8.tar.gz +# Fedora-specific patches; see: # https://github.com/QuLogic/matplotlib/tree/fedora-patches -Patch1001: 0001-matplotlibrc-path-search-fix.patch -Patch1002: 0002-Increase-tolerances-for-FreeType-2.7.1.patch -Patch1003: 0003-Increase-tolerances-for-FT-2.7.1-and-other-arches.patch -Patch1004: 0004-Increase-some-tolerances-for-32-bit-systems.patch # https://github.com/QuLogic/matplotlib/tree/fedora-patches-non-x86 -Patch1005: 0004-Increase-some-tolerances-for-non-x86-arches.patch +# Updated test images for new FreeType. +Source1000: https://github.com/QuLogic/mpl-images/archive/v%{version}-with-freetype-%{ftver}/matplotlib-%{version}-with-freetype-%{ftver}.tar.gz +# Search in /etc/matplotlibrc: +Patch1001: 0001-matplotlibrc-path-search-fix.patch +# Image tolerances for anything but x86_64: +Patch1002: 0002-Increase-tolerances-for-non-x86_64-arches.patch +# Image tolerances for 32-bit systems: i686 armv7hl +Patch1003: 0003-Increase-some-tolerances-for-32-bit-systems.patch +# Image tolerances for 64-bit (but not x86_64) systems: aarch64 ppc64(le) s390x +Patch1004: 0003-Increase-some-tolerances-for-non-x86-arches.patch BuildRequires: freetype-devel BuildRequires: libpng-devel @@ -78,9 +85,11 @@ Summary: Python 2D plotting library BuildRequires: python2-numpy BuildRequires: python2-pyparsing BuildRequires: python2-dateutil +BuildRequires: python2-kiwisolver BuildRequires: python2-pyside BuildRequires: python2-setuptools BuildRequires: python2-six +BuildRequires: python2-sphinx BuildRequires: python2-subprocess32 BuildRequires: python2-devel BuildRequires: python2-backports-functools_lru_cache @@ -108,6 +117,7 @@ Requires: python2-numpy Requires: python2-pyparsing Requires: python2-cycler >= 0.10.0 Requires: python2-dateutil +Requires: python2-kiwisolver Requires: python2-backports-functools_lru_cache Requires: python-matplotlib-data = %{version}-%{release} %{?backend_subpackage:Requires: python2-matplotlib-%{backend_subpackage}%{?_isa} = %{version}-%{release}} @@ -252,17 +262,20 @@ BuildRequires: python3-dateutil BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-gobject +BuildRequires: python3-kiwisolver BuildRequires: python3-numpy BuildRequires: python3-pillow BuildRequires: python3-pyparsing BuildRequires: python3-pytz BuildRequires: python3-six +BuildRequires: python3-sphinx Requires: dejavu-sans-fonts Requires: dvipng Requires: python-matplotlib-data = %{version}-%{release} Requires: python3-cairo Requires: python3-cycler >= 0.10.0 Requires: python3-dateutil +Requires: python3-kiwisolver Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release} %if %{run_tests} BuildRequires: python3-pytest @@ -342,21 +355,17 @@ Requires: python3-tkinter # Fedora-specific patches follow: %patch1001 -p1 -# Updated test images for FreeType 2.8. -gzip -dc %SOURCE1000 | tar xvf - --transform='s~^\([^/]\+\)/~lib/\1/tests/baseline_images/~' -%ifarch i686 armv7hl -# Apply this because 32-bit output is a bit off. +# Updated test images for new FreeType. +gzip -dc %SOURCE1000 | tar xvf - --transform='s~^mpl-images-%{version}-with-freetype-%{ftver}/\([^/]\+\)/~lib/\1/tests/baseline_images/~' +%ifnarch x86_64 %patch1002 -p1 %endif -%ifnarch x86_64 -%patch1003 -p1 -%endif %ifarch aarch64 ppc64 ppc64le s390x -%patch1005 -p1 -%endif -%ifarch i686 %patch1004 -p1 %endif +%ifarch i686 armv7hl +%patch1003 -p1 +%endif rm -r extern/libqhull # Copy setup.cfg to the builddir @@ -436,13 +445,14 @@ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python2_sitearch} \ xvfb-run -a -s "-screen 0 640x480x24" \ %{__python2} -m pytest --pyargs matplotlib -ra -n $(getconf _NPROCESSORS_ONLN) \ - -m 'not network' -k 'not test_polycollection_close' + -m 'not network' -k 'not test_polycollection_close and not test_if_rctemplate' MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python3_sitearch} \ xvfb-run -a -s "-screen 0 640x480x24" \ - %{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) -m 'not network' + %{__python3} tests.py -ra -n $(getconf _NPROCESSORS_ONLN) \ + -m 'not network' -k 'not test_if_rctemplate' %endif # run_tests %files -n python-matplotlib-data @@ -459,7 +469,7 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %files -n python2-matplotlib %license LICENSE/ -%doc README.rst CONTRIBUTING.md +%doc README.rst %{python2_sitearch}/*egg-info %{python2_sitearch}/matplotlib-*-nspkg.pth %{python2_sitearch}/matplotlib/ @@ -513,7 +523,7 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %files -n python3-matplotlib %license LICENSE/ -%doc README.rst CONTRIBUTING.md +%doc README.rst %{python3_sitearch}/*egg-info %{python3_sitearch}/matplotlib-*-nspkg.pth %{python3_sitearch}/matplotlib/ @@ -559,6 +569,9 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} \ %{python3_sitearch}/matplotlib/backends/_tkagg.* %changelog +* Sat Mar 31 2018 Elliott Sales de Andrade - 2.2.2-1 +- Update to latest release + * Tue Mar 13 2018 Elliott Sales de Andrade - 2.1.2-4 - Run tests in parallel diff --git a/sources b/sources index 33a00ad..94d92e1 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (matplotlib-2.1.2.tar.gz) = fd93901b12a7f47cdc36d38d18de43b0cc8623dcd5597cfc1177e63cf90b0c87f718135176e2c077cd1316566a394e09e8e8e9db2ce128ee7f03021cac45543e SHA512 (matplotlib-2.1.2-with-freetype-2.8.tar.gz) = abe03cf24d653ecaefcda56b60631b7200d7e2d5078801f61270d5329da8e6767773a1347a1c9c7b457a0a12427c345d70e700c156dedab27275875f5bcbc439 +SHA512 (matplotlib-2.2.2-with-freetype-2.8.tar.gz) = b31a56ee3594ec50ad6980112b435ae7cb37a0c5826f13997c5ec432c8158e584d3ef58204bff1cd2cb702dc6f050f4daea47576bd1982f40746b424da056d4d