1 |
nerdboy 07/12/03 06:03:02 |
2 |
|
3 |
Modified: ChangeLog mpich2-1.0.5_p4.ebuild |
4 |
Added: mpich2-1.0.6.ebuild |
5 |
Log: |
6 |
updated to latest upstream release with pvfs2 support and shared lib fixes |
7 |
(Portage version: 2.1.4_rc1) |
8 |
|
9 |
Revision Changes Path |
10 |
1.22 sys-cluster/mpich2/ChangeLog |
11 |
|
12 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/ChangeLog?rev=1.22&view=markup |
13 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/ChangeLog?rev=1.22&content-type=text/plain |
14 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/ChangeLog?r1=1.21&r2=1.22 |
15 |
|
16 |
Index: ChangeLog |
17 |
=================================================================== |
18 |
RCS file: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v |
19 |
retrieving revision 1.21 |
20 |
retrieving revision 1.22 |
21 |
diff -u -r1.21 -r1.22 |
22 |
--- ChangeLog 10 Jul 2007 04:57:34 -0000 1.21 |
23 |
+++ ChangeLog 3 Dec 2007 06:03:02 -0000 1.22 |
24 |
@@ -1,6 +1,17 @@ |
25 |
# ChangeLog for sys-cluster/mpich2 |
26 |
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 |
27 |
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.21 2007/07/10 04:57:34 nerdboy Exp $ |
28 |
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.22 2007/12/03 06:03:02 nerdboy Exp $ |
29 |
+ |
30 |
+*mpich2-1.0.6 (03 Dec 2007) |
31 |
+ |
32 |
+ 03 Dec 2007; Steve Arnold <nerdboy@g.o> |
33 |
+ +files/mpich2-1.0.6-cxx.patch, +files/mpich2-1.0.6-fPIC.patch, |
34 |
+ +files/mpich2-1.0.6-makefile.patch, +files/mpich2-1.0.6-shlib.patch, |
35 |
+ mpich2-1.0.5_p4.ebuild, +mpich2-1.0.6.ebuild: |
36 |
+ Updated to latest upstream release with pvfs2 support and shared lib fixes; |
37 |
+ this version actually has proper shared libraries and support for pvfs2, so |
38 |
+ feel free to test and report any problems. Tested successfully with hdf5- |
39 |
+ parallel (but needs real cluster testing). |
40 |
|
41 |
10 Jul 2007; Steve Arnold <nerdboy@g.o> mpich2-1.0.5_p4.ebuild: |
42 |
fixed a leftover development hack alertly noticed by Mr_Bones |
43 |
|
44 |
|
45 |
|
46 |
1.3 sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild |
47 |
|
48 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild?rev=1.3&view=markup |
49 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild?rev=1.3&content-type=text/plain |
50 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild?r1=1.2&r2=1.3 |
51 |
|
52 |
Index: mpich2-1.0.5_p4.ebuild |
53 |
=================================================================== |
54 |
RCS file: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild,v |
55 |
retrieving revision 1.2 |
56 |
retrieving revision 1.3 |
57 |
diff -u -r1.2 -r1.3 |
58 |
--- mpich2-1.0.5_p4.ebuild 10 Jul 2007 04:57:34 -0000 1.2 |
59 |
+++ mpich2-1.0.5_p4.ebuild 3 Dec 2007 06:03:02 -0000 1.3 |
60 |
@@ -1,6 +1,6 @@ |
61 |
# Copyright 1999-2007 Gentoo Foundation |
62 |
# Distributed under the terms of the GNU General Public License v2 |
63 |
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild,v 1.2 2007/07/10 04:57:34 nerdboy Exp $ |
64 |
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.5_p4.ebuild,v 1.3 2007/12/03 06:03:02 nerdboy Exp $ |
65 |
|
66 |
inherit eutils fortran distutils autotools kde-functions toolchain-funcs java-pkg |
67 |
|
68 |
@@ -11,7 +11,7 @@ |
69 |
|
70 |
LICENSE="as-is" |
71 |
SLOT="0" |
72 |
-KEYWORDS="~amd64 ~x86" |
73 |
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" |
74 |
IUSE="crypt cxx debug doc fast fortran mpe mpe-sdk romio threads" |
75 |
|
76 |
DEPEND="virtual/libc |
77 |
|
78 |
|
79 |
|
80 |
1.1 sys-cluster/mpich2/mpich2-1.0.6.ebuild |
81 |
|
82 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.6.ebuild?rev=1.1&view=markup |
83 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.6.ebuild?rev=1.1&content-type=text/plain |
84 |
|
85 |
Index: mpich2-1.0.6.ebuild |
86 |
=================================================================== |
87 |
# Copyright 1999-2007 Gentoo Foundation |
88 |
# Distributed under the terms of the GNU General Public License v2 |
89 |
# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.6.ebuild,v 1.1 2007/12/03 06:03:02 nerdboy Exp $ |
90 |
|
91 |
inherit autotools distutils eutils flag-o-matic fortran java-pkg-2 |
92 |
|
93 |
#MY_P=${P/_/} |
94 |
MY_P=${P}p1 |
95 |
S="${WORKDIR}/${MY_P}" |
96 |
|
97 |
DESCRIPTION="MPICH2 - A portable MPI implementation" |
98 |
HOMEPAGE="http://www-unix.mcs.anl.gov/mpi/mpich2" |
99 |
SRC_URI="http://www.mcs.anl.gov/research/projects/mpich2/downloads/${MY_P}.tar.gz" |
100 |
#SRC_URI="ftp://ftp.mcs.anl.gov/pub/mpi/${MY_P}.tar.gz" |
101 |
|
102 |
LICENSE="as-is" |
103 |
SLOT="0" |
104 |
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" |
105 |
IUSE="crypt cxx debug doc fast fortran mpe mpe-sdk pvfs2 romio threads" |
106 |
|
107 |
DEPEND="virtual/libc |
108 |
sys-devel/libtool |
109 |
dev-lang/perl |
110 |
>=dev-lang/python-2.3 |
111 |
mpe-sdk? ( >=virtual/jdk-1.5 |
112 |
x11-proto/xproto ) |
113 |
romio? ( >=dev-libs/libaio-0.3.106 |
114 |
net-fs/nfs-utils ) |
115 |
pvfs2? ( >=sys-cluster/pvfs2-2.7.0 ) |
116 |
doc? ( virtual/tetex )" |
117 |
|
118 |
RDEPEND="${DEPEND} |
119 |
mpe-sdk? ( x11-libs/libX11 ) |
120 |
crypt? ( net-misc/openssh ) |
121 |
!crypt? ( net-misc/netkit-rsh ) |
122 |
!sys-cluster/mpich |
123 |
!sys-cluster/lam-mpi |
124 |
!sys-cluster/openmpi |
125 |
!media-sound/mpd |
126 |
!media-sound/mpd-svn" |
127 |
|
128 |
WANT_AUTOCONF="2.5" |
129 |
AT_M4DIR="${S}/confdb" |
130 |
|
131 |
RESTRICT="test" |
132 |
# To-do: work on tests and add SCTP support for kernel and user tools |
133 |
# Initial test implementation doesn't work yet - feel free to fix it... |
134 |
|
135 |
pkg_setup() { |
136 |
if [ -n "${MPICH_CONFIGURE_OPTS}" ]; then |
137 |
elog "User-specified configure options are ${MPICH_CONFIGURE_OPTS}." |
138 |
else |
139 |
elog "User-specified configure options are not set." |
140 |
elog "If needed, see the docs and set MPICH_CONFIGURE_OPTS." |
141 |
fi |
142 |
|
143 |
if use fortran ; then |
144 |
if [ $(gcc-major-version) -ge 4 ] \ |
145 |
&& built_with_use sys-devel/gcc fortran ; then |
146 |
FORTRAN="gfortran" |
147 |
MPI_FFLAGS="-ff2c" |
148 |
fortran_pkg_setup |
149 |
else |
150 |
ewarn "You need gcc-4 built with fortran support in order to" |
151 |
ewarn "build the f90 mpi interface, which is required for f90" |
152 |
ewarn "and mpi support in hdf5 (for example)." |
153 |
FORTRAN="g77 f2c" |
154 |
fortran_pkg_setup |
155 |
fi |
156 |
else |
157 |
ewarn "Unless you have another f90 compiler installed, we can only" |
158 |
ewarn "build the C and C++ interfaces with gcc-3.x" |
159 |
fi |
160 |
|
161 |
if use mpe-sdk; then |
162 |
java-pkg-2_pkg_setup |
163 |
if use x86; then |
164 |
jvmarch=i386 |
165 |
else |
166 |
jvmarch="${ARCH}" |
167 |
fi |
168 |
fi |
169 |
} |
170 |
|
171 |
src_unpack() { |
172 |
unpack "${A}" |
173 |
cd "${S}" |
174 |
|
175 |
ebegin "Reconfiguring" |
176 |
find . -name configure -print | xargs rm |
177 |
./maint/updatefiles |
178 |
use mpe-sdk && ./src/mpe2/maint/updatefiles |
179 |
eend |
180 |
|
181 |
# a few fixes for building the shared libs, PIC, etc |
182 |
epatch "${FILESDIR}/${P}-cxx.patch" || die "cxx patch failed" |
183 |
epatch "${FILESDIR}/${P}-fPIC.patch" || die "fPIC patch failed" |
184 |
epatch "${FILESDIR}/${P}-shlib.patch" || die "createshlib patch failed" |
185 |
epatch "${FILESDIR}/${P}-makefile.patch" || die "make patch failed" |
186 |
|
187 |
if use pvfs2; then |
188 |
sed -i -e "s:-laio:-lpvfs2 -laio:g" Makefile.in \ |
189 |
|| die "sed pvfs2 failed" |
190 |
fi |
191 |
|
192 |
use mpe-sdk && setup-jvm-opts |
193 |
} |
194 |
|
195 |
src_compile() { |
196 |
if use crypt ; then |
197 |
RSHCOMMAND="ssh -x" |
198 |
else |
199 |
RSHCOMMAND="rsh" |
200 |
fi |
201 |
export RSHCOMMAND |
202 |
|
203 |
local myconf="${MPICH_CONFIGURE_OPTS} --enable-sharedlibs=gcc" |
204 |
local doc_conf="" |
205 |
local mpe_conf="" |
206 |
|
207 |
# update to using flag-o-matic |
208 |
append-ldflags -Wl,-z,now |
209 |
replace-flags -fpic -fPIC |
210 |
filter-flags -fomit-frame-pointer |
211 |
|
212 |
if ! use debug ; then |
213 |
myconf="${myconf} --enable-g=none" |
214 |
else |
215 |
myconf="${myconf} --enable-g=dbg,mem,log --enable-debuginfo" |
216 |
fi |
217 |
|
218 |
if ! use mpe-sdk ; then |
219 |
myconf="${myconf} --enable-rlog=no --enable-slog2=no" |
220 |
fi |
221 |
|
222 |
if use threads ; then |
223 |
myconf="${myconf} --with-thread-package=pthreads" |
224 |
else |
225 |
myconf="${myconf} --with-thread-package=none" |
226 |
fi |
227 |
|
228 |
# enable f90 support for appropriate compilers |
229 |
case "${FORTRANC}" in |
230 |
gfortran|ifc|ifort|f95) |
231 |
myconf="${myconf} --enable-f77 --enable-f90" |
232 |
;; |
233 |
g77|f77|f2c) |
234 |
myconf="${myconf} --enable-f77 --disable-f90" |
235 |
;; |
236 |
esac |
237 |
|
238 |
if use romio; then |
239 |
myconf="${myconf} --enable-aio" |
240 |
if use pvfs2; then |
241 |
myconf="${myconf} --with-file-system=pvfs2+nfs+ufs \ |
242 |
--with-pvfs2=/usr" |
243 |
else |
244 |
myconf="${myconf} --with-file-system=nfs+ufs" |
245 |
fi |
246 |
use debug && myconf="${myconf} --enable-debug" |
247 |
fi |
248 |
|
249 |
use mpe && MPE_SRC_DIR="${S}"/src/mpe2 |
250 |
|
251 |
# I'm sure there's a better way to do this... |
252 |
if use cxx; then |
253 |
tc-export CPP CC CXX LD |
254 |
CXXLIBPATH="/usr/$(get_libdir)/gcc/${CHOST}/$(gcc-fullversion)" |
255 |
sed -i -e "s:nerdboy:${CXXLIBPATH}:g" Makefile.in \ |
256 |
|| die "sed 3 failed" |
257 |
fi |
258 |
|
259 |
if use doc; then |
260 |
doc_conf="--docdir=/usr/share/doc/${PF} \ |
261 |
--with-docdir=/usr/share/doc/${PF} \ |
262 |
--with-htmldir=/usr/share/doc/${PF}/html \ |
263 |
--with-pdfdir=/usr/share/doc/${PF} \ |
264 |
--with-psdir=/usr/share/doc/${PF}" |
265 |
else |
266 |
doc_conf="--with-docdir=/usr/share/doc/${PF} \ |
267 |
--with-htmldir=/usr/share/doc/${PF}/html" |
268 |
fi |
269 |
|
270 |
if use mpe-sdk; then |
271 |
mpe_conf='--with-java=${JDK_TOPDIR} --with-java2=${JDK_TOPDIR} \ |
272 |
--enable-slog2=build \ |
273 |
--with-mpicc="${WORKDIR}"/build/bin/mpicc \ |
274 |
--with-mpif77="${WORKDIR}"/build/bin/mpif77 \ |
275 |
--enable-collchk --enable-graphics=yes --enable-wrappers \ |
276 |
--with-trace-libdir=/usr/$(get_libdir)/mpe/trace_rlog \ |
277 |
--with-flib_path_leader=-Wl,-L --enable-mpich \ |
278 |
--enable-misc --enable-callstack --enable-logging' |
279 |
use debug && mpe_conf=" ${mpe_conf} --enable-g" |
280 |
|
281 |
sed -i -e "s:fpic:fPIC:g" \ |
282 |
src/mpe2/src/slog2sdk/trace_sample/configure \ |
283 |
|| die "sed 1 failed" |
284 |
sed -i -e "s:fpic:fPIC:g" \ |
285 |
src/mpe2/src/slog2sdk/trace_rlog/configure \ |
286 |
|| die "sed 2 failed" |
287 |
fi |
288 |
|
289 |
# trying the vpath build |
290 |
mkdir ../build |
291 |
cd ../build |
292 |
|
293 |
"${S}"/configure \ |
294 |
--with-pm=mpd,gforker \ |
295 |
${myconf} \ |
296 |
${mpe_conf} \ |
297 |
${doc_conf} \ |
298 |
$(use_enable fast) \ |
299 |
$(use_enable cxx) \ |
300 |
$(use_enable mpe) \ |
301 |
$(use_enable romio) \ |
302 |
$(use_enable threads) \ |
303 |
--libdir=/usr/$(get_libdir) \ |
304 |
--includedir=/usr/include \ |
305 |
--mandir=/usr/share/man \ |
306 |
--sysconfdir=/etc/"${PN}" \ |
307 |
--prefix=/usr --exec-prefix=/usr \ |
308 |
--datadir=/usr/share/${PN} || die "configure failed" |
309 |
|
310 |
# no parallel make here |
311 |
use fortran && export FFLAGS="-fPIC" |
312 |
make dependencies || die "failed to make dependencies" |
313 |
make || die "make failed" |
314 |
} |
315 |
|
316 |
src_test() { |
317 |
ewarn "Tests can take a long time to complete, even on a fast box." |
318 |
ewarn "Expected result on amd64 with gcc 4.1.1:" |
319 |
ewarn " 6 tests failed out of 373" |
320 |
elog "" |
321 |
elog "Control-C now if you want to disable tests..." |
322 |
epause |
323 |
|
324 |
install -g portage -o portage -m 0600 "${FILESDIR}"/mpd.conf "${HOME}"/.mpd.conf |
325 |
TEST="${WORKDIR}/build" |
326 |
|
327 |
"${TEST}"/bin/mpd --daemon |
328 |
|
329 |
cd "${TEST}" |
330 |
mkdir t1 |
331 |
export MPIO_USER_PATH="${TEST}"/t1 |
332 |
|
333 |
sed -i -e "s:/usr/bin/mpiexec:${TEST}/bin/mpiexec:g" test/mpi/Makefile \ |
334 |
|| die "sed 4 failed" |
335 |
sed -i -e "s:/usr:${TEST}:g" test/commands/cmdtests \ |
336 |
|| die "sed 5 failed" |
337 |
|
338 |
cd test |
339 |
make clean || die "make clean in test failed" |
340 |
|
341 |
echo |
342 |
elog "Using ./configure --prefix=${TEST} --with-mpi=${TEST} etc..." |
343 |
echo |
344 |
|
345 |
"${S}"/configure --with-mpi="${TEST}" \ |
346 |
--exec-prefix="${TEST}" \ |
347 |
--disable-f90 --with-mpich2="${TEST}" $(use_enable threads) \ |
348 |
|| die "configure test failed" |
349 |
|
350 |
export LD_LIBRARY_PATH="${TEST}/lib:$LD_LIBRARY_PATH" |
351 |
nice --adjustment=3 make testing || die "make testing failed" |
352 |
|
353 |
"${TEST}"/bin/mpdallexit |
354 |
} |
355 |
|
356 |
src_install() { |
357 |
dodir /etc/"${PN}" |
358 |
|
359 |
rm -f src/mpe2/etc/*.in |
360 |
|
361 |
cd ../build |
362 |
make DESTDIR="${D}" LIBDIR="${D}"usr/$(get_libdir) install \ |
363 |
|| die "make install failed" |
364 |
|
365 |
cd "${S}" |
366 |
|
367 |
rm -f "${D}"usr/$(get_libdir)/*.jar |
368 |
use mpe-sdk && java-pkg_dojar src/mpe2/src/slog2sdk/lib/*.jar |
369 |
|
370 |
dodir /usr/share/doc/"${PF}" |
371 |
if use doc; then |
372 |
dodoc COPYRIGHT README README.romio README.testing CHANGES |
373 |
dodoc README.developer RELEASE_NOTES |
374 |
newdoc src/pm/mpd/README README.mpd |
375 |
|
376 |
if use mpe-sdk; then |
377 |
dodoc src/mpe2/src/slog2sdk/README.sdk \ |
378 |
src/mpe2/src/slog2sdk/README.rte |
379 |
newdoc src/mpe2/src/slog2sdk/FAQ FAQ.sdk |
380 |
fi |
381 |
else |
382 |
rm -rf "${D}"usr/share/doc/"${PF}"/{html,*.pdf} |
383 |
dodoc README CHANGES COPYRIGHT RELEASE_NOTES |
384 |
fi |
385 |
|
386 |
# Tidy up a bit |
387 |
use mpe-sdk && rm "${D}"usr/sbin/mpeuninstall |
388 |
} |
389 |
|
390 |
pkg_postinst() { |
391 |
python_version |
392 |
python_mod_optimize "${ROOT}"usr/bin |
393 |
|
394 |
elog "" |
395 |
elog "Several specific options are left set to default values; if" |
396 |
elog "you wish to specify non-default values for things like the" |
397 |
elog "timer type, timing level, devices, or communication channels," |
398 |
elog "please read the docs and rebuild with MPICH_CONFIGURE_OPTS" |
399 |
elog "set to your desired options." |
400 |
elog "" |
401 |
elog "Note 1: enabling the MPE2 SDK requires both a JDK and the core" |
402 |
elog "X11 library for the full set of log analysis and conversion" |
403 |
elog "utilities. You probably don't want to enable the mpe-sdk USE" |
404 |
elog "flag on a server, cluster node, etc." |
405 |
elog "" |
406 |
elog "Note 2: this package still needs testing with other Fortran90" |
407 |
elog "compilers besides gfortran (gcc4). The tests also need some" |
408 |
elog "magic to build properly within the portage build environment." |
409 |
elog "(currently the tests only build and run manually)" |
410 |
elog "" |
411 |
elog "The gfortran support has been tested successfully with hdf5" |
412 |
elog "(using gfortran and the mpif90 wrapper), however, the pvfs2" |
413 |
elog "support is brand-spanking new." |
414 |
elog "" |
415 |
} |
416 |
|
417 |
pkg_postrm() { |
418 |
python_version |
419 |
python_mod_cleanup |
420 |
} |
421 |
|
422 |
setup-jvm-opts() { |
423 |
# Figure out correct boot classpath |
424 |
# stolen from eclipse-sdk ebuild |
425 |
local bp="$(java-config --jdk-home)/jre/lib" |
426 |
local bootclasspath="$(java-config --runtime)" |
427 |
if [[ ! -z "`java-config --java-version | grep IBM`" ]] ; then |
428 |
# IBM JDK |
429 |
JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin" |
430 |
else |
431 |
# Sun derived JDKs (Blackdown, Sun) |
432 |
JAVA_LIB_DIR="$(java-config --jdk-home)/jre/lib/${jvmarch}" |
433 |
fi |
434 |
|
435 |
JDK_TOPDIR="$(java-config --jdk-home)" |
436 |
JDK_INCDIR="$(java-config --jdk-home)/include" |
437 |
|
438 |
elog "" |
439 |
elog "Using bootclasspath ${bootclasspath}" |
440 |
elog "Using JVM library path ${JAVA_LIB_DIR}" |
441 |
elog "Using JDK Include dir ${JDK_INCDIR}" |
442 |
elog "Using JDK Top-level dir ${JDK_TOPDIR}" |
443 |
elog "" |
444 |
|
445 |
if [[ ! -f "${JAVA_LIB_DIR}"/libawt.so ]] ; then |
446 |
die "Could not find libawt.so native library" |
447 |
fi |
448 |
|
449 |
if [[ ! -f "${JDK_INCDIR}"/jni.h ]] ; then |
450 |
die "Could not find jni.h header file" |
451 |
fi |
452 |
|
453 |
export AWT_LIB_PATH="${JAVA_LIB_DIR}" |
454 |
export JDK_TOPDIR="${JDK_TOPDIR}" |
455 |
export JDK_INCDIR="${JDK_INCDIR}" |
456 |
} |
457 |
|
458 |
|
459 |
|
460 |
|
461 |
-- |
462 |
gentoo-commits@g.o mailing list |