diff --git a/graphics/kf6-kimageformats/Makefile b/graphics/kf6-kimageformats/Makefile index 48681225e265..f6bba11903a3 100644 --- a/graphics/kf6-kimageformats/Makefile +++ b/graphics/kf6-kimageformats/Makefile @@ -1,36 +1,37 @@ PORTNAME= kimageformats DISTVERSION= ${KDE_FRAMEWORKS_VERSION} +PORTREVISION= 1 CATEGORIES= graphics kde kde-frameworks MAINTAINER= kde@FreeBSD.org COMMENT= Plugins to allow QImage to support extra file formats USES= cmake gl kde:6 pkgconfig qt:6 tar:xz USE_GL= gl opengl USE_KDE= archive ecm:build USE_QT= base OPTIONS_DEFINE= AVIF JXL HEIF OPENEXR OPENJPEG RAW OPTIONS_DEFAULT:= ${OPTIONS_DEFINE} OPTIONS_SUB= yes AVIF_LIB_DEPENDS= libavif.so:graphics/libavif AVIF_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_libavif JXL_LIB_DEPENDS= libjxl.so:graphics/libjxl JXL_CMAKE_BOOL= KIMAGEFORMATS_JXL HEIF_LIB_DEPENDS= libheif.so:graphics/libheif HEIF_CMAKE_BOOL= KIMAGEFORMATS_HEIF OPENEXR_LIB_DEPENDS= libOpenEXR.so:graphics/openexr \ libImath.so:math/Imath OPENEXR_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_OpenEXR OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_OpenJPEG RAW_LIB_DEPENDS= libraw.so:graphics/libraw RAW_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_LibRaw .include diff --git a/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp b/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp new file mode 100644 index 000000000000..59d13f8e3be8 --- /dev/null +++ b/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp @@ -0,0 +1,26 @@ +From ac374da215eb30d67355be00c89a73c06fea8ae8 Mon Sep 17 00:00:00 2001 +From: Kyle Alexander Buan +Date: Thu, 16 Jul 2026 15:33:49 +0800 +Subject: [PATCH] HEIF: keep reader callback table alive + +libheif retains the heif_reader pointer after +heif_context_read_from_reader returns. The callback table was scoped +to the non-sequential branch and could be destroyed before +tiled image decoding used it from worker threads. + +Give the callback table static storage duration. + +BUG: 523105 + +--- src/imageformats/heif.cpp.orig 2026-07-03 10:55:53 UTC ++++ src/imageformats/heif.cpp +@@ -711,7 +711,8 @@ bool HEIFHandler::ensureDecoder() + buffer = deviceRead(dev, kMaxQVectorSize); + err = heif_context_read_from_memory(ctx, static_cast(buffer.constData()), buffer.size(), nullptr); + } else { +- heif_reader reader = create_heif_reader_for_qiodevice(); ++ // Must not be destroyed until decoding ends ++ static const heif_reader reader = create_heif_reader_for_qiodevice(); + err = heif_context_read_from_reader(ctx, &reader, dev, nullptr); + } + if (err.code) {