[freefem++] update to 3.26-2
Dominik Mierzejewski
rathann at fedoraproject.org
Fri Nov 29 06:48:20 UTC 2013
commit a1691f50d2e33a617e9f81347a0055b08d92914f
Author: Dominik Mierzejewski <rpm at greysector.net>
Date: Fri Nov 29 07:47:54 2013 +0100
update to 3.26-2
- build with proper multi-MPI support
- build with gmm support
- WIP mumps/metis/scotch support (disabled for now)
- add missing tex dependencies
- drop obsolete patches
- explicitly disable all unavailable dependencies
- drop devel subpackage
- drop obsolete specfile constructs
.gitignore | 1 +
freefem++-compile.patch | 52 +++++++---
freefem++-gcc47.patch | 11 --
freefem++-name.patch | 12 --
freefem++-rpm.patch | 200 ++++++++++++++----------------------
freefem++-tex.patch | 12 --
freefem++.spec | 255 +++++++++++++++++++++++++----------------------
sources | 2 +-
8 files changed, 255 insertions(+), 290 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 3dbc954..6d6047b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/freefem++-3.12.tar.gz
/freefem++-3.19-1.tar.gz
+/freefem++-3.26-2.tar.gz
diff --git a/freefem++-compile.patch b/freefem++-compile.patch
index f044f14..20ae30b 100644
--- a/freefem++-compile.patch
+++ b/freefem++-compile.patch
@@ -1,19 +1,41 @@
-diff -up freefem++-3.12/src/medit/Makefile.am.compile freefem++-3.12/src/medit/Makefile.am
---- freefem++-3.12/src/medit/Makefile.am.compile 2011-02-27 18:35:25.000000000 +0100
-+++ freefem++-3.12/src/medit/Makefile.am 2011-02-27 18:36:11.000000000 +0100
-@@ -23,15 +23,5 @@ BUILT_SOURCES=compil.date
+diff -up freefem++-3.26-1/src/medit/Makefile.am.compile freefem++-3.26-1/src/medit/Makefile.am
+--- freefem++-3.26-1/src/medit/Makefile.am.compile 2013-11-24 17:26:43.961506161 +0100
++++ freefem++-3.26-1/src/medit/Makefile.am 2013-11-24 17:29:26.415992293 +0100
+@@ -4,35 +4,17 @@
+ CXXLD=$(STATICTOOL) $(CXX)
+
+ bin_PROGRAMS=$(MEDITPROG)
+-EXTRA_DIST=picking.c
+ EXTRA_PROGRAMS=ffmedit
+ ffmedit_SOURCES= animat.c cube.c image.c listnum.c mouse.c persp.c stream.c zaldy2.c bbfile.c dlists.c inmsh2.c \
+ material.c normal.c tiles.c camera.c ellipse.c inout.c medit.c param.c psfile.c transform.c cenrad.c geometry.c \
+ inout_morice.c menus.c parsar.c scene.c util.c clip.c gisfil.c inout_popenbinaire.c mesh.c parsop.c scissor.c vector.c \
+ clipvol.c hash.c items.c mlists.c particle.c sftcpy.c view.c critip.c ilists.c keyboard.c morphing.c path.c status.c \
+-zaldy1.c chrono.h extern.h image.h mesh.h eigenv.h grafic.h medit.h sproto.h
++zaldy1.c chrono.h extern.h image.h mesh.h eigenv.h grafic.h medit.h sproto.h picking.c
+
+
+-LDADD=picking.$(OBJEXT) ../libMesh/libMesh.a $(LIBSGLUT) -lm
++LDADD=../libMesh/libMesh.a $(LIBSGLUT) -lm
+ AM_CPPFLAGS=-I$(srcdir)/../libMesh
+ BUILT_SOURCES=compil.date
compil.date: $(ffmedit_SOURCES)
echo "#define COMPIL " '"' `date` '(with ff++ $(VERSION))''"' > compil.date
#.PHONY: compil.date
--all-local: pinking.no-opt$(MEDITPROG)
-
--pinking.no-optffmedit$(EXEEXT):picking.c
-- rm picking.$(OBJEXT)
-- $(MAKE) picking.o $(MEDITPROG) CFLAGS="$(CNOFLAGS)"
-- touch pinking.no-optffmedit$(EXEEXT)
--pinking.no-opt:picking.c
-- touch pinking.no-opt
--clean-local:
-- -rm pinking.no-opt pinking.no-optffmedit$(EXEEXT)
-
-
+-# ALH - during a parallel make, we should make sure that picking.o is not used before being made by a different
+-# thread. If I understand things correctly, picking.c should not be compiled with the regular CFLAGS options.
+-
+-ffmedit_DEPENDENCIES=picking.$(OBJEXT)
+-picking.$(OBJEXT):picking.c
+- ${CC} -c $< $(CNOFLAGS) -o $@
+-
+-###pinking.no-optffmedit$(EXEEXT):picking.c
+-### rm picking.$(OBJEXT)
+-### $(MAKE) picking.o $(MEDITPROG) CFLAGS="$(CNOFLAGS)"
+-### touch pinking.no-optffmedit$(EXEEXT)
+-###pinking.no-opt:picking.c
+-### touch pinking.no-opt
+-###clean-local:
+-### -rm pinking.no-opt pinking.no-optffmedit$(EXEEXT)
+-
diff --git a/freefem++-rpm.patch b/freefem++-rpm.patch
index 8cd23b5..dbfc8e3 100644
--- a/freefem++-rpm.patch
+++ b/freefem++-rpm.patch
@@ -1,118 +1,74 @@
-diff -up freefem++-3.13-3/configure.ac.r freefem++-3.13-3/configure.ac
---- freefem++-3.13-3/configure.ac.r 2011-06-30 11:14:34.000000000 +0200
-+++ freefem++-3.13-3/configure.ac 2011-07-13 21:59:28.000000000 +0200
-@@ -427,7 +427,7 @@ AC_DEFINE_UNQUOTED(VersionFreeFempp,$ff_
+diff -up freefem++-3.26-2/configure.ac.r freefem++-3.26-2/configure.ac
+--- freefem++-3.26-2/configure.ac.r 2013-11-28 11:07:42.000000000 +0100
++++ freefem++-3.26-2/configure.ac 2013-11-28 19:37:25.135561522 +0100
+@@ -486,7 +486,7 @@ AC_DEFINE_UNQUOTED(VersionFreeFempp,$ff_
# date is only useful for config-version.h
test "$prefix" = NONE && prefix="$ac_default_prefix"
--ff_prefix_dir="${prefix}/lib/ff++/$VERSION"
-+ff_prefix_dir="${libdir}/freefem++"
+-ff_prefix_dir="${prefix}/lib/ff++/$VERSION"
++ff_prefix_dir="${libdir}/ff++"
AC_MSG_CHECKING(prefix dir freefem++ )
- AC_MSG_RESULT($ff_prefix_dir)
-
-@@ -1528,7 +1528,7 @@ then
- AC_CHECK_LIB(umfpack,umf_i_malloc,
- ff_umfpack_libs=" -lumfpack $ff_umfpack_libs"
- ff_umfpack_ok=yes,,$ff_umfpack_libs)
-- if test "$ff_umfpack_ok" != yes -o "$ff_umfpack_header" != yes ; then
-+ if test "$ff_umfpack_ok" = yes -a "$ff_umfpack_header" != yes ; then
- AC_MSG_WARN([ Sorry we find UMFPACK lib but not the include umfpack.h file])
- fi
- fi
-diff -up freefem++-3.13-3/examples++-3d/Makefile.am.r freefem++-3.13-3/examples++-3d/Makefile.am
---- freefem++-3.13-3/examples++-3d/Makefile.am.r 2010-10-06 16:42:30.000000000 +0200
-+++ freefem++-3.13-3/examples++-3d/Makefile.am 2011-07-13 21:59:28.000000000 +0200
-@@ -33,8 +33,8 @@ freefem++.pref:
- echo loadpath += \"./\" >>freefem++.pref
-
- install-exec-local::
-- $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/idp
-- $(INSTALL) -m 555 $(LIST_IDP) $(DESTDIR)$(ff_prefix_dir)/idp
-+ $(mkinstalldirs) -m 755 $(DESTDIR)$(datadir)/freefem++/idp
-+ $(INSTALL) -m 555 $(LIST_IDP) $(DESTDIR)$(datadir)/freefem++/idp
-
-
-
-diff -up freefem++-3.13-3/examples++-load/load.link.in.r freefem++-3.13-3/examples++-load/load.link.in
---- freefem++-3.13-3/examples++-load/load.link.in.r 2011-04-18 11:53:56.000000000 +0200
-+++ freefem++-3.13-3/examples++-load/load.link.in 2011-07-13 22:03:23.000000000 +0200
-@@ -13,13 +13,13 @@ if [ -z "$CXX" ] ; then CXX='@CXX@' ; fi
- if [ -z "$MPICXX" ] ; then MPICXX="@MPICXX@" ; fi
- if [ -z "$MPI_LIB" ] ; then MPI_LIB="@MPI_LIB@" ; fi
- if [ -z "$F77" ] ; then F77="@F77@" ; fi
--if [ "$CXX" = '@'CXX'@' ] ; then CXX=""; fi
--if [ "$MPICXX" = '@'MPICXX'@' ] ; then MPICXX=""; fi
--if [ "$F77" = '@'F77'@' ] ; then F77=""; fi
--if [ "$FFCXXFLAGS" = '@'CXXFLAGS'@' ] ; then FFCXXFLAGS=""; fi
--if [ "$FFFFLAGS" = '@'FFLAGS'@' ] ; then FFFFLAGS=""; fi
--if [ "$FFFLIBS" = '@'FLIBS'@' ] ; then FFFLIBS=""; fi
--if [ "$FFVERSION" = '@'VERSION'@' ] ; then FFVERSION=""; fi
-+if [ "$CXX" = '@CXX@' ] ; then CXX=""; fi
-+if [ "$MPICXX" = '@MPICXX@' ] ; then MPICXX=""; fi
-+if [ "$F77" = '@F77@' ] ; then F77=""; fi
-+if [ "$FFCXXFLAGS" = '@CXXFLAGS@' ] ; then FFCXXFLAGS=""; fi
-+if [ "$FFFFLAGS" = '@FFLAGS@' ] ; then FFFFLAGS=""; fi
-+if [ "$FFFLIBS" = '@FLIBS@' ] ; then FFFLIBS=""; fi
-+if [ "$FFVERSION" = '@VERSION@' ] ; then FFVERSION=""; fi
- if [ -z "$INCFF" ] ; then
- if [ -f "@INCFF@/ff++.hpp" ] ; then
- INCFF="-I at INCFF@"
-@@ -29,8 +29,8 @@ if [ -z "$INCFF" ] ; then
- INCFF="-Iinclude"
- elif [ -f "FFAPPLI_INC/ff++.hpp" ] ; then
- INCFF="-IFFAPPLI_INC"
-- elif [ -f '@ff_prefix_dir@/include/ff++.hpp' ] ; then
-- INCFF='-I at ff_prefix_dir@/include'
-+ elif [ -f '@includedir@/freefem++/ff++.hpp' ] ; then
-+ INCFF='-I at includedir@/freefem++'
- else
- ff=`which freefem++.exe`;
- ffinc=`dirname "$ff"`/examples++-load/include
-diff -up freefem++-3.13-3/examples++-load/Makefile.am.r freefem++-3.13-3/examples++-load/Makefile.am
---- freefem++-3.13-3/examples++-load/Makefile.am.r 2011-05-25 10:34:03.000000000 +0200
-+++ freefem++-3.13-3/examples++-load/Makefile.am 2011-07-13 22:06:52.000000000 +0200
-@@ -107,7 +107,7 @@ all.edp:
- regtests.edp: regtests.m4 ../regtests.m4
- m4 -DASSERT regtests.m4 > regtests.edp
-
--$(LIST_COMPILE):ff-c++ include Makefile
-+$(LIST_COMPILE) $(LIST_COMPILE_PKG):ff-c++ include Makefile
-
- clean-local:
- -rm *.o load.link WHERE_LIBRARY-download ff-get-dep ff-c++ ff-pkg-download \
-@@ -134,19 +134,19 @@ FORCE: ;
- freefem++.pref:
- echo loadpath = \"./\" >freefem++.pref
- install-exec-local:: load_compile
-- $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib
-- $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-- $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/etc
-- $(INSTALL_DATA) clapack.h ppmimg.h bmo.hpp msh3.hpp pcm.hpp include/* $(DESTDIR)$(ff_prefix_dir)/include
-- $(INSTALL) -m 555 $(LIST_COMPILE) $(DESTDIR)$(ff_prefix_dir)/lib
-- echo loadpath += \"./\" >$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-- echo loadpath += \"$(ff_prefix_dir)/lib\" >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-- echo includepath += \"$(ff_prefix_dir)/idp\" >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-+ $(mkinstalldirs) -m 755 $(DESTDIR)$(libdir)/freefem++
-+ $(mkinstalldirs) -m 755 $(DESTDIR)$(includedir)/freefem++
-+ $(mkinstalldirs) -m 755 $(DESTDIR)$(sysconfdir)
-+ $(INSTALL_DATA) ppmimg.h bmo.hpp msh3.hpp pcm.hpp include/* $(DESTDIR)$(includedir)/freefem++
-+ $(INSTALL) -m 555 $(LIST_COMPILE) $(DESTDIR)$(libdir)/freefem++
-+ echo loadpath += \"./\" >$(DESTDIR)$(sysconfdir)/freefem++.pref
-+ echo loadpath += \"$(libdir)/freefem++\" >>$(DESTDIR)$(sysconfdir)/freefem++.pref
-+ echo includepath += \"$(ff_prefix_dir)/idp\" >>$(DESTDIR)$(sysconfdir)/freefem++.pref
- $(INSTALL_SCRIPT) ff-c++ $(DESTDIR)${bindir}
- $(INSTALL_SCRIPT) ff-pkg-download $(DESTDIR)${bindir}
- $(INSTALL_SCRIPT) ff-get-dep $(DESTDIR)${bindir}
- -for i in $(LIST_COMPILE_PKG); do \
-- if [ -f $$i ] ; then $(INSTALL) -m 555 $$i $(DESTDIR)$(ff_prefix_dir)/lib; fi; done
-+ if [ -f $$i ] ; then $(INSTALL) -m 755 $$i $(DESTDIR)$(libdir)/freefem++; fi; done
-
-
-
-diff -up freefem++-3.13-3/Makefile.am.r freefem++-3.13-3/Makefile.am
---- freefem++-3.13-3/Makefile.am.r 2011-02-09 21:01:58.000000000 +0100
-+++ freefem++-3.13-3/Makefile.am 2011-07-13 22:01:53.000000000 +0200
-@@ -35,7 +35,7 @@ examples++-3d/lac-leman-v4.msh \
+ AC_MSG_RESULT($ff_prefix_dir)
+
+@@ -873,6 +873,14 @@ then
+ AC_DEFINE(HAVE_TETGEN,1, tetgen is compute tetrahedralize volume of an enclosed surface)
+ fi
+
++# Looking for GMM
++AC_CHECK_HEADERS(gmm/gmm.h,ff_gmm_h=yes,ff_gmm_h=no)
++if test "$ff_gmm_h" = yes
++then
++ AC_FF_ADDWHERELIB(gmm,-DDUMMY,)
++ AC_DEFINE(HAVE_GMM,1,generic C++ template library for sparse, dense and skyline matrices)
++fi
++
+ # Looking for the BLAS
+ # --------------------
+
+@@ -1652,6 +1660,7 @@ TOOL_DISABLE(pipe,pipe.$DYLIB_SUFFIX)
+ TOOL_DISABLE(scotch,scotch.$DYLIB_SUFFIX)
+ TOOL_DISABLE(superlu,SuperLu.$DYLIB_SUFFIX)
+ TOOL_DISABLE(superludist,"complex_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX real_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX dSuperLU_DIST.$DYLIB_SUFFIX")
++TOOL_DISABLE(tetgen,tetgen.$DYLIB_SUFFIX)
+ TOOL_DISABLE(umfpack,UMFPACK64.$DYLIB_SUFFIX)
+ TOOL_DISABLE(yams,freeyams.$DYLIB_SUFFIX)
+ TOOL_DISABLE(pipe,pipe.$DYLIB_SUFFIX)
+@@ -1734,7 +1743,7 @@ test -n "$ff_mkl_scalapack" && ff_scalap
+ test -n "$ff_mkl_root" && ff_winc="$ff_mkl_root/include/mkl_blas.h"
+
+ m4_map([AC_FF_WHERELIB],[
+- [[mumps],[-ldmumps -lzmumps -lmumps_common -lpord],[dmumps_c.h],[]],
++ [[mumps],[-ldmumps -lzmumps -lmumps_common -lpord],[MUMPS/dmumps_c.h]],
+ [[mumps_ptscotch],[-lpord_ptscotch -lmumps_common_ptscotch -ldmumps_ptscotch -lzmumps_ptscotch -lpord_ptscotch],[dmumps_c.h]],
+ [[mumps_scotch],[-lpord_scotch -lmumps_common_scotch -ldmumps_scotch -lzmumps_scotch -lpord_scotch],[dmumps_c.h]],
+ [[hypre],[-lHYPRE]],
+@@ -1742,8 +1751,8 @@ m4_map([AC_FF_WHERELIB],[
+ [[superlu_dist],[-lsuperlu-dist],[/usr/include/superlu-dist/superlu_defs.h],[]],
+ [[superlu],[-lsuperlu],[/usr/include/superlu/superlu_enum_consts.h],[]],
+ [[Superlu4],[-lsuperlu4],[/usr/include/superlu4/superlu_enum_consts.h],[]],
+- [[blacs],[ -lblacsCinit$ff_with_mpi -lblacsF77init$ff_with_mpi -lblacs$ff_with_mpi],[]],
+- [[scalapack],[-lscalapack$ff_with_mpi],[]],
++ [[blacs],[-L${MPI_LIB} -lmpiblacsCinit -lmpiblacsF77init -lmpiblacs],[]],
++ [[scalapack],[-L${MPI_LIB} -llapack -lscalapack -lmpiblacsCinit -lmpiblacsF77init -lmpiblacs],[]],
+ [[scotch],[-lscotch -lscotcherr],[]],
+ [[ptscotch],[-lptscotch -lptscotcherr],[]],
+ [[metis],[-lscotch -lmetis],[/usr/include/metis/metis.h],[]],
+diff -up freefem++-3.26-2/examples++-load/Makefile.am.r freefem++-3.26-2/examples++-load/Makefile.am
+--- freefem++-3.26-2/examples++-load/Makefile.am.r 2013-11-20 21:39:10.000000000 +0100
++++ freefem++-3.26-2/examples++-load/Makefile.am 2013-11-28 19:29:53.499142575 +0100
+@@ -71,7 +71,7 @@ LIST_COMPILE=myfunction.$(DYLIB_SUFFIX)
+
+ # FFCS - some libraries are skipped because the corresponding tool is deactivated.
+
+-LIST_COMPILE_PKG=tetgen.$(DYLIB_SUFFIX) @TOOL_DYLIB_superlu@ dfft.$(DYLIB_SUFFIX) @TOOL_DYLIB_metis@ \
++LIST_COMPILE_PKG=@TOOL_DYLIB_tetgen@ @TOOL_DYLIB_superlu@ dfft.$(DYLIB_SUFFIX) @TOOL_DYLIB_metis@ \
+ @TOOL_DYLIB_umfpack@ NewSolver.$(DYLIB_SUFFIX) @TOOL_DYLIB_lapack@ @TOOL_DYLIB_fflapack@ \
+ ffnewuoa.$(DYLIB_SUFFIX) ilut.$(DYLIB_SUFFIX) @TOOL_DYLIB_yams@ @TOOL_DYLIB_mmg3d@ @TOOL_DYLIB_mshmet@ \
+ @TOOL_DYLIB_gsl@ @TOOL_DYLIB_mumps_seq@ @TOOL_DYLIB_ipopt@ @TOOL_DYLIB_nlopt@ ff-cmaes.$(DYLIB_SUFFIX) \
+diff -up freefem++-3.26-2/Makefile.am.r freefem++-3.26-2/Makefile.am
+--- freefem++-3.26-2/Makefile.am.r 2013-11-20 16:36:23.000000000 +0100
++++ freefem++-3.26-2/Makefile.am 2013-11-28 19:29:53.500142578 +0100
+@@ -36,7 +36,7 @@ examples++-3d/lac-leman-v4.msh \
examples++-load/load.link \
examples++-load/fig.pgm examples++-load/lg.pgm \
./examples++-mpi/regtests.sh ./examples++-other/speedtest.sh \
@@ -121,7 +77,7 @@ diff -up freefem++-3.13-3/Makefile.am.r freefem++-3.13-3/Makefile.am
examples++*/*.[ie]dp CheckAllEdp
-@@ -151,15 +151,15 @@ clean-local::
+@@ -158,15 +158,15 @@ clean-local::
# Native MacOS packaging
# ----------------------
install-exec-local::
@@ -140,18 +96,18 @@ diff -up freefem++-3.13-3/Makefile.am.r freefem++-3.13-3/Makefile.am
find . -name '*.[ei]dp' -o -name '*.h*' -o -name '*.cpp' -o -name '*.pgm' |egrep '[.]/examples++' >>$@
find . -name '*.h*' -o -name '*.cpp' |egrep '[.]/examples++' >>$@
List-agl-dylib: src/nw/FreeFem++
-diff -up freefem++-3.13-3/src/lglib/Makefile.am.r freefem++-3.13-3/src/lglib/Makefile.am
---- freefem++-3.13-3/src/lglib/Makefile.am.r 2010-06-16 14:33:50.000000000 +0200
-+++ freefem++-3.13-3/src/lglib/Makefile.am 2011-07-13 21:59:28.000000000 +0200
-@@ -9,9 +9,9 @@ INCLUDES=-I../fflib -I../bamglib -I../Gr
- BUILT_SOURCES=lg.tab.hpp lg.tab.cpp
+diff -up freefem++-3.26-2/src/lglib/Makefile.am.r freefem++-3.26-2/src/lglib/Makefile.am
+--- freefem++-3.26-2/src/lglib/Makefile.am.r 2013-11-02 10:19:55.000000000 +0100
++++ freefem++-3.26-2/src/lglib/Makefile.am 2013-11-28 19:29:53.500142578 +0100
+@@ -11,9 +11,9 @@ BUILT_SOURCES=lg.tab.hpp lg.tab.cpp
+ # machine (the danger is to generate unnecessary version conflicts) on these automatically generated files
- lg.tab.hpp lg.tab.cpp: lg.ypp
+ lg.tab.hpp lg.tab.cpp:
- -rm lg.tab.hpp lg.tab.cpp lg.tab.cpp.h
-+ -rm -f lg.tab.hpp lg.tab.cpp lg.tab.cpp.h
- bison -dtv -p lg $< -o lg.tab.cpp
++ rm -f lg.tab.hpp lg.tab.cpp lg.tab.cpp.h
+ bison -dtv -p lg lg.ypp -o lg.tab.cpp
- -mv lg.tab.cpp.h lg.tab.hpp # pour un pb entre des versions de bison
-+ -mv -f lg.tab.cpp.h lg.tab.hpp # pour un pb entre des versions de bison
++ mv -f lg.tab.cpp.h lg.tab.hpp # pour un pb entre des versions de bison
+
libfreefem++.dylib: lg.tab.o ../fflib/libff.a
g++ -bundle lg.tab.o ../fflib/libff.a $(UMFPACKLIB) $(ARPACKLIB) $(BLASLIB) $(LIBS) -o libfreefem++.dylib
- EXTRA_DIST=lg.ypp
diff --git a/freefem++.spec b/freefem++.spec
index f174db9..2cd4fe7 100644
--- a/freefem++.spec
+++ b/freefem++.spec
@@ -1,21 +1,16 @@
-%define dotpl .1
-%define dashpl -1
+%define dotpl .2
+%define dashpl -2
Summary: PDE solving tool
Name: freefem++
-Version: 3.19
-Release: 5%{dotpl}%{?dist}
+Version: 3.26
+Release: 1%{dotpl}%{?dist}
URL: http://www.freefem.org/ff++/index.htm
-Group: Applications/Engineering
Source0: http://www.freefem.org/ff++/ftp/%{name}-%{version}%{dashpl}.tar.gz
Source1: FreeFem++.1
Patch0: %{name}-rpm.patch
-Patch2: %{name}-name.patch
-Patch3: %{name}-tex.patch
Patch5: %{name}-compile.patch
-Patch6: %{name}-gcc47.patch
License: LGPLv2+
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
BuildRequires: arpack-devel
BuildRequires: atlas-devel
BuildRequires: bison
@@ -25,6 +20,7 @@ BuildRequires: flex
BuildRequires: fltk-devel
BuildRequires: gcc-gfortran
BuildRequires: glut-devel
+BuildRequires: gmm-devel
BuildRequires: gsl-devel
BuildRequires: ImageMagick
BuildRequires: lapack-devel
@@ -33,12 +29,23 @@ BuildRequires: libtool
BuildRequires: libXpm-devel
BuildRequires: libXt-devel
BuildRequires: libXxf86vm-devel
+#BuildRequires: metis-devel
+# mumps code requires metis and scotch
+#BuildRequires: MUMPS-devel
+#scotch package is broken
+#BuildRequires: scotch-devel
BuildRequires: suitesparse-devel
#BuildRequires: superlu-devel
%{?_with_tetgen:BuildRequires: tetgen-devel}
+BuildRequires: texlive-multirow
+BuildRequires: texlive-was
BuildRequires: %{_bindir}/dvips
BuildRequires: %{_bindir}/epstopdf
BuildRequires: %{_bindir}/pdflatex
+Obsoletes: %{name}-glx < 3.23-1
+Obsoletes: %{name}-devel < 3.26-1
+Provides: %{name}-glx = %{version}-%{release}
+Provides: %{name}-devel = %{version}-%{release}
%description
A PDE oriented language using Finite Element Method FreeFem++ is an
@@ -54,58 +61,47 @@ FreeFem++ is an extension of freefem, freefem+ written in C++.
Homepage: http://www.freefem.org/
-%package devel
-Summary: FreeFem++ development headers
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-This package contains the headers necessary for writing FreeFem++
-extensions.
-
-%package glx
-Summary: PDE solving tool - OpenGL version
-Group: Applications/Engineering
-Requires: %{name} = %{version}-%{release}
-
-%description glx
-This package contains the OpenGL version of FreeFem++.
-
%package openmpi
Summary: PDE solving tool - OpenMPI version
-Group: Applications/Engineering
+BuildRequires: openmpi-devel >= 1.3.3-2
+BuildRequires: blacs-openmpi-devel
+BuildRequires: scalapack-openmpi-devel
+#BuildRequires: MUMPS-openmpi-devel
+Obsoletes: %{name}-mpi < 3.19-5
+Provides: %{name}-mpi = %{name}-%{version}
Requires: %{name} = %{version}-%{release}
-BuildRequires: openmpi-devel >= 1.3.3-2
# For dir ownership
Requires: openmpi
-Obsoletes: %{name}-mpi < 3.19-5
+Requires: blacs-openmpi
+Requires: scalapack-openmpi
%description openmpi
This package contains the OpenMPI version of FreeFem++.
-%package mpich2
-Summary: PDE solving tool - MPICH2 version
-Group: Applications/Engineering
+%package mpich
+Summary: PDE solving tool - MPICH version
+BuildRequires: mpich-devel
+BuildRequires: blacs-mpich-devel
+BuildRequires: scalapack-mpich2-devel
+#BuildRequires: MUMPS-mpich-devel
+Obsoletes: %{name}-mpi < 3.19-5
+Provides: %{name}-mpi = %{name}-%{version}
Requires: %{name} = %{version}-%{release}
-BuildRequires: mpich2-devel >= 1.3.3-2
# For dir ownership
-Requires: mpich2
+Requires: mpich
+Requires: blacs-mpich
+Requires: scalapack-mpich
-%description mpich2
-This package contains the MPICH2 version of FreeFem++.
+%description mpich
+This package contains the MPICH version of FreeFem++.
%prep
-%setup -q -c -T
-
-tar zxf %{SOURCE0}
+%setup -q -c -T -a 0
mv %{name}-%{version}%{dashpl} serial
pushd serial
%patch0 -p1 -b .r
-%patch2 -p1
-%patch3 -p1 -b .t
%patch5 -p1 -b .compile
-%patch6 -p1 -b .gcc47
-find . -type f -perm 755 \( -name "*.c*" -o -name "*.h*" -o -name "*.edp" \) | xargs chmod 644
+find . -type f -perm 755 \( -name "*.c*" -o -name "*.h*" -o -name "*.edp" -o -name "*.idp" \) | xargs chmod 644
for file in AUTHORS ChangeLog COPYRIGHT COPYING HISTORY ; do
iconv -f iso8859-1 -t utf8 -o $file.utf8 $file && \
touch -r $file $file.utf8 && \
@@ -116,101 +112,135 @@ popd
# MPI flavors
cp -r serial openmpi
-cp -r serial mpich2
+cp -r serial mpich
%build
-# Serial version
+export CFLAGS+=" %{optflags}"
+
pushd serial
%configure \
INSTALL="%{__install} -p" \
--disable-download \
--disable-optim \
- --with-x \
+ --disable-hips \
+ --disable-ipopt \
+ --disable-metis \
+ --disable-mmg3d \
+ --disable-mshmet \
+ --disable-mumps \
+ --disable-mumps_seq \
+ --disable-nlopt \
+ --disable-parmetis \
+ --disable-pastix \
+ --disable-scotch \
+ --disable-superlu \
+ --disable-superludist \
+ --disable-tetgen \
+ --disable-yams \
+ --enable-opengl \
+ --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas" \
--with-mpi=no \
- --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas"
-make %{?_smp_mflags}
-#%{__make} -C examples++-load load_compile %{?_smp_mflags}
-make documentation
+
+make
popd
-# OpenMPI
pushd openmpi
%{_openmpi_load}
%configure \
INSTALL="%{__install} -p" \
--disable-download \
--disable-optim \
- --with-x \
+ --disable-hips \
+ --disable-ipopt \
+ --disable-metis \
+ --disable-mmg3d \
+ --disable-mshmet \
+ --disable-mumps \
+ --disable-mumps_seq \
+ --disable-nlopt \
+ --disable-parmetis \
+ --disable-pastix \
+ --disable-scotch \
+ --disable-superlu \
+ --disable-superludist \
+ --disable-tetgen \
+ --disable-yams \
+ --enable-opengl \
+ --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas" \
--with-mpi=yes \
- --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas"
-make %{?_smp_mflags}
+
+make
+# %{?_smp_mflags}
%{_openmpi_unload}
popd
-# MPICH2
-pushd mpich2
-%{_mpich2_load}
+pushd mpich
+%{_mpich_load}
%configure \
INSTALL="%{__install} -p" \
--disable-download \
--disable-optim \
- --with-x \
+ --disable-hips \
+ --disable-ipopt \
+ --disable-metis \
+ --disable-mmg3d \
+ --disable-mshmet \
+ --disable-mumps \
+ --disable-mumps_seq \
+ --disable-nlopt \
+ --disable-parmetis \
+ --disable-pastix \
+ --disable-scotch \
+ --disable-superlu \
+ --disable-superludist \
+ --disable-tetgen \
+ --disable-yams \
+ --enable-opengl \
+ --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas" \
--with-mpi=yes \
- --with-blas="-L%{_libdir}/atlas -llapack -lf77blas -lcblas -latlas"
-make %{?_smp_mflags}
-%{_mpich2_unload}
+
+make
+%{_mpich_unload}
popd
%install
-rm -rf %{buildroot}
-
pushd serial
make DESTDIR=%{buildroot} install
+chmod 744 %{buildroot}%{_libdir}/ff++/lib/*.so
+chmod 644 %{buildroot}%{_libdir}/ff++/lib/WHERE*
install -d %{buildroot}%{_mandir}/man1/
install -pm644 %{SOURCE1} %{buildroot}%{_mandir}/man1/
-install -d %{buildroot}%{_datadir}/freefem++/edp
pushd %{buildroot}%{_datadir}/freefem++
rm -r download
rm BUGS COPYRIGHT HISTORY* INNOVATION INSTALL{,-MacOSX} README{,_MAC,_WINDOWS} TODO freefem++doc.pdf mode-mi-edp.zip
popd
-rm %{buildroot}%{_bindir}/ff-pkg-download
+rm %{buildroot}{%{_bindir},%{_libdir}/ff++/bin}/ff-pkg-download
# the binary with no suffix should be the generic X11 one according to README
# the build system makes it identical to -nw version, so overwrite it
-mv %{buildroot}%{_bindir}/FreeFem++{-x11,}
+ln -sf FreeFem++-nw %{buildroot}%{_bindir}/FreeFem++
popd
-pushd openmpi
-make DESTDIR=`pwd`/buildtree install
-popd
-
-pushd mpich2
-make DESTDIR=`pwd`/buildtree install
-popd
-
-# Install MPI libraries
-for mpi in mpich2 openmpi; do
- # MPI binaries
- for bin in FreeFem++-mpi ff-mpirun; do
- install -D -p -m 755 $mpi/buildtree/%{_bindir}/$bin %{buildroot}%{_libdir}/$mpi/bin/$bin
- done
- # MPI libraries
- for lib in mpi-cmaes.so MPICG.so; do
- install -D -p -m 755 $mpi/buildtree/%{_libdir}/freefem++/lib/$lib %{buildroot}%{_libdir}/$mpi/lib/$lib
- done
+for mpi in openmpi mpich ; do
+ pushd $mpi
+ make DESTDIR=`pwd`/buildtree install
+ for bin in FreeFem++-mpi ff-mpirun ; do
+ install -D -m 755 -p buildtree/%{_bindir}/$bin %{buildroot}%{_libdir}/${mpi}/bin/${bin}_${mpi}
+ done
+ for lib in MPICG.so mpi-cmaes.so ; do
+ install -D -m 744 -p buildtree/%{_libdir}/ff++/lib/$lib %{buildroot}%{_libdir}/${mpi}/lib/ff++/lib/$lib
+ done
+ popd
done
-%clean
-rm -rf %{buildroot}
-
%if 0
%check
pushd serial
export CFLAGS+=" %{optflags}"
make check
+popd
%endif
%files
-%defattr(-,root,root,-)
%doc serial/AUTHORS serial/BUGS serial/COPYING serial/COPYRIGHT serial/HISTORY serial/INNOVATION serial/README serial/TODO
%doc serial/DOC/freefem++doc.pdf
%{_mandir}/man1/*
@@ -218,44 +248,35 @@ make check
%{_bindir}/FreeFem++-nw
%{_bindir}/bamg
%{_bindir}/cvmsh2
-%{_bindir}/drawbdmesh
%{_bindir}/ffglut
%{_bindir}/ffmedit
-%{_libdir}/freefem++
-%exclude %{_libdir}/freefem++/lib
-%{_sysconfdir}/freefem++.pref
-%dir %{_datadir}/freefem++
-%{_datadir}/freefem++/edp
-%{_datadir}/freefem++/idp
-
-%files devel
-%defattr(-,root,root,-)
+%{_libdir}/ff++
%{_bindir}/ff-c++
%{_bindir}/ff-get-dep
-%{_includedir}/freefem++
-%{_datadir}/freefem++/examples*
-%{_datadir}/freefem++/CheckAllEdp
-
-%files glx
-%defattr(-,root,root,-)
-%{_bindir}/FreeFem++-glx
+%{_datadir}/freefem++
%files openmpi
-%defattr(-,root,root,-)
-%{_libdir}/openmpi/bin/FreeFem++-mpi
-%{_libdir}/openmpi/bin/ff-mpirun
-%{_libdir}/openmpi/lib/mpi-cmaes.so
-%{_libdir}/openmpi/lib/MPICG.so
-
-%files mpich2
-%defattr(-,root,root,-)
-%{_libdir}/mpich2/bin/FreeFem++-mpi
-%{_libdir}/mpich2/bin/ff-mpirun
-%{_libdir}/mpich2/lib/mpi-cmaes.so
-%{_libdir}/mpich2/lib/MPICG.so
+%{_libdir}/openmpi/bin/FreeFem++-mpi_openmpi
+%{_libdir}/openmpi/bin/ff-mpirun_openmpi
+%{_libdir}/openmpi/lib/ff++
+%files mpich
+%{_libdir}/mpich/bin/FreeFem++-mpi
+%{_libdir}/mpich/bin/ff-mpirun
+%{_libdir}/mpich/lib/ff++
%changelog
+* Thu Nov 28 2013 Dominik Mierzejewski <rpm at greysector.net> 3.26-1.2
+- update to 3.26-2
+- build with proper multi-MPI support
+- build with gmm support
+- WIP mumps/metis/scotch support (disabled for now)
+- add missing tex dependencies
+- drop obsolete patches
+- explicitly disable all unavailable dependencies
+- drop devel subpackage
+- drop obsolete specfile constructs
+
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.19-5.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
diff --git a/sources b/sources
index c62bc48..3af457c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
f1accc292794bbafb66e963080f9d15b FreeFem++.1
-74c09591d35ffc7d50de6cd820ebad01 freefem++-3.19-1.tar.gz
+40fe102b7b01e07a0e7f45bbc807a057 freefem++-3.26-2.tar.gz
More information about the scm-commits
mailing list