summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2019-07-17 00:39:57 +0000
committernia <nia@pkgsrc.org>2019-07-17 00:39:57 +0000
commitfb10bae4d4f9fbf792097839117a638460c72607 (patch)
tree373e56a5cdb9951f894ddf9120715d99a7ffae12 /graphics
parentbcff74a7d129e42b0193a366616c9f1350c6f022 (diff)
downloadpkgsrc-fb10bae4d4f9fbf792097839117a638460c72607.tar.gz
krita: fix build with exiv2>=0.27
would be better to update this, but that seems to require a few things that aren't in pkgsrc yet. just backport the patch for now.
Diffstat (limited to 'graphics')
-rw-r--r--graphics/krita/distinfo11
-rw-r--r--graphics/krita/patches/patch-CMakeLists.txt22
-rw-r--r--graphics/krita/patches/patch-cmake_modules_FindExiv2.cmake90
-rw-r--r--graphics/krita/patches/patch-cmake_modules_FindLibExiv2.cmake125
-rw-r--r--graphics/krita/patches/patch-libs_ui_CMakeLists.txt25
-rw-r--r--graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exif__io.cpp73
-rw-r--r--graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exiv2.h18
-rw-r--r--graphics/krita/patches/patch-libs_ui_kisexiv2_kis__iptc__io.cpp27
-rw-r--r--graphics/krita/patches/patch-libs_ui_kisexiv2_kis__xmp__io.cpp29
-rw-r--r--graphics/krita/patches/patch-plugins_impex_jpeg_CMakeLists.txt35
10 files changed, 454 insertions, 1 deletions
diff --git a/graphics/krita/distinfo b/graphics/krita/distinfo
index b957f9af156..ec44cccdfc0 100644
--- a/graphics/krita/distinfo
+++ b/graphics/krita/distinfo
@@ -1,8 +1,17 @@
-$NetBSD: distinfo,v 1.4 2018/10/05 20:11:53 maya Exp $
+$NetBSD: distinfo,v 1.5 2019/07/17 00:39:57 nia Exp $
SHA1 (krita-4.1.3.tar.gz) = 7be35bdfa1163d5c718622d1dbe121153201a7d4
RMD160 (krita-4.1.3.tar.gz) = e48ebf62845913ca85c965b0a51d7f82cc91ce72
SHA512 (krita-4.1.3.tar.gz) = b0d9d8fecdf9f49e6431d0e31fdd6df2f53e654f64e93a05c73afbbdff0625c072a00347e667f1ba87c6d145185fe98d0518df3a4c0c56ccb944216a42d53d5c
Size (krita-4.1.3.tar.gz) = 243979838 bytes
+SHA1 (patch-CMakeLists.txt) = 92dee70269c2e9d5c22ef73aeacdeb1c50f21836
+SHA1 (patch-cmake_modules_FindExiv2.cmake) = 2ef3712de4acf89e685e63666212408497b3de53
+SHA1 (patch-cmake_modules_FindLibExiv2.cmake) = 2dd9d73a7f45297c6d697ff3da181dd5c14a4880
SHA1 (patch-krita_data_CMakeLists.txt) = bc0a37c1a60a2e0702c4a87b70ae0abf8359cc45
+SHA1 (patch-libs_ui_CMakeLists.txt) = bbdcb9eb9aeb7ce4c4c3a55c1d82a7c47117741f
+SHA1 (patch-libs_ui_kisexiv2_kis__exif__io.cpp) = 6b982fcd4a8b5fadf0efff6caaa769ccae3c10aa
+SHA1 (patch-libs_ui_kisexiv2_kis__exiv2.h) = 9be33078755584485a1653ec2998a5fce6e32b90
+SHA1 (patch-libs_ui_kisexiv2_kis__iptc__io.cpp) = 088167d6be1b82a0c6618dd26a11b7e1cf2f0c64
+SHA1 (patch-libs_ui_kisexiv2_kis__xmp__io.cpp) = 981e8494d19706da5efdf4b24904161b9a74a425
+SHA1 (patch-plugins_impex_jpeg_CMakeLists.txt) = ed99d0d7e4f116c0d4f780b61bca38884773762c
SHA1 (patch-xcftools.h) = eeeed207e9b1995999a16efbbae91ed8f6255f48
diff --git a/graphics/krita/patches/patch-CMakeLists.txt b/graphics/krita/patches/patch-CMakeLists.txt
new file mode 100644
index 00000000000..591e3bf78be
--- /dev/null
+++ b/graphics/krita/patches/patch-CMakeLists.txt
@@ -0,0 +1,22 @@
+$NetBSD: patch-CMakeLists.txt,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- CMakeLists.txt.orig 2018-09-26 12:23:39.000000000 +0000
++++ CMakeLists.txt
+@@ -600,11 +600,7 @@ set_package_properties(Eigen3 PROPERTIES
+ ##
+ ## Test for exiv2
+ ##
+-find_package(Exiv2 0.16 REQUIRED)
+-set_package_properties(Exiv2 PROPERTIES
+- DESCRIPTION "Image metadata library and tools"
+- URL "http://www.exiv2.org"
+- PURPOSE "Required by Krita")
++find_package(LibExiv2 0.16 REQUIRED)
+
+ ##
+ ## Test for lcms
diff --git a/graphics/krita/patches/patch-cmake_modules_FindExiv2.cmake b/graphics/krita/patches/patch-cmake_modules_FindExiv2.cmake
new file mode 100644
index 00000000000..e16ffcad52c
--- /dev/null
+++ b/graphics/krita/patches/patch-cmake_modules_FindExiv2.cmake
@@ -0,0 +1,90 @@
+$NetBSD: patch-cmake_modules_FindExiv2.cmake,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- cmake/modules/FindExiv2.cmake.orig 2018-09-26 12:18:03.000000000 +0000
++++ cmake/modules/FindExiv2.cmake
+@@ -1,80 +0,0 @@
+-# - Try to find the Exiv2 library
+-#
+-# EXIV2_MIN_VERSION - You can set this variable to the minimum version you need
+-# before doing FIND_PACKAGE(Exiv2). The default is 0.12.
+-#
+-# Once done this will define
+-#
+-# EXIV2_FOUND - system has libexiv2
+-# EXIV2_INCLUDE_DIR - the libexiv2 include directory
+-# EXIV2_LIBRARIES - Link these to use libexiv2
+-# EXIV2_DEFINITIONS - Compiler switches required for using libexiv2
+-#
+-# The minimum required version of Exiv2 can be specified using the
+-# standard syntax, e.g. find_package(Exiv2 0.17)
+-#
+-# For compatibility, also the variable EXIV2_MIN_VERSION can be set to the minimum version
+-# you need before doing FIND_PACKAGE(Exiv2). The default is 0.12.
+-
+-# Copyright (c) 2010, Alexander Neundorf, <neundorf@kde.org>
+-# Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
+-#
+-# Redistribution and use is allowed according to the terms of the BSD license.
+-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+-
+-# Support EXIV2_MIN_VERSION for compatibility:
+-if(NOT Exiv2_FIND_VERSION)
+- set(Exiv2_FIND_VERSION "${EXIV2_MIN_VERSION}")
+-endif(NOT Exiv2_FIND_VERSION)
+-
+-# the minimum version of exiv2 we require
+-if(NOT Exiv2_FIND_VERSION)
+- set(Exiv2_FIND_VERSION "0.12")
+-endif(NOT Exiv2_FIND_VERSION)
+-
+-
+-if (NOT WIN32)
+- # use pkg-config to get the directories and then use these values
+- # in the FIND_PATH() and FIND_LIBRARY() calls
+- find_package(PkgConfig)
+- pkg_check_modules(PC_EXIV2 QUIET exiv2)
+- set(EXIV2_DEFINITIONS ${PC_EXIV2_CFLAGS_OTHER})
+-endif (NOT WIN32)
+-
+-
+-find_path(EXIV2_INCLUDE_DIR NAMES exiv2/exif.hpp
+- HINTS
+- ${PC_EXIV2_INCLUDEDIR}
+- ${PC_EXIV2_INCLUDE_DIRS}
+- )
+-
+-find_library(EXIV2_LIBRARY NAMES exiv2 libexiv2
+- HINTS
+- ${PC_EXIV2_LIBDIR}
+- ${PC_EXIV2_LIBRARY_DIRS}
+- )
+-
+-
+-# Get the version number from exiv2/version.hpp 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)
+- string(REGEX MATCH "#define EXIV2_MAJOR_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
+- set(EXIV2_VERSION_MAJOR "${CMAKE_MATCH_1}")
+-
+- string(REGEX MATCH "#define EXIV2_MINOR_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
+- set(EXIV2_VERSION_MINOR "${CMAKE_MATCH_1}")
+-
+- string(REGEX MATCH "#define EXIV2_PATCH_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
+- set(EXIV2_VERSION_PATCH "${CMAKE_MATCH_1}")
+-
+- set(EXIV2_VERSION "${EXIV2_VERSION_MAJOR}.${EXIV2_VERSION_MINOR}.${EXIV2_VERSION_PATCH}" CACHE STRING "Version number of Exiv2" FORCE)
+-endif(EXIV2_INCLUDE_DIR AND NOT EXIV2_VERSION)
+-
+-set(EXIV2_LIBRARIES "${EXIV2_LIBRARY}")
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(Exiv2 REQUIRED_VARS EXIV2_LIBRARY EXIV2_INCLUDE_DIR
+- VERSION_VAR EXIV2_VERSION)
+-
+-mark_as_advanced(EXIV2_INCLUDE_DIR EXIV2_LIBRARY)
+-
diff --git a/graphics/krita/patches/patch-cmake_modules_FindLibExiv2.cmake b/graphics/krita/patches/patch-cmake_modules_FindLibExiv2.cmake
new file mode 100644
index 00000000000..8fb1c338e7e
--- /dev/null
+++ b/graphics/krita/patches/patch-cmake_modules_FindLibExiv2.cmake
@@ -0,0 +1,125 @@
+$NetBSD: patch-cmake_modules_FindLibExiv2.cmake,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- cmake/modules/FindLibExiv2.cmake.orig 2019-07-16 21:53:46.613301975 +0000
++++ cmake/modules/FindLibExiv2.cmake
+@@ -0,0 +1,115 @@
++#.rst:
++# FindLibExiv2
++# ------------
++#
++# Try to find the Exiv2 library.
++#
++# This will define the following variables:
++#
++# ``LibExiv2_FOUND``
++# System has LibExiv2.
++#
++# ``LibExiv2_VERSION``
++# The version of LibExiv2.
++#
++# ``LibExiv2_INCLUDE_DIRS``
++# This should be passed to target_include_directories() if
++# the target is not used for linking.
++#
++# ``LibExiv2_LIBRARIES``
++# The LibExiv2 library.
++# This can be passed to target_link_libraries() instead of
++# the ``LibExiv2::LibExiv2`` target
++#
++# If ``LibExiv2_FOUND`` is TRUE, the following imported target
++# will be available:
++#
++# ``LibExiv2::LibExiv2``
++# The Exiv2 library
++#
++# Since 5.53.0.
++#
++#=============================================================================
++# Copyright (c) 2018, Christophe Giboudeaux, <christophe@krop.fr>
++# Copyright (c) 2010, Alexander Neundorf, <neundorf@kde.org>
++# Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
++#
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions
++# are met:
++#
++# 1. Redistributions of source code must retain the copyright
++# notice, this list of conditions and the following disclaimer.
++# 2. Redistributions in binary form must reproduce the copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# 3. The name of the author may not be used to endorse or promote products
++# derived from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#=============================================================================
++
++find_package(PkgConfig QUIET)
++pkg_check_modules(PC_EXIV2 QUIET exiv2)
++
++find_path(LibExiv2_INCLUDE_DIRS NAMES exiv2/exif.hpp
++ HINTS ${PC_EXIV2_INCLUDEDIR}
++)
++
++find_library(LibExiv2_LIBRARIES NAMES exiv2 libexiv2
++ HINTS ${PC_EXIV2_LIBRARY_DIRS}
++)
++
++set(LibExiv2_VERSION ${PC_EXIV2_VERSION})
++
++if(NOT LibExiv2_VERSION AND DEFINED LibExiv2_INCLUDE_DIRS)
++ # With exiv >= 0.27, the version #defines are in exv_conf.h instead of version.hpp
++ foreach(_exiv2_version_file "version.hpp" "exv_conf.h")
++ if(EXISTS "${LibExiv2_INCLUDE_DIRS}/exiv2/${_exiv2_version_file}")
++ file(READ "${LibExiv2_INCLUDE_DIRS}/exiv2/${_exiv2_version_file}" _exiv_version_file_content)
++ string(REGEX MATCH "#define EXIV2_MAJOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MAJOR_VERSION_MATCH ${_exiv_version_file_content})
++ string(REGEX MATCH "#define EXIV2_MINOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MINOR_VERSION_MATCH ${_exiv_version_file_content})
++ string(REGEX MATCH "#define EXIV2_PATCH_VERSION[ ]+\\([0-9]+\\)" EXIV2_PATCH_VERSION_MATCH ${_exiv_version_file_content})
++ if(EXIV2_MAJOR_VERSION_MATCH)
++ string(REGEX REPLACE ".*_MAJOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_MAJOR_VERSION ${EXIV2_MAJOR_VERSION_MATCH})
++ string(REGEX REPLACE ".*_MINOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_MINOR_VERSION ${EXIV2_MINOR_VERSION_MATCH})
++ string(REGEX REPLACE ".*_PATCH_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_PATCH_VERSION ${EXIV2_PATCH_VERSION_MATCH})
++ endif()
++ endif()
++ endforeach()
++
++ set(LibExiv2_VERSION "${EXIV2_MAJOR_VERSION}.${EXIV2_MINOR_VERSION}.${EXIV2_PATCH_VERSION}")
++endif()
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(LibExiv2
++ FOUND_VAR LibExiv2_FOUND
++ REQUIRED_VARS LibExiv2_LIBRARIES LibExiv2_INCLUDE_DIRS
++ VERSION_VAR LibExiv2_VERSION
++)
++
++mark_as_advanced(LibExiv2_INCLUDE_DIRS LibExiv2_LIBRARIES)
++
++if(LibExiv2_FOUND AND NOT TARGET LibExiv2::LibExiv2)
++ add_library(LibExiv2::LibExiv2 UNKNOWN IMPORTED)
++ set_target_properties(LibExiv2::LibExiv2 PROPERTIES
++ IMPORTED_LOCATION "${LibExiv2_LIBRARIES}"
++ INTERFACE_INCLUDE_DIRECTORIES "${LibExiv2_INCLUDE_DIRS}"
++ )
++endif()
++
++include(FeatureSummary)
++set_package_properties(LibExiv2 PROPERTIES
++ URL "http://www.exiv2.org"
++ DESCRIPTION "Image metadata support"
++)
diff --git a/graphics/krita/patches/patch-libs_ui_CMakeLists.txt b/graphics/krita/patches/patch-libs_ui_CMakeLists.txt
new file mode 100644
index 00000000000..bbf4c861f86
--- /dev/null
+++ b/graphics/krita/patches/patch-libs_ui_CMakeLists.txt
@@ -0,0 +1,25 @@
+$NetBSD: patch-libs_ui_CMakeLists.txt,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- libs/ui/CMakeLists.txt.orig 2018-09-26 12:18:03.000000000 +0000
++++ libs/ui/CMakeLists.txt
+@@ -1,6 +1,5 @@
+ include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}/qtlockedfile
+- ${EXIV2_INCLUDE_DIR}
+ )
+
+ include_directories(SYSTEM
+@@ -541,7 +540,7 @@ add_library(kritaui SHARED ${kritaui_HEA
+ generate_export_header(kritaui BASE_NAME kritaui)
+
+ target_link_libraries(kritaui KF5::CoreAddons KF5::Completion KF5::I18n KF5::ItemViews Qt5::Network
+- kritaimpex kritacolor kritaimage kritalibbrush kritawidgets kritawidgetutils ${PNG_LIBRARIES} ${EXIV2_LIBRARIES}
++ kritaimpex kritacolor kritaimage kritalibbrush kritawidgets kritawidgetutils ${PNG_LIBRARIES} LibExiv2::LibExiv2
+ )
+
+ if (HAVE_QT_MULTIMEDIA)
diff --git a/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exif__io.cpp b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exif__io.cpp
new file mode 100644
index 00000000000..07b9979d9b8
--- /dev/null
+++ b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exif__io.cpp
@@ -0,0 +1,73 @@
+$NetBSD: patch-libs_ui_kisexiv2_kis__exif__io.cpp,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- libs/ui/kisexiv2/kis_exif_io.cpp.orig 2018-09-26 12:18:03.000000000 +0000
++++ libs/ui/kisexiv2/kis_exif_io.cpp
+@@ -438,11 +438,10 @@ bool KisExifIO::saveTo(KisMetaData::Stor
+ if (entry.value().asArray().size() > 0) {
+ creator = entry.value().asArray()[0];
+ }
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
++#if !EXIV2_TEST_VERSION(0,21,0)
+ v = kmdValueToExivValue(creator, Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
+ #else
+ v = kmdValueToExivValue(creator, exifKey.defaultTypeId());
+-
+ #endif
+ } else if (exivKey == "Exif.Photo.OECF") {
+ v = kmdOECFStructureToExifOECF(entry.value());
+@@ -456,13 +455,13 @@ bool KisExifIO::saveTo(KisMetaData::Stor
+ Q_ASSERT(entry.value().type() == KisMetaData::Value::LangArray);
+ QMap<QString, KisMetaData::Value> langArr = entry.value().asLangArray();
+ if (langArr.contains("x-default")) {
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
++#if !EXIV2_TEST_VERSION(0,21,0)
+ v = kmdValueToExivValue(langArr.value("x-default"), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
+ #else
+ v = kmdValueToExivValue(langArr.value("x-default"), exifKey.defaultTypeId());
+ #endif
+ } else if (langArr.size() > 0) {
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
++#if !EXIV2_TEST_VERSION(0,21,0)
+ v = kmdValueToExivValue(langArr.begin().value(), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
+ #else
+ v = kmdValueToExivValue(langArr.begin().value(), exifKey.defaultTypeId());
+@@ -470,7 +469,7 @@ bool KisExifIO::saveTo(KisMetaData::Stor
+ }
+ } else {
+ dbgMetaData << exifKey.tag();
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
++#if !EXIV2_TEST_VERSION(0,21,0)
+ v = kmdValueToExivValue(entry.value(), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
+ #else
+ v = kmdValueToExivValue(entry.value(), exifKey.defaultTypeId());
+@@ -487,7 +486,7 @@ bool KisExifIO::saveTo(KisMetaData::Stor
+ dbgMetaData << "exiv error " << e.what();
+ }
+ }
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17
++#if !EXIV2_TEST_VERSION(0,18,0)
+ Exiv2::DataBuf rawData = exifData.copy();
+ ioDevice->write((const char*) rawData.pData_, rawData.size_);
+ #else
+@@ -514,7 +513,7 @@ bool KisExifIO::loadFrom(KisMetaData::St
+ QByteArray arr = ioDevice->readAll();
+ Exiv2::ExifData exifData;
+ Exiv2::ByteOrder byteOrder;
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17
++#if !EXIV2_TEST_VERSION(0,18,0)
+ exifData.load((const Exiv2::byte*)arr.data(), arr.size());
+ byteOrder = exifData.byteOrder();
+ #else
+@@ -529,7 +528,6 @@ bool KisExifIO::loadFrom(KisMetaData::St
+ dbgKrita << "Received unknown exception trying to parse exiv data";
+ return false;
+ }
+-
+ #endif
+ dbgMetaData << "Byte order = " << byteOrder << ppVar(Exiv2::bigEndian) << ppVar(Exiv2::littleEndian);
+ dbgMetaData << "There are" << exifData.count() << " entries in the exif section";
diff --git a/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exiv2.h b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exiv2.h
new file mode 100644
index 00000000000..f1fe5e64f03
--- /dev/null
+++ b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__exiv2.h
@@ -0,0 +1,18 @@
+$NetBSD: patch-libs_ui_kisexiv2_kis__exiv2.h,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- libs/ui/kisexiv2/kis_exiv2.h.orig 2018-09-26 12:18:03.000000000 +0000
++++ libs/ui/kisexiv2/kis_exiv2.h
+@@ -21,7 +21,7 @@
+
+
+ #include <metadata/kis_meta_data_value.h>
+-#include <exiv2/value.hpp>
++#include <exiv2/exiv2.hpp>
+ #include "kritaui_export.h"
+
+ /// Convert an exiv value to a KisMetaData value
diff --git a/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__iptc__io.cpp b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__iptc__io.cpp
new file mode 100644
index 00000000000..7ddf380f0f7
--- /dev/null
+++ b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__iptc__io.cpp
@@ -0,0 +1,27 @@
+$NetBSD: patch-libs_ui_kisexiv2_kis__iptc__io.cpp,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- libs/ui/kisexiv2/kis_iptc_io.cpp.orig 2018-09-26 12:18:03.000000000 +0000
++++ libs/ui/kisexiv2/kis_iptc_io.cpp
+@@ -126,7 +126,7 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
+ }
+ }
+ }
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17
++#if !EXIV2_TEST_VERSION(0,18,0)
+ Exiv2::DataBuf rawData = iptcData.copy();
+ #else
+ Exiv2::DataBuf rawData = Exiv2::IptcParser::encode(iptcData);
+@@ -167,7 +167,7 @@ bool KisIptcIO::loadFrom(KisMetaData::St
+ ioDevice->open(QIODevice::ReadOnly);
+ QByteArray arr = ioDevice->readAll();
+ Exiv2::IptcData iptcData;
+-#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17
++#if !EXIV2_TEST_VERSION(0,18,0)
+ iptcData.load((const Exiv2::byte*)arr.data(), arr.size());
+ #else
+ Exiv2::IptcParser::decode(iptcData, (const Exiv2::byte*)arr.data(), arr.size());
diff --git a/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__xmp__io.cpp b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__xmp__io.cpp
new file mode 100644
index 00000000000..a86c42b46ec
--- /dev/null
+++ b/graphics/krita/patches/patch-libs_ui_kisexiv2_kis__xmp__io.cpp
@@ -0,0 +1,29 @@
+$NetBSD: patch-libs_ui_kisexiv2_kis__xmp__io.cpp,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- libs/ui/kisexiv2/kis_xmp_io.cpp.orig 2018-09-26 12:18:03.000000000 +0000
++++ libs/ui/kisexiv2/kis_xmp_io.cpp
+@@ -17,7 +17,6 @@
+ #include "kis_xmp_io.h"
+
+ #include <string>
+-#include <exiv2/xmp.hpp>
+
+ #include "kis_exiv2.h"
+
+@@ -277,9 +276,8 @@ bool KisXMPIO::loadFrom(KisMetaData::Sto
+ const Exiv2::XmpArrayValue* xav = dynamic_cast<const Exiv2::XmpArrayValue*>(value.get());
+ Q_ASSERT(xav);
+ QList<KisMetaData::Value> array;
+- for (std::vector< std::string >::const_iterator it = xav->value_.begin();
+- it != xav->value_.end(); ++it) {
+- QString value = it->c_str();
++ for (int i = 0; i < xav->size(); ++i) {
++ QString value = QString::fromStdString(xav->toString(i));
+ if (parser) {
+ array.push_back(parser->parse(value));
+ } else {
diff --git a/graphics/krita/patches/patch-plugins_impex_jpeg_CMakeLists.txt b/graphics/krita/patches/patch-plugins_impex_jpeg_CMakeLists.txt
new file mode 100644
index 00000000000..30c7bc44dea
--- /dev/null
+++ b/graphics/krita/patches/patch-plugins_impex_jpeg_CMakeLists.txt
@@ -0,0 +1,35 @@
+$NetBSD: patch-plugins_impex_jpeg_CMakeLists.txt,v 1.1 2019/07/17 00:39:57 nia Exp $
+
+Fix building against exiv2-0.27
+
+Upstream commit:
+https://github.com/KDE/krita/commit/6b6758bb37da4997be36a7e2a839b07278160559.patch
+
+--- plugins/impex/jpeg/CMakeLists.txt.orig 2018-09-26 12:18:03.000000000 +0000
++++ plugins/impex/jpeg/CMakeLists.txt
+@@ -4,7 +4,6 @@ set(ICCJPEG_SOURCE_DIR "${CMAKE_CURRENT_
+
+ include_directories(
+ ${ICCJPEG_SOURCE_DIR}
+- ${EXIV2_INCLUDE_DIR}
+ )
+
+ include_directories(SYSTEM
+@@ -25,7 +24,7 @@ set(kritajpegimport_SOURCES
+
+ add_library(kritajpegimport MODULE ${kritajpegimport_SOURCES})
+
+-target_link_libraries(kritajpegimport kritaui ${JPEG_LIBRARIES} ${LCMS2_LIBRARIES} ${EXIV2_LIBRARIES} )
++target_link_libraries(kritajpegimport kritaui ${JPEG_LIBRARIES} ${LCMS2_LIBRARIES} LibExiv2::LibExiv2 )
+
+ install(TARGETS kritajpegimport DESTINATION ${KRITA_PLUGIN_INSTALL_DIR})
+
+@@ -38,7 +37,7 @@ ki18n_wrap_ui(kritajpegexport_SOURCES ki
+
+ add_library(kritajpegexport MODULE ${kritajpegexport_SOURCES})
+
+-target_link_libraries(kritajpegexport kritaui kritaimpex ${JPEG_LIBRARIES} ${LCMS2_LIBRARIES} ${EXIV2_LIBRARIES} )
++target_link_libraries(kritajpegexport kritaui kritaimpex ${JPEG_LIBRARIES} ${LCMS2_LIBRARIES} LibExiv2::LibExiv2 )
+
+ install(TARGETS kritajpegexport DESTINATION ${KRITA_PLUGIN_INSTALL_DIR})
+ install( PROGRAMS krita_jpeg.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})