[arch-commits] Commit in openmpi/trunk (2 files)

Stéphane Gaudreault stephane at archlinux.org
Thu Mar 1 00:42:24 UTC 2012


    Date: Wednesday, February 29, 2012 @ 19:42:24
  Author: stephane
Revision: 151700

upgpkg: openmpi 1.5.4-5

Fix fakeroot segfault (FS#28644)

Added:
  openmpi/trunk/openmpi-1.5.4-fix-fakeroot-execution.patch
Modified:
  openmpi/trunk/PKGBUILD

--------------------------------------------+
 PKGBUILD                                   |   13 +++++---
 openmpi-1.5.4-fix-fakeroot-execution.patch |   43 +++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-02-29 23:23:35 UTC (rev 151699)
+++ PKGBUILD	2012-03-01 00:42:24 UTC (rev 151700)
@@ -2,7 +2,7 @@
 # Maintainer: Stéphane Gaudreault <stephane at 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 @@
 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 @@
    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

Added: openmpi-1.5.4-fix-fakeroot-execution.patch
===================================================================
--- openmpi-1.5.4-fix-fakeroot-execution.patch	                        (rev 0)
+++ openmpi-1.5.4-fix-fakeroot-execution.patch	2012-03-01 00:42:24 UTC (rev 151700)
@@ -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 at 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...).
+




More information about the arch-commits mailing list