public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jerry James <loganjerry@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gfan] f44: Version 0.8beta
Date: Sat, 20 Jun 2026 13:53:57 GMT	[thread overview]
Message-ID: <178196363756.1.420775271679348911.rpms-gfan-8316b24c39f9@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/gfan
            Branch : f44
            Commit : 8316b24c39f962ea9a438f0db79f595d37fff796
            Author : Jerry James <loganjerry@gmail.com>
            Date   : 2026-06-15T09:22:14-06:00
            Stats  : +165/-184 in 7 file(s)
            URL    : https://src.fedoraproject.org/rpms/gfan/c/8316b24c39f962ea9a438f0db79f595d37fff796?branch=f44

            Log:
            Version 0.8beta

- Add patch to avoid calling back() on an empty vector
- Drop unused BRs: cddlib-devel, gmp-devel, tex(latex), TOPCOM
- Run latex in nonstop mode

---
diff --git a/gfan-c++20.patch b/gfan-c++20.patch
index a1922f1..46196fc 100644
--- a/gfan-c++20.patch
+++ b/gfan-c++20.patch
@@ -1,23 +1,11 @@
---- gfan0.7/Makefile.orig	2024-08-15 15:26:30.841689860 -0600
-+++ gfan0.7/Makefile	2024-08-15 16:06:28.173202173 -0600
-@@ -139,7 +139,7 @@ OPTFLAGS    =  -DGMPRATIONAL -Wuninitial
+--- gfan0.8beta/Makefile.orig	2026-06-11 15:26:44.324164389 -0600
++++ gfan0.8beta/Makefile	2026-06-11 15:26:56.979935522 -0600
+@@ -184,7 +184,7 @@ endif
  #OPTFLAGS    =  -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
  #OPTFLAGS    =  -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
  
--CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -g $(CDDDEFINE_PREFIX) -std=c++2a #-pedantic
-+CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -g $(CDDDEFINE_PREFIX) #-pedantic
+-CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -g $(CDDDEFINE_PREFIX) -std=c++20 $(TBB_INCLUDEOPTIONS) #-pedantic
++CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -g $(CDDDEFINE_PREFIX) $(TBB_INCLUDEOPTIONS) #-pedantic
  #CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
  #CFLAGS	  = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -D_GLIBCXX_DEBUG -g $(CDDDEFINE_PREFIX) #-pedantic
  CCFLAGS	  = $(CFLAGS)
---- gfan0.7/src/gfanlib_circuittableint.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_circuittableint.h	2024-08-15 16:14:29.983298300 -0600
-@@ -591,7 +591,8 @@ public:
- 	    ret=min;
- 
- 	    {
--	    	auto ret2=CircuitTableIntPOD((s.v*denominatorDivisor.multiplicativeInverse)*boundA.v);
-+		CircuitTableIntPOD ret2{};
-+	    	ret2=(s.v*denominatorDivisor.multiplicativeInverse)*boundA.v;
- 	    	ret2=MIN(ret2.v,-ret2.v);
- 	    	return ret2;
- 	    	if(ret.v!=ret2.v)

diff --git a/gfan-empty-coneStack.patch b/gfan-empty-coneStack.patch
new file mode 100644
index 0000000..2da4a36
--- /dev/null
+++ b/gfan-empty-coneStack.patch
@@ -0,0 +1,16 @@
+Fix test crash due to calling back() on an empty vector.
+
+Reproduced by running this test:
+./gfan _tropicalprevariety --usevaluation < testsuite/2000TropicalPrevariety/input
+
+--- gfan0.8beta/src/gfanlib_hypersurfaceintersection.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_hypersurfaceintersection.cpp	2026-06-11 15:28:30.345775031 -0600
+@@ -1023,7 +1023,7 @@ if(1)				{
+ 					stackResource2(20160000),
+ 					statistics(statistics_)
+ 					{
+-						filterOK=filter(coneStack.back());
++						filterOK=coneStack.empty() || filter(coneStack.back());
+ 						setupOptionStack();
+ 					}
+ 

diff --git a/gfan-shared.patch b/gfan-shared.patch
index 6210188..125a716 100644
--- a/gfan-shared.patch
+++ b/gfan-shared.patch
@@ -1,6 +1,15 @@
---- gfan0.7/Makefile.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/Makefile	2024-08-15 15:26:30.841689860 -0600
-@@ -226,15 +226,6 @@ CATSOBJECTS =	lp_cdd.o \
+--- gfan0.8beta/Makefile.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/Makefile	2026-06-11 15:07:18.799236164 -0600
+@@ -162,7 +162,7 @@ SYMMETRICTRAVERSAL_FLAGS = -fno-guess-br
+ # -rdynamic is Linux-only; use TBB for parallel execution support
+ PLATFORM_LINKOPTIONS = -L$(HOMEBREW_PREFIX)/opt/tbb/lib -ltbb
+ else
+-SYMMETRICTRAVERSAL_FLAGS = -fno-guess-branch-probability
++SYMMETRICTRAVERSAL_FLAGS =
+ PLATFORM_LINKOPTIONS = -rdynamic -ltbb
+ endif
+ 
+@@ -271,15 +271,6 @@ CATSOBJECTS =	lp_cdd.o \
  	tropicaldeterminant.o \
  	determinantpoly.o \
  	traverser_sphere.o \
@@ -16,7 +25,7 @@
  	padic.o \
  	integergb.o \
  	traverser_resultantfan.o \
-@@ -242,12 +233,9 @@ CATSOBJECTS =	lp_cdd.o \
+@@ -287,15 +278,11 @@ CATSOBJECTS =	lp_cdd.o \
  	traverser_resultantfanspecialization.o \
  	myassert.o \
  	traverser_bsptree.o \
@@ -28,8 +37,11 @@
 -	gfanlib_hypersurfaceintersection.o \
  	divisionobject.o \
  	gfanlibglue.o \
+-	interrupt.o \
  #	gfanlib_circuittableinteger.o \
-@@ -413,14 +401,26 @@ GFANLIBFILES= 	gfanlib.h \
+ #		symmetrictraversal.o \
+ 	#	restrictedgfan.o \
+@@ -472,6 +459,19 @@ GFANLIBFILES= 	gfanlib.h \
  				gfanlib_memoryresource.cpp \
  	#			gfanlib_tableau.h \   we do not yet support this one
  
@@ -44,21 +56,12 @@
 +				gfanlib_paralleltraverser.o \
 +				gfanlib_traversal.o \
 +				gfanlib_memoryresource.o \
-+				gfanlib_hypersurfaceintersection.o
++				gfanlib_hypersurfaceintersection.o \
++				interrupt.o
  
  EXECS	  = $(MAIN)
  
- # When compiling symmetrictraversal.cpp as any other file, it causes the program to crash in certain situations.
- # (compiling with gcc version 4.7.2 and running gfan _tropicaltraverse on a starting cone for Grassmann3_7)
- # Either this is a bug in the code or in the compiler. The bug disappears by compiling with -fno-guess-branch-probability
--src/symmetrictraversal.o: src/symmetrictraversal.cpp
--	$(CXX) $(CFLAGS) -fno-guess-branch-probability  -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
-+#src/symmetrictraversal.o: src/symmetrictraversal.cpp
-+#	$(CXX) $(CFLAGS) -fno-guess-branch-probability  -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
- # If compiling with clang, use the line below instead:
- #	$(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
- 
-@@ -432,6 +432,7 @@ OBJECTS1 = 	$(addprefix src/,$(SOPLEX_OB
+@@ -490,6 +490,7 @@ OBJECTS1 = 	$(addprefix src/,$(SOPLEX_OB
  		$(SAGE_OBJECTS) \
  		$(addprefix src/,$(CATSOBJECTS)) \
  		$(addprefix src/,$(APPOBJECTS)) \
@@ -66,15 +69,15 @@
  		src/symmetrictraversal.o
  
  OBJECTS2 = src/app_test.o \
-@@ -508,7 +509,48 @@ default: $(OBJECTS) $(ADDITIONALOBJECTS)
+@@ -565,7 +566,51 @@ $(PREFIX):
+ default: $(OBJECTS) $(ADDITIONALOBJECTS) $(EXECS)
  
  $(MAIN): $(OBJECTS)
- #	$(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread  -o $(MAIN)
--	$(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -rdynamic -o $(MAIN)
-+	$(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -L src -lgfan -lpthread -o $(MAIN)
+-	$(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread $(PLATFORM_LINKOPTIONS) -o $(MAIN)
++	$(CCLINKER) $(OBJECTS) $(PLATFORM_LINKOPTIONS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -L src -lgfan -lpthread -o $(MAIN)
 +
 +src/libgfan.so: $(addprefix src/,$(GFANLIBOBJECTS))
-+	$(CCLINKER) $(CCFLAGS) $(ADDITIONALLINKOPTIONS) -shared -Wl,-h,libgfan.so.0 -o src/libgfan.so.0.0.0 $^ -lgmp -lpthread
++	$(CCLINKER) $(CCFLAGS) $(PLATFORM_LINKOPTIONS) -shared -Wl,-h,libgfan.so.0 -o src/libgfan.so.0.0.0 $^ $(ADDITIONALLINKOPTIONS) -lgmp -lpthread
 +	ln -s libgfan.so.0.0.0 src/libgfan.so.0
 +	ln -s libgfan.so.0 src/libgfan.so
 +
@@ -113,11 +116,14 @@
 +
 +src/gfanlib_hypersurfaceintersection.o: src/gfanlib_hypersurfaceintersection.cpp
 +	$(CXX) $(CCFLAGS) -fPIC -c $< -o $@
++
++src/interrupt.o: src/interrupt.cpp
++	$(CXX) $(CCFLAGS) -fPIC -c $< -o $@
  
  release:
  	rm -f -r $(RELEASEDIR)/*
---- gfan0.7/src/gfanlib.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib.h	2024-08-15 20:37:05.067450910 -0600
+--- gfan0.8beta/src/gfanlib.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib.h	2026-06-11 11:51:22.204202795 -0600
 @@ -8,6 +8,7 @@
  #ifndef GFANLIB_H_
  #define GFANLIB_H_

diff --git a/gfan-soplex.patch b/gfan-soplex.patch
index 16f8378..97d43c7 100644
--- a/gfan-soplex.patch
+++ b/gfan-soplex.patch
@@ -1,5 +1,22 @@
---- gfan0.7/src/lp_soplexcdd.cpp.orig	2024-08-12 13:34:07.043619886 -0600
-+++ gfan0.7/src/lp_soplexcdd.cpp	2025-11-25 20:53:41.731666019 -0700
+--- gfan0.8beta/Makefile.orig	2026-06-11 15:07:18.799236164 -0600
++++ gfan0.8beta/Makefile	2026-06-11 15:26:44.324164389 -0600
+@@ -86,11 +86,11 @@ SOPLEX_LINKOPTIONS =
+ SOPLEX_INCLUDEOPTIONS =
+ SOPLEX_OBJECTS =
+ else
+-SOPLEX_PATH = $(HOME)/math/software/soplex-1.3.2
+-SOPLEX_LINKOPTIONS = $(SOPLEX_PATH)/lib/libsoplex.linux.x86_64.gnu.opt.a -lz
++SOPLEX_PATH = /usr
++SOPLEX_LINKOPTIONS = -lsoplex -lclusol -lmpfr -ltbb -lz-ng
+ #SOPLEX_LINKOPTIONS = -lz $(SOPLEX_PATH)/lib/libsoplex.linux.x86.gnu.opt.a
+ #SOPLEX_LINKOPTIONS = -lz $(SOPLEX_PATH)/lib/libsoplex.darwin.x86.gnu.opt.a
+-SOPLEX_INCLUDEOPTIONS = -I $(SOPLEX_PATH)/src
++SOPLEX_INCLUDEOPTIONS =
+ SOPLEX_OBJECTS = lp_soplexcdd.o
+ endif
+ 
+--- gfan0.8beta/src/lp_soplexcdd.cpp.orig	2026-06-11 11:43:10.279457758 -0600
++++ gfan0.8beta/src/lp_soplexcdd.cpp	2026-06-11 11:59:07.894650840 -0600
 @@ -1,37 +1,11 @@
  #include "lp_soplexcdd.h"
  

diff --git a/gfan-warning.patch b/gfan-warning.patch
index e547c41..c20847e 100644
--- a/gfan-warning.patch
+++ b/gfan-warning.patch
@@ -1,18 +1,5 @@
---- gfan0.7/src/app_librarytest.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/app_librarytest.cpp	2024-08-12 11:05:45.720320231 -0600
-@@ -12,8 +12,8 @@
- #include "setoper.h"
- #include "cdd.h"
- #else
--#include "cdd/setoper.h"
--#include "cdd/cdd.h"
-+#include "cddlib/setoper.h"
-+#include "cddlib/cdd.h"
- #endif
- #include <iostream>
- #include <fstream>
---- gfan0.7/src/application.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/application.cpp	2024-08-12 11:05:45.720320231 -0600
+--- gfan0.8beta/src/application.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/application.cpp	2026-06-11 11:43:10.274211877 -0600
 @@ -3,6 +3,8 @@
  #include <assert.h>
  #include <stdlib.h>
@@ -39,8 +26,8 @@
  	  }
        p=p->next;
      }
---- gfan0.7/src/app_test.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/app_test.cpp	2024-08-13 10:46:14.680617406 -0600
+--- gfan0.8beta/src/app_test.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/app_test.cpp	2026-06-11 11:43:10.274596974 -0600
 @@ -1,5 +1,8 @@
  #include <iostream>
  #include <stdlib.h>
@@ -50,7 +37,7 @@
  #include "parser.h"
  #include "printer.h"
  #include "polynomial.h"
-@@ -813,7 +816,7 @@ int testGfanLib()
+@@ -819,7 +822,7 @@ int testGfanLib()
  		int largest=10+2;
  		vector<int> halfOpenConesStatistics(largest+1);
  		vector<int> nonEmptyIntersectionsStatistics(largest+1);
@@ -59,7 +46,7 @@
  		{
  			vector<HalfOpenCone<CircuitTableInt32> > f;
  			vector<gfan::Matrix<CircuitTableInt32> > configurations=convertMatrixVectorT(MixedVolumeExamples::cyclic(k));
-@@ -1333,11 +1336,7 @@ if(0)			{
+@@ -1339,11 +1342,7 @@ if(0)			{
  		  {
  			  outputName=outputName+"New";
  		  }
@@ -72,7 +59,7 @@
  		  string command3="cat <"+input+"|"+string(command2)+">"+outputName;
  		  cerr<<"Running command:\""<<command3<<"\""<<endl;
  		  err|=system(command3.c_str());
-@@ -1351,24 +1350,17 @@ if(0)			{
+@@ -1357,24 +1356,17 @@ if(0)			{
  
    list<string> subFolderNames()
    {
@@ -105,17 +92,8 @@
  	  return ret;
    }
  
-@@ -1379,7 +1371,7 @@ if(0)			{
- //		  gfan::Matrix<CircuitTableInteger>::readMatrix(cin,4);
- 	  }
- 
--	  if(developerTestOption.getValue()!="testsuite")
-+	  if(strcmp(developerTestOption.getValue(),"testsuite") != 0)
- 	  {
- //    lpRationalFunctionTest();
- //    testRationalFunctionField();
---- gfan0.7/src/bergman.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/bergman.cpp	2024-08-12 11:05:45.721320218 -0600
+--- gfan0.8beta/src/bergman.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/bergman.cpp	2026-06-11 11:43:10.275159472 -0600
 @@ -327,7 +327,7 @@ log0 AsciiPrinter(Stderr).printPolynomia
        if(doesPermutationFixCone(*j))numFixed++;
      
@@ -125,8 +103,8 @@
    }
  
    void markFacet(IntegerVector const &relIntRidgeVector)
---- gfan0.7/src/breadthfirstsearch.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/breadthfirstsearch.cpp	2024-08-12 11:05:45.722320204 -0600
+--- gfan0.8beta/src/breadthfirstsearch.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/breadthfirstsearch.cpp	2026-06-11 11:43:10.275510155 -0600
 @@ -260,7 +260,7 @@ public:
        }
  
@@ -136,8 +114,8 @@
    }
  };
  
---- gfan0.7/src/bsptree.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/bsptree.cpp	2024-08-12 11:05:45.722320204 -0600
+--- gfan0.8beta/src/bsptree.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/bsptree.cpp	2026-06-11 11:43:10.275830592 -0600
 @@ -131,7 +131,8 @@ public:
                p=&(i->first);
              }
@@ -148,8 +126,8 @@
      }
      return normal;
      }
---- gfan0.7/src/enumeration.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/enumeration.h	2024-08-12 11:05:45.722320204 -0600
+--- gfan0.8beta/src/enumeration.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/enumeration.h	2026-06-11 11:43:10.276115002 -0600
 @@ -36,7 +36,7 @@ class EnumerationFilePrinter: public Enu
    FILE *file;
   public:
@@ -167,8 +145,8 @@
    void setEnumerationTarget(EnumerationTarget *target){this->target=target;}
    virtual void enumerate(const PolynomialSet &groebnerBasis){}
  };
---- gfan0.7/src/field.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/field.h	2024-08-13 10:48:41.438830878 -0600
+--- gfan0.8beta/src/field.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/field.h	2026-06-11 11:43:10.276346323 -0600
 @@ -207,7 +207,7 @@ class FieldElementImplementation
    virtual int getIntegerRepresentation()const
    {
@@ -196,8 +174,8 @@
    }
      virtual int getCharacteristic()const=0;
      virtual const char *name()=0;
---- gfan0.7/src/field_rationalfunctions2.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/field_rationalfunctions2.cpp	2024-08-13 10:49:15.909411259 -0600
+--- gfan0.8beta/src/field_rationalfunctions2.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/field_rationalfunctions2.cpp	2026-06-11 11:43:10.276614372 -0600
 @@ -509,7 +509,7 @@ class FieldElementRationalFunction2 : pu
  
    static string LaTeXTranslator(const string &s)
@@ -207,9 +185,9 @@
  /*    int startIndex=0;
      string sign;
      if(s[0]=='-')
---- gfan0.7/src/field_rationals.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/field_rationals.cpp	2024-08-12 13:56:15.163561256 -0600
-@@ -397,7 +397,7 @@ const char *FieldRationalsImplementation
+--- gfan0.8beta/src/field_rationals.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/field_rationals.cpp	2026-06-11 11:43:10.276924680 -0600
+@@ -404,7 +404,7 @@ const char *FieldRationalsImplementation
  
  /*FieldRationals::FieldRationals():
    Field(new FieldRationalsImplementation())
@@ -218,8 +196,8 @@
    /*  fprintf(Stderr,"Adding field rationals\n");
    next=list;
    list=this;
---- gfan0.7/src/gfanlib_matrix.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_matrix.h	2024-08-12 13:31:35.566692074 -0600
+--- gfan0.8beta/src/gfanlib_matrix.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_matrix.h	2026-06-11 11:43:10.277234758 -0600
 @@ -45,7 +45,7 @@ template <class T>
  class HasMemberType_##Type
  {
@@ -229,20 +207,9 @@
  	using No=char[1];
  	struct Fallback {struct Type{};};
  	struct Derived:T,Fallback{};
---- gfan0.7/src/gfanlib_memoryresource.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_memoryresource.h	2024-08-12 13:31:08.231066021 -0600
-@@ -34,7 +34,7 @@ void test() {
- 	//				 t.a=0;
- 				 for(int i=0;i<100000;i++)
- 					 {
--						 std::experimental::pmr::vector<MyInt> A(100000,t/*	,&stackResource/);
-+						 std::experimental::pmr::vector<MyInt> A(100000,t,&stackResource);
- 						 //A.resize(100000,MyInt{});
- 					 }
- 			 }
---- gfan0.7/src/gfanlib_symmetry.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_symmetry.cpp	2024-08-12 11:05:45.722320204 -0600
-@@ -423,7 +423,7 @@ int SymmetryGroup::orbitSize(ZVector con
+--- gfan0.8beta/src/gfanlib_symmetry.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_symmetry.cpp	2026-06-11 11:43:10.277800341 -0600
+@@ -484,7 +484,7 @@ int SymmetryGroup::orbitSize(ZVector con
            if(doesFix)numFixed++;
          }
      }
@@ -251,9 +218,9 @@
  }
  
  
---- gfan0.7/src/gfanlib_tableau.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_tableau.h	2024-08-13 10:59:21.016045143 -0600
-@@ -845,7 +845,7 @@ template <class mvtyp> class Tableau{
+--- gfan0.8beta/src/gfanlib_tableau.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_tableau.h	2026-06-11 11:43:10.278266960 -0600
+@@ -846,7 +846,7 @@ template <class mvtyp> class Tableau{
  					return true;//break; //If this is reached we are ok
  				}
  			}
@@ -262,7 +229,7 @@
  		}
  		void checkInLexTriangulation()
  		{
-@@ -3059,7 +3059,7 @@ static bool isSubsetOf(vector<int> const
+@@ -3178,7 +3178,7 @@ static bool isSubsetOf(vector<int> const
  //		    polymakeFile.writeCardinalProperty("DIM",getMaxDim());
  		    polymakeFile.writeCardinalProperty("LINEALITY_DIM",linealitySpace.getHeight());
  //		    if(flags&&FPF_boundedInfo)polymakeFile.writeMatrixProperty("RAYS",toZMatrix(vertices),true);//??????
@@ -271,19 +238,8 @@
  		    polymakeFile.writeCardinalProperty("N_RAYS",vertices.getHeight());
  
  		    polymakeFile.writeMatrixProperty("LINEALITY_SPACE",toZMatrix(linealitySpace),ambientDimension);
---- gfan0.7/src/gfanlib_zcone.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_zcone.cpp	2024-08-12 11:05:45.723320190 -0600
-@@ -16,8 +16,8 @@
- #include "setoper.h"
- #include "cdd.h"
- #else
--#include "cdd/setoper.h"
--#include "cdd/cdd.h"
-+#include "cddlib/setoper.h"
-+#include "cddlib/cdd.h"
- #endif
- //}
- 
+--- gfan0.8beta/src/gfanlib_zcone.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_zcone.cpp	2026-06-11 11:43:10.278728911 -0600
 @@ -52,8 +52,8 @@ namespace gfan{
  				  "dd_free_global_constants()\n"
  				  "in your deinitialisation code (only available for cddlib version>=094d).\n"
@@ -295,9 +251,9 @@
  				  "\n"
  				  "Alternatively, you may call gfan:initializeCddlibIfRequired() and deinitializeCddlibIfRequired()\n"
  				  "if gfanlib is the only code using cddlib. If at some point cddlib is no longer required by gfanlib\n"
---- gfan0.7/src/gfanlib_z.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/gfanlib_z.h	2024-08-12 13:53:41.429631248 -0600
-@@ -218,17 +218,17 @@ namespace gfan{
+--- gfan0.8beta/src/gfanlib_z.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/gfanlib_z.h	2026-06-11 11:43:10.279006498 -0600
+@@ -249,17 +249,17 @@ static std::string mpzToString(const __m
    {
  	  return !(((long int)(value->_mp_d))&1);
    }
@@ -319,23 +275,8 @@
    {
  	  assert(!hasLimbs());
  	  return int32_t(value[0]._mp_alloc);
---- gfan0.7/src/lp_cdd.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/lp_cdd.cpp	2024-08-12 11:05:45.724320177 -0600
-@@ -5,9 +5,9 @@
- #include "cdd.h"
- #include "cdd_f.h"
- #else
--#include "cdd/setoper.h"
--#include "cdd/cdd.h"
--#include "cdd/cdd_f.h"
-+#include "cddlib/setoper.h"
-+#include "cddlib/cdd.h"
-+#include "cddlib/cdd_f.h"
- #endif
- //}
- #include "termorder.h"
---- gfan0.7/src/lp.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/lp.cpp	2024-08-13 10:49:50.357991909 -0600
+--- gfan0.8beta/src/lp.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/lp.cpp	2026-06-11 11:43:10.279248819 -0600
 @@ -58,7 +58,7 @@ bool LpSolver::interiorPoint(const Integ
  bool LpSolver::hasInteriorPoint(const IntegerVectorList &g, bool strictlyPositive, IntegerVector const *equalitySet)
  {
@@ -354,8 +295,8 @@
  }
  
  static LpSolver *soplex,*soplexCddGmp,*huber,*cdd,*cddgmp,*default_;
---- gfan0.7/src/lp_soplexcdd.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/lp_soplexcdd.cpp	2024-08-12 13:34:07.043619886 -0600
+--- gfan0.8beta/src/lp_soplexcdd.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/lp_soplexcdd.cpp	2026-06-11 11:43:10.279457758 -0600
 @@ -306,7 +306,7 @@ static bool isInfeasibilityCertificate(I
    return true;
  }
@@ -365,8 +306,8 @@
  		 /*		 double prod=0;
  		 for(int i=0;i<work.nRows();i++)
  		   {prod+=(*j)[i]*certificate[i];
---- gfan0.7/src/monomial.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/monomial.cpp	2024-08-12 13:41:31.558539133 -0600
+--- gfan0.8beta/src/monomial.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/monomial.cpp	2026-06-11 11:49:00.468455294 -0600
 @@ -5,7 +5,7 @@
  
  Monomial::Monomial(PolynomialRing const &r,const IntegerVector &v):exponent(v),theRing(r)
@@ -380,13 +321,13 @@
    const int sign=1;
  
    bool variablePrinted=false;
--  for(int i=0;i<exponent.size();i++)if(exponent[i]*sign>0)
-+  for(int i=0;(size_t)i<exponent.size();i++)if(exponent[i]*sign>0)
+-  for(int i=0;i<exponent.size();i++)if(exponent[i]*sign!=0)
++  for(int i=0;(size_t)i<exponent.size();i++)if(exponent[i]*sign!=0)
      {
        s << getRing().getVariableName(i);
        if(int(exponent[i]*sign)!=1)
---- gfan0.7/src/nbody.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/nbody.cpp	2024-08-13 10:50:08.557770361 -0600
+--- gfan0.8beta/src/nbody.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/nbody.cpp	2026-06-11 11:43:10.279990220 -0600
 @@ -16,7 +16,7 @@ static int rIndex(int i, int j, int N, b
  	if((I==i)&&(J==j))return r;
  	r++;
@@ -396,8 +337,8 @@
  }
  
  static int sIndex(int i, int j, int N, bool withMasses)
---- gfan0.7/src/packedmonomial.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/packedmonomial.cpp	2024-08-13 10:50:25.380565573 -0600
+--- gfan0.8beta/src/packedmonomial.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/packedmonomial.cpp	2026-06-11 11:43:10.280227011 -0600
 @@ -18,7 +18,7 @@ vector<MonomialType> minimized(vector<Mo
  {
  	vector<MonomialType> temp(generators);
@@ -407,9 +348,9 @@
  //	sort(temp.begin(),temp.end());
  /*	g->sort(polynomialOrder(LexicographicTermOrder()));
  
---- gfan0.7/src/parser.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/parser.cpp	2024-08-13 10:50:41.716366715 -0600
-@@ -637,7 +637,7 @@ Field CharacterBasedParser::parseField()
+--- gfan0.8beta/src/parser.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/parser.cpp	2026-06-11 11:43:10.280449686 -0600
+@@ -639,7 +639,7 @@ Field CharacterBasedParser::parseField()
      }
  
    parserError("field",c);
@@ -418,8 +359,8 @@
  }
  
  
---- gfan0.7/src/polyhedralfan.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/polyhedralfan.cpp	2024-08-13 10:51:08.061046009 -0600
+--- gfan0.8beta/src/polyhedralfan.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/polyhedralfan.cpp	2026-06-11 11:43:10.280709791 -0600
 @@ -1671,7 +1671,7 @@ PolyhedralCone PolyhedralFan::coneContai
    for(PolyhedralConeList::const_iterator i=cones.begin();i!=cones.end();i++)
      if(i->contains(v))return i->faceContaining(v);
@@ -429,8 +370,8 @@
  }
  
  
---- gfan0.7/src/polymakefile.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/polymakefile.cpp	2024-08-13 10:51:47.299568351 -0600
+--- gfan0.8beta/src/polymakefile.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/polymakefile.cpp	2026-06-11 11:43:10.281005571 -0600
 @@ -328,7 +328,7 @@ void PolymakeFile::writeMatrixProperty(c
  
  IntegerMatrix PolymakeFile::readArrayArrayIntProperty(const char *p, int width)
@@ -449,8 +390,8 @@
      {
        //      fprintf(Stderr,"?\n");
        int r;
---- gfan0.7/src/symmetry.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/symmetry.cpp	2024-08-12 11:05:45.724320177 -0600
+--- gfan0.8beta/src/symmetry.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/symmetry.cpp	2026-06-11 11:43:10.281242934 -0600
 @@ -580,7 +580,7 @@ int SymmetryGroup::orbitSize(IntegerVect
            if(doesFix)numFixed++;
          }
@@ -460,8 +401,8 @@
  }
  
  
---- gfan0.7/src/vektor.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/vektor.cpp	2024-08-12 13:37:34.017788560 -0600
+--- gfan0.8beta/src/vektor.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/vektor.cpp	2026-06-11 11:43:10.281494192 -0600
 @@ -96,17 +96,17 @@ int gcdGFAN(int r, int s)
  int gcdOfVector(IntegerVector const &v)
  {
@@ -483,8 +424,8 @@
  	  {
  	  ret=gcdGFAN(ret,v[i]);
  	  if(ret==1)break;
---- gfan0.7/src/vektor.h.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/vektor.h	2024-08-12 14:56:31.328176502 -0600
+--- gfan0.8beta/src/vektor.h.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/vektor.h	2026-06-11 11:43:10.281728869 -0600
 @@ -1,6 +1,7 @@
  #ifndef VEKTOR_H_INCLUDED
  #define VEKTOR_H_INCLUDED
@@ -800,8 +741,8 @@
      }
  };
  
---- gfan0.7/src/wallideal.cpp.orig	2024-08-12 10:00:15.000000000 -0600
-+++ gfan0.7/src/wallideal.cpp	2024-08-12 13:30:10.087861417 -0600
+--- gfan0.8beta/src/wallideal.cpp.orig	2026-05-07 14:06:07.000000000 -0600
++++ gfan0.8beta/src/wallideal.cpp	2026-06-11 11:43:10.282007608 -0600
 @@ -951,7 +951,7 @@ bool fastIsFacet(IntegerVectorList const
  	}
  

diff --git a/gfan.spec b/gfan.spec
index 21029b0..ee603d5 100644
--- a/gfan.spec
+++ b/gfan.spec
@@ -1,10 +1,13 @@
+%global basever 0.8
+%global prerel  beta
+
 Name:           gfan
-Version:        0.7
+Version:        %{basever}~%{prerel}
 Release:        %autorelease
 Summary:        Software for Computing Gröbner Fans and Tropical Varieties
 License:        GPL-2.0-or-later
 URL:            https://math.au.dk/~jensen/software/gfan/gfan.html
-Source:         https://math.au.dk/~jensen/software/%{name}/%{name}%{version}.tar.gz
+Source:         https://math.au.dk/~jensen/software/%{name}/%{name}%{basever}%{prerel}.tar.gz
 # Sent upstream 2011 Apr 27.  Fix warnings that could indicate runtime
 # problems.
 Patch:          %{name}-warning.patch
@@ -13,26 +16,40 @@ Patch:          %{name}-shared.patch
 # Adapt to the version of SoPlex packaged for Fedora
 Patch:          %{name}-soplex.patch
 # The C++20 standard is too new for Singular, leading to many build failures.
-# Work around the only place in the code that needs C++20.
 Patch:          %{name}-c++20.patch
 # Fix Singular FTBFS due to missing gcd function for Rational
 Patch:          %{name}-gcd.patch
 # Fix Singular abort due to accessing an empty vector
 Patch:          %{name}-multiplicities.patch
+# Fix test failure due to calling back() on an empty vector
+Patch:          %{name}-empty-coneStack.patch
 
 # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
 ExcludeArch:    %{ix86}
 
-BuildRequires:  cddlib-devel
 BuildRequires:  gcc-c++
 BuildRequires:  ghostscript-tools-dvipdf
 BuildRequires:  glibc-langpack-en
-BuildRequires:  gmp-devel
 BuildRequires:  libsoplex-devel
 BuildRequires:  make
-BuildRequires:  tex(latex)
+BuildRequires:  pkgconfig(cddlib)
+BuildRequires:  pkgconfig(gmp)
+BuildRequires:  pkgconfig(tbb)
+BuildRequires:  tex(a4.sty)
+BuildRequires:  tex(alltt.sty)
+BuildRequires:  tex(amsfonts.sty)
+BuildRequires:  tex(babel.sty)
+BuildRequires:  tex(color.sty)
+BuildRequires:  tex(english.ldf)
+BuildRequires:  tex(epsfig.sty)
+BuildRequires:  tex(hyperref.sty)
+BuildRequires:  tex(latexsym.sty)
+BuildRequires:  tex(theorem.sty)
 BuildRequires:  tex(ulem.sty)
-BuildRequires:  TOPCOM
+BuildRequires:  tex(url.sty)
+BuildRequires:  texlive-bibtex
+BuildRequires:  texlive-ec
+BuildRequires:  texlive-latex
 
 Requires:       libgfan%{_isa} = %{version}-%{release}
 
@@ -84,7 +101,7 @@ The libgfan-devel package contains libraries and header files for developing
 applications that use libgfan.
 
 %prep
-%autosetup -n %{name}%{version} -p1
+%autosetup -n %{name}%{basever}%{prerel} -p1
 
 %conf
 # Point to where the TOPCOM binaries will be installed
@@ -98,23 +115,19 @@ rm -f src/minkowskisum.cpp.orig
 rm -f homepage/Makefile
 
 %build
-# Enable use of SoPlex
-sed -e 's|^\(SOPLEX_PATH = \).*|\1%{_prefix}|' \
-    -e 's|^\(SOPLEX_LINKOPTIONS = \).*|\1%{build_ldflags} -lsoplex -lclusol -lmpfr -ltbb -lz-ng|' \
-    -e 's|^\(SOPLEX_INCLUDEOPTIONS = \).*|\1|' \
-    -i Makefile
-
 %make_build CC=gcc CXX=g++ \
-  OPTFLAGS='%{build_cxxflags} -DGMPRATIONAL -DNDEBUG -I%{_includedir}/cddlib' \
+  OPTFLAGS='%{build_cxxflags} -DGMPRATIONAL -DNDEBUG -DNOCDDPREFIX -I%{_includedir}/cddlib' \
+  PLATFORM_LINKOPTIONS='%{build_ldflags} -ltbb' \
   PREFIX=%{_prefix} \
   soplex=true
 
 # Build the manual
+# We can't invoke pdflatex directly due to non-PDF specials in the source
 cd doc
-latex manual.tex
+latex -interaction=nonstopmode manual.tex
 bibtex manual
-latex manual.tex
-latex manual.tex
+latex -interaction=nonstopmode manual.tex
+latex -interaction=nonstopmode manual.tex
 dvipdf manual.dvi manual.pdf
 cd -
 

diff --git a/sources b/sources
index 6879f02..8476a43 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (gfan0.7.tar.gz) = ba738dd0212882a0be6305c7d60081137146948a1fc308818d21b94520b167b63864cdf4bc51b19a1d9b407d9523f3152dee3e83b448c21070bcb434bb5e44fc
+SHA512 (gfan0.8beta.tar.gz) = 94115e0622b0c5c0296a132657691813835edb7d15013325dc959f50607049756a1d914fdc2a37efe77ea617d5b1c30dfae615efcd06e202d85041c9eb8b9a22

                 reply	other threads:[~2026-06-20 13:53 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178196363756.1.420775271679348911.rpms-gfan-8316b24c39f9@fedoraproject.org \
    --to=loganjerry@gmail.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox