public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/libheif] epel9: Update to 1.23.5 upstream release
@ 2026-09-22 22:53 Michel Lind
  0 siblings, 0 replies; only message in thread
From: Michel Lind @ 2026-09-22 22:53 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/libheif
            Branch : epel9
            Commit : 4e3103c636449ece713e820286e729a3dbf634d2
            Author : Michel Lind <salimma@fedoraproject.org>
            Date   : 2026-09-22T23:52:52+01:00
            Stats  : +130/-47 in 4 file(s)
            URL    : https://src.fedoraproject.org/rpms/libheif/c/4e3103c636449ece713e820286e729a3dbf634d2?branch=epel9

            Log:
            Update to 1.23.5 upstream release

- Resolves: rhbz#2537580

Signed-off-by: Michel Lind <salimma@fedoraproject.org>

---
diff --git a/.gitignore b/.gitignore
index 1527c91..93b2e87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/libheif-1.15.1.tar.gz
-/libheif-1.15.2.tar.gz
-/libheif-1.16.1.tar.gz
+/libheif-*.tar.gz
+/results_*
+/*.rpm

diff --git a/libheif-multilib-plugin-dir.patch b/libheif-multilib-plugin-dir.patch
new file mode 100644
index 0000000..258bd38
--- /dev/null
+++ b/libheif-multilib-plugin-dir.patch
@@ -0,0 +1,20 @@
+--- libheif-1.23.1/libheif/api/libheif/heif_version.h.in	2026-06-26 10:21:07.000000000 +0200
++++ libheif-1.23.1/libheif/api/libheif/heif_version.h.in	2026-08-09 19:23:25.365746828 +0200
+@@ -33,6 +33,4 @@
+ /* Version string */
+ #define LIBHEIF_VERSION "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@"
+ 
+-#define LIBHEIF_PLUGIN_DIRECTORY "@PLUGIN_DIRECTORY@"
+-
+ #endif  // LIBHEIF_HEIF_VERSION_H
+--- libheif-1.23.1/libheif/CMakeLists.txt	2026-06-26 10:21:07.000000000 +0200
++++ libheif-1.23.1/libheif/CMakeLists.txt	2026-08-09 19:29:13.883250637 +0200
+@@ -216,6 +216,8 @@ endif()
+ # Needed to find libheif/heif_version.h while compiling the library
+ target_include_directories(heif PRIVATE ${libheif_BINARY_DIR} ${libheif_SOURCE_DIR}/libheif ${libheif_SOURCE_DIR}/libheif/api)
+ 
++target_compile_definitions(heif PRIVATE LIBHEIF_PLUGIN_DIRECTORY="${PLUGIN_DIRECTORY}")
++
+ # Propagate include/libheif to consume the headers from other projects
+ target_include_directories(heif
+         PUBLIC

diff --git a/libheif.spec b/libheif.spec
index 9c9eb5b..ad486cb 100644
--- a/libheif.spec
+++ b/libheif.spec
@@ -1,32 +1,60 @@
 %global somajor 1
-
-# Unable to ship this in Fedora
-%bcond_with hevc
+# this is used for breaking a self-dependency on build:
+# libheif BuildRequires: pkgconfig(sdl2) == sdl2-compat-devel
+# sdl2-compat-devel -> sdl2-compat
+# sdl2-compat -> SDL3
+# SDL3 -> libdecor
+# libdecor -> gtk3
+# gtk3 -> gtk-update-icon-cache
+# gtk-update-icon-cache -> gdk-pixbuf2
+# gdk-pixbuf2 -> glycin-libs
+# glycin-libs -> glycin-loaders
+# glycin-loaders -> libheif
+%bcond bootstrap 0
 
 Name:           libheif
-Version:        1.16.1
+Version:        1.23.5
 Release:        %autorelease
 Summary:        HEIF and AVIF file format decoder and encoder
 
 License:        LGPL-3.0-or-later and MIT
-URL:            https://github.com/strukturag/%{name}
+URL:            https://github.com/strukturag/libheif
 Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+# Fix multilib issues: PLUGIN_DIRECTORY is derived from CMAKE_INSTALL_LIBDIR, the
+# macro has exactly one user, get_plugin_paths() in libheif/init.cc, which is internal
+# to the library, so pass it as a private compile definition instead of exporting it in
+# a public header.
+Patch0:         libheif-multilib-plugin-dir.patch
 
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  ninja-build
 BuildRequires:  pkgconfig(aom)
 BuildRequires:  pkgconfig(dav1d)
+BuildRequires:  pkgconfig(libbrotlidec)
 BuildRequires:  pkgconfig(libjpeg)
+BuildRequires:  pkgconfig(libopenjp2)
 BuildRequires:  pkgconfig(libpng)
+BuildRequires:  pkgconfig(libtiff-4)
+BuildRequires:  pkgconfig(openjph) >= 0.18.0
+%if !%{with bootstrap}
+BuildRequires:  pkgconfig(sdl2)
+%endif
+BuildRequires:  pkgconfig(zlib)
+%ifnarch %{ix86}
+# openh264 is not available for i686, see:
+# https://bugzilla.redhat.com/show_bug.cgi?id=2393742
+BuildRequires:  pkgconfig(openh264)
+%endif
 %if ! (0%{?rhel} && 0%{?rhel} <= 9)
 BuildRequires:  pkgconfig(libsharpyuv)
 BuildRequires:  pkgconfig(rav1e)
-%endif
-%if ! ((0%{?rhel} && 0%{?rhel} <= 9) || (0%{?fedora} && 0%{?fedora} < 38))
 BuildRequires:  pkgconfig(SvtAv1Enc)
 %endif
 
+Obsoletes:      heif-pixbuf-loader < %{version}-%{release}
+Recommends:     %{name}-ffmpeg%{_isa}
+
 %description
 libheif is an ISO/IEC 23008-12:2017 HEIF and AVIF (AV1 Image File Format)
 file format decoder and encoder.
@@ -34,35 +62,49 @@ file format decoder and encoder.
 %files
 %license COPYING
 %doc README.md
-%{_libdir}/*.so.%{somajor}{,.*}
+%{_libdir}/%{name}.so.%{somajor}{,.*}
 %dir %{_libdir}/%{name}
+%{_libdir}/%{name}/%{name}-aomdec.so
+%{_libdir}/%{name}/%{name}-aomenc.so
+%{_libdir}/%{name}/%{name}-dav1d.so
+%{_libdir}/%{name}/%{name}-j2kdec.so
+%{_libdir}/%{name}/%{name}-j2kenc.so
+%{_libdir}/%{name}/%{name}-jpegdec.so
+%{_libdir}/%{name}/%{name}-jpegenc.so
+%{_libdir}/%{name}/%{name}-jphenc.so
+%ifnarch %{ix86}
+%{_libdir}/%{name}/%{name}-openh264dec.so
+%endif
 %if ! (0%{?rhel} && 0%{?rhel} <= 9)
 %{_libdir}/%{name}/%{name}-rav1e.so
-%endif
-%if ! ((0%{?rhel} && 0%{?rhel} <= 9) || (0%{?fedora} && 0%{?fedora} < 38))
 %{_libdir}/%{name}/%{name}-svtenc.so
 %endif
 
 # ----------------------------------------------------------------------
 
-%package -n     heif-pixbuf-loader
-Summary:        HEIF image loader for GTK+ applications
-BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
-Requires:       %{name}%{?_isa} = %{version}-%{release}
-Requires:       gdk-pixbuf2%{?_isa}
+%if !%{with bootstrap}
+%package        ffmpeg
+Summary:        FFmpeg plugin that enables hardware accelerated decoding of HEIF files
+License:        MIT
+BuildRequires:  pkgconfig(libavcodec)
+Requires:       %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
+Conflicts:      %{name} < 1.23.4-5
+Obsoletes:      %{name} < 1.23.4-5
 
-%description -n heif-pixbuf-loader
-This package provides a plugin to load HEIF files in GTK+ applications.
+%description    ffmpeg
+The FFMPEG decoding plugin is an alternative decoder for all HEIF codecs and
+can make use of hardware decoders.
 
-%files -n heif-pixbuf-loader
-%{_libdir}/gdk-pixbuf-2.0/*/loaders/libpixbufloader-heif.so
+%files ffmpeg
+%{_libdir}/%{name}/%{name}-ffmpegdec.so
+%endif
 
 # ----------------------------------------------------------------------
 
 %package        tools
 Summary:        Tools for manipulating HEIF files
 License:        MIT
-Requires:       %{name}%{?_isa} = %{version}-%{release}
+Requires:       %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
 Requires:       shared-mime-info
 
 %description    tools
@@ -75,27 +117,9 @@ This package provides tools for manipulating HEIF files.
 
 # ----------------------------------------------------------------------
 
-%if %{with hevc}
-%package        hevc
-Summary:        HEVC codec support for HEIC files
-BuildRequires:  pkgconfig(libde265)
-BuildRequires:  pkgconfig(x265)
-Supplements:    %{name}
-
-%description    hevc
-This package adds support for HEVC-encoded HEIC files to applications
-that use %{name} to read HEIF image files.
-
-%files hevc
-%{_libdir}/%{name}/%{name}-libde265.so
-%{_libdir}/%{name}/%{name}-x265.so
-%endif
-
-# ----------------------------------------------------------------------
-
 %package        devel
 Summary:        Development files for %{name}
-Requires:       %{name}%{?_isa} = %{version}-%{release}
+Requires:       %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
 
 %description    devel
 The %{name}-devel package contains libraries and header files for
@@ -105,7 +129,7 @@ developing applications that use %{name}.
 %{_includedir}/%{name}/
 %{_libdir}/cmake/%{name}/
 %{_libdir}/pkgconfig/%{name}.pc
-%{_libdir}/*.so
+%{_libdir}/%{name}.so
 
 # ----------------------------------------------------------------------
 
@@ -118,8 +142,48 @@ rm -rf third-party/
 %build
 %cmake \
  -GNinja \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING=ON \
+ -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \
+ -DENABLE_PLUGIN_LOADING=ON \
  -DPLUGIN_DIRECTORY=%{_libdir}/%{name} \
- %{?with_hevc:-DWITH_LIBDE265_PLUGIN:BOOL=ON -DWITH_X265_PLUGIN:BOOL=ON} \
+ -DWITH_AOM_DECODER=ON \
+ -DWITH_AOM_DECODER_PLUGIN=ON \
+ -DWITH_AOM_ENCODER=ON \
+ -DWITH_AOM_ENCODER_PLUGIN=ON \
+ -DWITH_DAV1D=ON \
+ -DWITH_DAV1D_PLUGIN=ON \
+ -DWITH_EXAMPLES=ON \
+%if !%{with bootstrap}
+ -DWITH_FFMPEG_DECODER=ON \
+ -DWITH_FFMPEG_DECODER_PLUGIN=ON \
+%endif
+ -DWITH_JPEG_DECODER=ON \
+ -DWITH_JPEG_DECODER_PLUGIN=ON \
+ -DWITH_JPEG_ENCODER=ON \
+ -DWITH_JPEG_ENCODER_PLUGIN=ON \
+ -DWITH_LIBSHARPYUV=ON \
+ -DWITH_OpenJPEG_DECODER=ON \
+ -DWITH_OpenJPEG_DECODER_PLUGIN=ON \
+ -DWITH_OpenJPEG_ENCODER=ON \
+ -DWITH_OpenJPEG_ENCODER_PLUGIN=ON \
+ -DWITH_OPENJPH_ENCODER=ON \
+ -DWITH_OPENJPH_ENCODER_PLUGIN=ON \
+%ifnarch %{ix86}
+ -DWITH_OpenH264_DECODER=ON \
+ -DWITH_OpenH264_DECODER_PLUGIN=ON \
+%endif
+%if ! (0%{?rhel} && 0%{?rhel} <= 9)
+ -DWITH_RAV1E=ON \
+ -DWITH_RAV1E_PLUGIN=ON \
+ -DWITH_SvtEnc=ON \
+ -DWITH_SvtEnc_PLUGIN=ON \
+%endif
+%if %{with bootstrap}
+ -DWITH_EXAMPLE_HEIF_VIEW=OFF \
+%endif
+ -DWITH_UNCOMPRESSED_CODEC=ON \
+ -DWITH_GDK_PIXBUF=OFF \
  -Wno-dev
 
 %cmake_build
@@ -130,8 +194,7 @@ rm -rf third-party/
 
 
 %check
-# Tests are not yet ported to CMake
-#ctest
+%ctest
 
 
 %changelog

diff --git a/sources b/sources
index ef5c471..c59f6cc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (libheif-1.16.1.tar.gz) = d81f841ac63d58f56414bf8d799a12af0c846148d2c245cd0c0cc3133edd0b3e08e5018efbc82b83fbab00209a6e0806133f63283bf7244cc4e9cf37b4fa8110
+SHA512 (libheif-1.23.5.tar.gz) = a7b4a7ecc093f6b453939e093abef391f88bb371303183a91e431cba8f4b590131c05cc80a28733ac4822cce4a69ca1475251b2d4679890330a603de04c6c77c

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-22 22:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-22 22:53 [rpms/libheif] epel9: Update to 1.23.5 upstream release Michel Lind

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox