diff options
Diffstat (limited to 'extra/openmpi')
-rw-r--r-- | extra/openmpi/PKGBUILD | 15 | ||||
-rw-r--r-- | extra/openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch | 43 |
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...). + |