[oe] [PATCH 20/41] exiv2: initial add 0.27.0

Andreas Müller schnitzeltony at gmail.com
Thu May 23 06:48:38 UTC 2019


* exiv2 0.27 lives in several layers currently:
  meta-webos-ports / meta-luneos / meta-qt5-extra
* Now meta-gnome will require it for nautilus -> gexiv2
  => move it up in layer hierarchy
* This recipe was taken from meta-qt5-extra
* Patches were taken from Fedora before they moved to 0.27.1 [1]
* From my experience as soon as upstream will create a successor of
  0.27.1 they move tarballs from builds [2] -> archive [3]
  To avoid missing sources let's stick on 0.27.0.

[1] https://src.fedoraproject.org/rpms/exiv2/tree/master
[2] https://exiv2.org/builds/
[3] https://www.exiv2.org/archive.html

Signed-off-by: Andreas Müller <schnitzeltony at gmail.com>
---
 meta-oe/recipes-support/exiv2/exiv2.bb        |  26 ++++
 ...es-only-installed-with-the-exiv2-app.patch |  41 ++++++
 ...nings-about-missing-PDB-files-in-3rd.patch |  64 +++++++++
 ...-to-exiv2-xmp-to-avoid-name-conflict.patch |  82 ++++++++++++
 ...nstall-header-files-without-globbing.patch | 111 ++++++++++++++++
 ...t-installation-dir-for-generated-doc.patch |  28 ++++
 ...t-installation-dir-for-cmake-config-.patch | 124 ++++++++++++++++++
 ...psdk-Build-with-DBanAllEntityUsage-1.patch |  34 +++++
 ...compile-warnings-in-ExpatAdapter.cpp.patch |  31 +++++
 ...e-for-being-compatible-with-more-dis.patch |  27 ++++
 ...ate-install-exiv2ConfigVersion.cmake.patch |  50 +++++++
 11 files changed, 618 insertions(+)
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2.bb
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0001-cmake-man-pages-only-installed-with-the-exiv2-app.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0002-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0003-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0004-cmake-Install-header-files-without-globbing.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0005-cmake-Use-correct-installation-dir-for-generated-doc.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0006-cmake-Use-correct-installation-dir-for-cmake-config-.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0007-xmpsdk-Build-with-DBanAllEntityUsage-1.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0008-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0009-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch
 create mode 100644 meta-oe/recipes-support/exiv2/exiv2/0010-create-install-exiv2ConfigVersion.cmake.patch

diff --git a/meta-oe/recipes-support/exiv2/exiv2.bb b/meta-oe/recipes-support/exiv2/exiv2.bb
new file mode 100644
index 000000000..26aef7163
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Exif, Iptc and XMP metadata manipulation library and tools"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
+
+DEPENDS = "zlib expat"
+
+SRC_URI = " \
+    https://exiv2.org/releases/${BPN}-${PV}-Source.tar.gz \
+    file://0001-cmake-man-pages-only-installed-with-the-exiv2-app.patch \
+    file://0002-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch \
+    file://0003-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch \
+    file://0004-cmake-Install-header-files-without-globbing.patch \
+    file://0005-cmake-Use-correct-installation-dir-for-generated-doc.patch \
+    file://0006-cmake-Use-correct-installation-dir-for-cmake-config-.patch \
+    file://0007-xmpsdk-Build-with-DBanAllEntityUsage-1.patch \
+    file://0008-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch \
+    file://0009-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch \
+    file://0010-create-install-exiv2ConfigVersion.cmake.patch \
+"
+SRC_URI[md5sum] = "57d58c9cef127c5fa24bf0e1fbbd1f8c"
+SRC_URI[sha256sum] = "ee88bc81539b73c65010651785d094fad0b39760a424b3c16c17e1856cfef2d7"
+PV = "0.27.0"
+S = "${WORKDIR}/${BPN}-${PV}-Source"
+
+inherit cmake gettext
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0001-cmake-man-pages-only-installed-with-the-exiv2-app.patch b/meta-oe/recipes-support/exiv2/exiv2/0001-cmake-man-pages-only-installed-with-the-exiv2-app.patch
new file mode 100644
index 000000000..889e8f877
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0001-cmake-man-pages-only-installed-with-the-exiv2-app.patch
@@ -0,0 +1,41 @@
+From d1c609b320eadbe7089b0482353ffef576813ca2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo at gmail.com>
+Date: Tue, 18 Dec 2018 08:05:16 +0100
+Subject: [PATCH 22/70] cmake: man pages only installed with the exiv2 app
+
+---
+ CMakeLists.txt     | 3 ---
+ src/CMakeLists.txt | 7 +------
+ 2 files changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8dfd9d97..e98cfac1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -106,6 +106,3 @@ configure_file(cmake/exiv2.pc.in exiv2.pc @ONLY)
+ install(FILES ${CMAKE_BINARY_DIR}/exiv2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ 
+ include(cmake/printSummary.cmake)
+-
+-# That's all Folks!
+-##
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ca24006e..0d093924 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -273,11 +273,6 @@ if(EXIV2_BUILD_EXIV2_COMMAND)
+     endif()
+ 
+     install(TARGETS exiv2 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++    install( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
+ endif()
+ 
+-# ******************************************************************************
+-# Man page
+-install( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
+-
+-# That's all Folks!
+-##
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0002-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch b/meta-oe/recipes-support/exiv2/exiv2/0002-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch
new file mode 100644
index 000000000..84c07222a
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0002-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch
@@ -0,0 +1,64 @@
+From e57f311e629762fbf2b08d9a5b1e0cad1035b42f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo at gmail.com>
+Date: Tue, 18 Dec 2018 10:33:11 +0100
+Subject: [PATCH 35/70] cmake: ignore warnings about missing PDB files in 3rd
+ party libs
+
+---
+ samples/CMakeLists.txt | 11 +++++++++++
+ src/CMakeLists.txt     |  4 ++++
+ 2 files changed, 15 insertions(+)
+
+diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
+index a3e491e0..4e8c14c6 100644
+--- a/samples/CMakeLists.txt
++++ b/samples/CMakeLists.txt
+@@ -43,6 +43,9 @@ foreach(entry ${SAMPLES})
+     add_test( ${target}_test ${target} )
+     target_include_directories(${target} PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find unused.h
+     install( TARGETS ${target} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++    if (MSVC)
++        set_target_properties(${target} PROPERTIES LINK_FLAGS "/ignore:4099")
++    endif()
+ endforeach()
+ 
+ ###################################
+@@ -69,6 +72,11 @@ list(APPEND APPLICATIONS exiv2json)
+ 
+ install( TARGETS metacopy pathtest exiv2json RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
++if (MSVC)
++    set_target_properties(exiv2json PROPERTIES LINK_FLAGS "/ignore:4099")
++    set_target_properties(metacopy PROPERTIES LINK_FLAGS "/ignore:4099")
++endif()
++
+ if( EXPAT_FOUND )
+     add_executable(        geotag    geotag.cpp)
+     list(APPEND APPLICATIONS geotag)
+@@ -103,6 +111,9 @@ foreach(application ${APPLICATIONS})
+     if( EXIV2_ENABLE_PNG )
+         target_link_libraries( ${application} PRIVATE ${ZLIB_LIBRARIES} )
+     endif()
++    if (MSVC)
++        set_target_properties(${application} PROPERTIES LINK_FLAGS "/ignore:4099")
++    endif()
+ endforeach()
+ 
+ # ******************************************************************************
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 0d093924..adb285b1 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -274,5 +274,9 @@ if(EXIV2_BUILD_EXIV2_COMMAND)
+ 
+     install(TARGETS exiv2 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+     install( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
++
++    if (MSVC)
++        set_target_properties(exiv2 PROPERTIES LINK_FLAGS "/ignore:4099")
++    endif()
+ endif()
+ 
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0003-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch b/meta-oe/recipes-support/exiv2/exiv2/0003-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch
new file mode 100644
index 000000000..08a307341
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0003-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch
@@ -0,0 +1,82 @@
+From 89509d7a3915ba474cbc3f8c85ab9bec4954ceda Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Wed, 2 Jan 2019 10:38:22 +0100
+Subject: [PATCH 64/70] cmake: Rename xmp to exiv2-xmp to avoid name conflicts
+
+There is already a libxmp file by the xmp project on https://xmp.sf.net.
+To avoid issues prefix with exiv2.
+
+Fixes #624
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ src/CMakeLists.txt    |  2 +-
+ xmpsdk/CMakeLists.txt | 14 +++++++-------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index adb285b1..2aeae733 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -147,7 +147,7 @@ target_include_directories(exiv2lib_int PRIVATE ${ZLIB_INCLUDE_DIR})
+ target_include_directories(exiv2lib PRIVATE ${ZLIB_INCLUDE_DIR})
+ 
+ if (EXIV2_ENABLE_XMP)
+-    target_link_libraries(exiv2lib PUBLIC xmp)
++    target_link_libraries(exiv2lib PUBLIC exiv2-xmp)
+ elseif(EXIV2_ENABLE_EXTERNAL_XMP)
+     target_link_libraries(exiv2lib PUBLIC ${XMPSDK_LIBRARY})
+     target_include_directories(exiv2lib PUBLIC ${XMPSDK_INCLUDE_DIR})
+diff --git a/xmpsdk/CMakeLists.txt b/xmpsdk/CMakeLists.txt
+index a4c1fe6c..fa521043 100644
+--- a/xmpsdk/CMakeLists.txt
++++ b/xmpsdk/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-add_library(xmp STATIC
++add_library(exiv2-xmp STATIC
+     src/ExpatAdapter.cpp
+     src/MD5.cpp
+     src/ParseRDF.cpp
+@@ -26,12 +26,12 @@ add_library(xmp STATIC
+     include/XMP_Version.h
+ )
+ 
+-target_link_libraries(xmp 
++target_link_libraries(exiv2-xmp
+     PRIVATE 
+         ${EXPAT_LIBRARY}
+ )
+ 
+-target_include_directories(xmp
++target_include_directories(exiv2-xmp
+     PUBLIC 
+         $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/xmpsdk/include>
+     PRIVATE 
+@@ -39,20 +39,20 @@ target_include_directories(xmp
+ )
+ 
+ if (MSVC)
+-    target_compile_definitions(xmp PRIVATE XML_STATIC)
++    target_compile_definitions(exiv2-xmp PRIVATE XML_STATIC)
+ endif()
+ 
+ check_include_file( "stdint.h"  EXV_HAVE_STDINT_H )
+ if (EXV_HAVE_STDINT_H)
+-    target_compile_definitions(xmp PRIVATE EXV_HAVE_STDINT_H)
++    target_compile_definitions(exiv2-xmp PRIVATE EXV_HAVE_STDINT_H)
+ endif()
+ 
+ if (BUILD_SHARED_LIBS)
+-    set_property(TARGET xmp PROPERTY POSITION_INDEPENDENT_CODE ON)
++    set_property(TARGET exiv2-xmp PROPERTY POSITION_INDEPENDENT_CODE ON)
+ endif()
+ 
+ # 1119  Install libxmp.a for use by third party applications (Thanks, Emmanuel)
+-install(TARGETS xmp EXPORT exiv2Config
++install(TARGETS exiv2-xmp EXPORT exiv2Config
+         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0004-cmake-Install-header-files-without-globbing.patch b/meta-oe/recipes-support/exiv2/exiv2/0004-cmake-Install-header-files-without-globbing.patch
new file mode 100644
index 000000000..4503375f3
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0004-cmake-Install-header-files-without-globbing.patch
@@ -0,0 +1,111 @@
+From 0b34ccb9a3b26cd1c5267c6a5c15e9fa1a665adb Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Wed, 2 Jan 2019 10:59:30 +0100
+Subject: [PATCH 65/70] cmake: Install header files without globbing
+
+Fixes #627
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ CMakeLists.txt               |  1 +
+ include/CMakeLists.txt       |  1 +
+ include/exiv2/CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++
+ src/CMakeLists.txt           |  4 ---
+ 4 files changed, 53 insertions(+), 4 deletions(-)
+ create mode 100644 include/CMakeLists.txt
+ create mode 100644 include/exiv2/CMakeLists.txt
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 183cdd2e..ce4d2202 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -76,6 +76,7 @@ endif()
+ 
+ include(cmake/compilerFlagsExiv2.cmake REQUIRED)
+ 
++add_subdirectory( include )
+ add_subdirectory( src )
+ 
+ if( EXIV2_BUILD_UNIT_TESTS )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+new file mode 100644
+index 00000000..01b43a6c
+--- /dev/null
++++ b/include/CMakeLists.txt
+@@ -0,0 +1 @@
++add_subdirectory(exiv2)
+diff --git a/include/exiv2/CMakeLists.txt b/include/exiv2/CMakeLists.txt
+new file mode 100644
+index 00000000..60080f1c
+--- /dev/null
++++ b/include/exiv2/CMakeLists.txt
+@@ -0,0 +1,51 @@
++install(FILES
++            asfvideo.hpp
++            basicio.hpp
++            bigtiffimage.hpp
++            bmpimage.hpp
++            config.h
++            convert.hpp
++            cr2image.hpp
++            crwimage.hpp
++            datasets.hpp
++            easyaccess.hpp
++            epsimage.hpp
++            error.hpp
++            exif.hpp
++            exiv2.hpp
++            futils.hpp
++            gifimage.hpp
++            http.hpp
++            image.hpp
++            ini.hpp
++            iptc.hpp
++            jp2image.hpp
++            jpgimage.hpp
++            matroskavideo.hpp
++            metadatum.hpp
++            mrwimage.hpp
++            orfimage.hpp
++            pgfimage.hpp
++            pngimage.hpp
++            preview.hpp
++            properties.hpp
++            psdimage.hpp
++            quicktimevideo.hpp
++            rafimage.hpp
++            riffvideo.hpp
++            rw2image.hpp
++            rwlock.hpp
++            slice.hpp
++            ssh.hpp
++            tags.hpp
++            tgaimage.hpp
++            tiffimage.hpp
++            types.hpp
++            utilsvideo.hpp
++            value.hpp
++            version.hpp
++            webpimage.hpp
++            xmp_exiv2.hpp
++            xmpsidecar.hpp
++        DESTINATION
++            ${CMAKE_INSTALL_INCLUDEDIR}/exiv2)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index adb285b1..04d8a2a0 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -225,10 +225,6 @@ install(TARGETS exiv2lib EXPORT exiv2Config
+     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ 
+-install(DIRECTORY ../include/exiv2
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+-    FILES_MATCHING PATTERN "*.h*")
+-
+ install(FILES
+     ${CMAKE_BINARY_DIR}/exv_conf.h
+     ${CMAKE_BINARY_DIR}/exiv2lib_export.h
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0005-cmake-Use-correct-installation-dir-for-generated-doc.patch b/meta-oe/recipes-support/exiv2/exiv2/0005-cmake-Use-correct-installation-dir-for-generated-doc.patch
new file mode 100644
index 000000000..5a53c955f
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0005-cmake-Use-correct-installation-dir-for-generated-doc.patch
@@ -0,0 +1,28 @@
+From f8f63a8b4033549d47384c6e2b1972ae1a2775fc Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Wed, 2 Jan 2019 10:28:57 +0100
+Subject: [PATCH 66/70] cmake: Use correct installation dir for generated docs
+
+Fixes #623
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ cmake/generateDoc.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/generateDoc.cmake b/cmake/generateDoc.cmake
+index a3aea727..16823946 100644
+--- a/cmake/generateDoc.cmake
++++ b/cmake/generateDoc.cmake
+@@ -21,7 +21,7 @@ macro(generate_documentation DOX_CONFIG_FILE)
+     set(DOXY_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/doxy.config")
+     add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${DOXY_CONFIG})
+ 
+-    install(DIRECTORY "${PROJECT_BINARY_DIR}/doc/html/" DESTINATION "share/doc/lib${PROJECT_NAME}")
++    install(DIRECTORY "${PROJECT_BINARY_DIR}/doc/html/" DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ 
+     set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES doc)
+ endmacro()
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0006-cmake-Use-correct-installation-dir-for-cmake-config-.patch b/meta-oe/recipes-support/exiv2/exiv2/0006-cmake-Use-correct-installation-dir-for-cmake-config-.patch
new file mode 100644
index 000000000..0bba2af49
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0006-cmake-Use-correct-installation-dir-for-cmake-config-.patch
@@ -0,0 +1,124 @@
+From 420e4631da1372da1be06af8f6032429c1f14d02 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Thu, 3 Jan 2019 10:18:27 +0100
+Subject: [PATCH 67/70] cmake: Use correct installation dir for cmake config
+ files
+
+This is the path cmake will look for those files by default. At least on
+UNIX systems.
+
+Fixes #623
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ releasenotes/CYGWIN/ReadMe.txt | 2 +-
+ releasenotes/Darwin/ReadMe.txt | 2 +-
+ releasenotes/Linux/ReadMe.txt  | 1 +
+ releasenotes/MinGW/ReadMe.txt  | 2 +-
+ releasenotes/msvc/ReadMe.txt   | 2 +-
+ releasenotes/releasenotes.txt  | 5 +++++
+ src/CMakeLists.txt             | 2 +-
+ 7 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/releasenotes/CYGWIN/ReadMe.txt b/releasenotes/CYGWIN/ReadMe.txt
+index 9161ca34..bba70fe6 100644
+--- a/releasenotes/CYGWIN/ReadMe.txt
++++ b/releasenotes/CYGWIN/ReadMe.txt
+@@ -7,9 +7,9 @@ Structure of the bundle:
+ bin/exiv2.exe                             exiv2 and sample applications
+ bin/cygexiv2-27.dll                       DLL
+ lib/libexiv2.dll.a & libxmp.a             link libraries
++lib/cmake/exiv2                           consume CMake files
+ lib/pkgconfig/exiv2.pc                    pkg-config file
+ share/man                                 man pages
+-share/exiv2/cmake                         consume CMake files
+ samples/exifprint.cpp                     sample code
+ logs                                      build and test logs
+ 
+diff --git a/releasenotes/Darwin/ReadMe.txt b/releasenotes/Darwin/ReadMe.txt
+index d3e61177..57910713 100644
+--- a/releasenotes/Darwin/ReadMe.txt
++++ b/releasenotes/Darwin/ReadMe.txt
+@@ -6,10 +6,10 @@ Structure of the bundle
+ 
+ bin/exiv2                                 exiv2 and sample applications
+ lib/libexiv2.0.27.0.0.dylib & libxmp.a    libraries
++lib/cmake/exiv2                           consume CMake files
+ lib/pkgconfig/exiv2.pc                    pkg-config file
+ include/exiv2/                            include files
+ share/man                                 man pages
+-share/exiv2/cmake                         consume CMake files
+ samples/exifprint.cpp                     sample code
+ logs                                      build and test logs
+ 
+diff --git a/releasenotes/Linux/ReadMe.txt b/releasenotes/Linux/ReadMe.txt
+index 03348302..0737b3a4 100644
+--- a/releasenotes/Linux/ReadMe.txt
++++ b/releasenotes/Linux/ReadMe.txt
+@@ -7,6 +7,7 @@ Structure of the bundle:
+ bin/exiv2                                 exiv2 and sample applications
+ lib/libexiv2.so.0.27.0.0 & libxmp.a       libraries
+ lib/pkgconfig/exiv2.pc                    pkg-config file
++lib/cmake/exiv2                           consume CMake files
+ include/exiv2/                            include files
+ share/                                    man pages
+ samples/exifprint.cpp                     sample code
+diff --git a/releasenotes/MinGW/ReadMe.txt b/releasenotes/MinGW/ReadMe.txt
+index 884d7502..98cd7770 100644
+--- a/releasenotes/MinGW/ReadMe.txt
++++ b/releasenotes/MinGW/ReadMe.txt
+@@ -7,10 +7,10 @@ Structure of the bundle:
+ bin/exiv2.exe                             exiv2 and sample applications
+ bin/msys-exiv2-27.dll                     exiv2 dll
+ lib/libexiv2.dll.a & libxmp.a             link libraries
++lib/cmake/exiv2                           consume CMake files
+ lib/pkgconfig/exiv2.pc                    pkg-config file
+ include/exiv2/                            include files
+ share/man                                 man pages
+-share/exiv2/cmake                         consume CMake files
+ samples/exifprint.cpp                     sample code
+ logs                                      build and test logs
+ 
+diff --git a/releasenotes/msvc/ReadMe.txt b/releasenotes/msvc/ReadMe.txt
+index de1dcbfe..e625ab49 100644
+--- a/releasenotes/msvc/ReadMe.txt
++++ b/releasenotes/msvc/ReadMe.txt
+@@ -7,8 +7,8 @@ Structure of the bundle:
+ bin/exiv2.exe                             exiv2 and sample applications
+ bin/exiv2.dll                             dll
+ lib/exiv2.lib & xmp.lib                   link libraries
++lib/cmake/exiv2                           consume CMake files
+ include/exiv2/                            include files
+-share/exiv2/cmake                         consume CMake files
+ samples/exifprint.cpp                     sample code
+ logs                                      build and test logs
+ 
+diff --git a/releasenotes/releasenotes.txt b/releasenotes/releasenotes.txt
+index b71b4519..226c078b 100644
+--- a/releasenotes/releasenotes.txt
++++ b/releasenotes/releasenotes.txt
+@@ -1,3 +1,8 @@
++Exiv2 v0.27.1
++-------------
++
++#623 Use correct installation path for generated docs and cmake config files
++
+ Exiv2 v0.27.0
+ -------------
+ 
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index adb285b1..4a05ee4f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -234,7 +234,7 @@ install(FILES
+     ${CMAKE_BINARY_DIR}/exiv2lib_export.h
+     DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/exiv2)
+ 
+-install(EXPORT exiv2Config DESTINATION "share/exiv2/cmake")
++install(EXPORT exiv2Config DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/exiv2")
+ 
+ # ******************************************************************************
+ # exiv2 application
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0007-xmpsdk-Build-with-DBanAllEntityUsage-1.patch b/meta-oe/recipes-support/exiv2/exiv2/0007-xmpsdk-Build-with-DBanAllEntityUsage-1.patch
new file mode 100644
index 000000000..0983447dd
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0007-xmpsdk-Build-with-DBanAllEntityUsage-1.patch
@@ -0,0 +1,34 @@
+From e44d1dbe769f3b60a3d671be310f4af4f9490e6b Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Thu, 3 Jan 2019 10:31:25 +0100
+Subject: [PATCH 68/70] xmpsdk: Build with -DBanAllEntityUsage=1
+
+Prevent a denial-service-attack related to XML entity expansion
+("billion laughs attack").
+See https://bugzilla.redhat.com/show_bug.cgi?id=888769
+
+Search for BanAllEntityUsage in xmpsdk/src/ExpatAdapter.cpp
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ xmpsdk/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/xmpsdk/CMakeLists.txt b/xmpsdk/CMakeLists.txt
+index fa521043..ae011dc3 100644
+--- a/xmpsdk/CMakeLists.txt
++++ b/xmpsdk/CMakeLists.txt
+@@ -38,6 +38,10 @@ target_include_directories(exiv2-xmp
+         ${EXPAT_INCLUDE_DIR}
+ )
+ 
++# Prevent a denial-service-attack related to XML entity expansion
++# ("billion laughs attack").
++# See https://bugzilla.redhat.com/show_bug.cgi?id=888769
++target_compile_definitions(exiv2-xmp PRIVATE BanAllEntityUsage=1)
+ if (MSVC)
+     target_compile_definitions(exiv2-xmp PRIVATE XML_STATIC)
+ endif()
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0008-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch b/meta-oe/recipes-support/exiv2/exiv2/0008-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch
new file mode 100644
index 000000000..7f351249b
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0008-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch
@@ -0,0 +1,31 @@
+From dac6bb6043fc046f7cbad73c281eb258a981267f Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn at cryptomilk.org>
+Date: Thu, 3 Jan 2019 10:41:40 +0100
+Subject: [PATCH 69/70] xmpsdk: Fix compile warnings in ExpatAdapter.cpp
+
+The code has been enabled with -DBanAllEntityUsage=1
+
+Signed-off-by: Andreas Schneider <asn at cryptomilk.org>
+---
+ xmpsdk/src/ExpatAdapter.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/xmpsdk/src/ExpatAdapter.cpp b/xmpsdk/src/ExpatAdapter.cpp
+index 79669f52..09117c75 100644
+--- a/xmpsdk/src/ExpatAdapter.cpp
++++ b/xmpsdk/src/ExpatAdapter.cpp
+@@ -484,7 +484,10 @@ static void CommentHandler ( void * userData, XMP_StringPtr comment )
+ static void StartDoctypeDeclHandler ( void * userData, XMP_StringPtr doctypeName,
+ 									  XMP_StringPtr sysid, XMP_StringPtr pubid, int has_internal_subset )
+ {
+-	IgnoreParam(userData);
++	IgnoreParam(doctypeName);
++	IgnoreParam(sysid);
++	IgnoreParam(pubid);
++	IgnoreParam(has_internal_subset);
+ 
+ 	ExpatAdapter * thiz = (ExpatAdapter*)userData;
+ 
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0009-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch b/meta-oe/recipes-support/exiv2/exiv2/0009-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch
new file mode 100644
index 000000000..c65f13bc3
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0009-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch
@@ -0,0 +1,27 @@
+From ae9eb90108c0f6a3f2030cf4e4ae907a8b203b6a Mon Sep 17 00:00:00 2001
+From: Luis Diaz Mas <piponazo at gmail.com>
+Date: Sat, 12 Jan 2019 13:39:12 +0100
+Subject: [PATCH 79/98] Fixes in .pc file for being compatible with more
+ distributions
+
+---
+ cmake/exiv2.pc.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/exiv2.pc.in b/cmake/exiv2.pc.in
+index e477696d..9018472b 100644
+--- a/cmake/exiv2.pc.in
++++ b/cmake/exiv2.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/lib
+-includedir=${prefix}/include
++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+ 
+ Name: exiv2
+ Description: @PROJECT_DESCRIPTION@
+-- 
+2.17.2
+
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0010-create-install-exiv2ConfigVersion.cmake.patch b/meta-oe/recipes-support/exiv2/exiv2/0010-create-install-exiv2ConfigVersion.cmake.patch
new file mode 100644
index 000000000..0aacb70da
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/0010-create-install-exiv2ConfigVersion.cmake.patch
@@ -0,0 +1,50 @@
+From 487567b209ca40e56f9357b89c907253a7be8bf0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony at gmail.com>
+Date: Wed, 24 Apr 2019 18:59:13 +0200
+Subject: [PATCH] create & install exiv2ConfigVersion.cmake
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Backport [1]
+
+[1] https://github.com/Exiv2/exiv2/commit/ce0284bc1f5cef635583130a7e807f70f034bc01
+
+Signed-off-by: Andreas Müller <schnitzeltony at gmail.com>
+---
+ src/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 6418bbd..f0b663a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -7,6 +7,7 @@ if( EXIV2_BUILD_UNIT_TESTS )
+ endif()
+ 
+ 
++include(CMakePackageConfigHelpers)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ 
+ 
+@@ -218,6 +219,7 @@ if( ICONV_FOUND )
+     target_link_libraries( exiv2lib PRIVATE Iconv::Iconv )
+ endif()
+ 
++write_basic_package_version_file(exiv2ConfigVersion.cmake COMPATIBILITY ExactVersion)
+ 
+ install(TARGETS exiv2lib EXPORT exiv2Config
+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+@@ -232,6 +234,9 @@ install(FILES
+ 
+ install(EXPORT exiv2Config DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/exiv2")
+ 
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2ConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/exiv2")
++
++
+ # ******************************************************************************
+ # exiv2 application
+ 
+-- 
+2.20.1
+
-- 
2.20.1



More information about the Openembedded-devel mailing list