davidsch / rpms / bout++

Forked from rpms/bout++ 3 years ago
Clone
David Schwörer 86b481b
Name:           bout++
David Schwörer 86b481b
Version:        4.3.0
David Schwörer 05b0fec
Release:        2%{?dist}
David Schwörer 86b481b
Summary:        Library for the BOUndary Turbulence simulation framework
David Schwörer 86b481b
David Schwörer 86b481b
# BOUT++ itself is LGPL, but we are linking with GPLed code, so the distributed library is GPL
David Schwörer 86b481b
License:        GPLv3+
David Schwörer 86b481b
URL:            https://boutproject.github.io/
David Schwörer 86b481b
Source0:        https://github.com/boutproject/BOUT-dev/releases/download/v%{version}/BOUT++-v%{version}.tar.gz
David Schwörer 86b481b
David Schwörer 86b481b
# Do not install mpark
David Schwörer 86b481b
Patch0:  remove-mpark.patch
David Schwörer 86b481b
# PR 1851
David Schwörer 86b481b
Patch1:  test-mpi.patch
David Schwörer 86b481b
# PR 1853
David Schwörer 86b481b
Patch2:  test-metric-precision.patch
David Schwörer 86b481b
# PR 1855
David Schwörer 86b481b
Patch3:  arm-deref.patch
David Schwörer 86b481b
# PR 1856
David Schwörer 86b481b
Patch4:  parallel-race.patch
David Schwörer 05b0fec
# install make.config to header
David Schwörer 05b0fec
Patch5:  bout-conf.patch
David Schwörer 05b0fec
# PR 1871
David Schwörer 05b0fec
Patch6:  typo-released.patch
David Schwörer 86b481b
David Schwörer 86b481b
# Disable tests and manual on epel < 8
David Schwörer 86b481b
%if 0%{?rhel} && 0%{?rhel} < 8
David Schwörer 86b481b
%bcond_with manual
David Schwörer 86b481b
%bcond_with test
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_without manual
David Schwörer 86b481b
%bcond_without test
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%if 0%{?rhel} && 0%{?rhel} <= 6
David Schwörer 86b481b
%ifarch ppc64
David Schwörer 86b481b
# No mpich on ppc64 in EL6
David Schwörer 86b481b
%bcond_with mpich
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_without mpich
David Schwörer 86b481b
%endif
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_without mpich
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%ifarch s390 s390x
David Schwörer 86b481b
# No openmpi on s390(x)
David Schwörer 86b481b
%bcond_with openmpi
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_without openmpi
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
# Enable weak dependencies
David Schwörer 86b481b
%if 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 7 )
David Schwörer 86b481b
%bcond_without recommend
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_with recommend
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%if 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 7 )
David Schwörer 86b481b
# Use system mpark
David Schwörer 86b481b
%bcond_without system_mpark
David Schwörer 86b481b
%else
David Schwörer 86b481b
%bcond_with system_mpark
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           DEPENDENCIES
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
BuildRequires:  m4
David Schwörer 86b481b
BuildRequires:  zlib-devel
David Schwörer 86b481b
BuildRequires:  autoconf
David Schwörer 86b481b
BuildRequires:  autoconf-archive
David Schwörer 86b481b
BuildRequires:  gettext-devel
David Schwörer 86b481b
BuildRequires:  automake
David Schwörer 86b481b
BuildRequires:  environment-modules
David Schwörer 86b481b
BuildRequires:  netcdf-devel
David Schwörer 86b481b
BuildRequires:  netcdf-cxx%{?fedora:4}-devel
David Schwörer 86b481b
BuildRequires:  hdf5-devel
David Schwörer 86b481b
BuildRequires:  fftw-devel
David Schwörer 86b481b
BuildRequires:  make
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}-numpy
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}-Cython
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}-netcdf4
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}-scipy
David Schwörer 86b481b
BuildRequires:  blas-devel
David Schwörer 86b481b
BuildRequires:  lapack-devel
David Schwörer 86b481b
BuildRequires:  gcc-c++
David Schwörer 86b481b
%if %{with system_mpark}
David Schwörer 86b481b
BuildRequires:  mpark-variant-devel
David Schwörer 86b481b
%endif
David Schwörer 86b481b
# cxx generation
David Schwörer 86b481b
BuildRequires:  python%{python3_pkgversion}-jinja2
David Schwörer 86b481b
# Documentation
David Schwörer 86b481b
%if %{with manual}
David Schwörer 86b481b
BuildRequires:  doxygen
David Schwörer 86b481b
BuildRequires:  python3-sphinx
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           DESCRIPTIONS
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with mpich}
David Schwörer 86b481b
BuildRequires:  mpich-devel
David Schwörer 86b481b
%global mpi_list mpich
David Schwörer 86b481b
%endif
David Schwörer 86b481b
%if %{with openmpi}
David Schwörer 86b481b
BuildRequires:  openmpi-devel
David Schwörer 86b481b
%global mpi_list %{?mpi_list} openmpi
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%description
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with mpich}
David Schwörer 86b481b
%package mpich
David Schwörer 86b481b
Summary: BOUT++ mpich libraries
David Schwörer 86b481b
Requires: %{name}-common = %{version}-%{release}
David Schwörer 86b481b
# Use bundled version, to reproduce upstream results
David Schwörer 86b481b
Provides: bundled(libpvode)
David Schwörer 86b481b
%if %{with recommend}
David Schwörer 86b481b
Recommends: environment-modules
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%package mpich-devel
David Schwörer 86b481b
Summary: BOUT++ mpich libraries
David Schwörer 86b481b
Requires: mpich-devel
David Schwörer 86b481b
Requires: netcdf-cxx%{?fedora:4}-devel
David Schwörer 86b481b
Requires: hdf5-devel
David Schwörer 86b481b
Requires: fftw-devel
David Schwörer 86b481b
Requires: %{name}-mpich = %{version}-%{release}
David Schwörer 86b481b
Requires: make
David Schwörer 86b481b
David Schwörer 86b481b
%description mpich-devel
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
This BOUT++ library is build for mpich.
David Schwörer 86b481b
David Schwörer 86b481b
%description mpich
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
This BOUT++ library is build for mpich.
David Schwörer 86b481b
David Schwörer 86b481b
%package -n python%{python3_pkgversion}-%{name}-mpich
David Schwörer 86b481b
Summary:  BOUT++ mpich library for python%{python3_pkgversion}
David Schwörer 86b481b
Requires: %{name}-mpich
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-%{name}
David Schwörer 86b481b
BuildRequires: python%{python3_pkgversion}-devel
David Schwörer 86b481b
Requires: mpich
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-mpich
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-numpy
David Schwörer 86b481b
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}-mpich}
David Schwörer 86b481b
%description  -n python%{python3_pkgversion}-%{name}-mpich
David Schwörer 86b481b
This is the BOUT++ library python%{python3_pkgversion} with mpich.
David Schwörer 86b481b
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with openmpi}
David Schwörer 86b481b
%package openmpi
David Schwörer 86b481b
Summary: BOUT++ openmpi libraries
David Schwörer 86b481b
# Use bundled version, to reproduce upstream results
David Schwörer 86b481b
Provides: bundled(libpvode)
David Schwörer 86b481b
Requires: %{name}-common = %{version}-%{release}
David Schwörer 86b481b
%if %{with recommend}
David Schwörer 86b481b
Recommends: environment-modules
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%package openmpi-devel
David Schwörer 86b481b
Summary: BOUT++ openmpi libraries
David Schwörer 86b481b
Requires: openmpi-devel
David Schwörer 86b481b
Requires: netcdf-cxx%{?fedora:4}-devel
David Schwörer 86b481b
Requires: hdf5-devel
David Schwörer 86b481b
Requires: fftw-devel
David Schwörer 86b481b
Requires: make
David Schwörer 86b481b
Requires: %{name}-openmpi = %{version}-%{release}
David Schwörer 86b481b
David Schwörer 86b481b
%description openmpi-devel
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
This BOUT++ library is build for openmpi and provides the required
David Schwörer 86b481b
header files.
David Schwörer 86b481b
David Schwörer 86b481b
%description openmpi
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
This BOUT++ library is build for openmpi.
David Schwörer 86b481b
David Schwörer 86b481b
%package -n python%{python3_pkgversion}-%{name}-openmpi
David Schwörer 86b481b
Summary:  BOUT++ openmpi library for python%{python3_pkgversion}
David Schwörer 86b481b
Requires: %{name}-openmpi
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-%{name}
David Schwörer 86b481b
BuildRequires: python%{python3_pkgversion}-devel
David Schwörer 86b481b
Requires: openmpi
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-openmpi
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-numpy
David Schwörer 86b481b
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}-openmpi}
David Schwörer 86b481b
David Schwörer 86b481b
%description  -n python%{python3_pkgversion}-%{name}-openmpi
David Schwörer 86b481b
This is the BOUT++ library python%{python3_pkgversion} with openmpi.
David Schwörer 86b481b
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%package common
David Schwörer 86b481b
Summary: Common files for BOUT++
David Schwörer 86b481b
%description common
David Schwörer 86b481b
MPI-independent files for BOUT++, namely localisation files.
David Schwörer 86b481b
David Schwörer 86b481b
%package -n python%{python3_pkgversion}-%{name}
David Schwörer 86b481b
Summary: BOUT++ python library
David Schwörer 86b481b
Requires: netcdf4-python%{python3_pkgversion}
David Schwörer 86b481b
Requires: python%{python3_pkgversion}-numpy
David Schwörer 86b481b
%if %{with recommend}
David Schwörer 86b481b
Recommends: python%{python3_pkgversion}-scipy
David Schwörer 86b481b
Recommends: python%{python3_pkgversion}-matplotlib
David Schwörer 86b481b
%endif
David Schwörer 86b481b
BuildArch: noarch
David Schwörer 86b481b
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
David Schwörer 86b481b
David Schwörer 86b481b
%description -n python%{python3_pkgversion}-%{name}
David Schwörer 86b481b
Python%{python3_pkgversion} library for pre and post processing of BOUT++ data
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with manual}
David Schwörer 86b481b
%package -n %{name}-doc
David Schwörer 86b481b
Summary: BOUT++ Documentation
David Schwörer 86b481b
BuildArch: noarch
David Schwörer 86b481b
David Schwörer 86b481b
%description -n %{name}-doc
David Schwörer 86b481b
BOUT++ is a framework for writing fluid and plasma simulations in
David Schwörer 86b481b
curvilinear geometry. It is intended to be quite modular, with a
David Schwörer 86b481b
variety of numerical methods and time-integration solvers available.
David Schwörer 86b481b
BOUT++ is primarily designed and tested with reduced plasma fluid
David Schwörer 86b481b
models in mind, but it can evolve any number of equations, with
David Schwörer 86b481b
equations appearing in a readable form.
David Schwörer 86b481b
David Schwörer 86b481b
This package contains the documentation.
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           PREP
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%prep
David Schwörer 86b481b
%setup -q -n BOUT++-v%{version}
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with system_mpark}
David Schwörer 86b481b
# use mpark provided by fedora
David Schwörer 86b481b
rm -rf externalpackages/mpark.variant/
David Schwörer 86b481b
mkdir -p externalpackages/mpark.variant/include/
David Schwörer 86b481b
%patch0 -p 1
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%patch1 -p 1
David Schwörer 86b481b
%patch2 -p 1
David Schwörer 86b481b
%patch3 -p 1
David Schwörer 86b481b
%patch4 -p 1
David Schwörer 86b481b
%patch5 -p 1
David Schwörer 05b0fec
%patch6 -p 1
David Schwörer 86b481b
David Schwörer 86b481b
# Remove shebang
David Schwörer 86b481b
for f in $(find -L tools/pylib/ -type f | grep -v _boutcore_build )
David Schwörer 86b481b
do
David Schwörer 86b481b
    sed -i '/^#!\//d' $f
David Schwörer 86b481b
done
David Schwörer 86b481b
David Schwörer 86b481b
autoreconf
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           BUILD
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%build
David Schwörer 86b481b
%global configure_opts \\\
David Schwörer 86b481b
           --with-netcdf \\\
David Schwörer 86b481b
           --with-hdf5 \\\
David Schwörer 86b481b
           --enable-shared
David Schwörer 86b481b
David Schwörer 86b481b
%{nil}
David Schwörer 86b481b
David Schwörer 86b481b
# MPI builds
David Schwörer 86b481b
export CC=mpicc
David Schwörer 86b481b
export CXX=mpicxx
David Schwörer 86b481b
David Schwörer 86b481b
for mpi in %{mpi_list}
David Schwörer 86b481b
do
David Schwörer 86b481b
  mkdir build_$mpi
David Schwörer 86b481b
  cp -al [^b]* build-aux bin build_$mpi
David Schwörer 86b481b
done
David Schwörer 86b481b
for mpi in %{mpi_list}
David Schwörer 86b481b
do
David Schwörer 86b481b
  pushd build_$mpi
David Schwörer 86b481b
  if [ $mpi = mpich ] ; then
David Schwörer 86b481b
      %_mpich_load
David Schwörer 86b481b
  elif [ $mpi = openmpi ] ; then
David Schwörer 86b481b
      %_openmpi_load
David Schwörer 86b481b
  else
David Schwörer 86b481b
      echo "unknown mpi" &> /dev/stderr
David Schwörer 86b481b
      exit 1
David Schwörer 86b481b
  fi
David Schwörer 86b481b
David Schwörer 86b481b
  %configure %{configure_opts} \
David Schwörer 86b481b
    --libdir=%{_libdir}/$mpi/lib \
David Schwörer 86b481b
    --bindir=%{_libdir}/$mpi/bin \
David Schwörer 86b481b
    --sbindir=%{_libdir}/$mpi/sbin \
David Schwörer 86b481b
    --includedir=%{_includedir}/$mpi-%{_arch} \
David Schwörer 86b481b
    --datarootdir=%{_datadir}
David Schwörer 86b481b
David Schwörer 86b481b
  make %{?_smp_mflags} shared python
David Schwörer 86b481b
  export LD_LIBRARY_PATH=$(pwd)/lib
David Schwörer 86b481b
  %if %{with manual}
David Schwörer 86b481b
  make %{?_smp_mflags} -C manual html
David Schwörer 86b481b
  %endif
David Schwörer 86b481b
  if [ $mpi = mpich ] ; then
David Schwörer 86b481b
      %_mpich_unload
David Schwörer 86b481b
  elif [ $mpi = openmpi ] ; then
David Schwörer 86b481b
      %_openmpi_unload
David Schwörer 86b481b
  fi
David Schwörer 86b481b
  popd
David Schwörer 86b481b
done
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           INSTALL
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%install
David Schwörer 86b481b
David Schwörer 86b481b
for mpi in %{mpi_list}
David Schwörer 86b481b
do
David Schwörer 86b481b
  pushd build_$mpi
David Schwörer 86b481b
  if [ $mpi = mpich ] ; then
David Schwörer 86b481b
      %_mpich_load
David Schwörer 86b481b
  else
David Schwörer 86b481b
      %_openmpi_load
David Schwörer 86b481b
  fi
David Schwörer 86b481b
  make install DESTDIR=${RPM_BUILD_ROOT}
David Schwörer 86b481b
David Schwörer 86b481b
  # mark this as a released version, to disable compiling the library
David Schwörer 86b481b
  sed -i '26 i RELEASED                 = %{version}-%{release}' ${RPM_BUILD_ROOT}/%{_includedir}/${mpi}-%{_arch}/bout++/make.config
David Schwörer 86b481b
David Schwörer 86b481b
  rm -rf  ${RPM_BUILD_ROOT}/usr/share/bout++
David Schwörer 86b481b
  rm -f ${RPM_BUILD_ROOT}/%{_libdir}/${mpi}/lib/*.a
David Schwörer 86b481b
David Schwörer 86b481b
  install lib/*.so.* ${RPM_BUILD_ROOT}/%{_libdir}/${mpi}/lib/
David Schwörer 86b481b
  pushd ${RPM_BUILD_ROOT}/%{_libdir}/${mpi}/lib/
David Schwörer 86b481b
  for f in *.so.*
David Schwörer 86b481b
  do
David Schwörer 86b481b
      ln -s $f ${f%%.so*}.so
David Schwörer 86b481b
  done
David Schwörer 86b481b
  popd
David Schwörer 86b481b
  popd
David Schwörer 86b481b
  if [ $mpi = mpich ] ; then
David Schwörer 86b481b
      %_mpich_unload
David Schwörer 86b481b
  else
David Schwörer 86b481b
      %_openmpi_unload
David Schwörer 86b481b
  fi
David Schwörer 86b481b
done
David Schwörer 86b481b
David Schwörer 86b481b
# install python libraries
David Schwörer 86b481b
pushd tools/pylib
David Schwörer 86b481b
for d in boutdata bout_runners boututils  post_bout zoidberg
David Schwörer 86b481b
do
David Schwörer 86b481b
    mkdir -p ${RPM_BUILD_ROOT}/%{python3_sitelib}/$d
David Schwörer 86b481b
    cp $d/*py ${RPM_BUILD_ROOT}/%{python3_sitelib}/$d/
David Schwörer 86b481b
done
David Schwörer 86b481b
popd
David Schwörer 86b481b
David Schwörer 86b481b
# install manual
David Schwörer 86b481b
%if %{with manual}
David Schwörer 86b481b
mandir=$(ls build_*/manual -d|head -n1)
David Schwörer 86b481b
mkdir -p ${RPM_BUILD_ROOT}/%{_defaultdocdir}/bout++/
David Schwörer 86b481b
rm -rf $mandir/html/.buildinfo
David Schwörer 86b481b
rm -rf $mandir/html/.doctrees
David Schwörer 86b481b
rm -rf $mandir/html/_sources
David Schwörer 86b481b
cp -r $mandir/html ${RPM_BUILD_ROOT}/%{_defaultdocdir}/bout++/
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
# install boutcore library
David Schwörer 86b481b
for mpi in %{mpi_list}
David Schwörer 86b481b
do
David Schwörer 86b481b
    mkdir -p ${RPM_BUILD_ROOT}/%{python3_sitearch}/${mpi}/
David Schwörer 86b481b
    install build_$mpi/tools/pylib/boutcore.*.so ${RPM_BUILD_ROOT}/%{python3_sitearch}/${mpi}/
David Schwörer 86b481b
done
David Schwörer 86b481b
David Schwörer 86b481b
%find_lang libbout
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           CHECK
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%check
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with test}
David Schwörer 86b481b
for mpi in %{mpi_list}
David Schwörer 86b481b
do
David Schwörer 86b481b
    if [ $mpi = mpich ] ; then
David Schwörer 86b481b
        %_mpich_load
David Schwörer 86b481b
    else
David Schwörer 86b481b
        %_openmpi_load
David Schwörer 86b481b
    fi
David Schwörer 86b481b
    export OMPI_MCA_rmaps_base_oversubscribe=yes
David Schwörer 86b481b
    pushd build_$mpi
David Schwörer 86b481b
    make %{?_smp_mflags} build-check
David Schwörer 86b481b
    make check
David Schwörer 86b481b
    popd
David Schwörer 86b481b
    if [ $mpi = mpich ] ; then
David Schwörer 86b481b
        %_mpich_unload
David Schwörer 86b481b
    else
David Schwörer 86b481b
        %_openmpi_unload
David Schwörer 86b481b
    fi
David Schwörer 86b481b
done
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           FILES SECTION
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with mpich}
David Schwörer 86b481b
%files mpich
David Schwörer 86b481b
%{_libdir}/mpich/lib/libbout++.so.4.3.0
David Schwörer 86b481b
%{_libdir}/mpich/lib/*.so.1.0.0
David Schwörer 86b481b
%{_libdir}/mpich/bin/*
David Schwörer 86b481b
%doc README.md
David Schwörer 86b481b
%doc CITATION.bib
David Schwörer 86b481b
%doc CITATION.cff
David Schwörer 86b481b
%doc CHANGELOG.md
David Schwörer 86b481b
%doc CONTRIBUTING.md
David Schwörer 86b481b
%license LICENSE
David Schwörer 86b481b
%license LICENSE.GPL
David Schwörer 86b481b
David Schwörer 86b481b
%files mpich-devel
David Schwörer 86b481b
%{_includedir}/mpich-%{_arch}/bout++
David Schwörer 86b481b
%{_libdir}/mpich/lib/*.so
David Schwörer 86b481b
David Schwörer 86b481b
%files -n python%{python3_pkgversion}-%{name}-mpich
David Schwörer 86b481b
%{python3_sitearch}/mpich/*
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with openmpi}
David Schwörer 86b481b
%files openmpi
David Schwörer 86b481b
%{_libdir}/openmpi/lib/libbout++.so.4.3.0
David Schwörer 86b481b
%{_libdir}/openmpi/lib/*.so.1.0.0
David Schwörer 86b481b
%{_libdir}/openmpi/bin/*
David Schwörer 86b481b
%doc README.md
David Schwörer 86b481b
%doc CITATION.bib
David Schwörer 86b481b
%doc CITATION.cff
David Schwörer 86b481b
%doc CHANGELOG.md
David Schwörer 86b481b
%doc CONTRIBUTING.md
David Schwörer 86b481b
%license LICENSE
David Schwörer 86b481b
%license LICENSE.GPL
David Schwörer 86b481b
David Schwörer 86b481b
%files openmpi-devel
David Schwörer 86b481b
%{_includedir}/openmpi-%{_arch}/bout++
David Schwörer 86b481b
%{_libdir}/openmpi/lib/*.so
David Schwörer 86b481b
David Schwörer 86b481b
%files -n python%{python3_pkgversion}-%{name}-openmpi
David Schwörer 86b481b
%{python3_sitearch}/openmpi/*
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
%files common -f libbout.lang
David Schwörer 86b481b
David Schwörer 86b481b
%files -n python%{python3_pkgversion}-%{name}
David Schwörer 86b481b
%{python3_sitelib}/*bout*
David Schwörer 86b481b
%{python3_sitelib}/zoidberg
David Schwörer 86b481b
%doc README.md
David Schwörer 86b481b
%doc CITATION.bib
David Schwörer 86b481b
%doc CITATION.cff
David Schwörer 86b481b
%doc CHANGELOG.md
David Schwörer 86b481b
%doc CONTRIBUTING.md
David Schwörer 86b481b
%license LICENSE
David Schwörer 86b481b
%license LICENSE.GPL
David Schwörer 86b481b
David Schwörer 86b481b
David Schwörer 86b481b
%if %{with manual}
David Schwörer 86b481b
%files -n %{name}-doc
David Schwörer 86b481b
%doc  %{_defaultdocdir}/bout++/
David Schwörer 86b481b
%endif
David Schwörer 86b481b
David Schwörer 86b481b
#
David Schwörer 86b481b
#           CHANGELOG
David Schwörer 86b481b
#
David Schwörer 86b481b
David Schwörer 86b481b
%changelog
David Schwörer 05b0fec
* Wed Dec 11 2019 David Schwörer <schword2mail.dcu.ie> - 4.3.0-2
David Schwörer 05b0fec
- update make.config during install
David Schwörer 05b0fec
David Schwörer 86b481b
* Thu Dec 05 2019 David Schwörer <schword2mail.dcu.ie> - 4.3.0-1
David Schwörer 86b481b
- update to 4.3.0
David Schwörer 86b481b
- add common subpackage for lang files
David Schwörer 86b481b
David Schwörer 86b481b
* Fri Aug 23 2019 David Schwörer <schword2mail.dcu.ie> - 4.2.2-1
David Schwörer 86b481b
- Remove ldconfig scriptlets
David Schwörer 86b481b
- Use mpi scriplets
David Schwörer 86b481b
- Ensure sitelib packages do not match arched mpi packages
David Schwörer 86b481b
- Move commons package to the base packages
David Schwörer 86b481b
- Specify so version
David Schwörer 86b481b
- Drop man page for library
David Schwörer 86b481b
David Schwörer 86b481b
* Fri Mar 01 2019 David Schwörer <schword2mail.dcu.ie> - 4.2.2-0
David Schwörer 86b481b
- Update to version 4.2.2
David Schwörer 86b481b
David Schwörer 86b481b
* Thu Feb 07 2019 David Schwörer <schword2mail.dcu.ie> - 4.2.1-0
David Schwörer 86b481b
- Fix license
David Schwörer 86b481b
- Bump to 4.2.1
David Schwörer 86b481b
- Use new release
David Schwörer 86b481b
- Release contains gtest, so we can run make check
David Schwörer 86b481b
David Schwörer 86b481b
* Tue Dec 04 2018 David Schwörer <schword2mail.dcu.ie> - 4.2.0-3
David Schwörer 86b481b
- Fix recommend
David Schwörer 86b481b
David Schwörer 86b481b
* Thu Oct 18 2018 David Schwörer <schword2mail.dcu.ie> - 4.2.0-2
David Schwörer 86b481b
- Update to 4.2.0
David Schwörer 86b481b
- Remove python2 support
David Schwörer 86b481b
- Add boutcore support
David Schwörer 86b481b
- Fix mangling of shebangs
David Schwörer 86b481b
David Schwörer 86b481b
* Tue Dec 12 2017 David Schwörer <schword2mail.dcu.ie> - 4.1.2-2
David Schwörer 86b481b
- Add missing python_provide macro
David Schwörer 86b481b
David Schwörer 86b481b
* Fri Dec 01 2017 David Schwörer <schword2mail.dcu.ie> - 4.1.2-1
David Schwörer 86b481b
- Update to new release, remove patch
David Schwörer 86b481b
David Schwörer 86b481b
* Tue May 02 2017 David Schwörer <schword2mail.dcu.ie> - 4.1.1-1
David Schwörer 86b481b
- Initial RPM release.