media-gfx/exiv2: Version bump
authorAndreas Sturmlechner <andreas.sturmlechner@gmail.com>
Sun, 16 Aug 2015 11:21:38 +0000 (13:21 +0200)
committerAndreas Sturmlechner <andreas.sturmlechner@gmail.com>
Sun, 4 Oct 2015 14:21:51 +0000 (16:21 +0200)
Switch to cmake
Add patch based on Fedora to fix multilib

Package-Manager: portage-2.2.20.1

media-gfx/exiv2/Manifest
media-gfx/exiv2/exiv2-0.25.ebuild [new file with mode: 0644]
media-gfx/exiv2/files/exiv2-0.25-fix-docs.patch [new file with mode: 0644]
media-gfx/exiv2/files/exiv2-0.25-fix-install-dirs.patch [new file with mode: 0644]
media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch [new file with mode: 0644]
media-gfx/exiv2/metadata.xml

index f3ef64868d1c148fbe8f87ac6500396c16ea4995..5cd1ff175d62b558a143eb75c7824a960a0214da 100644 (file)
@@ -1 +1,2 @@
 DIST exiv2-0.24.tar.gz 4635028 SHA256 f4a443e6c7fb9d9f5e787732f76969a64c72c4c04af69b10ed57f949c2dfef8e SHA512 e2d5d076c09a36d88472485c9d9d99b5a50aea1ab59b1e5c9301b1ce9fe2b2af02acae2662c9ff56b4c749a224688387ba58334d31b74f04f3d2d3d3c0e387e9 WHIRLPOOL b5b7eb544975d8e14739b39fc294279b58369944172684c0f881348ebf47ef0f9ccd18e8bc41113d9da3a72f8d6c048641f547a7071a7ca6d93d1d30ea2d7aed
+DIST exiv2-0.25.tar.gz 5434325 SHA256 c80bfc778a15fdb06f71265db2c3d49d8493c382e516cb99b8c9f9cbde36efa4 SHA512 08d4e655ffdde715e0214f4bef01d55aba9b8ba517456a60e254a0f8541c20479e407545db28ca90a69dee8def6941fdd88f9a557fb382ebebe49e363aca8e8e WHIRLPOOL f9e7a6947dac5870e0574253b8c1cb1e7d31a916a9e1c4417c73168046c0b4bed90b9c77253444604163bcf6dca204dab92a52cb03bdcb0f85c807327623f8ac
diff --git a/media-gfx/exiv2/exiv2-0.25.ebuild b/media-gfx/exiv2/exiv2-0.25.ebuild
new file mode 100644 (file)
index 0000000..252166b
--- /dev/null
@@ -0,0 +1,124 @@
+# 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="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~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
+               virtual/pkgconfig
+               media-gfx/graphviz
+               ${PYTHON_DEPS}
+       )
+       nls? ( sys-devel/gettext )
+"
+
+DOCS=( README doc/ChangeLog doc/cmd.txt )
+
+PATCHES=(
+       "${FILESDIR}/${PN}-0.25-fix-docs.patch"
+       "${FILESDIR}/${PN}-0.25-fix-install-dirs.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"
+               iconv -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 (file)
index 0000000..e2bf677
--- /dev/null
@@ -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 (file)
index 0000000..bca79dd
--- /dev/null
@@ -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-tools-optional.patch b/media-gfx/exiv2/files/exiv2-0.25-tools-optional.patch
new file mode 100644 (file)
index 0000000..2bb030a
--- /dev/null
@@ -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
index 0bb7de61697df914096243d65346d419dd8740b1..795480e38283c04fd0c762813df4cb4c1bcf383e 100644 (file)
@@ -4,12 +4,11 @@
        <herd>graphics</herd>
        <herd>kde</herd>
        <longdescription lang="en">
-               Exiv2 is a C++ library and command line utility to read and
-               write EXIF and IPTC image metadata.
+               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='contrib'>Build additional contrib components</flag>
+               <flag name='webready'>Support reading metadata over the internet</flag>
        </use>
 </pkgmetadata>