python3-pillow-heif: Add recipe

Add recipe for release 0.22.0:

- Boolean pillow_heif.options.DISABLE_SECURITY_LIMITS to bypass
  security limit of libheif for the image size.
- libx265 library was updated to the latest 4.1 version.
- libheif was updated from the 1.19.5 to 1.19.7 version.
- AVIF format marked as deprecated and pending for the removal.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Leon Anavi 2025-05-08 09:33:35 +03:00 committed by Khem Raj
parent 292e40fe97
commit 7dd27c2050
No known key found for this signature in database
GPG Key ID: BB053355919D3314
2 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,56 @@
From 98e6831754712221ce030ce8b27e100a3926c543 Mon Sep 17 00:00:00 2001
From: Leon Anavi <leon.anavi@konsulko.com>
Date: Mon, 5 May 2025 16:08:37 +0000
Subject: [PATCH] setup.py: support cross compiling
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
setup.py | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/setup.py b/setup.py
index 68945e4..67566e8 100644
--- a/setup.py
+++ b/setup.py
@@ -125,12 +125,12 @@ class PillowHeifBuildExt(build_ext):
self._add_directory(library_dirs, match.group(1))
# include, rpath, if set as environment variables
- for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE"):
+ for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE", "STAGING_INCDIR"):
if k in os.environ:
for d in os.environ[k].split(os.path.pathsep):
self._add_directory(include_dirs, d)
- for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB"):
+ for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB", "STAGING_LIBDIR"):
if k in os.environ:
for d in os.environ[k].split(os.path.pathsep):
self._add_directory(library_dirs, d)
@@ -199,12 +199,15 @@ class PillowHeifBuildExt(build_ext):
self._update_extension("_pillow_heif", ["heif"], extra_compile_args=["-O3", "-Werror"])
else: # let's assume it's some kind of linux
# this old code waiting for refactoring, when time comes.
- self._add_directory(include_dirs, "/usr/local/include")
- self._add_directory(include_dirs, "/usr/include")
- self._add_directory(library_dirs, "/usr/local/lib")
- self._add_directory(library_dirs, "/usr/lib64")
- self._add_directory(library_dirs, "/usr/lib")
- self._add_directory(library_dirs, "/lib")
+ include_os_path = os.environ.get("STAGING_INCDIR")
+ if include_os_path:
+ for path in include_os_path.split(os.pathsep):
+ self._add_directory(include_dirs, path)
+
+ lib_os_path = os.environ.get("STAGING_LIBDIR")
+ if lib_os_path:
+ for path in lib_os_path.split(os.pathsep):
+ self._add_directory(library_dirs, path)
self._update_extension("_pillow_heif", ["heif"], extra_compile_args=["-O3", "-Werror"])
--
2.39.5

View File

@ -0,0 +1,20 @@
DESCRIPTION = "Python interface for libheif library"
HOMEPAGE = "https://github.com/bigcat88/pillow_heif"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b6c07a92aed67c33bc346748d7c7e991"
# While this item does not require it, it depends on libheif which does
LICENSE_FLAGS = "commercial"
PYPI_PACKAGE = "pillow_heif"
inherit pypi python_setuptools_build_meta
SRC_URI += "file://0001-setup.py-support-cross-compiling.patch"
SRC_URI[sha256sum] = "61d473929340d3073722f6316b7fbbdb11132faa6bac0242328e8436cc55b39a"
DEPENDS += "libheif"
RDEPENDS:${PN} += "python3-pillow"
BBCLASSEXTEND = "native nativesdk"