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

Antonio Rojas arojas at archlinux.org
Sun Mar 24 10:09:24 UTC 2019


    Date: Sunday, March 24, 2019 @ 10:09:23
  Author: arojas
Revision: 443313

Update to 8.7

Modified:
  sagemath/trunk/PKGBUILD
  sagemath/trunk/latte-count.patch
  sagemath/trunk/package.patch
  sagemath/trunk/sagemath-env.patch
  sagemath/trunk/sagemath-gap-4.10.1.patch
  sagemath/trunk/sagemath-python3-notebook.patch
Deleted:
  sagemath/trunk/sagemath-cypari2.patch
  sagemath/trunk/sagemath-numpy-1.16.patch

---------------------------------+
 PKGBUILD                        |   31 -
 latte-count.patch               |    4 
 package.patch                   |    4 
 sagemath-cypari2.patch          |  711 --------------------------------------
 sagemath-env.patch              |   27 -
 sagemath-gap-4.10.1.patch       |   14 
 sagemath-numpy-1.16.patch       |   85 ----
 sagemath-python3-notebook.patch |    2 
 8 files changed, 27 insertions(+), 851 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-03-24 09:25:39 UTC (rev 443312)
+++ PKGBUILD	2019-03-24 10:09:23 UTC (rev 443313)
@@ -7,15 +7,15 @@
 
 pkgbase=sagemath
 pkgname=(sagemath sagemath-jupyter)
-pkgver=8.6
-pkgrel=6
+pkgver=8.7
+pkgrel=1
 pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"
 arch=(x86_64)
 url="http://www.sagemath.org"
 license=(GPL)
-depends=(ipython2 ppl palp brial cliquer maxima-ecl gfan sympow nauty python2-rpy2 python2-fpylll python2-psutil python2-cypari2
-  python2-matplotlib python2-scipy python2-sympy python2-networkx python2-pillow python2-future gap flintqs lcalc lrcalc arb
-  eclib gmp-ecm zn_poly gd python2-cvxopt pynac linbox m4rie rubiks pari-galdata pari-seadata-small planarity rankwidth tachyon
+depends=(ipython2 palp brial cliquer maxima-ecl gfan sympow nauty python2-rpy2 python2-fpylll python2-psutil python2-cypari2
+  python2-matplotlib python2-scipy python2-sympy python2-networkx python2-pillow python2-pplpy python2-future
+  gap flintqs lcalc lrcalc arb eclib zn_poly gd python2-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
   libgiac libhomfly libbraiding three.js)
 optdepends=('cython2: to compile cython code' 'python2-pkgconfig: to compile cython code'
@@ -44,26 +44,22 @@
         sagemath-threejs.patch
         sagemath-cremona.patch
         sagemath-sphinx-1.8.patch
-        sagemath-cypari2.patch
         sagemath-singular-4.1.2.patch
         sagemath-ecl-sigfpe.patch
-        sagemath-numpy-1.16.patch
         sagemath-gap-4.10.1.patch)
-sha256sums=('dea613fc955cada76aaa7ab379bc5a219fe8b496064824f8c798b2b1651442fa'
-            'de6e38462ef1848778fbc23a63529fbee9229dbb245bb653f58a0d834a634c04'
-            '960afe4fcbffe2762b66119b8f14355386ced0d8ee52b535d0dac1dba90d365b'
-            'ef265f88ceb6caf4aac2d86ea74850861d99a63d11c94fc52b2ce88053c26d1e'
-            'bd2744c6564bbf71bd6ea3cd7b9031e2126cc1423bcdc1fcc258d90d750a129d'
+sha256sums=('263c3b3fc956b8bebc532f3b51e68c1b0d559d3b7e7c9fadffdfc0f4dbae18ab'
+            'e0e36f2a39b634a76e1c3ad9a31f9ab60e734dd53b43203557b76613277d53b9'
+            'b1068a8d5750051c2b5cfcb89d3d5870cf4233ab445e71c398543fb8b1e6281a'
+            'b66d5bb692159910cec83c80262c43a687d3a678010c7ae4c7070f7cf3a0d5cb'
+            '12cd410035ae644c2495b0dcd3a5138133a471ecc07912d37114c46ee837eb0e'
             'f12bd2a53ad51549015093aacc89978f4d796d9ab5bcd3d737aa0d57a5815b54'
             '7fcb52e96935dccb0f958d37c2f4e3918392480b9af53e08562f6cba6c68cb94'
             'f6b48abf34f64ea3fc092b0f0179e89633f7d3ecc0d62c2acacbfa1217751d63'
             '4c6df9e4e5a7b29ecf6189eda3e5a79f69b6e1b4d29c1b9559663149b8c0af96'
             '22f5e44a42c8276025b8512f45cac1c36d576c29c7fd9d36fde8b19ff87867d8'
-            'ca47248d2ed5edfe663ea02e261ddbb26a7cb03bef67928dbec690d9b9a8f129'
             '961bfb5694b67d425d21240d71490cb71714b5207c23448c89be0966512ff8f9'
             'a42f3b152b1aedb8abf16bc70971419919d1fe30328574e7fef8305f9d07d938'
-            'd483b1dc78eb83e3cd1620e3d44214ca0704065e1d27d7a257976e56c85f2d5b'
-            'ea7148347107ad90306c51c66b2fe522e1e99abed0546b7780b1b346261929bc')
+            '99066a3a11c102dee5183acf86b3f6200e9c3db8fe15e52cf391ecd6f72846c1')
 
 prepare(){
   cd sage-$pkgver
@@ -91,14 +87,10 @@
   patch -p1 -i ../fes02.patch
 # use Features to detect Cremona databases https://trac.sagemath.org/ticket/25825
   patch -p1 -i ../sagemath-cremona.patch
-# Fix build with cypari 2.0 https://trac.sagemath.org/ticket/26442
-  patch -p1 -i ../sagemath-cypari2.patch
 # Fixes for singular 4.1.2 https://trac.sagemath.org/ticket/25993
   patch -p1 -i ../sagemath-singular-4.1.2.patch
 # Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191
   patch -p1 -i ../sagemath-ecl-sigfpe.patch
-# Fix inline fortran with numpy 1.16 https://trac.sagemath.org/ticket/27061
-  patch -p1 -i ../sagemath-numpy-1.16.patch
 
 # use python2
   sed -e 's|sage-python23|python2|' -e 's|#!/usr/bin/env python\b|#!/usr/bin/env python2|' -i src/bin/*
@@ -105,6 +97,7 @@
   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\b|exec ipython2|' -e 's|cygdb|cygdb2|g' -i src/bin/sage
   sed -e "s|'cython'|'cython2'|" -i src/bin/sage-cython
+  sed -e 's|"python"|"python2"|' -i src/sage/env.py
 }
 
 

Modified: latte-count.patch
===================================================================
--- latte-count.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ latte-count.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -51,7 +51,7 @@
 index 066cedd401..302b39910d 100644
 --- a/src/sage/interfaces/latte.py
 +++ b/src/sage/interfaces/latte.py
-@@ -93,7 +93,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False,
+@@ -94,7 +94,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False,
          sage: n = count(cddin, cdd=True, verbose=True, raw_output=True)  # optional - latte_int
          This is LattE integrale ...
          ...
@@ -60,7 +60,7 @@
          ...
          Total Unimodular Cones: ...
          Maximum number of simplicial cones in memory at once: ...
-@@ -112,7 +112,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False,
+@@ -113,7 +113,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False,
      # Check that LattE is present
      Latte().require()
  

Modified: package.patch
===================================================================
--- package.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ package.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -1,6 +1,6 @@
 --- src/sage/misc/package.py.orig	2014-11-23 15:58:13.000000000 +0100
 +++ src/sage/misc/package.py	2015-01-22 20:32:25.651383902 +0100
-@@ -328,7 +328,7 @@
+@@ -335,7 +335,7 @@
          Use the framework provided by :mod:`sage.features` to check
          whether a library is installed and functional.
      """
@@ -7,8 +7,8 @@
 -    return any(p.split('-')[0] == package for p in installed_packages(exclude_pip))
 +    return True
  
+ 
  def package_versions(package_type, local=False):
-     r"""
 --- src/sage_setup/optional_extension.py.orig  2016-10-19 18:35:10.092577510 +0000
 +++ src/sage_setup/optional_extension.py       2016-10-19 18:38:13.514765366 +0000
 @@ -21,8 +21,6 @@

Deleted: sagemath-cypari2.patch
===================================================================
--- sagemath-cypari2.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ sagemath-cypari2.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -1,711 +0,0 @@
-diff --git a/src/sage/matrix/matrix_integer_dense.pxd b/src/sage/matrix/matrix_integer_dense.pxd
-index bc3af7c..5dd2a8e 100644
---- a/src/sage/matrix/matrix_integer_dense.pxd
-+++ b/src/sage/matrix/matrix_integer_dense.pxd
-@@ -30,6 +30,5 @@ cdef class Matrix_integer_dense(Matrix_dense):
- 
-     cdef Matrix_integer_dense _new(self, Py_ssize_t nrows, Py_ssize_t ncols)
- 
--    cdef extract_hnf_from_pari_matrix(self, GEN H, int flag, bint include_zero_rows)
- 
- cpdef _lift_crt(Matrix_integer_dense M, residues, moduli=*)
-diff --git a/src/sage/matrix/matrix_integer_dense.pyx b/src/sage/matrix/matrix_integer_dense.pyx
-index 4f0b0e6..87e3391 100644
---- a/src/sage/matrix/matrix_integer_dense.pyx
-+++ b/src/sage/matrix/matrix_integer_dense.pyx
-@@ -87,11 +87,11 @@ from .args cimport SparseEntry, MatrixArgs_init
- #########################################################
- # PARI C library
- from cypari2.gen cimport Gen
-+from cypari2.stack cimport clear_stack, new_gen
-+from cypari2.paridecl cimport *
- from sage.libs.pari.convert_gmp cimport INT_to_mpz
- from sage.libs.pari.convert_flint cimport (_new_GEN_from_fmpz_mat_t,
-            _new_GEN_from_fmpz_mat_t_rotate90, integer_matrix)
--from cypari2.stack cimport clear_stack
--from cypari2.paridecl cimport *
- #########################################################
- 
- from sage.arith.multi_modular cimport MultiModularBasis
-@@ -2016,10 +2016,7 @@ cdef class Matrix_integer_dense(Matrix_dense):
-             raise ValueError("transformation matrix only available with p-adic algorithm")
-         elif algorithm in ["pari", "pari0", "pari1", "pari4"]:
-             flag = int(algorithm[-1]) if algorithm != "pari" else 1
--            if self.height().ndigits() > 10000 or n >= 50:
--                H_m = self._hnf_pari_big(flag, include_zero_rows=include_zero_rows)
--            else:
--                H_m = self._hnf_pari(flag, include_zero_rows=include_zero_rows)
-+            H_m = self._hnf_pari(flag, include_zero_rows=include_zero_rows)
-         elif algorithm == 'ntl':
-             if nr != nc:
-                 raise ValueError("ntl only computes HNF for square matrices of full rank.")
-@@ -5664,6 +5661,7 @@ cdef class Matrix_integer_dense(Matrix_dense):
-         matrices.
- 
-         EXAMPLES::
-+
-             sage: matrix(ZZ,3,[1..9])._rank_pari()
-             2
-         """
-@@ -5674,16 +5672,12 @@ cdef class Matrix_integer_dense(Matrix_dense):
- 
-     def _hnf_pari(self, int flag=0, bint include_zero_rows=True):
-         """
--        Hermite form of this matrix, computed using PARI.  The
--        computation is done entirely on the PARI stack, then the PARI
--        stack is cleared.  This function is only useful for small
--        matrices, and can crash on large matrices (e.g., if the PARI
--        stack overflows).
-+        Hermite normal form of this matrix, computed using PARI.
- 
-         INPUT:
- 
-         - ``flag`` -- 0 (default), 1, 3 or 4 (see docstring for
--          gp.mathnf).
-+          ``pari.mathnf``).
- 
-         - ``include_zero_rows`` -- boolean. if False, do not include
-           any of the zero rows at the bottom of the matrix in the
-@@ -5733,98 +5727,13 @@ cdef class Matrix_integer_dense(Matrix_dense):
-             sage: pari('mathnf(Mat([0,1]), 4)')
-             [Mat(1), [1, 0; 0, 1]]
-         """
--        cdef GEN A
-         sig_on()
-         A = _new_GEN_from_fmpz_mat_t_rotate90(self._matrix)
--        cdef GEN H = mathnf0(A, flag)
--        B = self.extract_hnf_from_pari_matrix(H, flag, include_zero_rows)
--        clear_stack()  # This calls sig_off()
--        return B
--
--
--    def _hnf_pari_big(self, int flag=0, bint include_zero_rows=True):
--        """
--        Hermite form of this matrix, computed using PARI.
--
--        INPUT:
--
--        - ``flag`` -- 0 (default), 1, 3 or 4 (see docstring for
--          gp.mathnf).
--
--        - ``include_zero_rows`` -- boolean. if False, do not include
--          any of the zero rows at the bottom of the matrix in the
--          output.
--
--        .. NOTE::
--
--            In no cases is the transformation matrix returned by this
--            function.
--
--        EXAMPLES::
--
--            sage: a = matrix(ZZ,3,3,[1..9])
--            sage: a._hnf_pari_big(flag=0, include_zero_rows=True)
--            [1 2 3]
--            [0 3 6]
--            [0 0 0]
--            sage: a._hnf_pari_big(flag=1, include_zero_rows=True)
--            [1 2 3]
--            [0 3 6]
--            [0 0 0]
--            sage: a._hnf_pari_big(flag=3, include_zero_rows=True)
--            [1 2 3]
--            [0 3 6]
--            [0 0 0]
--            sage: a._hnf_pari_big(flag=4, include_zero_rows=True)
--            [1 2 3]
--            [0 3 6]
--            [0 0 0]
--
--        Check that ``include_zero_rows=False`` works correctly::
--
--            sage: matrix(ZZ,3,[1..9])._hnf_pari_big(0, include_zero_rows=False)
--            [1 2 3]
--            [0 3 6]
--            sage: matrix(ZZ,3,[1..9])._hnf_pari_big(1, include_zero_rows=False)
--            [1 2 3]
--            [0 3 6]
--            sage: matrix(ZZ,3,[1..9])._hnf_pari_big(3, include_zero_rows=False)
--            [1 2 3]
--            [0 3 6]
--            sage: matrix(ZZ,3,[1..9])._hnf_pari_big(4, include_zero_rows=False)
--            [1 2 3]
--            [0 3 6]
--        """
--        cdef Gen H = integer_matrix(self._matrix, 1)
--        H = H.mathnf(flag)
--        sig_on()
--        B = self.extract_hnf_from_pari_matrix(H.g, flag, include_zero_rows)
--        clear_stack()  # This calls sig_off()
--        return B
--
--    cdef extract_hnf_from_pari_matrix(self, GEN H, int flag, bint include_zero_rows):
--        # Throw away the transformation matrix (yes, we should later
--        # code this to keep track of it).
--        cdef mpz_t tmp
--        mpz_init(tmp)
--        if flag > 0:
--            H = gel(H,1)
--
--        # Figure out how many columns we got back.
--        cdef Py_ssize_t H_nc = glength(H)  # number of columns
--        # Now get the resulting Hermite form matrix back to Sage, suitably re-arranged.
--        cdef Matrix_integer_dense B
--        if include_zero_rows:
--            B = self.new_matrix()
--        else:
--            B = self.new_matrix(nrows=H_nc)
--        for i in range(self._ncols):
--            for j in range(H_nc):
--                INT_to_mpz(tmp, gcoeff(H, i+1, H_nc-j))
--                fmpz_set_mpz(fmpz_mat_entry(B._matrix,j,self._ncols-i-1),tmp)
--        mpz_clear(tmp)
--        return B
--
-+        H = mathnf0(A, flag)
-+        if typ(H) == t_VEC:
-+            H = gel(H, 1)
-+        GenH = new_gen(H)
-+        return extract_hnf_from_pari_matrix(self, GenH, include_zero_rows)
- 
-     def p_minimal_polynomials(self, p, s_max=None):
-         r"""
-@@ -5966,7 +5875,27 @@ cdef inline GEN pari_GEN(Matrix_integer_dense B):
-     return A
- 
- 
--    #####################################################################################
-+cdef extract_hnf_from_pari_matrix(Matrix_integer_dense self, Gen H, bint include_zero_rows):
-+    cdef mpz_t tmp
-+    mpz_init(tmp)
-+
-+    # Figure out how many columns we got back.
-+    cdef long H_nc = glength(H.g)  # number of columns
-+    # Now get the resulting Hermite form matrix back to Sage, suitably re-arranged.
-+    cdef Matrix_integer_dense B
-+    if include_zero_rows:
-+        B = self.new_matrix()
-+    else:
-+        B = self.new_matrix(nrows=H_nc)
-+    cdef long i, j
-+    for i in range(self._ncols):
-+        for j in range(H_nc):
-+            sig_check()
-+            INT_to_mpz(tmp, gcoeff(H.g, i+1, H_nc-j))
-+            fmpz_set_mpz(fmpz_mat_entry(B._matrix,j,self._ncols-i-1),tmp)
-+    mpz_clear(tmp)
-+    return B
-+
- 
- cdef _clear_columns(Matrix_integer_dense A, pivots, Py_ssize_t n):
-     # Clear all columns
-@@ -5990,11 +5919,6 @@ cdef _clear_columns(Matrix_integer_dense A, pivots, Py_ssize_t n):
-     fmpz_clear(t)
-     sig_off()
- 
--###############################################################
--
--
--
--
- 
- cpdef _lift_crt(Matrix_integer_dense M, residues, moduli=None):
-     """
-diff --git a/src/sage/modular/modform/eis_series_cython.pyx b/src/sage/modular/modform/eis_series_cython.pyx
-index f7e944c..3557c6b 100644
---- a/src/sage/modular/modform/eis_series_cython.pyx
-+++ b/src/sage/modular/modform/eis_series_cython.pyx
-@@ -3,7 +3,7 @@ Eisenstein Series (optimized compiled functions)
- """
- 
- from cysignals.memory cimport check_allocarray, sig_free
--from cysignals.signals cimport sig_on, sig_off
-+from cysignals.signals cimport sig_check
- 
- from sage.rings.rational_field import QQ
- from sage.rings.power_series_ring import PowerSeriesRing
-@@ -161,8 +161,7 @@ cpdef eisenstein_series_poly(int k, int prec = 10) :
-     """
-     cdef mpz_t *val = <mpz_t *>check_allocarray(prec, sizeof(mpz_t))
-     cdef mpz_t one, mult, term, last, term_m1, last_m1
--    cdef unsigned long int expt
--    cdef long ind, ppow, int_p
-+    cdef long ind
-     cdef int i
-     cdef Fmpz_poly res = Fmpz_poly.__new__(Fmpz_poly)
- 
-@@ -173,8 +172,6 @@ cpdef eisenstein_series_poly(int k, int prec = 10) :
-     if (prec == 0):
-         return Fmpz_poly.__new__(Fmpz_poly)
- 
--    sig_on()
--
-     mpz_init(one)
-     mpz_init(term)
-     mpz_init(last)
-@@ -182,33 +179,33 @@ cpdef eisenstein_series_poly(int k, int prec = 10) :
-     mpz_init(term_m1)
-     mpz_init(last_m1)
- 
--    for i from 0 <= i < prec :
--        mpz_init(val[i])
--        mpz_set_si(val[i], 1)
-+    for i in range(prec):
-+        mpz_init_set_si(val[i], 1)
- 
-     mpz_set_si(one, 1)
- 
--    expt = <unsigned long int>(k - 1)
--    a0 = - bernoulli(k) / (2*k)
-+    cdef unsigned long expt = k - 1
-+    a0 = -bernoulli(k) / (2*k)
- 
--    for p in primes(1,prec) :
--        int_p = int(p)
--        ppow = <long int>int_p
-+    cdef long p, ppow
-+    for p in primes(1, prec) :
-+        ppow = p
- 
--        mpz_set_si(mult, int_p)
-+        mpz_set_si(mult, p)
-         mpz_pow_ui(mult, mult, expt)
-         mpz_mul(term, mult, mult)
-         mpz_set(last, mult)
- 
--        while (ppow < prec):
-+        while ppow < prec:
-+            sig_check()
-             ind = ppow
-             mpz_sub(term_m1, term, one)
-             mpz_sub(last_m1, last, one)
--            while (ind < prec):
-+            while ind < prec:
-                 mpz_mul(val[ind], val[ind], term_m1)
-                 mpz_fdiv_q(val[ind], val[ind], last_m1)
-                 ind += ppow
--            ppow *= int_p
-+            ppow *= p
-             mpz_set(last, term)
-             mpz_mul(term, term, mult)
- 
-@@ -228,6 +225,4 @@ cpdef eisenstein_series_poly(int k, int prec = 10) :
- 
-     sig_free(val)
- 
--    sig_off()
--
-     return res
-diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx
-index 758fb70..f499a3e 100644
---- a/src/sage/plot/complex_plot.pyx
-+++ b/src/sage/plot/complex_plot.pyx
-@@ -19,7 +19,7 @@ Complex Plots
- from __future__ import absolute_import
- 
- # TODO: use NumPy buffers and complex fast_callable (when supported)
--from cysignals.signals cimport sig_on, sig_off
-+from cysignals.signals cimport sig_on, sig_off, sig_check
- 
- cimport numpy as cnumpy
- 
-@@ -381,12 +381,18 @@ def complex_plot(f, xrange, yrange, **options):
-         pass
- 
-     cdef double x, y
--    ignore, ranges = setup_for_eval_on_grid([], [xrange, yrange], options['plot_points'])
--    xrange,yrange=[r[:2] for r in ranges]
--    sig_on()
--    z_values = [[  f(new_CDF_element(x, y)) for x in srange(*ranges[0], include_endpoint=True)]
--                                            for y in srange(*ranges[1], include_endpoint=True)]
--    sig_off()
-+    _, ranges = setup_for_eval_on_grid([], [xrange, yrange], options['plot_points'])
-+    xrange = ranges[0]
-+    yrange = ranges[1]
-+    cdef list z_values = []
-+    cdef list row
-+    for y in srange(*yrange, include_endpoint=True):
-+        row = []
-+        for x in srange(*xrange, include_endpoint=True):
-+            sig_check()
-+            row.append(f(new_CDF_element(x, y)))
-+        z_values.append(row)
-+
-     g = Graphics()
-     g._set_extra_kwds(Graphics._extract_kwds_for_show(options, ignore=['xmin', 'xmax']))
-     g.add_primitive(ComplexPlot(complex_to_rgb(z_values), xrange, yrange, options))
-diff --git a/src/sage/rings/asymptotic/asymptotic_expansion_generators.py b/src/sage/rings/asymptotic/asymptotic_expansion_generators.py
-index 84fa0e4..18f8e90 100644
---- a/src/sage/rings/asymptotic/asymptotic_expansion_generators.py
-+++ b/src/sage/rings/asymptotic/asymptotic_expansion_generators.py
-@@ -1095,7 +1095,7 @@ class AsymptoticExpansionGenerators(SageObject):
-             sage: asymptotic_expansions.ImplicitExpansion('Z', phi=lambda u: 1 + 2*u + u^2, tau=2, precision=5)
-             Traceback (most recent call last):
-             ...
--            ZeroDivisionError: Symbolic division by zero
-+            ZeroDivisionError: symbolic division by zero
-             sage: asymptotic_expansions.ImplicitExpansion('Z', phi=lambda u: 1 + 2*u + u^2, tau=3, precision=5)
-             3 - 4*I*sqrt(3)*Z^(-1/2) + 6*I*sqrt(3)*Z^(-3/2) + O(Z^(-2))
- 
-diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx
-index ff73a1f..2fcd3a1 100644
---- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx
-+++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx
-@@ -869,7 +869,8 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement):
-             Univariate Polynomial Ring in beta over Finite Field of size 3
-         """
-         sig_on()
--        return self._parent.polynomial_ring(name)(new_gen(FF_to_FpXQ_i(self.val)))
-+        pol = new_gen(FF_to_FpXQ(self.val))
-+        return self._parent.polynomial_ring(name)(pol)
- 
-     def minpoly(self, var='x'):
-         """
-@@ -887,7 +888,8 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement):
-             y^2 + 1
-         """
-         sig_on()
--        return self._parent.polynomial_ring(var)(new_gen(FF_minpoly(self.val)))
-+        pol = new_gen(FF_minpoly(self.val))
-+        return self._parent.polynomial_ring(var)(pol)
- 
-     def charpoly(self, var='x'):
-         """
-@@ -905,7 +907,8 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement):
-             y^2 + 1
-         """
-         sig_on()
--        return self._parent.polynomial_ring(var)(new_gen(FF_charpoly(self.val)))
-+        pol = new_gen(FF_charpoly(self.val))
-+        return self._parent.polynomial_ring(var)(pol)
- 
-     def is_square(self):
-         """
-diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx
-index 17e62f3..9e99bde 100644
---- a/src/sage/rings/integer.pyx
-+++ b/src/sage/rings/integer.pyx
-@@ -6806,6 +6806,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement):
-             ....:         (2^100).binomial(2^22, algorithm='pari')
-             ....:     except AlarmInterrupt:
-             ....:         pass
-+            doctest:...: RuntimeWarning: cypari2 leaked ... bytes on the PARI stack...
-         """
-         cdef Integer x
-         cdef Integer mm
-diff --git a/src/sage/rings/number_field/maps.py b/src/sage/rings/number_field/maps.py
-index 1727c13..5717227 100644
---- a/src/sage/rings/number_field/maps.py
-+++ b/src/sage/rings/number_field/maps.py
-@@ -358,7 +358,7 @@ class MapRelativeNumberFieldToRelativeVectorSpace(NumberFieldIsomorphism):
-             g = g(beta).lift()
-         # Convert the coefficients to elements of the base field.
-         B, from_B, _ = K.absolute_base_field()
--        return self.codomain()([from_B(B(z.lift(), check=False)) for z in g.Vecrev(-K.relative_degree())])
-+        return self.codomain()([from_B(B(z.lift(), check=False)) for z in g.Vecrev(K.relative_degree())])
- 
- 
- class NameChangeMap(NumberFieldIsomorphism):
-diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx
-index a711e94..20895c0 100644
---- a/src/sage/rings/polynomial/polynomial_element.pyx
-+++ b/src/sage/rings/polynomial/polynomial_element.pyx
-@@ -4363,8 +4363,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
-             sage: G.prod() == g
-             True
-         """
--        pols = G[0]
--        exps = G[1]
-+        pols, exps = G
-         R = self._parent
-         F = [(R(f), int(e)) for f, e in zip(pols, exps)]
- 
-diff --git a/src/sage/rings/power_series_pari.pyx b/src/sage/rings/power_series_pari.pyx
-index e37e0a3..2e03ade 100644
---- a/src/sage/rings/power_series_pari.pyx
-+++ b/src/sage/rings/power_series_pari.pyx
-@@ -678,7 +678,8 @@ cdef class PowerSeries_pari(PowerSeries):
-             g = g.truncate()
-         if typ(g.g) == t_POL and varn(g.g) == vn:
-             # t_POL has 2 codewords.  Use new_ref instead of g[i] for speed.
--            return [R(g.new_ref(gel(g.g, i))) for i in range(2, lg(g.g))]
-+            G = g.fixGEN()
-+            return [R(g.new_ref(gel(G, i))) for i in range(2, lg(G))]
-         else:
-             return [R(g)]
- 
-@@ -729,6 +730,7 @@ cdef class PowerSeries_pari(PowerSeries):
-             return []
- 
-         cdef pari_gen g = self.g
-+        g.fixGEN()
-         cdef long l, m
- 
-         R = self.base_ring()
-diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx
-index e273190..3b89f4b 100644
---- a/src/sage/rings/real_mpfr.pyx
-+++ b/src/sage/rings/real_mpfr.pyx
-@@ -3212,7 +3212,6 @@ cdef class RealNumber(sage.structure.element.RingElement):
-         # by using internal interfaces of MPFR, which are documented
-         # as subject-to-change.
- 
--        sig_on()
-         if mpfr_nan_p(self.value) or mpfr_inf_p(self.value):
-             raise ValueError('Cannot convert NaN or infinity to Pari float')
- 
-@@ -3234,6 +3233,7 @@ cdef class RealNumber(sage.structure.element.RingElement):
-         cdef mp_exp_t exponent
-         cdef GEN pari_float
- 
-+        sig_on()
-         if mpfr_zero_p(self.value):
-             pari_float = real_0_bit(-rounded_prec)
-         else:
-@@ -3245,7 +3245,7 @@ cdef class RealNumber(sage.structure.element.RingElement):
-             # Create a PARI REAL
-             pari_float = cgetr(2 + rounded_prec / wordsize)
-             pari_float[1] = evalexpo(exponent + rounded_prec - 1) + evalsigne(mpfr_sgn(self.value))
--            mpz_export(&pari_float[2], NULL, 1, wordsize/8, 0, 0, mantissa)
-+            mpz_export(&pari_float[2], NULL, 1, wordsize // 8, 0, 0, mantissa)
-             mpz_clear(mantissa)
- 
-         return new_gen(pari_float)
-diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx
-index 586d4ab..c14b9a6 100644
---- a/src/sage/symbolic/expression.pyx
-+++ b/src/sage/symbolic/expression.pyx
-@@ -1273,12 +1273,7 @@ cdef class Expression(CommutativeRingElement):
-             sage: f._convert({'parent':int})
-             0
-         """
--        cdef GEx res
--        sig_on()
--        try:
--            res = self._gobj.evalf(0, kwds)
--        finally:
--            sig_off()
-+        cdef GEx res = self._gobj.evalf(0, kwds)
-         return new_Expression_from_GEx(self._parent, res)
- 
-     def _mpfr_(self, R):
-@@ -2839,11 +2834,7 @@ cdef class Expression(CommutativeRingElement):
-             # constants are wrappers around Sage objects, compare directly
-             if is_a_constant(self._gobj.lhs()) and is_a_constant(self._gobj.rhs()):
-                 return self.operator()(self.lhs().pyobject(), self.rhs().pyobject())
--            sig_on()
--            try:
--                pynac_result = decide_relational(self._gobj)
--            finally:
--                sig_off()
-+            pynac_result = decide_relational(self._gobj)
-             if pynac_result == relational_undecidable:
-                 raise ValueError('undecidable relation: ' + repr(self))
- 
-@@ -3233,27 +3224,23 @@ cdef class Expression(CommutativeRingElement):
-         cdef GEx x
-         cdef Expression _right = <Expression>right
-         cdef operators op
--        sig_on()
--        try:
--            if is_a_relational(left._gobj):
--                if is_a_relational(_right._gobj):
--                    op = compatible_relation(relational_operator(left._gobj),
--                                             relational_operator(_right._gobj))
--                    x = relational(left._gobj.lhs() + _right._gobj.lhs(),
--                                   left._gobj.rhs() + _right._gobj.rhs(),
--                                   op)
--                else:
--                    x = relational(left._gobj.lhs() + _right._gobj,
--                                   left._gobj.rhs() + _right._gobj,
--                                   relational_operator(left._gobj))
--            elif is_a_relational(_right._gobj):
--                x = relational(left._gobj + _right._gobj.lhs(),
--                               left._gobj + _right._gobj.rhs(),
--                               relational_operator(_right._gobj))
-+        if is_a_relational(left._gobj):
-+            if is_a_relational(_right._gobj):
-+                op = compatible_relation(relational_operator(left._gobj),
-+                                         relational_operator(_right._gobj))
-+                x = relational(left._gobj.lhs() + _right._gobj.lhs(),
-+                               left._gobj.rhs() + _right._gobj.rhs(),
-+                               op)
-             else:
--                x = left._gobj + _right._gobj
--        finally:
--            sig_off()
-+                x = relational(left._gobj.lhs() + _right._gobj,
-+                               left._gobj.rhs() + _right._gobj,
-+                               relational_operator(left._gobj))
-+        elif is_a_relational(_right._gobj):
-+            x = relational(left._gobj + _right._gobj.lhs(),
-+                           left._gobj + _right._gobj.rhs(),
-+                           relational_operator(_right._gobj))
-+        else:
-+            x = left._gobj + _right._gobj
-         return new_Expression_from_GEx(left._parent, x)
- 
-     cpdef _sub_(left, right):
-@@ -3289,27 +3276,23 @@ cdef class Expression(CommutativeRingElement):
-         """
-         cdef GEx x
-         cdef Expression _right = <Expression>right
--        sig_on()
--        try:
--            if is_a_relational(left._gobj):
--                if is_a_relational(_right._gobj):
--                    op = compatible_relation(relational_operator(left._gobj),
--                                             relational_operator(_right._gobj))
--                    x = relational(left._gobj.lhs() - _right._gobj.lhs(),
--                                   left._gobj.rhs() - _right._gobj.rhs(),
--                                   op)
--                else:
--                    x = relational(left._gobj.lhs() - _right._gobj,
--                                   left._gobj.rhs() - _right._gobj,
--                                   relational_operator(left._gobj))
--            elif is_a_relational(_right._gobj):
--                x = relational(left._gobj - _right._gobj.lhs(),
--                               left._gobj - _right._gobj.rhs(),
--                               relational_operator(_right._gobj))
-+        if is_a_relational(left._gobj):
-+            if is_a_relational(_right._gobj):
-+                op = compatible_relation(relational_operator(left._gobj),
-+                                         relational_operator(_right._gobj))
-+                x = relational(left._gobj.lhs() - _right._gobj.lhs(),
-+                               left._gobj.rhs() - _right._gobj.rhs(),
-+                               op)
-             else:
--                x = left._gobj - _right._gobj
--        finally:
--            sig_off()
-+                x = relational(left._gobj.lhs() - _right._gobj,
-+                               left._gobj.rhs() - _right._gobj,
-+                               relational_operator(left._gobj))
-+        elif is_a_relational(_right._gobj):
-+            x = relational(left._gobj - _right._gobj.lhs(),
-+                           left._gobj - _right._gobj.rhs(),
-+                           relational_operator(_right._gobj))
-+        else:
-+            x = left._gobj - _right._gobj
-         return new_Expression_from_GEx(left._parent, x)
- 
-     cpdef _mul_(left, right):
-@@ -3457,29 +3440,25 @@ cdef class Expression(CommutativeRingElement):
-         cdef GEx x
-         cdef Expression _right = <Expression>right
-         cdef operators o
--        sig_on()
--        try:
--            if is_a_relational(left._gobj):
--                if is_a_relational(_right._gobj):
--                    op = compatible_relation(relational_operator(left._gobj),
--                                             relational_operator(_right._gobj))
--                    x = relational(left._gobj.lhs() * _right._gobj.lhs(),
--                                   left._gobj.rhs() * _right._gobj.rhs(),
--                                   op)
--                else:
--                    o = relational_operator(left._gobj)
--                    x = relational(left._gobj.lhs() * _right._gobj,
--                                   left._gobj.rhs() * _right._gobj,
--                                   o)
--            elif is_a_relational(_right._gobj):
--                o = relational_operator(_right._gobj)
--                x = relational(left._gobj * _right._gobj.lhs(),
--                               left._gobj * _right._gobj.rhs(),
--                               o)
-+        if is_a_relational(left._gobj):
-+            if is_a_relational(_right._gobj):
-+                op = compatible_relation(relational_operator(left._gobj),
-+                                         relational_operator(_right._gobj))
-+                x = relational(left._gobj.lhs() * _right._gobj.lhs(),
-+                               left._gobj.rhs() * _right._gobj.rhs(),
-+                               op)
-             else:
--                x = left._gobj * _right._gobj
--        finally:
--            sig_off()
-+                o = relational_operator(left._gobj)
-+                x = relational(left._gobj.lhs() * _right._gobj,
-+                               left._gobj.rhs() * _right._gobj,
-+                               o)
-+        elif is_a_relational(_right._gobj):
-+            o = relational_operator(_right._gobj)
-+            x = relational(left._gobj * _right._gobj.lhs(),
-+                           left._gobj * _right._gobj.rhs(),
-+                           o)
-+        else:
-+            x = left._gobj * _right._gobj
-         return new_Expression_from_GEx(left._parent, x)
- 
-     cpdef _div_(left, right):
-@@ -3553,7 +3532,7 @@ cdef class Expression(CommutativeRingElement):
-             sage: x/0
-             Traceback (most recent call last):
-             ...
--            ZeroDivisionError: Symbolic division by zero
-+            ZeroDivisionError: symbolic division by zero
- 
-         Check if Pynac can compute divisions of Python longs (:trac:`13107`)::
- 
-@@ -3563,7 +3542,6 @@ cdef class Expression(CommutativeRingElement):
-         cdef GEx x
-         cdef Expression _right = <Expression>right
-         cdef operators o
--        sig_on()
-         try:
-             if is_a_relational(left._gobj):
-                 if is_a_relational(_right._gobj):
-@@ -3589,11 +3567,9 @@ cdef class Expression(CommutativeRingElement):
-             # TODO: change this to maybe cleverly do something involving Cython C++ exception handling.
-             # See http://docs.cython.org/docs/wrapping_CPlusPlus.html
-             if 'division by zero' in str(msg):
--                raise ZeroDivisionError("Symbolic division by zero")
-+                raise ZeroDivisionError("symbolic division by zero")
-             else:
-                 raise
--        finally:
--            sig_off()
- 
-     def __invert__(self):
-         """
-@@ -5314,11 +5290,7 @@ cdef class Expression(CommutativeRingElement):
-         for k, v in sdict.iteritems():
-             smap.insert(make_pair((<Expression>self.coerce_in(k))._gobj,
-                                   (<Expression>self.coerce_in(v))._gobj))
--        sig_on()
--        try:
--            res = self._gobj.subs_map(smap, 0)
--        finally:
--            sig_off()
-+        res = self._gobj.subs_map(smap, 0)
-         return new_Expression_from_GEx(self._parent, res)
- 
-     subs = substitute
-@@ -7183,12 +7155,7 @@ cdef class Expression(CommutativeRingElement):
-             x^2 + 2*x + 2
-         """
-         cdef Expression r = self.coerce_in(b)
--        cdef GEx x
--        sig_on()
--        try:
--            x = g_gcd(self._gobj, r._gobj)
--        finally:
--            sig_off()
-+        cdef GEx x = g_gcd(self._gobj, r._gobj)
-         return new_Expression_from_GEx(self._parent, x)
- 
-     def gosper_sum(self, *args):
-@@ -8983,12 +8950,7 @@ cdef class Expression(CommutativeRingElement):
-             sage: t = SR(1).zeta(); t
-             Infinity
-         """
--        cdef GEx x
--        sig_on()
--        try:
--            x = g_hold_wrapper(g_zeta, self._gobj, hold)
--        finally:
--            sig_off()
-+        cdef GEx x = g_hold_wrapper(g_zeta, self._gobj, hold)
-         return new_Expression_from_GEx(self._parent, x)
- 
-     def factorial(self, hold=False):

Modified: sagemath-env.patch
===================================================================
--- sagemath-env.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ sagemath-env.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -1,6 +1,6 @@
 --- src/bin/sage-env.orig	2015-01-06 10:46:04.469687605 +0100
 +++ src/bin/sage-env	2015-01-06 10:49:59.547762019 +0100
-@@ -111,41 +111,7 @@
+@@ -111,41 +111,6 @@
  }
  
  
@@ -39,7 +39,6 @@
 -    echo >&2 "Old SAGE_ROOT=$SAGE_ROOT"
 -    echo >&2 "New SAGE_ROOT=$NEW_SAGE_ROOT"
 -fi
-+NEW_SAGE_ROOT="/usr"
  
  
  # Don't execute the commands more than once for the same version of
@@ -90,7 +89,7 @@
  export SAGE_DOC="$SAGE_SHARE/doc/sage"
  
  if [ -z "${SAGE_ORIG_PATH_SET}" ]; then
-@@ -409,29 +409,8 @@
+@@ -409,28 +409,8 @@
      export SAGE_STARTUP_FILE
  fi
  
@@ -118,10 +117,9 @@
 -    >&2 echo "Warning: PYTHONHOME must not be set when running Sage, clearing env..."
 -    unset PYTHONHOME
 -fi
--
+ 
  LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-rpath,$SAGE_LOCAL/lib $LDFLAGS"
  export LDFLAGS
- 
 @@ -495,8 +495,6 @@
      fi
  fi
@@ -141,22 +139,3 @@
  # Handle parallel building/testing/...
  # See Trac Ticket #12016
  # First, figure out the right values for SAGE_NUM_THREADS (default
---- src/sage/env.py.orig       2017-12-07 19:51:25.554281539 +0000
-+++ src/sage/env.py    2017-12-07 19:51:42.787654650 +0000
-@@ -117,13 +117,13 @@
- _add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
- 
- # bunch of sage directories and files
--_add_variable_or_fallback('SAGE_ROOT',       None)
--_add_variable_or_fallback('SAGE_LOCAL',      None)
-+_add_variable_or_fallback('SAGE_ROOT',       '')
-+_add_variable_or_fallback('SAGE_LOCAL',      '/usr')
- _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()

Modified: sagemath-gap-4.10.1.patch
===================================================================
--- sagemath-gap-4.10.1.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ sagemath-gap-4.10.1.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -17,15 +17,15 @@
 index 97c383fdbe..20ecc82976 100644
 --- a/src/sage/libs/gap/util.pyx
 +++ b/src/sage/libs/gap/util.pyx
-@@ -320,8 +320,8 @@
-             # Need to save/restore current SIGINT handling since GAP_Initialize
-             # currently clobbers it; it doesn't matter what we set SIGINT to
-             # temporarily.
+@@ -329,8 +329,8 @@ cdef initialize():
+             # Initialize GAP and capture any error messages. The
+             # initialization just prints any errors and does not
+             # use the error handler.
 -            GAP_Initialize(argc, argv, env, &gasman_callback,
 -                           &error_handler)
 +            GAP_Initialize(argc, argv, &gasman_callback,
 +                           &error_handler, 1)
-     except RuntimeError as msg:
-         raise RuntimeError('libGAP initialization failed\n' + msg)
-     finally:
+         finally:
+             sig_off()
  
+ 

Deleted: sagemath-numpy-1.16.patch
===================================================================
--- sagemath-numpy-1.16.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ sagemath-numpy-1.16.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -1,85 +0,0 @@
-diff --git a/src/sage/misc/inline_fortran.py b/src/sage/misc/inline_fortran.py
-index e44724b..2bb4852 100644
---- a/src/sage/misc/inline_fortran.py
-+++ b/src/sage/misc/inline_fortran.py
-@@ -5,6 +5,7 @@ from __future__ import absolute_import
- 
- import os
- import shutil
-+import subprocess
- import sys
- 
- import six
-@@ -154,8 +155,6 @@ class InlineFortran:
-                 from sage.repl.user_globals import get_globals
-                 globals = get_globals()
- 
--        from numpy import f2py
--
-         # Create everything in a temporary directory
-         mytmpdir = tmp_dir()
- 
-@@ -171,36 +170,44 @@ class InlineFortran:
-             else:
-                 fortran_file = name + '.f'
- 
--            s_lib_path = ""
--            s_lib = ""
--            for s in self.library_paths:
--                s_lib_path = s_lib_path + "-L%s "
-+            s_lib_path = ['-L' + p for p in self.library_paths]
-+            s_lib = ['-l' + l for l in self.libraries]
- 
--            for s in self.libraries:
--                s_lib = s_lib + "-l%s "%s
-+            with open(fortran_file, 'w') as fobj:
-+                fobj.write(x)
- 
--            log = name + ".log"
--            extra_args = ('--quiet --f77exec=sage-inline-fortran '
--                          '--f90exec=sage-inline-fortran {lib_path} {lib} '
--                          '> {log} 2>&1'.format(lib_path=s_lib_path,
--                                                lib=s_lib, log=log))
-+            # This is basically the same as what f2py.compile() does, but we
-+            # do it manually here in order to customize running the subprocess
-+            # a bit more (in particular to capture stderr)
-+            cmd = [sys.executable, '-c', 'import numpy.f2py; numpy.f2py.main()']
- 
--            f2py.compile(x, name, extra_args=extra_args,
--                         source_fn=fortran_file)
-+            # What follows are the arguments to f2py itself (appended later
-+            # just for logical separation)
-+            cmd += ['-c', '-m', name, fortran_file, '--quiet',
-+                    '--f77exec=sage-inline-fortran',
-+                    '--f90exec=sage-inline-fortran'] + s_lib_path + s_lib
- 
--            with open(log) as fobj:
--                log_string = fobj.read()
-+            try:
-+                out = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
-+            except subprocess.CalledProcessError as exc:
-+                raise RuntimeError(
-+                    "failed to compile Fortran code:\n{}".format(exc.output))
- 
-             # Note that f2py() doesn't raise an exception if it fails.
-             # In that case, the import below will fail.
-             try:
-                 mod = _import_module_from_path(name, [mytmpdir])
--            except ImportError:
--                raise RuntimeError("failed to compile Fortran code:\n" +
--                                   log_string)
-+            except ImportError as exc:
-+                # Failed to import the module; include any output from building
-+                # the module (even though it was ostensibly successful) in case
-+                # it might help
-+                msg = "failed to load compiled Fortran code: {}".format(exc)
-+                if out:
-+                    msg += '\n' + out
-+                raise RuntimeError(msg)
- 
-             if self.verbose:
--                print(log_string)
-+                print(out)
-         finally:
-             os.chdir(old_cwd)
- 

Modified: sagemath-python3-notebook.patch
===================================================================
--- sagemath-python3-notebook.patch	2019-03-24 09:25:39 UTC (rev 443312)
+++ sagemath-python3-notebook.patch	2019-03-24 10:09:23 UTC (rev 443313)
@@ -2,7 +2,7 @@
 index 74192da240..0ede281aad 100755
 --- a/src/bin/sage-notebook
 +++ b/src/bin/sage-notebook
-@@ -96,8 +96,7 @@ class NotebookJupyter(object):
+@@ -95,8 +95,7 @@ class NotebookJupyter(object):
          if not have_prerequisites():
              print(self.PREREQUISITE_ERROR)
              raise SystemExit(1)



More information about the arch-commits mailing list