# Warning: # Anyone editing this spec file please make sure the same spec file # works on other fedora and epel releases, which are supported by this software. # No quick Rawhide-only fixes will be allowed. %global mpich_name mpich #%%global do_test 1 Name: ga # The exported symbols have changed from 5.6.5, but not in the GA_ namespace. Version: 5.7 Release: 2%{?dist} Summary: Global Arrays Toolkit License: BSD Source: https://github.com/GlobalArrays/ga/releases/download/v%{version}/ga-%{version}.tar.gz URL: http://github.com/GlobalArrays/ga BuildRequires: openmpi-devel, %{mpich_name}-devel, gcc-c++, gcc-gfortran, hwloc-devel BuildRequires: openblas-devel, dos2unix %global ga_desc_base \ The Global Arrays (GA) toolkit provides an efficient and portable \ "shared-memory" programming interface for distributed-memory \ computers. Each process in a MIMD parallel program can asynchronously \ access logical blocks of physically distributed dense multi- \ dimensional arrays, without need for explicit cooperation by other \ processes. Unlike other shared-memory environments, the GA model \ exposes to the programmer the non-uniform memory access (NUMA) \ characteristics of the high performance computers and acknowledges \ that access to a remote portion of the shared data is slower than to \ the local portion. The locality information for the shared data is \ available, and a direct access to the local portions of shared data \ is provided. %description %{ga_desc_base} %package mpich Summary: Global Arrays Toolkit for MPICH BuildRequires: scalapack-%{mpich_name}-devel Requires: scalapack-%{mpich_name}%{?_isa} %description mpich %{ga_desc_base} - MPICH libraries. %package mpich-devel Summary: Global Arrays Toolkit for MPICH development Requires: scalapack-%{mpich_name}-devel%{?_isa}, %{mpich_name}-devel%{?_isa} Requires: openblas-devel%{?_isa}, %{name}-mpich%{?_isa} = %{version} %description mpich-devel %{ga_desc_base} - MPICH development files. %package openmpi Summary: Global Arrays Toolkit for OpenMPI BuildRequires: scalapack-openmpi-devel Requires: scalapack-openmpi%{?_isa} %description openmpi %{ga_desc_base} - OpenMPI libraries. %package openmpi-devel Summary: Global Arrays Toolkit for OpenMPI development Requires: scalapack-openmpi-devel%{?_isa}, openmpi-devel%{?_isa} Requires: openblas-devel%{?_isa}, %{name}-openmpi%{?_isa} = %{version} %description openmpi-devel %{ga_desc_base} - OpenMPI development files. %if 0%{?el7} %package openmpi3 Summary: Global Arrays Toolkit for OpenMPI 3 BuildRequires: scalapack-openmpi3-devel Requires: scalapack-openmpi3%{?_isa} %description openmpi3 %{ga_desc_base} - OpenMPI3 libraries. %package openmpi3-devel Summary: Global Arrays Toolkit for OpenMPI 3 development Requires: scalapack-openmpi3-devel%{?_isa}, openmpi3-devel%{?_isa} Requires: openblas-devel%{?_isa}, %{name}-openmpi3%{?_isa} = %{version} %description openmpi3-devel - Openmpi3 development files. %endif %global ga_version 5.7 %prep %setup -q -c -n %{name}-%{version} dos2unix %{name}-%{ga_version}/COPYRIGHT for i in mpich openmpi openmpi3; do cp -a %{name}-%{ga_version} %{name}-%{version}-$i done %global doBuild \ export LIBS="-lscalapack -lopenblas -lm" ; \ cd %{name}-%{version}-$MPI_COMPILER_NAME ; \ %configure \\\ --bindir=$MPI_BIN \\\ --libdir=$MPI_LIB \\\ --includedir=$MPI_INCLUDE \\\ --with-scalapack4=-lscalapack \\\ --with-blas4=-lopenblas \\\ --enable-shared \\\ --disable-static \\\ --enable-peigs \\\ --enable-cxx \\\ --enable-f77 \\\ $GA_CONFIGURE_OPTIONS ; \ %{__make} %{?__smp_mflags} ; \ cd .. export MPI_COMPILER_NAME=mpich export GA_CONFIGURE_OPTIONS="" %{_mpich_load} %doBuild %{_mpich_unload} %if 0%{?el7} export MPI_COMPILER_NAME=openmpi3 export GA_CONFIGURE_OPTIONS="--with-mpi3" %{_openmpi3_load} %doBuild %{_openmpi3_unload} %endif export MPI_COMPILER_NAME=openmpi %{_openmpi_load} %doBuild %{_openmpi_unload} %build %install %global doInstall \ cd %{name}-%{version}-$MPI_COMPILER_NAME ; \ DESTDIR=$RPM_BUILD_ROOT make install ; \ cd .. rm -rf $RPM_BUILD_ROOT export GA_CONFIGURE_OPTIONS="--with-mpi-pr" export MPI_COMPILER_NAME=mpich %{_mpich_load} %doInstall %{_mpich_unload} export MPI_COMPILER_NAME=openmpi %{_openmpi_load} %doInstall %{_openmpi_unload} %if 0%{?el7} export MPI_COMPILER_NAME=openmpi3 %{_openmpi3_load} %doInstall %{_openmpi3_unload} %endif find %{buildroot} -type f -name "*.la" -exec rm -f {} \; %check # While armci and comex tests work, the ga one fails with unresolved # symbols pdspev_, pdspgv_, fmemreq_. %if %{?do_test}0 %{_mpich_load} cd %{name}-%{version}-mpich make check cd .. %{_mpich_unload} %{_openmpi_load} cd %{name}-%{version}-openmpi OMPI_MCA_rmaps_base_oversubscribe=1 \ make check cd .. %{_openmpi_unload} %if 0%{?el7} %{_openmpi3_load} cd %{name}-%{version}-openmpi3 OMPI_MCA_rmaps_base_oversubscribe=1 \ make check cd .. %{_openmpi3_unload} %endif %endif %files mpich %license %{name}-%{ga_version}/COPYRIGHT %doc %{name}-%{ga_version}/README.md %{name}-%{ga_version}/CHANGELOG.md %{_libdir}/%{mpich_name}/lib/libarmci.so.0* %{_libdir}/%{mpich_name}/lib/libcomex.so.0* %{_libdir}/%{mpich_name}/lib/libga++.so.0* %{_libdir}/%{mpich_name}/lib/libga.so.1* %{_libdir}/%{mpich_name}/bin/*.x %files mpich-devel %{_libdir}/%{mpich_name}/lib/lib*.so %{_includedir}/%{mpich_name}-%{_arch}/* %{_libdir}/%{mpich_name}/bin/ga-config %{_libdir}/%{mpich_name}/bin/armci-config %{_libdir}/%{mpich_name}/bin/comex-config %files openmpi %license %{name}-%{ga_version}/COPYRIGHT %doc %{name}-%{ga_version}/README.md %{name}-%{ga_version}/CHANGELOG.md %{_libdir}/openmpi/lib/libarmci.so.0* %{_libdir}/openmpi/lib/libcomex.so.0* %{_libdir}/openmpi/lib/libga++.so.0* %{_libdir}/openmpi/lib/libga.so.1* %{_libdir}/openmpi/bin/*.x %files openmpi-devel %{_libdir}/openmpi/lib/lib*.so %{_includedir}/openmpi-%{_arch}/* %{_libdir}/openmpi/bin/ga-config %{_libdir}/openmpi/bin/armci-config %{_libdir}/openmpi/bin/comex-config %if 0%{?el7} %files openmpi3 %license %{name}-%{ga_version}/COPYRIGHT %doc %{name}-%{ga_version}/README.md %{name}-%{ga_version}/CHANGELOG.md %{_libdir}/openmpi3/lib/libarmci.so.0* %{_libdir}/openmpi3/lib/libcomex.so.0* %{_libdir}/openmpi3/lib/libga++.so.0* %{_libdir}/openmpi3/lib/libga.so.1* %{_libdir}/openmpi3/bin/*.x %files openmpi3-devel %{_libdir}/openmpi3/lib/lib*.so %{_includedir}/openmpi3-%{_arch}/* %{_libdir}/openmpi3/bin/ga-config %{_libdir}/openmpi3/bin/armci-config %{_libdir}/openmpi3/bin/comex-config %endif %changelog * Wed Oct 2 2019 Dave love - 5.7-2 - Drop patch - Drop static versions - Don't use ldconfig for MPI libraries - Don't install sysctl - Use soversion in installed library globs - Use %%license - Remove -common package (not worhtwhile) - Remove ExclusiveArch - Don't BR lapack - Drop Obsoletes - Modify descriptions and summaries - Drop provides of mpich2 - Use isa-dependent requires * Thu Jul 25 2019 Dave love - 5.7-1 - New version - Drop patch - Don't BR lapack * Mon May 20 2019 Dave Love - 5.6.5-3.mpi4 - Always use mpi-pr (#1709933) - Remove arch restriction * Wed May 8 2019 Dave Love - 5.6.5-3.mpi3 - Actually require scalapack-openmpi * Tue May 7 2019 Dave Love - 5.6.5-3.mpi2 - Use mpi-pr for openmpi - Require appropriate scalapack * Tue Apr 30 2019 Dave Love - 5.6.5-3.mpi - Add openmpi3 with RMA on EL7 * Tue Aug 07 2018 Edoardo Apra - 5.6.5-3 - fortran integer casting in ga_diag. Fixes #1613089 * Fri Jul 13 2018 Fedora Release Engineering - 5.6.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Jun 13 2018 Edoardo Apra - 5.6.5-1 - New release 5.6.5 - Replaced Atlas with OpenBLAS - Made compatible with ScaLapack RPM updates - Added options -with-blas4 to work with NWChem * Wed Feb 07 2018 Fedora Release Engineering - 5.6.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Fri Aug 25 2017 Adam Williamson - 5.6.1-1 - New release 5.6.1 - Minor spec fixups * Wed Aug 02 2017 Fedora Release Engineering - 5.3b-24 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 5.3b-23 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 5.3b-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Fri Oct 21 2016 Orion Poplawski - 5.3b-21 - Rebuild for openmpi 2.0 * Wed Feb 03 2016 Fedora Release Engineering - 5.3b-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Sep 15 2015 Orion Poplawski - 5.3b-19 - Rebuild for openmpi 1.10.0 * Sun Jul 26 2015 Sandro Mani - 5.3b-18 - Rebuild for RPM MPI Requires Provides Change * Wed Jun 17 2015 Fedora Release Engineering - 5.3b-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sat May 02 2015 Kalev Lember - 5.3b-16 - Rebuilt for GCC 5 C++11 ABI change * Fri Mar 20 2015 David Brown - 5.3b-15 - Rebuild to support new version of mpich * Wed Nov 19 2014 David Brown - 5.3b-14 - Fix bug #1150473 to support epel7 * Wed Oct 29 2014 David Brown - 5.3b-13 - Rebuild to fix bug #1155077 * Sun Oct 5 2014 David Brown - 5.3b-12 - Fix up some conditions for f22 - Add more dependancies on lapack-devel in right places * Tue Sep 30 2014 David Brown - 5.3b-11 - Rebuilt for updated upstream package * Sat Aug 16 2014 Fedora Release Engineering - 5.3b-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Mon Jul 07 2014 David Brown - 5.3b-8 - add explicit requires for mpich and openmpi packages (#1116627) * Sat Jun 07 2014 Fedora Release Engineering - 5.3b-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Mon May 12 2014 Tom Callaway - 5.3b-7 - rebuild against new blacs * Thu Mar 27 2014 David Brown - 5.3b-6 - version bump to get all fedora/epel versions in sync * Thu Mar 27 2014 David Brown - 5.3b-5 - Parameterize mpich name and environment loading to cover EPEL * Thu Mar 27 2014 David Brown - 5.3b-4 - Update to include configure option fixes (1081403) * Sun Feb 23 2014 David Brown - 5.3b-3 - Updated revision for new mpich * Wed Feb 5 2014 David Brown - 5.3b-2 - Fix BuildRoot - add more generic/specific atlas config * Mon Jan 27 2014 David Brown - 5.3b-1 - Update to upstream version - Fix exclusive arch to match documentation - add patch for format security fixes (1037075) * Mon Sep 23 2013 David Brown - 5.1.1-8 - Rebuild for updated atlas. - Fix atlas libs since they changed things * Sat Aug 03 2013 Fedora Release Engineering - 5.1.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Mon Jul 22 2013 David Brown - 5.1.1-6 - forgot obsoletes and provides for sub packages as well. * Mon Jul 22 2013 David Brown - 5.1.1-5 - forgot about obsoletes and provides for new mpich packages. * Mon Jul 15 2013 David Brown - 5.1.1-4 - Rebuild for updated openmpi - resolved issues with doBuild function to proper define - also renamed mpich2 to mpich * Tue May 21 2013 David Brown - 5.1.1-3 - modify exclusive arch some more (964424, 964946) * Tue May 14 2013 David Brown - 5.1.1-2 - Add exclusive arch for EPEL. - And lib*.la files are bad too. * Wed May 1 2013 David Brown - 5.1.1-1 - Update to upstream version - fixed file locations and clean up rpmlint * Thu Jul 5 2012 David Brown - 5.1-2 - added common package with license and sysctl additions * Mon Apr 9 2012 David Brown - 5.1-1 - initial packaging