From 2aa9dcddff29fa09d4ec5fdf01c079d1a441a97f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Apr 27 2011 22:15:02 +0000 Subject: New upstream release. Drop BuildRoot tag, clean script, and clean at start of install script. Build against shared cddlib now that it is available. Add check script, which requires fixing some broken tests. --- diff --git a/.gitignore b/.gitignore index be444ef..d74b407 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -gfan0.3.tar.gz +gfan0.5.tar.gz diff --git a/gfan-0.3-respect-destdir.diff b/gfan-0.3-respect-destdir.diff deleted file mode 100644 index 49ac591..0000000 --- a/gfan-0.3-respect-destdir.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- Makefile.orig 2008-12-06 20:00:35.000000000 -0800 -+++ Makefile 2008-12-06 20:02:51.000000000 -0800 -@@ -166,15 +166,15 @@ - - OBJECTS = $(CATSOBJECTS) $(APPOBJECTS) - - all: $(MAIN) - --$(BINDIR): $(PREFIX) -- $(MKDIR) $(BINDIR) -+$(DESTDIR)$(BINDIR): $(DESTDIR)$(PREFIX) -+ $(MKDIR) $(DESTDIR)$(BINDIR) - --$(PREFIX): -- $(MKDIR) $(PREFIX) -+$(DESTDIR)$(PREFIX): -+ $(MKDIR) -p $(DESTDIR)$(PREFIX) - - default: $(OBJECTS) $(ADDITIONALOBJECTS) $(EXECS) - - $(MAIN): $(OBJECTS) - $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -o $(MAIN) -@@ -262,14 +262,14 @@ - tar -c $(RELEASEDIR) > $(RELEASEDIR).tar - gzip $(RELEASEDIR).tar - - clean: - /bin/rm -f *.o $(EXECS) $(MAIN) --install: $(BINDIR) -- cp $(EXECS) $(BINDIR) -+install: $(DESTDIR)$(BINDIR) -+ cp $(EXECS) $(DESTDIR)$(BINDIR) - # cp $(EXECS) /usr/local/bin -- ./gfan installlinks --path $(BINDIR)/ -+ ./gfan installlinks --path $(DESTDIR)$(BINDIR)/ - .c.o: - $(CC) $(CFLAGS) -c $< - .cc.o: - $(CCC) -c $< - .cpp.o: diff --git a/gfan-format.patch b/gfan-format.patch new file mode 100644 index 0000000..57c0100 --- /dev/null +++ b/gfan-format.patch @@ -0,0 +1,275 @@ +--- ./genericwalk.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./genericwalk.cpp 2011-04-27 13:42:52.227946066 -0600 +@@ -202,7 +202,7 @@ + g=newG; + + nflips++; +- fprintf(Stderr,"Flip %i, new size %i\n",nflips,g.size()); ++ fprintf(Stderr,"Flip %i, new size %zu\n",nflips,g.size()); + } + fprintf(Stderr,"Number of flips:%i\n",nflips); + +--- ./app_isgroebnerbasis.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_isgroebnerbasis.cpp 2011-04-27 13:48:16.474949962 -0600 +@@ -47,7 +47,7 @@ + IntegerVectorListList sums; + IntegerVectorList polytope=minkowski(polytopes,&sums); + +- fprintf(Stderr,"Number of extreme vertices in Minkowski sum: %i\n",polytope.size()); ++ fprintf(Stderr,"Number of extreme vertices in Minkowski sum: %zu\n",polytope.size()); + + bool isGroebnerBasis=false; + int counter=0; +--- ./polyhedralfan.cpp.orig 2011-01-25 08:33:17.000000000 -0700 ++++ ./polyhedralfan.cpp 2011-04-27 13:46:56.746866265 -0600 +@@ -604,7 +604,7 @@ + { + // log0 fprintf(Stderr,"rayComplexSymmetry - begin\n"); + PolyhedralFan ret(n); +- log1 fprintf(Stderr,"Computing rays of %i cones\n",cones.size()); ++ log1 fprintf(Stderr,"Computing rays of %zu cones\n",cones.size()); + for(PolyhedralConeList::const_iterator i=cones.begin();i!=cones.end();i++) + { + { +@@ -812,7 +812,7 @@ + SymmetryGroup localsym(n); + if(!sym)sym=&localsym; + set rays; +- log1 fprintf(Stderr,"Computing rays of %i cones\n",cones.size()); ++ log1 fprintf(Stderr,"Computing rays of %zu cones\n",cones.size()); + for(PolyhedralConeList::const_iterator i=cones.begin();i!=cones.end();i++) + { + { +@@ -1212,7 +1212,7 @@ + static int t; + if((t&1023)==0) + { +- fprintf(Stderr,"clist size:%i\n",clist.size()); ++ fprintf(Stderr,"clist size:%zu\n",clist.size()); + } + t++; + } +--- ./bergman.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./bergman.cpp 2011-04-27 13:45:37.266767581 -0600 +@@ -149,7 +149,7 @@ + if(0) + { + s=fullColoredIdeals(*g,false); +- fprintf(Stderr,"Full colored ideals computed, #=%i\n",s.size()); ++ fprintf(Stderr,"Full colored ideals computed, #=%zu\n",s.size()); + } + else + { +@@ -539,7 +539,7 @@ + while(!active.empty()) + { + log1 fprintf(Stderr,"\n-------------------------------------\n"); +- log1 fprintf(Stderr,"Size of active set: %i, Completed: %i\n",active.size(),ret.cones.size()); ++ log1 fprintf(Stderr,"Size of active set: %i, Completed: %zu\n",active.size(),ret.cones.size()); + log1 fprintf(Stderr,"-------------------------------------\n"); + AsciiPrinter p(Stderr); + +--- ./symmetry.cpp.orig 2011-01-25 08:33:17.000000000 -0700 ++++ ./symmetry.cpp 2011-04-27 13:43:45.571656038 -0600 +@@ -300,7 +300,7 @@ + l.push_back(*i); + } + P.printVectorList(l); +- fprintf(f,"Group order=%i\n",elements.size()); ++ fprintf(f,"Group order=%zu\n",elements.size()); + P.printString("Done printing SymmetryGroup.\n"); + } + +--- ./xfig.cpp.orig 2011-01-25 08:33:17.000000000 -0700 ++++ ./xfig.cpp 2011-04-27 13:46:06.770948094 -0600 +@@ -103,7 +103,7 @@ + { + if(vertices.size()) + { +- fprintf(f,"2 3 0 1 0 %i 50 0 25 0.000 0 0 -1 0 0 %i\n ",7,vertices.size()+1); ++ fprintf(f,"2 3 0 1 0 %i 50 0 25 0.000 0 0 -1 0 0 %zu\n ",7,vertices.size()+1); + + for(Polygon::const_iterator i=vertices.begin();i!=vertices.end();i++) + kickPoint(*i,mode); +--- ./lp_cdd.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./lp_cdd.cpp 2011-04-27 13:39:42.788631110 -0600 +@@ -1287,8 +1287,8 @@ + if(A->rowsize!=newLin.size()+newIn.size()) + { + fprintf(stderr,"A->rowsize: %i\n",(int)A->rowsize); +- fprintf(stderr,"newLin.size(): %i\n",newLin.size()); +- fprintf(stderr,"newIn.size(): %i\n",newIn.size()); ++ fprintf(stderr,"newLin.size(): %zu\n",newLin.size()); ++ fprintf(stderr,"newIn.size(): %zu\n",newIn.size()); + + dd_WriteMatrix(Stderr,A); + +--- ./minkowskisum.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./minkowskisum.cpp 2011-04-27 13:43:17.412392770 -0600 +@@ -27,7 +27,7 @@ + + assert(f); + { +- fprintf(f,"%i",polytopes.size()); ++ fprintf(f,"%zu",polytopes.size()); + TopcomPrinter p(f); + //AsciiPrinter p(f); + +--- ./xfig.h.orig 2011-01-25 08:33:19.000000000 -0700 ++++ ./xfig.h 2011-04-27 13:40:09.491983874 -0600 +@@ -52,7 +52,7 @@ + void endDrawLine() + { + assert(p.size()>0); +- fprintf(f," %i\n",p.size()); ++ fprintf(f," %zu\n",p.size()); + if(arrowOrigin) + fprintf(f,"\t 2 1 1.00 60.00 120.00\n"); + if(arrowTarget) +--- ./gmpallocator.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./gmpallocator.cpp 2011-04-27 13:44:36.363523526 -0600 +@@ -145,19 +145,19 @@ + //Debug + void *myAllocateFunctionD(size_t alloc_size) + { +- fprintf(stderr,"Allocating: %i bytes.\n",alloc_size); ++ fprintf(stderr,"Allocating: %zu bytes.\n",alloc_size); + return malloc(alloc_size); + } + + void *myReallocateFunctionD(void *ptr, size_t old_size, size_t new_size) + { +- fprintf(stderr,"Reallocating: %i --> %i bytes.\n",old_size,new_size); ++ fprintf(stderr,"Reallocating: %zu --> %zu bytes.\n",old_size,new_size); + return realloc(ptr,new_size); + } + + void myDeallocateFunctionD(void *ptr, size_t size) + { +- fprintf(stderr,"Freeing: %i bytes.\n",size); ++ fprintf(stderr,"Freeing: %zu bytes.\n",size); + return free(ptr); + } + +--- ./app_test.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_test.cpp 2011-04-27 13:49:04.826968542 -0600 +@@ -128,7 +128,7 @@ + + M[I]=minusOne*M[I]; + } +- fprintf(Stdout,"Extreme permutations (%i):\n",extreme.size()); ++ fprintf(Stdout,"Extreme permutations (%zu):\n",extreme.size()); + P.printVectorList(extreme); + } + +--- ./buchberger.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./buchberger.cpp 2011-04-27 13:41:04.116614389 -0600 +@@ -540,7 +540,7 @@ + { + static int t; + t++; +- if((t&31)==0)fprintf(Stderr," spolys:%i\n",sPolynomials.size()); ++ if((t&31)==0)fprintf(Stderr," spolys:%zu\n",sPolynomials.size()); + } + + { +@@ -565,7 +565,7 @@ + { + static int t; + if(((++t)&=31)==0) +- fprintf(Stderr,"gsize:%i spolys:%i\n",g->size()+1,sPolynomials.size()); ++ fprintf(Stderr,"gsize:%zu spolys:%zu\n",g->size()+1,sPolynomials.size()); + } + PolynomialSet::iterator j=g->end();j--; + updatePairs(sPolynomials,g,&redundantOnes,j,indexj,truncationDegree,&grading); +--- ./halfopencone.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./halfopencone.cpp 2011-04-27 13:47:51.531488017 -0600 +@@ -555,14 +555,14 @@ + { + HalfOpenConeList surface=tropicalHyperSurface(*i); + +- fprintf(Stderr,"Number of cones in current intersection:%i\n",intersection.size()); +- fprintf(Stderr,"Number of cones in next surface:%i\n",surface.size()); ++ fprintf(Stderr,"Number of cones in current intersection:%zu\n",intersection.size()); ++ fprintf(Stderr,"Number of cones in next surface:%zu\n",surface.size()); + + fprintf(Stderr,"A\n"); + intersection=refinement(intersection,surface); + fprintf(Stderr,"B\n"); + } +- fprintf(Stderr,"%i",intersection.size()); ++ fprintf(Stderr,"%zu",intersection.size()); + + return intersection; + } +--- ./app_normalfancleanup.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_normalfancleanup.cpp 2011-04-27 13:51:05.227545050 -0600 +@@ -71,7 +71,7 @@ + FILE *f=fopen("iteraTIon","w"); + if(f) + { +- fprintf(f,"%i:%i\n",a,l2.size()); ++ fprintf(f,"%i:%zu\n",a,l2.size()); + fclose(f); + } + } +--- ./app_secondaryfan.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_secondaryfan.cpp 2011-04-27 13:50:21.635232740 -0600 +@@ -142,7 +142,7 @@ + + while(1) + { +- fprintf(stdout,"Triangles in current triangulation:%i\n",a.bases.size()); ++ fprintf(stdout,"Triangles in current triangulation:%zu\n",a.bases.size()); + PolyhedralCone C=a.secondaryCone(); + + C.canonicalize(); +@@ -198,7 +198,7 @@ + + while(1) + { +- fprintf(stdout,"Triangles in current triangulation:%i\n",a.bases.size()); ++ fprintf(stdout,"Triangles in current triangulation:%zu\n",a.bases.size()); + // PolyhedralCone C=a.secondaryCone(); + + // C.canonicalize(); +@@ -214,7 +214,7 @@ + { + Triangulation2 b=a; + b.flipNew(-*i); +- fprintf(stdout,"Triangles in new triangulation:%i\n",b.bases.size()); ++ fprintf(stdout,"Triangles in new triangulation:%zu\n",b.bases.size()); + + if(b.bases.size()==abortAtSize) + { +--- ./app_intsinpolytope.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_intsinpolytope.cpp 2011-04-27 13:49:42.202664015 -0600 +@@ -104,7 +104,7 @@ + } + } + +- fprintf(stderr,"Sets to test: %i\n",setsToCheck.size()); ++ fprintf(stderr,"Sets to test: %zu\n",setsToCheck.size()); + + set > ret; + for(set >::const_iterator i=setsToCheck.begin();i!=setsToCheck.end();i++) +@@ -118,7 +118,7 @@ + if(isPartOfAZBasis(l))ret.insert(*i); + } + +- fprintf(stderr,"Produced sets: %i\n",ret.size()); ++ fprintf(stderr,"Produced sets: %zu\n",ret.size()); + + return ret; + } +--- ./app_tropicaltraverse.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_tropicaltraverse.cpp 2011-04-27 13:48:41.939379788 -0600 +@@ -156,7 +156,7 @@ + BergmanFan f=bergman(coneGroebnerBasis,idealGroebnerBasis,&s); + f.computeMultiplicities(); + /* log1 fprintf(Stderr,"Is simplicial: %s\n",f.isSimplicial()?"true":"false");*/ +- log1 fprintf(Stderr,"Order of input symmetry group: %i\n",s.elements.size()); ++ log1 fprintf(Stderr,"Order of input symmetry group: %zu\n",s.elements.size()); + log1 fprintf(Stderr,"Number of maximal cones: %i\n",f.numberOfMaximalCones()); + log1 fprintf(Stderr,"Modulo the homogeneity space:\n"); + log1 AsciiPrinter(Stderr).printVectorList(hv); diff --git a/gfan-respect-destdir.patch b/gfan-respect-destdir.patch new file mode 100644 index 0000000..7230bf2 --- /dev/null +++ b/gfan-respect-destdir.patch @@ -0,0 +1,33 @@ +--- Makefile.orig 2011-01-25 08:33:19.000000000 -0700 ++++ Makefile 2011-04-25 16:07:52.441724570 -0600 +@@ -308,11 +308,11 @@ + + all: $(MAIN) + +-$(BINDIR): $(PREFIX) +- $(MKDIR) $(BINDIR) ++$(DESTDIR)$(BINDIR): $(DESTDIR)$(PREFIX) ++ $(MKDIR) $(DESTDIR)$(BINDIR) + +-$(PREFIX): +- $(MKDIR) $(PREFIX) ++$(DESTDIR)$(PREFIX): ++ $(MKDIR) -p $(DESTDIR)$(PREFIX) + + default: $(OBJECTS) $(ADDITIONALOBJECTS) $(EXECS) + +@@ -419,11 +419,11 @@ + + clean: + /bin/rm -f *.o $(EXECS) $(MAIN) +-install: $(BINDIR) +- cp $(EXECS) $(BINDIR) ++install: $(DESTDIR)$(BINDIR) ++ cp $(EXECS) $(DESTDIR)$(BINDIR) + # cp $(EXECS) /usr/local/bin + # ./gfan installlinks --path $(BINDIR)/ +- cd $(BINDIR) && ./gfan installlinks ++ cd $(DESTDIR)$(BINDIR) && ./gfan installlinks + library: + /bin/rm -f gfanlib/*.a + /bin/rm -f gfanlib/*.o diff --git a/gfan-warning.patch b/gfan-warning.patch new file mode 100644 index 0000000..e228a9c --- /dev/null +++ b/gfan-warning.patch @@ -0,0 +1,238 @@ +--- ./app_fancoarsening.cpp.orig 2011-01-25 08:33:15.000000000 -0700 ++++ ./app_fancoarsening.cpp 2011-04-27 14:49:26.185117544 -0600 +@@ -33,12 +33,14 @@ + return false; + } + ++#if 0 + IntegerVectorList inequalitiesForCone(IntegerVector const &codim1interior, IntegerVector const &newDirection) + { + + int i=0; + + } ++#endif + + const char *helpText() + { +--- ./field_rationals.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./field_rationals.cpp 2011-04-27 14:49:26.186117482 -0600 +@@ -326,17 +326,17 @@ + return "GmpRationals"; + } + +-/*FieldRationals::FieldRationals(): ++#if 0 ++FieldRationals::FieldRationals(): + Field(new FieldRationalsImplementation()) + { + /* fprintf(Stderr,"Adding field rationals\n"); + next=list; + list=this; + */ +-/* + log2 fprintf(Stderr,"Initializing field Rationals\n"); + } +-*/ ++#endif + //FieldRationals Q; + Field Q(new FieldRationalsImplementation()); + +--- ./wallideal.cpp.orig 2011-01-25 08:33:17.000000000 -0700 ++++ ./wallideal.cpp 2011-04-27 14:49:26.188117356 -0600 +@@ -928,7 +928,7 @@ + return isFacet(normals,i); + } + */ +- /* ++#if 0 + bool fastIsFacet(IntegerVectorList const &normals, IntegerVectorList::const_iterator i) + { + int n=i->size(); +@@ -963,7 +963,7 @@ + } + } + */ +-/* int bestEntry=-1; ++ int bestEntry=-1; + int bestCount=2000000000; + int bestValue=0; + for(int j=0;j + #include ++#include ++#include + #include "parser.h" + #include "printer.h" + #include "polynomial.h" +@@ -193,10 +195,7 @@ + { + outputName=outputName+"New"; + } +- { +- string t="rm "+outputName; +- system(t.c_str()); +- } ++ unlink(outputName.c_str()); + string command3="cat <"+input+"|"+string(command2)+">"+outputName; + cerr<<"Running command:\""< subFolderNames() + { +-#define tempName "GfAnTeMpTeStS" +- char command[256]; +- system("rm "tempName); +- sprintf(command,"ls %s>" tempName ,testSuiteFolderOption.getValue()); +- system(command); +- + list ret; +- FILE *f=fopen(tempName,"r"); +- assert(f); +- char name[256]; +- while(fgets(name,255,f)) ++ DIR *dir = opendir(testSuiteFolderOption.getValue()); ++ struct dirent *dirent; ++ ++ assert(dir); ++ for (struct dirent *ent = readdir(dir); ent; ent = readdir(dir)) + { +- for(int i=0;i<255 && name[i];i++)if(name[i]=='\n'){name[i]=0;} +- if(name[0]>='0' && name[0]<='9')ret.push_back(string(testSuiteFolderOption.getValue())+"/"+string(name)); ++ if (ent->d_name[0]>='0' && ent->d_name[0]<='9') ++ ret.push_back(string(testSuiteFolderOption.getValue())+"/"+string(ent->d_name)); + } +- fclose(f); ++ closedir(dir); + return ret; + } + +--- ./gfanlib_polymakefile.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./gfanlib_polymakefile.cpp 2011-04-27 14:50:10.599401328 -0600 +@@ -51,7 +51,7 @@ + { + list ret; + int c=s.peek(); +- while((c>='0') && (c<='9')|| (c==' ')) ++ while((c>='0' && c<='9')|| c==' ') + { + // fprintf(Stderr,"?\n"); + int r; +--- ./gfanlib_vector.h.orig 2011-01-25 08:33:18.000000000 -0700 ++++ ./gfanlib_vector.h 2011-04-27 14:49:26.193117051 -0600 +@@ -288,6 +288,7 @@ + f<<*i; + } + f<<")"; ++ return f; + } + typ gcd()const + { +--- ./gfanlib_zcone.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./gfanlib_zcone.cpp 2011-04-27 14:49:26.196116868 -0600 +@@ -726,6 +726,7 @@ + f< ret; + int c=s.peek(); +- while((c>='0') && (c<='9')|| (c==' ')) ++ while((c>='0' && c<='9')|| c==' ') + { + // fprintf(Stderr,"?\n"); + int r; +--- ./gfanlib_symmetriccomplex.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./gfanlib_symmetriccomplex.cpp 2011-04-27 14:49:26.199116684 -0600 +@@ -215,13 +215,12 @@ + return true; + } + +-/* ++#if 0 + IntVector SymmetricComplex::dimensionsAtInfinity()const + { + /* Using a double description like method this routine computes the + dimension of the intersection of each cone in the complex with + the plane x_0=0 */ +-/* + IntVector ret(cones.size()); + + int I=0; +@@ -240,7 +239,7 @@ + } + return ret; + } +-*/ ++#endif + + void SymmetricComplex::buildConeLists(bool onlyMaximal, bool compressed, std::vector >*conelist/*, ZMatrix *multiplicities*/)const + { +--- ./application.cpp.orig 2011-01-25 08:33:16.000000000 -0700 ++++ ./application.cpp 2011-04-27 14:49:26.200116623 -0600 +@@ -3,6 +3,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + +@@ -546,10 +548,11 @@ + if(all || p->includeInDefaultInstallation()) + if(strlen(p->name())>0) + { +- char c[1024]; +- sprintf(c,"ln -s %s%s %s%s%s\n",path,name,path,name,p->name()); +- fprintf(stderr,"%s",c); +- system(c); ++ char c[PATH_MAX], d[PATH_MAX]; ++ snprintf(c,PATH_MAX,"%s%s",path,name); ++ snprintf(d,PATH_MAX,"%s%s%s",path,name,p->name()); ++ fprintf(stderr,"ln -s %s %s\n",c,d); ++ symlink(c,d); + } + p=p->next; + } diff --git a/gfan.spec b/gfan.spec index be29bbd..8fd674a 100644 --- a/gfan.spec +++ b/gfan.spec @@ -1,18 +1,22 @@ Name: gfan -Version: 0.3 -Release: 7%{?dist} +Version: 0.5 +Release: 1%{?dist} Summary: Software for Computing Gröbner Fans and Tropical Varieties Group: Applications/Engineering License: GPL+ -URL: http://www.math.tu-berlin.de/%7Ejensen/software/gfan/gfan.html -Source0: http://www.math.tu-berlin.de/%7Ejensen/software/gfan/gfan%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -# Respect DESTDIR -Patch0: gfan-0.3-respect-destdir.diff - -BuildRequires: cddlib-static cddlib-devel +URL: http://www.math.tu-berlin.de/~jensen/software/gfan/gfan.html +Source0: http://www.math.tu-berlin.de/~jensen/software/gfan/gfan%{version}.tar.gz +# Sent upstream 2011 Apr 27. Respect DESTDIR +Patch0: gfan-respect-destdir.patch +# Sent upstream 2011 Apr 27. Fix 64-bit issues in printf statements by +# using %%zu instead of %%i for printing size_t values. +Patch1: gfan-format.patch +# Sent upstream 2011 Apr 27. Fix warnings that could indicate runtime +# problems. +Patch2: gfan-warning.patch + +BuildRequires: cddlib-devel BuildRequires: gmp-devel -BuildRequires: texlive-latex %description @@ -26,42 +30,58 @@ initial ideals and tropical geometry. Among these are an interactive traversal program for Gröbner fans and programs for graphical renderings. - %prep %setup -q -n %{name}%{version} -# manual is non-free -rm doc/ -rf - -# Use native fedora optflags, prefix, and bindir -sed -i -e 's|^OPTFLAGS.*$||' \ - -e 's|^PREFIX.*$|PREFIX = %{_prefix}|' \ - -e 's|^BINDIR.*$|BINDIR = %{_bindir}|' Makefile - -# respect DESTDIR %patch0 +%patch1 +%patch2 + +# manual is non-free +rm -rf doc + +# Point to where the TOPCOM binaries will be installed +sed -i \ + "s|^#define MINKOWSKIPROG.*|#define MINKOWSKIPROGRAM \"%{_bindir}/essai\"|" \ + minkowskisum.cpp + +# Fix the tests +sed -i 's/^%s/%s _bases/' \ + testsuite/0000InstallationSection/command \ + testsuite/0001GroebnerFan/command \ + testsuite/0003GroebnerFanMod3/command \ + testsuite/0004GroebnerFanSymmetry/command \ + testsuite/0007LeadingTerms/command \ + testsuite/0008PolynomialSetUnion/command \ + testsuite/0100SymmetricGfan/command \ + testsuite/0100TwoVariables/command +sed -i 's/^gfan/%s/' \ + testsuite/0507InitialIdeal/command \ + testsuite/0508IntegerGroebnerCone/command \ + testsuite/0509IntegerGroebnerFan/command +sed -i 's|func.poly|testsuite/0056WeildDivisor/func.poly|g' \ + testsuite/0056WeildDivisor/command %build -export OPTFLAGS="%{optflags} -DGMPRATIONAL -I/usr/include/cddlib" -make %{?_smp_mflags} +make %{?_smp_mflags} \ + OPTFLAGS="%{optflags} -DGMPRATIONAL -I/usr/include/cddlib" \ + PREFIX=%{_prefix} %install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/%{name} mv $RPM_BUILD_ROOT%{_bindir}/gfan_* $RPM_BUILD_ROOT%{_libexecdir}/%{name}/ pushd $RPM_BUILD_ROOT%{_libexecdir}/%{name}/ for symlink in gfan_*; do rm $symlink -# ln -s %{_bindir}/%{name} $symlink ln -s ../../bin/%{name} $symlink done popd -%clean -rm -rf $RPM_BUILD_ROOT +%check +./gfan _test %files @@ -72,6 +92,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Apr 25 2011 Jerry James - 0.5-1 +- New upstream release. +- Drop BuildRoot tag, clean script, and clean at start of install script. +- Build against shared cddlib now that it is available. +- Add check script, which requires fixing some broken tests. + * Tue Dec 8 2009 Michael Schwendt - 0.3-7 - Explicitly BR cddlib-static in accordance with the Packaging Guidelines (cddlib-devel is still static-only). diff --git a/sources b/sources index fab26a8..cd00f22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e4b5abe3714930b1789752fe79026b9d gfan0.3.tar.gz +2d76d1625e0766c57c2b3ece809c23c8 gfan0.5.tar.gz