summaryrefslogtreecommitdiff
path: root/extra/openmpi
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-03-02 00:01:28 +0000
committerroot <root@rshg054.dnsready.net>2012-03-02 00:01:28 +0000
commit9ff97db6951550a28a70b27491a446da9d736176 (patch)
tree482d46078cf0367200908e8e26bb335e54429b5b /extra/openmpi
parent6f297b1cf462a11227d811a87124006c55911d63 (diff)
Fri Mar 2 00:01:27 UTC 2012
Diffstat (limited to 'extra/openmpi')
-rw-r--r--extra/openmpi/PKGBUILD15
-rw-r--r--extra/openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch43
2 files changed, 53 insertions, 5 deletions
diff --git a/extra/openmpi/PKGBUILD b/extra/openmpi/PKGBUILD
index 5ee8ba60d..39ea544a8 100644
--- a/extra/openmpi/PKGBUILD
+++ b/extra/openmpi/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 150800 2012-02-22 17:25:13Z stephane $
+# $Id: PKGBUILD 151701 2012-03-01 00:42:34Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
pkgname=openmpi
pkgver=1.5.4
-pkgrel=4
+pkgrel=5
pkgdesc="High performance message passing library (MPI)"
arch=('i686' 'x86_64')
url="http://www.open-mpi.org"
@@ -10,12 +10,17 @@ license=('custom')
depends=('gcc' 'gcc-fortran' 'openssh' 'valgrind' 'libtool' 'hwloc')
makedepends=('inetutils')
options=(!libtool)
-source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('81f7736a83b2134ba20c2e5c380b4d267cfd9d9c')
+source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2
+ openmpi-1.5.4-fix-fakeroot-execution.patch)
+sha1sums=('81f7736a83b2134ba20c2e5c380b4d267cfd9d9c'
+ 'ec46abb6f9e01daca910e4079b9abc036db9ed20')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ # Fix fakeroot problem (FS#28644)
+ patch -Np1 -i ../openmpi-1.5.4-fix-fakeroot-execution.patch
+
./configure --prefix=/usr \
--sysconfdir=/etc/${pkgname} \
--mandir=/usr/share/man \
@@ -50,7 +55,7 @@ package() {
mv "${pkgdir}"/usr/bin/otfinfo{,mpi}
# Openmpi's otfdump conflicts with the one from libotf
- mv "${pkgdir}"/usr/bin/otfdump{,ompi}
+ mv "${pkgdir}"/usr/bin/otfdump{,ompi}
# Remove dangling symlink
rm "${pkgdir}"/usr/share/man/man1/orteCC.1
diff --git a/extra/openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch b/extra/openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch
new file mode 100644
index 000000000..dc9dcfeae
--- /dev/null
+++ b/extra/openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch
@@ -0,0 +1,43 @@
+Description: If running under Debian fakeroot then its important
+ that this hook is disabled; a new stat check was introduced in
+ 1.5.x which preceeds the FAKEROOT check resulting in a SEGFAULT.
+Author: James Page <james.page@ubuntu.com>
+Origin: https://svn.open-mpi.org/trac/ompi/changeset/21489
+
+Index: openmpi-1.5.4/opal/mca/memory/linux/hooks.c
+===================================================================
+--- openmpi-1.5.4.orig/opal/mca/memory/linux/hooks.c 2012-02-15 12:59:39.986314651 +0000
++++ openmpi-1.5.4/opal/mca/memory/linux/hooks.c 2012-02-15 13:14:57.744722517 +0000
+@@ -738,15 +738,6 @@
+ check_result_t r1, r2, lp, lpp;
+ bool want_rcache = false, found_driver = false;
+
+- /* First, check if ummunotify is present on the system. If it is,
+- then we don't need to do the following ptmalloc2 hacks.
+- open/mmap on the device may fail during init, but if /dev/ummunotify
+- exists, we assume that the user/administrator *wants* to use
+- ummunotify. */
+- if (stat("/dev/ummunotify", &st) == 0) {
+- return;
+- }
+-
+ /* Yes, checking for an MPI MCA parameter here is an abstraction
+ violation. Cope. Yes, even checking for *any* MCA parameter
+ here (without going through the MCA param API) is an
+@@ -769,6 +760,15 @@
+ return;
+ }
+
++ /* Next, check if ummunotify is present on the system. If it is,
++ then we don't need to do the following ptmalloc2 hacks.
++ open/mmap on the device may fail during init, but if /dev/ummunotify
++ exists, we assume that the user/administrator *wants* to use
++ ummunotify. */
++ if (stat("/dev/ummunotify", &st) == 0) {
++ return;
++ }
++
+ /* Look for sentinel files (directories) to see if various network
+ drivers are loaded (yes, I know, further abstraction
+ violations...).
+