[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