Fri Jan 5 23:47:53 2024 UTC (162d)
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 (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 (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,296 +1,301 @@ @@ -1,296 +1,301 @@
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
15${PYSITELIB}/PIL/ContainerIO.pyc 21${PYSITELIB}/PIL/ContainerIO.pyc
16${PYSITELIB}/PIL/ContainerIO.pyo 22${PYSITELIB}/PIL/ContainerIO.pyo
17${PYSITELIB}/PIL/CurImagePlugin.py 23${PYSITELIB}/PIL/CurImagePlugin.py
18${PYSITELIB}/PIL/CurImagePlugin.pyc 24${PYSITELIB}/PIL/CurImagePlugin.pyc
19${PYSITELIB}/PIL/CurImagePlugin.pyo 25${PYSITELIB}/PIL/CurImagePlugin.pyo
20${PYSITELIB}/PIL/DcxImagePlugin.py 26${PYSITELIB}/PIL/DcxImagePlugin.py
21${PYSITELIB}/PIL/DcxImagePlugin.pyc 27${PYSITELIB}/PIL/DcxImagePlugin.pyc
22${PYSITELIB}/PIL/DcxImagePlugin.pyo 28${PYSITELIB}/PIL/DcxImagePlugin.pyo
23${PYSITELIB}/PIL/DdsImagePlugin.py 29${PYSITELIB}/PIL/DdsImagePlugin.py
24${PYSITELIB}/PIL/DdsImagePlugin.pyc 30${PYSITELIB}/PIL/DdsImagePlugin.pyc
25${PYSITELIB}/PIL/DdsImagePlugin.pyo 31${PYSITELIB}/PIL/DdsImagePlugin.pyo
26${PYSITELIB}/PIL/EpsImagePlugin.py 32${PYSITELIB}/PIL/EpsImagePlugin.py
27${PYSITELIB}/PIL/EpsImagePlugin.pyc 33${PYSITELIB}/PIL/EpsImagePlugin.pyc
28${PYSITELIB}/PIL/EpsImagePlugin.pyo 34${PYSITELIB}/PIL/EpsImagePlugin.pyo
29${PYSITELIB}/PIL/ExifTags.py 35${PYSITELIB}/PIL/ExifTags.py
30${PYSITELIB}/PIL/ExifTags.pyc 36${PYSITELIB}/PIL/ExifTags.pyc
31${PYSITELIB}/PIL/ExifTags.pyo 37${PYSITELIB}/PIL/ExifTags.pyo
32${PYSITELIB}/PIL/FitsImagePlugin.py 38${PYSITELIB}/PIL/FitsImagePlugin.py
33${PYSITELIB}/PIL/FitsImagePlugin.pyc 39${PYSITELIB}/PIL/FitsImagePlugin.pyc
34${PYSITELIB}/PIL/FitsImagePlugin.pyo 40${PYSITELIB}/PIL/FitsImagePlugin.pyo
35${PYSITELIB}/PIL/FliImagePlugin.py 41${PYSITELIB}/PIL/FliImagePlugin.py
36${PYSITELIB}/PIL/FliImagePlugin.pyc 42${PYSITELIB}/PIL/FliImagePlugin.pyc
37${PYSITELIB}/PIL/FliImagePlugin.pyo 43${PYSITELIB}/PIL/FliImagePlugin.pyo
38${PYSITELIB}/PIL/FontFile.py 44${PYSITELIB}/PIL/FontFile.py
39${PYSITELIB}/PIL/FontFile.pyc 45${PYSITELIB}/PIL/FontFile.pyc
40${PYSITELIB}/PIL/FontFile.pyo 46${PYSITELIB}/PIL/FontFile.pyo
41${PYSITELIB}/PIL/FpxImagePlugin.py 47${PYSITELIB}/PIL/FpxImagePlugin.py
42${PYSITELIB}/PIL/FpxImagePlugin.pyc 48${PYSITELIB}/PIL/FpxImagePlugin.pyc
43${PYSITELIB}/PIL/FpxImagePlugin.pyo 49${PYSITELIB}/PIL/FpxImagePlugin.pyo
44${PYSITELIB}/PIL/FtexImagePlugin.py 50${PYSITELIB}/PIL/FtexImagePlugin.py
45${PYSITELIB}/PIL/FtexImagePlugin.pyc 51${PYSITELIB}/PIL/FtexImagePlugin.pyc
46${PYSITELIB}/PIL/FtexImagePlugin.pyo 52${PYSITELIB}/PIL/FtexImagePlugin.pyo
47${PYSITELIB}/PIL/GbrImagePlugin.py 53${PYSITELIB}/PIL/GbrImagePlugin.py
48${PYSITELIB}/PIL/GbrImagePlugin.pyc 54${PYSITELIB}/PIL/GbrImagePlugin.pyc
49${PYSITELIB}/PIL/GbrImagePlugin.pyo 55${PYSITELIB}/PIL/GbrImagePlugin.pyo
50${PYSITELIB}/PIL/GdImageFile.py 56${PYSITELIB}/PIL/GdImageFile.py
51${PYSITELIB}/PIL/GdImageFile.pyc 57${PYSITELIB}/PIL/GdImageFile.pyc
52${PYSITELIB}/PIL/GdImageFile.pyo 58${PYSITELIB}/PIL/GdImageFile.pyo
53${PYSITELIB}/PIL/GifImagePlugin.py 59${PYSITELIB}/PIL/GifImagePlugin.py
54${PYSITELIB}/PIL/GifImagePlugin.pyc 60${PYSITELIB}/PIL/GifImagePlugin.pyc
55${PYSITELIB}/PIL/GifImagePlugin.pyo 61${PYSITELIB}/PIL/GifImagePlugin.pyo
56${PYSITELIB}/PIL/GimpGradientFile.py 62${PYSITELIB}/PIL/GimpGradientFile.py
57${PYSITELIB}/PIL/GimpGradientFile.pyc 63${PYSITELIB}/PIL/GimpGradientFile.pyc
58${PYSITELIB}/PIL/GimpGradientFile.pyo 64${PYSITELIB}/PIL/GimpGradientFile.pyo
59${PYSITELIB}/PIL/GimpPaletteFile.py 65${PYSITELIB}/PIL/GimpPaletteFile.py
60${PYSITELIB}/PIL/GimpPaletteFile.pyc 66${PYSITELIB}/PIL/GimpPaletteFile.pyc
61${PYSITELIB}/PIL/GimpPaletteFile.pyo 67${PYSITELIB}/PIL/GimpPaletteFile.pyo
62${PYSITELIB}/PIL/GribStubImagePlugin.py 68${PYSITELIB}/PIL/GribStubImagePlugin.py
63${PYSITELIB}/PIL/GribStubImagePlugin.pyc 69${PYSITELIB}/PIL/GribStubImagePlugin.pyc
64${PYSITELIB}/PIL/GribStubImagePlugin.pyo 70${PYSITELIB}/PIL/GribStubImagePlugin.pyo
65${PYSITELIB}/PIL/Hdf5StubImagePlugin.py 71${PYSITELIB}/PIL/Hdf5StubImagePlugin.py
66${PYSITELIB}/PIL/Hdf5StubImagePlugin.pyc 72${PYSITELIB}/PIL/Hdf5StubImagePlugin.pyc
67${PYSITELIB}/PIL/Hdf5StubImagePlugin.pyo 73${PYSITELIB}/PIL/Hdf5StubImagePlugin.pyo
68${PYSITELIB}/PIL/IcnsImagePlugin.py 74${PYSITELIB}/PIL/IcnsImagePlugin.py
69${PYSITELIB}/PIL/IcnsImagePlugin.pyc 75${PYSITELIB}/PIL/IcnsImagePlugin.pyc
70${PYSITELIB}/PIL/IcnsImagePlugin.pyo 76${PYSITELIB}/PIL/IcnsImagePlugin.pyo
71${PYSITELIB}/PIL/IcoImagePlugin.py 77${PYSITELIB}/PIL/IcoImagePlugin.py
72${PYSITELIB}/PIL/IcoImagePlugin.pyc 78${PYSITELIB}/PIL/IcoImagePlugin.pyc
73${PYSITELIB}/PIL/IcoImagePlugin.pyo 79${PYSITELIB}/PIL/IcoImagePlugin.pyo
74${PYSITELIB}/PIL/ImImagePlugin.py 80${PYSITELIB}/PIL/ImImagePlugin.py
75${PYSITELIB}/PIL/ImImagePlugin.pyc 81${PYSITELIB}/PIL/ImImagePlugin.pyc
76${PYSITELIB}/PIL/ImImagePlugin.pyo 82${PYSITELIB}/PIL/ImImagePlugin.pyo
77${PYSITELIB}/PIL/Image.py 83${PYSITELIB}/PIL/Image.py
78${PYSITELIB}/PIL/Image.pyc 84${PYSITELIB}/PIL/Image.pyc
79${PYSITELIB}/PIL/Image.pyo 85${PYSITELIB}/PIL/Image.pyo
80${PYSITELIB}/PIL/ImageChops.py 86${PYSITELIB}/PIL/ImageChops.py
81${PYSITELIB}/PIL/ImageChops.pyc 87${PYSITELIB}/PIL/ImageChops.pyc
82${PYSITELIB}/PIL/ImageChops.pyo 88${PYSITELIB}/PIL/ImageChops.pyo
83${PYSITELIB}/PIL/ImageCms.py 89${PYSITELIB}/PIL/ImageCms.py
84${PYSITELIB}/PIL/ImageCms.pyc 90${PYSITELIB}/PIL/ImageCms.pyc
85${PYSITELIB}/PIL/ImageCms.pyo 91${PYSITELIB}/PIL/ImageCms.pyo
86${PYSITELIB}/PIL/ImageColor.py 92${PYSITELIB}/PIL/ImageColor.py
87${PYSITELIB}/PIL/ImageColor.pyc 93${PYSITELIB}/PIL/ImageColor.pyc
88${PYSITELIB}/PIL/ImageColor.pyo 94${PYSITELIB}/PIL/ImageColor.pyo
89${PYSITELIB}/PIL/ImageDraw.py 95${PYSITELIB}/PIL/ImageDraw.py
90${PYSITELIB}/PIL/ImageDraw.pyc 96${PYSITELIB}/PIL/ImageDraw.pyc
91${PYSITELIB}/PIL/ImageDraw.pyo 97${PYSITELIB}/PIL/ImageDraw.pyo
92${PYSITELIB}/PIL/ImageDraw2.py 98${PYSITELIB}/PIL/ImageDraw2.py
93${PYSITELIB}/PIL/ImageDraw2.pyc 99${PYSITELIB}/PIL/ImageDraw2.pyc
94${PYSITELIB}/PIL/ImageDraw2.pyo 100${PYSITELIB}/PIL/ImageDraw2.pyo
95${PYSITELIB}/PIL/ImageEnhance.py 101${PYSITELIB}/PIL/ImageEnhance.py
96${PYSITELIB}/PIL/ImageEnhance.pyc 102${PYSITELIB}/PIL/ImageEnhance.pyc
97${PYSITELIB}/PIL/ImageEnhance.pyo 103${PYSITELIB}/PIL/ImageEnhance.pyo
98${PYSITELIB}/PIL/ImageFile.py 104${PYSITELIB}/PIL/ImageFile.py
99${PYSITELIB}/PIL/ImageFile.pyc 105${PYSITELIB}/PIL/ImageFile.pyc
100${PYSITELIB}/PIL/ImageFile.pyo 106${PYSITELIB}/PIL/ImageFile.pyo
101${PYSITELIB}/PIL/ImageFilter.py 107${PYSITELIB}/PIL/ImageFilter.py
102${PYSITELIB}/PIL/ImageFilter.pyc 108${PYSITELIB}/PIL/ImageFilter.pyc
103${PYSITELIB}/PIL/ImageFilter.pyo 109${PYSITELIB}/PIL/ImageFilter.pyo
104${PYSITELIB}/PIL/ImageFont.py 110${PYSITELIB}/PIL/ImageFont.py
105${PYSITELIB}/PIL/ImageFont.pyc 111${PYSITELIB}/PIL/ImageFont.pyc
106${PYSITELIB}/PIL/ImageFont.pyo 112${PYSITELIB}/PIL/ImageFont.pyo
107${PYSITELIB}/PIL/ImageGrab.py 113${PYSITELIB}/PIL/ImageGrab.py
108${PYSITELIB}/PIL/ImageGrab.pyc 114${PYSITELIB}/PIL/ImageGrab.pyc
109${PYSITELIB}/PIL/ImageGrab.pyo 115${PYSITELIB}/PIL/ImageGrab.pyo
110${PYSITELIB}/PIL/ImageMath.py 116${PYSITELIB}/PIL/ImageMath.py
111${PYSITELIB}/PIL/ImageMath.pyc 117${PYSITELIB}/PIL/ImageMath.pyc
112${PYSITELIB}/PIL/ImageMath.pyo 118${PYSITELIB}/PIL/ImageMath.pyo
113${PYSITELIB}/PIL/ImageMode.py 119${PYSITELIB}/PIL/ImageMode.py
114${PYSITELIB}/PIL/ImageMode.pyc 120${PYSITELIB}/PIL/ImageMode.pyc
115${PYSITELIB}/PIL/ImageMode.pyo 121${PYSITELIB}/PIL/ImageMode.pyo
116${PYSITELIB}/PIL/ImageMorph.py 122${PYSITELIB}/PIL/ImageMorph.py
117${PYSITELIB}/PIL/ImageMorph.pyc 123${PYSITELIB}/PIL/ImageMorph.pyc
118${PYSITELIB}/PIL/ImageMorph.pyo 124${PYSITELIB}/PIL/ImageMorph.pyo
119${PYSITELIB}/PIL/ImageOps.py 125${PYSITELIB}/PIL/ImageOps.py
120${PYSITELIB}/PIL/ImageOps.pyc 126${PYSITELIB}/PIL/ImageOps.pyc
121${PYSITELIB}/PIL/ImageOps.pyo 127${PYSITELIB}/PIL/ImageOps.pyo
122${PYSITELIB}/PIL/ImagePalette.py 128${PYSITELIB}/PIL/ImagePalette.py
123${PYSITELIB}/PIL/ImagePalette.pyc 129${PYSITELIB}/PIL/ImagePalette.pyc
124${PYSITELIB}/PIL/ImagePalette.pyo 130${PYSITELIB}/PIL/ImagePalette.pyo
125${PYSITELIB}/PIL/ImagePath.py 131${PYSITELIB}/PIL/ImagePath.py
126${PYSITELIB}/PIL/ImagePath.pyc 132${PYSITELIB}/PIL/ImagePath.pyc
127${PYSITELIB}/PIL/ImagePath.pyo 133${PYSITELIB}/PIL/ImagePath.pyo
128${PYSITELIB}/PIL/ImageQt.py 134${PYSITELIB}/PIL/ImageQt.py
129${PYSITELIB}/PIL/ImageQt.pyc 135${PYSITELIB}/PIL/ImageQt.pyc
130${PYSITELIB}/PIL/ImageQt.pyo 136${PYSITELIB}/PIL/ImageQt.pyo
131${PYSITELIB}/PIL/ImageSequence.py 137${PYSITELIB}/PIL/ImageSequence.py
132${PYSITELIB}/PIL/ImageSequence.pyc 138${PYSITELIB}/PIL/ImageSequence.pyc
133${PYSITELIB}/PIL/ImageSequence.pyo 139${PYSITELIB}/PIL/ImageSequence.pyo
134${PYSITELIB}/PIL/ImageShow.py 140${PYSITELIB}/PIL/ImageShow.py
135${PYSITELIB}/PIL/ImageShow.pyc 141${PYSITELIB}/PIL/ImageShow.pyc
136${PYSITELIB}/PIL/ImageShow.pyo 142${PYSITELIB}/PIL/ImageShow.pyo
137${PYSITELIB}/PIL/ImageStat.py 143${PYSITELIB}/PIL/ImageStat.py
138${PYSITELIB}/PIL/ImageStat.pyc 144${PYSITELIB}/PIL/ImageStat.pyc
139${PYSITELIB}/PIL/ImageStat.pyo 145${PYSITELIB}/PIL/ImageStat.pyo
140${PYSITELIB}/PIL/ImageTk.py 146${PYSITELIB}/PIL/ImageTk.py
141${PYSITELIB}/PIL/ImageTk.pyc 147${PYSITELIB}/PIL/ImageTk.pyc
142${PYSITELIB}/PIL/ImageTk.pyo 148${PYSITELIB}/PIL/ImageTk.pyo
143${PYSITELIB}/PIL/ImageTransform.py 149${PYSITELIB}/PIL/ImageTransform.py
144${PYSITELIB}/PIL/ImageTransform.pyc 150${PYSITELIB}/PIL/ImageTransform.pyc
145${PYSITELIB}/PIL/ImageTransform.pyo 151${PYSITELIB}/PIL/ImageTransform.pyo
146${PYSITELIB}/PIL/ImageWin.py 152${PYSITELIB}/PIL/ImageWin.py
147${PYSITELIB}/PIL/ImageWin.pyc 153${PYSITELIB}/PIL/ImageWin.pyc
148${PYSITELIB}/PIL/ImageWin.pyo 154${PYSITELIB}/PIL/ImageWin.pyo
149${PYSITELIB}/PIL/ImtImagePlugin.py 155${PYSITELIB}/PIL/ImtImagePlugin.py
150${PYSITELIB}/PIL/ImtImagePlugin.pyc 156${PYSITELIB}/PIL/ImtImagePlugin.pyc
151${PYSITELIB}/PIL/ImtImagePlugin.pyo 157${PYSITELIB}/PIL/ImtImagePlugin.pyo
152${PYSITELIB}/PIL/IptcImagePlugin.py 158${PYSITELIB}/PIL/IptcImagePlugin.py
153${PYSITELIB}/PIL/IptcImagePlugin.pyc 159${PYSITELIB}/PIL/IptcImagePlugin.pyc
154${PYSITELIB}/PIL/IptcImagePlugin.pyo 160${PYSITELIB}/PIL/IptcImagePlugin.pyo
155${PYSITELIB}/PIL/Jpeg2KImagePlugin.py 161${PYSITELIB}/PIL/Jpeg2KImagePlugin.py
156${PYSITELIB}/PIL/Jpeg2KImagePlugin.pyc 162${PYSITELIB}/PIL/Jpeg2KImagePlugin.pyc
157${PYSITELIB}/PIL/Jpeg2KImagePlugin.pyo 163${PYSITELIB}/PIL/Jpeg2KImagePlugin.pyo
158${PYSITELIB}/PIL/JpegImagePlugin.py 164${PYSITELIB}/PIL/JpegImagePlugin.py
159${PYSITELIB}/PIL/JpegImagePlugin.pyc 165${PYSITELIB}/PIL/JpegImagePlugin.pyc
160${PYSITELIB}/PIL/JpegImagePlugin.pyo 166${PYSITELIB}/PIL/JpegImagePlugin.pyo
161${PYSITELIB}/PIL/JpegPresets.py 167${PYSITELIB}/PIL/JpegPresets.py
162${PYSITELIB}/PIL/JpegPresets.pyc 168${PYSITELIB}/PIL/JpegPresets.pyc
163${PYSITELIB}/PIL/JpegPresets.pyo 169${PYSITELIB}/PIL/JpegPresets.pyo
164${PYSITELIB}/PIL/McIdasImagePlugin.py 170${PYSITELIB}/PIL/McIdasImagePlugin.py
165${PYSITELIB}/PIL/McIdasImagePlugin.pyc 171${PYSITELIB}/PIL/McIdasImagePlugin.pyc
166${PYSITELIB}/PIL/McIdasImagePlugin.pyo 172${PYSITELIB}/PIL/McIdasImagePlugin.pyo
167${PYSITELIB}/PIL/MicImagePlugin.py 173${PYSITELIB}/PIL/MicImagePlugin.py
168${PYSITELIB}/PIL/MicImagePlugin.pyc 174${PYSITELIB}/PIL/MicImagePlugin.pyc
169${PYSITELIB}/PIL/MicImagePlugin.pyo 175${PYSITELIB}/PIL/MicImagePlugin.pyo
170${PYSITELIB}/PIL/MpegImagePlugin.py 176${PYSITELIB}/PIL/MpegImagePlugin.py
171${PYSITELIB}/PIL/MpegImagePlugin.pyc 177${PYSITELIB}/PIL/MpegImagePlugin.pyc
172${PYSITELIB}/PIL/MpegImagePlugin.pyo 178${PYSITELIB}/PIL/MpegImagePlugin.pyo
173${PYSITELIB}/PIL/MpoImagePlugin.py 179${PYSITELIB}/PIL/MpoImagePlugin.py
174${PYSITELIB}/PIL/MpoImagePlugin.pyc 180${PYSITELIB}/PIL/MpoImagePlugin.pyc
175${PYSITELIB}/PIL/MpoImagePlugin.pyo 181${PYSITELIB}/PIL/MpoImagePlugin.pyo
176${PYSITELIB}/PIL/MspImagePlugin.py 182${PYSITELIB}/PIL/MspImagePlugin.py
177${PYSITELIB}/PIL/MspImagePlugin.pyc 183${PYSITELIB}/PIL/MspImagePlugin.pyc
178${PYSITELIB}/PIL/MspImagePlugin.pyo 184${PYSITELIB}/PIL/MspImagePlugin.pyo
179${PYSITELIB}/PIL/PSDraw.py 185${PYSITELIB}/PIL/PSDraw.py
180${PYSITELIB}/PIL/PSDraw.pyc 186${PYSITELIB}/PIL/PSDraw.pyc
181${PYSITELIB}/PIL/PSDraw.pyo 187${PYSITELIB}/PIL/PSDraw.pyo
182${PYSITELIB}/PIL/PaletteFile.py 188${PYSITELIB}/PIL/PaletteFile.py
183${PYSITELIB}/PIL/PaletteFile.pyc 189${PYSITELIB}/PIL/PaletteFile.pyc
184${PYSITELIB}/PIL/PaletteFile.pyo 190${PYSITELIB}/PIL/PaletteFile.pyo
185${PYSITELIB}/PIL/PalmImagePlugin.py 191${PYSITELIB}/PIL/PalmImagePlugin.py
186${PYSITELIB}/PIL/PalmImagePlugin.pyc 192${PYSITELIB}/PIL/PalmImagePlugin.pyc
187${PYSITELIB}/PIL/PalmImagePlugin.pyo 193${PYSITELIB}/PIL/PalmImagePlugin.pyo
188${PYSITELIB}/PIL/PcdImagePlugin.py 194${PYSITELIB}/PIL/PcdImagePlugin.py
189${PYSITELIB}/PIL/PcdImagePlugin.pyc 195${PYSITELIB}/PIL/PcdImagePlugin.pyc
190${PYSITELIB}/PIL/PcdImagePlugin.pyo 196${PYSITELIB}/PIL/PcdImagePlugin.pyo
191${PYSITELIB}/PIL/PcfFontFile.py 197${PYSITELIB}/PIL/PcfFontFile.py
192${PYSITELIB}/PIL/PcfFontFile.pyc 198${PYSITELIB}/PIL/PcfFontFile.pyc
193${PYSITELIB}/PIL/PcfFontFile.pyo 199${PYSITELIB}/PIL/PcfFontFile.pyo
194${PYSITELIB}/PIL/PcxImagePlugin.py 200${PYSITELIB}/PIL/PcxImagePlugin.py
195${PYSITELIB}/PIL/PcxImagePlugin.pyc 201${PYSITELIB}/PIL/PcxImagePlugin.pyc
196${PYSITELIB}/PIL/PcxImagePlugin.pyo 202${PYSITELIB}/PIL/PcxImagePlugin.pyo
197${PYSITELIB}/PIL/PdfImagePlugin.py 203${PYSITELIB}/PIL/PdfImagePlugin.py
198${PYSITELIB}/PIL/PdfImagePlugin.pyc 204${PYSITELIB}/PIL/PdfImagePlugin.pyc
199${PYSITELIB}/PIL/PdfImagePlugin.pyo 205${PYSITELIB}/PIL/PdfImagePlugin.pyo
200${PYSITELIB}/PIL/PdfParser.py 206${PYSITELIB}/PIL/PdfParser.py
201${PYSITELIB}/PIL/PdfParser.pyc 207${PYSITELIB}/PIL/PdfParser.pyc
202${PYSITELIB}/PIL/PdfParser.pyo 208${PYSITELIB}/PIL/PdfParser.pyo
203${PYSITELIB}/PIL/PixarImagePlugin.py 209${PYSITELIB}/PIL/PixarImagePlugin.py
204${PYSITELIB}/PIL/PixarImagePlugin.pyc 210${PYSITELIB}/PIL/PixarImagePlugin.pyc
205${PYSITELIB}/PIL/PixarImagePlugin.pyo 211${PYSITELIB}/PIL/PixarImagePlugin.pyo
206${PYSITELIB}/PIL/PngImagePlugin.py 212${PYSITELIB}/PIL/PngImagePlugin.py
207${PYSITELIB}/PIL/PngImagePlugin.pyc 213${PYSITELIB}/PIL/PngImagePlugin.pyc
208${PYSITELIB}/PIL/PngImagePlugin.pyo 214${PYSITELIB}/PIL/PngImagePlugin.pyo
209${PYSITELIB}/PIL/PpmImagePlugin.py 215${PYSITELIB}/PIL/PpmImagePlugin.py
210${PYSITELIB}/PIL/PpmImagePlugin.pyc 216${PYSITELIB}/PIL/PpmImagePlugin.pyc
211${PYSITELIB}/PIL/PpmImagePlugin.pyo 217${PYSITELIB}/PIL/PpmImagePlugin.pyo
212${PYSITELIB}/PIL/PsdImagePlugin.py 218${PYSITELIB}/PIL/PsdImagePlugin.py
213${PYSITELIB}/PIL/PsdImagePlugin.pyc 219${PYSITELIB}/PIL/PsdImagePlugin.pyc
214${PYSITELIB}/PIL/PsdImagePlugin.pyo 220${PYSITELIB}/PIL/PsdImagePlugin.pyo
215${PYSITELIB}/PIL/PyAccess.py 221${PYSITELIB}/PIL/PyAccess.py
216${PYSITELIB}/PIL/PyAccess.pyc 222${PYSITELIB}/PIL/PyAccess.pyc
217${PYSITELIB}/PIL/PyAccess.pyo 223${PYSITELIB}/PIL/PyAccess.pyo
218${PYSITELIB}/PIL/QoiImagePlugin.py 224${PYSITELIB}/PIL/QoiImagePlugin.py
219${PYSITELIB}/PIL/QoiImagePlugin.pyc 225${PYSITELIB}/PIL/QoiImagePlugin.pyc
220${PYSITELIB}/PIL/QoiImagePlugin.pyo 226${PYSITELIB}/PIL/QoiImagePlugin.pyo
221${PYSITELIB}/PIL/SgiImagePlugin.py 227${PYSITELIB}/PIL/SgiImagePlugin.py
222${PYSITELIB}/PIL/SgiImagePlugin.pyc 228${PYSITELIB}/PIL/SgiImagePlugin.pyc
223${PYSITELIB}/PIL/SgiImagePlugin.pyo 229${PYSITELIB}/PIL/SgiImagePlugin.pyo
224${PYSITELIB}/PIL/SpiderImagePlugin.py 230${PYSITELIB}/PIL/SpiderImagePlugin.py
225${PYSITELIB}/PIL/SpiderImagePlugin.pyc 231${PYSITELIB}/PIL/SpiderImagePlugin.pyc
226${PYSITELIB}/PIL/SpiderImagePlugin.pyo 232${PYSITELIB}/PIL/SpiderImagePlugin.pyo
227${PYSITELIB}/PIL/SunImagePlugin.py 233${PYSITELIB}/PIL/SunImagePlugin.py
228${PYSITELIB}/PIL/SunImagePlugin.pyc 234${PYSITELIB}/PIL/SunImagePlugin.pyc
229${PYSITELIB}/PIL/SunImagePlugin.pyo 235${PYSITELIB}/PIL/SunImagePlugin.pyo
230${PYSITELIB}/PIL/TarIO.py 236${PYSITELIB}/PIL/TarIO.py
231${PYSITELIB}/PIL/TarIO.pyc 237${PYSITELIB}/PIL/TarIO.pyc
232${PYSITELIB}/PIL/TarIO.pyo 238${PYSITELIB}/PIL/TarIO.pyo
233${PYSITELIB}/PIL/TgaImagePlugin.py 239${PYSITELIB}/PIL/TgaImagePlugin.py
234${PYSITELIB}/PIL/TgaImagePlugin.pyc 240${PYSITELIB}/PIL/TgaImagePlugin.pyc
235${PYSITELIB}/PIL/TgaImagePlugin.pyo 241${PYSITELIB}/PIL/TgaImagePlugin.pyo
236${PYSITELIB}/PIL/TiffImagePlugin.py 242${PYSITELIB}/PIL/TiffImagePlugin.py
237${PYSITELIB}/PIL/TiffImagePlugin.pyc 243${PYSITELIB}/PIL/TiffImagePlugin.pyc
238${PYSITELIB}/PIL/TiffImagePlugin.pyo 244${PYSITELIB}/PIL/TiffImagePlugin.pyo
239${PYSITELIB}/PIL/TiffTags.py 245${PYSITELIB}/PIL/TiffTags.py
240${PYSITELIB}/PIL/TiffTags.pyc 246${PYSITELIB}/PIL/TiffTags.pyc
241${PYSITELIB}/PIL/TiffTags.pyo 247${PYSITELIB}/PIL/TiffTags.pyo
242${PYSITELIB}/PIL/WalImageFile.py 248${PYSITELIB}/PIL/WalImageFile.py
243${PYSITELIB}/PIL/WalImageFile.pyc 249${PYSITELIB}/PIL/WalImageFile.pyc
244${PYSITELIB}/PIL/WalImageFile.pyo 250${PYSITELIB}/PIL/WalImageFile.pyo
245${PYSITELIB}/PIL/WebPImagePlugin.py 251${PYSITELIB}/PIL/WebPImagePlugin.py
246${PYSITELIB}/PIL/WebPImagePlugin.pyc 252${PYSITELIB}/PIL/WebPImagePlugin.pyc
247${PYSITELIB}/PIL/WebPImagePlugin.pyo 253${PYSITELIB}/PIL/WebPImagePlugin.pyo
248${PYSITELIB}/PIL/WmfImagePlugin.py 254${PYSITELIB}/PIL/WmfImagePlugin.py
249${PYSITELIB}/PIL/WmfImagePlugin.pyc 255${PYSITELIB}/PIL/WmfImagePlugin.pyc
250${PYSITELIB}/PIL/WmfImagePlugin.pyo 256${PYSITELIB}/PIL/WmfImagePlugin.pyo
251${PYSITELIB}/PIL/XVThumbImagePlugin.py 257${PYSITELIB}/PIL/XVThumbImagePlugin.py
252${PYSITELIB}/PIL/XVThumbImagePlugin.pyc 258${PYSITELIB}/PIL/XVThumbImagePlugin.pyc
253${PYSITELIB}/PIL/XVThumbImagePlugin.pyo 259${PYSITELIB}/PIL/XVThumbImagePlugin.pyo
254${PYSITELIB}/PIL/XbmImagePlugin.py 260${PYSITELIB}/PIL/XbmImagePlugin.py
255${PYSITELIB}/PIL/XbmImagePlugin.pyc 261${PYSITELIB}/PIL/XbmImagePlugin.pyc
256${PYSITELIB}/PIL/XbmImagePlugin.pyo 262${PYSITELIB}/PIL/XbmImagePlugin.pyo
257${PYSITELIB}/PIL/XpmImagePlugin.py 263${PYSITELIB}/PIL/XpmImagePlugin.py
258${PYSITELIB}/PIL/XpmImagePlugin.pyc 264${PYSITELIB}/PIL/XpmImagePlugin.pyc
259${PYSITELIB}/PIL/XpmImagePlugin.pyo 265${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 (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 (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):