diff --git a/.exiv2.metadata b/.exiv2.metadata new file mode 100644 index 0000000..d57a45e --- /dev/null +++ b/.exiv2.metadata @@ -0,0 +1 @@ +cd0ae9c67163338fa4a41cfb5e8e1e2a7c36349e SOURCES/exiv2-0.27.0a-Source.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2fd671d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/exiv2-0.27.0a-Source.tar.gz diff --git a/SOURCES/0022-cmake-man-pages-only-installed-with-the-exiv2-app.patch b/SOURCES/0022-cmake-man-pages-only-installed-with-the-exiv2-app.patch new file mode 100644 index 0000000..889e8f8 --- /dev/null +++ b/SOURCES/0022-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?= +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/SOURCES/0035-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch b/SOURCES/0035-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch new file mode 100644 index 0000000..84c0722 --- /dev/null +++ b/SOURCES/0035-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?= +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/SOURCES/0064-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch b/SOURCES/0064-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch new file mode 100644 index 0000000..08a3073 --- /dev/null +++ b/SOURCES/0064-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 +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 +--- + 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 + $ + 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/SOURCES/0065-cmake-Install-header-files-without-globbing.patch b/SOURCES/0065-cmake-Install-header-files-without-globbing.patch new file mode 100644 index 0000000..4503375 --- /dev/null +++ b/SOURCES/0065-cmake-Install-header-files-without-globbing.patch @@ -0,0 +1,111 @@ +From 0b34ccb9a3b26cd1c5267c6a5c15e9fa1a665adb Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +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 +--- + 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/SOURCES/0066-cmake-Use-correct-installation-dir-for-generated-doc.patch b/SOURCES/0066-cmake-Use-correct-installation-dir-for-generated-doc.patch new file mode 100644 index 0000000..5a53c95 --- /dev/null +++ b/SOURCES/0066-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 +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 +--- + 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/SOURCES/0067-cmake-Use-correct-installation-dir-for-cmake-config-.patch b/SOURCES/0067-cmake-Use-correct-installation-dir-for-cmake-config-.patch new file mode 100644 index 0000000..0bba2af --- /dev/null +++ b/SOURCES/0067-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 +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 +--- + 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/SOURCES/0068-xmpsdk-Build-with-DBanAllEntityUsage-1.patch b/SOURCES/0068-xmpsdk-Build-with-DBanAllEntityUsage-1.patch new file mode 100644 index 0000000..0983447 --- /dev/null +++ b/SOURCES/0068-xmpsdk-Build-with-DBanAllEntityUsage-1.patch @@ -0,0 +1,34 @@ +From e44d1dbe769f3b60a3d671be310f4af4f9490e6b Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +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 +--- + 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/SOURCES/0069-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch b/SOURCES/0069-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch new file mode 100644 index 0000000..7f35124 --- /dev/null +++ b/SOURCES/0069-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch @@ -0,0 +1,31 @@ +From dac6bb6043fc046f7cbad73c281eb258a981267f Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +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 +--- + 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/SOURCES/0079-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch b/SOURCES/0079-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch new file mode 100644 index 0000000..c65f13b --- /dev/null +++ b/SOURCES/0079-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 +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/SPECS/exiv2.spec b/SPECS/exiv2.spec new file mode 100644 index 0000000..1c40614 --- /dev/null +++ b/SPECS/exiv2.spec @@ -0,0 +1,303 @@ + +Summary: Exif and Iptc metadata manipulation library +Name: exiv2 +Version: 0.27.0 +Release: 2%{?dist} + +License: GPLv2+ +URL: http://www.exiv2.org/ +#Source0: https://github.com/Exiv2/%{name}/archive/exiv2-%{version}.tar.gz +Source0: http://exiv2.org/builds/%{name}-%{version}a-Source.tar.gz + +## upstream patches +Patch22: 0022-cmake-man-pages-only-installed-with-the-exiv2-app.patch +Patch35: 0035-cmake-ignore-warnings-about-missing-PDB-files-in-3rd.patch +Patch64: 0064-cmake-Rename-xmp-to-exiv2-xmp-to-avoid-name-conflict.patch +Patch65: 0065-cmake-Install-header-files-without-globbing.patch +Patch66: 0066-cmake-Use-correct-installation-dir-for-generated-doc.patch +Patch67: 0067-cmake-Use-correct-installation-dir-for-cmake-config-.patch +Patch68: 0068-xmpsdk-Build-with-DBanAllEntityUsage-1.patch +Patch69: 0069-xmpsdk-Fix-compile-warnings-in-ExpatAdapter.cpp.patch +Patch79: 0079-Fixes-in-.pc-file-for-being-compatible-with-more-dis.patch + +%if 0%{?rhel} == 7 +BuildRequires: llvm-toolset-7-cmake +%else +BuildRequires: cmake +%endif +BuildRequires: expat-devel +BuildRequires: gettext +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libcurl) +BuildRequires: zlib-devel +# docs +BuildRequires: doxygen graphviz libxslt + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description +A command line utility to access image metadata, allowing one to: +* print the Exif metadata of Jpeg images as summary info, interpreted values, + or the plain data for each tag +* print the Iptc metadata of Jpeg images +* print the Jpeg comment of Jpeg images +* set, add and delete Exif and Iptc metadata of Jpeg images +* adjust the Exif timestamp (that's how it all started...) +* rename Exif image files according to the Exif timestamp +* extract, insert and delete Exif metadata (including thumbnails), + Iptc metadata and Jpeg comments + +%package devel +Summary: Header files, libraries and development documentation for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description devel +%{summary}. + +%package libs +Summary: Exif and Iptc metadata manipulation library +# not strictly required, but convenient and expected +%if 0%{?rhel} && 0%{?rhel} <= 7 +Requires: %{name} = %{version}-%{release} +%else +Recommends: %{name} = %{version}-%{release} +%endif +%description libs +A C++ library to access image metadata, supporting full read and write access +to the Exif and Iptc metadata, Exif MakerNote support, extract and delete +methods for Exif thumbnails, classes to access Ifd and so on. + +%package doc +Summary: Api documentation for %{name} +BuildArch: noarch +%description doc +%{summary}. + + +%prep +%autosetup -n %{name}-%{version}-Source -p1 + +%build +%if 0%{?rhel} == 7 +source /opt/rh/llvm-toolset-7/enable +%define __cmake /opt/rh/llvm-toolset-7/root/usr/bin/cmake +%endif + +%{cmake} . \ + -DCMAKE_INSTALL_DOCDIR="%{_pkgdocdir}" \ + -DEXIV2_BUILD_DOC:BOOL=ON \ + -DEXIV2_BUILD_PO:BOOL=ON \ + -DEXIV2_BUILD_SAMPLES:BOOL=OFF + +%make_build +%make_build doc + +%install +make install/fast DESTDIR=%{buildroot} + +%find_lang exiv2 --with-man + +## unpackaged files +rm -fv %{buildroot}%{_libdir}/libexiv2.la +#rm -fv %{buildroot}%{_libdir}/pkgconfig/exiv2.lsm + +%check +export PKG_CONFIG_PATH="%{buildroot}%{_libdir}/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}" +test "$(pkg-config --modversion exiv2)" = "%{version}" +test "$(pkg-config --variable=libdir exiv2)" = "%{_libdir}" +test -x %{buildroot}%{_libdir}/libexiv2.so + + +%files -f exiv2.lang +%license COPYING +%{_bindir}/exiv2 +%{_mandir}/man1/exiv2*.1* + +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig + +%files libs +%{_libdir}/libexiv2.so.27* +%{_libdir}/libexiv2.so.%{version} + +%files devel +%{_includedir}/exiv2/ +%{_libdir}/libexiv2.so +%{_libdir}/pkgconfig/exiv2.pc +%{_libdir}/cmake/exiv2/ +%{_libdir}/libexiv2-xmp.a + +%files doc +%{_pkgdocdir}/ + + +%changelog +* Mon Feb 04 2019 Jan Grulich - 0.27.0-2 +- Minor improvements + Resolves: bz#1652637 + +* Tue Jan 15 2019 Jan Grulich - 0.27.0-1 +- Exiv2 0.27.0 + Resolves: bz#1652637 + +* Fri Feb 23 2018 Jan Grulich - 0.26-3 +- Fix uncontrolled recursion in image.cpp:Exiv2::Image::printIFDStructure() which can allow a + remote attacker to cause a denial of service via a crafted tif file + Resolves: bz#1548410 + +* Thu Feb 22 2018 Jan Grulich - 0.26-2 +- Fix heap-based buffer over-read in Exiv2::Image::byteSwap4 in image.cpp + Resolves: bz#1547207 + + Fix heap-based buffer over-read in Exiv2::getULong function in types.cpp + Resolves: bz#1545232 + +* Tue Aug 29 2017 Jan Grulich - 0.26-1 +- Update to 0.26 + Resolves: bz#1420227 + +* Fri Jan 24 2014 Daniel Mach - 0.23-6 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 0.23-5 +- Mass rebuild 2013-12-27 + +* Wed Feb 13 2013 Fedora Release Engineering - 0.23-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 14 2012 Rex Dieter 0.23-3 +- empty html doc dir (#848025) + +* Thu Jul 19 2012 Fedora Release Engineering - 0.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Apr 24 2012 Rex Dieter 0.23-1 +- exiv2-0.23 +- abi bump + +* Tue Feb 28 2012 Fedora Release Engineering - 0.22-5 +- Rebuilt for c++ ABI breakage + +* Mon Jan 16 2012 Rex Dieter 0.22-4 +- better rpath handling +- revert locale change, move back to -libs + +* Mon Jan 16 2012 Rex Dieter 0.22-3 +- move locale files to main pkg (from -libs) + +* Fri Jan 13 2012 Fedora Release Engineering - 0.22-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Oct 14 2011 Rex Dieter 0.22-1 +- exiv2-0.22 + +* Tue Sep 27 2011 Rex Dieter 0.21.1-3 +- New Tamron 70-300 mm lens improperly recognized (#708403) + +* Mon Sep 26 2011 Rex Dieter 0.21.1-2 +- gthumb crashes because of bug in exiv2 0.21.1 (#741429) + +* Sat Feb 26 2011 Rex Dieter 0.21.1-1 +- exiv2-0.21.1 + +* Tue Feb 08 2011 Fedora Release Engineering - 0.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Rex Dieter 0.21-2 +- Move ldconfig scriptlet calls to -libs (#672361) + +* Wed Dec 01 2010 Rex Dieter - 0.21-1 +- exiv2-0.21 + +* Sun May 30 2010 Rex Dieter - 0.20-1 +- exiv2-0.20 + +* Wed Dec 30 2009 Rex Dieter - 0.19-1 +- exiv2-0.19 (#552275) + +* Sun Dec 13 2009 Rex Dieter - 0.18.2-3 +- -libs unconditional +- tighten deps using %%?_isa + +* Fri Aug 07 2009 Rex Dieter - 0.18.2-2 +- (again) drop -fvisibility-inlines-hidden (#496050) + +* Fri Jul 24 2009 Rex Dieter - 0.18.2-1 +- exiv2-0.18.2 +- drop visibility patch + +* Fri Apr 17 2009 Rex Dieter - 0.18.1-1 +- exiv2-0.18.1 +- drop -fvisibility-inlines-hidden (#496050) + +* Tue Feb 24 2009 Fedora Release Engineering - 0.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Dec 18 2008 Rex Dieter 0.18-1 +- exiv2-0.18 + +* Fri Dec 12 2008 Rex Dieter 0.17.2-2 +- rebuild for pkgconfig deps + +* Mon Jun 23 2008 Rex Dieter 0.17.1-1 +- exiv2-0.17.1 + +* Mon Feb 11 2008 Rex Dieter 0.16-2 +- respin (gcc43) +- gcc43 patch + +* Sun Jan 13 2008 Rex Dieter 0.16-1 +- eviv2-0.16 + +* Mon Dec 17 2007 Rex Dieter 0.16-0.3.pre1 +- CVE-2007-6353 (#425924) + +* Mon Nov 26 2007 Rex Dieter 0.16-0.2.pre1 +- -libs subpkg toggle (f8+) + +* Tue Nov 13 2007 Rex Dieter 0.16-0.1.pre1 +- exiv2-0.16-pre1 + +* Tue Sep 18 2007 Rex Dieter 0.15-4 +- -libs: -Requires: %%name + +* Tue Aug 21 2007 Rex Dieter 0.15-3 +- -libs subpkg to be multilib-friendlier (f8+) + +* Sat Aug 11 2007 Rex Dieter 0.15-2 +- License: GPLv2+ + +* Thu Jul 12 2007 Rex Dieter 0.15-1 +- exiv2-0.15 + +* Mon Apr 02 2007 Rex Dieter 0.14-1 +- exiv2-0.14 + +* Tue Nov 28 2006 Rex Dieter 0.12-1 +- exiv2-0.12 + +* Wed Oct 04 2006 Rex Dieter 0.11-3 +- respin + +* Tue Sep 19 2006 Rex Dieter 0.11-2 +- BR: zlib-devel + +* Tue Sep 19 2006 Rex Dieter 0.11-1 +- exiv2-0.11 + +* Tue Aug 29 2006 Rex Dieter 0.10-2 +- fc6 respin + +* Sat Jun 03 2006 Rex Dieter 0.10-1 +- 0.10 + +* Wed May 17 2006 Rex Dieter 0.9.1-3 +- cleanup %%description +- set eXecute bit on installed lib. +- no_rpath patch +- deps patch (items get (re)compiled on *every* call to 'make') + +* Wed May 17 2006 Rex Dieter 0.9.1-2 +- %%post/%%postun: /sbin/ldconfig + +* Tue May 16 2006 Rex Dieter 0.9.1-1 +- first try