churchyard / rpms / smoldyn

Forked from rpms/smoldyn 2 years ago
Clone
00ff2c8
# Smoldyn provides the SFMT-1.3.3 (SIMD-oriented Fast Mersenne Twister) source code;
00ff2c8
# currently unavailable on Fedora.
00ff2c8
# http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html
00ff2c8
00ff2c8
%global with_libs 0
00ff2c8
00ff2c8
# VTK support?
00ff2c8
# See https://github.com/ssandrews/Smoldyn-official/issues/3
00ff2c8
%global with_vtk 0
00ff2c8
00ff2c8
Name:  smoldyn
00ff2c8
Summary: A particle-based spatial stochastic simulator
00ff2c8
Version: 2.58
00ff2c8
Release: 1%{?dist}
00ff2c8
00ff2c8
# The rxnparam.c and SurfaceParam.c source code files are in the public domain.
00ff2c8
#
00ff2c8
# The Next Subvolume module is Copyright 2012 by Martin Robinson and is distributed
00ff2c8
# under the Gnu LGPL license.
00ff2c8
#
00ff2c8
# The rest of the code is Copyright 2003-2018 by Steven Andrews and also
00ff2c8
# distributed under the Gnu LGPL.
00ff2c8
#
00ff2c8
# source/lib/SFMT is licensed under the 'BSD 3-clause "New" or "Revised" License'
00ff2c8
License: LGPLv3+ and Public Domain and BSD
00ff2c8
URL:   http://www.smoldyn.org
7c0dc02
Source0: %{url}/%{name}-%{version}.zip
00ff2c8
00ff2c8
# Fix library paths according to the Fedora Project guidelines
00ff2c8
Patch0: %{name}-fix_libpaths.patch
00ff2c8
00ff2c8
BuildRequires: boost-devel
00ff2c8
BuildRequires: cmake3
00ff2c8
BuildRequires: gcc
00ff2c8
BuildRequires: %{?dts}gcc-c++
00ff2c8
%if 0%{?rhel} == 7
00ff2c8
BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel
00ff2c8
# Coming on epel7
00ff2c8
#BuildRequires: boost169-devel
00ff2c8
%endif
00ff2c8
BuildRequires: freeglut-devel
00ff2c8
BuildRequires: libXmu-devel
00ff2c8
BuildRequires: libXi-devel
00ff2c8
BuildRequires: libtiff-devel
00ff2c8
BuildRequires: libglvnd-devel
4f8d76a
BuildRequires: perl-macros
00ff2c8
%if %{?with_vtk}
00ff2c8
BuildRequires: vtk-devel
00ff2c8
%endif
00ff2c8
BuildRequires: zlib-devel
00ff2c8
00ff2c8
Requires: bionetgen-perl
00ff2c8
00ff2c8
Provides: bundled(SFMT) = 1.3.3 
00ff2c8
00ff2c8
%description
00ff2c8
Smoldyn is a computer program for cell-scale biochemical simulations.
00ff2c8
It simulates each molecule of interest individually to capture natural
00ff2c8
stochasticity and to yield nanometer-scale spatial resolution.
00ff2c8
It treats other molecules implicitly, enabling it to simulate hundreds
00ff2c8
of thousands of molecules over several minutes of real time.
00ff2c8
00ff2c8
Simulated molecules diffuse, react, are confined by surfaces,
00ff2c8
and bind to membranes much as they would in a real biological system.
00ff2c8
00ff2c8
It is more accurate and faster than other particle-based simulators.
00ff2c8
Smoldyn's unique features include: a "virtual experimenter" who can
00ff2c8
manipulate or measure the simulated system, support for spatial compartments,
00ff2c8
molecules with excluded volume, and simulations in 1, 2, or 3 dimensions. 
00ff2c8
00ff2c8
%if %{?with_libs}
00ff2c8
%package devel
00ff2c8
Summary: %{name} devel files 
00ff2c8
Requires: %{name}%{?_isa} = %{version}-%{release}
00ff2c8
Provides: %{name}-static = %{version}-%{release}
00ff2c8
%description devel
00ff2c8
This package provides the %{name} examples, header files and private libraries.
00ff2c8
%endif
00ff2c8
00ff2c8
%package doc
00ff2c8
Summary: %{name} PDF documentation
00ff2c8
Requires: %{name} = %{version}-%{release}
00ff2c8
BuildArch: noarch
00ff2c8
%description doc
00ff2c8
%{name} PDF documentation.
00ff2c8
00ff2c8
%prep
00ff2c8
%setup -q -n %{name}-%{version}
00ff2c8
%patch0 -p0 -b .fix_libpaths
00ff2c8
00ff2c8
# Copy license file
00ff2c8
mv source/lib/SFMT/LICENSE.txt source/lib/SFMT/SFMT-LICENSE.txt
00ff2c8
mv source/lib/SFMT/README.txt source/lib/SFMT/SFMT-README.txt
00ff2c8
00ff2c8
# Remove pre-built archives
00ff2c8
rm -rf Linux
00ff2c8
00ff2c8
# Remove bundled libraries
00ff2c8
rm -rf source/BioNetGen source/MinGWlibs Toolchain-mingw32.cmake
00ff2c8
rm -rf source/vcell/* source/NextSubVolume/Eigen
00ff2c8
rm -rf source/NextSubVolume/boost_include
00ff2c8
%if !%{?with_vtk}
00ff2c8
rm -f source/vtk/*
00ff2c8
%endif
00ff2c8
00ff2c8
#Fix permissions
00ff2c8
find . -type f -name "*.h" -exec chmod 0644 '{}' \;
00ff2c8
find . -type f -name "*.c" -exec chmod 0644 '{}' \;
00ff2c8
find . -type f -name "*.pdf" -exec chmod 0644 '{}' \;
00ff2c8
find . -type f -name "*.txt" -exec chmod 0644 '{}' \;
00ff2c8
find . -type f -name "*.txt" -exec sed -i 's/\r$//' '{}' \;
00ff2c8
00ff2c8
# Set system path to BNG2.pl
00ff2c8
sed -e 's|../../../source/BioNetGen/BNG2.pl|%{perl_vendorlib}/BioNetGen/BNG2.pl|g' -i examples/S95_regression/lrmsim.txt \
00ff2c8
 examples/S12_bionetgen/lrm/lrmsim.txt \
00ff2c8
 examples/S12_bionetgen/abba/abbasim.txt \
00ff2c8
 examples/S94_archive/Andrews_2016/BioNetGen/lrm/lrmsim.txt \
00ff2c8
 examples/S94_archive/Andrews_2016/BioNetGen/abba/abbasim.txt
00ff2c8
00ff2c8
%build
00ff2c8
mkdir -p build && pushd build
00ff2c8
%if 0%{?rhel} == 7
00ff2c8
. /opt/rh/devtoolset-7/enable
00ff2c8
%endif
00ff2c8
%cmake3 -Wno-dev \
00ff2c8
 -DCPACK_BINARY_STGZ:BOOL=OFF \
00ff2c8
 -DCPACK_BINARY_TGZ:BOOL=OFF \
00ff2c8
 -DCPACK_BINARY_TZ:BOOL=OFF \
00ff2c8
 -DCPACK_SOURCE_TBZ2:BOOL=OFF \
00ff2c8
 -DCPACK_SOURCE_TGZ:BOOL=OFF \
00ff2c8
 -DCPACK_SOURCE_TXZ:BOOL=OFF \
00ff2c8
 -DCPACK_SOURCE_TZ:BOOL=OFF \
00ff2c8
 -DOPTION_VCELL:BOOL=OFF \
00ff2c8
%if %{?with_vtk}
00ff2c8
 -DOPTION_VTK:BOOL=ON \
00ff2c8
%else
00ff2c8
 -DOPTION_VTK:BOOL=OFF \
00ff2c8
%endif
00ff2c8
%if %{?with_libs}
00ff2c8
 -DOPTION_TARGET_LIBSMOLDYN:BOOL=ON \
00ff2c8
%else
00ff2c8
 -DOPTION_TARGET_LIBSMOLDYN:BOOL=OFF \
00ff2c8
%endif
00ff2c8
 -DOPTION_USE_ZLIB:BOOL=ON \
00ff2c8
 -DOPTION_PDE:BOOL=ON \
00ff2c8
 -DPERL_VENDORLIB:PATH=%{perl_vendorlib} \
00ff2c8
 -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \
00ff2c8
 -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
00ff2c8
 -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DCMAKE_COLOR_MAKEFILE:BOOL=ON \
00ff2c8
 -DCMAKE_SKIP_RPATH:BOOL=YES ..
00ff2c8
%make_build V=1
00ff2c8
popd
00ff2c8
00ff2c8
%install
00ff2c8
%make_install -C build
00ff2c8
00ff2c8
%files
00ff2c8
%doc source/lib/SFMT/SFMT-README.txt
00ff2c8
%license License.txt source/lib/SFMT/SFMT-LICENSE.txt
00ff2c8
%{_bindir}/%{name}
00ff2c8
00ff2c8
%if %{?with_libs}
00ff2c8
%files devel
00ff2c8
%doc examples
00ff2c8
%{_includedir}/%{name}/
00ff2c8
%{_libdir}/%{name}/
00ff2c8
%endif
00ff2c8
00ff2c8
%files doc
00ff2c8
%doc documentation/*
00ff2c8
00ff2c8
%changelog
00ff2c8
* Fri Mar 29 2019 Antonio Trande <sagitter@fedoraproject.org> - 2.58-1
00ff2c8
- Release 2.58
00ff2c8
00ff2c8
* Sun Feb 03 2019 Antonio Trande <sagitter@fedoraproject.org> - 2.56-1
00ff2c8
- First package
00ff2c8
- Unbundle zlib, boost and BioNetGen
00ff2c8
- Remove unused header files
00ff2c8
- Fix file permissions
00ff2c8
- Add License file provided by upstream