diff mbox series

[meta-python,PATCHv2] python3-pillow-heif: Add recipe

Message ID 20250508063335.1498917-1-leon.anavi@konsulko.com
State Accepted
Headers show
Series [meta-python,PATCHv2] python3-pillow-heif: Add recipe | expand

Commit Message

Leon Anavi May 8, 2025, 6:33 a.m. UTC
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>
---
 ...001-setup.py-support-cross-compiling.patch | 56 +++++++++++++++++++
 .../python/python3-pillow-heif_0.22.0.bb      | 20 +++++++
 2 files changed, 76 insertions(+)
 create mode 100644 meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
 create mode 100644 meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb

Comments

Yoann Congal May 18, 2025, 9:02 p.m. UTC | #1
Le jeu. 8 mai 2025 à 08:33, Leon Anavi via lists.openembedded.org
<leon.anavi=konsulko.com@lists.openembedded.org> a écrit :

> 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>
>

Hello,

This recipe triggers build failures when doing a meta-python world build :
libheif is in meta-multimedia but meta-python does not depend on
meta-multimedia.
https://autobuilder.yoctoproject.org/valkyrie/#/builders/87/builds/46/steps/41/logs/stdio
(line 74)

Maybe this recipe should be moved to meta-multimedia?

NB: meta-multimedia does depends on meta-python

Regards,

> ---
>  ...001-setup.py-support-cross-compiling.patch | 56 +++++++++++++++++++
>  .../python/python3-pillow-heif_0.22.0.bb      | 20 +++++++
>  2 files changed, 76 insertions(+)
>  create mode 100644
> meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>  create mode 100644 meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb
>
> diff --git
> a/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> new file mode 100644
> index 0000000000..66cf7a9244
> --- /dev/null
> +++
> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> @@ -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
> +
> diff --git a/meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb b/meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb
> new file mode 100644
> index 0000000000..7f5dfac702
> --- /dev/null
> +++ b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
> @@ -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"
> --
> 2.39.5
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#117361):
> https://lists.openembedded.org/g/openembedded-devel/message/117361
> Mute This Topic: https://lists.openembedded.org/mt/112783025/4316185
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> yoann.congal@smile.fr]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Khem Raj May 18, 2025, 9:55 p.m. UTC | #2
On Sun, May 18, 2025 at 2:03 PM Yoann Congal via
lists.openembedded.org <yoann.congal=smile.fr@lists.openembedded.org>
wrote:
>
>
>
> Le jeu. 8 mai 2025 à 08:33, Leon Anavi via lists.openembedded.org <leon.anavi=konsulko.com@lists.openembedded.org> a écrit :
>>
>> 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>
>
>
> Hello,
>
> This recipe triggers build failures when doing a meta-python world build : libheif is in meta-multimedia but meta-python does not depend on meta-multimedia.
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/87/builds/46/steps/41/logs/stdio (line 74)
>
> Maybe this recipe should be moved to meta-multimedia?
>
> NB: meta-multimedia does depends on meta-python
>

Seems good to me. Please send a patch

> Regards,
>>
>> ---
>>  ...001-setup.py-support-cross-compiling.patch | 56 +++++++++++++++++++
>>  .../python/python3-pillow-heif_0.22.0.bb      | 20 +++++++
>>  2 files changed, 76 insertions(+)
>>  create mode 100644 meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>>  create mode 100644 meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
>>
>> diff --git a/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> new file mode 100644
>> index 0000000000..66cf7a9244
>> --- /dev/null
>> +++ b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> @@ -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
>> +
>> diff --git a/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
>> new file mode 100644
>> index 0000000000..7f5dfac702
>> --- /dev/null
>> +++ b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
>> @@ -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"
>> --
>> 2.39.5
>>
>>
>>
>>
>
>
> --
> Yoann Congal
> Smile ECS
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#117464): https://lists.openembedded.org/g/openembedded-devel/message/117464
> Mute This Topic: https://lists.openembedded.org/mt/112783025/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Leon Anavi May 22, 2025, 12:14 p.m. UTC | #3
Hi Yoann, Khem,

On Mon, May 19, 2025 at 12:56 AM Khem Raj <raj.khem@gmail.com> wrote:

> On Sun, May 18, 2025 at 2:03 PM Yoann Congal via
> lists.openembedded.org <yoann.congal=smile.fr@lists.openembedded.org>
> wrote:
> >
> >
> >
> > Le jeu. 8 mai 2025 à 08:33, Leon Anavi via lists.openembedded.org
> <leon.anavi=konsulko.com@lists.openembedded.org> a écrit :
> >>
> >> 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>
> >
> >
> > Hello,
> >
> > This recipe triggers build failures when doing a meta-python world build
> : libheif is in meta-multimedia but meta-python does not depend on
> meta-multimedia.
> >
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/87/builds/46/steps/41/logs/stdio
> (line 74)
> >
> > Maybe this recipe should be moved to meta-multimedia?
> >
> > NB: meta-multimedia does depends on meta-python
> >
>
> Seems good to me. Please send a patch
>

Thank you for the suggestion. As you recommended, I have just sent a patch
to move  python3-pillow-heif to meta-multimedia:
https://lists.openembedded.org/g/openembedded-devel/topic/meta_multimedia_patch/113245750

Best regards,
Leon


>
> > Regards,
> >>
> >> ---
> >>  ...001-setup.py-support-cross-compiling.patch | 56 +++++++++++++++++++
> >>  .../python/python3-pillow-heif_0.22.0.bb      | 20 +++++++
> >>  2 files changed, 76 insertions(+)
> >>  create mode 100644
> meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> >>  create mode 100644 meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb
> >>
> >> diff --git
> a/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> >> new file mode 100644
> >> index 0000000000..66cf7a9244
> >> --- /dev/null
> >> +++
> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
> >> @@ -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
> >> +
> >> diff --git a/meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb b/meta-python/recipes-devtools/python/
> python3-pillow-heif_0.22.0.bb
> >> new file mode 100644
> >> index 0000000000..7f5dfac702
> >> --- /dev/null
> >> +++ b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
> >> @@ -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"
> >> --
> >> 2.39.5
> >>
> >>
> >>
> >>
> >
> >
> > --
> > Yoann Congal
> > Smile ECS
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#117464):
> https://lists.openembedded.org/g/openembedded-devel/message/117464
> > Mute This Topic: https://lists.openembedded.org/mt/112783025/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
Yoann Congal May 22, 2025, 3:50 p.m. UTC | #4
Le jeu. 22 mai 2025 à 14:14, Leon Anavi <leon.anavi@konsulko.com> a écrit :

> Hi Yoann, Khem,
>
> On Mon, May 19, 2025 at 12:56 AM Khem Raj <raj.khem@gmail.com> wrote:
>
>> On Sun, May 18, 2025 at 2:03 PM Yoann Congal via
>> lists.openembedded.org <yoann.congal=smile.fr@lists.openembedded.org>
>> wrote:
>> >
>> >
>> >
>> > Le jeu. 8 mai 2025 à 08:33, Leon Anavi via lists.openembedded.org
>> <leon.anavi=konsulko.com@lists.openembedded.org> a écrit :
>> >>
>> >> 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>
>> >
>> >
>> > Hello,
>> >
>> > This recipe triggers build failures when doing a meta-python world
>> build : libheif is in meta-multimedia but meta-python does not depend on
>> meta-multimedia.
>> >
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/87/builds/46/steps/41/logs/stdio
>> (line 74)
>> >
>> > Maybe this recipe should be moved to meta-multimedia?
>> >
>> > NB: meta-multimedia does depends on meta-python
>> >
>>
>> Seems good to me. Please send a patch
>>
>
> Thank you for the suggestion. As you recommended, I have just sent a patch
> to move  python3-pillow-heif to meta-multimedia:
>
> https://lists.openembedded.org/g/openembedded-devel/topic/meta_multimedia_patch/113245750
>

Thanks a lot for the patch :-)


> Best regards,
> Leon
>
>
>>
>> > Regards,
>> >>
>> >> ---
>> >>  ...001-setup.py-support-cross-compiling.patch | 56 +++++++++++++++++++
>> >>  .../python/python3-pillow-heif_0.22.0.bb      | 20 +++++++
>> >>  2 files changed, 76 insertions(+)
>> >>  create mode 100644
>> meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> >>  create mode 100644 meta-python/recipes-devtools/python/
>> python3-pillow-heif_0.22.0.bb
>> >>
>> >> diff --git
>> a/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> >> new file mode 100644
>> >> index 0000000000..66cf7a9244
>> >> --- /dev/null
>> >> +++
>> b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
>> >> @@ -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
>> >> +
>> >> diff --git a/meta-python/recipes-devtools/python/
>> python3-pillow-heif_0.22.0.bb b/meta-python/recipes-devtools/python/
>> python3-pillow-heif_0.22.0.bb
>> >> new file mode 100644
>> >> index 0000000000..7f5dfac702
>> >> --- /dev/null
>> >> +++ b/meta-python/recipes-devtools/python/
>> python3-pillow-heif_0.22.0.bb
>> >> @@ -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"
>> >> --
>> >> 2.39.5
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>> > --
>> > Yoann Congal
>> > Smile ECS
>> >
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> > Links: You receive all messages sent to this group.
>> > View/Reply Online (#117464):
>> https://lists.openembedded.org/g/openembedded-devel/message/117464
>> > Mute This Topic: https://lists.openembedded.org/mt/112783025/1997914
>> > Group Owner: openembedded-devel+owner@lists.openembedded.org
>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub
>> [raj.khem@gmail.com]
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> >
>>
>
>
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
new file mode 100644
index 0000000000..66cf7a9244
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow-heif/0001-setup.py-support-cross-compiling.patch
@@ -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
+
diff --git a/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
new file mode 100644
index 0000000000..7f5dfac702
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow-heif_0.22.0.bb
@@ -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"