git: 2e97aa5d0f23 - main - graphics/py-pillow: Update to 11.1.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sun, 18 May 2025 03:38:56 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2e97aa5d0f23106b6f4c9cce6567ac1262d76f06

commit 2e97aa5d0f23106b6f4c9cce6567ac1262d76f06
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-05-18 03:18:59 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-05-18 03:34:46 +0000

    graphics/py-pillow: Update to 11.1.0
    
    - Update WWW
    - Adjust options:
      - Remove PNG option: jpeg and zlib are required by default
      - Add AVIF option
    - Convert to USE_PYTHON=pytest
    
    Changes:        https://github.com/python-pillow/Pillow/releases
                    https://pillow.readthedocs.io/en/stable/releasenotes/
---
 graphics/py-pillow/Makefile                   | 76 +++++++++++++--------------
 graphics/py-pillow/distinfo                   |  6 +--
 graphics/py-pillow/files/patch-pyproject.toml | 16 ++++--
 3 files changed, 52 insertions(+), 46 deletions(-)

diff --git a/graphics/py-pillow/Makefile b/graphics/py-pillow/Makefile
index 125eaf971cbb..f96ffe28aede 100644
--- a/graphics/py-pillow/Makefile
+++ b/graphics/py-pillow/Makefile
@@ -1,12 +1,12 @@
 PORTNAME=	pillow
-PORTVERSION=	11.0.0
+PORTVERSION=	11.2.1
 CATEGORIES=	graphics python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 
 MAINTAINER=	sunpoet@FreeBSD.org
 COMMENT=	Fork of the Python Imaging Library (PIL)
-WWW=		https://python-pillow.org/ \
+WWW=		https://python-pillow.github.io/ \
 		https://pillow.readthedocs.io/en/stable/ \
 		https://github.com/python-pillow/Pillow
 
@@ -20,61 +20,57 @@ BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FL
 TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest>=0,1:devel/py-pytest@${PY_FLAVOR}
 
 USES=		cpe jpeg localbase python
-USE_PYTHON=	autoplist concurrent pep517
+USE_PYTHON=	autoplist concurrent pep517 pytest
+
+PEP517_BUILD_CONFIG_SETTING=	\
+		--config-setting jpeg=enable \
+		--config-setting zlib=enable
+TEST_ENV=	PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR}
 
 CPE_VENDOR=	python
 
-OPTIONS_DEFINE=	FREETYPE IMAGEQUANT JPEG2000 LCMS OLE PNG RAQM TIFF TKINTER WEBP XCB
-OPTIONS_DEFAULT=FREETYPE IMAGEQUANT JPEG2000 LCMS OLE PNG RAQM TIFF TKINTER WEBP XCB
-IMAGEQUANT_DESC=	Image Quantization support
-LCMS_DESC=		Little Color Management System
-OLE_DESC=		Microsoft OLE2 file format support
-RAQM_DESC=		Complex text layout support
-TKINTER_DESC=		Tkinter (Tcl/Tk) BitmapImage & PhotoImage support
-XCB_DESC=		X11 screengrab support
+OPTIONS_DEFINE=	AVIF FREETYPE IMAGEQUANT JPEG2000 LCMS OLE RAQM TIFF TKINTER WEBP XCB
+OPTIONS_DEFAULT=AVIF FREETYPE IMAGEQUANT JPEG2000 LCMS OLE RAQM TIFF TKINTER WEBP XCB
+IMAGEQUANT_DESC=Image Quantization support
+LCMS_DESC=	Little Color Management System
+OLE_DESC=	Microsoft OLE2 file format support
+RAQM_DESC=	Complex text layout support
+TKINTER_DESC=	Tkinter (Tcl/Tk) BitmapImage & PhotoImage support
+XCB_DESC=	X11 screengrab support
 
+AVIF_LIB_DEPENDS=	libavif.so:graphics/libavif
+AVIF_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting avif=enable"
+AVIF_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting avif=disable"
 FREETYPE_LIB_DEPENDS=	libfreetype.so:print/freetype2
-FREETYPE_VARS=		PYDISTUTILS_BUILDARGS+=--enable-freetype
-FREETYPE_VARS_OFF=	PYDISTUTILS_BUILDARGS+=--disable-freetype
+FREETYPE_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting freetype=enable"
+FREETYPE_VARS_OFF=	PEP517_BUILD_CONFIG_SETTING+="--config-setting freetype=disable"
 IMAGEQUANT_LIB_DEPENDS=	libimagequant.so:graphics/libimagequant
-IMAGEQUANT_VARS=	PYDISTUTILS_BUILDARGS+=--enable-imagequant
-IMAGEQUANT_VARS_OFF=	PYDISTUTILS_BUILDARGS+=--disable-imagequant
+IMAGEQUANT_VARS=	PEP517_BUILD_CONFIG_SETTING+="--config-setting imagequant=enable"
+IMAGEQUANT_VARS_OFF=	PEP517_BUILD_CONFIG_SETTING+="--config-setting imagequant=disable"
 JPEG2000_LIB_DEPENDS=	libopenjp2.so:graphics/openjpeg
-JPEG2000_VARS=		PYDISTUTILS_BUILDARGS+=--enable-jpeg2000
-JPEG2000_VARS_OFF=	PYDISTUTILS_BUILDARGS+=--disable-jpeg2000
+JPEG2000_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting jpeg2000=enable"
+JPEG2000_VARS_OFF=	PEP517_BUILD_CONFIG_SETTING+="--config-setting jpeg2000=disable"
 LCMS_LIB_DEPENDS=	liblcms2.so:graphics/lcms2
-LCMS_VARS=		PYDISTUTILS_BUILDARGS+=--enable-lcms
-LCMS_VARS_OFF=		PYDISTUTILS_BUILDARGS+=--disable-lcms
+LCMS_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting lcms=enable"
+LCMS_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting lcms=disable"
 OLE_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}olefile>=0:devel/py-olefile@${PY_FLAVOR}
-PNG_VARS=		PYDISTUTILS_BUILDARGS+=--enable-zlib
-PNG_VARS_OFF=		PYDISTUTILS_BUILDARGS+=--disable-zlib
 RAQM_LIB_DEPENDS=	libraqm.so:print/libraqm
-RAQM_VARS=		PYDISTUTILS_BUILDARGS+=--enable-raqm
-RAQM_VARS_OFF=		PYDISTUTILS_BUILDARGS+=--disable-raqm
+RAQM_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting raqm=enable"
+RAQM_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting raqm=disable"
 TIFF_LIB_DEPENDS=	libtiff.so:graphics/tiff
-TIFF_VARS=		PYDISTUTILS_BUILDARGS+=--enable-tiff
-TIFF_VARS_OFF=		PYDISTUTILS_BUILDARGS+=--disable-tiff
+TIFF_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting tiff=enable"
+TIFF_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting tiff=disable"
 TKINTER_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}tkinter>=0:x11-toolkits/py-tkinter@${PY_FLAVOR}
 TKINTER_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}tkinter>=0:x11-toolkits/py-tkinter@${PY_FLAVOR}
-TKINTER_USES=		tk
-TKINTER_VARS=		PYDISTUTILS_BUILDARGS+="--include-dirs=${TCL_INCLUDEDIR}:${TK_INCLUDEDIR}"
 WEBP_LIB_DEPENDS=	libwebp.so:graphics/webp
-WEBP_VARS=		PYDISTUTILS_BUILDARGS+="--enable-webp --enable-webpmux"
-WEBP_VARS_OFF=		PYDISTUTILS_BUILDARGS+="--disable-webp --disable-webpmux"
+WEBP_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting webp=enable"
+WEBP_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting webp=disable"
 XCB_USE=		XORG=xcb
 XCB_USES=		xorg
-XCB_VARS=		PYDISTUTILS_BUILDARGS+=--enable-xcb
-XCB_VARS_OFF=		PYDISTUTILS_BUILDARGS+=--disable-xcb
-
-.include <bsd.port.pre.mk>
-
-PYDISTUTILS_BUILD_TARGET=	build build_ext
-PYDISTUTILS_BUILDARGS+=		saveopts
+XCB_VARS=		PEP517_BUILD_CONFIG_SETTING+="--config-setting xcb=enable"
+XCB_VARS_OFF=		PEP517_BUILD_CONFIG_SETTING+="--config-setting xcb=disable"
 
 post-install:
 	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
 
-do-test:
-	cd ${WRKSRC} && ${SETENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${PYTHON_CMD} selftest.py
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/graphics/py-pillow/distinfo b/graphics/py-pillow/distinfo
index 80825b3a278b..5c020407f22e 100644
--- a/graphics/py-pillow/distinfo
+++ b/graphics/py-pillow/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1730387100
-SHA256 (pillow-11.0.0.tar.gz) = 72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739
-SIZE (pillow-11.0.0.tar.gz) = 46737780
+TIMESTAMP = 1745936196
+SHA256 (pillow-11.2.1.tar.gz) = a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6
+SIZE (pillow-11.2.1.tar.gz) = 47026707
diff --git a/graphics/py-pillow/files/patch-pyproject.toml b/graphics/py-pillow/files/patch-pyproject.toml
index a63e11867748..b9adef928b09 100644
--- a/graphics/py-pillow/files/patch-pyproject.toml
+++ b/graphics/py-pillow/files/patch-pyproject.toml
@@ -1,11 +1,21 @@
---- pyproject.toml.orig	2023-10-15 08:57:48 UTC
+--- pyproject.toml.orig	2025-04-12 17:02:40 UTC
 +++ pyproject.toml
-@@ -1,7 +1,7 @@
+@@ -1,7 +1,7 @@ requires = [
  [build-system]
  build-backend = "backend"
  requires = [
--  "setuptools>=67.8",
+-  "setuptools>=77",
 +  "setuptools>=61",
  ]
  backend-path = [
    "_custom_build",
+@@ -14,8 +14,7 @@ keywords = [
+ keywords = [
+   "Imaging",
+ ]
+-license = "MIT-CMU"
+-license-files = [ "LICENSE" ]
++license = { text = "MIT-CMU" }
+ authors = [
+   { name = "Jeffrey A. Clark", email = "aclark@aclark.net" },
+ ]