%global __requires_exclude libR|libf77blas|devel\\( # fix weird i586 only link error in fem/configure when checking for mpi # /usr/bin/ld: /home/pcpa/rpm/BUILD/elmer-6.0.5452/mathlibs/src/parpack/libparpack.a(pdmout.o)(.debug_info+0x50f): unresolvable R_386_32 relocation against symbol `mpi_fortran_argv_null_' %define _disable_ld_as_needed 1 # svn trunk %define svnsnapshot 6359 %define unpack_dir %{name}-%{version}-%{svnsnapshot} %define mpi_inc_dir %{multiarch_includedir} -I%{_includedir} %define eio_incs -I%{_builddir}/%{unpack_dir}/eio/include %define eioc_libs -L%{_builddir}/%{unpack_dir}/eio/src -leioc %define eiof_libs -L%{_builddir}/%{unpack_dir}/eio/src -leiof %define huti_incs -I%{_builddir}/%{unpack_dir}/hutiter/src %define huti_libs -L%{_builddir}/%{unpack_dir}/hutiter/src -lhuti %define matc_incs -I%{_builddir}/%{unpack_dir}/matc/src %define matc_libs -L%{_builddir}/%{unpack_dir}/matc/src -lmatc -lm #define lapack_libs -L%{_builddir}/%{unpack_dir}/mathlibs/src/lapack -llapack #define arpack_libs -L%{_builddir}/%{unpack_dir}/mathlibs/src/arpack -larpack # The mpi libraries come from "pkg-config --libs ompi-f90" %define parpack_libs -L%{_builddir}/%{unpack_dir}/mathlibs/src/parpack -lparpack -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi %define elmerparam_incs -I%{_builddir}/%{unpack_dir}/elmerparam/src %define elmerparam_libs -L%{_builddir}/%{unpack_dir}/elmerparam/src -lelmerparam %define modules matc mathlibs elmergrid meshgen2d eio hutiter fem post elmerparam front %define ELMER_HOME %{_datadir}/%{name} %define ELMERGUI_HOME %{ELMER_HOME}/bin %define ELMER_POST_HOME %{ELMER_HOME} Name: elmer Group: Sciences/Physics License: GPL Summary: Open Source Finite Element Software for Multiphysical Problems Version: 7.0 Release: %mkrel -c svn%{svnsnapshot} 7 URL: http://www.csc.fi/english/pages/elmer # svn co svn checkout svn://svn.code.sf.net/p/elmerfem/code/trunk elmerfem # mv elmerfem elmer-%{unpack_dir} # rm -fr elmer-%{unpack_dir}/.svn # tar Jcf elmer-%{unpack_dir}.tar.xz elmer-%{unpack_dir} Source0: elmer-%{version}-%{svnsnapshot}.tar.xz Source1: ftp://ftp.funet.fi/index/elmer/doc/ElmerTutorials.pdf #----------------------------------------------------------------------- BuildRequires: R-base BuildRequires: suitesparse-devel BuildRequires: ffmpeg-devel BuildRequires: ftgl-devel BuildRequires: gcc-gfortran BuildRequires: libatlas-devel BuildRequires: arpack-devel BuildRequires: parpack-devel BuildRequires: libglu-devel BuildRequires: libqwt-devel BuildRequires: libqwtplot3d-devel BuildRequires: opencascade-devel BuildRequires: openmpi-devel BuildRequires: python-qt4 BuildRequires: qt4-devel BuildRequires: readline-devel BuildRequires: tcl-devel BuildRequires: tk-devel BuildRequires: vtk-devel >= 6.0 BuildRequires: python-devel BuildRequires: lapack-devel Requires: libatlas Requires: R-base #----------------------------------------------------------------------- Patch0: elmer-6.0-tcl8.6.patch Patch1: elmer-6.0-install.patch Patch2: elmer-6.0-check-argv.patch Patch3: elmer-6.0-qt4.patch Patch4: elmer-6.0-format.patch Patch5: elmer-6.0-env.patch Patch6: elmer-6.0-qstring.patch Patch7: elmer-6.0-elmerclips.patch Patch8: elmer-7.0-contig.patch Patch9: elmer-7.0-mga-codec-fix.patch Patch10: elmer-7.0-mga-vtk.patch Patch11: elmer-7.0-mga-rfix.patch #----------------------------------------------------------------------- %description Elmer is an open source multiphysical simulation software developed by CSC. Elmer development was started 1995 in collaboration with Finnish Universities, research institutes and industry. Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by partial differential equations which Elmer solves by the Finite Element Method (FEM). #------------------------------------------------------------------------ %prep %setup -q -n %{unpack_dir} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 # Overwrite the installed version with the more complete one cp -f fem/src/SOLVER.KEYWORDS front/src/lib/SOLVER.KEYWORDS sed -i -e s/CodecID/AVCodecID/g utils/ElmerClips/src/encoder.cpp #------------------------------------------------------------------------ %build export ELMER_HOME=%{ELMER_HOME} export ELMERGUI_HOME=%{ELMERGUI_HOME} export ELMER_POST_HOME=%{ELMER_POST_HOME} export CC=gcc; export CXX=g++; export FC=gfortran; export F77=gfortran # elmerparam doesn't use --with-matc perl -pi \ -e 's|-L\@prefix\@/lib -lmatc|%{matc_libs}|;' \ elmerparam/src/Makefile.in perl -pi \ -e 's|^SUBDIRS = .*|SUBDIRS = parpack|;' \ mathlibs/src/Makefile.in for m in %{modules}; do pushd $m %configure2_5x \ --prefix=%{ELMER_HOME} \ --with-mpi \ --with-mpidir=%{_prefix} \ --with-mpi-lib-dir=%{_libdir} \ --with-mpi-inc-dir="%{mpi_inc_dir}" \ --with-blas='-L%{_libdir}/atlas -lf77blas' \ --with-lapack='-L%{_libdir} -llapack' \ --with-tcltk='-L%{_libdir} -ltcl -ltk' \ --with-huti='%{huti_libs}' \ --with-eioc='%{eioc_libs}' \ --with-eiof='%{eiof_libs}' \ --with-arpack='%{arpack_libs}' \ --with-parpack='%{parpack_libs}' \ --with-matc='%{matc_libs}' \ --with-stdcxxlib='-lstdc++' FFLAGS=`echo $FFLAGS | sed -e 's|-Wformat ||' -e 's|-Werror=format-security ||'` if [ x$m = "xfem" ]; then FFLAGS="$FFLAGS -frepack-arrays" perl -pi -e 's|\bCONTIG\b||;' src/*.src fi make \ CXXFLAGS='%{eio_incs} %{huti_incs} %{matc_incs} -fPIC' \ CFLAGS='%{eio_incs} %{huti_incs} %{matc_incs} -fPIC' \ FFLAGS="$FFLAGS -fopenmp -fPIC -I%{mpi_inc_dir}" \ FCPPFLAGS='-P -traditional-cpp -I. %{huti_incs} -DFULL_INDUCTION -DUSE_ARPACK' \ STDCXX_LIBS="-lstdc++" popd done pushd ElmerGUI perl -pi \ -e 's|VTK_LIBPATH\s*=\s*/usr/lib\b|VTK_LIBPATH = /usr/lib/vtk|;' \ ElmerGUI.pri echo "DEFINES += vtkRenderingCore_AUTOINIT=4\\\(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL\\\)" >> ElmerGUI.pri echo "DEFINES += vtkRenderingVolume_AUTOINIT=1\\\(vtkRenderingVolumeOpenGL\\\)" >> ElmerGUI.pri %ifarch x86_64 ppc64 perl -pi \ -e 's|/usr/lib\b|%{_libdir}|;' \ -e 's|(BITS =) 32|$1 64|;' \ ElmerGUI.pri %endif CXXFLAGS=-fPIC \ qmake %make Application/Makefile perl -pi \ -e 's|-Wl,--as-needed||;' \ Application/Makefile make popd pushd ElmerGUIlogger qmake -project qmake %make popd pushd ElmerGUItester qmake %make popd pushd misc/tetgen_plugin qmake %make popd pushd utils/ElmerClips qmake %make popd #------------------------------------------------------------------------ %install export ELMER_HOME=%{ELMER_HOME} export ELMERGUI_HOME=%{ELMERGUI_HOME} export ELMER_POST_HOME=%{ELMER_POST_HOME} mkdir -p %{buildroot}%{ELMER_HOME}/{bin,lib,include} %{buildroot}%{_libdir}/R perl -pi \ -e 's|\$\(DESTDIR\)\$\(DESTDIR\)|\$\(DESTDIR\)|g;' \ elmerparam/src/R/Makefile perl -pi \ -e 's|(PKG_CPPFLAGS = ).*|$1%{elmerparam_incs}|;' \ -e 's|(PKG_LIBS = ).*|$1%{elmerparam_libs} %{matc_libs}|;' \ elmerparam/src/R/elmerparam/src/Makevars perl -pi \ -e 's|/usr/local/|%{_prefix}/|g;' \ ElmerGUI/Application/Makefile export CC=gcc; export CXX=g++; export FC=gfortran; export F77=gfortran for m in %{modules} ElmerGUI ElmerGUIlogger ElmerGUItester misc/tetgen_plugin utils/ElmerClips; do pushd $m %makeinstall_std INSTALL_ROOT=%{buildroot} popd done # cannot disable build of these rm -f %{buildroot}%{_libdir}/lib{blas,lapack}.a mv -f %{buildroot}%{_bindir}/* %{buildroot}%{ELMERGUI_HOME} cp -far ElmerGUI/Application/ElmerGUI ElmerGUIlogger/ElmerGUIlogger ElmerGUItester/ElmerGUItester %{buildroot}%{ELMERGUI_HOME} cp -far ElmerGUI/Application/edf-extra %{buildroot}%{ELMERGUI_HOME} for script in ElmerGUI ElmerGUIlogger ElmerGUItester; do cat > %{buildroot}%{_bindir}/$script << EOF #!/bin/sh export ELMER_HOME=%{ELMER_HOME} export ELMERGUI_HOME=%{ELMERGUI_HOME} export ELMER_POST_HOME=%{ELMER_POST_HOME} export PATH=%{ELMERGUI_HOME}:\$PATH export LD_LIBRARY_PATH=%{ELMER_HOME}/lib:\$LD_LIBRARY_PATH %{ELMER_HOME}/bin/$script "\$@" EOF chmod +x %{buildroot}%{_bindir}/$script done ln -sf %{_bindir}/ElmerGUI %{buildroot}%{_bindir}/%{name} cp -far ElmerGUI/{samples,scripts} %{buildroot}%{ELMER_HOME} mkdir -p %{buildroot}%{_docdir}/%{name} cp -f %{SOURCE1} %{buildroot}%{_docdir}/%{name} #------------------------------------------------------------------------ %files %{_bindir}/* %{_includedir}/*.h %{_includedir}/*.mod %dir %{_includedir}/elmer %{_includedir}/elmer/*.h %{_libdir}/*.a %{_libdir}/R %dir %{ELMER_HOME} %{ELMER_HOME}/* %doc %{_docdir}/%name %changelog * Wed Oct 15 2014 umeabot <umeabot> 7.0-0.svn6359.7.mga5 + Revision: 745876 - Second Mageia 5 Mass Rebuild * Tue Sep 16 2014 umeabot <umeabot> 7.0-0.svn6359.6.mga5 + Revision: 678989 - Mageia 5 Mass Rebuild + tv <tv> - use %%global for req/prov exclude - autoconvert to new prov/req excludes * Wed Sep 10 2014 danf <danf> 7.0-0.svn6359.5.mga5 + Revision: 674583 - Added new library names from openmpi + daviddavid <daviddavid> - rebuild for new openmpi * Mon Feb 17 2014 fwang <fwang> 7.0-0.svn6359.4.mga5 + Revision: 593562 - rebuild for new oce * Tue Dec 10 2013 joequant <joequant> 7.0-0.svn6359.3.mga4 + Revision: 556147 - add rfix - try a single threaded make - change dep to suitesparse-devel + umeabot <umeabot> - Mageia 4 Mass Rebuild * Wed Oct 09 2013 joequant <joequant> 7.0-0.svn6359.1.mga4 + Revision: 494110 - bump up rev num - upgrade to vtk 6.0 * Wed Oct 09 2013 joequant <joequant> 7.0-0.svn6359.mga4 + Revision: 493854 - upgrade version and convert to vtk 6.0 * Tue Jul 30 2013 joequant <joequant> 7.0-0.svn6279.mga4 + Revision: 461225 - use single thread make to deal with fortran deps - fix spec defines - update to 6279 - upgrade to rev 6279 - upgrade to svn 6035 - clean spec - imported package elmer * Sat Nov 19 2011 Paulo Andrade <pcpa@mandriva.com.br> 6.0.5452-1 + Revision: 731698 - Hack build to put multiarch includes before other includes. - Update to a newer svn snapshot. - Rebuild with updated libraries. - Add elmer tutorial to documentation. + Funda Wang <fwang@mandriva.org> - rebuild for py 2.7 * Mon Sep 13 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-4mdv2011.0 + Revision: 578116 + rebuild (emptylog) * Tue Aug 24 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-2mdv2011.0 + Revision: 572511 + rebuild (emptylog) * Mon Aug 23 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-1mdv2011.0 + Revision: 572090 - Update to svn snapshot 4579 * Sat Jul 31 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-7mdv2011.0 + Revision: 563835 + rebuild (emptylog) * Wed Mar 03 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-6mdv2010.1 + Revision: 513747 + rebuild (emptylog) * Tue Mar 02 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-5mdv2010.1 + Revision: 513623 + rebuild (emptylog) * Mon Mar 01 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-4mdv2010.1 + Revision: 513117 + rebuild (emptylog) * Fri Feb 26 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-3mdv2010.1 + Revision: 512038 + rebuild (emptylog) * Fri Feb 26 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-2mdv2010.1 + Revision: 511400 - Add libf77blas.so to _requires_exception and libatlas3 to requires * Mon Feb 22 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-1mdv2010.1 + Revision: 509859 - Import elmer 5.4.x (svn revision 4353) - elmer