Message ID | 1557417530-25084-3-git-send-email-jugurtha.belkalem@smile.fr |
---|---|
State | Accepted |
Commit | d80339c9659aa0fe3cac14fd9b599bad3c191aac |
Headers | show |
Series | matplotlib for python 2d graphics | expand |
>>>>> "Jugurtha" == Jugurtha BELKALEM <jugurtha.belkalem@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@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@smile.fr> > F: package/python-cycler/ > +F: package/python-matplotlib/ > N: Juha Rantanen <juha@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@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@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.
Hello Jugurtha, I am a bit late to the party since your patch has been applied, but I found something odd, see below. On Thu, 9 May 2019 17:58:50 +0200 Jugurtha BELKALEM <jugurtha.belkalem@smile.fr> wrote: > + select BR2_PACKAGE_PYTHON_CYCLER Why isn't this one a runtime dependency ? > +PYTHON_MATPLOTLIB_DEPENDENCIES = freetype host-python-numpy \ > + libpng python-cycler I dropped python-cycler from <pkg>_DEPENDENCIES, and then did a build with "make python-matplotlib", so it only built the build time dependencies and not the runtime dependencies, and it built just fine. Could you comment on why you think python-cycler for the target would be needed here ? Thanks, Thomas
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@smile.fr> F: package/python-cycler/ +F: package/python-matplotlib/ N: Juha Rantanen <juha@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@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@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 +PYTHON_MATPLOTLIB_LICENSE_FILES = LICENSE +PYTHON_MATPLOTLIB_DEPENDENCIES = freetype host-python-numpy \ + libpng python-cycler +PYTHON_MATPLOTLIB_SETUP_TYPE = setuptools + +$(eval $(python-package))
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@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