From a794290b70ad9e707d613ccceee5ab215c232d4d Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sat, 3 Sep 2016 22:18:45 +0200 Subject: sci-libs/xdmf2: Remove heuristics to help detect HDF5_ROOT Gentoo-bug: 591302 * EAPI=6 * Add missing RDEPEND on dev-libs/boost * Add ${PYTHON_REQUIRED_USE} to REQUIRED_USE * [QA] Byte-compile XdmfCore.py and Xdmf.py * Thanks to Michael Palimaka for helping to identify the culprit Package-Manager: portage-2.3.0 --- ...2-1.0_p141226-cannot-find-hdf5-bug-591302.patch | 41 ++++++++++++ sci-libs/xdmf2/xdmf2-1.0_p141226-r2.ebuild | 74 ++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 sci-libs/xdmf2/files/xdmf2-1.0_p141226-cannot-find-hdf5-bug-591302.patch create mode 100644 sci-libs/xdmf2/xdmf2-1.0_p141226-r2.ebuild (limited to 'sci-libs/xdmf2') diff --git a/sci-libs/xdmf2/files/xdmf2-1.0_p141226-cannot-find-hdf5-bug-591302.patch b/sci-libs/xdmf2/files/xdmf2-1.0_p141226-cannot-find-hdf5-bug-591302.patch new file mode 100644 index 000000000000..99735a480c67 --- /dev/null +++ b/sci-libs/xdmf2/files/xdmf2-1.0_p141226-cannot-find-hdf5-bug-591302.patch @@ -0,0 +1,41 @@ +Too much automagic trying to find the correct prefix +of HDF5. Remove all the pointless heuristics. +See also: https://bugs.gentoo.org/show_bug.cgi?id=591302 + +* CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message): +* Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS +* HDF5_HL_LIBRARIES) + +--- xdmf2-1.0_p141226/core/CMakeLists.txt ++++ xdmf2-1.0_p141226/core/CMakeLists.txt +@@ -35,19 +35,7 @@ + mark_as_advanced(FORCE Boost_INCLUDE_DIR) + endif(Boost_FOUND) + +-# Find HDF5_ROOT if not set +-if ("$ENV{HDF5_ROOT}" STREQUAL "") +- find_file (HDF5_LIB libhdf5.so HINTS ENV LD_LIBRARY_PATH) +- if (NOT "${HDF5_LIB}" STREQUAL "") +- get_filename_component(HDF5_LIBRARY_DIR "${HDF5_LIB}" PATH) +- get_filename_component(HDF5_ROOT "${HDF5_LIBRARY_DIR}/../" ABSOLUTE) +- set(ENV{HDF5_ROOT} ${HDF5_ROOT}) +- endif (NOT "${HDF5_LIB}" STREQUAL "") +-endif ("$ENV{HDF5_ROOT}" STREQUAL "") +- +-mark_as_advanced(CLEAR HDF5_C_INCLUDE_DIR) +-mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_DEBUG) +-mark_as_advanced(CLEAR HDF5_hdf5_LIBRARY_RELEASE) ++# Find HDF5 + find_package(HDF5 REQUIRED) + if(HDF5_FOUND) + mark_as_advanced(FORCE HDF5_C_INCLUDE_DIR) +@@ -73,9 +61,6 @@ + endif(HDF5_IS_PARALLEL) + get_filename_component(HDF5_ROOT "${HDF5_INCLUDE_DIR}/../" REALPATH) + set(HDF5_BINARY_DIRS ${HDF5_ROOT}/bin ${HDF5_ROOT}/dll) +- if (NOT HDF5_LIBRARIES) +- find_library (HDF5_LIBRARIES hdf5 HINTS ${HDF5_ROOT} ENV LD_LIBRARY_PATH) +- endif (NOT HDF5_LIBRARIES) + set(XDMF_LIBRARIES ${XDMF_LIBRARIES} ${HDF5_LIBRARIES}) + set(XDMF_HDF5_BINARY_DIRS ${HDF5_BINARY_DIRS} PARENT_SCOPE) + set(XDMF_BINARIES ${XDMF_BINARIES} ${HDF5_BINARY_DIRS}) diff --git a/sci-libs/xdmf2/xdmf2-1.0_p141226-r2.ebuild b/sci-libs/xdmf2/xdmf2-1.0_p141226-r2.ebuild new file mode 100644 index 000000000000..b1b0bbb9fb44 --- /dev/null +++ b/sci-libs/xdmf2/xdmf2-1.0_p141226-r2.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils python-single-r1 + +DESCRIPTION="eXtensible Data Model and Format" +HOMEPAGE="http://xdmf.org/index.php/Main_Page" +SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz" + +SLOT="0" +LICENSE="VTK" +KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux" +IUSE="doc python test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + dev-libs/boost:= + sci-libs/hdf5:= + dev-libs/libxml2:2 + python? ( ${PYTHON_DEPS} ) + " +DEPEND="${RDEPEND} + doc? ( app-doc/doxygen ) + python? ( dev-lang/swig:0 ) +" + +PATCHES=( + "${FILESDIR}"/${P}-module.patch + "${FILESDIR}"/${P}-cannot-find-hdf5-bug-591302.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup && python_export +} + +src_prepare() { + if use python; then + local _site=$(python_get_sitedir) + sed \ + -e "/DESTINATION/s:python:${_site##${EPREFIX}/usr/$(get_libdir)/}:g" \ + -i CMakeLists.txt || die + fi + + sed \ + -e "/DESTINATION/s:lib:$(get_libdir):g" \ + -e "/INSTALL/s:lib:$(get_libdir):g" \ + -i CMakeLists.txt core/CMakeLists.txt || die + cmake-utils_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=1 + -DXDMF_BUILD_DOCUMENTATION=$(usex doc) + -DBUILD_TESTING=$(usex test) + -DXDMF_WRAP_PYTHON=$(usex python) +# -DXDMF_WRAP_JAVA=$(usex java) + ) + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + dosym XdmfConfig.cmake /usr/share/cmake/Modules/${PN}Config.cmake + + # need to byte-compile 'XdmfCore.py' and 'Xdmf.py' + # as the CMake build system does not compile them itself + python_optimize "${D%/}$(python_get_sitedir)" +} -- cgit v1.2.3-65-gdbad