From 873b27f5ba2a4a13ebb1f65eb6d1c031a7399ff8 Mon Sep 17 00:00:00 2001 From: Mark Chappell Date: Wed, 3 Mar 2010 09:38:28 +0000 Subject: [PATCH 01/53] 4ti2: Initial CVS Import for devel --- .cvsignore | 2 + 4ti2.module.in | 5 +++ 4ti2.spec | 103 +++++++++++++++++++++++++++++++++++++++++++++++++ import.log | 1 + sources | 2 + 5 files changed, 113 insertions(+) create mode 100644 4ti2.module.in create mode 100644 4ti2.spec create mode 100644 import.log diff --git a/.cvsignore b/.cvsignore index e69de29..bcc4e76 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1,2 @@ +4ti2-1.3.2.tar.gz +4ti2_manual.pdf diff --git a/4ti2.module.in b/4ti2.module.in new file mode 100644 index 0000000..c42ec18 --- /dev/null +++ b/4ti2.module.in @@ -0,0 +1,5 @@ +#%Module 1.0 +# +# 4ti2 module for use with 'environment-modules' package: +# +prepend-path PATH @LIBDIR@/bin diff --git a/4ti2.spec b/4ti2.spec new file mode 100644 index 0000000..d490d66 --- /dev/null +++ b/4ti2.spec @@ -0,0 +1,103 @@ +Name: 4ti2 +Version: 1.3.2 +Release: 5%{?dist} +Summary: A software package for problems on linear spaces + +Group: System Environment/Libraries +License: GPLv2+ +URL: http://www.4ti2.de/ +Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz +Source1: http://www.4ti2.de/4ti2_manual.pdf +Source2: 4ti2.module.in +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Requires: environment-modules +BuildRequires: gmp-devel +BuildRequires: glpk-devel + +%description +A software package for algebraic, geometric and combinatorial +problems on linear spaces. + +This package uses Environment Modules, to load the binaries onto +your PATH you will need to run module load %{name}-%{_arch} + +%prep +%setup -q +cp -p %{SOURCE1} . + +%build +CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ +CFLAGS="%{optflags} -I%{_includedir}/glpk" \ +./configure --disable-shared --disable-static \ + --prefix=%{_libdir}/%{name} \ + --libdir=%{_libdir}/%{name}/lib/ \ + --bindir=%{_libdir}/%{name}/bin/ +perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} + +make install-exec DESTDIR=%{buildroot} + +# Make the environment-modules file +mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ +# Since we're doing our own substitution here, use our own definitions. +sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;' < %SOURCE2 >%{buildroot}%{_datadir}/Modules/modulefiles/%{name}-%{_arch} + +# The libraries are not really fit for use outside the package. +rm -rf %{buildroot}/%{_libdir}/%{name}/lib* + +%check +make check + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%doc COPYING TODO 4ti2_manual.pdf +%{_datadir}/Modules/modulefiles/%{name}-%{_arch} +%{_libdir}/%{name}/bin/output +%{_libdir}/%{name}/bin/4ti2gmp +%{_libdir}/%{name}/bin/4ti2int32 +%{_libdir}/%{name}/bin/4ti2int64 +%{_libdir}/%{name}/bin/circuits +%{_libdir}/%{name}/bin/genmodel +%{_libdir}/%{name}/bin/gensymm +%{_libdir}/%{name}/bin/graver +%{_libdir}/%{name}/bin/groebner +%{_libdir}/%{name}/bin/hilbert +%{_libdir}/%{name}/bin/markov +%{_libdir}/%{name}/bin/minimize +%{_libdir}/%{name}/bin/normalform +%{_libdir}/%{name}/bin/ppi +%{_libdir}/%{name}/bin/qsolve +%{_libdir}/%{name}/bin/rays +%{_libdir}/%{name}/bin/walk +%{_libdir}/%{name}/bin/zbasis +%{_libdir}/%{name}/bin/zsolve + +%changelog +* Tue Mar 02 2010 Mark Chappell - 1.3.2-5 +- Add note to description about environment modules + +* Tue Mar 02 2010 Mark Chappell - 1.3.2-4 +- Switch to using modules +- Tag with the correct licence (GPLv2+) + +* Thu Feb 25 2010 Mark Chappell - 1.3.2-3 +- Preserve time stamp on 4ti2_manual.pdf +- Whitespace cleanup +- Remove obsolete post and portun calls +- Manually specify binaries + +* Thu Feb 25 2010 Mark Chappell - 1.3.2-2 +- Tidy up inconsistant use of macros +- Remove empty devel package +- Include 4ti2 manual + +* Wed Feb 17 2010 M D Chappell - 1.3.2-1 +- Initial build diff --git a/import.log b/import.log new file mode 100644 index 0000000..300b6fc --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +ti2-1_3_2-5_fc12:HEAD:4ti2-1.3.2-5.fc12.src.rpm:1267609081 diff --git a/sources b/sources index e69de29..c25f9de 100644 --- a/sources +++ b/sources @@ -0,0 +1,2 @@ +93367e63944d8bb18192c4984544ed0d 4ti2-1.3.2.tar.gz +1b6fb847fc0eacddfaaef3d00c8bb7ba 4ti2_manual.pdf From b82ff107fe02aeab653ba1e0722bd0729f492e24 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 08:45:08 +0000 Subject: [PATCH 02/53] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- import.log | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 import.log diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index a0100a6..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: 4ti2 -# $Id$ -NAME := 4ti2 -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/import.log b/import.log deleted file mode 100644 index 300b6fc..0000000 --- a/import.log +++ /dev/null @@ -1 +0,0 @@ -ti2-1_3_2-5_fc12:HEAD:4ti2-1.3.2-5.fc12.src.rpm:1267609081 From 37fc03c5c28a194959731c7efbe4bb851f937b40 Mon Sep 17 00:00:00 2001 From: Mark Chappell Date: Fri, 21 May 2010 14:40:22 +0000 Subject: [PATCH 03/53] Own missing directories --- 4ti2.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index d490d66..cc09eed 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -59,6 +59,8 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc COPYING TODO 4ti2_manual.pdf +%dir %{_libdir}/%{name}/bin +%dir %{_libdir}/%{name} %{_datadir}/Modules/modulefiles/%{name}-%{_arch} %{_libdir}/%{name}/bin/output %{_libdir}/%{name}/bin/4ti2gmp @@ -81,6 +83,9 @@ rm -rf %{buildroot} %{_libdir}/%{name}/bin/zsolve %changelog +* Fri May 21 2010 Mark Chappell - 1.3.2-6 +- Take ownership of 2 directories we created + * Tue Mar 02 2010 Mark Chappell - 1.3.2-5 - Add note to description about environment modules From 85627e700620c8e5d62fac8fdf306f5f926a68e5 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 7 Feb 2011 16:55:56 -0600 Subject: [PATCH 04/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index cc09eed..f898169 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 6%{?dist} +Release: 7%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -83,6 +83,9 @@ rm -rf %{buildroot} %{_libdir}/%{name}/bin/zsolve %changelog +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Fri May 21 2010 Mark Chappell - 1.3.2-6 - Take ownership of 2 directories we created From 46321093fa9363a55b54e5bd4d6dfbb98e403f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcela=20Ma=C5=A1l=C3=A1=C5=88ov=C3=A1?= Date: Wed, 21 Sep 2011 12:21:53 +0200 Subject: [PATCH 05/53] rebuild with new gmp --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index f898169..8086556 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 7%{?dist} +Release: 7%{?dist}.1 Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -83,6 +83,9 @@ rm -rf %{buildroot} %{_libdir}/%{name}/bin/zsolve %changelog +* Wed Sep 21 2011 Peter Schiffer - 1.3.2-7.1 +- rebuild with new gmp + * Mon Feb 07 2011 Fedora Release Engineering - 1.3.2-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From 7ae6048e64fa73784439085f0f89785174ccbbf1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 16 Nov 2011 13:56:39 +0000 Subject: [PATCH 06/53] Rebuild for new gmp --- 4ti2.spec | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 8086556..171baa5 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 7%{?dist}.1 +Release: 8%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -9,7 +9,6 @@ URL: http://www.4ti2.de/ Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz Source1: http://www.4ti2.de/4ti2_manual.pdf Source2: 4ti2.module.in -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: environment-modules BuildRequires: gmp-devel @@ -38,8 +37,6 @@ perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$li make %{?_smp_mflags} %install -rm -rf %{buildroot} - make install-exec DESTDIR=%{buildroot} # Make the environment-modules file @@ -53,9 +50,6 @@ rm -rf %{buildroot}/%{_libdir}/%{name}/lib* %check make check -%clean -rm -rf %{buildroot} - %files %defattr(-,root,root,-) %doc COPYING TODO 4ti2_manual.pdf @@ -83,6 +77,9 @@ rm -rf %{buildroot} %{_libdir}/%{name}/bin/zsolve %changelog +* Wed Nov 16 2011 Peter Robinson - 1.3.2-8 +- Rebuild for new gmp + * Wed Sep 21 2011 Peter Schiffer - 1.3.2-7.1 - rebuild with new gmp From 8321756623cd5a478a70dc0778cfddb49241464b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 12 Jan 2012 14:11:18 -0600 Subject: [PATCH 07/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 171baa5..5ab29ae 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 8%{?dist} +Release: 9%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -77,6 +77,9 @@ make check %{_libdir}/%{name}/bin/zsolve %changelog +* Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Wed Nov 16 2011 Peter Robinson - 1.3.2-8 - Rebuild for new gmp From 4dfef1fc6eb75171943fd3fc25bb52c40971d617 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 28 Feb 2012 11:26:19 -0600 Subject: [PATCH 08/53] - Rebuilt for c++ ABI breakage --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 5ab29ae..863afd4 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 9%{?dist} +Release: 10%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -77,6 +77,9 @@ make check %{_libdir}/%{name}/bin/zsolve %changelog +* Tue Feb 28 2012 Fedora Release Engineering - 1.3.2-10 +- Rebuilt for c++ ABI breakage + * Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From 3d04b28458c23937d77128cc9bfede1c5fa5dc14 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 5 Mar 2012 14:49:26 -0500 Subject: [PATCH 09/53] fix ftbfs --- 4ti2-1.3.2-gcc47.patch | 631 +++++++++++++++++++++++++++++++++++++++++ 4ti2.spec | 8 +- 2 files changed, 637 insertions(+), 2 deletions(-) create mode 100644 4ti2-1.3.2-gcc47.patch diff --git a/4ti2-1.3.2-gcc47.patch b/4ti2-1.3.2-gcc47.patch new file mode 100644 index 0000000..faedd2a --- /dev/null +++ b/4ti2-1.3.2-gcc47.patch @@ -0,0 +1,631 @@ +diff -up 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 2012-03-05 14:25:16.459407811 -0500 ++++ 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 2012-03-05 14:32:14.090831152 -0500 +@@ -152,23 +152,23 @@ CircuitMatrixAlgorithm::comput + ) + + // Find the next column. +- Index next_col = next_column(vs, remaining); ++ Index next_col = this->next_column(vs, remaining); + + int start = 0; int end = vs.get_number(); int middle; + // We sort the vectors into nonzeros and then zeros. +- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); + int nonzero_start = start, nonzero_end = middle; + //int zero_start = middle, zero_end = end; + // We sort the nonzeros into rays and circuits. +- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); ++ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); + int ray_start = nonzero_start, ray_end = middle; + int cir_start = middle, cir_end = nonzero_end; + // We sort the rays into positives and then negatives. +- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_ray_start = ray_start, pos_ray_end = middle; + int neg_ray_start = middle, neg_ray_end = ray_end; + // We sort the circuits into positives and then negatives. +- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_cir_start = cir_start, pos_cir_end = middle; + int neg_cir_start = middle, neg_cir_end = cir_end; + +@@ -185,8 +185,8 @@ CircuitMatrixAlgorithm::comput + + // Switch the positive and negative supports, so that it is as if all + // vectors have a positive entry in the next column. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + matrix = orig_matrix; + int remaining_row = upper_triangle(matrix, remaining, 0); +@@ -212,15 +212,15 @@ CircuitMatrixAlgorithm::comput + rays.insert(rays.end(), vs.get_number()-previous_size, false); + + // Switch back the positive and negative supports. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + // Update the supp vectors for the next_col. +- update_supports(supps, next_col, nonzero_start, nonzero_end); +- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); +- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); +- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); +- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); ++ this->update_supports(supps, next_col, nonzero_start, nonzero_end); ++ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); ++ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); ++ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); ++ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); + + *out << "\r"; + *out << " Left = " << std::setw(3) << num_remaining; +diff -up 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 2012-03-05 14:21:20.103997937 -0500 ++++ 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2012-03-05 14:31:39.629208802 -0500 +@@ -188,23 +188,23 @@ CircuitSupportAlgorithm::compu + ) + + // Find the next column. +- Index next_col = next_column(vs, remaining); ++ Index next_col = this->next_column(vs, remaining); + + int start = 0; int end = vs.get_number(); int middle; + // We sort the vectors into nonzeros and then zeros. +- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); + int nonzero_start = start, nonzero_end = middle; + //int zero_start = middle, zero_end = end; + // We sort the nonzeros into rays and circuits. +- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); ++ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); + int ray_start = nonzero_start, ray_end = middle; + int cir_start = middle, cir_end = nonzero_end; + // We sort the rays into positives and then negatives. +- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_ray_start = ray_start, pos_ray_end = middle; + int neg_ray_start = middle, neg_ray_end = ray_end; + // We sort the circuits into positives and the negatives. +- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_cir_start = cir_start, pos_cir_end = middle; + int neg_cir_start = middle, neg_cir_end = cir_end; + +@@ -233,8 +233,8 @@ CircuitSupportAlgorithm::compu + + // Switch the positive and negative supports, so that it is as if all + // vectors have a positive entry in the next column. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + //DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";) + int previous_size = vs.get_number(); +@@ -258,19 +258,19 @@ CircuitSupportAlgorithm::compu + rays.insert(rays.end(), vs.get_number()-previous_size, false); + + // Switch back the positive and negative supports. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + // Update the supp vectors for the next_col. +- update_supports(supps, next_col, nonzero_start, nonzero_end); +- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); +- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); +- update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); +- update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); +- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); +- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); +- update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); +- update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); ++ this->update_supports(supps, next_col, nonzero_start, nonzero_end); ++ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); ++ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); ++ this->update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); ++ this->update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); ++ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); ++ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); ++ this->update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); ++ this->update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); + + *out << "\r"; + *out << " Left = " << std::setw(3) << num_remaining; +diff -up 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 2008-11-14 21:08:37.000000000 -0500 ++++ 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 2012-03-05 14:28:04.450566861 -0500 +@@ -146,7 +146,7 @@ RayMatrixAlgorithm::compute1( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -161,7 +161,7 @@ RayMatrixAlgorithm::compute1( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -218,7 +218,7 @@ RayMatrixAlgorithm::compute1( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + continue; +@@ -226,14 +226,14 @@ RayMatrixAlgorithm::compute1( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + continue; + } + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -351,7 +351,7 @@ RayMatrixAlgorithm::compute0( + { + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -366,7 +366,7 @@ RayMatrixAlgorithm::compute0( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -416,7 +416,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -442,7 +442,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_one_diff_added; +@@ -452,7 +452,7 @@ RayMatrixAlgorithm::compute0( + + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -468,7 +468,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -600,7 +600,7 @@ RayMatrixAlgorithm::compute2( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -615,7 +615,7 @@ RayMatrixAlgorithm::compute2( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -665,7 +665,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -689,7 +689,7 @@ RayMatrixAlgorithm::compute2( + { + if (fathers[r1] == r2 || fathers[r2] == r1) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + //++num_fathers; +@@ -705,7 +705,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + //++num_one_diff_added; +@@ -714,7 +714,7 @@ RayMatrixAlgorithm::compute2( + #endif + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -730,7 +730,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -865,7 +865,7 @@ RayMatrixAlgorithm::compute3( + DEBUG_4ti2(unsigned long long int num_checks = 0;) + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -880,7 +880,7 @@ RayMatrixAlgorithm::compute3( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";) +@@ -944,7 +944,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -959,7 +959,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -984,7 +984,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -996,7 +996,7 @@ RayMatrixAlgorithm::compute3( + DEBUG_4ti2(++num_checks;) + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -1012,7 +1012,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +diff -up 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 2012-03-05 14:23:20.076683203 -0500 ++++ 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 2012-03-05 14:28:38.437194415 -0500 +@@ -138,7 +138,7 @@ RaySupportAlgorithm::compute0( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -153,7 +153,7 @@ RaySupportAlgorithm::compute0( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -206,7 +206,7 @@ RaySupportAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -226,7 +226,7 @@ RaySupportAlgorithm::compute0( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -337,7 +337,7 @@ RaySupportAlgorithm::compute1( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -352,7 +352,7 @@ RaySupportAlgorithm::compute1( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -404,7 +404,7 @@ RaySupportAlgorithm::compute1( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -424,7 +424,7 @@ RaySupportAlgorithm::compute1( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -443,7 +443,7 @@ RaySupportAlgorithm::compute1( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -550,7 +550,7 @@ RaySupportAlgorithm::compute2( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -565,7 +565,7 @@ RaySupportAlgorithm::compute2( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -619,7 +619,7 @@ RaySupportAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -638,7 +638,7 @@ RaySupportAlgorithm::compute2( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -661,7 +661,7 @@ RaySupportAlgorithm::compute2( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -773,7 +773,7 @@ RaySupportAlgorithm::compute3( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -788,7 +788,7 @@ RaySupportAlgorithm::compute3( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + int original_size = vs.get_number(); +@@ -852,7 +852,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -866,7 +866,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -885,7 +885,7 @@ RaySupportAlgorithm::compute3( + zero_supp.set_union(supports[index]); + if (index >= r2_index && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -905,7 +905,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -918,7 +918,7 @@ RaySupportAlgorithm::compute3( + DEBUG_4ti2(++num_checks;) + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -1030,7 +1030,7 @@ RaySupportAlgorithm::compute4( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -1045,7 +1045,7 @@ RaySupportAlgorithm::compute4( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + int original_size = vs.get_number(); +@@ -1114,7 +1114,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -1134,7 +1134,7 @@ RaySupportAlgorithm::compute4( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -1148,7 +1148,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -1168,7 +1168,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -1183,7 +1183,7 @@ RaySupportAlgorithm::compute4( + int count = temp_supp.count(); + next_supports[count].push_back(temp_supp); + next_indices[count].push_back(std::pair(r1,r2)); +- //create_new_vector(vs, supports, r1, r2, next_col, ++ //this->create_new_vector(vs, supports, r1, r2, next_col, + // next_positive_count, next_negative_count, + // temp, temp_supp); + //++num_added; +@@ -1216,7 +1216,7 @@ RaySupportAlgorithm::compute4( + { + int r1 = next_indices[i][j].first; + int r2 = next_indices[i][j].second; +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + next_tree.insert(next_supports[i][j], vs.get_number()-1); diff --git a/4ti2.spec b/4ti2.spec index 863afd4..0b18fc0 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 10%{?dist} +Release: 11%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -9,7 +9,7 @@ URL: http://www.4ti2.de/ Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz Source1: http://www.4ti2.de/4ti2_manual.pdf Source2: 4ti2.module.in - +Patch0: 4ti2-1.3.2-gcc47.patch Requires: environment-modules BuildRequires: gmp-devel BuildRequires: glpk-devel @@ -24,6 +24,7 @@ your PATH you will need to run module load %{name}-%{_arch} %prep %setup -q cp -p %{SOURCE1} . +%patch0 -p1 -b .gcc47 %build CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ @@ -77,6 +78,9 @@ make check %{_libdir}/%{name}/bin/zsolve %changelog +* Mon Mar 5 2012 Tom Callaway - 1.3.2-11 +- fix gcc47 issues + * Tue Feb 28 2012 Fedora Release Engineering - 1.3.2-10 - Rebuilt for c++ ABI breakage From 760b6ae7ac4afda42cccca1a3cdc3240d221378f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 18 Jul 2012 07:43:40 -0500 Subject: [PATCH 10/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 0b18fc0..abbc956 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 11%{?dist} +Release: 12%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -78,6 +78,9 @@ make check %{_libdir}/%{name}/bin/zsolve %changelog +* Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Mon Mar 5 2012 Tom Callaway - 1.3.2-11 - fix gcc47 issues From bfb3429ef3d3150075f94f9fec4ca7a97658dfe2 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sun, 3 Feb 2013 11:52:34 -0700 Subject: [PATCH 11/53] Rebuild for broken deps in rawhide --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index abbc956..aa7f94b 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.3.2 -Release: 12%{?dist} +Release: 13%{?dist} Summary: A software package for problems on linear spaces Group: System Environment/Libraries @@ -78,6 +78,9 @@ make check %{_libdir}/%{name}/bin/zsolve %changelog +* Sun Feb 03 2013 Kevin Fenzi - 1.3.2-13 +- Rebuild for broken deps in rawhide + * Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From 59be5bf9ef98f2bcefcc198357494d7d1da1b1e0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 31 May 2013 10:33:39 +0100 Subject: [PATCH 12/53] package is dead, see latte-integrale --- 4ti2-1.3.2-gcc47.patch | 631 ----------------------------------------- 4ti2.module.in | 5 - 4ti2.spec | 127 --------- dead.package | 1 + sources | 2 - 5 files changed, 1 insertion(+), 765 deletions(-) delete mode 100644 4ti2-1.3.2-gcc47.patch delete mode 100644 4ti2.module.in delete mode 100644 4ti2.spec create mode 100644 dead.package delete mode 100644 sources diff --git a/4ti2-1.3.2-gcc47.patch b/4ti2-1.3.2-gcc47.patch deleted file mode 100644 index faedd2a..0000000 --- a/4ti2-1.3.2-gcc47.patch +++ /dev/null @@ -1,631 +0,0 @@ -diff -up 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 2012-03-05 14:25:16.459407811 -0500 -+++ 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 2012-03-05 14:32:14.090831152 -0500 -@@ -152,23 +152,23 @@ CircuitMatrixAlgorithm::comput - ) - - // Find the next column. -- Index next_col = next_column(vs, remaining); -+ Index next_col = this->next_column(vs, remaining); - - int start = 0; int end = vs.get_number(); int middle; - // We sort the vectors into nonzeros and then zeros. -- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); - int nonzero_start = start, nonzero_end = middle; - //int zero_start = middle, zero_end = end; - // We sort the nonzeros into rays and circuits. -- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); -+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); - int ray_start = nonzero_start, ray_end = middle; - int cir_start = middle, cir_end = nonzero_end; - // We sort the rays into positives and then negatives. -- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_ray_start = ray_start, pos_ray_end = middle; - int neg_ray_start = middle, neg_ray_end = ray_end; - // We sort the circuits into positives and then negatives. -- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_cir_start = cir_start, pos_cir_end = middle; - int neg_cir_start = middle, neg_cir_end = cir_end; - -@@ -185,8 +185,8 @@ CircuitMatrixAlgorithm::comput - - // Switch the positive and negative supports, so that it is as if all - // vectors have a positive entry in the next column. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - matrix = orig_matrix; - int remaining_row = upper_triangle(matrix, remaining, 0); -@@ -212,15 +212,15 @@ CircuitMatrixAlgorithm::comput - rays.insert(rays.end(), vs.get_number()-previous_size, false); - - // Switch back the positive and negative supports. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - // Update the supp vectors for the next_col. -- update_supports(supps, next_col, nonzero_start, nonzero_end); -- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -+ this->update_supports(supps, next_col, nonzero_start, nonzero_end); -+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); - - *out << "\r"; - *out << " Left = " << std::setw(3) << num_remaining; -diff -up 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 2012-03-05 14:21:20.103997937 -0500 -+++ 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2012-03-05 14:31:39.629208802 -0500 -@@ -188,23 +188,23 @@ CircuitSupportAlgorithm::compu - ) - - // Find the next column. -- Index next_col = next_column(vs, remaining); -+ Index next_col = this->next_column(vs, remaining); - - int start = 0; int end = vs.get_number(); int middle; - // We sort the vectors into nonzeros and then zeros. -- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); - int nonzero_start = start, nonzero_end = middle; - //int zero_start = middle, zero_end = end; - // We sort the nonzeros into rays and circuits. -- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); -+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); - int ray_start = nonzero_start, ray_end = middle; - int cir_start = middle, cir_end = nonzero_end; - // We sort the rays into positives and then negatives. -- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_ray_start = ray_start, pos_ray_end = middle; - int neg_ray_start = middle, neg_ray_end = ray_end; - // We sort the circuits into positives and the negatives. -- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_cir_start = cir_start, pos_cir_end = middle; - int neg_cir_start = middle, neg_cir_end = cir_end; - -@@ -233,8 +233,8 @@ CircuitSupportAlgorithm::compu - - // Switch the positive and negative supports, so that it is as if all - // vectors have a positive entry in the next column. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - //DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";) - int previous_size = vs.get_number(); -@@ -258,19 +258,19 @@ CircuitSupportAlgorithm::compu - rays.insert(rays.end(), vs.get_number()-previous_size, false); - - // Switch back the positive and negative supports. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - // Update the supp vectors for the next_col. -- update_supports(supps, next_col, nonzero_start, nonzero_end); -- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -- update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); -- update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); -- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -- update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); -- update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); -+ this->update_supports(supps, next_col, nonzero_start, nonzero_end); -+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -+ this->update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); -+ this->update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); -+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -+ this->update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); -+ this->update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); - - *out << "\r"; - *out << " Left = " << std::setw(3) << num_remaining; -diff -up 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 2008-11-14 21:08:37.000000000 -0500 -+++ 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 2012-03-05 14:28:04.450566861 -0500 -@@ -146,7 +146,7 @@ RayMatrixAlgorithm::compute1( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -161,7 +161,7 @@ RayMatrixAlgorithm::compute1( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -218,7 +218,7 @@ RayMatrixAlgorithm::compute1( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - continue; -@@ -226,14 +226,14 @@ RayMatrixAlgorithm::compute1( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - continue; - } - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -351,7 +351,7 @@ RayMatrixAlgorithm::compute0( - { - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -366,7 +366,7 @@ RayMatrixAlgorithm::compute0( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -416,7 +416,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -442,7 +442,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_one_diff_added; -@@ -452,7 +452,7 @@ RayMatrixAlgorithm::compute0( - - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -468,7 +468,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -600,7 +600,7 @@ RayMatrixAlgorithm::compute2( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -615,7 +615,7 @@ RayMatrixAlgorithm::compute2( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -665,7 +665,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -689,7 +689,7 @@ RayMatrixAlgorithm::compute2( - { - if (fathers[r1] == r2 || fathers[r2] == r1) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - //++num_fathers; -@@ -705,7 +705,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - //++num_one_diff_added; -@@ -714,7 +714,7 @@ RayMatrixAlgorithm::compute2( - #endif - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -730,7 +730,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -865,7 +865,7 @@ RayMatrixAlgorithm::compute3( - DEBUG_4ti2(unsigned long long int num_checks = 0;) - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -880,7 +880,7 @@ RayMatrixAlgorithm::compute3( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";) -@@ -944,7 +944,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -959,7 +959,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -984,7 +984,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -996,7 +996,7 @@ RayMatrixAlgorithm::compute3( - DEBUG_4ti2(++num_checks;) - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -1012,7 +1012,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -diff -up 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 2012-03-05 14:23:20.076683203 -0500 -+++ 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 2012-03-05 14:28:38.437194415 -0500 -@@ -138,7 +138,7 @@ RaySupportAlgorithm::compute0( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -153,7 +153,7 @@ RaySupportAlgorithm::compute0( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -206,7 +206,7 @@ RaySupportAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -226,7 +226,7 @@ RaySupportAlgorithm::compute0( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -337,7 +337,7 @@ RaySupportAlgorithm::compute1( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -352,7 +352,7 @@ RaySupportAlgorithm::compute1( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -404,7 +404,7 @@ RaySupportAlgorithm::compute1( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -424,7 +424,7 @@ RaySupportAlgorithm::compute1( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -443,7 +443,7 @@ RaySupportAlgorithm::compute1( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -550,7 +550,7 @@ RaySupportAlgorithm::compute2( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -565,7 +565,7 @@ RaySupportAlgorithm::compute2( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -619,7 +619,7 @@ RaySupportAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -638,7 +638,7 @@ RaySupportAlgorithm::compute2( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -661,7 +661,7 @@ RaySupportAlgorithm::compute2( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -773,7 +773,7 @@ RaySupportAlgorithm::compute3( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -788,7 +788,7 @@ RaySupportAlgorithm::compute3( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - int original_size = vs.get_number(); -@@ -852,7 +852,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -866,7 +866,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -885,7 +885,7 @@ RaySupportAlgorithm::compute3( - zero_supp.set_union(supports[index]); - if (index >= r2_index && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -905,7 +905,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -918,7 +918,7 @@ RaySupportAlgorithm::compute3( - DEBUG_4ti2(++num_checks;) - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -1030,7 +1030,7 @@ RaySupportAlgorithm::compute4( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -1045,7 +1045,7 @@ RaySupportAlgorithm::compute4( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - int original_size = vs.get_number(); -@@ -1114,7 +1114,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -1134,7 +1134,7 @@ RaySupportAlgorithm::compute4( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -1148,7 +1148,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -1168,7 +1168,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -1183,7 +1183,7 @@ RaySupportAlgorithm::compute4( - int count = temp_supp.count(); - next_supports[count].push_back(temp_supp); - next_indices[count].push_back(std::pair(r1,r2)); -- //create_new_vector(vs, supports, r1, r2, next_col, -+ //this->create_new_vector(vs, supports, r1, r2, next_col, - // next_positive_count, next_negative_count, - // temp, temp_supp); - //++num_added; -@@ -1216,7 +1216,7 @@ RaySupportAlgorithm::compute4( - { - int r1 = next_indices[i][j].first; - int r2 = next_indices[i][j].second; -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - next_tree.insert(next_supports[i][j], vs.get_number()-1); diff --git a/4ti2.module.in b/4ti2.module.in deleted file mode 100644 index c42ec18..0000000 --- a/4ti2.module.in +++ /dev/null @@ -1,5 +0,0 @@ -#%Module 1.0 -# -# 4ti2 module for use with 'environment-modules' package: -# -prepend-path PATH @LIBDIR@/bin diff --git a/4ti2.spec b/4ti2.spec deleted file mode 100644 index aa7f94b..0000000 --- a/4ti2.spec +++ /dev/null @@ -1,127 +0,0 @@ -Name: 4ti2 -Version: 1.3.2 -Release: 13%{?dist} -Summary: A software package for problems on linear spaces - -Group: System Environment/Libraries -License: GPLv2+ -URL: http://www.4ti2.de/ -Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz -Source1: http://www.4ti2.de/4ti2_manual.pdf -Source2: 4ti2.module.in -Patch0: 4ti2-1.3.2-gcc47.patch -Requires: environment-modules -BuildRequires: gmp-devel -BuildRequires: glpk-devel - -%description -A software package for algebraic, geometric and combinatorial -problems on linear spaces. - -This package uses Environment Modules, to load the binaries onto -your PATH you will need to run module load %{name}-%{_arch} - -%prep -%setup -q -cp -p %{SOURCE1} . -%patch0 -p1 -b .gcc47 - -%build -CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ -CFLAGS="%{optflags} -I%{_includedir}/glpk" \ -./configure --disable-shared --disable-static \ - --prefix=%{_libdir}/%{name} \ - --libdir=%{_libdir}/%{name}/lib/ \ - --bindir=%{_libdir}/%{name}/bin/ -perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool - -make %{?_smp_mflags} - -%install -make install-exec DESTDIR=%{buildroot} - -# Make the environment-modules file -mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ -# Since we're doing our own substitution here, use our own definitions. -sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;' < %SOURCE2 >%{buildroot}%{_datadir}/Modules/modulefiles/%{name}-%{_arch} - -# The libraries are not really fit for use outside the package. -rm -rf %{buildroot}/%{_libdir}/%{name}/lib* - -%check -make check - -%files -%defattr(-,root,root,-) -%doc COPYING TODO 4ti2_manual.pdf -%dir %{_libdir}/%{name}/bin -%dir %{_libdir}/%{name} -%{_datadir}/Modules/modulefiles/%{name}-%{_arch} -%{_libdir}/%{name}/bin/output -%{_libdir}/%{name}/bin/4ti2gmp -%{_libdir}/%{name}/bin/4ti2int32 -%{_libdir}/%{name}/bin/4ti2int64 -%{_libdir}/%{name}/bin/circuits -%{_libdir}/%{name}/bin/genmodel -%{_libdir}/%{name}/bin/gensymm -%{_libdir}/%{name}/bin/graver -%{_libdir}/%{name}/bin/groebner -%{_libdir}/%{name}/bin/hilbert -%{_libdir}/%{name}/bin/markov -%{_libdir}/%{name}/bin/minimize -%{_libdir}/%{name}/bin/normalform -%{_libdir}/%{name}/bin/ppi -%{_libdir}/%{name}/bin/qsolve -%{_libdir}/%{name}/bin/rays -%{_libdir}/%{name}/bin/walk -%{_libdir}/%{name}/bin/zbasis -%{_libdir}/%{name}/bin/zsolve - -%changelog -* Sun Feb 03 2013 Kevin Fenzi - 1.3.2-13 -- Rebuild for broken deps in rawhide - -* Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Mar 5 2012 Tom Callaway - 1.3.2-11 -- fix gcc47 issues - -* Tue Feb 28 2012 Fedora Release Engineering - 1.3.2-10 -- Rebuilt for c++ ABI breakage - -* Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Nov 16 2011 Peter Robinson - 1.3.2-8 -- Rebuild for new gmp - -* Wed Sep 21 2011 Peter Schiffer - 1.3.2-7.1 -- rebuild with new gmp - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri May 21 2010 Mark Chappell - 1.3.2-6 -- Take ownership of 2 directories we created - -* Tue Mar 02 2010 Mark Chappell - 1.3.2-5 -- Add note to description about environment modules - -* Tue Mar 02 2010 Mark Chappell - 1.3.2-4 -- Switch to using modules -- Tag with the correct licence (GPLv2+) - -* Thu Feb 25 2010 Mark Chappell - 1.3.2-3 -- Preserve time stamp on 4ti2_manual.pdf -- Whitespace cleanup -- Remove obsolete post and portun calls -- Manually specify binaries - -* Thu Feb 25 2010 Mark Chappell - 1.3.2-2 -- Tidy up inconsistant use of macros -- Remove empty devel package -- Include 4ti2 manual - -* Wed Feb 17 2010 M D Chappell - 1.3.2-1 -- Initial build diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..50fa449 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Package has been incorportated into latte-integrale diff --git a/sources b/sources deleted file mode 100644 index c25f9de..0000000 --- a/sources +++ /dev/null @@ -1,2 +0,0 @@ -93367e63944d8bb18192c4984544ed0d 4ti2-1.3.2.tar.gz -1b6fb847fc0eacddfaaef3d00c8bb7ba 4ti2_manual.pdf From 94c4216170418e29ef9fd8291412a41229667ea8 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Fri, 16 May 2014 11:37:27 -0600 Subject: [PATCH 13/53] Test, please ignore --- dead.package | 1 + 1 file changed, 1 insertion(+) diff --git a/dead.package b/dead.package index 50fa449..c65d7c8 100644 --- a/dead.package +++ b/dead.package @@ -1 +1,2 @@ Package has been incorportated into latte-integrale + From 73905c17b366b27e5b464a0830055bcf847cb3fe Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Thu, 11 Oct 2018 14:38:46 -0400 Subject: [PATCH 14/53] Revert "package is dead, see latte-integrale" Unretiring for https://pagure.io/releng/issue/7860 This reverts commit 59be5bf9ef98f2bcefcc198357494d7d1da1b1e0. Signed-off-by: Mohan Boddu --- 4ti2-1.3.2-gcc47.patch | 631 +++++++++++++++++++++++++++++++++++++++++ 4ti2.module.in | 5 + 4ti2.spec | 127 +++++++++ dead.package | 2 - sources | 2 + 5 files changed, 765 insertions(+), 2 deletions(-) create mode 100644 4ti2-1.3.2-gcc47.patch create mode 100644 4ti2.module.in create mode 100644 4ti2.spec delete mode 100644 dead.package create mode 100644 sources diff --git a/4ti2-1.3.2-gcc47.patch b/4ti2-1.3.2-gcc47.patch new file mode 100644 index 0000000..faedd2a --- /dev/null +++ b/4ti2-1.3.2-gcc47.patch @@ -0,0 +1,631 @@ +diff -up 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 2012-03-05 14:25:16.459407811 -0500 ++++ 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 2012-03-05 14:32:14.090831152 -0500 +@@ -152,23 +152,23 @@ CircuitMatrixAlgorithm::comput + ) + + // Find the next column. +- Index next_col = next_column(vs, remaining); ++ Index next_col = this->next_column(vs, remaining); + + int start = 0; int end = vs.get_number(); int middle; + // We sort the vectors into nonzeros and then zeros. +- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); + int nonzero_start = start, nonzero_end = middle; + //int zero_start = middle, zero_end = end; + // We sort the nonzeros into rays and circuits. +- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); ++ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); + int ray_start = nonzero_start, ray_end = middle; + int cir_start = middle, cir_end = nonzero_end; + // We sort the rays into positives and then negatives. +- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_ray_start = ray_start, pos_ray_end = middle; + int neg_ray_start = middle, neg_ray_end = ray_end; + // We sort the circuits into positives and then negatives. +- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_cir_start = cir_start, pos_cir_end = middle; + int neg_cir_start = middle, neg_cir_end = cir_end; + +@@ -185,8 +185,8 @@ CircuitMatrixAlgorithm::comput + + // Switch the positive and negative supports, so that it is as if all + // vectors have a positive entry in the next column. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + matrix = orig_matrix; + int remaining_row = upper_triangle(matrix, remaining, 0); +@@ -212,15 +212,15 @@ CircuitMatrixAlgorithm::comput + rays.insert(rays.end(), vs.get_number()-previous_size, false); + + // Switch back the positive and negative supports. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + // Update the supp vectors for the next_col. +- update_supports(supps, next_col, nonzero_start, nonzero_end); +- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); +- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); +- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); +- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); ++ this->update_supports(supps, next_col, nonzero_start, nonzero_end); ++ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); ++ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); ++ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); ++ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); + + *out << "\r"; + *out << " Left = " << std::setw(3) << num_remaining; +diff -up 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 2012-03-05 14:21:20.103997937 -0500 ++++ 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2012-03-05 14:31:39.629208802 -0500 +@@ -188,23 +188,23 @@ CircuitSupportAlgorithm::compu + ) + + // Find the next column. +- Index next_col = next_column(vs, remaining); ++ Index next_col = this->next_column(vs, remaining); + + int start = 0; int end = vs.get_number(); int middle; + // We sort the vectors into nonzeros and then zeros. +- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); + int nonzero_start = start, nonzero_end = middle; + //int zero_start = middle, zero_end = end; + // We sort the nonzeros into rays and circuits. +- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); ++ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); + int ray_start = nonzero_start, ray_end = middle; + int cir_start = middle, cir_end = nonzero_end; + // We sort the rays into positives and then negatives. +- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_ray_start = ray_start, pos_ray_end = middle; + int neg_ray_start = middle, neg_ray_end = ray_end; + // We sort the circuits into positives and the negatives. +- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); ++ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); + int pos_cir_start = cir_start, pos_cir_end = middle; + int neg_cir_start = middle, neg_cir_end = cir_end; + +@@ -233,8 +233,8 @@ CircuitSupportAlgorithm::compu + + // Switch the positive and negative supports, so that it is as if all + // vectors have a positive entry in the next column. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + //DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";) + int previous_size = vs.get_number(); +@@ -258,19 +258,19 @@ CircuitSupportAlgorithm::compu + rays.insert(rays.end(), vs.get_number()-previous_size, false); + + // Switch back the positive and negative supports. +- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); +- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); ++ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); ++ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); + + // Update the supp vectors for the next_col. +- update_supports(supps, next_col, nonzero_start, nonzero_end); +- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); +- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); +- update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); +- update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); +- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); +- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); +- update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); +- update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); ++ this->update_supports(supps, next_col, nonzero_start, nonzero_end); ++ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); ++ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); ++ this->update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); ++ this->update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); ++ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); ++ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); ++ this->update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); ++ this->update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); + + *out << "\r"; + *out << " Left = " << std::setw(3) << num_remaining; +diff -up 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 2008-11-14 21:08:37.000000000 -0500 ++++ 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 2012-03-05 14:28:04.450566861 -0500 +@@ -146,7 +146,7 @@ RayMatrixAlgorithm::compute1( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -161,7 +161,7 @@ RayMatrixAlgorithm::compute1( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -218,7 +218,7 @@ RayMatrixAlgorithm::compute1( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + continue; +@@ -226,14 +226,14 @@ RayMatrixAlgorithm::compute1( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + continue; + } + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -351,7 +351,7 @@ RayMatrixAlgorithm::compute0( + { + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -366,7 +366,7 @@ RayMatrixAlgorithm::compute0( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -416,7 +416,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -442,7 +442,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_one_diff_added; +@@ -452,7 +452,7 @@ RayMatrixAlgorithm::compute0( + + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -468,7 +468,7 @@ RayMatrixAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -600,7 +600,7 @@ RayMatrixAlgorithm::compute2( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -615,7 +615,7 @@ RayMatrixAlgorithm::compute2( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, + next_negative_count); + + matrix = orig_matrix; +@@ -665,7 +665,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -689,7 +689,7 @@ RayMatrixAlgorithm::compute2( + { + if (fathers[r1] == r2 || fathers[r2] == r1) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + //++num_fathers; +@@ -705,7 +705,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + //++num_one_diff_added; +@@ -714,7 +714,7 @@ RayMatrixAlgorithm::compute2( + #endif + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -730,7 +730,7 @@ RayMatrixAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, fathers, r1, r2, next_col, ++ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -865,7 +865,7 @@ RayMatrixAlgorithm::compute3( + DEBUG_4ti2(unsigned long long int num_checks = 0;) + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -880,7 +880,7 @@ RayMatrixAlgorithm::compute3( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";) +@@ -944,7 +944,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -959,7 +959,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -984,7 +984,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -996,7 +996,7 @@ RayMatrixAlgorithm::compute3( + DEBUG_4ti2(++num_checks;) + if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -1012,7 +1012,7 @@ RayMatrixAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +diff -up 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp +--- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 2012-03-05 14:23:20.076683203 -0500 ++++ 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 2012-03-05 14:28:38.437194415 -0500 +@@ -138,7 +138,7 @@ RaySupportAlgorithm::compute0( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -153,7 +153,7 @@ RaySupportAlgorithm::compute0( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -206,7 +206,7 @@ RaySupportAlgorithm::compute0( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -226,7 +226,7 @@ RaySupportAlgorithm::compute0( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -337,7 +337,7 @@ RaySupportAlgorithm::compute1( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -352,7 +352,7 @@ RaySupportAlgorithm::compute1( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -404,7 +404,7 @@ RaySupportAlgorithm::compute1( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -424,7 +424,7 @@ RaySupportAlgorithm::compute1( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -443,7 +443,7 @@ RaySupportAlgorithm::compute1( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -550,7 +550,7 @@ RaySupportAlgorithm::compute2( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -565,7 +565,7 @@ RaySupportAlgorithm::compute2( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + // Note that the tree needs the ordering of the current vectors to be +@@ -619,7 +619,7 @@ RaySupportAlgorithm::compute2( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -638,7 +638,7 @@ RaySupportAlgorithm::compute2( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -661,7 +661,7 @@ RaySupportAlgorithm::compute2( + ++num_support_checks; + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -773,7 +773,7 @@ RaySupportAlgorithm::compute3( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -788,7 +788,7 @@ RaySupportAlgorithm::compute3( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + int original_size = vs.get_number(); +@@ -852,7 +852,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -866,7 +866,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -885,7 +885,7 @@ RaySupportAlgorithm::compute3( + zero_supp.set_union(supports[index]); + if (index >= r2_index && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -905,7 +905,7 @@ RaySupportAlgorithm::compute3( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -918,7 +918,7 @@ RaySupportAlgorithm::compute3( + DEBUG_4ti2(++num_checks;) + if (!tree.dominated(temp_supp, r1, r2)) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_added;) +@@ -1030,7 +1030,7 @@ RaySupportAlgorithm::compute4( + + // Find the next column. + int next_positive_count, next_negative_count, next_zero_count; +- Index next_col = next_column(vs, remaining, ++ Index next_col = this->next_column(vs, remaining, + next_positive_count, + next_negative_count, + next_zero_count); +@@ -1045,7 +1045,7 @@ RaySupportAlgorithm::compute4( + ) + + // We sort the vectors into zeros, positives, then negatives. +- sort(vs, supports, next_col, next_zero_count, next_positive_count, ++ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, + next_negative_count); + + int original_size = vs.get_number(); +@@ -1114,7 +1114,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(supports[r2], r1_supp, temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -1134,7 +1134,7 @@ RaySupportAlgorithm::compute4( + zero_supp.set_union(supports[index]); + if (index >= r2_start && index < r2_finish) + { +- create_new_vector(vs, supports, r1, index, next_col, ++ this->create_new_vector(vs, supports, r1, index, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + ++num_added; +@@ -1148,7 +1148,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff); + if (temp_diff.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -1168,7 +1168,7 @@ RaySupportAlgorithm::compute4( + IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); + if (temp_diff2.power_of_2()) + { +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + DEBUG_4ti2(++num_one_diff_added;) +@@ -1183,7 +1183,7 @@ RaySupportAlgorithm::compute4( + int count = temp_supp.count(); + next_supports[count].push_back(temp_supp); + next_indices[count].push_back(std::pair(r1,r2)); +- //create_new_vector(vs, supports, r1, r2, next_col, ++ //this->create_new_vector(vs, supports, r1, r2, next_col, + // next_positive_count, next_negative_count, + // temp, temp_supp); + //++num_added; +@@ -1216,7 +1216,7 @@ RaySupportAlgorithm::compute4( + { + int r1 = next_indices[i][j].first; + int r2 = next_indices[i][j].second; +- create_new_vector(vs, supports, r1, r2, next_col, ++ this->create_new_vector(vs, supports, r1, r2, next_col, + next_positive_count, next_negative_count, + temp, temp_supp); + next_tree.insert(next_supports[i][j], vs.get_number()-1); diff --git a/4ti2.module.in b/4ti2.module.in new file mode 100644 index 0000000..c42ec18 --- /dev/null +++ b/4ti2.module.in @@ -0,0 +1,5 @@ +#%Module 1.0 +# +# 4ti2 module for use with 'environment-modules' package: +# +prepend-path PATH @LIBDIR@/bin diff --git a/4ti2.spec b/4ti2.spec new file mode 100644 index 0000000..aa7f94b --- /dev/null +++ b/4ti2.spec @@ -0,0 +1,127 @@ +Name: 4ti2 +Version: 1.3.2 +Release: 13%{?dist} +Summary: A software package for problems on linear spaces + +Group: System Environment/Libraries +License: GPLv2+ +URL: http://www.4ti2.de/ +Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz +Source1: http://www.4ti2.de/4ti2_manual.pdf +Source2: 4ti2.module.in +Patch0: 4ti2-1.3.2-gcc47.patch +Requires: environment-modules +BuildRequires: gmp-devel +BuildRequires: glpk-devel + +%description +A software package for algebraic, geometric and combinatorial +problems on linear spaces. + +This package uses Environment Modules, to load the binaries onto +your PATH you will need to run module load %{name}-%{_arch} + +%prep +%setup -q +cp -p %{SOURCE1} . +%patch0 -p1 -b .gcc47 + +%build +CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ +CFLAGS="%{optflags} -I%{_includedir}/glpk" \ +./configure --disable-shared --disable-static \ + --prefix=%{_libdir}/%{name} \ + --libdir=%{_libdir}/%{name}/lib/ \ + --bindir=%{_libdir}/%{name}/bin/ +perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool + +make %{?_smp_mflags} + +%install +make install-exec DESTDIR=%{buildroot} + +# Make the environment-modules file +mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ +# Since we're doing our own substitution here, use our own definitions. +sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;' < %SOURCE2 >%{buildroot}%{_datadir}/Modules/modulefiles/%{name}-%{_arch} + +# The libraries are not really fit for use outside the package. +rm -rf %{buildroot}/%{_libdir}/%{name}/lib* + +%check +make check + +%files +%defattr(-,root,root,-) +%doc COPYING TODO 4ti2_manual.pdf +%dir %{_libdir}/%{name}/bin +%dir %{_libdir}/%{name} +%{_datadir}/Modules/modulefiles/%{name}-%{_arch} +%{_libdir}/%{name}/bin/output +%{_libdir}/%{name}/bin/4ti2gmp +%{_libdir}/%{name}/bin/4ti2int32 +%{_libdir}/%{name}/bin/4ti2int64 +%{_libdir}/%{name}/bin/circuits +%{_libdir}/%{name}/bin/genmodel +%{_libdir}/%{name}/bin/gensymm +%{_libdir}/%{name}/bin/graver +%{_libdir}/%{name}/bin/groebner +%{_libdir}/%{name}/bin/hilbert +%{_libdir}/%{name}/bin/markov +%{_libdir}/%{name}/bin/minimize +%{_libdir}/%{name}/bin/normalform +%{_libdir}/%{name}/bin/ppi +%{_libdir}/%{name}/bin/qsolve +%{_libdir}/%{name}/bin/rays +%{_libdir}/%{name}/bin/walk +%{_libdir}/%{name}/bin/zbasis +%{_libdir}/%{name}/bin/zsolve + +%changelog +* Sun Feb 03 2013 Kevin Fenzi - 1.3.2-13 +- Rebuild for broken deps in rawhide + +* Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Mar 5 2012 Tom Callaway - 1.3.2-11 +- fix gcc47 issues + +* Tue Feb 28 2012 Fedora Release Engineering - 1.3.2-10 +- Rebuilt for c++ ABI breakage + +* Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 16 2011 Peter Robinson - 1.3.2-8 +- Rebuild for new gmp + +* Wed Sep 21 2011 Peter Schiffer - 1.3.2-7.1 +- rebuild with new gmp + +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri May 21 2010 Mark Chappell - 1.3.2-6 +- Take ownership of 2 directories we created + +* Tue Mar 02 2010 Mark Chappell - 1.3.2-5 +- Add note to description about environment modules + +* Tue Mar 02 2010 Mark Chappell - 1.3.2-4 +- Switch to using modules +- Tag with the correct licence (GPLv2+) + +* Thu Feb 25 2010 Mark Chappell - 1.3.2-3 +- Preserve time stamp on 4ti2_manual.pdf +- Whitespace cleanup +- Remove obsolete post and portun calls +- Manually specify binaries + +* Thu Feb 25 2010 Mark Chappell - 1.3.2-2 +- Tidy up inconsistant use of macros +- Remove empty devel package +- Include 4ti2 manual + +* Wed Feb 17 2010 M D Chappell - 1.3.2-1 +- Initial build diff --git a/dead.package b/dead.package deleted file mode 100644 index c65d7c8..0000000 --- a/dead.package +++ /dev/null @@ -1,2 +0,0 @@ -Package has been incorportated into latte-integrale - diff --git a/sources b/sources new file mode 100644 index 0000000..c25f9de --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +93367e63944d8bb18192c4984544ed0d 4ti2-1.3.2.tar.gz +1b6fb847fc0eacddfaaef3d00c8bb7ba 4ti2_manual.pdf From 14988d794f6a48026df517d2033c2ef2b7d683f4 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Sat, 13 Oct 2018 10:13:08 -0600 Subject: [PATCH 15/53] Update to 1.6.9 after splitting back out of latte-integrale. --- .gitignore | 3 +- 4ti2-1.3.2-gcc47.patch | 631 ----------------------------------------- 4ti2-maxnorm.patch | 49 ++++ 4ti2.spec | 207 +++++++------- sources | 3 +- 5 files changed, 158 insertions(+), 735 deletions(-) delete mode 100644 4ti2-1.3.2-gcc47.patch create mode 100644 4ti2-maxnorm.patch diff --git a/.gitignore b/.gitignore index bcc4e76..15fbfa9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -4ti2-1.3.2.tar.gz -4ti2_manual.pdf +4ti2-*.tar.gz diff --git a/4ti2-1.3.2-gcc47.patch b/4ti2-1.3.2-gcc47.patch deleted file mode 100644 index faedd2a..0000000 --- a/4ti2-1.3.2-gcc47.patch +++ /dev/null @@ -1,631 +0,0 @@ -diff -up 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 2012-03-05 14:25:16.459407811 -0500 -+++ 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 2012-03-05 14:32:14.090831152 -0500 -@@ -152,23 +152,23 @@ CircuitMatrixAlgorithm::comput - ) - - // Find the next column. -- Index next_col = next_column(vs, remaining); -+ Index next_col = this->next_column(vs, remaining); - - int start = 0; int end = vs.get_number(); int middle; - // We sort the vectors into nonzeros and then zeros. -- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); - int nonzero_start = start, nonzero_end = middle; - //int zero_start = middle, zero_end = end; - // We sort the nonzeros into rays and circuits. -- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); -+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); - int ray_start = nonzero_start, ray_end = middle; - int cir_start = middle, cir_end = nonzero_end; - // We sort the rays into positives and then negatives. -- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_ray_start = ray_start, pos_ray_end = middle; - int neg_ray_start = middle, neg_ray_end = ray_end; - // We sort the circuits into positives and then negatives. -- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_cir_start = cir_start, pos_cir_end = middle; - int neg_cir_start = middle, neg_cir_end = cir_end; - -@@ -185,8 +185,8 @@ CircuitMatrixAlgorithm::comput - - // Switch the positive and negative supports, so that it is as if all - // vectors have a positive entry in the next column. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - matrix = orig_matrix; - int remaining_row = upper_triangle(matrix, remaining, 0); -@@ -212,15 +212,15 @@ CircuitMatrixAlgorithm::comput - rays.insert(rays.end(), vs.get_number()-previous_size, false); - - // Switch back the positive and negative supports. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - // Update the supp vectors for the next_col. -- update_supports(supps, next_col, nonzero_start, nonzero_end); -- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -+ this->update_supports(supps, next_col, nonzero_start, nonzero_end); -+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); - - *out << "\r"; - *out << " Left = " << std::setw(3) << num_remaining; -diff -up 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 2012-03-05 14:21:20.103997937 -0500 -+++ 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2012-03-05 14:31:39.629208802 -0500 -@@ -188,23 +188,23 @@ CircuitSupportAlgorithm::compu - ) - - // Find the next column. -- Index next_col = next_column(vs, remaining); -+ Index next_col = this->next_column(vs, remaining); - - int start = 0; int end = vs.get_number(); int middle; - // We sort the vectors into nonzeros and then zeros. -- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle); - int nonzero_start = start, nonzero_end = middle; - //int zero_start = middle, zero_end = end; - // We sort the nonzeros into rays and circuits. -- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); -+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle); - int ray_start = nonzero_start, ray_end = middle; - int cir_start = middle, cir_end = nonzero_end; - // We sort the rays into positives and then negatives. -- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_ray_start = ray_start, pos_ray_end = middle; - int neg_ray_start = middle, neg_ray_end = ray_end; - // We sort the circuits into positives and the negatives. -- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); -+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle); - int pos_cir_start = cir_start, pos_cir_end = middle; - int neg_cir_start = middle, neg_cir_end = cir_end; - -@@ -233,8 +233,8 @@ CircuitSupportAlgorithm::compu - - // Switch the positive and negative supports, so that it is as if all - // vectors have a positive entry in the next column. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - //DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";) - int previous_size = vs.get_number(); -@@ -258,19 +258,19 @@ CircuitSupportAlgorithm::compu - rays.insert(rays.end(), vs.get_number()-previous_size, false); - - // Switch back the positive and negative supports. -- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); -+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps); -+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps); - - // Update the supp vectors for the next_col. -- update_supports(supps, next_col, nonzero_start, nonzero_end); -- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -- update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); -- update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); -- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -- update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); -- update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); -+ this->update_supports(supps, next_col, nonzero_start, nonzero_end); -+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end); -+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end); -+ this->update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end); -+ this->update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end); -+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end); -+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end); -+ this->update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end); -+ this->update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end); - - *out << "\r"; - *out << " Left = " << std::setw(3) << num_remaining; -diff -up 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 2008-11-14 21:08:37.000000000 -0500 -+++ 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 2012-03-05 14:28:04.450566861 -0500 -@@ -146,7 +146,7 @@ RayMatrixAlgorithm::compute1( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -161,7 +161,7 @@ RayMatrixAlgorithm::compute1( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -218,7 +218,7 @@ RayMatrixAlgorithm::compute1( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - continue; -@@ -226,14 +226,14 @@ RayMatrixAlgorithm::compute1( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - continue; - } - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -351,7 +351,7 @@ RayMatrixAlgorithm::compute0( - { - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -366,7 +366,7 @@ RayMatrixAlgorithm::compute0( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -416,7 +416,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -442,7 +442,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_one_diff_added; -@@ -452,7 +452,7 @@ RayMatrixAlgorithm::compute0( - - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -468,7 +468,7 @@ RayMatrixAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -600,7 +600,7 @@ RayMatrixAlgorithm::compute2( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -615,7 +615,7 @@ RayMatrixAlgorithm::compute2( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count, - next_negative_count); - - matrix = orig_matrix; -@@ -665,7 +665,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -689,7 +689,7 @@ RayMatrixAlgorithm::compute2( - { - if (fathers[r1] == r2 || fathers[r2] == r1) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - //++num_fathers; -@@ -705,7 +705,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - //++num_one_diff_added; -@@ -714,7 +714,7 @@ RayMatrixAlgorithm::compute2( - #endif - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -730,7 +730,7 @@ RayMatrixAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, fathers, r1, r2, next_col, -+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -865,7 +865,7 @@ RayMatrixAlgorithm::compute3( - DEBUG_4ti2(unsigned long long int num_checks = 0;) - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -880,7 +880,7 @@ RayMatrixAlgorithm::compute3( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";) -@@ -944,7 +944,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -959,7 +959,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -984,7 +984,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -996,7 +996,7 @@ RayMatrixAlgorithm::compute3( - DEBUG_4ti2(++num_checks;) - if (rank_check(matrix, temp_matrix, temp_diff, r1_rows)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -1012,7 +1012,7 @@ RayMatrixAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -diff -up 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp ---- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 2012-03-05 14:23:20.076683203 -0500 -+++ 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 2012-03-05 14:28:38.437194415 -0500 -@@ -138,7 +138,7 @@ RaySupportAlgorithm::compute0( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -153,7 +153,7 @@ RaySupportAlgorithm::compute0( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -206,7 +206,7 @@ RaySupportAlgorithm::compute0( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -226,7 +226,7 @@ RaySupportAlgorithm::compute0( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -337,7 +337,7 @@ RaySupportAlgorithm::compute1( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -352,7 +352,7 @@ RaySupportAlgorithm::compute1( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -404,7 +404,7 @@ RaySupportAlgorithm::compute1( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -424,7 +424,7 @@ RaySupportAlgorithm::compute1( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -443,7 +443,7 @@ RaySupportAlgorithm::compute1( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -550,7 +550,7 @@ RaySupportAlgorithm::compute2( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -565,7 +565,7 @@ RaySupportAlgorithm::compute2( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - // Note that the tree needs the ordering of the current vectors to be -@@ -619,7 +619,7 @@ RaySupportAlgorithm::compute2( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -638,7 +638,7 @@ RaySupportAlgorithm::compute2( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -661,7 +661,7 @@ RaySupportAlgorithm::compute2( - ++num_support_checks; - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -773,7 +773,7 @@ RaySupportAlgorithm::compute3( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -788,7 +788,7 @@ RaySupportAlgorithm::compute3( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - int original_size = vs.get_number(); -@@ -852,7 +852,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -866,7 +866,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -885,7 +885,7 @@ RaySupportAlgorithm::compute3( - zero_supp.set_union(supports[index]); - if (index >= r2_index && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -905,7 +905,7 @@ RaySupportAlgorithm::compute3( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -918,7 +918,7 @@ RaySupportAlgorithm::compute3( - DEBUG_4ti2(++num_checks;) - if (!tree.dominated(temp_supp, r1, r2)) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_added;) -@@ -1030,7 +1030,7 @@ RaySupportAlgorithm::compute4( - - // Find the next column. - int next_positive_count, next_negative_count, next_zero_count; -- Index next_col = next_column(vs, remaining, -+ Index next_col = this->next_column(vs, remaining, - next_positive_count, - next_negative_count, - next_zero_count); -@@ -1045,7 +1045,7 @@ RaySupportAlgorithm::compute4( - ) - - // We sort the vectors into zeros, positives, then negatives. -- sort(vs, supports, next_col, next_zero_count, next_positive_count, -+ RayImplementation::sort(vs, supports, next_col, next_zero_count, next_positive_count, - next_negative_count); - - int original_size = vs.get_number(); -@@ -1114,7 +1114,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(supports[r2], r1_supp, temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -1134,7 +1134,7 @@ RaySupportAlgorithm::compute4( - zero_supp.set_union(supports[index]); - if (index >= r2_start && index < r2_finish) - { -- create_new_vector(vs, supports, r1, index, next_col, -+ this->create_new_vector(vs, supports, r1, index, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - ++num_added; -@@ -1148,7 +1148,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff); - if (temp_diff.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -1168,7 +1168,7 @@ RaySupportAlgorithm::compute4( - IndexSet::set_difference(r1_supp, supports[r2], temp_diff2); - if (temp_diff2.power_of_2()) - { -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - DEBUG_4ti2(++num_one_diff_added;) -@@ -1183,7 +1183,7 @@ RaySupportAlgorithm::compute4( - int count = temp_supp.count(); - next_supports[count].push_back(temp_supp); - next_indices[count].push_back(std::pair(r1,r2)); -- //create_new_vector(vs, supports, r1, r2, next_col, -+ //this->create_new_vector(vs, supports, r1, r2, next_col, - // next_positive_count, next_negative_count, - // temp, temp_supp); - //++num_added; -@@ -1216,7 +1216,7 @@ RaySupportAlgorithm::compute4( - { - int r1 = next_indices[i][j].first; - int r2 = next_indices[i][j].second; -- create_new_vector(vs, supports, r1, r2, next_col, -+ this->create_new_vector(vs, supports, r1, r2, next_col, - next_positive_count, next_negative_count, - temp, temp_supp); - next_tree.insert(next_supports[i][j], vs.get_number()-1); diff --git a/4ti2-maxnorm.patch b/4ti2-maxnorm.patch new file mode 100644 index 0000000..8042b6f --- /dev/null +++ b/4ti2-maxnorm.patch @@ -0,0 +1,49 @@ +--- src/zsolve/Options.cpp.orig 2018-08-19 09:37:54.000000000 -0600 ++++ src/zsolve/Options.cpp 2018-10-09 15:22:30.464345255 -0600 +@@ -70,7 +70,7 @@ Options::set_defaults () + m_loglevel = 0; + m_backup_frequency = 0; + m_resume = false; +- m_maxnorm = false; ++ m_maxnorm = 0; + } + + void +@@ -195,7 +195,7 @@ Options::process_options (int argc, char + m_graver = true; + break; + case 'm': +- m_maxnorm = true; ++ m_maxnorm = 1; + break; + case 'p': + if (optarg == NULL || !strcmp (optarg, "32")) +@@ -381,7 +381,7 @@ bool Options::graver () const + return m_graver; + } + +-bool Options::maxnorm () const ++int Options::maxnorm () const + { + return m_maxnorm; + } +--- src/zsolve/Options.h.orig 2018-08-19 09:37:54.000000000 -0600 ++++ src/zsolve/Options.h 2018-10-09 15:20:13.673783047 -0600 +@@ -39,7 +39,7 @@ protected: + bool m_resume; + bool m_hilbert; + bool m_graver; +- bool m_maxnorm; ++ int m_maxnorm; + _4ti2_precision m_precision; + + public: +@@ -63,7 +63,7 @@ public: + bool resume () const; + bool hilbert () const; + bool graver () const; +- bool maxnorm () const; ++ int maxnorm () const; + _4ti2_precision precision () const; + + friend std::istream& operator>>(std::istream& in, Options& options); diff --git a/4ti2.spec b/4ti2.spec index aa7f94b..c59017e 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,127 +1,134 @@ Name: 4ti2 -Version: 1.3.2 -Release: 13%{?dist} -Summary: A software package for problems on linear spaces +Version: 1.6.9 +Release: 1%{?dist} +Summary: Algebraic, geometric and combinatorial problems on linear spaces + +%global relver %(tr . _ <<< %{version}) -Group: System Environment/Libraries License: GPLv2+ -URL: http://www.4ti2.de/ -Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz -Source1: http://www.4ti2.de/4ti2_manual.pdf -Source2: 4ti2.module.in -Patch0: 4ti2-1.3.2-gcc47.patch -Requires: environment-modules -BuildRequires: gmp-devel +URL: https://4ti2.github.io/ +Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz +Source1: 4ti2.module.in +# Deal with a boolean variable that can somehow hold the value 2 +Patch0: %{name}-maxnorm.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: glpk-devel +BuildRequires: gmp-devel +BuildRequires: tex(latex) +BuildRequires: tex(epic.sty) + +# 4ti2 contains a copy of gnulib, which has been granted a bundling exception: +# https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides +Provides: bundled(gnulib) + +Requires: 4ti2-libs%{?_isa} = %{version}-%{release} +Requires: environment-modules %description -A software package for algebraic, geometric and combinatorial -problems on linear spaces. +A software package for algebraic, geometric and combinatorial problems +on linear spaces. -This package uses Environment Modules, to load the binaries onto -your PATH you will need to run module load %{name}-%{_arch} +This package uses Environment Modules. Prior to invoking the binaries, +you must run "module load 4ti2-%{arch}" to modify your PATH. + +%package devel +Summary: Headers needed to develop software that uses 4ti2 +Requires: 4ti2-libs%{?_isa} = %{version}-%{release} +Requires: gmp-devel%{?_isa} + +%description devel +Headers and library files needed to develop software that uses 4ti2. + +%package libs +Summary: Library for problems on linear spaces + +%description libs +A library for algebraic, geometric and combinatorial problems on linear +spaces. %prep -%setup -q -cp -p %{SOURCE1} . -%patch0 -p1 -b .gcc47 +%autosetup -p0 + +# Add a missing executable bit +chmod a+x ltmain.sh + +# Fix encodings +iconv -f ISO8859-1 -t UTF-8 NEWS > NEWS.utf8 +touch -r NEWS NEWS.utf8 +mv -f NEWS.utf8 NEWS + +# Update the C++ standard +sed -i 's/c++0x/c++11/g' configure %build -CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ -CFLAGS="%{optflags} -I%{_includedir}/glpk" \ -./configure --disable-shared --disable-static \ - --prefix=%{_libdir}/%{name} \ - --libdir=%{_libdir}/%{name}/lib/ \ - --bindir=%{_libdir}/%{name}/bin/ -perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool +%configure --enable-shared --disable-static --enable-fiber + +# Get rid of undesirable hardcoded rpaths; workaround libtool reordering +# -Wl,--as-needed after all the libraries. +sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ + -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \ + -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \ + -i libtool make %{?_smp_mflags} +# Build the manual +export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebner/.libs:$PWD/src/ppi/.libs:$PWD/src/util/.libs:$PWD/src/zsolve/.libs +pushd doc +make update-manual +bibtex 4ti2_manual +pdflatex 4ti2_manual +pdflatex 4ti2_manual +popd + %install -make install-exec DESTDIR=%{buildroot} +%make_install + +# Move the include files into a private directory +mkdir -p %{buildroot}%{_includedir}/tmp +mv %{buildroot}%{_includedir}/{4ti2,groebner,util,zsolve} \ + %{buildroot}%{_includedir}/tmp +mv %{buildroot}%{_includedir}/tmp %{buildroot}%{_includedir}/4ti2 + +# Move the 4ti2 binaries +mkdir -p %{buildroot}%{_libdir}/4ti2 +mv %{buildroot}%{_bindir} %{buildroot}%{_libdir}/4ti2 # Make the environment-modules file mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ # Since we're doing our own substitution here, use our own definitions. -sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;' < %SOURCE2 >%{buildroot}%{_datadir}/Modules/modulefiles/%{name}-%{_arch} +sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_datadir}/Modules/modulefiles/4ti2-%{_arch} -# The libraries are not really fit for use outside the package. -rm -rf %{buildroot}/%{_libdir}/%{name}/lib* +# We don't need or want libtool files +rm -f %{buildroot}%{_libdir}/*.la + +# We don't want documentation in _datadir +rm -fr %{buildroot}%{_datadir}/4ti2/doc + +%ldconfig_scriptlets libs %check +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} make check %files -%defattr(-,root,root,-) -%doc COPYING TODO 4ti2_manual.pdf -%dir %{_libdir}/%{name}/bin -%dir %{_libdir}/%{name} -%{_datadir}/Modules/modulefiles/%{name}-%{_arch} -%{_libdir}/%{name}/bin/output -%{_libdir}/%{name}/bin/4ti2gmp -%{_libdir}/%{name}/bin/4ti2int32 -%{_libdir}/%{name}/bin/4ti2int64 -%{_libdir}/%{name}/bin/circuits -%{_libdir}/%{name}/bin/genmodel -%{_libdir}/%{name}/bin/gensymm -%{_libdir}/%{name}/bin/graver -%{_libdir}/%{name}/bin/groebner -%{_libdir}/%{name}/bin/hilbert -%{_libdir}/%{name}/bin/markov -%{_libdir}/%{name}/bin/minimize -%{_libdir}/%{name}/bin/normalform -%{_libdir}/%{name}/bin/ppi -%{_libdir}/%{name}/bin/qsolve -%{_libdir}/%{name}/bin/rays -%{_libdir}/%{name}/bin/walk -%{_libdir}/%{name}/bin/zbasis -%{_libdir}/%{name}/bin/zsolve +%doc doc/4ti2_manual.pdf +%{_libdir}/4ti2/ +%{_datadir}/Modules/modulefiles/4ti2-%{_arch} + +%files devel +%{_includedir}/4ti2/ +%{_libdir}/lib4ti2*.so +%{_libdir}/libzsolve*.so + +%files libs +%doc NEWS README THANKS TODO +%license COPYING +%{_libdir}/lib4ti2*.so.0* +%{_libdir}/libzsolve*.so.0* %changelog -* Sun Feb 03 2013 Kevin Fenzi - 1.3.2-13 -- Rebuild for broken deps in rawhide - -* Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Mar 5 2012 Tom Callaway - 1.3.2-11 -- fix gcc47 issues - -* Tue Feb 28 2012 Fedora Release Engineering - 1.3.2-10 -- Rebuilt for c++ ABI breakage - -* Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Nov 16 2011 Peter Robinson - 1.3.2-8 -- Rebuild for new gmp - -* Wed Sep 21 2011 Peter Schiffer - 1.3.2-7.1 -- rebuild with new gmp - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri May 21 2010 Mark Chappell - 1.3.2-6 -- Take ownership of 2 directories we created - -* Tue Mar 02 2010 Mark Chappell - 1.3.2-5 -- Add note to description about environment modules - -* Tue Mar 02 2010 Mark Chappell - 1.3.2-4 -- Switch to using modules -- Tag with the correct licence (GPLv2+) - -* Thu Feb 25 2010 Mark Chappell - 1.3.2-3 -- Preserve time stamp on 4ti2_manual.pdf -- Whitespace cleanup -- Remove obsolete post and portun calls -- Manually specify binaries - -* Thu Feb 25 2010 Mark Chappell - 1.3.2-2 -- Tidy up inconsistant use of macros -- Remove empty devel package -- Include 4ti2 manual - -* Wed Feb 17 2010 M D Chappell - 1.3.2-1 -- Initial build +* Sat Sep 29 2018 Jerry James - 1.6.9-1 +- Split back out of latte-integrale diff --git a/sources b/sources index c25f9de..240fe43 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -93367e63944d8bb18192c4984544ed0d 4ti2-1.3.2.tar.gz -1b6fb847fc0eacddfaaef3d00c8bb7ba 4ti2_manual.pdf +SHA512 (4ti2-1.6.9.tar.gz) = ca571cafb3d2f37b49c446f144499c830d940fd6b00c424a442acbbc2d947e52e6b76226769ce678367b45a21e4063da9eea1dc1acc51b45245c2c1edb95e18a From bbb03582193f0d39a35551180f7b2462b0d3eeaf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 11:20:04 +0000 Subject: [PATCH 16/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index c59017e..529003e 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,5 +130,8 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 1.6.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Sat Sep 29 2018 Jerry James - 1.6.9-1 - Split back out of latte-integrale From 4a16956eba676083542e4881e44bcac08585b8ff Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 15:37:26 +0000 Subject: [PATCH 17/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 529003e..7b3b2d4 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 1.6.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Thu Jan 31 2019 Fedora Release Engineering - 1.6.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From d200b0c144b3bf2dcb65c6b05d3d124b6887eee2 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 9 Dec 2019 21:36:30 -0700 Subject: [PATCH 18/53] Fix the location of the module file (bz 1773348). Do not build the empty fiber library. --- 4ti2.rpmlintrc | 11 +++++++++++ 4ti2.spec | 21 ++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 4ti2.rpmlintrc diff --git a/4ti2.rpmlintrc b/4ti2.rpmlintrc new file mode 100644 index 0000000..ce69003 --- /dev/null +++ b/4ti2.rpmlintrc @@ -0,0 +1,11 @@ +# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON +# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors + +# The dictionary is missing some technical terms +addFilter(r'W: spelling-error .* combinatorial') + +# The documentation is in the main package +addFilter(r'4ti2-devel\.[^:]+: W: no-documentation') + +# If gnulib leaves a version number behind somewhere, I can't find it +addFilter(r'4ti2\.spec:[^:]+: W: unversioned-explicit-provides bundled\(gnulib\)') diff --git a/4ti2.spec b/4ti2.spec index 7b3b2d4..251f244 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -12,6 +12,7 @@ Source1: 4ti2.module.in # Deal with a boolean variable that can somehow hold the value 2 Patch0: %{name}-maxnorm.patch +BuildRequires: environment(modules) BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glpk-devel @@ -24,14 +25,14 @@ BuildRequires: tex(epic.sty) Provides: bundled(gnulib) Requires: 4ti2-libs%{?_isa} = %{version}-%{release} -Requires: environment-modules +Requires: environment(modules) %description A software package for algebraic, geometric and combinatorial problems on linear spaces. This package uses Environment Modules. Prior to invoking the binaries, -you must run "module load 4ti2-%{arch}" to modify your PATH. +you must run "module load 4ti2-%{_arch}" to modify your PATH. %package devel Summary: Headers needed to develop software that uses 4ti2 @@ -63,7 +64,7 @@ mv -f NEWS.utf8 NEWS sed -i 's/c++0x/c++11/g' configure %build -%configure --enable-shared --disable-static --enable-fiber +%configure --enable-shared --disable-static # Get rid of undesirable hardcoded rpaths; workaround libtool reordering # -Wl,--as-needed after all the libraries. @@ -97,9 +98,9 @@ mkdir -p %{buildroot}%{_libdir}/4ti2 mv %{buildroot}%{_bindir} %{buildroot}%{_libdir}/4ti2 # Make the environment-modules file -mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ +mkdir -p %{buildroot}%{_modulesdir} # Since we're doing our own substitution here, use our own definitions. -sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_datadir}/Modules/modulefiles/4ti2-%{_arch} +sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_modulesdir}/4ti2-%{_arch} # We don't need or want libtool files rm -f %{buildroot}%{_libdir}/*.la @@ -107,8 +108,6 @@ rm -f %{buildroot}%{_libdir}/*.la # We don't want documentation in _datadir rm -fr %{buildroot}%{_datadir}/4ti2/doc -%ldconfig_scriptlets libs - %check export LD_LIBRARY_PATH=%{buildroot}%{_libdir} make check @@ -116,7 +115,7 @@ make check %files %doc doc/4ti2_manual.pdf %{_libdir}/4ti2/ -%{_datadir}/Modules/modulefiles/4ti2-%{_arch} +%{_modulesdir}/4ti2-%{_arch} %files devel %{_includedir}/4ti2/ @@ -130,6 +129,10 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Dec 9 2019 Jerry James - 1.6.9-4 +- Fix the location of the module file (bz 1773348) +- Do not build the empty fiber library + * Wed Jul 24 2019 Fedora Release Engineering - 1.6.9-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 1fe6592c0450583529d885e26244fe8939023137 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 09:08:40 +0000 Subject: [PATCH 19/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 251f244..499f036 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -129,6 +129,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 1.6.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Mon Dec 9 2019 Jerry James - 1.6.9-4 - Fix the location of the module file (bz 1773348) - Do not build the empty fiber library From a316cf324ab774ea3e658d6f74c57dd5df630856 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 13 Jul 2020 15:52:36 +0000 Subject: [PATCH 20/53] Use make macros https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro --- 4ti2.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 499f036..780d8d3 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -73,7 +73,7 @@ sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \ -i libtool -make %{?_smp_mflags} +%make_build # Build the manual export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebner/.libs:$PWD/src/ppi/.libs:$PWD/src/util/.libs:$PWD/src/zsolve/.libs @@ -129,6 +129,10 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Jul 13 2020 Tom Stellard - 1.6.9-6 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + * Tue Jan 28 2020 Fedora Release Engineering - 1.6.9-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 203e2bd7df17cbfcfdeae05cf2201acd9248aa64 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 10:10:47 +0000 Subject: [PATCH 21/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 780d8d3..1db12cf 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -129,6 +129,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 1.6.9-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 13 2020 Tom Stellard - 1.6.9-6 - Use make macros - https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro From 48b8d1c2ef03a977b709edfc701aedf3bf1292f0 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 9 Nov 2020 10:44:37 -0700 Subject: [PATCH 22/53] Explicitly BR make. --- 4ti2.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/4ti2.spec b/4ti2.spec index 1db12cf..f4f64e1 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -17,6 +17,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glpk-devel BuildRequires: gmp-devel +BuildRequires: make BuildRequires: tex(latex) BuildRequires: tex(epic.sty) From 797d063502f9754417d6746ca8970b736241ca1c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 25 Jan 2021 22:13:45 +0000 Subject: [PATCH 23/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index f4f64e1..5566112 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Jan 25 2021 Fedora Release Engineering - 1.6.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 1.6.9-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 69b816a82cfb966f514ae1192ea6f3f30f1553d4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 10:42:08 +0000 Subject: [PATCH 24/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 38d1d36c1891dd7c290350d1b852dfb87312a97a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 15:36:34 +0000 Subject: [PATCH 25/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 5566112..6ba8be3 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 1.6.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Mon Jan 25 2021 Fedora Release Engineering - 1.6.9-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From eaa4ecf79d25aace76b3d89b9c6f7f9e6acbe172 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 19:10:59 +0000 Subject: [PATCH 26/53] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 6ba8be3..dd6f347 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 1.6.9-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jul 21 2021 Fedora Release Engineering - 1.6.9-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From a9c3f446efc8461e5b8caae04545c33e48d1e459 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 7 Jul 2022 10:45:40 -0600 Subject: [PATCH 27/53] Add README.md. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0d1eaae --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# 4ti2 + +[4ti2](https://4ti2.github.io/) is a software package for algebraic, geometric +and combinatorial problems on linear spaces. From 82ab639287d01640932c2aebbacc6867037e5ee8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 18:23:54 +0000 Subject: [PATCH 28/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index dd6f347..986e5ca 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 10%{?dist} +Release: 11%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 1.6.9-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jan 19 2022 Fedora Release Engineering - 1.6.9-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 6fc3c1c216b181907463c2ff88e894172033f555 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 11 Aug 2022 09:14:14 -0600 Subject: [PATCH 29/53] Convert License tag to SPDX. --- 4ti2.rpmlintrc | 11 ----------- 4ti2.spec | 5 ++++- 2 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 4ti2.rpmlintrc diff --git a/4ti2.rpmlintrc b/4ti2.rpmlintrc deleted file mode 100644 index ce69003..0000000 --- a/4ti2.rpmlintrc +++ /dev/null @@ -1,11 +0,0 @@ -# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON -# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors - -# The dictionary is missing some technical terms -addFilter(r'W: spelling-error .* combinatorial') - -# The documentation is in the main package -addFilter(r'4ti2-devel\.[^:]+: W: no-documentation') - -# If gnulib leaves a version number behind somewhere, I can't find it -addFilter(r'4ti2\.spec:[^:]+: W: unversioned-explicit-provides bundled\(gnulib\)') diff --git a/4ti2.spec b/4ti2.spec index 986e5ca..1079702 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -5,7 +5,7 @@ Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) -License: GPLv2+ +License: GPL-2.0-or-later URL: https://4ti2.github.io/ Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in @@ -130,6 +130,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Thu Aug 11 2022 Jerry James - 1.6.9-11 +- Convert License tag to SPDX + * Wed Jul 20 2022 Fedora Release Engineering - 1.6.9-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 5d3c0dc1d76502f85673e9e3174ed919800d6d4f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 16 Nov 2022 10:53:32 -0700 Subject: [PATCH 30/53] Silence "egrep is obsolescent" warnings from the scripts. Update license to reflect embedded fonts in the PDF manual. --- 4ti2.spec | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 1079702..f654a87 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,11 +1,16 @@ Name: 4ti2 Version: 1.6.9 -Release: 11%{?dist} +Release: 12%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) -License: GPL-2.0-or-later +# The content is GPL-2.0-or-later. The remaining licenses cover the various +# fonts embedded in the PDF manual. +# AMS: OFL-1.1-RFN +# CM: Knuth-CTAN AND LicenseRef-Fedora-Public-Domain +# CM-Super: GPL-1.0-or-later +License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND LicenseRef-Fedora-Public-Domain AND GPL-1.0-or-later URL: https://4ti2.github.io/ Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in @@ -64,6 +69,13 @@ mv -f NEWS.utf8 NEWS # Update the C++ standard sed -i 's/c++0x/c++11/g' configure +# Silence "egrep is obsolescent" warnings +for f in $(grep -Frl egrep src/groebner test); do + sed -i.orig 's/egrep/grep -E/g' $f + touch -r $f.orig $f + rm $f.orig +done + %build %configure --enable-shared --disable-static @@ -81,8 +93,8 @@ export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebne pushd doc make update-manual bibtex 4ti2_manual -pdflatex 4ti2_manual -pdflatex 4ti2_manual +pdflatex -interaction=batchmode 4ti2_manual +pdflatex -interaction=batchmode 4ti2_manual popd %install @@ -130,6 +142,10 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Nov 16 2022 Jerry James - 1.6.9-12 +- Silence "egrep is obsolescent" warnings from the scripts +- Update license to reflect embedded fonts in the PDF manual + * Thu Aug 11 2022 Jerry James - 1.6.9-11 - Convert License tag to SPDX From d45354d909ee29742cd6013198ead0f73ee464c7 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 29 Dec 2022 16:22:03 -0500 Subject: [PATCH 31/53] Add missing #include for gcc-13. --- 4ti2-missing-include.patch | 12 ++++++++++++ 4ti2.spec | 6 +++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 4ti2-missing-include.patch diff --git a/4ti2-missing-include.patch b/4ti2-missing-include.patch new file mode 100644 index 0000000..980fce7 --- /dev/null +++ b/4ti2-missing-include.patch @@ -0,0 +1,12 @@ +diff --git a/src/zsolve/VectorArrayAPI.hpp b/src/zsolve/VectorArrayAPI.hpp +index a5cb948..31b3322 100644 +--- src/zsolve/VectorArrayAPI.hpp ++++ src/zsolve/VectorArrayAPI.hpp +@@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + #include "zsolve/Exception.h" + #include + #include ++#include + + namespace _4ti2_zsolve_ { + diff --git a/4ti2.spec b/4ti2.spec index f654a87..c100481 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 12%{?dist} +Release: 13%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -16,6 +16,7 @@ Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver} Source1: 4ti2.module.in # Deal with a boolean variable that can somehow hold the value 2 Patch0: %{name}-maxnorm.patch +Patch1: %{name}-missing-include.patch BuildRequires: environment(modules) BuildRequires: gcc @@ -142,6 +143,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Dec 29 2022 Jeff Law - 1.6.9-13 +- Add missing #include for gcc-13 + * Wed Nov 16 2022 Jerry James - 1.6.9-12 - Silence "egrep is obsolescent" warnings from the scripts - Update license to reflect embedded fonts in the PDF manual From 04ec62f564294b2c04b0b524df1c96a33f059453 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 10 Jan 2023 09:20:18 -0700 Subject: [PATCH 32/53] Add patch to fix a memory leak. --- 4ti2-memleak.patch | 10 ++++++++++ 4ti2.spec | 13 ++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 4ti2-memleak.patch diff --git a/4ti2-memleak.patch b/4ti2-memleak.patch new file mode 100644 index 0000000..1dcd762 --- /dev/null +++ b/4ti2-memleak.patch @@ -0,0 +1,10 @@ +--- src/util/vector.c.orig 2018-08-19 09:37:54.000000000 -0600 ++++ src/util/vector.c 2023-01-10 09:06:32.820214647 -0700 +@@ -525,7 +525,6 @@ listVector* permuteListVector(listVector + listVector *tmp2; + + tmp2=LIST; +- v=createVector(numOfVars); + while (LIST) { + tmp=LIST->first; + v=permuteVector(LIST->first,p,numOfVars); diff --git a/4ti2.spec b/4ti2.spec index c100481..a948fb5 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 13%{?dist} +Release: 14%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -8,15 +8,19 @@ Summary: Algebraic, geometric and combinatorial problems on linear spaces # The content is GPL-2.0-or-later. The remaining licenses cover the various # fonts embedded in the PDF manual. # AMS: OFL-1.1-RFN -# CM: Knuth-CTAN AND LicenseRef-Fedora-Public-Domain +# CM: Knuth-CTAN # CM-Super: GPL-1.0-or-later -License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND LicenseRef-Fedora-Public-Domain AND GPL-1.0-or-later +License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later URL: https://4ti2.github.io/ Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in # Deal with a boolean variable that can somehow hold the value 2 Patch0: %{name}-maxnorm.patch +# Add missing #include for gcc 13 Patch1: %{name}-missing-include.patch +# Fix a memory leak +# See https://github.com/4ti2/4ti2/pull/36 +Patch2: %{name}-memleak.patch BuildRequires: environment(modules) BuildRequires: gcc @@ -143,6 +147,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Tue Jan 10 2023 Jerry James - 1.6.9-14 +- Add patch to fix a memory leak + * Wed Dec 29 2022 Jeff Law - 1.6.9-13 - Add missing #include for gcc-13 From cc3f0aebf6ff868fd48dfcf968e4f4e34e9849aa Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 19:35:20 +0000 Subject: [PATCH 33/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index a948fb5..7a65aa4 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.9 -Release: 14%{?dist} +Release: 15%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -147,6 +147,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 1.6.9-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Jan 10 2023 Jerry James - 1.6.9-14 - Add patch to fix a memory leak From d091c0644746879021ad08ffed79e709e4abb9b1 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Sat, 29 Apr 2023 21:42:37 -0600 Subject: [PATCH 34/53] Version 1.6.10 Drop upstreamed memleak & missing-include patches --- 4ti2-memleak.patch | 10 ---------- 4ti2-missing-include.patch | 12 ------------ 4ti2.spec | 25 +++++++++++++++---------- sources | 2 +- 4 files changed, 16 insertions(+), 33 deletions(-) delete mode 100644 4ti2-memleak.patch delete mode 100644 4ti2-missing-include.patch diff --git a/4ti2-memleak.patch b/4ti2-memleak.patch deleted file mode 100644 index 1dcd762..0000000 --- a/4ti2-memleak.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/util/vector.c.orig 2018-08-19 09:37:54.000000000 -0600 -+++ src/util/vector.c 2023-01-10 09:06:32.820214647 -0700 -@@ -525,7 +525,6 @@ listVector* permuteListVector(listVector - listVector *tmp2; - - tmp2=LIST; -- v=createVector(numOfVars); - while (LIST) { - tmp=LIST->first; - v=permuteVector(LIST->first,p,numOfVars); diff --git a/4ti2-missing-include.patch b/4ti2-missing-include.patch deleted file mode 100644 index 980fce7..0000000 --- a/4ti2-missing-include.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/zsolve/VectorArrayAPI.hpp b/src/zsolve/VectorArrayAPI.hpp -index a5cb948..31b3322 100644 ---- src/zsolve/VectorArrayAPI.hpp -+++ src/zsolve/VectorArrayAPI.hpp -@@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - #include "zsolve/Exception.h" - #include - #include -+#include - - namespace _4ti2_zsolve_ { - diff --git a/4ti2.spec b/4ti2.spec index 7a65aa4..8d1df17 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 -Version: 1.6.9 -Release: 15%{?dist} +Version: 1.6.10 +Release: 1%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -16,11 +16,6 @@ Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver} Source1: 4ti2.module.in # Deal with a boolean variable that can somehow hold the value 2 Patch0: %{name}-maxnorm.patch -# Add missing #include for gcc 13 -Patch1: %{name}-missing-include.patch -# Fix a memory leak -# See https://github.com/4ti2/4ti2/pull/36 -Patch2: %{name}-memleak.patch BuildRequires: environment(modules) BuildRequires: gcc @@ -82,6 +77,12 @@ for f in $(grep -Frl egrep src/groebner test); do done %build +# Do not override Fedora compiler flags +sed -e 's|-O3 -fomit-frame-pointer|%{build_cflags}|' \ + -e 's/-march=\$arch -mcpu=\$arch -m\$arch//' \ + -e 's/-mtune=\$arch//' \ + -i configure + %configure --enable-shared --disable-static # Get rid of undesirable hardcoded rpaths; workaround libtool reordering @@ -98,8 +99,8 @@ export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebne pushd doc make update-manual bibtex 4ti2_manual -pdflatex -interaction=batchmode 4ti2_manual -pdflatex -interaction=batchmode 4ti2_manual +pdflatex 4ti2_manual +pdflatex 4ti2_manual popd %install @@ -147,13 +148,17 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Sat Apr 29 2023 Jerry James - 1.6.10-1 +- Version 1.6.10 +- Drop upstreamed memleak & missing-include patches + * Wed Jan 18 2023 Fedora Release Engineering - 1.6.9-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Tue Jan 10 2023 Jerry James - 1.6.9-14 - Add patch to fix a memory leak -* Wed Dec 29 2022 Jeff Law - 1.6.9-13 +* Thu Dec 29 2022 Jeff Law - 1.6.9-13 - Add missing #include for gcc-13 * Wed Nov 16 2022 Jerry James - 1.6.9-12 diff --git a/sources b/sources index 240fe43..3e9f3a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4ti2-1.6.9.tar.gz) = ca571cafb3d2f37b49c446f144499c830d940fd6b00c424a442acbbc2d947e52e6b76226769ce678367b45a21e4063da9eea1dc1acc51b45245c2c1edb95e18a +SHA512 (4ti2-1.6.10.tar.gz) = d591ed272664c7467e9b28082c0a99002b3a4616cf437eecd243ccca2ab0f08abdba5dcd039a109b05793f7aaf9f405af9a58c7eff90b7b01b3b1f34fb7fdb2e From 9ee1679a35b0e38bdb1ea7c5f33af34aca0b23d0 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 14 Jul 2023 16:06:10 -0600 Subject: [PATCH 35/53] Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) --- 4ti2.spec | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 8d1df17..2b8dd20 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -69,13 +69,6 @@ mv -f NEWS.utf8 NEWS # Update the C++ standard sed -i 's/c++0x/c++11/g' configure -# Silence "egrep is obsolescent" warnings -for f in $(grep -Frl egrep src/groebner test); do - sed -i.orig 's/egrep/grep -E/g' $f - touch -r $f.orig $f - rm $f.orig -done - %build # Do not override Fedora compiler flags sed -e 's|-O3 -fomit-frame-pointer|%{build_cflags}|' \ @@ -148,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Fri Jul 14 2023 Jerry James - 1.6.10-1 +- Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) + * Sat Apr 29 2023 Jerry James - 1.6.10-1 - Version 1.6.10 - Drop upstreamed memleak & missing-include patches From 38ff7b03f232d421007a03c11f7196575e1378fe Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 10:55:00 +0000 Subject: [PATCH 36/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 2b8dd20..6eafbb8 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 1.6.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Fri Jul 14 2023 Jerry James - 1.6.10-1 - Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) From a895eaeb49e3f9e85546793a3bfdce7217ecb507 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jan 2024 12:01:25 +0000 Subject: [PATCH 37/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 6eafbb8..a39b2fd 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Thu Jan 18 2024 Fedora Release Engineering - 1.6.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Jul 19 2023 Fedora Release Engineering - 1.6.10-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 35f35d33356fa436694f16bfd424cd5620a62660 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 09:07:03 +0000 Subject: [PATCH 38/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index a39b2fd..1261871 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 1.6.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Thu Jan 18 2024 Fedora Release Engineering - 1.6.10-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From e06ae2b3633cf543c8c5917dec6130e7e472b3e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 20:40:29 +0000 Subject: [PATCH 39/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 1261871..cde0cb9 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 1.6.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 1.6.10-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 17a35ac5a6cfb46aa174ee2908c746a1f1909f8c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 29 Jan 2024 10:43:26 +0000 Subject: [PATCH 40/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index cde0cb9..6608de4 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,6 +141,9 @@ make check %{_libdir}/libzsolve*.so.0* %changelog +* Mon Jan 29 2024 Fedora Release Engineering - 1.6.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Mon Jan 22 2024 Fedora Release Engineering - 1.6.10-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 34a6d0f32ee14cecca951d32d3b1c7b851734ef3 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 21 Mar 2024 10:12:22 -0600 Subject: [PATCH 41/53] Convert to %autorelease and %autochangelog [skip changelog] --- 4ti2.spec | 75 ++----------------------------------------------------- changelog | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 73 deletions(-) create mode 100644 changelog diff --git a/4ti2.spec b/4ti2.spec index 6608de4..ec4c539 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,6 +1,6 @@ Name: 4ti2 Version: 1.6.10 -Release: 6%{?dist} +Release: %autorelease Summary: Algebraic, geometric and combinatorial problems on linear spaces %global relver %(tr . _ <<< %{version}) @@ -141,75 +141,4 @@ make check %{_libdir}/libzsolve*.so.0* %changelog -* Mon Jan 29 2024 Fedora Release Engineering - 1.6.10-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 1.6.10-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.6.10-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jan 18 2024 Fedora Release Engineering - 1.6.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 1.6.10-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jul 14 2023 Jerry James - 1.6.10-1 -- Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) - -* Sat Apr 29 2023 Jerry James - 1.6.10-1 -- Version 1.6.10 -- Drop upstreamed memleak & missing-include patches - -* Wed Jan 18 2023 Fedora Release Engineering - 1.6.9-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 10 2023 Jerry James - 1.6.9-14 -- Add patch to fix a memory leak - -* Thu Dec 29 2022 Jeff Law - 1.6.9-13 -- Add missing #include for gcc-13 - -* Wed Nov 16 2022 Jerry James - 1.6.9-12 -- Silence "egrep is obsolescent" warnings from the scripts -- Update license to reflect embedded fonts in the PDF manual - -* Thu Aug 11 2022 Jerry James - 1.6.9-11 -- Convert License tag to SPDX - -* Wed Jul 20 2022 Fedora Release Engineering - 1.6.9-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 1.6.9-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 1.6.9-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jan 25 2021 Fedora Release Engineering - 1.6.9-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.6.9-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 13 2020 Tom Stellard - 1.6.9-6 -- Use make macros -- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - -* Tue Jan 28 2020 Fedora Release Engineering - 1.6.9-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Dec 9 2019 Jerry James - 1.6.9-4 -- Fix the location of the module file (bz 1773348) -- Do not build the empty fiber library - -* Wed Jul 24 2019 Fedora Release Engineering - 1.6.9-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.6.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Sep 29 2018 Jerry James - 1.6.9-1 -- Split back out of latte-integrale +%autochangelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..1e29ac6 --- /dev/null +++ b/changelog @@ -0,0 +1,72 @@ +* Mon Jan 29 2024 Fedora Release Engineering - 1.6.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.6.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.6.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 18 2024 Fedora Release Engineering - 1.6.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1.6.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 14 2023 Jerry James - 1.6.10-1 +- Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) + +* Sat Apr 29 2023 Jerry James - 1.6.10-1 +- Version 1.6.10 +- Drop upstreamed memleak & missing-include patches + +* Wed Jan 18 2023 Fedora Release Engineering - 1.6.9-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 10 2023 Jerry James - 1.6.9-14 +- Add patch to fix a memory leak + +* Thu Dec 29 2022 Jeff Law - 1.6.9-13 +- Add missing #include for gcc-13 + +* Wed Nov 16 2022 Jerry James - 1.6.9-12 +- Silence "egrep is obsolescent" warnings from the scripts +- Update license to reflect embedded fonts in the PDF manual + +* Thu Aug 11 2022 Jerry James - 1.6.9-11 +- Convert License tag to SPDX + +* Wed Jul 20 2022 Fedora Release Engineering - 1.6.9-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 1.6.9-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.6.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jan 25 2021 Fedora Release Engineering - 1.6.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.6.9-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 1.6.9-6 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Tue Jan 28 2020 Fedora Release Engineering - 1.6.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 9 2019 Jerry James - 1.6.9-4 +- Fix the location of the module file (bz 1773348) +- Do not build the empty fiber library + +* Wed Jul 24 2019 Fedora Release Engineering - 1.6.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.6.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Sep 29 2018 Jerry James - 1.6.9-1 +- Split back out of latte-integrale From 4d10bff2f36e698d72ec8ef24d6bb5208fb5b608 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 21 Mar 2024 10:14:41 -0600 Subject: [PATCH 42/53] Stop building for 32-bit x86 - Drop maxnorm patch which was only needed for i386 --- 4ti2-maxnorm.patch | 49 ---------------------------------------------- 4ti2.spec | 10 ++++++---- 2 files changed, 6 insertions(+), 53 deletions(-) delete mode 100644 4ti2-maxnorm.patch diff --git a/4ti2-maxnorm.patch b/4ti2-maxnorm.patch deleted file mode 100644 index 8042b6f..0000000 --- a/4ti2-maxnorm.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- src/zsolve/Options.cpp.orig 2018-08-19 09:37:54.000000000 -0600 -+++ src/zsolve/Options.cpp 2018-10-09 15:22:30.464345255 -0600 -@@ -70,7 +70,7 @@ Options::set_defaults () - m_loglevel = 0; - m_backup_frequency = 0; - m_resume = false; -- m_maxnorm = false; -+ m_maxnorm = 0; - } - - void -@@ -195,7 +195,7 @@ Options::process_options (int argc, char - m_graver = true; - break; - case 'm': -- m_maxnorm = true; -+ m_maxnorm = 1; - break; - case 'p': - if (optarg == NULL || !strcmp (optarg, "32")) -@@ -381,7 +381,7 @@ bool Options::graver () const - return m_graver; - } - --bool Options::maxnorm () const -+int Options::maxnorm () const - { - return m_maxnorm; - } ---- src/zsolve/Options.h.orig 2018-08-19 09:37:54.000000000 -0600 -+++ src/zsolve/Options.h 2018-10-09 15:20:13.673783047 -0600 -@@ -39,7 +39,7 @@ protected: - bool m_resume; - bool m_hilbert; - bool m_graver; -- bool m_maxnorm; -+ int m_maxnorm; - _4ti2_precision m_precision; - - public: -@@ -63,7 +63,7 @@ public: - bool resume () const; - bool hilbert () const; - bool graver () const; -- bool maxnorm () const; -+ int maxnorm () const; - _4ti2_precision precision () const; - - friend std::istream& operator>>(std::istream& in, Options& options); diff --git a/4ti2.spec b/4ti2.spec index ec4c539..a502586 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -12,10 +12,12 @@ Summary: Algebraic, geometric and combinatorial problems on linear spaces # CM-Super: GPL-1.0-or-later License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later URL: https://4ti2.github.io/ -Source0: https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz +VCS: https://github.com/4ti2/4ti2 +Source0: %{vcs}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in -# Deal with a boolean variable that can somehow hold the value 2 -Patch0: %{name}-maxnorm.patch + +# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} BuildRequires: environment(modules) BuildRequires: gcc @@ -56,7 +58,7 @@ A library for algebraic, geometric and combinatorial problems on linear spaces. %prep -%autosetup -p0 +%autosetup # Add a missing executable bit chmod a+x ltmain.sh From 989798174196669927a787035c5b0cd16bc10265 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 16 Jul 2024 11:03:27 -0600 Subject: [PATCH 43/53] Fix VCS field --- 4ti2.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index a502586..24b88d0 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,3 +1,5 @@ +%global giturl https://github.com/4ti2/4ti2 + Name: 4ti2 Version: 1.6.10 Release: %autorelease @@ -12,8 +14,8 @@ Summary: Algebraic, geometric and combinatorial problems on linear spaces # CM-Super: GPL-1.0-or-later License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later URL: https://4ti2.github.io/ -VCS: https://github.com/4ti2/4ti2 -Source0: %{vcs}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz +VCS: git:%{giturl}.git +Source0: %{giturl}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval From b59498fcc394fe332f29490b8c05e8016aa6f48b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 14:40:51 +0000 Subject: [PATCH 44/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 77b21715cfc6fe44f5f9b1f5ad1ea1572ed7200f Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 13 Jan 2025 06:52:56 -0700 Subject: [PATCH 45/53] Move configuration actions to %conf - Clarify license of the devel and libs subpackages --- 4ti2.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/4ti2.spec b/4ti2.spec index 24b88d0..733a525 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -46,6 +46,7 @@ you must run "module load 4ti2-%{_arch}" to modify your PATH. %package devel Summary: Headers needed to develop software that uses 4ti2 +License: GPL-2.0-or-later Requires: 4ti2-libs%{?_isa} = %{version}-%{release} Requires: gmp-devel%{?_isa} @@ -54,6 +55,7 @@ Headers and library files needed to develop software that uses 4ti2. %package libs Summary: Library for problems on linear spaces +License: GPL-2.0-or-later %description libs A library for algebraic, geometric and combinatorial problems on linear @@ -62,6 +64,7 @@ spaces. %prep %autosetup +%conf # Add a missing executable bit chmod a+x ltmain.sh @@ -73,7 +76,6 @@ mv -f NEWS.utf8 NEWS # Update the C++ standard sed -i 's/c++0x/c++11/g' configure -%build # Do not override Fedora compiler flags sed -e 's|-O3 -fomit-frame-pointer|%{build_cflags}|' \ -e 's/-march=\$arch -mcpu=\$arch -m\$arch//' \ @@ -89,6 +91,7 @@ sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \ -i libtool +%build %make_build # Build the manual From eb022cb68081596ee3f8c6d1be4af28d0033acc2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 08:21:16 +0000 Subject: [PATCH 46/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From fa7a491418de3ecc35178c163917775f7b160012 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 20 Jan 2025 07:17:34 +0000 Subject: [PATCH 47/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From d57c2f3bce52c29d5d0fbf8fc71c1815755db56c Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 29 May 2025 09:52:13 -0600 Subject: [PATCH 48/53] Version 1.6.12 --- 4ti2.spec | 16 ++-------------- sources | 2 +- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 733a525..7fe6e32 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,7 +1,7 @@ %global giturl https://github.com/4ti2/4ti2 Name: 4ti2 -Version: 1.6.10 +Version: 1.6.12 Release: %autorelease Summary: Algebraic, geometric and combinatorial problems on linear spaces @@ -65,23 +65,11 @@ spaces. %autosetup %conf -# Add a missing executable bit -chmod a+x ltmain.sh - # Fix encodings iconv -f ISO8859-1 -t UTF-8 NEWS > NEWS.utf8 touch -r NEWS NEWS.utf8 mv -f NEWS.utf8 NEWS -# Update the C++ standard -sed -i 's/c++0x/c++11/g' configure - -# Do not override Fedora compiler flags -sed -e 's|-O3 -fomit-frame-pointer|%{build_cflags}|' \ - -e 's/-march=\$arch -mcpu=\$arch -m\$arch//' \ - -e 's/-mtune=\$arch//' \ - -i configure - %configure --enable-shared --disable-static # Get rid of undesirable hardcoded rpaths; workaround libtool reordering @@ -142,7 +130,7 @@ make check %{_libdir}/libzsolve*.so %files libs -%doc NEWS README THANKS TODO +%doc AUTHORS NEWS README.md THANKS %license COPYING %{_libdir}/lib4ti2*.so.0* %{_libdir}/libzsolve*.so.0* diff --git a/sources b/sources index 3e9f3a1..0efb07c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4ti2-1.6.10.tar.gz) = d591ed272664c7467e9b28082c0a99002b3a4616cf437eecd243ccca2ab0f08abdba5dcd039a109b05793f7aaf9f405af9a58c7eff90b7b01b3b1f34fb7fdb2e +SHA512 (4ti2-1.6.12.tar.gz) = 954e99500e91c9ebd135798c42ead6135bc4ee7a1518c29926a927daa89d7ac07fcaa4a610651381114e6521a70a0aae6a3ee97ffe23143f42fc7f5943aa52b0 From 2f6a9773bdca5607c7b31948093039090baf2401 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 15:39:51 +0000 Subject: [PATCH 49/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From e03cc25c7423e1af8504ed67f14cc292fdd38d70 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 7 Aug 2025 12:49:34 -0600 Subject: [PATCH 50/53] Version 1.6.13 --- 4ti2.spec | 18 +++++++++++++++++- sources | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 7fe6e32..c45c681 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,7 +1,7 @@ %global giturl https://github.com/4ti2/4ti2 Name: 4ti2 -Version: 1.6.12 +Version: 1.6.13 Release: %autorelease Summary: Algebraic, geometric and combinatorial problems on linear spaces @@ -13,6 +13,22 @@ Summary: Algebraic, geometric and combinatorial problems on linear spaces # CM: Knuth-CTAN # CM-Super: GPL-1.0-or-later License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later +# Source files under licenses other than GPL-2.0-or-later: +# GPL-2.0-or-later WITH Autoconf-exception-macro: compile, +# m4/ax_cflags_warn_all.m4 +# GPL-2.0-or-later WITH Libtool-exception: configure, ltmain.sh +# GPL-2.0-or-later OR MIT: ltmain.sh +# GPL-3.0-or-later: lib/*.{c,h} (not compiled into the binary) +# GPL-3.0-or-later WITH Autoconf-exception-generic: lib/Makefile.am, +# m4/onceonly.m4 +# GPL-3.0-or-later WITH Autoconf-exception-macro: config.guess, +# m4/ax_check_compile_flag.m4 +# FSFUL: configure, m4/libtool.m4 +# FSFULLR: aclocal.m4, m4/00gnulib.m4, m4/libtool.m4 +# FSFULLRWD: aclocal.m4, Makefile.in +# X11: install-sh +# LicenseRef-Fedora-Public-Domain: install-sh +SourceLicense: GPL-2.0-or-later AND GPL-2.0-or-later WITH Autoconf-exception-macro AND GPL-2.0-or-later WITH Libtool-exception AND (GPL-2.0-or-later OR MIT) AND GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic AND GPL-3.0-or-later WITH Autoconf-exception-macro AND FSFUL AND FSFULLR AND FSFULLRWD AND X11 AND LicenseRef-Fedora-Public-Domain URL: https://4ti2.github.io/ VCS: git:%{giturl}.git Source0: %{giturl}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz diff --git a/sources b/sources index 0efb07c..69f1e67 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4ti2-1.6.12.tar.gz) = 954e99500e91c9ebd135798c42ead6135bc4ee7a1518c29926a927daa89d7ac07fcaa4a610651381114e6521a70a0aae6a3ee97ffe23143f42fc7f5943aa52b0 +SHA512 (4ti2-1.6.13.tar.gz) = 3cf178e18c1547735885464cd29fecfcc9454258a382ecf929394e9c2edf6218f14d28694bf62a5a26536193142558a96443da6eafdd497fa325de6f0f2e0bda From 03aed770dc4ea740d0340467e98e7d0aa7819b6c Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 26 Nov 2025 11:12:00 -0700 Subject: [PATCH 51/53] Version 1.6.14 --- 4ti2.spec | 13 ++- 58.patch | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 2 +- 3 files changed, 245 insertions(+), 8 deletions(-) create mode 100644 58.patch diff --git a/4ti2.spec b/4ti2.spec index c45c681..638820b 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -1,7 +1,7 @@ %global giturl https://github.com/4ti2/4ti2 Name: 4ti2 -Version: 1.6.13 +Version: 1.6.14 Release: %autorelease Summary: Algebraic, geometric and combinatorial problems on linear spaces @@ -33,6 +33,8 @@ URL: https://4ti2.github.io/ VCS: git:%{giturl}.git Source0: %{giturl}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz Source1: 4ti2.module.in +# Do not discard const qualifiers +Patch: %{giturl}/pull/58.patch # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -78,7 +80,7 @@ A library for algebraic, geometric and combinatorial problems on linear spaces. %prep -%autosetup +%autosetup -p1 %conf # Fix encodings @@ -100,12 +102,12 @@ sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ # Build the manual export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebner/.libs:$PWD/src/ppi/.libs:$PWD/src/util/.libs:$PWD/src/zsolve/.libs -pushd doc +cd doc make update-manual bibtex 4ti2_manual pdflatex 4ti2_manual pdflatex 4ti2_manual -popd +cd - %install %make_install @@ -125,9 +127,6 @@ mkdir -p %{buildroot}%{_modulesdir} # Since we're doing our own substitution here, use our own definitions. sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_modulesdir}/4ti2-%{_arch} -# We don't need or want libtool files -rm -f %{buildroot}%{_libdir}/*.la - # We don't want documentation in _datadir rm -fr %{buildroot}%{_datadir}/4ti2/doc diff --git a/58.patch b/58.patch new file mode 100644 index 0000000..214164b --- /dev/null +++ b/58.patch @@ -0,0 +1,238 @@ +From c64563088b224a778a236c1e1495f0a4edd2c9df Mon Sep 17 00:00:00 2001 +From: Jerry James +Date: Wed, 26 Nov 2025 11:02:23 -0700 +Subject: [PATCH] Do not discard const qualifiers + +--- + src/util/output.c | 2 +- + src/util/output.h | 2 +- + src/util/print.c | 40 ++++++++++++++++++++++------------------ + src/util/print.h | 36 ++++++++++++++++++++---------------- + 4 files changed, 44 insertions(+), 36 deletions(-) + +diff --git a/src/util/output.c b/src/util/output.c +index 8623d01..a0f4f62 100644 +--- a/src/util/output.c ++++ b/src/util/output.c +@@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + #include "banner.h" + + /* ----------------------------------------------------------------- */ +-listVector* readListVector(int *numOfVars, char *fileName) { ++listVector* readListVector(int *numOfVars, const char *fileName) { + int numOfVectors; + listVector *basis, *endBasis; + vector b; +diff --git a/src/util/output.h b/src/util/output.h +index 93bece5..bbcff84 100644 +--- a/src/util/output.h ++++ b/src/util/output.h +@@ -1,3 +1,3 @@ + int output_main(int, char**); +-listVector* readListVector(int*, char*); ++listVector* readListVector(int*, const char*); + listVector* extractNonDominatedVectors(listVector*, listVector*, int); +diff --git a/src/util/print.c b/src/util/print.c +index 157200a..eca5b82 100644 +--- a/src/util/print.c ++++ b/src/util/print.c +@@ -82,7 +82,8 @@ void printVectorToFile(FILE *out, vector v, int numOfVars) { + return ; + } + /* ----------------------------------------------------------------- */ +-void printListVectorToFile(char* fileName, listVector* basis, int numOfVars) { ++void printListVectorToFile(const char* fileName, listVector* basis, ++ int numOfVars) { + int len; + FILE* out; + +@@ -106,8 +107,8 @@ void printListVectorToFile(char* fileName, listVector* basis, int numOfVars) { + fclose(out); + return ; + } +-/* ----------------------------------------------------------------- */ +-void printSubsetOfListVectorToFile(char* fileName, listVector* basis, ++/* ------------------------------------------------------------------------ */ ++void printSubsetOfListVectorToFile(const char* fileName, listVector* basis, + vector ind, int numOfVars) { + int len,len2,j; + FILE* out; +@@ -147,7 +148,8 @@ void printVectorWithoutColumnToFile(FILE *out, vector v, int ind, + return ; + } + /* ----------------------------------------------------------------- */ +-void printListVectorWithoutColumnToFile(char* fileName, listVector* basis, ++void printListVectorWithoutColumnToFile(const char* fileName, ++ listVector* basis, + int ind, int numOfVars) { + int len; + FILE* out; +@@ -185,7 +187,7 @@ void printVectorWithAddtionalColumnToFile(FILE *out, vector v, int ind, + return ; + } + /* ----------------------------------------------------------------- */ +-void printListVectorWithAdditionalColumnToFile(char* fileName, ++void printListVectorWithAdditionalColumnToFile(const char* fileName, + listVector* basis, + int ind, int val, + int numOfVars) { +@@ -214,7 +216,7 @@ void printListVectorWithAdditionalColumnToFile(char* fileName, + return ; + } + /* ----------------------------------------------------------------- */ +-void printTransposedListVectorToFile(char* fileName, listVector* basis, ++void printTransposedListVectorToFile(const char* fileName, listVector* basis, + int numOfVars) { + int i,len; + listVector *tmp; +@@ -318,7 +320,7 @@ void printBinomialToFile(FILE *out, vector v, int numOfVars, char** labels) { + return ; + } + /* ----------------------------------------------------------------- */ +-void printListBinomialsToFile(char* fileName, listVector* basis, ++void printListBinomialsToFile(const char* fileName, listVector* basis, + int numOfVars, char** labels) { + FILE* out; + +@@ -377,7 +379,8 @@ void printMonomialToFile(FILE *out, vector v, int numOfVars, char** labels) { + return ; + } + /* ----------------------------------------------------------------- */ +-void printListMonomialsAndBinomialsToFile(char* fileName, listVector* basis, ++void printListMonomialsAndBinomialsToFile(const char* fileName, ++ listVector* basis, + int numOfVars, char** labels) { + FILE* out; + +@@ -455,7 +458,8 @@ void printVectorToFileMacaulay2(FILE *out, vector v, int numOfVars) { + return ; + } + /* ----------------------------------------------------------------- */ +-void printListVectorMaple(char* fileName, listVector* basis, int numOfVars) { ++void printListVectorMaple(const char* fileName, listVector* basis, ++ int numOfVars) { + FILE* out; + + if (!(out = fopen(fileName,"w"))) { +@@ -480,7 +484,7 @@ void printListVectorMaple(char* fileName, listVector* basis, int numOfVars) { + return ; + } + /* ----------------------------------------------------------------- */ +-void printListVectorMacaulay2(char* fileName, listVector* basis, ++void printListVectorMacaulay2(const char* fileName, listVector* basis, + int numOfVars) { + FILE* out; + +@@ -506,8 +510,8 @@ void printListVectorMacaulay2(char* fileName, listVector* basis, + return ; + } + /* ----------------------------------------------------------------- */ +-void print3wayTables(char* fileName, listVector* basis, int x, int y, +- int z, int numOfVars) { ++void print3wayTables(const char* fileName, listVector* basis, int x, ++ int y, int z, int numOfVars) { + int i,j,k; + vector v; + FILE* out; +@@ -583,7 +587,7 @@ void printL1NormOfListVector(listVector *basis, int numOfVars) { + return; + } + /* ----------------------------------------------------------------- */ +-void printListVectorWithGivenDegreesToFile(char *outFileName, ++void printListVectorWithGivenDegreesToFile(const char *outFileName, + listVector *basis, int numOfVars, + int lowdegree, int highdegree){ + int i,s,len; +@@ -647,7 +651,7 @@ void printSupportsOfListVector(listVector *basis, int numOfVars) { + return; + } + /* ----------------------------------------------------------------- */ +-void printListVectorWithGivenSupportsToFile(char *outFileName, ++void printListVectorWithGivenSupportsToFile(const char *outFileName, + listVector *basis, int numOfVars, + int lowdegree, int highdegree){ + int i,s,len; +@@ -724,7 +728,7 @@ void printTypesOfListVector(listVector *basis, int sizeOfLayer, + return; + } + /* ----------------------------------------------------------------- */ +-void printListVectorWithGivenNonzeroEntryToFile(char *outFileName, ++void printListVectorWithGivenNonzeroEntryToFile(const char *outFileName, + listVector *basis, + int numOfVars, + int coord){ +@@ -760,8 +764,8 @@ void printListVectorWithGivenNonzeroEntryToFile(char *outFileName, + return; + } + /* ----------------------------------------------------------------- */ +-void writeResult(listVector *basis, int numOfVars, char *fileName, +- char *basisType, int infoLevel) { ++void writeResult(listVector *basis, int numOfVars, const char *fileName, ++ const char *basisType, int infoLevel) { + const char *infoMessage="undefined"; + const char *outExtension=""; + char *outFileName=NULL; +@@ -803,7 +807,7 @@ void writeResult(listVector *basis, int numOfVars, char *fileName, + return; + } + /* ----------------------------------------------------------------- */ +-void printListRepresentativesToFile(char* fileName, listOrbit* basis, ++void printListRepresentativesToFile(const char* fileName, listOrbit* basis, + int numOfVars) { + int len; + FILE* out; +diff --git a/src/util/print.h b/src/util/print.h +index 3789562..2d07334 100644 +--- a/src/util/print.h ++++ b/src/util/print.h +@@ -24,30 +24,34 @@ void printVersionInfo(); + void printVector(vector, int); + void printListVector(listVector*, int); + void printVectorToFile(FILE*, vector, int); +-void printListVectorToFile(char*, listVector*, int); +-void printSubsetOfListVectorToFile(char*, listVector*, vector, int); +-void printListVectorWithoutColumnToFile(char*, listVector*, int, int); +-void printListVectorWithAdditionalColumnToFile(char*, listVector*, int, int, +- int); +-void printTransposedListVectorToFile(char*, listVector*, int); ++void printListVectorToFile(const char*, listVector*, int); ++void printSubsetOfListVectorToFile(const char*, listVector*, vector, int); ++void printListVectorWithoutColumnToFile(const char*, listVector*, int, int); ++void printListVectorWithAdditionalColumnToFile(const char*, listVector*, int, ++ int, int); ++void printTransposedListVectorToFile(const char*, listVector*, int); + void printVectorToFileWithBrackets(FILE*, vector, int); + void printBinomialToFile(FILE*, vector, int, char**); +-void printListBinomialsToFile(char*, listVector*, int, char**); ++void printListBinomialsToFile(const char*, listVector*, int, char**); + void printMonomialToFile(FILE*, vector, int, char**); +-void printListMonomialsAndBinomialsToFile(char*, listVector*, int, char**); ++void printListMonomialsAndBinomialsToFile(const char*, listVector*, int, ++ char**); + void printMatrix(vector, int, int); + void printVectorToFileMaple(FILE*, vector, int); +-void printListVectorMaple(char*, listVector*, int); +-void printListVectorMacaulay2(char*, listVector*, int); +-void print3wayTables(char*, listVector*, int, int, int, int); ++void printListVectorMaple(const char*, listVector*, int); ++void printListVectorMacaulay2(const char*, listVector*, int); ++void print3wayTables(const char*, listVector*, int, int, int, int); + void printL1NormOfListVector(listVector*, int); +-void printListVectorWithGivenDegreesToFile(char*, listVector*, int, int, int); ++void printListVectorWithGivenDegreesToFile(const char*, listVector*, int, ++ int, int); + void printSupportsOfListVector(listVector*, int); + void printTypesOfListVector(listVector*, int, int); +-void printListVectorWithGivenSupportsToFile(char*, listVector*, int, int, int); +-void printListVectorWithGivenNonzeroEntryToFile(char*, listVector*, int, int); +-void writeResult(listVector*, int, char*, char*, int); +-void printListRepresentativesToFile(char*, listOrbit*, int); ++void printListVectorWithGivenSupportsToFile(const char*, listVector*, int, ++ int, int); ++void printListVectorWithGivenNonzeroEntryToFile(const char*, listVector*, int, ++ int); ++void writeResult(listVector*, int, const char*, const char*, int); ++void printListRepresentativesToFile(const char*, listOrbit*, int); + void printRationalVector(rationalVector*, int); + void printRationalVectorToFileWithoutBrackets(FILE*, rationalVector*, int); + diff --git a/sources b/sources index 69f1e67..399568c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4ti2-1.6.13.tar.gz) = 3cf178e18c1547735885464cd29fecfcc9454258a382ecf929394e9c2edf6218f14d28694bf62a5a26536193142558a96443da6eafdd497fa325de6f0f2e0bda +SHA512 (4ti2-1.6.14.tar.gz) = 87b990de9c6dbe564bd700c6548c422ada52e0e3a0b3457f84c103124bee4fce05c49d7ee3c6ead145bbbd51e11969639dc75fe8f5b337457a3f3590af5315c3 From 6567405eec0a0ca58e9a5dc3fc2df3408f8c5370 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 9 Jan 2026 11:59:07 -0700 Subject: [PATCH 52/53] Reflow the description text - More precise globbing in %files --- 4ti2.spec | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/4ti2.spec b/4ti2.spec index 638820b..c0f00eb 100644 --- a/4ti2.spec +++ b/4ti2.spec @@ -56,11 +56,11 @@ Requires: 4ti2-libs%{?_isa} = %{version}-%{release} Requires: environment(modules) %description -A software package for algebraic, geometric and combinatorial problems -on linear spaces. +A software package for algebraic, geometric and combinatorial problems on +linear spaces. -This package uses Environment Modules. Prior to invoking the binaries, -you must run "module load 4ti2-%{_arch}" to modify your PATH. +This package uses Environment Modules. Prior to invoking the binaries, you +must run "module load 4ti2-%{_arch}" to modify your PATH. %package devel Summary: Headers needed to develop software that uses 4ti2 @@ -142,13 +142,13 @@ make check %files devel %{_includedir}/4ti2/ %{_libdir}/lib4ti2*.so -%{_libdir}/libzsolve*.so +%{_libdir}/libzsolve.so %files libs %doc AUTHORS NEWS README.md THANKS %license COPYING -%{_libdir}/lib4ti2*.so.0* -%{_libdir}/libzsolve*.so.0* +%{_libdir}/lib4ti2*.so.0{,.*} +%{_libdir}/libzsolve.so.0{,.*} %changelog %autochangelog From bb518e950b2d16eb45dea3efae05dd826ffe302b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 02:26:10 +0000 Subject: [PATCH 53/53] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild