-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtclmpi.spec
199 lines (166 loc) · 6.38 KB
/
tclmpi.spec
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl%{tcl_version}}
%{!?tcl_sitelib: %global tcl_sitelib %{_datadir}/tcl%{tcl_version}}
%global with_mpich 1
Name: tclmpi
Version: 1.2
Release: 14
Summary: Tcl bindings of the Message Passing Interface (MPI)
License: BSD
URL: [email protected]:akohlmey/tclmpi
Source0: %{name}-%{version}.tar.gz
BuildRequires: tcl-devel >= 8.6 gcc cmake make binutils
Requires: tcl >= 8.6
%if 0%{?rhel}
Requires: environment-modules
%endif
%if 0%{?fedora}%{?rhel}
Requires: environment(modules)
%if !0%{?el7}
BuildRequires: rpm-mpi-hooks
%endif
%endif
%description
TclMPI provides MPI support for Tcl scripts. It supports a commonly
used subset of the the MPI-1/MPI-2 specification with an interface
following the MPI C language bindings but with some adjustments for
Tcl dynamic typing. It supports point-to-point (sends, receives)
and collective (broadcasts, scatters, gathers) communications.
%package doc
BuildRequires: doxygen
Requires: %{name} = %{version}-%{release}
Summary: Documentation and examples for TclMPI
%description doc
This package contains HTML format documentation and example scripts
for TclMPI.
%package openmpi
%global mpi_family openmpi
BuildRequires: openmpi-devel
Requires: %{name} = %{version}-%{release}
Summary: Tcl bindings for MPI, Open MPI version
Provides: tclmpi-runtime = %{version}-%{release}
Provides: tclmpi-openmpi = %{version}-%{release}
%description openmpi
This package contains %{name} binary files compiled against Open MPI.
%if %{with_mpich}
%global mpi_family mpich
%package mpich
BuildRequires: mpich-devel
Requires: %{name} = %{version}-%{release}
Summary: Tcl bindings for MPI, MPICH version
Provides: tclmpi-runtime = %{version}-%{release}
Provides: tclmpi-mpich = %{version}-%{release}
%description mpich
This package contains %{name} binary files compiled against MPICH.
%endif
%prep
%autosetup
%build
%global mpi_family openmpi
%{_openmpi_load}
ompi_info
%cmake
%cmake_build
mv %_vpath_builddir openmpi
%{_openmpi_unload}
%if %{with_mpich}
%global mpi_family mpich
%{_mpich_load}
%cmake
%cmake_build
mv %_vpath_builddir mpich
%{_mpich_unload}
%endif
%install
%global mpi_family openmpi
%{_openmpi_load}
mv openmpi %_vpath_builddir
%cmake_install
mkdir -p %{buildroot}%{_libdir}/openmpi/bin
mv %{buildroot}%{_bindir}/tclmpish %{buildroot}%{_libdir}/openmpi/bin/tclmpish
mkdir -p %{buildroot}%{_libdir}/openmpi/lib/tcl%{tcl_version}/%{name}%{version}
mv %{buildroot}%{tcl_sitearch}/%{name}%{version}/_tclmpi.so %{buildroot}%{_libdir}/openmpi/lib/tcl%{tcl_version}/%{name}%{version}
mkdir -p %{buildroot}%{_libdir}/openmpi/share/man/man1
mv %{buildroot}%{_mandir}/man1/tclmpish.1 %{buildroot}%{_libdir}/openmpi/share/man/man1
mv %_vpath_builddir openmpi
%{_openmpi_unload}
%if %{with_mpich}
%global mpi_family mpich
%{_mpich_load}
mv mpich %_vpath_builddir
%cmake_install
mkdir -p %{buildroot}%{_libdir}/mpich/bin
mv %{buildroot}%{_bindir}/tclmpish %{buildroot}%{_libdir}/mpich/bin/tclmpish
mkdir -p %{buildroot}%{_libdir}/mpich/lib/tcl%{tcl_version}/%{name}%{version}
mv %{buildroot}%{tcl_sitearch}/%{name}%{version}/_tclmpi.so %{buildroot}%{_libdir}/mpich/lib/tcl%{tcl_version}/%{name}%{version}
mkdir -p %{buildroot}%{_libdir}/mpich/share/man/man1
mv %{buildroot}%{_mandir}/man1/tclmpish.1 %{buildroot}%{_libdir}/mpich/share/man/man1
mv %_vpath_builddir mpich
%{_mpich_unload}
%endif
mv %{buildroot}%{_docdir}/TclMPI %{buildroot}%{_docdir}/tclmpi
%files
%defattr(-,root,root)
%license LICENSE
%doc README.md CITATION.cff DESCRIPTION.txt
%{tcl_sitearch}/%{name}%{version}/pkgIndex.tcl
%{tcl_sitearch}/%{name}%{version}/tclmpi.tcl
%files doc
%attr(0755,root,root) %{_docdir}/tclmpi/examples/*.tcl
%doc %{_docdir}/tclmpi/html
%files openmpi
%global mpi_family openmpi
%{_libdir}/openmpi/bin
%{_libdir}/openmpi/lib/tcl%{tcl_version}/%{name}%{version}
%{_libdir}/openmpi/share/man/man1/tclmpish.1
%if %{with_mpich}
%global mpi_family mpich
%files mpich
%{_libdir}/mpich/bin
%{_libdir}/mpich/lib/tcl%{tcl_version}/%{name}%{version}
%{_libdir}/mpich/share/man/man1/tclmpish.1
%endif
%changelog
* Mon Dec 13 2021 Axel Kohlmeyer <[email protected]> 1.2-14
- initialize returned status list to empty in tclmpi::waitall ([email protected])
- correct typos in Tcl docs ([email protected])
* Mon Dec 13 2021 Axel Kohlmeyer <[email protected]> 1.2-13
- fix bugs in wait and waitall and change/document the behavior
of status arrays for waitall ([email protected])
* Sat Nov 06 2021 Axel Kohlmeyer <[email protected]> 1.2-12
- forgot to update link
* Sat Nov 06 2021 Axel Kohlmeyer <[email protected]> 1.2-11
- use our own copy of the launchpad badge
* Sat Nov 06 2021 Axel Kohlmeyer <[email protected]> 1.2-10
- document how to install the Fedora and Ubuntu packages
* Fri Nov 05 2021 Axel Kohlmeyer <[email protected]> 1.2-9
- fix multiple manpage installation issues
- Mention launchpad PPA for Ubuntu
- update debian packaging files
* Fri Nov 05 2021 Axel Kohlmeyer <[email protected]> 1.2-7
- add files for packaging for a launchpad ppa
- Add manpage for tclmpish
* Fri Nov 05 2021 Axel Kohlmeyer <[email protected]>
- add files for packaging for a launchpad ppa
- Add manpage for tclmpish
* Wed Nov 03 2021 Axel Kohlmeyer <[email protected]> 1.2-6
- Improve building html docs on systems without latex. include logo image
- Documentation updates and corrections
* Tue Nov 02 2021 Axel Kohlmeyer <[email protected]> 1.2-5
- recover building rpm packages on copr
* Tue Nov 02 2021 Axel Kohlmeyer <[email protected]> 1.2-4
- add support for creating an NSIS installer on Windows
- add icon and logo image for installer
- mention download of windows binaries on homepage
- change license text to read better in Windows installer
- remove obsolte backward compatibility in unit tests
- enable manual workflow dispatch feature
* Sun Oct 10 2021 Axel Kohlmeyer <[email protected]> 1.2-3
- must not delete variable with name of shared object
* Sun Oct 10 2021 Axel Kohlmeyer <[email protected]> 1.2-2
- exclude files and folders required for tito from exported source tar packages
- add support for a copr hosted Fedora Linux repository
* Sun Oct 10 2021 Axel Kohlmeyer <[email protected]> 1.2-1
- step version to 1.2
* Sun Oct 10 2021 Axel Kohlmeyer <[email protected]> 1.1.1-1
- Initial build of TclMPI with tito for copr