[Buildroot] [PATCH 2/2] package/python-matplotlib: new package

Peter Korsgaard peter at korsgaard.com
Mon May 20 09:55:12 UTC 2019


>>>>> "Jugurtha" == Jugurtha BELKALEM <jugurtha.belkalem at smile.fr> writes:

 > Matplotlib is a Python 2D plotting library
 > which produces publication quality figures
 > in a variety of hardcopy formats and interactive
 > environments across platforms.

 > More information is available at:
 > https://matplotlib.org/.

 > Signed-off-by: Jugurtha BELKALEM <jugurtha.belkalem at smile.fr>
 > ---
 >  DEVELOPERS                                         |  1 +
 >  package/Config.in                                  |  1 +
 >  .../0001-Fix-invalid-inclusion-headers.patch       | 29 ++++++++++++++++++++++
 >  package/python-matplotlib/Config.in                | 22 ++++++++++++++++
 >  package/python-matplotlib/python-matplotlib.hash   |  4 +++
 >  package/python-matplotlib/python-matplotlib.mk     | 16 ++++++++++++
 >  6 files changed, 73 insertions(+)
 >  create mode 100644 package/python-matplotlib/0001-Fix-invalid-inclusion-headers.patch
 >  create mode 100644 package/python-matplotlib/Config.in
 >  create mode 100644 package/python-matplotlib/python-matplotlib.hash
 >  create mode 100644 package/python-matplotlib/python-matplotlib.mk

 > diff --git a/DEVELOPERS b/DEVELOPERS
 > index 4bb18fb..b7f27f6 100644
 > --- a/DEVELOPERS
 > +++ b/DEVELOPERS
 > @@ -1229,6 +1229,7 @@ F:	package/qt5/qt5wayland/
 
 >  N:	Jugurtha BELKALEM <jugurtha.belkalem at smile.fr>
 >  F:	package/python-cycler/
 > +F:	package/python-matplotlib/
 
 >  N:	Juha Rantanen <juha at codercoded.com>
 >  F:	package/acsccid/
 > diff --git a/package/Config.in b/package/Config.in
 > index 80622b5..002feb9 100644
 > --- a/package/Config.in
 > +++ b/package/Config.in
 > @@ -932,6 +932,7 @@ menu "External python modules"
 >  	source "package/python-markdown/Config.in"
 >  	source "package/python-markdown2/Config.in"
 >  	source "package/python-markupsafe/Config.in"
 > +	source "package/python-matplotlib/Config.in"
 >  	source "package/python-mbstrdecoder/Config.in"
 >  	source "package/python-meld3/Config.in"
 >  	source "package/python-mimeparse/Config.in"
 > diff --git a/package/python-matplotlib/0001-Fix-invalid-inclusion-headers.patch b/package/python-matplotlib/0001-Fix-invalid-inclusion-headers.patch
 > new file mode 100644
 > index 0000000..b10bfb3
 > --- /dev/null
 > +++ b/package/python-matplotlib/0001-Fix-invalid-inclusion-headers.patch
 > @@ -0,0 +1,29 @@
 > +From b0232c3cf1051749dd1e2bd0ec7c5c0a3a008d2f Mon Sep 17 00:00:00 2001
 > +From: Jugurtha BELKALEM <jugurtha.belkalem at smile.fr>
 > +Date: Thu, 9 May 2019 15:06:36 +0200
 > +Subject: [PATCH] Fix invalid inclusion headers
 > +
 > +By default, matplotlib includes headers from host
 > +machine which breaks the build process.
 > +
 > +Signed-off-by: Jugurtha BELKALEM <jugurtha.belkalem at smile.fr>
 > +---
 > + python-matplotlib-3.0.3/setupext.py | 2 +-
 > + 1 file changed, 1 insertion(+), 1 deletion(-)
 > +
 > +diff --git a/setupext.py b/setupext.py
 > +index fc82d5d..eb978d2 100644
 > +--- a/setupext.py
 > ++++ b/setupext.py
 > +@@ -267,7 +267,7 @@ def get_base_dirs():
 > +         'gnu0': ['/usr'],
 > +         'aix5': ['/usr/local'],
 > +         }
 > +-    return basedir_map.get(sys.platform, ['/usr/local', '/usr'])
 > ++    return basedir_map.get(sys.platform, [])
 > + 
 > + 
 > + def get_include_dirs():
 > +-- 
 > +2.7.4
 > +
 > diff --git a/package/python-matplotlib/Config.in b/package/python-matplotlib/Config.in
 > new file mode 100644
 > index 0000000..7f775ea
 > --- /dev/null
 > +++ b/package/python-matplotlib/Config.in
 > @@ -0,0 +1,22 @@
 > +config BR2_PACKAGE_PYTHON_MATPLOTLIB
 > +	bool "python-matplotlib"
 > +	depends on !BR2_PACKAGE_PYTHON
 > +	depends on BR2_PACKAGE_PYTHON3
 > +	select BR2_PACKAGE_FREETYPE # runtime
 > +	select BR2_PACKAGE_LIBPNG # runtime
 > +	select BR2_PACKAGE_PYTHON_CYCLER
 > +	select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime
 > +	select BR2_PACKAGE_PYTHON_DATEUTIL # runtime
 > +	select BR2_PACKAGE_PYTHON_NUMPY # runtime
 > +	select BR2_PACKAGE_PYTHON_PYPARSING # runtime
 > +	select BR2_PACKAGE_PYTHON3_ZLIB # runtime
 > +	select BR2_PACKAGE_ZLIB # runtime
 > +	help
 > +	  Matplotlib strives to produce publication
 > +	  quality 2D graphics for interactive graphing,
 > +	  scientific publishing, user interface
 > +	  development and web application servers targeting
 > +	  multiple user interfaces and hardcopy output
 > +	  formats.
 > +
 > +	  https://matplotlib.org/
 > diff --git a/package/python-matplotlib/python-matplotlib.hash b/package/python-matplotlib/python-matplotlib.hash
 > new file mode 100644
 > index 0000000..ccb22ee
 > --- /dev/null
 > +++ b/package/python-matplotlib/python-matplotlib.hash
 > @@ -0,0 +1,4 @@
 > +# sha256 from https://pypi.org/project/matplotlib/#files
 > +sha256	e1d33589e32f482d0a7d1957bf473d43341115d40d33f578dad44432e47df7b7  matplotlib-3.0.3.tar.gz
 > +# Locally computed sha256 checksums
 > +sha256	5a1a81ea301728c8bba2933da832c0cd62229daf20893a024ab3d53244468dbc  LICENSE/LICENSE
 > diff --git a/package/python-matplotlib/python-matplotlib.mk b/package/python-matplotlib/python-matplotlib.mk
 > new file mode 100644
 > index 0000000..bfa42fa
 > --- /dev/null
 > +++ b/package/python-matplotlib/python-matplotlib.mk
 > @@ -0,0 +1,16 @@
 > +################################################################################
 > +#
 > +# python-matplotlib
 > +#
 > +################################################################################
 > +
 > +PYTHON_MATPLOTLIB_VERSION = 3.0.3
 > +PYTHON_MATPLOTLIB_SOURCE = matplotlib-$(PYTHON_MATPLOTLIB_VERSION).tar.gz
 > +PYTHON_MATPLOTLIB_SITE = https://files.pythonhosted.org/packages/26/04/8b381d5b166508cc258632b225adbafec49bbe69aa9a4fa1f1b461428313
 > +PYTHON_MATPLOTLIB_LICENSE = PSF

In python3, we call the python license Python-2.0, so I've used that
here as well.

 > +PYTHON_MATPLOTLIB_LICENSE_FILES = LICENSE

The actual license file (and the reference in the .hash file) is for
LICENSE/LICENSE, so I've used that instead.


> +PYTHON_MATPLOTLIB_DEPENDENCIES = freetype host-python-numpy \
 > +	libpng python-cycler

Quoting https://matplotlib.org/users/installing.html:

Matplotlib depends on non-Python libraries.

On Linux and OSX, pkg-config can be used to find required non-Python
libraries and thus make the install go more smoothly if the libraries
and headers are not in the expected locations.

So I've added host-pkgconfig to _DEPENDENCIES and applied to next,
thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list