commit:     146cec1dd3c1b1aaa56d945f049d4fc935010ed9
Author:     Bernd Waibel <waebbl <AT> gmail <DOT> com>
AuthorDate: Tue Nov 14 20:43:10 2017 +0000
Commit:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 12:59:34 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=146cec1d

media-gfx/alembic: new package.

Alembic is an open framework for storing and sharing scene data.

Closes: https://bugs.gentoo.org/634966
Closes: https://github.com/gentoo/gentoo/pull/6083
Package-Manager: Portage-2.3.14, Repoman-2.3.5

 media-gfx/alembic/Manifest                         |   1 +
 media-gfx/alembic/alembic-1.7.4.ebuild             | 100 ++++++++++++++++
 .../alembic/files/alembic-CMakeLists-fix_lib.patch | 132 +++++++++++++++++++++
 .../files/alembic-FindIlmBase-pkgconfig.patch      |  28 +++++
 .../alembic/files/alembic-fix-importerror.patch    |  17 +++
 media-gfx/alembic/metadata.xml                     |  27 +++++
 6 files changed, 305 insertions(+)

diff --git a/media-gfx/alembic/Manifest b/media-gfx/alembic/Manifest
new file mode 100644
index 00000000000..84e5a72ffb7
--- /dev/null
+++ b/media-gfx/alembic/Manifest
@@ -0,0 +1 @@
+DIST alembic-1.7.4.tar.gz 805503 BLAKE2B 
b8a8b986d0323dbe3748e1dde5436d66e08620a28852c3331ee612d43a414e381a1cdbbb63200b8f146ce94ebb0e3d0ae6f70f33575bd9ff25e9121f2cd73d1a
 SHA512 
8e752d6d85bea3b6a53582d35a589fc40824456098d950974effe0a6a0e359fec1e056af1ea1379f7e23b7ffed2c05c7f5269fa4b64757631b7d57fb60ee98b0

diff --git a/media-gfx/alembic/alembic-1.7.4.ebuild 
b/media-gfx/alembic/alembic-1.7.4.ebuild
new file mode 100644
index 00000000000..1c14f809024
--- /dev/null
+++ b/media-gfx/alembic/alembic-1.7.4.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1 cmake-utils
+
+DESCRIPTION="Alembic is an open framework for storing and sharing scene data"
+HOMEPAGE="http://alembic.io/";
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+boost doc hdf5 pyalembic test +zlib"
+
+REQUIRED_USE="
+       ${PYTHON_REQUIRED_USE}
+       hdf5? ( zlib )
+       pyalembic? ( boost )"
+
+DEPEND="
+       ${PYTHON_DEP}
+       >=dev-util/cmake-3.7.2
+       boost? ( >=dev-libs/boost-1.62.0-r1 )
+       doc? ( >=app-doc/doxygen-1.8.13-r1 )
+       pyalembic? ( >=dev-python/pyilmbase-2.2.0 )"
+
+RDEPEND="
+       ${PYTHON_DEP}
+       >=media-libs/openexr-2.2.0-r2
+       hdf5? ( >=sci-libs/hdf5-1.8.18[zlib(+)] )
+       zlib? ( >=sys-libs/zlib-1.2.11-r1 )"
+
+DOCS=( ACKNOWLEDGEMENTS.txt FEEDBACK.txt NEWS.txt README.txt )
+
+PATCHES=(
+       "${FILESDIR}/${PN}-FindIlmBase-pkgconfig.patch"
+       "${FILESDIR}/${PN}-CMakeLists-fix_lib.patch"
+)
+
+pkg_setup() {
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       cmake-utils_src_prepare
+}
+
+# Static linking, the use of tr1 and support for prman might be added
+# in the future.
+src_configure() {
+       # I don't have a license for arnold renderer or maya so I disable them
+       # as default.
+       # Also I'm currently not using renderman, so I disable the prman flag
+       # by default too.
+       local mycmakeargs=(
+               -DUSE_ARNOLD=OFF
+               -DUSE_BINARIES=ON
+               -DUSE_EXAMPLES=OFF
+               -DUSE_HDF5=$(usex hdf5)
+               -DUSE_MAYA=OFF
+               -DUSE_PRMAN=OFF
+               -DUSE_PYALEMBIC=$(usex pyalembic)
+               -DUSE_STATIC_BOOST=OFF  # I won't use static libraries
+               -DUSE_STATIC_HDF5=OFF
+               -DUSE_TESTS=$(usex test)
+               -DALEMBIC_ILMBASE_LINK_STATIC=OFF # I don't want to link 
statically against ilmbase
+               -DALEMBIC_SHARED_LIBS=ON # For now let's ignore building static 
libraries
+               -DALEMBIC_LIB_USES_BOOST=$(usex boost)
+               -DALEMBIC_LIB_USES_TR1=$(usex !boost)
+       )
+       cmake-utils_src_configure
+}
+
+src_compile() {
+       cmake-utils_src_compile
+       if use doc; then
+               doxygen -u Doxyfile
+               doxygen Doxyfile
+       fi
+}
+
+src_test() {
+       if use test; then
+               cmake-utils_src_test
+       fi
+}
+
+src_install() {
+       DESTDIR="${D}" cmake-utils_src_install
+       if use doc; then
+               dodoc -r "doc/html"
+       fi
+
+       # move the cmake files from lib->lib64
+       mv "${D}/usr/lib/cmake" "${D}/usr/lib64/cmake" || die
+       rm -rv "${D}/usr/lib" || die
+}

diff --git a/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch 
b/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch
new file mode 100644
index 00000000000..c653927ecbe
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch
@@ -0,0 +1,132 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d84f002..a35b662 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -79,12 +79,12 @@ OPTION(ALEMBIC_LIB_USES_TR1
+ 
+ # Set static/dynamic build options
+ SET(LIB_TYPE STATIC)
+-SET(RUNTIME_INSTALL_DIR lib)
+-SET(LIBRARY_INSTALL_DIR lib)
+-SET(ARCHIVE_INSTALL_DIR lib)
++SET(RUNTIME_INSTALL_DIR lib64)
++SET(LIBRARY_INSTALL_DIR lib64)
++SET(ARCHIVE_INSTALL_DIR lib64)
+ IF (ALEMBIC_SHARED_LIBS)
+     SET(LIB_TYPE SHARED)
+-    SET(ARCHIVE_INSTALL_DIR lib)
++    SET(ARCHIVE_INSTALL_DIR lib64)
+     IF (WIN32)
+         ADD_DEFINITIONS(-DALEMBIC_DLL)
+     ENDIF()
+diff --git a/bin/AbcConvert/CMakeLists.txt b/bin/AbcConvert/CMakeLists.txt
+index 3725ed7..edea767 100644
+--- a/bin/AbcConvert/CMakeLists.txt
++++ b/bin/AbcConvert/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcconvert Alembic)
+ 
+ set_target_properties(abcconvert PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abcconvert DESTINATION bin)
+diff --git a/bin/AbcDiff/CMakeLists.txt b/bin/AbcDiff/CMakeLists.txt
+index e2fd355..2234650 100644
+--- a/bin/AbcDiff/CMakeLists.txt
++++ b/bin/AbcDiff/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcdiff Alembic)
+ 
+ set_target_properties(abcdiff PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abcdiff DESTINATION bin)
+diff --git a/bin/AbcEcho/CMakeLists.txt b/bin/AbcEcho/CMakeLists.txt
+index 396226e..116c122 100644
+--- a/bin/AbcEcho/CMakeLists.txt
++++ b/bin/AbcEcho/CMakeLists.txt
+@@ -41,6 +41,6 @@ TARGET_LINK_LIBRARIES(abcechobounds Alembic)
+ 
+ set_target_properties(abcecho abcechobounds PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abcecho abcechobounds DESTINATION bin)
+diff --git a/bin/AbcLs/CMakeLists.txt b/bin/AbcLs/CMakeLists.txt
+index 1dbeb9d..7b721d0 100644
+--- a/bin/AbcLs/CMakeLists.txt
++++ b/bin/AbcLs/CMakeLists.txt
+@@ -39,6 +39,6 @@ TARGET_LINK_LIBRARIES(abcls Alembic)
+ 
+ set_target_properties(abcls PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abcls DESTINATION bin)
+diff --git a/bin/AbcStitcher/CMakeLists.txt b/bin/AbcStitcher/CMakeLists.txt
+index 3106bf2..0c8a205 100644
+--- a/bin/AbcStitcher/CMakeLists.txt
++++ b/bin/AbcStitcher/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcstitcher Alembic)
+ 
+ set_target_properties(abcstitcher PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abcstitcher DESTINATION bin)
+diff --git a/bin/AbcTree/CMakeLists.txt b/bin/AbcTree/CMakeLists.txt
+index 3c41004..de7c7fc 100644
+--- a/bin/AbcTree/CMakeLists.txt
++++ b/bin/AbcTree/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abctree Alembic)
+ 
+ set_target_properties(abctree PROPERTIES
+     INSTALL_RPATH_USE_LINK_PATH TRUE
+-    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++    INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ 
+ INSTALL(TARGETS abctree DESTINATION bin)
+diff --git a/lib/Alembic/CMakeLists.txt b/lib/Alembic/CMakeLists.txt
+index 3e16518..b07cb7d 100644
+--- a/lib/Alembic/CMakeLists.txt
++++ b/lib/Alembic/CMakeLists.txt
+@@ -86,9 +86,9 @@ ENDIF()
+ 
+ INSTALL(TARGETS Alembic
+         EXPORT AlembicTargets
+-        LIBRARY DESTINATION lib
+-        ARCHIVE DESTINATION lib
+-        RUNTIME DESTINATION lib)
++        LIBRARY DESTINATION lib64
++        ARCHIVE DESTINATION lib64
++        RUNTIME DESTINATION lib64)
+ 
+ 
#-******************************************************************************
+ # PACKAGE EXPORTS
+diff --git a/python/PyAlembic/CMakeLists.txt b/python/PyAlembic/CMakeLists.txt
+index 06daf30..254ca2b 100644
+--- a/python/PyAlembic/CMakeLists.txt
++++ b/python/PyAlembic/CMakeLists.txt
+@@ -128,7 +128,7 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+     )
+ 
+     INSTALL (TARGETS alembic
+-        DESTINATION 
lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages
++        DESTINATION 
lib64/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages
+     )
+ 
+     IF (USE_TESTS)
+@@ -137,7 +137,7 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+ 
+     set_target_properties(alembic PROPERTIES
+         INSTALL_RPATH_USE_LINK_PATH TRUE
+-        INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++        INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ ELSE()
+     MESSAGE(FATAL_ERROR "Unable to find Python libs")
+ ENDIF()

diff --git a/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch 
b/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch
new file mode 100644
index 00000000000..b291e839e8c
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch
@@ -0,0 +1,28 @@
+diff --git a/cmake/Modules/FindIlmBase.cmake b/cmake/Modules/FindIlmBase.cmake
+index dac8659..e7beb59 100644
+--- a/cmake/Modules/FindIlmBase.cmake
++++ b/cmake/Modules/FindIlmBase.cmake
+@@ -52,7 +52,7 @@ IF(NOT DEFINED ILMBASE_ROOT)
+           SET( ALEMBIC_ILMBASE_ROOT NOTFOUND )
+         ELSE()
+           # TODO: set to default install path when shipping out
+-          SET( ALEMBIC_ILMBASE_ROOT "/usr/local/ilmbase-1.0.1/" )
++          SET( ALEMBIC_ILMBASE_ROOT "/usr" )
+         ENDIF()
+     ELSE()
+         IF ( ${WINDOWS} )
+@@ -97,6 +97,14 @@ FIND_PATH(ILMBASE_INCLUDE_DIR
+     include/OpenEXR
+ )
+ 
++FIND_PACKAGE(PkgConfig)
++IF (PKG_CONFIG_FOUND)
++      PKG_CHECK_MODULES(PC_ILMBASE QUIET IlmBase)
++      IF (PC_ILMBASE_FOUND)
++              SET(_ilmbase_libs_ver_init ${PC_ILMBASE_VERSION})
++      ENDIF()
++ENDIF()
++
+ # If the headers were found, get the version from config file, if not already 
set.
+ IF(ILMBASE_INCLUDE_DIR)
+   SET(ALEMBIC_ILMBASE_INCLUDE_DIRECTORY ${ILMBASE_INCLUDE_DIR})

diff --git a/media-gfx/alembic/files/alembic-fix-importerror.patch 
b/media-gfx/alembic/files/alembic-fix-importerror.patch
new file mode 100644
index 00000000000..8a86f08c733
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-fix-importerror.patch
@@ -0,0 +1,17 @@
+diff --git a/python/PyAlembic/CMakeLists.txt b/python/PyAlembic/CMakeLists.txt
+index 254ca2b..c8c915a 100644
+--- a/python/PyAlembic/CMakeLists.txt
++++ b/python/PyAlembic/CMakeLists.txt
+@@ -45,6 +45,12 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+         ADD_DEFINITIONS(-Wno-unused-local-typedefs)
+     ENDIF()
+ 
++      # fix for ImportError: dynamic module does not define init function 
(initalembic)
++      # see: https://github.com/alembic/alembic/issues/142
++      IF (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
++              SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default")
++      ENDIF()
++
+     SET(CPP_FILES
+         PyAbcCoreLayer.cpp
+         PyAbcGeomTypes.cpp

diff --git a/media-gfx/alembic/metadata.xml b/media-gfx/alembic/metadata.xml
new file mode 100644
index 00000000000..3d75399517f
--- /dev/null
+++ b/media-gfx/alembic/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="person">
+       <email>[email protected]</email>
+       <name>Bernd Waibel</name>
+</maintainer>
+<maintainer type="project">
+       <email>[email protected]</email>
+       <name>Proxy Maintainers</name>
+</maintainer>
+<longdescription>
+       Alembic is an open computer graphics interchange framework, 
+       developed by Sony Pictures Imageworks Inc. and Lucasfilm Ltd.
+</longdescription>
+<use>
+       <flag name="boost">Use <pkg>dev-libs/boost</pkg> library</flag>
+       <flag name="hdf5">Add support <pkg>sci-libs/hdf5</pkg></flag>
+       <flag name="pyalembic">Build pyalembic python bindings (needs 
<pkg>dev-python/pyilmbase</pkg>)</flag>
+       <flag name="test">Build and run the test-suite</flag>
+       <flag name="zlib">Use <pkg>sys-libs/zlib</pkg> for compressions</flag>
+</use>
+<upstream>
+       <bugs-to>https://github.com/alembic/alembic/issues</bugs-to>
+       <remote-id type="github">https://github.com/alembic/alembic</remote-id>
+</upstream>
+</pkgmetadata>

Reply via email to