Fri Jan 5 23:47:53 2024 UTC (138d)
py-Pillow: updated to 10.2.0

10.2.0 (2024-01-02)

- Add ``keep_rgb`` option when saving JPEG to prevent conversion of RGB colorspace
- Trim glyph size in ImageFont.getmask()
- Deprecate IptcImagePlugin helpers
- Allow uncompressed TIFF images to be saved in chunks
- Concatenate multiple JPEG EXIF markers
- Changed IPTC tile tuple to match other plugins
- Do not assign new fp attribute when exiting context manager
- Support arbitrary masks for uncompressed RGB DDS images
- Support setting ROWSPERSTRIP tag
- Apply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask()
- Optimise ``ImageColor`` using ``functools.lru_cache``
- Restricted environment keys for ImageMath.eval()
- Optimise ``ImageMode.getmode`` using ``functools.lru_cache``
- Fix incorrect color blending for overlapping glyphs
- Attempt memory mapping when tile args is a string
- Fill identical pixels with transparency in subsequent frames when saving GIF
- Corrected duration when combining multiple GIF frames into single frame
- Handle disposing GIF background from outside palette
- Seek past the data when skipping a PSD layer
- Import plugins relative to the module
- Translate encoder error codes to strings; deprecate ``ImageFile.raise_oserror()``
- Support reading BC4U and DX10 BC1 images
- Optimize ImageStat.Stat.extrema
- Handle pathlib.Path in FreeTypeFont
- Added support for reading DX10 BC4 DDS images
- Optimized ImageStat.Stat.count
- Correct PDF palette size when saving
- Fixed closing file pointer with olefile 0.47
- Raise ValueError when TrueType font size is not greater than zero
- If absent, do not try to close fp when closing image
- Allow configuring JPEG restart marker interval on save
- Decrement reference count for PyObject
- Implement ``streamtype=1`` option for tables-only JPEG encoding
- If save_all PNG only has one frame, do not create animated image
- Fixed frombytes() for images with a zero dimension


(adam)
diff -r1.77 -r1.78 pkgsrc/graphics/py-Pillow/Makefile
diff -r1.21 -r1.22 pkgsrc/graphics/py-Pillow/PLIST
diff -r1.60 -r1.61 pkgsrc/graphics/py-Pillow/distinfo
diff -r1.24 -r1.25 pkgsrc/graphics/py-Pillow/patches/patch-setup.py

cvs diff -r1.77 -r1.78 pkgsrc/graphics/py-Pillow/Makefile (expand / switch to unified diff)

--- pkgsrc/graphics/py-Pillow/Makefile 2023/11/12 13:22:12 1.77
+++ pkgsrc/graphics/py-Pillow/Makefile 2024/01/05 23:47:53 1.78
@@ -1,41 +1,37 @@ @@ -1,41 +1,37 @@
1# $NetBSD: Makefile,v 1.77 2023/11/12 13:22:12 wiz Exp $ 1# $NetBSD: Makefile,v 1.78 2024/01/05 23:47:53 adam Exp $
2 2
3DISTNAME= Pillow-10.1.0 3DISTNAME= pillow-10.2.0
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/^p/P/}
5PKGREVISION= 2 
6CATEGORIES= graphics python 5CATEGORIES= graphics python
7MASTER_SITES= ${MASTER_SITE_PYPI:=P/Pillow/} 6MASTER_SITES= ${MASTER_SITE_PYPI:=p/pillow/}
8 7
9MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= https://python-pillow.org/ 9HOMEPAGE= https://python-pillow.org/
11COMMENT= Python Imaging Library (Fork) 10COMMENT= Python Imaging Library (Fork)
12LICENSE= hpnd 11LICENSE= hpnd
13 12
14USE_TOOLS+= pkg-config 13USE_TOOLS+= pkg-config
15 14
16CONFLICTS+= ${PYPKGPREFIX}-imaging-[0-9]* 15CONFLICTS+= ${PYPKGPREFIX}-imaging-[0-9]*
17 16
 17TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=67.8:../../devel/py-setuptools
 18TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
18DEPENDS+= ${PYPKGPREFIX}-olefile-[0-9]*:../../devel/py-olefile 19DEPENDS+= ${PYPKGPREFIX}-olefile-[0-9]*:../../devel/py-olefile
19TOOL_DEPENDS+= ${PYPKGPREFIX}-test-runner-[0-9]*:../../devel/py-test-runner 
20TEST_DEPENDS+= netpbm-[0-9]*:../../graphics/netpbm 20TEST_DEPENDS+= netpbm-[0-9]*:../../graphics/netpbm
 21TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov-[0-9]*:../../devel/py-test-cov
 22TEST_DEPENDS+= ${PYPKGPREFIX}-test-timeout-[0-9]*:../../devel/py-test-timeout
21 23
22PYTHON_VERSIONS_INCOMPATIBLE= 27 24PYTHON_VERSIONS_INCOMPATIBLE= 27
23 25
24PYSETUPBUILDTARGET= build_ext 
25PYSETUPBUILDARGS+= --disable-xcb 
26 
27DISTUTILS_BUILDDIR_IN_TEST_ENV= yes 26DISTUTILS_BUILDDIR_IN_TEST_ENV= yes
28 27
29do-test: 
30 cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHONBIN} selftest.py 
31 
32.include "../../devel/zlib/buildlink3.mk" 28.include "../../devel/zlib/buildlink3.mk"
33.include "../../graphics/freetype2/buildlink3.mk" 29.include "../../graphics/freetype2/buildlink3.mk"
34.include "../../graphics/lcms2/buildlink3.mk" 30.include "../../graphics/lcms2/buildlink3.mk"
35.include "../../graphics/libimagequant/buildlink3.mk" 31.include "../../graphics/libimagequant/buildlink3.mk"
36.include "../../graphics/libwebp/buildlink3.mk" 32.include "../../graphics/libwebp/buildlink3.mk"
37.include "../../graphics/openjpeg/buildlink3.mk" 33.include "../../graphics/openjpeg/buildlink3.mk"
38.include "../../graphics/tiff/buildlink3.mk" 34.include "../../graphics/tiff/buildlink3.mk"
39.include "../../lang/python/egg.mk" 35.include "../../lang/python/wheel.mk"
40.include "../../mk/jpeg.buildlink3.mk" 36.include "../../mk/jpeg.buildlink3.mk"
41.include "../../mk/bsd.pkg.mk" 37.include "../../mk/bsd.pkg.mk"

cvs diff -r1.21 -r1.22 pkgsrc/graphics/py-Pillow/PLIST (expand / switch to unified diff)

--- pkgsrc/graphics/py-Pillow/PLIST 2023/07/05 20:10:14 1.21
+++ pkgsrc/graphics/py-Pillow/PLIST 2024/01/05 23:47:53 1.22
@@ -1,14 +1,20 @@ @@ -1,14 +1,20 @@
1@comment $NetBSD: PLIST,v 1.21 2023/07/05 20:10:14 wiz Exp $ 1@comment $NetBSD: PLIST,v 1.22 2024/01/05 23:47:53 adam Exp $
 2${PYSITELIB}/${WHEEL_INFODIR}/LICENSE
 3${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 4${PYSITELIB}/${WHEEL_INFODIR}/RECORD
 5${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
 6${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
 7${PYSITELIB}/${WHEEL_INFODIR}/zip-safe
2${PYSITELIB}/PIL/BdfFontFile.py 8${PYSITELIB}/PIL/BdfFontFile.py
3${PYSITELIB}/PIL/BdfFontFile.pyc 9${PYSITELIB}/PIL/BdfFontFile.pyc
4${PYSITELIB}/PIL/BdfFontFile.pyo 10${PYSITELIB}/PIL/BdfFontFile.pyo
5${PYSITELIB}/PIL/BlpImagePlugin.py 11${PYSITELIB}/PIL/BlpImagePlugin.py
6${PYSITELIB}/PIL/BlpImagePlugin.pyc 12${PYSITELIB}/PIL/BlpImagePlugin.pyc
7${PYSITELIB}/PIL/BlpImagePlugin.pyo 13${PYSITELIB}/PIL/BlpImagePlugin.pyo
8${PYSITELIB}/PIL/BmpImagePlugin.py 14${PYSITELIB}/PIL/BmpImagePlugin.py
9${PYSITELIB}/PIL/BmpImagePlugin.pyc 15${PYSITELIB}/PIL/BmpImagePlugin.pyc
10${PYSITELIB}/PIL/BmpImagePlugin.pyo 16${PYSITELIB}/PIL/BmpImagePlugin.pyo
11${PYSITELIB}/PIL/BufrStubImagePlugin.py 17${PYSITELIB}/PIL/BufrStubImagePlugin.py
12${PYSITELIB}/PIL/BufrStubImagePlugin.pyc 18${PYSITELIB}/PIL/BufrStubImagePlugin.pyc
13${PYSITELIB}/PIL/BufrStubImagePlugin.pyo 19${PYSITELIB}/PIL/BufrStubImagePlugin.pyo
14${PYSITELIB}/PIL/ContainerIO.py 20${PYSITELIB}/PIL/ContainerIO.py
@@ -260,37 +266,36 @@ ${PYSITELIB}/PIL/XpmImagePlugin.pyo @@ -260,37 +266,36 @@ ${PYSITELIB}/PIL/XpmImagePlugin.pyo
260${PYSITELIB}/PIL/__init__.py 266${PYSITELIB}/PIL/__init__.py
261${PYSITELIB}/PIL/__init__.pyc 267${PYSITELIB}/PIL/__init__.pyc
262${PYSITELIB}/PIL/__init__.pyo 268${PYSITELIB}/PIL/__init__.pyo
263${PYSITELIB}/PIL/__main__.py 269${PYSITELIB}/PIL/__main__.py
264${PYSITELIB}/PIL/__main__.pyc 270${PYSITELIB}/PIL/__main__.pyc
265${PYSITELIB}/PIL/__main__.pyo 271${PYSITELIB}/PIL/__main__.pyo
266${PYSITELIB}/PIL/_binary.py 272${PYSITELIB}/PIL/_binary.py
267${PYSITELIB}/PIL/_binary.pyc 273${PYSITELIB}/PIL/_binary.pyc
268${PYSITELIB}/PIL/_binary.pyo 274${PYSITELIB}/PIL/_binary.pyo
269${PYSITELIB}/PIL/_deprecate.py 275${PYSITELIB}/PIL/_deprecate.py
270${PYSITELIB}/PIL/_deprecate.pyc 276${PYSITELIB}/PIL/_deprecate.pyc
271${PYSITELIB}/PIL/_deprecate.pyo 277${PYSITELIB}/PIL/_deprecate.pyo
272${PYSITELIB}/PIL/_imaging.so 278${PYSITELIB}/PIL/_imaging.so
 279${PYSITELIB}/PIL/_imagingcms.pyi
273${PYSITELIB}/PIL/_imagingcms.so 280${PYSITELIB}/PIL/_imagingcms.so
 281${PYSITELIB}/PIL/_imagingft.pyi
274${PYSITELIB}/PIL/_imagingft.so 282${PYSITELIB}/PIL/_imagingft.so
275${PYSITELIB}/PIL/_imagingmath.so 283${PYSITELIB}/PIL/_imagingmath.so
276${PYSITELIB}/PIL/_imagingmorph.so 284${PYSITELIB}/PIL/_imagingmorph.so
277${PYSITELIB}/PIL/_imagingtk.so 285${PYSITELIB}/PIL/_imagingtk.so
278${PYSITELIB}/PIL/_tkinter_finder.py 286${PYSITELIB}/PIL/_tkinter_finder.py
279${PYSITELIB}/PIL/_tkinter_finder.pyc 287${PYSITELIB}/PIL/_tkinter_finder.pyc
280${PYSITELIB}/PIL/_tkinter_finder.pyo 288${PYSITELIB}/PIL/_tkinter_finder.pyo
 289${PYSITELIB}/PIL/_typing.py
 290${PYSITELIB}/PIL/_typing.pyc
 291${PYSITELIB}/PIL/_typing.pyo
281${PYSITELIB}/PIL/_util.py 292${PYSITELIB}/PIL/_util.py
282${PYSITELIB}/PIL/_util.pyc 293${PYSITELIB}/PIL/_util.pyc
283${PYSITELIB}/PIL/_util.pyo 294${PYSITELIB}/PIL/_util.pyo
284${PYSITELIB}/PIL/_version.py 295${PYSITELIB}/PIL/_version.py
285${PYSITELIB}/PIL/_version.pyc 296${PYSITELIB}/PIL/_version.pyc
286${PYSITELIB}/PIL/_version.pyo 297${PYSITELIB}/PIL/_version.pyo
287${PYSITELIB}/PIL/_webp.so 298${PYSITELIB}/PIL/_webp.so
288${PYSITELIB}/PIL/features.py 299${PYSITELIB}/PIL/features.py
289${PYSITELIB}/PIL/features.pyc 300${PYSITELIB}/PIL/features.pyc
290${PYSITELIB}/PIL/features.pyo 301${PYSITELIB}/PIL/features.pyo
291${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 
292${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 
293${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 
294${PYSITELIB}/${EGG_INFODIR}/requires.txt 
295${PYSITELIB}/${EGG_INFODIR}/top_level.txt 
296${PYSITELIB}/${EGG_INFODIR}/zip-safe 

cvs diff -r1.60 -r1.61 pkgsrc/graphics/py-Pillow/distinfo (expand / switch to unified diff)

--- pkgsrc/graphics/py-Pillow/distinfo 2023/10/16 19:26:49 1.60
+++ pkgsrc/graphics/py-Pillow/distinfo 2024/01/05 23:47:53 1.61
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1$NetBSD: distinfo,v 1.60 2023/10/16 19:26:49 adam Exp $ 1$NetBSD: distinfo,v 1.61 2024/01/05 23:47:53 adam Exp $
2 2
3BLAKE2s (Pillow-10.1.0.tar.gz) = f56f286d7d2fea81e4a8692357425a812eff011bbe49415f483da0d842bec6d3 3BLAKE2s (pillow-10.2.0.tar.gz) = 14a9e9655b2623c4d0928df7446eea99a0b5617414802e4f7531d520bc79318c
4SHA512 (Pillow-10.1.0.tar.gz) = 77eeaee6f2b8b77b33438d6a5f3a2c79ff1154e39bc225f279f066d6471b6991aad4390756575fa53448062f7bf8763462e95a5b2cc8af1414c1d52f27529736 4SHA512 (pillow-10.2.0.tar.gz) = 9fac2cdc9539f947629cee428d55cf60a8d44c91cee8d8205907a79a9d0334062a46e3eb316069069d2f1298a8c0bbcc8f55b24122695d19e72728e093df63e5
5Size (Pillow-10.1.0.tar.gz) = 50781360 bytes 5Size (pillow-10.2.0.tar.gz) = 46212712 bytes
6SHA1 (patch-setup.py) = 9e95214579d45b1a3230ea342ae8be82ed2d61c9 6SHA1 (patch-setup.py) = 80ee74a110e21e7c4071ab9ba0a7c1f3ede64355

cvs diff -r1.24 -r1.25 pkgsrc/graphics/py-Pillow/patches/patch-setup.py (expand / switch to unified diff)

--- pkgsrc/graphics/py-Pillow/patches/patch-setup.py 2022/08/01 14:51:15 1.24
+++ pkgsrc/graphics/py-Pillow/patches/patch-setup.py 2024/01/05 23:47:53 1.25
@@ -1,17 +1,30 @@ @@ -1,17 +1,30 @@
1$NetBSD: patch-setup.py,v 1.24 2022/08/01 14:51:15 wiz Exp $ 1$NetBSD: patch-setup.py,v 1.25 2024/01/05 23:47:53 adam Exp $
2 2
3Fix finding zlib.h. 3Fix finding zlib.h.
 4Do not look for xcb.
4 5
5--- setup.py.orig 2022-07-01 13:14:51.000000000 +0000 6--- setup.py.orig 2024-01-02 08:28:43.000000000 +0000
6+++ setup.py 7+++ setup.py
7@@ -636,7 +636,9 @@ class pil_build_ext(build_ext): 8@@ -642,7 +642,9 @@ class pil_build_ext(build_ext):
8  9
9 if feature.want("zlib"): 10 if feature.want("zlib"):
10 _dbg("Looking for zlib") 11 _dbg("Looking for zlib")
11- if _find_include_file(self, "zlib.h"): 12- if _find_include_file(self, "zlib.h"):
12+ if True: 13+ if True:
13+ feature.zlib = "z" 14+ feature.zlib = "z"
14+ elif _find_include_file(self, "zlib.h"): 15+ elif _find_include_file(self, "zlib.h"):
15 if _find_library_file(self, "z"): 16 if _find_library_file(self, "z"):
16 feature.zlib = "z" 17 feature.zlib = "z"
17 elif sys.platform == "win32" and _find_library_file(self, "zlib"): 18 elif sys.platform == "win32" and _find_library_file(self, "zlib"):
 19@@ -800,11 +802,6 @@ class pil_build_ext(build_ext):
 20 ):
 21 feature.webpmux = "libwebpmux"
 22
 23- if feature.want("xcb"):
 24- _dbg("Looking for xcb")
 25- if _find_include_file(self, "xcb/xcb.h"):
 26- if _find_library_file(self, "xcb"):
 27- feature.xcb = "xcb"
 28
 29 for f in feature:
 30 if not getattr(feature, f) and feature.require(f):