summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-09-16 03:22:03 +0200
committerMarius Bakke <marius@gnu.org>2022-09-16 22:41:22 +0200
commit757aeb1d3a4397dab85e4c8436c3361cfa11cf60 (patch)
tree40ba5801d65d98d00a341ee8e0348fc0edc3a5ab
parent6703ff4d3bfba7ab9d35c739df8e1b983505afa9 (diff)
gnu: freeimage: Adjust for LibTIFF 4.4.
* gnu/packages/patches/freeimage-libtiff-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/image.scm (freeimage)[source](patches): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/image.scm3
-rw-r--r--gnu/packages/patches/freeimage-libtiff-compat.patch19
3 files changed, 22 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 1f3169bb1a..86dbd51a0b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1089,6 +1089,7 @@ dist_patch_DATA = \
%D%/packages/patches/fp16-system-libraries.patch \
%D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
+ %D%/packages/patches/freeimage-libtiff-compat.patch \
%D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/fuse-glibc-2.34.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index ce48b9fefe..0461835a70 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1082,7 +1082,8 @@ supplies a generic doubly-linked list and some string functions.")
"LibJXR" "LibWebP" "OpenEXR" "ZLib"))))
(patches
(append
- (search-patches "freeimage-unbundle.patch")
+ (search-patches "freeimage-unbundle.patch"
+ "freeimage-libtiff-compat.patch")
;; Take one patch from Arch Linux that adds LibRaw 0.20 compatibility.
(list (origin
(method url-fetch)
diff --git a/gnu/packages/patches/freeimage-libtiff-compat.patch b/gnu/packages/patches/freeimage-libtiff-compat.patch
new file mode 100644
index 0000000000..00c5bf659a
--- /dev/null
+++ b/gnu/packages/patches/freeimage-libtiff-compat.patch
@@ -0,0 +1,19 @@
+Use the new TIFFFieldSetGetSize API from libtiff 4.4 instead of the
+private and removed _TIFFDataSize declared in the unbundling patch.
+
+Patch taken from Fedora:
+
+ https://src.fedoraproject.org/rpms/freeimage/blob/rawhide/f/freeimage-libtiff44.patch
+
+diff -rupN --no-dereference freeimage-svn-r1889-FreeImage-trunk/Source/Metadata/XTIFF.cpp freeimage-svn-r1889-FreeImage-trunk-new/Source/Metadata/XTIFF.cpp
+--- freeimage-svn-r1889-FreeImage-trunk/Source/Metadata/XTIFF.cpp 2022-06-23 11:56:32.561043826 +0200
++++ freeimage-svn-r1889-FreeImage-trunk-new/Source/Metadata/XTIFF.cpp 2022-06-23 11:56:32.764043827 +0200
+@@ -747,7 +747,7 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
+ continue;
+ }
+ // type of storage may differ (e.g. rationnal array vs float array type)
+- if((unsigned)_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) {
++ if((unsigned)TIFFFieldSetGetSize(fld) != FreeImage_TagDataWidth(tag_type)) {
+ // skip tag or _TIFFmemcpy will fail
+ continue;
+ }