diff --git a/community/libheif/32-bit-duplicate-definition.patch b/community/libheif/32-bit-duplicate-definition.patch new file mode 100644 index 00000000000..231d352ea51 --- /dev/null +++ b/community/libheif/32-bit-duplicate-definition.patch @@ -0,0 +1,158 @@ +From 6e741f7a2619aed14ddd3d4f44fa27450cfcbd55 Mon Sep 17 00:00:00 2001 +From: Dirk Farin +Date: Wed, 3 May 2023 01:18:32 +0200 +Subject: [PATCH] move explicit template instantiation into .cc files (#840) + +--- + libheif/color-conversion/chroma_sampling.cc | 5 +++++ + libheif/color-conversion/chroma_sampling.h | 7 ------- + libheif/color-conversion/hdr_sdr.h | 3 --- + libheif/color-conversion/monochrome.h | 4 ---- + libheif/color-conversion/rgb2rgb.h | 2 -- + libheif/color-conversion/rgb2yuv.cc | 3 +++ + libheif/color-conversion/rgb2yuv.h | 3 --- + libheif/color-conversion/yuv2rgb.cc | 3 +++ + libheif/color-conversion/yuv2rgb.h | 4 ---- + 9 files changed, 11 insertions(+), 23 deletions(-) + +diff --git a/libheif/color-conversion/chroma_sampling.cc b/libheif/color-conversion/chroma_sampling.cc +index 80be01153b..0b528497f5 100644 +--- a/libheif/color-conversion/chroma_sampling.cc ++++ b/libheif/color-conversion/chroma_sampling.cc +@@ -235,6 +235,8 @@ Op_YCbCr444_to_YCbCr420_average::convert_colorspace(const std::shared_ptr + return outimg; + } + ++template class Op_YCbCr444_to_YCbCr420_average; ++template class Op_YCbCr444_to_YCbCr420_average; + + + +@@ -508,3 +510,6 @@ Op_YCbCr420_bilinear_to_YCbCr444::convert_colorspace(const std::shared_pt + + return outimg; + } ++ ++template class Op_YCbCr420_bilinear_to_YCbCr444; ++template class Op_YCbCr420_bilinear_to_YCbCr444; +diff --git a/libheif/color-conversion/chroma_sampling.h b/libheif/color-conversion/chroma_sampling.h +index 325d8a7422..1bd8fdc03a 100644 +--- a/libheif/color-conversion/chroma_sampling.h ++++ b/libheif/color-conversion/chroma_sampling.h +@@ -43,9 +43,6 @@ class Op_YCbCr444_to_YCbCr420_average : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +-template class Op_YCbCr444_to_YCbCr420_average; +-template class Op_YCbCr444_to_YCbCr420_average; +- + + // --- upsampling --- + +@@ -64,8 +61,4 @@ class Op_YCbCr420_bilinear_to_YCbCr444 : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +-template class Op_YCbCr420_bilinear_to_YCbCr444; +-template class Op_YCbCr420_bilinear_to_YCbCr444; +- +- + #endif //LIBHEIF_CHROMA_SAMPLING_H +diff --git a/libheif/color-conversion/hdr_sdr.h b/libheif/color-conversion/hdr_sdr.h +index a80f09c021..7bda0a271d 100644 +--- a/libheif/color-conversion/hdr_sdr.h ++++ b/libheif/color-conversion/hdr_sdr.h +@@ -55,7 +55,4 @@ class Op_to_sdr_planes : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +- +- +- + #endif //LIBHEIF_COLORCONVERSION_HDR_SDR_H +diff --git a/libheif/color-conversion/monochrome.h b/libheif/color-conversion/monochrome.h +index af73f41229..22bcf78b19 100644 +--- a/libheif/color-conversion/monochrome.h ++++ b/libheif/color-conversion/monochrome.h +@@ -55,8 +55,4 @@ class Op_mono_to_RGB24_32 : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +- +- +- +- + #endif //LIBHEIF_COLORCONVERSION_MONOCHROME_H +diff --git a/libheif/color-conversion/rgb2rgb.h b/libheif/color-conversion/rgb2rgb.h +index 097b3b805f..4370999b6e 100644 +--- a/libheif/color-conversion/rgb2rgb.h ++++ b/libheif/color-conversion/rgb2rgb.h +@@ -116,6 +116,4 @@ class Op_RRGGBBaa_swap_endianness : public ColorConversionOperation + }; + + +- +- + #endif //LIBHEIF_RGB2RGB_H +diff --git a/libheif/color-conversion/rgb2yuv.cc b/libheif/color-conversion/rgb2yuv.cc +index 6b2df3b898..b12eec7b2f 100644 +--- a/libheif/color-conversion/rgb2yuv.cc ++++ b/libheif/color-conversion/rgb2yuv.cc +@@ -267,6 +267,9 @@ Op_RGB_to_YCbCr::convert_colorspace(const std::shared_ptr; ++template class Op_RGB_to_YCbCr; ++ + + std::vector + Op_RRGGBBxx_HDR_to_YCbCr420::state_after_conversion(const ColorState& input_state, +diff --git a/libheif/color-conversion/rgb2yuv.h b/libheif/color-conversion/rgb2yuv.h +index 68e1e8303c..4a3536f7c1 100644 +--- a/libheif/color-conversion/rgb2yuv.h ++++ b/libheif/color-conversion/rgb2yuv.h +@@ -41,9 +41,6 @@ class Op_RGB_to_YCbCr : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +-template class Op_RGB_to_YCbCr; +-template class Op_RGB_to_YCbCr; +- + + + class Op_RRGGBBxx_HDR_to_YCbCr420 : public ColorConversionOperation +diff --git a/libheif/color-conversion/yuv2rgb.cc b/libheif/color-conversion/yuv2rgb.cc +index 539344f499..6300465f50 100644 +--- a/libheif/color-conversion/yuv2rgb.cc ++++ b/libheif/color-conversion/yuv2rgb.cc +@@ -245,6 +245,9 @@ Op_YCbCr_to_RGB::convert_colorspace(const std::shared_ptr; ++template class Op_YCbCr_to_RGB; ++ + + std::vector + Op_YCbCr420_to_RGB24::state_after_conversion(const ColorState& input_state, +diff --git a/libheif/color-conversion/yuv2rgb.h b/libheif/color-conversion/yuv2rgb.h +index 6abb1a5301..c86f47b696 100644 +--- a/libheif/color-conversion/yuv2rgb.h ++++ b/libheif/color-conversion/yuv2rgb.h +@@ -42,9 +42,6 @@ class Op_YCbCr_to_RGB : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +-template class Op_YCbCr_to_RGB; +-template class Op_YCbCr_to_RGB; +- + + class Op_YCbCr420_to_RGB24 : public ColorConversionOperation + { +@@ -90,5 +87,4 @@ class Op_YCbCr420_to_RRGGBBaa : public ColorConversionOperation + const heif_color_conversion_options& options) const override; + }; + +- + #endif //LIBHEIF_COLORCONVERSION_YUV2RGB_H diff --git a/community/libheif/APKBUILD b/community/libheif/APKBUILD index d8f40284799..b1cbcd4b28f 100644 --- a/community/libheif/APKBUILD +++ b/community/libheif/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Jakub Jirutka pkgname=libheif pkgver=1.16.1 -pkgrel=0 +pkgrel=1 pkgdesc="ISO/IEC 23008-12:2017 HEIF file format decoder and encoder" url="https://www.libde265.org/" arch="all" @@ -28,7 +28,9 @@ subpackages=" $pkgname-doc $pkgname-pixbuf-loader " -source="https://github.com/strukturag/libheif/releases/download/v$pkgver/libheif-$pkgver.tar.gz" +source="https://github.com/strukturag/libheif/releases/download/v$pkgver/libheif-$pkgver.tar.gz + 32-bit-duplicate-definition.patch + " # secfixes: # 1.5.0-r0: @@ -39,9 +41,6 @@ build() { export CPPFLAGS="${CFLAGS/-Os/-O2}" export CXXFLAGS="${CFLAGS/-Os/-O2} -flto=auto" - # https://github.com/strukturag/libheif/issues/840 - export LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition" - cmake -B build -G Ninja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ @@ -78,4 +77,5 @@ loader() { sha512sums=" 0fe22d7aec4e38bfb6bb863e52618b42aa632e6d84db043afa39570a25d1959b701a363a90974ccd8d566a8990c7b4aa93a3a45b829dbfacbbdfc31757e87a5d libheif-1.16.1.tar.gz +547c922cbc8d21595a5224ad95d11e31c47951205e40051709e0784e3493abf8de51457b8863221888814733276ff1726c4b302c2b7a99ed5947827287b7985b 32-bit-duplicate-definition.patch "