include $(TOPDIR)/rules.mk
PKG_NAME:=pillow
-PKG_VERSION:=5.3.0
-PKG_RELEASE:=2
+PKG_VERSION:=6.1.0
+PKG_RELEASE:=1
PKG_SOURCE:=Pillow-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/P/Pillow
-PKG_HASH:=2ea3517cd5779843de8a759c2349a3cd8d3893e03ab47053b66d5ec6f8bc4f93
-PKG_BUILD_DIR:=$(BUILD_DIR)/Pillow-$(PKG_VERSION)
-PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
+PKG_HASH:=0804f77cb1e9b6dbd37601cee11283bba39a8d44b9ddb053400c58e0c0d7d9de
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-Pillow-$(PKG_VERSION)
-PKG_LICENSE:=CUSTOM
+PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
+PKG_LICENSE:=HPND
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:python:pillow
include $(INCLUDE_DIR)/package.mk
include ../python-package.mk
+include ../python3-package.mk
+
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+define Package/python-pillow/Default
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ TITLE:=The friendly PIL fork
+ URL:=https://python-pillow.org/
+ DEPENDS:=+libfreetype +libjpeg +libtiff +zlib
+endef
-define Package/pillow
- SUBMENU:=Python
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=The friendly PIL fork
- URL:=https://python-pillow.org/
- DEPENDS:=+python +libfreetype +libjpeg +zlib +libtiff
+define Package/python-pillow
+$(call Package/python-pillow/Default)
+ DEPENDS+=+PACKAGE_python-pillow:python
+ VARIANT:=python
endef
-define Package/pillow/description
- The friendly PIL fork
+define Package/python-pillow/description
+ The friendly PIL fork
endef
-define Build/Compile
- $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+define Package/python3-pillow
+$(call Package/python-pillow/Default)
+ DEPENDS+=+PACKAGE_python3-pillow:python3
+ VARIANT:=python3
endef
-define Package/pillow/install
- $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
- $(CP) \
- $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
- $(1)$(PYTHON_PKG_DIR)/
+define Package/python3-pillow/description
+$(call Package/python-pillow/description)
+.
+(Variant for Python3)
endef
-$(eval $(call BuildPackage,pillow))
+PYTHON3_PKG_SETUP_GLOBAL_ARGS += build_ext \
+ --enable-zlib \
+ --enable-jpeg \
+ --enable-tiff \
+ --enable-freetype \
+ --disable-lcms \
+ --disable-webp \
+ --disable-webpmux \
+ --disable-jpeg2000 \
+ --disable-imagequant \
+ --disable-platform-guessing
+
+PYTHON_PKG_SETUP_GLOBAL_ARGS:=$(PYTHON3_PKG_SETUP_GLOBAL_ARGS)
+
+$(eval $(call PyPackage,python-pillow))
+$(eval $(call BuildPackage,python-pillow))
+$(eval $(call BuildPackage,python-pillow-src))
+
+$(eval $(call Py3Package,python3-pillow))
+$(eval $(call BuildPackage,python3-pillow))
+$(eval $(call BuildPackage,python3-pillow-src))
+++ /dev/null
-diff --git a/setup.py b/setup.py
-index 15d81e4..ee6dba6 100755
---- a/setup.py
-+++ b/setup.py
-@@ -136,12 +136,12 @@ except (ImportError, OSError):
-
- NAME = 'Pillow'
- PILLOW_VERSION = get_version()
--JPEG_ROOT = None
-+JPEG_ROOT = os.path.join(os.environ['STAGING_DIR'], "/usr/lib")
- JPEG2K_ROOT = None
--ZLIB_ROOT = None
-+ZLIB_ROOT = os.path.join(os.environ['STAGING_DIR'], "/usr/lib")
- IMAGEQUANT_ROOT = None
--TIFF_ROOT = None
--FREETYPE_ROOT = None
-+TIFF_ROOT = os.path.join(os.environ['STAGING_DIR'], "/usr/lib")
-+FREETYPE_ROOT = os.path.join(os.environ['STAGING_DIR'], "/usr/lib")
- LCMS_ROOT = None
-
-
-@@ -289,159 +289,6 @@ class pil_build_ext(build_ext):
- _add_directory(library_dirs, os.path.join(prefix, "lib"))
- _add_directory(include_dirs, os.path.join(prefix, "include"))
-
-- #
-- # add platform directories
--
-- if self.disable_platform_guessing:
-- pass
--
-- elif sys.platform == "cygwin":
-- # pythonX.Y.dll.a is in the /usr/lib/pythonX.Y/config directory
-- _add_directory(library_dirs,
-- os.path.join("/usr/lib", "python%s" %
-- sys.version[:3], "config"))
--
-- elif sys.platform == "darwin":
-- # attempt to make sure we pick freetype2 over other versions
-- _add_directory(include_dirs, "/sw/include/freetype2")
-- _add_directory(include_dirs, "/sw/lib/freetype2/include")
-- # fink installation directories
-- _add_directory(library_dirs, "/sw/lib")
-- _add_directory(include_dirs, "/sw/include")
-- # darwin ports installation directories
-- _add_directory(library_dirs, "/opt/local/lib")
-- _add_directory(include_dirs, "/opt/local/include")
--
-- # if Homebrew is installed, use its lib and include directories
-- try:
-- prefix = subprocess.check_output(['brew', '--prefix']).strip(
-- ).decode('latin1')
-- except Exception:
-- # Homebrew not installed
-- prefix = None
--
-- ft_prefix = None
--
-- if prefix:
-- # add Homebrew's include and lib directories
-- _add_directory(library_dirs, os.path.join(prefix, 'lib'))
-- _add_directory(include_dirs, os.path.join(prefix, 'include'))
-- ft_prefix = os.path.join(prefix, 'opt', 'freetype')
--
-- if ft_prefix and os.path.isdir(ft_prefix):
-- # freetype might not be linked into Homebrew's prefix
-- _add_directory(library_dirs, os.path.join(ft_prefix, 'lib'))
-- _add_directory(include_dirs,
-- os.path.join(ft_prefix, 'include'))
-- else:
-- # fall back to freetype from XQuartz if
-- # Homebrew's freetype is missing
-- _add_directory(library_dirs, "/usr/X11/lib")
-- _add_directory(include_dirs, "/usr/X11/include")
--
-- elif sys.platform.startswith("linux"):
-- arch_tp = (plat.processor(), plat.architecture()[0])
-- # This should be correct on debian derivatives.
-- if os.path.exists('/etc/debian_version'):
-- # If this doesn't work, don't just silently patch
-- # downstream because it's going to break when people
-- # try to build pillow from source instead of
-- # installing from the system packages.
-- self.add_multiarch_paths()
--
-- elif arch_tp == ("x86_64", "32bit"):
-- # Special Case: 32-bit build on 64-bit machine.
-- _add_directory(library_dirs, "/usr/lib/i386-linux-gnu")
-- else:
-- libdirs = {
-- 'x86_64': ["/lib64", "/usr/lib64",
-- "/usr/lib/x86_64-linux-gnu"],
-- '64bit': ["/lib64", "/usr/lib64",
-- "/usr/lib/x86_64-linux-gnu"],
-- 'i386': ["/usr/lib/i386-linux-gnu"],
-- 'i686': ["/usr/lib/i386-linux-gnu"],
-- '32bit': ["/usr/lib/i386-linux-gnu"],
-- 'aarch64': ["/usr/lib64", "/usr/lib/aarch64-linux-gnu"],
-- 'arm': ["/usr/lib/arm-linux-gnueabi"],
-- 'armv71': ["/usr/lib/arm-linux-gnueabi"],
-- 'armv7l': ["/usr/lib"],
-- 'ppc64': ["/usr/lib64", "/usr/lib/ppc64-linux-gnu",
-- "/usr/lib/powerpc64-linux-gnu"],
-- 'ppc64le': ["/usr/lib64"],
-- 'ppc': ["/usr/lib/ppc-linux-gnu",
-- "/usr/lib/powerpc-linux-gnu"],
-- 's390x': ["/usr/lib64", "/usr/lib/s390x-linux-gnu"],
-- 's390': ["/usr/lib/s390-linux-gnu"],
-- }
--
-- for platform_ in arch_tp:
-- dirs = libdirs.get(platform_, None)
-- if not dirs:
-- continue
-- for path in dirs:
-- _add_directory(library_dirs, path)
-- break
--
-- else:
-- raise ValueError(
-- "Unable to identify Linux platform: `%s`" % platform_)
--
-- # termux support for android.
-- # system libraries (zlib) are installed in /system/lib
-- # headers are at $PREFIX/include
-- # user libs are at $PREFIX/lib
-- if os.environ.get('ANDROID_ROOT', None):
-- _add_directory(library_dirs,
-- os.path.join(os.environ['ANDROID_ROOT'],
-- 'lib'))
--
-- elif sys.platform.startswith("gnu"):
-- self.add_multiarch_paths()
--
-- elif sys.platform.startswith("freebsd"):
-- _add_directory(library_dirs, "/usr/local/lib")
-- _add_directory(include_dirs, "/usr/local/include")
--
-- elif sys.platform.startswith("netbsd"):
-- _add_directory(library_dirs, "/usr/pkg/lib")
-- _add_directory(include_dirs, "/usr/pkg/include")
--
-- elif sys.platform.startswith("sunos5"):
-- _add_directory(library_dirs, "/opt/local/lib")
-- _add_directory(include_dirs, "/opt/local/include")
--
-- # FIXME: check /opt/stuff directories here?
--
-- # standard locations
-- if not self.disable_platform_guessing:
-- _add_directory(library_dirs, "/usr/local/lib")
-- _add_directory(include_dirs, "/usr/local/include")
--
-- _add_directory(library_dirs, "/usr/lib")
-- _add_directory(include_dirs, "/usr/include")
-- # alpine, at least
-- _add_directory(library_dirs, "/lib")
--
-- # on Windows, look for the OpenJPEG libraries in the location that
-- # the official installer puts them
-- if sys.platform == "win32":
-- program_files = os.environ.get('ProgramFiles', '')
-- best_version = (0, 0)
-- best_path = None
-- for name in os.listdir(program_files):
-- if name.startswith('OpenJPEG '):
-- version = tuple(int(x) for x in
-- name[9:].strip().split('.'))
-- if version > best_version:
-- best_version = version
-- best_path = os.path.join(program_files, name)
--
-- if best_path:
-- _dbg('Adding %s to search list', best_path)
-- _add_directory(library_dirs, os.path.join(best_path, 'lib'))
-- _add_directory(include_dirs,
-- os.path.join(best_path, 'include'))
--
- #
- # insert new dirs *before* default libs, to avoid conflicts
- # between Python PYD stub libs and real libraries