diff -Nru libkexiv2-4.14.3/debian/changelog libkexiv2-4.14.3/debian/changelog --- libkexiv2-4.14.3/debian/changelog 2015-07-01 14:01:47.000000000 +0000 +++ libkexiv2-4.14.3/debian/changelog 2015-09-08 15:46:22.000000000 +0000 @@ -1,4 +1,10 @@ -libkexiv2 (4:4.14.3-trusty~ppa4kde414) trusty; urgency=medium +libkexiv2 (4:4.14.3-trusty~ppa5kde414) trusty; urgency=medium + + * libkexiv2 source from digikam 4.13.0 + + -- Philip Johnsson Tue, 08 Sep 2015 15:34:17 +0200 + +libkexiv2 (4:4.14.3-trusty~ppa4) trusty; urgency=medium * rebuild against updated exiv2 diff -Nru libkexiv2-4.14.3/debian/patches/digikam_4.10.0_source.patch libkexiv2-4.14.3/debian/patches/digikam_4.10.0_source.patch --- libkexiv2-4.14.3/debian/patches/digikam_4.10.0_source.patch 2015-05-30 21:06:12.000000000 +0000 +++ libkexiv2-4.14.3/debian/patches/digikam_4.10.0_source.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,828 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - libkexiv2 (4:4.14.3-utopic~ppa2) utopic; urgency=medium - . - * libkexiv2 source from digikam 4.10.0 -Author: Philip Johnsson - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: https://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- libkexiv2-4.14.3.orig/CMakeLists.txt -+++ libkexiv2-4.14.3/CMakeLists.txt -@@ -1,48 +1,30 @@ --# =========================================================== - # --# This file is a part of digiKam project --# http://www.digikam.org -+# Copyright (c) 2010-2014, Gilles Caulier, - # --# @date 2006-09-15 --# @brief Exiv2 library interface for KDE --# --# @author Copyright (C) 2006-2014 by Gilles Caulier --# caulier dot gilles at gmail dot com --# --# This program is free software; you can redistribute it --# and/or modify it under the terms of the GNU General --# Public License as published by the Free Software Foundation; --# either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# ============================================================ -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - --PROJECT(libkexiv2) -+project(libkexiv2) - --MESSAGE(STATUS "----------------------------------------------------------------------------------") --MESSAGE(STATUS "Starting CMake configuration for: libkexiv2") -+message(STATUS "----------------------------------------------------------------------------------") -+message(STATUS "Starting CMake configuration for: libkexiv2") - --FIND_PACKAGE(KDE4 REQUIRED) -+find_package(KDE4 REQUIRED) - --INCLUDE(KDE4Defaults) --INCLUDE(MacroLibrary) --INCLUDE(MacroOptionalAddSubdirectory) --INCLUDE(MacroOptionalFindPackage) --INCLUDE(FindPackageHandleStandardArgs) -+include(KDE4Defaults) -+include(MacroLibrary) -+include(MacroOptionalAddSubdirectory) -+include(MacroOptionalFindPackage) -+include(FindPackageHandleStandardArgs) - --ADD_DEFINITIONS (${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS}) --INCLUDE_DIRECTORIES (${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}) -+add_definitions(${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS}) -+include_directories(${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}) - --SET(LIBKEXIV2_AREA_CODE_GENERAL 51003) --ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=${LIBKEXIV2_AREA_CODE_GENERAL}) -+set(LIBKEXIV2_AREA_CODE_GENERAL 51003) -+add_definitions(-DKDE_DEFAULT_DEBUG_AREA=${LIBKEXIV2_AREA_CODE_GENERAL}) - --SET(EXIV2_MIN_VERSION "0.21") --FIND_PACKAGE(Exiv2) -+set(EXIV2_MIN_VERSION "0.24") -+find_package(Exiv2) - MACRO_LOG_FEATURE(EXIV2_FOUND "Exiv2" "Required to build libkexiv2." "http://www.exiv2.org" - TRUE ${EXIV2_MIN_VERSION} "") - -@@ -74,11 +56,12 @@ MACRO_LOG_FEATURE(EXIV2_FOUND "Exiv2" "R - # 2.2.0 => 11.0.0 (Released with KDE 4.8.1) - Remove deprecated methods - # 2.3.0 => 11.1.0 (Released with KDE 4.8.2) - Add new static methods about XMP sidecar file management. - # 2.3.1 => 11.2.0 - Add new method to set specific XMP tag string -+# 2.4.0 => 11.3.0 - Add new method to access on text edit widget from AltLangStrEdit. - - # Library API version --SET(KEXIV2_LIB_MAJOR_VERSION "2") --SET(KEXIV2_LIB_MINOR_VERSION "3") --SET(KEXIV2_LIB_PATCH_VERSION "2") -+set(KEXIV2_LIB_MAJOR_VERSION "2") -+set(KEXIV2_LIB_MINOR_VERSION "4") -+set(KEXIV2_LIB_PATCH_VERSION "0") - - # Suffix to add at end of version string. Usual values are: - # "-git" : alpha code unstable from git. Do not use in production -@@ -87,53 +70,52 @@ SET(KEXIV2_LIB_PATCH_VERSION "2") - # "-beta3" : beta3 release. - # "-rc" : release candidate. - # "" : final relase. Can be used in production. --SET(KEXIV2_LIB_SUFFIX_VERSION "") -+set(KEXIV2_LIB_SUFFIX_VERSION "") - - # Library ABI version used by linker. - # For details : http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info --SET(KEXIV2_LIB_SO_CUR_VERSION "11") --SET(KEXIV2_LIB_SO_REV_VERSION "2") --SET(KEXIV2_LIB_SO_AGE_VERSION "0") -+set(KEXIV2_LIB_SO_CUR_VERSION "11") -+set(KEXIV2_LIB_SO_REV_VERSION "3") -+set(KEXIV2_LIB_SO_AGE_VERSION "0") - - # ======================================================= - # Set env. variables accordinly. - --SET(KEXIV2_LIB_VERSION_STRING "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}${KEXIV2_LIB_SUFFIX_VERSION}") --SET(KEXIV2_LIB_VERSION_ID "0x0${KEXIV2_LIB_MAJOR_VERSION}0${KEXIV2_LIB_MINOR_VERSION}0${KEXIV2_LIB_PATCH_VERSION}") --SET(KEXIV2_LIB_SO_VERSION_STRING "${KEXIV2_LIB_SO_CUR_VERSION}.${KEXIV2_LIB_SO_REV_VERSION}.${KEXIV2_LIB_SO_AGE_VERSION}") -+set(KEXIV2_LIB_VERSION_STRING "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}${KEXIV2_LIB_SUFFIX_VERSION}") -+set(KEXIV2_LIB_VERSION_ID "0x0${KEXIV2_LIB_MAJOR_VERSION}0${KEXIV2_LIB_MINOR_VERSION}0${KEXIV2_LIB_PATCH_VERSION}") -+set(KEXIV2_LIB_SO_VERSION_STRING "${KEXIV2_LIB_SO_CUR_VERSION}.${KEXIV2_LIB_SO_REV_VERSION}.${KEXIV2_LIB_SO_AGE_VERSION}") - - # ======================================================= - --IF (EXIV2_FOUND) -- ADD_SUBDIRECTORY(libkexiv2) -+if(EXIV2_FOUND) -+ -+ add_subdirectory(libkexiv2) -+ -+ if(KDE4_BUILD_TESTS) -+ MACRO_OPTIONAL_ADD_SUBDIRECTORY(tests) -+ endif() -+ -+ include(CMakePackageConfigHelpers) -+ -+ CONFIGURE_PACKAGE_CONFIG_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/libkexiv2-config.cmake.in libkexiv2-config.cmake -+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" -+ PATH_VARS INCLUDE_INSTALL_DIR -+ NO_CHECK_REQUIRED_COMPONENTS_MACRO) -+ -+ WRITE_BASIC_PACKAGE_VERSION_FILE(libkexiv2-config-version.cmake -+ VERSION "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}" -+ COMPATIBILITY SameMajorVersion) -+ install(EXPORT Libkexiv2 -+ DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" -+ NAMESPACE Libkexiv2:: -+ FILE libkexiv2-export.cmake) -+ -+ install(FILES -+ ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config.cmake -+ ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config-version.cmake -+ DESTINATION -+ "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}") - -- IF(KDE4_BUILD_TESTS) -- MACRO_OPTIONAL_ADD_SUBDIRECTORY(tests) -- ENDIF(KDE4_BUILD_TESTS) -- -- INCLUDE(CMakePackageConfigHelpers) -- CONFIGURE_PACKAGE_CONFIG_FILE(libkexiv2-config.cmake.in libkexiv2-config.cmake -- INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" -- PATH_VARS INCLUDE_INSTALL_DIR -- NO_CHECK_REQUIRED_COMPONENTS_MACRO) -- WRITE_BASIC_PACKAGE_VERSION_FILE(libkexiv2-config-version.cmake -- VERSION "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}" -- COMPATIBILITY SameMajorVersion) -- INSTALL(EXPORT Libkexiv2 -- DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" -- NAMESPACE Libkexiv2:: -- FILE libkexiv2-export.cmake) -- INSTALL(FILES -- ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config.cmake -- ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config-version.cmake -- DESTINATION -- "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" -- ) -- IF(NOT WIN32) -- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkexiv2.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc) -- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkexiv2.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.lsm) -- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ) -- ENDIF(NOT WIN32) --ENDIF (EXIV2_FOUND) -+endif() - - MACRO_DISPLAY_FEATURE_LOG() ---- libkexiv2-4.14.3.orig/NEWS -+++ libkexiv2-4.14.3/NEWS -@@ -24,7 +24,7 @@ - * cleanupExiv2(). - Added a new method to load image data from a byte array. - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 166424: Crash when editing Caption with Digikam4 SVN. - - 0.2.0 - Released with KDE 4.1.0 -@@ -35,7 +35,7 @@ Split methods to separate files to provi - New method to fix orientation of a QImage accordingly with Exif orientation tag. - Moved from extragear/libs to kdegraphics/libs - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 146864: Lesser XMP support in digiKam. - - 0.1.7 -@@ -44,7 +44,7 @@ Bugs fixed from B.K.O (http://bugs.kde.o - - API changed: Added a version method to get runtime library version. - - Fix RemoveIptcTag() to handle all redondant Iptc tags at the same time. - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 157552: negative altitudes are not shown in metadata GPS sidebar - - 0.1.6 -@@ -52,7 +52,7 @@ Bugs fixed from B.K.O (http://bugs.kde.o - - API Changed : Kexiv2 destructor is now virtual. - Krazy Code Checker fix (http://www.englishbreakfastnetwork.org/krazy) - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 137750: color mode2 nikon d70s not recognized as adobe rgb - 002 ==> 149267: digiKam crashes after finding gif,avi,txt and so on. - 003 ==> 148182: Iptc.Application2.Keywords appends always the 0-byte. -@@ -71,7 +71,7 @@ New features - - API changed: added 4 new static methods to get Exif/Iptc tags description/title. - moved depreceate protected methods used by digiKam core to private. - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 144604: Rotation causes Exif data corruption. GPS data fix - - General : Make size of icons used in album icon view more configurable using a slider -@@ -85,13 +85,13 @@ New features - - added support for exiv2 from svn (next 0.14.0 release) - - API changed: added printExiv2ExceptionError to manage Exiv2 C++ Exception error message - --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 142564: digiKam-signature in iptc and exif tags. - 002 ==> 140297: GPS kipi plugin truncates input coordinates, introducing inacuracy. - - 0.1.1 - ------------------------------------------------------------------------ --Bugs fixed from B.K.O (http://bugs.kde.org): -+Bugs fixed from bug (http://bugs.kde.org): - 001 ==> 141980: digiKam crash when rescan certain files exiv2. - - 0.1.0 ---- /dev/null -+++ libkexiv2-4.14.3/cmake/templates/libkexiv2-config.cmake.in -@@ -0,0 +1,9 @@ -+@PACKAGE_INIT@ -+set_and_check(libkexiv2_INCLUDE_DIR @PACKAGE_INCLUDE_INSTALL_DIR@) -+ -+if(NOT TARGET Libkexiv2::kexiv2) -+ include(${CMAKE_CURRENT_LIST_DIR}/libkexiv2-export.cmake) -+endif() -+ -+set(libkexiv2_LIBRARY Libkexiv2::kexiv2) -+set(libkexiv2_LIBRARIES ${libkexiv2_LIBRARY}) ---- /dev/null -+++ libkexiv2-4.14.3/cmake/templates/libkexiv2.lsm.cmake.in -@@ -0,0 +1,15 @@ -+Begin4 -+Title: libkexiv2 -+Version: ${KEXIV2_LIB_VERSION_STRING} -+Entered-date: 2007-05-08 -+Description: A C++ library to manipulate EXIF/IPTC/XMP metadata using Exiv2 library. This library is used by digiKam and kipi-plugins. -+Keywords: kde image jpeg raw tiff png exif iptc xmp digikam kipi-plugins -+Author: caulier dot gilles at gmail dot com (Gilles Caulier) -+ marcel dot wiesweg at gmx dot de (Marcel Wiesweg) -+Maintained-by: -+Primary-site: http://www.digikam.org -+Alternate-site: http://www.digikam.org -+Original-site: -+Platforms: Linux and other Unices, MacOs-X, Win32. Needs KDE 4.x -+Copying-policy: GPL -+End ---- /dev/null -+++ libkexiv2-4.14.3/cmake/templates/libkexiv2.pc.cmake.in -@@ -0,0 +1,12 @@ -+prefix=${CMAKE_INSTALL_PREFIX} -+exec_prefix=${BIN_INSTALL_DIR} -+libdir=${LIB_INSTALL_DIR} -+includedir=${INCLUDE_INSTALL_DIR} -+ -+Name: libkexiv2 -+Description: A C++ library to manipulate EXIF/IPTC/XMP metadata using Exiv2 library. This library is used by digiKam and kipi-plugins. -+URL: http://www.digikam.org -+Requires: -+Version: ${KEXIV2_LIB_VERSION_STRING} -+Libs: -L${LIB_INSTALL_DIR} -lkexiv2 -+Cflags: -I${INCLUDE_INSTALL_DIR} ---- libkexiv2-4.14.3.orig/libkexiv2/CMakeLists.txt -+++ libkexiv2-4.14.3/libkexiv2/CMakeLists.txt -@@ -1,43 +1,25 @@ --# =========================================================== - # --# This file is a part of digiKam project --# http://www.digikam.org -+# Copyright (c) 2010-2014, Gilles Caulier, - # --# @date 2006-09-15 --# @brief Exiv2 library interface for KDE --# --# @author Copyright (C) 2006-2014 by Gilles Caulier --# caulier dot gilles at gmail dot com --# --# This program is free software; you can redistribute it --# and/or modify it under the terms of the GNU General --# Public License as published by the Free Software Foundation; --# either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# ============================================================ -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - --INCLUDE_DIRECTORIES(${EXIV2_INCLUDE_DIR}) -+include_directories(${EXIV2_INCLUDE_DIR}) - --ADD_DEFINITIONS(${EXIV2_DEFINITIONS}) --ADD_DEFINITIONS(${KDE4_ENABLE_EXCEPTIONS}) -+add_definitions(${EXIV2_DEFINITIONS}) -+add_definitions(${KDE4_ENABLE_EXCEPTIONS}) - --IF( WIN32 ) -- ADD_DEFINITIONS( -DEXV_HAVE_DLL ) --ENDIF( WIN32 ) -+if(WIN32) -+ add_definitions(-DEXV_HAVE_DLL) -+endif() - --CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h) -+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) - - # This was used to enable catching of exceptions thrown by libexiv2. - # We use now #pragma GCC visibility push(default) around the headers - #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default") - --SET(kexiv2_LIB_SRCS kexiv2.cpp -+set(kexiv2_LIB_SRCS kexiv2.cpp - kexiv2_p.cpp - kexiv2image.cpp - kexiv2comments.cpp -@@ -55,23 +37,24 @@ SET(kexiv2_LIB_SRCS kexiv2.cpp - - KDE4_ADD_LIBRARY(kexiv2 SHARED ${kexiv2_LIB_SRCS}) - --TARGET_LINK_LIBRARIES(kexiv2 ${KDE4_KDEUI_LIBS} ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY} -+target_link_libraries(kexiv2 ${KDE4_KDEUI_LIBS} ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY} - ${QT_QTXML_LIBRARY} ${EXIV2_LIBRARIES}) - --IF( WIN32 ) -+if(WIN32) - TARGET_LINK_LIBRARIES( kexiv2 ${EXPAT_LIBRARIES} ) --ENDIF( WIN32 ) -+endif() - --SET_TARGET_PROPERTIES(kexiv2 PROPERTIES VERSION ${KEXIV2_LIB_SO_VERSION_STRING} -+set_target_properties(kexiv2 PROPERTIES VERSION ${KEXIV2_LIB_SO_VERSION_STRING} - SOVERSION ${KEXIV2_LIB_SO_CUR_VERSION}) - --INSTALL(TARGETS kexiv2 EXPORT Libkexiv2 ${INSTALL_TARGETS_DEFAULT_ARGS} ) -+install(TARGETS kexiv2 EXPORT Libkexiv2 ${INSTALL_TARGETS_DEFAULT_ARGS} ) - --INSTALL(FILES topicset.iptc-subjectcode.xml DESTINATION ${DATA_INSTALL_DIR}/libkexiv2/data) -+install(FILES topicset.iptc-subjectcode.xml DESTINATION ${DATA_INSTALL_DIR}/libkexiv2/data) - - # Check if compilation is done through digiKam SC or not. If yes, do not install header files. --IF(NOT DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS) -- INSTALL(FILES kexiv2.h -+if(NOT DIGIKAMSC_COMPILE_LIBKEXIV2) -+ -+ install(FILES kexiv2.h - kexiv2data.h - kexiv2previews.h - libkexiv2_export.h -@@ -84,4 +67,11 @@ IF(NOT DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS - DESTINATION ${INCLUDE_INSTALL_DIR}/libkexiv2 - COMPONENT Devel - ) --ENDIF() -+ -+ if(NOT WIN32) -+ configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/libkexiv2.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc) -+ configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/libkexiv2.lsm.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.lsm) -+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -+ endif() -+ -+endif() ---- libkexiv2-4.14.3.orig/libkexiv2/altlangstredit.cpp -+++ libkexiv2-4.14.3/libkexiv2/altlangstredit.cpp -@@ -7,7 +7,7 @@ - * @date 2009-06-15 - * @brief multi-languages string editor - * -- * @author Copyright (C) 2009-2013 by Gilles Caulier -+ * @author Copyright (C) 2009-2014 by Gilles Caulier - * caulier dot gilles at gmail dot com - * - * This program is free software; you can redistribute it -@@ -534,4 +534,9 @@ void AltLangStrEdit::changeEvent(QEvent* - QWidget::changeEvent(e); - } - -+MsgTextEdit* AltLangStrEdit::textEdit() const -+{ -+ return d->valueEdit; -+} -+ - } // namespace KExiv2Iface ---- libkexiv2-4.14.3.orig/libkexiv2/altlangstredit.h -+++ libkexiv2-4.14.3/libkexiv2/altlangstredit.h -@@ -7,7 +7,7 @@ - * @date 2009-06-15 - * @brief multi-languages string editor - * -- * @author Copyright (C) 2009-2012 by Gilles Caulier -+ * @author Copyright (C) 2009-2014 by Gilles Caulier - * caulier dot gilles at gmail dot com - * - * This program is free software; you can redistribute it -@@ -39,6 +39,8 @@ - namespace KExiv2Iface - { - -+class MsgTextEdit; -+ - class KEXIV2_EXPORT AltLangStrEdit : public QWidget - { - Q_OBJECT -@@ -79,6 +81,8 @@ public: - */ - void addCurrent(); - -+ MsgTextEdit* textEdit() const; -+ - Q_SIGNALS: - - /** ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2.cpp -+++ libkexiv2-4.14.3/libkexiv2/kexiv2.cpp -@@ -28,10 +28,16 @@ - #include "kexiv2.h" - #include "kexiv2_p.h" - -+// KDE includes -+ -+#include -+ - // Local includes - - #include "version.h" - -+static const KCatalogLoader loader("libkexiv2"); -+ - namespace KExiv2Iface - { - -@@ -104,6 +110,7 @@ bool KExiv2::initializeExiv2() - registerXmpNameSpace(QString("http://ns.adobe.com/lightroom/1.0/"), QString("lr")); - registerXmpNameSpace(QString("http://www.digikam.org/ns/kipi/1.0/"), QString("kipi")); - registerXmpNameSpace(QString("http://ns.microsoft.com/photo/1.2/"), QString("MP")); -+ registerXmpNameSpace(QString("http://ns.acdsee.com/iptc/1.0/"), QString("acdsee")); - - #endif // _XMP_SUPPORT_ - -@@ -118,6 +125,7 @@ bool KExiv2::cleanupExiv2() - unregisterXmpNameSpace(QString("http://ns.adobe.com/lightroom/1.0/")); - unregisterXmpNameSpace(QString("http://www.digikam.org/ns/kipi/1.0/")); - unregisterXmpNameSpace(QString("http://ns.microsoft.com/photo/1.2/")); -+ unregisterXmpNameSpace(QString("http://ns.acdsee.com/iptc/1.0/")); - - Exiv2::XmpParser::terminate(); - -@@ -399,7 +407,7 @@ bool KExiv2::save(const QString& imageFi - regularFilePath = givenFileInfo.canonicalPath();// Walk all the symlinks - } - -- // NOTE: see B.K.O #137770 & #138540 : never touch the file if is read only. -+ // NOTE: see bug #137770 & #138540 : never touch the file if is read only. - QFileInfo finfo(regularFilePath); - QFileInfo dinfo(finfo.path()); - if (!dinfo.isWritable()) ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2.h -+++ libkexiv2-4.14.3/libkexiv2/kexiv2.h -@@ -170,14 +170,14 @@ public: - /** Return true if Exiv2 library initialization is done properly. - This method must be called before using libkexiv2 with multithreading. - It initialize several non re-entrancy code from Adobe XMP SDK -- See B.K.O #166424 for details. Call cleanupExiv2() to clean things up later. -+ See bug #166424 for details. Call cleanupExiv2() to clean things up later. - */ - static bool initializeExiv2(); - - /** Return true if Exiv2 library memory allocations are cleaned properly. - This method must be called after using libkexiv2 with multithreading. - It cleans up memory used by Adobe XMP SDK -- See B.K.O #166424 for details. -+ See bug #166424 for details. - */ - static bool cleanupExiv2(); - ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2_p.cpp -+++ libkexiv2-4.14.3/libkexiv2/kexiv2_p.cpp -@@ -172,7 +172,7 @@ bool KExiv2::Private::saveOperations(con - { - Exiv2::AccessMode mode; - bool wroteComment = false, wroteEXIF = false, wroteIPTC = false, wroteXMP = false; -- -+ - // We need to load target file metadata to merge with new one. It's mandatory with TIFF format: - // like all tiff file structure is based on Exif. - image->readMetadata(); -@@ -187,6 +187,8 @@ bool KExiv2::Private::saveOperations(con - wroteComment = true; - } - -+ kDebug() << "wroteComment: " << wroteComment; -+ - // Exif metadata ---------------------------------- - - mode = image->checkMode(Exiv2::mdExif); -@@ -245,6 +247,8 @@ bool KExiv2::Private::saveOperations(con - wroteEXIF = true; - } - -+ kDebug() << "wroteEXIF: " << wroteEXIF; -+ - // Iptc metadata ---------------------------------- - - mode = image->checkMode(Exiv2::mdIptc); -@@ -255,6 +259,8 @@ bool KExiv2::Private::saveOperations(con - wroteIPTC = true; - } - -+ kDebug() << "wroteIPTC: " << wroteIPTC; -+ - // Xmp metadata ----------------------------------- - - mode = image->checkMode(Exiv2::mdXmp); -@@ -267,6 +273,8 @@ bool KExiv2::Private::saveOperations(con - #endif - } - -+ kDebug() << "wroteXMP: " << wroteXMP; -+ - if (!wroteComment && !wroteEXIF && !wroteIPTC && !wroteXMP) - { - kDebug() << "Writing metadata is not supported for file" << finfo.fileName(); -@@ -274,8 +282,7 @@ bool KExiv2::Private::saveOperations(con - } - else if (!wroteEXIF || !wroteIPTC || !wroteXMP) - { -- kDebug() << "Support for writing metadata is limited for file" << finfo.fileName() -- << "EXIF" << wroteEXIF << "IPTC" << wroteIPTC << "XMP" << wroteXMP; -+ kDebug() << "Support for writing metadata is limited for file" << finfo.fileName(); - } - - if (!updateFileTimeStamp) -@@ -297,6 +304,8 @@ bool KExiv2::Private::saveOperations(con - { - ::utime(QFile::encodeName(filePath), &ut); - } -+ -+ kDebug() << "File time stamp restored"; - } - else - { ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2exif.cpp -+++ libkexiv2-4.14.3/libkexiv2/kexiv2exif.cpp -@@ -834,7 +834,7 @@ QString KExiv2::getExifTagString(const c - - if (it != exifData.end()) - { -- // See B.K.O #184156 comment #13 -+ // See bug #184156 comment #13 - std::string val = it->print(&exifData); - QString tagValue = QString::fromLocal8Bit(val.c_str()); - -@@ -931,7 +931,7 @@ bool KExiv2::rotateExifQImage(QImage& im - { - QMatrix matrix = RotationMatrix::toMatrix(orientation); - -- if ((orientation != ORIENTATION_NORMAL) || (orientation != ORIENTATION_UNSPECIFIED)) -+ if ((orientation != ORIENTATION_NORMAL) && (orientation != ORIENTATION_UNSPECIFIED)) - { - image = image.transformed(matrix); - return true; ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2image.cpp -+++ libkexiv2-4.14.3/libkexiv2/kexiv2image.cpp -@@ -47,7 +47,7 @@ bool KExiv2::setImageProgramId(const QSt - - d->exifMetadata()["Exif.Image.ProcessingSoftware"] = std::string(software.toAscii().constData()); - -- // See B.K.O #142564: Check if Exif.Image.Software already exist. If yes, do not touch this tag. -+ // See bug #142564: Check if Exif.Image.Software already exist. If yes, do not touch this tag. - - if (!d->exifMetadata().empty()) - { -@@ -196,7 +196,7 @@ bool KExiv2::setImageDimensions(const QS - { - // Set Exif values. - -- // NOTE: see B.K.O #144604: need to cast to record an unsigned integer value. -+ // NOTE: see bug #144604: need to cast to record an unsigned integer value. - d->exifMetadata()["Exif.Image.ImageWidth"] = static_cast(size.width()); - d->exifMetadata()["Exif.Image.ImageLength"] = static_cast(size.height()); - d->exifMetadata()["Exif.Photo.PixelXDimension"] = static_cast(size.width()); -@@ -769,6 +769,7 @@ bool KExiv2::setImageDateTime(const QDat - const std::string &exifdatetime(dateTime.toString(QString("yyyy:MM:dd hh:mm:ss")).toAscii().constData()); - d->exifMetadata()["Exif.Image.DateTime"] = exifdatetime; - d->exifMetadata()["Exif.Photo.DateTimeOriginal"] = exifdatetime; -+ d->exifMetadata()["Exif.Image.PreviewDateTime"] = exifdatetime; - if(setDateTimeDigitized) - d->exifMetadata()["Exif.Photo.DateTimeDigitized"] = exifdatetime; - ---- libkexiv2-4.14.3.orig/libkexiv2/kexiv2previews.cpp -+++ libkexiv2-4.14.3/libkexiv2/kexiv2previews.cpp -@@ -164,14 +164,14 @@ int KExiv2Previews::height(int index) - - QString KExiv2Previews::mimeType(int index) - { -- if (index < 0 || index >= size()) return 0; -+ if (index < 0 || index >= size()) return QString(); - - return QString::fromLatin1(d->properties[index].mimeType_.c_str()); - } - - QString KExiv2Previews::fileExtension(int index) - { -- if (index < 0 || index >= size()) return 0; -+ if (index < 0 || index >= size()) return QString(); - - return QString::fromLatin1(d->properties[index].extension_.c_str()); - } ---- libkexiv2-4.14.3.orig/libkexiv2/rotationmatrix.cpp -+++ libkexiv2-4.14.3/libkexiv2/rotationmatrix.cpp -@@ -7,7 +7,7 @@ - * @date 2009-08-03 - * @brief Tools for combining rotation operations - * -- * @author Copyright (C) 2006-2012 by Gilles Caulier -+ * @author Copyright (C) 2006-2015 by Gilles Caulier - * caulier dot gilles at gmail dot com - * @author Copyright (C) 2004-2012 by Marcel Wiesweg - * marcel dot wiesweg at gmx dot de -@@ -65,9 +65,9 @@ namespace KExiv2Iface - (I did not proof that mathematically, but empirically) - - static const RotationMatrix identity; //( 1, 0, 0, 1) -- static const RotationMatrix rotate90; //( 0, -1, 1, 0) -+ static const RotationMatrix rotate90; //( 0, 1, -1, 0) - static const RotationMatrix rotate180; //(-1, 0, 0, -1) -- static const RotationMatrix rotate270; //( 0, 1, -1, 0) -+ static const RotationMatrix rotate270; //( 0, -1, 1, 0) - static const RotationMatrix flipHorizontal; //(-1, 0, 0, 1) - static const RotationMatrix flipVertical; //( 1, 0, 0, -1) - static const RotationMatrix rotate90flipHorizontal; //( 0, 1, 1, 0), first rotate, then flip -@@ -79,9 +79,9 @@ namespace Matrix - { - - static const RotationMatrix identity ( 1, 0, 0, 1); --static const RotationMatrix rotate90 ( 0, -1, 1, 0); -+static const RotationMatrix rotate90 ( 0, 1, -1, 0); - static const RotationMatrix rotate180 (-1, 0, 0, -1); --static const RotationMatrix rotate270 ( 0, 1, -1, 0); -+static const RotationMatrix rotate270 ( 0, -1, 1, 0); - static const RotationMatrix flipHorizontal (-1, 0, 0, 1); - static const RotationMatrix flipVertical ( 1, 0, 0, -1); - static const RotationMatrix rotate90flipHorizontal ( 0, 1, 1, 0); -@@ -104,6 +104,7 @@ RotationMatrix matrix(RotationMatrix::Tr - case RotationMatrix::Rotate270: - return rotate270; - } -+ - return identity; - } - -@@ -130,6 +131,7 @@ RotationMatrix matrix(KExiv2::ImageOrien - case KExiv2::ORIENTATION_UNSPECIFIED: - return identity; - } -+ - return identity; - } - ---- libkexiv2-4.14.3.orig/libkexiv2/rotationmatrix.h -+++ libkexiv2-4.14.3/libkexiv2/rotationmatrix.h -@@ -7,7 +7,7 @@ - * @date 2009-08-03 - * @brief Tools for combining rotation operations - * -- * @author Copyright (C) 2006-2012 by Gilles Caulier -+ * @author Copyright (C) 2006-2015 by Gilles Caulier - * caulier dot gilles at gmail dot com - * @author Copyright (C) 2004-2012 by Marcel Wiesweg - * marcel dot wiesweg at gmx dot de ---- /dev/null -+++ libkexiv2-4.14.3/libkexiv2/version.h.cmake.in -@@ -0,0 +1,32 @@ -+/** =========================================================== -+ * -+ * This file is a part of digiKam project -+ * http://www.digikam.org -+ * -+ * @date 2007-02-06 -+ * @brief Exiv2 library interface for KDE -+ * -+ * @author Copyright (C) 2007-2012 by Gilles Caulier -+ * caulier dot gilles at gmail dot com -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General -+ * Public License as published by the Free Software Foundation; -+ * either version 2, or (at your option) -+ * any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * ============================================================ */ -+ -+#ifndef KEXIV2_VERSION_H -+#define KEXIV2_VERSION_H -+ -+static const char kexiv2_version[] = "${KEXIV2_LIB_VERSION_STRING}"; -+ -+#define KEXIV2_VERSION ${KEXIV2_LIB_VERSION_ID} -+ -+#endif // KEXIV2_VERSION_H ---- libkexiv2-4.14.3.orig/tests/CMakeLists.txt -+++ libkexiv2-4.14.3/tests/CMakeLists.txt -@@ -1,53 +1,35 @@ --# =========================================================== - # --# This file is a part of digiKam project --# http://www.digikam.org -+# Copyright (c) 2010-2014, Gilles Caulier, - # --# @date 2006-09-15 --# @brief Exiv2 library interface for KDE --# --# @author Copyright (C) 2006-2012 by Gilles Caulier --# caulier dot gilles at gmail dot com --# --# This program is free software; you can redistribute it --# and/or modify it under the terms of the GNU General --# Public License as published by the Free Software Foundation; --# either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# ============================================================ -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - --INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../libkexiv2) -+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../libkexiv2) - --SET(setiptcpreview_SRCS setiptcpreview.cpp) -+set(setiptcpreview_SRCS setiptcpreview.cpp) - KDE4_ADD_EXECUTABLE(setiptcpreview NOGUI ${setiptcpreview_SRCS}) --TARGET_LINK_LIBRARIES(setiptcpreview kexiv2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(setiptcpreview kexiv2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) - --SET(loadfromba_SRCS loadfromba.cpp) -+set(loadfromba_SRCS loadfromba.cpp) - KDE4_ADD_EXECUTABLE(loadfromba NOGUI ${loadfromba_SRCS}) --TARGET_LINK_LIBRARIES(loadfromba kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(loadfromba kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) - --SET(erasetag_SRCS erasetag.cpp) -+set(erasetag_SRCS erasetag.cpp) - KDE4_ADD_EXECUTABLE(erasetag NOGUI ${erasetag_SRCS}) --TARGET_LINK_LIBRARIES(erasetag kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(erasetag kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) - --SET(printtagslist_SRCS printtagslist.cpp) -+set(printtagslist_SRCS printtagslist.cpp) - KDE4_ADD_EXECUTABLE(printtagslist NOGUI ${printtagslist_SRCS}) --TARGET_LINK_LIBRARIES(printtagslist kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(printtagslist kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) - --SET(usexmpsidecar_SRCS usexmpsidecar.cpp) -+set(usexmpsidecar_SRCS usexmpsidecar.cpp) - KDE4_ADD_EXECUTABLE(usexmpsidecar NOGUI ${usexmpsidecar_SRCS}) --TARGET_LINK_LIBRARIES(usexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(usexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) - --SET(readimagewritexmpsidecar_SRCS readimagewritexmpsidecar.cpp) -+set(readimagewritexmpsidecar_SRCS readimagewritexmpsidecar.cpp) - KDE4_ADD_EXECUTABLE(readimagewritexmpsidecar NOGUI ${readimagewritexmpsidecar_SRCS}) --TARGET_LINK_LIBRARIES(readimagewritexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(readimagewritexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) - --SET(setxmpface_SRCS setxmpface.cpp) -+set(setxmpface_SRCS setxmpface.cpp) - KDE4_ADD_EXECUTABLE(setxmpface NOGUI ${setxmpface_SRCS}) --TARGET_LINK_LIBRARIES(setxmpface kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) -+target_link_libraries(setxmpface kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) diff -Nru libkexiv2-4.14.3/debian/patches/digikam-4.13.0-source.patch libkexiv2-4.14.3/debian/patches/digikam-4.13.0-source.patch --- libkexiv2-4.14.3/debian/patches/digikam-4.13.0-source.patch 1970-01-01 00:00:00.000000000 +0000 +++ libkexiv2-4.14.3/debian/patches/digikam-4.13.0-source.patch 2015-09-08 13:33:59.000000000 +0000 @@ -0,0 +1,1004 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + libkexiv2 (4:4.14.3-trusty~ppa4) trusty; urgency=medium + . + * rebuild against updated exiv2 +Author: Philip Johnsson + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: + +--- libkexiv2-4.14.3.orig/CMakeLists.txt ++++ libkexiv2-4.14.3/CMakeLists.txt +@@ -1,48 +1,31 @@ +-# =========================================================== + # +-# This file is a part of digiKam project +-# http://www.digikam.org ++# Copyright (c) 2010-2015, Gilles Caulier, + # +-# @date 2006-09-15 +-# @brief Exiv2 library interface for KDE +-# +-# @author Copyright (C) 2006-2014 by Gilles Caulier +-# caulier dot gilles at gmail dot com +-# +-# This program is free software; you can redistribute it +-# and/or modify it under the terms of the GNU General +-# Public License as published by the Free Software Foundation; +-# either version 2, or (at your option) +-# any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# ============================================================ ++# Redistribution and use is allowed according to the terms of the BSD license. ++# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +-PROJECT(libkexiv2) ++cmake_minimum_required(VERSION 2.8.9) ++project(libkexiv2) + +-MESSAGE(STATUS "----------------------------------------------------------------------------------") +-MESSAGE(STATUS "Starting CMake configuration for: libkexiv2") ++message(STATUS "----------------------------------------------------------------------------------") ++message(STATUS "Starting CMake configuration for: libkexiv2") + +-FIND_PACKAGE(KDE4 REQUIRED) ++find_package(KDE4 REQUIRED) + +-INCLUDE(KDE4Defaults) +-INCLUDE(MacroLibrary) +-INCLUDE(MacroOptionalAddSubdirectory) +-INCLUDE(MacroOptionalFindPackage) +-INCLUDE(FindPackageHandleStandardArgs) ++include(KDE4Defaults) ++include(MacroLibrary) ++include(MacroOptionalAddSubdirectory) ++include(MacroOptionalFindPackage) ++include(FindPackageHandleStandardArgs) + +-ADD_DEFINITIONS (${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS}) +-INCLUDE_DIRECTORIES (${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}) ++add_definitions(${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS}) ++include_directories(${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}) + +-SET(LIBKEXIV2_AREA_CODE_GENERAL 51003) +-ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=${LIBKEXIV2_AREA_CODE_GENERAL}) ++set(LIBKEXIV2_AREA_CODE_GENERAL 51003) ++add_definitions(-DKDE_DEFAULT_DEBUG_AREA=${LIBKEXIV2_AREA_CODE_GENERAL}) + +-SET(EXIV2_MIN_VERSION "0.21") +-FIND_PACKAGE(Exiv2) ++set(EXIV2_MIN_VERSION "0.24") ++find_package(Exiv2) + MACRO_LOG_FEATURE(EXIV2_FOUND "Exiv2" "Required to build libkexiv2." "http://www.exiv2.org" + TRUE ${EXIV2_MIN_VERSION} "") + +@@ -74,11 +57,12 @@ MACRO_LOG_FEATURE(EXIV2_FOUND "Exiv2" "R + # 2.2.0 => 11.0.0 (Released with KDE 4.8.1) - Remove deprecated methods + # 2.3.0 => 11.1.0 (Released with KDE 4.8.2) - Add new static methods about XMP sidecar file management. + # 2.3.1 => 11.2.0 - Add new method to set specific XMP tag string ++# 2.4.0 => 11.3.0 - Add new method to access on text edit widget from AltLangStrEdit. + + # Library API version +-SET(KEXIV2_LIB_MAJOR_VERSION "2") +-SET(KEXIV2_LIB_MINOR_VERSION "3") +-SET(KEXIV2_LIB_PATCH_VERSION "2") ++set(KEXIV2_LIB_MAJOR_VERSION "2") ++set(KEXIV2_LIB_MINOR_VERSION "4") ++set(KEXIV2_LIB_PATCH_VERSION "0") + + # Suffix to add at end of version string. Usual values are: + # "-git" : alpha code unstable from git. Do not use in production +@@ -87,53 +71,52 @@ SET(KEXIV2_LIB_PATCH_VERSION "2") + # "-beta3" : beta3 release. + # "-rc" : release candidate. + # "" : final relase. Can be used in production. +-SET(KEXIV2_LIB_SUFFIX_VERSION "") ++set(KEXIV2_LIB_SUFFIX_VERSION "") + + # Library ABI version used by linker. + # For details : http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info +-SET(KEXIV2_LIB_SO_CUR_VERSION "11") +-SET(KEXIV2_LIB_SO_REV_VERSION "2") +-SET(KEXIV2_LIB_SO_AGE_VERSION "0") ++set(KEXIV2_LIB_SO_CUR_VERSION "11") ++set(KEXIV2_LIB_SO_REV_VERSION "3") ++set(KEXIV2_LIB_SO_AGE_VERSION "0") + + # ======================================================= + # Set env. variables accordinly. + +-SET(KEXIV2_LIB_VERSION_STRING "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}${KEXIV2_LIB_SUFFIX_VERSION}") +-SET(KEXIV2_LIB_VERSION_ID "0x0${KEXIV2_LIB_MAJOR_VERSION}0${KEXIV2_LIB_MINOR_VERSION}0${KEXIV2_LIB_PATCH_VERSION}") +-SET(KEXIV2_LIB_SO_VERSION_STRING "${KEXIV2_LIB_SO_CUR_VERSION}.${KEXIV2_LIB_SO_REV_VERSION}.${KEXIV2_LIB_SO_AGE_VERSION}") ++set(KEXIV2_LIB_VERSION_STRING "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}${KEXIV2_LIB_SUFFIX_VERSION}") ++set(KEXIV2_LIB_VERSION_ID "0x0${KEXIV2_LIB_MAJOR_VERSION}0${KEXIV2_LIB_MINOR_VERSION}0${KEXIV2_LIB_PATCH_VERSION}") ++set(KEXIV2_LIB_SO_VERSION_STRING "${KEXIV2_LIB_SO_CUR_VERSION}.${KEXIV2_LIB_SO_REV_VERSION}.${KEXIV2_LIB_SO_AGE_VERSION}") + + # ======================================================= + +-IF (EXIV2_FOUND) +- ADD_SUBDIRECTORY(libkexiv2) ++if(EXIV2_FOUND) ++ ++ add_subdirectory(libkexiv2) ++ ++ if(KDE4_BUILD_TESTS) ++ MACRO_OPTIONAL_ADD_SUBDIRECTORY(tests) ++ endif() ++ ++ include(CMakePackageConfigHelpers) ++ ++ CONFIGURE_PACKAGE_CONFIG_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/libkexiv2-config.cmake.in libkexiv2-config.cmake ++ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" ++ PATH_VARS INCLUDE_INSTALL_DIR ++ NO_CHECK_REQUIRED_COMPONENTS_MACRO) ++ ++ WRITE_BASIC_PACKAGE_VERSION_FILE(libkexiv2-config-version.cmake ++ VERSION "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}" ++ COMPATIBILITY SameMajorVersion) ++ install(EXPORT Libkexiv2 ++ DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" ++ NAMESPACE Libkexiv2:: ++ FILE libkexiv2-export.cmake) ++ ++ install(FILES ++ ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config.cmake ++ ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config-version.cmake ++ DESTINATION ++ "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}") + +- IF(KDE4_BUILD_TESTS) +- MACRO_OPTIONAL_ADD_SUBDIRECTORY(tests) +- ENDIF(KDE4_BUILD_TESTS) +- +- INCLUDE(CMakePackageConfigHelpers) +- CONFIGURE_PACKAGE_CONFIG_FILE(libkexiv2-config.cmake.in libkexiv2-config.cmake +- INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" +- PATH_VARS INCLUDE_INSTALL_DIR +- NO_CHECK_REQUIRED_COMPONENTS_MACRO) +- WRITE_BASIC_PACKAGE_VERSION_FILE(libkexiv2-config-version.cmake +- VERSION "${KEXIV2_LIB_MAJOR_VERSION}.${KEXIV2_LIB_MINOR_VERSION}.${KEXIV2_LIB_PATCH_VERSION}" +- COMPATIBILITY SameMajorVersion) +- INSTALL(EXPORT Libkexiv2 +- DESTINATION "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" +- NAMESPACE Libkexiv2:: +- FILE libkexiv2-export.cmake) +- INSTALL(FILES +- ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config.cmake +- ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2-config-version.cmake +- DESTINATION +- "${LIB_INSTALL_DIR}/cmake/libkexiv2-${KEXIV2_LIB_VERSION_STRING}" +- ) +- IF(NOT WIN32) +- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkexiv2.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc) +- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkexiv2.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.lsm) +- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ) +- ENDIF(NOT WIN32) +-ENDIF (EXIV2_FOUND) ++endif() + + MACRO_DISPLAY_FEATURE_LOG() +--- libkexiv2-4.14.3.orig/NEWS ++++ libkexiv2-4.14.3/NEWS +@@ -24,7 +24,7 @@ + * cleanupExiv2(). + Added a new method to load image data from a byte array. + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 166424: Crash when editing Caption with Digikam4 SVN. + + 0.2.0 - Released with KDE 4.1.0 +@@ -35,7 +35,7 @@ Split methods to separate files to provi + New method to fix orientation of a QImage accordingly with Exif orientation tag. + Moved from extragear/libs to kdegraphics/libs + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 146864: Lesser XMP support in digiKam. + + 0.1.7 +@@ -44,7 +44,7 @@ Bugs fixed from B.K.O (http://bugs.kde.o + - API changed: Added a version method to get runtime library version. + - Fix RemoveIptcTag() to handle all redondant Iptc tags at the same time. + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 157552: negative altitudes are not shown in metadata GPS sidebar + + 0.1.6 +@@ -52,7 +52,7 @@ Bugs fixed from B.K.O (http://bugs.kde.o + - API Changed : Kexiv2 destructor is now virtual. + Krazy Code Checker fix (http://www.englishbreakfastnetwork.org/krazy) + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 137750: color mode2 nikon d70s not recognized as adobe rgb + 002 ==> 149267: digiKam crashes after finding gif,avi,txt and so on. + 003 ==> 148182: Iptc.Application2.Keywords appends always the 0-byte. +@@ -71,7 +71,7 @@ New features + - API changed: added 4 new static methods to get Exif/Iptc tags description/title. + moved depreceate protected methods used by digiKam core to private. + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 144604: Rotation causes Exif data corruption. GPS data fix + + General : Make size of icons used in album icon view more configurable using a slider +@@ -85,13 +85,13 @@ New features + - added support for exiv2 from svn (next 0.14.0 release) + - API changed: added printExiv2ExceptionError to manage Exiv2 C++ Exception error message + +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 142564: digiKam-signature in iptc and exif tags. + 002 ==> 140297: GPS kipi plugin truncates input coordinates, introducing inacuracy. + + 0.1.1 + ------------------------------------------------------------------------ +-Bugs fixed from B.K.O (http://bugs.kde.org): ++Bugs fixed from bug (http://bugs.kde.org): + 001 ==> 141980: digiKam crash when rescan certain files exiv2. + + 0.1.0 +--- /dev/null ++++ libkexiv2-4.14.3/cmake/templates/libkexiv2-config.cmake.in +@@ -0,0 +1,9 @@ ++@PACKAGE_INIT@ ++set_and_check(libkexiv2_INCLUDE_DIR @PACKAGE_INCLUDE_INSTALL_DIR@) ++ ++if(NOT TARGET Libkexiv2::kexiv2) ++ include(${CMAKE_CURRENT_LIST_DIR}/libkexiv2-export.cmake) ++endif() ++ ++set(libkexiv2_LIBRARY Libkexiv2::kexiv2) ++set(libkexiv2_LIBRARIES ${libkexiv2_LIBRARY}) +--- /dev/null ++++ libkexiv2-4.14.3/cmake/templates/libkexiv2.lsm.cmake.in +@@ -0,0 +1,15 @@ ++Begin4 ++Title: libkexiv2 ++Version: ${KEXIV2_LIB_VERSION_STRING} ++Entered-date: 2007-05-08 ++Description: A C++ library to manipulate EXIF/IPTC/XMP metadata using Exiv2 library. This library is used by digiKam and kipi-plugins. ++Keywords: kde image jpeg raw tiff png exif iptc xmp digikam kipi-plugins ++Author: caulier dot gilles at gmail dot com (Gilles Caulier) ++ marcel dot wiesweg at gmx dot de (Marcel Wiesweg) ++Maintained-by: ++Primary-site: http://www.digikam.org ++Alternate-site: http://www.digikam.org ++Original-site: ++Platforms: Linux and other Unices, MacOs-X, Win32. Needs KDE 4.x ++Copying-policy: GPL ++End +--- /dev/null ++++ libkexiv2-4.14.3/cmake/templates/libkexiv2.pc.cmake.in +@@ -0,0 +1,12 @@ ++prefix=${CMAKE_INSTALL_PREFIX} ++exec_prefix=${BIN_INSTALL_DIR} ++libdir=${LIB_INSTALL_DIR} ++includedir=${INCLUDE_INSTALL_DIR} ++ ++Name: libkexiv2 ++Description: A C++ library to manipulate EXIF/IPTC/XMP metadata using Exiv2 library. This library is used by digiKam and kipi-plugins. ++URL: http://www.digikam.org ++Requires: ++Version: ${KEXIV2_LIB_VERSION_STRING} ++Libs: -L${LIB_INSTALL_DIR} -lkexiv2 ++Cflags: -I${INCLUDE_INSTALL_DIR} +--- libkexiv2-4.14.3.orig/libkexiv2/CMakeLists.txt ++++ libkexiv2-4.14.3/libkexiv2/CMakeLists.txt +@@ -1,43 +1,25 @@ +-# =========================================================== + # +-# This file is a part of digiKam project +-# http://www.digikam.org ++# Copyright (c) 2010-2014, Gilles Caulier, + # +-# @date 2006-09-15 +-# @brief Exiv2 library interface for KDE +-# +-# @author Copyright (C) 2006-2014 by Gilles Caulier +-# caulier dot gilles at gmail dot com +-# +-# This program is free software; you can redistribute it +-# and/or modify it under the terms of the GNU General +-# Public License as published by the Free Software Foundation; +-# either version 2, or (at your option) +-# any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# ============================================================ ++# Redistribution and use is allowed according to the terms of the BSD license. ++# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +-INCLUDE_DIRECTORIES(${EXIV2_INCLUDE_DIR}) ++include_directories(${EXIV2_INCLUDE_DIR}) + +-ADD_DEFINITIONS(${EXIV2_DEFINITIONS}) +-ADD_DEFINITIONS(${KDE4_ENABLE_EXCEPTIONS}) ++add_definitions(${EXIV2_DEFINITIONS}) ++add_definitions(${KDE4_ENABLE_EXCEPTIONS}) + +-IF( WIN32 ) +- ADD_DEFINITIONS( -DEXV_HAVE_DLL ) +-ENDIF( WIN32 ) ++if(WIN32) ++ add_definitions(-DEXV_HAVE_DLL) ++endif() + +-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h) ++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) + + # This was used to enable catching of exceptions thrown by libexiv2. + # We use now #pragma GCC visibility push(default) around the headers + #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default") + +-SET(kexiv2_LIB_SRCS kexiv2.cpp ++set(kexiv2_LIB_SRCS kexiv2.cpp + kexiv2_p.cpp + kexiv2image.cpp + kexiv2comments.cpp +@@ -55,23 +37,24 @@ SET(kexiv2_LIB_SRCS kexiv2.cpp + + KDE4_ADD_LIBRARY(kexiv2 SHARED ${kexiv2_LIB_SRCS}) + +-TARGET_LINK_LIBRARIES(kexiv2 ${KDE4_KDEUI_LIBS} ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY} ++target_link_libraries(kexiv2 ${KDE4_KDEUI_LIBS} ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY} + ${QT_QTXML_LIBRARY} ${EXIV2_LIBRARIES}) + +-IF( WIN32 ) ++if(WIN32) + TARGET_LINK_LIBRARIES( kexiv2 ${EXPAT_LIBRARIES} ) +-ENDIF( WIN32 ) ++endif() + +-SET_TARGET_PROPERTIES(kexiv2 PROPERTIES VERSION ${KEXIV2_LIB_SO_VERSION_STRING} ++set_target_properties(kexiv2 PROPERTIES VERSION ${KEXIV2_LIB_SO_VERSION_STRING} + SOVERSION ${KEXIV2_LIB_SO_CUR_VERSION}) + +-INSTALL(TARGETS kexiv2 EXPORT Libkexiv2 ${INSTALL_TARGETS_DEFAULT_ARGS} ) ++install(TARGETS kexiv2 EXPORT Libkexiv2 ${INSTALL_TARGETS_DEFAULT_ARGS} ) + +-INSTALL(FILES topicset.iptc-subjectcode.xml DESTINATION ${DATA_INSTALL_DIR}/libkexiv2/data) ++install(FILES topicset.iptc-subjectcode.xml DESTINATION ${DATA_INSTALL_DIR}/libkexiv2/data) + + # Check if compilation is done through digiKam SC or not. If yes, do not install header files. +-IF(NOT DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS) +- INSTALL(FILES kexiv2.h ++if(NOT DIGIKAMSC_COMPILE_LIBKEXIV2) ++ ++ install(FILES kexiv2.h + kexiv2data.h + kexiv2previews.h + libkexiv2_export.h +@@ -84,4 +67,11 @@ IF(NOT DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS + DESTINATION ${INCLUDE_INSTALL_DIR}/libkexiv2 + COMPONENT Devel + ) +-ENDIF() ++ ++ if(NOT WIN32) ++ configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/libkexiv2.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc) ++ configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/libkexiv2.lsm.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.lsm) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkexiv2.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) ++ endif() ++ ++endif() +--- libkexiv2-4.14.3.orig/libkexiv2/altlangstredit.cpp ++++ libkexiv2-4.14.3/libkexiv2/altlangstredit.cpp +@@ -7,7 +7,7 @@ + * @date 2009-06-15 + * @brief multi-languages string editor + * +- * @author Copyright (C) 2009-2013 by Gilles Caulier ++ * @author Copyright (C) 2009-2014 by Gilles Caulier + * caulier dot gilles at gmail dot com + * + * This program is free software; you can redistribute it +@@ -534,4 +534,9 @@ void AltLangStrEdit::changeEvent(QEvent* + QWidget::changeEvent(e); + } + ++MsgTextEdit* AltLangStrEdit::textEdit() const ++{ ++ return d->valueEdit; ++} ++ + } // namespace KExiv2Iface +--- libkexiv2-4.14.3.orig/libkexiv2/altlangstredit.h ++++ libkexiv2-4.14.3/libkexiv2/altlangstredit.h +@@ -7,7 +7,7 @@ + * @date 2009-06-15 + * @brief multi-languages string editor + * +- * @author Copyright (C) 2009-2012 by Gilles Caulier ++ * @author Copyright (C) 2009-2014 by Gilles Caulier + * caulier dot gilles at gmail dot com + * + * This program is free software; you can redistribute it +@@ -39,6 +39,8 @@ + namespace KExiv2Iface + { + ++class MsgTextEdit; ++ + class KEXIV2_EXPORT AltLangStrEdit : public QWidget + { + Q_OBJECT +@@ -79,6 +81,8 @@ public: + */ + void addCurrent(); + ++ MsgTextEdit* textEdit() const; ++ + Q_SIGNALS: + + /** +--- libkexiv2-4.14.3.orig/libkexiv2/countryselector.cpp ++++ libkexiv2-4.14.3/libkexiv2/countryselector.cpp +@@ -240,7 +240,7 @@ public: + countryCodeMap.insert( "STP", i18n("Sao Tome and Principe") ); + countryCodeMap.insert( "SAU", i18n("Saudi Arabia") ); + countryCodeMap.insert( "SEN", i18n("Senegal") ); +- countryCodeMap.insert( "SCG", i18n("Serbia and Montenegro") ); ++ countryCodeMap.insert( "SCG", i18n("Serbia") ); + countryCodeMap.insert( "SYC", i18n("Seychelles") ); + countryCodeMap.insert( "SLE", i18n("Sierra Leone") ); + countryCodeMap.insert( "SGP", i18n("Singapore") ); +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2.cpp ++++ libkexiv2-4.14.3/libkexiv2/kexiv2.cpp +@@ -7,7 +7,7 @@ + * @date 2006-09-15 + * @brief Exiv2 library interface for KDE + * +- * @author Copyright (C) 2006-2014 by Gilles Caulier ++ * @author Copyright (C) 2006-2015 by Gilles Caulier + * caulier dot gilles at gmail dot com + * @author Copyright (C) 2006-2013 by Marcel Wiesweg + * marcel dot wiesweg at gmx dot de +@@ -28,10 +28,16 @@ + #include "kexiv2.h" + #include "kexiv2_p.h" + ++// KDE includes ++ ++#include ++ + // Local includes + + #include "version.h" + ++static const KCatalogLoader loader("libkexiv2"); ++ + namespace KExiv2Iface + { + +@@ -101,9 +107,11 @@ bool KExiv2::initializeExiv2() + if (!Exiv2::XmpParser::initialize()) + return false; + +- registerXmpNameSpace(QString("http://ns.adobe.com/lightroom/1.0/"), QString("lr")); ++ registerXmpNameSpace(QString("http://ns.adobe.com/lightroom/1.0/"), QString("lr")); + registerXmpNameSpace(QString("http://www.digikam.org/ns/kipi/1.0/"), QString("kipi")); +- registerXmpNameSpace(QString("http://ns.microsoft.com/photo/1.2/"), QString("MP")); ++ registerXmpNameSpace(QString("http://ns.microsoft.com/photo/1.2/"), QString("MP")); ++ registerXmpNameSpace(QString("http://ns.acdsee.com/iptc/1.0/"), QString("acdsee")); ++ registerXmpNameSpace(QString("http://www.video"), QString("video")); + + #endif // _XMP_SUPPORT_ + +@@ -118,6 +126,8 @@ bool KExiv2::cleanupExiv2() + unregisterXmpNameSpace(QString("http://ns.adobe.com/lightroom/1.0/")); + unregisterXmpNameSpace(QString("http://www.digikam.org/ns/kipi/1.0/")); + unregisterXmpNameSpace(QString("http://ns.microsoft.com/photo/1.2/")); ++ unregisterXmpNameSpace(QString("http://ns.acdsee.com/iptc/1.0/")); ++ unregisterXmpNameSpace(QString("http://www.video")); + + Exiv2::XmpParser::terminate(); + +@@ -399,7 +409,7 @@ bool KExiv2::save(const QString& imageFi + regularFilePath = givenFileInfo.canonicalPath();// Walk all the symlinks + } + +- // NOTE: see B.K.O #137770 & #138540 : never touch the file if is read only. ++ // NOTE: see bug #137770 & #138540 : never touch the file if is read only. + QFileInfo finfo(regularFilePath); + QFileInfo dinfo(finfo.path()); + if (!dinfo.isWritable()) +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2.h ++++ libkexiv2-4.14.3/libkexiv2/kexiv2.h +@@ -170,14 +170,14 @@ public: + /** Return true if Exiv2 library initialization is done properly. + This method must be called before using libkexiv2 with multithreading. + It initialize several non re-entrancy code from Adobe XMP SDK +- See B.K.O #166424 for details. Call cleanupExiv2() to clean things up later. ++ See bug #166424 for details. Call cleanupExiv2() to clean things up later. + */ + static bool initializeExiv2(); + + /** Return true if Exiv2 library memory allocations are cleaned properly. + This method must be called after using libkexiv2 with multithreading. + It cleans up memory used by Adobe XMP SDK +- See B.K.O #166424 for details. ++ See bug #166424 for details. + */ + static bool cleanupExiv2(); + +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2_p.cpp ++++ libkexiv2-4.14.3/libkexiv2/kexiv2_p.cpp +@@ -172,7 +172,7 @@ bool KExiv2::Private::saveOperations(con + { + Exiv2::AccessMode mode; + bool wroteComment = false, wroteEXIF = false, wroteIPTC = false, wroteXMP = false; +- ++ + // We need to load target file metadata to merge with new one. It's mandatory with TIFF format: + // like all tiff file structure is based on Exif. + image->readMetadata(); +@@ -187,6 +187,8 @@ bool KExiv2::Private::saveOperations(con + wroteComment = true; + } + ++ kDebug() << "wroteComment: " << wroteComment; ++ + // Exif metadata ---------------------------------- + + mode = image->checkMode(Exiv2::mdExif); +@@ -245,6 +247,8 @@ bool KExiv2::Private::saveOperations(con + wroteEXIF = true; + } + ++ kDebug() << "wroteEXIF: " << wroteEXIF; ++ + // Iptc metadata ---------------------------------- + + mode = image->checkMode(Exiv2::mdIptc); +@@ -255,6 +259,8 @@ bool KExiv2::Private::saveOperations(con + wroteIPTC = true; + } + ++ kDebug() << "wroteIPTC: " << wroteIPTC; ++ + // Xmp metadata ----------------------------------- + + mode = image->checkMode(Exiv2::mdXmp); +@@ -267,6 +273,8 @@ bool KExiv2::Private::saveOperations(con + #endif + } + ++ kDebug() << "wroteXMP: " << wroteXMP; ++ + if (!wroteComment && !wroteEXIF && !wroteIPTC && !wroteXMP) + { + kDebug() << "Writing metadata is not supported for file" << finfo.fileName(); +@@ -274,8 +282,7 @@ bool KExiv2::Private::saveOperations(con + } + else if (!wroteEXIF || !wroteIPTC || !wroteXMP) + { +- kDebug() << "Support for writing metadata is limited for file" << finfo.fileName() +- << "EXIF" << wroteEXIF << "IPTC" << wroteIPTC << "XMP" << wroteXMP; ++ kDebug() << "Support for writing metadata is limited for file" << finfo.fileName(); + } + + if (!updateFileTimeStamp) +@@ -297,6 +304,8 @@ bool KExiv2::Private::saveOperations(con + { + ::utime(QFile::encodeName(filePath), &ut); + } ++ ++ kDebug() << "File time stamp restored"; + } + else + { +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2exif.cpp ++++ libkexiv2-4.14.3/libkexiv2/kexiv2exif.cpp +@@ -834,7 +834,7 @@ QString KExiv2::getExifTagString(const c + + if (it != exifData.end()) + { +- // See B.K.O #184156 comment #13 ++ // See bug #184156 comment #13 + std::string val = it->print(&exifData); + QString tagValue = QString::fromLocal8Bit(val.c_str()); + +@@ -931,7 +931,7 @@ bool KExiv2::rotateExifQImage(QImage& im + { + QMatrix matrix = RotationMatrix::toMatrix(orientation); + +- if ((orientation != ORIENTATION_NORMAL) || (orientation != ORIENTATION_UNSPECIFIED)) ++ if ((orientation != ORIENTATION_NORMAL) && (orientation != ORIENTATION_UNSPECIFIED)) + { + image = image.transformed(matrix); + return true; +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2image.cpp ++++ libkexiv2-4.14.3/libkexiv2/kexiv2image.cpp +@@ -47,7 +47,7 @@ bool KExiv2::setImageProgramId(const QSt + + d->exifMetadata()["Exif.Image.ProcessingSoftware"] = std::string(software.toAscii().constData()); + +- // See B.K.O #142564: Check if Exif.Image.Software already exist. If yes, do not touch this tag. ++ // See bug #142564: Check if Exif.Image.Software already exist. If yes, do not touch this tag. + + if (!d->exifMetadata().empty()) + { +@@ -196,7 +196,7 @@ bool KExiv2::setImageDimensions(const QS + { + // Set Exif values. + +- // NOTE: see B.K.O #144604: need to cast to record an unsigned integer value. ++ // NOTE: see bug #144604: need to cast to record an unsigned integer value. + d->exifMetadata()["Exif.Image.ImageWidth"] = static_cast(size.width()); + d->exifMetadata()["Exif.Image.ImageLength"] = static_cast(size.height()); + d->exifMetadata()["Exif.Photo.PixelXDimension"] = static_cast(size.width()); +@@ -674,6 +674,69 @@ QDateTime KExiv2::getImageDateTime() con + } + } + } ++ ++ // Video files support ++ ++ { ++ Exiv2::XmpKey key("Xmp.video.DateTimeOriginal"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime => Xmp.video.DateTimeOriginal => " << dateTime; ++ return dateTime; ++ } ++ } ++ } ++ { ++ Exiv2::XmpKey key("Xmp.video.DateUTC"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime => Xmp.video.DateUTC => " << dateTime; ++ return dateTime; ++ } ++ } ++ } ++ { ++ Exiv2::XmpKey key("Xmp.video.ModificationDate"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime => Xmp.video.ModificationDate => " << dateTime; ++ return dateTime; ++ } ++ } ++ } ++ { ++ Exiv2::XmpKey key("Xmp.video.DateTimeDigitized"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime => Xmp.video.DateTimeDigitized => " << dateTime; ++ return dateTime; ++ } ++ } ++ } + } + + #endif // _XMP_SUPPORT_ +@@ -769,6 +832,7 @@ bool KExiv2::setImageDateTime(const QDat + const std::string &exifdatetime(dateTime.toString(QString("yyyy:MM:dd hh:mm:ss")).toAscii().constData()); + d->exifMetadata()["Exif.Image.DateTime"] = exifdatetime; + d->exifMetadata()["Exif.Photo.DateTimeOriginal"] = exifdatetime; ++ d->exifMetadata()["Exif.Image.PreviewDateTime"] = exifdatetime; + if(setDateTimeDigitized) + d->exifMetadata()["Exif.Photo.DateTimeDigitized"] = exifdatetime; + +@@ -780,14 +844,20 @@ bool KExiv2::setImageDateTime(const QDat + + Exiv2::Value::AutoPtr xmpTxtVal = Exiv2::Value::create(Exiv2::xmpText); + xmpTxtVal->read(xmpdatetime); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.exif.DateTimeOriginal"), xmpTxtVal.get()); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.photoshop.DateCreated"), xmpTxtVal.get()); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.tiff.DateTime"), xmpTxtVal.get()); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.CreateDate"), xmpTxtVal.get()); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.MetadataDate"), xmpTxtVal.get()); +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.ModifyDate"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.exif.DateTimeOriginal"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.photoshop.DateCreated"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.tiff.DateTime"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.CreateDate"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.MetadataDate"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.xmp.ModifyDate"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.video.DateTimeOriginal"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.video.DateUTC"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.video.ModificationDate"), xmpTxtVal.get()); + if(setDateTimeDigitized) +- d->xmpMetadata().add(Exiv2::XmpKey("Xmp.exif.DateTimeDigitized"), xmpTxtVal.get()); ++ { ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.exif.DateTimeDigitized"), xmpTxtVal.get()); ++ d->xmpMetadata().add(Exiv2::XmpKey("Xmp.video.DateTimeDigitized"), xmpTxtVal.get()); ++ } + + // Tag not updated: + // "Xmp.dc.DateTime" is a sequence of date relevant of dublin core change. +@@ -847,7 +917,48 @@ QDateTime KExiv2::getDigitizationDateTim + } + } + +- // In second, trying to get Date & time from Iptc tags. ++ // In second, we trying XMP ++ ++#ifdef _XMP_SUPPORT_ ++ ++ if (!d->xmpMetadata().empty()) ++ { ++ Exiv2::XmpData xmpData(d->xmpMetadata()); ++ { ++ Exiv2::XmpKey key("Xmp.exif.DateTimeDigitized"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime (XMP-Exif digitalized): " << dateTime.toString().toAscii().constData(); ++ return dateTime; ++ } ++ } ++ } ++ { ++ Exiv2::XmpKey key("Xmp.video.DateTimeDigitized"); ++ Exiv2::XmpData::iterator it = xmpData.findKey(key); ++ ++ if (it != xmpData.end()) ++ { ++ QDateTime dateTime = QDateTime::fromString(it->toString().c_str(), Qt::ISODate); ++ ++ if (dateTime.isValid()) ++ { ++ kDebug() << "DateTime (XMP-Video digitalized): " << dateTime.toString().toAscii().constData(); ++ return dateTime; ++ } ++ } ++ } ++ } ++ ++#endif // _XMP_SUPPORT_ ++ ++ // In third, trying to get Date & time from Iptc tags. + + if (!d->iptcMetadata().empty()) + { +--- libkexiv2-4.14.3.orig/libkexiv2/kexiv2previews.cpp ++++ libkexiv2-4.14.3/libkexiv2/kexiv2previews.cpp +@@ -164,14 +164,14 @@ int KExiv2Previews::height(int index) + + QString KExiv2Previews::mimeType(int index) + { +- if (index < 0 || index >= size()) return 0; ++ if (index < 0 || index >= size()) return QString(); + + return QString::fromLatin1(d->properties[index].mimeType_.c_str()); + } + + QString KExiv2Previews::fileExtension(int index) + { +- if (index < 0 || index >= size()) return 0; ++ if (index < 0 || index >= size()) return QString(); + + return QString::fromLatin1(d->properties[index].extension_.c_str()); + } +--- libkexiv2-4.14.3.orig/libkexiv2/rotationmatrix.cpp ++++ libkexiv2-4.14.3/libkexiv2/rotationmatrix.cpp +@@ -7,7 +7,7 @@ + * @date 2009-08-03 + * @brief Tools for combining rotation operations + * +- * @author Copyright (C) 2006-2012 by Gilles Caulier ++ * @author Copyright (C) 2006-2015 by Gilles Caulier + * caulier dot gilles at gmail dot com + * @author Copyright (C) 2004-2012 by Marcel Wiesweg + * marcel dot wiesweg at gmx dot de +@@ -65,9 +65,9 @@ namespace KExiv2Iface + (I did not proof that mathematically, but empirically) + + static const RotationMatrix identity; //( 1, 0, 0, 1) +- static const RotationMatrix rotate90; //( 0, -1, 1, 0) ++ static const RotationMatrix rotate90; //( 0, 1, -1, 0) + static const RotationMatrix rotate180; //(-1, 0, 0, -1) +- static const RotationMatrix rotate270; //( 0, 1, -1, 0) ++ static const RotationMatrix rotate270; //( 0, -1, 1, 0) + static const RotationMatrix flipHorizontal; //(-1, 0, 0, 1) + static const RotationMatrix flipVertical; //( 1, 0, 0, -1) + static const RotationMatrix rotate90flipHorizontal; //( 0, 1, 1, 0), first rotate, then flip +@@ -79,9 +79,9 @@ namespace Matrix + { + + static const RotationMatrix identity ( 1, 0, 0, 1); +-static const RotationMatrix rotate90 ( 0, -1, 1, 0); ++static const RotationMatrix rotate90 ( 0, 1, -1, 0); + static const RotationMatrix rotate180 (-1, 0, 0, -1); +-static const RotationMatrix rotate270 ( 0, 1, -1, 0); ++static const RotationMatrix rotate270 ( 0, -1, 1, 0); + static const RotationMatrix flipHorizontal (-1, 0, 0, 1); + static const RotationMatrix flipVertical ( 1, 0, 0, -1); + static const RotationMatrix rotate90flipHorizontal ( 0, 1, 1, 0); +@@ -104,6 +104,7 @@ RotationMatrix matrix(RotationMatrix::Tr + case RotationMatrix::Rotate270: + return rotate270; + } ++ + return identity; + } + +@@ -130,6 +131,7 @@ RotationMatrix matrix(KExiv2::ImageOrien + case KExiv2::ORIENTATION_UNSPECIFIED: + return identity; + } ++ + return identity; + } + +--- libkexiv2-4.14.3.orig/libkexiv2/rotationmatrix.h ++++ libkexiv2-4.14.3/libkexiv2/rotationmatrix.h +@@ -7,7 +7,7 @@ + * @date 2009-08-03 + * @brief Tools for combining rotation operations + * +- * @author Copyright (C) 2006-2012 by Gilles Caulier ++ * @author Copyright (C) 2006-2015 by Gilles Caulier + * caulier dot gilles at gmail dot com + * @author Copyright (C) 2004-2012 by Marcel Wiesweg + * marcel dot wiesweg at gmx dot de +--- /dev/null ++++ libkexiv2-4.14.3/libkexiv2/version.h.cmake.in +@@ -0,0 +1,32 @@ ++/** =========================================================== ++ * ++ * This file is a part of digiKam project ++ * http://www.digikam.org ++ * ++ * @date 2007-02-06 ++ * @brief Exiv2 library interface for KDE ++ * ++ * @author Copyright (C) 2007-2012 by Gilles Caulier ++ * caulier dot gilles at gmail dot com ++ * ++ * This program is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU General ++ * Public License as published by the Free Software Foundation; ++ * either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * ============================================================ */ ++ ++#ifndef KEXIV2_VERSION_H ++#define KEXIV2_VERSION_H ++ ++static const char kexiv2_version[] = "${KEXIV2_LIB_VERSION_STRING}"; ++ ++#define KEXIV2_VERSION ${KEXIV2_LIB_VERSION_ID} ++ ++#endif // KEXIV2_VERSION_H +--- libkexiv2-4.14.3.orig/tests/CMakeLists.txt ++++ libkexiv2-4.14.3/tests/CMakeLists.txt +@@ -1,53 +1,35 @@ +-# =========================================================== + # +-# This file is a part of digiKam project +-# http://www.digikam.org ++# Copyright (c) 2010-2014, Gilles Caulier, + # +-# @date 2006-09-15 +-# @brief Exiv2 library interface for KDE +-# +-# @author Copyright (C) 2006-2012 by Gilles Caulier +-# caulier dot gilles at gmail dot com +-# +-# This program is free software; you can redistribute it +-# and/or modify it under the terms of the GNU General +-# Public License as published by the Free Software Foundation; +-# either version 2, or (at your option) +-# any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# ============================================================ ++# Redistribution and use is allowed according to the terms of the BSD license. ++# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../libkexiv2) ++include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../libkexiv2) + +-SET(setiptcpreview_SRCS setiptcpreview.cpp) ++set(setiptcpreview_SRCS setiptcpreview.cpp) + KDE4_ADD_EXECUTABLE(setiptcpreview NOGUI ${setiptcpreview_SRCS}) +-TARGET_LINK_LIBRARIES(setiptcpreview kexiv2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(setiptcpreview kexiv2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) + +-SET(loadfromba_SRCS loadfromba.cpp) ++set(loadfromba_SRCS loadfromba.cpp) + KDE4_ADD_EXECUTABLE(loadfromba NOGUI ${loadfromba_SRCS}) +-TARGET_LINK_LIBRARIES(loadfromba kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(loadfromba kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) + +-SET(erasetag_SRCS erasetag.cpp) ++set(erasetag_SRCS erasetag.cpp) + KDE4_ADD_EXECUTABLE(erasetag NOGUI ${erasetag_SRCS}) +-TARGET_LINK_LIBRARIES(erasetag kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(erasetag kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) + +-SET(printtagslist_SRCS printtagslist.cpp) ++set(printtagslist_SRCS printtagslist.cpp) + KDE4_ADD_EXECUTABLE(printtagslist NOGUI ${printtagslist_SRCS}) +-TARGET_LINK_LIBRARIES(printtagslist kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(printtagslist kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) + +-SET(usexmpsidecar_SRCS usexmpsidecar.cpp) ++set(usexmpsidecar_SRCS usexmpsidecar.cpp) + KDE4_ADD_EXECUTABLE(usexmpsidecar NOGUI ${usexmpsidecar_SRCS}) +-TARGET_LINK_LIBRARIES(usexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(usexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) + +-SET(readimagewritexmpsidecar_SRCS readimagewritexmpsidecar.cpp) ++set(readimagewritexmpsidecar_SRCS readimagewritexmpsidecar.cpp) + KDE4_ADD_EXECUTABLE(readimagewritexmpsidecar NOGUI ${readimagewritexmpsidecar_SRCS}) +-TARGET_LINK_LIBRARIES(readimagewritexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(readimagewritexmpsidecar kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) + +-SET(setxmpface_SRCS setxmpface.cpp) ++set(setxmpface_SRCS setxmpface.cpp) + KDE4_ADD_EXECUTABLE(setxmpface NOGUI ${setxmpface_SRCS}) +-TARGET_LINK_LIBRARIES(setxmpface kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) ++target_link_libraries(setxmpface kexiv2 ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY}) diff -Nru libkexiv2-4.14.3/debian/patches/series libkexiv2-4.14.3/debian/patches/series --- libkexiv2-4.14.3/debian/patches/series 2015-05-30 21:06:10.000000000 +0000 +++ libkexiv2-4.14.3/debian/patches/series 2015-09-08 13:33:57.000000000 +0000 @@ -1 +1 @@ -digikam_4.10.0_source.patch +digikam-4.13.0-source.patch