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@gentoo.org>
This commit is contained in:
Hanno Böck
2025-10-26 11:13:27 +01:00
parent b30464ac17
commit f5d009bc76
3 changed files with 139 additions and 0 deletions

View File

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

View File

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

View File

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