summary refs log tree commit diff
path: root/gnu
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 /gnu
parent6703ff4d3bfba7ab9d35c739df8e1b983505afa9 (diff)
downloadguix-757aeb1d3a4397dab85e4c8436c3361cfa11cf60.tar.gz
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.
Diffstat (limited to 'gnu')
-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;
+ 			}