Patch-Source: https://invent.kde.org/utilities/krename/-/commit/e7dd767a
From e7dd767a9a1068ee1fe1502c4d619b57d3b12add Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Fri, 26 May 2023 23:23:10 +0200
Subject: [PATCH] Fix build with >=exiv2-0.28, raise minimum to 0.27

- enables use of EXIV2_TEST_VERSION macro
- exiv2 headers cleanup

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
---
 CMakeLists.txt         |  6 +-----
 config-krename.h.cmake |  3 ---
 src/exiv2plugin.cpp    | 17 +++++------------
 3 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0bda8ac..72e7297 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,13 +56,9 @@ set_package_properties(Taglib PROPERTIES
     TYPE OPTIONAL)
 
 # Find exiv2
-find_package(LibExiv2 0.13) # AccessMode was added in 0.13
+find_package(LibExiv2 0.27) # EXIV2_TEST_VERSION was added in 0.27
 set_package_properties(LibExiv2 PROPERTIES TYPE OPTIONAL)
 
-if (LibExiv2_VERSION VERSION_GREATER_EQUAL "0.27")
-    set(HAVE_LIBEXIV2_0_27 TRUE)
-endif()
-
 # Find podofo
 find_package(PoDoFo)
 set_package_properties(PoDoFo PROPERTIES
diff --git a/config-krename.h.cmake b/config-krename.h.cmake
index 76c3d30..862e40b 100644
--- a/config-krename.h.cmake
+++ b/config-krename.h.cmake
@@ -6,9 +6,6 @@
 /* have Exiv2 */
 #cmakedefine01 HAVE_EXIV2
 
-/* Defined if we have libexiv2 >= 0.27 */
-#cmakedefine HAVE_LIBEXIV2_0_27
-
 /* have PoDoFo */
 #cmakedefine01 HAVE_PODOFO
 
diff --git a/src/exiv2plugin.cpp b/src/exiv2plugin.cpp
index 5694d8c..25e8869 100644
--- a/src/exiv2plugin.cpp
+++ b/src/exiv2plugin.cpp
@@ -3,20 +3,9 @@
 
 #include "exiv2plugin.h"
 
-#include "../config-krename.h"
-
 #include <KLocalizedString>
 
-#include <exiv2/error.hpp>
-#include <exiv2/exif.hpp>
-#include <exiv2/image.hpp>
-#include <exiv2/iptc.hpp>
-#ifdef HAVE_LIBEXIV2_0_27
-    #include <exiv2/xmp_exiv2.hpp>
-#else
-    #include <exiv2/xmp.hpp>
-#endif
-#include <exiv2/tags.hpp>
+#include <exiv2/exiv2.hpp>
 
 #include "batchrenamer.h"
 #include "tokenhelpdialog.h"
@@ -381,7 +370,11 @@ QString Exiv2Plugin::processFile(BatchRenamer *b, int index, const QString &file
     std::string strFilename(asc.constData(), asc.length());
 
     try {
+#if EXIV2_TEST_VERSION(0,28,0)
+        Image::UniquePtr image = Exiv2::ImageFactory::open(strFilename);
+#else
         Image::AutoPtr image = Exiv2::ImageFactory::open(strFilename);
+#endif
         if (image.get() != nullptr && image->good()) {
             image->readMetadata();
 
-- 
GitLab

