commit:     69839aef87e8d5d6beb318e8e7c6ac2c33b30b3e
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 11 17:18:18 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Thu Aug 11 17:18:45 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69839aef

sys-cluster/openmpi: Revbump for multilib support

Package-Manager: portage-2.3.0

 ...nmpi-1.10.3.ebuild => openmpi-1.10.3-r1.ebuild} | 124 ++++++++++++---------
 1 file changed, 69 insertions(+), 55 deletions(-)

diff --git a/sys-cluster/openmpi/openmpi-1.10.3.ebuild 
b/sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild
similarity index 58%
rename from sys-cluster/openmpi/openmpi-1.10.3.ebuild
rename to sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild
index 9cbddc7..c4fe80b 100644
--- a/sys-cluster/openmpi/openmpi-1.10.3.ebuild
+++ b/sys-cluster/openmpi/openmpi-1.10.3-r1.ebuild
@@ -2,11 +2,11 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
+EAPI=6
 
 FORTRAN_NEEDED=fortran
 
-inherit cuda eutils flag-o-matic fortran-2 java-pkg-opt-2 multilib 
toolchain-funcs versionator
+inherit cuda flag-o-matic fortran-2 java-pkg-opt-2 toolchain-funcs versionator 
multilib-minimal
 
 MY_P=${P/-mpi}
 S=${WORKDIR}/${MY_P}
@@ -53,15 +53,16 @@ MPI_UNCLASSED_DEP_STR="
                !app-text/lcdf-typetools
        )"
 
+# dev-util/nvidia-cuda-toolkit is always multilib
 CDEPEND="
        !sys-cluster/mpich
        !sys-cluster/mpich2
        !sys-cluster/mpiexec
-       dev-libs/libevent
-       dev-libs/libltdl:0
-       >=sys-apps/hwloc-1.9.1[numa?]
-       sys-libs/zlib
-       cuda? ( dev-util/nvidia-cuda-toolkit )
+       >=dev-libs/libevent-2.0.21[${MULTILIB_USEDEP}]
+       dev-libs/libltdl:0[${MULTILIB_USEDEP}]
+       >=sys-apps/hwloc-1.10.0-r2[${MULTILIB_USEDEP},numa?]
+       >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
+       cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.19-r1 )
        elibc_FreeBSD? ( dev-libs/libexecinfo )
        openmpi_fabrics_ofed? ( sys-fabric/ofed:* )
        openmpi_fabrics_knem? ( sys-cluster/knem )
@@ -76,49 +77,41 @@ RDEPEND="${CDEPEND}
 DEPEND="${CDEPEND}
        java? ( >=virtual/jdk-1.6 )"
 
+MULTILIB_WRAPPED_HEADERS=(
+       /usr/include/mpi.h
+)
+
 pkg_setup() {
        fortran-2_pkg_setup
        java-pkg-opt-2_pkg_setup
 
        if use mpi-threads; then
-               echo
+               ewarn
                ewarn "WARNING: use of MPI_THREAD_MULTIPLE is still disabled by"
                ewarn "default and officially unsupported by upstream."
                ewarn "You may stop now and set USE=-mpi-threads"
-               echo
+               ewarn
        fi
 
-       echo
+       elog
        elog "OpenMPI has an overwhelming count of configuration options."
        elog "Don't forget the EXTRA_ECONF environment variable can let you"
        elog "specify configure options if you find them necessary."
-       echo
+       elog
 }
 
 src_prepare() {
+       default
+
        # Necessary for scalibility, see
        # http://www.open-mpi.org/community/lists/users/2008/09/6514.php
        if use threads; then
                echo 'oob_tcp_listen_mode = listen_thread' \
-                       >> opal/etc/openmpi-mca-params.conf
+                       >> opal/etc/openmpi-mca-params.conf || die
        fi
 }
 
-src_configure() {
-       local myconf=(
-               --sysconfdir="${EPREFIX}/etc/${PN}"
-               --enable-pretty-print-stacktrace
-               --enable-orterun-prefix-by-default
-               --with-hwloc="${EPREFIX}/usr"
-               --with-libltdl="${EPREFIX}/usr"
-               )
-
-       if use fortran; then
-               myconf+=(--enable-mpi-fortran=all)
-       else
-               myconf+=(--enable-mpi-fortran=no)
-       fi
-
+multilib_src_configure() {
        if use java; then
                # We must always build with the right -source and -target
                # flags. Passing flags to javac isn't explicitly supported here
@@ -126,55 +119,76 @@ src_configure() {
                export ac_cv_path_JAVAC="$(java-pkg_get-javac) 
$(java-pkg_javac-args)"
        fi
 
-       ! use vt && myconf+=(--enable-contrib-no-build=vt)
-
-       econf "${myconf[@]}" \
+       ECONF_SOURCE=${S} econf \
+               --sysconfdir="${EPREFIX}/etc/${PN}" \
+               --enable-pretty-print-stacktrace \
+               --enable-orterun-prefix-by-default \
+               --with-hwloc="${EPREFIX}/usr" \
+               --with-libltdl="${EPREFIX}/usr" \
+               --enable-mpi-fortran=$(usex fortran all no) \
+               $(usex !vt --enable-contrib-no-build=vt "") \
                $(use_enable cxx mpi-cxx) \
                $(use_with cma) \
                $(use_with cuda cuda "${EPREFIX}"/opt/cuda) \
                $(use_enable romio io-romio) \
                $(use_enable heterogeneous) \
                $(use_enable ipv6) \
-               $(use_enable java) \
-               $(use_enable java mpi-java) \
-               $(use_enable mpi-threads mpi-thread-multiple) \
-               $(use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \
-               $(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \
-               $(use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \
-               $(use_enable openmpi_ofed_features_control-hdr-padding 
openib-control-hdr-padding) \
-               $(use_enable openmpi_ofed_features_connectx-xrc 
openib-connectx-xrc) \
-               $(use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \
-               $(use_enable openmpi_ofed_features_udcm openib-udcm) \
-               $(use_enable openmpi_ofed_features_dynamic-sl 
openib-dynamic-sl) \
-               $(use_enable openmpi_ofed_features_failover 
btl-openib-failover) \
-               $(use_with openmpi_rm_pbs tm) \
-               $(use_with openmpi_rm_slurm slurm)
+               $(multilib_native_use_enable java) \
+               $(multilib_native_use_enable java mpi-java) \
+               $(multilib_native_use_enable mpi-threads mpi-thread-multiple) \
+               $(multilib_native_use_with openmpi_fabrics_ofed verbs 
"${EPREFIX}"/usr) \
+               $(multilib_native_use_with openmpi_fabrics_knem knem 
"${EPREFIX}"/usr) \
+               $(multilib_native_use_with openmpi_fabrics_psm psm 
"${EPREFIX}"/usr) \
+               $(multilib_native_use_enable 
openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \
+               $(multilib_native_use_enable openmpi_ofed_features_connectx-xrc 
openib-connectx-xrc) \
+               $(multilib_native_use_enable openmpi_ofed_features_rdmacm 
openib-rdmacm) \
+               $(multilib_native_use_enable openmpi_ofed_features_udcm 
openib-udcm) \
+               $(multilib_native_use_enable openmpi_ofed_features_dynamic-sl 
openib-dynamic-sl) \
+               $(multilib_native_use_enable openmpi_ofed_features_failover 
btl-openib-failover) \
+               $(multilib_native_use_with openmpi_rm_pbs tm) \
+               $(multilib_native_use_with openmpi_rm_slurm slurm)
+}
+
+multilib_src_test() {
+       # Doesn't work with the default src_test as the dry run (-n) fails.
+       emake -j1 check
 }
 
-src_install () {
+multilib_src_install() {
        default
 
+       # fortran header cannot be wrapped (bug #540508), workaround part 1
+       if multilib_is_native_abi && use fortran; then
+               mkdir "${T}"/fortran || die
+               mv "${ED}"usr/include/mpif* "${T}"/fortran || die
+       else
+               # some fortran files get installed unconditionally
+               rm "${ED}"usr/include/mpif* "${ED}"usr/bin/mpif* || die
+       fi
+}
+
+multilib_src_install_all() {
        # From USE=vt see #359917
-       rm -rf "${ED}"/usr/share/libtool &> /dev/null
+       rm -rf "${ED}"usr/share/libtool &> /dev/null || die
+
+       # fortran header cannot be wrapped (bug #540508), workaround part 2
+       if use fortran; then
+               mv "${T}"/fortran/mpif* "${ED}"usr/include || die
+       fi
 
        # Avoid collisions with libevent
-       rm -rf "${ED}"/usr/include/event2 &> /dev/null
+       rm -rf "${ED}"usr/include/event2 &> /dev/null || die
 
        # Remove la files, no static libs are installed and we have pkg-config
-       find "${ED}"/usr/$(get_libdir)/ -type f -name '*.la' -delete
+       find "${ED}" -name '*.la' -delete || die
 
        if use java; then
-               local mpi_jar="${ED}"/usr/$(get_libdir)/mpi.jar
+               local mpi_jar="${ED}"usr/$(get_libdir)/mpi.jar
                java-pkg_dojar "${mpi_jar}"
                # We don't want to install the jar file twice
                # so let's clean after ourselves.
                rm "${mpi_jar}" || die
        fi
 
-       dodoc README AUTHORS NEWS VERSION || die
-}
-
-src_test() {
-       # Doesn't work with the default src_test as the dry run (-n) fails.
-       emake -j1 check
+       einstalldocs
 }

Reply via email to