commit: f5d009bc761285494e6d69340a9b3bfb4faf355b Author: Hanno Böck <hanno <AT> gentoo <DOT> org> AuthorDate: Sun Oct 26 10:13:27 2025 +0000 Commit: Hanno Böck <hanno <AT> gentoo <DOT> org> CommitDate: Sun Oct 26 10:14:09 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5d009bc
media-libs/libheif: add 1.20.2 Include patch to fix undefined symbol (already in upstream git, but not yet part of a release). Closes: https://bugs.gentoo.org/960789 Signed-off-by: Hanno Böck <hanno <AT> gentoo.org> media-libs/libheif/Manifest | 1 + media-libs/libheif/files/libheif-undefined.diff | 13 +++ media-libs/libheif/libheif-1.20.2.ebuild | 125 ++++++++++++++++++++++++ 3 files changed, 139 insertions(+) diff --git a/media-libs/libheif/Manifest b/media-libs/libheif/Manifest index 0222377015d6..306f0746f267 100644 --- a/media-libs/libheif/Manifest +++ b/media-libs/libheif/Manifest @@ -1,2 +1,3 @@ DIST libheif-1.19.8.tar.gz 1718218 BLAKE2B 048fe46fc6d4a889ff80da51b6768b505d265a11b2363ecc9d908438dfd8613d0e460737a36a30e5fd84c6e91c70f22f86778cb5f04ab1f6a8b9eae54c027ab0 SHA512 ccb7359c2a7632fd598bb82d238482652fec58c8cebfecd3c2fef07d814d6e623d7916db18eeb47887f1c32bbdbb80680533643b7610880844e1dee3e128cade DIST libheif-1.20.1.tar.gz 1787033 BLAKE2B 11f312d9b4222a8f07e0953d3f828a7b324d4fb3359d7a33f0ef7f2507cbd9ca06c5d433cf3271934bcf748f5e9a5c9c008b4373e82b21e264fc817190a32fb9 SHA512 360a02e71bd1693c42e110ebf77e8da576775517c8c0250c02bbfd8fd0ceb6b56d3d7cec76eddf8dfc572687c308cfb756e4c3519d31572d25c0a7557d3de415 +DIST libheif-1.20.2.tar.gz 1787518 BLAKE2B 8bf39d9a1cd545c5bf30c502909811bcf93370e471ee21b02595fef969690096def2db964d8963d9e820532eb7d2603aa4da86207707a2ca1abe005c328f2e5e SHA512 0ab8669d2ee1ed619c89cbe3fa3a7618c25d26a7e4c65801dd4db163d4a584fde13b32ed0996461e81bd42ed4def8f4eb7b296b15b7819e90c0a7d5a8c08b06b diff --git a/media-libs/libheif/files/libheif-undefined.diff b/media-libs/libheif/files/libheif-undefined.diff new file mode 100644 index 000000000000..043879dc74c1 --- /dev/null +++ b/media-libs/libheif/files/libheif-undefined.diff @@ -0,0 +1,13 @@ +diff --git a/libheif/plugins/CMakeLists.txt b/libheif/plugins/CMakeLists.txt +index f7379c09da..643f413a1c 100644 +--- a/libheif/plugins/CMakeLists.txt ++++ b/libheif/plugins/CMakeLists.txt +@@ -66,7 +66,7 @@ set(AOM_ENCODER_extra_plugin_sources ../error.cc ../common_utils.cc ../common_ut + plugin_compilation(aomenc AOM AOM_ENCODER_FOUND AOM_ENCODER AOM_ENCODER) + + set(SvtEnc_sources encoder_svt.cc encoder_svt.h) +-set(SvtEnc_extra_plugin_sources ../common_utils.cc ../common_utils.h) ++set(SvtEnc_extra_plugin_sources ../error.cc ../common_utils.cc ../common_utils.h) + plugin_compilation(svtenc SvtEnc SvtEnc_FOUND SvtEnc SvtEnc) + + set(RAV1E_sources encoder_rav1e.cc encoder_rav1e.h) diff --git a/media-libs/libheif/libheif-1.20.2.ebuild b/media-libs/libheif/libheif-1.20.2.ebuild new file mode 100644 index 000000000000..615ff02fa33c --- /dev/null +++ b/media-libs/libheif/libheif-1.20.2.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib gnome2-utils xdg + +# From https://github.com/strukturag/libheif/commit/6c3fb973c5d9f954899839f6f4aaa6a173cab098 +PATCHES="${FILESDIR}/libheif-undefined.diff" + +DESCRIPTION="ISO/IEC 23008-12:2017 HEIF file format decoder and encoder" +HOMEPAGE="https://github.com/strukturag/libheif" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/strukturag/libheif.git" + inherit git-r3 +else + SRC_URI="https://github.com/strukturag/libheif/releases/download/v${PV}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi + +LICENSE="GPL-3 MIT" +SLOT="0/$(ver_cut 1-2)" +IUSE="+aom dav1d +de265 doc ffmpeg gdk-pixbuf gui +jpeg +jpeg2k +kvazaar openh264 rav1e svt-av1 test test-full +threads tools +webp x265" +# IUSE+=" vvdec vvenc" +REQUIRED_USE="test-full? ( test )" +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( app-text/doxygen ) +" +DEPEND=" + media-libs/libpng:=[${MULTILIB_USEDEP}] + media-libs/tiff:=[${MULTILIB_USEDEP}] + sys-libs/zlib:=[${MULTILIB_USEDEP}] + aom? ( >=media-libs/libaom-2.0.0:=[${MULTILIB_USEDEP}] ) + dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] ) + de265? ( media-libs/libde265[${MULTILIB_USEDEP}] ) + ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) + gdk-pixbuf? ( x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] ) + jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] ) + jpeg2k? ( media-libs/openjpeg:=[${MULTILIB_USEDEP}] ) + kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] ) + openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] ) + rav1e? ( media-video/rav1e:= ) + svt-av1? ( media-libs/svt-av1:=[${MULTILIB_USEDEP}] ) + tools? ( + gui? ( + media-libs/libsdl2:=[${MULTILIB_USEDEP}] + ) + ) + webp? ( media-libs/libwebp:= ) + x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] ) +" +# vvdec? ( >=media-libs/vvdec-2.3.0:=::guru[${MULTILIB_USEDEP}] ) +# vvenc? ( media-libs/vvenc:=::guru[${MULTILIB_USEDEP}] ) +RDEPEND="${DEPEND}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libheif/heif_version.h +) + +pkg_pretend() { + if use gui && use !tools ; then + ewarn "Building heif-view requires USE=\"gui tools\"." + fi +} + +multilib_src_configure() { + local mycmakeargs=( + $(cmake_use_find_package doc Doxygen) + -DBUILD_TESTING=$(usex test) + -DENABLE_PLUGIN_LOADING=true + -DWITH_LIBDE265=$(usex de265) + -DWITH_AOM_DECODER=$(usex aom) + -DWITH_AOM_ENCODER=$(usex aom) + -DWITH_DAV1D=$(usex dav1d) + -DWITH_EXAMPLES=$(usex tools) # the examples are tools + -DWITH_FFMPEG_DECODER=$(usex ffmpeg) + -DWITH_GDK_PIXBUF=$(usex gdk-pixbuf) + -DWITH_OpenH264_DECODER=$(usex openh264) + -DWITH_OpenH264_ENCODER=$(usex openh264) + -DWITH_RAV1E=$(multilib_native_usex rav1e) + -DWITH_SvtEnc=$(usex svt-av1) + -DWITH_LIBSHARPYUV=$(usex webp) + # -DWITH_VVDEC=$(usex vvdec) # vvdec not yet packaged, in ::guru + # -DWITH_VVENC=$(usex vvenc) # vvenc not yet packaged, in ::guru + -DWITH_X265=$(usex x265) + -DWITH_KVAZAAR=$(usex kvazaar) + -DWITH_JPEG_DECODER=$(usex jpeg) + -DWITH_JPEG_ENCODER=$(usex jpeg) + -DWITH_OpenJPEG_DECODER=$(usex jpeg2k) + -DWITH_OpenJPEG_ENCODER=$(usex jpeg2k) + ) + + # Allow tests that rely on options not normally enabled + # https://github.com/strukturag/libheif/blob/v1.20.1/tests/CMakeLists.txt#L36-L46 + # https://github.com/strukturag/libheif/blob/v1.20.1/tests/CMakeLists.txt#L82-L101 + if use test && use test-full; then + mycmakeargs+=( + -DENABLE_EXPERIMENTAL_FEATURES=ON + -DWITH_REDUCED_VISIBILITY=OFF + -DWITH_UNCOMPRESSED_CODEC=ON + ) + fi + + # TODO WITH_EXAMPLE_HEIF_VIEW in -9999 + if use tools && ! use gui; then + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_SDL2=ON + ) + fi + + cmake_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update +} + +pkg_postrm() { + xdg_pkg_postrm + use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update +}
