[Buildroot] [PATCH v4] package/python-pillow: new package
Angelo Compagnucci
angelo.compagnucci at gmail.com
Mon Jun 13 16:05:25 UTC 2016
Dear Peter Korsgaard,
2016-06-13 16:48 GMT+02:00 Peter Korsgaard <peter at korsgaard.com>:
>>>>>> "Angelo" == Angelo Compagnucci <angelo.compagnucci at gmail.com> writes:
>
> > This patch adds python pillow, the friendly python fork, it
> > includes a backported patch to disable configuration platfom guessing.
>
> It is afaik a fork of the python imaging library, not of python.
Ops!
> > Signed-off-by: Angelo Compagnucci <angelo.compagnucci at gmail.com>
> > ---
> > package/Config.in | 1 +
> > ...y-add-option-to-disable-platform-guessing.patch | 63 ++++++++++++++++++++++
> > package/python-pillow/Config.in | 12 +++++
> > package/python-pillow/python-pillow.hash | 2 +
> > package/python-pillow/python-pillow.mk | 39 ++++++++++++++
> > 5 files changed, 117 insertions(+)
> > create mode 100644 package/python-pillow/0001-setup.py-add-option-to-disable-platform-guessing.patch
> > create mode 100644 package/python-pillow/Config.in
> > create mode 100644 package/python-pillow/python-pillow.hash
> > create mode 100644 package/python-pillow/python-pillow.mk
>
> > +++ b/package/python-pillow/python-pillow.hash
> > @@ -0,0 +1,2 @@
> > +https://pypi.python.org/pypi?:action=show_md5&digest=7cfd093c11205d9e2ebe3c51dfcad510
> > +md5 7cfd093c11205d9e2ebe3c51dfcad510 Pillow-3.2.0.tar.gz
>
> Please also provide a stronger hash like sha256.
Right!
>> diff --git a/package/python-pillow/python-pillow.mk b/package/python-pillow/python-pillow.mk
> > new file mode 100644
> > index 0000000..f186ab6
> > --- /dev/null
> > +++ b/package/python-pillow/python-pillow.mk
> > @@ -0,0 +1,39 @@
> > +################################################################################
> > +#
> > +# python-pillow
> > +#
> > +################################################################################
> > +
> > +PYTHON_PILLOW_VERSION = 3.2.0
> > +PYTHON_PILLOW_SOURCE = Pillow-$(PYTHON_PILLOW_VERSION).tar.gz
> > +PYTHON_PILLOW_SITE = https://pypi.python.org/packages/source/P/Pillow
> > +PYTHON_PILLOW_SETUP_TYPE = setuptools
> > +PYTHON_PILLOW_DEPENDENCIES = $(if $(BR2_PACKAGE_JPEG),jpeg) \
> > + $(if $(BR2_PACKAGE_ZLIB),zlib) \
> > + $(if $(BR2_PACKAGE_TIFF),tiff) \
> > + $(if $(BR2_PACKAGE_FREETYPE),freetype) \
> > + $(if $(BR2_PACKAGE_WEBP),webp) \
> > + $(if $(BR2_PACKAGE_OPENJPEG),openjpeg)
> > +
> > +PYTHON_PILLOW_BUILD_OPTS += --disable-platform-guessing
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_JPEG),--enable-jpeg,--disable-jpeg)
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_ZLIB),--enable-zlib,--disable-zlib)
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_TIFF),--enable-tiff,--disable-tiff)
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_FREETYPE),--enable-freetype,--disable-freetype)
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_WEBP),--enable-webp,--disable-webp)
> > +PYTHON_PILLOW_BUILD_OPTS += $(if $(BR2_PACKAGE_OPENJPEG),--enable-jpeg2000,--disable-jpeg2000)
> > +
> > +PYTHON_PILLOW_INSTALL_TARGET_OPTS += $(PYTHON_PILLOW_BUILD_OPTS)
>
> If these are build options, why are you passing them to the install
> step?
Cause this package as a strange build/install system and requires the
same set of option both in build and install steps.
> Why are you using += and not just = ? The default value of
> _INSTALL_TARGET_OPTS will only be set when python-package is evaluated
> below, so this will not append to the default.
I've not dug so deep inside python-package handling, so I used +=.
> > +
> > +PYTHON_PILLOW_BUILD_CMDS = (cd $(PYTHON_PILLOW_BUILDDIR); \
> > + $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \
> > + $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \
> > + $(PYTHON_PILLOW_BASE_BUILD_OPTS) $(PYTHON_PILLOW_BUILD_OPTS))
>
> Isn't this identical to the default build commands (with
> PYTHON_PILLOW_BASE_BUILD_TGT = build_ext)?
In a previous review [1] was said to me to rewrite both BUILD_CMDS and
INSTALL_TARGET_CMDS instead of modifying PYTHON_PILLOW_BASE_BUILD_TGT
cause this is the first package to have such need.
> > +
> > +PYTHON_PILLOW_INSTALL_TARGET_CMDS = (cd $(PYTHON_PILLOW_BUILDDIR); \
> > + $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \
> > + $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \
> > + $(PYTHON_PILLOW_INSTALL_TARGET_OPTS) install \
> > + $(PYTHON_PILLOW_BASE_INSTALL_TARGET_OPTS))
> > +
>
> And this to the default target install. Why do you need to run build_ext
> again?
Cause the install step of this package doesn't work if called without build_ext.
[1] http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/141233/match=pillow
Sincerely, Angelo
>
> --
> Bye, Peter Korsgaard
--
Profile: http://it.linkedin.com/in/compagnucciangelo
More information about the buildroot
mailing list