blob: f6b54405669e1766b14a563b3ac1a397c702ffb1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
%global with_mpich 1
%global MPICH 1
%global OPENMPI 1
%global FULLTESTS 0
Name: mpi4py
Version: 4.0.1
Release: 1
Summary: Python bindings of the Message Passing Interface (MPI)
License: BSD-2-Clause
URL: https://mpi4py.readthedocs.io/en/stable/
Source0: https://github.com/mpi4py/mpi4py/archive/%{version}/%{name}-%{version}.tar.gz
ExcludeArch: %{ix86}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: python%{python3_pkgversion}-Cython
BuildRequires: environment-modules
%global _description %{expand:
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, built-in bytes/string/array
objects).}
%description %_description
%package docs
Summary: Documentation for %{name}
Requires: %{name}-common = %{version}-%{release}
BuildArch: noarch
%description docs
This package contains the documentation and examples for %{name}.
%package -n python%{python3_pkgversion}-mpi4py
Requires: %{name}-common = %{version}-%{release}
Summary: Python %{python3_version} bindings of the Message Passing Interface (MPI)
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py}
%description -n python%{python3_pkgversion}-mpi4py %_description
%package -n python%{python3_pkgversion}-mpi4py-openmpi
BuildRequires: openmpi-devel
Requires: %{name}-common = %{version}-%{release}
Requires: python%{python3_pkgversion}-openmpi%{?_isa}
Summary: Python %{python3_version} bindings of MPI, Open MPI version
Provides: python%{python3_pkgversion}-mpi4py-runtime = %{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py-openmpi}
%description -n python%{python3_pkgversion}-mpi4py-openmpi %_description
This package contains %{name} compiled against Open MPI.
%if %{with_mpich}
%package -n python%{python3_pkgversion}-mpi4py-mpich
BuildRequires: mpich-devel
Requires: %{name}-common = %{version}-%{release}
Requires: python%{python3_pkgversion}-mpich%{?_isa}
Summary: Python %{python3_version} bindings of MPI, MPICH version
Provides: python%{python3_pkgversion}-mpi4py-runtime = %{version}-%{release}
Provides: python%{python3_pkgversion}-%{name}-mpich2 = %{version}-%{release}
Obsoletes: python%{python3_pkgversion}-%{name}-mpich2 < 1.3-8
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py-mpich}
%description -n python%{python3_pkgversion}-mpi4py-mpich %_description
This package contains %{name} compiled against MPICH.
%endif
%package common
Summary: Common files for mpi4py packages
BuildArch: noarch
Requires: %{name}-common = %{version}-%{release}
%description common
This package contains the license file shared between the subpackages of %{name}.
%prep
%autosetup -p1 %{?commit:-n %{name}-%{name}-%{shortcommit}}
rm -r docs/source
for file in $(find | grep runtests.bat); do
sed -i 's/\r//' $file
done
cp src/mpi4py/__init__.py .__init__mpich.py
cp src/mpi4py/__init__.py .__init__openmpi.py
python3 conf/cythonize.py
%build
export CC=mpicc
export CXX=mpicxx
%{_openmpi_load}
ompi_info
cp .__init__openmpi.py src/mpi4py/__init__.py
%py3_build
mv build openmpi
%{_openmpi_unload}
%if %{with_mpich}
%{_mpich_load}
cp .__init__mpich.py src/mpi4py/__init__.py
%py3_build
mv build mpich
%{_mpich_unload}
%endif
%install
%{_openmpi_load}
cp .__init__openmpi.py src/mpi4py/__init__.py
mv openmpi build
%py3_install
mkdir -p %{buildroot}%{python3_sitearch}/openmpi
mv %{buildroot}%{python3_sitearch}/%{name}/ %{buildroot}%{python3_sitearch}/%{name}*.egg-info %{buildroot}%{python3_sitearch}/openmpi
mv build openmpi
%{_openmpi_unload}
%if %{with_mpich}
%{_mpich_load}
cp .__init__mpich.py src/mpi4py/__init__.py
mv mpich build
%py3_install
mkdir -p %{buildroot}%{python3_sitearch}/mpich
mv %{buildroot}%{python3_sitearch}/%{name}/ %{buildroot}%{python3_sitearch}/%{name}*.egg-info %{buildroot}%{python3_sitearch}/mpich
mv build mpich
%{_mpich_unload}
%endif
%files common
%license LICENSE.rst
%doc CHANGES.rst DESCRIPTION.rst README.rst
%files -n python%{python3_pkgversion}-mpi4py-openmpi
%{python3_sitearch}/openmpi/%{name}-*.egg-info
%{python3_sitearch}/openmpi/%{name}
%if %{with_mpich}
%files -n python%{python3_pkgversion}-mpi4py-mpich
%{python3_sitearch}/mpich/%{name}-*.egg-info
%{python3_sitearch}/mpich/%{name}
%endif
%files docs
%doc docs/* demo
%changelog
* Tue Aug 5 2025 mimanchiok <mimanchiok@qq.com> - 4.0.1-1
- Update to 4.0.1
* Fri Apr 15 2022 tanyulong <tanyulong@kylinos.cn> - 3.1.3-2
- rebuild
* Thu Mar 24 2022 tanyulong <tanyulong@kylinos.cn> - 3.1.3-1
- init package for openEuler
|