summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-python/mpi4py
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-python/mpi4py')
-rw-r--r--dev-python/mpi4py/Manifest1
-rw-r--r--dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch24
-rw-r--r--dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch81
-rw-r--r--dev-python/mpi4py/metadata.xml19
-rw-r--r--dev-python/mpi4py/mpi4py-1.3.1.ebuild50
5 files changed, 175 insertions, 0 deletions
diff --git a/dev-python/mpi4py/Manifest b/dev-python/mpi4py/Manifest
new file mode 100644
index 000000000000..db920f5b1d0c
--- /dev/null
+++ b/dev-python/mpi4py/Manifest
@@ -0,0 +1 @@
+DIST mpi4py-1.3.1.tar.gz 1046580 SHA256 e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507 SHA512 15e81f2a1e6f6af7a54f0e8ec43ddf36cc565b7fe9e3dd35603c9d128199c5acd1584757ffca999c8826c0bbccf371175d40a7a24c85d3369efd77da5b3b603f WHIRLPOOL e32fef50c8cd8f866e40fb29f90775736cf0ea31c8a3fc4d460cded8b2056bae0c8d847b304c3222d3e5ffc913ca5cc722425e496d35bf41624f9b5ccdf3ead2
diff --git a/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch b/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch
new file mode 100644
index 000000000000..ae1eade0de2d
--- /dev/null
+++ b/dev-python/mpi4py/files/mpi4py-1.3.1-ldshared.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Christoph Junghans <junghans@votca.org>
+# Date 1407773183 21600
+# Mon Aug 11 10:06:23 2014 -0600
+# Node ID ee313041ba5d7f0706f8140b4e965179e807ef56
+# Parent c66c1be9d40ae69aa61c45572fbe14ef3209378e
+Fix usage of LDSHARED
+
+- LDSHARED contain the linker, too
+- was used as it would only contain the options in the latter part
+- use split_linker_cmd to throw away the linker cmd
+- see https://bugs.gentoo.org/show_bug.cgi?id=514288
+
+diff -r c66c1be9d40a -r ee313041ba5d conf/mpidistutils.py
+--- a/conf/mpidistutils.py Wed Sep 04 22:40:25 2013 +0300
++++ b/conf/mpidistutils.py Mon Aug 11 10:06:23 2014 -0600
+@@ -176,6 +176,7 @@
+ opt = environ.get('OPT', opt )
+ ccshared = environ.get('CCSHARED', ccshared)
+ ldshared = environ.get('LDSHARED', ldshared)
++ _, ldshared = split_linker_cmd(ldshared)
+ cflags = ' '.join((basecflags, opt, cflags))
+ cxxflags = ' '.join((basecflags, opt, cxxflags))
+ cxxflags = cxxflags.replace('-Wstrict-prototypes', '')
diff --git a/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch b/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch
new file mode 100644
index 000000000000..f92639f5be5f
--- /dev/null
+++ b/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backport-1.patch
@@ -0,0 +1,81 @@
+ test/test_win.py | 48 +++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 37 insertions(+), 11 deletions(-)
+
+diff --git a/test/test_win.py b/test/test_win.py
+index 6da5c1f..7127e56 100644
+--- a/test/test_win.py
++++ b/test/test_win.py
+@@ -1,6 +1,30 @@
+ import sys
+ from mpi4py import MPI
+ import mpiunittest as unittest
++try:
++ from sys import getrefcount
++except ImportError:
++ class getrefcount(object):
++ def __init__(self, arg):
++ pass
++ def __eq__(self, other):
++ return True
++ def __add__(self, other):
++ return self
++ def __sub__(self, other):
++ return self
++
++def memzero(m):
++ n = len(m)
++ if n == 0: return
++ try:
++ zero = '\0'.encode('ascii')
++ m[0] = zero
++ except TypeError:
++ zero = 0
++ m[0] = zero
++ for i in range(n):
++ m[i] = zero
+
+ class BaseTestWin(object):
+
+@@ -11,29 +35,31 @@ class BaseTestWin(object):
+ try:
+ self.mpi_memory = MPI.Alloc_mem(10)
+ self.memory = self.mpi_memory
+- try:
+- zero = bytearray([0])
+- except NameError:
+- zero = str('\0')
+- self.memory[:] = zero * len(self.memory)
++ memzero(self.memory)
+ except MPI.Exception:
+ from array import array
+ self.mpi_memory = None
+ self.memory = array('B',[0]*10)
+- refcnt = sys.getrefcount(self.memory)
++ refcnt = getrefcount(self.memory)
+ self.WIN = MPI.Win.Create(self.memory, 1, self.INFO, self.COMM)
+ if type(self.memory).__name__ == 'buffer':
+- self.assertEqual(sys.getrefcount(self.memory), refcnt+1)
++ self.assertEqual(getrefcount(self.memory), refcnt+1)
+ else:
+- self.assertEqual(sys.getrefcount(self.memory), refcnt)
++ if sys.version_info[:3] < (3, 3):
++ self.assertEqual(getrefcount(self.memory), refcnt)
++ else:
++ self.assertEqual(getrefcount(self.memory), refcnt+1)
+
+ def tearDown(self):
+- refcnt = sys.getrefcount(self.memory)
++ refcnt = getrefcount(self.memory)
+ self.WIN.Free()
+ if type(self.memory).__name__ == 'buffer':
+- self.assertEqual(sys.getrefcount(self.memory), refcnt-1)
++ self.assertEqual(getrefcount(self.memory), refcnt-1)
+ else:
+- self.assertEqual(sys.getrefcount(self.memory), refcnt)
++ if sys.version_info[:3] < (3, 3):
++ self.assertEqual(getrefcount(self.memory), refcnt)
++ else:
++ self.assertEqual(getrefcount(self.memory), refcnt-1)
+ if self.mpi_memory:
+ MPI.Free_mem(self.mpi_memory)
+
diff --git a/dev-python/mpi4py/metadata.xml b/dev-python/mpi4py/metadata.xml
new file mode 100644
index 000000000000..5bbdad7d34f1
--- /dev/null
+++ b/dev-python/mpi4py/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">MPI for Python (mpi4py) provides bindings of the Message Passing
+ Interface (MPI) standard for the Python programming language,
+ allowing any Python program to exploit multiple processors.
+ This package is constructed on top of the MPI-1/MPI-2 specification
+ and provides an object oriented interface which closely follows
+ MPI-2 C++ bindings. It supports point-to-point (sends, receives) and
+ collective (broadcasts, scatters, gathers) communications of any
+ picklable Python object as well as optimized communications of
+ Python object exposing the single-segment buffer interface (NumPy
+ arrays, builtin bytes/string/array objects).
+</longdescription>
+ <upstream>
+ <remote-id type="google-code">mpi4py</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/mpi4py/mpi4py-1.3.1.ebuild b/dev-python/mpi4py/mpi4py-1.3.1.ebuild
new file mode 100644
index 000000000000..635ea933d259
--- /dev/null
+++ b/dev-python/mpi4py/mpi4py-1.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Message Passing Interface for Python"
+HOMEPAGE="http://code.google.com/p/mpi4py/ http://pypi.python.org/pypi/mpi4py"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples test"
+
+RDEPEND="virtual/mpi"
+DEPEND="${RDEPEND}
+ test? ( dev-python/nose[${PYTHON_USEDEP}]
+ virtual/mpi[romio] )"
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=( "${FILESDIR}"/${P}-py3-test-backport-1.patch "${FILESDIR}"/${P}-ldshared.patch )
+
+python_prepare_all() {
+ # not needed on install
+ rm -r docs/source || die
+ distutils-r1_python_prepare_all
+}
+
+src_compile() {
+ export FAKEROOTKEY=1
+ distutils-r1_src_compile
+}
+
+python_test() {
+ echo "Beginning test phase"
+ pushd "${BUILD_DIR}"/../ &> /dev/null
+ mpiexec -n 2 "${PYTHON}" ./test/runtests.py -v || die "Testsuite failed under ${EPYTHON}"
+ popd &> /dev/null
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ use examples && local EXAMPLES=( demo/. )
+ distutils-r1_python_install_all
+}