From 5ff9cbe46037a9d91a3348576e40e8af3cf93781 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Oct 03 2017 03:20:12 +0000 Subject: Update to 2.1.0 rc1. --- diff --git a/.gitignore b/.gitignore index 0e7af29..fbb431c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ matplotlib-1.0.0-without-gpc.tar.gz /matplotlib-2.0.0-without-copyrighted.tar.xz /matplotlib-2.0.1.tar.gz /matplotlib-2.0.2.tar.gz +/matplotlib-2.1.0rc1.tar.gz diff --git a/20_matplotlibrc_path_search_fix.patch b/20_matplotlibrc_path_search_fix.patch index 32cd91e..d449500 100644 --- a/20_matplotlibrc_path_search_fix.patch +++ b/20_matplotlibrc_path_search_fix.patch @@ -1,6 +1,6 @@ --- a/lib/matplotlib/__init__.py 2016-04-04 12:54:26.427194940 +0200 +++ b/lib/matplotlib/__init__.py 2016-04-04 12:56:12.662590255 +0200 -@@ -713,9 +713,12 @@ def _get_data_path(): +@@ -635,9 +635,12 @@ def _get_data_path(): _file = _decode_filesystem_path(__file__) path = os.sep.join([os.path.dirname(_file), 'mpl-data']) @@ -13,12 +13,12 @@ # setuptools' namespace_packages may highjack this init file # so need to try something known to be in matplotlib, not basemap import matplotlib.afm -@@ -843,7 +846,7 @@ def matplotlib_fname(): - home, '.matplotlib', 'matplotlibrc') - return fname +@@ -731,7 +734,7 @@ def matplotlib_fname(): + yield matplotlibrc + yield os.path.join(matplotlibrc, 'matplotlibrc') + yield os.path.join(_get_configdir(), 'matplotlibrc') +- yield os.path.join(get_data_path(), 'matplotlibrc') ++ yield '/etc/matplotlibrc' -- path = get_data_path() # guaranteed to exist or raise -+ path = '/etc' # guaranteed to exist or raise - fname = os.path.join(path, 'matplotlibrc') - if not os.path.exists(fname): - warnings.warn('Could not find matplotlibrc; using defaults') + for fname in gen_candidates(): + if os.path.isfile(fname): diff --git a/python-matplotlib-disable-failing-tests-arm.patch b/python-matplotlib-disable-failing-tests-arm.patch index 3653fdb..69f1027 100644 --- a/python-matplotlib-disable-failing-tests-arm.patch +++ b/python-matplotlib-disable-failing-tests-arm.patch @@ -1,7 +1,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1.5.1/lib/matplotlib/tests/test_image.py --- matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests 2016-05-23 14:04:41.000000000 +0200 +++ matplotlib-1.5.1/lib/matplotlib/tests/test_image.py 2016-06-02 00:28:37.076703843 +0200 -@@ -217,7 +217,8 @@ def test_cursor_data(): +@@ -200,7 +200,8 @@ def test_cursor_data(): event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) @@ -11,7 +11,7 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1. # Hmm, something is wrong here... I get 0, not None... # But, this works further down in the tests with extents flipped -@@ -255,14 +256,16 @@ def test_cursor_data(): +@@ -238,14 +239,16 @@ def test_cursor_data(): event = MouseEvent('motion_notify_event', fig.canvas, xdisp, ydisp) z = im.get_cursor_data(event) @@ -29,4 +29,4 @@ diff -up matplotlib-1.5.1/lib/matplotlib/tests/test_image.py.tests matplotlib-1. + #assert z is None, "Did not get None, got %d" % z - @image_comparison(baseline_images=['image_clip']) + @image_comparison(baseline_images=['image_clip'], style='mpl20') diff --git a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch index c3db33a..3f5fc38 100644 --- a/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch +++ b/python-matplotlib-increase-tests-tolerance-aarch64ppc64.patch @@ -1,6 +1,6 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:28:07.736224906 -0800 -@@ -1322,7 +1322,7 @@ def test_contour_colorbar(): +@@ -1529,7 +1529,7 @@ def test_contour_colorbar(): cbar.add_lines(cs2, erase=False) @@ -8,103 +8,30 @@ +@image_comparison(baseline_images=['hist2d', 'hist2d'], tol=10.677) def test_hist2d(): np.random.seed(0) - # make it not symetric in case we switch x and y axis + # make it not symmetric in case we switch x and y axis --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mlab.py.new 2017-01-07 21:30:47.502916717 -0800 -@@ -2279,90 +2279,6 @@ class spectral_testcase_nosig_complex_defaultsided( - iscomplex=True, sides='default', nsides=2) - - --class spectral_testcase_Fs4_real_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='onesided', nsides=1) -- -- --class spectral_testcase_Fs4_real_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='twosided', nsides=2) -- -- --class spectral_testcase_Fs4_real_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=False, sides='default', nsides=1) -- -- --class spectral_testcase_Fs4_complex_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='onesided', nsides=1) -- -- --class spectral_testcase_Fs4_complex_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='twosided', nsides=2) -- -- --class spectral_testcase_Fs4_complex_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4], -- iscomplex=True, sides='default', nsides=2) -- -- --class spectral_testcase_FsAll_real_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='onesided', nsides=1) -- -- --class spectral_testcase_FsAll_real_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='twosided', nsides=2) -- -- --class spectral_testcase_FsAll_real_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=False, sides='default', nsides=1) -- -- --class spectral_testcase_FsAll_complex_onesided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='onesided', nsides=1) -- -- --class spectral_testcase_FsAll_complex_twosided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='twosided', nsides=2) -- -- --class spectral_testcase_FsAll_complex_defaultsided( -- spectral_testcase_nosig_real_onesided): -- def setUp(self): -- self.createStim(fstims=[4, 5, 10], -- iscomplex=True, sides='default', nsides=2) -- -- - class spectral_testcase_nosig_real_onesided_noNFFT( - spectral_testcase_nosig_real_onesided): - def setUp(self): +@@ -1153,8 +1153,6 @@ class TestDetrend(object): + 'fstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrum', + [ + ([], None, -1, -1, -1, -1), +- ([4], None, -1, -1, -1, -1), +- ([4, 5, 10], None, -1, -1, -1, -1), + ([], None, None, -1, -1, None), + ([], None, -1, -1, None, None), + ([], None, None, -1, None, None), +@@ -1166,8 +1164,6 @@ class TestDetrend(object): + ], + ids=[ + 'nosig', +- 'Fs4', +- 'FsAll', + 'nosig_noNFFT', + 'nosig_nopad_to', + 'nosig_noNFFT_no_pad_to', --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_quiver.py.new 2017-01-07 21:29:53.441682625 -0800 -@@ -135,7 +135,7 @@ def test_quiver_key_pivot(): +@@ -130,7 +130,7 @@ def test_quiver_key_pivot(): ax.quiverkey(q, 0, 0.5, 1, 'W', labelpos='W') @@ -115,7 +42,7 @@ x = np.linspace(-5, 5, 5) --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ def test_external_transform_api(): +@@ -75,7 +75,7 @@ def test_external_transform_api(): @image_comparison(baseline_images=['pre_transform_data'], diff --git a/python-matplotlib-increase-tests-tolerance-i686.patch b/python-matplotlib-increase-tests-tolerance-i686.patch index 06c77d0..4622676 100644 --- a/python-matplotlib-increase-tests-tolerance-i686.patch +++ b/python-matplotlib-increase-tests-tolerance-i686.patch @@ -1,7 +1,7 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_axes.py.new 2017-01-07 21:35:06.874039829 -0800 -@@ -389,7 +389,7 @@ def test_single_point(): - plt.plot('b','b', 'o', data=data) +@@ -481,7 +481,7 @@ def test_single_point(): + plt.plot('b', 'b', 'o', data=data) -@image_comparison(baseline_images=['single_date']) @@ -9,7 +9,7 @@ def test_single_date(): time1 = [721964.0] data1 = [-65.54] -@@ -4759,7 +4759,7 @@ def test_date_timezone_y(): +@@ -5057,7 +5057,7 @@ def test_date_timezone_y(): @image_comparison(baseline_images=['date_timezone_x_and_y'], @@ -20,7 +20,7 @@ time_index = [pytz.timezone('UTC').localize(datetime.datetime( --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_collections.py.new 2017-01-07 21:35:52.016235301 -0800 -@@ -489,7 +489,7 @@ def test_EllipseCollection(): +@@ -467,7 +467,7 @@ def test_EllipseCollection(): ax.autoscale_view() @@ -31,7 +31,7 @@ from mpl_toolkits.mplot3d import Axes3D --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_contour.py.new 2017-01-07 21:36:29.283396673 -0800 -@@ -233,7 +233,7 @@ def test_contour_datetime_axis(): +@@ -234,7 +234,7 @@ def test_contour_datetime_axis(): label.set_rotation(30) @@ -42,7 +42,7 @@ # Adapted from pylab_examples example code: contour_demo.py --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_transforms.py.new 2017-01-07 21:21:29.478503151 -0800 -@@ -82,7 +82,7 @@ def test_external_transform_api(): +@@ -75,7 +75,7 @@ def test_external_transform_api(): @image_comparison(baseline_images=['pre_transform_data'], @@ -53,7 +53,7 @@ # pre-transforming the data NOTE: The axis range is important in this --- matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/mpl_toolkits/tests/test_mplot3d.py.new 2017-01-07 21:37:04.144547626 -0800 -@@ -171,7 +171,7 @@ def test_text3d(): +@@ -198,7 +198,7 @@ def test_text3d(): ax.set_zlabel('Z axis') diff --git a/python-matplotlib-increase-tests-tolerance.patch b/python-matplotlib-increase-tests-tolerance.patch index 0abeef9..def952f 100644 --- a/python-matplotlib-increase-tests-tolerance.patch +++ b/python-matplotlib-increase-tests-tolerance.patch @@ -1,29 +1,38 @@ --- matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/testing/decorators.py.new 2017-01-07 21:19:51.078081193 -0800 -@@ -266,7 +266,7 @@ class ImageComparisonTest(CleanupTest): +@@ -406,7 +406,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol, + return decorator - yield do_test, fignum, actual_fname, expected_fname --def image_comparison(baseline_images=None, extensions=None, tol=0, -+def image_comparison(baseline_images=None, extensions=None, tol=0.306, +-def image_comparison(baseline_images, extensions=None, tol=0, ++def image_comparison(baseline_images, extensions=None, tol=0.306, freetype_version=None, remove_text=False, - savefig_kwarg=None, style='_classic_test'): - """ + savefig_kwarg=None, + # Default of mpl_test_settings fixture and cleanup too. --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_mathtext.py.new 2017-01-07 22:02:42.396426402 -0800 -@@ -159,7 +159,7 @@ for fonts, chars in font_test_specs: - - def make_set(basename, fontset, tests, extensions=None): - def make_test(filename, test): -- @image_comparison(baseline_images=[filename], extensions=extensions) -+ @image_comparison(baseline_images=[filename], extensions=extensions, tol=0.310) - def single_test(): - matplotlib.rcParams['mathtext.fontset'] = fontset - fig = plt.figure(figsize=(5.25, 0.75)) +@@ -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.310) + 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.310) + def test_mathfont_rendering(baseline_images, fontset, index, test): + matplotlib.rcParams['mathtext.fontset'] = fontset + fig = plt.figure(figsize=(5.25, 0.75)) --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_patheffects.py.new 2017-01-07 21:21:08.014411109 -0800 -@@ -138,7 +138,7 @@ def test_SimplePatchShadow_offset(): - assert_equal(pe._offset, (4, 5)) +@@ -125,7 +125,7 @@ def test_SimplePatchShadow_offset(): + assert pe._offset == (4, 5) -@image_comparison(baseline_images=['collection'], tol=0.015) @@ -31,20 +40,9 @@ def test_collection(): x, y = np.meshgrid(np.linspace(0, 10, 150), np.linspace(-5, 5, 100)) data = np.sin(x) + np.cos(y) ---- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py 2016-12-18 11:40:53.000000000 -0800 -+++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_png.py.new 2017-01-07 21:20:22.388215456 -0800 -@@ -17,7 +17,7 @@ on_win = (sys.platform == 'win32') - - - @image_comparison(baseline_images=['pngsuite'], extensions=['png'], -- tol=0.01 if on_win else 0) -+ tol=0.014) - def test_pngsuite(): - dirname = os.path.join( - os.path.dirname(__file__), --- matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py 2016-12-18 11:40:53.000000000 -0800 +++ matplotlib-2.0.0rc2/lib/matplotlib/tests/test_streamplot.py.new 2017-01-07 21:20:42.180300328 -0800 -@@ -18,7 +18,7 @@ def velocity_field(): +@@ -36,7 +36,7 @@ def test_startpoints(): @image_comparison(baseline_images=['streamplot_colormap'], diff --git a/python-matplotlib.spec b/python-matplotlib.spec index c227a98..49a1540 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -51,10 +51,10 @@ # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name} -#global rctag rc2 +%global rctag rc1 Name: python-matplotlib -Version: 2.0.2 +Version: 2.1.0 Release: 1%{?rctag:.%{rctag}}%{?dist} Summary: Python 2D plotting library Group: Development/Libraries @@ -67,8 +67,6 @@ Source1: setup.cfg Patch2: 20_matplotlibrc_path_search_fix.patch # https://github.com/matplotlib/matplotlib/issues/6538 Patch8: python-matplotlib-disable-failing-tests-arm.patch -# https://github.com/matplotlib/matplotlib/issues/6791 -Patch9: python-matplotlib-qhull.patch # https://github.com/matplotlib/matplotlib/issues/7134 # https://github.com/matplotlib/matplotlib/issues/7158 # https://github.com/matplotlib/matplotlib/issues/7159 @@ -99,13 +97,13 @@ Summary: Python 2D plotting library BuildRequires: numpy BuildRequires: pyparsing BuildRequires: python-dateutil -BuildRequires: python-pycxx-devel BuildRequires: python-pyside BuildRequires: python-setuptools BuildRequires: python-six BuildRequires: python-subprocess32 BuildRequires: python2-devel -BuildRequires: python2-functools32 +BuildRequires: python2-backports +BuildRequires: python2-backports-functools_lru_cache BuildRequires: python2-pillow BuildRequires: pytz %if %{with_html} @@ -119,7 +117,7 @@ BuildRequires: python2-colorspacious BuildRequires: python2-cycler >= 0.10.0 %endif %if %{run_tests} -BuildRequires: python-nose +BuildRequires: python2-pytest BuildRequires: python2-cycler >= 0.10.0 BuildRequires: python2-mock %endif @@ -129,7 +127,7 @@ Requires: numpy Requires: pyparsing Requires: python2-cycler >= 0.10.0 Requires: python-dateutil -Requires: python2-functools32 +Requires: python2-backports-functools_lru_cache Requires: python-matplotlib-data = %{version}-%{release} %{?backend_subpackage:Requires: python2-matplotlib-%{backend_subpackage}%{?_isa} = %{version}-%{release}} Recommends: python2-pillow @@ -292,7 +290,6 @@ BuildRequires: python3-setuptools BuildRequires: python3-gobject BuildRequires: python3-numpy BuildRequires: python3-pillow -BuildRequires: python3-pycxx-devel BuildRequires: python3-pyparsing BuildRequires: python3-pytz BuildRequires: python3-six @@ -304,8 +301,7 @@ Requires: python3-cycler >= 0.10.0 Requires: python3-dateutil Requires: python3-matplotlib-%{?backend_subpackage}%{!?backend_subpackage:tk}%{?_isa} = %{version}-%{release} %if %{run_tests} -BuildRequires: python3-mock -BuildRequires: python3-nose +BuildRequires: python3-pytest %endif Requires: python3-numpy Recommends: python3-pillow @@ -388,7 +384,7 @@ Requires: python3-tkinter %prep %setup -q -n matplotlib-%{version}%{?rctag} -rm -r extern/qhull +rm -r extern/libqhull # Copy setup.cfg to the builddir sed 's/\(backend = \).*/\1%{backend}/' >setup.cfg <%{SOURCE1} @@ -411,10 +407,6 @@ sed -i 's/\(USE_FONTCONFIG = \)False/\1True/' lib/matplotlib/font_manager.py %patch8 -p1 -b .tests-arm %endif -%if 0%{?fedora} > 24 -# Installation paths changed -%patch9 -p1 -b .qh -%endif %patch10 -p1 -b .tests %ifarch aarch64 %{power64} s390 s390x %patch11 -p1 -b .tests-aarch64ppc64 @@ -474,19 +466,22 @@ rm -fr %{buildroot}%{python3_sitearch}/matplotlib/mpl-data %if %{run_tests} %check +# These files confuse pytest, and we want to test the installed copy. +rm -rf build*/ + export http_proxy=http://127.0.0.1/ # This should match the default backend echo "backend : %{backend}" > matplotlibrc MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python2_sitearch} \ - xvfb-run -a %{__python2} tests.py --no-network --processes=$(getconf _NPROCESSORS_ONLN) --process-timeout=300 + xvfb-run -a %{__python2} -m pytest -m 'not network' --pyargs matplotlib -ra %if %{with_python3} MPLCONFIGDIR=$PWD \ MATPLOTLIBDATA=%{buildroot}%{_datadir}/matplotlib/mpl-data \ PYTHONPATH=%{buildroot}%{python3_sitearch} \ - xvfb-run -a %{__python3} tests.py --no-network --processes=$(getconf _NPROCESSORS_ONLN) --process-timeout=300 + xvfb-run -a %{__python3} -m pytest -m 'not network' --pyargs matplotlib -ra %endif %endif # run_tests diff --git a/setup.cfg b/setup.cfg index a68796b..978e5f4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,7 @@ [packages] tests = True +toolkits = True +toolkits_tests = True [rc_options] backend = GTKAgg diff --git a/sources b/sources index 59daa0d..e3fa4e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (matplotlib-2.0.2.tar.gz) = 154117eeb2a285bb3cd4a7e31b4a9681d036af558ad3c5b79a37916ca57e0961b1836ee4ce92bc5aef32fa64a7c980047d6c3d75cd529c8c51d6cabd152942fc +SHA512 (matplotlib-2.1.0rc1.tar.gz) = 192a9d3de0d2e5e11dd4a4a937367424dccc25f2bd804f3d0dfdadc3115d06125d1ffb7852c77d4eea0d8de06f991b3b8dd995346b9591bbecee6c83014aa0d9