Merge branch 'main' into debug-build

This commit is contained in:
Andrew Murray 2025-05-26 08:46:23 +10:00
commit b416330530
6 changed files with 24 additions and 18 deletions

View File

@ -98,8 +98,8 @@ jobs:
choco install nasm --no-progress
echo "C:\Program Files\NASM" >> $env:GITHUB_PATH
choco install ghostscript --version=10.5.0 --no-progress
echo "C:\Program Files\gs\gs10.05.0\bin" >> $env:GITHUB_PATH
choco install ghostscript --version=10.5.1 --no-progress
echo "C:\Program Files\gs\gs10.05.1\bin" >> $env:GITHUB_PATH
# Install extra test images
xcopy /S /Y Tests\test-images\* Tests\images

View File

@ -38,8 +38,8 @@ ARCHIVE_SDIR=pillow-depends-main
# Package versions for fresh source builds
FREETYPE_VERSION=2.13.3
HARFBUZZ_VERSION=11.1.0
LIBPNG_VERSION=1.6.47
HARFBUZZ_VERSION=11.2.1
LIBPNG_VERSION=1.6.48
JPEGTURBO_VERSION=3.1.0
OPENJPEG_VERSION=2.5.3
XZ_VERSION=5.8.1

View File

@ -233,7 +233,7 @@ class TestFileAvif:
with Image.open(out_gif) as reread:
reread_value = reread.convert("RGB").getpixel((1, 1))
difference = sum([abs(original_value[i] - reread_value[i]) for i in range(3)])
assert difference <= 3
assert difference <= 6
def test_save_single_frame(self, tmp_path: Path) -> None:
temp_file = tmp_path / "temp.avif"

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -eo pipefail
version=1.2.1
version=1.3.0
./download-and-extract.sh libavif-$version https://github.com/AOMediaCodec/libavif/archive/refs/tags/v$version.tar.gz

View File

@ -224,13 +224,14 @@ def _add_directory(
path.insert(where, subdir)
def _find_include_file(self: pil_build_ext, include: str) -> int:
def _find_include_file(self: pil_build_ext, include: str) -> str | None:
for directory in self.compiler.include_dirs:
_dbg("Checking for include file %s in %s", (include, directory))
if os.path.isfile(os.path.join(directory, include)):
path = os.path.join(directory, include)
if os.path.isfile(path):
_dbg("Found %s", include)
return 1
return 0
return path
return None
def _find_library_file(self: pil_build_ext, library: str) -> str | None:
@ -871,7 +872,12 @@ class pil_build_ext(build_ext):
if feature.want("avif"):
_dbg("Looking for avif")
if _find_include_file(self, "avif/avif.h"):
if avif_h := _find_include_file(self, "avif/avif.h"):
with open(avif_h, "rb") as fp:
major_version = int(
fp.read().split(b"#define AVIF_VERSION_MAJOR ")[1].split()[0]
)
if major_version >= 1:
lib_avif = _find_library_file(self, "avif")
if lib_avif is not None:
feature.set("avif", lib_avif)

View File

@ -113,12 +113,12 @@ V = {
"BROTLI": "1.1.0",
"FREETYPE": "2.13.3",
"FRIBIDI": "1.0.16",
"HARFBUZZ": "11.1.0",
"HARFBUZZ": "11.2.1",
"JPEGTURBO": "3.1.0",
"LCMS2": "2.17",
"LIBAVIF": "1.2.1",
"LIBAVIF": "1.3.0",
"LIBIMAGEQUANT": "4.3.4",
"LIBPNG": "1.6.47",
"LIBPNG": "1.6.48",
"LIBWEBP": "1.5.0",
"OPENJPEG": "2.5.3",
"TIFF": "4.7.0",
@ -389,6 +389,7 @@ DEPS: dict[str, dict[str, Any]] = {
"filename": f"libavif-{V['LIBAVIF']}.zip",
"license": "LICENSE",
"build": [
"rustup update",
f"{sys.executable} -m pip install meson",
*cmds_cmake(
"avif_static",
@ -399,7 +400,6 @@ DEPS: dict[str, dict[str, Any]] = {
"-DAVIF_CODEC_DAV1D=LOCAL",
"-DAVIF_CODEC_RAV1E=LOCAL",
"-DAVIF_CODEC_SVT=LOCAL",
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
),
cmd_xcopy("include", "{inc_dir}"),
],