Gentoo Archives: gentoo-commits

From: Justin Bronder <jsbronder@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: sys-cluster/openmpi/
Date: Tue, 03 Jun 2014 01:39:18
Message-Id: 1401759545.022d6f2e0651de8e9cac7deb379bc5b4548e0ec5.jsbronder@gentoo
1 commit: 022d6f2e0651de8e9cac7deb379bc5b4548e0ec5
2 Author: Justin Bronder <jsbronder <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jun 3 01:38:57 2014 +0000
4 Commit: Justin Bronder <jsbronder <AT> gentoo <DOT> org>
5 CommitDate: Tue Jun 3 01:39:05 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=022d6f2e
7
8 Bump (#511018). Add dep on zlib and drop la files (#402095)
9
10 Package-Manager: portage-2.2.8-r1
11
12 ---
13 sys-cluster/openmpi/ChangeLog | 7 +-
14 sys-cluster/openmpi/openmpi-1.8.1.ebuild | 167 +++++++++++++++++++++++++++++++
15 2 files changed, 173 insertions(+), 1 deletion(-)
16
17 diff --git a/sys-cluster/openmpi/ChangeLog b/sys-cluster/openmpi/ChangeLog
18 index 5efe6ff..80e0ae9 100644
19 --- a/sys-cluster/openmpi/ChangeLog
20 +++ b/sys-cluster/openmpi/ChangeLog
21 @@ -1,7 +1,12 @@
22 # ChangeLog for sys-cluster/openmpi
23 -# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
24 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
25 # $Header: $
26
27 +*openmpi-1.8.1 (03 Jun 2014)
28 +
29 + 03 Jun 2014; Justin Bronder <jsbronder@g.o> +openmpi-1.8.1.ebuild:
30 + Bump (#511018). Add dep on zlib and drop la files (#402095)
31 +
32 *openmpi-1.6.5 (11 Jul 2013)
33
34 11 Jul 2013; Justin Bronder <jsbronder@g.o> -openmpi-1.6.4-r1.ebuild,
35
36 diff --git a/sys-cluster/openmpi/openmpi-1.8.1.ebuild b/sys-cluster/openmpi/openmpi-1.8.1.ebuild
37 new file mode 100644
38 index 0000000..73db000
39 --- /dev/null
40 +++ b/sys-cluster/openmpi/openmpi-1.8.1.ebuild
41 @@ -0,0 +1,167 @@
42 +# Copyright 1999-2014 Gentoo Foundation
43 +# Distributed under the terms of the GNU General Public License v2
44 +# $Header: $
45 +
46 +EAPI=5
47 +
48 +FORTRAN_NEEDED=fortran
49 +
50 +inherit cuda eutils flag-o-matic fortran-2 multilib mpi toolchain-funcs versionator
51 +
52 +MY_P=${P/-mpi}
53 +S=${WORKDIR}/${MY_P}
54 +
55 +IUSE_OPENMPI_FABRICS="
56 + openmpi_fabrics_ofed
57 + openmpi_fabrics_knem
58 + openmpi_fabrics_open-mx
59 + openmpi_fabrics_psm"
60 +
61 +IUSE_OPENMPI_RM="
62 + openmpi_rm_pbs
63 + openmpi_rm_slurm"
64 +
65 +IUSE_OPENMPI_OFED_FEATURES="
66 + openmpi_ofed_features_control-hdr-padding
67 + openmpi_ofed_features_connectx-xrc
68 + openmpi_ofed_features_udcm
69 + openmpi_ofed_features_rdmacm
70 + openmpi_ofed_features_dynamic-sl
71 + openmpi_ofed_features_failover"
72 +
73 +DESCRIPTION="A high-performance message passing library (MPI)"
74 +HOMEPAGE="http://www.open-mpi.org"
75 +SRC_URI="http://www.open-mpi.org/software/ompi/v$(get_version_component_range 1-2)/downloads/${MY_P}.tar.bz2"
76 +LICENSE="BSD"
77 +SLOT="0"
78 +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux"
79 +IUSE="cma cuda +cxx elibc_FreeBSD fortran heterogeneous ipv6 mpi-threads romio threads vt
80 + ${IUSE_OPENMPI_FABRICS} ${IUSE_OPENMPI_RM} ${IUSE_OPENMPI_OFED_FEATURES}"
81 +
82 +REQUIRED_USE="openmpi_rm_slurm? ( !openmpi_rm_pbs )
83 + openmpi_rm_pbs? ( !openmpi_rm_slurm )
84 + openmpi_fabrics_psm? ( openmpi_fabrics_ofed )
85 + openmpi_ofed_features_control-hdr-padding? ( openmpi_fabrics_ofed )
86 + openmpi_ofed_features_connectx-xrc? ( openmpi_fabrics_ofed )
87 + openmpi_ofed_features_udcm? ( openmpi_fabrics_ofed )
88 + openmpi_ofed_features_rdmacm? ( openmpi_fabrics_ofed )
89 + openmpi_ofed_features_dynamic-sl? ( openmpi_fabrics_ofed )
90 + openmpi_ofed_features_failover? ( openmpi_fabrics_ofed )"
91 +
92 +MPI_UNCLASSED_DEP_STR="
93 + vt? (
94 + !dev-libs/libotf
95 + !app-text/lcdf-typetools
96 + )"
97 +
98 +RDEPEND="
99 + cuda? ( dev-util/nvidia-cuda-toolkit )
100 + dev-libs/libevent
101 + >=sys-apps/hwloc-1.7.2
102 + sys-libs/zlib
103 + elibc_FreeBSD? ( dev-libs/libexecinfo )
104 + openmpi_fabrics_ofed? ( sys-infiniband/ofed )
105 + openmpi_fabrics_knem? ( sys-cluster/knem )
106 + openmpi_fabrics_open-mx? ( sys-cluster/open-mx )
107 + openmpi_fabrics_psm? ( sys-infiniband/infinipath-psm )
108 + openmpi_rm_pbs? ( sys-cluster/torque )
109 + openmpi_rm_slurm? ( sys-cluster/slurm )
110 + openmpi_ofed_features_rdmacm? ( sys-infiniband/librdmacm )
111 + $(mpi_imp_deplist)"
112 +DEPEND="${RDEPEND}"
113 +
114 +pkg_setup() {
115 + fortran-2_pkg_setup
116 + MPI_ESELECT_FILE="eselect.mpi.openmpi"
117 +
118 + if use mpi-threads; then
119 + echo
120 + ewarn "WARNING: use of MPI_THREAD_MULTIPLE is still disabled by"
121 + ewarn "default and officially unsupported by upstream."
122 + ewarn "You may stop now and set USE=-mpi-threads"
123 + echo
124 + fi
125 +
126 + echo
127 + elog "OpenMPI has an overwhelming count of configuration options."
128 + elog "Don't forget the EXTRA_ECONF environment variable can let you"
129 + elog "specify configure options if you find them necessary."
130 + echo
131 +}
132 +
133 +src_prepare() {
134 + # Necessary for scalibility, see
135 + # http://www.open-mpi.org/community/lists/users/2008/09/6514.php
136 + if use threads; then
137 + echo 'oob_tcp_listen_mode = listen_thread' \
138 + >> opal/etc/openmpi-mca-params.conf
139 + fi
140 +}
141 +
142 +src_configure() {
143 + local myconf=(
144 + --sysconfdir="${EPREFIX}/etc/${PN}"
145 + --enable-pretty-print-stacktrace
146 + --enable-orterun-prefix-by-default
147 + --with-hwloc="${EPREFIX}/usr"
148 + )
149 +
150 + if use mpi-threads; then
151 + myconf+=(--enable-mpi-threads
152 + --enable-opal-multi-threads)
153 + fi
154 +
155 + if use fortran; then
156 + if [[ $(tc-getFC) =~ g77 ]]; then
157 + myconf+=(--disable-mpi-f90)
158 + elif [[ $(tc-getFC) =~ if ]]; then
159 + # Enabled here as gfortran compile times are huge with this enabled.
160 + myconf+=(--with-mpi-f90-size=medium)
161 + fi
162 + else
163 + myconf+=(--disable-mpi-f90 --disable-mpi-f77)
164 + fi
165 +
166 + ! use vt && myconf+=(--enable-contrib-no-build=vt)
167 +
168 + econf $(mpi_econf_args) "${myconf[@]}" \
169 + $(use_enable cxx mpi-cxx) \
170 + $(use_with cma) \
171 + $(use_with cuda cuda "${EPREFIX}"/opt/cuda) \
172 + $(use_enable romio io-romio) \
173 + $(use_enable heterogeneous) \
174 + $(use_enable ipv6) \
175 + $(use_with openmpi_fabrics_ofed verbs "${EPREFIX}"/usr) \
176 + $(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) \
177 + $(use_with openmpi_fabrics_open-mx mx "${EPREFIX}"/usr) \
178 + $(use_with openmpi_fabrics_psm psm "${EPREFIX}"/usr) \
179 + $(use_enable openmpi_ofed_features_control-hdr-padding openib-control-hdr-padding) \
180 + $(use_enable openmpi_ofed_features_connectx-xrc openib-connectx-xrc) \
181 + $(use_enable openmpi_ofed_features_rdmacm openib-rdmacm) \
182 + $(use_enable openmpi_ofed_features_udcm openib-udcm) \
183 + $(use_enable openmpi_ofed_features_dynamic-sl openib-dynamic-sl) \
184 + $(use_enable openmpi_ofed_features_failover btl-openib-failover) \
185 + $(use_with openmpi_rm_pbs tm) \
186 + $(use_with openmpi_rm_slurm slurm)
187 +}
188 +
189 +src_install () {
190 + emake DESTDIR="${D}" install
191 +
192 + # From USE=vt see #359917
193 + rm "${ED}"/$(mpi_root)/usr/share/libtool &> /dev/null
194 +
195 + # Avoid collisions with libevent
196 + rm -rf "${ED}"/$(mpi_root)/usr/include/event2 &> /dev/null
197 +
198 + # Remove la files, no static libs are installed and we have pkg-config
199 + find "${ED}"/$(mpi_root)/usr/$(get_libdir)/ -type f -name '*.la' -delete
200 +
201 + mpi_dodoc README AUTHORS NEWS VERSION || die
202 + mpi_imp_add_eselect
203 +}
204 +
205 +src_test() {
206 + # Doesn't work with the default src_test as the dry run (-n) fails.
207 + emake -j1 check
208 +}