Message ID | 20250508063335.1498917-1-leon.anavi@konsulko.com |
---|---|
State | Accepted |
Headers | show |
Series | [meta-python,PATCHv2] python3-pillow-heif: Add recipe | expand |
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] > -=-=-=-=-=-=-=-=-=-=-=- > >
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] > -=-=-=-=-=-=-=-=-=-=-=- >
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] > > -=-=-=-=-=-=-=-=-=-=-=- > > >
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 --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"
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