summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Rojas2020-01-02 00:26:56 +0000
committerAntonio Rojas2020-01-02 00:26:56 +0000
commita186361d542d1a1baa71f63efaac9908c5104361 (patch)
tree378d4177442eff06ff07802dd0f774e102438e46
parent56f946b111fa22216861bcbd7ab61541301ff307 (diff)
downloadaur-a186361d542d1a1baa71f63efaac9908c5104361.tar.gz
Sync with stable
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD16
-rw-r--r--latte-count.patch2
-rw-r--r--sagemath-ipython7.patch92
-rw-r--r--sagemath-python-3.8.patch12
-rw-r--r--sagemath-singular-4.1.2.patch6
-rw-r--r--test-optional.patch2
7 files changed, 73 insertions, 72 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b92fdcf059cd..36f3b8c0126c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = sagemath-git
pkgdesc = Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab
- pkgver = 9.0.beta8.r0.gcf9673bc59
+ pkgver = 9.0.r0.g31cb54b779
pkgrel = 1
url = http://www.sagemath.org
arch = x86_64
@@ -49,7 +49,7 @@ pkgbase = sagemath-git
depends = zn_poly
depends = gd
depends = python-cvxopt
- depends = pynac-python3
+ depends = pynac
depends = linbox
depends = m4rie
depends = rubiks
@@ -108,15 +108,15 @@ pkgbase = sagemath-git
source = sagemath-python-3.8.patch
sha256sums = SKIP
sha256sums = 328e45e78065b5f6527174bda48cfff6828acbf107c2535b0a9a92c3ceb35842
- sha256sums = dbf1f1d09decc6448ce443b5b60ed124a432761973bc0f4f08c9b5e34d968f9c
- sha256sums = 1f2a34e15bf732ec8687c467a52e897615505dc3ddd792d811e8b6a7e19f1517
+ sha256sums = 6a5470d7044a50a35a6478f57c19adf72fe54aefebeea8a095915b63f9e219ac
+ sha256sums = 876fd1c0fc3471b56e54d960d79e5ce1d5fc49cebf6eed27043a7380854c792c
sha256sums = 9b2d87990db3045a83776e1ff527a31ce60a3361b08f5ec85fb1d45106982faa
sha256sums = 937074fa7a8a4e2aba9ea77ec622fe937985a1a9176c48460d51325ee877a4f5
- sha256sums = 998e2c619d47849f977778906e2e492a09d8767b8f2e6d72a787368e7cf7b956
+ sha256sums = d2a065a36be3c011a257b8694111e267d9ce7cba867c53eeb464a4573dac9bbb
sha256sums = e44bbde87f3312548faad75b7383ef21fade55be251ab5804de41cd3842ca8a0
- sha256sums = 151c4918e8f1198d195a83ad454431929d6a66319b31f68b43715825c604e5a1
+ sha256sums = 7821813d3f104566ca6487de9857acf2bc7fc236a48a77000f04f2dc17b75536
sha256sums = 9062b412595e81a5ca560a5ae789f8b7318981689cb8d076b30d8c54a4fc4495
- sha256sums = f2152e2ddf004c53273f61ea95938a82a60f71211826f1cf67db554617f5e6d2
+ sha256sums = d430e76c5cdebed9bd1cde0f05e74fba620c736c68c018d70d84dc7b3e3c9049
pkgname = sagemath-git
optdepends = cython: to compile cython code
@@ -154,5 +154,6 @@ pkgname = sagemath-jupyter-git
depends = sagemath
depends = python-jupyter_client
depends = python-ipywidgets
+ optdepends = sage-notebook-exporter: convert flask notebooks to Jupyter
optdepends = jsmol: alternative 3D plot engine
diff --git a/PKGBUILD b/PKGBUILD
index 05290a55c539..72227517ff85 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@
pkgbase=sagemath-git
pkgname=(sagemath-git sagemath-jupyter-git)
-pkgver=9.0.beta8.r0.gcf9673bc59
+pkgver=9.0.r0.g31cb54b779
pkgrel=1
pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"
arch=(x86_64)
@@ -15,7 +15,7 @@ url="http://www.sagemath.org"
license=(GPL)
depends=(ipython palp brial cliquer maxima-ecl gfan sympow nauty python-rpy2 python-fpylll python-psutil python-cypari2
python-matplotlib python-scipy python-sympy python-networkx python-pillow python-pplpy python-future python-sphinx
- gap flintqs lcalc lrcalc arb eclib zn_poly gd python-cvxopt pynac-python3 linbox m4rie rubiks pari-galdata pari-seadata-small planarity rankwidth tachyon
+ gap flintqs lcalc lrcalc arb eclib zn_poly gd python-cvxopt pynac linbox m4rie rubiks pari-galdata pari-seadata-small planarity rankwidth tachyon
sage-data-combinatorial_designs sage-data-elliptic_curves sage-data-graphs sage-data-polytopes_db sage-data-conway_polynomials
iml libgiac libhomfly libbraiding symmetrica three.js)
optdepends=('cython: to compile cython code' 'python-pkgconfig: to compile cython code'
@@ -46,15 +46,15 @@ source=(git://git.sagemath.org/sage.git#branch=develop
sagemath-python-3.8.patch)
sha256sums=('SKIP'
'328e45e78065b5f6527174bda48cfff6828acbf107c2535b0a9a92c3ceb35842'
- 'dbf1f1d09decc6448ce443b5b60ed124a432761973bc0f4f08c9b5e34d968f9c'
- '1f2a34e15bf732ec8687c467a52e897615505dc3ddd792d811e8b6a7e19f1517'
+ '6a5470d7044a50a35a6478f57c19adf72fe54aefebeea8a095915b63f9e219ac'
+ '876fd1c0fc3471b56e54d960d79e5ce1d5fc49cebf6eed27043a7380854c792c'
'9b2d87990db3045a83776e1ff527a31ce60a3361b08f5ec85fb1d45106982faa'
'937074fa7a8a4e2aba9ea77ec622fe937985a1a9176c48460d51325ee877a4f5'
- '998e2c619d47849f977778906e2e492a09d8767b8f2e6d72a787368e7cf7b956'
+ 'd2a065a36be3c011a257b8694111e267d9ce7cba867c53eeb464a4573dac9bbb'
'e44bbde87f3312548faad75b7383ef21fade55be251ab5804de41cd3842ca8a0'
- '151c4918e8f1198d195a83ad454431929d6a66319b31f68b43715825c604e5a1'
+ '7821813d3f104566ca6487de9857acf2bc7fc236a48a77000f04f2dc17b75536'
'9062b412595e81a5ca560a5ae789f8b7318981689cb8d076b30d8c54a4fc4495'
- 'f2152e2ddf004c53273f61ea95938a82a60f71211826f1cf67db554617f5e6d2')
+ 'd430e76c5cdebed9bd1cde0f05e74fba620c736c68c018d70d84dc7b3e3c9049')
pkgver() {
cd sage
@@ -143,7 +143,7 @@ package_sagemath-git() {
package_sagemath-jupyter-git() {
pkgdesc='Jupyter kernel for SageMath'
depends=(sagemath python-jupyter_client python-ipywidgets)
- optdepends=('jsmol: alternative 3D plot engine')
+ optdepends=('sage-notebook-exporter: convert flask notebooks to Jupyter' 'jsmol: alternative 3D plot engine')
cd sage/src
diff --git a/latte-count.patch b/latte-count.patch
index 40b2280547fa..ce1a09631757 100644
--- a/latte-count.patch
+++ b/latte-count.patch
@@ -46,7 +46,7 @@ index 268af9db0d..70d41dfa30 100644
+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd '--bim-bam-boum=19' /dev/stdin
Unknown command/option --bim-bam-boum=19
"""
- # note: the options below are explicitely written in the function
+ # note: the options below are explicitly written in the function
diff --git a/src/sage/interfaces/latte.py b/src/sage/interfaces/latte.py
index 066cedd401..302b39910d 100644
--- a/src/sage/interfaces/latte.py
diff --git a/sagemath-ipython7.patch b/sagemath-ipython7.patch
index 71be45ce8fff..5d6e817348f9 100644
--- a/sagemath-ipython7.patch
+++ b/sagemath-ipython7.patch
@@ -717,7 +717,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: A.state(4)._in_epsilon_cycle_(A)
False
"""
-@@ -7225,7 +7224,7 @@ class FiniteStateMachine(SageObject):
+@@ -7222,7 +7221,7 @@ class FiniteStateMachine(SageObject):
sage: S.epsilon_successors(0)
{0: [['a', 'b']], 1: [['a']]}
sage: S.epsilon_successors(1)
@@ -726,7 +726,7 @@ index 45f15cdb5c..0a85bf72e8 100644
"""
return self.state(state)._epsilon_successors_(self)
-@@ -15061,7 +15060,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15056,7 +15055,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
This class has the additional attribute ``visited_states``::
sage: it.visited_states
@@ -735,7 +735,7 @@ index 45f15cdb5c..0a85bf72e8 100644
This means the following (let us skip the state `0` for a moment):
State `1` can be reached by a epsilon path which write ``'bc'`` as
-@@ -15088,7 +15087,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15083,7 +15082,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [['c']]
process (0 branches)
sage: it.visited_states
@@ -744,7 +744,7 @@ index 45f15cdb5c..0a85bf72e8 100644
TESTS::
-@@ -15116,7 +15115,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15111,7 +15110,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [[]]
process (0 branches)
sage: it.visited_states
@@ -753,7 +753,7 @@ index 45f15cdb5c..0a85bf72e8 100644
At this point note that in the previous output, state `1` (from
which we started) was also reached by a non-trivial
-@@ -15140,7 +15139,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15135,7 +15134,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [[]]
process (0 branches)
sage: it.visited_states
@@ -762,7 +762,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: it = _FSMProcessIteratorEpsilon_(A, initial_state=A.state(3))
sage: for current in it:
....: print(current)
-@@ -15156,7 +15155,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15151,7 +15150,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [[]]
process (0 branches)
sage: it.visited_states
@@ -771,7 +771,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: it = _FSMProcessIteratorEpsilon_(A, initial_state=A.state(4))
sage: for current in it:
....: print(current)
-@@ -15193,8 +15192,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15188,8 +15187,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [['b', 'c', 'e']]
process (0 branches)
sage: it.visited_states
@@ -781,7 +781,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: it = _FSMProcessIteratorEpsilon_(T, initial_state=T.state(2),
....: format_output=lambda o: ''.join(o))
sage: for current in it:
-@@ -15212,8 +15210,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15207,8 +15205,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [['c', 'd', 'f']]
process (0 branches)
sage: it.visited_states
@@ -791,7 +791,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: it = _FSMProcessIteratorEpsilon_(T, initial_state=T.state(3),
....: format_output=lambda o: ''.join(o))
sage: for current in it:
-@@ -15230,8 +15227,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15225,8 +15222,7 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+-- tape at 0, [['d', 'f']]
process (0 branches)
sage: it.visited_states
@@ -801,7 +801,7 @@ index 45f15cdb5c..0a85bf72e8 100644
sage: it = _FSMProcessIteratorEpsilon_(T, initial_state=T.state(4),
....: format_output=lambda o: ''.join(o))
sage: for current in it:
-@@ -15378,9 +15374,9 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
+@@ -15373,9 +15369,9 @@ class _FSMProcessIteratorEpsilon_(FSMProcessIterator):
sage: T.state(0)._epsilon_successors_(T) # indirect doctest
{0: [['a', 'b', 'c']], 1: [['a']], 2: [['a', 'b']]}
sage: T.state(1)._epsilon_successors_(T) # indirect doctest
@@ -1713,7 +1713,7 @@ diff --git a/src/sage/databases/sql_db.py b/src/sage/databases/sql_db.py
index c308d3ac68..50d43ab275 100644
--- a/src/sage/databases/sql_db.py
+++ b/src/sage/databases/sql_db.py
-@@ -155,10 +155,10 @@ def verify_column(col_dict):
+@@ -160,10 +160,10 @@ def verify_column(col_dict):
sage: from sage.databases.sql_db import verify_column
sage: col = {'sql':'BOOLEAN'}
sage: verify_column(col)
@@ -1726,7 +1726,7 @@ index c308d3ac68..50d43ab275 100644
sage: verify_column({})
Traceback (most recent call last):
...
-@@ -1793,14 +1793,14 @@ class SQLDatabase(SageObject):
+@@ -1799,14 +1799,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.create_table('simon', {'n':{'sql':'INTEGER', 'index':True}, 'n2':{'sql':'INTEGER'}})
sage: MonicPolys.make_index('n2','simon')
sage: MonicPolys.get_skeleton()
@@ -1749,7 +1749,7 @@ index c308d3ac68..50d43ab275 100644
"""
if self.__read_only__:
raise RuntimeError('Cannot modify a read only database.')
-@@ -1834,14 +1834,14 @@ class SQLDatabase(SageObject):
+@@ -1840,14 +1840,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.create_table('simon', {'n':{'sql':'INTEGER', 'index':True}, 'n2':{'sql':'INTEGER'}})
sage: MonicPolys.drop_index('simon', 'n')
sage: MonicPolys.get_skeleton()
@@ -1772,7 +1772,7 @@ index c308d3ac68..50d43ab275 100644
"""
if self.__read_only__:
raise RuntimeError('Cannot modify a read only database.')
-@@ -1875,14 +1875,14 @@ class SQLDatabase(SageObject):
+@@ -1881,14 +1881,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.create_table('simon', {'n':{'sql':'INTEGER', 'index':True}, 'n2':{'sql':'INTEGER'}})
sage: MonicPolys.make_unique('simon', 'n2')
sage: MonicPolys.get_skeleton()
@@ -1795,7 +1795,7 @@ index c308d3ac68..50d43ab275 100644
"""
if self.__read_only__:
-@@ -1914,14 +1914,14 @@ class SQLDatabase(SageObject):
+@@ -1920,14 +1920,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.make_unique('simon', 'n2')
sage: MonicPolys.drop_unique('simon', 'n2')
sage: MonicPolys.get_skeleton()
@@ -1818,7 +1818,7 @@ index c308d3ac68..50d43ab275 100644
"""
if self.__read_only__:
raise RuntimeError('Cannot modify a read only database.')
-@@ -1957,14 +1957,14 @@ class SQLDatabase(SageObject):
+@@ -1963,14 +1963,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.create_table('simon', {'n':{'sql':'INTEGER', 'index':True}, 'n2':{'sql':'INTEGER'}})
sage: MonicPolys.make_primary_key('simon', 'n2')
sage: MonicPolys.get_skeleton()
@@ -1841,7 +1841,7 @@ index c308d3ac68..50d43ab275 100644
"""
if self.__read_only__:
raise RuntimeError('Cannot modify a read only database.')
-@@ -2001,14 +2001,14 @@ class SQLDatabase(SageObject):
+@@ -2007,14 +2007,14 @@ class SQLDatabase(SageObject):
sage: MonicPolys.make_primary_key('simon', 'n2')
sage: MonicPolys.drop_primary_key('simon', 'n2')
sage: MonicPolys.get_skeleton()
@@ -1894,7 +1894,7 @@ diff --git a/src/sage/ext/fast_callable.pyx b/src/sage/ext/fast_callable.pyx
index 7c37796afb..cffcc02d46 100644
--- a/src/sage/ext/fast_callable.pyx
+++ b/src/sage/ext/fast_callable.pyx
-@@ -2019,11 +2019,11 @@ cdef class InstructionStream:
+@@ -2020,11 +2020,11 @@ cdef class InstructionStream:
sage: instr_stream = InstructionStream(metadata, 1)
sage: instr_stream.get_current()
{'args': 1,
@@ -1909,7 +1909,7 @@ index 7c37796afb..cffcc02d46 100644
sage: md = instr_stream.get_metadata()
sage: type(md)
<type 'sage.ext.fast_callable.InterpreterMetadata'>
-@@ -2240,11 +2240,11 @@ cdef class InstructionStream:
+@@ -2241,11 +2241,11 @@ cdef class InstructionStream:
sage: instr_stream = InstructionStream(metadata, 1)
sage: instr_stream.get_current()
{'args': 1,
@@ -1924,7 +1924,7 @@ index 7c37796afb..cffcc02d46 100644
sage: instr_stream.instr('load_arg', 0)
sage: instr_stream.instr('py_call', math.sin, 1)
sage: instr_stream.instr('abs')
-@@ -2253,11 +2253,11 @@ cdef class InstructionStream:
+@@ -2254,11 +2254,11 @@ cdef class InstructionStream:
[('load_arg', 0), ('py_call', <built-in function sin>, 1), 'abs', 'return']
sage: instr_stream.get_current()
{'args': 1,
@@ -1939,7 +1939,7 @@ index 7c37796afb..cffcc02d46 100644
"""
d = {'args': self._n_args,
'constants': self._constants,
-@@ -2436,11 +2436,11 @@ cdef class Wrapper:
+@@ -2438,11 +2438,11 @@ cdef class Wrapper:
sage: v = Wrapper_py(instr_stream.get_current())
sage: v.get_orig_args()
{'args': 1,
@@ -1954,7 +1954,7 @@ index 7c37796afb..cffcc02d46 100644
sage: v.op_list()
[('load_arg', 0), ('load_const', pi), 'add', ('load_arg', 0), ('load_const', 1), 'add', 'mul', 'return']
"""
-@@ -2463,11 +2463,11 @@ cdef class Wrapper:
+@@ -2465,11 +2465,11 @@ cdef class Wrapper:
sage: fast_callable(sin(x)/x, vars=[x], domain=RDF).get_orig_args()
{'args': 1,
@@ -2084,7 +2084,7 @@ diff --git a/src/sage/graphs/base/c_graph.pyx b/src/sage/graphs/base/c_graph.pyx
index 59184ccc9f..04affd2261 100644
--- a/src/sage/graphs/base/c_graph.pyx
+++ b/src/sage/graphs/base/c_graph.pyx
-@@ -2793,7 +2793,7 @@ cdef class CGraphBackend(GenericGraphBackend):
+@@ -2890,7 +2890,7 @@ cdef class CGraphBackend(GenericGraphBackend):
sage: all((not paths[v] or len(paths[v])-1 == g.distance(0,v)) for v in g)
True
sage: g._backend.shortest_path_all_vertices(0, distance_flag=True)
@@ -2168,7 +2168,7 @@ diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py
index 8b8c98cb15..6823e13b26 100644
--- a/src/sage/graphs/generic_graph.py
+++ b/src/sage/graphs/generic_graph.py
-@@ -5153,7 +5153,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5155,7 +5155,7 @@ class GenericGraph(GenericGraph_pyx):
This method is deprecated since Sage-4.4.1.alpha2. Please use instead:
sage: g.layout(layout = "planar", save_pos = True)
@@ -2177,7 +2177,7 @@ index 8b8c98cb15..6823e13b26 100644
"""
deprecation(24494, 'This method is replaced by the method layout. '
'Please use layout(layout="planar", save_pos=True) '
-@@ -5207,16 +5207,16 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5209,16 +5209,16 @@ class GenericGraph(GenericGraph_pyx):
sage: g = graphs.PathGraph(10)
sage: g.layout(layout='planar', save_pos=True, test=True)
@@ -2204,7 +2204,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: g = graphs.BalancedTree(3, 4)
sage: pos = g.layout(layout='planar', save_pos=True, test=True)
sage: pos[0]
-@@ -5225,7 +5225,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5227,7 +5227,7 @@ class GenericGraph(GenericGraph_pyx):
[93, 14]
sage: g = graphs.CycleGraph(7)
sage: g.layout(layout='planar', save_pos=True, test=True)
@@ -2213,7 +2213,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: g = graphs.CompleteGraph(5)
sage: g.layout(layout='planar', save_pos=True, test=True, set_embedding=True)
Traceback (most recent call last):
-@@ -5236,9 +5236,9 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5238,9 +5238,9 @@ class GenericGraph(GenericGraph_pyx):
sage: g = graphs.CompleteGraph(4)
sage: g.layout(layout='planar', external_face=(0,1))
@@ -2225,7 +2225,7 @@ index 8b8c98cb15..6823e13b26 100644
TESTS::
-@@ -16569,7 +16569,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -16571,7 +16571,7 @@ class GenericGraph(GenericGraph_pyx):
sage: D = graphs.DodecahedralGraph()
sage: D.shortest_paths(0)
@@ -2234,7 +2234,7 @@ index 8b8c98cb15..6823e13b26 100644
All these paths are obviously induced graphs::
-@@ -16579,7 +16579,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -16581,7 +16581,7 @@ class GenericGraph(GenericGraph_pyx):
::
sage: D.shortest_paths(0, cutoff=2)
@@ -2243,7 +2243,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: G = Graph( { 0: {1: 1}, 1: {2: 1}, 2: {3: 1}, 3: {4: 2}, 4: {0: 2} }, sparse=True)
sage: G.plot(edge_labels=True).show() # long time
sage: G.shortest_paths(0, by_weight=True)
-@@ -16589,7 +16589,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -16591,7 +16591,7 @@ class GenericGraph(GenericGraph_pyx):
sage: D = DiGraph([(0,1,1),(1,2,3),(0,2,5)])
sage: D.shortest_paths(0)
@@ -2252,7 +2252,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: D.shortest_paths(0, by_weight=True)
{0: [0], 1: [0, 1], 2: [0, 1, 2]}
-@@ -16838,7 +16838,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -16840,7 +16840,7 @@ class GenericGraph(GenericGraph_pyx):
sage: D = graphs.DodecahedralGraph()
sage: D.shortest_path_lengths(0)
@@ -2261,7 +2261,7 @@ index 8b8c98cb15..6823e13b26 100644
Weighted case::
-@@ -18922,18 +18922,18 @@ class GenericGraph(GenericGraph_pyx):
+@@ -18924,18 +18924,18 @@ class GenericGraph(GenericGraph_pyx):
'#00ff00': [((1,3,2,4), (1,4)(2,3), 3), ...],
'#ff0000': [((1,3,2,4), (1,3)(2,4), 1), ...]}
sage: G._color_by_label() # py3
@@ -2286,7 +2286,7 @@ index 8b8c98cb15..6823e13b26 100644
TESTS:
-@@ -19078,8 +19078,8 @@ class GenericGraph(GenericGraph_pyx):
+@@ -19080,8 +19080,8 @@ class GenericGraph(GenericGraph_pyx):
sage: g.layout(layout="acyclic_dummy", save_pos=True)
{('0', 0): [0.3..., 0],
@@ -2296,7 +2296,7 @@ index 8b8c98cb15..6823e13b26 100644
('1', 1): [0.6..., 1]}
sage: D3 = g.layout(dim=3); D3 # random
-@@ -19215,10 +19215,10 @@ class GenericGraph(GenericGraph_pyx):
+@@ -19217,10 +19217,10 @@ class GenericGraph(GenericGraph_pyx):
sage: g = graphs.LadderGraph(3)
sage: g.layout_ranked(heights={i: (i, i+3) for i in range(3)})
{0: [0.668..., 0],
@@ -2309,7 +2309,7 @@ index 8b8c98cb15..6823e13b26 100644
5: [1.33..., 2]}
sage: g = graphs.LadderGraph(7)
sage: g.plot(layout="ranked", heights={i: (i, i+7) for i in range(7)})
-@@ -19402,13 +19402,13 @@ class GenericGraph(GenericGraph_pyx):
+@@ -19404,13 +19404,13 @@ class GenericGraph(GenericGraph_pyx):
sage: G = graphs.BalancedTree(2, 2)
sage: G.layout_tree(tree_root=0)
@@ -2328,7 +2328,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: G = graphs.BalancedTree(2, 4)
sage: G.plot(layout="tree", tree_root=0, tree_orientation="up")
-@@ -19420,15 +19420,15 @@ class GenericGraph(GenericGraph_pyx):
+@@ -19422,15 +19422,15 @@ class GenericGraph(GenericGraph_pyx):
sage: T.set_embedding({0: [1, 6, 3], 1: [2, 5, 0], 2: [1], 3: [4, 7, 8, 0],
....: 4: [3], 5: [1], 6: [0], 7: [3], 8: [3]})
sage: T.layout_tree()
@@ -2351,7 +2351,7 @@ index 8b8c98cb15..6823e13b26 100644
sage: T.plot(layout="tree", tree_root=3)
Graphics object consisting of 18 graphics primitives
-@@ -23585,7 +23585,8 @@ class GenericGraph(GenericGraph_pyx):
+@@ -23589,7 +23589,8 @@ class GenericGraph(GenericGraph_pyx):
sage: G = DiGraph({1: [10], 2:[10,11], 3:[10,11], 4:[], 5:[11, 4], 6:[11], 7:[10,11], 8:[10,11], 9:[10], 10:[11, 5, 8], 11:[6]})
sage: G.katz_centrality(.85)
@@ -2361,7 +2361,7 @@ index 8b8c98cb15..6823e13b26 100644
2: 0.000000000000000,
3: 0.000000000000000,
4: 16.7319819819820,
-@@ -23594,7 +23595,6 @@ class GenericGraph(GenericGraph_pyx):
+@@ -23598,7 +23598,6 @@ class GenericGraph(GenericGraph_pyx):
7: 0.000000000000000,
8: 18.6846846846847,
9: 0.000000000000000,
@@ -2369,7 +2369,7 @@ index 8b8c98cb15..6823e13b26 100644
11: 202.778914049184}
-@@ -23614,7 +23614,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -23618,7 +23618,7 @@ class GenericGraph(GenericGraph_pyx):
sage: graphs.PathGraph(4).katz_centrality(1/20,3)
21/379
sage: (graphs.PathGraph(3) + graphs.PathGraph(4)).katz_centrality(1/20)
@@ -3487,7 +3487,7 @@ diff --git a/src/sage/repl/attach.py b/src/sage/repl/attach.py
index 11967fbf96..ccb9c4e0c0 100644
--- a/src/sage/repl/attach.py
+++ b/src/sage/repl/attach.py
-@@ -249,13 +249,13 @@ def reset_load_attach_path():
+@@ -250,13 +250,13 @@ def reset_load_attach_path():
sage: reset_load_attach_path(); load_attach_path()
['.']
sage: os.environ['SAGE_LOAD_ATTACH_PATH'] = '/veni/vidi:vici:'
@@ -3504,7 +3504,7 @@ index 11967fbf96..ccb9c4e0c0 100644
<module 'sage.repl.preparse' from '...'>
sage: reset_load_attach_path(); load_attach_path()
['.']
-@@ -595,12 +595,7 @@ def reload_attached_files_if_modified():
+@@ -596,12 +596,7 @@ def reload_attached_files_if_modified():
basename = os.path.basename(filename)
timestr = time.strftime('%T', mtime)
notice = '### reloading attached file {0} modified at {1} ###'.format(basename, timestr)
@@ -3699,7 +3699,7 @@ diff --git a/src/sage/repl/ipython_extension.py b/src/sage/repl/ipython_extensio
index fd27b43fc4..a0a9f80dff 100644
--- a/src/sage/repl/ipython_extension.py
+++ b/src/sage/repl/ipython_extension.py
-@@ -509,10 +509,8 @@ class SageCustomizations(object):
+@@ -511,10 +511,8 @@ class SageCustomizations(object):
from .interpreter import (SagePreparseTransformer,
SagePromptTransformer)
@@ -3781,9 +3781,9 @@ diff --git a/src/sage/rings/function_field/divisor.py b/src/sage/rings/function_
index b81d5f5729..515253d351 100644
--- a/src/sage/rings/function_field/divisor.py
+++ b/src/sage/rings/function_field/divisor.py
-@@ -393,7 +393,7 @@ class FunctionFieldDivisor(ModuleElement):
- sage: L.<y> = K.extension(Y^3+x+x^3*Y)
- sage: f = x/(y+1)
+@@ -394,7 +394,7 @@ class FunctionFieldDivisor(ModuleElement):
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
+ sage: f = x/(y + 1)
sage: D = f.divisor()
- sage: D.dict()
+ sage: D.dict() # random
@@ -3914,7 +3914,7 @@ diff --git a/src/sage/rings/polynomial/groebner_fan.py b/src/sage/rings/polynomi
index 2adafe3309..80ec1d8821 100644
--- a/src/sage/rings/polynomial/groebner_fan.py
+++ b/src/sage/rings/polynomial/groebner_fan.py
-@@ -1490,13 +1490,13 @@ class GroebnerFan(SageObject):
+@@ -1491,13 +1491,13 @@ class GroebnerFan(SageObject):
sage: R.<x,y> = PolynomialRing(QQ)
sage: G = R.ideal([y^3 - x^2, y^2 - 13*x]).groebner_fan()
sage: G._gfan_stats()
diff --git a/sagemath-python-3.8.patch b/sagemath-python-3.8.patch
index e15fc121255d..a12fc3f21284 100644
--- a/sagemath-python-3.8.patch
+++ b/sagemath-python-3.8.patch
@@ -15,7 +15,7 @@ diff --git a/src/sage/all.py b/src/sage/all.py
index 42dca175d2..b4f544b664 100644
--- a/src/sage/all.py
+++ b/src/sage/all.py
-@@ -316,6 +316,11 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
+@@ -324,6 +324,11 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
# However, be sure to keep OUR deprecation warnings
warnings.filterwarnings('default', category=DeprecationWarning,
message=r'[\s\S]*See https\?://trac\.sagemath\.org/[0-9]* for details.')
@@ -473,7 +473,7 @@ index 942ffa37a2..a9ded05a74 100644
However, you can achieve some of this functionality using
:meth:`facets`, :meth:`facet_of`, and :meth:`adjacent` methods::
-@@ -4002,7 +4001,7 @@ class ConvexRationalPolyhedralCone(IntegralRayCollection,
+@@ -4047,7 +4046,7 @@ class ConvexRationalPolyhedralCone(IntegralRayCollection,
(N(0, 1), N(1, 0), N(-1, 0))
sage: line = Cone([(1,1,1),(-1,-1,-1)])
sage: line.semigroup_generators()
@@ -615,7 +615,7 @@ index fe36a712f5..2383bade13 100644
However, you can achieve some of this functionality using
:meth:`facets`, :meth:`facet_of`, and :meth:`adjacent` methods::
-@@ -3933,7 +3933,7 @@ class LatticePolytopeClass(SageObject, collections.Hashable):
+@@ -3976,7 +3976,7 @@ class LatticePolytopeClass(SageObject, collections.Hashable):
sage: p = lattice_polytope.cross_polytope(2).polar()
sage: p.traverse_boundary()
@@ -715,7 +715,7 @@ diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py
index 9f7e1f418e..0ec459e7d3 100644
--- a/src/sage/graphs/generic_graph.py
+++ b/src/sage/graphs/generic_graph.py
-@@ -5153,7 +5153,7 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5155,7 +5155,7 @@ class GenericGraph(GenericGraph_pyx):
This method is deprecated since Sage-4.4.1.alpha2. Please use instead:
sage: g.layout(layout = "planar", save_pos = True)
@@ -724,7 +724,7 @@ index 9f7e1f418e..0ec459e7d3 100644
"""
deprecation(24494, 'This method is replaced by the method layout. '
'Please use layout(layout="planar", save_pos=True) '
-@@ -5207,25 +5207,25 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5209,25 +5209,25 @@ class GenericGraph(GenericGraph_pyx):
sage: g = graphs.PathGraph(10)
sage: g.layout(layout='planar', save_pos=True, test=True)
@@ -763,7 +763,7 @@ index 9f7e1f418e..0ec459e7d3 100644
sage: g = graphs.CompleteGraph(5)
sage: g.layout(layout='planar', save_pos=True, test=True, set_embedding=True)
Traceback (most recent call last):
-@@ -5751,17 +5751,17 @@ class GenericGraph(GenericGraph_pyx):
+@@ -5753,17 +5753,17 @@ class GenericGraph(GenericGraph_pyx):
sage: T = graphs.TetrahedralGraph()
sage: T.faces({0: [1, 3, 2], 1: [0, 2, 3], 2: [0, 3, 1], 3: [0, 1, 2]})
[[(0, 1), (1, 2), (2, 0)],
diff --git a/sagemath-singular-4.1.2.patch b/sagemath-singular-4.1.2.patch
index 428df5e3cbb8..a54e1f516d94 100644
--- a/sagemath-singular-4.1.2.patch
+++ b/sagemath-singular-4.1.2.patch
@@ -70,7 +70,7 @@ index 7a8400052e..edbbd5767a 100644
###########################
diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx
-index 5776c58cf7..e4ad267bd4 100644
+index 5776c58cf7..52d3477bf6 100644
--- a/src/sage/algebras/letterplace/letterplace_ideal.pyx
+++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx
@@ -48,7 +48,7 @@ from sage.rings.infinity import Infinity
@@ -78,7 +78,7 @@ index 5776c58cf7..e4ad267bd4 100644
# Define some singular functions
lib("freegb.lib")
-singular_system=singular_function("system")
-+singular_std=singular_function("std")
++singular_twostd=singular_function("twostd")
poly_reduce=singular_function("NF")
class LetterplaceIdeal(Ideal_nc):
@@ -88,7 +88,7 @@ index 5776c58cf7..e4ad267bd4 100644
out = [FreeAlgebraElement_letterplace(A,X,check=False) for X in
- singular_system("freegb",P.ideal([x._poly for x in self.__GB.gens()]),
- degbound,A.__ngens, ring = P)]
-+ singular_std(P.ideal([x._poly for x in self.__GB.gens()]), ring = P)]
++ singular_twostd(P.ideal([x._poly for x in self.__GB.gens()]), ring = P)]
libsingular_options['redTail'] = bck[0]
libsingular_options['redSB'] = bck[1]
self.__GB = A.ideal(out,side='twosided',coerce=False)
diff --git a/test-optional.patch b/test-optional.patch
index 4d0a72889368..55e6c644474b 100644
--- a/test-optional.patch
+++ b/test-optional.patch
@@ -1,6 +1,6 @@
--- src/sage/doctest/control.py.orig 2016-10-20 19:39:53.714618246 +0200
+++ src/sage/doctest/control.py 2016-10-20 19:40:15.158049920 +0200
-@@ -347,17 +347,6 @@
+@@ -348,17 +348,6 @@
# Special case to run all optional tests
options.optional = True
else: