Gentoo Archives: gentoo-commits

From: "Steve Arnold (nerdboy)" <nerdboy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-cluster/mpich2: ChangeLog mpich2-1.0.5_p4.ebuild mpich2-1.0.6.ebuild
Date: Mon, 03 Dec 2007 06:03:08
Message-Id: E1Iz4OU-00037S-U1@stork.gentoo.org
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