Repository navigation
recipe: Pillow 12.3.0 links libtiff - #128
Merged
Merged
Conversation
Compressed TIFFs (JPEG, LZW, deflate, PackBits) failed in load() with 'decoder libtiff not available'. flet-libtiff already shipped with JPEG and zlib support; Pillow just never named it. 12.3.0 also stops PyPI's own iOS wheels outranking ours on version. Reported in flet-dev/flet discussion #6969.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Pillow 12.2.0 → 12.3.0, now linked against
flet-libtiff4.7.0.Why
Compressed TIFFs (JPEG, LZW, deflate, PackBits) opened but failed in
load()withOSError: decoder libtiff not available. Reported in flet-dev/flet#6969: JPEG-compressed (compression 7) radar TIFFs worked on Windows and failed on Android.flet-libtiffwas already published withJPEG_SUPPORTandZIP_SUPPORT; the Pillow recipe just never declared it, sosetup.pybuilt withoutHAVE_LIBTIFF.The bump also matters on iOS: PyPI now ships official 12.3.0 iOS wheels (cp313+), which outranked our 12.2.0 on version. At equal versions our build tag wins again, so iOS apps get the forge build.
Changes
meta.yaml:flet-libtiff 4.7.0underhost(Android,.soasDT_NEEDED) andhost_build(iOS, static, folded into_imaging); version 12.3.0, build 1. Patches apply unchanged.tests/test_pillow.py: three tests: libtiff listed as a codec; JPEG-in-TIFF round-trip in RGB and RGBA; LZW / deflate / PackBits exact round-trips.Validation
_imagingNEEDslibtiff.so, APK ships it besidelibjpeg.so, wheel declaresRequires-Dist: flet-libtiff (==4.7.0).Build: 1)._imagingisMH_DYLIB, definesTIFFInitJPEG, no runtimeflet-lib*deps. It now also links system/usr/lib/liblzma.5.dylib, which Pillow 12.3 adds for libtiff on iOS and which ships with the OS.Consumer notes
Apps that read compressed TIFFs need only a rebuild against the new wheel;
PIL.features.check("libtiff")returnsTrueon both platforms. No config or code changes. Consumer guidance for Pillow lives inrecipes/pillow/README.mdon theexamples-and-docsbranch, which still describes compressed TIFF as unsupported and is updated separately.