1
0
forked from pool/python-mpi4py

10 Commits

Author SHA256 Message Date
2d1fbe2d8d Accepting request 1323998 from devel:languages:python:numeric
- Update to 4.1.1
  * Add MPIABI-aware import hook support.
  * Support MPI.ERR_ERRHANDLER with Open MPI.
  * Minor fixes and improvements to typing stubs.
- Changes in 4.1.0
  ## New features:
  * Add support for the MPI 5.0 standard.
  * MPI handle serialization with integral values.
  * Fixed-size Fortran LOGICAL datatypes.
  * Query ABI version/info and Fortran ABI info.
  * MPI.Datatype.Create_contiguous now uses BigMPI's approach when
    using MPI implementations that do not yet support the MPI 4.0
    large-count APIs.
  * Add support for MPI.FLOAT16_T and MPI.BFLOAT16_T datatypes. 
  * Add MPI.Status.tomemory to expose the status contents as a
    memoryview object.
  ## Enhancements:
  * Support (opt-in via MPI4PY_BUILD_PYSABI) for building with
    Py_LIMITED_API under Python 3.10+ (requires Cython 3.1+).
  * Support (opt-in via MPI4PY_BUILD_MPIABI) for building with the
    MPI 5.0 standard ABI and the MPICH or Open MPI legacy ABIs. 
  * Support a buffersize parameter in the MPIPoolExecutor.map()
    and MPIPoolExecutor.starmap() methods to limit the number
    of pending tasks.
  * Improve ownership management of DLPack capsules.
  * Minor fixes to typing stubs and documentation.
  ## Backward-incompatible changes:
  * Python 3.8+ is required.
  * The MPI.Exception class is now a heap type.
  * The types of the MPI.BOTTOM, MPI.IN_PLACE, and 
    MPI.BUFFER_AUTOMATIC are no longer subclasses of int.
- Change BuildRequirement to Cython >= 3.0.1
- Disable two tests that fail on Tumbleweed:
  * donttest+=" -x TestULFMSelf.testRevoke"
  * donttest+=" -x TestULFMWorld.testRevoke"

OBS-URL: https://build.opensuse.org/request/show/1323998
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-mpi4py?expand=0&rev=25
2025-12-22 21:49:47 +00:00
525c76a2cf OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=45 2025-12-21 17:41:31 +00:00
f0e84a3232 - Update to 4.1.1
* Change BuildRequirement to Cython >= 3.0.1
  * Disable two tests that fail on Tumbleweed:
    donttest+=" -x TestULFMSelf.testRevoke"
    donttest+=" -x TestULFMWorld.testRevoke"
  * Add MPIABI-aware import hook support.
  * Support MPI.ERR_ERRHANDLER with Open MPI.
  * Minor fixes and improvements to typing stubs.
  * Publish Python 3.8-3.14 and PyPy 3.11 wheels.
  * PyPy 3.10 (EOL) wheels are no longer published.
- Changes in 4.1.0
  * New features:
  * Add support for the MPI 5.0 standard.
  * MPI handle serialization with integral values.
  * Fixed-size Fortran LOGICAL datatypes.
  * Query ABI version/info and Fortran ABI info.
  * MPI.Datatype.Create_contiguous now uses BigMPI's approach when
    using MPI implementations that do not yet support the MPI 4.0
    large-count APIs.
  * Add support for MPI.FLOAT16_T and MPI.BFLOAT16_T datatypes. 
  * Add MPI.Status.tomemory to expose the status contents as a
    memoryview object.
  * Enhancements:
  * Support (opt-in via MPI4PY_BUILD_PYSABI) for building with
    Py_LIMITED_API under Python 3.10+ (requires Cython 3.1+).
  * Support (opt-in via MPI4PY_BUILD_MPIABI) for building with the
    MPI 5.0 standard ABI and the MPICH or Open MPI legacy ABIs. 
  * Support a buffersize parameter in the MPIPoolExecutor.map()
    and MPIPoolExecutor.starmap() methods to limit the number
    of pending tasks.
  * Improve ownership management of DLPack capsules.
  * Minor fixes to typing stubs and documentation.
  * Backward-incompatible changes:
  * Python 3.8+ is required.
  * The MPI.Exception class is now a heap type.
  * The types of the MPI.BOTTOM, MPI.IN_PLACE, and 
    MPI.BUFFER_AUTOMATIC are no longer subclasses of int.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=44
2025-12-21 17:40:16 +00:00
4dbd44cc1d Accepting request 1250001 from devel:languages:python:numeric
OBS-URL: https://build.opensuse.org/request/show/1250001
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-mpi4py?expand=0&rev=24
2025-03-04 17:33:06 +00:00
0f08f3234d Update to version 4.0.3.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=42
2025-03-04 09:11:08 +00:00
c8e4dd05bb Accepting request 1233441 from devel:languages:python:numeric
OBS-URL: https://build.opensuse.org/request/show/1233441
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-mpi4py?expand=0&rev=23
2024-12-29 10:56:14 +00:00
4ab6f03258 - Fix packaging of header files, breaking VTK openmpi builds.
E.g. mpi4py.h requires the MPI_api.h in a specific relative
  location.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=40
2024-12-26 11:04:23 +00:00
e3c725ed41 - Fix packaging of header files, breaking VTK openmpi builds.
E.g. mpi4py.h requires the MPI_api.h in a specific relative
  location.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=39
2024-12-22 21:48:45 +00:00
7622b63725 Accepting request 1227501 from devel:languages:python:numeric
OBS-URL: https://build.opensuse.org/request/show/1227501
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-mpi4py?expand=0&rev=22
2024-11-30 12:32:14 +00:00
f2cd6fb1f3 Accepting request 1227500 from home:bnavigator:branches:devel:languages:python:numeric
- Update to 4.0.1
  ## Update support for Python 3.13:
  * Enable Cython 3.1 support for free-threaded CPython.
  * Allow compiling Cython-generated C sources with the full Python
    C-API.
  * Fix MPI DLL path workarounds on Windows after changes to
    locals().
  ## Enhancements to test suite:
  * Support XML reports via unittest-xml-reporting.
  * Add command line options to exclude tests by patterns and
    files.
  * Refactor Python 2 code to use Python 3 constructs using
    pyupgrade.
  ## Miscellaneous:
  * Minor and mostly inconsequential subclass fix in
    mpi4py.util.pkl5.
  * Update compatibility workarounds for legacy MPICH 3.0 release.
- Release 4.0.0
  ## New features:
  ### Add support for the MPI-4.0 standard.
  * Use large count MPI-4 routines.
  * Add persistent collective communication.
  * Add partitioned point-to-point communication.
  * Add new communicator constructors.
  * Add the Session class and its methods.
  ### Add support for the MPI-4.1 standard.
  * Add non-destructive completion test for multiple requests.
  * Add value-index datatype constructor.
  * Add communicator/session buffer attach/detach/flush.
  * Support for removal of error classes/codes/strings.
  * Support for querying hardware resource information.
  ### Add preliminary support for the upcoming MPI-5.0 standard.
  * User-level failure mitigation (ULFM).
  * mpi4py.util.pool: New drop-in replacement for
    multiprocessing.pool.
  * mpi4py.util.sync: New synchronization utilities.
  * Add runtime check for mismatch between mpiexec and MPI library.
  * Support scikit-build-core as an alternative build backend.
  * Support meson-python as an alternative build backend.
  ## Enhancements:
  * mpi4py.futures: Support for parallel tasks.
  * mpi4py.futures: Report exception tracebacks in workers.
  * mpi4py.util.pkl5: Add support for collective communication.
  * Add methods Datatype.fromcode(), Datatype.tocode() and
    attributes Datatype.typestr, Datatype.typechar to simplify
    NumPy interoperability for simple cases.
  * Add methods Comm.Create_errhandler(), Win.Create_errhandler(),
    and File.Create_errhandler() to create custom error handlers.
  * Add support for pickle serialization of instances of MPI types.
    All instances of Datatype, Info, and Status can be serialized.
    Instances of Op can be serialized only if created through
    mpi4py by calling Op.Create(). Instances of other MPI types can
    be serialized only if they reference predefined handles.
  * Add handle attribute and fromhandle() class method to MPI
    classes to ease interoperability with external code. The handle
    value is an unsigned integer guaranteed to fit on the
    platform's uintptr_t C type.
  * Add lowercase free() method to MPI classes to ease MPI object
    deallocation and cleanup. This method eventually attempts to
    call Free(), but only if the object's MPI handle is not a null
    or predefined handle, and such call is allowed within the World
    Model init/finalize.
  ## Backward-incompatible changes:
  * Python 2 is no longer supported, Python 3.6+ is required, but
    typing stubs are supported for Python 3.8+.
  * The Intracomm.Create_group() method is no longer defined in the
    base Comm class.
  * Group.Compare() and Comm.Compare() are no longer class methods
    but instance methods. Existing codes using the former class
    methods are expected to continue working.
  * Group.Translate_ranks() is no longer a class method but an
    instance method. Existing codes using the former class method
    are expected to continue working.
  * The LB and UB datatypes are no longer available, use
    Datatype.Create_resized() instead.
  * The HOST predefined attribute key is no longer available.
  * The MPI.memory class has been renamed to MPI.buffer. The old
    name is still available as an alias to the new name.
  * The mpi4py.dl module is no longer available.
  * The mpi4py.get_config function returns an empty dictionary.
  ## Miscellaneous:
  * The project is now licensed under the BSD-3-Clause license.
    This change is fairly inconsequential for users and
    distributors. It simply adds an additional clause against using
    contributor names for promotional purposes without their
    consent.
  * Add a new guidelines section to documentation laying out new
    fair play rules. These rules ask companies and outside
    developers to refrain from reusing the mpi4py name in
    unaffiliated projects, publishing binary mpi4py wheels on the
    main Python Package Index (PyPI), and distributing modified
    versions with incompatible or extended API changes. The primary
    motivation of these rules is to avoid fragmentation and
    end-user confusion.
- Skip failing tests: test fails are different on server and local
  machines. TODO: Investigate
- Remove unused rpm macro file: Static %mpi4py_mpi_ver is not used
  anywhere (and had a strange name for value 'openmpi')

OBS-URL: https://build.opensuse.org/request/show/1227500
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-mpi4py?expand=0&rev=37
2024-11-30 09:45:37 +00:00
5 changed files with 222 additions and 50 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8fa625e0f92b082ef955bfb52f19fa6691d29273d7d71135d295aa143dee6cb
size 2365468

3
mpi4py-4.1.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb2c8489bdbc47fdc6b26ca7576e927a11b070b6de196a443132766b3d0a2a22
size 500518

View File

@@ -1,5 +0,0 @@
# devel, common-devel and doc packages are arch dependent, devel and
# common-devel install in sitearch and the doc could be noarch, but maybe
it has no sense to have the doc package in archs where the original package
is not provided.
addFilter("E: no-binary")

View File

@@ -1,3 +1,162 @@
-------------------------------------------------------------------
Sun Dec 21 16:54:03 UTC 2025 - Andreas Prittwitz <m4ng4n@gmx.de>
- Update to 4.1.1
* Add MPIABI-aware import hook support.
* Support MPI.ERR_ERRHANDLER with Open MPI.
* Minor fixes and improvements to typing stubs.
- Changes in 4.1.0
## New features:
* Add support for the MPI 5.0 standard.
* MPI handle serialization with integral values.
* Fixed-size Fortran LOGICAL datatypes.
* Query ABI version/info and Fortran ABI info.
* MPI.Datatype.Create_contiguous now uses BigMPI's approach when
using MPI implementations that do not yet support the MPI 4.0
large-count APIs.
* Add support for MPI.FLOAT16_T and MPI.BFLOAT16_T datatypes.
* Add MPI.Status.tomemory to expose the status contents as a
memoryview object.
## Enhancements:
* Support (opt-in via MPI4PY_BUILD_PYSABI) for building with
Py_LIMITED_API under Python 3.10+ (requires Cython 3.1+).
* Support (opt-in via MPI4PY_BUILD_MPIABI) for building with the
MPI 5.0 standard ABI and the MPICH or Open MPI legacy ABIs.
* Support a buffersize parameter in the MPIPoolExecutor.map()
and MPIPoolExecutor.starmap() methods to limit the number
of pending tasks.
* Improve ownership management of DLPack capsules.
* Minor fixes to typing stubs and documentation.
## Backward-incompatible changes:
* Python 3.8+ is required.
* The MPI.Exception class is now a heap type.
* The types of the MPI.BOTTOM, MPI.IN_PLACE, and
MPI.BUFFER_AUTOMATIC are no longer subclasses of int.
- Change BuildRequirement to Cython >= 3.0.1
- Disable two tests that fail on Tumbleweed:
* donttest+=" -x TestULFMSelf.testRevoke"
* donttest+=" -x TestULFMWorld.testRevoke"
-------------------------------------------------------------------
Tue Mar 4 04:34:29 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Update to version 4.0.3:
* Fix DLPack v1.0 support.
- Changes from version 4.0.2:
* Support MPI-4 features within Intel MPI 2021.14.
* Various fixes and updates to tests.
* Minor fixes to typing support.
* Minor fix to documentation.
-------------------------------------------------------------------
Sun Dec 22 17:21:34 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Fix packaging of header files, breaking VTK openmpi builds.
E.g. mpi4py.h requires the MPI_api.h in a specific relative
location.
-------------------------------------------------------------------
Fri Nov 22 20:47:58 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 4.0.1
## Update support for Python 3.13:
* Enable Cython 3.1 support for free-threaded CPython.
* Allow compiling Cython-generated C sources with the full Python
C-API.
* Fix MPI DLL path workarounds on Windows after changes to
locals().
## Enhancements to test suite:
* Support XML reports via unittest-xml-reporting.
* Add command line options to exclude tests by patterns and
files.
* Refactor Python 2 code to use Python 3 constructs using
pyupgrade.
## Miscellaneous:
* Minor and mostly inconsequential subclass fix in
mpi4py.util.pkl5.
* Update compatibility workarounds for legacy MPICH 3.0 release.
- Release 4.0.0
## New features:
### Add support for the MPI-4.0 standard.
* Use large count MPI-4 routines.
* Add persistent collective communication.
* Add partitioned point-to-point communication.
* Add new communicator constructors.
* Add the Session class and its methods.
### Add support for the MPI-4.1 standard.
* Add non-destructive completion test for multiple requests.
* Add value-index datatype constructor.
* Add communicator/session buffer attach/detach/flush.
* Support for removal of error classes/codes/strings.
* Support for querying hardware resource information.
### Add preliminary support for the upcoming MPI-5.0 standard.
* User-level failure mitigation (ULFM).
* mpi4py.util.pool: New drop-in replacement for
multiprocessing.pool.
* mpi4py.util.sync: New synchronization utilities.
* Add runtime check for mismatch between mpiexec and MPI library.
* Support scikit-build-core as an alternative build backend.
* Support meson-python as an alternative build backend.
## Enhancements:
* mpi4py.futures: Support for parallel tasks.
* mpi4py.futures: Report exception tracebacks in workers.
* mpi4py.util.pkl5: Add support for collective communication.
* Add methods Datatype.fromcode(), Datatype.tocode() and
attributes Datatype.typestr, Datatype.typechar to simplify
NumPy interoperability for simple cases.
* Add methods Comm.Create_errhandler(), Win.Create_errhandler(),
and File.Create_errhandler() to create custom error handlers.
* Add support for pickle serialization of instances of MPI types.
All instances of Datatype, Info, and Status can be serialized.
Instances of Op can be serialized only if created through
mpi4py by calling Op.Create(). Instances of other MPI types can
be serialized only if they reference predefined handles.
* Add handle attribute and fromhandle() class method to MPI
classes to ease interoperability with external code. The handle
value is an unsigned integer guaranteed to fit on the
platform's uintptr_t C type.
* Add lowercase free() method to MPI classes to ease MPI object
deallocation and cleanup. This method eventually attempts to
call Free(), but only if the object's MPI handle is not a null
or predefined handle, and such call is allowed within the World
Model init/finalize.
## Backward-incompatible changes:
* Python 2 is no longer supported, Python 3.6+ is required, but
typing stubs are supported for Python 3.8+.
* The Intracomm.Create_group() method is no longer defined in the
base Comm class.
* Group.Compare() and Comm.Compare() are no longer class methods
but instance methods. Existing codes using the former class
methods are expected to continue working.
* Group.Translate_ranks() is no longer a class method but an
instance method. Existing codes using the former class method
are expected to continue working.
* The LB and UB datatypes are no longer available, use
Datatype.Create_resized() instead.
* The HOST predefined attribute key is no longer available.
* The MPI.memory class has been renamed to MPI.buffer. The old
name is still available as an alias to the new name.
* The mpi4py.dl module is no longer available.
* The mpi4py.get_config function returns an empty dictionary.
## Miscellaneous:
* The project is now licensed under the BSD-3-Clause license.
This change is fairly inconsequential for users and
distributors. It simply adds an additional clause against using
contributor names for promotional purposes without their
consent.
* Add a new guidelines section to documentation laying out new
fair play rules. These rules ask companies and outside
developers to refrain from reusing the mpi4py name in
unaffiliated projects, publishing binary mpi4py wheels on the
main Python Package Index (PyPI), and distributing modified
versions with incompatible or extended API changes. The primary
motivation of these rules is to avoid fragmentation and
end-user confusion.
- Skip failing tests: test fails are different on server and local
machines. TODO: Investigate
- Remove unused rpm macro file: Static %mpi4py_mpi_ver is not used
anywhere (and had a strange name for value 'openmpi')
-------------------------------------------------------------------
Fri May 10 13:36:54 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-mpi4py
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,28 +16,28 @@
#
%define plainpython python
Name: python-mpi4py
Version: 3.1.6
Version: 4.1.1
Release: 0
Summary: MPI for Python
License: BSD-2-Clause
License: BSD-3-Clause
URL: https://github.com/mpi4py/mpi4py
Source: https://files.pythonhosted.org/packages/source/m/mpi4py/mpi4py-%{version}.tar.gz
Source99: %{name}-rpmlintrc
BuildRequires: %{python_module Cython with %python-Cython < 3}
BuildRequires: %{python_module Cython >= 3.0.1}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module setuptools >= 42}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: openmpi-macros-devel
BuildRequires: python-rpm-macros
# Test dependencies
BuildRequires: %{python_module cffi}
# SECTION test dependencies
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module PyYAML}
BuildRequires: %{python_module cffi}
# /SECTION
%openmpi_requires
%python_subpackages
%description
@@ -75,6 +75,7 @@ Summary: Development files for %{name}
Requires: %{name} = %{version}
Requires: %{name}-common-devel = %{version}
Requires: python-devel
Requires: %plainpython(abi) = %python_version
%description devel
Development libraries and headers needed to build packages using %{name}.
@@ -83,10 +84,10 @@ Development libraries and headers needed to build packages using %{name}.
Summary: Shared development files for %{name}
%openmpi_devel_requires
Provides: %{python_module mpi4py-common-devel = %{version}}
BuildArch: noarch
%description -n %{name}-common-devel
Development libraries and headers needed to build packages using %{name}
for both python2 and python3.
Development libraries and headers needed to build packages using %{name}.
You normally do not need to install this directly, it will be pulled in by
the python-specific devel package.
@@ -94,20 +95,16 @@ the python-specific devel package.
%package -n %{name}-doc
Summary: Documentation for %{name}
Provides: %{python_module mpi4py-doc = %{version}}
BuildArch: noarch
%description -n %{name}-doc
Documentation files and demos for %{name}.
%prep
%autosetup -p1 -n mpi4py-%{version}
rm demo/*/runtests.bat docs/source/usrman/make.bat docs/source/usrman/.gitignore
sed -i 's/\r$//' docs/usrman/objects.inv
sed -i '1!b;/^#!\/usr\/bin\/env python/d' demo/python-config
chmod a-x demo/python-config
# Remove this file to fix tests
# https://github.com/mpi4py/mpi4py/issues/279
rm test/dlpackimpl.py
chmod a-x demo/python-config demo/check-mpiexec/run.sh
rm docs/source/make.bat
%build
%setup_openmpi
@@ -120,45 +117,65 @@ export LANG=en_US.UTF-8
export LANG=en_US.UTF-8
%pyproject_install
# De-duplicate includes and also put them in a more generally-accessible location.
mkdir -p %{buildroot}/%{_includedir}
%python_expand cp -r %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py %{buildroot}/%{_includedir}/
%python_expand rm -r %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
%python_expand ln -s %{_includedir}/mpi4py %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%{python_expand # De-duplicate includes and also put them in a more generally-accessible location.
rm -Rf %{buildroot}/%{_includedir}/mpi4py/include
rm -Rf %{buildroot}/%{_includedir}/mpi4py/*.h
mkdir -p -m 755 %{buildroot}/%{_includedir}/mpi4py/include
# Keep directory structure intact, e.g. mpi4py.h includes "../../MPI_api.h"
mv %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py %{buildroot}/%{_includedir}/mpi4py/include/mpi4py
mv %{buildroot}%{$python_sitearch}/mpi4py/*.h %{buildroot}/%{_includedir}/mpi4py/
ln -s %{_includedir}/mpi4py/include/mpi4py %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
for f in %{_includedir}/mpi4py/{MPI,MPI_api}.h; do ln -s ${f} %{buildroot}%{$python_sitearch}/mpi4py/; done
%fdupes %{buildroot}%{$python_sitearch}
}
%fdupes %{buildroot}/%{_includedir}
mkdir -p %{buildroot}%{_docdir}%{name}
cp -r docs %{buildroot}%{_docdir}%{name}/
cp -r demo %{buildroot}%{_docdir}%{name}/
%fdupes %{buildroot}%{_docdir}%{name}
mkdir -p %{buildroot}%{_rpmmacrodir}
cat >> %{buildroot}%{_rpmmacrodir}/macros.mpi4py <<EOL
mpi4py_mpi_ver openmpi
EOL
# Don't run tests in s390x, mpiexec is not too reliable running in the
# OBS virtual machine environment. bsc#1218604#c1
%ifnarch s390x
%check
export PYTHONDONTWRITEBYTECODE=1
export LANG=en_US.UTF-8
export OMPI_MCA_rmaps_base_oversubscribe=yes
donttest="test_spawn"
# https://mpi4py.readthedocs.io/en/stable/develop.html#testing
# obs server: no communication between processes?
donttest="-x test_spawn"
donttest+=" -x test_apply"
donttest+=" -x test_async_error_callback"
donttest+=" -x test_empty_iterable"
donttest+=" -x test_imap"
donttest+=" -x test_istarmap"
donttest+=" -x test_map"
donttest+=" -x test_starmap"
donttest+=" -x test_pool_worker_lifetime_early_close"
donttest+=" -x test_terminate"
# osc build local: hangs or takes too long?
donttest+=" -x test_p2p_obj"
donttest+=" -x testGetStatusAll"
donttest+=" -x testIMProbe"
donttest+=" -x testIS"
donttest+=" -x testMProbe"
donttest+=" -x testMessageProbeIProbe"
donttest+=" -x testProbe"
donttest+=" -x testTestAll"
donttest+=" -x testAll"
donttest+=" -x testWaitAll"
%ifarch %ix86
# https://github.com/mpi4py/mpi4py/issues/105
donttest+="|test_io"
# There are more broken tests in i586
# https://github.com/mpi4py/mpi4py/issues/279
donttest+="|test_file|test_subclass|test_errhandler|test_threads"
donttest+=" -x test_io"
# There are more broken tests in i586: https://github.com/mpi4py/mpi4py/issues/279
donttest+=" -x test_file -x test_subclass -x test_errhandler -x test_threads"
%endif
rm -rf build _build.*
donttest+=" -x TestULFMSelf.testRevoke"
donttest+=" -x TestULFMWorld.testRevoke"
%setup_openmpi
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
rm -rf build _build.*
%setup_openmpi
%{openmpi_prefix}/bin/mpiexec --use-hwthread-cpus --mca btl tcp,self -n 1 $python -B test/runtests.py -v --exclude="$donttest"
%{openmpi_prefix}/bin/mpiexec -n 1 $python -B test/main.py -v $donttest
}
%endif
@@ -168,15 +185,16 @@ rm -rf build _build.*
%{python_sitearch}/mpi4py
%{python_sitearch}/mpi4py-%{version}.dist-info
%exclude %{python_sitearch}/mpi4py/include/
%exclude %{python_sitearch}/mpi4py/*.h
%files %{python_files devel}
%license LICENSE.rst
%{python_sitearch}/mpi4py/include/
%{python_sitearch}/mpi4py/*.h
%files -n %{name}-common-devel
%license LICENSE.rst
%{_includedir}/mpi4py/
%{_rpmmacrodir}/macros.mpi4py
%files -n %{name}-doc
%license LICENSE.rst