aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaine Gholson <laine.gholson@gmail.com>2016-06-01 20:05:34 -0500
committerAnthony G. Basile <blueness@gentoo.org>2016-06-02 01:20:24 -0400
commit51f22520006e88a96e279b557919b698ad7998ba (patch)
treeb0c0601745b3f63ef961da08a54b9c0ca08beec5 /media-gfx
parentnet-libs/webkit-gtk: update to keep up with main tree (diff)
downloadmusl-51f22520006e88a96e279b557919b698ad7998ba.tar.gz
musl-51f22520006e88a96e279b557919b698ad7998ba.tar.bz2
musl-51f22520006e88a96e279b557919b698ad7998ba.zip
media-gfx/exiv2: fix build
This patch adds a dependency on dev-libs/icu for uconv.
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/exiv2/Manifest10
-rw-r--r--media-gfx/exiv2/exiv2-0.25-r2.ebuild130
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch71
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-fix-install-dirs.patch64
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-fix-without-zlib.patch22
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-fvisibility-hidden.patch19
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-hide-symbols.patch97
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-musl.patch12
-rw-r--r--media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch27
-rw-r--r--media-gfx/exiv2/metadata.xml20
10 files changed, 472 insertions, 0 deletions
diff --git a/media-gfx/exiv2/Manifest b/media-gfx/exiv2/Manifest
new file mode 100644
index 00000000..8cb47a44
--- /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 00000000..cef55552
--- /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 00000000..e2bf677b
--- /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 00000000..bca79dd4
--- /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 00000000..c6d435d6
--- /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 00000000..26c5c1d3
--- /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 00000000..7c8613db
--- /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 00000000..a44e2557
--- /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 00000000..2bb030a4
--- /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 00000000..3d5537f5
--- /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>