2020-08-04 15:50:32 +00:00
|
|
|
%global __cmake_in_source_build 1
|
2019-10-22 20:40:38 +00:00
|
|
|
Name: dolfin
|
|
|
|
Version: 2019.1.0.post0
|
|
|
|
%global fenics_version 2019.1
|
2022-01-20 10:30:49 +00:00
|
|
|
Release: %autorelease
|
2019-10-22 20:40:38 +00:00
|
|
|
Summary: FEniCS computational backend and problem solving environment
|
|
|
|
|
|
|
|
License: LGPLv3+
|
|
|
|
URL: https://fenicsproject.org/
|
|
|
|
Source0: https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-%{version}.tar.gz
|
|
|
|
Source1: https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-%{version}.tar.gz.asc
|
|
|
|
Source2: 3083BE4C722232E28AD0828CBED06106DD22BAB3.gpg
|
|
|
|
|
2022-01-30 08:46:32 +00:00
|
|
|
Patch: 0001-pkgconfig-drop-irrelevant-part-from-Libs-and-Cflags.patch
|
2023-01-24 09:46:38 +00:00
|
|
|
Patch: 0001-Add-missing-include-for-compatiblity-with-gcc-13.patch
|
2022-01-30 08:46:32 +00:00
|
|
|
|
2021-07-13 18:42:28 +00:00
|
|
|
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
|
2020-08-27 17:24:51 +00:00
|
|
|
%global blaslib flexiblas
|
2021-07-13 18:42:28 +00:00
|
|
|
%global cmake_blas_flags -DBLA_VENDOR=FlexiBLAS
|
2020-08-27 17:24:51 +00:00
|
|
|
%else
|
|
|
|
%global blaslib openblas
|
2021-07-13 18:42:28 +00:00
|
|
|
%global blasvar o
|
|
|
|
%global cmake_blas_flags -DBLAS_LIBRARIES=%{_libdir}/lib%{blaslib}%{blasvar}.so
|
2020-08-27 17:24:51 +00:00
|
|
|
%endif
|
|
|
|
|
2023-02-03 21:07:00 +00:00
|
|
|
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
|
|
|
ExcludeArch: %{ix86}
|
|
|
|
|
2019-10-22 20:40:38 +00:00
|
|
|
BuildRequires: gcc-c++
|
|
|
|
BuildRequires: gnupg2
|
|
|
|
BuildRequires: cmake
|
|
|
|
BuildRequires: boost-devel
|
|
|
|
BuildRequires: eigen3-devel
|
|
|
|
BuildRequires: petsc-devel
|
|
|
|
BuildRequires: sundials-devel
|
|
|
|
BuildRequires: scotch-devel
|
|
|
|
# ptscotch-mpich-devel?
|
2020-08-27 17:24:51 +00:00
|
|
|
BuildRequires: %{blaslib}-devel
|
2019-10-22 20:40:38 +00:00
|
|
|
BuildRequires: hdf5-devel
|
|
|
|
# hdf5-mpich-devel?
|
|
|
|
BuildRequires: zlib-devel
|
|
|
|
BuildRequires: python3-devel
|
2020-06-23 17:54:44 +00:00
|
|
|
BuildRequires: python3-setuptools
|
2019-10-22 20:40:38 +00:00
|
|
|
BuildRequires: pybind11-devel
|
|
|
|
BuildRequires: python3dist(numpy)
|
|
|
|
BuildRequires: python3dist(fenics-ffc) >= %{fenics_version}
|
|
|
|
BuildRequires: python3dist(fenics-ufl) >= %{fenics_version}
|
|
|
|
BuildRequires: python3dist(fenics-dijitso) >= %{fenics_version}
|
|
|
|
# go cmake go
|
|
|
|
BuildRequires: chrpath
|
2023-01-24 09:46:38 +00:00
|
|
|
BuildRequires: make
|
2019-10-22 20:40:38 +00:00
|
|
|
|
|
|
|
# check-buildroot flags the python .so, but it should be fine after rpath removal.
|
|
|
|
# It seems that the original path to the library is stored in some comment.
|
|
|
|
%global __arch_install_post /usr/lib/rpm/check-buildroot || :
|
|
|
|
|
|
|
|
#BuildRequires: mpich-devel
|
|
|
|
#BuildRequires: openmpi-devel
|
|
|
|
|
|
|
|
%global _description %{expand:
|
|
|
|
DOLFIN is the computational backend of FEniCS and implements the
|
|
|
|
FEniCS Problem Solving Environment.}
|
|
|
|
|
|
|
|
%description %_description
|
|
|
|
|
|
|
|
%package devel
|
|
|
|
Summary: Development files for %{name}
|
|
|
|
Requires: %{name} = %{version}-%{release}%{?isa}
|
|
|
|
|
|
|
|
%description devel
|
|
|
|
%{summary}.
|
|
|
|
|
|
|
|
%package -n python3-dolfin
|
|
|
|
Summary: Python wrapper for the FEniCS dolfin environment
|
|
|
|
# The jit compiles and links to the dolfin library
|
|
|
|
Requires: %{name}-devel = %{version}-%{release}%{?isa}
|
|
|
|
%{?python_provide:%python_provide python3-dolfin}
|
|
|
|
|
|
|
|
%description -n python3-dolfin %_description
|
|
|
|
|
|
|
|
%package doc
|
|
|
|
Summary: Documentation and demos for %{name}
|
|
|
|
BuildArch: noarch
|
|
|
|
|
|
|
|
%description doc
|
|
|
|
%{summary}.
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%{?gpgverify:%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'}
|
|
|
|
|
2022-01-30 08:46:32 +00:00
|
|
|
%autosetup -p1
|
2019-10-22 20:40:38 +00:00
|
|
|
|
|
|
|
# Let's just specify an exact version of a dependency, yay!
|
|
|
|
sed -i -r 's|pybind11==|pybind11>=|' python/setup.py
|
|
|
|
|
|
|
|
cat >>python/CMakeLists.txt <<EOF
|
|
|
|
set(CMAKE_CXX_FLAGS "\${CMAKE_CXX_FLAGS} -I$PWD")
|
|
|
|
EOF
|
|
|
|
|
2020-06-03 06:30:50 +00:00
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1843103
|
|
|
|
sed -r -i 's/#include </#include <algorithm>\n\0/' \
|
|
|
|
dolfin/geometry/IntersectionConstruction.cpp \
|
|
|
|
dolfin/mesh/MeshFunction.h
|
|
|
|
|
|
|
|
sed -r -i 's|boost/detail/endian.hpp|boost/endian/arithmetic.hpp|' \
|
|
|
|
dolfin/io/VTKFile.cpp \
|
|
|
|
dolfin/io/VTKWriter.cpp
|
|
|
|
|
2019-10-22 20:40:38 +00:00
|
|
|
%build
|
|
|
|
# %%_mpich_load
|
|
|
|
mkdir -p build && cd build
|
2021-11-22 02:34:42 +00:00
|
|
|
CFLAGS="%{optflags} -Wno-unused-variable -DH5_USE_110_API" CXXFLAGS="%{optflags} -DH5_USE_110_API" %cmake .. \
|
2021-07-13 18:42:28 +00:00
|
|
|
%{cmake_blas_flags} \
|
2020-08-27 17:24:51 +00:00
|
|
|
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=off
|
2019-10-22 20:40:38 +00:00
|
|
|
%make_build
|
|
|
|
|
|
|
|
# "temporary install" so the python build can find the stuff it needs
|
|
|
|
%make_install
|
|
|
|
|
|
|
|
cd ../python
|
|
|
|
VERBOSE=1 CMAKE_PREFIX_PATH=%{buildroot}/usr/share/dolfin/cmake CMAKE_SKIP_INSTALL_RPATH=yes CMAKE_SKIP_RPATH=yes %py3_build
|
|
|
|
|
|
|
|
%install
|
|
|
|
cd build
|
|
|
|
%make_install
|
|
|
|
|
|
|
|
cd ../python
|
|
|
|
VERBOSE=1 CMAKE_PREFIX_PATH=%{buildroot}/usr/share/dolfin/cmake CMAKE_SKIP_INSTALL_RPATH=yes CMAKE_SKIP_RPATH=yes %py3_install
|
|
|
|
|
|
|
|
sed -r -i '1 {s|#!/usr/bin/env python.*|#!%{__python3}|}' \
|
|
|
|
%{buildroot}/usr/bin/dolfin-order \
|
|
|
|
%{buildroot}/usr/bin/dolfin-plot \
|
|
|
|
%{buildroot}/usr/bin/dolfin-convert
|
|
|
|
|
|
|
|
# this file is just pointless
|
|
|
|
rm %{buildroot}/usr/share/dolfin/dolfin.conf
|
|
|
|
|
|
|
|
# there's even an option for this, except it seems to have no effect
|
|
|
|
chrpath %{buildroot}%{python3_sitearch}/dolfin/*.so
|
|
|
|
chrpath --delete %{buildroot}%{python3_sitearch}/dolfin/*.so
|
|
|
|
|
|
|
|
%check
|
|
|
|
ctest -V %{?_smp_mflags}
|
|
|
|
|
|
|
|
%files
|
|
|
|
%license COPYING COPYING.LESSER AUTHORS
|
|
|
|
%doc README.rst
|
|
|
|
/usr/bin/dolfin-version
|
|
|
|
/usr/bin/fenics-version
|
|
|
|
%{_libdir}/libdolfin.so.%{fenics_version}
|
|
|
|
%{_libdir}/libdolfin.so.%{fenics_version}.*
|
|
|
|
%dir /usr/share/dolfin
|
|
|
|
%dir /usr/share/dolfin/data
|
|
|
|
/usr/share/dolfin/data/README
|
|
|
|
|
|
|
|
%files devel
|
|
|
|
/usr/include/dolfin.h
|
|
|
|
/usr/include/dolfin/
|
|
|
|
%{_libdir}/libdolfin.so
|
|
|
|
%{_libdir}/pkgconfig/dolfin.pc
|
|
|
|
/usr/share/dolfin/cmake/
|
|
|
|
|
|
|
|
%files doc
|
|
|
|
/usr/bin/dolfin-get-demos
|
|
|
|
/usr/share/dolfin/demo/
|
|
|
|
|
|
|
|
%files -n python3-dolfin
|
|
|
|
/usr/bin/dolfin-convert
|
|
|
|
/usr/bin/dolfin-order
|
|
|
|
/usr/bin/dolfin-plot
|
|
|
|
%{python3_sitearch}/dolfin/
|
|
|
|
%{python3_sitearch}/dolfin_utils/
|
|
|
|
%{python3_sitearch}/fenics/
|
|
|
|
%{python3_sitearch}/fenics_dolfin-%{fenics_version}*-py%{python3_version}.egg-info/
|
|
|
|
|
|
|
|
%changelog
|
2022-01-20 10:30:49 +00:00
|
|
|
%autochangelog
|