On Thu Mar 26, 2020 at 09:37:48PM +0100, Rafael Sadowski wrote:
> Please find below one all-in-on diff to update exiv2 to 0.27.2 and fix all
> consumer. Here is a full list:
> 
> FIXED 11/kde4/libs
> FIXED databases/strigi
> FIXED graphics/hugin
> FIXED graphics/nomacs
> FIXED graphics/rawstudio
> FIXED graphics/ufraw
> FIXED sysutils/krename
> FIXED x11/kde4/kfilemetadata
> FIXED x11/kde4/libkexiv2
> 
> OK devel/kf5/kfilemetadata
> OK geo/qgis
> OK graphics/darktable
> OK graphics/dibuja
> OK graphics/digikam
> OK graphics/geeqie
> OK graphics/gthumb
> OK graphics/krita
> OK graphics/libgexiv2
> OK graphics/pdf2djvu
> OK graphics/viewnior
> OK x11/gnome/color-manager
> OK x11/kde-applications/gwenvie
> OK x11/kde-applications/libkexiv2
> 
> Fixed by fixing x11/kde4/libs so REVISION bump only:
> OK x11/kde4/nepomuk-core
> OK 11/kde4/runtime
> 
> Noteable exiv2 port changes:
> 
> - Switch to cmake and enable i18n support
> - Change COMMENT and cleanup DESCR
> - Switch to https
> - don't provide the new Exiv2::getProcessPath() function.  Not portable,
>   doesn't work on OpenBSD, and shouldn't be exposed in the API of a
>   graphics library.  Instead, define a macro with CMake to help runtime
>   find gettext files. from jca@'s commit
>   https://v4.freshbsd.org/commit/openbsd/ports/fHGCS7kzl4zKjdnW
> - All consumer fixed. configure checks, port-lib-depends-checks checks
>   and also some run-time tests with krita, digikam, nomacs.
> 
> Consumer patches from upstream, gentoo, freebsd and by me for the old
> creepy KDE4 stuff.
> 
> Bulk welcome but I'm quite sure it'll survive. OK?
> 
> 

This went through a full bulk build and will go in after 6.7.

Bulk build found an error with gegl03. The following diff fix this error
and also add archivers/zstd as dependency for gegl03. (cc maintainer)

Rafael

diff --git a/databases/strigi/Makefile b/databases/strigi/Makefile
index 3907e5153d4..6f6e832bdd3 100644
--- a/databases/strigi/Makefile
+++ b/databases/strigi/Makefile
@@ -2,7 +2,7 @@
 
 COMMENT =      document indexer
 DISTNAME =     strigi-0.7.8
-REVISION =     3
+REVISION =     4
 CATEGORIES =   databases devel textproc sysutils
 
 HOMEPAGE =     https://www.vandenoever.info/software/strigi/
diff --git 
a/databases/strigi/patches/patch-libstreamanalyzer_cmake_FindExiv2_cmake 
b/databases/strigi/patches/patch-libstreamanalyzer_cmake_FindExiv2_cmake
new file mode 100644
index 00000000000..62ad1e4f332
--- /dev/null
+++ b/databases/strigi/patches/patch-libstreamanalyzer_cmake_FindExiv2_cmake
@@ -0,0 +1,19 @@
+$OpenBSD$
+
+Fix configure step with exiv2 2.27
+
+Index: libstreamanalyzer/cmake/FindExiv2.cmake
+--- libstreamanalyzer/cmake/FindExiv2.cmake.orig
++++ libstreamanalyzer/cmake/FindExiv2.cmake
+@@ -55,9 +55,9 @@ find_library(EXIV2_LIBRARY NAMES exiv2 libexiv2
+             )
+ 
+ 
+-# Get the version number from exiv2/version.hpp and store it in the cache:
++# Get the version number from exiv2/exv_conf.h and store it in the cache:
+ if(EXIV2_INCLUDE_DIR  AND NOT  EXIV2_VERSION)
+-  file(READ ${EXIV2_INCLUDE_DIR}/exiv2/version.hpp EXIV2_VERSION_CONTENT)
++  file(READ ${EXIV2_INCLUDE_DIR}/exiv2/exv_conf.h EXIV2_VERSION_CONTENT)
+   string(REGEX MATCH "#define EXIV2_MAJOR_VERSION +\\( *([0-9]+) *\\)"  
_dummy "${EXIV2_VERSION_CONTENT}")
+   set(EXIV2_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ 
diff --git 
a/databases/strigi/patches/patch-libstreamanalyzer_plugins_endplugins_jpegendanalyzer_cpp
 
b/databases/strigi/patches/patch-libstreamanalyzer_plugins_endplugins_jpegendanalyzer_cpp
new file mode 100644
index 00000000000..d42c01e597a
--- /dev/null
+++ 
b/databases/strigi/patches/patch-libstreamanalyzer_plugins_endplugins_jpegendanalyzer_cpp
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Index: libstreamanalyzer/plugins/endplugins/jpegendanalyzer.cpp
+--- libstreamanalyzer/plugins/endplugins/jpegendanalyzer.cpp.orig
++++ libstreamanalyzer/plugins/endplugins/jpegendanalyzer.cpp
+@@ -27,12 +27,14 @@
+ #include <strigi/fieldtypes.h>
+ #include <strigi/stringstream.h>
+ #include <strigi/textutils.h>
++#include <exiv2/exiv2.hpp>
+ #include <exiv2/exif.hpp>
+ #include <exiv2/image.hpp>
+ #include <exiv2/jpgimage.hpp>
+ #include <exiv2/error.hpp>
+ #include <math.h>
+ #include <time.h>
++#include <iostream>
+ 
+ #ifdef _MSC_VER
+ // at least MSVC2008 needs this define for defines like M_LN2
diff --git a/graphics/exiv2/Makefile b/graphics/exiv2/Makefile
index 37b85598cb7..69a70830eec 100644
--- a/graphics/exiv2/Makefile
+++ b/graphics/exiv2/Makefile
@@ -1,38 +1,38 @@
 # $OpenBSD: Makefile,v 1.32 2019/07/12 20:46:58 sthen Exp $
 
-COMMENT=       manipulate image meta-data such as exif and ipct
+COMMENT=       image metadata manipulation
 
-DISTNAME=      exiv2-0.26-trunk
-PKGNAME=       exiv2-0.26
 CATEGORIES=    graphics devel
+
+DISTNAME=      exiv2-0.27.2-Source
+PKGNAME=       exiv2-0.27.2
 EPOCH=         0
-REVISION=      1
 
-SHARED_LIBS +=  exiv2                11.0      # 14.0
+SHARED_LIBS +=  exiv2                12.0      # 14.0
 
-HOMEPAGE=      http://www.exiv2.org/
+HOMEPAGE=      https://www.exiv2.org/
 
 # GPLv2+
 PERMIT_PACKAGE=        Yes
 
 WANTLIB += ${COMPILER_LIBCXX} c expat iconv intl m z
 
-COMPILER =             base-clang ports-gcc base-gcc
-
-MASTER_SITES=  http://www.exiv2.org/builds/
+MASTER_SITES =         https://www.exiv2.org/builds/
 
-USE_GMAKE=     Yes
-
-CONFIGURE_STYLE=gnu
-
-BUILD_DEPENDS= devel/gettext,-tools
+COMPILER =             base-clang ports-gcc base-gcc
 
-LIB_DEPENDS=   devel/gettext,-runtime
+MODULES =              devel/cmake
 
-CONFIGURE_ARGS=        --enable-static
+BUILD_DEPENDS =                devel/gettext,-tools
+LIB_DEPENDS =          devel/gettext,-runtime
 
-NO_TEST=       Yes
+CONFIGURE_ARGS =       -DEXIV2_ENABLE_NLS=ON
 
-WRKDIST=               ${WRKDIR}/exiv2-trunk
+# dos line-endings in file needing patch
+post-extract:
+       @cd ${WRKSRC} && perl -i -pe 's/\r$$//' cmake/compilerFlags.cmake
 
 .include <bsd.port.mk>
+.if ${USE_CCACHE:L} == "yes"
+CONFIGURE_ARGS +=      -DBUILD_WITH_CCACHE=0N
+.endif
diff --git a/graphics/exiv2/distinfo b/graphics/exiv2/distinfo
index 13f849ba76a..2eb1fed97c2 100644
--- a/graphics/exiv2/distinfo
+++ b/graphics/exiv2/distinfo
@@ -1,2 +1,2 @@
-SHA256 (exiv2-0.26-trunk.tar.gz) = x148SggRv3ANksgjGTc7eoJaIzHBK4s31B61jk8Y6vs=
-SIZE (exiv2-0.26-trunk.tar.gz) = 5677925
+SHA256 (exiv2-0.27.2-Source.tar.gz) = 
JlL1a5EnETJ7r/bcDJCWCBghHPerebteHrWTILeNFT8=
+SIZE (exiv2-0.27.2-Source.tar.gz) = 27591236
diff --git a/graphics/exiv2/patches/patch-cmake_compilerFlags_cmake 
b/graphics/exiv2/patches/patch-cmake_compilerFlags_cmake
new file mode 100644
index 00000000000..7d5dbfefb8f
--- /dev/null
+++ b/graphics/exiv2/patches/patch-cmake_compilerFlags_cmake
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: cmake/compilerFlags.cmake
+--- cmake/compilerFlags.cmake.orig
++++ cmake/compilerFlags.cmake
+@@ -30,7 +30,7 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CY
+             set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
+         endif()
+ 
+-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wcast-align 
-Wpointer-arith -Wformat-security -Wmissing-format-attribute 
-Woverloaded-virtual -W")
++        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wcast-align 
-Wpointer-arith -Wformat-security -Woverloaded-virtual -W")
+ 
+         if ( EXIV2_TEAM_USE_SANITIZERS )
+             # ASAN is available in gcc from 4.8 and UBSAN from 4.9
diff --git a/graphics/exiv2/patches/patch-config_config_mk_in 
b/graphics/exiv2/patches/patch-config_config_mk_in
deleted file mode 100644
index 7668259d117..00000000000
--- a/graphics/exiv2/patches/patch-config_config_mk_in
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-config_config_mk_in,v 1.4 2019/02/14 16:03:34 jca Exp $
-
-- warnings about c++locale.h clutter the build
-
---- config/config.mk.in.orig   Sun Jun 21 16:19:25 2015
-+++ config/config.mk.in        Thu Nov 19 19:56:00 2015
-@@ -58,7 +58,7 @@ GXX = @GXX@
- # Common compiler flags (warnings, symbols [-ggdb], optimization [-O2], etc)
- CXXFLAGS = @CXXFLAGS@
- ifeq ($(GXX),yes)
--      CXXFLAGS += -Wall -Wcast-align -Wpointer-arith -Wformat-security 
-Wmissing-format-attribute -Woverloaded-virtual -W
-+      CXXFLAGS += -Wall -Wcast-align -Wpointer-arith -Wformat-security 
-Woverloaded-virtual -W
- endif
- 
- # Command to run only the preprocessor
diff --git a/graphics/exiv2/patches/patch-src_Makefile 
b/graphics/exiv2/patches/patch-src_Makefile
deleted file mode 100644
index b981592a8e2..00000000000
--- a/graphics/exiv2/patches/patch-src_Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-$OpenBSD: patch-src_Makefile,v 1.7 2019/02/14 16:03:34 jca Exp $
-Index: src/Makefile
---- src/Makefile.orig
-+++ src/Makefile
-@@ -151,7 +151,7 @@ LIBRARY = libexiv2.la
- 
- # 
******************************************************************************
- # Initialisations
--SHELL = /bin/bash
-+SHELL = /bin/sh
- 
- .SUFFIXES:
- .SUFFIXES: .c .cpp .o .so
-@@ -235,7 +235,7 @@ $(SRC): ../include/exiv2/exv_conf.h svn_version.h
- 
- # svn_version.h is only rewritten when the svn info | grep Revision has 
changed
- svn_version.h:
--      ./svn_version.sh
-+#     ./svn_version.sh
- 
- version.hpp : svn_version.h
- 
-@@ -252,7 +252,7 @@ $(BINARY): %: %.o lib
-       @$(LIBTOOL) --mode=link $(LINK.cc) -o $@ $(LIBRARY) $@.o -rpath 
$(libdir)
- 
- $(EXIV2EXE): lib $(EXIV2OBJ) $(EXIV2COBJ)
--      mkdir -pv ../bin 2>&1 > /dev/null
-+      mkdir -p ../bin 2>&1 > /dev/null
-       @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIV2OBJ) 
$(EXIV2COBJ) -rpath $(libdir)
- 
- install-header:
diff --git a/graphics/exiv2/patches/patch-src_actions_cpp 
b/graphics/exiv2/patches/patch-src_actions_cpp
index 870ea4e9dfc..5432e4c2935 100644
--- a/graphics/exiv2/patches/patch-src_actions_cpp
+++ b/graphics/exiv2/patches/patch-src_actions_cpp
@@ -9,12 +9,15 @@ mutex, I'll admit that it's a bit cumbersome to use." -- jca@
 Index: src/actions.cpp
 --- src/actions.cpp.orig
 +++ src/actions.cpp
-@@ -2049,7 +2049,7 @@ namespace {
-   /* This is the critical section object (statically allocated). */
-   static pthread_mutex_t cs =  PTHREAD_RECURSIVE_MUTEX_INITIALIZER;
+@@ -2025,11 +2025,7 @@ namespace {
+     static pthread_mutex_t cs =  PTHREAD_MUTEX_INITIALIZER;
+   #endif
   #else
--  static pthread_mutex_t cs =  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-+  static pthread_mutex_t cs =  PTHREAD_MUTEX_INITIALIZER;
+-  #if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
+-    static pthread_mutex_t cs =  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-   #else
+     static pthread_mutex_t cs =  PTHREAD_MUTEX_INITIALIZER;
+-  #endif
   #endif
  #endif
  
diff --git a/graphics/exiv2/patches/patch-src_http_cpp 
b/graphics/exiv2/patches/patch-src_http_cpp
deleted file mode 100644
index f428b79abb7..00000000000
--- a/graphics/exiv2/patches/patch-src_http_cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-src_http_cpp,v 1.4 2019/02/14 16:03:34 jca Exp $
-Index: src/http.cpp
---- src/http.cpp.orig
-+++ src/http.cpp
-@@ -41,6 +41,7 @@
- #include <time.h>
- #include <sys/stat.h>
- #include <string.h>
-+#include <cerrno>
- 
- #ifdef  _MSC_VER
- #pragma message("Using exiv2 http support")
diff --git a/graphics/exiv2/patches/patch-src_pentaxmn_cpp 
b/graphics/exiv2/patches/patch-src_pentaxmn_cpp
deleted file mode 100644
index 23ba8f72ab9..00000000000
--- a/graphics/exiv2/patches/patch-src_pentaxmn_cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-src_pentaxmn_cpp,v 1.3 2019/02/14 16:03:34 jca Exp $
-
-Fix http://dev.exiv2.org/issues/1305
-
-Index: src/pentaxmn.cpp
---- src/pentaxmn.cpp.orig
-+++ src/pentaxmn.cpp
-@@ -1167,6 +1167,8 @@ namespace Exiv2 {
- 
-     std::ostream& PentaxMakerNote::printShutterCount(std::ostream& os, const 
Value& value, const ExifData* metadata)
-     {
-+        if ( ! metadata ) return os << "undefined" ;
-+
-         ExifData::const_iterator dateIt = metadata->findKey(
-                 ExifKey("Exif.PentaxDng.Date"));
-         if (dateIt == metadata->end()) {
diff --git a/graphics/exiv2/patches/patch-src_value_cpp 
b/graphics/exiv2/patches/patch-src_value_cpp
index 6dea5102c87..533a348029d 100644
--- a/graphics/exiv2/patches/patch-src_value_cpp
+++ b/graphics/exiv2/patches/patch-src_value_cpp
@@ -1,21 +1,16 @@
 $OpenBSD: patch-src_value_cpp,v 1.9 2019/02/14 16:03:34 jca Exp $
---- src/value.cpp.orig Sat May  2 13:55:40 2015
-+++ src/value.cpp      Thu Nov 19 19:30:30 2015
-@@ -982,7 +982,7 @@ namespace Exiv2 {
+
+Avoid sprintf warnings when linking with libexiv2.
+
+Index: src/value.cpp
+--- src/value.cpp.orig
++++ src/value.cpp
+@@ -1012,7 +1012,7 @@ namespace Exiv2 {
          // sprintf wants to add the null terminator, so use oversized buffer
          char temp[9];
  
--        int wrote = sprintf(temp, "%04d%02d%02d",
-+        int wrote = snprintf(temp, sizeof temp, "%04d%02d%02d",
-                             date_.year, date_.month, date_.day);
+-        int wrote = sprintf(temp, "%04d%02d%02d", date_.year, date_.month, 
date_.day);
++        int wrote = snprintf(temp, sizeof temp, "%04d%02d%02d", date_.year, 
date_.month, date_.day);
          assert(wrote == 8);
-         std::memcpy(buf, temp, 8);
-@@ -1157,7 +1157,7 @@ namespace Exiv2 {
-         char plusMinus = '+';
-         if (time_.tzHour < 0 || time_.tzMinute < 0) plusMinus = '-';
- 
--        int wrote = sprintf(temp,
-+        int wrote = snprintf(temp, sizeof temp,
-                    "%02d%02d%02d%1c%02d%02d",
-                    time_.hour, time_.minute, time_.second,
-                    plusMinus, abs(time_.tzHour), abs(time_.tzMinute));
+         std::memcpy(buf, temp, wrote);
+         return wrote;
diff --git a/graphics/exiv2/patches/patch-src_version_cpp 
b/graphics/exiv2/patches/patch-src_version_cpp
index 570faa1d49c..2c7dfd52bef 100644
--- a/graphics/exiv2/patches/patch-src_version_cpp
+++ b/graphics/exiv2/patches/patch-src_version_cpp
@@ -1,12 +1,16 @@
 $OpenBSD: patch-src_version_cpp,v 1.7 2019/02/14 16:03:34 jca Exp $
+
+getProcessPath() doesn't work on OpenBSD.
+
 Index: src/version.cpp
 --- src/version.cpp.orig
 +++ src/version.cpp
-@@ -126,6 +126,7 @@ namespace Exiv2 {
-         return os.str();
-     }
- 
-+const char* version() __attribute__((visibility ("default")));
-     const char* version()
-     {
-         return EXV_PACKAGE_VERSION;
+@@ -482,7 +482,7 @@ void Exiv2::dumpLibraryInfo(std::ostream& os,const exv
+     output(os,keys,"version"        , __VERSION__);
+     output(os,keys,"date"           , __DATE__   );
+     output(os,keys,"time"           , __TIME__   );
+-    output(os,keys,"processpath"    , Exiv2::getProcessPath());
++    //output(os,keys,"processpath"    , Exiv2::getProcessPath());
+ #ifdef EXV_ENABLE_NLS
+     output(os,keys,"localedir"      , EXV_LOCALEDIR);
+ #endif
diff --git a/graphics/exiv2/patches/patch-xmpsdk_src_XMPMeta-Serialize_cpp 
b/graphics/exiv2/patches/patch-xmpsdk_src_XMPMeta-Serialize_cpp
index 72263582316..10d96fd2a21 100644
--- a/graphics/exiv2/patches/patch-xmpsdk_src_XMPMeta-Serialize_cpp
+++ b/graphics/exiv2/patches/patch-xmpsdk_src_XMPMeta-Serialize_cpp
@@ -1,7 +1,8 @@
 $OpenBSD: patch-xmpsdk_src_XMPMeta-Serialize_cpp,v 1.4 2019/02/14 16:03:34 jca 
Exp $
---- xmpsdk/src/XMPMeta-Serialize.cpp.orig      Thu Nov 19 19:37:14 2015
-+++ xmpsdk/src/XMPMeta-Serialize.cpp   Thu Nov 19 20:02:26 2015
-@@ -303,7 +303,7 @@ AppendNodeValue ( XMP_VarString & outputStr, const XMP
+Index: xmpsdk/src/XMPMeta-Serialize.cpp
+--- xmpsdk/src/XMPMeta-Serialize.cpp.orig
++++ xmpsdk/src/XMPMeta-Serialize.cpp
+@@ -302,7 +302,7 @@ AppendNodeValue ( XMP_VarString & outputStr, const XMP
                                XMP_Assert ( (ch == kTab) || (ch == kLF) || (ch 
== kCR) );
  
                                char hexBuf[16];
diff --git a/graphics/exiv2/pkg/DESCR b/graphics/exiv2/pkg/DESCR
index ccc2cbf2b2c..b7bae69fe88 100644
--- a/graphics/exiv2/pkg/DESCR
+++ b/graphics/exiv2/pkg/DESCR
@@ -1,6 +1,6 @@
-Exiv2 is a C++ library and a command line utility to access image metadata. 
+Exiv2 is a C++ library and a command line utility to access image metadata.
 
-The Exiv2 library provides 
+The Exiv2 library provides
  * full read and write access to the Exif and IPTC  metadata of an
    image through Exiv2 keys and standard C++ iterators
  * a smart IPTC implementation that does not affect data that
diff --git a/graphics/exiv2/pkg/PLIST b/graphics/exiv2/pkg/PLIST
index 62af92188a3..ca6fd34f521 100644
--- a/graphics/exiv2/pkg/PLIST
+++ b/graphics/exiv2/pkg/PLIST
@@ -1,7 +1,42 @@
 @comment $OpenBSD: PLIST,v 1.12 2019/02/14 16:03:34 jca Exp $
+@bin bin/addmoddel
+@bin bin/convert-test
+@bin bin/easyaccess-test
+@bin bin/exifcomment
+@bin bin/exifdata
+@bin bin/exifdata-test
+@bin bin/exifprint
+@bin bin/exifvalue
 @bin bin/exiv2
+@bin bin/exiv2json
+@bin bin/geotag
+@bin bin/ini-test
+@bin bin/iotest
+@bin bin/iptceasy
+@bin bin/iptcprint
+@bin bin/iptctest
+@bin bin/key-test
+@bin bin/largeiptc-test
+@bin bin/metacopy
+@bin bin/mmap-test
+@bin bin/mrwthumb
+@bin bin/path-test
+@bin bin/prevtest
+@bin bin/stringto-test
+@bin bin/taglist
+@bin bin/tiff-test
+@bin bin/werror-test
+@bin bin/write-test
+@bin bin/write2-test
+@bin bin/xmpdump
+@bin bin/xmpparse
+@bin bin/xmpparser-test
+@bin bin/xmpprint
+@bin bin/xmpsample
 include/exiv2/
+include/exiv2/asfvideo.hpp
 include/exiv2/basicio.hpp
+include/exiv2/bigtiffimage.hpp
 include/exiv2/bmpimage.hpp
 include/exiv2/config.h
 include/exiv2/convert.hpp
@@ -13,8 +48,8 @@ include/exiv2/epsimage.hpp
 include/exiv2/error.hpp
 include/exiv2/exif.hpp
 include/exiv2/exiv2.hpp
+include/exiv2/exiv2lib_export.h
 include/exiv2/exv_conf.h
-include/exiv2/exv_msvc.h
 include/exiv2/futils.hpp
 include/exiv2/gifimage.hpp
 include/exiv2/http.hpp
@@ -23,6 +58,7 @@ include/exiv2/ini.hpp
 include/exiv2/iptc.hpp
 include/exiv2/jp2image.hpp
 include/exiv2/jpgimage.hpp
+include/exiv2/matroskavideo.hpp
 include/exiv2/metadatum.hpp
 include/exiv2/mrwimage.hpp
 include/exiv2/orfimage.hpp
@@ -31,42 +67,81 @@ include/exiv2/pngimage.hpp
 include/exiv2/preview.hpp
 include/exiv2/properties.hpp
 include/exiv2/psdimage.hpp
+include/exiv2/quicktimevideo.hpp
 include/exiv2/rafimage.hpp
+include/exiv2/riffvideo.hpp
 include/exiv2/rw2image.hpp
 include/exiv2/rwlock.hpp
+include/exiv2/slice.hpp
+include/exiv2/ssh.hpp
 include/exiv2/tags.hpp
 include/exiv2/tgaimage.hpp
 include/exiv2/tiffimage.hpp
 include/exiv2/types.hpp
+include/exiv2/utilsvideo.hpp
 include/exiv2/value.hpp
 include/exiv2/version.hpp
 include/exiv2/webpimage.hpp
-include/exiv2/xmp.hpp
+include/exiv2/xmp_exiv2.hpp
 include/exiv2/xmpsidecar.hpp
-lib/libexiv2.a
-lib/libexiv2.la
+lib/cmake/
+lib/cmake/exiv2/
+lib/cmake/exiv2/exiv2Config${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/exiv2/exiv2Config.cmake
+lib/cmake/exiv2/exiv2ConfigVersion.cmake
+@static-lib lib/libexiv2-xmp.a
 @lib lib/libexiv2.so.${LIBexiv2_VERSION}
 lib/pkgconfig/exiv2.pc
 @man man/man1/exiv2.1
-@man man/man1/exiv2samples.1
+share/locale/
 share/locale/bs/
 share/locale/bs/LC_MESSAGES/
 share/locale/bs/LC_MESSAGES/exiv2.mo
+share/locale/ca/
+share/locale/ca/LC_MESSAGES/
+share/locale/ca/LC_MESSAGES/exiv2.mo
+share/locale/de/
+share/locale/de/LC_MESSAGES/
 share/locale/de/LC_MESSAGES/exiv2.mo
+share/locale/es/
+share/locale/es/LC_MESSAGES/
 share/locale/es/LC_MESSAGES/exiv2.mo
+share/locale/fi/
+share/locale/fi/LC_MESSAGES/
 share/locale/fi/LC_MESSAGES/exiv2.mo
+share/locale/fr/
+share/locale/fr/LC_MESSAGES/
 share/locale/fr/LC_MESSAGES/exiv2.mo
+share/locale/gl/
+share/locale/gl/LC_MESSAGES/
 share/locale/gl/LC_MESSAGES/exiv2.mo
 share/locale/ms/
 share/locale/ms/LC_MESSAGES/
 share/locale/ms/LC_MESSAGES/exiv2.mo
+share/locale/nl/
+share/locale/nl/LC_MESSAGES/
+share/locale/nl/LC_MESSAGES/exiv2.mo
+share/locale/pl/
+share/locale/pl/LC_MESSAGES/
 share/locale/pl/LC_MESSAGES/exiv2.mo
+share/locale/pt/
+share/locale/pt/LC_MESSAGES/
 share/locale/pt/LC_MESSAGES/exiv2.mo
+share/locale/ru/
+share/locale/ru/LC_MESSAGES/
 share/locale/ru/LC_MESSAGES/exiv2.mo
+share/locale/sk/
+share/locale/sk/LC_MESSAGES/
 share/locale/sk/LC_MESSAGES/exiv2.mo
+share/locale/sv/
+share/locale/sv/LC_MESSAGES/
 share/locale/sv/LC_MESSAGES/exiv2.mo
 share/locale/ug/
 share/locale/ug/LC_MESSAGES/
 share/locale/ug/LC_MESSAGES/exiv2.mo
+share/locale/uk/
+share/locale/uk/LC_MESSAGES/
 share/locale/uk/LC_MESSAGES/exiv2.mo
+share/locale/vi/
+share/locale/vi/LC_MESSAGES/
 share/locale/vi/LC_MESSAGES/exiv2.mo
diff --git a/graphics/gegl03/Makefile b/graphics/gegl03/Makefile
index 46a7557185f..163c2299f15 100644
--- a/graphics/gegl03/Makefile
+++ b/graphics/gegl03/Makefile
@@ -8,7 +8,7 @@ V=                      0.3.34
 DISTNAME=              gegl-${V}
 PKGNAME=               gegl03-${V}
 EXTRACT_SUFX=          .tar.bz2
-REVISION=              3
+REVISION=              4
 
 SHARED_LIBS +=  gegl-0.3             0.6      # 332.0
 
@@ -30,7 +30,7 @@ WANTLIB += glib-2.0 gmodule-2.0 gobject-2.0 graphite2 
gthread-2.0
 WANTLIB += harfbuzz iconv intl jasper jpeg json-glib-1.0 lcms2
 WANTLIB += lzma m pango-1.0 pangocairo-1.0 pangoft2-1.0 pcre pixman-1
 WANTLIB += png pthread raw rsvg-2 tiff webp xcb xcb-render xcb-shm
-WANTLIB += xml2 z
+WANTLIB += xml2 z zstd
 
 COMPILER=              base-clang ports-gcc base-gcc
 
@@ -44,7 +44,8 @@ USE_GMAKE=            Yes
 
 BUILD_DEPENDS=         graphics/libgexiv2
 
-LIB_DEPENDS=           devel/json-glib \
+LIB_DEPENDS=           archivers/zstd \
+                       devel/json-glib \
                        graphics/babl \
                        graphics/lcms2 \
                        graphics/libraw \
diff --git a/graphics/gegl03/patches/patch-tools_exp_combine_cpp 
b/graphics/gegl03/patches/patch-tools_exp_combine_cpp
new file mode 100644
index 00000000000..4009914771a
--- /dev/null
+++ b/graphics/gegl03/patches/patch-tools_exp_combine_cpp
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: tools/exp_combine.cpp
+--- tools/exp_combine.cpp.orig
++++ tools/exp_combine.cpp
+@@ -10,6 +10,7 @@
+ 
+ #include <exiv2/image.hpp>
+ #include <exiv2/exif.hpp>
++#include <exiv2/error.hpp>
+ 
+ using namespace std;
+ 
diff --git a/graphics/hugin/Makefile b/graphics/hugin/Makefile
index bb518ce2a32..27c960104e8 100644
--- a/graphics/hugin/Makefile
+++ b/graphics/hugin/Makefile
@@ -5,7 +5,7 @@ BROKEN-hppa =   run dep on enblend-enfuse which will not build 
on hppa
 COMMENT =      panorama image stitcher
 
 DISTNAME =     hugin-2019.0.0
-REVISION =     1
+REVISION =     2
 EXTRACT_SUFX = .tar.bz2
 
 # not needed for releases, but makes RCs/betas easier to work with
diff --git a/graphics/hugin/patches/patch-src_hugin1_hugin_RawImport_cpp 
b/graphics/hugin/patches/patch-src_hugin1_hugin_RawImport_cpp
new file mode 100644
index 00000000000..1efd316dc5a
--- /dev/null
+++ b/graphics/hugin/patches/patch-src_hugin1_hugin_RawImport_cpp
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: src/hugin1/hugin/RawImport.cpp
+--- src/hugin1/hugin/RawImport.cpp.orig
++++ src/hugin1/hugin/RawImport.cpp
+@@ -36,6 +36,7 @@
+ #define HAVE_PID_T 1
+ #endif
+ #include <exiv2/exif.hpp>
++#include <exiv2/error.hpp>
+ #include <exiv2/image.hpp>
+ #include <exiv2/easyaccess.hpp>
+ #include <exiv2/xmpsidecar.hpp>
diff --git 
a/graphics/hugin/patches/patch-src_hugin_base_panodata_SrcPanoImage_cpp 
b/graphics/hugin/patches/patch-src_hugin_base_panodata_SrcPanoImage_cpp
new file mode 100644
index 00000000000..720a1dd7e7e
--- /dev/null
+++ b/graphics/hugin/patches/patch-src_hugin_base_panodata_SrcPanoImage_cpp
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: src/hugin_base/panodata/SrcPanoImage.cpp
+--- src/hugin_base/panodata/SrcPanoImage.cpp.orig
++++ src/hugin_base/panodata/SrcPanoImage.cpp
+@@ -41,6 +41,7 @@
+ #include <vigra/imageinfo.hxx>
+ #include <hugin_utils/utils.h>
+ #include <exiv2/exif.hpp>
++#include <exiv2/error.hpp>
+ #include <exiv2/image.hpp>
+ #include <exiv2/easyaccess.hpp>
+ #include <lensdb/LensDB.h>
diff --git a/graphics/hugin/pkg/PLIST b/graphics/hugin/pkg/PLIST
index f98e4222447..b9ebf61d853 100644
--- a/graphics/hugin/pkg/PLIST
+++ b/graphics/hugin/pkg/PLIST
@@ -39,7 +39,7 @@ lib/hugin/
 @lib lib/hugin/libhuginbasewx.so.${LIBhuginbasewx_VERSION}
 @lib lib/hugin/libicpfindlib.so.${LIBicpfindlib_VERSION}
 @lib lib/hugin/liblocalfeatures.so.${LIBlocalfeatures_VERSION}
-lib/python${MODPY_VERSION}/site-packages/_hsi.so
+@so lib/python${MODPY_VERSION}/site-packages/_hsi.so
 lib/python${MODPY_VERSION}/site-packages/hpi.py
 lib/python${MODPY_VERSION}/site-packages/hpi.pyc
 lib/python${MODPY_VERSION}/site-packages/hsi.py
diff --git a/graphics/nomacs/Makefile b/graphics/nomacs/Makefile
index a3122dab0d2..14c062c6772 100644
--- a/graphics/nomacs/Makefile
+++ b/graphics/nomacs/Makefile
@@ -5,7 +5,7 @@ COMMENT =       small and fast Qt image viewer
 GH_ACCOUNT =   nomacs
 GH_PROJECT =   nomacs
 GH_TAGNAME =   3.12
-REVISION =     2
+REVISION =     3
 
 CATEGORIES =   graphics
 
diff --git a/graphics/nomacs/patches/patch-src_DkCore_DkMetaData_cpp 
b/graphics/nomacs/patches/patch-src_DkCore_DkMetaData_cpp
new file mode 100644
index 00000000000..1488b6e533f
--- /dev/null
+++ b/graphics/nomacs/patches/patch-src_DkCore_DkMetaData_cpp
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Missing include after exiv2 0.27.2
+
+Index: src/DkCore/DkMetaData.cpp
+--- src/DkCore/DkMetaData.cpp.orig
++++ src/DkCore/DkMetaData.cpp
+@@ -42,6 +42,8 @@
+ #include <QApplication>
+ #pragma warning(pop)          // no warnings from includes - end
+ 
++#include <iostream>
++
+ namespace nmc {
+ 
+ // DkMetaDataT 
--------------------------------------------------------------------
diff --git a/graphics/nomacs/patches/patch-src_DkGui_DkNoMacs_cpp 
b/graphics/nomacs/patches/patch-src_DkGui_DkNoMacs_cpp
new file mode 100644
index 00000000000..02b0577230d
--- /dev/null
+++ b/graphics/nomacs/patches/patch-src_DkGui_DkNoMacs_cpp
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Missing include after exiv2 0.27.2
+
+Index: src/DkGui/DkNoMacs.cpp
+--- src/DkGui/DkNoMacs.cpp.orig
++++ src/DkGui/DkNoMacs.cpp
+@@ -96,6 +96,8 @@
+ #include <QWinTaskbarButton>
+ #endif
+ 
++#include <iostream>
++
+ namespace nmc {
+ 
+ DkNomacsOSXEventFilter::DkNomacsOSXEventFilter(QObject *parent) : 
QObject(parent) {
diff --git a/graphics/rawstudio/Makefile b/graphics/rawstudio/Makefile
index d2c0ab024bf..f890d990c2e 100644
--- a/graphics/rawstudio/Makefile
+++ b/graphics/rawstudio/Makefile
@@ -3,7 +3,7 @@
 COMMENT =      tool for working with RAW images
 
 DISTNAME =     rawstudio-1.2
-REVISION =     21
+REVISION =     22
 
 CATEGORIES =   graphics
 
diff --git a/graphics/rawstudio/patch-librawstudio_rs-exif_cc 
b/graphics/rawstudio/patch-librawstudio_rs-exif_cc
new file mode 100644
index 00000000000..77aeb9878dd
--- /dev/null
+++ b/graphics/rawstudio/patch-librawstudio_rs-exif_cc
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: librawstudio/rs-exif.cc
+--- librawstudio/rs-exif.cc.orig
++++ librawstudio/rs-exif.cc
+@@ -19,7 +19,7 @@
+ 
+ #include <iostream>
+ #include <iomanip>
+-#include <exiv2/exiv2.hpp>
++
+ #include <exiv2/image.hpp>
+ #include <exiv2/exif.hpp>
+ #include "rs-exif.h"
diff --git a/graphics/rawstudio/patches/patch-src_rs-exif_cc 
b/graphics/rawstudio/patches/patch-src_rs-exif_cc
new file mode 100644
index 00000000000..42686535cfa
--- /dev/null
+++ b/graphics/rawstudio/patches/patch-src_rs-exif_cc
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+unbreak with exiv2 2.27
+
+Index: src/rs-exif.cc
+--- src/rs-exif.cc.orig
++++ src/rs-exif.cc
+@@ -19,6 +19,7 @@
+ 
+ #include <iostream>
+ #include <iomanip>
++#include <exiv2/exiv2.hpp>
+ #include <exiv2/image.hpp>
+ #include <exiv2/exif.hpp>
+ #include "rs-exif.h"
diff --git a/graphics/ufraw/Makefile b/graphics/ufraw/Makefile
index e1ed9fba8d4..34dceb22b13 100644
--- a/graphics/ufraw/Makefile
+++ b/graphics/ufraw/Makefile
@@ -3,7 +3,7 @@
 COMMENT=       read and manipulate raw images from digital cameras
 
 DISTNAME=      ufraw-0.22
-REVISION=      5
+REVISION=      6
 
 CATEGORIES=    graphics
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=ufraw/}
@@ -12,14 +12,15 @@ HOMEPAGE=   http://ufraw.sourceforge.net/
 # GPLv2+
 PERMIT_PACKAGE=        Yes
 
-WANTLIB += X11 Xcomposite Xcursor Xdamage Xext Xfixes Xi Xinerama
-WANTLIB += Xrandr Xrender atk-1.0 bz2 c cairo cfitsio exiv2
-WANTLIB += fontconfig freetype gdk-x11-2.0 gdk_pixbuf-2.0 gimp-2.0
-WANTLIB += gimpbase-2.0 gimpcolor-2.0 gimpconfig-2.0 gimpmath-2.0
-WANTLIB += gimpmodule-2.0 gimpui-2.0 gimpwidgets-2.0 gio-2.0 glib-2.0
-WANTLIB += gobject-2.0 gthread-2.0 gtk-x11-2.0 gtkimageview iconv intl
-WANTLIB += jasper jpeg lcms2 m pango-1.0 pangocairo-1.0 pangoft2-1.0
-WANTLIB += png pthread ${COMPILER_LIBCXX} tiff z
+WANTLIB += ${COMPILER_LIBCXX} X11 Xcomposite Xcursor Xdamage Xext
+WANTLIB += Xfixes Xi Xinerama Xrandr Xrender atk-1.0 babl-0.1
+WANTLIB += bz2 c cairo cfitsio exiv2 fontconfig freetype gdk-x11-2.0
+WANTLIB += gdk_pixbuf-2.0 gegl-0.4 gimp-2.0 gimpbase-2.0 gimpcolor-2.0
+WANTLIB += gimpconfig-2.0 gimpmath-2.0 gimpmodule-2.0 gimpui-2.0
+WANTLIB += gimpwidgets-2.0 gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0
+WANTLIB += gthread-2.0 gtk-x11-2.0 gtkimageview harfbuzz intl
+WANTLIB += jasper jpeg json-glib-1.0 lcms2 m pango-1.0 pangocairo-1.0
+WANTLIB += pangoft2-1.0 png tiff z
 
 # don't remove unless you are sure:
 WANTLIB += lensfun
diff --git a/graphics/ufraw/patches/patch-ufraw_exiv2_cc 
b/graphics/ufraw/patches/patch-ufraw_exiv2_cc
new file mode 100644
index 00000000000..13c7f0cac59
--- /dev/null
+++ b/graphics/ufraw/patches/patch-ufraw_exiv2_cc
@@ -0,0 +1,31 @@
+$OpenBSD$
+
+unbreak with exiv2 0.27
+
+Index: ufraw_exiv2.cc
+--- ufraw_exiv2.cc.orig
++++ ufraw_exiv2.cc
+@@ -15,9 +15,8 @@
+ #include "ufraw.h"
+ 
+ #ifdef HAVE_EXIV2
+-#include <exiv2/image.hpp>
+-#include <exiv2/easyaccess.hpp>
+-#include <exiv2/exif.hpp>
++#include <iostream>
++#include <exiv2/exiv2.hpp>
+ #include <sstream>
+ #include <cassert>
+ 
+@@ -67,7 +66,11 @@ extern "C" int ufraw_exif_read_input(ufraw_data *uf)
+         if (exifData.empty()) {
+             std::string error(uf->filename);
+             error += ": No Exif data found in the file";
++#if EXIV2_TEST_VERSION(0,27,0)
++            throw Exiv2::Error(Exiv2::kerErrorMessage, error);
++#else
+             throw Exiv2::Error(1, error);
++#endif
+         }
+ 
+         /* List of tag names taken from exiv2's printSummary() in actions.cpp 
*/
diff --git a/sysutils/krename/Makefile b/sysutils/krename/Makefile
index 4b4f61225ce..c692ffdc8ce 100644
--- a/sysutils/krename/Makefile
+++ b/sysutils/krename/Makefile
@@ -4,7 +4,7 @@ COMMENT =       powerful batch file renamer
 
 VERSION =      5.0.0
 DISTNAME =     krename-${VERSION}
-REVISION =     2
+REVISION =     3
 
 CATEGORIES =   sysutils x11
 
diff --git a/sysutils/krename/patches/patch-CMakeLists_txt 
b/sysutils/krename/patches/patch-CMakeLists_txt
new file mode 100644
index 00000000000..202cb371c46
--- /dev/null
+++ b/sysutils/krename/patches/patch-CMakeLists_txt
@@ -0,0 +1,46 @@
+$OpenBSD$
+
+https://gitweb.gentoo.org/repo/gentoo.git/plain/kde-misc/krename/files/krename-5.0.0-exiv2-0.27.patch
+
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -1,6 +1,7 @@
+-project(krename)
+ 
+-cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
++cmake_minimum_required(VERSION 3.7)
++
++project(krename VERSION "5.0.0")
+ # search packages used by KDE
+ find_package(ECM 0.0.11 REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
+@@ -39,10 +40,6 @@ add_definitions(
+     -DQT_STRICT_ITERATORS
+ )
+ 
+-set(KRENAME_VERSION "5.0.0")
+-
+-include(FindGettext)
+-
+ # Find taglib
+ set(TAGLIB_MIN_VERSION "1.5")
+ find_package(Taglib ${TAGLIB_MIN_VERSION})
+@@ -52,11 +49,12 @@ set_package_properties(Taglib PROPERTIES
+     TYPE OPTIONAL)
+ 
+ # Find exiv2
+-find_package(Exiv2 0.13) # AccessMode was added in 0.13
+-set_package_properties(Exiv2 PROPERTIES
+-    DESCRIPTION "A library to access image metadata"
+-    URL "http://www.exiv2.org";
+-    TYPE OPTIONAL)
++find_package(LibExiv2 0.13) # AccessMode was added in 0.13
++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)
diff --git a/sysutils/krename/patches/patch-config-krename_h_cmake 
b/sysutils/krename/patches/patch-config-krename_h_cmake
new file mode 100644
index 00000000000..a70d5090b28
--- /dev/null
+++ b/sysutils/krename/patches/patch-config-krename_h_cmake
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+https://gitweb.gentoo.org/repo/gentoo.git/plain/kde-misc/krename/files/krename-5.0.0-exiv2-0.27.patch
+
+Index: config-krename.h.cmake
+--- config-krename.h.cmake.orig
++++ config-krename.h.cmake
+@@ -6,6 +6,9 @@
+ /* 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/sysutils/krename/patches/patch-src_CMakeLists_txt 
b/sysutils/krename/patches/patch-src_CMakeLists_txt
new file mode 100644
index 00000000000..aadd30fb964
--- /dev/null
+++ b/sysutils/krename/patches/patch-src_CMakeLists_txt
@@ -0,0 +1,37 @@
+$OpenBSD$
+
+https://gitweb.gentoo.org/repo/gentoo.git/plain/kde-misc/krename/files/krename-5.0.0-exiv2-0.27.patch
+
+Index: src/CMakeLists.txt
+--- src/CMakeLists.txt.orig
++++ src/CMakeLists.txt
+@@ -23,7 +23,7 @@ if(FREETYPE_FOUND)
+     include_directories(${FREETYPE_INCLUDE_DIRS})
+ endif()
+ 
+-add_definitions(${TAGLIB_CFLAGS} ${EXIV2_CFLAGS})
++add_definitions(${TAGLIB_CFLAGS})
+ # Exiv2 needs exceptions
+ kde_enable_exceptions()
+ 
+@@ -67,7 +67,7 @@ set(krename_SRCS
+     snumplugin.cpp
+ )
+ 
+-if(EXIV2_FOUND)
++if(LibExiv2_FOUND)
+     set(krename_SRCS ${krename_SRCS}
+         exiv2plugin.cpp
+     )
+@@ -131,9 +131,9 @@ if(TAGLIB_FOUND)
+         ${TAGLIB_LIBRARIES}
+     )
+ endif()
+-if(EXIV2_FOUND)
++if(LibExiv2_FOUND)
+     target_link_libraries(krename
+-        ${EXIV2_LIBRARIES}
++        LibExiv2::LibExiv2
+     )
+ endif()
+ if(PoDoFo_FOUND)
diff --git a/sysutils/krename/patches/patch-src_exiv2plugin_cpp 
b/sysutils/krename/patches/patch-src_exiv2plugin_cpp
new file mode 100644
index 00000000000..6e4c424baae
--- /dev/null
+++ b/sysutils/krename/patches/patch-src_exiv2plugin_cpp
@@ -0,0 +1,28 @@
+$OpenBSD$
+
+https://gitweb.gentoo.org/repo/gentoo.git/plain/kde-misc/krename/files/krename-5.0.0-exiv2-0.27.patch
+
+Index: src/exiv2plugin.cpp
+--- src/exiv2plugin.cpp.orig
++++ src/exiv2plugin.cpp
+@@ -17,13 +17,19 @@
+ 
+ #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>
+-#include <exiv2/xmp.hpp>
++#ifdef HAVE_LIBEXIV2_0_27
++    #include <exiv2/xmp_exiv2.hpp>
++#else
++    #include <exiv2/xmp.hpp>
++#endif
+ #include <exiv2/tags.hpp>
+ 
+ #include "batchrenamer.h"
diff --git a/x11/kde4/kfilemetadata/Makefile b/x11/kde4/kfilemetadata/Makefile
index beb733283b4..dbb88867052 100644
--- a/x11/kde4/kfilemetadata/Makefile
+++ b/x11/kde4/kfilemetadata/Makefile
@@ -2,7 +2,7 @@
 
 COMMENT =      file metadata extraction library for KDE
 DISTNAME =     kfilemetadata-${MODKDE4_VERSION}
-REVISION =     2
+REVISION =     3
 
 CATEGORIES =   sysutils
 
diff --git a/x11/kde4/libkexiv2/Makefile b/x11/kde4/libkexiv2/Makefile
index 72ee5a1e294..c8e142d98cc 100644
--- a/x11/kde4/libkexiv2/Makefile
+++ b/x11/kde4/libkexiv2/Makefile
@@ -4,7 +4,7 @@ COMMENT =       KDE exiv2 wrapper
 CATEGORIES =   graphics devel
 DISTNAME =     libkexiv2-${MODKDE4_VERSION}
 PKGSPEC =      libkexiv2-${MODKDE4_SPEC}
-REVISION =     1
+REVISION =     2
 
 SHARED_LIBS =  kexiv2                  51.0    # 10.0
 
diff --git a/x11/kde4/libkexiv2/patches/patch-CMakeLists_txt 
b/x11/kde4/libkexiv2/patches/patch-CMakeLists_txt
index c73445580d4..7feab3201a9 100644
--- a/x11/kde4/libkexiv2/patches/patch-CMakeLists_txt
+++ b/x11/kde4/libkexiv2/patches/patch-CMakeLists_txt
@@ -1,7 +1,8 @@
 $OpenBSD: patch-CMakeLists_txt,v 1.1 2013/12/08 19:13:32 zhuk Exp $
---- CMakeLists.txt.orig        Sun Aug 11 18:39:21 2013
-+++ CMakeLists.txt     Sun Aug 11 18:42:22 2013
-@@ -115,3 +115,17 @@ IF (EXIV2_FOUND)
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -137,3 +137,17 @@ IF (EXIV2_FOUND)
  ENDIF (EXIV2_FOUND)
  
  MACRO_DISPLAY_FEATURE_LOG()
diff --git a/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_cpp 
b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_cpp
new file mode 100644
index 00000000000..f6cae3e4e59
--- /dev/null
+++ b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_cpp
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: libkexiv2/kexiv2.cpp
+--- libkexiv2/kexiv2.cpp.orig
++++ libkexiv2/kexiv2.cpp
+@@ -31,6 +31,8 @@
+ // Local includes
+ 
+ #include "version.h"
++ #include <exiv2/version.hpp>
++ #include <exiv2/exiv2.hpp>
+ 
+ namespace KExiv2Iface
+ {
diff --git a/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_p_cpp 
b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_p_cpp
new file mode 100644
index 00000000000..d4bc0737b54
--- /dev/null
+++ b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2_p_cpp
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: libkexiv2/kexiv2_p.cpp
+--- libkexiv2/kexiv2_p.cpp.orig
++++ libkexiv2/kexiv2_p.cpp
+@@ -33,6 +33,7 @@ extern "C"
+ {
+ #include <sys/stat.h>
+ #include <utime.h>
++ #include <exiv2/version.hpp>
+ }
+ 
+ namespace KExiv2Iface
diff --git a/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2exif_cpp 
b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2exif_cpp
new file mode 100644
index 00000000000..ec70fbef4f3
--- /dev/null
+++ b/x11/kde4/libkexiv2/patches/patch-libkexiv2_kexiv2exif_cpp
@@ -0,0 +1,21 @@
+$OpenBSD$
+Index: libkexiv2/kexiv2exif.cpp
+--- libkexiv2/kexiv2exif.cpp.orig
++++ libkexiv2/kexiv2exif.cpp
+@@ -28,6 +28,7 @@
+ #include "kexiv2.h"
+ #include "kexiv2_p.h"
+ #include "rotationmatrix.h"
++ #include <exiv2/error.hpp>
+ 
+ // C++ includes
+ 
+@@ -986,7 +987,7 @@ bool KExiv2::setTiffThumbnail(const QImage& thumbImage
+ 
+         if (pos == d->exifMetadata().end() || pos->count() != 1 || 
pos->toLong() != 0)
+         {
+-            throw Exiv2::Error(1, "Exif.Image.NewSubfileType missing or not 
set as main image");
++            throw Exiv2::Error(Exiv2::kerErrorMessage, 
"Exif.Image.NewSubfileType missing or not set as main image");
+         }
+ 
+         // Remove sub-IFD tags
diff --git a/x11/kde4/libs/Makefile b/x11/kde4/libs/Makefile
index 35ac40d30a6..bdbd5ffba3e 100644
--- a/x11/kde4/libs/Makefile
+++ b/x11/kde4/libs/Makefile
@@ -12,7 +12,7 @@ PKGNAME-langlist =    kde4-langlist-$V
 PKG_ARCH-en_US =       *
 PKG_ARCH-langlist =    *
 PKGSPEC-main =         kdelibs-${MODKDE4_SPEC}
-REVISION-main =                20
+REVISION-main =                21
 REVISION-en_US =       0
 REVISION-langlist =    0
 
diff --git a/x11/kde4/libs/patches/patch-cmake_modules_FindExiv2_cmake 
b/x11/kde4/libs/patches/patch-cmake_modules_FindExiv2_cmake
new file mode 100644
index 00000000000..860fb037b8d
--- /dev/null
+++ b/x11/kde4/libs/patches/patch-cmake_modules_FindExiv2_cmake
@@ -0,0 +1,19 @@
+$OpenBSD$
+
+Fix exiv2 2.27
+
+Index: cmake/modules/FindExiv2.cmake
+--- cmake/modules/FindExiv2.cmake.orig
++++ cmake/modules/FindExiv2.cmake
+@@ -55,9 +55,9 @@ find_library(EXIV2_LIBRARY NAMES exiv2 libexiv2
+             )
+ 
+ 
+-# Get the version number from exiv2/version.hpp and store it in the cache:
++# Get the version number from exiv2/exv_conf.h and store it in the cache:
+ if(EXIV2_INCLUDE_DIR  AND NOT  EXIV2_VERSION)
+-  file(READ ${EXIV2_INCLUDE_DIR}/exiv2/version.hpp EXIV2_VERSION_CONTENT)
++  file(READ ${EXIV2_INCLUDE_DIR}/exiv2/exv_conf.h EXIV2_VERSION_CONTENT)
+   string(REGEX MATCH "#define EXIV2_MAJOR_VERSION +\\( *([0-9]+) *\\)"  
_dummy "${EXIV2_VERSION_CONTENT}")
+   set(EXIV2_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ 
diff --git a/x11/kde4/nepomuk-core/Makefile b/x11/kde4/nepomuk-core/Makefile
index bd1264199e7..7a43f90f5f2 100644
--- a/x11/kde4/nepomuk-core/Makefile
+++ b/x11/kde4/nepomuk-core/Makefile
@@ -2,7 +2,7 @@
 
 COMMENT =      KDE Nepomuk core libraries
 DISTNAME =     nepomuk-core-${MODKDE4_VERSION}
-REVISION =     3
+REVISION =     4
 
 SHARED_LIBS =  nepomukcore             53.0 # 4.9
 SHARED_LIBS += nepomukcommon           53.0 # 4.10
diff --git a/x11/kde4/runtime/Makefile b/x11/kde4/runtime/Makefile
index 8c68d78ad1d..8b5c802a415 100644
--- a/x11/kde4/runtime/Makefile
+++ b/x11/kde4/runtime/Makefile
@@ -6,7 +6,7 @@ DISTNAME =              kde-runtime-${MODKDE4_VERSION}
 PKGNAME-main =         ${DISTNAME}
 PKGNAME-locale =       kde4-locale-${MODKDE4_VERSION}
 PKG_ARCH-locale =      *
-REVISION-main =                16
+REVISION-main =                17
 REVISION-locale =      2
 
 DPB_PROPERTIES =       parallel

Reply via email to