# We build the python bit separately - their build system doesn't let me build
# and install separately - everything is done at install time
# Doing it ourselves also tells us exactly what's going on, and ensures that
# all flags are respected - we can also build the python2 and python3 bits
# separately.
# We do not build the developer documentation with doxygen. Advanced developers
# that develop based on the source git tree can build it themselves
# Switch them off if you want
%global with_mpich 1
%global with_openmpi 1
%global with_py2 0
%global run_tests 0
Name: nest
Version: 2.16.0
%global gittag v%{version}
Release: 2%{?dist}
Summary: The neural simulation tool
License: GPLv2+
URL: http://www.nest-simulator.org/
Source0: https://github.com/%{name}/%{name}-simulator/archive/%{gittag}/%{name}-%{version}.tar.gz
Source1: README-Fedora.md
# 2.16 does not support 32 bit architectures
# https://github.com/nest/nest-simulator/issues/1031
# https://bugzilla.redhat.com/show_bug.cgi?id=1636573
ExcludeArch: i686
ExcludeArch: armv7hl
# Let it build and install the cythonised shared object
# But we still build our python modules ourselves
Patch0: %{name}-0000-disable-python-build-install.patch
# the helpindex must be generated after the help files have been installed to
# the install location, so we do this manually because the script doesn't
# respect rpmbuildroot and so on
Patch1: %{name}-0001-disable-helpindex-update.patch
BuildRequires: ncurses-devel
BuildRequires: gsl-devel
BuildRequires: readline-devel
%if %{with_py2}
BuildRequires: python2-devel
BuildRequires: python2-Cython
BuildRequires: python2-nose
%endif
BuildRequires: python3-devel
BuildRequires: python3-Cython
BuildRequires: python3-nose
BuildRequires: libtool-ltdl-devel
BuildRequires: cmake
BuildRequires: libtool
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: gcc-c++
Requires: %{name}-common
%global _description \
NEST is a simulator for spiking neural network models that focuses on the \
dynamics, size and structure of neural systems rather than on the exact \
morphology of individual neurons. The development of NEST is coordinated by the \
NEST Initiative. NEST is ideal for networks of spiking neurons of any size, \
for example: Models of information processing e.g. in the visual or auditory \
cortex of mammals; Models of network activity dynamics, e.g. laminar cortical \
networks or balanced random networks; Models of learning and plasticity. \
Please read the README-Fedora.md file provided in each package for information on \
how these NEST packages are to be used. \
\
Documentation is available separately in the nest-doc package.
%description
%{_description}
%package common
BuildArch: noarch
Summary: Common files for %{name}
%description common
%{_description}
%package headers
BuildArch: noarch
Summary: Header files for %{name}
%description headers
%{_description}
%package doc
BuildArch: noarch
Summary: Documentation for %{name}
%description doc
%{_description}
%if %{with_py2}
%package -n python2-%{name}
Summary: Python2 bindings for nest
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
Requires: %{py2_dist numpy} %{py2_dist scipy} %{py2_dist matplotlib} %{py2_dist ipython}
%{?python_provide:%python_provide python2-%{name}}
%description -n python2-%{name}
%{_description}
%endif
%package -n python3-%{name}
Summary: Python3 bindings for nest
Requires: %{name} = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
Requires: %{py3_dist numpy} %{py3_dist scipy} %{py3_dist matplotlib} %{py3_dist ipython}
%{?python_provide:%python_provide python3-%{name}}
%description -n python3-%{name}
%{_description}
%if %{with_openmpi}
%package openmpi
Summary: %{name} built with openmpi
BuildRequires: openmpi-devel
BuildRequires: rpm-mpi-hooks
Requires: openmpi
Requires: %{name}-openmpi-common = %{version}-%{release}
%description openmpi
%{_description}
%package openmpi-common
Summary: Common files for %{name} built with openmpi support
%description openmpi-common
%{_description}
%package openmpi-headers
Summary: Header files for %{name} built with openmpi support
%description openmpi-headers
%{_description}
%if %{with_py2}
%package -n python2-%{name}-openmpi
Summary: Python2 bindings for nest with openmpi support
BuildRequires: rpm-mpi-hooks
Requires: openmpi
Requires: %{name}-openmpi = %{version}-%{release}
Requires: %{name}-openmpi-common = %{version}-%{release}
Requires: %{py2_dist numpy} %{py2_dist scipy} %{py2_dist matplotlib} %{py2_dist ipython}
%{?python_provide:%python_provide python2-%{name}-openmpi}
%description -n python2-%{name}-openmpi
%{_description}
%endif
%package -n python3-%{name}-openmpi
Summary: Python3 bindings for nest with openmpi support
BuildRequires: rpm-mpi-hooks
Requires: openmpi
Requires: %{name}-openmpi = %{version}-%{release}
Requires: %{name}-openmpi-common = %{version}-%{release}
Requires: %{py3_dist numpy} %{py3_dist scipy} %{py3_dist matplotlib} %{py3_dist ipython}
%{?python_provide:%python_provide python3-%{name}-openmpi}
%description -n python3-%{name}-openmpi
%{_description}
%endif
%if %{with_mpich}
%package mpich
Summary: %{name} built with mpich
BuildRequires: mpich-devel
BuildRequires: rpm-mpi-hooks
Requires: mpich
Requires: %{name}-mpich-common = %{version}-%{release}
%description mpich
%{_description}
%package mpich-common
Summary: Common files for %{name} built with mpich support
%description mpich-common
%{_description}
%package mpich-headers
Summary: Header files for %{name} built with mpich support
%description mpich-headers
%{_description}
%if %{with_py2}
%package -n python2-%{name}-mpich
Summary: Python2 bindings for nest with mpich support
BuildRequires: rpm-mpi-hooks
Requires: %{name}-mpich = %{version}-%{release}
Requires: %{name}-mpich-common = %{version}-%{release}
Requires: mpich
Requires: %{py2_dist numpy} %{py2_dist scipy} %{py2_dist matplotlib} %{py2_dist ipython}
%{?python_provide:%python_provide python2-%{name}-mpich}
%description -n python2-%{name}-mpich
%{_description}
%endif
%package -n python3-%{name}-mpich
Summary: Python3 bindings for nest with mpich support
BuildRequires: rpm-mpi-hooks
Requires: %{name}-mpich = %{version}-%{release}
Requires: %{name}-mpich-common = %{version}-%{release}
Requires: mpich
Requires: %{py3_dist numpy} %{py3_dist scipy} %{py3_dist matplotlib} %{py3_dist ipython}
%{?python_provide:%python_provide python3-%{name}-mpich}
%description -n python3-%{name}-mpich
%{_description}
%endif
%prep
%autosetup -n %{name}-simulator-%{version} -p1
cp %{SOURCE1} ./ -v
# We'll set it ourselves - easier for mpi implementations
sed -i.orig '/PYEXECDIR/ d' cmake/ProcessOptions.cmake
# These files are all in standard locations so we don't need them
# Loading an MPI module sets up PATH correctly
sed -i '/PATH=/ d' extras/nest_vars.sh.in
# Set the correct PYTHONPATH using nest_vars.sh
# loading an MPI module DOES NOT seem to set the python path
sed -i 's|NEST_PYTHON_PREFIX=$NEST_INSTALL_DIR/@PYEXECDIR@|NEST_PYTHON_PREFIX=@PYEXECDIR@|' extras/nest_vars.sh.in
cd ../
# py3 build directories do not have a suffix, py2 ones have -py2
cp -a %{name}-simulator-%{version} %{name}-simulator-%{version}-py2
# Generate docs in the py3 builds, not in the py2 builds.
sed -i '/add_subdirectory.*doc/ d' %{name}-simulator-%{version}-py2/CMakeLists.txt
sed -i '/add_subdirectory.*examples/ d' %{name}-simulator-%{version}-py2/CMakeLists.txt
sed -i '/add_subdirectory.*testsuite/ d' %{name}-simulator-%{version}-py2/CMakeLists.txt
# Correct shebangs for python2
find %{name}-simulator-%{version}-py2/ -name "*.py" -exec sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' '{}' \;
# Correct shebangs for py3
find %{name}-simulator-%{version}/ -name "*.py" -exec sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python3|' '{}' \;
%if %{with_mpich}
%if %{with_py2}
cp -a %{name}-simulator-%{version}-py2 %{name}-simulator-%{version}-mpich-py2
%endif
cp -a %{name}-simulator-%{version} %{name}-simulator-%{version}-mpich
# Already removed for py2 versions, but remove them for mpi variants too
# Don't generate docs for each build
sed -i '/add_subdirectory.*doc/ d' %{name}-simulator-%{version}-mpich/CMakeLists.txt
# Don't install examples and extras for each
sed -i '/add_subdirectory.*examples/ d' %{name}-simulator-%{version}-mpich/CMakeLists.txt
# Don't install tests in docdir either
sed -i '/add_subdirectory.*testsuite/ d' %{name}-simulator-%{version}-mpich/CMakeLists.txt
%endif
%if %{with_openmpi}
%if %{with_py2}
cp -a %{name}-simulator-%{version}-py2 %{name}-simulator-%{version}-openmpi-py2
%endif
cp -a %{name}-simulator-%{version} %{name}-simulator-%{version}-openmpi
# Already removed for py2 versions, but remove them for mpi variants too
# Don't generate docs for these
sed -i '/add_subdirectory.*doc/ d' %{name}-simulator-%{version}-openmpi/CMakeLists.txt
# Don't install examples and extras for each
sed -i '/add_subdirectory.*examples/ d' %{name}-simulator-%{version}-openmpi/CMakeLists.txt
# Don't install tests in docdir either
sed -i '/add_subdirectory.*testsuite/ d' %{name}-simulator-%{version}-openmpi/CMakeLists.txt
%endif
%build
cd ../
%global do_cmake_config \
echo \
echo "*** BUILDING %{name}-simulator-%{version}$MPI_COMPILE_TYPE ***" \
echo \
export PYEXECDIR=$MPI_SITEARCH \
export PYNEST_CFLAGS="%{optflags}" \
export PYNEST_CXXFLAGS="%{optflags}" \
export CFLAGS="%{optflags}" \
export CXXFLAGS="%{optflags}" \
export LDFLAGS="${LDFLAGS:--Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld}" \
pushd %{name}-simulator-%{version}$MPI_COMPILE_TYPE && \
cmake \\\
-DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
-DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\
-DLIB_INSTALL_DIR:PATH=%{_libdir} \\\
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\
-DCMAKE_SKIP_RPATH:BOOL=ON \\\
-Dwith-mpi:BOOL=$MPI_YES \\\
-Dwith-gsl:BOOL=ON \\\
-Dwith-python:STRING=$PYTHON_VERSION \\\
-DPYEXECDIR:PATH=$MPI_SITEARCH \\\
-DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \\\
-DBUILD_SHARED_LIBS:BOOL=ON \\\
%if "%{_lib}" == "lib64" \
-DLIB_SUFFIX=64 && \
%else \
-DLIB_SUFFIX="" && \
%endif \
popd || exit -1;
%global do_make_build \
make %{?_smp_mflags} -C %{name}-simulator-%{version}$MPI_COMPILE_TYPE || exit -1
%global do_pybuild \
pushd %{name}-simulator-%{version}$MPI_COMPILE_TYPE && \
pushd pynest && \
CFLAGS="%{optflags}" $PYTHON_BIN setup.py build \
popd && \
pushd topology && \
CFLAGS="%{optflags}" $PYTHON_BIN setup.py build \
popd && \
pushd extras/ConnPlotter && \
CFLAGS="%{optflags}" $PYTHON_BIN setup.py build \
popd && \
popd || exit -1;
# Build serial version, dummy arguments
export MPI_PYTHON2_SITEARCH="%{python2_sitearch}"
export MPI_PYTHON3_SITEARCH="%{python3_sitearch}"
export MPI_COMPILER=serial
export MPI_SUFFIX=""
export MPI_HOME=%{_prefix}
export MPI_BIN=%{_bindir}
export MPI_YES=OFF
# Python 3
export MPI_COMPILE_TYPE=""
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-py2"
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
%endif
# Build mpich version
%if %{with_mpich}
%{_mpich_load}
export CC=mpicc
export CXX=mpicxx
export FC=mpif90
export F77=mpif77
export MPI_YES=ON
# Python 3
export MPI_COMPILE_TYPE="-mpich"
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-mpich-py2"
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
%endif
%{_mpich_unload}
%endif
# Build OpenMPI version
%if %{with_openmpi}
%{_openmpi_load}
export CC=mpicc
export CXX=mpicxx
export FC=mpif90
export F77=mpif77
export MPI_YES=ON
# Python 3
export MPI_COMPILE_TYPE="-openmpi"
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-openmpi-py2"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
%{do_cmake_config}
%{do_make_build}
%{do_pybuild}
%endif
%{_openmpi_unload}
%endif
%install
cd ../
# Install everything
%global do_install \
echo \
echo "*** INSTALLING %{name}-simulator-%{version}$MPI_COMPILE_TYPE ***" \
echo \
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" CPPROG="cp -p" -C %{name}-simulator-%{version}$MPI_COMPILE_TYPE || exit -1
# Only install the pynestkernel
%global do_pynestkernel_install \
pushd %{name}-simulator-%{version}$MPI_COMPILE_TYPE && \
pushd pynest && \
install -m 0755 -p -D -t $RPM_BUILD_ROOT/$MPI_SITEARCH/%{name} pynestkernel.so \
popd && \
popd || exit -1;
# Install the other python bits
%global do_pyinstall \
pushd %{name}-simulator-%{version}$MPI_COMPILE_TYPE && \
pushd pynest && \
$PYTHON_BIN setup.py install --skip-build --root $RPM_BUILD_ROOT --install-lib=$MPI_SITEARCH && \
popd && \
pushd topology && \
$PYTHON_BIN setup.py install --skip-build --root $RPM_BUILD_ROOT --install-lib=$MPI_SITEARCH && \
popd && \
pushd extras/ConnPlotter && \
$PYTHON_BIN setup.py install --skip-build --root $RPM_BUILD_ROOT && \
popd && \
popd || exit -1;
# install serial version
export MPI_SUFFIX=""
export MPI_HOME=%{_prefix}
export MPI_BIN=%{_bindir}
export MPI_YES=OFF
# Python 3
export MPI_COMPILE_TYPE=""
export MPI_SITEARCH="%{python3_sitearch}"
export PYTHON_BIN="%{__python3}"
%{do_install}
%{do_pyinstall}
# Update the helpindex manually
# Should this go in %%post of the doc package maybe?
pushd %{name}-simulator-%{version}/extras/help_generator
%{__python3} -B generate_helpindex.py $RPM_BUILD_ROOT/%{_docdir}/%{name}/
popd
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-py2"
export MPI_SITEARCH="%{python2_sitearch}"
export PYTHON_BIN="%{__python2}"
export MPI_COMPILER=serial
%{do_pynestkernel_install}
%{do_pyinstall}
%endif
# Install MPICH version
%if %{with_mpich}
%{_mpich_load}
# Python 3
export MPI_COMPILE_TYPE="-mpich"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
export PYTHON_BIN="%{__python3}"
%{do_install}
%{do_pyinstall}
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-mpich-py2"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
export PYTHON_BIN="%{__python2}"
%{do_pynestkernel_install}
%{do_pyinstall}
%endif
# Remove duplicated docs
rm -rf $RPM_BUILD_ROOT/%{_libdir}/mpich/share/doc/%{name}
# Correct doc location
sed -i 's|NEST_DOC_DIR=$NEST_INSTALL_DIR/share/doc/nest|NEST_DOC_DIR=/usr/share/doc/nest/|' $RPM_BUILD_ROOT/$MPI_BIN/nest_vars.sh
# Remove unneeded scripts
rm -rf $RPM_BUILD_ROOT/%{_libdir}/mpich/share/%{name}/{extras,help_generator}
# Place in correct mpi libdir
%if %{_lib} == lib64
mv -v $RPM_BUILD_ROOT/%{_libdir}/mpich/lib64 $RPM_BUILD_ROOT/$MPI_LIB/
%endif
%{_mpich_unload}
%endif
# Install OpenMPI version
%if %{with_openmpi}
%{_openmpi_load}
# Python 3
export MPI_COMPILE_TYPE="-openmpi"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
export PYTHON_BIN="%{__python3}"
%{do_install}
%{do_pyinstall}
# Python 2
%if %{with_py2}
export MPI_COMPILE_TYPE="-openmpi-py2"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
export PYTHON_BIN="%{__python2}"
%{do_pynestkernel_install}
%{do_pyinstall}
%endif
# Remove duplicated docs
rm -rf $RPM_BUILD_ROOT/%{_libdir}/openmpi/share/doc/%{name}
# Correct doc location
sed -i 's|NEST_DOC_DIR=$NEST_INSTALL_DIR/share/doc/nest|NEST_DOC_DIR=/usr/share/doc/nest/|' $RPM_BUILD_ROOT/$MPI_BIN/nest_vars.sh
# Remove duplicated scripts
rm -rf $RPM_BUILD_ROOT/%{_libdir}/openmpi/share/%{name}/{extras,help_generator}
%if %{_lib} == lib64
mv -v $RPM_BUILD_ROOT/%{_libdir}/openmpi/lib64 $RPM_BUILD_ROOT/$MPI_LIB/
%endif
%{_openmpi_unload}
%endif
%if %{run_tests}
%check
cd ../
%global do_tests \
echo \
echo "*** TESTING %{name}-simulator-%{version}$MPI_COMPILE_TYPE ***" \
echo \
source $RPM_BUILD_ROOT/$NEST_BINDIR/nest_vars.sh \
export NEST_DOC_DIR=$RPM_BUILD_ROOT/$NEST_DOC_DIR
export NEST_DATA_DIR=$RPM_BUILD_ROOT/$NEST_DATA_DIR
PATH=$RPM_BUILD_ROOT/$NEST_BINDIR/:$PATH $RPM_BUILD_ROOT/$NEST_DATA_DIR/extras/do_tests.sh --source-dir=SKIP \
nosetests $NEST_PYTHONDIR/nest/tests $NEST_PYTHONDIR/nest/topology/tests
# No sli suite here, since we didn't build it for py3
%global do_tests_3 \
echo \
echo "*** TESTING %{name}-simulator-%{version}$MPI_COMPILE_TYPE ***" \
echo \
nosetests-3 $NEST_PYTHONDIR/nest/tests $NEST_PYTHONDIR/nest/topology/tests
# override MPI_BIN
export MPI_COMPILE_TYPE="-py2"
export NEST_BINDIR="%{_bindir}"
%if %{with_py2}
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
export NEST_PYTHONDIR=%{python2_sitearch}
%{do_tests}
%endif
export MPI_COMPILE_TYPE=""
export NEST_BINDIR="%{_bindir}"
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
export NEST_PYTHONDIR=%{python3_sitearch}
%{do_tests_3}
# Test mpich version
%if %{with_mpich}
%{_mpich_load}
export MPI_COMPILE_TYPE="-mpich-py2"
export NEST_BINDIR=$MPI_BIN
# Python 2
%if %{with_py2}
export NEST_PYTHONDIR=$MPI_PYTHON2_SITEARCH
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
%{do_tests}
%endif
# Python 3
export MPI_COMPILE_TYPE="-mpich"
export NEST_BINDIR=$MPI_BIN
export NEST_PYTHONDIR=$MPI_PYTHON3_SITEARCH
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
%{do_tests_3}
%{_mpich_unload}
%endif
# Test OpenMPI version
%if %{with_openmpi}
%{_openmpi_load}
export MPI_COMPILE_TYPE="-openmpi-py2"
export MPI_SITEARCH=$MPI_PYTHON2_SITEARCH
# Python 2
%if %{with_py2}
export PYTHON_VERSION="2"
export PYTHON_BIN="%{__python2}"
%{do_tests}
%endif
# Python 3
export MPI_COMPILE_TYPE="-openmpi"
export PYTHON_VERSION="3"
export PYTHON_BIN="%{__python3}"
export MPI_SITEARCH=$MPI_PYTHON3_SITEARCH
%{do_tests_3}
%{_openmpi_unload}
%endif
%endif
%files
%license LICENSE
%doc README-Fedora.md
%{_bindir}/%{name}
%{_bindir}/sli
%{_bindir}/%{name}_vars.sh
%{_bindir}/%{name}-config
%{_bindir}/%{name}_serial
%{_bindir}/%{name}_indirect
%{_libdir}/*.so
%files common
%{_datadir}/%{name}
%files headers
%{_includedir}/%{name}
%files doc
%doc %{_pkgdocdir}
%if %{with_py2}
%files -n python2-%{name}
%{python2_sitearch}/%{name}
%{python2_sitearch}/PyNEST-%{version}-py2.?.egg-info
%{python2_sitearch}/Topology-%{version}-py2.?.egg-info
%{python2_sitelib}/ConnPlotter
%{python2_sitelib}/ConnPlotter-0.7a-py2.?.egg-info
%endif
%files -n python3-%{name}
%{python3_sitearch}/%{name}
%{python3_sitearch}/PyNEST-%{version}-py3.?.egg-info
%{python3_sitearch}/Topology-%{version}-py3.?.egg-info
%{python3_sitelib}/ConnPlotter
%{python3_sitelib}/ConnPlotter-0.7a-py3.?.egg-info
%if %{with_mpich}
%files mpich
%license LICENSE
%doc README-Fedora.md
%{_libdir}/mpich/bin/%{name}
%{_libdir}/mpich/bin/%{name}_vars.sh
%{_libdir}/mpich/bin/%{name}-config
%{_libdir}/mpich/bin/%{name}_serial
%{_libdir}/mpich/bin/%{name}_indirect
%{_libdir}/mpich/bin/sli
%{_libdir}/mpich/lib/
%files mpich-common
%{_libdir}/mpich/share/%{name}
%files mpich-headers
%{_libdir}/mpich/include/%{name}
%if %{with_py2}
%files -n python2-%{name}-mpich
%license LICENSE
%{python2_sitearch}/mpich/%{name}
%{python2_sitearch}/mpich/PyNEST-%{version}-py2.?.egg-info
%{python2_sitearch}/mpich/Topology-%{version}-py2.?.egg-info
%endif
%files -n python3-%{name}-mpich
%license LICENSE
%{python3_sitearch}/mpich/%{name}
%{python3_sitearch}/mpich/PyNEST-%{version}-py3.?.egg-info
%{python3_sitearch}/mpich/Topology-%{version}-py3.?.egg-info
%endif
%if %{with_openmpi}
%files openmpi
%license LICENSE
%doc README-Fedora.md
%{_libdir}/openmpi/bin/%{name}
%{_libdir}/openmpi/bin/%{name}_vars.sh
%{_libdir}/openmpi/bin/%{name}-config
%{_libdir}/openmpi/bin/%{name}_serial
%{_libdir}/openmpi/bin/%{name}_indirect
%{_libdir}/openmpi/bin/sli
%{_libdir}/openmpi/lib/
%files openmpi-common
%{_libdir}/openmpi/share/%{name}
%files openmpi-headers
%{_libdir}/openmpi/include/%{name}
%if %{with_py2}
%files -n python2-%{name}-openmpi
%license LICENSE
%{python2_sitearch}/openmpi/%{name}
%{python2_sitearch}/openmpi/PyNEST-%{version}-py2.?.egg-info
%{python2_sitearch}/openmpi/Topology-%{version}-py2.?.egg-info
%endif
%files -n python3-%{name}-openmpi
%license LICENSE
%{python3_sitearch}/openmpi/%{name}
%{python3_sitearch}/openmpi/PyNEST-%{version}-py3.?.egg-info
%{python3_sitearch}/openmpi/Topology-%{version}-py3.?.egg-info
%endif
%changelog
* Thu Oct 18 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.16.0-2
- Make py3 default build
- Disable py2 build
- Use README file instead of creating it in the spec.
- Correct NEST_DOC_DIR to point to correct doc files for all variants (#1639678)
* Fri Oct 05 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.16.0-1
- Exclude 32 bit architectures: https://github.com/nest/nest-simulator/issues/1031
- Use python version specific shebangs
- Update to latest upstream release
- Place headers in separate packages
* Fri Jul 27 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.14.0-4
- Improve readme
- Disable tests for the time being while I check builds
* Thu Jul 26 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.14.0-3
- Enable tests
- Use autosetup
- Improve description
- Improve make usage
* Tue Jul 24 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.14.0-2
- Enable mpi builds
- Do not make mpi packages noarch, since MPI_HOME is arch dependent
- Do not remove nest config files---the environment variables are used by programs
* Sun Jun 24 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.14.0-1
- Update to latest release
- remove developer docs
- fix build
- improve commands
* Mon Apr 25 2016 Ankur Sinha <ankursinha AT fedoraproject DOT org> 2.10.0-22.git79b2f01
- Update to latest commit - test tammioppen changes
* Mon Apr 25 2016 Ankur Sinha <ankursinha AT fedoraproject DOT org> 2.10.0-21.git58fcecb
- Update to latest commit