diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6115d55..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/sage-*.tar.gz -/cremona-*.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 1763d61..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# sagemath - -[Sage](https://www.sagemath.org/) is a free open-source mathematics software -system licensed under the GPL. It combines the power of many existing -open-source packages into a common Python-based interface. diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..d409129 --- /dev/null +++ b/dead.package @@ -0,0 +1,3 @@ +Retired: Fails to install + +See https://pagure.io/releng/issue/11685 diff --git a/gprc.expect b/gprc.expect deleted file mode 100644 index 95122d9..0000000 --- a/gprc.expect +++ /dev/null @@ -1,11 +0,0 @@ -compatible = 0 - -/* gp prompt */ -prompt = "? " - -/* Disable timer */ -timer = 0 - -/* Disable the break loop, otherwise gp will seem to hang on errors */ -breakloop = 0 - diff --git a/org.sagemath.sage.metainfo.xml b/org.sagemath.sage.metainfo.xml deleted file mode 100644 index 70cf3d8..0000000 --- a/org.sagemath.sage.metainfo.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - org.sagemath.sage - CC0-1.0 - GPL-2.0-or-later - sagemath - Mathematics Software System - -

- Sage is a free open-source mathematics software system licensed - under the GPL. It combines the power of many existing open-source - packages into a common Python-based interface. -

-
- org.sagemath.sage.desktop - - - https://www.flickr.com/photos/sagescreenshots/2131280369/in/album-72157603532209437/ - Notebook - - - https://www.flickr.com/photos/sagescreenshots/2131280403/in/album-72157603532209437/ - Symbolic computation - - - https://www.flickr.com/photos/sagescreenshots/2131280441/in/album-72157603532209437/ - More symbolic computation - - - https://www.flickr.com/photos/sagescreenshots/2132057124/in/album-72157603532209437/ - Basic plotting - - - https://www.flickr.com/photos/sagescreenshots/2131280543/in/album-72157603532209437/ - Plotting multiple functions - - - https://www.flickr.com/photos/sagescreenshots/2131280585/in/album-72157603532209437/ - Plotting options - - - https://www.flickr.com/photos/sagescreenshots/2131280629/in/album-72157603532209437/ - Polygons - - - https://www.flickr.com/photos/sagescreenshots/2131280689/in/album-72157603532209437/ - Text annotations - - - https://www.flickr.com/photos/sagescreenshots/2131280719/in/album-72157603532209437/ - Parametric plotting - - - https://www.flickr.com/photos/sagescreenshots/2132057406/in/album-72157603532209437/ - List comprehensions - - - https://www.flickr.com/photos/sagescreenshots/2132057442/in/album-72157603532209437/ - Rubik's cube - - - https://www.flickr.com/photos/sagescreenshots/2132057494/in/album-72157603532209437/ - Scrambled cube - - - https://www.flickr.com/photos/sagescreenshots/2132057548/in/album-72157603532209437/ - 3D cube - - - https://www.flickr.com/photos/sagescreenshots/2131280959/in/album-72157603532209437/ - Interactive 3D cube - - - https://www.flickr.com/photos/sagescreenshots/2132057724/in/album-72157603532209437/ - 3D plotting with Tachyon - - - https://www.flickr.com/photos/sagescreenshots/2132057802/in/album-72157603532209437/ - Parametric 3D plotting - - - https://www.flickr.com/photos/sagescreenshots/2132057836/in/album-72157603532209437/ - JSMath and LaTeX - - - https://www.flickr.com/photos/sagescreenshots/2132057874/in/album-72157603532209437/ - Matrix operations - - - https://www.flickr.com/photos/sagescreenshots/2131281199/in/album-72157603532209437/ - Plotting of graphs - - - https://www.flickr.com/photos/sagescreenshots/2131281877/in/album-72157603532209437/ - Contour plot - - - loganjerry@gmail.com - https://www.sagemath.org/ - https://trac.sagemath.org/ - https://doc.sagemath.org/html/en/faq/ - https://doc.sagemath.org/ - https://github.com/sponsors/sagemath - - - sage - -
diff --git a/sagemath-bind2nd.patch b/sagemath-bind2nd.patch deleted file mode 100644 index 99cfc5e..0000000 --- a/sagemath-bind2nd.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up src/sage/modular/arithgroup/farey.cpp.orig src/sage/modular/arithgroup/farey.cpp ---- src/sage/modular/arithgroup/farey.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/modular/arithgroup/farey.cpp 2023-03-13 12:54:35.465197691 -0600 -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -737,7 +738,7 @@ size_t FareySymbol::nu3() const { - size_t FareySymbol::rank_pi() const { - if( index() == 2 ) return 1; - return count_if(pairing.begin(), pairing.end(), -- bind2nd(greater(), 0))/2; -+ bind(greater(), placeholders::_1, 0))/2; - } - - size_t FareySymbol::number_of_cusps() const { diff --git a/sagemath-buildroot.patch b/sagemath-buildroot.patch deleted file mode 100644 index 8fbc98a..0000000 --- a/sagemath-buildroot.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up src/sage_setup/command/sage_build_cython.py.orig src/sage_setup/command/sage_build_cython.py ---- src/sage_setup/command/sage_build_cython.py.orig 2020-10-30 16:04:33.325411659 -0600 -+++ src/sage_setup/command/sage_build_cython.py 2020-10-30 16:09:19.770071485 -0600 -@@ -262,6 +262,9 @@ class sage_build_cython(Command): - with open(self._version_file, 'w') as f: - f.write(self._version_stamp) - -+ # Remove buildroot paths from the generated files -+ subprocess.run(["find", "build/cythonized/sage", "-type", "f", "-exec", "sed", "-i", "s|@@BUILDROOT@@||g", "{}", "+"], check=True) -+ - # Finally, copy relevant cythonized files from build/cythonized - # tree into the build-lib tree - for (dst_dir, src_files) in self.get_cythonized_package_files(): diff --git a/sagemath-catch-value.patch b/sagemath-catch-value.patch deleted file mode 100644 index 1549c96..0000000 --- a/sagemath-catch-value.patch +++ /dev/null @@ -1,232 +0,0 @@ -diff -up src/sage/graphs/base/boost_interface.cpp.orig src/sage/graphs/base/boost_interface.cpp ---- src/sage/graphs/base/boost_interface.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/graphs/base/boost_interface.cpp 2023-03-13 11:32:02.724494081 -0600 -@@ -240,7 +240,7 @@ public: - try { - boost::dijkstra_shortest_paths(graph, vertices[s], distance_map(boost::make_iterator_property_map(distances.begin(), index)) - .predecessor_map(boost::make_iterator_property_map(predecessors.begin(), index))); -- } catch (boost::exception_detail::clone_impl > e) { -+ } catch (boost::exception_detail::clone_impl >& e) { - return to_return; - } - -diff -up src/sage/symbolic/ginac/function.cpp.orig src/sage/symbolic/ginac/function.cpp ---- src/sage/symbolic/ginac/function.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/function.cpp 2023-03-13 11:32:31.540967570 -0600 -@@ -961,12 +961,12 @@ ex function::evalf(int level, PyObject* - try { - return n.try_py_method(get_name()); - } -- catch (std::logic_error) { -+ catch (std::logic_error&) { - try { - const numeric& nn = ex_to(n.evalf()).try_py_method(get_name()); - return nn.to_dict_parent(kwds); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - } - } - return function(serial,eseq).hold(); -diff -up src/sage/symbolic/ginac/inifcns_trans.cpp.orig src/sage/symbolic/ginac/inifcns_trans.cpp ---- src/sage/symbolic/ginac/inifcns_trans.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/inifcns_trans.cpp 2023-03-13 11:32:57.173499217 -0600 -@@ -379,7 +379,7 @@ static ex log_series(const ex &arg, - // maybe substitution of rel into arg fails because of a pole - try { - arg_pt = arg.subs(rel, subs_options::no_pattern); -- } catch (pole_error) { -+ } catch (pole_error&) { - must_expand_arg = true; - } - // or we are at the branch point anyways -diff -up src/sage/symbolic/ginac/mpoly-singular.cpp.orig src/sage/symbolic/ginac/mpoly-singular.cpp ---- src/sage/symbolic/ginac/mpoly-singular.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/mpoly-singular.cpp 2023-03-13 11:33:28.275930939 -0600 -@@ -76,7 +76,7 @@ static CanonicalForm num2canonical(const - try { - return n.to_canonical(); - } -- catch (std::runtime_error) { -+ catch (std::runtime_error&) { - if (not n.is_real()) { - numeric re = n.real(); - numeric im = n.imag(); -@@ -233,7 +233,7 @@ const CanonicalForm ex::to_canonical(ex_ - try { - return ::power(var, n.to_long()); - } -- catch (std::runtime_error) { -+ catch (std::runtime_error&) { - throw std::runtime_error("exponent too big"); - } - } -@@ -261,7 +261,7 @@ const CanonicalForm ex::to_canonical(ex_ - try { - return ::power(var, n.to_long()); - } -- catch (std::runtime_error) { -+ catch (std::runtime_error&) { - throw std::runtime_error("exponent too big"); - } - } -diff -up src/sage/symbolic/ginac/numeric.cpp.orig src/sage/symbolic/ginac/numeric.cpp ---- src/sage/symbolic/ginac/numeric.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/numeric.cpp 2023-03-13 12:53:12.671709229 -0600 -@@ -3636,11 +3636,11 @@ const numeric numeric::real() const { - try { - return try_py_method("real"); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - try { - return try_py_method("real_part"); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - return *this; - } - default: -@@ -3664,11 +3664,11 @@ const numeric numeric::imag() const { - try { - return try_py_method("imag"); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - try { - return try_py_method("imag_part"); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - return *_num0_p; - } - default: -@@ -4945,11 +4945,11 @@ const numeric Li2(const numeric &x, PyOb - try { - return x.try_py_method("dilog"); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - try { - return x.try_py_method("polylog", *_num2_p); - } -- catch (std::logic_error) {} -+ catch (std::logic_error&) {} - - return x.Li2(*_num2_p, parent); - } -diff -up src/sage/symbolic/ginac/pseries.cpp.orig src/sage/symbolic/ginac/pseries.cpp ---- src/sage/symbolic/ginac/pseries.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/pseries.cpp 2023-03-13 11:34:56.953310716 -0600 -@@ -855,7 +855,7 @@ ex mul::series(const relational & r, int - bool flag_redo = false; - try { - real_ldegree = buf.expand().ldegree(sym-r.rhs()).to_int(); -- } catch (std::runtime_error) {} -+ } catch (std::runtime_error&) {} - - if (real_ldegree == 0) { - if ( factor < 0 ) { -@@ -1053,7 +1053,7 @@ ex power::series(const relational & r, i - if (is_exactly_a(basis_subs)) { - must_expand_basis = true; - } -- } catch (pole_error) { -+ } catch (pole_error&) { - must_expand_basis = true; - } - -@@ -1063,7 +1063,7 @@ ex power::series(const relational & r, i - if (is_exactly_a(exponent_subs)) { - exponent_is_regular = false; - } -- } catch (pole_error) { -+ } catch (pole_error&) { - exponent_is_regular = false; - } - -@@ -1133,7 +1133,7 @@ ex power::series(const relational & r, i - ex result; - try { - result = ex_to(e).power_const(numexp, order); -- } catch (pole_error) { -+ } catch (pole_error&) { - epvector ser; - ser.emplace_back(Order(_ex1), order); - result = pseries(r, ser); -@@ -1203,7 +1203,7 @@ ex ex::series(const ex & r, int order, u - order, - options); - } -- catch(flint_error) { -+ catch(flint_error&) { - ; - } - } -diff -up src/sage/symbolic/ginac/sum.cpp.orig src/sage/symbolic/ginac/sum.cpp ---- src/sage/symbolic/ginac/sum.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/sum.cpp 2023-03-13 11:35:12.139033264 -0600 -@@ -562,7 +562,7 @@ ex gosper_sum_definite(ex f, ex s, ex a, - return res; - return t; - } -- catch (gosper_domain_error) { -+ catch (gosper_domain_error&) { - *success = 0; - return _ex0; - } -@@ -579,7 +579,7 @@ ex gosper_sum_indefinite(ex f, ex s, int - return res; - return t; - } -- catch (gosper_domain_error) { -+ catch (gosper_domain_error&) { - *success = 0; - return _ex0; - } -diff -up src/sage/symbolic/ginac/upoly-ginac.cpp.orig src/sage/symbolic/ginac/upoly-ginac.cpp ---- src/sage/symbolic/ginac/upoly-ginac.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/upoly-ginac.cpp 2023-03-13 11:35:36.657585291 -0600 -@@ -240,7 +240,7 @@ ex decomp_rational(const ex &a, const ex - try { - q = quo(numer, denom, x); - } -- catch (std::logic_error) { -+ catch (std::logic_error&) { - return a; - } - return q + rem(numer, denom, x) / denom; -@@ -536,7 +536,7 @@ ex parfrac(const ex & a, const ex & x) - // Convert N(x)/D(x) -> Q(x) + R(x)/D(x), so degree(R) < degree(D) - qr = quo_rem(numer, denom, x, true); - } -- catch (std::logic_error) { -+ catch (std::logic_error&) { - return a; - } - // Factorize denominator and compute cofactors -diff -up src/sage/symbolic/ginac/useries.cpp.orig src/sage/symbolic/ginac/useries.cpp ---- src/sage/symbolic/ginac/useries.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/useries.cpp 2023-03-13 11:35:59.505167856 -0600 -@@ -322,10 +322,10 @@ bool useries_can_handle(const ex& the_ex - (void) nd.op(1).degree(s).to_long(); - (void) nd.op(1).ldegree(s).to_long(); - } -- catch (conversion_error) { -+ catch (conversion_error&) { - throw std::runtime_error("exponent too big"); - } -- catch (std::runtime_error) {} -+ catch (std::runtime_error&) {} - } - return ok; - } -@@ -406,7 +406,7 @@ ex useries(const ex& the_ex, const symbo - try { - ldeg = low_series_degree(the_ex); - } -- catch (ldegree_error) { -+ catch (ldegree_error&) { - may_extend = true; - } - diff --git a/sagemath-cremona.patch b/sagemath-cremona.patch deleted file mode 100644 index aa8aab1..0000000 --- a/sagemath-cremona.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix this error: - -Inserting allgens.90000-99999 -Committing... -Traceback (most recent call last): - File "/builddir/build/BUILD/sage-9.6/cremona.sage.py", line 10, in - c._init_from_ftpdata('ecdata-2019-10-29') - File "/builddir/build/BUILDROOT/sagemath-9.6-4.fc38.x86_64/usr/lib64/python3.11/site-packages/sage/databases/cremona.py", line 1397, in _init_from_ftpdata - self.vacuum() - File "/builddir/build/BUILDROOT/sagemath-9.6-4.fc38.x86_64/usr/lib64/python3.11/site-packages/sage/databases/sql_db.py", line 2180, in vacuum - self.__connection__.execute('VACUUM') -sqlite3.OperationalError: cannot VACUUM from within a transaction - -diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py ---- src/sage/databases/cremona.py.orig 2021-08-22 02:44:33.000000000 -0600 -+++ src/sage/databases/cremona.py 2021-08-26 13:33:03.200366675 -0600 -@@ -885,7 +885,8 @@ class MiniCremonaDatabase(SQLDatabase): - message = "There is no elliptic curve with label " \ - + label + " in the default database; try installing " \ - + "the optional package database_cremona_ellcurve which " \ -- + "contains the complete Cremona database" -+ + "contains the complete Cremona database: " \ -+ + "sudo dnf install sagemath-data-elliptic_curves_large" - raise ValueError(message) - ainvs = eval(c[0]) - data = {'cremona_label': label, -@@ -1670,6 +1671,7 @@ class LargeCremonaDatabase(MiniCremonaDa - con.executemany("UPDATE t_curve SET gens=? WHERE curve=?", - curve_data) - print("Committing...") -+ self.commit() - if largest_conductor and int(v[0]) > largest_conductor: - break - diff --git a/sagemath-cvxopt.patch b/sagemath-cvxopt.patch deleted file mode 100644 index df52a71..0000000 --- a/sagemath-cvxopt.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up src/sage/numerical/backends/cvxopt_backend.pyx.orig src/sage/numerical/backends/cvxopt_backend.pyx ---- src/sage/numerical/backends/cvxopt_backend.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/numerical/backends/cvxopt_backend.pyx 2021-05-28 12:05:47.551650940 -0600 -@@ -550,7 +550,7 @@ cdef class CVXOPTBackend(GenericBackend) - self.answer = solvers.lp(c,G,h) - - #possible outcomes -- if self.answer['status'] == 'optimized': -+ if self.answer['status'] in ['optimized', 'optimal']: - pass - elif self.answer['status'] == 'primal infeasible': - raise MIPSolverException("CVXOPT: primal infeasible") -diff -up src/sage/numerical/backends/cvxopt_sdp_backend.pyx.orig src/sage/numerical/backends/cvxopt_sdp_backend.pyx ---- src/sage/numerical/backends/cvxopt_sdp_backend.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/numerical/backends/cvxopt_sdp_backend.pyx 2021-05-28 12:05:47.552650940 -0600 -@@ -150,7 +150,7 @@ cdef class CVXOPTSDPBackend(MatrixSDPBac - self.answer = solvers.sdp(c,Gs=G_matrix,hs=h_matrix) - - #possible outcomes -- if self.answer['status'] == 'optimized': -+ if self.answer['status'] in ['optimized', 'optimal']: - pass - elif self.answer['status'] == 'primal infeasible': - raise SDPSolverException("CVXOPT: primal infeasible") diff --git a/sagemath-env.patch b/sagemath-env.patch deleted file mode 100644 index 1816510..0000000 --- a/sagemath-env.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2023-01-15 17:04:08.814627154 -0700 -+++ src/sage/env.py 2023-01-15 17:17:20.339009783 -0700 -@@ -166,15 +166,15 @@ SAGE_DATE = var("SAGE_DATE", version.dat - SAGE_VERSION_BANNER = var("SAGE_VERSION_BANNER", version.banner) - - # virtual environment where sagelib is installed --SAGE_VENV = var("SAGE_VENV", os.path.abspath(sys.prefix)) -+SAGE_VENV = var("SAGE_VENV", "@@SAGE_LOCAL@@") - SAGE_LIB = var("SAGE_LIB", os.path.dirname(os.path.dirname(__file__))) --SAGE_EXTCODE = var("SAGE_EXTCODE", join(SAGE_LIB, "sage", "ext_data")) -+SAGE_EXTCODE = var("SAGE_EXTCODE", join("/usr", "share", "sagemath", "etc")) - SAGE_VENV_SPKG_INST = var("SAGE_VENV_SPKG_INST", join(SAGE_VENV, "var", "lib", "sage", "installed")) - - # prefix hierarchy where non-Python packages are installed - SAGE_LOCAL = var("SAGE_LOCAL", SAGE_VENV) --SAGE_SHARE = var("SAGE_SHARE", join(SAGE_LOCAL, "share")) --SAGE_DOC = var("SAGE_DOC", join(SAGE_SHARE, "doc", "sage")) -+SAGE_SHARE = var("SAGE_SHARE", join("/usr", "share", "sagemath")) -+SAGE_DOC = var("SAGE_DOC", join("/usr", "share", "doc", "sagemath")) - SAGE_SPKG_INST = var("SAGE_SPKG_INST", join(SAGE_LOCAL, "var", "lib", "sage", "installed")) - - # source tree of the Sage distribution -@@ -202,16 +202,16 @@ THEBE_DIR = var("THEBE_DIR", join(SAGE_S - COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs")) - CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona")) - CREMONA_LARGE_DATA_DIR = var("CREMONA_LARGE_DATA_DIR", join(SAGE_SHARE, "cremona")) --JMOL_DIR = var("JMOL_DIR", join(SAGE_SHARE, "jmol")) --MATHJAX_DIR = var("MATHJAX_DIR", join(SAGE_SHARE, "mathjax")) --MTXLIB = var("MTXLIB", join(SAGE_SHARE, "meataxe")) -+JMOL_DIR = var("JMOL_DIR", join("/usr", "share", "java", "jmol")) -+MATHJAX_DIR = var("MATHJAX_DIR", join("/usr", "share", "javascript", "mathjax")) -+MTXLIB = var("MTXLIB", join(DOT_SAGE, "meataxe")) - THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs-sage")) --PPLPY_DOCS = var("PPLPY_DOCS", join(SAGE_SHARE, "doc", "pplpy")) -+PPLPY_DOCS = var("PPLPY_DOCS", join("/usr", "share", "doc", "python3-pplpy-devel")) - MAXIMA = var("MAXIMA", "maxima") - MAXIMA_FAS = var("MAXIMA_FAS") - KENZO_FAS = var("KENZO_FAS") --SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "") --RUBIKS_BINS_PREFIX = var("RUBIKS_BINS_PREFIX", "") -+SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "nauty-") -+RUBIKS_BINS_PREFIX = var("RUBIKS_BINS_PREFIX", "rubiks_") - FOURTITWO_HILBERT = var("FOURTITWO_HILBERT") - FOURTITWO_MARKOV = var("FOURTITWO_MARKOV") - FOURTITWO_GRAVER = var("FOURTITWO_GRAVER") diff --git a/sagemath-escape.patch b/sagemath-escape.patch deleted file mode 100644 index db87c77..0000000 --- a/sagemath-escape.patch +++ /dev/null @@ -1,371 +0,0 @@ -diff -up src/sage/graphs/strongly_regular_db.pyx.orig src/sage/graphs/strongly_regular_db.pyx ---- src/sage/graphs/strongly_regular_db.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/graphs/strongly_regular_db.pyx 2023-03-13 08:43:22.143746071 -0600 -@@ -2443,7 +2443,7 @@ def strongly_regular_from_two_intersecti - - A set of points in the projective geometry `PG(k,q)` is said to be a - 2-intersection set if it intersects every hyperplane in either `h_1` or -- `h_2` points, where `h_1,h_2\in \\NN`. -+ `h_2` points, where `h_1,h_2\in \NN`. - - From a 2-intersection set `S` can be defined a strongly-regular graph in the - following way: -diff -up src/sage/groups/group.pyx.orig src/sage/groups/group.pyx ---- src/sage/groups/group.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/group.pyx 2023-03-13 08:43:22.143746071 -0600 -@@ -51,7 +51,7 @@ def is_Group(x): - - - cdef class Group(Parent): -- """ -+ r""" - Base class for all groups - - TESTS:: -diff -up src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx ---- src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx 2023-03-13 08:43:22.144746053 -0600 -@@ -105,7 +105,7 @@ cdef class LinearBinaryCodeStruct(Binary - self.ith_word = &ith_word_linear - - def run(self, partition=None): -- """ -+ r""" - Perform the canonical labeling and automorphism group computation, - storing results to self. - -diff -up src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig src/sage/libs/ntl/ntl_mat_ZZ.pyx ---- src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/ntl/ntl_mat_ZZ.pyx 2023-03-13 08:43:33.262545927 -0600 -@@ -129,7 +129,7 @@ cdef class ntl_mat_ZZ(): - return unpickle_class_args, (ntl_mat_ZZ, (self.__nrows, self.__ncols, self.list())) - - def __repr__(self): -- """ -+ r""" - Return the string representation of self. - - EXAMPLES:: -diff -up src/sage/libs/symmetrica/sc.pxi.orig src/sage/libs/symmetrica/sc.pxi ---- src/sage/libs/symmetrica/sc.pxi.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/symmetrica/sc.pxi 2023-03-13 08:43:36.725482994 -0600 -@@ -103,7 +103,7 @@ def charvalue_symmetrica(irred, cls, tab - - - def kranztafel_symmetrica(a, b): -- """ -+ r""" - you enter the INTEGER objects, say a and b, and res becomes a - MATRIX object, the charactertable of S_b \wr S_a, co becomes a - VECTOR object of classorders and cl becomes a VECTOR object of -diff -up src/sage/matrix/matrix_integer_dense.pyx.orig src/sage/matrix/matrix_integer_dense.pyx ---- src/sage/matrix/matrix_integer_dense.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/matrix/matrix_integer_dense.pyx 2023-03-13 08:43:36.727482958 -0600 -@@ -757,7 +757,7 @@ cdef class Matrix_integer_dense(Matrix_d - return ans - - def _multiply_classical(self, Matrix_integer_dense right): -- """ -+ r""" - EXAMPLES:: - - sage: n = 3 -diff -up src/sage/matrix/matrix_modn_dense_template.pxi.orig src/sage/matrix/matrix_modn_dense_template.pxi ---- src/sage/matrix/matrix_modn_dense_template.pxi.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/matrix/matrix_modn_dense_template.pxi 2023-03-13 08:43:36.728482940 -0600 -@@ -649,7 +649,7 @@ cdef class Matrix_modn_dense_template(Ma - return (word_size, little_endian, s), 10 - - def _unpickle(self, data, int version): -- """ -+ r""" - TESTS: - - Test for char-sized modulus:: -@@ -2261,7 +2261,7 @@ cdef class Matrix_modn_dense_template(Ma - return Matrix_dense.determinant(self) - - cdef xgcd_eliminate(self, celement * row1, celement* row2, Py_ssize_t start_col): -- """ -+ r""" - Reduces ``row1`` and ``row2`` by a unimodular transformation - using the xgcd relation between their first coefficients ``a`` and - ``b``. -diff -up src/sage/misc/cachefunc.pyx.orig src/sage/misc/cachefunc.pyx ---- src/sage/misc/cachefunc.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/misc/cachefunc.pyx 2023-03-13 08:43:39.550431661 -0600 -@@ -834,7 +834,7 @@ cdef class CachedFunction(): - ## forward other questions to the cached function. - - def _instancedoc_(self): -- """ -+ r""" - Provide documentation for the cached function. - - A cached function shall inherit the documentation -diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py ---- src/sage/misc/sageinspect.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/misc/sageinspect.py 2023-03-13 08:43:39.551431643 -0600 -@@ -948,7 +948,7 @@ def _grep_first_pair_of_parentheses(s): - - - def _split_syntactical_unit(s): -- """ -+ r""" - Split off a sub-expression from the start of a given string. - - INPUT: -diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical/backends/generic_backend.pyx ---- src/sage/numerical/backends/generic_backend.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/numerical/backends/generic_backend.pyx 2023-03-13 08:43:39.552431625 -0600 -@@ -1388,7 +1388,7 @@ cdef class GenericBackend: - raise NotImplementedError() - - cpdef bint is_variable_basic(self, int index): -- """ -+ r""" - Test whether the given variable is basic. - - This assumes that the problem has been solved with the simplex method -@@ -1418,7 +1418,7 @@ cdef class GenericBackend: - raise NotImplementedError() - - cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the given variable is nonbasic at lower bound. - - This assumes that the problem has been solved with the simplex method -@@ -1448,7 +1448,7 @@ cdef class GenericBackend: - raise NotImplementedError() - - cpdef bint is_slack_variable_basic(self, int index): -- """ -+ r""" - Test whether the slack variable of the given row is basic. - - This assumes that the problem has been solved with the simplex method -@@ -1478,7 +1478,7 @@ cdef class GenericBackend: - raise NotImplementedError() - - cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the given variable is nonbasic at lower bound. - - This assumes that the problem has been solved with the simplex method -diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/backends/glpk_backend.pyx ---- src/sage/numerical/backends/glpk_backend.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/numerical/backends/glpk_backend.pyx 2023-03-13 08:43:39.553431607 -0600 -@@ -2316,7 +2316,7 @@ cdef class GLPKBackend(GenericBackend): - raise ValueError("This parameter is not available.") - - cpdef bint is_variable_basic(self, int index): -- """ -+ r""" - Test whether the given variable is basic. - - This assumes that the problem has been solved with the simplex method -@@ -2347,7 +2347,7 @@ cdef class GLPKBackend(GenericBackend): - return self.get_col_stat(index) == GLP_BS - - cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the given variable is nonbasic at lower bound. - This assumes that the problem has been solved with the simplex method - and a basis is available. Otherwise an exception will be raised. -@@ -2377,7 +2377,7 @@ cdef class GLPKBackend(GenericBackend): - return self.get_col_stat(index) == GLP_NL - - cpdef bint is_slack_variable_basic(self, int index): -- """ -+ r""" - Test whether the slack variable of the given row is basic. - - This assumes that the problem has been solved with the simplex method -@@ -2408,7 +2408,7 @@ cdef class GLPKBackend(GenericBackend): - return self.get_row_stat(index) == GLP_BS - - cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the slack variable of the given row is nonbasic at lower bound. - - This assumes that the problem has been solved with the simplex method -diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/numerical/backends/interactivelp_backend.pyx ---- src/sage/numerical/backends/interactivelp_backend.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/numerical/backends/interactivelp_backend.pyx 2023-03-13 08:43:39.553431607 -0600 -@@ -1065,7 +1065,7 @@ cdef class InteractiveLPBackend: - problem_type, ring, objective_constant_term=d) - - cpdef bint is_variable_basic(self, int index): -- """ -+ r""" - Test whether the given variable is basic. - - This assumes that the problem has been solved with the simplex method -@@ -1095,7 +1095,7 @@ cdef class InteractiveLPBackend: - return self.lp_std_form.decision_variables()[index] in self.final_dictionary.basic_variables() - - cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the given variable is nonbasic at lower bound. - - This assumes that the problem has been solved with the simplex method -@@ -1125,7 +1125,7 @@ cdef class InteractiveLPBackend: - return self.lp_std_form.decision_variables()[index] in self.final_dictionary.nonbasic_variables() - - cpdef bint is_slack_variable_basic(self, int index): -- """ -+ r""" - Test whether the slack variable of the given row is basic. - - This assumes that the problem has been solved with the simplex method -@@ -1155,7 +1155,7 @@ cdef class InteractiveLPBackend: - return self.lp_std_form.slack_variables()[index] in self.final_dictionary.basic_variables() - - cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): -- """ -+ r""" - Test whether the given variable is nonbasic at lower bound. - - This assumes that the problem has been solved with the simplex method -@@ -1187,7 +1187,7 @@ cdef class InteractiveLPBackend: - cpdef dictionary(self): - # Proposed addition to the general interface, - # which would for other solvers return backend dictionaries (#18804) -- """ -+ r""" - Return a dictionary representing the current basis. - - EXAMPLES:: -@@ -1222,7 +1222,7 @@ cdef class InteractiveLPBackend: - - cpdef interactive_lp_problem(self): - -- """ -+ r""" - Return the :class:`InteractiveLPProblem` object associated with this backend. - - EXAMPLES:: -diff -up src/sage/rings/complex_interval.pyx.orig src/sage/rings/complex_interval.pyx ---- src/sage/rings/complex_interval.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/complex_interval.pyx 2023-03-13 08:43:39.553431607 -0600 -@@ -1114,7 +1114,7 @@ cdef class ComplexIntervalFieldElement(s - return x - - def __invert__(self): -- """ -+ r""" - Return the multiplicative inverse of ``self``. - - EXAMPLES:: -diff -up src/sage/rings/finite_rings/hom_finite_field.pyx.orig src/sage/rings/finite_rings/hom_finite_field.pyx ---- src/sage/rings/finite_rings/hom_finite_field.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/finite_rings/hom_finite_field.pyx 2023-03-13 08:43:39.554431588 -0600 -@@ -147,7 +147,7 @@ cdef class SectionFiniteFieldHomomorphis - - - def _repr_(self): -- """ -+ r""" - Return a string representation of this section. - - EXAMPLES:: -diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_rings/integer_mod.pyx ---- src/sage/rings/finite_rings/integer_mod.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/finite_rings/integer_mod.pyx 2023-03-13 08:43:39.555431570 -0600 -@@ -2243,7 +2243,7 @@ cdef class IntegerMod_gmp(IntegerMod_abs - return int(self.lift()) - - def __pow__(IntegerMod_gmp self, exp, m): # NOTE: m ignored, always use modulus of parent ring -- """ -+ r""" - EXAMPLES:: - - sage: R = Integers(10^10) -@@ -3540,7 +3540,7 @@ cdef class IntegerMod_int64(IntegerMod_a - return self._new_c(self.ivalue >> (-k)) - - def __pow__(IntegerMod_int64 self, exp, m): # NOTE: m ignored, always use modulus of parent ring -- """ -+ r""" - EXAMPLES:: - - sage: R = Integers(10) -diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sage/rings/polynomial/multi_polynomial_libsingular.pyx ---- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2023-03-13 08:43:44.190347338 -0600 -@@ -2487,7 +2487,7 @@ cdef class MPolynomial_libsingular(MPoly - return char_to_str(s) - - def _latex_(self): -- """ -+ r""" - Return a polynomial LaTeX representation of this polynomial. - - EXAMPLES:: -diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/polynomial/polynomial_element.pyx ---- src/sage/rings/polynomial/polynomial_element.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/polynomial_element.pyx 2023-03-13 08:43:44.194347266 -0600 -@@ -6832,8 +6832,8 @@ cdef class Polynomial(CommutativeAlgebra - where the roots `a` and `b` are to be considered in the algebraic - closure of the fraction field of the coefficients and counted with - multiplicities. If the polynomials are not monic this quantity is -- multiplied by `\\alpha_1^{deg(p_2)} \\alpha_2^{deg(p_1)}` where -- `\\alpha_1` and `\\alpha_2` are the leading coefficients of `p_1` and -+ multiplied by `\alpha_1^{deg(p_2)} \alpha_2^{deg(p_1)}` where -+ `\alpha_1` and `\alpha_2` are the leading coefficients of `p_1` and - `p_2` respectively. - - INPUT: -diff -up src/sage/rings/real_double_element_gsl.pyx.orig src/sage/rings/real_double_element_gsl.pyx ---- src/sage/rings/real_double_element_gsl.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/real_double_element_gsl.pyx 2023-03-13 08:43:45.742319138 -0600 -@@ -227,7 +227,7 @@ cdef class RealDoubleElement_gsl(RealDou - return a - - def log(self, base=None): -- """ -+ r""" - Return the logarithm. - - INPUT: -diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx ---- src/sage/rings/real_mpfi.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/real_mpfi.pyx 2023-03-13 08:43:45.743319120 -0600 -@@ -1309,7 +1309,7 @@ cdef class RealIntervalFieldElement(Ring - return self.str(10) - - def _latex_(self): -- """ -+ r""" - Return a latex representation of ``self``. - - EXAMPLES:: -diff -up src/sage/rings/tate_algebra_element.pyx.orig src/sage/rings/tate_algebra_element.pyx ---- src/sage/rings/tate_algebra_element.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/tate_algebra_element.pyx 2023-03-13 08:43:46.838299224 -0600 -@@ -3448,7 +3448,7 @@ cdef class TateAlgebraElement(Commutativ - - @coerce_binop - def Spoly(self, other): -- """ -+ r""" - Return the S-polynomial of this series and ``other``. - - INPUT: -diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx ---- src/sage/symbolic/expression.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/expression.pyx 2023-03-13 08:43:46.840299188 -0600 -@@ -7,7 +7,7 @@ - # distutils: include_dirs = SINGULAR_INCDIR - # pynac/basic.h includes - # factory/factory.h so this ^ is needed to find it --""" -+r""" - Symbolic Expressions - - RELATIONAL EXPRESSIONS: diff --git a/sagemath-extensions.patch b/sagemath-extensions.patch deleted file mode 100644 index e0fea05..0000000 --- a/sagemath-extensions.patch +++ /dev/null @@ -1,182 +0,0 @@ -diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/env.py 2023-03-13 09:26:16.468693261 -0600 -@@ -523,7 +523,8 @@ def cython_aliases(required_modules=None - aliases[var + "INCDIR"] = pc['include_dirs'] - aliases[var + "LIBDIR"] = pc['library_dirs'] - aliases[var + "LIBEXTRA"] = list(filter(lambda s: not s.startswith(('-l','-L')), libs.split())) -- aliases[var + "LIBRARIES"] = pc['libraries'] -+ aliases[var + "LIBRARIES"] = pc['libraries'] + ['gomp'] -+ aliases['Singular_INCDIR'] = ['/usr/include/singular', '/usr/include/factory'] - - # uname-specific flags - UNAME = os.uname() -diff -up src/sage/graphs/mcqd.pyx.orig src/sage/graphs/mcqd.pyx ---- src/sage/graphs/mcqd.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/graphs/mcqd.pyx 2023-03-13 09:26:16.468693261 -0600 -@@ -1,4 +1,5 @@ - # distutils: language = c++ -+# distutils: libraries = mcqd - # sage_setup: distribution = sagemath-mcqd - - from cysignals.signals cimport sig_on, sig_off -diff -up src/sage/libs/arb/arb.pxd.orig src/sage/libs/arb/arb.pxd ---- src/sage/libs/arb/arb.pxd.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/arb/arb.pxd 2023-03-13 09:26:16.468693261 -0600 -@@ -1,4 +1,5 @@ - # distutils: libraries = gmp flint ARB_LIBRARY -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - # distutils: depends = arb.h - - from sage.libs.arb.types cimport * -diff -up src/sage/libs/arb/arb_version.pyx.orig src/sage/libs/arb/arb_version.pyx ---- src/sage/libs/arb/arb_version.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/arb/arb_version.pyx 2023-03-13 09:26:16.468693261 -0600 -@@ -1,4 +1,5 @@ - # -*- coding: utf-8 -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - from sage.libs.arb.arb cimport arb_version - from sage.cpython.string cimport char_to_str - -diff -up src/sage/libs/arb/arith.pyx.orig src/sage/libs/arb/arith.pyx ---- src/sage/libs/arb/arith.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/arb/arith.pyx 2023-03-13 09:26:16.468693261 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - """ - Arithmetic functions using the arb library - """ -diff -up src/sage/libs/mpmath/ext_impl.pyx.orig src/sage/libs/mpmath/ext_impl.pyx ---- src/sage/libs/mpmath/ext_impl.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/mpmath/ext_impl.pyx 2023-03-13 09:26:16.469693242 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/flint - """ - This module provides the core implementation of multiprecision - floating-point arithmetic. Operations are done in-place. -diff -up src/sage/libs/mpmath/ext_libmp.pyx.orig src/sage/libs/mpmath/ext_libmp.pyx ---- src/sage/libs/mpmath/ext_libmp.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/mpmath/ext_libmp.pyx 2023-03-13 09:26:16.469693242 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/flint - """ - Faster versions of some key functions in mpmath.libmp - """ -diff -up src/sage/libs/mpmath/ext_main.pyx.orig src/sage/libs/mpmath/ext_main.pyx ---- src/sage/libs/mpmath/ext_main.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/mpmath/ext_main.pyx 2023-03-13 09:26:16.469693242 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/flint - """ - mpmath floating-point numbers - -diff -up src/sage/libs/mpmath/utils.pyx.orig src/sage/libs/mpmath/utils.pyx ---- src/sage/libs/mpmath/utils.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/mpmath/utils.pyx 2023-03-13 09:26:16.470693224 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/flint - """ - Utilities for Sage-mpmath interaction - -diff -up src/sage/matrix/matrix_complex_ball_dense.pyx.orig src/sage/matrix/matrix_complex_ball_dense.pyx ---- src/sage/matrix/matrix_complex_ball_dense.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/matrix/matrix_complex_ball_dense.pyx 2023-03-13 09:26:16.470693224 -0600 -@@ -1,4 +1,5 @@ - # distutils: libraries = ARB_LIBRARY -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - r""" - Arbitrary precision complex ball matrices using Arb - -diff -up src/sage/matrix/matrix_cyclo_dense.pyx.orig src/sage/matrix/matrix_cyclo_dense.pyx ---- src/sage/matrix/matrix_cyclo_dense.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/matrix/matrix_cyclo_dense.pyx 2023-03-13 09:26:16.470693224 -0600 -@@ -1,7 +1,7 @@ - # distutils: language = c++ - # distutils: libraries = NTL_LIBRARIES - # distutils: extra_compile_args = NTL_CFLAGS --# distutils: include_dirs = NTL_INCDIR -+# distutils: include_dirs = NTL_INCDIR /usr/include/arb /usr/include/flint - # distutils: library_dirs = NTL_LIBDIR - # distutils: extra_link_args = NTL_LIBEXTRA - """ -diff -up src/sage/matrix/matrix_mpolynomial_dense.pyx.orig src/sage/matrix/matrix_mpolynomial_dense.pyx ---- src/sage/matrix/matrix_mpolynomial_dense.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/matrix/matrix_mpolynomial_dense.pyx 2023-03-13 09:26:16.471693206 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/singular /usr/include/factory - """ - Dense matrices over multivariate polynomials over fields - -diff -up src/sage/rings/complex_arb.pyx.orig src/sage/rings/complex_arb.pyx ---- src/sage/rings/complex_arb.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/complex_arb.pyx 2023-03-13 09:26:16.471693206 -0600 -@@ -1,4 +1,5 @@ - # -*- coding: utf-8 -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - r""" - Arbitrary precision complex balls using Arb - -diff -up src/sage/rings/number_field/number_field_element_quadratic.pyx.orig src/sage/rings/number_field/number_field_element_quadratic.pyx ---- src/sage/rings/number_field/number_field_element_quadratic.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/number_field/number_field_element_quadratic.pyx 2023-03-13 10:54:33.688631507 -0600 -@@ -1,6 +1,6 @@ - # distutils: libraries = NTL_LIBRARIES - # distutils: extra_compile_args = NTL_CFLAGS --# distutils: include_dirs = NTL_INCDIR -+# distutils: include_dirs = NTL_INCDIR /usr/include/arb /usr/include/flint - # distutils: library_dirs = NTL_LIBDIR - # distutils: extra_link_args = NTL_LIBEXTRA - # distutils: language = c++ -diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sage/rings/polynomial/multi_polynomial_libsingular.pyx ---- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2023-03-13 08:43:44.190347338 -0600 -+++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2023-03-13 09:26:16.473693169 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/singular /usr/include/factory - r""" - Multivariate Polynomials via libSINGULAR - -diff -up src/sage/rings/polynomial/multi_polynomial.pyx.orig src/sage/rings/polynomial/multi_polynomial.pyx ---- src/sage/rings/polynomial/multi_polynomial.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/multi_polynomial.pyx 2023-03-13 09:26:16.473693169 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/singular /usr/include/factory - r""" - Base class for elements of multivariate polynomial rings - """ -diff -up src/sage/rings/polynomial/plural.pyx.orig src/sage/rings/polynomial/plural.pyx ---- src/sage/rings/polynomial/plural.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/plural.pyx 2023-03-13 09:26:16.474693151 -0600 -@@ -1,3 +1,4 @@ -+# distutils: include_dirs = /usr/include/singular /usr/include/factory - r""" - Noncommutative polynomials via libSINGULAR/Plural - -diff -up src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig src/sage/rings/polynomial/polynomial_complex_arb.pyx ---- src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/polynomial_complex_arb.pyx 2023-03-13 09:26:16.474693151 -0600 -@@ -1,4 +1,5 @@ - # -*- coding: utf-8 -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - r""" - Univariate polynomials over `\CC` with interval coefficients using Arb. - -diff -up src/sage/rings/real_arb.pyx.orig src/sage/rings/real_arb.pyx ---- src/sage/rings/real_arb.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/real_arb.pyx 2023-03-13 09:26:16.474693151 -0600 -@@ -1,4 +1,5 @@ - # -*- coding: utf-8 -+# distutils: include_dirs = /usr/include/arb /usr/include/flint - r""" - Arbitrary precision real balls using Arb - -diff -up src/sage_setup/command/sage_build_cython.py.orig src/sage_setup/command/sage_build_cython.py ---- src/sage_setup/command/sage_build_cython.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage_setup/command/sage_build_cython.py 2023-03-13 09:26:16.475693132 -0600 -@@ -205,6 +205,7 @@ class sage_build_cython(Command): - self.library_order = library_order - # Search for dependencies in the source tree and add to the list of include directories - self.sage_include_dirs = sage_include_directories(use_sources=True) -+ self.sage_include_dirs.extend(['@@CYSIGNALS@@']) - - from Cython.Build import cythonize - import Cython.Compiler.Options diff --git a/sagemath-flexiblas.patch b/sagemath-flexiblas.patch deleted file mode 100644 index ed2cbf1..0000000 --- a/sagemath-flexiblas.patch +++ /dev/null @@ -1,281 +0,0 @@ -diff -up configure.orig configure ---- configure.orig 2022-09-19 16:39:46.000000000 -0600 -+++ configure 2023-01-15 19:47:16.551480424 -0700 -@@ -17604,12 +17604,12 @@ if test -n "$OPENBLAS_CFLAGS"; then - pkg_cv_OPENBLAS_CFLAGS="$OPENBLAS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas >= 0.2.20\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "openblas >= 0.2.20") 2>&5 -+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas >= 3.0.0\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "flexiblas >= 3.0.0") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_OPENBLAS_CFLAGS=`$PKG_CONFIG --cflags "openblas >= 0.2.20" 2>/dev/null` -+ pkg_cv_OPENBLAS_CFLAGS=`$PKG_CONFIG --cflags "flexiblas >= 3.0.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -17621,12 +17621,12 @@ if test -n "$OPENBLAS_LIBS"; then - pkg_cv_OPENBLAS_LIBS="$OPENBLAS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas >= 0.2.20\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "openblas >= 0.2.20") 2>&5 -+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas >= 3.0.0\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "flexiblas >= 3.0.0") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_OPENBLAS_LIBS=`$PKG_CONFIG --libs "openblas >= 0.2.20" 2>/dev/null` -+ pkg_cv_OPENBLAS_LIBS=`$PKG_CONFIG --libs "flexiblas >= 3.0.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -17647,9 +17647,9 @@ else - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openblas >= 0.2.20" 2>&1` -+ OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "flexiblas >= 3.0.0" 2>&1` - else -- OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openblas >= 0.2.20" 2>&1` -+ OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "flexiblas >= 3.0.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$OPENBLAS_PKG_ERRORS" >&5 -@@ -17673,17 +17673,17 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ - /* end confdefs.h. */ - - namespace conftest { -- extern "C" int openblas_get_config (); -+ extern "C" int flexiblas_get_version (); - } - int - main (void) - { --return conftest::openblas_get_config (); -+return conftest::flexiblas_get_version (); - ; - return 0; - } - _ACEOF --for ac_lib in '' openblas cblas blas -+for ac_lib in '' flexiblas cblas blas - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -17740,22 +17740,20 @@ else $as_nop - /* end confdefs.h. */ - - #include -- char *openblas_get_config(void); -+ void flexiblas_get_version(void); - int version[3]; - int - main (void) - { - version[0] = version[1] = version[2] = 0; - /*printf("%s", openblas_get_config());*/ -- if (sscanf(openblas_get_config(), "OpenBLAS %d.%d.%d", -- version, version+1, version+2) < 1) -- return 1; -+ flexiblas_get_version(&version[0], &version[1], &version[2]); - if ( 10000 * version[0] - + 100 * version[1] - + version[2] -- < 10000 * 0 -- + 100 * 2 -- + 20) -+ < 10000 * 3 -+ + 100 * 0 -+ + 0) - return 1; - ; - return 0; -@@ -17806,7 +17804,7 @@ return conftest::cblas_dgemm (); - return 0; - } - _ACEOF --for ac_lib in '' openblas cblas blas -+for ac_lib in '' flexiblas cblas blas - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -17873,7 +17871,7 @@ return conftest::dgeqrf (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -17940,7 +17938,7 @@ return conftest::dgeqrf_ (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18007,7 +18005,7 @@ return conftest::DGEQRF (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18074,7 +18072,7 @@ return conftest::DGEQRF_ (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18165,17 +18163,17 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ - /* end confdefs.h. */ - - namespace conftest { -- extern "C" int openblas_get_config (); -+ extern "C" int flexiblas_get_version (); - } - int - main (void) - { --return conftest::openblas_get_config (); -+return conftest::flexiblas_get_version (); - ; - return 0; - } - _ACEOF --for ac_lib in '' openblas cblas blas -+for ac_lib in '' flexiblas cblas blas - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18232,22 +18230,20 @@ else $as_nop - /* end confdefs.h. */ - - #include -- char *openblas_get_config(void); -+ void flexiblas_get_version(void); - int version[3]; - int - main (void) - { - version[0] = version[1] = version[2] = 0; - /*printf("%s", openblas_get_config());*/ -- if (sscanf(openblas_get_config(), "OpenBLAS %d.%d.%d", -- version, version+1, version+2) < 1) -- return 1; -+ flexiblas_get_version(&version[0], &version[1], &version[2]); - if ( 10000 * version[0] - + 100 * version[1] - + version[2] -- < 10000 * 0 -- + 100 * 2 -- + 20) -+ < 10000 * 3 -+ + 100 * 0 -+ + 0) - return 1; - ; - return 0; -@@ -18298,7 +18294,7 @@ return conftest::cblas_dgemm (); - return 0; - } - _ACEOF --for ac_lib in '' openblas cblas blas -+for ac_lib in '' flexiblas cblas blas - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18365,7 +18361,7 @@ return conftest::dgeqrf (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18432,7 +18428,7 @@ return conftest::dgeqrf_ (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18499,7 +18495,7 @@ return conftest::DGEQRF (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18566,7 +18562,7 @@ return conftest::DGEQRF_ (); - return 0; - } - _ACEOF --for ac_lib in '' openblas lapack -+for ac_lib in '' flexiblas lapack - do - if test -z "$ac_lib"; then - ac_res="none required" -@@ -18648,12 +18644,12 @@ if test -n "$OPENBLASPCDIR"; then - pkg_cv_OPENBLASPCDIR="$OPENBLASPCDIR" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "openblas") 2>&5 -+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "flexiblas") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_OPENBLASPCDIR=`$PKG_CONFIG --variable="pcfiledir" "openblas" 2>/dev/null` -+ pkg_cv_OPENBLASPCDIR=`$PKG_CONFIG --variable="pcfiledir" "flexiblas" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -18876,7 +18872,7 @@ fi - then : - - -- SAGE_OPENBLAS_PC_COMMAND="\$(LN) -sf \"$OPENBLASPCDIR/openblas.pc\" \"\$(@)\"" -+ SAGE_OPENBLAS_PC_COMMAND="\$(LN) -sf \"$OPENBLASPCDIR/flexiblas.pc\" \"\$(@)\"" - - - if test x$sage_install_blas_pc = xyes -diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2023-01-15 17:21:15.296585738 -0700 -+++ src/sage/env.py 2023-01-15 17:22:34.106086752 -0700 -@@ -222,7 +222,7 @@ FOURTITWO_PPI = var("FOURTITWO_PPI") - FOURTITWO_CIRCUITS = var("FOURTITWO_CIRCUITS") - FOURTITWO_GROEBNER = var("FOURTITWO_GROEBNER") - ARB_LIBRARY = var("ARB_LIBRARY", "arb") --CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "cblas:openblas:blas") -+CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "flexiblas:cblas:openblas:blas") - ECL_CONFIG = var("ECL_CONFIG", "ecl-config") - NTL_INCDIR = var("NTL_INCDIR") - NTL_LIBDIR = var("NTL_LIBDIR") -@@ -478,7 +478,7 @@ def cython_aliases(required_modules=None - for lib, required in itertools.chain(((lib, True) for lib in required_modules), - ((lib, False) for lib in optional_modules)): - var = lib.upper().replace("-", "") + "_" -- if lib == 'cblas': -+ if lib == 'cblas' or lib == 'lapack': - lib = get_cblas_pc_module_name() - if lib == 'zlib': - aliases[var + "CFLAGS"] = "" diff --git a/sagemath-giac.patch b/sagemath-giac.patch deleted file mode 100644 index 58ea8b2..0000000 --- a/sagemath-giac.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -up build/pkgs/giac/spkg-configure.m4.orig build/pkgs/giac/spkg-configure.m4 ---- build/pkgs/giac/spkg-configure.m4.orig 2022-09-19 16:38:18.000000000 -0600 -+++ build/pkgs/giac/spkg-configure.m4 2023-01-15 19:56:31.030581488 -0700 -@@ -21,7 +21,7 @@ SAGE_SPKG_CONFIGURE([giac], [ - AC_CHECK_HEADER([giac/giac.h], [ - AC_SEARCH_LIBS([ConvertUTF16toUTF8], [giac], [ - ], [sage_spkg_install_giac=yes]) -- ], [sage_spkg_install_giac=yes]) -+ ], [sage_spkg_install_giac=yes], [typedef unsigned char uchar;]) - m4_popdef([GIAC_MIN_VERSION]) - m4_popdef([GIAC_MAX_VERSION]) - ]) -diff -up configure.orig configure ---- configure.orig 2023-01-15 19:55:21.828822178 -0700 -+++ configure 2023-01-15 19:58:12.425759949 -0700 -@@ -26479,7 +26479,8 @@ printf "%s\n" "$ac_cv_path_GIAC" >&6; } - then : - sage_spkg_install_giac=yes - fi -- ac_fn_cxx_check_header_compile "$LINENO" "giac/giac.h" "ac_cv_header_giac_giac_h" "$ac_includes_default" -+ ac_fn_cxx_check_header_compile "$LINENO" "giac/giac.h" "ac_cv_header_giac_giac_h" "typedef unsigned char uchar; -+$ac_includes_default" - if test "x$ac_cv_header_giac_giac_h" = xyes - then : - -diff -up src/sage/libs/giac/giac.pxd.orig src/sage/libs/giac/giac.pxd ---- src/sage/libs/giac/giac.pxd.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/sage/libs/giac/giac.pxd 2023-01-15 19:55:21.830822142 -0700 -@@ -12,6 +12,11 @@ - from sage.libs.gmp.mpz cimport mpz_t, mpz_set - from libcpp.string cimport string - -+cdef extern from *: -+ """ -+ typedef unsigned char uchar; -+ """ -+ - cdef extern from "giac/giac.h" namespace "giac": - cdef cppclass context: - context() -diff -up src/sage/libs/giac/misc.h.orig src/sage/libs/giac/misc.h ---- src/sage/libs/giac/misc.h.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/sage/libs/giac/misc.h 2023-01-15 19:55:21.830822142 -0700 -@@ -1,5 +1,6 @@ - #ifndef GIACPYMISC_H - #define GIACPYMISC_H -+typedef unsigned char uchar; - #include - - #include -diff -up src/sage/symbolic/ginac/mpoly-giac.cpp.orig src/sage/symbolic/ginac/mpoly-giac.cpp ---- src/sage/symbolic/ginac/mpoly-giac.cpp.orig 2022-09-19 16:38:19.000000000 -0600 -+++ src/sage/symbolic/ginac/mpoly-giac.cpp 2023-01-15 19:55:21.831822125 -0700 -@@ -44,6 +44,7 @@ - #include "function.h" - #include "utils.h" - -+typedef unsigned char uchar; - #include - #include - -diff -up src/sage/symbolic/ginac/numeric.cpp.orig src/sage/symbolic/ginac/numeric.cpp ---- src/sage/symbolic/ginac/numeric.cpp.orig 2023-01-15 19:52:42.820659135 -0700 -+++ src/sage/symbolic/ginac/numeric.cpp 2023-01-15 19:55:21.831822125 -0700 -@@ -77,6 +77,7 @@ - #undef _POSIX_C_SOURCE - #undef _XOPEN_SOURCE - -+typedef unsigned char uchar; - #include - #include - #include diff --git a/sagemath-intersphinx.patch b/sagemath-intersphinx.patch deleted file mode 100644 index 429f835..0000000 --- a/sagemath-intersphinx.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up src/sage_docbuild/conf.py.orig src/sage_docbuild/conf.py ---- src/sage_docbuild/conf.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage_docbuild/conf.py 2023-03-13 09:53:42.670555040 -0600 -@@ -228,9 +228,8 @@ def set_intersphinx_mappings(app, config - - app.config.intersphinx_mapping = { - 'python': ('https://docs.python.org/', -- os.path.join(SAGE_DOC_SRC, "common", -- "python{}.inv".format(python_version))), -- 'pplpy': (PPLPY_DOCS, None)} -+ '/usr/share/doc/python3-docs/html/objects.inv'), -+ 'pplpy': (PPLPY_DOCS, '/usr/share/doc/python3-pplpy-devel/objects.inv')} - - # Add master intersphinx mapping - dst = os.path.join(invpath, 'objects.inv') diff --git a/sagemath-jmol.patch b/sagemath-jmol.patch deleted file mode 100644 index 97a0bc2..0000000 --- a/sagemath-jmol.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py ---- src/sage/interfaces/jmoldata.py.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/sage/interfaces/jmoldata.py 2023-01-15 17:05:52.942389170 -0700 -@@ -153,8 +153,6 @@ class JmolData(SageObject): - True - sage: archive.close() - """ -- # Set up paths, file names and scripts -- jmolpath = os.path.join(JMOL_DIR, "JmolData.jar") - target_native = targetfile - - if sys.platform == 'cygwin': -@@ -176,12 +174,14 @@ class JmolData(SageObject): - with open(scratchout, 'w') as jout: - # Now call the java application and write the file. - env = dict(os.environ) -- env['LC_ALL'] = 'C' -- env['LANG'] = 'C' -- subprocess.call(["java", "-Xmx512m", "-Djava.awt.headless=true", -- "-jar", jmolpath, "-iox", "-g", size_arg, -- "-J", launchscript, "-j", imagescript], -- stdout=jout, stderr=jout, env=env) -+ env['LC_ALL'] = 'C.UTF-8' -+ env['LANG'] = 'C.UTF-8' -+ try: -+ subprocess.call(["jmol", "-n", "-g", size_arg, -+ "-J", launchscript, "-j", imagescript], -+ timeout=300, stdout=jout, stderr=jout, env=env) -+ except: -+ pass - if not os.path.isfile(targetfile): - raise RuntimeError(f"Jmol failed to create file {targetfile}: {Path(scratchout).read_text()}") - os.unlink(scratchout) diff --git a/sagemath-latte.patch b/sagemath-latte.patch deleted file mode 100644 index 0310862..0000000 --- a/sagemath-latte.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up src/sage/features/latte.py.orig src/sage/features/latte.py ---- src/sage/features/latte.py.orig 2022-05-15 16:11:11.000000000 -0600 -+++ src/sage/features/latte.py 2022-06-01 11:03:23.813894057 -0600 -@@ -21,7 +21,7 @@ class Latte_count(Executable): - sage: isinstance(Latte_count(), Latte_count) - True - """ -- Executable.__init__(self, "count", executable="count", -+ Executable.__init__(self, "count", executable="latte-count", - spkg="latte_int", - url=LATTE_URL) - -@@ -38,7 +38,7 @@ class Latte_integrate(Executable): - sage: isinstance(Latte_integrate(), Latte_integrate) - True - """ -- Executable.__init__(self, "integrate", executable="integrate", -+ Executable.__init__(self, "integrate", executable="latte-integrate", - spkg="latte_int", - url=LATTE_URL) - diff --git a/sagemath-lcalc.patch b/sagemath-lcalc.patch deleted file mode 100644 index f3f8e1f..0000000 --- a/sagemath-lcalc.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -up src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig src/sage/libs/lcalc/lcalc_Lfunction.pyx ---- src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/lcalc/lcalc_Lfunction.pyx 2021-06-02 17:12:56.077802570 -0600 -@@ -1,5 +1,5 @@ - # distutils: libraries = m NTL_LIBRARIES Lfunction --# distutils: extra_compile_args = NTL_CFLAGS -O3 -ffast-math -+# distutils: extra_compile_args = NTL_CFLAGS -std=gnu++11 -ffast-math - # distutils: include_dirs = NTL_INCDIR - # distutils: library_dirs = NTL_LIBDIR - # distutils: extra_link_args = NTL_LIBEXTRA diff --git a/sagemath-libgap.patch b/sagemath-libgap.patch deleted file mode 100644 index 613503b..0000000 --- a/sagemath-libgap.patch +++ /dev/null @@ -1,701 +0,0 @@ -diff -up src/doc/en/thematic_tutorials/lie/weyl_groups.rst.orig src/doc/en/thematic_tutorials/lie/weyl_groups.rst ---- src/doc/en/thematic_tutorials/lie/weyl_groups.rst.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/doc/en/thematic_tutorials/lie/weyl_groups.rst 2023-03-13 09:42:01.111404689 -0600 -@@ -139,12 +139,12 @@ string, which you can print:: - X.1 1 1 1 1 1 1 1 1 1 1 1 1 1 - X.2 1 -1 1 1 -1 1 1 -1 -1 -1 1 1 1 - X.3 2 . 2 -1 . 2 2 . . . -1 2 2 -- X.4 3 -1 -1 . 1 -1 3 -1 1 -1 . -1 3 -- X.5 3 -1 -1 . 1 3 -1 -1 -1 1 . -1 3 -- X.6 3 1 -1 . -1 -1 3 1 -1 1 . -1 3 -- X.7 3 1 -1 . -1 3 -1 1 1 -1 . -1 3 -- X.8 3 -1 3 . -1 -1 -1 -1 1 1 . -1 3 -- X.9 3 1 3 . 1 -1 -1 1 -1 -1 . -1 3 -+ X.4 3 -1 -1 . 1 3 -1 -1 -1 1 . -1 3 -+ X.5 3 1 -1 . -1 3 -1 1 1 -1 . -1 3 -+ X.6 3 -1 3 . -1 -1 -1 -1 1 1 . -1 3 -+ X.7 3 -1 -1 . 1 -1 3 -1 1 -1 . -1 3 -+ X.8 3 1 3 . 1 -1 -1 1 -1 -1 . -1 3 -+ X.9 3 1 -1 . -1 -1 3 1 -1 1 . -1 3 - X.10 4 -2 . -1 . . . 2 . . 1 . -4 - X.11 4 2 . -1 . . . -2 . . 1 . -4 - X.12 6 . -2 . . -2 -2 . . . . 2 6 -diff -up src/sage/coding/linear_code.py.orig src/sage/coding/linear_code.py ---- src/sage/coding/linear_code.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/coding/linear_code.py 2023-03-13 09:42:01.112404670 -0600 -@@ -465,7 +465,10 @@ class AbstractLinearCode(AbstractLinearC - 0 - sage: C = codes.HammingCode(GF(4, 'z'), 3) - sage: C.automorphism_group_gens() -- ([((1, 1, 1, 1, 1, z + 1, z, z + 1, z, z, z, 1, 1, z + 1, z + 1, z, z + 1, z, z + 1, z + 1, z + 1); (1,14,6,7,4,10,11,19)(2,8,16,13,3,17,21,15)(9,12,18,20), Ring endomorphism of Finite Field in z of size 2^2 -+ ([((1, 1, 1, z, z + 1, 1, 1, 1, 1, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z); (1,13,14,20)(2,21,8,18,7,16,19,15)(3,10,5,12,17,9,6,4), Ring endomorphism of Finite Field in z of size 2^2 -+ Defn: z |--> z + 1), -+ ((z, 1, z, z, z, z + 1, z, z, z, z, z, z, z + 1, z, z, z, z, z + 1, z, z, z); (1,11,5,12,3,19)(2,8)(6,18,13)(7,17,15)(9,10,14,16,20,21), Ring endomorphism of Finite Field in z of size 2^2 -+ Defn: z |--> z + 1), - Defn: z |--> z + 1), - ((z + 1, 1, 1, z, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z + 1, 1, z, z + 1, z + 1, z); (1,18,6,19,2,9,17,10,13,14,21,11,4,5,12)(3,20,7,16,8), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z), -@@ -473,19 +476,20 @@ class AbstractLinearCode(AbstractLinearC - Defn: z |--> z)], - 362880) - sage: C.automorphism_group_gens(equivalence="linear") -- ([((z + 1, 1, z + 1, z + 1, z + 1, z, 1, z, 1, 1, 1, 1, z + 1, z + 1, z + 1, z, z, 1, z, z, z); (1,15,2,8,16,18,3)(4,9,12,13,20,10,11)(5,21,14,6,7,19,17), Ring endomorphism of Finite Field in z of size 2^2 -+ ([((z, 1, z + 1, z + 1, 1, z + 1, z, 1, z + 1, z + 1, 1, z, 1, z + 1, z, 1, z, 1, z + 1, 1, 1); (1,12,11,10,6,8,9,20,13,21,5,14,3,16,17,19,7,4,2,15,18), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z), -- ((z + 1, z + 1, z + 1, z + 1, z + 1, 1, z, 1, z, z, z, 1, z, 1, 1, 1, z + 1, z + 1, z + 1, 1, z); (1,15,21,8,9)(2,18,5,3,11,16,7,10,19,13,12,4,17,6,20), Ring endomorphism of Finite Field in z of size 2^2 -+ ((z + 1, z + 1, z + 1, z, 1, 1, z, z, 1, z + 1, z, 1, 1, z, 1, z + 1, z, z + 1, z + 1, 1, z); (1,3,18,2,17,6,19)(4,15,13,20,7,14,16)(5,11,8,21,12,9,10), Ring endomorphism of Finite Field in z of size 2^2 -+ Defn: z |--> z), - Defn: z |--> z), - ((z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1); (), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z)], - 181440) - sage: C.automorphism_group_gens(equivalence="permutational") -- ([((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (1,19)(3,17)(4,21)(5,20)(7,14)(9,12)(10,16)(11,15), Ring endomorphism of Finite Field in z of size 2^2 -+ ([((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (1,11)(3,10)(4,9)(5,7)(12,21)(14,20)(15,19)(16,17), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z), -- ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (1,11)(3,10)(4,9)(5,7)(12,21)(14,20)(15,19)(16,17), Ring endomorphism of Finite Field in z of size 2^2 -+ ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (2,18)(3,19)(4,10)(5,16)(8,13)(9,14)(11,21)(15,20), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z), -- ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (1,17)(2,8)(3,14)(4,10)(7,12)(9,19)(13,18)(15,20), Ring endomorphism of Finite Field in z of size 2^2 -+ ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (1,19)(3,17)(4,21)(5,20)(7,14)(9,12)(10,16)(11,15), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z), - ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); (2,13)(3,14)(4,20)(5,11)(8,18)(9,19)(10,15)(16,21), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z)], -@@ -691,10 +695,10 @@ class AbstractLinearCode(AbstractLinearC - sage: C_iso == aut_group_can_label.get_canonical_form() - True - sage: aut_group_can_label.get_autom_gens() -- [((1, 1, 1, 1, 1, z + 1, z, z + 1, z, z, z, 1, 1, z + 1, z + 1, z, z + 1, z, z + 1, z + 1, z + 1); (1,14,6,7,4,10,11,19)(2,8,16,13,3,17,21,15)(9,12,18,20), Ring endomorphism of Finite Field in z of size 2^2 -+ [((1, 1, 1, z, z + 1, 1, 1, 1, 1, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z); (1,13,14,20)(2,21,8,18,7,16,19,15)(3,10,5,12,17,9,6,4), Ring endomorphism of Finite Field in z of size 2^2 -++ Defn: z |--> z + 1), -++ ((z, 1, z, z, z, z + 1, z, z, z, z, z, z, z + 1, z, z, z, z, z + 1, z, z, z); (1,11,5,12,3,19)(2,8)(6,18,13)(7,17,15)(9,10,14,16,20,21), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z + 1), -- ((z + 1, 1, 1, z, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z + 1, 1, z, z + 1, z + 1, z); (1,18,6,19,2,9,17,10,13,14,21,11,4,5,12)(3,20,7,16,8), Ring endomorphism of Finite Field in z of size 2^2 -- Defn: z |--> z), - ((z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z); (), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z)] - """ -diff -up src/sage/combinat/root_system/hecke_algebra_representation.py.orig src/sage/combinat/root_system/hecke_algebra_representation.py ---- src/sage/combinat/root_system/hecke_algebra_representation.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/combinat/root_system/hecke_algebra_representation.py 2023-03-13 09:42:01.112404670 -0600 -@@ -357,7 +357,7 @@ class HeckeAlgebraRepresentation(WithEqu - sage: q1, q2 = K.gens() - sage: KW = W.algebra(K) - sage: x = KW.an_element(); x -- 123 + 3*32 + 2*3 + e -+ 123 + 3*2312 + 2*31 + e - - sage: T = KW.demazure_lusztig_operators(q1,q2) - sage: T12 = T.Tw( (1,2) ) -diff -up src/sage/combinat/symmetric_group_algebra.py.orig src/sage/combinat/symmetric_group_algebra.py ---- src/sage/combinat/symmetric_group_algebra.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/combinat/symmetric_group_algebra.py 2023-03-13 09:42:01.113404652 -0600 -@@ -101,7 +101,7 @@ def SymmetricGroupAlgebra(R, W, category - sage: SGA.group() - Weyl Group of type ['A', 3] (as a matrix group acting on the ambient space) - sage: SGA.an_element() -- s1*s2*s3 + 3*s3*s2 + 2*s3 + 1 -+ s1*s2*s3 + 3*s2*s3*s1*s2 + 2*s3*s1 + 1 - - The preferred way to construct the symmetric group algebra is to - go through the usual ``algebra`` method:: -diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2023-03-13 09:26:16.468693261 -0600 -+++ src/sage/env.py 2023-03-13 14:09:36.725081542 -0600 -@@ -197,7 +197,7 @@ CONWAY_POLYNOMIALS_DATA_DIR = var("CONWA - GRAPHS_DATA_DIR = var("GRAPHS_DATA_DIR", join(SAGE_SHARE, "graphs")) - ELLCURVE_DATA_DIR = var("ELLCURVE_DATA_DIR", join(SAGE_SHARE, "ellcurves")) - POLYTOPE_DATA_DIR = var("POLYTOPE_DATA_DIR", join(SAGE_SHARE, "reflexive_polytopes")) --GAP_ROOT_DIR = var("GAP_ROOT_DIR", join(SAGE_SHARE, "gap")) -+GAP_ROOT_DIRS = var("GAP_ROOT_DIR", ["/usr/share/gap", "/usr/lib64/gap"]) - THEBE_DIR = var("THEBE_DIR", join(SAGE_SHARE, "thebe")) - COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs")) - CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona")) -diff -up src/sage/groups/abelian_gps/abelian_group_gap.py.orig src/sage/groups/abelian_gps/abelian_group_gap.py ---- src/sage/groups/abelian_gps/abelian_group_gap.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/abelian_gps/abelian_group_gap.py 2023-03-13 09:42:01.113404652 -0600 -@@ -338,7 +338,7 @@ class AbelianGroup_gap(UniqueRepresentat - if isinstance(x, AbelianGroupElement_gap): - try: - if x in self._cover: -- x = self.gap().NaturalHomomorphism().Image(x.gap()) -+ x = self._cover.gap().NaturalHomomorphismByNormalSubgroup(self._relations).Image(x.gap()) - else: - x = x.gap() - except AttributeError: -@@ -1043,7 +1043,7 @@ class AbelianGroupQuotient_gap(AbelianGr - From: Abelian group with gap, generator orders (4,) - To: Quotient abelian group with generator orders (2,) - """ -- phi = self.gap().NaturalHomomorphism() -+ phi = self._cover.gap().NaturalHomomorphismByNormalSubgroup(self._relations) - Hom = self._cover.Hom(self) - return Hom(phi) - -diff -up src/sage/groups/finitely_presented.py.orig src/sage/groups/finitely_presented.py ---- src/sage/groups/finitely_presented.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/finitely_presented.py 2023-03-13 09:42:01.113404652 -0600 -@@ -596,9 +596,9 @@ class RewritingSystem(): - sage: k = G.rewriting_system() - sage: k.gap() - Knuth Bendix Rewriting System for Monoid( [ a, A, b, B ] ) with rules -- [ [ a^2, ], [ a*A, ], -- [ A*a, ], [ b^2, ], -- [ b*B, ], [ B*b, ] ] -+ [ [ a*A, ], [ A*a, ], -+ [ b*B, ], [ B*b, ], -+ [ a^2, ], [ b^2, ] ] - """ - return self._gap - -diff -up src/sage/groups/fqf_orthogonal.py.orig src/sage/groups/fqf_orthogonal.py ---- src/sage/groups/fqf_orthogonal.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/fqf_orthogonal.py 2023-03-13 09:42:01.114404634 -0600 -@@ -143,7 +143,7 @@ class FqfOrthogonalGroup(AbelianGroupAut - [2/3 0 0] - [ 0 2/3 0] - [ 0 0 4/3] -- generated by 2 elements -+ generated by 3 elements - sage: q = matrix.diagonal(QQ, [3/2, 1/4, 1/4]) - sage: T = TorsionQuadraticForm(q) - sage: T.orthogonal_group().order() -diff -up src/sage/groups/libgap_wrapper.pyx.orig src/sage/groups/libgap_wrapper.pyx ---- src/sage/groups/libgap_wrapper.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/libgap_wrapper.pyx 2023-03-13 09:42:01.114404634 -0600 -@@ -25,7 +25,7 @@ Note how we call the constructor of both - its output via LibGAP:: - - sage: FooGroup() -- -+ - sage: type(FooGroup().gap()) - - -@@ -106,7 +106,7 @@ class ParentLibGAP(SageObject): - ....: ParentLibGAP.__init__(self, lg) - ....: Group.__init__(self) - sage: FooGroup() -- -+ - """ - - def __init__(self, libgap_parent, ambient=None): -@@ -461,7 +461,7 @@ cdef class ElementLibGAP(MultiplicativeG - ....: ParentLibGAP.__init__(self, lg) - ....: Group.__init__(self) - sage: FooGroup() -- -+ - sage: FooGroup().gens() - (f1,) - """ -diff -up src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx ---- src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx 2023-03-13 09:42:01.114404634 -0600 -@@ -427,7 +427,7 @@ cdef class LabelledBranching: - sage: from sage.groups.perm_gps.partn_ref2.refinement_generic import LabelledBranching - sage: L = LabelledBranching(3) - sage: L.small_generating_set() -- [] -+ [()] - sage: L.add_gen(libgap.eval('(1,2,3)')) - sage: L.small_generating_set() - [(1,2,3)] -diff -up src/sage/groups/perm_gps/permgroup.py.orig src/sage/groups/perm_gps/permgroup.py ---- src/sage/groups/perm_gps/permgroup.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/groups/perm_gps/permgroup.py 2023-03-13 09:42:01.115404615 -0600 -@@ -926,7 +926,7 @@ class PermutationGroup_generic(FiniteGro - sage: f = PG._coerce_map_from_(MG) - sage: mg = MG.an_element() - sage: p = f(mg); p -- (2,33,32,23,31,55)(3,49,38,44,40,28)(4,17,59,62,58,46)(5,21,47,20,43,8)(6,53,50)(7,37,12,57,14,29)(9,41,56,34,64,10)(11,25,19)(13,61,26,51,22,15)(16,45,36)(18,27,35,48,52,54)(24,63,42)(30,39,60) -+ (1,2,6,19,35,33)(3,9,26,14,31,23)(4,13,5)(7,22,17)(8,24,12)(10,16,32,27,20,28)(11,30,18)(15,25,36,34,29,21) - sage: PG(p._gap_()) == p - True - -@@ -972,12 +972,12 @@ class PermutationGroup_generic(FiniteGro - sage: P = G.as_permutation_group(algorithm='smaller', seed=5) - sage: P1 = G.as_permutation_group() - sage: P == P1 -- False -+ True - sage: g1, g2, g3 = G.gens() - sage: P(g1*g2) -- (1,3,7,12)(2,4,8,10)(5,11)(6,9) -+ (1,4,13,11)(2,5,14,18)(3,15,8,16)(6,7)(9,20,19,12)(10,17) - sage: P1(g1*g2) -- (2,29,25,68)(3,57,13,54)(4,11,72,37)(5,39,60,23)(6,64,75,63)(7,21,50,73)(8,46,38,32)(9,74,35,18)(10,44,49,48)(12,16,34,71)(14,79,27,40)(15,26)(17,62,59,76)(19,78,70,65)(20,22,58,51)(24,33,36,43)(28,81,80,52)(30,53,56,69)(31,61)(41,42,67,55)(45,77)(47,66) -+ (1,4,13,11)(2,5,14,18)(3,15,8,16)(6,7)(9,20,19,12)(10,17) - - Another check for :trac:`5583`:: - -@@ -4372,7 +4372,7 @@ class PermutationGroup_generic(FiniteGro - - sage: G = PermutationGroup([[(1,2,3,4,5)],[(1,2)]]) #S_5 on [1..5] - sage: G.is_transitive([1,4,5]) -- True -+ False - sage: G.is_transitive([2..6]) - False - sage: G.is_transitive(G.non_fixed_points()) -@@ -4437,7 +4437,7 @@ class PermutationGroup_generic(FiniteGro - sage: G.is_primitive([1..4]) - False - sage: G.is_primitive([1,2,3]) -- True -+ False - sage: G = PermutationGroup([[(3,4,5,6)],[(3,4)]]) #S_4 on [3..6] - sage: G.is_primitive(G.non_fixed_points()) - True -diff -up src/sage/interfaces/gap.py.orig src/sage/interfaces/gap.py ---- src/sage/interfaces/gap.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/gap.py 2023-03-13 09:42:01.115404615 -0600 -@@ -1512,6 +1512,8 @@ def gap_reset_workspace(max_workspace_si - """ - # Create new workspace with filename WORKSPACE - g = Gap(use_workspace_cache=False, max_workspace_size=None) -+ g.eval('ColorPrompt(false)') -+ g.eval('SetUserPreference("UseColorPrompt", false)') - g.eval('SetUserPreference("HistoryMaxLines", 30)') - from sage.tests.gap_packages import all_installed_packages - for pkg in all_installed_packages(gap=g): -diff -up src/sage/libs/gap/element.pxd.orig src/sage/libs/gap/element.pxd ---- src/sage/libs/gap/element.pxd.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/element.pxd 2023-03-13 09:42:01.116404597 -0600 -@@ -29,9 +29,9 @@ cdef GapElement_Boolean make_GapElement_ - cdef GapElement_Function make_GapElement_Function(parent, Obj obj) - cdef GapElement_Permutation make_GapElement_Permutation(parent, Obj obj) - --cdef char *capture_stdout(Obj, Obj) --cdef char *gap_element_str(Obj) --cdef char *gap_element_repr(Obj) -+cdef str capture_stdout(Obj, Obj) -+cdef str gap_element_str(Obj) -+cdef str gap_element_repr(Obj) - - - cdef class GapElement(RingElement): -diff -up src/sage/libs/gap/element.pyx.orig src/sage/libs/gap/element.pyx ---- src/sage/libs/gap/element.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/element.pyx 2023-03-13 09:42:01.116404597 -0600 -@@ -120,7 +120,7 @@ cdef Obj make_gap_matrix(sage_list, gap_ - return l.value - - --cdef char *capture_stdout(Obj func, Obj obj): -+cdef str capture_stdout(Obj func, Obj obj): - """ - Call a single-argument GAP function ``func`` with the argument ``obj`` - and return the stdout from that function call. -@@ -130,6 +130,7 @@ cdef char *capture_stdout(Obj func, Obj - """ - cdef Obj s, stream, output_text_string - cdef UInt res -+ cdef TypOutputFile output - # The only way to get a string representation of an object that is truly - # consistent with how it would be represented at the GAP REPL is to call - # ViewObj on it. Unfortunately, ViewObj *prints* to the output stream, -@@ -139,36 +140,35 @@ cdef char *capture_stdout(Obj func, Obj - # that does not give consistent results. - # TODO: This is probably needlessly slow, but we might need better - # support from GAP to improve this... -- try: -- GAP_Enter() -- s = NEW_STRING(0) -- output_text_string = GAP_ValueGlobalVariable("OutputTextString") -- stream = CALL_2ARGS(output_text_string, s, GAP_True) -+ s = NEW_STRING(0) -+ output_text_string = GAP_ValueGlobalVariable("OutputTextString") -+ stream = CALL_2ARGS(output_text_string, s, GAP_True) - -- if not OpenOutputStream(stream): -- raise GAPError("failed to open output capture stream for " -- "representing GAP object") -+ if not OpenOutputStream(&output, stream): -+ raise GAPError("failed to open output capture stream for " -+ "representing GAP object") - -- CALL_1ARGS(func, obj) -- CloseOutput() -- return CSTR_STRING(s) -- finally: -- GAP_Leave() -+ CALL_1ARGS(func, obj) -+ CloseOutput(&output) -+ return char_to_str(CSTR_STRING(s)) - - --cdef char *gap_element_repr(Obj obj): -+cdef str gap_element_repr(Obj obj): - """ - Implement ``repr()`` of ``GapElement``s using the ``ViewObj()`` function, - which is by default closest to what you get when displaying an object in - GAP on the command-line (i.e. when evaluating an expression that returns - that object. - """ -+ cdef Obj func -+ try: -+ GAP_Enter() -+ func = GAP_ValueGlobalVariable("ViewObj") -+ return capture_stdout(func, obj) -+ finally: -+ GAP_Leave() - -- cdef Obj func = GAP_ValueGlobalVariable("ViewObj") -- return capture_stdout(func, obj) -- -- --cdef char *gap_element_str(Obj obj): -+cdef str gap_element_str(Obj obj): - """ - Implement ``str()`` of ``GapElement``s using the ``Print()`` function. - -@@ -178,9 +178,13 @@ cdef char *gap_element_str(Obj obj): - slightly different approach more closely mirroring Python's str/repr - difference (though this does not map perfectly onto GAP). - """ -- cdef Obj func = GAP_ValueGlobalVariable("Print") -- return capture_stdout(func, obj) -- -+ cdef Obj func -+ try: -+ GAP_Enter() -+ func = GAP_ValueGlobalVariable("Print") -+ return capture_stdout(func, obj) -+ finally: -+ GAP_Leave() - - cdef Obj make_gap_record(sage_dict) except NULL: - """ -@@ -760,7 +764,7 @@ cdef class GapElement(RingElement): - if self.value == NULL: - return 'NULL' - -- s = char_to_str(gap_element_str(self.value)) -+ s = gap_element_str(self.value) - return s.strip() - - def _repr_(self): -@@ -782,7 +786,7 @@ cdef class GapElement(RingElement): - if self.value == NULL: - return 'NULL' - -- s = char_to_str(gap_element_repr(self.value)) -+ s = gap_element_repr(self.value) - return s.strip() - - cpdef _set_compare_by_id(self): -@@ -955,7 +959,7 @@ cdef class GapElement(RingElement): - sig_on() - try: - GAP_Enter() -- return EQ(self.value, c_other.value) -+ return EQ(self.value, c_other.value) - finally: - GAP_Leave() - sig_off() -@@ -977,7 +981,7 @@ cdef class GapElement(RingElement): - sig_on() - try: - GAP_Enter() -- return LT(self.value, c_other.value) -+ return LT(self.value, c_other.value) - finally: - GAP_Leave() - sig_off() -@@ -1205,7 +1209,7 @@ cdef class GapElement(RingElement): - sage: a.is_function() - False - """ -- return IS_FUNC(self.value) -+ return IS_FUNC(self.value) - - def is_list(self): - r""" -@@ -1222,7 +1226,7 @@ cdef class GapElement(RingElement): - sage: libgap.eval('3/2').is_list() - False - """ -- return IS_LIST(self.value) -+ return IS_LIST(self.value) - - def is_record(self): - r""" -@@ -1239,7 +1243,7 @@ cdef class GapElement(RingElement): - sage: libgap.eval('rec(a:=1, b:=3)').is_record() - True - """ -- return IS_REC(self.value) -+ return IS_REC(self.value) - - cpdef is_bool(self): - r""" -@@ -1272,7 +1276,7 @@ cdef class GapElement(RingElement): - sage: libgap('this is a string').is_string() - True - """ -- return IS_STRING(self.value) -+ return IS_STRING(self.value) - - def is_permutation(self): - r""" -@@ -1469,7 +1473,7 @@ cdef class GapElement_Integer(GapElement - sage: N.IsInt() - true - """ -- return IS_INTOBJ(self.value) -+ return IS_INTOBJ(self.value) - - def _rational_(self): - r""" -@@ -2806,7 +2810,7 @@ cdef class GapElement_List(GapElement): - ... - ValueError: too many indices - """ -- cdef int j -+ cdef Int j - cdef Obj obj = self.value - - if isinstance(i, tuple): -@@ -2877,7 +2881,7 @@ cdef class GapElement_List(GapElement): - if not IS_MUTABLE_OBJ(self.value): - raise TypeError('immutable Gap object does not support item assignment') - -- cdef int j -+ cdef Int j - cdef Obj obj = self.value - - if isinstance(i, tuple): -diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd ---- src/sage/libs/gap/gap_includes.pxd.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/gap_includes.pxd 2023-03-13 09:49:35.192090058 -0600 -@@ -13,8 +13,8 @@ from libc.stdint cimport uintptr_t, uint - - cdef extern from "gap/system.h" nogil: - ctypedef char Char -- ctypedef int Int -- ctypedef uintptr_t UInt -+ ctypedef long Int -+ ctypedef unsigned long UInt - ctypedef uint8_t UInt1 - ctypedef uint16_t UInt2 - ctypedef uint32_t UInt4 -@@ -29,8 +29,8 @@ cdef extern from "gap/ariths.h" nogil: - Obj QUO(Obj, Obj) - Obj POW(Obj, Obj) - Obj MOD(Obj, Obj) -- bint EQ(Obj opL, Obj opR) -- bint LT(Obj opL, Obj opR) -+ Int EQ(Obj opL, Obj opR) -+ Int LT(Obj opL, Obj opR) - - - cdef extern from "gap/bool.h" nogil: -@@ -39,7 +39,7 @@ cdef extern from "gap/bool.h" nogil: - - - cdef extern from "gap/calls.h" nogil: -- bint IS_FUNC(Obj) -+ Int IS_FUNC(Obj) - Obj CALL_0ARGS(Obj f) # 0 arguments - Obj CALL_1ARGS(Obj f, Obj a1) # 1 argument - Obj CALL_2ARGS(Obj f, Obj a1, Obj a2) -@@ -61,7 +61,7 @@ cdef extern from "gap/gasman_intern.h" n - - - cdef extern from "gap/gvars.h" nogil: -- UInt GVarName "GVarName"(char* name) -+ UInt GVarName "GVarName"(const char* name) - void AssGVar "AssGVar"(UInt gvar, Obj val) - - -@@ -70,14 +70,16 @@ cdef extern from "gap/integer.h" nogil: - - - cdef extern from "gap/intobj.h" nogil: -- bint IS_INTOBJ(Obj obj) -+ Int IS_INTOBJ(Obj obj) - Obj INTOBJ_INT(Int) - Int INT_INTOBJ(Obj) - - - cdef extern from "gap/io.h" nogil: -- UInt OpenOutputStream(Obj stream) -- UInt CloseOutput() -+ ctypedef struct TypOutputFile: -+ pass -+ UInt OpenOutputStream(TypOutputFile* output, Obj stream) -+ UInt CloseOutput(TypOutputFile* output) - - - cdef extern from "gap/libgap-api.h" nogil: -@@ -100,11 +102,11 @@ cdef extern from "gap/libgap-api.h" nogi - - - cdef extern from "gap/lists.h" nogil: -- bint IS_LIST(Obj lst) -- int LEN_LIST(Obj lst) -- Obj ELM_LIST(Obj lst, int pos) -- Obj ELM0_LIST(Obj lst, int pos) -- void ASS_LIST(Obj lst, int pos, Obj elt) -+ Int IS_LIST(Obj lst) -+ Int LEN_LIST(Obj lst) -+ Obj ELM_LIST(Obj lst, Int pos) -+ Obj ELM0_LIST(Obj lst, Int pos) -+ void ASS_LIST(Obj lst, Int pos, Obj elt) - - - cdef extern from "gap/listfunc.h" nogil: -@@ -116,13 +118,13 @@ cdef extern from "gap/macfloat.h" nogil: - - - cdef extern from "gap/objects.h" nogil: -- bint IS_MUTABLE_OBJ(Obj obj) -+ Int IS_MUTABLE_OBJ(Obj obj) - Obj SHALLOW_COPY_OBJ(Obj obj) -- Obj CopyObj(Obj obj, int mut) -+ Obj CopyObj(Obj obj, Int mut) - - UInt SIZE_OBJ(Obj obj) - UInt TNUM_OBJ(Obj obj) -- char* TNAM_OBJ(Obj obj) -+ const char* TNAM_OBJ(Obj obj) - - cdef enum TNUM: - T_INT -@@ -163,23 +165,23 @@ cdef extern from "gap/permutat.h" nogil: - - - cdef extern from "gap/precord.h" nogil: -- Obj NEW_PREC(int len) -- int LEN_PREC(Obj rec) -- int GET_RNAM_PREC(Obj rec, int i) -- Obj GET_ELM_PREC(Obj rec, int i) -+ Obj NEW_PREC(UInt len) -+ UInt LEN_PREC(Obj rec) -+ Int GET_RNAM_PREC(Obj rec, UInt i) -+ Obj GET_ELM_PREC(Obj rec, UInt i) - void AssPRec(Obj rec, UInt rnam, Obj val) - - - cdef extern from "gap/records.h" nogil: -- char* NAME_RNAM(UInt rnam) -- bint IS_REC(Obj obj) -+ Obj NAME_RNAM(UInt rnam) -+ Int IS_REC(Obj obj) - Obj ELM_REC(Obj rec, UInt rnam) -- UInt RNamName(Char* name) -+ UInt RNamName(const Char* name) - - - cdef extern from "gap/stringobj.h" nogil: - char* CSTR_STRING(Obj list) -- bint IS_STRING(Obj obj) -- bint IsStringConv(Obj obj) -- Obj NEW_STRING(Int) -+ Int IS_STRING(Obj obj) -+ Int IsStringConv(Obj obj) -+ Obj NEW_STRING(Int len) - Obj MakeStringWithLen(const char* buf, size_t len) -diff -up src/sage/libs/gap/libgap.pyx.orig src/sage/libs/gap/libgap.pyx ---- src/sage/libs/gap/libgap.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/libgap.pyx 2023-03-13 09:42:01.117404579 -0600 -@@ -695,7 +695,7 @@ class Gap(Parent): - sage: libgap.List - - sage: libgap.GlobalRandomSource -- -+ - """ - if name in dir(self.__class__): - return getattr(self.__class__, name) -diff -up src/sage/libs/gap/saved_workspace.py.orig src/sage/libs/gap/saved_workspace.py ---- src/sage/libs/gap/saved_workspace.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/saved_workspace.py 2023-03-13 12:49:01.821288928 -0600 -@@ -8,7 +8,7 @@ workspaces. - - import os - import glob --from sage.env import GAP_ROOT_DIR -+from sage.env import GAP_ROOT_DIRS - from sage.interfaces.gap_workspace import gap_workspace_file - - -@@ -31,7 +31,9 @@ def timestamp(): - """ - libgap_dir = os.path.dirname(__file__) - libgap_files = glob.glob(os.path.join(libgap_dir, '*')) -- gap_packages = glob.glob(os.path.join(GAP_ROOT_DIR, 'pkg', '*')) -+ gap_packages = [] -+ for path in GAP_ROOT_DIRS: -+ gap_packages += glob.glob(os.path.join(path, 'pkg', '*')) - files = libgap_files + gap_packages - if len(files) == 0: - print('Unable to find LibGAP files.') -diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx ---- src/sage/libs/gap/util.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/gap/util.pyx 2023-03-13 14:13:48.497467652 -0600 -@@ -173,22 +173,9 @@ def gap_root(): - - sage: from sage.libs.gap.util import gap_root - sage: gap_root() # random output -- '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest' -+ '/usr/share/gap;/usr/lib64/gap'] - """ -- if os.path.exists(sage.env.GAP_ROOT_DIR): -- return sage.env.GAP_ROOT_DIR -- -- # Attempt to figure out the appropriate GAP_ROOT by reading the -- # local/bin/gap shell script; this is an ugly hack that exists for -- # historical reasons; the best approach to setting where Sage looks for -- # the appropriate GAP_ROOT is to set the GAP_ROOT_DIR variable -- SAGE_LOCAL = sage.env.SAGE_LOCAL -- with open(os.path.join(SAGE_LOCAL, 'bin', 'gap')) as f: -- gap_sh = f.read().splitlines() -- gapdir = next(x for x in gap_sh if x.strip().startswith('GAP_ROOT')) -- gapdir = gapdir.split('"')[1] -- gapdir = gapdir.replace('$SAGE_LOCAL', SAGE_LOCAL) -- return gapdir -+ return ';'.join(sage.env.GAP_ROOT_DIRS) - - - # To ensure that we call initialize_libgap only once. -@@ -362,15 +349,9 @@ cdef Obj gap_eval(str gap_string) except - GAPError: Error, Variable: 'Complex' must have a value - Syntax error: ; expected in stream:1 - Complex Field with 53 bits of precision;; -- ^^^^^^^^^^^^ -+ ^^^^^ - Error, Variable: 'with' must have a value -- Syntax error: ; expected in stream:1 -- Complex Field with 53 bits of precision;; -- ^^^^^^^^^^^^^^^^^^^^ - Error, Variable: 'bits' must have a value -- Syntax error: ; expected in stream:1 -- Complex Field with 53 bits of precision;; -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Error, Variable: 'precision' must have a value - - Test that on a subsequent attempt we get the same message (no garbage was -@@ -388,7 +369,7 @@ cdef Obj gap_eval(str gap_string) except - """ - initialize() - cdef Obj result -- cdef int i, j, nresults -+ cdef Int nresults - - # Careful: We need to keep a reference to the bytes object here - # so that Cython doesn't deallocate it before GAP is done with -diff -up src/sage/tests/gap_packages.py.orig src/sage/tests/gap_packages.py ---- src/sage/tests/gap_packages.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/tests/gap_packages.py 2023-03-13 09:42:01.117404579 -0600 -@@ -103,7 +103,7 @@ def all_installed_packages(ignore_dot_ga - - sage: from sage.tests.gap_packages import all_installed_packages - sage: all_installed_packages() -- (...'GAPDoc'...) -+ (...'gapdoc'...) - sage: all_installed_packages(ignore_dot_gap=True) == all_installed_packages(gap=gap, ignore_dot_gap=True) - True - """ diff --git a/sagemath-maxima.patch b/sagemath-maxima.patch deleted file mode 100644 index 5da8c79..0000000 --- a/sagemath-maxima.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -up src/sage/interfaces/maxima.py.orig src/sage/interfaces/maxima.py ---- src/sage/interfaces/maxima.py.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/sage/interfaces/maxima.py 2023-01-15 17:05:26.283962150 -0700 -@@ -568,7 +568,7 @@ class Maxima(MaximaAbstract, Expect): - Expect.__init__(self, - name='maxima', - prompt=r'\(\%i[0-9]+\) ', -- command='{0} -p {1}'.format(MAXIMA, shlex.quote(STARTUP)), -+ command='{0} --disable-readline -p {1}'.format(MAXIMA, shlex.quote(STARTUP)), - script_subdirectory=script_subdirectory, - restart_on_ctrlc=False, - verbose_start=False, -@@ -636,7 +636,8 @@ class Maxima(MaximaAbstract, Expect): - - # Remove limit on the max heapsize (since otherwise it defaults - # to 256MB with ECL). -- self._sendline(":lisp (ext:set-limit 'ext:heap-size 0)") -+ self._sendline(":lisp #+ecl (ext:set-limit 'ext:heap-size 0) #-ecl 0") -+ self._sendline(':lisp #+gcl (progn (si:readline-off) (setf *error-output* (open "/dev/stderr" :direction :output) *standard-input* (open "/dev/stdin" :direction :input) *standard-output* (open "/dev/stdout" :direction :output))) #-gcl t') - self._eval_line('0;') - - # set random seed -diff -up src/sage/interfaces/sage-maxima.lisp.orig src/sage/interfaces/sage-maxima.lisp ---- src/sage/interfaces/sage-maxima.lisp.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/sage/interfaces/sage-maxima.lisp 2023-01-15 17:04:33.551095508 -0700 -@@ -4,3 +4,8 @@ - - (setf *prompt-prefix* "") - -+#+clisp -+(setf -+ *error-output* (open "/dev/stderr" :direction :output) -+ *standard-input* (open "/dev/stdin" :direction :input) -+ *standard-output* (open "/dev/stdout" :direction :output)) diff --git a/sagemath-mem-fun-ref.patch b/sagemath-mem-fun-ref.patch deleted file mode 100644 index 5b49167..0000000 --- a/sagemath-mem-fun-ref.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/sage/symbolic/ginac/archive.cpp.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/symbolic/ginac/archive.cpp 2023-03-13 11:50:47.836951365 -0600 -@@ -581,7 +581,7 @@ void archive::clear() - /** Delete cached unarchived expressions in all archive_nodes (mainly for debugging). */ - void archive::forget() - { -- for_each(nodes.begin(), nodes.end(), std::mem_fun_ref(&archive_node::forget)); -+ for (archive_node& node: nodes) node.forget(); - } - - /** Delete cached unarchived expressions from node (for debugging). */ diff --git a/sagemath-python3.patch b/sagemath-python3.patch deleted file mode 100644 index ac1e853..0000000 --- a/sagemath-python3.patch +++ /dev/null @@ -1,356 +0,0 @@ -diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c ---- src/sage/cpython/debugimpl.c.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/cpython/debugimpl.c 2023-03-13 09:38:55.609800668 -0600 -@@ -148,6 +148,7 @@ static void _type_debug(PyTypeObject* tp - printf(" tp_basicsize: %ld\n", (long)tp->tp_basicsize); - printf(" tp_itemsize: %ld\n", (long)tp->tp_itemsize); - printf(" tp_dictoffset: %ld\n", (long)tp->tp_dictoffset); -+ printf(" tp_vectorcall_offset: %ld\n", (long)tp->tp_vectorcall_offset); - if HAVE_WEAKREFS(tp) - { - printf(" tp_weaklistoffset: %ld\n", (long)tp->tp_weaklistoffset); -@@ -178,7 +179,6 @@ static void _type_debug(PyTypeObject* tp - attr_pointer(tp_free); - - attr_pointer_meth(tp_repr, "__repr__"); -- attr_pointer(tp_print); - attr_pointer_meth(tp_hash, "__hash__"); - attr_pointer_meth(tp_call, "__call__"); - attr_pointer_meth(tp_str, "__str__"); -diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx ---- src/sage/cpython/debug.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/cpython/debug.pyx 2023-03-13 09:38:55.610800649 -0600 -@@ -231,6 +231,7 @@ def type_debug(cls): - tp_basicsize: 16 - tp_itemsize: 0 - tp_dictoffset: 0 -+ tp_vectorcall_offset: 0 - tp_weaklistoffset: 0 - tp_base (__base__): NULL - tp_bases (__bases__): tuple: -@@ -258,7 +259,6 @@ def type_debug(cls): - tp_dealloc (__dealloc__): 0x7fc57d757010 - tp_free: PyObject_Del - tp_repr (__repr__): 0x7fc57d75b990 -- tp_print: NULL - tp_hash (__hash__): _Py_HashPointer - tp_call (__call__): NULL - tp_str (__str__): 0x7fc57d757020 -diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py ---- src/sage/geometry/triangulation/point_configuration.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/geometry/triangulation/point_configuration.py 2023-03-13 09:38:55.610800649 -0600 -@@ -617,11 +617,11 @@ class PointConfiguration(UniqueRepresent - ['{{0,1,2,4},{1,2,3,4}}'] - """ - timeout = 600 -- proc = pexpect.spawn(executable, timeout=timeout) -+ proc = pexpect.spawn(executable, timeout=timeout, encoding='utf-8') - proc.expect(r'Evaluating Commandline Options \.\.\.') - proc.expect(r'\.\.\. done\.') - proc.setecho(0) -- assert proc.readline().strip() == b'' -+ assert proc.readline().strip() == '' - - if verbose: - print("#### TOPCOM input ####") -diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py ---- src/sage/interfaces/frobby.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/frobby.py 2023-03-13 09:38:55.610800649 -0600 -@@ -78,7 +78,7 @@ class Frobby: - print("Frobby command: ", repr(command)) - print("Frobby input:\n", input) - -- process = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE) -+ process = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE, encoding='utf-8') - if input: - frinput = str_to_bytes(input) - else: -diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py ---- src/sage/interfaces/gfan.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/gfan.py 2023-03-13 09:38:55.611800631 -0600 -@@ -109,7 +109,7 @@ class Gfan(): - print("gfan input:\n%s" % input) - - gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, -- encoding='latin-1') -+ encoding='utf-8') - ans, err = gfan_processes.communicate(input=input) - - # sometimes, gfan outputs stuff to stderr even though everything is fine -diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py ---- src/sage/interfaces/latte.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/latte.py 2023-03-13 09:38:55.611800631 -0600 -@@ -161,6 +161,7 @@ def count(arg, ehrhart_polynomial=False, - latte_proc = Popen(args, - stdin=PIPE, stdout=PIPE, - stderr=(None if verbose else PIPE), -+ encoding='utf-8', - cwd=tempd.name) - - ans, err = latte_proc.communicate(arg) -@@ -393,6 +394,7 @@ def integrate(arg, polynomial=None, algo - latte_proc = Popen(args, - stdin=PIPE, stdout=PIPE, - stderr=(None if verbose else PIPE), -+ encoding='utf-8', - cwd=tempd.name) - - ans, err = latte_proc.communicate(arg) -diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx ---- src/sage/interfaces/sagespawn.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/sagespawn.pyx 2023-03-13 09:38:55.611800631 -0600 -@@ -1,6 +1,6 @@ - """ - Sage wrapper around pexpect's ``spawn`` class and --the ptyprocess's ``PtyProcess`` class. -+the ptyprocess's ``PtyProcessUnicode`` class. - - AUTHOR: - -@@ -21,7 +21,7 @@ AUTHOR: - #***************************************************************************** - - from pexpect import * --from ptyprocess import PtyProcess -+from ptyprocess import PtyProcessUnicode - - from cpython.ref cimport Py_INCREF - from libc.signal cimport * -@@ -30,7 +30,6 @@ from posix.unistd cimport getpid, getpgi - - from time import sleep - --from sage.cpython.string cimport str_to_bytes - from sage.interfaces.process cimport ContainChildren - - -@@ -173,7 +172,7 @@ class SageSpawn(spawn): - return ret - - --class SagePtyProcess(PtyProcess): -+class SagePtyProcess(PtyProcessUnicode): - def close(self, force=None): - """ - Quit the child process: send the quit string, close the -@@ -194,11 +193,7 @@ class SagePtyProcess(PtyProcess): - if self.quit_string is not None: - try: - # This can fail if the process already exited -- # PtyProcess.write takes bytes; ideally we would use -- # an encoding picked specifically for the target process -- # but the default (UTF-8) will do now, since I don't -- # think we have any non-ASCII quit_strings anyways. -- self.write(str_to_bytes(self.quit_string)) -+ self.write(self.quit_string) - except (OSError, IOError): - pass - self.fileobj.close() -diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx ---- src/sage/libs/coxeter3/coxeter.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/libs/coxeter3/coxeter.pyx 2023-03-13 09:38:55.611800631 -0600 -@@ -37,7 +37,7 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: s = String("hello"); s # optional - coxeter3 -+ sage: s = String(b"hello"); s # optional - coxeter3 - hello - sage: del s # optional - coxeter3 - """ -@@ -48,11 +48,11 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: s = String('Hi') # optional - coxeter3 -+ sage: s = String(b'Hi') # optional - coxeter3 - sage: s # optional - coxeter3 - Hi - """ -- return bytes_to_str(self.x.ptr()) -+ return self.x.ptr().decode('utf-8') - - def __hash__(self): - """ -@@ -64,7 +64,7 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: s = String('hello') # optional - coxeter3 -+ sage: s = String(b'hello') # optional - coxeter3 - sage: hash(s) == hash('hello') # optional - coxeter3 - True - """ -@@ -75,9 +75,9 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: ta1 = String('A') # optional - coxeter3 -- sage: ta2 = String('A') # optional - coxeter3 -- sage: tb = String('b') # optional - coxeter3 -+ sage: ta1 = String(b'A') # optional - coxeter3 -+ sage: ta2 = String(b'A') # optional - coxeter3 -+ sage: tb = String(b'b') # optional - coxeter3 - sage: ta1 == ta2 # optional - coxeter3 - True - sage: tb != ta1 # optional - coxeter3 -@@ -113,7 +113,7 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: s = String('Hi') # optional - coxeter3 -+ sage: s = String(b'Hi') # optional - coxeter3 - sage: len(s) # optional - coxeter3 - 2 - """ -@@ -124,7 +124,7 @@ cdef class String: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3 -- sage: s = String('Hi') # optional - coxeter3 -+ sage: s = String(b'Hi') # optional - coxeter3 - sage: TestSuite(s).run() # optional - coxeter3 - """ - return (String, (repr(self),) ) -@@ -138,7 +138,7 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: t = Type('A'); t # optional - coxeter3 -+ sage: t = Type(b'A'); t # optional - coxeter3 - A - sage: del t # optional - coxeter3 - """ -@@ -149,7 +149,7 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: t = Type('A'); t # optional - coxeter3 -+ sage: t = Type(b'A'); t # optional - coxeter3 - A - """ - return bytes_to_str(self.x.name().ptr()) -@@ -159,7 +159,7 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: t = Type('A') # optional - coxeter3 -+ sage: t = Type(b'A') # optional - coxeter3 - sage: t.name() # optional - coxeter3 - A - """ -@@ -175,8 +175,8 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: a = Type('A') # optional - coxeter3 -- sage: b = Type('B') # optional - coxeter3 -+ sage: a = Type(b'A') # optional - coxeter3 -+ sage: b = Type(b'B') # optional - coxeter3 - sage: hash(a) == hash(b) # optional - coxeter3 - False - sage: d = {a: 1, b: 2} # optional - coxeter3 -@@ -188,9 +188,9 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: ta1 = Type('A') # optional - coxeter3 -- sage: ta2 = Type('A') # optional - coxeter3 -- sage: tb = Type('b') # optional - coxeter3 -+ sage: ta1 = Type(b'A') # optional - coxeter3 -+ sage: ta2 = Type(b'A') # optional - coxeter3 -+ sage: tb = Type(b'b') # optional - coxeter3 - sage: ta1 == ta2 # optional - coxeter3 - True - sage: tb != ta1 # optional - coxeter3 -@@ -224,7 +224,7 @@ cdef class Type: - EXAMPLES:: - - sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3 -- sage: t = Type('A') # optional - coxeter3 -+ sage: t = Type(b'A') # optional - coxeter3 - sage: TestSuite(t).run() # optional - coxeter3 - """ - return (Type, (repr(self), )) -@@ -268,7 +268,7 @@ cdef class CoxGroup(SageObject): - pass - type = type.lower() - -- type = 'B' if type == 'C' else type -+ type = b'B' if type == 'C' else type.encode('utf-8') - - if rank == 0: - raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented") -diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py ---- src/sage/misc/sageinspect.py.orig 2023-03-13 08:43:39.551431643 -0600 -+++ src/sage/misc/sageinspect.py 2023-03-13 09:38:55.612800613 -0600 -@@ -516,12 +516,9 @@ class SageArgSpecVisitor(ast.NodeVisitor - """ - return node.id - -- def visit_NameConstant(self, node): -- """ -- Visit a Python AST :class:`ast.NameConstant` node. -- -- This is an optimization added in Python 3.4 for the special cases -- of True, False, and None. -+ def visit_Constant(self, node): -+ r""" -+ Visit a Python AST :class:`ast.Constant` node. - - INPUT: - -@@ -535,7 +532,7 @@ class SageArgSpecVisitor(ast.NodeVisitor - - sage: import ast, sage.misc.sageinspect as sms - sage: visitor = sms.SageArgSpecVisitor() -- sage: vis = lambda x: visitor.visit_NameConstant(ast.parse(x).body[0].value) -+ sage: vis = lambda x: visitor.visit_Constant(ast.parse(x).body[0].value) - sage: [vis(n) for n in ['True', 'False', 'None']] - [True, False, None] - sage: [type(vis(n)) for n in ['True', 'False', 'None']] -diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py ---- src/sage/plot/plot3d/plot3d.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/plot/plot3d/plot3d.py 2023-03-13 09:38:55.612800613 -0600 -@@ -219,6 +219,7 @@ from .shapes import arrow3d - from .base import Graphics3dGroup - from sage.plot.colors import rainbow - from .texture import Texture -+import inspect - - from sage.functions.trig import cos, sin - from sage.misc.sageinspect import sage_getargspec, is_function_or_cython_function -@@ -255,7 +256,7 @@ class _Coordinates(): - sage: arb((x+z,y*z,z), z, (x,y)) - Arbitrary Coordinates coordinate transform (z in terms of x, y) - """ -- all_vars = sage_getargspec(self.transform).args[1:] -+ all_vars = inspect.getfullargspec(self.transform)[0][1:] - if set(all_vars) != set(indep_vars + [dep_var]): - raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var])))) - self.dep_var = dep_var -diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomial/pbori/pbori.pyx ---- src/sage/rings/polynomial/pbori/pbori.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/rings/polynomial/pbori/pbori.pyx 2023-03-13 11:29:13.157592229 -0600 -@@ -4722,8 +4722,7 @@ cdef class PolynomialConstruct: - # So, it is just a conversion. [Simon King] - return (ring)._element_constructor_(x) - -- raise TypeError("cannot generate Boolean polynomial from %s , %s" % -- (type(x), type(ring))) -+ raise TypeError(f"cannot generate Boolean polynomial from {type(x)}, {type(ring)}") - - - cdef class MonomialConstruct: -diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx ---- src/sage/structure/sage_object.pyx.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/structure/sage_object.pyx 2023-03-13 09:38:55.613800594 -0600 -@@ -694,7 +694,7 @@ cdef class SageObject: - try: - s = self._interface_init_(I) - except Exception: -- raise NotImplementedError("coercion of object %s to %s not implemented:\n%s\n%s" % (repr(self), I)) -+ raise NotImplementedError(f"coercion of object {repr(self)} to {I} not implemented") - X = I(s) - if c: - try: diff --git a/sagemath-qepcad.patch b/sagemath-qepcad.patch deleted file mode 100644 index 3ad5dd9..0000000 --- a/sagemath-qepcad.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py ---- src/sage/interfaces/qepcad.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/qepcad.py 2023-03-13 09:52:44.349623749 -0600 -@@ -530,7 +530,7 @@ TESTS: - - Check the qepcad configuration file:: - -- sage: with open(os.path.join(SAGE_LOCAL, 'etc', 'default.qepcadrc')) as f: # optional - qepcad -+ sage: with open(os.path.join('/usr/share/qepcad/default.qepcadrc')) as f: # optional - qepcad - ....: f.readlines()[-1] - 'SINGULAR yes\n' - -@@ -604,7 +604,6 @@ AUTHORS: - # https://www.gnu.org/licenses/ - # **************************************************************************** - import os --from sage.env import SAGE_LOCAL - import pexpect - import re - import sys -@@ -619,6 +618,8 @@ from .expect import Expect, ExpectFuncti - from sage.interfaces.interface import AsciiArtString - - -+QEPCAD_LOCAL = "/usr/share/qepcad" -+ - def _qepcad_atoms(formula): - r""" - Return the atoms of a qepcad quantifier-free formula, as a set of strings. -@@ -650,17 +651,17 @@ def _qepcad_cmd(memcells=None): - - sage: from sage.interfaces.qepcad import _qepcad_cmd - sage: s = _qepcad_cmd() -- sage: s == 'env qe=%s qepcad '%SAGE_LOCAL -+ sage: s == 'env qe=/usr/share/qepcad qepcad ' - True - sage: s = _qepcad_cmd(memcells=8000000) -- sage: s == 'env qe=%s qepcad +N8000000'%SAGE_LOCAL -+ sage: s == 'env qe=/usr/share/qepcad qepcad +N8000000' - True - """ - if memcells is not None: - memcells_arg = '+N%s' % memcells - else: - memcells_arg = '' -- return "env qe=%s qepcad %s"%(SAGE_LOCAL, memcells_arg) -+ return "env qe=%s qepcad %s"%(QEPCAD_LOCAL, memcells_arg) - - _command_info_cache = None - -@@ -685,7 +686,7 @@ def _update_command_info(): - - cache = {} - -- with open(os.path.join(SAGE_LOCAL, 'share/qepcad', 'qepcad.help')) as help: -+ with open(os.path.join(QEPCAD_LOCAL, 'bin', 'qepcad.help')) as help: - assert help.readline().strip() == '@' - - while True: diff --git a/sagemath-random.patch b/sagemath-random.patch deleted file mode 100644 index 649a158..0000000 --- a/sagemath-random.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up src/sage/misc/binary_tree.pyx.orig src/sage/misc/binary_tree.pyx ---- src/sage/misc/binary_tree.pyx.orig 2020-10-24 11:37:59.000000000 -0600 -+++ src/sage/misc/binary_tree.pyx 2020-10-30 13:27:44.173427025 -0600 -@@ -12,6 +12,8 @@ from cysignals.memory cimport sig_malloc - - from cpython.ref cimport PyObject, Py_INCREF, Py_XDECREF - -+from sage.misc.prandom import randint -+ - cdef binary_tree_node *BinaryTreeNode(int key, object value): - cdef binary_tree_node *t - t = sig_malloc(sizeof(binary_tree_node)) -@@ -121,10 +123,7 @@ cdef binary_tree_node *binary_tree_right - cdef binary_tree_node *binary_tree_head_excise(binary_tree_node *self): - cdef binary_tree_node *cur - cdef int right -- # We have a pointer we're about to free. Chances are, we'll never -- # see this pointer again. Thus, its least significant bit is -- # "random" enough to resist bias. -- right = (self)&1 -+ right = randint(0, 1) - if self.right == NULL: - return self.left - if self.left == NULL: -@@ -501,7 +500,6 @@ class Test: - - sage: sage.misc.binary_tree.Test().random() - """ -- from sage.misc.prandom import randint - t = BinaryTree() - for i in xrange(cycles): - r = randint(0,8) diff --git a/sagemath-rpmbuild.patch b/sagemath-rpmbuild.patch deleted file mode 100644 index 4d4b173..0000000 --- a/sagemath-rpmbuild.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py ---- src/sage/misc/cython.py.orig 2021-08-26 13:10:09.114735665 -0600 -+++ src/sage/misc/cython.py 2021-08-26 13:11:01.734797359 -0600 -@@ -55,7 +55,7 @@ def _standard_libs_libdirs_incdirs_alias - 'ntl'] - standard_libdirs = [] - if SAGE_LOCAL: -- standard_libdirs.append(os.path.join(SAGE_LOCAL, "lib")) -+ standard_libdirs.append(os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))) - standard_libdirs.extend(aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"]) - standard_incdirs = sage_include_directories() + aliases["CBLAS_INCDIR"] + aliases["NTL_INCDIR"] - return standard_libs, standard_libdirs, standard_incdirs, aliases diff --git a/sagemath-sagedoc.patch b/sagemath-sagedoc.patch deleted file mode 100644 index 8f5a0e6..0000000 --- a/sagemath-sagedoc.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs.py ---- src/sage_docbuild/ext/multidocs.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage_docbuild/ext/multidocs.py 2023-03-13 10:54:54.452252122 -0600 -@@ -83,8 +83,11 @@ def merge_environment(app, env): - for ind in newalldoc: - # treat sub-document source as orphaned file and don't complain - md = env.metadata.get(ind, dict()) -- md['orphan'] = 1 -- env.metadata[ind] = md -+ try: -+ md['orphan'] = 1 -+ env.metadata[ind] = md -+ except AttributeError: -+ env.metadata[ind] = {'orphan'} - # merge the citations - newcite = {} - for ind, (path, tag, lineno) in citations.items(): -diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py ---- src/sage/interfaces/singular.py.orig 2023-02-11 06:25:15.000000000 -0700 -+++ src/sage/interfaces/singular.py 2023-03-13 10:54:54.452252122 -0600 -@@ -2379,11 +2379,11 @@ def generate_docstring_dictionary(): - - L, in_node, curr_node = [], False, None - -- from sage.libs.singular.singular import get_resource -- singular_info_file = get_resource('i') -+ singular_info_file = '/usr/share/info/singular.info.gz' - - # singular.hlp contains a few iso-8859-1 encoded special characters -- with io.open(singular_info_file, -+ import gzip -+ with gzip.open(singular_info_file, - encoding='latin-1') as f: - for line in f: - m = re.match(new_node, line) diff --git a/sagemath-scripts.patch b/sagemath-scripts.patch deleted file mode 100644 index e5070c0..0000000 --- a/sagemath-scripts.patch +++ /dev/null @@ -1,276 +0,0 @@ -diff -up src/bin/sage.orig src/bin/sage ---- src/bin/sage.orig 2022-09-19 16:38:18.000000000 -0600 -+++ src/bin/sage 2023-01-15 17:02:57.680034236 -0700 -@@ -131,7 +131,6 @@ usage() { - echo " --gap [...] -- run Sage's Gap with given arguments" - command -v gp &>/dev/null && \ - echo " --gp [...] -- run Sage's PARI/GP calculator with given arguments" -- echo " --pip [...] -- invoke pip, the Python package manager" - command -v maxima &>/dev/null && \ - echo " --maxima [...] -- run Sage's Maxima with given arguments" - command -v mwrank &>/dev/null && \ -@@ -178,60 +177,6 @@ if [ -f "${SELF}-env-config" ]; then - fi - - ##################################################################### --# Special options to be processed without sage-env --##################################################################### -- --# Check for '--nodotsage' before sourcing sage-env; otherwise sage-env --# will already have set some environment variables with the old --# setting for DOT_SAGE. --if [ "$1" = '--nodotsage' ]; then -- export DOT_SAGE=`mktemp -d ${TMPDIR:-/tmp}/dotsageXXXXXX` -- shift -- command "${SELF}" "$@" -- status=$? -- rm -rf "$DOT_SAGE" -- exit $status --fi -- --# Check for '--patchbot' before sourcing sage-env: patchbot needs --# an unclobbered environment before testing unsafe tickets. --if [ "$1" = '-patchbot' -o "$1" = "--patchbot" ]; then -- shift -- # We ask the Python from Sage where the patchbot is installed. -- # We set PYTHONPATH to that directory such that the system Python -- # should also find the sage_patchbot package. -- cmd='import sage_patchbot as p; import os; print(os.path.dirname(p.__path__[0]))' -- export PYTHONPATH=`"$SAGE_ROOT/sage" --python3 -c "$cmd"` -- if [ -z "$PYTHONPATH" ]; then -- # Something went wrong, assume that the patchbot is not installed -- echo >&2 "Error: cannot find installation path for sage_patchbot" -- echo >&2 "See https://wiki.sagemath.org/buildbot for instructions" -- exit 1 -- fi -- -- shopt -s execfail # Do not exit if "exec" fails -- exec python3 -m sage_patchbot.patchbot "$@" -- echo >&2 "Error: cannot find a suitable Python 3 program." -- echo >&2 "The SageMath patchbot requires a system Python 3 installation." -- exit 127 --fi -- --# Check for '-i' etc. before sourcing sage-env: running "make" --# should be run outside of the Sage shell. --case "$1" in -- -i|-f|-p) -- # Delegate further option handling to the non-installed sage-site script. -- # (These options become unavailable if the directory $SAGE_ROOT is removed.) -- if [ -d "$SAGE_ROOT" ]; then -- exec "$SAGE_ROOT/build/bin/sage-site" "$@" -- # fallthrough if there is no sage-site script -- fi -- echo >&2 "Error: unknown option: $1" -- exit 1 -- ;; --esac -- --##################################################################### - # Report information about the Sage environment - ##################################################################### - -@@ -282,18 +227,6 @@ fi - - # Prepare for running Sage, either interactively or non-interactively. - sage_setup() { -- # Check that we're not in a source tarball which hasn't been built yet (#13561). -- if [ "$SAGE_SRC_ENV_CONFIG" = 1 ] && [ ! -z "$SAGE_VENV" ] && [ ! -x "$SAGE_VENV/bin/sage" ]; then -- echo >&2 '************************************************************************' -- echo >&2 'It seems that you are attempting to run Sage from an unpacked source' -- echo >&2 'tarball, but you have not compiled it yet (or maybe the build has not' -- echo >&2 'finished). You should run `make` in the Sage root directory first.' -- echo >&2 'If you did not intend to build Sage from source, you should download' -- echo >&2 'a binary tarball instead. Read README.txt for more information.' -- echo >&2 '************************************************************************' -- exit 1 -- fi -- - if [ ! -d "$IPYTHONDIR" ]; then - # make sure that $DOT_SAGE exists so that ipython will happily - # create its config directories there. If DOT_SAGE doesn't -@@ -338,8 +271,6 @@ usage_advanced() { - echo " --nodotsage -- run Sage without using the user's" - echo " .sage directory: create and use a temporary" - echo " .sage directory instead." -- echo " --gthread, --qthread, --q4thread, --wthread, --pylab" -- echo " -- pass the option through to IPython" - echo " --simple-prompt -- pass the option through to IPython: use" - echo " this option with sage-shell mode in emacs" - echo " --gdb -- run Sage under the control of gdb" -@@ -369,18 +300,9 @@ usage_advanced() { - echo " environment (not Sage), passing additional" - echo " additional options to IPython" - echo " --jupyter [...] -- run Sage's Jupyter with given arguments" -- echo " --kash [...] -- run Sage's Kash with the given arguments" -- command -v kash &>/dev/null || \ -- echo " (not installed currently, run sage -i kash)" -- echo " --M2 [...] -- run Sage's Macaulay2 with the given arguments" -- command -v M2 &>/dev/null || \ -- echo " (not installed currently, run sage -i macaulay2)" - echo " --maxima [...] -- run Sage's Maxima with the given arguments" - echo " --mwrank [...] -- run Sage's mwrank with the given arguments" -- echo " --pip [...] -- invoke pip, the Python package manager" - echo " --polymake [...] -- run Sage's Polymake with given arguments" -- command -v polymake &>/dev/null || \ -- echo " (not installed currently, run sage -i polymake)" - echo " --python [...], --python3 [...]" - echo " -- run the Python 3 interpreter" - echo " -R [...] -- run Sage's R with the given arguments" -@@ -656,11 +578,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] - exec ecl "$@" - fi - --if [ "$1" = '-kash' -o "$1" = '--kash' ]; then -- shift -- exec kash "$@" --fi -- - if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then - shift - maxima_cmd=$(sage-config MAXIMA 2>/dev/null) -@@ -685,11 +602,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then - exec R "$@" - fi - --if [ "$1" = '-git' -o "$1" = '--git' ]; then -- shift -- exec git "$@" --fi -- - ##################################################################### - # sage --sh and sage --buildsh - ##################################################################### -@@ -856,10 +768,6 @@ fi - # build_sage, sage -b, sage -br, etc. could be moved to - # build/bin/sage-site. See #29111. - --build_sage() { -- ( cd "$SAGE_ROOT/build/make" && ./install sagelib-no-deps ) || exit $? --} -- - if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then - sage-cleaner &>/dev/null & - exec sage-notebook "$@" -@@ -870,13 +778,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not - exec sage-notebook "$@" - fi - --if [ "$1" = "-bn" -o "$1" = "--build-and-notebook" ]; then -- shift -- build_sage -- sage-cleaner &>/dev/null & -- exec sage-notebook --notebook=default "$@" --fi -- - if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then - # Source inspection facilities, supported on sage-the-distribution and on distributions - # that package the Sage sources. -@@ -893,46 +794,18 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; - fi - fi - --if [ "$1" = '-b' ]; then -- build_sage -- exit $? --fi -- --if [ "$1" = '-br' -o "$1" = "--br" ]; then -- build_sage -- interactive_sage --fi -- - if [ "$1" = '-r' ]; then - shift - interactive_sage - fi - --if [ "$1" = '-ba-force' -o "$1" = '--ba-force' ]; then -- echo -- echo "WARNING: 'sage --ba-force' is deprecated; use 'sage -ba' instead." -- echo -- ( cd "$SAGE_ROOT/build/make" && make sagelib-clean ) -- build_sage -- exit $? --fi -- --if [ "$1" = '-ba' ]; then -- ( cd "$SAGE_ROOT/build/make" && make sagelib-clean ) -- build_sage -- exit $? --fi -- - exec-runtests() { - sage_setup - export PYTHONIOENCODING="utf-8" # Fix encoding for doctests - exec sage-runtests "$@" - } - --if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" = '-tp' -o "$1" = '-btp' ]; then -- if [ "$1" = '-bt' -o "$1" = '-btp' ]; then -- build_sage -- fi -+if [ "$1" = '-t' -o "$1" = '-tp' ]; then - if [ "$1" = '-tp' -o "$1" = '-btp' ]; then - shift - exec-runtests -p "$@" -@@ -942,34 +815,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" - fi - fi - --if [ "$1" = '-tnew' -o "$1" = '-btnew' ]; then -- if [ "$1" = '-btnew' ]; then -- build_sage -- fi -- shift -- exec-runtests --new "$@" --fi -- - if [ "$1" = '-testall' -o "$1" = "--testall" ]; then - shift - exec-runtests -a "$@" - fi - --if [ "$1" = '-fixdoctests' -o "$1" = '--fixdoctests' ]; then -- shift -- exec sage-fixdoctests "$@" --fi -- --if [ "$1" = "-coverage" -o "$1" = "--coverage" ]; then -- shift -- exec sage-coverage "$@" --fi -- --if [ "$1" = "-coverageall" -o "$1" = "--coverageall" ]; then -- shift -- exec sage-coverage --all "$@" --fi -- - if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then - exec sage-startuptime.py "$@" - fi -@@ -1056,11 +906,6 @@ if [ "$1" = '-installed' -o "$1" = "--in - exec sage-list-packages all --installed-only $@ - fi - --if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then -- shift -- exec sage-sdist "$@" --fi -- - ##################################################################### - # Debugging tools - ##################################################################### -@@ -1110,12 +955,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca - exec sage-callgrind "$@" - fi - --if [ "$1" = '-omega' -o "$1" = "--omega" ]; then -- shift -- sage_setup -- exec sage-omega "$@" --fi -- - if [ "$1" = '-gthread' -o "$1" = '-qthread' -o "$1" = '-q4thread' -o "$1" = '-wthread' -o "$1" = '-pylab' -o "$1" = '--simple-prompt' -o "$1" = '-simple-prompt' ]; then - # Intentionally no "shift" here - interactive_sage "$@" diff --git a/sagemath-tdlib.patch b/sagemath-tdlib.patch deleted file mode 100644 index e81c85b..0000000 --- a/sagemath-tdlib.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -up src/sage/graphs/graph_decompositions/sage_tdlib.cpp.orig src/sage/graphs/graph_decompositions/sage_tdlib.cpp ---- src/sage/graphs/graph_decompositions/sage_tdlib.cpp.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/graphs/graph_decompositions/sage_tdlib.cpp 2021-06-16 08:33:47.325415307 -0600 -@@ -2,8 +2,8 @@ - #include - - #include --#include "tdlib/TD_combinations.hpp" --#include "tdlib/TD_misc.hpp" -+#include -+#include - - #ifndef TD_STRUCT_VERTEX - #define TD_STRUCT_VERTEX -@@ -16,13 +16,6 @@ struct Vertex{ - - typedef boost::adjacency_list TD_graph_t; - --struct bag{ -- std::set bag; --}; -- --typedef boost::adjacency_list TD_tree_dec_t; -- -- - void make_tdlib_graph(TD_graph_t &G, std::vector &V, std::vector &E){ - unsigned int max = 0; - for(unsigned int i = 0; i < V.size(); i++) diff --git a/sagemath.spec b/sagemath.spec deleted file mode 100644 index e957404..0000000 --- a/sagemath.spec +++ /dev/null @@ -1,2890 +0,0 @@ -%global __provides_exclude_from .*/site-packages/.*\\.so - -# This package installs python files in nonstandard places -%global _python_bytecompile_extra 0 - -%bcond_with bundled_pexpect -%bcond_with bundled_ipython -%bcond_without bundled_jupyter_jsmol -%bcond_without bundled_memory_allocator -%bcond_without bundled_threejs -%bcond_without install_hack - -# for faster full rpm test builds -%ifarch %{ix86} x86_64 -%bcond_without docs -%else -%bcond_with docs -%endif - -# use a workaround to match upstream sagemath patched sphinx -%bcond_with sphinx_hack - -# use workaround to match upstream sagemath patched cython -%bcond_with cython_hack - -# switch to run make -testall -%bcond_with check -%global SAGE_TIMEOUT 60 -%global SAGE_TIMEOUT_LONG 180 - -%global combinatorial_designs_pkg combinatorial_designs-20140630 -%global conway_polynomials_pkg conway_polynomials-0.5 -%global cremona_ver 2019-10-29 -%global elliptic_curves_pkg elliptic_curves-0.8.1 -%global graphs_pkg graphs-20210214 -%if %{with bundled_ipython} -%global ipython_ver 8.6.0 -%global ipython_pkg ipython-%{ipython_ver} -%global prompt_toolkit_ver 3.0.24 -%global prompt_tookit_pkg prompt_toolkit-%{prompt_toolkit_ver} -%endif -%if %{with bundled_jupyter_jsmol} -%global jupyter_jsmol_ver 2022.1.0 -%global jupyter_jsmol_pkg jupyter_jsmol-%{jupyter_jsmol_ver} -%endif -%if %{with bundled_memory_allocator} -%global memory_allocator_ver 0.1.3 -%global memory_allocator_pkg memory_allocator-%{memory_allocator_ver} -%endif -%if %{with bundled_pexpect} -%global pexpect_pkg pexpect-4.8.0 -%endif -%global polytopes_db_pkg polytopes_db-20170220 -%global sagetex_pkg sagetex-3.6.1 -%global Sphinx_pkg Sphinx-5.2.3 -%global singular_pkg singular-4.3.1p1 -%if %{with bundled_threejs} -%global threejs_ver r122 -%global threejs_pkg threejs-sage-%{threejs_ver} -%endif - -# Spkg equivalents of required rpms; we pretend they are installed as spkgs. -%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.77 CoCoALib-0.99800 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.2 libsirocco-2.1.0 lrslib-072 mcqd-1.0.0 meataxe-1.0.1 qepcad-B.1.74 saclib-2.2.8 tdlib-0.9.2 - -%global SAGE_ROOT %{_libdir}/sagemath -%global SAGE_LOCAL %{SAGE_ROOT}/local -%global SAGE_SRC %{SAGE_ROOT}/src -%global SAGE_DOC %{_docdir}/%{name} -%global SAGE_SHARE %{_datadir}/sagemath -%global SAGE_ETC %{SAGE_SHARE}/etc -%global SAGE_PYTHONPATH %{SAGE_ROOT}/site-packages -%global SAGE_SPKG_INST %{SAGE_LOCAL}/var/lib/sage/installed - -Name: sagemath -Summary: A free open-source mathematics software system -Version: 9.8 -Release: 3%{?dist} -# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file. -# Note that many of the components listed in that file are not built in, but -# are used as external libraries, and therefore do not affect the License tag. -# Additionally, every $files section has a comment with the license name -# before files with that license -License: GPL-3.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later -URL: http://www.sagemath.org -Source0: http://files.sagemath.org/src/sage-%{version}.tar.gz -Source1: https://github.com/JohnCremona/ecdata/archive/%{cremona_ver}/cremona-%{cremona_ver}.tar.gz -Source2: gprc.expect -Source3: org.sagemath.sage.metainfo.xml -# Follow maxima's ExclusiveArch. The source RPM is now about 2GB in size. The -# 32-bit ARM builders run out of memory trying to create the SRPM and also -# trying to unpack the SRPM before starting a build. The i386 builders -# sometimes fail as well, so exclude all 32-bit platforms. -ExclusiveArch: aarch64 x86_64 - -# Fix stray escapes in python strings -Patch0: %{name}-escape.patch - -# Fix a "random" bit chooser that always chooses 0 -Patch1: %{name}-random.patch - -# Set of patches to work with system wide packages -Patch2: %{name}-scripts.patch - -# Fix building extensions with system header files and libraries -Patch3: %{name}-extensions.patch - -# helper to: -# o respect a DESTDIR environment variable -# o avoid double '//' in pathnames, which can confuse debugedit & co -# o minor change to help in incremental builds by avoiding rebuilding -# files -# o do not assume there is an installed sagemath -Patch4: %{name}-rpmbuild.patch - -# build documentation in buildroot environment -Patch5: %{name}-sagedoc.patch - -# work with all maxima-runtime lisp backend packages -Patch6: %{name}-maxima.patch - -# use jmol itself to export preview images -# FIXME besides not using X and told so, fails if DISPLAY is not set -Patch7: %{name}-jmol.patch - -# tell the user how to install the large Cremona database -# add a missing commit() that causes large database construction to fail -# https://github.com/sagemath/sage/pull/35050 -Patch8: %{name}-cremona.patch - -# adapt to python 3 and cython running in python 3 mode -Patch9: %{name}-python3.patch - -# remove the buildroot path from Cython output -Patch10: %{name}-buildroot.patch - -# update c++ standard to fix FTBFS -Patch11: %{name}-lcalc.patch - -# Use system gap directories and modernize libgap interface -Patch12: %{name}-libgap.patch - -# Catch polymorphic types by reference instead of by value -Patch13: %{name}-catch-value.patch - -# Side effect of using distro packages -# https://bugzilla.redhat.com/show_bug.cgi?id=974769 -Patch14: %{name}-env.patch - -# Correct unable to start QEPCAD within sage -# https://bugzilla.redhat.com/show_bug.cgi?id=1243590 -Patch15: %{name}-qepcad.patch - -# Make the cvxopt backend check for 'optimal' as well as 'optimized' -Patch16: %{name}-cvxopt.patch - -# Use flexiblas -Patch17: %{name}-flexiblas.patch - -# Fix paths to latte-integrale binaries -Patch18: %{name}-latte.patch - -# Adapt to recent tdlib 0.9 -Patch19: %{name}-tdlib.patch - -# Use local objects.inv for intersphinx since no network on koji builders -Patch20: %{name}-intersphinx.patch - -# Replace a deprecated call to std::bind2nd -Patch21: %{name}-bind2nd.patch - -# Temporary workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2160197 -# Remove this when that bug is fixed -Patch22: %{name}-giac.patch - -# Replace a deprecated call to std::mem_fun_ref -Patch23: %{name}-mem-fun-ref.patch - -BuildRequires: 4ti2 -BuildRequires: 4ti2-devel -BuildRequires: appstream -BuildRequires: arb-devel -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: bc -BuildRequires: bliss-devel -BuildRequires: boost-devel -BuildRequires: brial-devel -BuildRequires: chrpath -BuildRequires: cmake -BuildRequires: cddlib-devel -BuildRequires: cddlib-tools -BuildRequires: cliquer-devel -BuildRequires: cocoalib-devel -BuildRequires: coxeter-devel -BuildRequires: cryptominisat-devel -BuildRequires: csdp-devel -BuildRequires: desktop-file-utils -BuildRequires: dvipng -BuildRequires: ecl -BuildRequires: ffmpeg-free -BuildRequires: flexiblas-devel -BuildRequires: flint-devel -BuildRequires: flintqs -BuildRequires: fonttools -BuildRequires: gap-devel -BuildRequires: gap-pkg-aclib -BuildRequires: gap-pkg-alnuth -BuildRequires: gap-pkg-atlasrep -BuildRequires: gap-pkg-autodoc -BuildRequires: gap-pkg-autpgrp -BuildRequires: gap-pkg-cohomolo -BuildRequires: gap-pkg-corelg -BuildRequires: gap-pkg-crime -BuildRequires: gap-pkg-crisp -BuildRequires: gap-pkg-cryst -BuildRequires: gap-pkg-crystcat -BuildRequires: gap-pkg-ctbllib -BuildRequires: gap-pkg-design -BuildRequires: gap-pkg-edim -BuildRequires: gap-pkg-factint -BuildRequires: gap-pkg-fga -BuildRequires: gap-pkg-gbnp -BuildRequires: gap-pkg-genss -BuildRequires: gap-pkg-guava -BuildRequires: gap-pkg-hap -BuildRequires: gap-pkg-hapcryst -BuildRequires: gap-pkg-hecke -BuildRequires: gap-pkg-images -BuildRequires: gap-pkg-irredsol -BuildRequires: gap-pkg-jupyterkernel -BuildRequires: gap-pkg-laguna -BuildRequires: gap-pkg-liealgdb -BuildRequires: gap-pkg-liepring -BuildRequires: gap-pkg-liering -BuildRequires: gap-pkg-loops -BuildRequires: gap-pkg-lpres -BuildRequires: gap-pkg-mapclass -BuildRequires: gap-pkg-polenta -BuildRequires: gap-pkg-polycyclic -BuildRequires: gap-pkg-polymaking -BuildRequires: gap-pkg-qpa -BuildRequires: gap-pkg-quagroup -BuildRequires: gap-pkg-radiroot -BuildRequires: gap-pkg-repsn -BuildRequires: gap-pkg-resclasses -BuildRequires: gap-pkg-singular -BuildRequires: gap-pkg-sla -BuildRequires: gap-pkg-sonata -BuildRequires: gap-pkg-sophus -BuildRequires: gap-pkg-tomlib -BuildRequires: gap-pkg-toric -BuildRequires: gap-pkg-utils -BuildRequires: gcc-c++ -BuildRequires: gcc-gfortran -BuildRequires: gcc-objc -BuildRequires: gcc-objc++ -BuildRequires: gdb -BuildRequires: gengetopt -BuildRequires: gfan -BuildRequires: giac-devel -BuildRequires: giac-doc -BuildRequires: git-core -BuildRequires: glpk-devel -BuildRequires: glpk-utils -BuildRequires: gmp-ecm -BuildRequires: gmp-ecm-devel -BuildRequires: gnupg2 -BuildRequires: gp2c -BuildRequires: ImageMagick -BuildRequires: iml-devel -BuildRequires: jmol -# To have a proper link -BuildRequires: jsmol -BuildRequires: jsmath-fonts -BuildRequires: L-function-devel -BuildRequires: latexmk -BuildRequires: latte-integrale -BuildRequires: libbraiding-devel -BuildRequires: libfrobby-devel -BuildRequires: libgap -BuildRequires: libhomfly-devel -BuildRequires: libmpc-devel -BuildRequires: libtool -BuildRequires: lrcalc-devel -BuildRequires: lrslib-utils -BuildRequires: make -BuildRequires: mathjax -BuildRequires: maxima-runtime-ecl -BuildRequires: mcqd-devel -BuildRequires: meson -BuildRequires: mpfi-devel -BuildRequires: nauty -BuildRequires: ninja-build -BuildRequires: ntl-devel -BuildRequires: openssh -BuildRequires: openssl -BuildRequires: palp -BuildRequires: pandoc -BuildRequires: pari-devel -BuildRequires: pari-elldata -BuildRequires: pari-galdata -BuildRequires: pari-galpol -BuildRequires: pari-gp -BuildRequires: pari-nftables -BuildRequires: pari-seadata -BuildRequires: patchelf -BuildRequires: pdf2svg -BuildRequires: perl-generators -BuildRequires: perl(ExtUtils::MakeMaker) -BuildRequires: perl(File::Slurp) -BuildRequires: pkgconfig -BuildRequires: pkgconfig(bdw-gc) -BuildRequires: pkgconfig(cbc) -BuildRequires: pkgconfig(eclib) -BuildRequires: pkgconfig(factory) -BuildRequires: pkgconfig(fplll) -BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(gdlib) -BuildRequires: pkgconfig(gf2x) -BuildRequires: pkgconfig(gsl) -BuildRequires: pkgconfig(igraph) -BuildRequires: pkgconfig(isl) -BuildRequires: pkgconfig(libavdevice) -BuildRequires: pkgconfig(libcurl) -BuildRequires: pkgconfig(libgvc) -BuildRequires: pkgconfig(libpcre) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(libsemigroups) -BuildRequires: pkgconfig(libzmq) -BuildRequires: pkgconfig(linbox) -BuildRequires: pkgconfig(m4ri) -BuildRequires: pkgconfig(m4rie) -BuildRequires: pkgconfig(nauty) -BuildRequires: pkgconfig(openssl) -BuildRequires: pkgconfig(primecount) -BuildRequires: pkgconfig(primesieve) -BuildRequires: pkgconfig(readline) -BuildRequires: pkgconfig(Singular) -BuildRequires: pkgconfig(tbb) -BuildRequires: pkgconfig(tk) -BuildRequires: pkgconfig(zlib) -BuildRequires: planarity-devel -BuildRequires: polymake -BuildRequires: ppl-devel -BuildRequires: python3-devel -BuildRequires: python3-docs -BuildRequires: python3-cypari2-devel -BuildRequires: python3-cysignals-devel -%if %{without bundled_ipython} -BuildRequires: python3-ipython-sphinx -%endif -BuildRequires: python3-pillow-devel -BuildRequires: python3-pplpy-devel -BuildRequires: python3-tdlib-devel -BuildRequires: python3-tkinter -BuildRequires: pythran -BuildRequires: %{py3_dist argon2-cffi} -BuildRequires: %{py3_dist asttokens} -%if %{with bundled_ipython} -BuildRequires: %{py3_dist backcall} -%endif -BuildRequires: %{py3_dist beautifulsoup4} -BuildRequires: %{py3_dist beniget} -BuildRequires: %{py3_dist brial} -BuildRequires: %{py3_dist charset-normalizer} -BuildRequires: %{py3_dist colorlog} -BuildRequires: %{py3_dist contourpy} -BuildRequires: %{py3_dist cppy} -BuildRequires: %{py3_dist cvxopt} -BuildRequires: %{py3_dist cython} -BuildRequires: %{py3_dist deprecation} -BuildRequires: %{py3_dist docutils} -BuildRequires: %{py3_dist editables} -BuildRequires: %{py3_dist executing} -BuildRequires: %{py3_dist flit-core} -BuildRequires: %{py3_dist fpylll} -BuildRequires: %{py3_dist furo} -BuildRequires: %{py3_dist gast} -BuildRequires: %{py3_dist gmpy2} -BuildRequires: %{py3_dist hatch-fancy-pypi-readme} -BuildRequires: %{py3_dist hatchling} -%if %{with sphinx_hack} -BuildRequires: %{py3_dist html5lib} -BuildRequires: %{py3_dist imagesize} -%endif -BuildRequires: %{py3_dist idna} -BuildRequires: %{py3_dist importlib-metadata} -BuildRequires: %{py3_dist ipykernel} -%if %{without bundled_ipython} -BuildRequires: %{py3_dist ipython} -%endif -BuildRequires: %{py3_dist ipywidgets} -%if %{with bundled_ipython} -BuildRequires: %{py3_dist jedi} -%endif -BuildRequires: %{py3_dist jupyter-packaging} -BuildRequires: %{py3_dist jupyter-sphinx} -BuildRequires: %{py3_dist jupyterlab-pygments} -BuildRequires: %{py3_dist kiwisolver} -BuildRequires: %{py3_dist lrcalc} -BuildRequires: %{py3_dist matplotlib} -BuildRequires: %{py3_dist matplotlib-inline} -BuildRequires: %{py3_dist nbclient} -BuildRequires: %{py3_dist nbconvert} -BuildRequires: %{py3_dist nbformat} -BuildRequires: %{py3_dist nest-asyncio} -BuildRequires: %{py3_dist networkx} -BuildRequires: %{py3_dist notebook} -BuildRequires: %{py3_dist pari-jupyter} -%if %{with bundled_ipython} -BuildRequires: %{py3_dist path.py} -%endif -BuildRequires: %{py3_dist pathspec} -%if %{without bundled_pexpect} -BuildRequires: %{py3_dist pexpect} -%endif -%if %{with bundled_ipython} -BuildRequires: %{py3_dist pickleshare} -%endif -BuildRequires: %{py3_dist pip} -BuildRequires: %{py3_dist pkgconfig} -BuildRequires: %{py3_dist platformdirs} -BuildRequires: %{py3_dist pluggy} -BuildRequires: %{py3_dist ply} -BuildRequires: %{py3_dist poetry-core} -BuildRequires: %{py3_dist primecountpy} -BuildRequires: %{py3_dist ptyprocess} -BuildRequires: %{py3_dist pure-eval} -BuildRequires: %{py3_dist py} -BuildRequires: %{py3_dist pycryptosat} -BuildRequires: %{py3_dist pyopenssl} -BuildRequires: %{py3_dist pyproject-metadata} -BuildRequires: %{py3_dist pytest} -BuildRequires: %{py3_dist pytest-xdist} -BuildRequires: %{py3_dist pytz} -BuildRequires: %{py3_dist pytzdata} -BuildRequires: %{py3_dist pytz-deprecation-shim} -%if %{with bundled_ipython} -BuildRequires: %{py3_dist pyzmq} -%endif -BuildRequires: %{py3_dist rpy2} -BuildRequires: %{py3_dist scipy} -BuildRequires: %{py3_dist scons} -BuildRequires: %{py3_dist setuptools} -BuildRequires: %{py3_dist setuptools_scm} -BuildRequires: %{py3_dist setuptools_scm_git_archive} -%if %{with bundled_ipython} -BuildRequires: %{py3_dist simplegeneric} -%endif -BuildRequires: %{py3_dist six} -BuildRequires: %{py3_dist soupsieve} -BuildRequires: %{py3_dist sphinx} -BuildRequires: %{py3_dist sphinx-basic-ng} -BuildRequires: %{py3_dist stack-data} -BuildRequires: %{py3_dist sympy} -BuildRequires: %{py3_dist tinycss2} -BuildRequires: %{py3_dist tomlkit} -BuildRequires: %{py3_dist tox} -BuildRequires: %{py3_dist typing-extensions} -BuildRequires: %{py3_dist urllib3} -BuildRequires: %{py3_dist wheel} -BuildRequires: %{py3_dist widgetsnbextension} -BuildRequires: %{py3_dist zodb3} -BuildRequires: qepcad-B -BuildRequires: qhull -BuildRequires: qhull-devel -BuildRequires: R -BuildRequires: R-devel -BuildRequires: rubiks -BuildRequires: rw-devel -BuildRequires: saclib-devel -BuildRequires: sharedmeataxe-devel -BuildRequires: sirocco-devel -BuildRequires: suitesparse-devel -BuildRequires: surf-geometry -BuildRequires: symmetrica-devel -BuildRequires: sympow -BuildRequires: tachyon -BuildRequires: texlive -BuildRequires: tex(anyfontsize.sty) -BuildRequires: tex(fncychap.sty) -BuildRequires: tex(makecmds.sty) -BuildRequires: tex(subfigure.sty) -BuildRequires: tex(tgtermes.sty) -BuildRequires: tex(tikz-qtree.sty) -BuildRequires: tex(tkz-berge.sty) -BuildRequires: tex(xy.sty) -# For _jsdir macro -BuildRequires: web-assets-devel -BuildRequires: xorg-x11-fonts-Type1 -BuildRequires: xorg-x11-server-Xvfb -BuildRequires: yarnpkg - -Requires: hicolor-icon-theme -Requires: rubiks -Requires: %{name}-core = %{version}-%{release} -Requires: %{name}-data = %{version}-%{release} -%if %{with docs} -Requires: %{name}-doc = %{version}-%{release} -%endif -Requires: %{name}-jupyter = %{version}-%{release} -Requires: %{name}-sagetex = %{version}-%{release} - -%if %{with bundled_threejs} -Provides: bundled(threejs) = %{threejs_ver} -%endif - -%description -Sage is a free open-source mathematics software system licensed -under the GPL. It combines the power of many existing open-source -packages into a common Python-based interface. - -#------------------------------------------------------------------------ -%package core -License: GPL-3.0-only AND GPL-2.0-or-later AND GPL-1.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND MIT AND BSD-3-Clause AND BSD-2-Clause AND EPL-1.0 AND PSF-2.0 -Summary: Open Source Mathematics Software -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: 4ti2 -Requires: cddlib-tools -Requires: flintqs -Requires: gap -Requires: gap-pkg-aclib -Requires: gap-pkg-alnuth -Requires: gap-pkg-atlasrep -Requires: gap-pkg-autodoc -Requires: gap-pkg-autpgrp -Requires: gap-pkg-cohomolo -Requires: gap-pkg-corelg -Requires: gap-pkg-crime -Requires: gap-pkg-crisp -Requires: gap-pkg-cryst -Requires: gap-pkg-crystcat -Requires: gap-pkg-ctbllib -Requires: gap-pkg-design -Requires: gap-pkg-edim -Requires: gap-pkg-factint -Requires: gap-pkg-fga -Requires: gap-pkg-gbnp -Requires: gap-pkg-genss -Requires: gap-pkg-guava -Requires: gap-pkg-hap -Requires: gap-pkg-hapcryst -Requires: gap-pkg-hecke -Requires: gap-pkg-images -Requires: gap-pkg-irredsol -Requires: gap-pkg-jupyterkernel -Requires: gap-pkg-laguna -Requires: gap-pkg-liealgdb -Requires: gap-pkg-liepring -Requires: gap-pkg-liering -Requires: gap-pkg-loops -Requires: gap-pkg-lpres -Requires: gap-pkg-mapclass -Requires: gap-pkg-polenta -Requires: gap-pkg-polycyclic -Requires: gap-pkg-polymaking -Requires: gap-pkg-qpa -Requires: gap-pkg-quagroup -Requires: gap-pkg-radiroot -Requires: gap-pkg-repsn -Requires: gap-pkg-resclasses -Requires: gap-pkg-singular -Requires: gap-pkg-sla -Requires: gap-pkg-sonata -Requires: gap-pkg-sophus -Requires: gap-pkg-tomlib -Requires: gap-pkg-toric -Requires: gap-pkg-utils -Requires: gfan -Requires: gmp-ecm -Requires: gp2c -Requires: jmol -Requires: jsmol -Requires: jsmath-fonts -Requires: latte-integrale -Requires: libgap -Requires: lrslib-utils -Requires: mathjax -Requires: maxima-runtime-ecl -Requires: nauty -Requires: palp -Requires: pari-elldata -Requires: pari-galdata -Requires: pari-galpol -Requires: pari-gp -Requires: pari-nftables -Requires: pari-seadata -Requires: python3-tdlib -Requires: %{py3_dist asttokens} -%if %{with bundled_ipython} -Requires: %{py3_dist backcall} -%endif -Requires: %{py3_dist beautifulsoup4} -Requires: %{py3_dist beniget} -Requires: %{py3_dist brial} -Requires: %{py3_dist charset-normalizer} -Requires: %{py3_dist contourpy} -Requires: %{py3_dist cppy} -Requires: %{py3_dist cypari2} -Requires: %{py3_dist cysignals} -Requires: %{py3_dist cvxopt} -Requires: %{py3_dist cython} -Requires: %{py3_dist docutils} -Requires: %{py3_dist executing} -Requires: %{py3_dist flit-core} -Requires: %{py3_dist fpylll} -Requires: %{py3_dist gast} -Requires: %{py3_dist gmpy2} -%if %{with sphinx_hack} -Requires: %{py3_dist html5lib} -Requires: %{py3_dist imagesize} -%endif -Requires: %{py3_dist idna} -Requires: %{py3_dist importlib-metadata} -Requires: %{py3_dist ipykernel} -%if %{without bundled_ipython} -Requires: %{py3_dist ipython} -%endif -Requires: %{py3_dist ipywidgets} -%if %{with bundled_ipython} -Requires: %{py3_dist jedi} -%endif -Requires: %{py3_dist lrcalc} -Requires: %{py3_dist matplotlib} -Requires: %{py3_dist nbclient} -Requires: %{py3_dist nbconvert} -Requires: %{py3_dist nbformat} -Requires: %{py3_dist nest-asyncio} -Requires: %{py3_dist networkx} -%if %{with bundled_ipython} -Requires: %{py3_dist path.py} -%endif -%if %{without bundled_pexpect} -Requires: %{py3_dist pexpect} -%endif -%if %{with bundled_ipython} -Requires: %{py3_dist pickleshare} -%endif -Requires: %{py3_dist pplpy} -Requires: %{py3_dist primecountpy} -Requires: %{py3_dist ptyprocess} -Requires: %{py3_dist pure-eval} -Requires: %{py3_dist pycryptosat} -Requires: %{py3_dist pytz} -Requires: %{py3_dist pytzdata} -Requires: %{py3_dist pytz-deprecation-shim} -%if %{with bundled_ipython} -Requires: %{py3_dist pyzmq} -%endif -Requires: %{py3_dist rpy2} -Requires: %{py3_dist scipy} -%if %{with bundled_ipython} -Requires: %{py3_dist simplegeneric} -%endif -Requires: %{py3_dist six} -Requires: %{py3_dist sphinx} -Requires: %{py3_dist stack-data} -Requires: %{py3_dist sympy} -Requires: %{py3_dist tinycss2} -Requires: %{py3_dist tomlkit} -Requires: %{py3_dist urllib3} -Requires: %{py3_dist zodb3} -Requires: qepcad-B -Requires: Singular -Requires: sympow -Requires: tachyon -Requires: texlive -%if %{with bundled_ipython} -Provides: bundled(ipython) = %{ipython_ver} -Provides: bundled(prompt_toolkit) = %{prompt_toolkit_ver} -%endif -%if %{with bundled_jupyter_jsmol} -Provides: bundled(jupyter-jsmol) = %{jupyter_jsmol_ver} -%endif -%if %{with bundled_memory_allocator} -Provides: bundled(memory-allocator) = %{memory_allocator_ver} -%endif - -# This can be removed when Fedora 40 reaches EOL -Obsoletes: pynac < 0.7.29-3 -Obsoletes: pynac-devel < 0.7.29-3 - -%description core -This package contains the core sagemath python modules. - -#------------------------------------------------------------------------ -%package data -Summary: Databases and scripts for %{name} -Requires: %{name} = %{version}-%{release} -Requires: %{name}-data-combinatorial_designs = %{version}-%{release} -Requires: %{name}-data-conway_polynomials = %{version}-%{release} -Requires: %{name}-data-elliptic_curves = %{version}-%{release} -Requires: %{name}-data-etc = %{version}-%{release} -Requires: %{name}-data-graphs = %{version}-%{release} -Requires: %{name}-data-polytopes_db = %{version}-%{release} -BuildArch: noarch - -%description data -Collection of databases and interface customization scripts for sagemath. - -#------------------------------------------------------------------------ -%package data-combinatorial_designs -License: LicenseRef-Fedora-Public-Domain -Summary: Table of MOLS from the Handbook of Combinatorial Designs -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-combinatorial_designs -The table of MOLS (10000 integers) from the Handbook of Combinatorial -Designs, 2nd edition. - -#------------------------------------------------------------------------ -%package data-conway_polynomials -License: GPL-2.0-or-later -Summary: Conway Polynomials Database -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-conway_polynomials -Small database of Conway polynomials for sagemath. - -#------------------------------------------------------------------------ -%package data-elliptic_curves -License: Artistic-2.0 -Summary: Databases of elliptic curves -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-elliptic_curves -Includes two databases: - - * A small subset of the data in John Cremona's database of elliptic curves up - to conductor 10000. See http://johncremona.github.io/ecdata/. - - * William Stein's database of interesting curves - -#------------------------------------------------------------------------ -%package data-elliptic_curves_large -License: Artistic-2.0 -Summary: Large database of elliptic curves -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-elliptic_curves_large -John Cremona's full database of elliptic curves, and also data related to -the BSD conjecture and modular degrees for all of these curves, and -generators for the Mordell-Weil groups. See -http://johncremona.github.io/ecdata/. - -#------------------------------------------------------------------------ -%package data-etc -License: GPL-2.0-or-later -Summary: Extcode for Sagemath -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-etc -Collection of scripts and interfaces to sagemath. - -#------------------------------------------------------------------------ -%package data-graphs -License: LicenseRef-Fedora-Public-Domain -Summary: Sagemath database of graphs -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-graphs -A database of graphs. Created by Emily Kirkman based on the work of Jason -Grout. Since April 2012 it also contains the ISGCI graph database. - -#------------------------------------------------------------------------ -%package data-polytopes_db -License: GPL-3.0-or-later -Summary: Lists of 2- and 3-dimensional reflexive polytopes -Requires: %{name}-data = %{version}-%{release} -BuildArch: noarch - -%description data-polytopes_db -The list of polygons is quite easy to get and it has been known for a while. -The list of 3-polytopes was originally obtained by Maximilian Kreuzer and -Harald Skarke using their software PALP, which is included into the standard -distribution of Sage. To work with lattice and reflexive polytopes from Sage -you can use sage.geometry.lattice_polytope module, which relies on PALP for -some of its functionality. To get access to the databases of this package, use -ReflexivePolytope and ReflexivePolytopes commands. - -%if %{with docs} -#------------------------------------------------------------------------ -%package doc -License: CC-BY-SA-3.0 -Summary: Documentation infrastructure files for %{name} -Requires: mathjax - -%description doc -This package contains the documentation infrastructure for %{name}. - -#------------------------------------------------------------------------ -%package doc-ca -License: CC-BY-SA-3.0 -Summary: Catalan documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-ca -This package contains the Catalan %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-de -License: CC-BY-SA-3.0 -Summary: German documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-de -This package contains the German %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-en -License: CC-BY-SA-3.0 -Summary: English documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-en -This package contains the English %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-fr -License: CC-BY-SA-3.0 -Summary: French documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-fr -This package contains the French %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-hu -License: CC-BY-SA-3.0 -Summary: Hungarian documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-hu -This package contains the Hungarian %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-it -License: CC-BY-SA-3.0 -Summary: Italian documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-it -This package contains the Italian %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-pt -License: CC-BY-SA-3.0 -Summary: Portuguese documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-pt -This package contains the Portuguese %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-ru -License: CC-BY-SA-3.0 -Summary: Russian documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-ru -This package contains the Russian %{name} documentation. - -#------------------------------------------------------------------------ -%package doc-tr -License: CC-BY-SA-3.0 -Summary: Turkish documentation files for %{name} -Requires: %{name}-doc = %{version}-%{release} - -%description doc-tr -This package contains the Turkish %{name} documentation. -# with docs -%endif - -#------------------------------------------------------------------------ -%package jupyter -License: GPL-2.0-or-later AND MIT -Summary: Jupyter integration for sagemath -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: python-jupyter-filesystem -Requires: %{py3_dist argon2-cffi} -Requires: %{py3_dist deprecation} -Requires: %{py3_dist editables} -Requires: %{py3_dist hatchling} -Requires: %{py3_dist jupyter-sphinx} -Requires: %{py3_dist jupyterlab-pygments} -Requires: %{py3_dist matplotlib-inline} -Requires: %{py3_dist pari-jupyter} -Requires: %{py3_dist widgetsnbextension} - -%description jupyter -This package contains a Jupyter integration for sagemath, replacing the -defunct notebook functionality. - -#------------------------------------------------------------------------ -%package sagetex -License: GPL-2.0-or-later -Summary: Sagemath into LaTeX documents -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{py3_dist pillow} -Requires: tex(color.sty) -Requires: tex(fancyvrb.sty) -Requires: tex(graphicx.sty) -Requires: tex(hyperref.sty) -Requires: tex(ifpdf.sty) -Requires: tex(ifthen.sty) -Requires: tex(ifxetex.sty) -Requires: tex(listings.sty) -Requires: tex(makecmds.sty) -Requires: tex(tikz.sty) -Requires: tex(verbatim.sty) -Requires: tex(xspace.sty) - -%description sagetex -This is the SageTeX package. It allows you to embed code, results of -computations, and plots from the Sage mathematics software suite -(http://sagemath.org) into LaTeX documents. - -######################################################################## -%prep -%setup -q -n sage-%{version} -%setup -q -n sage-%{version} -T -D -a 1 - -pushd build/pkgs/combinatorial_designs - tar jxf ../../../upstream/%{combinatorial_designs_pkg}.tar.bz2 - mv %{combinatorial_designs_pkg} src -popd - -pushd build/pkgs/conway_polynomials - tar jxf ../../../upstream/%{conway_polynomials_pkg}.tar.bz2 - mv %{conway_polynomials_pkg} src -popd - -pushd build/pkgs/elliptic_curves - tar jxf ../../../upstream/%{elliptic_curves_pkg}.tar.bz2 - mv %{elliptic_curves_pkg} src -popd - -pushd build/pkgs/graphs - tar jxf ../../../upstream/%{graphs_pkg}.tar.bz2 - mv %{graphs_pkg} src -popd - -%if %{with bundled_ipython} -pushd build/pkgs/ipython - tar zxf ../../../upstream/%{ipython_pkg}.tar.gz - mv %{ipython_pkg} src -popd - -pushd build/pkgs/prompt_toolkit - tar zxf ../../../upstream/%{prompt_tookit_pkg}.tar.gz - mv %{prompt_tookit_pkg} src -popd -%endif - -%if %{with bundled_jupyter_jsmol} -pushd build/pkgs/jupyter_jsmol - tar zxf ../../../upstream/%{jupyter_jsmol_pkg}.tar.gz - mv %{jupyter_jsmol_pkg} src -popd -%endif - -%if %{with bundled_memory_allocator} -pushd build/pkgs/memory_allocator - tar zxf ../../../upstream/%{memory_allocator_pkg}.tar.gz - mv %{memory_allocator_pkg} src -popd -%endif - -%if %{with bundled_pexpect} -pushd build/pkgs/pexpect - tar zxf ../../../upstream/%{pexpect_pkg}.tar.gz - mv %{pexpect_pkg} src -popd -%endif - -pushd build/pkgs/polytopes_db - tar jxf ../../../upstream/%{polytopes_db_pkg}.tar.bz2 - mv %{polytopes_db_pkg} src -popd - -pushd build/pkgs/sagetex - tar zxf ../../../upstream/%{sagetex_pkg}.tar.gz - mv %{sagetex_pkg} src - # Fix the style file install path - texmfdir=$(cut -d/ -f3- <<< "%{_texmf}") - sed -i "s,share/texmf,$texmfdir," src/setup.py -popd - -%if %{with docs} -%if %{with sphinx_hack} -pushd build/pkgs/sphinx - tar zxf ../../../upstream/%{Sphinx_pkg}.tar.gz - mv %{Sphinx_pkg} src - pushd src - for diff in ../patches/*.patch; do - patch -p1 < $diff - done - popd -popd -%endif -%endif - -%if %{with bundled_threejs} -pushd build/pkgs/threejs - tar zxf ../../../upstream/%{threejs_pkg}.tar.gz - mv %{threejs_pkg} src -popd -%endif - -%autopatch -p0 - -sed -i 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' src/sage/env.py - -sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \ - -e 's|@@BUILDROOT@@|%{buildroot}|' \ - -i src/sage_setup/command/sage_build_cython.py - -#------------------------------------------------------------------------ -# some .c files are not (re)generated -find src/sage \( -name \*.pyx -o -name \*.pxd \) -exec touch {} \+ - -# fix shebangs; some paths contains spaces, so use the null byte facility -grep -FrlZ '#!%{_bindir}/env python3' | \ - xargs -0 sed -i 's,#!%{_bindir}/env python3,#!%{python3},g' -grep -FrlZ '#!%{_bindir}/env python' | \ - xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{python3},g' -grep -FrlZ '#!%{_bindir}/env sage-bootstrap-python' | \ - xargs -0 sed -i 's,#!%{_bindir}/env sage-bootstrap-python,#!%{python3},g' -grep -FrlZ '#!%{_bindir}/env sage-python' | \ - xargs -0 sed -i 's,#!%{_bindir}/env sage-python,#!%{python3},g' -grep -FrlZ '#!%{_bindir}/env' | \ - xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,' -grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&3,' -sed -i 's,%{_bindir}/env python,%{python3},' \ -%if %{with bundled_pexpect} - build/pkgs/pexpect/src/examples/python.py \ -%endif - build/pkgs/sagetex/src/sagetex.ins -sed -i 's,%{_bindir}/python,&3,' src/sage/misc/dev_tools.py -sed -e 's,local/bin/python,bin/python,' \ - -e 's,#!%{_bindir}/python,&3,' \ - -i src/sage/repl/preparse.py -%if %{with bundled_ipython} -sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \ - -i build/pkgs/ipython/src/IPython/utils/_process_posix.py -%endif - -# Remove bogus executable bits -chmod a-x src/sage/modules/fp_graded/{,steenrod/}*.py - -# GAP does not have enough memory to load the entire workspace -sed -i 's/64m/256m/' src/sage/interfaces/gap.py - -# Fix detection of Fedora -sed -i 's/yum/rpm/' build/bin/sage-guess-package-system - -# Allow use of gcc 13 -sed -i 's/1\[3-9\].*)/1[4-9].*)/' configure - -# Allow use of eclib 20221012 -sed -i 's/20220621/20221012/g' configure - -# Do not build with -march=native -sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure - - -######################################################################## -%build -export LC_ALL=C.UTF-8 -export CPPFLAGS="-I%{_includedir}/4ti2 -I%{_includedir}/arb -I%{_includedir}/cddlib" -export ECMBIN=%{_bindir}/gmp-ecm -export SAGE_ROOT=%{buildroot}%{SAGE_ROOT} -export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL} -# Avoid buildroot in gcc command line (use _builddir instead) -export SAGE_SRC="$PWD/src" -export SAGE_INC=%{_includedir} -export DESTDIR=%{buildroot} -export SAGE_DEBUG=no -# Use file in /tmp because there are issues with long pathnames -export DOT_SAGE=/tmp/sage$$ -mkdir -p $DOT_SAGE/tmp - -# Avoid surprises due to change to src/build/temp.*$ARCH.*/... -export SAGE_CYTHONIZED=$SAGE_SRC/build/cythonized - -# match system packages as sagemath packages -mkdir -p $SAGE_ROOT $SAGE_LOCAL -ln -sf %{_libdir} $SAGE_LOCAL/lib -ln -sf %{_includedir} $SAGE_LOCAL/include -ln -sf %{_datadir} $SAGE_LOCAL/share - -export PATH=%{buildroot}%{_bindir}:$PATH -export PYTHON=%{_bindir}/python3 -export PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$PYTHONPATH - -# Make various programs visible to configure -module load 4ti2-%{_arch} -module load lrcalc-%{_arch} -module load surf-geometry-%{_arch} - -# Initialize polymake -polymake --reconfigure - <<< exit; - -#------------------------------------------------------------------------ -# Run the configure script to generate files -export GSL_LIBS="-lgsl -lflexiblas -lm" -%configure \ - --prefix=$SAGE_LOCAL \ - --disable-rpath \ - --disable-silent-rules \ - --enable-4ti2 \ - --enable-bliss \ - --enable-cocoalib \ - --enable-cryptominisat \ - --enable-csdp \ - --enable-database_cremona_ellcurve \ - --enable-frobby \ - --enable-mcqd \ - --enable-meataxe \ - --enable-qepcad \ - --enable-saclib \ - --enable-sirocco \ - --enable-surf \ - --enable-tdlib - -#------------------------------------------------------------------------ -# Link with flexiblas instead of gslcblas -grep -FrlZ gslcblas | xargs -0 sed -i 's/gslcblas/flexiblas/g' - -#------------------------------------------------------------------------ -# Save and update environment to generate bundled interfaces -save_PATH=$PATH -save_LOCAL=$SAGE_LOCAL -export PATH=%{_builddir}/bin:$PATH -export SAGE_LOCAL=%{_builddir} - -%if %{with bundled_ipython} -pushd build/pkgs/ipython/src - %{python3} setup.py build - %{python3} setup.py install --root %{_builddir} -popd - -pushd build/pkgs/prompt_toolkit/src - %{python3} setup.py build - %{python3} setup.py install --root %{_builddir} -popd -%endif - -%if %{with bundled_jupyter_jsmol} -pushd build/pkgs/jupyter_jsmol/src - %{python3} setup.py build - %{python3} setup.py install --root %{_builddir} -popd -%endif - -%if %{with bundled_memory_allocator} -pushd build/pkgs/memory_allocator/src - %{python3} setup.py build - %{python3} setup.py install --root %{_builddir} -popd -%endif - -%if %{with cython_hack} - cp -far %{python3_sitearch}/Cython %{_builddir}%{python3_sitearch} - BASE=$PWD/build/pkgs/cython/patches/ - pushd %{_builddir}%{python3_sitearch} - for PATCH in pxi_sys_path.patch - do - patch -p1 < $BASE/$PATCH - done - popd -%endif - -# Restore environment used to generate bundled interfaces -export PATH=$save_PATH -export SAGE_LOCAL=$save_LOCAL -export PYTHONPATH=$PYTHONPATH:%{_builddir}%{python3_sitelib}:%{_builddir}%{python3_sitearch} -mkdir -p %{buildroot}%{SAGE_SPKG_INST} -mkdir -p %{buildroot}%{_libdir}/sagemath/build/pkgs - -pushd src - %{python3} -u ./setup.py build - tar cf - $(find sage -type f \! \( -name \*.c -o -name \*.cc -o -name \*.cpp -o -name .gitignore -o -name \*.hpp \) ) | (cd build/lib.*; tar xf -) - tar cf - $(find sage_setup -name \*.py) | (cd build/lib.*; tar xf -) -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/sagetex/src - %{python3} ./setup.py build -popd - -# last build command -rm -fr $DOT_SAGE - -######################################################################## -%install -export LC_ALL=C.UTF-8 -export CC=%{__cc} -export SAGE_ROOT=%{buildroot}%{SAGE_ROOT} -export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL} -# Avoid buildroot in gcc command line (use _builddir instead) -export SAGE_SRC="$PWD/src" -export SAGE_INC=%{_includedir} -#export SAGE_SRC=#%#{buildroot}#%#{SAGE_SRC} -export SAGE_SHARE=%{buildroot}%{SAGE_SHARE} -export SAGE_ETC=%{buildroot}%{SAGE_ETC} -export SAGE_EXTCODE=%{buildroot}%{SAGE_ETC} -export SAGE_DOC=%{buildroot}%{SAGE_DOC} -export SAGE_PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH} -export DESTDIR=%{buildroot} -export SAGE_DEBUG=no -export DOT_SAGE=/tmp/sage$$ -mkdir -p $DOT_SAGE/tmp - -export PATH=%{buildroot}%{_bindir}:$PATH -export PYTHON=%{_bindir}/python3 -export PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$PYTHONPATH -export PYTHONPATH=%{_builddir}%{python3_sitearch}:%{_builddir}%{python3_sitelib}:$PYTHONPATH - -#------------------------------------------------------------------------ -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_libdir} -mkdir -p $SAGE_PYTHONPATH -rm -fr $SAGE_LOCAL/{include,lib,share,notebook} -mkdir -p $SAGE_SHARE $SAGE_DOC $SAGE_LOCAL/bin %{buildroot}%{SAGE_SRC} -ln -sf $PWD/src/sage %{buildroot}%{SAGE_SRC}/sage -ln -sf %{_libdir} $SAGE_LOCAL/lib -ln -sf %{_includedir} $SAGE_LOCAL/include -ln -sf %{_datadir} $SAGE_LOCAL/share - -#------------------------------------------------------------------------ -cp -a src/sage/ext_data $SAGE_ETC -cp -p %{SOURCE2} $SAGE_ETC - -#------------------------------------------------------------------------ -pushd src -%if %{without install_hack} - %py3_install -%else - mkdir -p %{buildroot}%{python3_sitearch} - cp -far build/lib.linux-*/sage %{buildroot}%{python3_sitearch} -%endif -%if %{with docs} - # install documentation sources - rm -fr $SAGE_DOC/{common,en,fr} - cp -far doc/{common,ca,de,en,fr,hu,it,pt,ru,tr} $SAGE_DOC -%endif -popd - -#------------------------------------------------------------------------ -%if %{with bundled_pexpect} -pushd build/pkgs/pexpect/src - cp -fa pexpect $SAGE_PYTHONPATH -popd -%endif - -#------------------------------------------------------------------------ -cp -fa COPYING.txt $SAGE_ROOT -pushd src/bin - mkdir -p $SAGE_LOCAL/bin - cp -fa sage-* $SAGE_LOCAL/bin - pushd $SAGE_LOCAL/bin - ln -sf %{_bindir}/jmol jmol - ln -sf %{_bindir}/python3 sage.bin - ln -sf %{_bindir}/python3 python - ln -sf %{_bindir}/gp sage_pari - ln -sf %{_bindir}/gap gap - ln -sf %{_bindir}/gmp-ecm ecm - rm -f sage-env-config.in - popd -popd -install -p -m755 src/bin/sage $SAGE_LOCAL/bin - -#------------------------------------------------------------------------ -pushd $SAGE_LOCAL/bin/ - rm -f \ - sage-arch-env \ - sage-bdist \ - sage-build \ - sage-clone \ - sage-clone-source \ - sage-combinat \ - sage-crap \ - sage-dev \ - sage-download-file \ - sage-download-upstream \ - sage-env \ - sage-fix-pkg-checksums \ - sage-list-experimental \ - sage-list-optional \ - sage-list-packages \ - sage-list-standard \ - sage-location \ - sage-omega \ - sage-open \ - sage-pkg \ - sage-pull \ - sage-push \ - sage-pypkg-location \ - sage-README-osx.txt \ - sage-rebaseall.bat \ - sage-rebaseall.sh \ - sage-rebase.bat \ - sage-rebase.sh \ - sage-rebase \ - sage-rsyncdist \ - sage-sdist \ - sage-spkg \ - sage-starts \ - sage-sync-build.py \ - sage-test-import \ - sage-update-src \ - sage-update-version \ - sage-upgrade \ - spkg-install -popd - -#------------------------------------------------------------------------ -( - source build/bin/sage-dist-helpers - -#------------------------------------------------------------------------ -pushd build/pkgs/combinatorial_designs - mkdir -p $SAGE_SHARE/combinatorial_designs - cp -fa src/* $SAGE_SHARE/combinatorial_designs -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/conway_polynomials - %{python3} ./spkg-install.py -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/elliptic_curves - # --short-circuit -bi debug build helper - if [ ! -e src/ellcurves ]; then - rm -fr src - tar jxf ../../../upstream/%{elliptic_curves_pkg}.tar.bz2 - mv %{elliptic_curves_pkg} src - fi - %{python3} ./spkg-install.py -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/graphs - mkdir -p $SAGE_SHARE/graphs - cp -fa src/* $SAGE_SHARE/graphs -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/polytopes_db - mkdir -p $SAGE_SHARE/reflexive_polytopes - cp -fa src/* $SAGE_SHARE/reflexive_polytopes -popd - -#------------------------------------------------------------------------ -pushd build/pkgs/sagetex/src - %py3_install "--install-purelib=%{python3_sitearch}" - mv %{buildroot}%{_texmf}/tex/latex/sagetex/CONTRIBUTORS \ - %{buildroot}%{_docdir}/sagetex - for file in PKG-INFO; do - install -p -m 0644 $file %{buildroot}%{_docdir}/sagetex/$file - done -popd - -#------------------------------------------------------------------------ -%if %{with bundled_ipython} -mv %{_builddir}%{python3_sitelib}/IPython %{buildroot}%{SAGE_PYTHONPATH} -mv %{_builddir}%{python3_sitelib}/prompt_toolkit* %{buildroot}%{SAGE_PYTHONPATH} -mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin -%endif - -#------------------------------------------------------------------------ -%if %{with bundled_jupyter_jsmol} -mv %{_builddir}%{python3_sitelib}/jupyter_jsmol* %{buildroot}%{SAGE_PYTHONPATH} -%endif - -#------------------------------------------------------------------------ -%if %{with bundled_memory_allocator} -mv %{_builddir}%{python3_sitearch}/memory_allocator* %{buildroot}%{SAGE_PYTHONPATH} -%endif - -#------------------------------------------------------------------------ -%if %{with bundled_threejs} -pushd build/pkgs/threejs - mkdir -p $SAGE_SHARE/threejs-sage - cp -a src/build $SAGE_SHARE/threejs-sage/%{threejs_ver} -popd -%endif - -#------------------------------------------------------------------------ -) # source build/bin/sage-dist-helpers - -#------------------------------------------------------------------------ -singver=$(sed 's/^.*-\([.[:digit:]]*\).*$/\1/' <<< %{singular_pkg}) -cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-env << EOF -export CUR=\$PWD -##export DOT_SAGE="\$HOME/.sage" -mkdir -p \$DOT_SAGE/{maxima,sympow,tmp} -export SAGE_TESTDIR=\$DOT_SAGE/tmp -export SAGE_ROOT="$SAGE_ROOT" -export SAGE_LOCAL="$SAGE_LOCAL" -export SAGE_SHARE="$SAGE_SHARE" -export SAGE_EXTCODE="$SAGE_ETC" -export SAGE_ETC="$SAGE_ETC" -export SAGE_SRC="%{buildroot}%{SAGE_SRC}" -##export SAGE_DOC="$SAGE_DOC" -##export SAGE_DOC_SRC="\$SAGE_DOC" -##export SAGE_PKGS="\$SAGE_LOCAL/var/lib/sage/installed" -module load 4ti2-%{_arch} -module load lrcalc-%{_arch} -module load surf-geometry-%{_arch} -export PATH=$SAGE_LOCAL/bin:\$PATH -export SINGULAR_DATA_DIR=%{_datadir} -export SINGULAR_BIN_DIR=%{_libdir}/Singular -export LIBSINGULAR_PATH=%{_libdir}/libSingular-$singver.so -##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin" -export SYMPOW_DIR="\$DOT_SAGE/sympow" -# Required for sage -gdb -: \${SAGE_DEBUG:=no} -export SAGE_DEBUG -EOF -cat > %{buildroot}%{_bindir}/sage << EOF -#!/bin/bash - -source $SAGE_LOCAL/bin/sage-env -exec $SAGE_LOCAL/bin/sage "\$@" -EOF -#------------------------------------------------------------------------ -chmod +x %{buildroot}%{_bindir}/sage - -#------------------------------------------------------------------------ -# adjust cython interface: -# o install csage headers -# o install .pxi and .pxd files -pushd src - for f in `find sage \( -name \*.pxi -o -name \*.pxd -o -name \*.pyx \)`; do - install -p -D -m 0644 $f %{buildroot}%{python3_sitearch}/$f - done - # need this or will not "find" the files in the directory, and - # fail to link with gmp - touch %{buildroot}%{python3_sitearch}/sage/libs/gmp/__init__.py -popd - -%if %{with docs} -#------------------------------------------------------------------------ -%if %{with bundled_pexpect} -cp -fa $SAGE_PYTHONPATH/pexpect %{buildroot}%{python3_sitearch} -%endif - -# Build documentation, using %#{buildroot} environment -export SAGE_SETUP=$PWD/src/sage_setup -pushd src/doc - export SAGE_DOC=$PWD - export PATH=%{buildroot}%{_bindir}:$SAGE_LOCAL/bin:$PATH - export SINGULARPATH=%{_datadir}/singular/LIB - export SINGULAR_BIN_DIR=%{_libdir}/Singular - export PYTHONPATH=$SAGE_SETUP:%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$SAGE_PYTHONPATH:$SAGE_SRC - -%if %{with sphinx_hack} - pushd ../../build/pkgs/sphinx/src - %py3_build - %py3_install "--install-purelib=%{python3_sitearch}" - rm -f %{buildroot}%{_bindir}/sphinx* - popd -%endif - - # there we go - ln -sf %{buildroot}%{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc - export SAGE_DOC=%{buildroot}%{SAGE_DOC} - export SAGE_DOC_SRC=$SAGE_DOC - export JUPYTER_PATH=%{buildroot}%{_datadir}/jupyter - # Build with an X server running, required by some doc builders - SAGE_NUM_THREADS=2 \ - xvfb-run -d %{python3} -m sage_docbuild --no-pdf-links -k all html -j - rm -f %{buildroot}%{SAGE_SRC}/doc - ln -sf %{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc - - # should not be required and encodes buildroot - rm -fr $SAGE_DOC/output/doctrees -popd - -%if %{with check} -export SAGE_TIMEOUT=%{SAGE_TIMEOUT} -export SAGE_TIMEOUT_LONG=%{SAGE_TIMEOUT_LONG} -sage -testall --verbose || : -install -p -m644 $DOT_SAGE/tmp/test.log $SAGE_DOC/test.log -# remove buildroot references from test.log -sed -i 's|%{buildroot}||g' $SAGE_DOC/test.log -%endif - -%if %{with bundled_pexpect} - rm -f %{buildroot}%{python3_sitearch}/pexpect -%endif - -%if %{with sphinx_hack} - rm -fr %{buildroot}%{python3_sitearch}/sphinx \ - %{buildroot}%{python3_sitearch}/Sphinx* -%endif - -# More wrong buildroot references -perl -pi -e 's|%{buildroot}||g;' \ - -e "s|$PWD/src/doc|%{SAGE_DOC}|g;" \ - %{buildroot}%{SAGE_DOC}/html/en/reference/combinat/sage/combinat/posets/poset_examples.html \ - %{buildroot}%{SAGE_DOC}/html/en/reference/graphs/sage/graphs/graph_generators.html -# with docs -%endif - -# Even more wrong buildroot references -for shared in $(find %{buildroot}%{python3_sitearch} -name \*.so); do - if chrpath -l $shared | grep -Fq BUILDROOT; then - chrpath -r %{SAGE_LOCAL}/lib $shared - fi -done - -#------------------------------------------------------------------------ -# Fix links -export SAGE_SRC=%{buildroot}%{SAGE_SRC} -rm -fr $SAGE_SRC/sage $SAGE_ETC/sage $SAGE_ROOT/doc $SAGE_SRC/doc -rm -fr $SAGE_ROOT/share $SAGE_ROOT/devel -ln -sf %{python3_sitearch}/sage $SAGE_SRC/sage -ln -sf %{python3_sitearch} $SAGE_ETC/sage -ln -sf %{SAGE_DOC} $SAGE_ROOT/doc -%if %{with docs} -ln -sf %{SAGE_DOC} $SAGE_SRC/doc -%endif -ln -sf %{SAGE_SHARE} $SAGE_ROOT/share -# compat devel symlink -ln -sf src $SAGE_ROOT/devel - -# Install menu and icons -install -p -m644 -D src/sage/ext_data/notebook-ipython/logo.svg \ - %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg -mkdir -p %{buildroot}%{_datadir}/applications -cat > %{buildroot}%{_datadir}/applications/org.%{name}.sage.desktop << EOF -[Desktop Entry] -Name=Sagemath -Comment=A free open-source mathematics software system -Exec=sage -Icon=%{name} -Terminal=true -Type=Application -Categories=Education;Science;Math; -EOF -desktop-file-validate %{buildroot}%{_datadir}/applications/org.%{name}.sage.desktop - -# Install the AppData file -mkdir -p %{buildroot}%{_metainfodir} -cp -p %{SOURCE3} %{buildroot}%{_metainfodir} -appstreamcli validate --no-net \ - %{buildroot}%{_metainfodir}/org.%{name}.sage.metainfo.xml - -# Fix permissions -find %{buildroot} -name '*.so' -exec chmod 755 {} \+ -chmod 755 %{buildroot}%{python3_sitearch}/sage/ext_data/pari/dokchitser/testall -for file in `find %{buildroot} -name \*.py`; do - if head -1 $file | grep -q '^#!'; then - chmod +x $file - fi -done - -%if %{with docs} -chmod -x %{buildroot}%{SAGE_DOC}/en/prep/media/Rplot001.png - -# Documentation is not rebuilt (also corrects rpmlint warning of hidden file) -find %{buildroot}%{SAGE_DOC} -name .buildinfo -delete -rm -fr %{buildroot}%{SAGE_DOC}/output/inventory -find %{buildroot}%{SAGE_DOC} -type d -name _sources -exec rm -fr {} \+ -%endif - -# remove build directory in buildroot -[ -d %{buildroot}%{SAGE_SRC}/build ] && - rm -r %{buildroot}%{SAGE_SRC}/build - -%if %{without install_hack} -# remove sage_setup -rm -r %{buildroot}%{python3_sitearch}/sage_setup -%endif - -# remove files we do not want to install -rm %{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config.in - -# pretend sagemath spkgs are installed to reduce number of errors -# in doctests -mkdir -p %{buildroot}%{SAGE_SPKG_INST} -pushd upstream -for file in *.tar.*; do - mkdir %{buildroot}%{SAGE_SPKG_INST}/${file%.tar.*} -done -for file in *.zip; do - mkdir %{buildroot}%{SAGE_SPKG_INST}/${file%.zip} -done -popd -pushd %{buildroot}%{SAGE_SPKG_INST} - for pkg in %{SAGE_REQUIRED_PKGS}; do - mkdir $pkg - done -popd - -#------------------------------------------------------------------------ -cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages << EOF -#!/bin/sh -NOVERSION=false -INSTALLED=no -while [ \$# -gt 0 ]; do - if [ x\$1 = x--no-version ]; then - NOVERSION=true - elif [ x\$1 = xinstalled ]; then - INSTALLED=yes - fi - shift -done -if [ \$INSTALLED = no ]; then - exit 0 -fi -LIST=\$(ls -1 %{SAGE_SPKG_INST}) -if [ \$NOVERSION = false ]; then - for pkg in \$LIST; do - echo \$pkg | sed -e 's/-/ /' - done -else - for pkg in \$LIST; do - echo \$pkg | sed -e 's/-.*//' - done -fi -EOF -chmod +x %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages -#------------------------------------------------------------------------ - -%if %{with docs} - rm -fr %{buildroot}%{SAGE_DOC}/doctrees - rm -fr %{buildroot}%{SAGE_DOC}/inventory -%endif - -#------------------------------------------------------------------------ -# Byte compile python files in nonstandard places -%py_byte_compile %{python3} %{buildroot}%{_texmf}/tex/latex/sagetex - -#------------------------------------------------------------------------ -# Do not bundle mathjax -for dir in $(find %{buildroot}%{_docdir} -name _static); do - pushd $dir - for d in config extensions fonts jax localization MathJax.js test; do - if [ -d "$PWD/$d" ]; then - rm -fr $d - ln -s %{_datadir}/javascript/mathjax/$d $d - fi - done - popd -done - -#------------------------------------------------------------------------ -# Jupyter integration -pushd src -%{python3} << EOF -from sage.repl.ipython_kernel.install import SageKernelSpec -SageKernelSpec.update(prefix='%{buildroot}%{_prefix}') -EOF -popd -# Remove buildroot from the json and symbolic links -pushd %{buildroot}%{_datadir}/jupyter - sed -i 's,%{buildroot},,g' kernels/sagemath/kernel.json - for link in $(find . -type l); do - target=$(readlink $link) - if [[ "$target" =~ "%{buildroot}" ]]; then - rm $link - ln -s ${target#%{buildroot}} $link - fi - done -popd - -#------------------------------------------------------------------------ -# Build the large Cremona database -export PATH=%{buildroot}%{SAGE_LOCAL}/bin:$PATH -export PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH}:%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib} -touch %{buildroot}%{SAGE_SHARE}/cremona/cremona.db -cat > cremona.sage << EOF -import sage.env -import sage.databases.cremona -sage.env.SAGE_SHARE = '%{buildroot}%{SAGE_SHARE}' -c = sage.databases.cremona.LargeCremonaDatabase('cremona', False, True) -c._init_from_ftpdata('ecdata-%{cremona_ver}') -EOF -%{buildroot}%{SAGE_LOCAL}/bin/sage cremona.sage - -#------------------------------------------------------------------------ -# Scripts were used to build documentation and possibly other operations -sed -i 's|%{buildroot}||g;s|^##||g;' \ - %{buildroot}%{_bindir}/sage \ - %{buildroot}%{SAGE_LOCAL}/bin/sage-env \ - %{buildroot}%{SAGE_LOCAL}/bin/sage-env-config \ - %{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config -sed -i "s|$PWD|%{SAGE_ROOT}|g" \ - %{buildroot}%{SAGE_LOCAL}/bin/sage-env-config \ - %{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config - -# last install command -rm -fr $DOT_SAGE - -######################################################################## -# Update sagemath's view of installed packages as RPM packages are added -# and removed. -%triggerin -- %{name}-data-elliptic_curves_large -mkdir -p %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_ver} 2>&1 || : - -%triggerun -- %{name}-data-elliptic_curves_large -rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_ver} - -%if %{with docs} -%pretrans -n sagemath-doc-en -p --- Fix directory/symlink conflicts introduced by fix for bz 1875606. --- This can be removed when Fedora 36 reaches EOL. -paths = { - "%{SAGE_DOC}/html/en/_static/config", - "%{SAGE_DOC}/html/en/_static/extensions", - "%{SAGE_DOC}/html/en/_static/fonts", - "%{SAGE_DOC}/html/en/_static/jax", - "%{SAGE_DOC}/html/en/_static/localization", - "%{SAGE_DOC}/html/en/_static/test", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/config", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/extensions", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/fonts", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/jax", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/localization", - "%{SAGE_DOC}/html/en/a_tour_of_sage/_static/test", - "%{SAGE_DOC}/html/en/constructions/_static/config", - "%{SAGE_DOC}/html/en/constructions/_static/extensions", - "%{SAGE_DOC}/html/en/constructions/_static/fonts", - "%{SAGE_DOC}/html/en/constructions/_static/jax", - "%{SAGE_DOC}/html/en/constructions/_static/localization", - "%{SAGE_DOC}/html/en/constructions/_static/test", - "%{SAGE_DOC}/html/en/developer/_static/config", - "%{SAGE_DOC}/html/en/developer/_static/extensions", - "%{SAGE_DOC}/html/en/developer/_static/fonts", - "%{SAGE_DOC}/html/en/developer/_static/jax", - "%{SAGE_DOC}/html/en/developer/_static/localization", - "%{SAGE_DOC}/html/en/developer/_static/test", - "%{SAGE_DOC}/html/en/faq/_static/config", - "%{SAGE_DOC}/html/en/faq/_static/extensions", - "%{SAGE_DOC}/html/en/faq/_static/fonts", - "%{SAGE_DOC}/html/en/faq/_static/jax", - "%{SAGE_DOC}/html/en/faq/_static/localization", - "%{SAGE_DOC}/html/en/faq/_static/test", - "%{SAGE_DOC}/html/en/installation/_static/config", - "%{SAGE_DOC}/html/en/installation/_static/extensions", - "%{SAGE_DOC}/html/en/installation/_static/fonts", - "%{SAGE_DOC}/html/en/installation/_static/jax", - "%{SAGE_DOC}/html/en/installation/_static/localization", - "%{SAGE_DOC}/html/en/installation/_static/test", - "%{SAGE_DOC}/html/en/prep/_static/config", - "%{SAGE_DOC}/html/en/prep/_static/extensions", - "%{SAGE_DOC}/html/en/prep/_static/fonts", - "%{SAGE_DOC}/html/en/prep/_static/jax", - "%{SAGE_DOC}/html/en/prep/_static/localization", - "%{SAGE_DOC}/html/en/prep/_static/test", - "%{SAGE_DOC}/html/en/reference/_static/config", - "%{SAGE_DOC}/html/en/reference/_static/extensions", - "%{SAGE_DOC}/html/en/reference/_static/fonts", - "%{SAGE_DOC}/html/en/reference/_static/jax", - "%{SAGE_DOC}/html/en/reference/_static/localization", - "%{SAGE_DOC}/html/en/reference/_static/test", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/config", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/extensions", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/fonts", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/jax", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/localization", - "%{SAGE_DOC}/html/en/thematic_tutorials/_static/test", - "%{SAGE_DOC}/html/en/tutorial/_static/config", - "%{SAGE_DOC}/html/en/tutorial/_static/extensions", - "%{SAGE_DOC}/html/en/tutorial/_static/fonts", - "%{SAGE_DOC}/html/en/tutorial/_static/jax", - "%{SAGE_DOC}/html/en/tutorial/_static/localization", - "%{SAGE_DOC}/html/en/tutorial/_static/test", - "%{SAGE_DOC}/html/en/website/_static/config", - "%{SAGE_DOC}/html/en/website/_static/extensions", - "%{SAGE_DOC}/html/en/website/_static/fonts", - "%{SAGE_DOC}/html/en/website/_static/jax", - "%{SAGE_DOC}/html/en/website/_static/localization", - "%{SAGE_DOC}/html/en/website/_static/test" -} - -for _, path in ipairs(paths) do - st = posix.stat(path) - if st and st.type == "directory" then - status = os.rename(path, path .. ".rpmmoved") - if not status then - suffix = 0 - while not status do - suffix = suffix + 1 - status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix) - end - os.rename(path, path .. ".rpmmoved") - end - end -end - --- Fix directory/symlink conflicts introduced by sagemath 3.5 -> 3.6 upgrade. --- This can be removed when Fedora 40 reaches EOL. -paths2 = { - "%{SAGE_DOC}/html/en/reference/plot3d/_static", - "%{SAGE_DOC}/html/en/reference/repl/_static" -} - -for _, path in ipairs(paths2) do - st = posix.stat(path) - if st and st.type == "link" then - os.remove(path) - end -end -%endif - - -%files -# GPL-2.0-or-later -%license COPYING.txt -%doc %{SAGE_ROOT}/COPYING.txt -%dir %{SAGE_ROOT} -%dir %{SAGE_LOCAL}/ -%dir %{SAGE_SHARE}/ -%{SAGE_LOCAL}/bin/ -%{SAGE_LOCAL}/include -%{SAGE_LOCAL}/lib -%{SAGE_LOCAL}/share -%{SAGE_LOCAL}/var/ -%ghost %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_ver} -%{SAGE_ROOT}/devel -%{SAGE_ROOT}/doc -%{SAGE_ROOT}/share -%{SAGE_SRC}/ -%dir %{SAGE_PYTHONPATH} -%{_bindir}/sage -%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg -%{_datadir}/applications/org.%{name}.sage.desktop -%{_metainfodir}/org.%{name}.sage.metainfo.xml -%if %{with bundled_threejs} -# MIT -%{SAGE_SHARE}/threejs-sage/ -%endif - -#------------------------------------------------------------------------ -%files core -# GPL-2.0-or-later -%{python3_sitearch}/sage/ -%if %{without install_hack} -%{python3_sitearch}/sage-*.egg-info -%endif -%if %{with bundled_ipython} -# BSD-3-Clause -%{SAGE_PYTHONPATH}/IPython -%{SAGE_PYTHONPATH}/prompt_toolkit* -%endif -%if %{with bundled_jupyter_jsmol} -# MIT AND BSD-3-Clause AND EPL-1.0 -%{SAGE_PYTHONPATH}/jupyter_jsmol* -%endif -%if %{with bundled_memory_allocator} -# GPL-3.0-only AND LGPL-3.0-or-later -%{SAGE_PYTHONPATH}/memory_allocator* -%endif - -#------------------------------------------------------------------------ -%files data -%dir %{SAGE_ETC}/ -%{SAGE_ETC}/sage -%{SAGE_ETC}/gprc.expect - -#------------------------------------------------------------------------ -%files data-combinatorial_designs -# Public Domain -%{SAGE_SHARE}/combinatorial_designs/ - -#------------------------------------------------------------------------ -%files data-conway_polynomials -# GPL-2.0-or-later -%{SAGE_SHARE}/conway_polynomials/ - -#------------------------------------------------------------------------ -%files data-elliptic_curves -# Artistic-2.0 -%dir %{SAGE_SHARE}/cremona/ -%{SAGE_SHARE}/cremona/cremona_mini.db -%{SAGE_SHARE}/ellcurves/ - -#------------------------------------------------------------------------ -%files data-elliptic_curves_large -# Artistic-2.0 -%dir %{SAGE_SHARE}/cremona/ -%{SAGE_SHARE}/cremona/cremona.db - -#------------------------------------------------------------------------ -%files data-etc -# GPL-2.0-or-later -%{SAGE_ETC}/doctest/ -%{SAGE_ETC}/gap/ -%{SAGE_ETC}/kenzo/ -%{SAGE_ETC}/magma/ -%{SAGE_ETC}/mwrank/ -%{SAGE_ETC}/nbconvert/ -%{SAGE_ETC}/nodoctest -%{SAGE_ETC}/pari/ -%{SAGE_ETC}/singular/ -%{SAGE_ETC}/threejs/ -%{SAGE_ETC}/valgrind/ - -#------------------------------------------------------------------------ -%files data-graphs -# Public Domain -%{SAGE_ETC}/graphs/ -%{SAGE_SHARE}/graphs/ - -#------------------------------------------------------------------------ -%files data-polytopes_db -# GPL-3.0-or-later -%{SAGE_SHARE}/reflexive_polytopes/ - -%if %{with docs} -#------------------------------------------------------------------------ -%files doc -# CC-BY-SA-3.0 -%license COPYING.txt -%dir %{SAGE_DOC}/ -%{SAGE_DOC}/index.html -%{SAGE_DOC}/common/ -%dir %{SAGE_DOC}/html/ - -#------------------------------------------------------------------------ -%files doc-ca -# CC-BY-SA-3.0 -%{SAGE_DOC}/ca/ -%{SAGE_DOC}/html/ca/ - -#------------------------------------------------------------------------ -%files doc-de -# CC-BY-SA-3.0 -%{SAGE_DOC}/de/ -%{SAGE_DOC}/html/de/ - -#------------------------------------------------------------------------ -%files doc-en -# CC-BY-SA-3.0 -%{SAGE_DOC}/en/ -%{SAGE_DOC}/html/en/ - -# Fix directory/symlink conflicts introduced by fix for bz 1875606. -# This can be removed when Fedora 36 reaches EOL. -%ghost %{SAGE_DOC}/html/en/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/a_tour_of_sage/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/constructions/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/developer/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/faq/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/installation/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/prep/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/reference/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/thematic_tutorials/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/tutorial/_static/test.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/config.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/extensions.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/fonts.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/jax.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/localization.rpmmoved -%ghost %{SAGE_DOC}/html/en/website/_static/test.rpmmoved - -#------------------------------------------------------------------------ -%files doc-fr -# CC-BY-SA-3.0 -%{SAGE_DOC}/fr/ -%{SAGE_DOC}/html/fr/ - -#------------------------------------------------------------------------ -%files doc-hu -# CC-BY-SA-3.0 -%{SAGE_DOC}/hu/ -%{SAGE_DOC}/html/hu/ - -#------------------------------------------------------------------------ -%files doc-it -# CC-BY-SA-3.0 -%{SAGE_DOC}/it/ -%{SAGE_DOC}/html/it/ - -#------------------------------------------------------------------------ -%files doc-pt -# CC-BY-SA-3.0 -%{SAGE_DOC}/pt/ -%{SAGE_DOC}/html/pt/ - -#------------------------------------------------------------------------ -%files doc-ru -# CC-BY-SA-3.0 -%{SAGE_DOC}/ru/ -%{SAGE_DOC}/html/ru/ - -#------------------------------------------------------------------------ -%files doc-tr -# CC-BY-SA-3.0 -%{SAGE_DOC}/tr/ -%{SAGE_DOC}/html/tr/ -# with docs -%endif - -#------------------------------------------------------------------------ -%files jupyter -# GPL-2.0-or-later -%{SAGE_ETC}/notebook-ipython/ -%{_datadir}/jupyter/kernels/sagemath/ -# MIT -%{_datadir}/jupyter/nbextensions/threejs-sage - -#------------------------------------------------------------------------ -%files sagetex -# GPL-2.0-or-later -%{_bindir}/sagetex* -%{python3_sitearch}/sagetex* -%{python3_sitearch}/__pycache__/sagetex* -%{_texmf}/tex/latex/sagetex/ -%doc %{_docdir}/sagetex/ - -######################################################################## -%changelog -* Sat Jul 22 2023 Fedora Release Engineering - 9.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Mar 16 2023 Benjamin A. Beasley - 9.8-2 -- Rebuild for libbraiding 1.2 - -* Mon Mar 13 2023 Jerry James - 9.8-1 -- Version 9.8 -- Drop upstreamed patches: -fes-build, -python3.11 -- Add patches: -catch-value, -gap-split-root, -bind2nd, -mem-fun-ref - -* Sat Jan 21 2023 Fedora Release Engineering - 9.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Jerry James - 9.7-1 -- Version 9.7 -- Drop upstreamed patches: -infinite-recursion, -use-after-free, -sphinx - -* Thu Jan 12 2023 Jerry James - 9.6-8 -- Update for split GAP tree -- Add patch for FTBFS with latest giac (see bz 2160197) -- Fix eclib detection -- Add BR on pcre-devel -- Add BR on texlive-tex-gyre -- Rebuild for libfplll 5.4.4 - -* Tue Dec 20 2022 Jerry James - 9.6-7 -- Fix failure to install (bz 2154932) -- Fix failure to find nauty binaries (bz 2125737) -- Convert License tags to SPDX - -* Wed Sep 21 2022 Jerry James - 9.6-6 -- Rebuild for gap 4.12.0 and pari 2.15.0 - -* Tue Aug 23 2022 Mamoru TASAKA - 9.6-5 -- Rebuild for gsl-2.7.1 - -* Sat Jul 23 2022 Fedora Release Engineering - 9.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jul 5 2022 Jerry James - 9.6-3 -- Add patch for python 3.11 compatibility (bz 2099168) -- Add workaround for symlink/directory conflict (bz 2097773) -- Modify the jmol patch to timeout after 5 minutes. This is a workaround for - recently observed jmol hangs, but is not a proper fix. - -* Tue Jun 21 2022 Python Maint - 9.6-2 -- Rebuilt for Python 3.11 - -* Wed Jun 1 2022 Jerry James - 9.6-1 -- Version 9.6 -- Fix path to libSingular.so (bz 2073208) -- Fix threejs install location (bz 2081720) -- Drop upstreamed -rubiks and -intersphinx-disabled-reftypes patches -- Drop no longer used ratpoints BR -- Thebe is no longer bundled - -* Sun Mar 27 2022 Jerry James - 9.5-2 -- Remove all support for 32-bit platforms -- Remove the interactive shell argument from /usr/bin/sage (rhbz#2028403) - -* Mon Mar 21 2022 Jerry James - 9.5-1 -- Version 9.5 -- Drop unnecessary -4ti2 and -primecount patches - -* Sat Jan 22 2022 Fedora Release Engineering - 9.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Oct 7 2021 Jerry James - 9.4-2 -- Rebuild for polymake 4.5 - -* Fri Aug 27 2021 Jerry James - 9.4-1 -- Version 9.4 -- Drop upstreamed -eclib patch -- Drop unnecessary -readonly patch -- Unbundle ipywidgets -- Bundle memory_allocator for now - -* Wed Aug 18 2021 Jerry James - 9.3-5 -- Unbundle flintqs -- Require gp2c and pari-nftables -- Add requirement for python3-pari-jupyter to the -jupyter subpackage - -* Fri Jul 23 2021 Fedora Release Engineering - 9.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jul 16 2021 Jerry James - 9.3-3 -- Rebuild for flint 2.7.1 and normaliz 3.9.0 -- Add -eclib patch to adapt to eclib 20210625 - -* Tue Jun 29 2021 Jerry James - 9.3-2 -- Rebuild for ntl 11.5.1 - -* Thu Jun 17 2021 Jerry James - 9.3-1 -- Version 9.3 -- Drop -arb and -openblas patches -- Add -cvxopt patch -- Add metainfo file - -* Fri Jun 04 2021 Python Maint - 9.2-5 -- Rebuilt for Python 3.10 - -* Wed Jan 27 2021 Fedora Release Engineering - 9.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Dec 7 2020 Jerry James - 9.2-3 -- Try again to fix upgrade conflicts due to the fix for bz 1875606 - -* Tue Nov 17 2020 Jerry James - 9.2-2 -- Fix upgrade conflicts due to the fix for bz 1875606 - -* Tue Nov 10 2020 Jerry James - 9.2-1 -- Version 9.2 (bz 1891244) -- Unbundle widgetsnbextension (bz 1856311) -- Unbundle mathjax fonts (bz 1875606) -- Do not require the -doc subpackage from the main package (bz 1867123) -- Drop upstreamed patches: -ecl, -fes, -includes, -sagetex, -sigfpe, -sympy - -* Wed Sep 30 2020 Jerry James - 9.1-4 -- Rebuild for primecount 6.1 -- Bring back jmol/jsmol support - -* Thu Aug 13 2020 Iñaki Úcar - 9.1-3 -- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager - -* Wed Jul 29 2020 Fedora Release Engineering - 9.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jul 10 2020 Jerry James - 9.1-1 -- Version 9.1 -- Drop upstreamed -nauty patch -- Drop -cbc patch; upstream uses the system Cbc now -- Add -ecl patch for ecl 20.4.24 - -* Wed May 27 2020 Miro Hrončok - 9.0-8 -- Rebuilt for Python 3.9 - -* Wed May 13 2020 Jerry James - 9.0-7 -- Require libgap-devel so libgap.so can be found - -* Mon May 11 2020 Jerry James - 9.0-6 -- Install threejs_template.html (bz 1832673) - -* Fri May 8 2020 Jerry James - 9.0-5 -- Attempt 2 at fixing bundled ipython (bz 1832673) - -* Thu May 7 2020 Jerry James - 9.0-4 -- Fix bundled ipython incompatibility with python 3.8 (bz 1832673) - -* Mon Apr 27 2020 Jerry James - 9.0-3 -- Build without jmol/jsmol support due to retirement of jmol from Fedora - -* Fri Mar 13 2020 Jerry James - 9.0-2 -- Rebuild for gap 4.11.0 -- Update libgap interface for gap 4.11.0 -- Adjust list of gap packages to match build/pkgs/gap_packages -- Point sharedmeataxe to a writable directory for its multiplication tables - -* Fri Feb 28 2020 Jerry James - 9.0-1 -- Version 9.0 (bz 1756780, 1770880) -- Drop upstreamed -ecm and -primecount patches -- Add -escape patch -- The old notebook (sagenb) is no longer shipped, so drop the -sagenb and - -sagenb-python3 patches, the -notebook subpackage, and some BRs -- New -jupyter subpackage -- Add suitesparse BR -- Drop pathlib2 BR (bz 1797116) -- Do not build for 32-bit ARM, which is unable to unpack the source RPM without - running out of memory - -* Thu Jan 30 2020 Fedora Release Engineering - 8.9-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jan 9 2020 Jerry James - 8.9-2 -- Build with sharedmeataxe and tdlib support -- Use local objects.inv when building documentation - -* Thu Nov 7 2019 pcpa - 8.9-1 -- Update to latest upstream release -- Drop no longer need patches and rediff current ones - -* Fri Oct 11 2019 Jerry James - 8.8-7 -- Rebuild for mpfr 4 -- Drop -mpfr patch - -* Thu Sep 26 2019 Jerry James - 8.8-6 -- Rebuild for ntl 11.4.0 -- Add primecount support, including the -primecount patch -- Add still more gap packages, nearly finishing the set shipped by upstream - -* Thu Sep 12 2019 Jerry James - 8.8-5 -- Improve the -ecm patch -- Add -formatargspec patch to silence doc-building warnings -- Add -data-elliptic_curves_large subpackage -- Build with bliss, coxeter3, and mcqd support -- Fix typo that made the singular.hlp file inaccessible -- Add more gap packages to get closer to the set shipped by upstream -- Refactor Requires so they apply to the correct subpackages -- More python 3 patching due to changes in python 3.8 -- Use upstream's method of installing jupyter support -- Obsolete the sagemath-notebook-export subpackage - -* Tue Aug 20 2019 Susi Lehtola - 8.8-4 -- Rebuilt for GSL 2.6. - -* Mon Aug 19 2019 Miro Hrončok - 8.8-3 -- Rebuilt for Python 3.8 - -* Fri Jul 26 2019 Fedora Release Engineering - 8.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon Jul 1 2019 Jerry James - 8.8-1 -- Update to sagemath 8.8 (bz 1724394) -- Remove configparser dependencies (bz 1706597) -- Fix broken sed conversion (bz 1706234) -- Fix python2 versus python3 snafu (bz 1706337, 1707166) -- Build and install sagetex (bz 1706322) - -* Sat Apr 27 2019 Jerry James - 8.7-1 -- Update to sagemath 8.7 -- Drop upstreamed -giac patch -- Add -sagetex patch to fix a python indentation error -- Add -rubiks patch to fix compilation of the rubiks library -- Add -random patch to fix a non-random random bit generator -- Drop pip3 workaround; the binary is now named just pip again - -* Mon Feb 18 2019 Jerry James - 8.6-1 -- Update to sagemath 8.6 -- Install an SVG icon instead of a fixed size (128x128) icon -- Require hicolor-icon-theme since we install an icon -- Drop obsolete Obsoletes - -* Sun Feb 17 2019 Igor Gnatenko - 8.5-4 -- Rebuild for readline 8.0 - -* Sat Feb 02 2019 Fedora Release Engineering - 8.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jan 19 2019 Jerry James - 8.5-2 -- Add Education category to the desktop file (bz 1624545) -- Improve jupyter integration (bz 1663165) -- Move existing jupyter integration into the notebook subpackage -- Require python-jupyter-filesystem instead of owning its directories -- Drop one more remnant of the F24 to F25 upgrade fixup - -* Thu Jan 17 2019 Jerry James - 8.5-1 -- Update to sagemath 8.5 -- Bundle ipython again; Fedora version is too far ahead. Also have to bundle - prompt_toolkit since Fedora version is too far ahead of bundled ipython. -- Drop LANGUAGES variable setting, now ignored by the sagemath build system -- Drop unused SAGE_CBLAS variable from /usr/bin/sage -- Do not force the C locale when launching sagemath -- Allow the user to override SAGE_DEBUG in /usr/bin/sage -- Add -ecm, -giac, and -latte patches to fix interactions with external tools -- Add -sigfpe patch from upstream - -* Thu Oct 25 2018 Jerry James - 8.4-1 -- Update to sagemath 8.4 -- Build for python 3 instead of python 2 due to upcoming python 2 removal -- Add -python3 and -escape patches to fix problems with python 3 -- Drop -nofstring patch, only needed for python 2 -- Drop upstreamed -eclib patch -- Switch from atlas to openblas and rename -atlas patch to -openblas -- Add -buildroot patch and only build cython interfaces once - -* Sat Sep 22 2018 Jerry James - 8.3-1 -- Update to sagemath 8.3 (bz 1612867) -- Drop -lrslib, -gap-hap, and -flask patches -- Drop obsolete scriplets to fix F24 to F25 upgrade (bz 1594429 and 1618934) -- Drop obsolete mktexlsr invocations -- Fix more Singular paths -- Fix still more uses of /usr/bin/env -- Drop disallow/dissallow fixup for cython; now fixed in cython itself - -* Fri Aug 10 2018 Jerry James - 8.2-4 -- Rebuild for arb 2.14.0, eclib 20180710, ntl 11.2.1, and pari 2.11.0 -- Drop unneeded genus2reduction dependency; pari is used instead now - -* Sat Jul 14 2018 Fedora Release Engineering - 8.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 3 2018 Jerry James - 8.2-2 -- Rebuild for ntl 11.1.0 -- Optionally bundle thebe, threejs, and widgetsnbextension -- Add provides for the optionally bundled packages -- Add -flask patch -- Apply new guidelines for python files in nonstandard places - -* Fri May 18 2018 Jerry James - 8.2-1 -- Update to sagemath 8.2 -- Create the sagemath-data-combinatorial_designs subpackage -- Create the sagemath-notebook-export subpackage -- Unbundle the LaTeX makecmds style -- Install LaTeX style files in a more canonical place - -* Fri Feb 09 2018 Fedora Release Engineering - 8.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Nov 25 2017 Jerry James - 8.0-2 -- Do not interpret GAP library informational messages as a libgap failure -- Build with cryptominisat5 -- Sagemath now invokes gap instead of gap_stamp - -* Thu Nov 23 2017 Jerry James - 8.0-1 -- Build with bundled ipywidgets for now -- Drop unneeded -givaro patch -- Lots of new BRs for building documentation -- R python-backports-shutil_get_terminal_size and python-traitlets (bz 1464520) -- Fix Singular LIB path -- Make sure install operates in a UTF-8 environment -- Build documention with an X server running -- Build HTML documentation with mathjax - -* Fri Nov 10 2017 pcpa - 8.0-1 -- Update to sagemath 8.0 -- Remove cryptominisat build requires -- Remove no longer needed -singular patch (upstream updated) -- Remove no longer -flask patch (upstream updated) -- Remove no longer -pari patch (used now by cypari2) -- Disable option to use bundled cysignals -- Disable option to use bundled pari -- Use system ipython - -* Sat Sep 30 2017 Jerry James - 7.6-6 -- Rebuild for arb 2.11.1, eclib 20170815, and libfplll 5.1.0 - -* Thu Aug 03 2017 Fedora Release Engineering - 7.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 pcpa - 7.6-4 -- Add missing python-psutil dependency -- Add extra environment variable to avoid Singular-devel dependency - -* Tue May 23 2017 pcpa - 7.6-3 -- Correct singular data dir path -- Correct sage -testall initialization -- Switch to empty directory to pass check for sage packages -- Correct SAGE_SRC symbolic link -- Remove explicit firefox dependency (#1446508) - -* Mon May 15 2017 Fedora Release Engineering - 7.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Tue Apr 11 2017 pcpa - 7.6-1 -- Update to sagemath 7.6 -- Switch back to system pari - -* Thu Apr 6 2017 pcpa - 7.5.1-1 -- Update to sagemath 7.5.1 - -* Fri Mar 3 2017 Jerry James - 7.4-4 -- Rebuild for ppl 1.2 - -* Sat Feb 11 2017 Fedora Release Engineering - 7.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 7.4-2 -- Rebuild for readline 7.x - -* Fri Dec 30 2016 pcpa - 7.4-1 -- Update to sagemath 7.4 - -* Tue Dec 20 2016 pcpa - 7.3.7 -- Correct f24 to f25 upgrade, sagemath 6.8 to 7.3 (#1396848) - -* Thu Oct 20 2016 Jerry James - 7.3-6 -- Rebuild for ntl 10.1.0 - -* Sun Oct 09 2016 Dominik Mierzejewski - 7.3-5 -- rebuild for aarch64 (#1380191 fixed) - -* Mon Sep 26 2016 Dominik Mierzejewski - 7.3-4 -- rebuilt for matplotlib-2.0.0 -- sync supported arches with maxima - -* Mon Sep 5 2016 Jerry James - 7.3-3 -- Rebuild for ntl 9.11.0 -- Add gap-pkg-guava requirement - -* Wed Aug 24 2016 pcpa - 7.3-2 -- Make notebook functional with python-flask-0.11.1 - -* Sat Aug 20 2016 pcpa - 7.3-1 -- Update to sagemath 7.3 -- Switch from polybori to brial -- Default to use system pexpect -- Use system mathjax - -* Fri Aug 12 2016 Jerry James - 6.8-14 -- Rebuild for fflas-ffpack 2.2.2, givaro 4.0.2, and linbox 1.4.2 -- GAP packages atlasrep, design, and hap are now available - -* Sat Jul 23 2016 Jerry James - 6.8-13 -- Rebuild for ntl 9.10.0 - -* Tue Jul 19 2016 Fedora Release Engineering - 6.8-12 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Thu Jun 2 2016 Jerry James - 6.8-11 -- Rebuild for ntl 9.9.1 - -* Fri Apr 29 2016 Jerry James - 6.8-10 -- Rebuild for ntl 9.8.0 -- Nauty is now available under a free license - -* Wed Apr 13 2016 Jerry James - 6.8-9 -- Rebuild for linbox 1.4.1 - -* Thu Apr 7 2016 Jerry James - 6.8-8 -- Rebuild for libgap 4.8.3 - -* Sat Mar 19 2016 Jerry James - 6.8-7 -- Rebuild for glpk 4.59, ntl 9.7.0 and gmp-ecm 7.0 - -* Mon Mar 7 2016 Jerry James - 6.8-6 -- Doc packages cannot be noarch since they are not built for all arches - -* Sat Feb 27 2016 Jerry James - 6.8-6 -- Rebuild for givaro 4.0.1, fflas-ffpack 2.2.0, and linbox 1.4.0 -- Add -givaro patch to adapt to header file changes in those releases - -* Mon Feb 22 2016 Orion Poplawski - 6.8-5 -- Rebuild for gsl 2.1 - -* Sat Feb 20 2016 Jerry James - 6.8-4 -- Rebuild for ntl 9.6.4 - -* Thu Feb 04 2016 Fedora Release Engineering - 6.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Dec 29 2015 Jerry James - 6.8-2 -- Rebuild for arb 2.8.0 - -* Tue Dec 22 2015 pcpa - 6.8-1 -- Update to sagemath 6.8 -- Remove scons, lrcalc, cryptominisat, parallel and ipython3 patches -- Add lcalc, fes-build and arb patches - -* Fri Dec 4 2015 Jerry James - 6.5-14 -- Rebuild for ntl 9.6.2 - -* Fri Oct 16 2015 Jerry James - 6.5-13 -- Rebuild for m4rie 20150908 and ntl 9.4.0 - -* Sat Oct 3 2015 Jerry James - 6.5-12 -- Rebuild for ecl 16.0.0 - -* Sat Sep 19 2015 Jerry James - 6.5-11 -- Rebuild for eclib 20150827, flint 2.5.2, and ntl 9.3.0 - -* Fri Sep 4 2015 Jerry James - 6.5-10 -- Rebuild for cryptominisat 2.9.10 - -* Sat Aug 29 2015 pcpa - 6.5-9 -- Apply conditionally not required for f22 ipython3 patch (#1258006) -- Add missing sphinx requires (#1229283) - -* Mon Aug 3 2015 pcpa - 6.5-8 -- Bump release for f23 rebuild - -* Sun Jul 19 2015 pcpa - 6.5-7 -- Correct unable to start QEPCAD within sage (#1243590) -- Use interactive bash on wrappers to work with other login shells (#1238341) -- Properly generate localized translations - -* Fri Jun 19 2015 Fedora Release Engineering - 6.5-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon May 18 2015 Jerry James - 6.5-5 -- Rebuild for ntl 9.1.1 and cddlib 094h - -* Sat May 9 2015 Jerry James - 6.5-4 -- Rebuild for ntl 9.1.0 - -* Tue May 5 2015 Peter Robinson 6.5-3 -- Drop old F-18 comparisions -- Build on ARMv7, all deps now met - -* Sun Apr 26 2015 pcpa - 6.5-2 -- Add patch to work with ipython 3 - -* Fri Apr 3 2015 pcpa - 6.5-1 -- Update to sagemath 6.5 -- Add new Catalan and Hungarian doc subpackages -- Add customizations to not need a patched pari -- Add "with docs" test build option -- Convert build conditionals to use bcond -- Correct deprecated warning when loading sagenb - -* Sat Feb 7 2015 pcpa - 6.4.1-4 -- Rebuild with a functional jsmol interface (#1190356) - -* Mon Feb 2 2015 Jerry James - 6.4.1-3 -- Rebuild for ntl 8.1.2 - -* Thu Jan 15 2015 Jerry James - 6.4.1-2 -- Rebuild for ntl 8.1.0 -- Future-proof the gap package names - -* Wed Nov 26 2014 pcpa - 6.4.1-1 -- Update to sagemath 6.4.1 (#1095282) - -* Sat Nov 1 2014 pcpa - 6.3-4 -- Install 128x128 icon (#1157575) - -* Mon Oct 27 2014 Jerry James -- Rebuild for m4ri 20140914 and ntl 6.2.1 - -* Mon Aug 18 2014 Fedora Release Engineering - 6.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Aug 13 2014 pcpa - 6.3-1 -- Update to sagemath 6.3 (#1095282) -- Add new doc-it Italian documentation subpackage - -* Sun Jun 08 2014 Fedora Release Engineering - 6.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Mon May 26 2014 pcpa - 6.2-1 -- Update to sagemath 6.2 (#1095282) -- Rebuild with Singular 3.1.6 (#1074597) -- Add missing python-docutils requires (#1056374) -- Correct uninstall of sagemath-notebook (#1097428) -- Enable coin-or-Cbc interface -- Make coin-or-Cbc not optional -- Make lrcalc not optional -- Use upstream patch to support pari 2.7 -- Rediff ntl6 patch - -* Wed Apr 2 2014 Jerry James - 6.1.1-5 -- Rebuild for ntl 6.1.0 -- Fix ld ignoring __global_ldflags due to embedded trailing space -- Fix Singular paths in the build environment - -* Wed Mar 19 2014 Jerry James - 6.1.1-4 -- Rebuild for libgap 4.7.4 and cryptominisat 2.9.9 - -* Mon Mar 10 2014 Rex Dieter 6.1.1-3 -- rebuild (Singular) - -* Wed Feb 12 2014 pcpa - 6.1.1-2 -- Enable optional fes dependency -- Correct jmol applet interface -- Add missing python-twisted-mail requires (#1063061) -- Correct problems when starting sage for the first time as a new user -- Correct atlas library path for f21 or newer - -* Fri Feb 7 2014 pcpa - 6.1.1-1 -- Update to sagemath 6.1.1 - -* Tue Jan 28 2014 pcpa - 5.13-1 -- Update to sagemath 5.13 - -* Fri Jan 17 2014 Jerry James - 5.12-3 -- Also adapt Requires to the new gap subpackage structure - -* Wed Jan 15 2014 Jerry James - 5.12-2 -- Rebuild for libgap 4.7.2 -- Adapt gap BRs to new gap subpackage structure - -* Wed Oct 16 2013 pcpa - 5.12-1 -- Update to sagemath 5.12. - -* Sat Sep 14 2013 pcpa - 5.10-4 -- Do not hardcode SAGE_BROWSER (#967251) -- Remove pre(trans) scriptlet used to upgrade from prototype packages - -* Tue Sep 10 2013 Rex Dieter 5.10-3 -- pretrans scriplet uses shell commands (#1006230) - -* Mon Aug 12 2013 pcpa - 5.10-2 -- Correct side effect of using system mpmath (#974769) - -* Mon Aug 5 2013 pcpa - 5.10-1 -- Update to sagemath 5.10. - -* Sun Aug 04 2013 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Jul 3 2013 Jerry James - 5.9-8 -- Rebuild for maxima 5.30.0 - -* Wed Jun 12 2013 Remi Collet - 5.9-7 -- rebuild for new GD 2.1.0 - -* Tue Jun 4 2013 Jerry James - 5.9-6 -- Rebuild for ecl 2013.5.1 - -* Sun May 12 2013 pcpa - 5.9-5 -- Need one extra directory derefence in symlink SAGE_SRC symlink. - -* Sun May 12 2013 pcpa - 5.9-4 -- Correct wrong symlink to /builddir if not using pretrans (first install). - -* Sat May 11 2013 pcpa - 5.9-3 -- Add pretrans for clean upgrade after rename of SAGE_DEVEL to SAGE_SRC. - -* Sat May 11 2013 pcpa - 5.9-2 -- Build in f18 and f18 with workaround to cython wrong defines (#961372) - -* Mon May 6 2013 pcpa - 5.9-1 -- Update to sagemath 5.9. -- Match upstream rename of SAGE_DEVEL to SAGE_SRC. -- Merged -buildroot in -rpmbuild patch. -- Drop cython 0.19 patch already applied to sagemath 5.9. -- Add macro conditionals to use same spec and patches in f18, f19 and f20. - -* Mon May 6 2013 Jerry James - 5.8-9 -- Rebuild for libfplll 4.0.3, m4ri and m4rie 20130416, and ntl 6.0.0 -- Drop sagemath-unpatched_ntl.patch now that Fedora's NTL is patched -- Add sagemath-ntl6.patch to adapt to NTL 6 -- Add sagemath-m4rie.patch to adapt to m4rie 20130416 - -* Sat Apr 27 2013 pcpa - 5.8-8 -- Add surf-geometry to path for proper Singular plotting -- Add workaround to an rpm scriptlet problem (#877651#89) - -* Tue Apr 23 2013 pcpa - 5.8-7 -- Correct problem of package requiring a -devel file to work. - -* Tue Apr 23 2013 pcpa - 5.8-6 -- Correct a remaining arch specific file (symlink) in noarch package. - -* Mon Apr 22 2013 pcpa - 5.8-5 -- Do not build requires optional rpy in f18 due to it being broken in f18 -- Correct koji sanity check finding arch specific file in noarch package -- Add patch to build with just upgraded cython in rawhide - -* Mon Apr 22 2013 pcpa - 5.8-4 -- Remove noop icon cache regeneration scriplets (#877651#72) -- First Fedora 18 and Fedora 19 approved package - -* Sun Apr 14 2013 pcpa - 5.8-3 -- Use proper license tag for non versioned GPL attribution (#877651#63) -- Remove no longer required workarounds for clean upgrades (#877651#63) - -* Fri Apr 12 2013 pcpa - 5.8-2 -- Properly describe the license breakdown in the spec (#877651#60) -- Correct lrslib requires to lrslib-utils (#877651#60) -- Remove zero length files (#877651#60) -- Correct png file with executable permission (#877651#60) -- Avoid rpmlint warning in rubiks subpackage description (#877651#60) - -* Tue Mar 19 2013 pcpa - 5.8-1 -- Update to sagemath 5.8. -- Do full cleanup of notebook package on uninstall. -- Remove with_sage_cython build conditional. -- Remove with_sage_networkx build conditional. -- Add nopari2.6 patch to not rely on not yet available interfaces. -- Add cryptominisat patch to build package in f18. - -* Sat Mar 16 2013 pcpa - 5.7-3 -- Create jmol symbolic links in post and remove in postun. -- Disable libgap by default as it does not work with rawhide gap. -- Also add python-ipython to build requires to regenerate documentation. - -* Wed Mar 6 2013 pcpa - 5.7-2 -- Add missing python-ipython requires (#877651#52) -- Enable libgap build in packager debug build (#877651#52) - -* Fri Feb 22 2013 pcpa - 5.7-1 -- Update to sagemath 5.7. -- Add conditional patch for libgap. -- Add conditional patch for fes. -- Remove with_sage_ipython conditional. -- Add patch to create a libcsage with a soname. - -* Mon Feb 18 2013 pcpa - 5.6-6 -- Rebuild with latest rawhide and f18 updates -- Make sagemath-notebook owner of its base data directory -- Explicitly mark notebook translations as %%lang (#877651#c46) -- Remove sage3d as it is not functional in the rpm package (#877651#c46) -- Remove reference to buildroot in libcsage.so debuginfo - -* Fri Feb 15 2013 pcpa - 5.6-5 -- Export CFLAGS and CXXFLAGS (#877651#c45) -- Make sagemath-data owner of SAGE_SHARE (#877651#c45) -- Relocate SAGE_DOC and make sagemath-doc packages noarch (#877651#c45) -- Relocate SAGE_SHARE and make sagemath-data packages noarch (#877651#c45) -- Remove sagenb binary egg bundled in tarball (#877651#c45) -- Update license tag due to unlisted Apache v2 license (#877651#c45) -- Break down licenses in files listing (#877651#c45) -- Add post scriplets to handle the installed icon (#877651#c45) -- Do not install empty directories in SAGE_EXTCODE (#877651#c45) -- Do not install bundled mathjax fonts (#877651#c45) -- Add a descriptive comment to patches without one (#877651#c45) -- Correct mispelled donwload_tarball macro name (#877651#c45) -- Remove reference to buildroot in prep (#877651#c45) -- Simplify coin-or-Cbc build requires as it has proper dependencies - -* Sun Feb 10 2013 pcpa - 5.6-4 -- Correct "canonicalization unexpectedly shrank by one character" error. -- Add packager_debug macro for conditional package debug mode build. -- Add donwload_tarball macro to avoid fedora-review donwloading it every run. - -* Sat Feb 9 2013 pcpa - 5.6-3 -- Add cryptominisat-devel to build requires. -- Add conditional build for lrcalc (fedora review rhbz #909510) -- Add conditional build for coin-or-CoinUtils (fedora review rhbz #894585) -- Add conditional build for coin-or-Osi (fedora review rhbz #894586) -- Add conditional build for coin-or-Clp (fedora review rhbz #894587) -- Add conditional build for coin-or-Cgl (fedora review rhbz #894588) -- Add conditional build for coin-or-Cbc (fedora review rhbz #894597) -- Rebuild with latest rawhide and f18 dependency updates. - -* Mon Jan 28 2013 pcpa - 5.6-2 -- Rebuild with latest rawhide and f18 updates. - -* Fri Jan 25 2013 pcpa - 5.6-1 -- Update to sagemath 5.6. -- Remove no longer required patch to build with system cython. - -* Sat Jan 19 2013 pcpa - 5.5-3 -- Rediff rpmbuild patch to address some underlinked modules. -- Make gap-sonata a mandatory requires. -- Add cremona patch to adjust logic as only cremona mini is built. -- Add lrslib patch to know lrslib is available. -- Add nauty patch and comment about reason it cannot be made available. -- Add gap-hap patch for better description of missing gap hap package. - -* Fri Jan 04 2013 pcpa - 5.5-2 -- Add cython to build requires (#877651#c28). - -* Sat Dec 29 2012 pcpa - 5.5-1 -- Update to sagemath 5.5. -- Add maxima.system patch to work with maxima 5.29.1 package. - -* Fri Dec 14 2012 pcpa - 5.4.1-5 -- Build with system cython by default on fedora 18 or newer (#877651). - -* Fri Dec 14 2012 pcpa - 5.4.1-4 -- The fplll patch is also required to build in f18. -- Add factory include to plural.pyx build. - -* Wed Dec 05 2012 pcpa - 5.4.1-3 -- Revert requires python-matplotlib-tk as it was a python-matplotlib bug. -- Add stix-fonts requires. - -* Sat Dec 01 2012 pcpa - 5.4.1-2 -- Change back to install .c and .h files in bundled cython. -- Make symlink of gmp-ecm to $SAGE_LOCAL/bin/ecm. -- Add SAGE_LOCAL/bin to python path so that "sage -gdb" works. -- Require python-matplotlib-tk to avoid possible import error in doctests. - -* Fri Nov 30 2012 pcpa - 5.4.1-1 -- Update to sagemath 5.4.1. - -* Tue Nov 20 2012 pcpa - 5.4-2 -- Do not install alternate cygdb in %%_bindir -- Create the sagemath-core subpackage -- Create the sagemath-doc subpackage -- Create the sagemath-doc-en subpackage -- Create the sagemath-doc-de subpackage -- Create the sagemath-doc-fr subpackage -- Create the sagemath-doc-pt subpackage -- Create the sagemath-doc-ru subpackage -- Create the sagemath-doc-tr subpackage -- Create the sagemath-data metapackage -- Create the sagemath-data-conway_polynomials subpackage -- Create the sagemath-data-elliptic_curves subpackage -- Create the sagemath-data-extcode subpackage -- Do not install pickle_jar extcode contents -- Do not install notebook extcode contents -- Create the sagemath-data-graphs subpackage -- Create the sagemath-data-polytopes_db subpackage -- Create the sagemath-notebook subpackage -- Create the sagemath-rubiks subpackage -- Create the sagemath-sagetex subpackage - -* Mon Nov 12 2012 pcpa - 5.4-1 -- Update to sagemath 5.4. -- Build with system networkx. -- Install only one fallback icon. -- Prevent rpm from providing private shared object. -- Change base directory to %%{_libdir} to avoid rpmlint errors. -- Correct permissions of installed shared objects. -- Rename most patches to use %%{name} prefix as "suggested" by fedora-review. -- Remove bundled jar files before %%build. -- Make cube solvers build optional and disabled by default. -- Add option to run "sage -testall" during package build. - -* Sat Nov 10 2012 pcpa - 5.4.beta1-4 -- Add patch to make jmol export image functional -- Update pari patch to use proper path to gprc.expect -- Force usage of firefox in notebook (known to work are firefox and chromium) - -* Fri Oct 26 2012 pcpa - 5.4.beta1-3 -- Add support for releases with libmpc 0.9. - -* Wed Oct 24 2012 pcpa - 5.4.beta1-2 -- Add Portuguese translations of Tutorial and A Tour of Sage - -* Sat Oct 20 2012 pcpa - 5.4.beta1-1 -- Update to sagemath 5.4.beta1 -- Removed already applied upstream linbox upgrade patch -- Removed already applied upstream givaro upgrade patch -- Removed already applied upstream singular upgrade patch -- Install rubiks spkg binaries - -* Wed Sep 12 2012 pcpa - 5.3-1 -- Update to sagemath 5.3. -- Remove version from patches name. -- Drop m4ri patch already applied to upstream. - -* Fri Sep 7 2012 pcpa - 5.2-2 -- Add sphinx workaround to have editable tutorial forms (#839321) -- Make interactive 3d plots using jmol applet functional (#837166) -- Use system genus2reduction -- Add workaround to mp_set_memory_functions call from pari library - -* Sat Aug 4 2012 pcpa - 5.2-1 -- Update to sagemath 5.2. - -* Sun Jul 1 2012 pcpa - 5.0.1-1 -- Initial sagemath spec. diff --git a/sources b/sources deleted file mode 100644 index 67fb1df..0000000 --- a/sources +++ /dev/null @@ -1,2 +0,0 @@ -SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8 -SHA512 (sage-9.8.tar.gz) = 1ba1c7bd07f13bb67f290d194b65234546fb6fee42693dd3d538e5f206b92a2f1ebf2d49b58541469a4c38b54c843ea0614f3d5c1b32f724f3176703ec5382e7 diff --git a/testjava.sh b/testjava.sh deleted file mode 100644 index 748640e..0000000 --- a/testjava.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -type -atp java -OUT=$? -#echo $OUT -if [ $OUT -eq 0 ]; then -#found java now check 1.5<=version<=1.7 -#version >1.7 may be OK just not checked yet. - java -version 2>&1|grep version.*[1]\.[567] -else - exit 1 -fi -#OUT=$? -#echo $OUT