diff --git a/Macaulay2-1.11-fflas-ffpack.patch b/Macaulay2-1.11-fflas-ffpack.patch new file mode 100644 index 0000000..05f40e7 --- /dev/null +++ b/Macaulay2-1.11-fflas-ffpack.patch @@ -0,0 +1,30 @@ +--- M2/Macaulay2/e/aring-gf-givaro.cpp.orig 2019-05-25 08:04:49.000000000 -0600 ++++ M2/Macaulay2/e/aring-gf-givaro.cpp 2019-10-31 08:08:33.256361286 -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 +--- M2/Macaulay2/e/dmat.cpp.orig 2019-05-25 08:04:49.000000000 -0600 ++++ M2/Macaulay2/e/dmat.cpp 2019-10-31 08:42:04.830167857 -0600 +@@ -98,11 +98,15 @@ void determinant(const DMatZZpFFPACK& ma + // this case. + mat.ring().set_from_long(result_det, 1); + } ++ else if (mat.numRows() != mat.numColumns()) ++ { ++ mat.ring().set_from_long(result_det, 0); ++ } + else + { + DMatZZpFFPACK N(mat); + result_det = FFPACK::Det(mat.ring().field(), +- mat.numRows(), ++ result_det, + mat.numColumns(), + N.array(), + mat.numColumns()); diff --git a/Macaulay2-1.11-fplll.patch b/Macaulay2-1.11-fplll.patch new file mode 100644 index 0000000..ccedcfa --- /dev/null +++ b/Macaulay2-1.11-fplll.patch @@ -0,0 +1,74 @@ +--- 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 new file mode 100644 index 0000000..98923cd --- /dev/null +++ b/Macaulay2-1.11-gtest.patch @@ -0,0 +1,22 @@ +--- 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 new file mode 100644 index 0000000..01a189d --- /dev/null +++ b/Macaulay2-1.11-mpir.patch @@ -0,0 +1,13 @@ +--- 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 new file mode 100644 index 0000000..c270fa5 --- /dev/null +++ b/Macaulay2-1.11-nauty-paths.patch @@ -0,0 +1,46 @@ +--- 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 new file mode 100644 index 0000000..715a20b --- /dev/null +++ b/Macaulay2-1.11-no_Werror.patch @@ -0,0 +1,11 @@ +--- 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 new file mode 100644 index 0000000..b16dd88 --- /dev/null +++ b/Macaulay2-1.11-no_gftables.patch @@ -0,0 +1,11 @@ +--- M2/configure.ac.orig 2019-09-14 15:08:16.044196840 -0600 ++++ M2/configure.ac 2019-09-14 15:08:50.832185220 -0600 +@@ -885,7 +885,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 csdp nauty cddplus lrslib gftables topcom cohomcalg") ++AC_SUBST(PROGLIST, "4ti2 gfan normaliz csdp 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 new file mode 100644 index 0000000..6780095 --- /dev/null +++ b/Macaulay2-1.11-optflags.patch @@ -0,0 +1,21 @@ +--- 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 new file mode 100644 index 0000000..4f80467 --- /dev/null +++ b/Macaulay2-1.11-pthreads.patch @@ -0,0 +1,9 @@ +--- 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 new file mode 100644 index 0000000..b7e7740 --- /dev/null +++ b/Macaulay2-1.11-xdg_open.patch @@ -0,0 +1,20 @@ +--- 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.17-configure.patch b/Macaulay2-1.12-configure.patch similarity index 55% rename from Macaulay2-1.17-configure.patch rename to Macaulay2-1.12-configure.patch index 8086b88..58f9764 100644 --- a/Macaulay2-1.17-configure.patch +++ b/Macaulay2-1.12-configure.patch @@ -1,15 +1,17 @@ ---- 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 +--- 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 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.12-default_make_targets.patch b/Macaulay2-1.12-default_make_targets.patch new file mode 100644 index 0000000..7e5a040 --- /dev/null +++ b/Macaulay2-1.12-default_make_targets.patch @@ -0,0 +1,11 @@ +--- 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-fno-common.patch b/Macaulay2-1.12-fno-common.patch new file mode 100644 index 0000000..38f07a0 --- /dev/null +++ b/Macaulay2-1.12-fno-common.patch @@ -0,0 +1,21 @@ +--- M2/Macaulay2/c/scc1.c.orig 2019-05-25 08:04:49.000000000 -0600 ++++ M2/Macaulay2/c/scc1.c 2020-02-11 07:59:24.257856975 -0700 +@@ -2,6 +2,7 @@ + + #include "scc.h" + ++scope global_scope; + FILE *dependfile; + char *targetname; + char *outfilename; +--- M2/Macaulay2/c/scc.h.orig 2019-05-25 08:04:49.000000000 -0600 ++++ M2/Macaulay2/c/scc.h 2020-02-11 07:58:17.865064556 -0700 +@@ -18,7 +18,7 @@ + struct POS { char *filename; short lineno, column; } ; + typedef struct NODE *node; + typedef struct SCOPE *scope; +-scope global_scope; ++extern scope global_scope; + typedef node (*chkfun) (node,scope); + + #define clear_memory(v) memset(v,0,sizeof(*v)) diff --git a/Macaulay2-1.16-ulimit.patch b/Macaulay2-1.16-ulimit.patch deleted file mode 100644 index ad15955..0000000 --- a/Macaulay2-1.16-ulimit.patch +++ /dev/null @@ -1,95 +0,0 @@ ---- 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.18-lto.patch b/Macaulay2-1.18-lto.patch deleted file mode 100644 index becd01c..0000000 --- a/Macaulay2-1.18-lto.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- 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 deleted file mode 100644 index 3daf8c7..0000000 --- a/Macaulay2-1.25-default_make_targets.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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 deleted file mode 100644 index 5c93b1c..0000000 --- a/Macaulay2-1.25-optflags.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- 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/com.macaulay2.macaulay2.desktop b/Macaulay2.desktop similarity index 100% rename from com.macaulay2.macaulay2.desktop rename to Macaulay2.desktop diff --git a/Macaulay2.spec b/Macaulay2.spec index 5d65215..eae571b 100644 --- a/Macaulay2.spec +++ b/Macaulay2.spec @@ -6,22 +6,15 @@ # - flint linked with the GC-enabled mpfr # - factory (from Singular) configured with --disable-omalloc --enable-streamio # and linked with the flint that is linked with the GC-enabled mpfr +# - mpc linked with the GC-enabled mpfr # Since the main Fedora packages are not built in this way, we are forced to # bundle these packages to avoid random GC-related crashes. # -# 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 +# 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, then GC tries to free objects it +# did not allocate, which leads to a segfault. # Address randomization interferes with Macaulay2's memory management scheme, # and linking with -z now breaks configure. @@ -33,226 +26,128 @@ # 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.25.11 -Release: %autorelease +Version: 1.14.0.1 +Release: 4%{?dist} -# 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 +License: GPLv2 or GPLv3 +URL: http://macaulay2.com/ %if 0%{?snap:1} -Source0: %{name}-%{version}-%{snap}.tar.xz +Source0: Macaulay2-%{version}-%{snap}.tar.xz %else -Source0: %{m2url}/archive/release-%{version}/%{name}-%{version}.tar.gz +Source0: https://github.com/%{name}/M2/archive/version-%{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: com.macaulay2.macaulay2.desktop -Source12: com.macaulay2.macaulay2.metainfo.xml +Source11: Macaulay2.desktop Source20: etags.sh ## BUNDLED code # Normaliz must sometimes be bundled due to version differences -%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 +Source100: http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/normaliz-3.6.3.tar.gz +Provides: bundled(normaliz) = 3.6.3 # MPFR is bundled because it must be built with different threading options -%global mpfrver 4.2.2 -Source101: https://www.mpfr.org/mpfr-%{mpfrver}/mpfr-%{mpfrver}.tar.gz +%global mpfrver 3.1.6 +Source101: http://www.mpfr.org/mpfr-%{mpfrver}/mpfr-%{mpfrver}.tar.xz Provides: bundled(mpfr) = %{mpfrver} # FLINT is bundled because it must be linked with the specially-built MPFR -%global flintver 3.3.1 -Source102: https://github.com/flintlib/flint/archive/v%{flintver}/flint-%{flintver}.tar.gz +%global flintver 2.5.2 +Source102: http://www.flintlib.org/flint-%{flintver}.tar.gz Provides: bundled(flint) = %{flintver} # FACTORY is bundled because it must be built with special options -%global factoryver 4.4.1 -Source103: https://www.singular.uni-kl.de/ftp/pub/Math/Factory/factory-%{factoryver}.tar.gz +%global factoryver 4.1.1 +Source103: http://www.math.illinois.edu/Macaulay2/Downloads/OtherSourceCode/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} +# MPC is bundled because it must be linked with the specially-built MPFR +%global mpcver 1.1.0 +Source104: https://ftp.gnu.org/gnu/mpc/mpc-%{mpcver}.tar.gz +Provides: bundled(libmpc) = %{mpcver} ## PATCHES FOR BUNDLED code -# No patches +# 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 ## FAKE library tarballs that convince Macaulay2 to use the system versions -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 +Source300: frobby_v0.9.0.tar.gz +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 Source305: gfan0.6.2.tar.gz -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 +Source306: givaro-4.0.2.tar.gz +Source307: lrslib-062.tar.gz +Source308: TOPCOM-0.17.8.tar.gz +Source309: cohomCalg-031b.zip +Source310: glpk-4.59.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 -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 +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 +# adapt to libfplll 5.2.1 +Patch10: %{name}-1.11-fplll.patch # do not override the debug level -Patch: %{name}-1.17-configure.patch -# Fix LTO warnings about mismatched declarations and definitions -Patch: %{name}-1.18-lto.patch +Patch11: %{name}-1.12-configure.patch +# fix the build with -fno-common, default for GCC 10 +Patch12: %{name}-1.12-fno-common.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++ @@ -261,62 +156,49 @@ BuildRequires: gdb BuildRequires: gdbm-devel BuildRequires: gettext-devel BuildRequires: gfan -BuildRequires: git-core BuildRequires: givaro-static BuildRequires: glpk-devel -BuildRequires: iml-devel +%if 0%{?gmp} +BuildRequires: gmp-devel +%else +BuildRequires: mpir-devel +%endif +BuildRequires: gtest-devel BuildRequires: info -BuildRequires: libappstream-glib -BuildRequires: libatomic +BuildRequires: lapack-devel +BuildRequires: libgfan-devel +BuildRequires: libtool +BuildRequires: libatomic_ops-devel BuildRequires: libfplll-static BuildRequires: libfrobby-devel -BuildRequires: libgfan-devel -BuildRequires: libnormaliz-devel >= 3.10.4 -BuildRequires: libtool +BuildRequires: libmpc-devel +BuildRequires: libnauty-devel +%if 0%{?system_normaliz} +BuildRequires: libnormaliz-devel >= 3.6.3 +%endif +BuildRequires: linbox-devel BuildRequires: lrslib-devel BuildRequires: lrslib-utils -BuildRequires: make -BuildRequires: mpsolve-devel -BuildRequires: msolve -BuildRequires: msolve-devel +BuildRequires: mariadb-devel +BuildRequires: memtailor-devel +BuildRequires: mathic-devel +BuildRequires: mathicgb-devel BuildRequires: nauty BuildRequires: normaliz -BuildRequires: ocl-icd-devel +BuildRequires: ntl-devel +BuildRequires: openblas-devel BuildRequires: pari-devel -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(bdw-gc) >= 7.6.2 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: python3-devel -BuildRequires: R -BuildRequires: scip -BuildRequires: texinfo +BuildRequires: python3 +BuildRequires: qd-devel +BuildRequires: readline-devel +BuildRequires: tbb-devel BuildRequires: time BuildRequires: TOPCOM -BuildRequires: transfig -%ifarch %{valgrind_arches} -BuildRequires: valgrind -%endif +BuildRequires: xemacs Requires: 4ti2 Requires: cohomCalg @@ -327,15 +209,8 @@ Requires: gfan Requires: hicolor-icon-theme Requires: lrslib-utils Requires: nauty -Requires: normaliz Requires: TOPCOM - -# M2-help -Requires: xdg-utils - -Recommends: mathicgb -Recommends: msolve -Recommends: scip +Requires: xemacs-filesystem %if 0%{?common} Requires: %{name}-common = %{version}-%{release} @@ -350,11 +225,12 @@ Provides: Macaulay2-emacs = %{version}-%{release} Provides: macaulay2 = %{version}-%{release} -# 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} +# M2-help +Requires: xdg-utils + +%if 0%{?system_normaliz} +Requires: normaliz +%endif # Do not advertise the bundled mpfr %global __provides_exclude libmpfr.so* @@ -362,8 +238,8 @@ ExcludeArch: %{ix86} %{power64} %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} @@ -374,54 +250,62 @@ BuildArch: noarch %prep -%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} +%setup -q -n M2-version-%{version}/M2 +%setup -q -n M2-version-%{version}/M2 -T -D -a 10 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 ! %system_normaliz install -p -m644 %{SOURCE100} BUILD/tarfiles/ +%if ! 0%{?system_normaliz} +sed -e '/PROGRAMS =/aPATCHFILE = @abs_srcdir@/patch-$(VERSION)' \ + -e '/PRECONFIGURE/d' \ + -i libraries/normaliz/Makefile.in %endif -install -p -m644 %{SOURCE101} %{SOURCE102} %{SOURCE103} BUILD/tarfiles/ -install -p -m644 %{SOURCE104} BUILD/tarfiles/v%{linboxver}.tar.gz +install -p -m644 %{SOURCE101} %{SOURCE102} %{SOURCE103} %{SOURCE104} \ + BUILD/tarfiles/ 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 -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," \ +cp -p %{SOURCE200} libraries/flint/patch-%{flintver} +sed -e 's/# PATCHFILE/PATCHFILE/' \ + -e 's,--with-blas,&=%{_includedir}/openblas --with-ntl,' \ -i libraries/flint/Makefile.in +cp -p %{SOURCE201} libraries/factory/patch-%{factoryver} +cp -p %{SOURCE202} libraries/mpfr/patch-%{mpfrver} ## fake library tarballs 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,cddlib,givaro,normaliz,topcom}/Makefile.in -sed -i '/PATCHFILE/d' libraries/{csdp,frobby,gfan,givaro,mpsolve,normaliz,topcom}/Makefile.in + %{SOURCE309} %{SOURCE310} %{SOURCE311} BUILD/tarfiles/ +sed -i '/PRECONFIGURE/d' libraries/{4ti2,normaliz,topcom}/Makefile.in +sed -i 's/VERSION = 4\.0\.4/VERSION = 5.2.0/;/PATCHFILE/d' libraries/fplll/Makefile.in +sed -i '/PATCHFILE/d' libraries/{csdp,frobby,gfan,normaliz,topcom}/Makefile.in sed -i '/INSTALLCMD/,/stdinc/d' libraries/frobby/Makefile.in +sed -i '/TARDIR/d;/PRECONFIGURE/d' libraries/gtest/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 -## fake givaro submodule -tar -C submodules/givaro --strip-components=1 -xzf %{SOURCE306} +%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 .fplll +%patch11 -p1 -b .configure +%patch12 -p1 -b .fno-common -## 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 @@ -430,68 +314,68 @@ if [ "$HOME" = "/builddir" ]; then echo "set auto-load safe-path /" > /builddir/.gdbinit fi -# 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/' \ +# 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/' \ -e 's/BUILD_fflas_ffpack=yes/BUILD_fflas_ffpack=no/' \ - -e 's,-lfplll,%{_libdir}/libfplll.a -lqd,' \ - -e 's,`\$PKG_CONFIG --libs givaro`,%{_libdir}/libgivaro.a,' \ + -e 's/^\(GIT_DESCRIPTION=\).*/\1"unknown"/' \ + -e 's,-lfplll,%{_libdir}/libfplll.a,' \ -e 's,-lgivaro,%{_libdir}/libgivaro.a,' \ - -e 's,-lrefblas,-lflexiblas,' \ - -e 's,-llapack,-lflexiblas,' \ + -e 's,-llapack -lrefblas,-lopenblas,' \ -e 's,\$added_fclibs != yes,"$added_fclibs" != yes,' \ -i configure.ac -# 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 +# 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 # (re)generate configure -autoreconf -fi . +[ -f configure -a -f include/config.h ] || make %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} -cd BUILD/%{_target_platform} -CPPFLAGS="$CPPFLAGS -I%{_includedir}/cddlib -I%{_includedir}/frobby" \ -CFLAGS='%{build_cflags} -fsigned-char' \ -CXXFLAGS='%{build_cflags} -fsigned-char' \ -LIBS="-lflexiblas" \ +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" \ ../../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 linbox" + --enable-build-libraries="mpfr flint factory lapack fplll givaro gtest" # The list of libraries and submodules above should include only those that: - # 1. We bundle (mpfr, flint, factory, and linbox) - # 2. We sneakily substitute one library for another (lapack -> flexiblas) + # 1. We bundle (mpfr, flint, and factory) + # 2. We sneakily substitute one library for another (lapack -> openblas) # 3. Have to be linked with the static library (fplll and givaro) -cd - + # 4. Have to be faked because Macaulay2 wants to find sources (gtest) +popd # link with static libraries when global constructors run prior to GC # initialization. Otherwise, unloading the shared object causes a crash. @@ -505,11 +389,6 @@ 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 @@ -517,7 +396,7 @@ find BUILD/%{_target_platform}/ -name *.errors -execdir echo {} \; -execdir cat %install -%make_install -C BUILD/%{_target_platform} IgnoreExampleErrors=true +make install -C BUILD/%{_target_platform} DESTDIR=%{buildroot} IgnoreExampleErrors=true # link, don't copy, the binaries mbindir=%{buildroot}%{_libexecdir}/Macaulay2/bin @@ -530,10 +409,6 @@ for fil in checkregularity chiro2circuits chiro2cocircuits cohomcalg csdp 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} @@ -546,33 +421,31 @@ desktop-file-install --vendor="" \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE11} -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 +# 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} %{_emacs_bytecompile} *.el -cd - +cd %{buildroot}%{_xemacs_sitelispdir} +%{_xemacs_bytecompile} *.el +popd + +# Missing executable bit +chmod a+x %{buildroot}%{_datadir}/Macaulay2/NumericalAlgebraicGeometry/hom4ps2_in_out ## unpackaged files # info dir rm -fv %{buildroot}%{_infodir}/dir +# source control file +rm -f %{buildroot}%{_datadir}/Macaulay2/Macaulay2Doc/test/.gitignore %check -# 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 +CFLAGS="%{optflags}" \ +CXXFLAGS="%{optflags}" \ +LDFLAGS="$RPM_LD_FLAGS" \ +time make -k check -C BUILD/%{_target_platform} Verbose=true ||: %files @@ -585,14 +458,512 @@ make check -C BUILD/%{_target_platform}/Macaulay2/bin %files common %endif %{_datadir}/Macaulay2/ -%{_datadir}/applications/com.macaulay2.macaulay2.desktop +%{_datadir}/applications/*Macaulay2.desktop %{_datadir}/icons/hicolor/*/*/* -%{_metainfodir}/com.macaulay2.macaulay2.metainfo.xml %{_docdir}/Macaulay2/ %{_infodir}/*.info* %{_mandir}/man1/* -%{_emacs_sitelispdir}/macaulay2/ +%{_emacs_sitelispdir}/* +%{_xemacs_sitelispdir}/* %changelog -%autochangelog +* 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/README.md b/README.md deleted file mode 100644 index 7d3e139..0000000 --- a/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 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 deleted file mode 100644 index f52a894..0000000 --- a/changelog +++ /dev/null @@ -1,682 +0,0 @@ -* 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/com.macaulay2.macaulay2.metainfo.xml b/com.macaulay2.macaulay2.metainfo.xml deleted file mode 100644 index 0de35f5..0000000 --- a/com.macaulay2.macaulay2.metainfo.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - 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 new file mode 100644 index 0000000..81f4286 --- /dev/null +++ b/factory-4.1.1.patch @@ -0,0 +1,43 @@ +--- 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 new file mode 100644 index 0000000..50fa7dc --- /dev/null +++ b/flint-2.5.2.patch @@ -0,0 +1,280 @@ +--- 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 new file mode 100644 index 0000000..91277b9 --- /dev/null +++ b/mpfr-3.1.6.patch @@ -0,0 +1,399 @@ +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 96f74cc..29c10d5 100644 --- a/sources +++ b/sources @@ -1,21 +1,19 @@ SHA512 (Macaulay2-icons.tar.xz) = 069aa0ad70a0253583b00091c094da9b79d2a2f0f2d38aa97f543081f5df5fd3b5a9e1463febd6947c3151cf01844133174c7372f57e158c2d3faba6baed5d1d -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 (version-1.14.0.1.tar.gz) = aa537123348d71374bdb0eb9bd41f6a7fc91184e2f9679dab488fc4e33aa3ee913a94e2e406b39b9a3805437731097e7c525d614fbed2389acdfda0842e3b640 +SHA512 (4ti2-1.6.7.tar.gz) = 313bc4ca4b329b4f25c3c63131224c0970382371b3ca962cfef1de5af40109b40efb9ac09d4fbcebf74440b42a1e213cb44af99be24b4a7460b859f9b8d3c37d +SHA512 (cohomCalg-031b.zip) = 20c362e2a5485b3e102b87c6c12779d60516af1dd71a3893fbdd891ad703dcb6e69d120558d54b9bb8fec635f92bd8e51baf0b564afbb2a09a4934779395070d 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 (factory-4.1.1.tar.gz) = f08d74cb860145c07b9f1cc0a3fe44cb6fb2fc158a9b992f0db55eeef9e93d280cf66a5c8822236389e54b8084d2a37c174b32864e4dc12b8ee3c4760e9fe2bf +SHA512 (flint-2.5.2.tar.gz) = cce36947b558aabecaf780171b4bbc0e1330c3b1a7e3580717584be5cab4991d33b190531c7995b224a3a440e28c4a610d6f781901e29f48ced12a9c5ba960a2 +SHA512 (frobby_v0.9.0.tar.gz) = bc96ff20ec334932b5eaa8a3d15d0e36eab41eb85e8b74dbdc374dcaafc9873e44a8af16f6caae649aeea17cd6284caf244d4d345689ad43288f199c591a68a6 SHA512 (gfan0.6.2.tar.gz) = 08a9cc543967771af959a506b79db5b55e0e4942e4170dad8691db35ef7d381d878e1ea6534a3cacc0f5d30ec31564ec94cc20b46792d06f18a3a8a3c0aac91d -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 +SHA512 (givaro-4.0.2.tar.gz) = 8338a8e348c04be08e59fe9744febd918d4913a831ff0b7dba0577fd639dbfde802f15e90f10d42ddf6c544117f4d256bdc8c51996afbbee6c314c1537d165f6 +SHA512 (glpk-4.59.tar.gz) = ca05bd085880143acf4a440cf7efd2392d4dde89bed53a0e5726526cb210eee004bfcd434aeb8ca8abb1dc89ff93e72054489911e5e2c843e0ed631d50c55f56 +SHA512 (gtest-1.8.0.tar.gz) = 54da3f3884685f0ff17fb12236063f32eeb78a4305883b1b2010818ec19c8e8221f2ee62fda21ba1b9d4c9d07cc5ac9eba688e4bcad30782897d5ba2417a19c3 +SHA512 (lapack-3.6.0.tgz) = 0975c721abe38ef46cda2ba446060428e2f576ec4558cc0205ca6af2af2bd8f7f4c31fd0c90d77a92719a73e1942fade19b4c17e6fe2da29d54ad1adccf5a6b2 +SHA512 (libfplll-5.2.0.tar.gz) = 67d1a8deb92d3f9245983b09b7593b19c5d43c8fe77cfea893ea9dfb744bcb77b7239d73e4f619450cc6960f4c48fb1c6ba46268208b0f31f855cf1af6bfaa29 +SHA512 (lrslib-062.tar.gz) = 78fa6d470b2dd9cb06d1d15023debd8fafc27ed4df93cd90ef746071755f6b1fe9ee2c6a24659030b9a8851bd3ee3a699407586d320f3760c3d8a3a1c79d7116 +SHA512 (mpc-1.1.0.tar.gz) = 72d657958b07c7812dc9c7cbae093118ce0e454c68a585bfb0e2fa559f1bf7c5f49b93906f580ab3f1073e5b595d23c6494d4d76b765d16dde857a18dd239628 +SHA512 (mpfr-3.1.6.tar.xz) = 746ee74d5026f267f74ab352d850ed30ff627d530aa840c71b24793e44875f8503946bd7399905dea2b2dd5744326254d7889337fe94cfe58d03c4066e9d8054 +SHA512 (normaliz-3.6.3.tar.gz) = f749dac30c246615071ebefa37d6aff30cbbaf958985b7a28afef175ddbde689564d65bdefe5e6b7d41d91faee78cc63060a31eca06cfa1ef8e1ad1ba5501c24 +SHA512 (TOPCOM-0.17.8.tar.gz) = 8611e8bd36eda00646fb40794435f23e6af81ecbee93c40e8fe5f73905e673e6244cb0f8cc1fe5c29050e40c7d53a44c615c60cbbecc8452b3c85f1d8a816d7a