[arch-commits] Commit in sagemath/trunk (12 files)

Antonio Rojas arojas at archlinux.org
Sun May 6 12:07:53 UTC 2018


    Date: Sunday, May 6, 2018 @ 12:07:52
  Author: arojas
Revision: 319013

Update to 8.2

Modified:
  sagemath/trunk/PKGBUILD
  sagemath/trunk/pari-stackwarn.patch
  sagemath/trunk/sagemath-detect-igraph.patch
  sagemath/trunk/sagemath-env.patch
  sagemath/trunk/sagemath-networkx2.patch
  sagemath/trunk/sagemath-singular-4.1.1.patch
  sagemath/trunk/test-optional.patch
Deleted:
  sagemath/trunk/sagemath-cython-0.28c.patch
  sagemath/trunk/sagemath-ipython-prompt.patch
  sagemath/trunk/sagemath-linbox-1.5.patch
  sagemath/trunk/sagemath-matplotlib2.patch
  sagemath/trunk/sagemath-pynac-0.7.14.patch

-------------------------------+
 PKGBUILD                      |   70 ++--------
 pari-stackwarn.patch          |    8 -
 sagemath-cython-0.28c.patch   |   59 --------
 sagemath-detect-igraph.patch  |    2 
 sagemath-env.patch            |   62 +++++----
 sagemath-ipython-prompt.patch |   13 -
 sagemath-linbox-1.5.patch     |  272 ----------------------------------------
 sagemath-matplotlib2.patch    |  253 -------------------------------------
 sagemath-networkx2.patch      |   53 +------
 sagemath-pynac-0.7.14.patch   |  167 ------------------------
 sagemath-singular-4.1.1.patch |   12 -
 test-optional.patch           |    6 
 12 files changed, 84 insertions(+), 893 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-05-06 10:44:48 UTC (rev 319012)
+++ PKGBUILD	2018-05-06 12:07:52 UTC (rev 319013)
@@ -8,8 +8,8 @@
 
 pkgbase=sagemath
 pkgname=(sagemath sagemath-jupyter)
-pkgver=8.1
-pkgrel=12
+pkgver=8.2
+pkgrel=1
 pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"
 arch=(x86_64)
 url="http://www.sagemath.org"
@@ -24,7 +24,7 @@
   'coin-or-cbc: COIN backend for numerical computations' 'coin-or-csdp: for computing Lovász theta-function of graphs'
   'buckygen: for generating fullerene graphs' 'plantri: for generating some classes of graphs' 'benzene: for generating fusenes and benzenoids'
   'ffmpeg: to export animations to video' 'imagemagick: to show animations'
-  'coxeter3: Coxeter groups implementation' 'cryptominisat5: SAT solver' 'gap-data: for computing Galois groups'
+  'coxeter: Coxeter groups implementation' 'cryptominisat5: SAT solver' 'gap-data: for computing Galois groups'
   'lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes'
   'libhomfly: for computing the homfly polynomial of links' 'libbraiding: for computing in braid groups'
   'libfes: exhaustive search of solutions for boolean equations' 'python2-pynormaliz: Normaliz backend for polyhedral computations'
@@ -33,44 +33,31 @@
   'sirocco: for computing the fundamental group of the complement of a plane curve'
   'three.js: alternative 3D plots engine')
 makedepends=(cython2 boost ratpoints symmetrica python2-jinja coin-or-cbc libhomfly libbraiding sirocco
-  mcqd coxeter3 bliss-graphs tdlib python2-pkgconfig shared_meataxe libfes)
+  mcqd coxeter bliss-graphs tdlib python2-pkgconfig shared_meataxe libfes)
 source=("$pkgname-$pkgver.tar.gz::https://github.com/sagemath/sage/archive/$pkgver.tar.gz"
         sagemath-env.patch package.patch latte-count.patch jupyter-path.patch sagemath-python3-notebook.patch test-optional.patch
         r-no-readline.patch fes02.patch sagemath-threejs.patch pari-stackwarn.patch
-        sagemath-detect-igraph.patch sagemath-networkx2.patch sagemath-linbox-1.5.patch sagemath-pynac-0.7.14.patch
-        sagemath-matplotlib2.patch sagemath-scipy-1.0.patch sagemath-lrs.patch sagemath-ipython-prompt.patch
+        sagemath-detect-igraph.patch sagemath-networkx2.patch sagemath-scipy-1.0.patch sagemath-lrs.patch
         sagemath-singular-4.1.1.patch sagemath-lcalc-c++11.patch
-        sagemath-cython-source.patch::"https://github.com/sagemath/sage/commit/fccaf230.patch"
-        sagemath-cython-0.28a.patch::"https://github.com/sagemath/sage/commit/348432f7.patch"
-        sagemath-cython-0.28b.patch::"https://github.com/sagemath/sage/commit/609a04de.patch"
-        sagemath-cython-0.28c.patch
-        sagemath-cython-0.28d.patch::"https://github.com/sagemath/sage/commit/c331d9bb.patch")
-sha256sums=('a42b55c2c8ac244535dc9b87171b7d4dd7e1d498099518ab253354fbe2eaaa7b'
-            '9593f49ac3f73bc7106f661bdaa484d22c12b889964986f5a99b75a605a2359b'
+        pari-ratpoints.patch::"https://github.com/sagemath/sage/commit/83458400.patch")
+sha256sums=('41ba2c2dde7a02e1bb6880ae875d37ab058567cc26e760efe87eeb12188cd65b'
+            'ad1ce89c624b848c5908e34851e4b765d1ba85819bb3626eedfd0cab6157c5e4'
             'c41ae665499c6cd775d40bbe178f8786830b0931ee26bf11ee02f7d83bcc8107'
             '0b680e674c11c47afa86162d8b49645620b8912722e08133d23357c29ca9310a'
             '2cad308f8adbb6c54e6603fa22b2f0eb60f6f09248d5d015000c3932ac14f646'
             '962ce805c87147212b21fc2ab0ac9af9bd0033942c7a6905b9906645b48e8a4f'
-            'ef94908d4ab28d13af622e6e58ec191aa78817d17e4466c7bb6f64ee72a813b9'
+            '18edeafb01cc1ed7270c2dfb41a58717918680c98e8eada1858736acd65d92ba'
             'afd0952b9bb8f52fd428eae36cf719a58ff85a894baae88cbb2124e043768cc7'
             '7fcb52e96935dccb0f958d37c2f4e3918392480b9af53e08562f6cba6c68cb94'
             '2d13b15ad2d1511bb3d752a261497060a8901882b1c2fa9813219781b7a71d83'
-            'bfd2a20a33ab19a8a8b216a77d07f62e809fe1e1879c4f171ce5dca62fd482e9'
-            '28d7789b8d777922ab8871ca43b6afab751428cae875c0343d3962e6a2030b88'
-            '1024f3a6a9a1a6ae96d9962bb7d1f5842f4a4a5ff5098afad81a60188b7d5160'
-            'a52d03e04c9d64bb957a1f8dcdae3280ebb9450a7fd76aaf5ae5de5c6f74774f'
-            '538f7b279d72f4b67edb445d386d267f3f7022c1079031ca7ea06f6ce392c906'
-            'b9ab2bb5f381ea425e8763b81b8b3a108a3951c594fb1f37f7df921e7c77e26d'
+            'eaf252b2c9b397a0db8fb8cbf45f0b56a21910b5f632d59709f41eff30c5eaab'
+            'bfe49f0168fe0824f0eaf4ea793b08d5b3e43c4e3634eb5f664c70644a793a59'
+            '54bb6de642cbc07c24904016546f42de5d5aa040e67014884cbfa20e35e52cbd'
             '17397b8e1843b013ef5d2e083369109f0719651edd8ef0c8493cb49e2bc4324a'
             'c0f65534a845ba802de6196229159fe67fcc3f72f0cb1ce57d4ae5c9fe10282c'
-            '937a0081e7aea56bda645ef5f0d34b8e356acd62a7dd128a35163f46e7836131'
-            'cc679321c2968d5e74b0ec060979c74019df2995857906bdd1397695b1f24c5c'
+            '369f1483e0364031d73d43d9e63b7bf2b0929c8a1d470c1596f98f9f1aa80750'
             '5114c912f821900e5bfae1e2cfeb7984de946d0b23e1182b0bf15be1d803dfd0'
-            '447a616937e5c43da5f72aeb186fb649e2b3756f7683967380c66b9b1448875e'
-            '8b88c72495c47c400a63cd2c6b3998cd6de649f653b6f5acbd506e2fc158f062'
-            '6deaa988737f670f27f174c838501248004d9ce029c29d3e643a93cd1c500894'
-            '7cfca93a35bc0ad4608286fae477195c7bee94787a3655021e55055d0adfe224'
-            'a46f60c3df77f95e9b0e65573a281d6f9980b218a9dbea1417fa51ea7af2558d')
+            'e24ad879f6b2eb970778fc5e867bcbe0a6d393feca8f11f5cb8d07da1f024be9')
 
 prepare(){
   cd sage-$pkgver
@@ -105,10 +92,10 @@
   patch -p1 -i ../pari-stackwarn.patch
 # remove deprecated scipy parameters
   patch -p1 -i ../sagemath-scipy-1.0.patch
-# fix ipython prompt in pexpect interface
-  patch -p1 -i ../sagemath-ipython-prompt.patch
 # fix build with Singular 4.1.1
   patch -p1 -i ../sagemath-singular-4.1.1.patch
+# revert usage of development PARI features
+  patch -Rp1 -i ../pari-ratpoints.patch
 # don't force c++98 for lcalc (fixes build with NTL 11)
   patch -p1 -i ../sagemath-lcalc-c++11.patch
 
@@ -115,22 +102,10 @@
 # Upstream patches  
 # fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209
   patch -p1 -i ../fes02.patch
-# fix build with linbox 1.5 https://trac.sagemath.org/ticket/24214
-  patch -p1 -i ../sagemath-linbox-1.5.patch
-# fix build with pynac 0.7.14 https://trac.sagemath.org/ticket/24329
-  patch -p1 -i ../sagemath-pynac-0.7.14.patch
-# port away from deprecated and removed functions in matplotlib 2 https://trac.sagemath.org/ticket/23696
-  patch -p1 -i ../sagemath-matplotlib2.patch
-# install cython source files https://trac.sagemath.org/24690
-  patch -p1 -i ../sagemath-cython-source.patch
-# fix build with cython 0.28
-  patch -p1 -i ../sagemath-cython-0.28a.patch
-  patch -p1 -i ../sagemath-cython-0.28b.patch
-  patch -p1 -i ../sagemath-cython-0.28c.patch
-  patch -p1 -i ../sagemath-cython-0.28d.patch
 
 # use python2
-  sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' -e 's|\<exec python\>|exec python2|' -i src/bin/*
+  sed -e 's|#!/usr/bin/env sage-python23|#!/usr/bin/env python2|' -e 's|\<#!/usr/bin/env sage-python\>|#!/usr/bin/env python2|' \
+    -e 's|\<exec python\>|exec python2|' -i src/bin/*
   sed -e 's|cython {OPT}|cython2 {OPT}|' -e 's|python setup.py|python2 setup.py|' -i src/sage/misc/cython.py
   sed -e 's|exec ipython|exec ipython2|' -e 's|cygdb|cygdb2|g' -i src/bin/sage
   sed -e "s|'cython'|'cython2'|" -i src/bin/sage-cython
@@ -139,14 +114,10 @@
 
 
 build() {
-  cd sage-$pkgver
-  autoreconf -vi
-  ./configure --prefix=/usr || true
+  cd sage-$pkgver/src
 
-  cd src
   export SAGE_ROOT="$PWD"
   export SAGE_SRC="$PWD"
-
   python2 setup.py build
 }
 
@@ -158,12 +129,11 @@
   export SAGE_ROOT="$PWD"
   export SAGE_LOCAL="/usr"
   export JUPYTER_PATH="$pkgdir"/usr/share/jupyter
-
   python2 setup.py install --root="$pkgdir" --optimize=1
 
   mkdir -p "$pkgdir"/usr/bin
   cp bin/sage "$pkgdir"/usr/bin
-  for _i in arch-env banner cachegrind callgrind cleaner coverage coverageall cython env env-config eval grep grepdoc inline-fortran \
+  for _i in arch-env cachegrind callgrind cleaner coverage coverageall cython env eval grep grepdoc inline-fortran \
     ipython massif maxima.lisp native-execute notebook num-threads.py omega open preparse python rst2sws rst2txt run \
     run-cython runtests startuptime.py sws2rst valgrind version.sh
   do

Modified: pari-stackwarn.patch
===================================================================
--- pari-stackwarn.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ pari-stackwarn.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -5,16 +5,16 @@
 Author: Tobias Hansen <thansen at debian.org>
 --- sage/src/sage/doctest/parsing.py
 +++ sage/src/sage/doctest/parsing.py
-@@ -39,6 +39,7 @@
+@@ -40,6 +40,7 @@
  
  float_regex = re.compile('\s*([+-]?\s*((\d*\.?\d+)|(\d+\.?))([eE][+-]?\d+)?)')
- optional_regex = re.compile(r'(long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))')
+ optional_regex = re.compile(r'(py2|py3|long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))')
 +pari_stack_warning_regex = re.compile(r'\s*\*\*\*.*(Warning: increasing stack size to )\d+\.')
  find_sage_prompt = re.compile(r"^(\s*)sage: ", re.M)
  find_sage_continuation = re.compile(r"^(\s*)\.\.\.\.:", re.M)
  random_marker = re.compile('.*random', re.I)
-@@ -879,6 +880,7 @@
-             'you'
+@@ -935,6 +936,7 @@
+             <type 'float'>
          """
          got = self.human_readable_escape_sequences(got)
 +        got = pari_stack_warning_regex.sub('', got)

Deleted: sagemath-cython-0.28c.patch
===================================================================
--- sagemath-cython-0.28c.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-cython-0.28c.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -1,59 +0,0 @@
-From e9efe88316733178b9330b21eee2c207f01132fd Mon Sep 17 00:00:00 2001
-From: Jeroen Demeyer <jdemeyer at cage.ugent.be>
-Date: Tue, 6 Mar 2018 12:43:46 +0100
-Subject: [PATCH 2/2] Use late includes
-
----
- src/sage_setup/autogen/interpreters/generator.py | 26 ------------------------
- src/setup.py                                     |  1 +
- 2 files changed, 1 insertion(+), 26 deletions(-)
-
-diff --git a/src/sage_setup/autogen/interpreters/generator.py b/src/sage_setup/autogen/interpreters/generator.py
-index feefd9ee2f3..d1db4557784 100644
---- a/src/sage_setup/autogen/interpreters/generator.py
-+++ b/src/sage_setup/autogen/interpreters/generator.py
-@@ -277,32 +277,6 @@ def write_interpreter(self, write):
-             /* {{ warn }} */
-             #include <Python.h>
- 
--            /* Some interpreter files (for example interp_el.c) need access
--             * to functions defined in the Cython wrapper. This is done by
--             * including a file wrapper_X.h which is auto-generated by
--             * Cython. It contains declarations for functions declared in
--             * wrapper_X.pyx as cdef public. Including wrapper_X.h allows
--             * interp_X.c to call those functions.
--             *
--             * The file interp_X.c is in turn included by wrapper_X.c,
--             * which is the compilation of wrapper_X.pyx.
--             *
--             * Now, for some reason, Cython puts include guards in wrapper_X.h
--             * and it also defines those guards in the wrapper_X.c file.
--             * This way, including the wrapper_X.h file from the wrapper_X.c file
--             * (indirectly through interp_X.c) has no effect. But we really want
--             * that header file to be included, so we #undef those include guards.
--             * This way, the functions will be declared twice (once in wrapper_X.h
--             * and once in wrapper_X.c) but that is legal in C.
--             *
--             * See https://trac.sagemath.org/ticket/21459 for why this hack is
--             * needed. If Cython merges https://github.com/cython/cython/pull/1650
--             * this hack could be replaced by using a late include for
--             * cdef extern from "sage/ext/interpreters/interp_{{ s.name }}.c"
--             */
--            #undef __PYX_HAVE__sage__ext__interpreters__wrapper_{{ s.name }}
--            #undef __PYX_HAVE_API__sage__ext__interpreters__wrapper_{{ s.name }}
--
-             {% print(s.c_header) %}
- 
-             {{ myself.func_header() }} {
-diff --git a/src/setup.py b/src/setup.py
-index 5abd6dc5939..b706310a1de 100755
---- a/src/setup.py
-+++ b/src/setup.py
-@@ -284,6 +284,7 @@ def finalize_options(self):
-             cdivision=True,
-             embedsignature=True,
-             fast_getattr=True,
-+            preliminary_late_includes_cy28=True,
-             profile=self.profile,
-         )
-         self.compile_time_env = dict(

Modified: sagemath-detect-igraph.patch
===================================================================
--- sagemath-detect-igraph.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-detect-igraph.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -2,7 +2,7 @@
 index 252984f..ce19682 100644
 --- a/src/sage/graphs/generic_graph.py
 +++ b/src/sage/graphs/generic_graph.py
-@@ -8188,10 +8188,12 @@ class GenericGraph(GenericGraph_pyx):
+@@ -8480,10 +8480,12 @@ class GenericGraph(GenericGraph_pyx):
          if algorithm is None:
              if vertex_bound:
                  algorithm = "LP"

Modified: sagemath-env.patch
===================================================================
--- sagemath-env.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-env.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -41,17 +41,45 @@
 -fi
 +NEW_SAGE_ROOT="/usr"
  
- # Display the Sage startup banner, used in src/bin/sage
- sage_banner() {
-@@ -185,6 +185,7 @@
+ 
+ # Don't execute the commands more than once for the same version of
+@@ -174,33 +174,9 @@
  export SAGE_ENV_SOURCED=$SAGE_ENV_VERSION
  
  export SAGE_ROOT="$NEW_SAGE_ROOT"
 +export SAGE_LOCAL='/usr'
++export SAGE_SCRIPTS_DIR='/usr/bin'
  
+-
+-# sage-env must know where the Sage's script files are.
+-# Note that SAGE_SCRIPTS_DIR is only used here, so it does not need to
+-# be exported.
+-if [ -z "$SAGE_SCRIPTS_DIR" ]; then
+-    if [ -n "$SAGE_LOCAL" ] && [ -f "$SAGE_LOCAL/bin/sage-env-config" ]; then
+-        SAGE_SCRIPTS_DIR="$SAGE_LOCAL/bin"
+-    elif [ -f "$SAGE_ROOT/src/bin/sage-env-config" ]; then
+-        SAGE_SCRIPTS_DIR="$SAGE_ROOT/src/bin"
+-    else
+-        echo >&2 "Error: You must set either the SAGE_LOCAL or SAGE_SCRIPTS_DIR environment variable to run this"
+-        return 1
+-    fi
+-elif [ ! -f "$SAGE_SCRIPTS_DIR/sage-env-config" ]; then
+-    echo >&2 "Error: SAGE_SCRIPTS_DIR is set to a bad value:"
+-    echo >&2 "SAGE_SCRIPTS_DIR=$SAGE_SCRIPTS_DIR"
+-    echo >&2 "You must correct it or erase it and rerun this script"
+-    return 1
+-fi
+-
+-# Set environment variables (like SAGE_LOCAL) depending on ./configure
+-. "$SAGE_SCRIPTS_DIR/sage-env-config"
+-if [ $? -ne 0 ]; then
+-    echo >&2 "Error: failed to source $SAGE_SCRIPTS_DIR/sage-env-config"
+-    return 1
+-fi
  
- # sage-env must know where the Sage's script files are.
-@@ -307,8 +307,9 @@
+ # The compilers are set in order of priority by
+ # 1) environment variables
+@@ -296,8 +296,9 @@
  export SAGE_EXTCODE="$SAGE_SHARE/sage/ext"
  export SAGE_SPKG_INST="$SAGE_LOCAL/var/lib/sage/installed"
  export SAGE_LOGS="$SAGE_ROOT/logs/pkgs"
@@ -58,12 +86,12 @@
 -export SAGE_SRC="$SAGE_ROOT/src"
 -export SAGE_DOC_SRC="$SAGE_SRC/doc"
 +export GAP_ROOT_DIR="/usr/lib/gap"
-+export SAGE_SRC="$SAGE_LOCAL/lib/python2.7/site-packages"
++export SAGE_SRC="$SAGE_SHARE/sage/source"
 +export SAGE_DOC_SRC="$SAGE_SHARE/doc/sage"
  export SAGE_DOC="$SAGE_SHARE/doc/sage"
  
  if [ -z "${SAGE_ORIG_PATH_SET}" ]; then
-@@ -414,6 +414,9 @@
+@@ -403,6 +403,9 @@
      export SAGE_STARTUP_FILE
  fi
  
@@ -73,7 +101,7 @@
  if [ "$PYTHON_EGG_CACHE" = "" ]; then
      PYTHON_EGG_CACHE="$DOT_SAGE/.python-eggs"
      export PYTHON_EGG_CACHE
-@@ -499,7 +499,6 @@
+@@ -488,7 +488,6 @@
          fi
      fi
  fi
@@ -81,7 +109,7 @@
  
  PERL5LIB="$SAGE_LOCAL/lib/perl5:$PERL5LIB" && export PERL5LIB
  
-@@ -619,9 +619,6 @@
+@@ -608,9 +608,6 @@
      LD_LIBRARY_PATH="$SAGE_LOCAL/bin:$LD_LIBRARY_PATH" && export LD_LIBRARY_PATH
  fi
  
@@ -104,18 +132,4 @@
  _add_variable_or_fallback('SAGE_ETC',        opj('$SAGE_LOCAL', 'etc'))
  _add_variable_or_fallback('SAGE_INC',        opj('$SAGE_LOCAL', 'include'))
  _add_variable_or_fallback('SAGE_SHARE',      opj('$SAGE_LOCAL', 'share'))
- 
--_add_variable_or_fallback('SAGE_SRC',        opj('$SAGE_ROOT', 'src'))
-+_add_variable_or_fallback('SAGE_SRC',        opj('$SAGE_LOCAL', 'lib', 'python2.7', 'site-packages'))
- 
- try:
-     sitepackages_dirs = site.getsitepackages()
-@@ -163,7 +163,7 @@
- _add_variable_or_fallback('GRAPHS_DATA_DIR',  opj('$SAGE_SHARE','graphs'))
- _add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
- _add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes'))
--_add_variable_or_fallback('GAP_ROOT_DIR',     opj('$SAGE_LOCAL','gap','latest'))
-+_add_variable_or_fallback('GAP_ROOT_DIR',     opj('$SAGE_LOCAL','lib','gap'))
- _add_variable_or_fallback('THEBE_DIR',        opj('$SAGE_SHARE','thebe'))
- 
- # locate singular shared object
+

Deleted: sagemath-ipython-prompt.patch
===================================================================
--- sagemath-ipython-prompt.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-ipython-prompt.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -1,13 +0,0 @@
-diff --git a/src/sage/interfaces/sage0.py b/src/sage/interfaces/sage0.py
-index 4ba76ab0b8..e7740177f4 100644
---- a/src/sage/interfaces/sage0.py
-+++ b/src/sage/interfaces/sage0.py
-@@ -161,7 +161,7 @@ class Sage(ExtraTabCompletion, Expect):
-                 '--no-term-title',
-                 '--simple-prompt',
-             ])
--            prompt = re.compile('In \[\d+\]: ')
-+            prompt = re.compile('sage: ')
-             if init_code is None:
-                 init_code = ['from six.moves import cPickle']
- 

Deleted: sagemath-linbox-1.5.patch
===================================================================
--- sagemath-linbox-1.5.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-linbox-1.5.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -1,272 +0,0 @@
-diff --git a/src/sage/libs/linbox/fflas.pxd b/src/sage/libs/linbox/fflas.pxd
-index ca23d71..03bbee9 100644
---- a/src/sage/libs/linbox/fflas.pxd
-+++ b/src/sage/libs/linbox/fflas.pxd
-@@ -20,19 +20,29 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h" namespace "std":
-         iterator end()
-         size_t size()
- 
--    cdef cppclass list[T]:
--        cppclass iterator:
--            T operator*()
--            iterator operator++()
--            bint operator==(iterator)
--            bint operator!=(iterator)
--        void push_back(T&)
--        void pop_front()
--        T& front()
--        iterator begin()
--        iterator end()
-+cdef extern from "givaro/givpoly1.h":
-+    ## template < typename T, typename A=std::allocator<T> >
-+    ## class givvector : public __GIV_STANDARD_VECTOR<T,A>
-+    cdef cppclass givvector "Givaro::givvector" [T,ALLOCATOR=*]:
-+        T& operator[](size_t i)
-         size_t size()
--        void clear()
-+
-+ctypedef givvector[ModDoubleFieldElement] ModDoubleDensePolynomial
-+ctypedef givvector[ModFloatFieldElement] ModFloatDensePolynomial
-+
-+cdef extern from "givaro/givpoly1.h":
-+    ## template <class Domain, class StorageTag= Givaro::Dense>
-+    ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
-+    cdef cppclass ModDoublePolynomialRing "Givaro::Poly1Dom<Givaro::Modular<double>, Givaro::Dense>":
-+        ctypedef givvector[ModDoubleField] Element
-+        ctypedef givvector[ModDoubleField] Polynomial
-+        ModDoublePolynomialRing(ModDoubleField& F)
-+    ## template <class Domain, class StorageTag= Givaro::Dense>
-+    ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
-+    cdef cppclass ModFloatPolynomialRing "Givaro::Poly1Dom<Givaro::Modular<float>, Givaro::Dense>":
-+        ctypedef givvector[ModFloatField] Element
-+        ctypedef givvector[ModFloatField] Polynomial
-+        ModFloatPolynomialRing(ModFloatField& F)
- 
- cdef extern from "fflas-ffpack/fflas-ffpack.h":
-     ctypedef enum fflas_trans_enum "FFLAS::FFLAS_TRANSPOSE":
-@@ -105,13 +115,12 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h":
-                                             size_t nr, size_t foo, size_t r,
-                                             ModDoubleFieldElement* matrix, size_t nc, size_t* Q)
- 
--    void ModDouble_MinPoly "FFPACK::MinPoly" ( ModDoubleField F,
-+    void ModDouble_MinPoly "FFPACK::MinPoly" ( ModDoubleField& F,
-                                                vector[ModDoubleFieldElement] minP, size_t N,
--                                               ModDoubleFieldElement* A, size_t lda,
--                                               ModDoubleFieldElement* X, size_t ldx, size_t* P)
-+                                               ModDoubleFieldElement*A, size_t lda)
- 
--    void ModDouble_CharPoly "FFPACK::CharPoly" ( ModDoubleField F,
--                                                 list[vector[ModDoubleFieldElement]] charp, size_t N,
-+    void ModDouble_CharPoly "FFPACK::CharPoly" ( ModDoublePolynomialRing& R,
-+                                                 ModDoubleDensePolynomial& charp, size_t N,
-                                                  ModDoubleFieldElement* A, size_t lda)
- 
-     # float
-@@ -142,9 +151,8 @@ cdef extern from "fflas-ffpack/fflas-ffpack.h":
- 
-     void ModFloat_MinPoly "FFPACK::MinPoly" ( ModFloatField F,
-                                               vector[ModFloatFieldElement] minP, size_t N,
--                                              ModFloatFieldElement* A, size_t lda,
--                                              ModFloatFieldElement* X, size_t ldx, size_t* P)
-+                                              ModFloatFieldElement* A, size_t lda)
- 
--    void ModFloat_CharPoly "FFPACK::CharPoly" ( ModFloatField F,
--                                                list[vector[ModFloatFieldElement]] charp, size_t N,
-+    void ModFloat_CharPoly "FFPACK::CharPoly" ( ModFloatPolynomialRing& F,
-+                                                ModFloatDensePolynomial& charp, size_t N,
-                                                 ModFloatFieldElement* A, size_t lda )
-diff --git a/src/sage/libs/linbox/linbox_flint_interface.pyx b/src/sage/libs/linbox/linbox_flint_interface.pyx
-index 02a6151..a00d303 100644
---- a/src/sage/libs/linbox/linbox_flint_interface.pyx
-+++ b/src/sage/libs/linbox/linbox_flint_interface.pyx
-@@ -76,19 +76,23 @@ cdef extern from "givaro/zring.h":
-         ctypedef GivaroInteger Element
- 
- 
--cdef extern from "givaro/givpoly1.h":
--    ## template < typename T, typename A=std::allocator<T> >
--    ## class givvector : public __GIV_STANDARD_VECTOR<T,A>
--    cdef cppclass givvector "Givaro::givvector" [T,ALLOCATOR=*]:
--        T& operator[](size_t i)
-+cdef extern from "linbox/polynomial/dense-polynomial.h":
-+    ## template<class Field>
-+    ## class DensePolynomial : public Givaro::Poly1FactorDom<Field, Givaro::Dense>::Element
-+    cdef cppclass LinBoxIntegerDensePolynomial "LinBox::DensePolynomial<Givaro::ZRing<Givaro::Integer> >":
-+        ctypedef GivaroIntegerRing BaseRing
-+        ctypedef GivaroInteger BaseRingElement
-+        LinBoxIntegerDensePolynomial(BaseRing &F)
-+        LinBoxIntegerDensePolynomial(BaseRing &F, size_t s)
-+        BaseRingElement& operator[](size_t i)
-         size_t size()
- 
--cdef extern from "linbox/ring/givaro-polynomial.h":
--    ## template <class Domain, class StorageTag= Givaro::Dense>
--    ## class GivPolynomialRing : public Givaro::Poly1FactorDom< Domain,StorageTag>
--    cdef cppclass LinBoxIntegerPolynomialRing "LinBox::GivPolynomialRing<Givaro::ZRing<Givaro::Integer>, Givaro::Dense>":
--        ctypedef givvector[GivaroInteger] Element
--        ctypedef givvector[GivaroInteger] Polynomial
-+cdef extern from "linbox/ring/polynomial-ring.h":
-+    ## template <class BaseRing, class StorageTag= Givaro::Dense>
-+    ##	class PolynomialRing : public Givaro::Poly1FactorDom<BaseRing,StorageTag>
-+    cdef cppclass LinBoxIntegerPolynomialRing "LinBox::PolynomialRing<Givaro::ZRing<Givaro::Integer>, Givaro::Dense>":
-+        ctypedef LinBoxIntegerDensePolynomial Element
-+        ctypedef LinBoxIntegerDensePolynomial Polynomial
- 
- cdef extern from "linbox/matrix/matrix-domain.h":
-     ## template <class Field_ >
-@@ -190,40 +194,32 @@ cdef void linbox_fmpz_mat_mul(fmpz_mat_t C, fmpz_mat_t A, fmpz_mat_t B):
- cdef void linbox_fmpz_mat_charpoly(fmpz_poly_t cp, fmpz_mat_t A):
-     cdef GivaroIntegerRing ZZ
-     cdef LinBoxIntegerDenseMatrix * LBA
--    cdef LinBoxIntegerPolynomialRing.Element m_A
--
--    # FIXME: bug in LinBox
--    # see https://github.com/linbox-team/linbox/issues/51
--    if fmpz_mat_nrows(A) == 0:
--        fmpz_poly_one(cp)
--        return
-+    cdef LinBoxIntegerDensePolynomial * m_A
- 
-     LBA = new LinBoxIntegerDenseMatrix(ZZ, fmpz_mat_nrows(A), fmpz_mat_ncols(A))
-     fmpz_mat_get_linbox(LBA[0], A)
--    LinBoxIntegerDense_charpoly(m_A, LBA[0])
--    fmpz_poly_set_linbox(cp, m_A)
-+    m_A = new LinBoxIntegerDensePolynomial(ZZ, fmpz_mat_nrows(A))
-+    LinBoxIntegerDense_charpoly(m_A[0], LBA[0])
-+    fmpz_poly_set_linbox(cp, m_A[0])
- 
-     del LBA
-+    del m_A
- 
- 
- # set mp to the minimal polynomial of A
- cdef void linbox_fmpz_mat_minpoly(fmpz_poly_t mp, fmpz_mat_t A):
-     cdef GivaroIntegerRing ZZ
-     cdef LinBoxIntegerDenseMatrix * LBA
--    cdef LinBoxIntegerPolynomialRing.Element m_A
--
--    # FIXME: bug in LinBox
--    # see https://github.com/linbox-team/linbox/issues/51
--    if fmpz_mat_nrows(A) == 0:
--        fmpz_poly_one(mp)
--        return
-+    cdef LinBoxIntegerDensePolynomial * m_A
- 
-     LBA = new LinBoxIntegerDenseMatrix(ZZ, fmpz_mat_nrows(A), fmpz_mat_ncols(A))
-+    m_A = new LinBoxIntegerDensePolynomial(ZZ)
-     fmpz_mat_get_linbox(LBA[0], A)
--    LinBoxIntegerDense_minpoly(m_A, LBA[0])
--    fmpz_poly_set_linbox(mp, m_A)
-+    LinBoxIntegerDense_minpoly(m_A[0], LBA[0])
-+    fmpz_poly_set_linbox(mp, m_A[0])
- 
-     del LBA
-+    del m_A
- 
- 
- # return the rank of A
-diff --git a/src/sage/matrix/matrix_modn_dense_double.pyx b/src/sage/matrix/matrix_modn_dense_double.pyx
-index 15c35cb..b1f6154 100644
---- a/src/sage/matrix/matrix_modn_dense_double.pyx
-+++ b/src/sage/matrix/matrix_modn_dense_double.pyx
-@@ -27,7 +27,9 @@ from sage.libs.linbox.fflas cimport ModDouble_fgemm as Mod_fgemm, ModDouble_fgem
-     ModDoubleRank as ModRank, ModDouble_echelon as Mod_echelon, \
-     ModDouble_applyp as Mod_applyp, \
-     ModDouble_MinPoly as Mod_MinPoly, \
--    ModDouble_CharPoly as Mod_CharPoly
-+    ModDouble_CharPoly as Mod_CharPoly, \
-+    ModDoublePolynomialRing as ModDensePolyRing,\
-+    ModDoubleDensePolynomial as ModDensePoly
- 
- # Limit for LinBox Modular<double>
- MAX_MODULUS = 2**23
-diff --git a/src/sage/matrix/matrix_modn_dense_float.pyx b/src/sage/matrix/matrix_modn_dense_float.pyx
-index 61457ce..eda8f0b 100644
---- a/src/sage/matrix/matrix_modn_dense_float.pyx
-+++ b/src/sage/matrix/matrix_modn_dense_float.pyx
-@@ -25,7 +25,10 @@ from sage.libs.linbox.fflas cimport ModFloat_fgemm as Mod_fgemm, ModFloat_fgemv
-         ModFloatRank as ModRank, ModFloat_echelon as Mod_echelon, \
-         ModFloat_applyp as Mod_applyp, \
-         ModFloat_MinPoly as Mod_MinPoly, \
--        ModFloat_CharPoly as Mod_CharPoly
-+        ModFloat_CharPoly as Mod_CharPoly, \
-+        ModFloatPolynomialRing as ModDensePolyRing,\
-+        ModFloatDensePolynomial as ModDensePoly
-+
- 
- # LinBox supports up to 2^11 using float but that's double dog slow,
- # so we pick a smaller value for crossover
-diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi
-index 3da3e31..819ef2d 100644
---- a/src/sage/matrix/matrix_modn_dense_template.pxi
-+++ b/src/sage/matrix/matrix_modn_dense_template.pxi
-@@ -306,23 +306,15 @@ cdef inline linbox_minpoly(celement modulus, Py_ssize_t nrows, celement* entries
-     cdef Py_ssize_t i
-     cdef ModField *F = new ModField(<long>modulus)
-     cdef vector[ModFieldElement] *minP = new vector[ModFieldElement]()
--    cdef ModFieldElement *X = <ModFieldElement*>check_allocarray(nrows * (nrows+1), sizeof(ModFieldElement))
--    cdef size_t *P = <size_t*>check_allocarray(nrows, sizeof(size_t))
--
--    cdef celement *cpy = linbox_copy(modulus, entries, nrows, nrows)
- 
-     if nrows*nrows > 1000: sig_on()
--    Mod_MinPoly(F[0], minP[0], nrows, <ModFieldElement*>cpy, nrows, X, nrows, P)
-+    Mod_MinPoly(F[0], minP[0], nrows, <ModFieldElement*>entries, nrows)
-     if nrows*nrows > 1000: sig_off()
- 
--    sig_free(cpy)
--
-     l = []
-     for i in range(minP.size()):
-         l.append( <celement>minP.at(i) )
- 
--    sig_free(P)
--    sig_free(X)
-     del F
-     return l
- 
-@@ -332,27 +324,23 @@ cdef inline linbox_charpoly(celement modulus, Py_ssize_t nrows, celement* entrie
-     """
-     cdef Py_ssize_t i
-     cdef ModField *F = new ModField(<long>modulus)
--    cdef std_list[vector[ModFieldElement]] P_list
--    P_list.clear()
-+    cdef ModDensePolyRing * R = new ModDensePolyRing(F[0])
-+    cdef ModDensePoly  P
- 
-     cdef celement *cpy = linbox_copy(modulus, entries, nrows, nrows)
- 
-     if nrows*nrows > 1000: sig_on()
--    Mod_CharPoly(F[0], P_list, nrows, <ModFieldElement*>cpy, nrows)
-+    Mod_CharPoly(R[0], P, nrows, <ModFieldElement*>cpy, nrows)
-     if nrows*nrows > 1000: sig_off()
- 
-     sig_free(cpy)
- 
--    cdef vector[ModFieldElement] tmp
-     l = []
--    while P_list.size():
--        l.append([])
--        tmp = P_list.front()
--        for i in range(tmp.size()):
--            l[-1].append(<celement>tmp.at(i))
--        P_list.pop_front()
-+    for i in range(P.size()):
-+        l.append(<celement>P[i])
- 
-     del F
-+    del R
-     return l
- 
- 
-@@ -1731,9 +1719,7 @@ cdef class Matrix_modn_dense_template(Matrix_dense):
-         R = self._base_ring[var]
-         # call linbox for charpoly
-         v = linbox_charpoly(self.p, self._nrows, self._entries)
--        r = R(1)
--        for e in v:
--            r *= R(e)
-+        r = R(v)
-         return r
- 
-     def echelonize(self, algorithm="linbox", **kwds):

Deleted: sagemath-matplotlib2.patch
===================================================================
--- sagemath-matplotlib2.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-matplotlib2.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -1,253 +0,0 @@
-diff --git a/src/sage/all.py b/src/sage/all.py
-index 300f519..19bc8ec 100644
---- a/src/sage/all.py
-+++ b/src/sage/all.py
-@@ -313,8 +313,6 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0))
- # Ignore all deprecations from IPython etc.
- warnings.filterwarnings('ignore',
-     module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)')
--# Ignore warnings due to matplotlib-1.5 together with numpy-1.13
--warnings.filterwarnings('ignore', module='matplotlib[.]contour|numpy[.]ma[.]core')
- # However, be sure to keep OUR deprecation warnings
- warnings.filterwarnings('default',
-     '[\s\S]*See http://trac.sagemath.org/[0-9]* for details.')
-diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py
-index 98d6224..fbce029 100644
---- a/src/sage/plot/arrow.py
-+++ b/src/sage/plot/arrow.py
-@@ -147,8 +147,8 @@ class CurveArrow(GraphicPrimitive):
-         bpath = Path(self.vertices, self.codes)
-         p = FancyArrowPatch(path=bpath,
-                             lw=width, arrowstyle='%s,head_width=%s,head_length=%s' % (style, head_width, head_length),
--                            fc=color, ec=color)
--        p.set_linestyle(get_matplotlib_linestyle(options['linestyle'], return_type='long'))
-+                            fc=color, ec=color, 
-+                            linestyle=get_matplotlib_linestyle(options['linestyle'], return_type='long'))
-         p.set_zorder(options['zorder'])
-         p.set_label(options['legend_label'])
-         subplot.add_patch(p)
-@@ -336,7 +336,7 @@ class Arrow(GraphicPrimitive):
-         this into account. See :trac:`12836`::
- 
-             sage: fig = Graphics().matplotlib()
--            sage: sp = fig.add_subplot(1,1,1)
-+            sage: sp = fig.add_subplot(1,1,1, label='axis1')
-             sage: a = arrow((0,0), (1,1))
-             sage: b = arrow((0,0), (1,1), width=20)
-             sage: p1 = a[0]._render_on_subplot(sp)
-@@ -358,7 +358,7 @@ class Arrow(GraphicPrimitive):
-             sage: a.save(filename=filename)
-             sage: with open(filename, 'r') as f:
-             ....:     contents = f.read().replace('\n', ' ')
--            sage: two_stroke_pattern = r'setdash.*stroke.*stroke.*setdash'
-+            sage: two_stroke_pattern = r'setdash.*setdash.*stroke.*stroke.*setdash'
-             sage: import re
-             sage: two_stroke_re = re.compile(two_stroke_pattern)
-             sage: two_stroke_re.search(contents) is None
-@@ -383,8 +383,8 @@ class Arrow(GraphicPrimitive):
-                             lw=width,
-                             arrowstyle='%s,head_width=%s,head_length=%s' % (style, head_width, head_length),
-                             shrinkA=arrowshorten_end, shrinkB=arrowshorten_end,
--                            fc=color, ec=color)
--        p.set_linestyle(get_matplotlib_linestyle(options['linestyle'], return_type='long'))
-+                            fc=color, ec=color,
-+                            linestyle=get_matplotlib_linestyle(options['linestyle'], return_type='long'))
-         p.set_zorder(options['zorder'])
-         p.set_label(options['legend_label'])
- 
-@@ -437,7 +437,7 @@ class Arrow(GraphicPrimitive):
-                             pe1.draw_path(renderer, gc, tpath, affine, rgbFace)
- 
-             pe1 = ConditionalStroke(CheckNthSubPath(p, 0), [pe.Stroke()])
--            pe2 = ConditionalStroke(CheckNthSubPath(p, 1), [pe.Stroke(linestyle="solid")])
-+            pe2 = ConditionalStroke(CheckNthSubPath(p, 1), [pe.Stroke(dashes={'dash_offset': 0, 'dash_list': None})])
-             p.set_path_effects([pe1, pe2])
- 
-         subplot.add_patch(p)
-diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py
-index 76077e3..efc1f2b 100644
---- a/src/sage/plot/contour_plot.py
-+++ b/src/sage/plot/contour_plot.py
-@@ -178,12 +178,10 @@ class ContourPlot(GraphicPrimitive):
-         if fill:
-             if contours is None:
-                 CSF = subplot.contourf(self.xy_data_array, cmap=cmap,
--                                       extent=(x0, x1, y0, y1),
--                                       label=options['legend_label'])
-+                                       extent=(x0, x1, y0, y1))
-             else:
-                 CSF = subplot.contourf(self.xy_data_array, contours, cmap=cmap,
--                                       extent=(x0, x1, y0, y1), extend='both',
--                                       label=options['legend_label'])
-+                                       extent=(x0, x1, y0, y1), extend='both')
- 
-         linewidths = options.get('linewidths', None)
-         if isinstance(linewidths, (int, Integer)):
-@@ -200,13 +198,11 @@ class ContourPlot(GraphicPrimitive):
-         if contours is None:
-             CS = subplot.contour(self.xy_data_array, cmap=cmap,
-                                  extent=(x0, x1, y0, y1),
--                                 linewidths=linewidths, linestyles=linestyles,
--                                 label=options['legend_label'])
-+                                 linewidths=linewidths, linestyles=linestyles)
-         else:
-             CS = subplot.contour(self.xy_data_array, contours, cmap=cmap,
-                                  extent=(x0, x1, y0, y1),
--                                 linewidths=linewidths, linestyles=linestyles,
--                                 label=options['legend_label'])
-+                                 linewidths=linewidths, linestyles=linestyles)
-         if options.get('labels', False):
-             label_options = options['label_options']
-             label_options['fontsize'] = int(label_options['fontsize'])
-diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py
-index aa82eda..03a0f3a 100644
---- a/src/sage/plot/plot.py
-+++ b/src/sage/plot/plot.py
-@@ -478,7 +478,7 @@ We test that ``imshow`` works as well, verifying that
- 
- ::
- 
--    sage: plt.imshow([[(0,0,0)]])
-+    sage: plt.imshow([[(0.0,0.0,0.0)]])
-     <matplotlib.image.AxesImage object at ...>
-     sage: plt.savefig(os.path.join(SAGE_TMP, 'foo.png'))
- 
-@@ -2908,11 +2908,14 @@ def list_plot(data, plotjoined=False, **kwargs):
-         If ``plotjoined`` is ``False`` then the axis that is in log scale
-         must have all points strictly positive. For instance, the following
-         plot will show no points in the figure since the points in the
--        horizontal axis starts from `(0,1)`.
-+        horizontal axis starts from `(0,1)`. Further, matplotlib will display
-+        a user warning.
- 
-         ::
- 
-             sage: list_plot(yl, scale='loglog')         # both axes are log
-+            doctest:warning
-+            ...
-             Graphics object consisting of 1 graphics primitive
- 
-         Instead this will work. We drop the point `(0,1)`.::
-@@ -3288,12 +3291,15 @@ def list_plot_semilogy(data, plotjoined=False, **kwds):
- 
-         If ``plotjoined`` is ``False`` then the vertical axis must have all
-         points strictly positive. Otherwise the plot will come up empty.
--        For instance the following plot contains a point at `(1,0)`.
-+        For instance the following plot contains a point at `(1,0)`. Further, 
-+        matplotlib will display a user warning.
- 
-         ::
- 
-             sage: xl = [2**k for k in range(12)]; yl = range(len(xl))
-             sage: list_plot_semilogy(list(zip(xl,yl))) # plot empty due to (1,0)
-+            doctest:warning
-+            ...
-             Graphics object consisting of 1 graphics primitive
- 
-         We remove `(1,0)` to fix this.::
-diff --git a/src/sage/plot/plot3d/list_plot3d.py b/src/sage/plot/plot3d/list_plot3d.py
-index c9f22dd..be87ff2 100644
---- a/src/sage/plot/plot3d/list_plot3d.py
-+++ b/src/sage/plot/plot3d/list_plot3d.py
-@@ -29,21 +29,20 @@ def list_plot3d(v, interpolation_type='default', texture="automatic", point_list
- 
-     OPTIONAL KEYWORDS:
- 
--    - ``interpolation_type`` - 'linear', 'nn' (natural neighbor), 'spline'
-+    - ``interpolation_type`` - 'linear', 'clough' (CloughTocher2D), 'spline'
- 
-       'linear' will perform linear interpolation
- 
--      The option 'nn' An interpolation method for multivariate data in a 
--      Delaunay triangulation. The value for an interpolation point is 
--      estimated using weighted values of the closest surrounding points in 
--      the triangulation. These points, the natural neighbors, are the ones 
--      the interpolation point would connect to if inserted into the 
--      triangulation.
-+      The option 'clough' will interpolate by using a piecewise cubic interpolating
-+      Bezier polynomial on each triangle, using a Clough-Tocher scheme.
-+      The interpolant is guaranteed to be continuously differentiable.
-+      The gradients of the interpolant are chosen so that the curvature of the
-+      interpolating surface is approximatively minimized.
- 
-       The option 'spline' interpolates using a bivariate B-spline.
- 
-       When v is a matrix the default is to use linear interpolation, when
--      v is a list of points the default is nearest neighbor.
-+      v is a list of points the default is 'clough'.
- 
-     - ``degree`` - an integer between 1 and 5, controls the degree of spline
-       used for spline interpolation. For data that is highly oscillatory
-@@ -320,18 +319,18 @@ def list_plot3d_tuples(v, interpolation_type, texture, **kwds):
- 
-     OPTIONAL KEYWORDS:
- 
--    - ``interpolation_type`` - 'linear', 'nn' (natural neighbor), 'spline'
-+    - ``interpolation_type`` - 'linear', 'clough' (CloughTocher2D), 'spline'
- 
-       'linear' will perform linear interpolation
- 
--      The option 'nn' will interpolate by using natural neighbors. The 
--      value for an interpolation point is estimated using weighted values 
--      of the closest surrounding points in the triangulation.
-+      The option 'clough' will interpolate by using a piecewise cubic interpolating
-+      Bezier polynomial on each triangle, using a Clough-Tocher scheme.
-+      The interpolant is guaranteed to be continuously differentiable.
- 
-       The option 'spline' interpolates using a bivariate B-spline.
- 
-       When v is a matrix the default is to use linear interpolation, when
--      v is a list of points the default is nearest neighbor.
-+      v is a list of points the default is 'clough'.
- 
-     - ``degree`` - an integer between 1 and 5, controls the degree of spline
-       used for spline interpolation. For data that is highly oscillatory
-@@ -373,7 +372,7 @@ def list_plot3d_tuples(v, interpolation_type, texture, **kwds):
-         sage: list_plot3d([(1, 2, 3), (0, 1, 3), (2, 1, 4), (1, 0, -2)], texture='yellow', num_points=50)
-         Graphics3d Object
-     """
--    from matplotlib import tri, delaunay
-+    from matplotlib import tri
-     import numpy
-     import scipy
-     from random import random
-@@ -439,19 +438,15 @@ def list_plot3d_tuples(v, interpolation_type, texture, **kwds):
-         G._set_extra_kwds(kwds)
-         return G
- 
--    if interpolation_type == 'nn'  or interpolation_type =='default':
-+    if interpolation_type == 'clough'  or interpolation_type =='default':
- 
--        T=delaunay.Triangulation(x,y)
--        f=T.nn_interpolator(z)
--        f.default_value=0.0
--        j=numpy.complex(0,1)
--        vals=f[ymin:ymax:j*num_points,xmin:xmax:j*num_points]
-+        points=[[x[i],y[i]] for i in range(len(x))]
-+        j = numpy.complex(0, 1)
-+        f = interpolate.CloughTocher2DInterpolator(points,z)
-         from .parametric_surface import ParametricSurface
--        def g(x,y):
--            i=round( (x-xmin)/(xmax-xmin)*(num_points-1) )
--            j=round( (y-ymin)/(ymax-ymin)*(num_points-1) )
--            z=vals[int(j),int(i)]
--            return (x,y,z)
-+        def g(x, y):
-+            z = f([x, y])
-+            return (x, y, z)
-         G = ParametricSurface(g, (list(numpy.r_[xmin:xmax:num_points*j]), list(numpy.r_[ymin:ymax:num_points*j])), texture=texture, **kwds)
-         G._set_extra_kwds(kwds)
-         return G
-diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx
-index 3ce4642..f66cd89 100644
---- a/src/sage/probability/probability_distribution.pyx
-+++ b/src/sage/probability/probability_distribution.pyx
-@@ -118,7 +118,7 @@ cdef class ProbabilityDistribution:
-             sage: P = [0.3, 0.4, 0.3]
-             sage: X = GeneralDiscreteDistribution(P)
-             sage: h, b = X.generate_histogram_data(bins = 10)
--            sage: h
-+            sage: h  # rel tol 1e-08
-             [1.6299999999999999,
-              0.0,
-              0.0,

Modified: sagemath-networkx2.patch
===================================================================
--- sagemath-networkx2.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-networkx2.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -28,7 +28,7 @@
  
          """
          import networkx
-@@ -1158,7 +1156,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
+@@ -1154,7 +1152,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
          import networkx
          try:
              if self._nxg.is_multigraph():
@@ -37,7 +37,7 @@
                      if d.get('weight',None) == l:
                          self._nxg.remove_edge(u,v,k)
                          break
-@@ -1227,7 +1225,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
+@@ -1223,7 +1221,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
          """
          cdef dict E
          try:
@@ -46,7 +46,7 @@
          except KeyError:
              from networkx import NetworkXError
              raise NetworkXError("Edge (%s,%s) requested via get_edge_label does not exist."%(u,v))
-@@ -1416,7 +1414,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
+@@ -1412,7 +1410,7 @@ class NetworkXGraphBackend(GenericGraphBackend):
              sage: G.iterator_nbrs(0)
              <dictionary-keyiterator object at ...>
          """
@@ -68,7 +68,7 @@
          elif format == 'igraph':
              if not data.is_directed():
                  raise ValueError("A *directed* igraph graph was expected. To "+
-@@ -2844,7 +2844,7 @@ class DiGraph(GenericGraph):
+@@ -2846,7 +2846,7 @@ class DiGraph(GenericGraph):
          Using the NetworkX implementation ::
  
              sage: D.topological_sort(implementation = "NetworkX")
@@ -77,7 +77,7 @@
  
          Using the NetworkX recursive implementation ::
  
-@@ -2870,9 +2870,7 @@ class DiGraph(GenericGraph):
+@@ -2872,9 +2872,7 @@ class DiGraph(GenericGraph):
                sage: D = DiGraph({ 0:[1,2,3], 4:[2,5], 1:[8], 2:[7], 3:[7],
                ....:   5:[6,7], 7:[8], 6:[9], 8:[10], 9:[10] })
                sage: N = D.networkx_graph()
@@ -88,7 +88,7 @@
                [4, 5, 6, 9, 0, 3, 2, 7, 1, 8, 10]
  
          TESTS:
-@@ -2895,10 +2893,7 @@ class DiGraph(GenericGraph):
+@@ -2897,10 +2895,7 @@ class DiGraph(GenericGraph):
  
          elif implementation == "NetworkX" or implementation == "recursive":
              import networkx
@@ -100,28 +100,6 @@
              if S is None:
                  raise TypeError('Digraph is not acyclic; there is no topological sort.')
              else:
-diff --git a/src/sage/graphs/generators/basic.py b/src/sage/graphs/generators/basic.py
-index 8777b95c4b..28ef7e48f2 100644
---- a/src/sage/graphs/generators/basic.py
-+++ b/src/sage/graphs/generators/basic.py
-@@ -437,7 +437,7 @@ def CompleteBipartiteGraph(n1, n2):
- 
-     Compare the plotting::
- 
--        sage: n = networkx.complete_bipartite_graph(11,17)
-+        sage: n = networkx.complete_bipartite_graph(11r,17r)
-         sage: spring_med = Graph(n)
-         sage: posdict_med = graphs.CompleteBipartiteGraph(11,17)
- 
-@@ -469,7 +469,7 @@ def CompleteBipartiteGraph(n1, n2):
-         sage: g = []
-         sage: j = []
-         sage: for i in range(9):
--        ....:     spr = networkx.complete_bipartite_graph(i+1,4)
-+        ....:     spr = networkx.complete_bipartite_graph(int(i+1),4r)
-         ....:     k = Graph(spr)
-         ....:     g.append(k)
-         sage: for i in range(3):
 diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py
 index 8f81333685..1540ec0dcc 100644
 --- a/src/sage/graphs/generators/families.py
@@ -149,15 +127,6 @@
 index 3550f990ef..490813e619 100644
 --- a/src/sage/graphs/graph.py
 +++ b/src/sage/graphs/graph.py
-@@ -108,7 +108,7 @@ examples are covered here.
-    ::
- 
-        sage: import networkx
--       sage: K = networkx.complete_bipartite_graph(12,7)
-+       sage: K = networkx.complete_bipartite_graph(12r,7r)
-        sage: G = Graph(K)
-        sage: G.degree()
-        [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 12, 12, 12, 12, 12, 12, 12]
 @@ -1199,7 +1199,7 @@ class Graph(GenericGraph):
              self.allow_loops(loops, check=False)
              self.allow_multiple_edges(multiedges, check=False)
@@ -167,7 +136,7 @@
          elif format == 'igraph':
              if data.is_directed():
                  raise ValueError("An *undirected* igraph graph was expected. "+
-@@ -4600,7 +4600,7 @@ class Graph(GenericGraph):
+@@ -4621,7 +4621,7 @@ class Graph(GenericGraph):
  
              sage: g = Graph([(0,1,0), (1,2,999), (2,3,-5)])
              sage: g.matching(use_edge_labels=True)
@@ -176,7 +145,7 @@
              sage: g.matching(algorithm="LP", use_edge_labels=True)
              [(1, 2, 999)]
  
-@@ -6288,7 +6288,7 @@ class Graph(GenericGraph):
+@@ -6305,7 +6305,7 @@ class Graph(GenericGraph):
          return networkx.number_of_cliques(self.networkx_graph(copy=False), vertices, cliques)
  
      @doc_index("Clique-related methods")
@@ -183,9 +152,9 @@
 -    def cliques_get_max_clique_graph(self, name=''):
 +    def cliques_get_max_clique_graph(self):
          """
-         Returns a graph constructed with maximal cliques as vertices, and
-         edges between maximal cliques with common members in the original
-@@ -6317,7 +6317,7 @@ class Graph(GenericGraph):
+         Return the clique graph.
+ 
+@@ -6336,7 +6336,7 @@ class Graph(GenericGraph):
              sage: (G.cliques_get_max_clique_graph()).show(figsize=[2,2])
          """
          import networkx

Deleted: sagemath-pynac-0.7.14.patch
===================================================================
--- sagemath-pynac-0.7.14.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-pynac-0.7.14.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -1,167 +0,0 @@
-diff --git a/src/sage/libs/pynac/pynac.pxd b/src/sage/libs/pynac/pynac.pxd
-index d4afc4e..6d1fcac 100644
---- a/src/sage/libs/pynac/pynac.pxd
-+++ b/src/sage/libs/pynac/pynac.pxd
-@@ -481,22 +481,17 @@ cdef extern from "pynac_wrap.h":
-     ctypedef GParamSet const_paramset_ref "const GiNaC::paramset&"
- 
-     ctypedef struct py_funcs_struct:
--        py_binomial(a, b)
--        py_binomial_int(int n, unsigned int k)
-         py_gcd(a, b)
-         py_lcm(a, b)
-         py_real(a)
-         py_imag(a)
-         py_numer(a)
-         py_denom(a)
--        py_conjugate(a)
-         bint py_is_rational(a)
--        bint py_is_crational(a)
-         bint py_is_real(a)
-         bint py_is_integer(a)
-         bint py_is_equal(a, b)
-         bint py_is_even(a)
--        bint py_is_cinteger(a)
-         bint py_is_prime(n)
-         bint py_is_exact(x)
- 
-@@ -534,23 +529,14 @@ cdef extern from "pynac_wrap.h":
-         py_asinh(x)
-         py_acosh(x)
-         py_atanh(x)
--        py_tgamma(x)
--        py_lgamma(x)
-         py_isqrt(x)
-         py_sqrt(x)
--        py_abs(x)
-         py_mod(x, y)
-         py_smod(x, y)
-         py_irem(x, y)
--        py_iquo(x, y)
--        py_iquo2(x, y)
--        py_li(x, n, parent)
--        py_li2(x)
-         py_psi(x)
-         py_psi2(n, x)
- 
--        int py_int_length(x) except -1
--
-         py_eval_constant(unsigned serial, parent)
-         py_eval_unsigned_infinity()
-         py_eval_infinity()
-@@ -583,8 +569,6 @@ cdef extern from "pynac_wrap.h":
-         stdstring* py_latex_fderivative(unsigned id, params, args)
-         paramset_to_PyTuple(const_paramset_ref s)
- 
--        py_rational_power_parts(basis, exp)
--
-     py_funcs_struct py_funcs "GiNaC::py_funcs"
- 
- cdef extern from "pynac/order.h":
-diff --git a/src/sage/libs/pynac/pynac.pyx b/src/sage/libs/pynac/pynac.pyx
-index f303184..419cc47 100644
---- a/src/sage/libs/pynac/pynac.pyx
-+++ b/src/sage/libs/pynac/pynac.pyx
-@@ -2432,23 +2432,18 @@ def init_function_table():
-     called before Pynac is used; otherwise, there will be segfaults.
-     """
- 
--    py_funcs.py_binomial_int = &py_binomial_int
--    py_funcs.py_binomial = &py_binomial
-     py_funcs.py_gcd = &py_gcd
-     py_funcs.py_lcm = &py_lcm
-     py_funcs.py_real = &py_real
-     py_funcs.py_imag = &py_imag
-     py_funcs.py_numer = &py_numer
-     py_funcs.py_denom = &py_denom
--    py_funcs.py_conjugate = &py_conjugate
- 
-     py_funcs.py_is_rational = &py_is_rational
--    py_funcs.py_is_crational = &py_is_crational
-     py_funcs.py_is_real = &py_is_real
-     py_funcs.py_is_integer = &py_is_integer
-     py_funcs.py_is_equal = &py_is_equal
-     py_funcs.py_is_even = &py_is_even
--    py_funcs.py_is_cinteger = &py_is_cinteger
-     py_funcs.py_is_prime = &py_is_prime
-     py_funcs.py_is_exact = &py_is_exact
- 
-@@ -2462,7 +2457,6 @@ def init_function_table():
-     py_funcs.py_mpq_from_rational = &py_mpq_from_rational
- 
-     py_funcs.py_float = &py_float
--    py_funcs.py_RDF_from_double = &py_RDF_from_double
- 
-     py_funcs.py_factorial = &py_factorial
-     py_funcs.py_doublefactorial = &py_doublefactorial
-@@ -2486,23 +2480,14 @@ def init_function_table():
-     py_funcs.py_asinh = &py_asinh
-     py_funcs.py_acosh = &py_acosh
-     py_funcs.py_atanh = &py_atanh
--    py_funcs.py_tgamma = &py_tgamma
--    py_funcs.py_lgamma = &py_lgamma
-     py_funcs.py_isqrt = &py_isqrt
-     py_funcs.py_sqrt = &py_sqrt
--    py_funcs.py_abs = &py_abs
-     py_funcs.py_mod = &py_mod
-     py_funcs.py_smod = &py_smod
-     py_funcs.py_irem = &py_irem
--    py_funcs.py_iquo = &py_iquo
--    py_funcs.py_iquo2 = &py_iquo2
--    py_funcs.py_li = &py_li
--    py_funcs.py_li2 = &py_li2
-     py_funcs.py_psi = &py_psi
-     py_funcs.py_psi2 = &py_psi2
- 
--    py_funcs.py_int_length = &py_int_length
--
-     py_funcs.py_eval_constant = &py_eval_constant
-     py_funcs.py_eval_unsigned_infinity = &py_eval_unsigned_infinity
-     py_funcs.py_eval_infinity = &py_eval_infinity
-@@ -2531,7 +2516,6 @@ def init_function_table():
-     py_funcs.py_print_fderivative =  &py_print_fderivative
-     py_funcs.py_latex_fderivative =  &py_latex_fderivative
-     py_funcs.paramset_to_PyTuple = &paramset_to_PyTuple
--    py_funcs.py_rational_power_parts = &py_rational_power_parts
- 
- init_function_table()
- init_pynac_I()
-
-diff --git a/src/sage/functions/other.py b/src/sage/functions/other.py
-index 81cd485..931cecc 100644
---- a/src/sage/functions/other.py
-+++ b/src/sage/functions/other.py
-@@ -688,7 +688,6 @@ class Function_gamma(GinacFunction):
-             :meth:`sage.functions.other.gamma`
-         """
-         GinacFunction.__init__(self, 'gamma', latex_name=r"\Gamma",
--                               ginac_name='tgamma',
-                                conversions={'mathematica':'Gamma',
-                                             'maple':'GAMMA',
-                                             'sympy':'gamma',
-diff --git a/src/sage/libs/pynac/pynac.pxd b/src/sage/libs/pynac/pynac.pxd
-index 1739067..d4afc4e 100644
---- a/src/sage/libs/pynac/pynac.pxd
-+++ b/src/sage/libs/pynac/pynac.pxd
-@@ -362,7 +362,7 @@ cdef extern from "pynac_wrap.h":
-     GEx g_zeta2 "GiNaC::zeta" (GEx m, GEx s)            except + # alternating Euler sum
-     GEx g_stieltjes "GiNaC::stieltjes" (GEx m)          except + # Stieltjes constants
-     GEx g_zetaderiv "GiNaC::zetaderiv" (GEx n, GEx x)   except + # derivatives of Riemann's zeta function
--    GEx g_tgamma "GiNaC::tgamma" (GEx x)                except + # gamma function
-+    GEx g_gamma "GiNaC::gamma" (GEx x)                  except + # gamma function
-     GEx g_lgamma "GiNaC::lgamma" (GEx x)                except + # logarithm of gamma function
-     GEx g_beta "GiNaC::beta" (GEx x, GEx y)             except + # beta function (tgamma(x)*tgamma(y)/tgamma(x+y))
-     GEx g_psi "GiNaC::psi" (GEx x)                      except + # psi (digamma) function
-diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx
-index dfb8751..52303d1 100644
---- a/src/sage/symbolic/expression.pyx
-+++ b/src/sage/symbolic/expression.pyx
-@@ -8917,7 +8917,7 @@ cdef class Expression(CommutativeRingElement):
-         cdef GEx x
-         sig_on()
-         try:
--            x = g_hold_wrapper(g_tgamma, self._gobj, hold)
-+            x = g_hold_wrapper(g_gamma, self._gobj, hold)
-         finally:
-             sig_off()
-         return new_Expression_from_GEx(self._parent, x)

Modified: sagemath-singular-4.1.1.patch
===================================================================
--- sagemath-singular-4.1.1.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ sagemath-singular-4.1.1.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -2,7 +2,7 @@
 index 676544ab1e..5c8639d362 100644
 --- a/src/sage/libs/singular/decl.pxd
 +++ b/src/sage/libs/singular/decl.pxd
-@@ -188,7 +188,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -170,7 +170,7 @@ cdef extern from "singular/Singular/libsingular.h":
  
      int n_NumberOfParameters(const n_Procs_s* r)
  
@@ -11,7 +11,7 @@
          poly *next
          number *coef
          unsigned long exp[1]
-@@ -650,7 +650,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -632,7 +632,7 @@ cdef extern from "singular/Singular/libsingular.h":
  
      # divide monomial p by monomial q, p,q const
  
@@ -24,7 +24,7 @@
 index 089524d6b4..ce6d58fc6f 100644
 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-@@ -188,8 +188,8 @@ from sage.libs.singular.decl cimport (
+@@ -190,8 +190,8 @@ from sage.libs.singular.decl cimport (
      n_IsUnit, n_Invers,
      p_ISet, rChangeCurrRing, p_Copy, p_Init, p_SetCoeff, p_Setm, p_SetExp, p_Add_q,
      p_NSet, p_GetCoeff, p_Delete, p_GetExp, pNext, rRingVar, omAlloc0, omStrDup,
@@ -35,7 +35,7 @@
      p_IsUnit, p_Series, p_Head, idInit, fast_map_common_subexp, id_Delete,
      p_IsHomogeneous, p_Homogen, p_Totaldegree,pLDeg1_Totaldegree, singclap_pdivide, singclap_factorize,
      idLift, IDELEMS, On, Off, SW_USE_CHINREM_GCD, SW_USE_EZGCD,
-@@ -1690,8 +1695,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_generic):
+@@ -1692,8 +1697,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_generic):
          if not g._poly:
              raise ZeroDivisionError
  
@@ -46,7 +46,7 @@
          if coeff:
              if r.cf.type == n_unknown or r.cf.cfDivBy(p_GetCoeff(f._poly, r), p_GetCoeff(g._poly, r), r.cf):
                  n = r.cf.cfDiv( p_GetCoeff(f._poly, r) , p_GetCoeff(g._poly, r), r.cf)
-@@ -1850,8 +1855,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_generic):
+@@ -1852,8 +1857,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_generic):
                     and (<MPolynomial_libsingular>g) \
                     and g.parent() is self \
                     and p_LmDivisibleBy((<MPolynomial_libsingular>g)._poly, m, r):
@@ -57,7 +57,7 @@
                  #p_SetCoeff(flt, n_Div( p_GetCoeff(f._poly, r) , p_GetCoeff((<MPolynomial_libsingular>g)._poly, r), r), r)
                  p_SetCoeff(flt, n_Init(1, r), r)
                  return new_MP(self,flt), g
-@@ -4046,10 +4051,10 @@ cdef class MPolynomial_libsingular(MPolynomial):
+@@ -4049,10 +4054,10 @@ cdef class MPolynomial_libsingular(MPolynomial):
              if _right.is_monomial():
                  p = _self._poly
                  quo = p_ISet(0,r)

Modified: test-optional.patch
===================================================================
--- test-optional.patch	2018-05-06 10:44:48 UTC (rev 319012)
+++ test-optional.patch	2018-05-06 12:07:52 UTC (rev 319013)
@@ -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
-@@ -320,22 +320,6 @@
+@@ -326,24 +326,6 @@
              if "all" in options.optional:
                  # Special case to run all optional tests
                  options.optional = True
@@ -20,6 +20,8 @@
 -                for o in options.optional:
 -                    if not optionaltag_regex.search(o):
 -                        raise ValueError('invalid optional tag {!r}'.format(o))
- 
+-
+-                options.optional |= auto_optional_tags
+
          self.options = options
          self.files = args



More information about the arch-commits mailing list