Fix the factory build OBS-URL: https://build.opensuse.org/request/show/692350 OBS-URL: https://build.opensuse.org/package/show/GNOME:Apps/geeqie?expand=0&rev=23
97 lines
2.4 KiB
Diff
97 lines
2.4 KiB
Diff
commit f9213c8ad796cf4571b2606435c32753040ec645
|
|
Author: Rasmus Thomsen <Rasmus.thomsen@protonmail.com>
|
|
Date: Sun Jan 6 17:40:31 2019 +0000
|
|
|
|
Fix #654, 655: fix build against exiv2-0.27.x
|
|
|
|
https://github.com/BestImageViewer/geeqie/pull/655
|
|
|
|
diff --git a/src/exiv2.cc b/src/exiv2.cc
|
|
index 1dbe118..5dc31ac 100644
|
|
--- a/src/exiv2.cc
|
|
+++ b/src/exiv2.cc
|
|
@@ -22,16 +22,24 @@
|
|
|
|
#ifdef HAVE_EXIV2
|
|
|
|
-#include <exiv2/image.hpp>
|
|
-#include <exiv2/exif.hpp>
|
|
+// Don't include the <exiv2/version.hpp> file directly
|
|
+// Early Exiv2 versions didn't have version.hpp and the macros.
|
|
+#include <exiv2/exiv2.hpp>
|
|
#include <iostream>
|
|
|
|
// EXIV2_TEST_VERSION is defined in Exiv2 0.15 and newer.
|
|
+#ifdef EXIV2_VERSION
|
|
#ifndef EXIV2_TEST_VERSION
|
|
-# define EXIV2_TEST_VERSION(major,minor,patch) \
|
|
+#define EXIV2_TEST_VERSION(major,minor,patch) \
|
|
( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
|
|
#endif
|
|
+#else
|
|
+#define EXIV2_TEST_VERSION(major,minor,patch) (false)
|
|
+#endif
|
|
|
|
+#if EXIV2_TEST_VERSION(0,27,0)
|
|
+#define HAVE_EXIV2_ERROR_CODE
|
|
+#endif
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
@@ -39,27 +47,8 @@
|
|
#include <fcntl.h>
|
|
#include <sys/mman.h>
|
|
|
|
-#if !EXIV2_TEST_VERSION(0,17,90)
|
|
-#include <exiv2/tiffparser.hpp>
|
|
-#include <exiv2/tiffcomposite.hpp>
|
|
-#include <exiv2/tiffvisitor.hpp>
|
|
-#include <exiv2/tiffimage.hpp>
|
|
-#include <exiv2/cr2image.hpp>
|
|
-#include <exiv2/crwimage.hpp>
|
|
-#if EXIV2_TEST_VERSION(0,16,0)
|
|
-#include <exiv2/orfimage.hpp>
|
|
-#endif
|
|
-#if EXIV2_TEST_VERSION(0,13,0)
|
|
-#include <exiv2/rafimage.hpp>
|
|
-#endif
|
|
-#include <exiv2/futils.hpp>
|
|
-#else
|
|
-#include <exiv2/preview.hpp>
|
|
-#endif
|
|
-
|
|
-#if EXIV2_TEST_VERSION(0,17,0)
|
|
-#include <exiv2/convert.hpp>
|
|
-#include <exiv2/xmpsidecar.hpp>
|
|
+#if EXIV2_TEST_VERSION(0,27,0)
|
|
+#define EXV_PACKAGE "exiv2"
|
|
#endif
|
|
|
|
extern "C" {
|
|
@@ -357,8 +346,11 @@ public:
|
|
copyXmpToExif(xmpData_, exifData_);
|
|
#endif
|
|
Exiv2::Image *image = imageData_->image();
|
|
-
|
|
+#ifdef HAVE_EXIV2_ERROR_CODE
|
|
+ if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed);
|
|
+#else
|
|
if (!image) Exiv2::Error(21);
|
|
+#endif
|
|
image->setExifData(exifData_);
|
|
image->setIptcData(iptcData_);
|
|
#if EXIV2_TEST_VERSION(0,16,0)
|
|
@@ -377,8 +369,12 @@ public:
|
|
|
|
sidecar->setXmpData(xmpData_);
|
|
sidecar->writeMetadata();
|
|
+#else
|
|
+#ifdef HAVE_EXIV2_ERROR_CODE
|
|
+ throw Exiv2::Error(Exiv2::ErrorCode::kerNotAnImage, "xmp");
|
|
#else
|
|
throw Exiv2::Error(3, "xmp");
|
|
+#endif
|
|
#endif
|
|
}
|
|
}
|