* [gentoo-commits] proj/musl:master commit in: media-gfx/exiv2/, media-gfx/exiv2/files/
@ 2016-06-02 5:22 Anthony G. Basile
0 siblings, 0 replies; 4+ messages in thread
From: Anthony G. Basile @ 2016-06-02 5:22 UTC (permalink / raw
To: gentoo-commits
commit: 51f22520006e88a96e279b557919b698ad7998ba
Author: Laine Gholson <laine.gholson <AT> gmail <DOT> com>
AuthorDate: Thu Jun 2 01:05:34 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Jun 2 05:20:24 2016 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=51f22520
media-gfx/exiv2: fix build
This patch adds a dependency on dev-libs/icu for uconv.
media-gfx/exiv2/Manifest | 10 ++
media-gfx/exiv2/exiv2-0.25-r2.ebuild | 130 +++++++++++++++++++++
media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch | 71 +++++++++++
.../exiv2/files/exiv2-0.25-fix-install-dirs.patch | 64 ++++++++++
.../exiv2/files/exiv2-0.25-fix-without-zlib.patch | 22 ++++
.../files/exiv2-0.25-fvisibility-hidden.patch | 19 +++
.../exiv2/files/exiv2-0.25-hide-symbols.patch | 97 +++++++++++++++
media-gfx/exiv2/files/exiv2-0.25-musl.patch | 12 ++
.../exiv2/files/exiv2-0.25-tools-optional.patch | 27 +++++
media-gfx/exiv2/metadata.xml | 20 ++++
10 files changed, 472 insertions(+)
diff --git a/media-gfx/exiv2/Manifest b/media-gfx/exiv2/Manifest
new file mode 100644
index 0000000..8cb47a4
--- /dev/null
+++ b/media-gfx/exiv2/Manifest
@@ -0,0 +1,10 @@
+AUX exiv2-0.25-fix-docs.patch 2164 SHA256 8d50b058fcaefc15455cae9c5e5edb2a5217acfe1c8de7f4d572bc3cfa2f17cd SHA512 be4e2077a52f54384ef6660e045c6eedda06bdacc3ca804cc6b9554b47be717bf50c4ac1ca42fa452f204e784a2f863ffba7276b17342bde67f9a53db5749d8b WHIRLPOOL 60f86dddcbe67f63ddb7d0332be05505024878c5cbbee99c8a4c9567906e9da94b95b64a7655f913f5e86a4e0917c849840f8d9e91eb1864cdfb095d7c844412
+AUX exiv2-0.25-fix-install-dirs.patch 2415 SHA256 a627484a3960071f01eb6f656f9af0f9a0b2771d9d9f6cd8a3429f378823a48a SHA512 402f9aacb8b6af95e94ea3d31f0c438da4407fc037004a3e99408ba5cce8cde5dd1d0c98d1e619fff56b0051516e20610a98899e5ff22d00b3827384f82e7493 WHIRLPOOL f58aa8122e207f0271a7f3a0fb6ff0297b630e187a65622ea55b0159d03acbbf09132f8a6c836485730ec5a4d085ad55e53dfe86fe08e47b449f44b68bb28a5f
+AUX exiv2-0.25-fix-without-zlib.patch 662 SHA256 66618de00ba07ec660675e2dff99138ba56fb0a8cbdab6a8a024b4f3ca93db3c SHA512 c15173bc687c2008a1e3cd04623167dd085f3e9f7655107fc75880df3d5bb51688572d2d3fc7a722763eaa5ff45bcb769f4090c615f8b3ffbf6d0417dccab8d0 WHIRLPOOL d2842c00569f578b41f543f944757b72963ac4d521017701db75c630ead80295bbb8fc39091f6ac34661e21b6910ef78d12db6f35659d79e1c25ec437d0ef7d7
+AUX exiv2-0.25-fvisibility-hidden.patch 700 SHA256 2d0eb374e3df7dd58a513b616786e9421f63e575c2812d0b3980e0af29d03d96 SHA512 7dd251fa6e09ecc0493899fdc24431f636e56bf86d33fd4cf4b46fc27b14ce7a68cb4021a3799260398f48b256f403e00b86d143a012d3871e0de5bf57db9205 WHIRLPOOL af10468fad08e51f16141e70409e5ec718d5d669db8203df6a09de2fd824eb46376f87195cf1e744c60c567943c24d54afe388d54eeb5c240f876ebbcbd59514
+AUX exiv2-0.25-hide-symbols.patch 4098 SHA256 b6fe63951717360caad547275c3810c42803ef2d8dea25c75e02b45b9d7add9e SHA512 aed6746329b12769d8084ca79a99eccd6b52449b80c0b3d1c1d6b22294c2b62398366f0715efa207e2ace0ed52740a8eb81af58d17322d42a4674336fd24e725 WHIRLPOOL ac8e900303ac0b19f24b5eff13791dd42459395763d4c8795ff978c1f2c05431b3f3586dedd2b7df375452d3826d7356fc190c4ba3bc8fc4713792bc9d31d033
+AUX exiv2-0.25-musl.patch 464 SHA256 c32333fa1d157bd2b14aaf18e19c2a67511baad89a9b526d6f984bb955dbf9ee SHA512 25e7d53fd2840d1166795a0a27c07de9370f493b1c8a047a020b73fe9330303d97a48414937c25e5aa5961fa7d416b10e4e3ea6b35008e4d9705ed19d71bb85d WHIRLPOOL 0e71a59b5fa87633c98e46385260835077e3a93c7a9aad9022c58060efbfecba295c37726d248580b9a79ee7cecdc8f0e23f24cfcaa1085ab33e44f33bbc5d49
+AUX exiv2-0.25-tools-optional.patch 1332 SHA256 6c9a3ed5c2b9acff10c3b2f2dd2ca639936beaf6263526b9d85ede579a1d67e1 SHA512 14a8703b86dc4a7a1f210e26bd6532c529f850dd1b25ef116c703a576c389a120e3f8b1087e289cd8b44073071ac88a97503dc2c0cf72f21d32094b2cabbc58c WHIRLPOOL dc7efa7ddcaf1be665cd79aff0b36a0f2b135a87a3a93f9cb6091105b965b4b009e569c447d54d602482410ec59d674d99a71bee2699e8007575b8e2cc727998
+DIST exiv2-0.25.tar.gz 5434325 SHA256 c80bfc778a15fdb06f71265db2c3d49d8493c382e516cb99b8c9f9cbde36efa4 SHA512 08d4e655ffdde715e0214f4bef01d55aba9b8ba517456a60e254a0f8541c20479e407545db28ca90a69dee8def6941fdd88f9a557fb382ebebe49e363aca8e8e WHIRLPOOL f9e7a6947dac5870e0574253b8c1cb1e7d31a916a9e1c4417c73168046c0b4bed90b9c77253444604163bcf6dca204dab92a52cb03bdcb0f85c807327623f8ac
+EBUILD exiv2-0.25-r2.ebuild 3155 SHA256 b3569ae890ba2384377c8bc2ec221803ccf20ca78e3abf77214c41f69ef9bc55 SHA512 239e31fe5fb441be56ad222fb780fae13a05b9cd6a09f5807f05a3c5879c5b2f28292389b225fa37e63053be8c3093befaf0f7a854038be4f2d37600c9a0ef06 WHIRLPOOL f17501613b331d99001c0e36d565d261d432946cde5d030d8cb82dcfb585c3aa3965bd470f03997f82f1c8df81de4cfe5212fd92ee635fb1499dd860fd79d8fe
+MISC metadata.xml 678 SHA256 08fd0d664529713f492576de434fa7e9927918229013eb4ec7c88b195ca0e9eb SHA512 7c5d5e3f23671d316d8deb97d5d3b8e012ff14fb340a71c6cb5fb9e0b76c5c4e6e3b9ce86a613c7bfc6326828bcf0a14d3bd13182aad2a7e51bb0cf4dab26497 WHIRLPOOL c8606b9365f06230c7effdb719bbcbd84e5bfdfdce85b0d57b000434db9426fdc6cee9c7b77f7d1bd44057d177494f1456ac5158e37397e47598c6fb5048e3bc
diff --git a/media-gfx/exiv2/exiv2-0.25-r2.ebuild b/media-gfx/exiv2/exiv2-0.25-r2.ebuild
new file mode 100644
index 0000000..cef5555
--- /dev/null
+++ b/media-gfx/exiv2/exiv2-0.25-r2.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils cmake-multilib python-any-r1
+
+DESCRIPTION="EXIF, IPTC and XMP metadata C++ library and command line utility"
+HOMEPAGE="http://www.exiv2.org/"
+SRC_URI="http://www.exiv2.org/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/14"
+KEYWORDS="amd64 arm ~mips ppc x86"
+IUSE_LINGUAS="bs de es fi fr gl ms pl pt ru sk sv ug uk vi"
+IUSE="doc examples nls png webready xmp $(printf 'linguas_%s ' ${IUSE_LINGUAS})"
+
+RDEPEND="
+ >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
+ dev-libs/icu[${MULTILIB_USEDEP}]
+ nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
+ png? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
+ webready? (
+ net-libs/libssh[${MULTILIB_USEDEP}]
+ net-misc/curl[${MULTILIB_USEDEP}]
+ )
+ xmp? ( >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] )
+"
+
+DEPEND="${RDEPEND}
+ doc? (
+ app-doc/doxygen
+ dev-libs/libxslt
+ virtual/pkgconfig
+ media-gfx/graphviz
+ ${PYTHON_DEPS}
+ )
+ nls? ( sys-devel/gettext )
+"
+
+DOCS=( README doc/ChangeLog doc/cmd.txt )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.25-fix-install-dirs.patch"
+ "${FILESDIR}/${PN}-0.25-fix-without-zlib.patch"
+ "${FILESDIR}/${PN}-0.25-hide-symbols.patch"
+ "${FILESDIR}/${PN}-0.25-fvisibility-hidden.patch"
+ "${FILESDIR}/${PN}-0.25-musl.patch"
+ # TODO: Take to upstream
+ "${FILESDIR}/${PN}-0.25-fix-docs.patch"
+ "${FILESDIR}/${PN}-0.25-tools-optional.patch"
+)
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ rm -r msvc* build || die "Failed to remove msvc dirs"
+
+ if [[ ${PV} != *9999 ]] ; then
+ if [[ -d po ]] ; then
+ pushd po > /dev/null || die
+ for lang in *.po; do
+ if ! has ${lang%.po} ${LINGUAS} ; then
+ rm -rf ${lang} || die
+ fi
+ done
+ popd > /dev/null || die
+ else
+ die "Failed to prepare LINGUAS - po directory moved?"
+ fi
+ fi
+
+ # convert docs to UTF-8
+ local i
+ for i in doc/cmd.txt; do
+ einfo "Converting "${i}" to UTF-8"
+ uconv -f LATIN1 -t UTF-8 "${i}" > "${i}.tmp" || die
+ mv -f "${i}.tmp" "${i}" || die
+ done
+
+ if use doc; then
+ einfo "Updating doxygen config"
+ doxygen &>/dev/null -u config/Doxyfile || die
+ fi
+
+ cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DEXIV2_ENABLE_BUILD_PO=YES
+ -DEXIV2_ENABLE_BUILD_SAMPLES=NO
+ -DEXIV2_ENABLE_CURL=$(usex webready)
+ -DEXIV2_ENABLE_NLS=$(usex nls)
+ -DEXIV2_ENABLE_PNG=$(usex png)
+ -DEXIV2_ENABLE_SSH=$(usex webready)
+ -DEXIV2_ENABLE_WEBREADY=$(usex webready)
+ -DEXIV2_ENABLE_XMP=$(usex xmp)
+ -DEXIV2_ENABLE_LIBXMP=NO
+ $(multilib_is_native_abi || \
+ echo -DEXIV2_ENABLE_TOOLS=NO)
+ )
+
+ cmake-utils_src_configure
+}
+
+multilib_src_compile() {
+ cmake-utils_src_compile
+
+ if multilib_is_native_abi; then
+ use doc && emake -j1 doc
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files --all
+
+ use xmp && dodoc doc/{COPYING-XMPSDK,README-XMP,cmdxmp.txt}
+ use doc && dodoc -r "${S}"/doc/html
+
+ if use examples; then
+ docinto examples
+ dodoc samples/*.cpp
+ fi
+}
diff --git a/media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch b/media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch
new file mode 100644
index 0000000..e2bf677
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch
@@ -0,0 +1,71 @@
+--- a/CMakeLists.txt 2015-07-19 16:04:35.363628707 +0200
++++ b/CMakeLists.txt 2015-07-19 16:28:31.051680136 +0200
+@@ -216,9 +216,7 @@
+ ADD_SUBDIRECTORY( xmpsdk )
+ ADD_SUBDIRECTORY( src )
+
+-IF( EXIV2_ENABLE_BUILD_SAMPLES )
+- ADD_SUBDIRECTORY( samples )
+-ENDIF( EXIV2_ENABLE_BUILD_SAMPLES )
++ADD_SUBDIRECTORY( samples )
+
+ IF( EXIV2_ENABLE_BUILD_PO )
+ ADD_SUBDIRECTORY( po )
+--- a/samples/CMakeLists.txt 2015-07-19 16:04:35.360628744 +0200
++++ b/samples/CMakeLists.txt 2015-07-19 16:30:46.415987850 +0200
+@@ -20,7 +20,11 @@
+ endif()
+ include_directories("${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src")
+
+-SET( SAMPLES addmoddel.cpp
++SET( SAMPLES taglist.cpp )
++
++IF( EXIV2_ENABLE_BUILD_SAMPLES )
++ SET( SAMPLES ${SAMPLES}
++ addmoddel.cpp
+ convert-test.cpp
+ easyaccess-test.cpp
+ exifcomment.cpp
+@@ -38,7 +42,6 @@
+ mmap-test.cpp
+ prevtest.cpp
+ stringto-test.cpp
+- taglist.cpp
+ tiff-test.cpp
+ werror-test.cpp
+ write-test.cpp
+@@ -47,6 +50,7 @@
+ xmpparser-test.cpp
+ xmpsample.cpp
+ )
++ENDIF()
+
+ FOREACH(entry ${SAMPLES})
+ STRING( REPLACE ".cpp" "" target ${entry})
+@@ -63,6 +67,7 @@
+ SET( MC_SRC ${MC_SRC} ../src/getopt_win32.c )
+ ENDIF( MSVC )
+
++IF( EXIV2_ENABLE_BUILD_SAMPLES )
+ SET( MC_SRC ${MC_SRC} metacopy.cpp ../src/utils.cpp )
+ ADD_EXECUTABLE( metacopy ${MC_SRC} )
+ TARGET_LINK_LIBRARIES( metacopy exiv2lib )
+@@ -79,6 +84,7 @@
+ SET_TARGET_PROPERTIES( exiv2json PROPERTIES OUTPUT_NAME exiv2json )
+ TARGET_LINK_LIBRARIES( exiv2json exiv2lib )
+ INSTALL( TARGETS exiv2json ${INSTALL_TARGET_STANDARD_ARGS} )
++ENDIF()
+
+ # That's all Folks!
+ ##
+--- a/doc/templates/Makefile 2015-07-19 16:50:50.589933604 +0200
++++ b/doc/templates/Makefile 2015-07-19 16:51:07.686719864 +0200
+@@ -143,7 +143,7 @@
+ xmp_mwg-rs \
+ xmp_mwg-kw
+
+-TAGLIST = ../../bin/taglist
++TAGLIST = ../../src/bin/taglist
+
+ # **********************************************************************
+ # ======================================================================
diff --git a/media-gfx/exiv2/files/exiv2-0.25-fix-install-dirs.patch b/media-gfx/exiv2/files/exiv2-0.25-fix-install-dirs.patch
new file mode 100644
index 0000000..bca79dd
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-fix-install-dirs.patch
@@ -0,0 +1,64 @@
+USE GNUInstallDirs to fix man page and multilib install
+
+See also: http://dev.exiv2.org/issues/1125
+Patch based on: http://pkgs.fedoraproject.org/cgit/exiv2.git/tree/exiv2-0.25-cmake_LIB_SUFFIX.patch
+
+--- b/config/CMakeChecks.txt 2015-07-19 14:23:11.606686135 +0200
++++ b/config/CMakeChecks.txt 2015-06-22 08:41:22.913094633 -0500
+@@ -37,6 +37,8 @@
+ INCLUDE( CheckCSourceCompiles )
+ INCLUDE( CheckCXXSourceCompiles )
+
++INCLUDE( GNUInstallDirs )
++
+ INCLUDE( FindIconv )
+
+ SET( STDC_HEADERS ON )
+@@ -289,9 +291,9 @@
+
+ IF( NOT MSVC )
+ CONFIGURE_FILE( config/exiv2.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc @ONLY )
+- INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc DESTINATION lib/pkgconfig )
++ INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
+ CONFIGURE_FILE( config/exiv2.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm)
+- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm DESTINATION lib/pkgconfig )
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2.lsm DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
+ ENDIF( NOT MSVC )
+
+ # ******************************************************************************
+--- a/src/CMakeLists.txt 2015-07-19 14:06:54.104906589 +0200
++++ b/src/CMakeLists.txt 2015-07-19 14:12:37.982607526 +0200
+@@ -321,7 +321,7 @@
+
+ # ******************************************************************************
+ # Man page
+-INSTALL( FILES exiv2.1 DESTINATION man/man1 )
++INSTALL( FILES exiv2.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
+
+ # That's all Folks!
+ ##
+--- a/CMakeLists.txt 2015-06-15 10:32:21.000000000 -0500
++++ b/CMakeLists.txt 2015-06-22 08:48:19.486245765 -0500
+@@ -25,7 +25,7 @@ if( POLICY CMP0042 )
+ else()
+ SET(CMAKE_MACOSX_RPATH 1)
+ endif()
+-SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
++#SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+
+
+ SET( PACKAGE_COPYRIGHT "Andreas Huggel" )
+@@ -156,10 +156,10 @@ INCLUDE( config/CMakeChecks.txt )
+
+ SET( INSTALL_TARGET_STANDARD_ARGS
+ RUNTIME DESTINATION bin
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+-SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
++#SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+
+ ##
+ # add sources from XMPSDK directory
diff --git a/media-gfx/exiv2/files/exiv2-0.25-fix-without-zlib.patch b/media-gfx/exiv2/files/exiv2-0.25-fix-without-zlib.patch
new file mode 100644
index 0000000..c6d435d
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-fix-without-zlib.patch
@@ -0,0 +1,22 @@
+Fix exiv2.hpp if built with PNG support disabled (--without-zlib)
+
+Fixed upstream in >=0.26
+
+See also: http://dev.exiv2.org/issues/1103
+Gentoo bug 1: https://bugs.gentoo.org/show_bug.cgi?id=552046
+Gentoo bug 2: https://bugs.gentoo.org/show_bug.cgi?id=535836
+
+Index: exiv2.hpp
+===================================================================
+--- a/include/exiv2/exiv2.hpp (revision 3887)
++++ b/include/exiv2/exiv2.hpp (revision 3888)
+@@ -52,7 +52,9 @@
+ #include "mrwimage.hpp"
+ #include "orfimage.hpp"
+ #include "pgfimage.hpp"
++#ifdef EXV_HAVE_LIBZ
+ #include "pngimage.hpp"
++#endif
+ #include "preview.hpp"
+ #include "properties.hpp"
+ #include "psdimage.hpp"
diff --git a/media-gfx/exiv2/files/exiv2-0.25-fvisibility-hidden.patch b/media-gfx/exiv2/files/exiv2-0.25-fvisibility-hidden.patch
new file mode 100644
index 0000000..26c5c1d
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-fvisibility-hidden.patch
@@ -0,0 +1,19 @@
+Index: CMakeLists.txt
+===================================================================
+--- a/xmpsdk/CMakeLists.txt (revision 3974)
++++ b/xmpsdk/CMakeLists.txt (revision 3975)
+@@ -20,6 +20,14 @@
+ ENDIF(NOT MSVC AND NOT CYGWIN AND NOT MSYS)
+ ENDFOREACH()
+
++if(NOT MSVC)
++ # http://stackoverflow.com/questions/10046114/in-cmake-how-can-i-test-if-the-compiler-is-clang
++ if ( NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
++ # 1123 - hide xmpsdk symbols
++ add_definitions( -fvisibility=hidden -fvisibility-inlines-hidden )
++ endif()
++endif()
++
+ IF( EXIV2_ENABLE_XMP AND EXIV2_ENABLE_LIBXMP )
+ ADD_LIBRARY( xmp STATIC ${XMPSRC} )
+ GET_TARGET_PROPERTY( XMPLIB xmp LOCATION )
diff --git a/media-gfx/exiv2/files/exiv2-0.25-hide-symbols.patch b/media-gfx/exiv2/files/exiv2-0.25-hide-symbols.patch
new file mode 100644
index 0000000..7c8613d
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-hide-symbols.patch
@@ -0,0 +1,97 @@
+Index: a/samples/CMakeLists.txt
+===================================================================
+--- a/samples/CMakeLists.txt (revision 3972)
++++ b/samples/CMakeLists.txt (revision 3973)
+@@ -52,7 +52,7 @@
+ STRING( REPLACE ".cpp" "" target ${entry})
+ ADD_EXECUTABLE( ${target} ${target}.cpp )
+ ADD_TEST( ${target}_test ${target} )
+- TARGET_LINK_LIBRARIES( ${target} exiv2lib )
++ TARGET_LINK_LIBRARIES( ${target} PRIVATE exiv2lib ${EXPAT_LIBRARIES})
+ #INSTALL( TARGETS ${target} ${INSTALL_TARGET_STANDARD_ARGS} )
+ ENDFOREACH(entry ${SAMPLES})
+
+Index: a/src/CMakeLists.txt
+===================================================================
+--- a/src/CMakeLists.txt (revision 3972)
++++ b/src/CMakeLists.txt (revision 3973)
+@@ -240,20 +240,20 @@
+
+ if ( MSVC )
+ source_group("Header Files" FILES ${LIBEXIV2_HDR} )
+- TARGET_LINK_LIBRARIES( exiv2lib ${EXPAT_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${EXPAT_LIBRARIES} )
+ source_group("Header Files" FILES ${LIBCURL_HDR} )
+- TARGET_LINK_LIBRARIES( exiv2lib ${CURL_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${CURL_LIBRARIES} )
+ source_group("Header Files" FILES ${SSH_HDR} )
+- TARGET_LINK_LIBRARIES( exiv2lib ${SSH_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${SSH_LIBRARIES} )
+ else()
+ if ( NOT MINGW )
+- TARGET_LINK_LIBRARIES( exiv2lib dl ${EXPAT_LIBRARIES} )
+- TARGET_LINK_LIBRARIES( exiv2lib dl ${CURL_LIBRARIES} )
+- TARGET_LINK_LIBRARIES( exiv2lib dl ${SSH_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${EXPAT_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${CURL_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE dl ${SSH_LIBRARIES} )
+ else()
+- TARGET_LINK_LIBRARIES( exiv2lib ${EXPAT_LIBRARIES} )
+- TARGET_LINK_LIBRARIES( exiv2lib ${CURL_LIBRARIES} )
+- TARGET_LINK_LIBRARIES( exiv2lib ${SSH_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${EXPAT_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${CURL_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${SSH_LIBRARIES} )
+ endif()
+ endif()
+
+@@ -262,33 +262,33 @@
+ if ( MSVC )
+ LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH}/$(ConfigurationName))
+ endif(MSVC)
+- TARGET_LINK_LIBRARIES( exiv2lib xmp )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE xmp )
+ ENDIF()
+
+ IF( EXIV2_ENABLE_PNG )
+ IF( ZLIB_FOUND )
+ IF( MSVC )
+ if ( EXIV2_ENABLE_SHARED )
+- TARGET_LINK_LIBRARIES( exiv2lib optimized ${ZLIB_LIBRARIES} debug ${ZLIB_LIBRARIES}d )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE optimized ${ZLIB_LIBRARIES}.lib debug ${ZLIB_LIBRARIES}d.lib )
+ else()
+- TARGET_LINK_LIBRARIES( exiv2lib optimized zlibstatic.lib debug zlibstaticd.lib )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE optimized zlibstatic.lib debug zlibstaticd.lib )
+ endif()
+ ELSE()
+- TARGET_LINK_LIBRARIES( exiv2lib ${ZLIB_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ZLIB_LIBRARIES} )
+ ENDIF()
+ ENDIF()
+ ENDIF()
+
+ IF( EXIV2_ENABLE_NLS )
+- TARGET_LINK_LIBRARIES( exiv2lib ${LIBINTL_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${LIBINTL_LIBRARIES} )
+ ENDIF( EXIV2_ENABLE_NLS )
+
+ IF( ICONV_FOUND )
+- TARGET_LINK_LIBRARIES( exiv2lib ${ICONV_LIBRARIES} )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE ${ICONV_LIBRARIES} )
+ ENDIF( ICONV_FOUND )
+
+ IF (CYGWIN OR MINGW)
+- TARGET_LINK_LIBRARIES( exiv2lib psapi )
++ TARGET_LINK_LIBRARIES( exiv2lib PRIVATE psapi )
+ ENDIF(CYGWIN OR MINGW)
+
+
+@@ -303,7 +303,7 @@
+ # ******************************************************************************
+ # connection test application
+ ADD_EXECUTABLE( conntest ${CONNTEST} )
+-TARGET_LINK_LIBRARIES( conntest exiv2lib )
++TARGET_LINK_LIBRARIES( conntest PRIVATE exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRARIES})
+
+ # ******************************************************************************
+ # exifprint application
diff --git a/media-gfx/exiv2/files/exiv2-0.25-musl.patch b/media-gfx/exiv2/files/exiv2-0.25-musl.patch
new file mode 100644
index 0000000..a44e255
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-musl.patch
@@ -0,0 +1,12 @@
+--- a/src/futils.cpp 2016-06-01 18:29:06.629998810 -0500
++++ b/src/futils.cpp 2016-06-01 18:29:22.209998806 -0500
+@@ -332,8 +332,7 @@
+ std::ostringstream os;
+ #ifdef EXV_HAVE_STRERROR_R
+ const size_t n = 1024;
+-// _GNU_SOURCE: See Debian bug #485135
+-# if defined EXV_STRERROR_R_CHAR_P && defined _GNU_SOURCE
++# if defined EXV_STRERROR_R_CHAR_P && defined __GLIBC__
+ char *buf = 0;
+ char buf2[n];
+ std::memset(buf2, 0x0, n)
diff --git a/media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch b/media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch
new file mode 100644
index 0000000..2bb030a
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch
@@ -0,0 +1,27 @@
+--- a/CMakeLists.txt 2015-06-15 17:32:21.000000000 +0200
++++ b/CMakeLists.txt 2015-10-04 14:37:05.319679836 +0200
+@@ -55,6 +55,7 @@
+ OPTION( EXIV2_ENABLE_WEBREADY "Build webready support into library" OFF )
+ OPTION( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" ON )
+ OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON )
++OPTION( EXIV2_ENABLE_TOOLS "Build exiv2 executable" ON )
+
+ IF( MINGW OR UNIX )
+ IF ( CMAKE_CXX_COMPILER STREQUAL "g++" OR CMAKE_C_COMPILER STREQUAL "gcc" )
+--- a/src/CMakeLists.txt 2015-06-14 11:12:19.000000000 +0200
++++ b/src/CMakeLists.txt 2015-10-04 14:33:27.784399402 +0200
+@@ -296,9 +296,11 @@
+
+ # ******************************************************************************
+ # exiv2 application
+-ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} )
+-TARGET_LINK_LIBRARIES( exiv2 exiv2lib )
+-INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
++IF( EXIV2_ENABLE_TOOLS )
++ ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} )
++ TARGET_LINK_LIBRARIES( exiv2 exiv2lib )
++ INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
++ENDIF( EXIV2_ENABLE_TOOLS )
+
+ # ******************************************************************************
+ # connection test application
diff --git a/media-gfx/exiv2/metadata.xml b/media-gfx/exiv2/metadata.xml
new file mode 100644
index 0000000..3d5537f
--- /dev/null
+++ b/media-gfx/exiv2/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>graphics@gentoo.org</email>
+ <name>Gentoo Graphics Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Exiv2 is a C++ library and command line utility to read and
+ write EXIF, IPTC and XMP image metadata.
+ </longdescription>
+ <use>
+ <flag name="contrib">Build additional contrib components</flag>
+ <flag name="webready">Support reading metadata over the internet</flag>
+ </use>
+</pkgmetadata>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/musl:master commit in: media-gfx/exiv2/, media-gfx/exiv2/files/
@ 2017-10-13 19:05 Aric Belsito
0 siblings, 0 replies; 4+ messages in thread
From: Aric Belsito @ 2017-10-13 19:05 UTC (permalink / raw
To: gentoo-commits
commit: 05678d1ba2496b9692b4df34b7dffc75220a678b
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Fri Oct 13 19:04:24 2017 +0000
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Fri Oct 13 19:04:24 2017 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=05678d1b
media-gfx/exiv2: remove 0.26
Close #51
media-gfx/exiv2/Manifest | 12 --
media-gfx/exiv2/exiv2-0.26.ebuild | 134 ---------------------
.../exiv2/files/exiv2-0.26-CVE-2017-9239.patch | 22 ----
media-gfx/exiv2/files/exiv2-0.26-cmake1.patch | 22 ----
media-gfx/exiv2/files/exiv2-0.26-cmake2.patch | 65 ----------
media-gfx/exiv2/files/exiv2-0.26-cmake3.patch | 53 --------
media-gfx/exiv2/files/exiv2-0.26-cmake4.patch | 24 ----
media-gfx/exiv2/files/exiv2-0.26-cmake5.patch | 33 -----
media-gfx/exiv2/files/exiv2-0.26-cmake6.patch | 27 -----
media-gfx/exiv2/files/exiv2-0.26-cmake7.patch | 38 ------
media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch | 70 -----------
.../exiv2/files/exiv2-0.26-tools-optional.patch | 27 -----
12 files changed, 527 deletions(-)
diff --git a/media-gfx/exiv2/Manifest b/media-gfx/exiv2/Manifest
index 0920aea..54fa081 100644
--- a/media-gfx/exiv2/Manifest
+++ b/media-gfx/exiv2/Manifest
@@ -5,18 +5,6 @@ AUX exiv2-0.25-fvisibility-hidden.patch 700 SHA256 2d0eb374e3df7dd58a513b616786e
AUX exiv2-0.25-hide-symbols.patch 4098 SHA256 b6fe63951717360caad547275c3810c42803ef2d8dea25c75e02b45b9d7add9e SHA512 aed6746329b12769d8084ca79a99eccd6b52449b80c0b3d1c1d6b22294c2b62398366f0715efa207e2ace0ed52740a8eb81af58d17322d42a4674336fd24e725 WHIRLPOOL ac8e900303ac0b19f24b5eff13791dd42459395763d4c8795ff978c1f2c05431b3f3586dedd2b7df375452d3826d7356fc190c4ba3bc8fc4713792bc9d31d033
AUX exiv2-0.25-musl.patch 464 SHA256 c32333fa1d157bd2b14aaf18e19c2a67511baad89a9b526d6f984bb955dbf9ee SHA512 25e7d53fd2840d1166795a0a27c07de9370f493b1c8a047a020b73fe9330303d97a48414937c25e5aa5961fa7d416b10e4e3ea6b35008e4d9705ed19d71bb85d WHIRLPOOL 0e71a59b5fa87633c98e46385260835077e3a93c7a9aad9022c58060efbfecba295c37726d248580b9a79ee7cecdc8f0e23f24cfcaa1085ab33e44f33bbc5d49
AUX exiv2-0.25-tools-optional.patch 1332 SHA256 6c9a3ed5c2b9acff10c3b2f2dd2ca639936beaf6263526b9d85ede579a1d67e1 SHA512 14a8703b86dc4a7a1f210e26bd6532c529f850dd1b25ef116c703a576c389a120e3f8b1087e289cd8b44073071ac88a97503dc2c0cf72f21d32094b2cabbc58c WHIRLPOOL dc7efa7ddcaf1be665cd79aff0b36a0f2b135a87a3a93f9cb6091105b965b4b009e569c447d54d602482410ec59d674d99a71bee2699e8007575b8e2cc727998
-AUX exiv2-0.26-CVE-2017-9239.patch 738 SHA256 014407dc03154c12675d66368b9e5674bc761bd77102665bb4ccbbc1561b8098 SHA512 f6d3c081ca145bc9614fff83d59512329bb30b19010be16484c0d341c6c7167195c98131458b9427ef0afd9cf0bd1f1cdd10b0cfd689322327bd685759bd125f WHIRLPOOL 724b65d05228677d6d9493489d0e9882308e1a5fdef502528c80676767c582fe9ff828d50b67b447ba57b0c114926143c5ca9864e04e3b4dcfd6118a2e06daf9
-AUX exiv2-0.26-cmake1.patch 805 SHA256 ce6797ef659aad6ad0687ea7236d193a22552c4c91855f486216371de0608f2e SHA512 5b99674cdf01ab712df2f743487be1afd5a5751133222d13eaab36ce9e0b86c9c89eb8a09244eb521a60bce12081dbefb6b867aab75158df193d80965a0f0681 WHIRLPOOL 734fcdb96037486a7ec834ecf1f90d3e63e35ef22efd832e787e2e6efa8a9d59923311e46ff6486acd96668c0245f2ac0de620ea35e75665fce9a34c9caa401e
-AUX exiv2-0.26-cmake2.patch 2781 SHA256 f5b4404a124e2fb11e2c363973c25bbc91c1da9787822f9f1a3252ef2bf0224b SHA512 2ff6baad558ff79ec514a9bd78adb01d1c894d51713a5f98573c7e60356b90ed5f9ad462c43f6454874e2e775f61edf38a5881eb9526c5c9cd5543af0777e543 WHIRLPOOL 297cb349e63e9fb9a696c3e60de6e8d1c547b7f163abff6aeabe7687d6bc1c643b0a0166438f544ba33c02b285029244b339b0963afe894cd736175c9b7c1f87
-AUX exiv2-0.26-cmake3.patch 2040 SHA256 14c67fe154053c72d41696546b998c320129190dc3b43471b25731d71c9e7c19 SHA512 98c63cbe51126090835b2422433af625cea683d89d3d4e822191bfa19633ff1e4b98b41356dd9f2326c4e30c34faa80b9408ed488644575ab5cbf8f5477f6d8f WHIRLPOOL 9065ff20231c6dc36a8314e0cbf36237d2b6acaceea69cfe16ec616a3e53b99fd756305e1fd771c4e2c1349a051ea2d875374f8bea67ef9049e677803fcc390d
-AUX exiv2-0.26-cmake4.patch 783 SHA256 fee765278dc3bdc11b0d140e2e082ef29209aa78d591808ecf608434be87deda SHA512 e2a197fcf1255e02d1ce35a3d9428f40533fad8dcbac39f17b8b5d3f2b365479e202c9fca3b969b6f16ab3e58ff2d8654b85308536e5acec3ba8d7af38fc17a0 WHIRLPOOL 8b28f0bd49bd4af64a8638bffbe977aa9feb257f9cf8c2075493b4e56aa6065c8e475ce33f988575e1b2b90030abd179902682537f00576cddb7069f0aa32607
-AUX exiv2-0.26-cmake5.patch 1066 SHA256 aa7fcff3eace01ac2faf9a901fa2ebd3949d1ae4836bcfc884a119b394c083b5 SHA512 6ac55cd0d73b484357b84b07f0e059f239e717a32d0cb4acec23522ac23546374f13edbb5306fe1acf7d75049ee642f4c6e851fb1dc0b38bec5feecfd4efbb0f WHIRLPOOL 11118cc7bc6a753700b6a1dd381c67ef883fab4c64ee1f5248b641bf265081994b99d88147d4fdaf208ebe4dab91f8488e4fa105919d3f0ab984ead146cdc3f7
-AUX exiv2-0.26-cmake6.patch 973 SHA256 4a167f386a87f261481b5544844aa26c61386bb77e702407f21490b052b866aa SHA512 d32b2d8856651ec168732367c5d7c65131e9301fb899bf7ce018b68d783d66120b99fff624ce3c37b36c5aa1682d5cdde74adf232c11807f496cff987bf478a7 WHIRLPOOL 6060e8c85a6f953a4853bbdedfd85c2dbd3c9943c972d9b0612239017886d78bf2db50fc1a2474aad949d03079e9adc8254307598e3dd734af015b7133d2c004
-AUX exiv2-0.26-cmake7.patch 1328 SHA256 a882283ea89183c4a415b9816cf03daa80683ea5a85c5a78c7b430f1b602f293 SHA512 f500dd7cf0520d5cdb177a33554329d7da0f9895a1d04e1fd2d91e37814df61901b13f7e9c33b245fa4ad9cd6b7361cf289af868363187f9917691366a6672a3 WHIRLPOOL 661b44e517138b93c2633f13507c3ec67ac1308b7b794731996bde75cf83fce3ef315287fdff4dc2a418253c94ecfb38f73ea96e9599bc124e80a7a0e89d15c7
-AUX exiv2-0.26-fix-docs.patch 2147 SHA256 6cdab606c6fb6ddc7913fd311d9051946f97c1de5dabac614e934e704ea4c7ca SHA512 fa2f35d00df2fd1d958e1139e7b8fe0dd0c0f7f6fe5295b2ac5b0a156ae68af9e275e23c943929c90315a99e3116376a4e21e384c1bb219b3d5b657ac12165ec WHIRLPOOL 5e70a648303cab83e6265c064e94144d65421bc9cf514744b624a6af466cce1827c983664ee71f78431919d47370f2f9d17931aa96941c2079826232687ab78c
-AUX exiv2-0.26-tools-optional.patch 1276 SHA256 5df66e4cbf15b911b4c05bb9240452f64f9e4c84bd04e7e516ef34bd43c3e849 SHA512 23e797e76cedf6c4a2025e0d6d2f7301d8e13adcbb836660fe2568eeb94348c6cac649284789551f97a69790271936b6412ff7d1416ee95a87851624b317e4c9 WHIRLPOOL c7f32aa72c9051c69cb54176335ab05258aca72f9cd658fd323873bd7d3f8db5fd0b10f9940b5ee5bb3d1c84902a59a73087f510db37542b100c5fd9d8f755fb
DIST exiv2-0.25.tar.gz 5434325 SHA256 c80bfc778a15fdb06f71265db2c3d49d8493c382e516cb99b8c9f9cbde36efa4 SHA512 08d4e655ffdde715e0214f4bef01d55aba9b8ba517456a60e254a0f8541c20479e407545db28ca90a69dee8def6941fdd88f9a557fb382ebebe49e363aca8e8e WHIRLPOOL f9e7a6947dac5870e0574253b8c1cb1e7d31a916a9e1c4417c73168046c0b4bed90b9c77253444604163bcf6dca204dab92a52cb03bdcb0f85c807327623f8ac
-DIST exiv2-0.26-trunk.tar.gz 5699163 SHA256 0c625cbeb494aa1b9221280a5b053b54d0c9720d48fa9120cef7c6f93efd4dc3 SHA512 d9f354f8458d7803140b442b2a8de3c8904b1e20916cf62d7176f51524e6ff7def26d3b6fa016abc49f8140295eea624151c54dbae0676a61529c2cf33335b0c WHIRLPOOL 0d36063ee659d0a798957e9a2478337f5e8061b467df8fb86b194830ac6ec751a75e1492ad7cbf4ed31c836b9c320f037af3708920b28b07c8970840e255d711
EBUILD exiv2-0.25-r2.ebuild 3104 SHA256 790f4ad93ca7799eba393f76a30e3dcdf5148834ce85b2a2e8f095da8ca9c0b9 SHA512 7ef6da58f714555f7065891a984e83e19e14c22e71a45d4ec4f1aff7a49404628b07f8b371efb26ad06f53e452a8ee61cb556df20c8c0706be3990716a823402 WHIRLPOOL cf3f43c404d456bfd989fb0bb620db4fc12d7297adf68f6e90b10fd1b59a43b34dc8fe14483e03a2983bc9df704e6963505ce693bbdb42b3b1b111bd81d6961e
-EBUILD exiv2-0.26.ebuild 3393 SHA256 f47eeee789c29be290a6b1e203098a9a3c4f6de68897a1ae916066fe38aa7115 SHA512 0e1d1e5266b0399d61ce2e8640bab6f41a049e5de3f16a232df3a5ad811e56f3b659722f459ca2a8d5aa217c58bb5edd340d88db4603a837f16b97ed2fb6bfa5 WHIRLPOOL c9e99dfc5949c02305ccaf0292c086324c9b32d611ab0cd10bbc1f89560049560a715c1a618fa3d36ba59a6fe27c1b4fa73e66223834ef462f5db35d1149483b
MISC metadata.xml 612 SHA256 2700f3a6eb0fea03635790e9e55611f58a19dace74c70d0e0106bd70ef825c60 SHA512 9b4926ba8420a125dc4cefd351ee1ec10a4df2fc4306a56720f6e8de7c5fd9f36a8646c8583958fca9a45ebe1b65b19c053c7da37176546bc19ae64afa87e4f5 WHIRLPOOL 0996d01f595fe4ab40a65fcc19d2eced4dc31a1c8efddddca353828447ff3ca974499dcc81482d47a3470d9530a1886abde9acfaa2ac75df0e845f1a70402056
diff --git a/media-gfx/exiv2/exiv2-0.26.ebuild b/media-gfx/exiv2/exiv2-0.26.ebuild
deleted file mode 100644
index 3926c66..0000000
--- a/media-gfx/exiv2/exiv2-0.26.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
-
-inherit cmake-multilib python-any-r1
-
-DESCRIPTION="EXIF, IPTC and XMP metadata C++ library and command line utility"
-HOMEPAGE="http://www.exiv2.org/"
-SRC_URI="http://www.exiv2.org/builds/${P}-trunk.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0/26"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-solaris ~x86-solaris"
-IUSE_LINGUAS="bs de es fi fr gl ms pl pt ru sk sv ug uk vi"
-IUSE="doc examples nls png webready xmp $(printf 'linguas_%s ' ${IUSE_LINGUAS})"
-
-RDEPEND="
- >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
- nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
- png? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
- webready? (
- net-libs/libssh[${MULTILIB_USEDEP}]
- net-misc/curl[${MULTILIB_USEDEP}]
- )
- xmp? ( >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] )
-"
-
-DEPEND="${RDEPEND}
- doc? (
- app-doc/doxygen
- dev-libs/libxslt
- media-gfx/graphviz
- virtual/pkgconfig
- ${PYTHON_DEPS}
- )
- nls? ( sys-devel/gettext )
-"
-
-DOCS=( README doc/ChangeLog doc/cmd.txt )
-
-PATCHES=(
- "${FILESDIR}"/${P}-cmake{1,2,3,4,5,6,7}.patch
- "${FILESDIR}"/${P}-CVE-2017-9239.patch
- "${FILESDIR}"/${PN}-0.25-musl.patch
- # TODO: Take to upstream
- "${FILESDIR}"/${P}-fix-docs.patch
- "${FILESDIR}"/${P}-tools-optional.patch
-)
-
-pkg_setup() {
- use doc && python-any-r1_pkg_setup
-}
-
-src_unpack() {
- # FIXME @upstream: MacOS cruft is breaking the buildsystem, so don't let it in...
- tar -C "${WORKDIR}" --exclude=.* -xpf "${DISTDIR}/${A}" --gz 2> /dev/null ||
- elog "${my_tar}: tar extract command failed at least partially - continuing"
- mv "${PN}-trunk" "${S}" || die "Failed to create source dir ${S}"
-}
-
-src_prepare() {
- if [[ ${PV} != *9999 ]] ; then
- if [[ -d po ]] ; then
- pushd po > /dev/null || die
- local lang
- for lang in *.po; do
- if [[ -e ${lang} ]] && ! has ${lang/.po/} ${LINGUAS} ; then
- case ${lang} in
- CMakeLists.txt | \
- ${PN}.pot) ;;
- *) rm -r ${lang} || die ;;
- esac
- fi
- done
- popd > /dev/null || die
- else
- die "Failed to prepare LINGUAS - po directory moved?"
- fi
- fi
-
- # FIXME @upstream:
- einfo "Converting doc/cmd.txt to UTF-8"
- iconv -f LATIN1 -t UTF-8 doc/cmd.txt > doc/cmd.txt.tmp || die
- mv -f doc/cmd.txt.tmp doc/cmd.txt || die
-
- if use doc; then
- einfo "Updating doxygen config"
- doxygen &>/dev/null -u config/Doxyfile || die
- fi
-
- cmake-utils_src_prepare
-}
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DEXIV2_ENABLE_BUILD_PO=YES
- -DEXIV2_ENABLE_BUILD_SAMPLES=NO
- -DEXIV2_ENABLE_NLS=$(usex nls)
- -DEXIV2_ENABLE_PNG=$(usex png)
- -DEXIV2_ENABLE_CURL=$(usex webready)
- -DEXIV2_ENABLE_SSH=$(usex webready)
- -DEXIV2_ENABLE_WEBREADY=$(usex webready)
- -DEXIV2_ENABLE_XMP=$(usex xmp)
- -DEXIV2_ENABLE_LIBXMP=NO
- $(multilib_is_native_abi || \
- echo -DEXIV2_ENABLE_TOOLS=NO)
- )
-
- cmake-utils_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_compile
-
- if multilib_is_native_abi; then
- use doc && emake -j1 doc
- fi
-}
-
-multilib_src_install_all() {
- use xmp && DOCS+=( doc/{COPYING-XMPSDK,README-XMP,cmdxmp.txt} )
- use doc && HTML_DOCS=( "${S}"/doc/html/. )
-
- einstalldocs
- find "${D}" -name '*.la' -delete || die
-
- if use examples; then
- docinto examples
- dodoc samples/*.cpp
- fi
-}
diff --git a/media-gfx/exiv2/files/exiv2-0.26-CVE-2017-9239.patch b/media-gfx/exiv2/files/exiv2-0.26-CVE-2017-9239.patch
deleted file mode 100644
index 2a3e20c..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-CVE-2017-9239.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 2f8681e120d277e418941c4361c83b5028f67fd8 Mon Sep 17 00:00:00 2001
-From: clanmills <robin@clanmills.com>
-Date: Sat, 27 May 2017 10:18:17 +0100
-Subject: [PATCH] #1296 Fix submitted.
-
----
- src/tiffcomposite.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/tiffcomposite.cpp b/src/tiffcomposite.cpp
-index c6b860d8..0c9b9c4a 100644
---- a/src/tiffcomposite.cpp
-+++ b/src/tiffcomposite.cpp
-@@ -1611,6 +1611,8 @@ namespace Exiv2 {
- uint32_t TiffImageEntry::doWriteImage(IoWrapper& ioWrapper,
- ByteOrder /*byteOrder*/) const
- {
-+ if ( !pValue() ) throw Error(21); // #1296
-+
- uint32_t len = pValue()->sizeDataArea();
- if (len > 0) {
- #ifdef DEBUG
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake1.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake1.patch
deleted file mode 100644
index 672017e..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake1.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From d5ae1a7502cc3a19f2ca45f5f17f1ee8fc6ad979 Mon Sep 17 00:00:00 2001
-From: Timo Gurr <timo.gurr@gmail.com>
-Date: Tue, 30 May 2017 20:25:28 +0200
-Subject: [PATCH] Use CMAKE_INSTALL_LOCALEDIR
-
----
- config/CMakeChecks.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index 77922930..b3a888f2 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -98,7 +98,7 @@ IF( EXIV2_ENABLE_NLS )
- #FIND_PACKAGE(Intl REQUIRED)
- #INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
- IF( NOT LOCALEDIR )
-- SET( LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale" )
-+ SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" )
- IF( WIN32 )
- STRING( REPLACE "/" "\\\\" LOCALEDIR ${LOCALEDIR} )
- ENDIF( WIN32 )
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake2.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake2.patch
deleted file mode 100644
index 76a1944..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake2.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 3af0d1a6b2c12b7f62a293d19bdf235db75d6b07 Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Sat, 3 Jun 2017 17:18:24 +0200
-Subject: [PATCH] cmake: fix gettext support
-
-Building exiv2 with uclibc and gettext fails currently as detected
-by the buildroot autobuilders:
-http://autobuild.buildroot.net/results/def/defcdd3dd57b031c31bb16c0075f079a482bf52d/build-end.log
----
- config/CMakeChecks.txt | 12 ++++++++++--
- src/CMakeLists.txt | 6 +++---
- 2 files changed, 13 insertions(+), 5 deletions(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index b3a888f2..f7621a92 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -95,8 +95,16 @@ ELSE( EXIV2_ENABLE_SHARED )
- ENDIF( EXIV2_ENABLE_SHARED )
-
- IF( EXIV2_ENABLE_NLS )
-- #FIND_PACKAGE(Intl REQUIRED)
-- #INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
-+ FIND_PACKAGE(Intl)
-+ if(Intl_FOUND)
-+ INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
-+ find_library(LIBINTL_LIBRARY NAMES intl libintl)
-+ if(libintl_FOUND)
-+ SET(LIBINTL_LIBRARIES ${LIBINTL_LIBRARY})
-+ else(libintl_FOUND)
-+ SET(LIBINTL_LIBRARIES)
-+ endif()
-+ endif()
- IF( NOT LOCALEDIR )
- SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" )
- IF( WIN32 )
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index aecd6215..e2904c6f 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -316,13 +316,13 @@ msvc_runtime_configure(${EXIV2_ENABLE_SHARED} ${EXIV2_ENABLE_DYNAMIC_RUNTIME})
- # ******************************************************************************
- # exiv2 application
- ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} )
--TARGET_LINK_LIBRARIES( exiv2 exiv2lib )
-+TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} )
- INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
-
- # ******************************************************************************
- # connection test application
- ADD_EXECUTABLE( conntest ${CONNTEST} )
--TARGET_LINK_LIBRARIES( conntest ${PRIVATE_VAR} exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRARIES})
-+TARGET_LINK_LIBRARIES( conntest ${PRIVATE_VAR} exiv2lib ${CURL_LIBRARIES} ${SSH_LIBRARIES} ${LIBINTL_LIBRARIES} )
-
- # ******************************************************************************
- # exifprint application
-@@ -332,7 +332,7 @@ TARGET_LINK_LIBRARIES( conntest ${PRIVATE_VAR} exiv2lib ${CURL_LIBRARIES} ${SSH
- # ******************************************************************************
- # remotetest application
- ADD_EXECUTABLE( remotetest ${REMOTETEST} )
--TARGET_LINK_LIBRARIES( remotetest exiv2lib )
-+TARGET_LINK_LIBRARIES( remotetest exiv2lib ${LIBINTL_LIBRARIES} )
-
- # ******************************************************************************
- # Headers
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake3.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake3.patch
deleted file mode 100644
index 7a78d1c..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake3.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8af901ce05aeeaa4f5033da99670091f857d5931 Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Sat, 3 Jun 2017 18:25:05 +0200
-Subject: [PATCH] cmake: always depend on threads, not only in the xmp case
-
----
- CMakeLists.txt | 1 -
- config/CMakeChecks.txt | 2 ++
- src/CMakeLists.txt | 2 ++
- 3 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7034bb67..64604c6f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -120,7 +120,6 @@ IF( EXIV2_ENABLE_XMP )
- IF (NOT MINGW)
- set(THREADS_PREFER_PTHREAD_FLAG ON)
- ENDIF()
-- find_package(Threads REQUIRED)
- ENDIF( EXIV2_ENABLE_XMP )
-
- INCLUDE( config/CMakeChecks.txt )
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index f7621a92..0dfe96b7 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -51,6 +51,8 @@ INCLUDE_DIRECTORIES( ${CMAKE_INCLUDE_PATH} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_C
- LINK_DIRECTORIES( ${CMAKE_LIBRARY_PATH} )
- SET( CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH} )
-
-+find_package(Threads REQUIRED)
-+
- IF( EXIV2_ENABLE_PNG )
- FIND_PACKAGE( ZLIB REQUIRED )
- INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIR} )
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index e2904c6f..dcfb37e1 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -268,10 +268,12 @@ else()
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${EXPAT_LIBRARIES} )
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${CURL_LIBRARIES} )
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${SSH_LIBRARIES} )
-+ TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} dl ${CMAKE_THREAD_LIBS_INIT} )
- else()
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${EXPAT_LIBRARIES} )
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${CURL_LIBRARIES} )
- TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${SSH_LIBRARIES} )
-+ TARGET_LINK_LIBRARIES( exiv2lib ${PRIVATE_VAR} ${CMAKE_THREAD_LIBS_INIT} )
- endif()
- endif()
-
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake4.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake4.patch
deleted file mode 100644
index 3824a57..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake4.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 23ac3eeced6a4de0d34ae162ac7784ab9b7e4310 Mon Sep 17 00:00:00 2001
-From: clanmills <robin@clanmills.com>
-Date: Sat, 3 Jun 2017 20:58:08 +0100
-Subject: [PATCH] #7 Fix for libintl
-
----
- config/CMakeChecks.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index 0dfe96b7..8c88aa27 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -103,8 +103,8 @@ IF( EXIV2_ENABLE_NLS )
- find_library(LIBINTL_LIBRARY NAMES intl libintl)
- if(libintl_FOUND)
- SET(LIBINTL_LIBRARIES ${LIBINTL_LIBRARY})
-- else(libintl_FOUND)
-- SET(LIBINTL_LIBRARIES)
-+ else()
-+ SET(LIBINTL_LIBRARIES -lintl)
- endif()
- endif()
- IF( NOT LOCALEDIR )
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake5.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake5.patch
deleted file mode 100644
index 0df4a19..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake5.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4e86c1d61c4b8ab2cbbb31db0031b8e1d1872231 Mon Sep 17 00:00:00 2001
-From: clanmills <robin@clanmills.com>
-Date: Sun, 4 Jun 2017 07:41:03 +0100
-Subject: [PATCH] Fix https://github.com/Exiv2/exiv2/pull/6 for
- Linux/Cygwin/MacOSX
-
----
- config/CMakeChecks.txt | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index 8c88aa27..e6100c0f 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -98,13 +98,16 @@ ENDIF( EXIV2_ENABLE_SHARED )
-
- IF( EXIV2_ENABLE_NLS )
- FIND_PACKAGE(Intl)
-- if(Intl_FOUND)
-+ if(Intl_FOUND AND NOT MSVC)
- INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
- find_library(LIBINTL_LIBRARY NAMES intl libintl)
- if(libintl_FOUND)
- SET(LIBINTL_LIBRARIES ${LIBINTL_LIBRARY})
- else()
-- SET(LIBINTL_LIBRARIES -lintl)
-+ SET(LIBINTL_LIBRARIES)
-+ if ( APPLE OR CYGWIN )
-+ SET(LIBINTL_LIBRARIES -lintl)
-+ endif()
- endif()
- endif()
- IF( NOT LOCALEDIR )
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake6.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake6.patch
deleted file mode 100644
index 105b588..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake6.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 88cf58613ffde4c907011bea82f61daae6006c3c Mon Sep 17 00:00:00 2001
-From: clanmills <robin@clanmills.com>
-Date: Sun, 4 Jun 2017 09:07:14 +0100
-Subject: [PATCH] #8 Adding INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
-
----
- config/CMakeChecks.txt | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index e6100c0f..b90d4fde 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -102,11 +102,12 @@ IF( EXIV2_ENABLE_NLS )
- INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
- find_library(LIBINTL_LIBRARY NAMES intl libintl)
- if(libintl_FOUND)
-+ INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
- SET(LIBINTL_LIBRARIES ${LIBINTL_LIBRARY})
- else()
- SET(LIBINTL_LIBRARIES)
- if ( APPLE OR CYGWIN )
-- SET(LIBINTL_LIBRARIES -lintl)
-+ SET(LIBINTL_LIBRARIES -lintl)
- endif()
- endif()
- endif()
diff --git a/media-gfx/exiv2/files/exiv2-0.26-cmake7.patch b/media-gfx/exiv2/files/exiv2-0.26-cmake7.patch
deleted file mode 100644
index 0eff32a..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-cmake7.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 15e0b9052eacd3438c8b39bf3fdda5da69ec068a Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Sun, 4 Jun 2017 10:13:14 +0200
-Subject: [PATCH] cmake: simplify libintl check
-
-According to https://cmake.org/cmake/help/v3.4/module/FindIntl.html
-the FindIntl module already checks for libintl.so.
----
- config/CMakeChecks.txt | 15 ++++-----------
- 1 file changed, 4 insertions(+), 11 deletions(-)
-
-diff --git a/config/CMakeChecks.txt b/config/CMakeChecks.txt
-index b90d4fde..0cd28ec7 100644
---- a/config/CMakeChecks.txt
-+++ b/config/CMakeChecks.txt
-@@ -98,18 +98,11 @@ ENDIF( EXIV2_ENABLE_SHARED )
-
- IF( EXIV2_ENABLE_NLS )
- FIND_PACKAGE(Intl)
-- if(Intl_FOUND AND NOT MSVC)
-+ if(Intl_FOUND)
- INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
-- find_library(LIBINTL_LIBRARY NAMES intl libintl)
-- if(libintl_FOUND)
-- INCLUDE_DIRECTORIES(${Intl_INCLUDE_DIRS})
-- SET(LIBINTL_LIBRARIES ${LIBINTL_LIBRARY})
-- else()
-- SET(LIBINTL_LIBRARIES)
-- if ( APPLE OR CYGWIN )
-- SET(LIBINTL_LIBRARIES -lintl)
-- endif()
-- endif()
-+ SET(LIBINTL_LIBRARIES ${Intl_LIBRARIES})
-+ else()
-+ SET(LIBINTL_LIBRARIES)
- endif()
- IF( NOT LOCALEDIR )
- SET( LOCALEDIR "${CMAKE_INSTALL_LOCALEDIR}" )
diff --git a/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch b/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch
deleted file mode 100644
index a888671..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- a/CMakeLists.txt 2015-07-19 16:04:35.363628707 +0200
-+++ b/CMakeLists.txt 2015-07-19 16:28:31.051680136 +0200
-@@ -216,9 +216,7 @@
- ADD_SUBDIRECTORY( xmpsdk )
- ADD_SUBDIRECTORY( src )
-
--IF( EXIV2_ENABLE_BUILD_SAMPLES )
-- ADD_SUBDIRECTORY( samples )
--ENDIF( EXIV2_ENABLE_BUILD_SAMPLES )
-+ADD_SUBDIRECTORY( samples )
-
- IF( EXIV2_ENABLE_BUILD_PO )
- ADD_SUBDIRECTORY( po )
---- a/samples/CMakeLists.txt 2015-07-19 16:04:35.360628744 +0200
-+++ b/samples/CMakeLists.txt 2015-07-19 16:30:46.415987850 +0200
-@@ -21,6 +21,10 @@
- include_directories("${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src")
-
--SET( SAMPLES addmoddel.cpp
-+SET( SAMPLES taglist.cpp )
-+
-+IF( EXIV2_ENABLE_BUILD_SAMPLES )
-+ SET( SAMPLES ${SAMPLES}
-+ addmoddel.cpp
- convert-test.cpp
- easyaccess-test.cpp
- exifcomment.cpp
-@@ -38,7 +42,6 @@
- mmap-test.cpp
- prevtest.cpp
- stringto-test.cpp
-- taglist.cpp
- tiff-test.cpp
- werror-test.cpp
- write-test.cpp
-@@ -47,6 +50,7 @@
- xmpparser-test.cpp
- xmpsample.cpp
- )
-+ENDIF()
-
- FOREACH(entry ${SAMPLES})
- STRING( REPLACE ".cpp" "" target ${entry})
-@@ -63,6 +67,7 @@
- SET( MC_SRC ${MC_SRC} ../src/getopt_win32.c )
- ENDIF( MSVC )
-
-+IF( EXIV2_ENABLE_BUILD_SAMPLES )
- SET( MC_SRC ${MC_SRC} metacopy.cpp ../src/utils.cpp )
- ADD_EXECUTABLE( metacopy ${MC_SRC} )
- TARGET_LINK_LIBRARIES( metacopy exiv2lib )
-@@ -79,6 +84,7 @@
- # ******************************************************************************
- # Man page
- INSTALL( FILES exiv2samples.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
-+ENDIF()
-
- # That's all Folks!
- ##
---- a/doc/templates/Makefile 2015-07-19 16:50:50.589933604 +0200
-+++ b/doc/templates/Makefile 2015-07-19 16:51:07.686719864 +0200
-@@ -143,7 +143,7 @@
- xmp_mwg-rs \
- xmp_mwg-kw
-
--TAGLIST = ../../bin/taglist
-+TAGLIST = ../../src/bin/taglist
-
- # **********************************************************************
- # ======================================================================
diff --git a/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch b/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch
deleted file mode 100644
index 045e9dc..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/CMakeLists.txt 2017-06-07 00:14:25.374608170 +0200
-+++ b/CMakeLists.txt 2017-06-07 00:17:00.680483299 +0200
-@@ -60,6 +60,7 @@
- OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON )
- SET ( EXIV2_ENABLE_DYNAMIC_RUNTIME OFF )
- ENDIF()
-+OPTION( EXIV2_ENABLE_TOOLS "Build exiv2 executable" ON )
-
- # set include path for FindXXX.cmake files
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/")
---- a/src/CMakeLists.txt 2017-06-07 00:14:25.368608098 +0200
-+++ b/src/CMakeLists.txt 2017-06-07 00:16:06.710831682 +0200
-@@ -317,9 +317,11 @@
-
- # ******************************************************************************
- # exiv2 application
--ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} )
--TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} )
--INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
-+IF(EXIV2_ENABLE_TOOLS)
-+ ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} )
-+ TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} )
-+ INSTALL( TARGETS exiv2 ${INSTALL_TARGET_STANDARD_ARGS} )
-+ENDIF( EXIV2_ENABLE_TOOLS )
-
- # ******************************************************************************
- # connection test application
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/musl:master commit in: media-gfx/exiv2/, media-gfx/exiv2/files/
@ 2018-04-26 18:06 Aric Belsito
0 siblings, 0 replies; 4+ messages in thread
From: Aric Belsito @ 2018-04-26 18:06 UTC (permalink / raw
To: gentoo-commits
commit: e7b9b83f0688f9e5a07d0bd55427c197807beab1
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Thu Apr 26 18:05:50 2018 +0000
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Thu Apr 26 18:05:50 2018 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=e7b9b83f
media-gfx/exiv2: version bump to 0.27_p20180319
media-gfx/exiv2/Manifest | 1 +
media-gfx/exiv2/exiv2-0.26_p20171104.ebuild | 2 +-
...71104-r1.ebuild => exiv2-0.26_p20180319.ebuild} | 12 +-
.../exiv2-0.26_p20180319-CVE-2017-18005.patch | 484 +++++++++++++++++++++
.../files/exiv2-0.26_p20180319-CVE-2018-4868.patch | 39 ++
5 files changed, 534 insertions(+), 4 deletions(-)
diff --git a/media-gfx/exiv2/Manifest b/media-gfx/exiv2/Manifest
index a9b1bd7..ff80754 100644
--- a/media-gfx/exiv2/Manifest
+++ b/media-gfx/exiv2/Manifest
@@ -1 +1,2 @@
DIST exiv2-0.26_p20171104.tar.gz 28368697 BLAKE2B 50013cf0bf30a2a476b02d5db4027fca268a4b38733762eb4c08e5f3bdfaf737038e9a62f7ef471fecb10250d8ae686ef683f9b0ea4ccc5d109440ba534371e4 SHA512 6f6a884d7978e54dceb9ce45248cd0425ff469887c85ef52b0e38cb755970f69fce96b4b5317c8e8070b833f72ca214696042aac71292a6f9c3440f6a369d474
+DIST exiv2-0.26_p20180319.tar.gz 28383543 BLAKE2B 753a2ebdb2033490c0f66cb1fb2574f02125f17813f6cbaf5eca66e053af9a2cdbc1266f0a033f0706ec22b31acd6e87271e426a335a58ee947757b52d283489 SHA512 852ce2cffcc0a2d902a939933127fdf5fa0b50020e1faf3ab0a375b129b9f61c7b97b76d4f39e376e7288d7cc045867bd1a96ae15dd0b7c0bcd1ba15259628e1
diff --git a/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild b/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild
index f8d19fb..996728b 100644
--- a/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild
+++ b/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild
@@ -11,7 +11,7 @@ if [[ ${PV} = *9999 ]]; then
else
COMMIT=900d2417dbeb46e14cbf65fc2798ed1d043ab76d
SRC_URI="https://github.com/Exiv2/${PN}/tarball/${COMMIT} -> ${P}.tar.gz"
- KEYWORDS="amd64 arm ia64 ~mips ppc ~sh ~sparc x86"
+ KEYWORDS="amd64 arm ia64 ~mips ppc ~sh sparc x86"
fi
inherit cmake-multilib python-any-r1 vcs-snapshot
diff --git a/media-gfx/exiv2/exiv2-0.26_p20171104-r1.ebuild b/media-gfx/exiv2/exiv2-0.26_p20180319.ebuild
similarity index 90%
rename from media-gfx/exiv2/exiv2-0.26_p20171104-r1.ebuild
rename to media-gfx/exiv2/exiv2-0.26_p20180319.ebuild
index e24fed4..a188f3a 100644
--- a/media-gfx/exiv2/exiv2-0.26_p20171104-r1.ebuild
+++ b/media-gfx/exiv2/exiv2-0.26_p20180319.ebuild
@@ -9,11 +9,11 @@ if [[ ${PV} = *9999 ]]; then
EGIT_BRANCH="0.26"
GIT_ECLASS=git-r3
else
- COMMIT=900d2417dbeb46e14cbf65fc2798ed1d043ab76d
+ COMMIT=876b1314ab892cbfa6672b6b94adbeb90db4211f
SRC_URI="https://github.com/Exiv2/${PN}/tarball/${COMMIT} -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~ia64 ~mips ~ppc ~sh ~sparc ~x86"
fi
-inherit cmake-multilib python-any-r1 vcs-snapshot
+inherit cmake-multilib python-any-r1
DESCRIPTION="EXIF, IPTC and XMP metadata C++ library and command line utility"
HOMEPAGE="http://www.exiv2.org/"
@@ -45,11 +45,15 @@ DEPEND="${RDEPEND}
DOCS=( README doc/ChangeLog doc/cmd.txt )
+S="${WORKDIR}/${PN^}-${PN}-${COMMIT:0:7}"
+
PATCHES=(
+ # master, pending backports for 0.26
+ "${FILESDIR}"/${P}-CVE-2018-4868.patch
+ "${FILESDIR}"/${P}-CVE-2017-18005.patch
# TODO: Take to upstream
"${FILESDIR}"/${PN}-0.26-fix-docs.patch
"${FILESDIR}"/${PN}-0.26-tools-optional.patch
- "${FILESDIR}"/${PN}-0.26-pentaxnikon-crash.patch
"${FILESDIR}"/${PN}-0.26-musl.patch
)
@@ -88,6 +92,8 @@ src_prepare() {
doxygen &>/dev/null -u config/Doxyfile || die
fi
+ edos2unix samples/exiv2json.cpp # workaround for CVE-2017-18005 patch
+
cmake-utils_src_prepare
}
diff --git a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch
new file mode 100644
index 0000000..d74ca59
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch
@@ -0,0 +1,484 @@
+From 8e31dd8c14fdc83f387f35dda7b1b70fbdbd70db Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
+Date: Tue, 19 Dec 2017 19:52:41 +0100
+Subject: [PATCH 3/8] Only print items (Params::prValue) when size > 0
+
+---
+ src/actions.cpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/actions.cpp b/src/actions.cpp
+index 9f850097..3963cb67 100644
+--- a/src/actions.cpp
++++ b/src/actions.cpp
+@@ -713,8 +713,9 @@ namespace Action {
+ << std::setfill(' ') << std::right
+ << md.size();
+ }
+- if (Params::instance().printItems_ & Params::prValue) {
+- if (!first) std::cout << " ";
++ if (Params::instance().printItems_ & Params::prValue && md.size() > 0) {
++ if (!first)
++ std::cout << " ";
+ first = false;
+ if ( Params::instance().binary_
+ && ( md.typeId() == Exiv2::undefined
+--
+2.17.0
+
+
+From 463485e5c1cc716108880f75b9c573715bf402b1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
+Date: Tue, 19 Dec 2017 19:54:17 +0100
+Subject: [PATCH 4/8] Move condition in if statement to discard work earlier
+
+---
+ src/actions.cpp | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/actions.cpp b/src/actions.cpp
+index 3963cb67..f51cb488 100644
+--- a/src/actions.cpp
++++ b/src/actions.cpp
+@@ -717,11 +717,10 @@ namespace Action {
+ if (!first)
+ std::cout << " ";
+ first = false;
+- if ( Params::instance().binary_
+- && ( md.typeId() == Exiv2::undefined
++ if (md.size() > 128 && Params::instance().binary_ && (
++ md.typeId() == Exiv2::undefined
+ || md.typeId() == Exiv2::unsignedByte
+- || md.typeId() == Exiv2::signedByte)
+- && md.size() > 128) {
++ || md.typeId() == Exiv2::signedByte)) {
+ std::cout << _("(Binary value suppressed)") << std::endl;
+ return true;
+ }
+--
+2.17.0
+
+
+From 7fe7501c01e5d1eec16a736062dd0c34d6408833 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
+Date: Tue, 19 Dec 2017 19:55:50 +0100
+Subject: [PATCH 5/8] Apply clang-format to Print::printMetadatum
+
+---
+ src/actions.cpp | 110 ++++++++++++++++++++++++------------------------
+ 1 file changed, 55 insertions(+), 55 deletions(-)
+
+diff --git a/src/actions.cpp b/src/actions.cpp
+index f51cb488..b31d6ec6 100644
+--- a/src/actions.cpp
++++ b/src/actions.cpp
+@@ -636,91 +636,90 @@ namespace Action {
+
+ bool Print::printMetadatum(const Exiv2::Metadatum& md, const Exiv2::Image* pImage)
+ {
+- if (!grepTag(md.key())) return false;
+- if (!keyTag (md.key())) return false;
++ if (!grepTag(md.key()))
++ return false;
++ if (!keyTag(md.key()))
++ return false;
+
+- if ( Params::instance().unknown_
+- && md.tagName().substr(0, 2) == "0x") {
++ if (Params::instance().unknown_ && md.tagName().substr(0, 2) == "0x") {
+ return false;
+ }
++
+ bool const manyFiles = Params::instance().files_.size() > 1;
+ if (manyFiles) {
+- std::cout << std::setfill(' ') << std::left << std::setw(20)
+- << path_ << " ";
++ std::cout << std::setfill(' ') << std::left << std::setw(20) << path_ << " ";
+ }
++
+ bool first = true;
+ if (Params::instance().printItems_ & Params::prTag) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << "0x" << std::setw(4) << std::setfill('0')
+- << std::right << std::hex
+- << md.tag();
++ std::cout << "0x" << std::setw(4) << std::setfill('0') << std::right << std::hex << md.tag();
+ }
+ if (Params::instance().printItems_ & Params::prSet) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << "set" ;
++ std::cout << "set";
+ }
+ if (Params::instance().printItems_ & Params::prGroup) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::setw(12) << std::setfill(' ') << std::left
+- << md.groupName();
++ std::cout << std::setw(12) << std::setfill(' ') << std::left << md.groupName();
+ }
+ if (Params::instance().printItems_ & Params::prKey) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::setfill(' ') << std::left << std::setw(44)
+- << md.key();
++ std::cout << std::setfill(' ') << std::left << std::setw(44) << md.key();
+ }
+ if (Params::instance().printItems_ & Params::prName) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::setw(27) << std::setfill(' ') << std::left
+- << md.tagName();
++ std::cout << std::setw(27) << std::setfill(' ') << std::left << md.tagName();
+ }
+ if (Params::instance().printItems_ & Params::prLabel) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::setw(30) << std::setfill(' ') << std::left
+- << md.tagLabel();
++ std::cout << std::setw(30) << std::setfill(' ') << std::left << md.tagLabel();
+ }
+ if (Params::instance().printItems_ & Params::prType) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+ std::cout << std::setw(9) << std::setfill(' ') << std::left;
+ const char* tn = md.typeName();
+ if (tn) {
+ std::cout << tn;
+- }
+- else {
++ } else {
+ std::ostringstream os;
+ os << "0x" << std::setw(4) << std::setfill('0') << std::hex << md.typeId();
+ std::cout << os.str();
+ }
+ }
+ if (Params::instance().printItems_ & Params::prCount) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::dec << std::setw(3)
+- << std::setfill(' ') << std::right
+- << md.count();
++ std::cout << std::dec << std::setw(3) << std::setfill(' ') << std::right << md.count();
+ }
+ if (Params::instance().printItems_ & Params::prSize) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- std::cout << std::dec << std::setw(3)
+- << std::setfill(' ') << std::right
+- << md.size();
++ std::cout << std::dec << std::setw(3) << std::setfill(' ') << std::right << md.size();
+ }
+ if (Params::instance().printItems_ & Params::prValue && md.size() > 0) {
+ if (!first)
+ std::cout << " ";
+ first = false;
+- if (md.size() > 128 && Params::instance().binary_ && (
+- md.typeId() == Exiv2::undefined
+- || md.typeId() == Exiv2::unsignedByte
+- || md.typeId() == Exiv2::signedByte)) {
++ if (md.size() > 128 && Params::instance().binary_ &&
++ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
++ md.typeId() == Exiv2::signedByte)) {
+ std::cout << _("(Binary value suppressed)") << std::endl;
+ return true;
+ }
+@@ -738,22 +737,22 @@ namespace Action {
+ }
+ if (!done) {
+ // #1114 - show negative values for SByte
+- if (md.typeId() != Exiv2::signedByte){
++ if (md.typeId() != Exiv2::signedByte) {
+ std::cout << std::dec << md.value();
+ } else {
+ int value = md.value().toLong();
+- std::cout << std::dec << (value<128?value:value-256);
++ std::cout << std::dec << (value < 128 ? value : value - 256);
+ }
+ }
+ }
+ if (Params::instance().printItems_ & Params::prTrans) {
+- if (!first) std::cout << " ";
++ if (!first)
++ std::cout << " ";
+ first = false;
+- if ( Params::instance().binary_
+- && ( md.typeId() == Exiv2::undefined
+- || md.typeId() == Exiv2::unsignedByte
+- || md.typeId() == Exiv2::signedByte)
+- && md.size() > 128) {
++ if (Params::instance().binary_ &&
++ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
++ md.typeId() == Exiv2::signedByte) &&
++ md.size() > 128) {
+ std::cout << _("(Binary value suppressed)") << std::endl;
+ return true;
+ }
+@@ -765,16 +764,17 @@ namespace Action {
+ done = true;
+ }
+ }
+- if (!done) std::cout << std::dec << md.print(&pImage->exifData());
++ if (!done)
++ std::cout << std::dec << md.print(&pImage->exifData());
+ }
+ if (Params::instance().printItems_ & Params::prHex) {
+- if (!first) std::cout << std::endl;
++ if (!first)
++ std::cout << std::endl;
+ first = false;
+- if ( Params::instance().binary_
+- && ( md.typeId() == Exiv2::undefined
+- || md.typeId() == Exiv2::unsignedByte
+- || md.typeId() == Exiv2::signedByte)
+- && md.size() > 128) {
++ if (Params::instance().binary_ &&
++ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
++ md.typeId() == Exiv2::signedByte) &&
++ md.size() > 128) {
+ std::cout << _("(Binary value suppressed)") << std::endl;
+ return true;
+ }
+@@ -784,7 +784,7 @@ namespace Action {
+ }
+ std::cout << std::endl;
+ return true;
+- } // Print::printMetadatum
++ } // Print::printMetadatum
+
+ int Print::printComment()
+ {
+--
+2.17.0
+
+
+From 78ddc7a92afaaf58b78d5c49b5c2ad7b60a4e25f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
+Date: Thu, 21 Dec 2017 16:39:43 +0100
+Subject: [PATCH 6/8] Do not deference value when it does not exist (Thanks
+ D4N)
+
+---
+ samples/exiv2json.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/samples/exiv2json.cpp b/samples/exiv2json.cpp
+index 505268d9..a81268f0 100644
+--- a/samples/exiv2json.cpp
++++ b/samples/exiv2json.cpp
+@@ -148,6 +148,11 @@ bool isArray(std::string& value)
+ template <class T>
+ void push(Jzon::Node& node,const std::string& key,T i)
+ {
++#define ABORT_IF_I_EMTPY \
++ if (i->value().size() == 0) { \
++ return; \
++ }
++
+ std::string value = i->value().toString();
+
+ switch ( i->typeId() ) {
+@@ -179,6 +184,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
+
+ case Exiv2::unsignedRational:
+ case Exiv2::signedRational: {
++ ABORT_IF_I_EMTPY
+ Jzon::Array arr;
+ Exiv2::Rational rat = i->value().toRational();
+ arr.Add(rat.first );
+@@ -187,6 +193,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
+ } break;
+
+ case Exiv2::langAlt: {
++ ABORT_IF_I_EMTPY
+ Jzon::Object l ;
+ const Exiv2::LangAltValue& langs = dynamic_cast<const Exiv2::LangAltValue&>(i->value());
+ for ( Exiv2::LangAltValue::ValueType::const_iterator lang = langs.value_.begin()
+--
+2.17.0
+
+
+From 871e6e3ced1cdec7e43bf8cb94e269a7f5c09d92 Mon Sep 17 00:00:00 2001
+From: Robin Mills <robin@clanmills.com>
+Date: Thu, 15 Mar 2018 10:43:18 +0000
+Subject: [PATCH 8/8] Fix for getopt(), #199. Use src/getopt_win32 code instead
+ of libc/getopt()
+
+---
+ config/config.mk.in | 2 +-
+ src/CMakeLists.txt | 6 ++----
+ src/Makefile | 13 +++++--------
+ src/getopt_win32.c | 9 +++++++++
+ src/getopt_win32.h | 7 +++++++
+ src/utils.cpp | 9 +++------
+ 6 files changed, 27 insertions(+), 19 deletions(-)
+
+diff --git a/config/config.mk.in b/config/config.mk.in
+index 8d920647..4754c722 100644
+--- a/config/config.mk.in
++++ b/config/config.mk.in
+@@ -165,7 +165,7 @@ endif
+ # **********************************************************************
+ # Compilation shortcuts
+ COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
+-COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
++COMPILE.c = $(CC) $(CFLAGS) -c
+ # LINK.cc does not need $(LIBS), libtool's dark magic takes care of that
+ # when linking a binary with a libtool library.
+ LINK.cc = $(CXX) $(LDFLAGS)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d4dc6375..dceee236 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -218,10 +218,8 @@ IF(NOT HAVE_TIMEGM )
+ SET( PATHTEST_SRC ${PATHTEST_SRC} localtime.c )
+ ENDIF( NOT HAVE_TIMEGM )
+
+-IF( MSVC )
+- SET( EXIV2_SRC ${EXIV2_SRC} getopt_win32.c )
+- SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} getopt_win32.c )
+-ENDIF( MSVC )
++SET( EXIV2_SRC ${EXIV2_SRC} getopt_win32.c )
++SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} getopt_win32.c )
+
+ ##
+ # msvn tuning
+diff --git a/src/Makefile b/src/Makefile
+index 8a8366fe..d046e331 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -131,8 +131,7 @@ CCSRC += asfvideo.cpp \
+ utilsvideo.cpp
+ endif
+
+-# Add library C source files to this list
+-EXIVCSRC =
++# C source files
+ ifndef HAVE_TIMEGM
+ CSRC = localtime.c
+ endif
+@@ -141,9 +140,7 @@ endif
+ EXIV2MAIN = exiv2.cpp
+ EXIV2SRC = actions.cpp \
+ utils.cpp
+-
+-# C source files for the Exiv2 application
+-EXIVCSRC =
++EXIVCSRC = getopt_win32.c
+
+ # ******************************************************************************
+ # Library
+@@ -176,7 +173,7 @@ OBJ = $(CCOBJ) $(COBJ)
+ LOBJ = $(CCLOBJ) $(CLOBJ)
+
+ EXIV2OBJ = $(EXIV2MAIN:.cpp=.o) $(EXIV2SRC:.cpp=.o)
+-EXIV2COBJ = $(EXIVCSRC:.c=.o)
++EXIVCOBJ = $(EXIVCSRC:.c=.o)
+ EXIV2EXE = $(EXIV2MAIN:.cpp=$(EXEEXT))
+
+ ifdef DEP_TRACKING
+@@ -251,9 +248,9 @@ lib: $(OBJ)
+ $(BINARY): %: %.o lib
+ @$(LIBTOOL) --mode=link $(LINK.cc) -o $@ $(LIBRARY) $@.o -rpath $(libdir)
+
+-$(EXIV2EXE): lib $(EXIV2OBJ) $(EXIV2COBJ)
++$(EXIV2EXE): lib $(EXIV2OBJ) $(EXIVCOBJ)
+ mkdir -pv ../bin 2>&1 > /dev/null
+- @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIV2OBJ) $(EXIV2COBJ) -rpath $(libdir)
++ @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIV2OBJ) $(EXIVCOBJ) -rpath $(libdir)
+
+ install-header:
+ $(INSTALL_DIRS) $(DESTDIR)$(incdir)
+diff --git a/src/getopt_win32.c b/src/getopt_win32.c
+index fca29924..18dfcfbf 100644
+--- a/src/getopt_win32.c
++++ b/src/getopt_win32.c
+@@ -194,6 +194,10 @@ permute_args(panonopt_start, panonopt_end, opt_end, nargv)
+ }
+ }
+
++#ifdef __GETOPT_DEFINE_ARGV__
++char * const *__argv;
++#endif
++
+ /*
+ * getopt_internal --
+ * Parse argc/argv argument vector. Called by user level routines.
+@@ -205,6 +209,11 @@ getopt_internal(nargc, nargv, options)
+ char * const *nargv;
+ const char *options;
+ {
++
++#ifdef __GETOPT_DEFINE_ARGV__
++ __argv=nargv;
++#endif
++
+ char *oli; /* option letter list index */
+ int optchar;
+
+diff --git a/src/getopt_win32.h b/src/getopt_win32.h
+index 6b6f643b..cd5760a3 100644
+--- a/src/getopt_win32.h
++++ b/src/getopt_win32.h
+@@ -38,6 +38,13 @@
+ extern "C" {
+ #endif
+
++#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) && !defined(_MSC_VER)
++// the symbol __argv (and __argc and __progname and __env) are defined in Windows environments
++// for *ix environments, __argv is declared here, defined: getopt_win32.c, init'd: getopt_internal()
++#define __GETOPT_DEFINE_ARGV__
++extern char * const *__argv;
++#endif
++
+ extern int opterr; /* if error message should be printed */
+ extern int optind; /* index into parent argv vector */
+ extern int optopt; /* character checked for validity */
+diff --git a/src/utils.cpp b/src/utils.cpp
+index a3d36497..2a092330 100644
+--- a/src/utils.cpp
++++ b/src/utils.cpp
+@@ -32,18 +32,15 @@ EXIV2_RCSID("@(#) $Id$")
+ #include "config.h"
+
+ #include "utils.hpp"
+-
+-// + standard includes
+-#if defined(_MSC_VER) || defined(__MINGW__)
+-# include "getopt_win32.h"
+-#endif
++#include "getopt_win32.h"
+
+ #if defined(_MSC_VER)
+ # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+ #endif
+
++// + standard includes
+ #ifdef EXV_HAVE_UNISTD_H
+-# include <unistd.h> // for getopt(), stat()
++# include <unistd.h> // for stat()
+ #endif
+
+ #include <sys/types.h>
+--
+2.17.0
+
diff --git a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch
new file mode 100644
index 0000000..a594a2b
--- /dev/null
+++ b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch
@@ -0,0 +1,39 @@
+From ce4f575e106697c0e513091e95a7cd12ed6a488b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dan.cermak@cgc-instruments.com>
+Date: Tue, 9 Jan 2018 21:18:36 +0100
+Subject: [PATCH 1/8] Add check for DataBuf.size_ in Jp2Image::readMetadata()
+
+When parsing a subBox that is a ColorHeader, a length is extracted
+from the input file and fed directly into DataBuf() (which calls
+malloc). A crafted input file can provide arbitrarily (up to
+max(uint32_t)-8) large values and result in excessive memory
+allocation.
+
+This commit adds a check for the new size of DataBuf so that it is not
+larger than the remaining size of the file.
+
+This fixes #202 aka CVE-2018-4868
+---
+ src/jp2image.cpp | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/jp2image.cpp b/src/jp2image.cpp
+index a308bfd9..3cebc2a8 100644
+--- a/src/jp2image.cpp
++++ b/src/jp2image.cpp
+@@ -272,7 +272,12 @@ namespace Exiv2
+ #endif
+
+ const long pad = 3 ; // 3 padding bytes 2 0 0
+- DataBuf data(Safe::add(subBox.length, static_cast<uint32_t>(8)));
++ const size_t data_length = Safe::add(subBox.length, static_cast<uint32_t>(8));
++ // data_length makes no sense if it is larger than the rest of the file
++ if (data_length > io_->size() - io_->tell()) {
++ throw Error(58);
++ }
++ DataBuf data(data_length);
+ io_->read(data.pData_,data.size_);
+ const long iccLength = getULong(data.pData_+pad, bigEndian);
+ // subtracting pad from data.size_ is safe:
+--
+2.17.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/musl:master commit in: media-gfx/exiv2/, media-gfx/exiv2/files/
@ 2020-04-22 22:15 Anthony G. Basile
0 siblings, 0 replies; 4+ messages in thread
From: Anthony G. Basile @ 2020-04-22 22:15 UTC (permalink / raw
To: gentoo-commits
commit: 8d9dede28f474c6796c9df677bbb286a45e673b8
Author: Michael Everitt <gentoo <AT> veremit <DOT> xyz>
AuthorDate: Wed Apr 22 22:14:47 2020 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Apr 22 22:15:19 2020 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=8d9dede2
Fixed upstream in commit d775683 and release 0.27.
Gentoo ebuild for 0.27.2 WFM:
>>> Completed installing media-gfx/exiv2-0.27.2 into /var/tmp/portage/media-gfx/exiv2-0.27.2/image
>>> media-gfx/exiv2-0.27.2 merged.
Signed-off-by: Michael Everitt <gentoo <AT> veremit.xyz>
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
media-gfx/exiv2/Manifest | 2 -
media-gfx/exiv2/exiv2-0.26_p20171104.ebuild | 129 ------
media-gfx/exiv2/exiv2-0.26_p20180319.ebuild | 136 ------
media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch | 83 ----
media-gfx/exiv2/files/exiv2-0.26-musl.patch | 33 --
.../exiv2/files/exiv2-0.26-pentaxnikon-crash.patch | 52 ---
.../exiv2/files/exiv2-0.26-tools-optional.patch | 28 --
.../exiv2-0.26_p20180319-CVE-2017-18005.patch | 484 ---------------------
.../files/exiv2-0.26_p20180319-CVE-2018-4868.patch | 39 --
media-gfx/exiv2/metadata.xml | 19 -
10 files changed, 1005 deletions(-)
diff --git a/media-gfx/exiv2/Manifest b/media-gfx/exiv2/Manifest
deleted file mode 100644
index ff80754..0000000
--- a/media-gfx/exiv2/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST exiv2-0.26_p20171104.tar.gz 28368697 BLAKE2B 50013cf0bf30a2a476b02d5db4027fca268a4b38733762eb4c08e5f3bdfaf737038e9a62f7ef471fecb10250d8ae686ef683f9b0ea4ccc5d109440ba534371e4 SHA512 6f6a884d7978e54dceb9ce45248cd0425ff469887c85ef52b0e38cb755970f69fce96b4b5317c8e8070b833f72ca214696042aac71292a6f9c3440f6a369d474
-DIST exiv2-0.26_p20180319.tar.gz 28383543 BLAKE2B 753a2ebdb2033490c0f66cb1fb2574f02125f17813f6cbaf5eca66e053af9a2cdbc1266f0a033f0706ec22b31acd6e87271e426a335a58ee947757b52d283489 SHA512 852ce2cffcc0a2d902a939933127fdf5fa0b50020e1faf3ab0a375b129b9f61c7b97b76d4f39e376e7288d7cc045867bd1a96ae15dd0b7c0bcd1ba15259628e1
diff --git a/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild b/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild
deleted file mode 100644
index edb2409..0000000
--- a/media-gfx/exiv2/exiv2-0.26_p20171104.ebuild
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
-if [[ ${PV} = *9999 ]]; then
- EGIT_REPO_URI="https://github.com/Exiv2/exiv2.git"
- EGIT_BRANCH="0.26"
- GIT_ECLASS=git-r3
-else
- COMMIT=900d2417dbeb46e14cbf65fc2798ed1d043ab76d
- SRC_URI="https://github.com/Exiv2/${PN}/tarball/${COMMIT} -> ${P}.tar.gz"
- KEYWORDS="amd64 arm arm64 ~mips ppc x86"
-fi
-inherit cmake-multilib python-any-r1 vcs-snapshot
-
-DESCRIPTION="EXIF, IPTC and XMP metadata C++ library and command line utility"
-HOMEPAGE="http://www.exiv2.org/"
-
-LICENSE="GPL-2"
-SLOT="0/26"
-IUSE="doc examples nls png webready xmp"
-
-RDEPEND="
- >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
- nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
- png? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
- webready? (
- net-libs/libssh[${MULTILIB_USEDEP}]
- net-misc/curl[${MULTILIB_USEDEP}]
- )
- xmp? ( >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] )
-"
-DEPEND="${RDEPEND}
- doc? (
- ${PYTHON_DEPS}
- app-doc/doxygen
- dev-libs/libxslt
- media-gfx/graphviz
- virtual/pkgconfig
- )
- nls? ( sys-devel/gettext )
-"
-
-DOCS=( README doc/ChangeLog doc/cmd.txt )
-
-PATCHES=(
- # TODO: Take to upstream
- "${FILESDIR}"/${PN}-0.26-fix-docs.patch
- "${FILESDIR}"/${PN}-0.26-tools-optional.patch
- "${FILESDIR}"/${PN}-0.26-musl.patch
-)
-
-pkg_setup() {
- use doc && python-any-r1_pkg_setup
-}
-
-src_prepare() {
- if [[ ${PV} != *9999 ]] ; then
- if [[ -d po ]] ; then
- pushd po > /dev/null || die
- local lang
- for lang in *.po; do
- if [[ -e ${lang} ]] \
- && ! has ${lang/.po/} ${LINGUAS-${lang/.po/}} ; then
- case ${lang} in
- CMakeLists.txt | \
- ${PN}.pot) ;;
- *) rm -r ${lang} || die ;;
- esac
- fi
- done
- popd > /dev/null || die
- else
- die "Failed to prepare LINGUAS - po directory moved?"
- fi
- fi
-
- # FIXME @upstream:
- einfo "Converting doc/cmd.txt to UTF-8"
- iconv -f LATIN1 -t UTF-8 doc/cmd.txt > doc/cmd.txt.tmp || die
- mv -f doc/cmd.txt.tmp doc/cmd.txt || die
-
- if use doc; then
- einfo "Updating doxygen config"
- doxygen &>/dev/null -u config/Doxyfile || die
- fi
-
- cmake-utils_src_prepare
-}
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DEXIV2_ENABLE_BUILD_SAMPLES=NO
- -DEXIV2_ENABLE_BUILD_PO=$(usex nls)
- -DEXIV2_ENABLE_NLS=$(usex nls)
- -DEXIV2_ENABLE_PNG=$(usex png)
- -DEXIV2_ENABLE_CURL=$(usex webready)
- -DEXIV2_ENABLE_SSH=$(usex webready)
- -DEXIV2_ENABLE_WEBREADY=$(usex webready)
- -DEXIV2_ENABLE_XMP=$(usex xmp)
- -DEXIV2_ENABLE_LIBXMP=NO
- $(multilib_is_native_abi || echo -DEXIV2_ENABLE_TOOLS=NO)
- )
-
- cmake-utils_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_compile
-
- if multilib_is_native_abi; then
- use doc && emake -j1 doc
- fi
-}
-
-multilib_src_install_all() {
- use xmp && DOCS+=( doc/{COPYING-XMPSDK,README-XMP,cmdxmp.txt} )
- use doc && HTML_DOCS=( "${S}"/doc/html/. )
-
- einstalldocs
- find "${D}" -name '*.la' -delete || die
-
- if use examples; then
- docinto examples
- dodoc samples/*.cpp
- fi
-}
diff --git a/media-gfx/exiv2/exiv2-0.26_p20180319.ebuild b/media-gfx/exiv2/exiv2-0.26_p20180319.ebuild
deleted file mode 100644
index 41c6e6f..0000000
--- a/media-gfx/exiv2/exiv2-0.26_p20180319.ebuild
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
-if [[ ${PV} = *9999 ]]; then
- EGIT_REPO_URI="https://github.com/Exiv2/exiv2.git"
- EGIT_BRANCH="0.26"
- GIT_ECLASS=git-r3
-else
- COMMIT=876b1314ab892cbfa6672b6b94adbeb90db4211f
- SRC_URI="https://github.com/Exiv2/${PN}/tarball/${COMMIT} -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86"
-fi
-inherit cmake-multilib python-any-r1
-
-DESCRIPTION="EXIF, IPTC and XMP metadata C++ library and command line utility"
-HOMEPAGE="http://www.exiv2.org/"
-
-LICENSE="GPL-2"
-SLOT="0/26"
-IUSE="doc examples nls png webready xmp"
-
-RDEPEND="
- >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
- nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
- png? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
- webready? (
- net-libs/libssh[${MULTILIB_USEDEP}]
- net-misc/curl[${MULTILIB_USEDEP}]
- )
- xmp? ( >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] )
-"
-DEPEND="${RDEPEND}
- doc? (
- ${PYTHON_DEPS}
- app-doc/doxygen
- dev-libs/libxslt
- media-gfx/graphviz
- virtual/pkgconfig
- )
- nls? ( sys-devel/gettext )
-"
-
-DOCS=( README doc/ChangeLog doc/cmd.txt )
-
-S="${WORKDIR}/${PN^}-${PN}-${COMMIT:0:7}"
-
-PATCHES=(
- # master, pending backports for 0.26
- "${FILESDIR}"/${P}-CVE-2018-4868.patch
- "${FILESDIR}"/${P}-CVE-2017-18005.patch
- # TODO: Take to upstream
- "${FILESDIR}"/${PN}-0.26-fix-docs.patch
- "${FILESDIR}"/${PN}-0.26-tools-optional.patch
- "${FILESDIR}"/${PN}-0.26-musl.patch
-)
-
-pkg_setup() {
- use doc && python-any-r1_pkg_setup
-}
-
-src_prepare() {
- if [[ ${PV} != *9999 ]] ; then
- if [[ -d po ]] ; then
- pushd po > /dev/null || die
- local lang
- for lang in *.po; do
- if [[ -e ${lang} ]] \
- && ! has ${lang/.po/} ${LINGUAS-${lang/.po/}} ; then
- case ${lang} in
- CMakeLists.txt | \
- ${PN}.pot) ;;
- *) rm -r ${lang} || die ;;
- esac
- fi
- done
- popd > /dev/null || die
- else
- die "Failed to prepare LINGUAS - po directory moved?"
- fi
- fi
-
- # FIXME @upstream:
- einfo "Converting doc/cmd.txt to UTF-8"
- iconv -f LATIN1 -t UTF-8 doc/cmd.txt > doc/cmd.txt.tmp || die
- mv -f doc/cmd.txt.tmp doc/cmd.txt || die
-
- if use doc; then
- einfo "Updating doxygen config"
- doxygen &>/dev/null -u config/Doxyfile || die
- fi
-
- edos2unix samples/exiv2json.cpp # workaround for CVE-2017-18005 patch
-
- cmake-utils_src_prepare
-}
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DEXIV2_ENABLE_BUILD_SAMPLES=NO
- -DEXIV2_ENABLE_BUILD_PO=$(usex nls)
- -DEXIV2_ENABLE_NLS=$(usex nls)
- -DEXIV2_ENABLE_PNG=$(usex png)
- -DEXIV2_ENABLE_CURL=$(usex webready)
- -DEXIV2_ENABLE_SSH=$(usex webready)
- -DEXIV2_ENABLE_WEBREADY=$(usex webready)
- -DEXIV2_ENABLE_XMP=$(usex xmp)
- -DEXIV2_ENABLE_LIBXMP=NO
- $(multilib_is_native_abi || echo -DEXIV2_ENABLE_TOOLS=NO)
- )
-
- cmake-utils_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_compile
-
- if multilib_is_native_abi; then
- use doc && emake -j1 doc
- fi
-}
-
-multilib_src_install_all() {
- use xmp && DOCS+=( doc/{COPYING-XMPSDK,README-XMP,cmdxmp.txt} )
- use doc && HTML_DOCS=( "${S}"/doc/html/. )
-
- einstalldocs
- find "${D}" -name '*.la' -delete || die
-
- if use examples; then
- docinto examples
- dodoc samples/*.cpp
- fi
-}
diff --git a/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch b/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch
deleted file mode 100644
index 05ea18d..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-fix-docs.patch
+++ /dev/null
@@ -1,83 +0,0 @@
---- a/CMakeLists.txt 2015-07-19 16:04:35.363628707 +0200
-+++ b/CMakeLists.txt 2015-07-19 16:28:31.051680136 +0200
-@@ -216,9 +216,7 @@
- ADD_SUBDIRECTORY( xmpsdk )
- ADD_SUBDIRECTORY( src )
-
--IF( EXIV2_ENABLE_BUILD_SAMPLES )
-- ADD_SUBDIRECTORY( samples )
--ENDIF( EXIV2_ENABLE_BUILD_SAMPLES )
-+ADD_SUBDIRECTORY( samples )
-
- IF( EXIV2_ENABLE_BUILD_PO )
- ADD_SUBDIRECTORY( po )
---- a/samples/CMakeLists.txt 2015-07-19 16:04:35.360628744 +0200
-+++ b/samples/CMakeLists.txt 2015-07-19 16:30:46.415987850 +0200
-@@ -21,6 +21,10 @@
- include_directories("${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src")
-
--SET( SAMPLES addmoddel.cpp
-+SET( SAMPLES taglist.cpp )
-+
-+IF( EXIV2_ENABLE_BUILD_SAMPLES )
-+ SET( SAMPLES ${SAMPLES}
-+ addmoddel.cpp
- convert-test.cpp
- easyaccess-test.cpp
- exifcomment.cpp
-@@ -38,7 +42,6 @@
- mmap-test.cpp
- prevtest.cpp
- stringto-test.cpp
-- taglist.cpp
- tiff-test.cpp
- werror-test.cpp
- write-test.cpp
-@@ -47,6 +50,7 @@
- xmpparser-test.cpp
- xmpsample.cpp
- )
-+ENDIF()
-
- FOREACH(entry ${SAMPLES})
- STRING( REPLACE ".cpp" "" target ${entry})
-@@ -63,6 +67,7 @@
- SET( MC_SRC ${MC_SRC} ../src/getopt_win32.c )
- ENDIF( MSVC )
-
-+IF( EXIV2_ENABLE_BUILD_SAMPLES )
- SET( MC_SRC ${MC_SRC} metacopy.cpp ../src/utils.cpp )
- ADD_EXECUTABLE( metacopy ${MC_SRC} )
- TARGET_LINK_LIBRARIES( metacopy exiv2lib )
-@@ -79,6 +84,7 @@
- # ******************************************************************************
- # Man page
- INSTALL( FILES exiv2samples.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 )
-+ENDIF()
-
- # That's all Folks!
- ##
---- a/doc/templates/Makefile 2015-07-19 16:50:50.589933604 +0200
-+++ b/doc/templates/Makefile 2015-07-19 16:51:07.686719864 +0200
-@@ -143,7 +143,7 @@
- xmp_mwg-rs \
- xmp_mwg-kw
-
--TAGLIST = ../../bin/taglist
-+TAGLIST = ../../src/bin/taglist
-
- # **********************************************************************
- # ======================================================================
-diff --git a/doc/cmake_doc.sh b/doc/cmake_doc.sh
-index 44dd6760..5910a86d 100755
---- a/doc/cmake_doc.sh
-+++ b/doc/cmake_doc.sh
-@@ -16,7 +16,7 @@ if [ $# == 1 ]; then
- mv src/exv_conf.h.keep src/exv_conf.h
- fi
- mkdir -p src/bin/
-- cp -f "${CMAKE_BINARY_DIR}/bin/taglist" src/bin/
-+ cp -f "${CMAKE_BINARY_DIR}/samples/taglist" src/bin/
- make doc
- fi
-
diff --git a/media-gfx/exiv2/files/exiv2-0.26-musl.patch b/media-gfx/exiv2/files/exiv2-0.26-musl.patch
deleted file mode 100644
index ed4f010..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-musl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d775683f579543c35463ab2a8d9425da10d2f016 Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Wed, 4 Oct 2017 00:15:30 -0500
-Subject: [PATCH] Amend fix for #9 to apply to other Unix systems
-
-At least the musl libc on Linux has the same issue as Mac OS X: the
-PTHREAD_RECURSIVE_* static initialiser does not exist. This is a
-documented and purposeful omission:
-
-http://www.openwall.com/lists/musl/2017/02/20/3
-
-This commit uses similar logic to the Apple test on other Unixes.
----
- src/actions.cpp | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/actions.cpp b/src/actions.cpp
-index fe14de40..aa15ec7d 100644
---- a/src/actions.cpp
-+++ b/src/actions.cpp
-@@ -2051,7 +2051,11 @@ namespace {
- static pthread_mutex_t cs = PTHREAD_MUTEX_INITIALIZER;
- #endif
- #else
-- static pthread_mutex_t cs = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-+ #if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
-+ static pthread_mutex_t cs = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-+ #else
-+ static pthread_mutex_t cs = PTHREAD_MUTEX_INITIALIZER;
-+ #endif
- #endif
- #endif
-
diff --git a/media-gfx/exiv2/files/exiv2-0.26-pentaxnikon-crash.patch b/media-gfx/exiv2/files/exiv2-0.26-pentaxnikon-crash.patch
deleted file mode 100644
index a66af8d..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-pentaxnikon-crash.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 2dc166b04ca6152d01bff6627a332e89ddef24d1 Mon Sep 17 00:00:00 2001
-From: clanmills <robin@clanmills.com>
-Date: Tue, 12 Sep 2017 09:14:42 +0100
-Subject: [PATCH 1/2] Fix http://dev.exiv2.org/issues/1305
-
----
- src/pentaxmn.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/pentaxmn.cpp b/src/pentaxmn.cpp
-index 4fc38be0..b22cb43b 100644
---- a/src/pentaxmn.cpp
-+++ b/src/pentaxmn.cpp
-@@ -1167,6 +1167,8 @@ namespace Exiv2 {
-
- std::ostream& PentaxMakerNote::printShutterCount(std::ostream& os, const Value& value, const ExifData* metadata)
- {
-+ if ( ! metadata ) return os << "undefined" ;
-+
- ExifData::const_iterator dateIt = metadata->findKey(
- ExifKey("Exif.PentaxDng.Date"));
- if (dateIt == metadata->end()) {
---
-2.13.6
-
-
-From 3bc0b91bcecefdad531129b1a934be1251021c95 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?M=C4=81ris=20Narti=C5=A1s?= <mn@sungis.lv>
-Date: Mon, 18 Sep 2017 23:37:40 +0300
-Subject: [PATCH 2/2] Fix crash on undefined metadata on some Nikon images.
- Identical to commit:5405d61623e82896e498c5c8342dd6f42e689115
-
----
- src/nikonmn.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp
-index 571ab806..34bf601c 100644
---- a/src/nikonmn.cpp
-+++ b/src/nikonmn.cpp
-@@ -299,6 +299,8 @@ namespace Exiv2 {
- const Value& value,
- const ExifData* exifData)
- {
-+ if ( ! exifData ) return os << "undefined" ;
-+
- if ( value.count() >= 9 ) {
- ByteOrder bo = getKeyString("Exif.MakerNote.ByteOrder",exifData) == "MM" ? bigEndian : littleEndian;
- byte p[4];
---
-2.13.6
-
diff --git a/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch b/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch
deleted file mode 100644
index 686b37f..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26-tools-optional.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/CMakeLists.txt 2017-06-07 00:14:25.374608170 +0200
-+++ b/CMakeLists.txt 2017-06-07 00:17:00.680483299 +0200
-@@ -60,6 +60,7 @@
- OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON )
- SET ( EXIV2_ENABLE_DYNAMIC_RUNTIME OFF )
- ENDIF()
-+OPTION( EXIV2_ENABLE_TOOLS "Build exiv2 executable" ON )
-
- # set include path for FindXXX.cmake files
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/")
---- a/src/CMakeLists.txt 2017-06-07 00:14:25.368608098 +0200
-+++ b/src/CMakeLists.txt 2017-06-07 00:16:06.710831682 +0200
-@@ -317,10 +317,12 @@
-
- # ******************************************************************************
- # exiv2 application
--ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} )
-+IF(EXIV2_ENABLE_TOOLS)
-+ ADD_EXECUTABLE( exiv2 ${EXIV2_SRC} ${EXIV2_HDR} )
- target_compile_definitions(exiv2 PRIVATE EXV_LOCALEDIR="${CMAKE_INSTALL_LOCALEDIR}" )
--TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} )
--INSTALL( TARGETS exiv2 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-+ TARGET_LINK_LIBRARIES( exiv2 exiv2lib ${LIBINTL_LIBRARIES} )
-+ INSTALL( TARGETS exiv2 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-+ENDIF( EXIV2_ENABLE_TOOLS )
-
- # ******************************************************************************
- # connection test application
diff --git a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch
deleted file mode 100644
index d74ca59..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2017-18005.patch
+++ /dev/null
@@ -1,484 +0,0 @@
-From 8e31dd8c14fdc83f387f35dda7b1b70fbdbd70db Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
-Date: Tue, 19 Dec 2017 19:52:41 +0100
-Subject: [PATCH 3/8] Only print items (Params::prValue) when size > 0
-
----
- src/actions.cpp | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/actions.cpp b/src/actions.cpp
-index 9f850097..3963cb67 100644
---- a/src/actions.cpp
-+++ b/src/actions.cpp
-@@ -713,8 +713,9 @@ namespace Action {
- << std::setfill(' ') << std::right
- << md.size();
- }
-- if (Params::instance().printItems_ & Params::prValue) {
-- if (!first) std::cout << " ";
-+ if (Params::instance().printItems_ & Params::prValue && md.size() > 0) {
-+ if (!first)
-+ std::cout << " ";
- first = false;
- if ( Params::instance().binary_
- && ( md.typeId() == Exiv2::undefined
---
-2.17.0
-
-
-From 463485e5c1cc716108880f75b9c573715bf402b1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
-Date: Tue, 19 Dec 2017 19:54:17 +0100
-Subject: [PATCH 4/8] Move condition in if statement to discard work earlier
-
----
- src/actions.cpp | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/actions.cpp b/src/actions.cpp
-index 3963cb67..f51cb488 100644
---- a/src/actions.cpp
-+++ b/src/actions.cpp
-@@ -717,11 +717,10 @@ namespace Action {
- if (!first)
- std::cout << " ";
- first = false;
-- if ( Params::instance().binary_
-- && ( md.typeId() == Exiv2::undefined
-+ if (md.size() > 128 && Params::instance().binary_ && (
-+ md.typeId() == Exiv2::undefined
- || md.typeId() == Exiv2::unsignedByte
-- || md.typeId() == Exiv2::signedByte)
-- && md.size() > 128) {
-+ || md.typeId() == Exiv2::signedByte)) {
- std::cout << _("(Binary value suppressed)") << std::endl;
- return true;
- }
---
-2.17.0
-
-
-From 7fe7501c01e5d1eec16a736062dd0c34d6408833 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
-Date: Tue, 19 Dec 2017 19:55:50 +0100
-Subject: [PATCH 5/8] Apply clang-format to Print::printMetadatum
-
----
- src/actions.cpp | 110 ++++++++++++++++++++++++------------------------
- 1 file changed, 55 insertions(+), 55 deletions(-)
-
-diff --git a/src/actions.cpp b/src/actions.cpp
-index f51cb488..b31d6ec6 100644
---- a/src/actions.cpp
-+++ b/src/actions.cpp
-@@ -636,91 +636,90 @@ namespace Action {
-
- bool Print::printMetadatum(const Exiv2::Metadatum& md, const Exiv2::Image* pImage)
- {
-- if (!grepTag(md.key())) return false;
-- if (!keyTag (md.key())) return false;
-+ if (!grepTag(md.key()))
-+ return false;
-+ if (!keyTag(md.key()))
-+ return false;
-
-- if ( Params::instance().unknown_
-- && md.tagName().substr(0, 2) == "0x") {
-+ if (Params::instance().unknown_ && md.tagName().substr(0, 2) == "0x") {
- return false;
- }
-+
- bool const manyFiles = Params::instance().files_.size() > 1;
- if (manyFiles) {
-- std::cout << std::setfill(' ') << std::left << std::setw(20)
-- << path_ << " ";
-+ std::cout << std::setfill(' ') << std::left << std::setw(20) << path_ << " ";
- }
-+
- bool first = true;
- if (Params::instance().printItems_ & Params::prTag) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << "0x" << std::setw(4) << std::setfill('0')
-- << std::right << std::hex
-- << md.tag();
-+ std::cout << "0x" << std::setw(4) << std::setfill('0') << std::right << std::hex << md.tag();
- }
- if (Params::instance().printItems_ & Params::prSet) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << "set" ;
-+ std::cout << "set";
- }
- if (Params::instance().printItems_ & Params::prGroup) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::setw(12) << std::setfill(' ') << std::left
-- << md.groupName();
-+ std::cout << std::setw(12) << std::setfill(' ') << std::left << md.groupName();
- }
- if (Params::instance().printItems_ & Params::prKey) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::setfill(' ') << std::left << std::setw(44)
-- << md.key();
-+ std::cout << std::setfill(' ') << std::left << std::setw(44) << md.key();
- }
- if (Params::instance().printItems_ & Params::prName) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::setw(27) << std::setfill(' ') << std::left
-- << md.tagName();
-+ std::cout << std::setw(27) << std::setfill(' ') << std::left << md.tagName();
- }
- if (Params::instance().printItems_ & Params::prLabel) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::setw(30) << std::setfill(' ') << std::left
-- << md.tagLabel();
-+ std::cout << std::setw(30) << std::setfill(' ') << std::left << md.tagLabel();
- }
- if (Params::instance().printItems_ & Params::prType) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
- std::cout << std::setw(9) << std::setfill(' ') << std::left;
- const char* tn = md.typeName();
- if (tn) {
- std::cout << tn;
-- }
-- else {
-+ } else {
- std::ostringstream os;
- os << "0x" << std::setw(4) << std::setfill('0') << std::hex << md.typeId();
- std::cout << os.str();
- }
- }
- if (Params::instance().printItems_ & Params::prCount) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::dec << std::setw(3)
-- << std::setfill(' ') << std::right
-- << md.count();
-+ std::cout << std::dec << std::setw(3) << std::setfill(' ') << std::right << md.count();
- }
- if (Params::instance().printItems_ & Params::prSize) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- std::cout << std::dec << std::setw(3)
-- << std::setfill(' ') << std::right
-- << md.size();
-+ std::cout << std::dec << std::setw(3) << std::setfill(' ') << std::right << md.size();
- }
- if (Params::instance().printItems_ & Params::prValue && md.size() > 0) {
- if (!first)
- std::cout << " ";
- first = false;
-- if (md.size() > 128 && Params::instance().binary_ && (
-- md.typeId() == Exiv2::undefined
-- || md.typeId() == Exiv2::unsignedByte
-- || md.typeId() == Exiv2::signedByte)) {
-+ if (md.size() > 128 && Params::instance().binary_ &&
-+ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
-+ md.typeId() == Exiv2::signedByte)) {
- std::cout << _("(Binary value suppressed)") << std::endl;
- return true;
- }
-@@ -738,22 +737,22 @@ namespace Action {
- }
- if (!done) {
- // #1114 - show negative values for SByte
-- if (md.typeId() != Exiv2::signedByte){
-+ if (md.typeId() != Exiv2::signedByte) {
- std::cout << std::dec << md.value();
- } else {
- int value = md.value().toLong();
-- std::cout << std::dec << (value<128?value:value-256);
-+ std::cout << std::dec << (value < 128 ? value : value - 256);
- }
- }
- }
- if (Params::instance().printItems_ & Params::prTrans) {
-- if (!first) std::cout << " ";
-+ if (!first)
-+ std::cout << " ";
- first = false;
-- if ( Params::instance().binary_
-- && ( md.typeId() == Exiv2::undefined
-- || md.typeId() == Exiv2::unsignedByte
-- || md.typeId() == Exiv2::signedByte)
-- && md.size() > 128) {
-+ if (Params::instance().binary_ &&
-+ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
-+ md.typeId() == Exiv2::signedByte) &&
-+ md.size() > 128) {
- std::cout << _("(Binary value suppressed)") << std::endl;
- return true;
- }
-@@ -765,16 +764,17 @@ namespace Action {
- done = true;
- }
- }
-- if (!done) std::cout << std::dec << md.print(&pImage->exifData());
-+ if (!done)
-+ std::cout << std::dec << md.print(&pImage->exifData());
- }
- if (Params::instance().printItems_ & Params::prHex) {
-- if (!first) std::cout << std::endl;
-+ if (!first)
-+ std::cout << std::endl;
- first = false;
-- if ( Params::instance().binary_
-- && ( md.typeId() == Exiv2::undefined
-- || md.typeId() == Exiv2::unsignedByte
-- || md.typeId() == Exiv2::signedByte)
-- && md.size() > 128) {
-+ if (Params::instance().binary_ &&
-+ (md.typeId() == Exiv2::undefined || md.typeId() == Exiv2::unsignedByte ||
-+ md.typeId() == Exiv2::signedByte) &&
-+ md.size() > 128) {
- std::cout << _("(Binary value suppressed)") << std::endl;
- return true;
- }
-@@ -784,7 +784,7 @@ namespace Action {
- }
- std::cout << std::endl;
- return true;
-- } // Print::printMetadatum
-+ } // Print::printMetadatum
-
- int Print::printComment()
- {
---
-2.17.0
-
-
-From 78ddc7a92afaaf58b78d5c49b5c2ad7b60a4e25f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
-Date: Thu, 21 Dec 2017 16:39:43 +0100
-Subject: [PATCH 6/8] Do not deference value when it does not exist (Thanks
- D4N)
-
----
- samples/exiv2json.cpp | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/samples/exiv2json.cpp b/samples/exiv2json.cpp
-index 505268d9..a81268f0 100644
---- a/samples/exiv2json.cpp
-+++ b/samples/exiv2json.cpp
-@@ -148,6 +148,11 @@ bool isArray(std::string& value)
- template <class T>
- void push(Jzon::Node& node,const std::string& key,T i)
- {
-+#define ABORT_IF_I_EMTPY \
-+ if (i->value().size() == 0) { \
-+ return; \
-+ }
-+
- std::string value = i->value().toString();
-
- switch ( i->typeId() ) {
-@@ -179,6 +184,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
-
- case Exiv2::unsignedRational:
- case Exiv2::signedRational: {
-+ ABORT_IF_I_EMTPY
- Jzon::Array arr;
- Exiv2::Rational rat = i->value().toRational();
- arr.Add(rat.first );
-@@ -187,6 +193,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
- } break;
-
- case Exiv2::langAlt: {
-+ ABORT_IF_I_EMTPY
- Jzon::Object l ;
- const Exiv2::LangAltValue& langs = dynamic_cast<const Exiv2::LangAltValue&>(i->value());
- for ( Exiv2::LangAltValue::ValueType::const_iterator lang = langs.value_.begin()
---
-2.17.0
-
-
-From 871e6e3ced1cdec7e43bf8cb94e269a7f5c09d92 Mon Sep 17 00:00:00 2001
-From: Robin Mills <robin@clanmills.com>
-Date: Thu, 15 Mar 2018 10:43:18 +0000
-Subject: [PATCH 8/8] Fix for getopt(), #199. Use src/getopt_win32 code instead
- of libc/getopt()
-
----
- config/config.mk.in | 2 +-
- src/CMakeLists.txt | 6 ++----
- src/Makefile | 13 +++++--------
- src/getopt_win32.c | 9 +++++++++
- src/getopt_win32.h | 7 +++++++
- src/utils.cpp | 9 +++------
- 6 files changed, 27 insertions(+), 19 deletions(-)
-
-diff --git a/config/config.mk.in b/config/config.mk.in
-index 8d920647..4754c722 100644
---- a/config/config.mk.in
-+++ b/config/config.mk.in
-@@ -165,7 +165,7 @@ endif
- # **********************************************************************
- # Compilation shortcuts
- COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
--COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
-+COMPILE.c = $(CC) $(CFLAGS) -c
- # LINK.cc does not need $(LIBS), libtool's dark magic takes care of that
- # when linking a binary with a libtool library.
- LINK.cc = $(CXX) $(LDFLAGS)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index d4dc6375..dceee236 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -218,10 +218,8 @@ IF(NOT HAVE_TIMEGM )
- SET( PATHTEST_SRC ${PATHTEST_SRC} localtime.c )
- ENDIF( NOT HAVE_TIMEGM )
-
--IF( MSVC )
-- SET( EXIV2_SRC ${EXIV2_SRC} getopt_win32.c )
-- SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} getopt_win32.c )
--ENDIF( MSVC )
-+SET( EXIV2_SRC ${EXIV2_SRC} getopt_win32.c )
-+SET( LIBEXIV2_SRC ${LIBEXIV2_SRC} getopt_win32.c )
-
- ##
- # msvn tuning
-diff --git a/src/Makefile b/src/Makefile
-index 8a8366fe..d046e331 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -131,8 +131,7 @@ CCSRC += asfvideo.cpp \
- utilsvideo.cpp
- endif
-
--# Add library C source files to this list
--EXIVCSRC =
-+# C source files
- ifndef HAVE_TIMEGM
- CSRC = localtime.c
- endif
-@@ -141,9 +140,7 @@ endif
- EXIV2MAIN = exiv2.cpp
- EXIV2SRC = actions.cpp \
- utils.cpp
--
--# C source files for the Exiv2 application
--EXIVCSRC =
-+EXIVCSRC = getopt_win32.c
-
- # ******************************************************************************
- # Library
-@@ -176,7 +173,7 @@ OBJ = $(CCOBJ) $(COBJ)
- LOBJ = $(CCLOBJ) $(CLOBJ)
-
- EXIV2OBJ = $(EXIV2MAIN:.cpp=.o) $(EXIV2SRC:.cpp=.o)
--EXIV2COBJ = $(EXIVCSRC:.c=.o)
-+EXIVCOBJ = $(EXIVCSRC:.c=.o)
- EXIV2EXE = $(EXIV2MAIN:.cpp=$(EXEEXT))
-
- ifdef DEP_TRACKING
-@@ -251,9 +248,9 @@ lib: $(OBJ)
- $(BINARY): %: %.o lib
- @$(LIBTOOL) --mode=link $(LINK.cc) -o $@ $(LIBRARY) $@.o -rpath $(libdir)
-
--$(EXIV2EXE): lib $(EXIV2OBJ) $(EXIV2COBJ)
-+$(EXIV2EXE): lib $(EXIV2OBJ) $(EXIVCOBJ)
- mkdir -pv ../bin 2>&1 > /dev/null
-- @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIV2OBJ) $(EXIV2COBJ) -rpath $(libdir)
-+ @$(LIBTOOL) --mode=link $(LINK.cc) -o ../bin/$@ $(LIBRARY) $(EXIV2OBJ) $(EXIVCOBJ) -rpath $(libdir)
-
- install-header:
- $(INSTALL_DIRS) $(DESTDIR)$(incdir)
-diff --git a/src/getopt_win32.c b/src/getopt_win32.c
-index fca29924..18dfcfbf 100644
---- a/src/getopt_win32.c
-+++ b/src/getopt_win32.c
-@@ -194,6 +194,10 @@ permute_args(panonopt_start, panonopt_end, opt_end, nargv)
- }
- }
-
-+#ifdef __GETOPT_DEFINE_ARGV__
-+char * const *__argv;
-+#endif
-+
- /*
- * getopt_internal --
- * Parse argc/argv argument vector. Called by user level routines.
-@@ -205,6 +209,11 @@ getopt_internal(nargc, nargv, options)
- char * const *nargv;
- const char *options;
- {
-+
-+#ifdef __GETOPT_DEFINE_ARGV__
-+ __argv=nargv;
-+#endif
-+
- char *oli; /* option letter list index */
- int optchar;
-
-diff --git a/src/getopt_win32.h b/src/getopt_win32.h
-index 6b6f643b..cd5760a3 100644
---- a/src/getopt_win32.h
-+++ b/src/getopt_win32.h
-@@ -38,6 +38,13 @@
- extern "C" {
- #endif
-
-+#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) && !defined(_MSC_VER)
-+// the symbol __argv (and __argc and __progname and __env) are defined in Windows environments
-+// for *ix environments, __argv is declared here, defined: getopt_win32.c, init'd: getopt_internal()
-+#define __GETOPT_DEFINE_ARGV__
-+extern char * const *__argv;
-+#endif
-+
- extern int opterr; /* if error message should be printed */
- extern int optind; /* index into parent argv vector */
- extern int optopt; /* character checked for validity */
-diff --git a/src/utils.cpp b/src/utils.cpp
-index a3d36497..2a092330 100644
---- a/src/utils.cpp
-+++ b/src/utils.cpp
-@@ -32,18 +32,15 @@ EXIV2_RCSID("@(#) $Id$")
- #include "config.h"
-
- #include "utils.hpp"
--
--// + standard includes
--#if defined(_MSC_VER) || defined(__MINGW__)
--# include "getopt_win32.h"
--#endif
-+#include "getopt_win32.h"
-
- #if defined(_MSC_VER)
- # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
- #endif
-
-+// + standard includes
- #ifdef EXV_HAVE_UNISTD_H
--# include <unistd.h> // for getopt(), stat()
-+# include <unistd.h> // for stat()
- #endif
-
- #include <sys/types.h>
---
-2.17.0
-
diff --git a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch b/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch
deleted file mode 100644
index a594a2b..0000000
--- a/media-gfx/exiv2/files/exiv2-0.26_p20180319-CVE-2018-4868.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ce4f575e106697c0e513091e95a7cd12ed6a488b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dan.cermak@cgc-instruments.com>
-Date: Tue, 9 Jan 2018 21:18:36 +0100
-Subject: [PATCH 1/8] Add check for DataBuf.size_ in Jp2Image::readMetadata()
-
-When parsing a subBox that is a ColorHeader, a length is extracted
-from the input file and fed directly into DataBuf() (which calls
-malloc). A crafted input file can provide arbitrarily (up to
-max(uint32_t)-8) large values and result in excessive memory
-allocation.
-
-This commit adds a check for the new size of DataBuf so that it is not
-larger than the remaining size of the file.
-
-This fixes #202 aka CVE-2018-4868
----
- src/jp2image.cpp | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index a308bfd9..3cebc2a8 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -272,7 +272,12 @@ namespace Exiv2
- #endif
-
- const long pad = 3 ; // 3 padding bytes 2 0 0
-- DataBuf data(Safe::add(subBox.length, static_cast<uint32_t>(8)));
-+ const size_t data_length = Safe::add(subBox.length, static_cast<uint32_t>(8));
-+ // data_length makes no sense if it is larger than the rest of the file
-+ if (data_length > io_->size() - io_->tell()) {
-+ throw Error(58);
-+ }
-+ DataBuf data(data_length);
- io_->read(data.pData_,data.size_);
- const long iccLength = getULong(data.pData_+pad, bigEndian);
- // subtracting pad from data.size_ is safe:
---
-2.17.0
diff --git a/media-gfx/exiv2/metadata.xml b/media-gfx/exiv2/metadata.xml
deleted file mode 100644
index 934a5a6..0000000
--- a/media-gfx/exiv2/metadata.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>graphics@gentoo.org</email>
- <name>Gentoo Graphics Project</name>
- </maintainer>
- <maintainer type="project">
- <email>kde@gentoo.org</email>
- <name>Gentoo KDE Project</name>
- </maintainer>
- <longdescription lang="en">
- Exiv2 is a C++ library and command line utility to read and
- write EXIF, IPTC and XMP image metadata.
- </longdescription>
- <use>
- <flag name="webready">Support reading metadata over the internet</flag>
- </use>
-</pkgmetadata>
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-22 22:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-26 18:06 [gentoo-commits] proj/musl:master commit in: media-gfx/exiv2/, media-gfx/exiv2/files/ Aric Belsito
-- strict thread matches above, loose matches on Subject: below --
2020-04-22 22:15 Anthony G. Basile
2017-10-13 19:05 Aric Belsito
2016-06-02 5:22 Anthony G. Basile
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox