Hello community, here is the log from the commit of package python-matplotlib for openSUSE:Factory checked in at 2017-10-17 01:52:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-matplotlib (Old) and /work/SRC/openSUSE:Factory/.python-matplotlib.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-matplotlib" Tue Oct 17 01:52:04 2017 rev:55 rq:533942 version:2.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-matplotlib/python-matplotlib.changes 2017-08-13 14:59:10.056979171 +0200 +++ /work/SRC/openSUSE:Factory/.python-matplotlib.new/python-matplotlib.changes 2017-10-17 01:52:05.475633952 +0200 @@ -1,0 +2,30 @@ +Mon Oct 9 22:33:02 UTC 2017 - [email protected] + +- Fix/enhance build with tests: + - set PYTHONPATH, otherwise tests will not find the python + modules installed to the buildroot + - Add BuildRequires for several tex styles/resources + - Add BuildRequires: xorg-x11-Xvfb, needed for Qt backend tests + - Remove python-Pillow, tests are only using png, not e.g jpeg + - increase image compare tolerance, our Freetype 2.7 renders + slightly different to the baseline FT 2.6 + - Add upstream 0001-Allow-divmod-to-be-overridden-by-num.patch, + to cope with numpy 1.13 changes + - Add upstream 166a14473272_Fix-contour-colour-level-determination.patch + - Add upstream 97e170d2fc2c_Pass-integers-to-np_linspace.patch + +------------------------------------------------------------------- +Mon Oct 9 03:11:03 UTC 2017 - [email protected] + +- Also remove runtime-only python-tk dependecy from BuildRequires: + +------------------------------------------------------------------- +Sat Oct 7 23:16:35 UTC 2017 - [email protected] + +- Rebase the matplotlib setup.cfg on upstream version +- Guard several BuildRequires: which are not necessary for building + with the "tests" conditional, most backends are pure python +- Do not install/package baseline images only necessary for tests, + shrinks the main package by 60 MByte + +------------------------------------------------------------------- New: ---- 0001-Allow-divmod-to-be-overridden-by-num.patch 166a14473272_Fix-contour-colour-level-determination.patch 166a14473272_contour_manual_colors_and_levels.png 97e170d2fc2c_Pass-integers-to-np_linspace.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-matplotlib.spec ++++++ --- /var/tmp/diff_new_pack.J3MMK8/_old 2017-10-17 01:52:08.299501673 +0200 +++ /var/tmp/diff_new_pack.J3MMK8/_new 2017-10-17 01:52:08.303501486 +0200 @@ -16,24 +16,10 @@ # -#Not doing tests because they take too long +# Not doing tests because they take too long +# The tests also pull in dependencies of all backends done in pure python %bcond_with tests -# backend dependencies missing on Leap 42.2 i596 and all versions of SLE -%if 0%{?is_opensuse} -%ifarch %{ix86} -%if 0%{?leap_version} == 420200 -%bcond_with backends -%else -%bcond_without backends -%endif -%else -%bcond_without backends -%endif -%else -%bcond_with backends -%endif - %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define oldpython python Name: python-matplotlib @@ -45,16 +31,19 @@ Url: http://matplotlib.org Source: https://files.pythonhosted.org/packages/source/m/matplotlib/matplotlib-%{version}.tar.gz Source1: matplotlib-setup.cfg +Source2: 166a14473272_contour_manual_colors_and_levels.png # PATCH-FIX-OPENSUSE 0001-Fix-include-path-for-system-libqhull.patch [email protected] -- avoid using bundled qhull, fixed in mpl 2.1.0 Patch0: 0001-Fix-include-path-for-system-libqhull.patch +# PATCH-FIX-UPSTREAM 0001-Allow-divmod-to-be-overridden-by-num.patch [email protected] -- fix testcase https://github.com/matplotlib/matplotlib/pull/8735.patch +Patch1: 0001-Allow-divmod-to-be-overridden-by-num.patch +# PATCH-FIX-UPSTREAM 166a14473272_Fix-contour-colour-level-determination.patch [email protected] - fix countours https://github.com/matplotlib/matplotlib/commit/166a14473272.patch +Patch2: 166a14473272_Fix-contour-colour-level-determination.patch +# PATCH-FIX-UPSTREAM 97e170d2fc2c_Pass-integers-to-np_linspace.patch [email protected] - fix geo projections https://github.com/matplotlib/matplotlib/commit/97e170d2fc2c.patch +Patch3: 97e170d2fc2c_Pass-integers-to-np_linspace.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: c++_compiler BuildRequires: fdupes -BuildRequires: fltk-devel -BuildRequires: ghostscript -BuildRequires: libxml2-tools BuildRequires: pkg-config -BuildRequires: poppler-tools BuildRequires: python-rpm-macros BuildRequires: qhull-devel >= 2003.1 BuildRequires: pkgconfig(freetype2) >= 2.3 @@ -64,12 +53,10 @@ BuildRequires: python-subprocess32 # Needed for all versions of python BuildRequires: %{python_module Cycler} -BuildRequires: %{python_module Pillow} BuildRequires: %{python_module devel} BuildRequires: %{python_module numpy >= 1.6} BuildRequires: %{python_module numpy-devel >= 1.6} BuildRequires: %{python_module pyparsing >= 1.5.6} -BuildRequires: %{python_module python-dateutil >= 1.1} BuildRequires: %{python_module pytz} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module six >= 1.3} @@ -77,40 +64,46 @@ %if %{with tests} BuildRequires: %{python_module mock} BuildRequires: %{python_module nose} +BuildRequires: %{python_module python-dateutil >= 1.1} BuildRequires: inkscape -%endif # latex dependencies +BuildRequires: ghostscript +BuildRequires: poppler-tools BuildRequires: texlive-dvipng BuildRequires: texlive-latex BuildRequires: texlive-tex %if 0%{?is_opensuse} BuildRequires: texlive-sfmath +BuildRequires: tex(8a.enc) +BuildRequires: tex(helvet.sty) +BuildRequires: tex(phvr7t.tfm) +BuildRequires: tex(pncr7t.tfm) +BuildRequires: tex(psfrag.sty) +BuildRequires: tex(type1cm.sty) +BuildRequires: tex(ucs.sty) %endif -%if %{with backends} # cairo dependencies BuildRequires: %{python_module cairocffi} # GTK3 dependencies -BuildRequires: %{python_module gobject-devel} BuildRequires: %{python_module gobject} BuildRequires: pkgconfig(gtk+-3.0) # Qt4 dependencies -BuildRequires: %{python_module qt4-devel} BuildRequires: %{python_module qt4} # Qt5 dependencies -BuildRequires: %{python_module qt5-devel} BuildRequires: %{python_module qt5} +# Wx dependencies (currently Python 2 only) +BuildRequires: python-wxWidgets >= 3 # tk dependencies BuildRequires: %{python_module tk} +# X server needed for Qt4/Qt5 tests +BuildRequires: xorg-x11-Xvfb +%endif +# tk dependencies via tcl BuildRequires: tcl -BuildRequires: tk BuildRequires: pkgconfig(tcl) -BuildRequires: pkgconfig(tk) # WebAgg dependencies BuildRequires: %{python_module tornado} -# Wx dependencies (currently Python 2 only) -BuildRequires: python-wxWidgets -BuildRequires: wxWidgets-devel >= 3 -%endif +# End of backend dependencies Requires: python-Cycler Requires: python-numpy >= 1.6 Requires: python-pyparsing >= 1.5.6 @@ -253,12 +246,27 @@ %prep %setup -q -n matplotlib-%{version} %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 chmod -x lib/matplotlib/mpl-data/images/*.svg find examples lib/matplotlib lib/mpl_toolkits/mplot3d -type f -name "*.py" -exec sed -i "s|#!\/usr\/bin\/env python||" {} \; find examples lib/matplotlib lib/mpl_toolkits/mplot3d -type f -name "*.py" -exec sed -i "s|#!\/usr\/bin\/python||" {} \; +cp %{SOURCE1} ./setup.cfg + +%if %{without tests} +sed -i -e 's/tests = .*/tests = False/' ./setup.cfg +%else +cp %{SOURCE2} lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png +# raise tolerance for changes due to freetype 2.6/2.7 rendering differences +sed -i -e 's/\(image_comparison.*\)tol=0/\1tol=0.310/' lib/matplotlib/testing/decorators.py # default +sed -i -e 's/tol=0.002/tol=0.009/' lib/matplotlib/tests/test_streamplot.py +sed -i -e 's/tol=0.*)/tol=0.012)/' lib/matplotlib/tests/test_png.py +# image rotation is broken, investigate +sed -i -e 's/\(image_comparison.*rotate_image.*\)/\1 tol=150,/' lib/matplotlib/tests/test_image.py +%endif %build -cp %{SOURCE1} ./setup.cfg export XDG_RUNTIME_DIR=/tmp %python_build @@ -273,7 +281,10 @@ %if %{with tests} %check -%python_exec tests.py +export DISPLAY=:42 +/usr/bin/Xvfb :42 -screen 0 1024x768x24 >& /tmp/Xvfb.log & +trap "kill $! || true" EXIT +%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} $python ./tests.py --no-network --recursionlimit=5000 %endif %files %{python_files} @@ -353,7 +364,7 @@ # IMPORTANT: the qt4 backend makes use of the qt5 backend, # which is actually a generic qt backend. # So we need to package all the qt5 stuff in a generic -# package, and provide the -1t5 stub package which pulls in +# package, and provide the -qt5 stub package which pulls in # the python-qt5 dependency. %files %{python_files qt-shared} %defattr(-,root,root,-) ++++++ 0001-Allow-divmod-to-be-overridden-by-num.patch ++++++ >From 4d26d74c69bea97dcd24986f95345da0b3591df9 Mon Sep 17 00:00:00 2001 From: David Stansby <[email protected]> Date: Fri, 9 Jun 2017 17:55:37 +0100 Subject: [PATCH] Allow divmod to be overridden by numpy --- lib/matplotlib/tests/test_basic.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/tests/test_basic.py b/lib/matplotlib/tests/test_basic.py index 236e0d9e7d8..945e78322b3 100644 --- a/lib/matplotlib/tests/test_basic.py +++ b/lib/matplotlib/tests/test_basic.py @@ -20,7 +20,8 @@ def test_override_builtins(): '__spec__', 'any', 'all', - 'sum' + 'sum', + 'divmod' ]) # We could use six.moves.builtins here, but that seems ++++++ 166a14473272_Fix-contour-colour-level-determination.patch ++++++ >From 85896728ab6276da7b61f023acd7756cc73cf15d Mon Sep 17 00:00:00 2001 From: David Stansby <[email protected]> Date: Fri, 9 Jun 2017 19:26:11 +0100 Subject: [PATCH 1/2] Fix contour colour level determination --- lib/matplotlib/contour.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 82d9fb02331..5d3fc1126c0 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -1254,11 +1254,11 @@ def _process_colors(self): i0, i1 = 0, len(self.levels) if self.filled: i1 -= 1 - # Out of range indices for over and under: - if self.extend in ('both', 'min'): - i0 = -1 - if self.extend in ('both', 'max'): - i1 += 1 + # Out of range indices for over and under: + if self.extend in ('both', 'min'): + i0 -= 1 + if self.extend in ('both', 'max'): + i1 += 1 self.cvalues = list(range(i0, i1)) self.set_norm(colors.NoNorm()) else: >From 73e2c0ff996668951aa5b5035f43452b341b3712 Mon Sep 17 00:00:00 2001 From: David Stansby <[email protected]> Date: Fri, 9 Jun 2017 19:27:07 +0100 Subject: [PATCH 2/2] Correct contour level test --- .../contour_manual_colors_and_levels.png | Bin 28760 -> 28921 bytes lib/matplotlib/tests/test_contour.py | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png [added as Source] diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index 5e2211066f3..eb2be0991ad 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -168,21 +168,22 @@ def test_given_colors_levels_and_extends(): levels = [2, 4, 8, 10] for i, ax in enumerate(axes.flatten()): - plt.sca(ax) - filled = i % 2 == 0. extend = ['neither', 'min', 'max', 'both'][i // 2] if filled: - last_color = -1 if extend in ['min', 'max'] else None - plt.contourf(data, colors=colors[:last_color], levels=levels, - extend=extend) + # If filled, we have 3 colors with no extension, + # 4 colors with one extension, and 5 colors with both extensions + first_color = 1 if extend in ['max', 'neither'] else None + last_color = -1 if extend in ['min', 'neither'] else None + c = ax.contourf(data, colors=colors[first_color:last_color], + levels=levels, extend=extend) else: - last_level = -1 if extend == 'both' else None - plt.contour(data, colors=colors, levels=levels[:last_level], - extend=extend) + # If not filled, we have 4 levels and 4 colors + c = ax.contour(data, colors=colors[:-1], + levels=levels, extend=extend) - plt.colorbar() + plt.colorbar(c, ax=ax) @image_comparison(baseline_images=['contour_datetime_axis'], ++++++ 97e170d2fc2c_Pass-integers-to-np_linspace.patch ++++++ >From 97e170d2fc2c2e8771148ea031bf39cdce3a014d Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade <[email protected]> Date: Wed, 7 Dec 2016 00:14:07 -0500 Subject: [PATCH] Pass integers to np.linspace/np.logspace's count. This fixes "DeprecationWarning: object of type <class 'float'> cannot be safely interpreted as an integer." raised by latest NumPy. --- examples/api/custom_projection_example.py | 4 ++-- lib/matplotlib/projections/geo.py | 4 ++-- lib/matplotlib/tests/test_path.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/api/custom_projection_example.py b/examples/api/custom_projection_example.py index 7dc0ca2b1e4..b8c13eff733 100644 --- a/examples/api/custom_projection_example.py +++ b/examples/api/custom_projection_example.py @@ -298,7 +298,7 @@ def set_longitude_grid(self, degrees): class -- it provides a more convenient interface to set the ticking than set_xticks would. """ - number = (360.0 / degrees) + 1 + number = int(360 / degrees) + 1 self.xaxis.set_major_locator( FixedLocator( np.linspace(-np.pi, np.pi, number, True)[1:-1])) @@ -312,7 +312,7 @@ def set_latitude_grid(self, degrees): class -- it provides a more convenient interface than set_yticks would. """ - number = (180.0 / degrees) + 1 + number = int(180 / degrees) + 1 self.yaxis.set_major_locator( FixedLocator( np.linspace(-np.pi / 2.0, np.pi / 2.0, number, True)[1:-1])) diff --git a/lib/matplotlib/projections/geo.py b/lib/matplotlib/projections/geo.py index a428b1380cb..e834f008795 100644 --- a/lib/matplotlib/projections/geo.py +++ b/lib/matplotlib/projections/geo.py @@ -190,7 +190,7 @@ def set_longitude_grid(self, degrees): """ Set the number of degrees between each longitude grid. """ - number = (360.0 / degrees) + 1 + number = int(360 / degrees) + 1 self.xaxis.set_major_locator( FixedLocator( np.linspace(-np.pi, np.pi, number, True)[1:-1])) @@ -201,7 +201,7 @@ def set_latitude_grid(self, degrees): """ Set the number of degrees between each longitude grid. """ - number = (180.0 / degrees) + 1 + number = int(180 / degrees) + 1 self.yaxis.set_major_locator( FixedLocator( np.linspace(-np.pi / 2.0, np.pi / 2.0, number, True)[1:-1])) diff --git a/lib/matplotlib/tests/test_path.py b/lib/matplotlib/tests/test_path.py index c29289ae81f..71fcb7c89bc 100644 --- a/lib/matplotlib/tests/test_path.py +++ b/lib/matplotlib/tests/test_path.py @@ -97,7 +97,7 @@ def test_make_compound_path_empty(): def test_xkcd(): np.random.seed(0) - x = np.linspace(0, 2.0 * np.pi, 100.0) + x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x) with plt.xkcd(): ++++++ matplotlib-setup.cfg ++++++ --- /var/tmp/diff_new_pack.J3MMK8/_old 2017-10-17 01:52:08.367498487 +0200 +++ /var/tmp/diff_new_pack.J3MMK8/_new 2017-10-17 01:52:08.367498487 +0200 @@ -1,58 +1,54 @@ -# Rename this file to setup.cfg to modify matplotlib's +# Rename this file to setup.cfg to modify Matplotlib's # build options. [egg_info] -tag_svn_revision = 1 [directories] # Uncomment to override the default basedir in setupext.py. # This can be a single directory or a comma-delimited list of directories. #basedirlist = /usr +[test] +# If you plan to develop Matplotlib and run or add to the test suite, +# set this to True. It will download and build a specific version of +# FreeType, and then use that to build the ft2font extension. This +# ensures that test images are exactly reproducible. +#local_freetype = False + [status] # To suppress display of the dependencies and their versions # at the top of the build log, uncomment the following line: -#suppress = False +#suppress = True [packages] -# There are a number of subpackages of matplotlib that are considered -# optional. They are all installed by default, but they may be turned -# off here. +# There are a number of subpackages of Matplotlib that are considered +# optional. All except tests are installed by default, but that can +# be changed here. # tests = True sample_data = True toolkits = True - -[provide_packages] -# By default, matplotlib checks for a few dependencies and -# installs them if missing. This feature can be turned off -# by uncommenting the following lines. Acceptible values are: -# True: install, overwrite an existing installation -# False: do not install -# auto: install only if the package is unavailable. This -# is the default behavior -# -## Date/timezone support: -pytz = False -dateutil = False +# Tests for the toolkits are only automatically installed +# if the tests and toolkits packages are also getting installed. +#toolkits_tests = auto [gui_support] -# Matplotlib supports multiple GUI toolkits, including Cocoa, -# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of +# Matplotlib supports multiple GUI toolkits, including +# GTK, MacOSX, Qt4, Qt5, Tk, and WX. Support for many of # these toolkits requires AGG, the Anti-Grain Geometry library, -# which is provided by matplotlib and built by default. +# which is provided by Matplotlib and built by default. # # Some backends are written in pure Python, and others require -# extension code to be compiled. By default, matplotlib checks for +# extension code to be compiled. By default, Matplotlib checks for # these GUI toolkits during installation and, if present, compiles the # required extensions to support the toolkit. # # - GTK 2.x support of any kind requires the GTK runtime environment -# headers and PyGTK. +# headers and PyGTK. # - Tk support requires Tk development headers and Tkinter. # - Mac OSX backend requires the Cocoa headers included with XCode. # - Windowing is MS-Windows specific, and requires the "windows.h" -# header. +# header. # # The other GUI toolkits do not require any extension code, and can be # used as long as the libraries are installed on your system -- @@ -61,46 +57,42 @@ # You can uncomment any the following lines to change this # behavior. Acceptible values are: # -# True: build the extension. Exits with a warning if the -# required dependencies are not available -# False: do not build the extension -# auto: build if the required dependencies are available, -# otherwise skip silently. This is the default -# behavior +# True: build the extension. Exits with a warning if the +# required dependencies are not available +# False: do not build the extension +# auto: build if the required dependencies are available, +# otherwise skip silently. This is the default +# behavior # agg = True -nbagg = True -pdf = True -pgf = True -ps = True -svg = True cairo = Auto -gtk3 = Auto gtk3agg = Auto gtk3cairo = Auto -qt4 = Auto +pyside = Auto qt4agg = Auto -qt5 = Auto -qt5agg = Auto tkagg = Auto -webagg = Auto -gdk = False +wxagg = Auto gtk = False gtkagg = False -gtkcairo = False macosx = False windowing = False [rc_options] # User-configurable options # -# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo, -# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg. +# Default backend, one of: Agg, Cairo, GTK, GTKAgg, GTKCairo, +# GTK3Agg, GTK3Cairo, MacOSX, Pdf, Ps, Qt4Agg, Qt5Agg, SVG, TkAgg, WX, WXAgg. # # The Agg, Ps, Pdf and SVG backends do not require external # dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, or TkAgg -# if you have disabled the relevent extension modules. Agg will be used +# if you have disabled the relevent extension modules. Agg will be used # by default. # backend = Agg # + +[package_data] +# Package additional files found in the lib/matplotlib directories. +# +# On Windows, package DLL files. +#dlls = True
