diff --git a/Macaulay2-1.11-fflas-ffpack.patch b/Macaulay2-1.11-fflas-ffpack.patch deleted file mode 100644 index e3b8741..0000000 --- a/Macaulay2-1.11-fflas-ffpack.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- M2/Macaulay2/e/aring-gf-givaro.cpp.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/e/aring-gf-givaro.cpp 2018-05-03 19:05:32.916321453 -0600 -@@ -409,7 +409,7 @@ void ARingGFGivaro::getGenerator(Element - - bool ARingGFGivaro::is_unit(const ElementType f) const - { -- return givaroField.isunit(f); -+ return givaroField.isUnit(f); - } - - bool ARingGFGivaro::is_zero(const ElementType f) const diff --git a/Macaulay2-1.11-fplll.patch b/Macaulay2-1.11-fplll.patch deleted file mode 100644 index ccedcfa..0000000 --- a/Macaulay2-1.11-fplll.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- M2/Macaulay2/e/fplll-interface.cpp.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/e/fplll-interface.cpp 2018-05-15 09:24:10.586961150 -0600 -@@ -1,11 +1,9 @@ --#include "fplll-interface.hpp" --#include "mutablemat.hpp" -- --#ifdef HAVE_FPLLL - #include - #include --#include --#endif -+#include -+ -+#include "fplll-interface.hpp" -+#include "mutablemat.hpp" - - bool fp_LLL(MutableMatrix *M, MutableMatrix *U, int strategy) - { -@@ -16,15 +14,15 @@ bool fp_LLL(MutableMatrix *M, MutableMat - assert(U == NULL); - double delta = 0.99; - double eta = 0.51; -- LLLMethod method = LM_WRAPPER; -- FloatType floatType = FT_DEFAULT; -+ fplll::LLLMethod method = fplll::LM_WRAPPER; -+ fplll::FloatType floatType = fplll::FT_DEFAULT; - int precision = 0; -- int flags = LLL_DEFAULT; -+ int flags = fplll::LLL_DEFAULT; - - int ncols = static_cast(M->n_rows()); - int nrows = static_cast(M->n_cols()); - -- ZZ_mat mat(nrows, ncols); -+ fplll::ZZ_mat mat(nrows, ncols); - - for (int i = 0; i < nrows; i++) - for (int j = 0; j < ncols; j++) -@@ -32,21 +30,21 @@ bool fp_LLL(MutableMatrix *M, MutableMat - ring_elem a; - if (M->get_entry(j, i, a)) - { -- mpz_set(mat[i][j].getData(), a.get_mpz()); -+ mpz_set(mat[i][j].get_data(), a.get_mpz()); - } - } - - int result = -- lllReduction(mat, delta, eta, method, floatType, precision, flags); -+ lll_reduction(mat, delta, eta, method, floatType, precision, flags); - - switch (result) - { -- case RED_SUCCESS: -+ case fplll::RED_SUCCESS: - break; -- case RED_BABAI_FAILURE: -+ case fplll::RED_BABAI_FAILURE: - ERROR("Error in fpLLL"); - return 0; -- case RED_LLL_FAILURE: -+ case fplll::RED_LLL_FAILURE: - ERROR("infinite loop in LLL"); - return 0; - default: -@@ -61,7 +59,7 @@ bool fp_LLL(MutableMatrix *M, MutableMat - for (int j = 0; j < ncols; j++) - for (int i = 0; i < nrows; i++) - { -- mpz_set(a, mat[i][j].getData()); -+ mpz_set(a, mat[i][j].get_data()); - ring_elem b = globalZZ->from_int(a); - M->set_entry(j, i, b); - } diff --git a/Macaulay2-1.11-gtest.patch b/Macaulay2-1.11-gtest.patch deleted file mode 100644 index 98923cd..0000000 --- a/Macaulay2-1.11-gtest.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- M2/Macaulay2/e/unit-tests/gtest-include.cpp.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/e/unit-tests/gtest-include.cpp 2018-04-22 15:01:04.870644118 -0600 -@@ -5,7 +5,7 @@ - // the compiler flags are the same, which is the whole point of the - // recommendation to build gtest for each program. - --#include "src/gtest-all.cc" -+#include - - // Local Variables: - // compile-command: "make -C $M2BUILDDIR/Macaulay2/e/unit-tests check " ---- M2/Macaulay2/e/unit-tests/Makefile.in.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/e/unit-tests/Makefile.in 2018-04-22 15:01:04.870644118 -0600 -@@ -25,7 +25,7 @@ LOADLIBES += @BUILTLIBS@ @LIBS@ -lmathic - - # do not link with gtest -- it's supposed to get compiled in via #include: - # LDFLAGS += -L$(GTEST_DIR)/lib/.libs --# LOADLIBES += -lgtest -+LOADLIBES += -lgtest - - .PHONY: place_into_lib runtests - diff --git a/Macaulay2-1.11-mpir.patch b/Macaulay2-1.11-mpir.patch deleted file mode 100644 index 01a189d..0000000 --- a/Macaulay2-1.11-mpir.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- M2/configure.ac.orig 2018-04-22 14:59:03.284992098 -0600 -+++ M2/configure.ac 2018-04-22 15:00:26.272754584 -0600 -@@ -869,8 +869,8 @@ dnl make some programs optional: - BUILD_cddplus=no - BUILD_gftables=no - --BUILD_mpir=yes --BUILD_ALWAYS="mpir $BUILD_ALWAYS" -+BUILD_mpir=no -+#BUILD_ALWAYS="mpir $BUILD_ALWAYS" - # We always build mpir so we can patch the routine mp_set_memory_functions() in - # it so it does nothing; that prevents libraries such as pari from telling it - # what memory allocation functions to use. But we should instead set diff --git a/Macaulay2-1.11-nauty-paths.patch b/Macaulay2-1.11-nauty-paths.patch deleted file mode 100644 index c270fa5..0000000 --- a/Macaulay2-1.11-nauty-paths.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- M2/Macaulay2/packages/NautyGraphs.m2.orig 2016-08-15 12:38:31.000000000 -0600 -+++ M2/Macaulay2/packages/NautyGraphs.m2 2017-02-27 21:49:22.976044001 -0700 -@@ -30,9 +30,9 @@ newPackage select(( - ------------------- - - -- Check the ~/.Macaulay2/init-NautyGraphs.m2 file for the absolute path. ---- If it's not there, then use the M2-Programs directory. -+-- If it's not there, then use the system binary directory. - nauty'path = (options NautyGraphs).Configuration#"path"; --if nauty'path == "" then nauty'path = prefixDirectory | currentLayout#"programs"; -+if nauty'path == "" then nauty'path = "/usr/bin/"; - - ------------------- - -- Exports -@@ -420,7 +420,7 @@ callNauty (String, List) := List => opts - scan(graphToString \ dataList, d -> o << d << endl); - close o; - -- try to harvest the lines -- r := lines try get openIn ("!" | nauty'path | cmdStr | " <" | infn | " 2>" | erfn) -+ r := lines try get openIn ("!" | nauty'path | "nauty-" | cmdStr | " <" | infn | " 2>" | erfn) - else ( - -- nauty errored, harvest the error - e := last separate(":", first lines get openIn erfn); ---- M2/Macaulay2/packages/Nauty.m2.orig 2016-08-15 12:38:31.000000000 -0600 -+++ M2/Macaulay2/packages/Nauty.m2 2017-02-27 21:49:22.977043998 -0700 -@@ -37,9 +37,9 @@ newPackage select(( - ------------------- - - -- Check the ~/.Macaulay2/init-Nauty.m2 file for the absolute path. ---- If it's not there, then use the M2-Programs directory. -+-- If it's not there, then use the system binary directory. - nauty'path = (options Nauty).Configuration#"path"; --if nauty'path == "" then nauty'path = prefixDirectory | currentLayout#"programs"; -+if nauty'path == "" then nauty'path = "/usr/bin/"; - - ------------------- - -- Exports -@@ -472,7 +472,7 @@ callNauty (String, List) := List => opts - scan(graphToString \ dataList, d -> o << d << endl); - close o; - -- try to harvest the lines -- r := lines try get openIn ("!" | nauty'path | cmdStr | " <" | infn | " 2>" | erfn) -+ r := lines try get openIn ("!" | nauty'path | "nauty-" | cmdStr | " <" | infn | " 2>" | erfn) - else ( - -- nauty errored, harvest the error - e := last separate(":", first lines get openIn erfn); diff --git a/Macaulay2-1.11-no_Werror.patch b/Macaulay2-1.11-no_Werror.patch deleted file mode 100644 index 715a20b..0000000 --- a/Macaulay2-1.11-no_Werror.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- M2/Macaulay2/c/Makefile.in.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/c/Makefile.in 2018-04-22 14:56:59.444346532 -0600 -@@ -32,7 +32,7 @@ SRCFILES := $(HFILES) $(CNAMES) grammar. - CPPFLAGS := -I../../include -I/include -I@srcdir@/../../include -I@srcdir@ $(CPPFLAGS) - - # we include -Wno-unknown-attributes because libgc incorrectly assumes that clang 6 accepts __attribute__((__alloc_size__(1))): --CFLAGS += -Wall -Wno-unknown-attributes -Werror -+CFLAGS += -Wall -Wno-unknown-attributes - ifeq "@__INTEL_COMPILER@" "no" - CFLAGS += -Wimplicit-function-declaration - endif diff --git a/Macaulay2-1.11-no_gftables.patch b/Macaulay2-1.11-no_gftables.patch deleted file mode 100644 index 1b71546..0000000 --- a/Macaulay2-1.11-no_gftables.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- M2/configure.ac.orig 2018-04-22 14:55:07.462673573 -0600 -+++ M2/configure.ac 2018-04-22 14:56:08.521492276 -0600 -@@ -840,7 +840,7 @@ AC_SUBST(BUILTLIBS,) - # mpack depends on gmp (which mpir provides) mpfr mpc qd - # flint depends on gmp or mpir and mpfr - # pari uses gmp, so if we build gmp, we should build pari --AC_SUBST(PROGLIST, "4ti2 gfan normaliz nauty cddplus lrslib gftables topcom cohomcalg") -+AC_SUBST(PROGLIST, "4ti2 gfan normaliz nauty cddplus lrslib topcom cohomcalg") - AC_SUBST(LIBLIST, " atomic_ops gc gdbm mpir mpfr pari readline ntl flint factory lapack frobby glpk cddlib fplll givaro linbox boost mpc qd mpack gtest ") - AC_SUBST(SUBLIST, " memtailor mathic mathicgb fflas_ffpack ") - diff --git a/Macaulay2-1.11-optflags.patch b/Macaulay2-1.11-optflags.patch deleted file mode 100644 index 6780095..0000000 --- a/Macaulay2-1.11-optflags.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- M2/configure.ac.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/configure.ac 2018-04-22 14:46:43.486215685 -0600 -@@ -292,12 +292,12 @@ fi - ] - - if test "$OPTIMIZE" = yes --then CFLAGS="$CFLAGS -O2" -- CXXFLAGS="$CXXFLAGS -O2" -- FCFLAGS="$FCFLAGS -O2" --else CFLAGS="$CFLAGS -O0" -- CXXFLAGS="$CXXFLAGS -O0" -- FCFLAGS="$FCFLAGS -O0" -+then CFLAGS="-O2 $CFLAGS" -+ CXXFLAGS="-O2 $CXXFLAGS" -+ FCFLAGS="-O2 $FCFLAGS" -+else CFLAGS="-O0 $CFLAGS" -+ CXXFLAGS="-O0 $CXXFLAGS" -+ FCFLAGS="-O0 $FCFLAGS" - fi - - AC_SUBST(GCCVERSION,) diff --git a/Macaulay2-1.11-pthreads.patch b/Macaulay2-1.11-pthreads.patch deleted file mode 100644 index 4f80467..0000000 --- a/Macaulay2-1.11-pthreads.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- M2/Macaulay2/system/pthread-methods.hpp.orig 2016-08-15 12:38:31.000000000 -0600 -+++ M2/Macaulay2/system/pthread-methods.hpp 2017-04-07 16:47:50.027572916 -0600 -@@ -5,5 +5,5 @@ - static inline int operator!=(pthread_t t, pthread_t u) { return t.p != u.p || t.x != u.x; } - static inline int operator< (pthread_t t, pthread_t u) { return t.p < u.p || t.p == u.p && t.x < u.x; } - #else -- #define clearThread(t) t = NULL -+ #define clearThread(t) t = 0 - #endif diff --git a/Macaulay2-1.11-xdg_open.patch b/Macaulay2-1.11-xdg_open.patch deleted file mode 100644 index b7e7740..0000000 --- a/Macaulay2-1.11-xdg_open.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- M2/Macaulay2/m2/html.m2.orig 2018-03-07 10:43:35.000000000 -0700 -+++ M2/Macaulay2/m2/html.m2 2018-04-22 14:48:26.637899340 -0600 -@@ -1263,6 +1263,7 @@ chk := ret -> if ret != 0 then ( - error "external command failed" - ) - browserMethods := hashTable { -+ "xdg open" => url -> {"xdg-open", url}, - "firefox" => url -> {"firefox", url}, - "open" => url -> {"open", url}, - "cygstart" => url -> {"cygstart", url}, -@@ -1278,7 +1279,8 @@ show URL := x -> ( - else - if version#"issue" === "Cygwin" then browser = "cygstart"; - if browser === "" then ( -- if runnable "firefox" then browser = "firefox" -+ if runnable "xdg-open" then browser = "xdg-open" -+ else if runnable "firefox" then browser = "firefox" - else if runnable "netscape" then browser = "netscape" - else error "no browser found, and none specified in $WWWBROWSER" - ); diff --git a/Macaulay2-1.12-default_make_targets.patch b/Macaulay2-1.12-default_make_targets.patch deleted file mode 100644 index 7e5a040..0000000 --- a/Macaulay2-1.12-default_make_targets.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- M2/Macaulay2/Makefile.in.orig 2018-08-06 14:14:27.212770531 -0600 -+++ M2/Macaulay2/Makefile.in 2018-08-06 14:15:10.889237052 -0600 -@@ -7,7 +7,7 @@ SUBDIRS = compat util probe regex c - ifeq "@DUMPDATA@" "yes" - SUBDIRS += dumpdata - endif --SUBDIRS += e-includes d e system kernel bin m2 man packages emacs html-check-links tests -+SUBDIRS += e-includes d e system kernel bin m2 man packages emacs - SUBDIRS += book - SUBDIRS += packages/Macaulay2Doc/test - diff --git a/Macaulay2-1.12-exception.patch b/Macaulay2-1.12-exception.patch deleted file mode 100644 index f4d7077..0000000 --- a/Macaulay2-1.12-exception.patch +++ /dev/null @@ -1,1749 +0,0 @@ ---- M2/Macaulay2/d/engine.dd.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/d/engine.dd 2018-08-06 14:19:21.326178130 -0600 -@@ -104,21 +104,21 @@ export EngineError(d:string):string := ( - - -- operators - export (x:RawMonomial) * (y:RawMonomial) : RawMonomialOrNull := Ccode(returns, " -- try { return *x * *y; } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ try { return *x * *y; } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (x:RawMonomial) ^ (n:int) : RawMonomialOrNull := Ccode(returns, " -- try { return x->power(n); } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ try { return x->power(n); } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (x:RawMonomial) / (y:RawMonomial) : RawMonomialOrNull := ( - when y^-1 is z:RawMonomial do x*z - is null do RawMonomialOrNull(null())); - export (x:RawRingElement) + (y:RawRingElement) : RawRingElementOrNull := Ccode(returns, " -- try { return *x + *y; } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ try { return *x + *y; } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export - (y:RawRingElement) : RawRingElement := Ccode(returns, " -- try { return -*y; } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ try { return -*y; } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (x:RawRingElement) - (y:RawRingElement) : RawRingElementOrNull := Ccode(returns, " -- try { return *x - *y; } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ try { return *x - *y; } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (x:RawRingElement) * (y:RawRingElement) : RawRingElementOrNull := Ccode(returns, " - try { return *x * *y; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (a:RawRingElement) // (b:RawRingElement) : RawRingElementOrNull := Ccode(returns, " - try { const Ring *R = a->get_ring(); - if (R != b->get_ring()) { -@@ -127,7 +127,7 @@ export (a:RawRingElement) // (b:RawRingE - ring_elem result = R->quotient(a->get_value(), b->get_value()); - if (error()) return 0; - return RingElement::make_raw(R, result); -- } catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ } catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (a:RawRingElement) % (b:RawRingElement) : RawRingElementOrNull := Ccode(returns, " - try { const Ring *R = a->get_ring(); - if (R != b->get_ring()) { -@@ -136,13 +136,13 @@ export (a:RawRingElement) % (b:RawRingEl - ring_elem result = R->remainder(a->get_value(), b->get_value()); - if (error()) return 0; - return RingElement::make_raw(R, result); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (a:RawRingElement) ^ (n:ZZ) : RawRingElementOrNull := Ccode(returns, " - try { RingElement *z = a->power(n); return error() ? NULL : z; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (M:RawMatrix) + (N:RawMatrix) : RawMatrixOrNull := Ccode(returns, " - try { return *M + *N; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - -- If the sizes do not match, then NULL is returned. If they do match, - -- the addition is performed. If the targets are not equal, the target - -- of the result is set to have each degree zero. Similarly with the -@@ -159,11 +159,11 @@ export (M:RawMutableMatrix) + (N:RawMuta - -- matrix arithmetic - export - (M:RawMatrix) : RawMatrixOrNull := Ccode(returns, " - try { return - *M; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export - (M:RawMutableMatrix) : RawMutableMatrix := Ccode(returns, "return M->negate();"); - export (M:RawMatrix) - (N:RawMatrix) : RawMatrixOrNull := Ccode(returns, " - try { return *M - *N; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - -- If the sizes do not match, then NULL is returned. If they do match, - -- the addition is performed. If the targets are not equal, the target - -- of the result is set to have each degree zero. Similarly with the -@@ -171,36 +171,36 @@ export (M:RawMatrix) - (N:RawMatrix) : R - ); - export (M:RawMutableMatrix) - (N:RawMutableMatrix) : RawMutableMatrixOrNull := Ccode(returns, " - try { return M->subtract(N); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - ); - export (f:RawRingElement) * (M:RawMatrix) : RawMatrixOrNull := Ccode(returns, " - try { if (f->get_ring() != M->get_ring()) { - ERROR(\"ring element and matrix should have the same base ring\"); - return 0; } - return M->scalar_mult(f->get_value(), false); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (M:RawMatrix) * (f:RawRingElement) : RawMatrixOrNull := Ccode(returns, " - try { if (f->get_ring() != M->get_ring()) { - ERROR(\"ring element and matrix should have the same base ring\"); - return 0; } - return M->scalar_mult(f->get_value(), true); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (f:RawRingElement) * (M:RawMutableMatrix) : RawMutableMatrixOrNull := Ccode(returns, " - try { return M->mult(f); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (M:RawMutableMatrix) * (f:RawRingElement) : RawMutableMatrixOrNull := Ccode(returns, " - try { return M->mult(f); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export (M:RawMatrix) * (N:RawMatrix) : RawMatrixOrNull := Ccode(returns, " - try { return M->mult(N, true); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - -- /* If the sizes do not match, then NULL is returned. If they do match, - -- the multiplication is performed, and the source and target are taken from N,M - -- respectively. The degree of the result is the sum of the two degrees */ - ); - export (M:RawMutableMatrix) * (N:RawMutableMatrix) : RawMutableMatrixOrNull := Ccode(returns, " - try { return M->mult(N); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - ); - -- - -@@ -233,11 +233,11 @@ export (I:RawMonomialIdeal) * (J:RawMono - MonomialIdeal *result = (*I) * (*J); - intern_monideal(result); - return result; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export tostring(a:RawMonomial):string := Ccode(returns," - buffer o; - try { a->text_out(o); } -- catch (exc::engine_error e) { o << \"[unprintable monomial]\"; } -+ catch (exc::engine_error &e) { o << \"[unprintable monomial]\"; } - return o.to_string(); - "); - export hash(a:RawMonomial):uint := Ccode(uint,"a->hash()"); ---- M2/Macaulay2/d/interface.dd.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/d/interface.dd 2018-08-06 14:19:21.328178106 -0600 -@@ -21,7 +21,7 @@ header " - throw (std::runtime_error(\"test\")); - } - int test_catch() { -- try { test_catch0(); } catch (std::runtime_error x) { return 1; } -+ try { test_catch0(); } catch (std::runtime_error &x) { return 1; } - return 0; - } - -@@ -66,7 +66,7 @@ setupfun("rawRandomCC",rawRandomCC); - - rawVarMonomial(v:int,e:int):RawMonomialOrNull := Ccode(returns," - try { return Monomial::make(v,e); } -- catch (exc::engine_error m) { ERROR(m.what()); return NULL; }"); -+ catch (exc::engine_error &m) { ERROR(m.what()); return NULL; }"); - export rawVarMonomial(a:Expr):Expr := ( - when a - is v:ZZcell do -@@ -121,7 +121,7 @@ export rawMakeMonomial(e:Expr):Expr := ( - ret := RawMonomialOrNull(null()); - Ccode(void, " - try { ",ret," = Monomial::make(",getReverseSequenceOfPairsOfSmallIntegers(l.v),"); } -- catch (exc::engine_error e) { ERROR(e.what()); }"); -+ catch (exc::engine_error &e) { ERROR(e.what()); }"); - toExpr(ret))) - else WrongArg("a list of pairs of integers")); - setupfun("rawMakeMonomial",rawMakeMonomial); -@@ -142,7 +142,7 @@ installMethod(Expr(EqualEqualS), rawMono - - rawCompareMonomial(M:RawMonoid,a:RawMonomial,b:RawMonomial):int := Ccode(returns," - try { return a->compare(M,*b); } -- catch (exc::engine_error e) { ERROR(e.what()); return -2; } -+ catch (exc::engine_error &e) { ERROR(e.what()); return -2; } - "); - export rawCompareMonomial(e:Expr):Expr := ( - when e is s:Sequence do if length(s) != 3 then WrongNumArgs(3) else -@@ -162,7 +162,7 @@ setupfun("rawCompareMonomial",rawCompare - - rawMonomialDivides(M:RawMonoid,a:RawMonomial,b:RawMonomial):int := Ccode(returns," - try { return a->divides(M,*b); } -- catch (exc::engine_error e) { ERROR(e.what()); return -2; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return -2; } " - -- returns 1 if in the monoid M, there is a monomial c such that a*c === b, 0 if not, -2 if exception occurred - ); - export rawMonomialDivides(e:Expr):Expr := ( -@@ -180,7 +180,7 @@ setupfun("rawMonomialDivides",rawMonomia - - rawMonomialDivide(M:RawMonoid,a:RawMonomial,b:RawMonomial):RawMonomialOrNull := Ccode(returns," - try { if (a->divides(M,*b)) return (*a)/(*b); else return NULL; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - -- returns a/b if b divides a in the monoid M, and null otherwise - ); - export rawMonomialDivide(e:Expr):Expr := ( -@@ -275,7 +275,7 @@ setupfun("rawLCM",rawLCM); - - rawSaturateMonomial(a:RawMonomial,b:RawMonomial):RawMonomialOrNull := Ccode(returns, " - try { return a->erase(*b); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } " -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } " - -- return the monomial whose i th exponent is ai if bi is 0, 0 if bi != 0 - ); - export rawSaturate(e:Expr):Expr := ( -@@ -300,7 +300,7 @@ rawSyzygy(a:RawMonomial,b:RawMonomial):R - result->a = aa; - result->b = bb; - return result; } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } "); -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } "); - export rawSyzygy(e:Expr):Expr := ( - when e is s:Sequence do - if length(s) != 2 then WrongNumArgs(2) else -@@ -313,7 +313,7 @@ setupfun("rawSyzygy",rawSyzygy); - - rawColonMonomial(a:RawMonomial,b:RawMonomial):RawMonomialOrNull := Ccode(returns, " - try { return (*a) / (*b); } -- catch (exc::engine_error e) { ERROR(e.what()); return NULL; } -+ catch (exc::engine_error &e) { ERROR(e.what()); return NULL; } - " - -- returns the monomial whose i th exponent is max(ai-bi,0) - ); ---- M2/Macaulay2/e/exceptions.hpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/exceptions.hpp 2018-08-06 14:19:21.329178093 -0600 -@@ -28,7 +28,7 @@ struct internal_error : public engine_er - { - #define CATCH \ - } \ -- catch (exc::engine_error __x424621) \ -+ catch (exc::engine_error &__x424621) \ - { \ - ERROR(__x424621.what()); \ - return NULL; \ ---- M2/Macaulay2/e/f4/res-f4-m2-interface.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/f4/res-f4-m2-interface.cpp 2018-08-06 14:19:21.329178093 -0600 -@@ -808,7 +808,7 @@ M2_arrayint rawMinimalBetti(Computation* - length_limit); // Computes it if needed - ERROR("expected resolution computed via res(...,FastNonminimal=>true)"); - return nullptr; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return nullptr; ---- M2/Macaulay2/e/finalize.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/finalize.cpp 2018-08-06 14:19:21.330178081 -0600 -@@ -229,7 +229,7 @@ M2_string engineMemory() - << ") #left = " << (schorder_nfinalized - schorder_nremoved) << newline; - - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "Internal error: [unprintable memory display]"; - return o.to_string(); ---- M2/Macaulay2/e/mutablemat-imp.hpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/mutablemat-imp.hpp 2018-08-06 14:19:21.330178081 -0600 -@@ -56,7 +56,7 @@ MutableMatrix* MutableMat::rowReduced - // ignore returned value (the rank of mat): - MatrixOps::rowReducedEchelonForm(mat, result->mat); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - delete result; - throw(e); ---- M2/Macaulay2/e/x-aring.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-aring.cpp 2018-08-06 14:19:21.331178069 -0600 -@@ -94,7 +94,7 @@ const Ring /* or null */ *rawARingGalois - { - M2::ARingGFM2 *A = new M2::ARingGFM2(*R, f->get_value()); - return M2::ConcreteRing::create(A); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -108,7 +108,7 @@ const Ring /* or null */ *rawARingGalois - { - M2::ARingGFFlintBig *A = new M2::ARingGFFlintBig(*R, f->get_value()); - return M2::ConcreteRing::create(A); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -123,7 +123,7 @@ const Ring /* or null */ *rawARingGalois - { - M2::ARingGFFlint *A = new M2::ARingGFFlint(*R, f->get_value()); - return M2::ConcreteRing::create(A); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -185,7 +185,7 @@ const Ring /* or null */ *rawARingGalois - ERROR("add --enable-fflas-ffpack --enable-givaro when building M2"); - return 0; - #endif -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -243,7 +243,7 @@ const Ring /* or null */ *rawARingGalois - M2::ARingGFGivaro *A = new M2::ARingGFGivaro( - R->characteristic(), modPoly, primitiveElementPoly, *R); - return M2::ConcreteRing::create(A); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -305,7 +305,7 @@ const Ring /* or null */ *rawARingTower1 - auto varnames = M2_ArrayString_to_stdvector(names); - const M2::ARingTower *T = M2::ARingTower::create(A, varnames); - return M2::ConcreteRing::create(T); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -329,7 +329,7 @@ const Ring /* or null */ *rawARingTower2 - auto new_varnames = M2_ArrayString_to_stdvector(new_names); - const M2::ARingTower *T = M2::ARingTower::create(A, new_varnames); - return M2::ConcreteRing::create(T); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -366,7 +366,7 @@ const Ring /* or null */ *rawARingTower3 - } - const M2::ARingTower *T = M2::ARingTower::create(A, extensions); - return M2::ConcreteRing::create(T); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return 0; ---- M2/Macaulay2/e/x-factor.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-factor.cpp 2018-08-06 14:19:21.332178057 -0600 -@@ -720,7 +720,7 @@ void rawFactorBase(const RingElement *g, - } - algebraicElement_M2 = NULL; - if (error()) *result_factors = NULL, *result_powers = NULL; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return; -@@ -798,7 +798,7 @@ M2_arrayintOrNull rawIdealReorder(const - M2_arrayint result = M2_makearrayint(N); - for (i = 0; i < N; i++) result->array[i] = u[i]; - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -864,7 +864,7 @@ engine_RawMatrixArrayOrNull rawCharSerie - } - - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-free.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-free.cpp 2018-08-06 14:19:21.333178045 -0600 -@@ -26,7 +26,7 @@ const FreeModule /* or null */ *IM2_Free - return 0; - } - return R->make_FreeModule(rank); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -59,7 +59,7 @@ const FreeModule /* or null */ *IM2_Free - F->append(deg); - } - return F; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -71,7 +71,7 @@ const FreeModule /* or null */ *IM2_Free - try - { - return FreeModule::make_schreyer(m); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -119,7 +119,7 @@ const FreeModule /* or null */ *IM2_Free - try - { - return F->tensor(G); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -131,7 +131,7 @@ const FreeModule /* or null */ *IM2_Free - try - { - return F->transpose(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -143,7 +143,7 @@ const FreeModule *IM2_FreeModule_symm(in - try - { - return F->symm(n); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -155,7 +155,7 @@ const FreeModule *IM2_FreeModule_exterio - try - { - return F->exterior(n); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -168,7 +168,7 @@ const FreeModule *IM2_FreeModule_submodu - try - { - return F->sub_space(selection); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -182,7 +182,7 @@ M2_arrayintOrNull rawFreeModuleSelectByD - try - { - return F->select_by_degrees(lo, hi); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-gb.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-gb.cpp 2018-08-06 14:19:21.334178033 -0600 -@@ -66,7 +66,7 @@ EngineComputationOrNull *rawGB( - algorithm, - strategy, - max_reduction_count)); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -83,7 +83,7 @@ EngineComputationOrNull *rawGBSetHilbert - if (G != 0) return G->set_hilbert_function(h); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -161,7 +161,7 @@ EngineComputationOrNull *rawStartEngineC - } - } - return error() ? 0 : C; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -190,7 +190,7 @@ const Matrix /* or null */ *rawEngineGBG - if (G != 0) return G->get_GroebnerBasis()->get_gb(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -210,7 +210,7 @@ const Matrix /* or null */ *rawEngineGBM - if (G != 0) return G->get_GroebnerBasis()->get_mingens(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -231,7 +231,7 @@ const Matrix /* or null */ *rawEngineGBC - if (G != 0) return G->get_GroebnerBasis()->get_change(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -248,7 +248,7 @@ const Matrix /* or null */ *rawEngineGBG - if (G != 0) return G->get_GroebnerBasis()->get_initial(nparts); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -266,7 +266,7 @@ const Matrix /* or null */ *rawEngineGBG - if (G != 0) return G->get_GroebnerBasis()->get_parallel_lead_terms(w); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -287,7 +287,7 @@ const Matrix /* or null */ *rawEngineGBS - if (G != 0) return G->get_GroebnerBasis()->get_syzygies(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -304,7 +304,7 @@ const Matrix /* or null */ *rawEngineGBM - if (G != 0) return G->get_GroebnerBasis()->matrix_remainder(m); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -325,7 +325,7 @@ void rawEngineGBMatrixDivMod(EngineCompu - m, result_remainder, result_quotient); - else - ERROR("computation type unknown or not implemented"); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return; -@@ -341,7 +341,7 @@ int rawEngineGBMatrixContains(EngineComp - if (G != 0) return G->get_GroebnerBasis()->contains(m); - ERROR("computation type unknown or not implemented"); - return -2; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -2; -@@ -358,7 +358,7 @@ EngineComputationOrNull *rawEngineGBDecl - { - return EngineGBComputation::create( - GBDeclared::create(m, gb, change, syz)); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -376,7 +376,7 @@ EngineComputationOrNull *rawMarkedEngine - { - return EngineGBComputation::create( - GBDeclared::create(leadterms, m, gb, change, syz)); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -389,7 +389,7 @@ EngineComputationOrNull *rawEngineGroebn - try - { - return EngineGBComputation::create(GBWalker::create(gb, order1)); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -403,7 +403,7 @@ M2_string rawEngineComputationToString(E - { - C->text_out(o); - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "[unprintable computation]"; - return o.to_string(); -@@ -425,7 +425,7 @@ const RingElement /* or null */ *IM2_Mat - try - { - return hilb_comp::hilbertNumerator(M); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -461,7 +461,7 @@ Computation /* or null */ *IM2_GB_make( - algorithm, - strategy, - max_reduction_count); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -488,7 +488,7 @@ Computation /* or null */ *IM2_res_make( - max_slanted_degree, - algorithm, - strategy); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -510,7 +510,7 @@ Computation /* or null */ *IM2_GB_set_hi - if (G != 0) return G->set_hilbert_function(h); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -527,7 +527,7 @@ Computation /* or null */ *IM2_GB_force( - try - { - return GBDeclared::create(m, gb, change, syz); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -545,7 +545,7 @@ Computation /* or null */ *rawMarkedGB( - try - { - return GBDeclared::create(leadterms, m, gb, change, syz); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -558,7 +558,7 @@ Computation /* or null */ *rawGroebnerWa - try - { - return GBWalker::create(gb, order1); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -591,7 +591,7 @@ Computation /* or null */ *IM2_Computati - subring_limit, - just_min_gens, - length_limit); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -644,7 +644,7 @@ Computation /* or null */ *rawStartCompu - } - - return error() ? 0 : C; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -665,7 +665,7 @@ const Matrix /* or null */ *rawGBGetMatr - if (G != 0) return G->get_gb(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -685,7 +685,7 @@ const Matrix /* or null */ *rawGBMinimal - if (G != 0) return G->get_mingens(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -706,7 +706,7 @@ const Matrix /* or null */ *rawGBChangeO - if (G != 0) return G->get_change(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -722,7 +722,7 @@ const Matrix /* or null */ *rawGBGetLead - if (G != 0) return G->get_initial(nparts); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -739,7 +739,7 @@ const Matrix /* or null */ *rawGBGetPara - if (G != 0) return G->get_parallel_lead_terms(w); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -760,7 +760,7 @@ const Matrix /* or null */ *rawGBSyzygie - if (G != 0) return G->get_syzygies(); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -777,7 +777,7 @@ const Matrix /* or null */ *rawGBMatrixR - if (G != 0) return G->matrix_remainder(m); - ERROR("computation type unknown or not implemented"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -797,7 +797,7 @@ M2_bool IM2_GB_matrix_lift(Computation * - return G->matrix_lift(m, result_remainder, result_quotient); - else - ERROR("computation type unknown or not implemented"); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - } -@@ -813,7 +813,7 @@ int IM2_GB_contains(Computation *C, cons - if (G != 0) return G->contains(m); - ERROR("computation type unknown or not implemented"); - return -2; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -2; -@@ -829,7 +829,7 @@ const Matrix /* or null */ *rawResolutio - if (G != 0) return G->get_matrix(level); - ERROR("expected resolution computation type"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -847,7 +847,7 @@ MutableMatrix /* or null */ *rawResoluti - if (G != 0) return G->get_matrix(level, degree); - ERROR("expected resolution computation type"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -870,7 +870,7 @@ MutableMatrix /* or null */ *rawResoluti - if (G != 0) return G->get_mutable_matrix(R, level); - ERROR("expected fast nonminimal resolution computation type"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -890,7 +890,7 @@ MutableMatrix /* or null */ *rawResoluti - if (G != 0) return G->get_mutable_matrix(KK, level, degree); - ERROR("expected fast nonminimal resolution computation type"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -906,7 +906,7 @@ const FreeModule /* or null */ *rawResol - if (G != 0) return G->get_free(level); - ERROR("expected resolution computation type"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -953,7 +953,7 @@ M2_arrayintOrNull rawResolutionBetti(Com - if (G != 0) return G->get_betti(type); - ERROR("expected resolution computation type"); - return NULL; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -968,7 +968,7 @@ M2_string IM2_GB_to_string(Computation * - { - C->text_out(o); - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "[unprintable gb]"; - return o.to_string(); -@@ -989,7 +989,7 @@ Matrix /* or null */ *rawSubduction(cons - return 0; - } - return sagbi::subduct(M, F, G); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1180,7 +1180,7 @@ const Matrix *rawMGB( - // callback.callCount(), result); - // rawDisplayMatrixStream(result); - return result; -- } catch (std::runtime_error e) -+ } catch (std::runtime_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-mat.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-mat.cpp 2018-08-06 14:19:21.335178020 -0600 -@@ -25,7 +25,7 @@ M2_string IM2_Matrix_to_string(const Mat - { - M->text_out(o); - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "[unprintable matrix]"; - return o.to_string(); -@@ -54,7 +54,7 @@ const RingElement /* or null */ *IM2_Mat - ring_elem result; - result = M->elem(r, c); - return RingElement::make_raw(M->get_ring(), result); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -171,7 +171,7 @@ const Matrix /* or null */ *IM2_Matrix_r - #warning prefer_dense not yet used - #endif - return M->remake(target); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -204,7 +204,7 @@ int // 1 = true, 0 = false, -1 = error - Therefore, it can happen that M-N == 0, but M != N. - */ - return M->is_equal(*N); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -1; -@@ -246,7 +246,7 @@ const Matrix /* or null */ *IM2_Matrix_c - } - } - return mat.to_matrix(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -278,7 +278,7 @@ const Matrix /* or null */ *IM2_Matrix_d - result = result->direct_sum(Ms->array[i]); - - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -290,7 +290,7 @@ const Matrix /* or null */ *IM2_Matrix_t - try - { - return M->tensor(N); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -302,7 +302,7 @@ const Matrix /* or null */ *rawModuleTen - try - { - return M->module_tensor(N); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -314,7 +314,7 @@ const Matrix /* or null */ *IM2_Matrix_t - try - { - return M->transpose(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -328,7 +328,7 @@ const Matrix /* or null */ *IM2_Matrix_r - try - { - return M->reshape(F, G); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -341,7 +341,7 @@ const Matrix /* or null */ *IM2_Matrix_f - try - { - return Matrix::flip(F, G); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -356,7 +356,7 @@ const Matrix /* or null */ *rawWedgeProd - try - { - return Matrix::wedge_product(p, q, F); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -370,7 +370,7 @@ const Matrix /* or null */ *IM2_Matrix_s - try - { - return M->sub_matrix(rows, cols); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -383,7 +383,7 @@ const Matrix /* or null */ *IM2_Matrix_s - try - { - return M->sub_matrix(cols); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -395,7 +395,7 @@ const Matrix /* or null */ *IM2_Matrix_k - try - { - return M->koszul(p); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -417,7 +417,7 @@ const Matrix /* or null */ *rawKoszulMon - return 0; - } - return Matrix::koszul_monomials(nskew, M, N); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -429,7 +429,7 @@ const Matrix /* or null */ *IM2_Matrix_s - try - { - return M->symm(p); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -450,7 +450,7 @@ M2_arrayintOrNull IM2_Matrix_sort_column - try - { - return M->sort(deg_order, mon_order); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -664,7 +664,7 @@ const Matrix /* or null */ *IM2_Matrix_p - } - mat.compute_column_degrees(); - return mat.to_matrix(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -694,7 +694,7 @@ const Matrix /* or null */ *IM2_Matrix_l - mat.compute_column_degrees(); - *success_return = 1; - return mat.to_matrix(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-monideal.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-monideal.cpp 2018-08-06 14:19:21.336178008 -0600 -@@ -19,7 +19,7 @@ engine_RawMonomialIdealOrNull IM2_Monomi - MonomialIdeal *result = m->make_monideal(n); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -32,7 +32,7 @@ const Matrix /* or null */ *IM2_Monomial - try - { - return Matrix::make(I); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -46,7 +46,7 @@ M2_string MonomialIdeal_to_string(const - { - I->text_out(o); - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "[unprintable monomial ideal]"; - return o.to_string(); -@@ -61,7 +61,7 @@ int IM2_MonomialIdeal_is_equal(const Mon - { - if (I->get_ring() != J->get_ring()) return false; - return I->is_equal(*J); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -1; -@@ -77,7 +77,7 @@ const MonomialIdeal /* or null */ *rawRa - intern_monideal(result); - return result; - -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -98,7 +98,7 @@ const MonomialIdeal /* or null */ *IM2_M - MonomialIdeal *result = I->intersect(*J); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -116,7 +116,7 @@ const MonomialIdeal /* or null */ *rawCo - MonomialIdeal *result = I->quotient(a->ints()); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -139,7 +139,7 @@ const MonomialIdeal /* or null */ *rawCo - if (M2_gbTrace >= 1) dstash(); - return result; - -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -155,7 +155,7 @@ const MonomialIdeal /* or null */ *rawSa - MonomialIdeal *result = I->erase(a->ints()); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -176,7 +176,7 @@ const MonomialIdeal /* or null */ *rawSa - MonomialIdeal *result = I->sat(*J); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -191,7 +191,7 @@ const MonomialIdeal /* or null */ *IM2_M - MonomialIdeal *result = I->borel(); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -209,7 +209,7 @@ int IM2_MonomialIdeal_codim(const Monomi - { - MinimalPrimes ap(I); - return ap.codimension(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -1; // -1 is not a valid codimension, and interface.d knows it -@@ -225,7 +225,7 @@ rawMonomialMinimalPrimes(const MonomialI - MonomialIdeal *result = ap.alg1_min_primes(codim_limit, count); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -242,7 +242,7 @@ const MonomialIdeal /* or null */ *rawMa - MonomialIdeal *result = ap.associated_primes(count); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -258,7 +258,7 @@ const RingElement /* or null */ *IM2_Mon - try - { - return hilb_comp::hilbertNumerator(I); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -400,7 +400,7 @@ const MonomialIdeal /* or null */ *rawAl - MonomialIdeal *result = alexDual(I, top, strategy); - intern_monideal(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-mutablemat.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-mutablemat.cpp 2018-08-06 14:19:21.336178008 -0600 -@@ -480,7 +480,7 @@ MutableMatrix /* or null */ *rawMutableM - try - { - return internMutableMatrix(M->transpose()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -591,7 +591,7 @@ M2_arrayintOrNull rawLU(const MutableMat - try - { - return A->LU(L, U); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -639,7 +639,7 @@ M2_bool rawEigenvalues(MutableMatrix *A, - try - { - return A->eigenvalues(eigenvalues, is_symm_or_hermitian); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -654,7 +654,7 @@ M2_bool rawEigenvectors(MutableMatrix *A - try - { - return A->eigenvectors(eigenvalues, eigenvectors, is_symm_or_hermitian); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -670,7 +670,7 @@ M2_bool rawSVD(MutableMatrix *A, - try - { - return A->SVD(Sigma, U, VT, use_divide_and_conquer); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -698,7 +698,7 @@ M2_bool rawLeastSquares(MutableMatrix *A - return false; - } - return A->least_squares(b, x, assume_full_rank); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -713,7 +713,7 @@ M2_bool rawQR(const MutableMatrix *A, - try - { - return A->QR(Q, R, return_QR); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -734,7 +734,7 @@ const Matrix /* or null */ *rawMatrixCle - return 0; - } - return M->clean(epsilon); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return nullptr; -@@ -764,7 +764,7 @@ MutableMatrix /* or null */ *rawMutableM - } - M->clean(epsilon); - return M; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return nullptr; -@@ -830,7 +830,7 @@ long rawLinAlgRank(MutableMatrix *M) - try - { - return M->rank(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -1; -@@ -842,7 +842,7 @@ const RingElement *rawLinAlgDeterminant( - try - { - return A->determinant(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -854,7 +854,7 @@ MutableMatrix *rawLinAlgInverse(MutableM - try - { - return internMutableMatrix(A->invert()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -866,7 +866,7 @@ MutableMatrix *rawLinAlgRREF(MutableMatr - try - { - return internMutableMatrix(A->rowReducedEchelonForm()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -878,7 +878,7 @@ M2_arrayintOrNull rawLinAlgRankProfile(M - try - { - return A->rankProfile(row_profile); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -890,7 +890,7 @@ MutableMatrix *rawLinAlgNullSpace(Mutabl - try - { - return internMutableMatrix(A->nullSpace()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -913,7 +913,7 @@ MutableMatrix *rawLinAlgSolve(const Muta - { - return NULL; - } -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - *success = 0; - ERROR(e.what()); -@@ -937,7 +937,7 @@ MutableMatrix *rawLinAlgSolveInvertible( - { - return NULL; - } -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - *success = 0; - ERROR(e.what()); -@@ -953,7 +953,7 @@ M2_bool rawLinAlgAddMult(MutableMatrix * - { - C->addMultipleTo(A, B); - return true; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -968,7 +968,7 @@ M2_bool rawLinAlgSubMult(MutableMatrix * - { - C->subtractMultipleTo(A, B); - return true; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return false; -@@ -984,7 +984,7 @@ MutableMatrix * /* or null */ rawLinAlgM - try - { - return internMutableMatrix(A->mult(B)); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-relem.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-relem.cpp 2018-08-06 14:21:32.356577677 -0600 -@@ -75,7 +75,7 @@ const Ring /* or null */ *rawGaloisField - try - { - return GF::create(f); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -108,7 +108,7 @@ const Ring /* or null */ *IM2_Ring_polyr - const PolyRing *result = PolyRing::create(K, M); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -148,7 +148,7 @@ const Ring /* or null */ *IM2_Ring_skew_ - P->getCoefficients(), P->getMonoid(), skewvars); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -175,7 +175,7 @@ const Ring /* or null */ *IM2_Ring_weyl_ - homog_var); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -196,7 +196,7 @@ const Ring /* or null */ *IM2_Ring_solva - SolvableAlgebra *result = SolvableAlgebra::create(P, Q); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -245,7 +245,7 @@ const Ring /* or null */ *IM2_Ring_frac( - return 0; - } - return FractionField::create(P); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -274,7 +274,7 @@ const Ring /* or null */ *IM2_Ring_local - return nullptr; - } - return LocalRing::create(PR, P); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -303,7 +303,7 @@ const Ring /* or null */ *IM2_Ring_quoti - PolynomialRing *result = PolynomialRing::create_quotient(P, I); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -333,7 +333,7 @@ const Ring /* or null */ *IM2_Ring_quoti - PolynomialRing *result = PolyRingQuotient::create_quotient(R1, B1); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -353,7 +353,7 @@ const Ring /* or null */ *IM2_Ring_schur - SchurRing *result = SchurRing::create(P); - intern_polyring(result); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -366,7 +366,7 @@ const Ring *rawSchurRing1(const Ring *A) - { - SchurRing2 *result = SchurRing2::createInfinite(A); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -379,7 +379,7 @@ const Ring *rawSchurRing2(const Ring *A, - { - SchurRing2 *result = SchurRing2::create(A, n); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -392,7 +392,7 @@ const Ring *rawSchurSnRing(const Ring *A - { - SchurSnRing *result = SchurSnRing::create(A, n); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -416,7 +416,7 @@ const Ring /* or null */ *rawTowerRing2( - return 0; - } - return Tower::create(R, new_names); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return 0; -@@ -446,7 +446,7 @@ const Ring /* or null */ *rawTowerRing3( - extensions.push_back(f->get_value()); - } - return Tower::create(R, extensions); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return 0; -@@ -671,7 +671,7 @@ long rawDiscreteLog(const RingElement *h - { - const Ring *R = h->get_ring(); - return R->discreteLog(h->get_value()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -1; -@@ -690,7 +690,7 @@ const RingElement /* or null */ *IM2_Rin - ring_elem a = R->var(v); - if (error()) return 0; - return RingElement::make_raw(R, a); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -731,7 +731,7 @@ engine_RawRingElementPair IM2_RingElemen - result->a = RingElement::make_raw(R, fquot); - result->b = RingElement::make_raw(R, frem); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -751,7 +751,7 @@ int rawRingElementCompare(const RingElem - // } - // if (b->is_zero()) return -1; - return R->compare_elems(a->get_value(), b->get_value()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return -2; -@@ -767,7 +767,7 @@ const RingElement *IM2_RingElement_promo - if (f->promote(S, result)) return result; - ERROR("cannot promote given ring element"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -789,7 +789,7 @@ const RingElement /* or null */ *IM2_Rin - } - // ERROR("cannot lift given ring element"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -806,7 +806,7 @@ M2_arrayint IM2_RingElement_multidegree( - try - { - return a->multi_degree(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -819,7 +819,7 @@ const RingElement * /* or null */ rawRin - { - const Ring *R = f->get_ring(); - return RingElement::make_raw(R, R->antipode(f->get_value())); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -845,7 +845,7 @@ gmp_ZZpairOrNull rawWeightRange(M2_array - mpz_init_set_si(p->a, static_cast(lo)); - mpz_init_set_si(p->b, static_cast(hi)); - return p; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -861,7 +861,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return a->homogenize(v, deg, wts); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -874,7 +874,7 @@ IM2_RingElement_homogenize(const RingEle - try - { - return a->homogenize(v, wts); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -904,7 +904,7 @@ const RingElement /* or null */ *IM2_Rin - varpower::to_ntuple(nvars0, m->ints(), exp); - ring_elem val = P->make_logical_term(a->get_ring(), a->get_value(), exp); - return RingElement::make_raw(R, val); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -936,7 +936,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return a->get_coeff(coeffRing, m); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -950,7 +950,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return a->lead_coeff(coeffRing); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -964,7 +964,7 @@ const Monomial /* or null */ *IM2_RingEl - try - { - return a->lead_monom(nvars); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -996,7 +996,7 @@ engine_RawArrayPairOrNull IM2_RingElemen - } - ERROR("expected a polynomial"); - return 0; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1026,7 +1026,7 @@ engine_RawRingElementArray rawGetParts(c - result->array[i] = RingElement::make_raw(P, relems[i]); - deletearray(relems); - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1130,7 +1130,7 @@ engine_RawRingElementArrayOrNull rawConv - result->array[i] = RingElement::make_raw(P, output_relems[i]); - - return result; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1160,7 +1160,7 @@ const RingElement /* or null */ *rawGetP - ring_elem g = P->get_part( - wts, f->get_value(), lobound_given, hibound_given, lobound, hibound); - return RingElement::make_raw(P, g); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1199,7 +1199,7 @@ const RingElement /* or null */ *rawAsso - } - return RingElement::make_raw( - P->getCoefficients(), P->preferred_associate_divisor(f->get_value())); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1233,7 +1233,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return a->numerator(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1246,7 +1246,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return a->denominator(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1262,7 +1262,7 @@ const RingElement /* or null */ *IM2_Rin - const RingElement *f = a->fraction(R, b); - if (error()) return NULL; - return f; -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1282,7 +1282,7 @@ gmp_ZZorNull rawSchurDimension(const Rin - ring_elem result = S->dimension(f->get_value()); - #warning "const cast from mpz_srcptr to mpz_ptr" - return const_cast(result.get_mpz()); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1308,7 +1308,7 @@ const RingElement /* or null */ *rawSchu - } - ring_elem result = R->tensor_mult(a->get_value(), b->get_value()); - return RingElement::make_raw(R, result); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -1335,7 +1335,7 @@ const RingElement /* or null */ *rawSchu - if (!S->is_valid_partition(part)) return 0; - ring_elem result = S->from_partition(part); - return RingElement::make_raw(S, result); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; ---- M2/Macaulay2/e/x-ringmap.cpp.orig 2018-07-30 05:57:05.000000000 -0600 -+++ M2/Macaulay2/e/x-ringmap.cpp 2018-08-06 14:19:21.337177996 -0600 -@@ -12,7 +12,7 @@ M2_string IM2_RingMap_to_string(const Ri - { - F->text_out(o); - return o.to_string(); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - o << "[unprintable ringmap]"; - return o.to_string(); -@@ -34,7 +34,7 @@ const RingElement /* or null */ *IM2_Rin - try - { - return F->eval(a); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -53,7 +53,7 @@ const Matrix /* or null */ *IM2_RingMap_ - try - { - return F->eval(newTarget, M); -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; -@@ -68,7 +68,7 @@ MutableMatrix /* or null */ *rawRingMapE - return MutableMatrix::zero_matrix( - F->get_ring(), M->n_rows(), M->n_cols(), M->is_dense()); - // TODO: now map it! -- } catch (exc::engine_error e) -+ } catch (exc::engine_error &e) - { - ERROR(e.what()); - return NULL; diff --git a/Macaulay2-1.12-format.patch b/Macaulay2-1.12-format.patch deleted file mode 100644 index e9434b2..0000000 --- a/Macaulay2-1.12-format.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- M2/Macaulay2/e/f4/monhashtable.cpp.orig 2018-08-06 14:17:15.131719510 -0600 -+++ M2/Macaulay2/e/f4/monhashtable.cpp 2018-08-06 14:18:07.327081977 -0600 -@@ -206,7 +206,7 @@ void MonomialHashTable::show( - fprintf(stderr, "-- %ld zero elements --\n", nzeros); - nzeros = 0; - } -- fprintf(stderr, "hash %ld monomial ", M->hash_value(m)); -+ fprintf(stderr, "hash %ld monomial ", (long)M->hash_value(m)); - M->show(m); - fprintf(stderr, "\n"); - } diff --git a/Macaulay2-1.16-ulimit.patch b/Macaulay2-1.16-ulimit.patch new file mode 100644 index 0000000..ad15955 --- /dev/null +++ b/Macaulay2-1.16-ulimit.patch @@ -0,0 +1,95 @@ +--- M2/libraries/Makefile.library.in.orig 2024-11-01 04:33:00.000000000 -0600 ++++ M2/libraries/Makefile.library.in 2025-02-18 20:23:38.667139158 -0700 +@@ -254,10 +254,10 @@ ifneq (@DOWNLOAD@,yes) + @ false + endif + +-SLIMIT ?= 8192 +-TLIMIT ?= 100 +-MLIMIT ?= 400000 +-VLIMIT ?= 400000 ++SLIMIT ?= 16384 ++TLIMIT ?= 200 ++MLIMIT ?= 800000 ++VLIMIT ?= 800000 + LIMIT := : + ifeq (@ULIMIT_T@,yes) + LIMIT += ; ulimit -t $(TLIMIT) +--- M2/Macaulay2/m2/basictests/Makefile.in.orig 2024-11-01 04:33:00.000000000 -0600 ++++ M2/Macaulay2/m2/basictests/Makefile.in 2025-02-18 20:23:38.667139158 -0700 +@@ -22,17 +22,17 @@ $(TESTRESULTS) : @pre_exec_prefix@/bin/M + ARGS := --silent -q --stop --no-core -e 'srcdir = "@srcdir@/"' + + ifeq "@DEBUG@" "no" +-TLIMIT ?= 20 +-MLIMIT ?= 600000 +-VLIMIT ?= 600000 ++TLIMIT ?= 40 ++MLIMIT ?= 1200000 ++VLIMIT ?= 1200000 + else +-TLIMIT ?= 60 +-MLIMIT ?= 700000 +-VLIMIT ?= 700000 ++TLIMIT ?= 120 ++MLIMIT ?= 1400000 ++VLIMIT ?= 1400000 + endif + + # make the stack limit always the same as it would be under MacOS +-SLIMIT ?= 8192 ++SLIMIT ?= 16384 + + LIMIT := + ifeq (@ULIMIT_T@,yes) +--- M2/Macaulay2/tests/ComputationsBook/Makefile.chapter.in.orig 2024-11-01 04:33:00.000000000 -0600 ++++ M2/Macaulay2/tests/ComputationsBook/Makefile.chapter.in 2025-02-18 20:23:38.667139158 -0700 +@@ -15,16 +15,16 @@ diff: + + LIMIT := + ifeq (@ULIMIT_T@,yes) +-LIMIT += ulimit -t 1200 ; ++LIMIT += ulimit -t 2400 ; + endif + ifeq (@ULIMIT_V@,yes) +-LIMIT += ulimit -v 1600000 ; ++LIMIT += ulimit -v 3200000 ; + endif + ifeq (@ULIMIT_M@,yes) +-LIMIT += ulimit -m 800000 ; ++LIMIT += ulimit -m 1600000 ; + endif + ifeq (@ULIMIT_S@,yes) +-LIMIT += ulimit -s 8192 ; ++LIMIT += ulimit -s 16384 ; + endif + + +--- M2/Macaulay2/tests/Makefile.test.in.orig 2024-11-01 04:33:00.000000000 -0600 ++++ M2/Macaulay2/tests/Makefile.test.in 2025-02-18 20:23:38.667139158 -0700 +@@ -6,18 +6,18 @@ DEFERRED ?= no + + DOTS ?= ../.. + ifeq "@DEBUG@" "no" +-TLIMIT ?= 90 ++TLIMIT ?= 180 + # one test doesn't work with only 150MB RAM, ext-total.m2, on a 64 bit intel machine: +-MLIMIT ?= 800000 +-VLIMIT ?= 2000000 ++MLIMIT ?= 1600000 ++VLIMIT ?= 4000000 + else + # give the debug version more time and space +-TLIMIT ?= 140 +-MLIMIT ?= 1200000 +-VLIMIT ?= 2000000 ++TLIMIT ?= 280 ++MLIMIT ?= 2400000 ++VLIMIT ?= 4000000 + endif + # make the stack limit always the same as it would be under MacOS +-SLIMIT ?= 8192 ++SLIMIT ?= 16384 + + LIMIT := + ifeq (@ULIMIT_T@,yes) diff --git a/Macaulay2-1.12-configure.patch b/Macaulay2-1.17-configure.patch similarity index 55% rename from Macaulay2-1.12-configure.patch rename to Macaulay2-1.17-configure.patch index 58f9764..8086b88 100644 --- a/Macaulay2-1.12-configure.patch +++ b/Macaulay2-1.17-configure.patch @@ -1,17 +1,15 @@ ---- M2/configure.ac.orig 2018-08-06 14:16:21.725371828 -0600 -+++ M2/configure.ac 2018-08-06 14:22:27.632902514 -0600 -@@ -266,10 +266,10 @@ AC_MSG_NOTICE([checking for C compiler f +--- M2/configure.ac.orig 2021-01-12 14:20:55.509886490 -0700 ++++ M2/configure.ac 2021-01-12 14:21:55.866785423 -0700 +@@ -252,9 +252,9 @@ AC_MSG_NOTICE([checking for C compiler f dnl always compile with "-g", so we can debug even optimized versions if test "$GCC" = yes -then CFLAGS="$CFLAGS -g3" - CXXFLAGS="$CXXFLAGS -g3" - LDFLAGS="$LDFLAGS -g3" -- LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -g3" +then CFLAGS="$CFLAGS -g" + CXXFLAGS="$CXXFLAGS -g" + LDFLAGS="$LDFLAGS -g" -+ LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -g" else CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" LDFLAGS="$LDFLAGS -g" diff --git a/Macaulay2-1.18-lto.patch b/Macaulay2-1.18-lto.patch new file mode 100644 index 0000000..becd01c --- /dev/null +++ b/Macaulay2-1.18-lto.patch @@ -0,0 +1,35 @@ +--- M2/Macaulay2/c/compat.h.orig 2021-06-13 14:30:17.341325747 -0600 ++++ M2/Macaulay2/c/compat.h 2021-06-14 06:52:52.648631798 -0600 +@@ -2,7 +2,7 @@ + + #ifndef __cplusplus + #undef bool +-typedef char bool; ++typedef _Bool bool; + #endif + + extern char posfmt[]; +--- M2/Macaulay2/d/types.h.orig 2021-06-04 17:33:04.000000000 -0600 ++++ M2/Macaulay2/d/types.h 2021-06-13 14:30:27.804335244 -0600 +@@ -37,6 +37,10 @@ + # define LONGJUMP(env) longjmp(env, 1) + #endif + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + struct ArgCell + { + int argc, envc; +@@ -50,6 +54,10 @@ struct JumpCell + bool is_set; + }; + ++#ifdef __cplusplus ++} ++#endif ++ + #ifdef HAVE_UNISTD_H + #include + #endif diff --git a/Macaulay2-1.25-default_make_targets.patch b/Macaulay2-1.25-default_make_targets.patch new file mode 100644 index 0000000..3daf8c7 --- /dev/null +++ b/Macaulay2-1.25-default_make_targets.patch @@ -0,0 +1,12 @@ +--- M2/Macaulay2/Makefile.in.orig 2025-11-14 04:03:48.000000000 -0700 ++++ M2/Macaulay2/Makefile.in 2025-11-14 13:59:26.630241856 -0700 +@@ -3,8 +3,7 @@ + VPATH = @srcdir@ + include ../include/config.Makefile + all: @pre_docdir@/COPYING-GPL-2 @pre_docdir@/COPYING-GPL-3 @pre_docdir@/LAYOUT +-SUBDIRS = c d e system bin m2 man packages editors \ +- $(if $(filter html, @DOCUMENTATION@), html-check-links) tests ++SUBDIRS = c d e system bin m2 man packages editors tests + + define do-in-subdirs + $(foreach d,$(SUBDIRS), diff --git a/Macaulay2-1.25-optflags.patch b/Macaulay2-1.25-optflags.patch new file mode 100644 index 0000000..5c93b1c --- /dev/null +++ b/Macaulay2-1.25-optflags.patch @@ -0,0 +1,42 @@ +--- M2/configure.ac.orig 2025-11-14 04:03:48.000000000 -0700 ++++ M2/configure.ac 2025-11-14 13:57:06.905244494 -0700 +@@ -318,12 +318,12 @@ fi + ] + + if test "$OPTIMIZE" = yes +-then CFLAGS="$CFLAGS -O2" +- CXXFLAGS="$CXXFLAGS -O2" +- FCFLAGS="$FCFLAGS -O2" +-else CFLAGS="$CFLAGS -O0" +- CXXFLAGS="$CXXFLAGS -O0" +- FCFLAGS="$FCFLAGS -O0" ++then CFLAGS="-O2 $CFLAGS" ++ CXXFLAGS="-O2 $CXXFLAGS" ++ FCFLAGS="-O2 $FCFLAGS" ++else CFLAGS="-O0 $CFLAGS" ++ CXXFLAGS="-O0 $CXXFLAGS" ++ FCFLAGS="-O0 $FCFLAGS" + fi + + AC_SUBST(GCCVERSION) +--- M2/libraries/factory/Makefile.in.orig 2025-11-14 04:03:48.000000000 -0700 ++++ M2/libraries/factory/Makefile.in 2025-11-14 13:57:56.926954878 -0700 +@@ -7,7 +7,7 @@ + URL = https://macaulay2.com/Downloads/OtherSourceCode + VERSION = 4.4.1 + PATCHFILE = @abs_srcdir@/patch-$(VERSION) +-PRECONFIGURE = autoreconf -vif ++PRECONFIGURE = sed -i 's/-g0 -O3 //' m4/flags.m4 && autoreconf -vif + + BUILDTARGET = all ftmpl_inst.o + LIBRARIES = ftmpl_inst.o +--- M2/libraries/mpfr/Makefile.in.orig 2025-11-14 04:03:48.000000000 -0700 ++++ M2/libraries/mpfr/Makefile.in 2025-11-14 13:57:06.905816340 -0700 +@@ -36,6 +36,7 @@ CONFIGOPTIONS += --disable-shared + # endif + + # PRECONFIGURE = autoreconf -i ++PRECONFIGURE = sed -i '/LDFLAGS/s/ -Wl,--disable-new-dtags//g' configure + include ../Makefile.library + + BUILDOPTIONS += CPPFLAGS="$(CPPFLAGS)" diff --git a/Macaulay2.rpmlintrc b/Macaulay2.rpmlintrc new file mode 100644 index 0000000..8bdcf0b --- /dev/null +++ b/Macaulay2.rpmlintrc @@ -0,0 +1,23 @@ +# THIS FILE SERVES FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON +# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors + +# Dangling symlinks; we ensure, through Requires, that they do not dangle +addFilter(r'dangling-symlink') + +# This file is included on purpose due to containing license information +addFilter(r'devel-file-in-non-devel-package .*flint\.h') + +# Test files also included on purpose +addFilter(r'devel-file-in-non-devel-package .*test/engine/factor') + +# Hidden files generated by and for the Macaulay2 documentation system +addFilter(r'hidden-file-or-dir .*\.(Certification|Headline)') + +# No man page for the target of the shell script +addFilter(r'no-manual-page-for-binary M2-binary') + +# Words not in the dictionary +addFilter(r'spelling-error .* (Grayson|Stillman)') + +# Binary file not understood by rpmlint +addFilter(r'wrong-file-end-of-line-encoding .*_cohom__Calg_lp__Normal__Toric__Variety_rp\.out') diff --git a/Macaulay2.spec b/Macaulay2.spec index 0f7227c..5d65215 100644 --- a/Macaulay2.spec +++ b/Macaulay2.spec @@ -9,11 +9,19 @@ # Since the main Fedora packages are not built in this way, we are forced to # bundle these packages to avoid random GC-related crashes. # -# In addition, we have to use the static versions of the libfplll and givaro -# libraries. Both have global objects whose constructors run before GC is -# initialized. If we allow the shared libraries to be unloaded, which happens -# as a normal part of Macaulay2's functioning, the GC tries to free objects it -# did not allocate, which leads to a segfault. +# We have to use the static versions of the libfplll and givaro libraries. +# They have global objects whose constructors run before GC is initialized. +# If we allow the shared libraries to be unloaded, which happens as a normal +# part of Macaulay2's functioning, then GC tries to free objects it did not +# allocate, which leads to a segfault. +# +# We have to bundle the linbox package. It has global constructors that cause +# the same problem as libfplll. + +%global emacscommit 524968452e95d010769ece30092edaa09d1e814f +%global emacsurl https://github.com/Macaulay2/M2-emacs +%global emacsshort %(cut -b -7 <<< %{emacscommit}) +%global m2url https://github.com/Macaulay2/M2 # Address randomization interferes with Macaulay2's memory management scheme, # and linking with -z now breaks configure. @@ -25,126 +33,226 @@ # use system normaliz %global system_normaliz 1 #endif -# standardize on gmp instead of mpir (mostly for pari/sagemath) -%global gmp 1 %global ISSUE %{?fedora:Fedora-%{fedora}}%{?rhel:RedHatEnterprise-%{rhel}} %global M2_machine %{_target_cpu}-Linux-%{ISSUE} # The examples contain some python files which should not be byte compiled %global _python_bytecompile_extra 0 +# Starting with GCC 12, Macaulay2 segfaults during the build on all +# architectures when LTO is enabled. (With GCC 11, s390x did this, but the +# other architectures did not.) Until somebody can figure out what is going +# on, disable LTO universally. +%define _lto_cflags %{nil} + Summary: System for algebraic geometry and commutative algebra Name: Macaulay2 -Version: 1.12.0.1 -Release: 5%{?dist} +Version: 1.25.11 +Release: %autorelease -License: GPLv2 or GPLv3 -URL: http://macaulay2.com/ +# GPL-2.0-only OR GPL-3.0-only: +# - the project as a whole +# - factory (bundled) +# GPL-1.0-or-later: +# - Macaulay2/packages/FormalGroupLaws.m2 +# - Macaulay2/packages/WeylGroups.m2 +# GPL-2.0-only: +# - Macaulay2/packages/ModuleDeformations.m2 +# - Macaulay2/packages/QuillenSuslin.m2 +# - Macaulay2/packages/Visualize.m2 +# GPL-2.0-or-later: +# - Macaulay2/e/bibasis +# - Macaulay2/m2/computations.m2 +# - Macaulay2/packages/AlgebraicSplines.m2 +# - Macaulay2/packages/BIBasis.m2 +# - Macaulay2/packages/Binomials.m2 +# - Macaulay2/packages/Chordal.m2 +# - Macaulay2/packages/Cremona.m2 +# - Macaulay2/packages/Cyclotomic.m2 +# - Macaulay2/packages/EdgeIdeals.m2 +# - Macaulay2/packages/FourierMotzkin.m2 +# - Macaulay2/packages/GKMVarieties.m2 +# - Macaulay2/packages/GradedLieAlgebras.m2 +# - Macaulay2/packages/GraphicalModels* +# - Macaulay2/packages/Graphics.m2 +# - Macaulay2/packages/Graphs.m2 +# - Macaulay2/packages/GroebnerWalk.m2 +# - Macaulay2/packages/HyperplaneArrangements.m2 +# - Macaulay2/packages/InvariantRing* +# - Macaulay2/packages/KustinMiller.m2 +# - Macaulay2/packages/LieTypes.m2 +# - Macaulay2/packages/MonomialAlgebras.m2 +# - Macaulay2/packages/MultiprojectiveVarieties.m2 +# - Macaulay2/packages/NAGtypes.m2 +# - Macaulay2/packages/Nauty* +# - Macaulay2/packages/Normaliz.m2 +# - Macaulay2/packages/NumericalAlgebraicGeometry.m2 +# - Macaulay2/packages/PackageCitations.m2 +# - Macaulay2/packages/Posets.m2 +# - Macaulay2/packages/RationalPoints* +# - Macaulay2/packages/ResLengthThree.m2 +# - Macaulay2/packages/ResolutionsOfStanleyReisnerRings.m2 +# - Macaulay2/packages/Resultants.m2 +# - Macaulay2/packages/RunExternalM2.m2 +# - Macaulay2/packages/SLPexpressions.m2 +# - Macaulay2/packages/SLnEquivariantMatrices.m2 +# - Macaulay2/packages/SimplicialDecomposability.m2 +# - Macaulay2/packages/SparseResultants.m2 +# - Macaulay2/packages/SpecialFanoFourfolds.m2 +# - Macaulay2/packages/StatGraphs.m2 +# - Macaulay2/packages/TriangularSets.m2 +# - Macaulay2/packages/VectorFields.m2 +# GPL-3.0-or-later: +# - normaliz, when it is bundled +# - Macaulay2/e/mpreal.h +# - Macaulay2/packages/BettiCharacters.m2 +# - Macaulay2/packages/CodingTheory.m2 +# - Macaulay2/packages/FGLM.m2 +# - Macaulay2/packages/HighestWeights* +# - Macaulay2/packages/Jets.m2 +# - Macaulay2/packages/LocalRings +# - Macaulay2/packages/MonomialIntegerPrograms.m2 +# - Macaulay2/packages/MultiplierIdeals.m2 +# - Macaulay2/packages/NormalToricVarieties.m2 +# - Macaulay2/packages/NumericSolutions.m2 +# - Macaulay2/packages/OldPolyhedra.m2 +# - Macaulay2/packages/OldToricVectorBundles.m2 +# - Macaulay2/packages/PieriMaps.m2 +# - Macaulay2/packages/Polyhedra.m2 +# - Macaulay2/packages/PositivityToricBundles.m2 +# - Macaulay2/packages/SchurRings.m2 +# - Macaulay2/packages/SchurVeronese.m2 +# - Macaulay2/packages/Simplicial* +# - Macaulay2/packages/SpectralSequences.m2 +# - Macaulay2/packages/TensorComplexes.m2 +# - Macaulay2/packages/ToricTopology.m2 +# - Macaulay2/packages/ToricVectorBundles.m2 +# - Macaulay2/packages/VersalDeformations.m2 +# LGPL-2.0-or-later: +# - flint (bundled) +# - linbox (bundled) +# LGPL-3.0-or-later: +# - mpfr (bundled) +# Apache-2.0: +# - Macaulay2/packages/OpenMath.m2 +# - Macaulay2/packages/SCSCP.m2 +# MIT: +# - Macaulay2/packages/Visualize/css +# - Macaulay2/packages/Visualize/js +# MIT AND OFL-1.1-RFN: +# - Macaulay2/packages/Style +# LicenseRef-Fedora-Public-Domain: +# - Macaulay2/e/localring* +# - Macaulay2/e/mutablecomplex* +# - Macaulay2/e/NAG* +# - Macaulay2/e/SLP* +# - Macaulay2/packages/Depth.m2 +# - Macaulay2/packages/Divisor.m2 +# - Macaulay2/packages/FastMinors.m2 +# - Macaulay2/packages/LatticePolytopes.m2 +# - Macaulay2/packages/NoetherNormalization.m2 +# - Macaulay2/packages/RationalMaps.m2 +# - Macaulay2/packages/SectionRing.m2 +License: (GPL-2.0-only OR GPL-3.0-only) AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.0-or-later AND LGPL-3.0-or-later AND Apache-2.0 AND MIT AND OFL-1.1-RFN AND LicenseRef-Fedora-Public-Domain +URL: https://macaulay2.com/ +VCS: git:%{m2url}.git %if 0%{?snap:1} -Source0: Macaulay2-%{version}-%{snap}.tar.xz +Source0: %{name}-%{version}-%{snap}.tar.xz %else -Source0: https://github.com/%{name}/M2/archive/version-%{version}.tar.gz +Source0: %{m2url}/archive/release-%{version}/%{name}-%{version}.tar.gz %endif +Source1: %{emacsurl}/tarball/%{emacscommit}/M2-emacs-%{emacsshort}.tar.gz # Various sizes of the planets icon from macaulay2.com. See README.icons in # the tar file for details on how these icons were created. Source10: Macaulay2-icons.tar.xz -Source11: Macaulay2.desktop +Source11: com.macaulay2.macaulay2.desktop +Source12: com.macaulay2.macaulay2.metainfo.xml Source20: etags.sh ## BUNDLED code # Normaliz must sometimes be bundled due to version differences -%if ! 0%{?system_normaliz} -Source100: http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/normaliz-3.3.0.tar.gz -Provides: bundled(normaliz) = 3.3.0 +%if ! %system_normaliz +%global normalizver 3.11.0 +Source100: http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/normaliz-%{normalizver}.tar.gz +Provides: bundled(normaliz) = %{normalizver} %endif # MPFR is bundled because it must be built with different threading options -%global mpfrver 3.1.6 -Source101: http://www.mpfr.org/mpfr-%{mpfrver}/mpfr-%{mpfrver}.tar.xz +%global mpfrver 4.2.2 +Source101: https://www.mpfr.org/mpfr-%{mpfrver}/mpfr-%{mpfrver}.tar.gz Provides: bundled(mpfr) = %{mpfrver} # FLINT is bundled because it must be linked with the specially-built MPFR -%global flintver 2.5.2 -Source102: http://www.flintlib.org/flint-%{flintver}.tar.gz +%global flintver 3.3.1 +Source102: https://github.com/flintlib/flint/archive/v%{flintver}/flint-%{flintver}.tar.gz Provides: bundled(flint) = %{flintver} # FACTORY is bundled because it must be built with special options -%global factoryver 4.1.1 -Source103: http://www.math.illinois.edu/Macaulay2/Downloads/OtherSourceCode/factory-%{factoryver}.tar.gz +%global factoryver 4.4.1 +Source103: https://www.singular.uni-kl.de/ftp/pub/Math/Factory/factory-%{factoryver}.tar.gz Provides: bundled(factory) = %{factoryver} +# LINBOX is bundled because it introduces static global objects +%global linboxver 1.7.1 +Source104: https://github.com/linbox-team/linbox/releases/download/v%{linboxver}/linbox-%{linboxver}.tar.gz +Provides: bundled(linbox) = %{linboxver} + ## PATCHES FOR BUNDLED code -# Fix multiple flint build and runtime issues; see patches in the flint package -Source200: flint-2.5.2.patch -# Fix factory build failure. REPLACES the upstream patch. -Source201: factory-4.1.1.patch -# Upstream mpfr patches subsequent to the 3.1.6 release. -Source202: mpfr-3.1.6.patch +# No patches ## FAKE library tarballs that convince Macaulay2 to use the system versions -%if 0%{?system_normaliz} -Source300: normaliz-3.3.0.tar.gz -%endif -Source301: gtest-1.8.0.tar.gz -Source302: lapack-3.6.0.tgz -Source303: 4ti2-1.6.7.tar.gz -Source304: libfplll-5.2.0.tar.gz +Source300: frobby_v0.9.5.tar.gz +Source301: cddlib-094m.tar.gz +# lapack +Source302: v3.12.1.tar.gz +Source303: 4ti2-1.6.13.tar.gz +Source304: fplll-5.5.0.tar.gz Source305: gfan0.6.2.tar.gz -Source306: givaro-4.0.2.tar.gz -Source307: lrslib-062.tar.gz -Source308: TOPCOM-0.17.8.tar.gz -Source309: cohomCalg-031b.zip +Source306: givaro-4.2.1.tar.gz +Source307: lrslib-073.tar.gz +Source308: TOPCOM-1.1.2.tar.gz +Source309: cohomCalg-0.32.tar.gz +Source310: glpk-5.0.tar.gz +Source311: Csdp-6.2.0.tgz +Source312: mpsolve-3.2.3.tar.gz +# msolve +%global msolvever 0.9.2 +Source313: v%{msolvever}.tar.gz # let Fedora optflags override the defaults -Patch0: %{name}-1.11-optflags.patch -# use xdg-open as the default browser -Patch1: %{name}-1.11-xdg_open.patch -# fix paths to nauty binaries -Patch2: %{name}-1.11-nauty-paths.patch -# drop 'tests' from default make target -Patch3: %{name}-1.12-default_make_targets.patch -# disable check for gftables -Patch4: %{name}-1.11-no_gftables.patch -# don't use -Werror -Patch5: %{name}-1.11-no_Werror.patch -# link to gmp, not mpir to avoid possible issues with gmp'ed pari -Patch6: %{name}-1.11-mpir.patch -# use the system gtest -Patch7: %{name}-1.11-gtest.patch -# fix invalid access to the pthread_t type -Patch8: %{name}-1.11-pthreads.patch -# adapt to fflas-ffpack 2.3.x -Patch9: %{name}-1.11-fflas-ffpack.patch -# fix a format specifier -Patch10: %{name}-1.12-format.patch -# catch polymorphic exception types by reference instead of value -Patch11: %{name}-1.12-exception.patch -# adapt to libfplll 5.2.1 -Patch12: %{name}-1.11-fplll.patch +Patch: %{name}-1.25-optflags.patch +# give the build a little more time and space than upstream permits +Patch: %{name}-1.16-ulimit.patch +# drop checking of html links from default make target +Patch: %{name}-1.25-default_make_targets.patch # do not override the debug level -Patch13: %{name}-1.12-configure.patch +Patch: %{name}-1.17-configure.patch +# Fix LTO warnings about mismatched declarations and definitions +Patch: %{name}-1.18-lto.patch BuildRequires: 4ti2 +BuildRequires: appstream BuildRequires: autoconf +BuildRequires: autoconf-archive BuildRequires: bison BuildRequires: boost-devel -BuildRequires: cddlib-devel BuildRequires: chrpath -%if ! 0%{?system_normaliz} BuildRequires: cmake -%endif BuildRequires: cohomCalg +BuildRequires: csdp-tools BuildRequires: desktop-file-utils +BuildRequires: diffutils %if 0%{?fedora} BuildRequires: doxygen-latex %else BuildRequires: doxygen %endif +BuildRequires: e-antic-devel +BuildRequires: eigen3-static # etags BuildRequires: emacs BuildRequires: factory-gftables -BuildRequires: fflas-ffpack-devel BuildRequires: flex BuildRequires: gawk BuildRequires: gcc-c++ @@ -153,59 +261,81 @@ BuildRequires: gdb BuildRequires: gdbm-devel BuildRequires: gettext-devel BuildRequires: gfan +BuildRequires: git-core BuildRequires: givaro-static BuildRequires: glpk-devel -%if 0%{?gmp} -BuildRequires: gmp-devel -%else -BuildRequires: mpir-devel -%endif -BuildRequires: gtest-devel +BuildRequires: iml-devel BuildRequires: info -BuildRequires: lapack-devel -BuildRequires: libgfan-devel -BuildRequires: libtool -BuildRequires: libatomic_ops-devel +BuildRequires: libappstream-glib +BuildRequires: libatomic BuildRequires: libfplll-static BuildRequires: libfrobby-devel -BuildRequires: libmpc-devel -BuildRequires: libnauty-devel -%if 0%{?system_normaliz} -BuildRequires: libnormaliz-devel >= 3.1.1 -%endif -BuildRequires: linbox-devel +BuildRequires: libgfan-devel +BuildRequires: libnormaliz-devel >= 3.10.4 +BuildRequires: libtool BuildRequires: lrslib-devel BuildRequires: lrslib-utils -BuildRequires: memtailor-devel -BuildRequires: mathic-devel -BuildRequires: mathicgb-devel +BuildRequires: make +BuildRequires: mpsolve-devel +BuildRequires: msolve +BuildRequires: msolve-devel BuildRequires: nauty BuildRequires: normaliz -BuildRequires: ntl-devel -BuildRequires: openblas-devel +BuildRequires: ocl-icd-devel BuildRequires: pari-devel -BuildRequires: pkgconfig(bdw-gc) >= 6.2 +BuildRequires: pkgconfig(bdw-gc) >= 8.2.6 +BuildRequires: pkgconfig(cddlib) +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(fflas-ffpack) +BuildRequires: pkgconfig(flexiblas) +BuildRequires: pkgconfig(gmp) +BuildRequires: pkgconfig(gtest) +BuildRequires: pkgconfig(libffi) +BuildRequires: pkgconfig(libmariadb) +BuildRequires: pkgconfig(libnauty) BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(m4ri) +BuildRequires: pkgconfig(m4rie) +BuildRequires: pkgconfig(mathic) +BuildRequires: pkgconfig(mathicgb) +BuildRequires: pkgconfig(memtailor) +BuildRequires: pkgconfig(mpfi) BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(ntl) +BuildRequires: pkgconfig(qd) +BuildRequires: pkgconfig(readline) +BuildRequires: pkgconfig(tbb) +BuildRequires: pkgconfig(tinyxml2) BuildRequires: polymake -BuildRequires: python2 -BuildRequires: qd-devel -BuildRequires: readline-devel -BuildRequires: tbb-devel +BuildRequires: python3-devel +BuildRequires: R +BuildRequires: scip +BuildRequires: texinfo BuildRequires: time BuildRequires: TOPCOM -BuildRequires: xemacs +BuildRequires: transfig +%ifarch %{valgrind_arches} +BuildRequires: valgrind +%endif Requires: 4ti2 Requires: cohomCalg +Requires: csdp-tools Requires: emacs-filesystem Requires: factory-gftables Requires: gfan Requires: hicolor-icon-theme Requires: lrslib-utils Requires: nauty +Requires: normaliz Requires: TOPCOM -Requires: xemacs-filesystem + +# M2-help +Requires: xdg-utils + +Recommends: mathicgb +Recommends: msolve +Recommends: scip %if 0%{?common} Requires: %{name}-common = %{version}-%{release} @@ -220,12 +350,11 @@ Provides: Macaulay2-emacs = %{version}-%{release} Provides: macaulay2 = %{version}-%{release} -# M2-help -Requires: xdg-utils - -%if 0%{?system_normaliz} -Requires: normaliz -%endif +# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +# Macaulay2 takes more than 14 hours to build on ppc64le, more than twice as +# long as the x86_64 build, and it is doubtful that anyone will ever use it on +# that platform anyway. +ExcludeArch: %{ix86} %{power64} # Do not advertise the bundled mpfr %global __provides_exclude libmpfr.so* @@ -233,8 +362,8 @@ Requires: normaliz %description Macaulay 2 is a new software system devoted to supporting research in -algebraic geometry and commutative algebra written by Daniel R. Grayson -and Michael E. Stillman +algebraic geometry and commutative algebra written by Daniel R. Grayson and +Michael E. Stillman. %package common Summary: Common files for %{name} @@ -245,66 +374,54 @@ BuildArch: noarch %prep -%setup -q -n M2-version-%{version}/M2 -%setup -q -n M2-version-%{version}/M2 -T -D -a 10 +%setup -q -n M2-release-%{version}/M2 +%setup -q -n M2-release-%{version}/M2 -T -D -a 10 +tar -C Macaulay2/editors/emacs --strip-components=1 -xzf %{SOURCE1} install -p -m755 %{SOURCE20} ./etags +## TODO: Remove this when Fedora moves to normaliz 3.11.0 +sed -i 's/3\.11\.0/3.10.5/' libraries/normaliz/Makefile.in + ## bundled code -%if ! 0%{?system_normaliz} +%if ! %system_normaliz install -p -m644 %{SOURCE100} BUILD/tarfiles/ -sed -i '/PROGRAMS =/aPATCHFILE = @abs_srcdir@/patch-$(VERSION)' \ - libraries/normaliz/Makefile.in %endif install -p -m644 %{SOURCE101} %{SOURCE102} %{SOURCE103} BUILD/tarfiles/ +install -p -m644 %{SOURCE104} BUILD/tarfiles/v%{linboxver}.tar.gz sed -i 's/\(VERSION = \).*/\1%{mpfrver}/' libraries/mpfr/Makefile.in +sed -e 's/\(VERSION = \).*/\1%{linboxver}/' \ + -e 's,--with-gmp.*,--without-archnative GIVARO_CFLAGS=-I$(LIBRARIESDIR) GIVARO_LIBS="%{_libdir}/libgivaro.a",' \ + -i libraries/linbox/Makefile.in ## patches for bundled code -cp -p %{SOURCE200} libraries/flint/patch-%{flintver} -sed -e 's/# PATCHFILE/PATCHFILE/' \ - -e 's,--with-blas,&=%{_includedir}/openblas --with-ntl,' \ +sed -e 's,--disable-shared,& --disable-arch --with-blas-include=%{_includedir}/flexiblas --with-ntl-include=%{_includedir}/NTL,' \ + -e 's/3\.2\.1/%{flintver}/' \ + -e 's/\(LICENSEFILES = \).*/\1COPYING COPYING.LESSER/' \ + -e 's/-pedantic-errors/& -fno-strict-aliasing/' \ + -e "s,PRECONFIGURE.*,& \&\& sed -i 's/openblas/flexiblas/' configure," \ -i libraries/flint/Makefile.in -cp -p %{SOURCE201} libraries/factory/patch-%{factoryver} -cp -p %{SOURCE202} libraries/mpfr/patch-%{mpfrver} ## fake library tarballs -%if 0%{?system_normaliz} -install -p -m644 %{SOURCE300} BUILD/tarfiles/ -sed -i '/PRECONFIGURE/d' libraries/normaliz/Makefile.in -%endif -install -p -m644 %{SOURCE301} %{SOURCE302} %{SOURCE303} %{SOURCE304} \ - %{SOURCE305} %{SOURCE306} %{SOURCE307} %{SOURCE308} %{SOURCE309} \ +install -p -m644 %{SOURCE300} %{SOURCE301} %{SOURCE302} %{SOURCE303} \ + %{SOURCE304} %{SOURCE305} %{SOURCE306} %{SOURCE307} %{SOURCE308} \ + %{SOURCE309} %{SOURCE310} %{SOURCE311} %{SOURCE312} %{SOURCE313} \ BUILD/tarfiles/ -sed -i '/PRECONFIGURE/d' libraries/4ti2/Makefile.in -sed -i 's/VERSION = 4\.0\.4/VERSION = 5.2.0/;/PATCHFILE/d' libraries/fplll/Makefile.in -sed -i '/PATCHFILE/d' libraries/gfan/Makefile.in -sed -i '/TARDIR/d;/PRECONFIGURE/d' libraries/gtest/Makefile.in +sed -i '/PRECONFIGURE/d' libraries/{4ti2,cddlib,givaro,normaliz,topcom}/Makefile.in +sed -i '/PATCHFILE/d' libraries/{csdp,frobby,gfan,givaro,mpsolve,normaliz,topcom}/Makefile.in +sed -i '/INSTALLCMD/,/stdinc/d' libraries/frobby/Makefile.in sed -i 's,install \(lib.*\.a\),ln -s %{_libdir}/\1,' libraries/lapack/Makefile.in -sed -i '/TARFILE/iPATCHFILE = @abs_srcdir@/patch-$(VERSION)' libraries/mpfr/Makefile.in -sed -i '/PRECONFIGURE/d' libraries/topcom/Makefile.in -truncate --size=0 libraries/topcom/patch-0.17.8 -%patch0 -p1 -b .optflags -%patch1 -p1 -b .xdg_open -%patch2 -p1 -b .nauty -%patch3 -p1 -b .default_make_targets -%patch4 -p1 -b .no_gftables -%patch5 -p1 -b .no_Werror -%if 0%{?gmp} -%patch6 -p1 -b .mpir -%endif -# factory-gftables symlink -mkdir -p BUILD/%{_target_platform}/usr-dist/common/share/Macaulay2/Core -ln -s %{_datadir}/factory \ - BUILD/%{_target_platform}/usr-dist/common/share/Macaulay2/Core/factory -%patch7 -p1 -b .gtest -%patch8 -p1 -b .pthreads -%patch9 -p1 -b .fflas-ffpack -%patch10 -p1 -b .format -%patch11 -p1 -b .exception -%patch12 -p1 -b .fplll -%patch13 -p1 -b .configure +## fake givaro submodule +tar -C submodules/givaro --strip-components=1 -xzf %{SOURCE306} +## flint submodule +tar -C submodules/flint --strip-components=1 -xzf %{SOURCE102} + +%autopatch -p1 + + +%conf # repeatable builds: inject a node name sed -i 's,`uname -n`,build.fedoraproject.org,' configure.ac @@ -313,68 +430,68 @@ if [ "$HOME" = "/builddir" ]; then echo "set auto-load safe-path /" > /builddir/.gdbinit fi -# fix executable bits -chmod a-x Macaulay2/packages/NumericalAlgebraicGeometry/hom4ps2_in_out - -# Use, but don't build, cddlib, fflas-ffpack, gc, and linbox. Use the static -# versions of libfplll and givaro. Do not invoke git on a nonrepository. Link -# with openblas instead of the reference blas and lapack. Fix a typo. -sed -e 's/^BUILD_cddlib=yes/BUILD_cddlib=no/' \ - -e 's/^BUILD_gc=yes/BUILD_gc=no/' \ - -e 's/BUILD_linbox=yes/BUILD_linbox=no/' \ +# Use, but don't build, cddlib, fflas-ffpack, and gc. Use the static versions +# of libfplll and givaro. Link with flexiblas instead of the reference blas +# and lapack. Fix typos. +sed -e 's/BUILD_cddlib=yes/BUILD_cddlib=no/' \ + -e 's/BUILD_gc=yes/BUILD_gc=no/' \ -e 's/BUILD_fflas_ffpack=yes/BUILD_fflas_ffpack=no/' \ - -e 's/^\(GIT_DESCRIPTION=\).*/\1"unknown"/' \ - -e 's,-lfplll,%{_libdir}/libfplll.a,' \ + -e 's,-lfplll,%{_libdir}/libfplll.a -lqd,' \ + -e 's,`\$PKG_CONFIG --libs givaro`,%{_libdir}/libgivaro.a,' \ -e 's,-lgivaro,%{_libdir}/libgivaro.a,' \ - -e 's,-llapack -lrefblas,-lopenblas,' \ + -e 's,-lrefblas,-lflexiblas,' \ + -e 's,-llapack,-lflexiblas,' \ -e 's,\$added_fclibs != yes,"$added_fclibs" != yes,' \ -i configure.ac -# Use, but don't build, memtailor, mathic, and mathicgb. Link with qd. -sed -e 's/\(LIBDEPS_FOR_BUILD := \).*/\1/' \ - -e '/LDLIBS_FOR_BUILD/s/mathicgb/& qd/' \ - -i include/config.Makefile.in +# Do not try to download tarballs +sed -i '/^fetch: download-enabled/d' libraries/Makefile.library.in + +# Do not try to fetch sources with git +sed -i 's/^\(fetch:\) update-submodule/\1/' libraries/Makefile.library.in + +# All examples should produce expected results on x86_64. Other platforms +# sometimes encounter problems; e.g., due to differences in rounding error of +# floating point numbers. +%ifnarch %{x86_64} +sed -e '/^IgnoreExampleErrors/s/false/true/' \ + -e '/^CheckDocumentation/s/true/false/' \ + -i Macaulay2/packages/Makefile.in +%endif # (re)generate configure -[ -f configure -a -f include/config.h ] || make +autoreconf -fi . %build +# Let the configure script find lrslib utilities +module load lrslib-%{_arch} + ## configure macro currently broken, due to some odd prefix-checks. probably fixable -- Rex mkdir -p BUILD/%{_target_platform} -pushd BUILD/%{_target_platform} -# On ppc64le with the compiler in strict mode, the pari declaration of -# vec_insert() is deemed to ambiguate the declaration of the AltiVec function -# __builtin_vec_insert(). We add -fpermissive to downgrade the error to a -# warning, but we should find a better fix. -%ifarch ppc64le -cxxflags="%{optflags} -fsigned-char -fpermissive" -%else -cxxflags="%{optflags} -fsigned-char" -%endif -CPPFLAGS="-I%{_includedir}/cddlib -I%{_includedir}/frobby" \ -CFLAGS="%{optflags} -fsigned-char" \ -CXXFLAGS="$cxxflags" \ -LIBS="-lopenblas" \ +cd BUILD/%{_target_platform} +CPPFLAGS="$CPPFLAGS -I%{_includedir}/cddlib -I%{_includedir}/frobby" \ +CFLAGS='%{build_cflags} -fsigned-char' \ +CXXFLAGS='%{build_cflags} -fsigned-char' \ +LIBS="-lflexiblas" \ ../../configure \ --build=%{_build} \ --host=%{_host} \ --with-issue=%{ISSUE} \ --prefix=%{_prefix} \ - --disable-dumpdata \ --enable-shared \ - --disable-fc-lib-ldflags \ --disable-strip \ - --enable-fplll \ --enable-linbox \ + --with-blas=flexiblas \ + --with-lapack=flexiblas \ + --with-system-libs \ --with-unbuilt-programs="cddplus nauty" \ - --enable-build-libraries="mpfr flint factory lapack fplll givaro gtest" + --enable-build-libraries="mpfr flint factory lapack fplll givaro linbox" # The list of libraries and submodules above should include only those that: - # 1. We bundle (mpfr, flint, and factory) - # 2. We sneakily substitute one library for another (lapack -> openblas) + # 1. We bundle (mpfr, flint, factory, and linbox) + # 2. We sneakily substitute one library for another (lapack -> flexiblas) # 3. Have to be linked with the static library (fplll and givaro) - # 4. Have to be faked because Macaulay2 wants to find sources (gtest) -popd +cd - # link with static libraries when global constructors run prior to GC # initialization. Otherwise, unloading the shared object causes a crash. @@ -388,6 +505,11 @@ for fil in $(grep -Erl -e '-lfplll|-lgivaro' .); do rm -f $fil.orig done +# Do not try to checkout submodules with git +mkdir -p BUILD/%{_target_platform}/libraries/{flint,givaro} +touch BUILD/%{_target_platform}/libraries/{flint,givaro}/.submodule-updated + +# Build make -C BUILD/%{_target_platform} VERBOSE=true Verbose=true IgnoreExampleErrors=true # log errors @@ -395,11 +517,11 @@ find BUILD/%{_target_platform}/ -name *.errors -execdir echo {} \; -execdir cat %install -make install -C BUILD/%{_target_platform} DESTDIR=%{buildroot} IgnoreExampleErrors=true +%make_install -C BUILD/%{_target_platform} IgnoreExampleErrors=true # link, don't copy, the binaries mbindir=%{buildroot}%{_libexecdir}/Macaulay2/bin -for fil in checkregularity chiro2circuits chiro2cocircuits cohomcalg lrs \ +for fil in checkregularity chiro2circuits chiro2cocircuits cohomcalg csdp lrs \ normaliz points2allfinetriangs points2alltriangs points2chiro \ points2finetriang points2finetriangs points2flips points2nallfinetriangs \ points2nalltriangs points2nfinetriangs points2nflips points2ntriangs \ @@ -408,6 +530,10 @@ for fil in checkregularity chiro2circuits chiro2cocircuits cohomcalg lrs \ ln -s %{_bindir}/$fil $mbindir/$fil done +# unbundle factory-gftables +rm -fr %{buildroot}%{_datadir}/Macaulay2/Core/factory +ln -s ../../factory %{buildroot}%{_datadir}/Macaulay2/Core + # app img for sz in 64 72 96 128 192 256 512; do sz2=${sz}x${sz} @@ -420,15 +546,22 @@ desktop-file-install --vendor="" \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE11} -# Byte compile the (X)Emacs files, and move the documentation -mkdir -p %{buildroot}%{_xemacs_sitelispdir} -cp -p %{buildroot}%{_emacs_sitelispdir}/*.el %{buildroot}%{_xemacs_sitelispdir} -pushd %{buildroot}%{_emacs_sitelispdir} -mv M2-emacs* M2-README %{buildroot}%{_pkgdocdir} +mkdir -p %{buildroot}%{_metainfodir} +install -pm 644 %{SOURCE12} %{buildroot}%{_metainfodir} +# Still required by guidelines for now +# (https://pagure.io/packaging-committee/issue/1053): +appstream-util validate-relax --nonet \ + %{buildroot}%{_metainfodir}/com.macaulay2.macaulay2.metainfo.xml +# Matches what gnome-software and others use: +appstreamcli validate --no-net --explain \ + %{buildroot}%{_metainfodir}/com.macaulay2.macaulay2.metainfo.xml + +# Byte compile the Emacs files, and move the documentation +cd %{buildroot}%{_emacs_sitelispdir}/macaulay2 +mv M2-emacs* %{buildroot}%{_pkgdocdir} +mv README.md %{buildroot}%{_pkgdocdir}/README-emacs.md %{_emacs_bytecompile} *.el -cd %{buildroot}%{_xemacs_sitelispdir} -%{_xemacs_bytecompile} *.el -popd +cd - ## unpackaged files # info dir @@ -436,29 +569,12 @@ rm -fv %{buildroot}%{_infodir}/dir %check -CFLAGS="%{optflags}" \ -CXXFLAGS="%{optflags}" \ -LDFLAGS="$RPM_LD_FLAGS" \ -time make -k check -C BUILD/%{_target_platform} Verbose=true ||: +# The test suite has grown to the point where it takes many hours to run. +# Just run the most basic tests. +make check -C BUILD/%{_target_platform}/Macaulay2/e +make check -C BUILD/%{_target_platform}/Macaulay2/bin -# This script deals with accidental replacement of the factory symlink with -# a directory. Once F26 has reached EOL, this can be removed. -%pretrans -p -path = "%{_datadir}/Macaulay2/Core/factory" -st = posix.stat(path) -if st and st.type == "directory" then - status = os.rename(path, path .. ".rpmmoved") - if not status then - suffix = 0 - while not status do - suffix = suffix + 1 - status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix) - end - os.rename(path, path .. ".rpmmoved") - end -end - %files %{_bindir}/M2 %{_bindir}/M2-binary @@ -469,490 +585,14 @@ end %files common %endif %{_datadir}/Macaulay2/ -%{_datadir}/applications/*Macaulay2.desktop +%{_datadir}/applications/com.macaulay2.macaulay2.desktop %{_datadir}/icons/hicolor/*/*/* +%{_metainfodir}/com.macaulay2.macaulay2.metainfo.xml %{_docdir}/Macaulay2/ %{_infodir}/*.info* %{_mandir}/man1/* -%{_emacs_sitelispdir}/* -%{_xemacs_sitelispdir}/* +%{_emacs_sitelispdir}/macaulay2/ %changelog -* Sun Feb 17 2019 Igor Gnatenko - 1.12.0.1-5 -- Rebuild for readline 8.0 - -* Thu Jan 31 2019 Fedora Release Engineering - 1.12.0.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Nov 20 2018 Jerry James - 1.12.0.1-3 -- Rebuild for lrslib 070 - -* Wed Oct 10 2018 Jerry James - 1.12.0.1-2 -- Rebuild for ntl 11.3.0 -- Build with openblas instead of atlas (bz 1618938) - -* Fri Aug 10 2018 Jerry James - 1.12.0.1-1 -- Macaulay2-1.12.0.1 -- Replace tiny icon of unknown origin with various sizes of upstream's icon -- Remove deprecated entries from the desktop file -- Add upstream mpfr 3.1.6 patches - -* Thu Jul 12 2018 Fedora Release Engineering - 1.11-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 3 2018 Jerry James - 1.11-2 -- Rebuild for ntl 11.1.0 -- Remove scriptlets that call install-info -- Do not byte compile python files in the examples - -* Sat Jun 2 2018 Jerry James - 1.11-1 -- Macaulay2-1.11 -- Drop upstreamed patches: -verbose_build, -givaro, -pari, -endian -- New patches: -fflas-ffpack, -format, -exception, -fplll, -configure -- Update bundled software -- Refresh INFO_FILES list - -* Fri Feb 09 2018 Igor Gnatenko - 1.9.2-8 -- Escape macros in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 1.9.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 18 2018 Igor Gnatenko - 1.9.2-6 -- Remove obsolete scriptlets - -* Wed Oct 11 2017 Jerry James - 1.9.2-5 -- Link rather than copy the normaliz binary -- Fix accidental replacement of factory symlink with a directory - -* Sat Sep 30 2017 Jerry James - 1.9.2-4 -- Rebuild for ntl 10.5.0 - -* Wed Aug 02 2017 Fedora Release Engineering - 1.9.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Apr 5 2017 Jerry James - 1.9.2-1 -- Macaulay2-1.9.2 -- Drop upstreamed patches: -disable_broken_debug_functions, -gc, -rpath, - -rh_configure_hack -- Add patches: -givaro, -gtest, -pari -- Create fake library and submodule tarballs to fool the build system into - building in support for system libraries -- Bundle mpfr, flint, and factory to avoid garbage collector crashes -- Replace the (X)Emacs triggers with (x)emacs-filesystem dependencies -- New URLs - -* Fri Feb 10 2017 Fedora Release Engineering - 1.6-34 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 1.6-33 -- Rebuild for readline 7.x - -* Thu Oct 20 2016 Jerry James - 1.6-32 -- Rebuild for ntl 10.1.0 - -* Mon Sep 5 2016 Jerry James - 1.6-31 -- Rebuild for ntl 9.11.0 - -* Fri Aug 12 2016 Jerry James - 1.6-30 -- Rebuild for fflas-ffpack 2.2.2, givaro 4.0.2, and linbox 1.4.2 - -* Mon Jul 25 2016 Jerry James - 1.6-29 -- Rebuild for ntl 9.10.0 - -* Thu Jun 2 2016 Jerry James - 1.6-28 -- Rebuild for ntl 9.9.1 - -* Fri Apr 29 2016 Jerry James - 1.6-27 -- Rebuild for ntl 9.8.0 -- Nauty is now available -- Drop -gcc-template-bug patch; gcc bug has been fixed - -* Sat Mar 19 2016 Jerry James - 1.6-26 -- Rebuild for ntl 9.7.0 - -* Sat Feb 20 2016 Jerry James - 1.6-25 -- Rebuild for ntl 9.6.4 -- Add -gcc-template-bug patch to work around gcc bug (bz 1307282) - -* Wed Feb 03 2016 Fedora Release Engineering - 1.6-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 14 2016 Jonathan Wakely - 1.6-23 -- Rebuilt for Boost 1.60 - -* Fri Dec 4 2015 Jerry James - 1.6-22 -- Rebuild for ntl 9.6.2 -- Add python2 BR for the tests - -* Sat Oct 17 2015 Kalev Lember - 1.6-21 -- Rebuilt for libntl soname bump - -* Fri Oct 16 2015 Jerry James - 1.6-20 -- Rebuild for ntl 9.4.0 - -* Tue Sep 29 2015 Rex Dieter 1.6-19 -- refresh config.guess/config.sub hack, fix FTBFS on aarch64 - -* Sat Sep 19 2015 Jerry James - 1.6-18 -- Rebuild for flint 2.5.2 and ntl 9.3.0 - -* Thu Aug 27 2015 Jonathan Wakely - 1.6-17 -- Rebuilt for Boost 1.59 - -* Wed Jul 29 2015 Fedora Release Engineering - 1.6-16 -- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 - -* Wed Jul 22 2015 David Tardon - 1.6-15 -- rebuild for Boost 1.58 - -* Tue Jun 16 2015 Fedora Release Engineering - 1.6-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon May 18 2015 Jerry James - 1.6-13 -- Rebuild for ntl 9.1.1 and cddlib-094h - -* Fri May 15 2015 Jerry James - 1.6-12 -- Bump and rebuild - -* Sat May 9 2015 Jerry James - 1.6-11 -- Rebuild for ntl 9.1.0 - -* Mon Feb 2 2015 Jerry James - 1.6-10 -- Rebuild for ntl 8.1.2 - -* Mon Jan 26 2015 Petr Machata - 1.6-9 -- Rebuild for boost 1.57.0 - -* Thu Jan 15 2015 Jerry James - 1.6-8 -- Rebuild for ntl 8.1.0 -- Fix the desktop file name - -* Wed Oct 29 2014 Jerry James - 1.6-7 -- Rebuild for ntl 6.2.1 -- Revert Apr 8 HTML creation timeout, now handled upstream -- Revert use of -common subpkg; various arches timeout differently - -* Wed Sep 24 2014 Rex Dieter 1.6-6 -- enable -common subpkg (to be more compatible with upstream packaging) - -* Fri Aug 15 2014 Fedora Release Engineering - 1.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Jun 25 2014 Rex Dieter 1.6-4 -- restore --build/--host configure options lost in 1.6 update, should help arm - -* Fri Jun 06 2014 Fedora Release Engineering - 1.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 23 2014 Petr Machata - 1.6-2 -- Rebuild for boost 1.55.0 - -* Mon May 19 2014 Rex Dieter 1.6-1 -- Macaulay2-1.6 (#1074594) -- ExcludeArch: %%arm (#1099598) - -* Wed May 14 2014 Rex Dieter 1.5-8 -- rebuild (gc) - -* Tue Apr 8 2014 Jerry James - 1.5-7 -- Build for all arches -- Increase HTML creation timeouts for slower processors, such as ARM -- Add --build and --host invocations to configure to fix mismatched ARM names - -* Wed Apr 2 2014 Jerry James - 1.5-6 -- Rebuild for ntl 6.1.0 - -* Fri Mar 21 2014 Jerry James - 1.5-5 -- The normaliz patch was used; bring it back -- Complete the removal of the system_normaliz variable -- Link with RPM_LD_FLAGS -- Due to use of a static library, explicitly link with -lflint - -* Fri Jan 24 2014 Rex Dieter - 1.5-5 -- drop unused patches (4ti2, normalize) - -* Tue Jan 21 2014 Rex Dieter - 1.5-4 -- utilize %%_libexecdir/Macaulay2/... for helper/system binaries -- libdir: %%_libdir => %%_prefix/lib -- -common subpkg option (not used yet) - -* Tue Jan 14 2014 Jerry James - 1.5-3 -- Update normaliz interface for normaliz 2.8 and later - -* Tue Jul 30 2013 Petr Machata - 1.5-2 -- Rebuild for boost 1.54.0 - -* Thu May 23 2013 Rex Dieter 1.5-1 -- Release: 1 (using non-snapshot release tarball now) - -* Tue May 21 2013 Rex Dieter - 1.5-0.7.20130401 -- update to 20130401 r15955 snapshot release -- (Build)Requires: factory-gftables (see bug #965655) -- refresh INFO_FILES content - -* Mon May 6 2013 Jerry James - 1.5-0.6.20130214 -- Rebuild for m4ri 20130416 - -* Fri Feb 15 2013 Rex Dieter 1.5-0.5.20130214 -- r15838 (20130214 snapshot) - -* Wed Feb 13 2013 Rex Dieter 1.5-0.4.20120807 -- BR: doxygen-latex - -* Wed Feb 13 2013 Fedora Release Engineering - 1.5-0.3.20120807 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Aug 07 2012 Rex Dieter 1.5-0.2.20120807 -- 1.5 20120807 r15022 snapshot - -* Thu Jul 19 2012 Rex Dieter 1.4-9 -- rebuild against (Singular's) libfac/factory 3.1.3 - -* Wed Jul 18 2012 Fedora Release Engineering - 1.4-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Jul 03 2012 Rex Dieter 1.4-7 -- rebuild (pari) - -* Sun Jul 1 2012 pcpa - 1.4-6 -- Link to gmp not mpir. -- Rebuild with pari 2.5. - -* Wed May 30 2012 Rex Dieter -- 1.4-5 -- License: GPLv2 or GPLv3 (#821036) -- pkgconfig-style deps - -* Tue Feb 28 2012 Fedora Release Engineering - 1.4-4 -- Rebuilt for c++ ABI breakage - -* Thu Jan 12 2012 Fedora Release Engineering - 1.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Fri Sep 30 2011 Rex Dieter 1.4-2 -- rebuild (gdbm) - -* Thu May 26 2011 Rex Dieter 1.4-1 -- 1.4 - -* Thu May 26 2011 Rex Dieter 1.3.1-9 -- Typo in INFO_FILES (#708086) - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Jun 30 2010 Rex Dieter - 1.3.1-7 -- BR: cddlib-static (#609698) - -* Tue Mar 16 2010 Rex Dieter - 1.3.1-6 -- rebuild (factory/libfac) - -* Tue Mar 16 2010 Mark Chappell - 1.3.1-5 -- Run install-info on all of the .info files we installed -- Re-enable the now functional ppc64 build - -* Wed Mar 10 2010 Mark Chappell - 1.3.1-4 -- Add in missing Requires runtime dependancies - -* Wed Mar 10 2010 Mark Chappell - 1.3.1-3 -- GPLv3/GPLv2 conflict, use compat-readline5 - bz#511299 - -* Tue Mar 09 2010 Mark Chappell - 1.3.1-2 -- Replace DSO patch with one accepted upstream -- Completely disable static linking - -* Wed Feb 24 2010 Mark Chappell - 1.3.1-1 -- Upstream version increment -- Remove unused patch -- Remove patch applied upstream -- Ensure consistent use of buildroot macro instead of RPM_BUILD_ROOT -- Fix implicit linking DSO failure -- Don't package empty .okay files which simply indicate test passes - -* Tue Dec 8 2009 Michael Schwendt - 1.2-7 -- Explicitly BR factory-static and libfac-static in accordance with the - Packaging Guidelines (factory-devel/libfac-devel are still static-only). - -* Tue Sep 22 2009 Rex Dieter - 1.2-6 -- fixup/optimize scriplets - -* Fri Jul 24 2009 Fedora Release Engineering - 1.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Fri Apr 17 2009 Rex Dieter - 1.2-4 -- rebuild for ntl-devel (shared) - -* Wed Feb 25 2009 Rex Dieter - 1.2-3 -- BR: libfac-devel,factory-devel >= 3.1 -- restore ExcludeArch: ppc64 (#253847) - -* Mon Feb 23 2009 Fedora Release Engineering - 1.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 13 2009 Rex Dieter 1.2-1 -- Macaulay-1.2 - -* Thu Oct 02 2008 Rex Dieter 1.1-2 -- respin (factory/libfac) - -* Tue Mar 11 2008 Rex Dieter 1.1-1 -- Macaulay2-1.1 -- Obsoletes/Provides: Macaulay2-common (upstream compatibility) -- re-enable ppc64 (#253847) -- IgnoreExampleErrors=true - -* Tue Feb 19 2008 Fedora Release Engineering - 0.9.95-10 -- Autorebuild for GCC 4.3 - -* Tue Dec 18 2007 Rex Dieter 0.9.95-9 -- Provides: macaulay2 -- respin against new(er) factory,libfac,ntl - -* Wed Aug 22 2007 Rex Dieter 0.9.95-8 -- ExcludeArch: ppc64 (#253847) - -* Tue Aug 21 2007 Rex Dieter 0.9.95-7 -- BR: gawk - -* Tue Aug 21 2007 Rex Dieter 0.9.95-6 -- gc-7.0 patches - -* Sat Aug 11 2007 Rex Dieter 0.9.95-5 -- License: GPLv2 - -* Mon Jan 15 2007 Rex Dieter 0.9.95-4 -- Ob/Pr: Macaulay2-doc, not -docs (#222609) - -* Sat Jan 06 2007 Rex Dieter 0.9.95-3 -- re-enable ppc build (#201739) - -* Tue Jan 02 2007 Rex Dieter 0.9.95-2 -- ./configure --disable-strip, for usable -debuginfo (#220893) - -* Mon Dec 18 2006 Rex Dieter 0.9.95-1 -- Macaulay2-0.9.95 - -* Wed Nov 22 2006 Rex Dieter 0.9.20-0.5.20060808svn -- .desktop Categories: -Application,Scientific,X-Fedora +ConsoleOnly - -* Tue Aug 29 2006 Rex Dieter 0.9.20-0.4.20060808svn -- fc6 respin - -* Tue Aug 08 2006 Rex Dieter 0.9.20-0.3.20060808svn -- ExcludeArch: ppc (bug #201739) -- %%ghost (x)emacs site-lisp bits (using hints from fedora-rpmdevtools) - -* Tue Aug 08 2006 Rex Dieter 0.9.20-0.2.20060808svn -- 20060808 snapshot - -* Mon Jul 24 2006 Rex Dieter 0.9.20-0.1.20060724svn -- 2006-07-15-0.9.20 - -* Wed Jul 12 2006 Rex Dieter 0.9.10-0.6.20060710svn -- 0.9.10 - --* Mon Jul 10 2006 Rex Dieter 0.9.8-0.6.cvs20060327 -- BR: ncurses-devel - -* Fri May 05 2006 Rex Dieter 0.9.8-0.4.cvs20060327 -- 64bit patch (#188709) - -* Wed Apr 12 2006 Rex Dieter 0.9.8-0.3.cvs20060327 -- omit x86_64, for now (#188709) - -* Tue Apr 11 2006 Rex Dieter 0.9.8-0.2.cvs20060327 -- 0.9.8 (cvs, no tarball yet) -- drop -doc subpkg (in main now) - -* Mon Apr 10 2006 Rex Dieter 0.9.2-22 -- fix icon location (#188384) - -* Thu Mar 30 2006 Rex Dieter 0.9.2-21 -- really disable %%check (fails on fc5+ anyway) - -* Fri Jan 20 2006 Rex Dieter 0.9.2-20 -- .desktop: drop Category=Development -- app icon: follow icon spec -- drop -emacs subpkg (in main now) - -* Fri Sep 16 2005 Rex Dieter - 0.9.2-19 -- disable 'make check' (fc5/buildsystem error), besides, we get a - good consistency check when M2 builds all the doc examples. - -* Wed Sep 14 2005 Rex Dieter - 0.9.2-18 -- rebuild against gc-6.6 - -* Thu May 26 2005 Michael Schwendt - 0.9.2-17 -- rebuild (build system x86_64 repository access failed for 0.9.2-16) -- fix build for GCC 4 (#156223) - -* Thu Apr 7 2005 Michael Schwendt - 0.9.2-15 -- rebuilt - -* Mon Feb 21 2005 Rex Dieter 0:0.9.2-14 -- x86_64 issues (%%_libdir -> %%_prefix/lib ) -- remove desktop_file macro usage - -* Sat Oct 23 2004 Rex Dieter 0:0.9.2-0.fdr.13 -- BR: time (again) -- omit m2_dir/setup (not needed/wanted) - -* Mon Oct 18 2004 Rex Dieter 0:0.9.2-0.fdr.12 -- actually *apply* gcc34 patch this time. - -* Mon Oct 18 2004 Rex Dieter 0:0.9.2-0.fdr.11 -- gcc34 patch - -* Fri Oct 1 2004 Rex Dieter 0:0.9.2-0.fdr.10 -- explicit BR versions for gc-devel, libfac-devel, factory-devel - -* Tue Aug 10 2004 Rex Dieter 0:0.9.2-0.fdr.9 -- BR: time - -* Thu Jun 03 2004 Rex Dieter 0:0.9.2-0.fdr.8 -- .desktop: remove Terminaloptions to be desktop agnostic -- .desktop: Categories += Education;Math;Development (Devel only - added so it shows *somewhere* in gnome menus) - -* Tue Jun 01 2004 Rex Dieter 0:0.9.2-0.fdr.7 -- disable default 'make check' (util/screen fails on fc2) - -* Tue Mar 30 2004 Rex Dieter 0:0.9.2-0.fdr.6 -- desktop-file is now on by default -- use separate (not inline) .desktop file - -* Mon Jan 05 2004 Rex Dieter 0:0.9.2-0.fdr.5 -- fix BuildRequires: desktop-file-utils to satisfy rpmlint. -- put emacs files in emacs subdir too (to follow supplied docs) -- *really* nuke .cvsignore files -- fix desktop-file-install --add-cateagories usage - -* Tue Dec 23 2003 Rex Dieter 0:0.9.2-0.fdr.4 -- -emacs: use %%defattr -- -emacs: fix M2-init.el - -* Mon Nov 17 2003 Rex Dieter 0:0.9.2-0.fdr.3 -- update/simplify macros -- desktop_file support. -- emacs subpkg. -- relax Req's on subpkgs to just: Requires: %%name = %%epoch:%%version -- use non-versioned BuildRequires -- remove redundant BuildRequires: gmp-devel -- remove gc patch, no longer needed. -- delete/not-package a bunch of unuseful files. -- use --disable-strip when debug_package is in use. - -* Thu Nov 13 2003 Rex Dieter 0:0.9.2-0.fdr.2 -- no longer explictly Requires: emacs - -* Wed Nov 05 2003 Rex Dieter 0:0.9.2-0.fdr.1 -- missing Epoch: 0 - -* Fri Sep 12 2003 Rex Dieter 0.9.2-0.fdr.0 -- fedora'ize - +%autochangelog diff --git a/README.md b/README.md new file mode 100644 index 0000000..7d3e139 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Macaulay2 + +[Macaulay2](http://macaulay2.com/) is a system for computing in commutative +algebra, algebraic geometry and related fields. The system was originally +written by Dan Grayson and Mike Stillman. David Eisenbud joined the project a +number of years ago, and many users are writing packages for the system, and +some are contributing source code. diff --git a/changelog b/changelog new file mode 100644 index 0000000..f52a894 --- /dev/null +++ b/changelog @@ -0,0 +1,682 @@ +* Mon Oct 13 2025 Jerry James - 1.25.06-4 +- Drop unused atomic_ops dependency + +* Wed Oct 08 2025 Terje Rosten - 1.25.06-4 +- Move to C++17 for gtest 1.17.0 + +* Sat Aug 23 2025 Benjamin A. Beasley - 1.25.06-3 +- Rebuilt for tinyxml2 11.0.0 + +* Wed Aug 20 2025 Jerry James - 1.25.06-2 +- Rebuild for tbb 2022.2.0 + +* Fri Aug 08 2025 Jerry James - 1.25.06-1 +- Version 1.25.06 + +* Wed Jul 23 2025 Fedora Release Engineering - 1.25.05-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jun 13 2025 Jerry James - 1.25.05-4 +- Unbundle factory-gftables (bz 2372455) + +* Wed Jun 11 2025 Jerry James - 1.25.05-3 +- Rebuild for normaliz 3.10.5 + +* Tue Jun 03 2025 Python Maint - 1.25.05-2 +- Rebuilt for Python 3.14 + +* Thu May 29 2025 Jerry James - 1.25.05-1 +- Version 1.25.05 +- Drop upstreamed patches: no_gftables, fplll, codim-option, rightarrow +- Add patch to avoid the deprecated strstream C++ header +- Unbundle memtailor, mathic, and mathicgb + +* Thu Feb 20 2025 Jerry James - 1.24.11-1 +- Version 1.24.11 +- Drop upstreamed vector overrun patch +- Add patch to fix mismatched options to codim +- BR e-antic-devel +- BR and Recommend msolve +- Move configuration steps to %%conf +- Remove pessimization on s390x + +* Thu Jan 16 2025 Fedora Release Engineering - 1.24.05-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Nov 22 2024 Benjamin A. Beasley - 1.24.05-5 +- Rebuild for libfplll 5.5.0 + +* Mon Sep 23 2024 Jerry James - 1.24.05-4 +- Rebuild for nauty 2.8.9 + +* Sat Aug 24 2024 Jerry James - 1.24.05-3 +- Rebuild for Singular 4.4.0p4 + +* Wed Jul 17 2024 Fedora Release Engineering - 1.24.05-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jun 19 2024 Jerry James - 1.24.05-1 +- Version 1.24.05 + +* Fri Feb 23 2024 Jerry James - 1.22-6 +- Build the polymake and scip examples +- Recommend scip +- Disable ppc64le build until segfaults can be diagnosed + +* Mon Jan 22 2024 Fedora Release Engineering - 1.22-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.22-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 17 2024 Jonathan Wakely - 1.22-3 +- Rebuilt for Boost 1.83 + +* Fri Nov 10 2023 Benjamin A. Beasley - 1.22-2 +- Correct appstreamcli invocation (--nonet no longer works) +- Ask appstreamcli to explain validation findings +- Also validate AppStream XML with appstream-util, required by guidelines + +* Thu Oct 26 2023 Jerry James - 1.22-1 +- Version 1.22 +- Drop upstreamed Macaulay2-configure-c99.patch +- Build against mariadb-connector-c instead of the server package + +* Wed Jul 19 2023 Fedora Release Engineering - 1.21-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Apr 15 2023 Florian Weimer - 1.21-5 +- Port configure script to C99 + +* Mon Feb 20 2023 Jonathan Wakely - 1.21-4 +- Rebuilt for Boost 1.81 + +* Wed Jan 18 2023 Fedora Release Engineering - 1.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 12 2023 Jerry James - 1.21-2 +- Rebuild for libfplll 5.4.4 + +* Thu Dec 22 2022 Jerry James - 1.21-1 +- Version 1.21 +- Drop upstreamed patch for crash when building documentation +- Use rdns names for the desktop and metainfo files + +* Tue Dec 20 2022 Jerry James - 1.20-2 +- Convert License tag to SPDX + +* Sun Sep 25 2022 Rich Mattes - 1.20-2 +- Rebuild for tinyxml2-9.0.0 + +* Thu Aug 4 2022 Jerry James - 1.20-1 +- Version 1.20 + +* Wed Jul 20 2022 Fedora Release Engineering - 1.19.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 04 2022 Thomas Rodgers - 1.19.1-2 +- Rebuilt for Boost 1.78 + +* Mon Feb 21 2022 Jerry James - 1.19.1-1 +- Version 1.19.1 +- Disable LTO to work around segfaults + +* Wed Jan 19 2022 Fedora Release Engineering - 1.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Nov 24 2021 Jerry James - 1.19-1 +- Version 1.19 + +* Fri Aug 06 2021 Jonathan Wakely - 1.18-4 +- Rebuilt for Boost 1.76 + +* Wed Jul 21 2021 Fedora Release Engineering - 1.18-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 29 2021 Jerry James - 1.18-2 +- Rebuild for ntl 11.5.1 + +* Thu Jun 17 2021 Jerry James - 1.18-1 +- Version 1.18 + +* Thu Feb 18 2021 Jerry James - 1.17-2 +- Reduce optimization level on s390x to work around FTBFS +- Install metainfo +- Add -mathic patch to silence GCC warnings +- Add -lto patch to silence LTO warnings + +* Mon Jan 25 2021 Fedora Release Engineering - 1.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 16 2021 Jerry James - 1.17-1 +- Version 1.17 +- Drop upstreamed patches: -nauty-paths, -format +- Merge -gcc11 patch into mathicgb-1.0.patch + +* Thu Oct 15 2020 Jeff Law - 1.16-2 +- Add missing #includes for gcc-11 + +* Mon Aug 31 2020 Jerry James - 1.16-1 +- Version 1.16 +- Drop upstreamed patch: -xdg_open +- Add -ulimit patch for the slower builders +- Add -format and -rightarrow patches +- Bundle packages due to garbage collector crashes: linbox, memtailor, mathic +- Drop the XEmacs subpackage; XEmacs support no longer works + +* Sun Aug 16 2020 Iñaki Úcar - 1.15.1.0-5 +- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager + +* Sat Aug 01 2020 Fedora Release Engineering - 1.15.1.0-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.15.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 1 2020 Jeff Law - 1.15.1.0-2 +- Disable LTO + +* Wed Jun 3 2020 Jerry James - 1.15.1.0-1 +- Version 1.15.1.0 +- Drop upstreamed patches: -no_Werror, -mpir, -pthreads, -fflas-ffpack, + -fno-common, -gtest, -pthreads + +* Tue Feb 11 2020 Jerry James - 1.14.0.1-4 +- Add -fno-common patch to fix FTBFS with GCC 10 + +* Tue Jan 28 2020 Fedora Release Engineering - 1.14.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 10 2020 Jerry James - 1.14.0.1-3 +- Rebuild for ntl 11.4.3 + +* Fri Nov 1 2019 Jerry James - 1.14.0.1-2 +- Rebuild for givaro 4.1.1, fflas-ffpack 2.4.3, and linbox 1.6.3 + +* Thu Sep 26 2019 Jerry James - 1.14.0.1-1 +- Macaulay2-1.14.0.1 +- Drop upstreamed -format and -exception patches +- Also bundle libmpc since it is linked with mpfr +- Drop fix for F26 symlink-file snafu +- Build with python 3 instead of python 2 + +* Wed Jul 24 2019 Fedora Release Engineering - 1.12.0.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 17 2019 Igor Gnatenko - 1.12.0.1-5 +- Rebuild for readline 8.0 + +* Thu Jan 31 2019 Fedora Release Engineering - 1.12.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Nov 20 2018 Jerry James - 1.12.0.1-3 +- Rebuild for lrslib 070 + +* Wed Oct 10 2018 Jerry James - 1.12.0.1-2 +- Rebuild for ntl 11.3.0 +- Build with openblas instead of atlas (bz 1618938) + +* Fri Aug 10 2018 Jerry James - 1.12.0.1-1 +- Macaulay2-1.12.0.1 +- Replace tiny icon of unknown origin with various sizes of upstream's icon +- Remove deprecated entries from the desktop file +- Add upstream mpfr 3.1.6 patches + +* Thu Jul 12 2018 Fedora Release Engineering - 1.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 3 2018 Jerry James - 1.11-2 +- Rebuild for ntl 11.1.0 +- Remove scriptlets that call install-info +- Do not byte compile python files in the examples + +* Sat Jun 2 2018 Jerry James - 1.11-1 +- Macaulay2-1.11 +- Drop upstreamed patches: -verbose_build, -givaro, -pari, -endian +- New patches: -fflas-ffpack, -format, -exception, -fplll, -configure +- Update bundled software +- Refresh INFO_FILES list + +* Fri Feb 09 2018 Igor Gnatenko - 1.9.2-8 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 1.9.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Igor Gnatenko - 1.9.2-6 +- Remove obsolete scriptlets + +* Wed Oct 11 2017 Jerry James - 1.9.2-5 +- Link rather than copy the normaliz binary +- Fix accidental replacement of factory symlink with a directory + +* Sat Sep 30 2017 Jerry James - 1.9.2-4 +- Rebuild for ntl 10.5.0 + +* Wed Aug 02 2017 Fedora Release Engineering - 1.9.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Apr 5 2017 Jerry James - 1.9.2-1 +- Macaulay2-1.9.2 +- Drop upstreamed patches: -disable_broken_debug_functions, -gc, -rpath, + -rh_configure_hack +- Add patches: -givaro, -gtest, -pari +- Create fake library and submodule tarballs to fool the build system into + building in support for system libraries +- Bundle mpfr, flint, and factory to avoid garbage collector crashes +- Replace the (X)Emacs triggers with (x)emacs-filesystem dependencies +- New URLs + +* Fri Feb 10 2017 Fedora Release Engineering - 1.6-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Igor Gnatenko - 1.6-33 +- Rebuild for readline 7.x + +* Thu Oct 20 2016 Jerry James - 1.6-32 +- Rebuild for ntl 10.1.0 + +* Mon Sep 5 2016 Jerry James - 1.6-31 +- Rebuild for ntl 9.11.0 + +* Fri Aug 12 2016 Jerry James - 1.6-30 +- Rebuild for fflas-ffpack 2.2.2, givaro 4.0.2, and linbox 1.4.2 + +* Mon Jul 25 2016 Jerry James - 1.6-29 +- Rebuild for ntl 9.10.0 + +* Thu Jun 2 2016 Jerry James - 1.6-28 +- Rebuild for ntl 9.9.1 + +* Fri Apr 29 2016 Jerry James - 1.6-27 +- Rebuild for ntl 9.8.0 +- Nauty is now available +- Drop -gcc-template-bug patch; gcc bug has been fixed + +* Sat Mar 19 2016 Jerry James - 1.6-26 +- Rebuild for ntl 9.7.0 + +* Sat Feb 20 2016 Jerry James - 1.6-25 +- Rebuild for ntl 9.6.4 +- Add -gcc-template-bug patch to work around gcc bug (bz 1307282) + +* Wed Feb 03 2016 Fedora Release Engineering - 1.6-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 14 2016 Jonathan Wakely - 1.6-23 +- Rebuilt for Boost 1.60 + +* Fri Dec 4 2015 Jerry James - 1.6-22 +- Rebuild for ntl 9.6.2 +- Add python2 BR for the tests + +* Sat Oct 17 2015 Kalev Lember - 1.6-21 +- Rebuilt for libntl soname bump + +* Fri Oct 16 2015 Jerry James - 1.6-20 +- Rebuild for ntl 9.4.0 + +* Tue Sep 29 2015 Rex Dieter 1.6-19 +- refresh config.guess/config.sub hack, fix FTBFS on aarch64 + +* Sat Sep 19 2015 Jerry James - 1.6-18 +- Rebuild for flint 2.5.2 and ntl 9.3.0 + +* Thu Aug 27 2015 Jonathan Wakely - 1.6-17 +- Rebuilt for Boost 1.59 + +* Wed Jul 29 2015 Fedora Release Engineering - 1.6-16 +- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 + +* Wed Jul 22 2015 David Tardon - 1.6-15 +- rebuild for Boost 1.58 + +* Tue Jun 16 2015 Fedora Release Engineering - 1.6-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon May 18 2015 Jerry James - 1.6-13 +- Rebuild for ntl 9.1.1 and cddlib-094h + +* Fri May 15 2015 Jerry James - 1.6-12 +- Bump and rebuild + +* Sat May 9 2015 Jerry James - 1.6-11 +- Rebuild for ntl 9.1.0 + +* Mon Feb 2 2015 Jerry James - 1.6-10 +- Rebuild for ntl 8.1.2 + +* Mon Jan 26 2015 Petr Machata - 1.6-9 +- Rebuild for boost 1.57.0 + +* Thu Jan 15 2015 Jerry James - 1.6-8 +- Rebuild for ntl 8.1.0 +- Fix the desktop file name + +* Wed Oct 29 2014 Jerry James - 1.6-7 +- Rebuild for ntl 6.2.1 +- Revert Apr 8 HTML creation timeout, now handled upstream +- Revert use of -common subpkg; various arches timeout differently + +* Wed Sep 24 2014 Rex Dieter 1.6-6 +- enable -common subpkg (to be more compatible with upstream packaging) + +* Fri Aug 15 2014 Fedora Release Engineering - 1.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Jun 25 2014 Rex Dieter 1.6-4 +- restore --build/--host configure options lost in 1.6 update, should help arm + +* Fri Jun 06 2014 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 Petr Machata - 1.6-2 +- Rebuild for boost 1.55.0 + +* Mon May 19 2014 Rex Dieter 1.6-1 +- Macaulay2-1.6 (#1074594) +- ExcludeArch: %%arm (#1099598) + +* Wed May 14 2014 Rex Dieter 1.5-8 +- rebuild (gc) + +* Tue Apr 8 2014 Jerry James - 1.5-7 +- Build for all arches +- Increase HTML creation timeouts for slower processors, such as ARM +- Add --build and --host invocations to configure to fix mismatched ARM names + +* Wed Apr 2 2014 Jerry James - 1.5-6 +- Rebuild for ntl 6.1.0 + +* Fri Mar 21 2014 Jerry James - 1.5-5 +- The normaliz patch was used; bring it back +- Complete the removal of the system_normaliz variable +- Link with RPM_LD_FLAGS +- Due to use of a static library, explicitly link with -lflint + +* Fri Jan 24 2014 Rex Dieter - 1.5-5 +- drop unused patches (4ti2, normalize) + +* Tue Jan 21 2014 Rex Dieter - 1.5-4 +- utilize %%_libexecdir/Macaulay2/... for helper/system binaries +- libdir: %%_libdir => %%_prefix/lib +- -common subpkg option (not used yet) + +* Tue Jan 14 2014 Jerry James - 1.5-3 +- Update normaliz interface for normaliz 2.8 and later + +* Tue Jul 30 2013 Petr Machata - 1.5-2 +- Rebuild for boost 1.54.0 + +* Thu May 23 2013 Rex Dieter 1.5-1 +- Release: 1 (using non-snapshot release tarball now) + +* Tue May 21 2013 Rex Dieter - 1.5-0.7.20130401 +- update to 20130401 r15955 snapshot release +- (Build)Requires: factory-gftables (see bug #965655) +- refresh INFO_FILES content + +* Mon May 6 2013 Jerry James - 1.5-0.6.20130214 +- Rebuild for m4ri 20130416 + +* Fri Feb 15 2013 Rex Dieter 1.5-0.5.20130214 +- r15838 (20130214 snapshot) + +* Wed Feb 13 2013 Rex Dieter 1.5-0.4.20120807 +- BR: doxygen-latex + +* Wed Feb 13 2013 Fedora Release Engineering - 1.5-0.3.20120807 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 07 2012 Rex Dieter 1.5-0.2.20120807 +- 1.5 20120807 r15022 snapshot + +* Thu Jul 19 2012 Rex Dieter 1.4-9 +- rebuild against (Singular's) libfac/factory 3.1.3 + +* Wed Jul 18 2012 Fedora Release Engineering - 1.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 03 2012 Rex Dieter 1.4-7 +- rebuild (pari) + +* Sun Jul 1 2012 pcpa - 1.4-6 +- Link to gmp not mpir. +- Rebuild with pari 2.5. + +* Wed May 30 2012 Rex Dieter +- 1.4-5 +- License: GPLv2 or GPLv3 (#821036) +- pkgconfig-style deps + +* Tue Feb 28 2012 Fedora Release Engineering - 1.4-4 +- Rebuilt for c++ ABI breakage + +* Thu Jan 12 2012 Fedora Release Engineering - 1.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Sep 30 2011 Rex Dieter 1.4-2 +- rebuild (gdbm) + +* Thu May 26 2011 Rex Dieter 1.4-1 +- 1.4 + +* Thu May 26 2011 Rex Dieter 1.3.1-9 +- Typo in INFO_FILES (#708086) + +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jun 30 2010 Rex Dieter - 1.3.1-7 +- BR: cddlib-static (#609698) + +* Tue Mar 16 2010 Rex Dieter - 1.3.1-6 +- rebuild (factory/libfac) + +* Tue Mar 16 2010 Mark Chappell - 1.3.1-5 +- Run install-info on all of the .info files we installed +- Re-enable the now functional ppc64 build + +* Wed Mar 10 2010 Mark Chappell - 1.3.1-4 +- Add in missing Requires runtime dependancies + +* Wed Mar 10 2010 Mark Chappell - 1.3.1-3 +- GPLv3/GPLv2 conflict, use compat-readline5 - bz#511299 + +* Tue Mar 09 2010 Mark Chappell - 1.3.1-2 +- Replace DSO patch with one accepted upstream +- Completely disable static linking + +* Wed Feb 24 2010 Mark Chappell - 1.3.1-1 +- Upstream version increment +- Remove unused patch +- Remove patch applied upstream +- Ensure consistent use of buildroot macro instead of RPM_BUILD_ROOT +- Fix implicit linking DSO failure +- Don't package empty .okay files which simply indicate test passes + +* Tue Dec 8 2009 Michael Schwendt - 1.2-7 +- Explicitly BR factory-static and libfac-static in accordance with the + Packaging Guidelines (factory-devel/libfac-devel are still static-only). + +* Tue Sep 22 2009 Rex Dieter - 1.2-6 +- fixup/optimize scriplets + +* Fri Jul 24 2009 Fedora Release Engineering - 1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Apr 17 2009 Rex Dieter - 1.2-4 +- rebuild for ntl-devel (shared) + +* Wed Feb 25 2009 Rex Dieter - 1.2-3 +- BR: libfac-devel,factory-devel >= 3.1 +- restore ExcludeArch: ppc64 (#253847) + +* Mon Feb 23 2009 Fedora Release Engineering - 1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 13 2009 Rex Dieter 1.2-1 +- Macaulay-1.2 + +* Thu Oct 02 2008 Rex Dieter 1.1-2 +- respin (factory/libfac) + +* Tue Mar 11 2008 Rex Dieter 1.1-1 +- Macaulay2-1.1 +- Obsoletes/Provides: Macaulay2-common (upstream compatibility) +- re-enable ppc64 (#253847) +- IgnoreExampleErrors=true + +* Tue Feb 19 2008 Fedora Release Engineering - 0.9.95-10 +- Autorebuild for GCC 4.3 + +* Tue Dec 18 2007 Rex Dieter 0.9.95-9 +- Provides: macaulay2 +- respin against new(er) factory,libfac,ntl + +* Wed Aug 22 2007 Rex Dieter 0.9.95-8 +- ExcludeArch: ppc64 (#253847) + +* Tue Aug 21 2007 Rex Dieter 0.9.95-7 +- BR: gawk + +* Tue Aug 21 2007 Rex Dieter 0.9.95-6 +- gc-7.0 patches + +* Sat Aug 11 2007 Rex Dieter 0.9.95-5 +- License: GPLv2 + +* Mon Jan 15 2007 Rex Dieter 0.9.95-4 +- Ob/Pr: Macaulay2-doc, not -docs (#222609) + +* Sat Jan 06 2007 Rex Dieter 0.9.95-3 +- re-enable ppc build (#201739) + +* Tue Jan 02 2007 Rex Dieter 0.9.95-2 +- ./configure --disable-strip, for usable -debuginfo (#220893) + +* Mon Dec 18 2006 Rex Dieter 0.9.95-1 +- Macaulay2-0.9.95 + +* Wed Nov 22 2006 Rex Dieter 0.9.20-0.5.20060808svn +- .desktop Categories: -Application,Scientific,X-Fedora +ConsoleOnly + +* Tue Aug 29 2006 Rex Dieter 0.9.20-0.4.20060808svn +- fc6 respin + +* Tue Aug 08 2006 Rex Dieter 0.9.20-0.3.20060808svn +- ExcludeArch: ppc (bug #201739) +- %%ghost (x)emacs site-lisp bits (using hints from fedora-rpmdevtools) + +* Tue Aug 08 2006 Rex Dieter 0.9.20-0.2.20060808svn +- 20060808 snapshot + +* Mon Jul 24 2006 Rex Dieter 0.9.20-0.1.20060724svn +- 2006-07-15-0.9.20 + +* Wed Jul 12 2006 Rex Dieter 0.9.10-0.6.20060710svn +- 0.9.10 + +-* Mon Jul 10 2006 Rex Dieter 0.9.8-0.6.cvs20060327 +- BR: ncurses-devel + +* Fri May 05 2006 Rex Dieter 0.9.8-0.4.cvs20060327 +- 64bit patch (#188709) + +* Wed Apr 12 2006 Rex Dieter 0.9.8-0.3.cvs20060327 +- omit x86_64, for now (#188709) + +* Tue Apr 11 2006 Rex Dieter 0.9.8-0.2.cvs20060327 +- 0.9.8 (cvs, no tarball yet) +- drop -doc subpkg (in main now) + +* Mon Apr 10 2006 Rex Dieter 0.9.2-22 +- fix icon location (#188384) + +* Thu Mar 30 2006 Rex Dieter 0.9.2-21 +- really disable %%check (fails on fc5+ anyway) + +* Fri Jan 20 2006 Rex Dieter 0.9.2-20 +- .desktop: drop Category=Development +- app icon: follow icon spec +- drop -emacs subpkg (in main now) + +* Fri Sep 16 2005 Rex Dieter - 0.9.2-19 +- disable 'make check' (fc5/buildsystem error), besides, we get a + good consistency check when M2 builds all the doc examples. + +* Wed Sep 14 2005 Rex Dieter - 0.9.2-18 +- rebuild against gc-6.6 + +* Thu May 26 2005 Michael Schwendt - 0.9.2-17 +- rebuild (build system x86_64 repository access failed for 0.9.2-16) +- fix build for GCC 4 (#156223) + +* Thu Apr 7 2005 Michael Schwendt - 0.9.2-15 +- rebuilt + +* Mon Feb 21 2005 Rex Dieter 0:0.9.2-14 +- x86_64 issues (%%_libdir -> %%_prefix/lib ) +- remove desktop_file macro usage + +* Sat Oct 23 2004 Rex Dieter 0:0.9.2-0.fdr.13 +- BR: time (again) +- omit m2_dir/setup (not needed/wanted) + +* Mon Oct 18 2004 Rex Dieter 0:0.9.2-0.fdr.12 +- actually *apply* gcc34 patch this time. + +* Mon Oct 18 2004 Rex Dieter 0:0.9.2-0.fdr.11 +- gcc34 patch + +* Fri Oct 1 2004 Rex Dieter 0:0.9.2-0.fdr.10 +- explicit BR versions for gc-devel, libfac-devel, factory-devel + +* Tue Aug 10 2004 Rex Dieter 0:0.9.2-0.fdr.9 +- BR: time + +* Thu Jun 03 2004 Rex Dieter 0:0.9.2-0.fdr.8 +- .desktop: remove Terminaloptions to be desktop agnostic +- .desktop: Categories += Education;Math;Development (Devel only + added so it shows *somewhere* in gnome menus) + +* Tue Jun 01 2004 Rex Dieter 0:0.9.2-0.fdr.7 +- disable default 'make check' (util/screen fails on fc2) + +* Tue Mar 30 2004 Rex Dieter 0:0.9.2-0.fdr.6 +- desktop-file is now on by default +- use separate (not inline) .desktop file + +* Mon Jan 05 2004 Rex Dieter 0:0.9.2-0.fdr.5 +- fix BuildRequires: desktop-file-utils to satisfy rpmlint. +- put emacs files in emacs subdir too (to follow supplied docs) +- *really* nuke .cvsignore files +- fix desktop-file-install --add-cateagories usage + +* Tue Dec 23 2003 Rex Dieter 0:0.9.2-0.fdr.4 +- -emacs: use %%defattr +- -emacs: fix M2-init.el + +* Mon Nov 17 2003 Rex Dieter 0:0.9.2-0.fdr.3 +- update/simplify macros +- desktop_file support. +- emacs subpkg. +- relax Req's on subpkgs to just: Requires: %%name = %%epoch:%%version +- use non-versioned BuildRequires +- remove redundant BuildRequires: gmp-devel +- remove gc patch, no longer needed. +- delete/not-package a bunch of unuseful files. +- use --disable-strip when debug_package is in use. + +* Thu Nov 13 2003 Rex Dieter 0:0.9.2-0.fdr.2 +- no longer explictly Requires: emacs + +* Wed Nov 05 2003 Rex Dieter 0:0.9.2-0.fdr.1 +- missing Epoch: 0 + +* Fri Sep 12 2003 Rex Dieter 0.9.2-0.fdr.0 +- fedora'ize diff --git a/Macaulay2.desktop b/com.macaulay2.macaulay2.desktop similarity index 100% rename from Macaulay2.desktop rename to com.macaulay2.macaulay2.desktop diff --git a/com.macaulay2.macaulay2.metainfo.xml b/com.macaulay2.macaulay2.metainfo.xml new file mode 100644 index 0000000..0de35f5 --- /dev/null +++ b/com.macaulay2.macaulay2.metainfo.xml @@ -0,0 +1,35 @@ + + + com.macaulay2.macaulay2 + 0BSD + GPL-2.0-only OR GPL-3.0-only + Macaulay2 + System for algebraic geometry and commutative algebra + +

+ Macaulay 2 is a software system devoted to supporting research in + algebraic geometry and commutative algebra written by Daniel R. Grayson + and Michael E. Stillman. +

+
+ com.macaulay2.macaulay2.desktop + + + https://faculty.math.illinois.edu/Macaulay2/Screenshots/texmacs.png + Macaulay2 with TeXmacs + + + https://faculty.math.illinois.edu/Macaulay2/Screenshots/emacs-M2-c.png + Macaulay2 with Emacs + + + Macaulay2-maintainers@fedoraproject.org + https://macaulay2.com/ + https://github.com/Macaulay2/M2/issues + https://groups.google.com/g/macaulay2 + + + M2 + M2-binary + +
diff --git a/factory-4.1.1.patch b/factory-4.1.1.patch deleted file mode 100644 index 81f4286..0000000 --- a/factory-4.1.1.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- factory-4.1.1/cf_factory.h.orig 2017-12-06 10:37:14.000000000 -0700 -+++ factory-4.1.1/cf_factory.h 2018-02-17 14:34:52.000000000 -0700 -@@ -15,7 +15,7 @@ - #include "variable.h" - - #include "factory/cf_gmp.h" --#include "factory/cf_assert.h" -+#include "cf_assert.h" - - class InternalCF; - class CanonicalForm; ---- factory-4.1.1/cf_switches.cc 2017-12-06 12:37:11.000000000 -0500 -+++ factory-4.1.1/cf_switches.cc 2018-06-26 11:07:29.000000000 -0400 -@@ -31,6 +31,7 @@ - // and set the default (recommended) On-values: - #ifdef HAVE_NTL - On(SW_USE_CHINREM_GCD); -+ On(SW_USE_EZGCD_P); // provided to me by Hans Schoenemann - //Off(SW_USE_NTL_SORT); - #endif - On(SW_USE_EZGCD); ---- factory-4.1.1/configure.orig 2018-02-09 07:29:54.000000000 -0700 -+++ factory-4.1.1/configure 2018-05-15 12:28:52.454714806 -0600 -@@ -5827,7 +5827,7 @@ done - ## for clang: -Wunneeded-internal-declaration - - if test "x${ENABLE_OPTIMIZATION}" != xno; then -- OPTFLAGS="-g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks" -+ OPTFLAGS="-Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks" - # -O3 - crashes gcc???!!! - # -fpermissive - ac_ext=c ---- factory-4.1.1/ftmpl_inst.cc.orig 2017-12-06 10:37:12.000000000 -0700 -+++ factory-4.1.1/ftmpl_inst.cc 2018-05-15 12:28:00.560409016 -0600 -@@ -73,7 +73,7 @@ template List Difference ( con - // NTL 6 - #ifdef HAVE_NTL - #include --#if NTL_MAJOR_VERSION == 6 -+#if NTL_MAJOR_VERSION >= 6 - - #include - #include diff --git a/flint-2.5.2.patch b/flint-2.5.2.patch deleted file mode 100644 index 50fa7dc..0000000 --- a/flint-2.5.2.patch +++ /dev/null @@ -1,280 +0,0 @@ ---- flint-2.5.2/configure.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/configure 2017-03-10 10:38:00.397968044 -0700 -@@ -434,16 +434,16 @@ if [ -z "$FLINT_LIB" ]; then - Darwin) - FLINT_LIBNAME="libflint.dylib" - FLINT_LIB="libflint-$FLINT_MAJOR.$FLINT_MINOR.$FLINT_PATCH.dylib" -- EXTRA_SHARED_FLAGS="-install_name $PREFIX/lib/$FLINT_LIB -compatibility_version $FLINT_MAJOR.$FLINT_MINOR -current_version $FLINT_MAJOR.$FLINT_MINOR.$FLINT_PATCH -Wl,-rpath,$GMP_LIB_DIR -Wl,-rpath,$MPFR_LIB_DIR";; -+ EXTRA_SHARED_FLAGS="-install_name $PREFIX/lib/$FLINT_LIB -compatibility_version $FLINT_MAJOR.$FLINT_MINOR -current_version $FLINT_MAJOR.$FLINT_MINOR.$FLINT_PATCH";; - CYGWIN* | MINGW*) - FLINT_LIBNAME="libflint.dll" - FLINT_LIB="libflint-$FLINT_MAJOR.dll" -- EXTRA_SHARED_FLAGS="-static-libgcc -shared -Wl,--export-all-symbols -Wl,-soname,libflint-$FLINT_MAJOR.dll.$FLINT_MINOR.$FLINT_PATCH -Wl,-rpath,$GMP_LIB_DIR -Wl,-rpath,$MPFR_LIB_DIR" -+ EXTRA_SHARED_FLAGS="-static-libgcc -shared -Wl,--export-all-symbols -Wl,-soname,libflint-$FLINT_MAJOR.dll.$FLINT_MINOR.$FLINT_PATCH" - FLINT_DLL=1;; - *) - FLINT_LIBNAME="libflint.so" - FLINT_LIB="libflint.so.$FLINT_MAJOR.$FLINT_MINOR.$FLINT_PATCH" -- EXTRA_SHARED_FLAGS="-Wl,-soname,libflint.so.$FLINT_MAJOR -Wl,-rpath,$GMP_LIB_DIR -Wl,-rpath,$MPFR_LIB_DIR" -+ EXTRA_SHARED_FLAGS="-Wl,-soname,libflint.so.$FLINT_MAJOR" - FLINT_SOLIB=1 - esac - fi ---- flint-2.5.2/d_mat/gso.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/d_mat/gso.c 2015-09-23 21:24:08.367946615 -0600 -@@ -84,7 +84,9 @@ d_mat_gso(d_mat_t B, const d_mat_t A) - flag = 0; - if (s < t) - { -- if (s * D_EPS == 0) -+ double u = s * D_EPS; -+ -+ if (u > -1.0e-308 && u < 1.0e-308) - s = 0; - else - flag = 1; ---- flint-2.5.2/d_mat/qr.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/d_mat/qr.c 2015-09-23 21:24:16.687286447 -0600 -@@ -92,8 +92,10 @@ d_mat_qr(d_mat_t Q, d_mat_t R, const d_m - flag = 0; - if (s < t) - { -+ double u = s * D_EPS; -+ - orig = 0; -- if (s * D_EPS == 0) -+ if (u > -1.0e-308 && u < 1.0e-308) - s = 0; - else - flag = 1; ---- flint-2.5.2/fmpz/get_d_2exp.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/fmpz/get_d_2exp.c 2017-03-10 10:36:40.122534392 -0700 -@@ -52,9 +52,14 @@ fmpz_get_d_2exp(slong *exp, const fmpz_t - return __gmpn_get_d((mp_limb_t *) &d, WORD(1), WORD(1), -*exp); - } - else -+ { - #if defined(__MPIR_VERSION) - return mpz_get_d_2exp(exp, COEFF_TO_PTR(d)); - #else -- return mpz_get_d_2exp((long *) exp, COEFF_TO_PTR(d)); -+ long exp2; -+ double m = mpz_get_d_2exp(&exp2, COEFF_TO_PTR(d)); -+ *exp = exp2; -+ return m; - #endif -+ } - } ---- flint-2.5.2/fmpz_mod_poly_factor/inlines.c.orig 2017-03-10 10:36:40.137534286 -0700 -+++ flint-2.5.2/fmpz_mod_poly_factor/inlines.c 2017-03-10 10:36:40.137534286 -0700 -@@ -0,0 +1,41 @@ -+/*============================================================================= -+ -+ This file is part of FLINT. -+ -+ FLINT is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ FLINT is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with FLINT; if not, write to the Free Software -+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ -+=============================================================================*/ -+/****************************************************************************** -+ -+ Copyright (C) 2015 Tommy Hofmann -+ -+******************************************************************************/ -+ -+#define FMPZ_MOD_POLY_FACTOR_INLINES_C -+ -+#define ulong ulongxx /* interferes with system includes */ -+#include -+#include -+#undef ulong -+#include -+#include "flint.h" -+#include "ulong_extras.h" -+#include "fmpz_mod_poly.h" -+ -+void fmpz_mod_poly_factor_get_fmpz_mod_poly(fmpz_mod_poly_t z, fmpz_mod_poly_factor_t fac, slong i) -+{ -+ fmpz_mod_poly_set(z, fac->poly + i); -+} -+ ---- flint-2.5.2/fmpz_poly/pseudo_divrem_basecase.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/fmpz_poly/pseudo_divrem_basecase.c 2017-03-10 10:36:40.137534286 -0700 -@@ -49,7 +49,7 @@ _fmpz_poly_pseudo_divrem_basecase(fmpz * - - while (iR >= lenB - 1) - { -- if (inv) -+ if (inv != NULL) - fmpz_fdiv_qr_preinvn(Q + iQ, rem, R + iR, leadB, inv); - else - fmpz_fdiv_qr(Q + iQ, rem, R + iR, leadB); ---- flint-2.5.2/fmpz/popcnt.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/fmpz/popcnt.c 2018-05-01 21:07:11.375129225 -0600 -@@ -25,6 +25,53 @@ static __inline__ mp_bitcnt_t shortCount - } - #endif - -+#ifdef __x86_64__ -+#include -+ -+static mp_bitcnt_t slow_fmpz_popcnt(const fmpz_t c) -+{ -+ fmpz c1; -+ c1 = *c; -+ if(!COEFF_IS_MPZ(c1)) -+ { -+ if(*c < 0) return 0; -+ else return __builtin_popcountl(*c); -+ } else -+ { -+ __mpz_struct *t = COEFF_TO_PTR(c1); -+ if(flint_mpz_cmp_si(t,0) < 0) return 0; -+ else return mpz_popcount(t); -+ } -+} -+ -+static mp_bitcnt_t __attribute__((target ("popcnt"))) -+fast_fmpz_popcnt(const fmpz_t c) -+{ -+ fmpz c1; -+ c1 = *c; -+ if(!COEFF_IS_MPZ(c1)) -+ { -+ if(*c < 0) return 0; -+ else return __builtin_popcountl(*c); -+ } else -+ { -+ __mpz_struct *t = COEFF_TO_PTR(c1); -+ if(flint_mpz_cmp_si(t,0) < 0) return 0; -+ else return mpz_popcount(t); -+ } -+} -+ -+static mp_bitcnt_t (*resolve_fmpz_popcnt(void))(const fmpz_t c) { -+ unsigned int eax, ebx, ecx, edx; -+ return (__get_cpuid(1, &eax, &ebx, &ecx, &edx) && -+ (ecx & bit_POPCNT) != 0) -+ ? &fast_fmpz_popcnt -+ : &slow_fmpz_popcnt; -+} -+ -+mp_bitcnt_t __attribute__((ifunc ("resolve_fmpz_popcnt"))) -+fmpz_popcnt(const fmpz_t c); -+#else - mp_bitcnt_t fmpz_popcnt(const fmpz_t c) - { - fmpz c1; -@@ -40,3 +87,4 @@ mp_bitcnt_t fmpz_popcnt(const fmpz_t c) - else return mpz_popcount(t); - } - } -+#endif ---- flint-2.5.2/fq_poly_templates/get_str_pretty.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/fq_poly_templates/get_str_pretty.c 2017-03-10 10:36:40.138534279 -0700 -@@ -87,16 +87,16 @@ char *_TEMPLATE(T, poly_get_str_pretty) - continue; - if (!TEMPLATE(T, is_one) (poly + i, ctx)) - { -- off += flint_sprintf(str + off, "+(%s)", coeffstrs[i]); -+ off += flint_sprintf(str + off, "+(%s)*", coeffstrs[i]); - } - else - { - off += flint_sprintf(str + off, "+"); - } - if (i > 1) -- off += flint_sprintf(str + off, "*%s^%wd", x, i); -+ off += flint_sprintf(str + off, "%s^%wd", x, i); - else -- off += flint_sprintf(str + off, "*%s", x); -+ off += flint_sprintf(str + off, "%s", x); - } - - if (!TEMPLATE(T, is_zero) (poly + i, ctx)) ---- flint-2.5.2/Makefile.in.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/Makefile.in 2017-03-10 10:38:48.091631580 -0700 -@@ -86,7 +86,7 @@ dist: - profile: library $(PROF_SOURCES) $(EXT_PROF_SOURCES) build/profiler.o - mkdir -p build/profile - ifndef MOD -- $(AT)$(foreach prog, $(PROFS), $(CC) $(CFLAGS) -std=gnu99 $(INCS) $(prog).c build/profiler.o -o build/$(prog) $(LIBS) || exit $$?;) -+ $(AT)$(foreach prog, $(PROFS), $(CC) $(CFLAGS) -std=gnu99 $(INCS) $(prog).c build/profiler.o -o build/$(prog) $(LDFLAGS) $(LIBS) || exit $$?;) - $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/profile; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) profile || exit $$?;) - $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(filter-out %templates, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h))), mkdir -p build/$(dir)/profile; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) profile || exit $$?;)) - else -@@ -95,14 +95,14 @@ endif - - tune: library $(TUNE_SOURCES) $(EXT_TUNE_SOURCES) - mkdir -p build/tune -- $(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;) -+ $(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LDFLAGS) $(LIBS) || exit $$?;) - $(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/tune; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) tune || exit $$?;) - $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/tune; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) tune || exit $$?;)) - - examples: library $(EXMP_SOURCES) $(EXT_EXMP_SOURCES) $(EXT_HEADERS) - mkdir -p build/examples -- $(AT)$(foreach prog, $(EXMPS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;) -- $(AT)$(foreach ext, $(EXTENSIONS), $(foreach prog, $(patsubst $(ext)/examples/%.c, %, $(wildcard $(ext)/examples/*.c)), $(CC) $(CFLAGS) $(INCS) $(ext)/examples/$(prog).c -o build/examples/$(prog) $(LIBS) || exit $$?;)) -+ $(AT)$(foreach prog, $(EXMPS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LDFLAGS) $(LIBS) || exit $$?;) -+ $(AT)$(foreach ext, $(EXTENSIONS), $(foreach prog, $(patsubst $(ext)/examples/%.c, %, $(wildcard $(ext)/examples/*.c)), $(CC) $(CFLAGS) $(INCS) $(ext)/examples/$(prog).c -o build/examples/$(prog) $(LDFLAGS) $(LIBS) || exit $$?;)) - - $(FLINT_LIB): $(LOBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces - $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(filter-out %templates, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h))), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) shared || exit $$?;)) -@@ -227,7 +227,7 @@ build/%.o: %.c $(HEADERS) | build - $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@; - - build/test/%$(EXEEXT): test/%.c $(HEADERS) | build/test -- $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< -o $@ $(LIBS) -+ $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< -o $@ $(LDFLAGS) $(LIBS) - - build/test: - mkdir -p build/test -@@ -242,7 +242,7 @@ build/interfaces/NTL-interface.o: interf - $(QUIET_CXX) $(CXX) $(CXXFLAGS) $(INCS) -c $< -o $@ - - build/interfaces/test/t-NTL-interface$(EXEEXT): interfaces/test/t-NTL-interface.cpp build/interfaces/NTL-interface.o -- $(QUIET_CXX) $(CXX) $(CXXFLAGS) $(INCS) $< build/interfaces/NTL-interface.o -o $@ $(LIBS) -+ $(QUIET_CXX) $(CXX) $(CXXFLAGS) $(INCS) $< build/interfaces/NTL-interface.o -o $@ $(LDFLAGS) $(LIBS) - - print-%: - @echo '$*=$($*)' ---- flint-2.5.2/Makefile.subdirs.orig 2015-08-13 10:16:22.000000000 -0600 -+++ flint-2.5.2/Makefile.subdirs 2017-03-10 10:38:48.092631573 -0700 -@@ -48,10 +48,10 @@ profile: $(PROFS) - -include $(patsubst %, %.d, $(PROFS)) - - $(BUILD_DIR)/profile/%$(EXEEXT): profile/%.c $(BUILD_DIR)/../profiler.o -- $(QUIET_CC) $(CC) $(CFLAGS) -std=gnu99 $(INCS) $< $(BUILD_DIR)/../profiler.o -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" -+ $(QUIET_CC) $(CC) $(CFLAGS) -std=gnu99 $(INCS) $< $(BUILD_DIR)/../profiler.o -o $@ $(LDFLAGS) $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" - - tune: $(TUNE_SOURCES) $(HEADERS) -- $(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o $(BUILD_DIR)/$(prog) $(LIBS) || exit $$?;) -+ $(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o $(BUILD_DIR)/$(prog) $(LDFLAGS) $(LIBS) || exit $$?;) - - -include $(OBJS:.o=.d) - -@@ -82,10 +82,10 @@ $(BUILD_DIR)/test/%$(EXEEXT): $(BUILD_DI - endif - - $(BUILD_DIR)/test/%$(EXEEXT): test/%.c $(BUILD_DIR)/../../test_helpers.o -- $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< $(BUILD_DIR)/../../test_helpers.o -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" -+ $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< $(BUILD_DIR)/../../test_helpers.o -o $@ $(LDFLAGS) $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" - - $(BUILD_DIR)/test/%$(EXEEXT): test/%.cpp $(BUILD_DIR)/../../test_helpers.o -- $(QUIET_CC) $(CXX) $(CFLAGS) $(INCS) $< $(BUILD_DIR)/../../test_helpers.o -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" -+ $(QUIET_CC) $(CXX) $(CFLAGS) $(INCS) $< $(BUILD_DIR)/../../test_helpers.o -o $@ $(LDFLAGS) $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d" - - %_RUN: % - @$< diff --git a/mpfr-3.1.6.patch b/mpfr-3.1.6.patch deleted file mode 100644 index 91277b9..0000000 --- a/mpfr-3.1.6.patch +++ /dev/null @@ -1,399 +0,0 @@ -Upstream mpfr 3.1.6 patches, fetched on 7-Aug-2018 from -http://www.mpfr.org/mpfr-3.1.6/allpatches, then modified slightly because the -Macaulay2 library makefile applies patches with -p0. -diff -Naurd mpfr-3.1.6.orig/PATCHES mpfr-3.1.6/PATCHES ---- mpfr-3.1.6.orig/PATCHES 2017-10-26 13:55:51.168013439 +0000 -+++ mpfr-3.1.6/PATCHES 2017-10-26 13:55:51.236013121 +0000 -@@ -0,0 +1 @@ -+mpfr_get -diff -Naurd mpfr-3.1.6.orig/VERSION mpfr-3.1.6/VERSION ---- mpfr-3.1.6.orig/VERSION 2017-09-07 11:36:44.000000000 +0000 -+++ mpfr-3.1.6/VERSION 2017-10-26 13:55:51.236013121 +0000 -@@ -1 +1 @@ --3.1.6 -+3.1.6-p1 -diff -Naurd mpfr-3.1.6.orig/src/get_ld.c mpfr-3.1.6/src/get_ld.c ---- mpfr-3.1.6.orig/src/get_ld.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_ld.c 2017-10-26 13:55:51.208013252 +0000 -@@ -41,6 +41,9 @@ - mpfr_exp_t sh; /* exponent shift, so that x/2^sh is in the double range */ - mpfr_t y, z; - int sign; -+ MPFR_SAVE_EXPO_DECL (expo); -+ -+ MPFR_SAVE_EXPO_MARK (expo); - - /* first round x to the target long double precision, so that - all subsequent operations are exact (this avoids double rounding -@@ -103,6 +106,7 @@ - } - if (sign < 0) - r = -r; -+ MPFR_SAVE_EXPO_FREE (expo); - return r; - } - } -diff -Naurd mpfr-3.1.6.orig/src/get_si.c mpfr-3.1.6/src/get_si.c ---- mpfr-3.1.6.orig/src/get_si.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_si.c 2017-10-26 13:55:51.208013252 +0000 -@@ -28,6 +28,7 @@ - mpfr_prec_t prec; - long s; - mpfr_t x; -+ MPFR_SAVE_EXPO_DECL (expo); - - if (MPFR_UNLIKELY (!mpfr_fits_slong_p (f, rnd))) - { -@@ -39,14 +40,22 @@ - if (MPFR_IS_ZERO (f)) - return (long) 0; - -- /* determine prec of long */ -- for (s = LONG_MIN, prec = 0; s != 0; s /= 2, prec++) -+ /* Determine the precision of long. |LONG_MIN| may have one more bit -+ as an integer, but in this case, this is a power of 2, thus fits -+ in a precision-prec floating-point number. */ -+ for (s = LONG_MAX, prec = 0; s != 0; s /= 2, prec++) - { } - -+ MPFR_SAVE_EXPO_MARK (expo); -+ - /* first round to prec bits */ - mpfr_init2 (x, prec); - mpfr_rint (x, f, rnd); - -+ /* The flags from mpfr_rint are the wanted ones. In particular, -+ it sets the inexact flag when necessary. */ -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); -+ - /* warning: if x=0, taking its exponent is illegal */ - if (MPFR_UNLIKELY (MPFR_IS_ZERO(x))) - s = 0; -@@ -65,5 +74,7 @@ - - mpfr_clear (x); - -+ MPFR_SAVE_EXPO_FREE (expo); -+ - return s; - } -diff -Naurd mpfr-3.1.6.orig/src/get_sj.c mpfr-3.1.6/src/get_sj.c ---- mpfr-3.1.6.orig/src/get_sj.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_sj.c 2017-10-26 13:55:51.208013252 +0000 -@@ -35,6 +35,7 @@ - intmax_t r; - mpfr_prec_t prec; - mpfr_t x; -+ MPFR_SAVE_EXPO_DECL (expo); - - if (MPFR_UNLIKELY (!mpfr_fits_intmax_p (f, rnd))) - { -@@ -46,20 +47,24 @@ - if (MPFR_IS_ZERO (f)) - return (intmax_t) 0; - -- /* determine the precision of intmax_t */ -- for (r = MPFR_INTMAX_MIN, prec = 0; r != 0; r /= 2, prec++) -+ /* Determine the precision of intmax_t. |INTMAX_MIN| may have one -+ more bit as an integer, but in this case, this is a power of 2, -+ thus fits in a precision-prec floating-point number. */ -+ for (r = MPFR_INTMAX_MAX, prec = 0; r != 0; r /= 2, prec++) - { } -- /* Note: though INTMAX_MAX would have been sufficient for the conversion, -- we chose INTMAX_MIN so that INTMAX_MIN - 1 is always representable in -- precision prec; this is useful to detect overflows in MPFR_RNDZ (will -- be needed later). */ - -- /* Now, r = 0. */ -+ MPFR_ASSERTD (r == 0); -+ -+ MPFR_SAVE_EXPO_MARK (expo); - - mpfr_init2 (x, prec); - mpfr_rint (x, f, rnd); - MPFR_ASSERTN (MPFR_IS_FP (x)); - -+ /* The flags from mpfr_rint are the wanted ones. In particular, -+ it sets the inexact flag when necessary. */ -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); -+ - if (MPFR_NOTZERO (x)) - { - mp_limb_t *xp; -@@ -67,15 +72,15 @@ - - xp = MPFR_MANT (x); - sh = MPFR_GET_EXP (x); -- MPFR_ASSERTN ((mpfr_prec_t) sh <= prec); -+ MPFR_ASSERTN ((mpfr_prec_t) sh <= prec + 1); - if (MPFR_INTMAX_MIN + MPFR_INTMAX_MAX != 0 -- && MPFR_UNLIKELY ((mpfr_prec_t) sh == prec)) -+ && MPFR_UNLIKELY ((mpfr_prec_t) sh > prec)) - { - /* 2's complement and x <= INTMAX_MIN: in the case mp_limb_t - has the same size as intmax_t, we cannot use the code in - the for loop since the operations would be performed in - unsigned arithmetic. */ -- MPFR_ASSERTN (MPFR_IS_NEG (x) && (mpfr_powerof2_raw (x))); -+ MPFR_ASSERTN (MPFR_IS_NEG (x) && mpfr_powerof2_raw (x)); - r = MPFR_INTMAX_MIN; - } - else if (MPFR_IS_POS (x)) -@@ -117,6 +122,8 @@ - - mpfr_clear (x); - -+ MPFR_SAVE_EXPO_FREE (expo); -+ - return r; - } - -diff -Naurd mpfr-3.1.6.orig/src/get_ui.c mpfr-3.1.6/src/get_ui.c ---- mpfr-3.1.6.orig/src/get_ui.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_ui.c 2017-10-26 13:55:51.208013252 +0000 -@@ -30,6 +30,7 @@ - mpfr_t x; - mp_size_t n; - mpfr_exp_t exp; -+ MPFR_SAVE_EXPO_DECL (expo); - - if (MPFR_UNLIKELY (!mpfr_fits_ulong_p (f, rnd))) - { -@@ -44,10 +45,16 @@ - for (s = ULONG_MAX, prec = 0; s != 0; s /= 2, prec ++) - { } - -+ MPFR_SAVE_EXPO_MARK (expo); -+ - /* first round to prec bits */ - mpfr_init2 (x, prec); - mpfr_rint (x, f, rnd); - -+ /* The flags from mpfr_rint are the wanted ones. In particular, -+ it sets the inexact flag when necessary. */ -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); -+ - /* warning: if x=0, taking its exponent is illegal */ - if (MPFR_IS_ZERO(x)) - s = 0; -@@ -61,5 +68,7 @@ - - mpfr_clear (x); - -+ MPFR_SAVE_EXPO_FREE (expo); -+ - return s; - } -diff -Naurd mpfr-3.1.6.orig/src/get_uj.c mpfr-3.1.6/src/get_uj.c ---- mpfr-3.1.6.orig/src/get_uj.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_uj.c 2017-10-26 13:55:51.208013252 +0000 -@@ -35,6 +35,7 @@ - uintmax_t r; - mpfr_prec_t prec; - mpfr_t x; -+ MPFR_SAVE_EXPO_DECL (expo); - - if (MPFR_UNLIKELY (!mpfr_fits_uintmax_p (f, rnd))) - { -@@ -50,12 +51,18 @@ - for (r = MPFR_UINTMAX_MAX, prec = 0; r != 0; r /= 2, prec++) - { } - -- /* Now, r = 0. */ -+ MPFR_ASSERTD (r == 0); -+ -+ MPFR_SAVE_EXPO_MARK (expo); - - mpfr_init2 (x, prec); - mpfr_rint (x, f, rnd); - MPFR_ASSERTN (MPFR_IS_FP (x)); - -+ /* The flags from mpfr_rint are the wanted ones. In particular, -+ it sets the inexact flag when necessary. */ -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); -+ - if (MPFR_NOTZERO (x)) - { - mp_limb_t *xp; -@@ -76,6 +83,8 @@ - - mpfr_clear (x); - -+ MPFR_SAVE_EXPO_FREE (expo); -+ - return r; - } - -diff -Naurd mpfr-3.1.6.orig/src/get_z.c mpfr-3.1.6/src/get_z.c ---- mpfr-3.1.6.orig/src/get_z.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/get_z.c 2017-10-26 13:55:51.208013252 +0000 -@@ -29,6 +29,7 @@ - int inex; - mpfr_t r; - mpfr_exp_t exp; -+ MPFR_SAVE_EXPO_DECL (expo); - - if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) - { -@@ -41,6 +42,8 @@ - return 0; - } - -+ MPFR_SAVE_EXPO_MARK (expo); -+ - exp = MPFR_GET_EXP (f); - /* if exp <= 0, then |f|<1, thus |o(f)|<=1 */ - MPFR_ASSERTN (exp < 0 || exp <= MPFR_PREC_MAX); -@@ -50,6 +53,11 @@ - MPFR_ASSERTN (inex != 1 && inex != -1); /* integral part of f is - representable in r */ - MPFR_ASSERTN (MPFR_IS_FP (r)); -+ -+ /* The flags from mpfr_rint are the wanted ones. In particular, -+ it sets the inexact flag when necessary. */ -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); -+ - exp = mpfr_get_z_2exp (z, r); - if (exp >= 0) - mpz_mul_2exp (z, z, exp); -@@ -57,5 +65,7 @@ - mpz_fdiv_q_2exp (z, z, -exp); - mpfr_clear (r); - -+ MPFR_SAVE_EXPO_FREE (expo); -+ - return inex; - } -diff -Naurd mpfr-3.1.6.orig/src/mpfr.h mpfr-3.1.6/src/mpfr.h ---- mpfr-3.1.6.orig/src/mpfr.h 2017-09-07 11:36:44.000000000 +0000 -+++ mpfr-3.1.6/src/mpfr.h 2017-10-26 13:55:51.232013138 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 6 --#define MPFR_VERSION_STRING "3.1.6" -+#define MPFR_VERSION_STRING "3.1.6-p1" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.6.orig/src/version.c mpfr-3.1.6/src/version.c ---- mpfr-3.1.6.orig/src/version.c 2017-09-07 11:36:44.000000000 +0000 -+++ mpfr-3.1.6/src/version.c 2017-10-26 13:55:51.232013138 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.6"; -+ return "3.1.6-p1"; - } -diff -Naurd mpfr-3.1.6.orig/PATCHES mpfr-3.1.6/PATCHES ---- mpfr-3.1.6.orig/PATCHES 2017-12-15 12:37:44.074256548 +0000 -+++ mpfr-3.1.6/PATCHES 2017-12-15 12:37:44.146256304 +0000 -@@ -0,0 +1 @@ -+root -diff -Naurd mpfr-3.1.6.orig/VERSION mpfr-3.1.6/VERSION ---- mpfr-3.1.6.orig/VERSION 2017-10-26 13:55:51.236013121 +0000 -+++ mpfr-3.1.6/VERSION 2017-12-15 12:37:44.142256319 +0000 -@@ -1 +1 @@ --3.1.6-p1 -+3.1.6-p2 -diff -Naurd mpfr-3.1.6.orig/src/mpfr.h mpfr-3.1.6/src/mpfr.h ---- mpfr-3.1.6.orig/src/mpfr.h 2017-10-26 13:55:51.232013138 +0000 -+++ mpfr-3.1.6/src/mpfr.h 2017-12-15 12:37:44.142256319 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 6 --#define MPFR_VERSION_STRING "3.1.6-p1" -+#define MPFR_VERSION_STRING "3.1.6-p2" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.6.orig/src/root.c mpfr-3.1.6/src/root.c ---- mpfr-3.1.6.orig/src/root.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/src/root.c 2017-12-15 12:37:44.118256398 +0000 -@@ -107,6 +107,11 @@ - MPFR_RET_NAN; - } - -+ /* Special case |x| = 1. Note that if x = -1, then k is odd -+ (NaN results have already been filtered), so that y = -1. */ -+ if (mpfr_cmpabs (x, __gmpfr_one) == 0) -+ return mpfr_set (y, x, rnd_mode); -+ - /* General case */ - - /* For large k, use exp(log(x)/k). The threshold of 100 seems to be quite -@@ -188,6 +193,14 @@ - Assume all special cases have been eliminated before. - In the extended exponent range, overflows/underflows are not possible. - Assume x > 0, or x < 0 and k odd. -+ Also assume |x| <> 1 because log(1) = 0, which does not have an exponent -+ and would yield a failure in the error bound computation. A priori, this -+ constraint is quite artificial because if |x| is close enough to 1, then -+ the exponent of log|x| does not need to be used (in the code, err would -+ be 1 in such a domain). So this constraint |x| <> 1 could be avoided in -+ the code. However, this is an exact case easy to detect, so that such a -+ change would be useless. Values very close to 1 are not an issue, since -+ an underflow is not possible before the MPFR_GET_EXP. - */ - static int - mpfr_root_aux (mpfr_ptr y, mpfr_srcptr x, unsigned long k, mpfr_rnd_t rnd_mode) -@@ -219,7 +232,8 @@ - mpfr_log (t, absx, MPFR_RNDN); - /* t = log|x| * (1 + theta) with |theta| <= 2^(-w) */ - mpfr_div_ui (t, t, k, MPFR_RNDN); -- expt = MPFR_GET_EXP (t); -+ /* No possible underflow in mpfr_log and mpfr_div_ui. */ -+ expt = MPFR_GET_EXP (t); /* assumes t <> 0 */ - /* t = log|x|/k * (1 + theta) + eps with |theta| <= 2^(-w) - and |eps| <= 1/2 ulp(t), thus the total error is bounded - by 1.5 * 2^(expt - w) */ -diff -Naurd mpfr-3.1.6.orig/src/version.c mpfr-3.1.6/src/version.c ---- mpfr-3.1.6.orig/src/version.c 2017-10-26 13:55:51.232013138 +0000 -+++ mpfr-3.1.6/src/version.c 2017-12-15 12:37:44.142256319 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.6-p1"; -+ return "3.1.6-p2"; - } -diff -Naurd mpfr-3.1.6.orig/tests/troot.c mpfr-3.1.6/tests/troot.c ---- mpfr-3.1.6.orig/tests/troot.c 2017-01-01 01:39:09.000000000 +0000 -+++ mpfr-3.1.6/tests/troot.c 2017-12-15 12:37:44.118256398 +0000 -@@ -405,6 +405,26 @@ - mpfr_clears (x, y1, y2, (mpfr_ptr) 0); - } - -+static void -+bug20171214 (void) -+{ -+ mpfr_t x, y; -+ int inex; -+ -+ mpfr_init2 (x, 805); -+ mpfr_init2 (y, 837); -+ mpfr_set_ui (x, 1, MPFR_RNDN); -+ inex = mpfr_root (y, x, 120, MPFR_RNDN); -+ MPFR_ASSERTN (inex == 0); -+ MPFR_ASSERTN (mpfr_cmp_ui (y, 1) == 0); -+ mpfr_set_si (x, -1, MPFR_RNDN); -+ inex = mpfr_root (y, x, 121, MPFR_RNDN); -+ MPFR_ASSERTN (inex == 0); -+ MPFR_ASSERTN (mpfr_cmp_si (y, -1) == 0); -+ mpfr_clear (x); -+ mpfr_clear (y); -+} -+ - int - main (void) - { -@@ -415,6 +435,7 @@ - - tests_start_mpfr (); - -+ bug20171214 (); - exact_powers (3, 1000); - special (); - bigint (); diff --git a/sources b/sources index 6101e98..96f74cc 100644 --- a/sources +++ b/sources @@ -1,15 +1,21 @@ SHA512 (Macaulay2-icons.tar.xz) = 069aa0ad70a0253583b00091c094da9b79d2a2f0f2d38aa97f543081f5df5fd3b5a9e1463febd6947c3151cf01844133174c7372f57e158c2d3faba6baed5d1d -SHA512 (version-1.12.0.1.tar.gz) = 7cf03d749b6f2ef054f6cdfb298b28addc98fbed199b61f48b69bc18fba6155016f6be988372650d1d3e737e77c161f6952593c6589d29b8df4e01990c5a2f8a -SHA512 (4ti2-1.6.7.tar.gz) = da6630e39b62672cfc11531832cf8e43bb6c824d67fd211fd93daa3fc02b014c745497b4be11b2dc147c8dd57a0041c9ee370e0414dd08b3f4cb360c46741b0a -SHA512 (cohomCalg-031b.zip) = 20c362e2a5485b3e102b87c6c12779d60516af1dd71a3893fbdd891ad703dcb6e69d120558d54b9bb8fec635f92bd8e51baf0b564afbb2a09a4934779395070d -SHA512 (factory-4.1.1.tar.gz) = f08d74cb860145c07b9f1cc0a3fe44cb6fb2fc158a9b992f0db55eeef9e93d280cf66a5c8822236389e54b8084d2a37c174b32864e4dc12b8ee3c4760e9fe2bf -SHA512 (flint-2.5.2.tar.gz) = cce36947b558aabecaf780171b4bbc0e1330c3b1a7e3580717584be5cab4991d33b190531c7995b224a3a440e28c4a610d6f781901e29f48ced12a9c5ba960a2 +SHA512 (Macaulay2-1.25.11.tar.gz) = 7ae9ced76fa17e37715165976348b0e93793a6fc9d6f6f46af4f54513e2e81be648d3f462d403af373dd7cc62a675a2f3c946b70668f9cabbe7b379e3b42adff +SHA512 (4ti2-1.6.13.tar.gz) = 3e6335e5e539594d121e8b38972e6d4e3aec51f8b6b617ae308200142c8f79407d5b64e7ef246aa47ee2b7cf4006647a860ea7e2fd498ca34d001470ec06b2f8 +SHA512 (cddlib-094m.tar.gz) = d140d57391b1c963d68ca2e344fbda723a5077004bace322a18362fdc1fff8b50fdc4b598ca8cdf131158e07afc96c5d9aafd7abde082a9e241701e403310b9f +SHA512 (cohomCalg-0.32.tar.gz) = b76d8de00b13a8fe8881222178247c5e99c15075c46290830f6c3afffb9dfc18af0d57f738ac5a0d7c00044db81b4465d1e0563c95f7f656a2440be5765c6818 +SHA512 (Csdp-6.2.0.tgz) = 6f6c44abcb7b0e277f5a42a1e31acbd41c8fbdce0c1641982a48199fe1d922b28d86433d1a98ac71ae521bea04188a830c441db1e9d8eebf174debf501430e82 +SHA512 (factory-4.4.1.tar.gz) = a6ebed7cc0dea06a40c596f8845194633b6175670119afc11cb93269940ff6866a270549b9796929c1cc216645d01386ddea455a07d9ea033ce937baa4a05dfe +SHA512 (flint-3.3.1.tar.gz) = c426655868fd104c7c9fb95ba1ed199f63168cfda6f2379ba7f249344fee32660a095f20ecf11666f47ee0c59e350213e16706ce13eb6c3cb41967f1eec81166 +SHA512 (fplll-5.5.0.tar.gz) = ffeeeb55c2e4dccb9c7fd2753e49fa3514ae0c88a119131fa6281b213566813c481f95befe0acde344c8c032d8341ef1ec074cd66b130de4f8b8f6eb20f40613 +SHA512 (frobby_v0.9.5.tar.gz) = 321da2c83ddd1e1364a2e97cdf69c9b7bc6d2a59583aeab93526030151222049bb7b7e32287e7575cab4d0d22593a92a1f926092b1ed8f9da6b4d68118371bdb SHA512 (gfan0.6.2.tar.gz) = 08a9cc543967771af959a506b79db5b55e0e4942e4170dad8691db35ef7d381d878e1ea6534a3cacc0f5d30ec31564ec94cc20b46792d06f18a3a8a3c0aac91d -SHA512 (givaro-4.0.2.tar.gz) = 8338a8e348c04be08e59fe9744febd918d4913a831ff0b7dba0577fd639dbfde802f15e90f10d42ddf6c544117f4d256bdc8c51996afbbee6c314c1537d165f6 -SHA512 (gtest-1.8.0.tar.gz) = 54da3f3884685f0ff17fb12236063f32eeb78a4305883b1b2010818ec19c8e8221f2ee62fda21ba1b9d4c9d07cc5ac9eba688e4bcad30782897d5ba2417a19c3 -SHA512 (lapack-3.6.0.tgz) = de2845f4185f70392e365bf33cbc53635d8990e9f453c8b69124d8941fbec4c9c74284a297fbb6ddfae0be0e5da08469f776c4b5d03e38395966dcb1d0013670 -SHA512 (libfplll-5.2.0.tar.gz) = 67d1a8deb92d3f9245983b09b7593b19c5d43c8fe77cfea893ea9dfb744bcb77b7239d73e4f619450cc6960f4c48fb1c6ba46268208b0f31f855cf1af6bfaa29 -SHA512 (lrslib-062.tar.gz) = 78fa6d470b2dd9cb06d1d15023debd8fafc27ed4df93cd90ef746071755f6b1fe9ee2c6a24659030b9a8851bd3ee3a699407586d320f3760c3d8a3a1c79d7116 -SHA512 (mpfr-3.1.6.tar.xz) = 746ee74d5026f267f74ab352d850ed30ff627d530aa840c71b24793e44875f8503946bd7399905dea2b2dd5744326254d7889337fe94cfe58d03c4066e9d8054 -SHA512 (normaliz-3.3.0.tar.gz) = 6a65e240a482f037cc3d5751e5cec017b4f6b88fdeac0a4535a7b43b23118fa077252013ab76fda38781babbc04daddd967656ea07908643e2886e7446d28711 -SHA512 (TOPCOM-0.17.8.tar.gz) = 8611e8bd36eda00646fb40794435f23e6af81ecbee93c40e8fe5f73905e673e6244cb0f8cc1fe5c29050e40c7d53a44c615c60cbbecc8452b3c85f1d8a816d7a +SHA512 (givaro-4.2.1.tar.gz) = 9ab55e19d6c205832ddb8f712691b79ea7ae796848fb2cb73ff8fcd2fd3ce06ec0d2b86c3e1ba4a0b9992156777524b26e754615d7b9809daeab9ff284be5885 +SHA512 (glpk-5.0.tar.gz) = 36bcba534ed69b0f5328f4626018359efe07f802322c0821db75c7d1935f760af8cb907189d7d7c5b2f134a8b6214ae747ca004acc4c5ceccf157f6fc311523d +SHA512 (linbox-1.7.1.tar.gz) = f13f607c4e7c4b6eb569d03007b96bc6ab4d57f520cfa557fda71c62eec43e23c24260c7495dbed9c39ddff18674c22eb72e43cff43fe7d0396f848f19df7595 +SHA512 (lrslib-073.tar.gz) = f5d283c3c9bcc8ea83c1f6a0ce184202ccd0818987caaa7cf32fe8287cf8277802587f5001dc44878658c962c48fe6ae1250e9a522bb2bf0fa1d0ca8b84e1b9a +SHA512 (M2-emacs-5249684.tar.gz) = 11c59430232e206b70042f0d365174a80f613ac528c18275cafaf28db32c06be7afe535ee61b10810caa7b5a21023abb0bd0ce30ee2e31fcf56565c20551d8df +SHA512 (mpfr-4.2.2.tar.gz) = 373c5ce2c9636e45685dfa94f45bc4f8f6c2c0512d634b9e065ec33cb29da727b3ea13cf23aff307c1da765a40064f0fd4a347a3849ebd97252984fc85a0a400 +SHA512 (mpsolve-3.2.3.tar.gz) = 27f3966f9ba6d96fd19551f574c4e917258f45f0f25c183b714a8a64a7fa9e4764c2466770dc78240ec431a745f3659c2acbff68ff1a9c89a81106eb25eb51fc +SHA512 (TOPCOM-1.1.2.tar.gz) = 8f0d6dcfe5d83b260f671d4fd231a8e5a902668d2bf02d0977fbfa6a1d49e0ba3f1f51f2305267a4cbc0591c183c07642ef3d9613aae8f27f1832fe96ca90abb +SHA512 (v0.9.2.tar.gz) = 2d205f1b74c445059f3b4ad6af45b10fc2eff2a0d41b373f71199965237dea200342702d0a0b5027f0d7e323d89d3317a89ef9ebe9f00a7f6341c37b436360bb +SHA512 (v3.12.1.tar.gz) = eedfbae0447a965da66fea6dcd1a561717faede85e0f2e19a794d3947f6b8b4649b3415786ceba65914755766fafc0c2ff4ba80dfd309230145f879e6b900284