[sagemath] 03/07: Delete patches that were applied upstream.

Tobias Hansen thansen at moszumanska.debian.org
Sat Mar 18 13:54:11 UTC 2017


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository sagemath.

commit b5c4d199ce381dddd2c3dca904918ac76753bf6b
Author: Tobias Hansen <thansen at debian.org>
Date:   Sat Mar 18 12:11:45 2017 +0000

    Delete patches that were applied upstream.
---
 debian/changelog                                   |   8 +
 debian/patches/series                              |   7 -
 debian/patches/u0-dont-test-glpk-version.patch     |  16 -
 debian/patches/u0-fix-libgap-systemwide.patch      | 174 ------
 debian/patches/u0-fix-preexec-fn.patch             |  26 -
 .../u0-singular-include-path-for-pynac.patch       |  15 -
 debian/patches/u0-use-local-threejs.patch          | 150 -----
 debian/patches/u0-version-pari-2.9.patch           | 678 ---------------------
 debian/patches/u0-version-pynac-0.7.4.patch        |  68 ---
 debian/patches/u0-version-singular-4.1.0p2.patch   |  44 +-
 debian/patches/u1-fix-proper-scipy-rtol.patch      |   8 +-
 debian/patches/u1-fix-use-lexists-not-exists.patch |   2 +-
 debian/patches/u1-version-ecm-7.patch              |  14 +-
 .../u1-version-pbori-boost1.62-hashes.patch        |   6 +-
 14 files changed, 45 insertions(+), 1171 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 0acb9db..8c99667 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,14 @@
 sagemath (7.6~rc1-2) UNRELEASED; urgency=medium
 
   * New upstream version.
+  * Remove patches (applied upstream):
+    - u0-dont-test-glpk-version.patch
+    - u0-fix-libgap-systemwide.patch
+    - u0-fix-preexec-fn.patch
+    - u0-singular-include-path-for-pynac.patch
+    - u0-use-local-threejs.patch
+    - u0-version-pari-2.9.patch
+    - u0-version-pynac-0.7.4.patch
 
  -- Tobias Hansen <thansen at debian.org>  Sat, 18 Mar 2017 12:00:06 +0000
 
diff --git a/debian/patches/series b/debian/patches/series
index 6e2cd52..62e1ce5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,13 +1,6 @@
 # Patches already applied upstream or committed in a side branch
 # Or nearly-finished patches that they'll very probably merge.
-u0-version-pari-2.9.patch
 u0-version-singular-4.1.0p2.patch
-u0-version-pynac-0.7.4.patch
-u0-fix-libgap-systemwide.patch
-u0-singular-include-path-for-pynac.patch
-u0-dont-test-glpk-version.patch
-u0-fix-preexec-fn.patch
-u0-use-local-threejs.patch
 
 # Patches that have open upstream tickets
 u1-version-planarity-3.patch
diff --git a/debian/patches/u0-dont-test-glpk-version.patch b/debian/patches/u0-dont-test-glpk-version.patch
deleted file mode 100644
index c0ffdaa..0000000
--- a/debian/patches/u0-dont-test-glpk-version.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Do not test the version of glpk
- The test should not fail just because the version is different.
-Author: Tobias Hansen <thansen at debian.org>
-Forwarded: https://trac.sagemath.org/ticket/22443
-
---- a/sage/src/sage/numerical/mip.pyx
-+++ b/sage/src/sage/numerical/mip.pyx
-@@ -2519,7 +2519,7 @@
-             sage: b.solver_parameter("simplex_or_intopt", "simplex_only")
-             sage: b.solver_parameter("verbosity_simplex", "GLP_MSG_ALL")
-             sage: p.solve()  # rel tol 1e-5
--            GLPK Simplex Optimizer, v4.60
-+            GLPK Simplex Optimizer, v...
-             2 rows, 2 columns, 4 non-zeros
-             *     0: obj =   7.000000000e+00 inf =   0.000e+00 (2)
-             *     2: obj =   9.400000000e+00 inf =   0.000e+00 (0)
diff --git a/debian/patches/u0-fix-libgap-systemwide.patch b/debian/patches/u0-fix-libgap-systemwide.patch
deleted file mode 100644
index b1fe050..0000000
--- a/debian/patches/u0-fix-libgap-systemwide.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-Bug: https://trac.sagemath.org/ticket/22437
-
---- a/sage/src/sage/libs/gap/gap_includes.pxd
-+++ b/sage/src/sage/libs/gap/gap_includes.pxd
-@@ -9,12 +9,12 @@
- ###############################################################################
- 
- 
--cdef extern from "gap/system.h":
-+cdef extern from "<gap/system.h>":
-     ctypedef char libGAP_Char
-     ctypedef int libGAP_Int
-     ctypedef unsigned char libGAP_UChar
- 
--cdef extern from "gap/libgap.h":
-+cdef extern from "<gap/libgap.h>":
-     void libgap_initialize(int argc, char** argv)
-     ctypedef void(*libgap_gasman_callback_ptr)()
-     void libgap_set_gasman_callback(libgap_gasman_callback_ptr callback)
-@@ -30,11 +30,11 @@
-     void libgap_enter()
-     void libgap_exit()
- 
--cdef extern from "gap/code.h":
-+cdef extern from "<gap/code.h>":
-     ctypedef unsigned int libGAP_Stat
-     ctypedef libGAP_Stat* libGAP_PtrBody
- 
--cdef extern from "gap/gap.h":
-+cdef extern from "<gap/gap.h>":
-     ctypedef unsigned int libGAP_UInt
-     ctypedef void* libGAP_ExecStatus
-     void libGAP_ViewObjHandler(void*)
-@@ -52,7 +52,7 @@
-     cdef libGAP_ExecStatus libGAP_STATUS_ERROR
-     cdef libGAP_ExecStatus libGAP_STATUS_QQUIT
- 
--cdef extern from "gap/objects.h":
-+cdef extern from "<gap/objects.h>":
-     ctypedef void* libGAP_Obj
-     libGAP_Obj libGAP_SHALLOW_COPY_OBJ(libGAP_Obj obj)
-     bint libGAP_IS_INTOBJ(libGAP_Obj obj)
-@@ -130,13 +130,13 @@
-     cdef int libGAP_TESTING
-     cdef int libGAP_LAST_TESTING_TNUM
- 
--cdef extern from "gap/read.h":
-+cdef extern from "<gap/read.h>":
-     void* libGAP_ReadEvalCommand(libGAP_Obj context, libGAP_UInt *dualSemicolon)
-     void* libGAP_ReadEvalFile()
-     void* libGAP_ReadEvalResult
-     bint libGAP_READ_ERROR()
- 
--cdef extern from "gap/scanner.h":
-+cdef extern from "<gap/scanner.h>":
-     void libGAP_ClearError()
-     libGAP_UInt libGAP_NrError
-     libGAP_UInt libGAP_Symbol
-@@ -212,12 +212,12 @@
-     int libGAP_S_SEMICOLON
-     int libGAP_S_EOF
- 
--cdef extern from "gap/gvars.h":
-+cdef extern from "<gap/gvars.h>":
-     libGAP_UInt libGAP_GVarName(char* name)
-     void libGAP_AssGVar(libGAP_UInt gvar, libGAP_Obj val)
-     libGAP_Obj libGAP_VAL_GVAR(libGAP_UInt gvar)
- 
--cdef extern from "gap/string.h":
-+cdef extern from "<gap/string.h>":
-     char* libGAP_CSTR_STRING(libGAP_Obj list)
-     int libGAP_GET_LEN_STRING(libGAP_Obj list)
-     bint libGAP_IS_STRING(libGAP_Obj obj)
-@@ -225,7 +225,7 @@
-     bint libGAP_ConvString(libGAP_Obj obj)
-     void libGAP_C_NEW_STRING(libGAP_Obj new_gap_string, int length, char* c_string)
- 
--cdef extern from "gap/gasman.h":
-+cdef extern from "<gap/gasman.h>":
-     void libGAP_InitGlobalBag(libGAP_Obj* addr, char* cookie)
-     libGAP_Obj libGAP_NewBag(libGAP_UInt type, libGAP_UInt size)
-     void libGAP_CHANGED_BAG(libGAP_Obj bag)
-@@ -257,7 +257,7 @@
- cdef extern libGAP_Obj* libGAP_StopBags
- cdef extern libGAP_Obj* libGAP_EndBags
- 
--cdef extern from "gap/ariths.h":
-+cdef extern from "<gap/ariths.h>":
-     libGAP_Obj libGAP_SUM (libGAP_Obj, libGAP_Obj)
-     libGAP_Obj libGAP_DIFF(libGAP_Obj, libGAP_Obj)
-     libGAP_Obj libGAP_PROD(libGAP_Obj, libGAP_Obj)
-@@ -278,33 +278,33 @@
-     bint libGAP_EQ(libGAP_Obj opL, libGAP_Obj opR)
-     bint libGAP_LT(libGAP_Obj opL, libGAP_Obj opR)
- 
--cdef extern from "gap/calls.h":
-+cdef extern from "<gap/calls.h>":
-     bint libGAP_IS_FUNC(libGAP_Obj)
- 
--cdef extern from "gap/plist.h":
-+cdef extern from "<gap/plist.h>":
-     libGAP_Obj libGAP_NEW_PLIST(int type, int len)
-     bint libGAP_IS_PLIST(libGAP_Obj lst)
-     int libGAP_LEN_PLIST(libGAP_Obj lst)
-     libGAP_Obj libGAP_ELM_PLIST(libGAP_Obj lst, int pos)
- 
--cdef extern from "gap/lists.h":
-+cdef extern from "<gap/lists.h>":
-     void libGAP_UNB_LIST(libGAP_Obj list, int pos)
-     bint libGAP_IS_LIST(libGAP_Obj lst)
-     int libGAP_LEN_LIST(libGAP_Obj lst)
-     libGAP_Obj libGAP_ELM_LIST(libGAP_Obj lst, int pos)
- 
--cdef extern from "gap/listfunc.h":
-+cdef extern from "<gap/listfunc.h>":
-     void libGAP_AddList(libGAP_Obj list, libGAP_Obj obj)
-     void libGAP_AddPlist(libGAP_Obj list, libGAP_Obj obj)
- 
--cdef extern from "gap/records.h":
-+cdef extern from "<gap/records.h>":
-     char* libGAP_NAME_RNAM(libGAP_UInt rnam)
-     libGAP_UInt libGAP_RNamIntg(int i)
-     bint libGAP_IS_REC(libGAP_Obj obj)
-     libGAP_Obj libGAP_ELM_REC(libGAP_Obj rec, libGAP_UInt rnam)
-     libGAP_UInt libGAP_RNamName(libGAP_Char* name)
- 
--cdef extern from "gap/precord.h":
-+cdef extern from "<gap/precord.h>":
-     libGAP_Obj libGAP_NEW_PREC(int len)
-     int libGAP_LEN_PREC(libGAP_Obj rec)
-     int libGAP_GET_RNAM_PREC(libGAP_Obj rec, int i)
-@@ -314,14 +314,14 @@
-     bint libGAP_IsbPRec(libGAP_Obj rec, libGAP_UInt rnam)
-     libGAP_Obj libGAP_ElmPRec(libGAP_Obj rec, libGAP_UInt rnam)
- 
--cdef extern from "gap/cyclotom.h":
-+cdef extern from "<gap/cyclotom.h>":
-     pass
- 
--cdef extern from "gap/bool.h":
-+cdef extern from "<gap/bool.h>":
-     cdef libGAP_Obj libGAP_True
-     cdef libGAP_Obj libGAP_False
- 
--cdef extern from "gap/vars.h":
-+cdef extern from "<gap/vars.h>":
-      cdef int libGAP_T_LVARS
-      libGAP_Obj libGAP_BottomLVars
- 
---- a/sage/src/sage/libs/gap/test/main.c
-+++ b/sage/src/sage/libs/gap/test/main.c
-@@ -1,14 +1,14 @@
- #include <unistd.h>
- #include <stdio.h>
--#include "gap/libgap.h"
-+#include <gap/libgap.h>
- 
--#include "gap/config.h"
--#include "gap/system.h"
--#include "gap/objects.h"
--#include "gap/gasman.h"
--#include "gap/code.h"
--#include "gap/vars.h"
--#include "gap/read.h"
-+#include <gap/config.h>
-+#include <gap/system.h>
-+#include <gap/objects.h>
-+#include <gap/gasman.h>
-+#include <gap/code.h>
-+#include <gap/vars.h>
-+#include <gap/read.h>
- 
- extern char **environ;
- 
diff --git a/debian/patches/u0-fix-preexec-fn.patch b/debian/patches/u0-fix-preexec-fn.patch
deleted file mode 100644
index 31eaf96..0000000
--- a/debian/patches/u0-fix-preexec-fn.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Description: Work around python bug #1652
- This avoids GAP printing extraneous "gzip: stdout: Broken pipe" errors
- However it is NOT related to Debian bug #844789
-Author: Ximin Luo <infinity0 at debian.org>
-Bug: https://bugs.python.org/issue1652
-Forwarded: https://trac.sagemath.org/ticket/22440
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
---- a/sage/src/sage/interfaces/expect.py
-+++ b/sage/src/sage/interfaces/expect.py
-@@ -42,6 +42,7 @@
- from __future__ import absolute_import
- 
- import os
-+import signal
- import sys
- import weakref
- import time
-@@ -479,6 +480,7 @@
-                         timeout=None,  # no timeout
-                         env=pexpect_env,
-                         name=self._repr_(),
-+                        preexec_fn=lambda: signal.signal(signal.SIGPIPE, signal.SIG_DFL),
-                         quit_string=self._quit_string())
-             except (ExceptionPexpect, pexpect.EOF) as e:
-                 # Change pexpect errors to RuntimeError
diff --git a/debian/patches/u0-singular-include-path-for-pynac.patch b/debian/patches/u0-singular-include-path-for-pynac.patch
deleted file mode 100644
index fae7719..0000000
--- a/debian/patches/u0-singular-include-path-for-pynac.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Description: Compile pynac interface with SINGULAR_CFLAGS to find its headers
- pynac/basic.h includes factory/factory.h so this is needed to find it.
-Author: Tobias Hansen <thansen at debian.org>
-Forwarded: https://trac.sagemath.org/ticket/22442
-
---- a/sage/src/sage/libs/pynac/pynac.pxd
-+++ b/sage/src/sage/libs/pynac/pynac.pxd
-@@ -1,6 +1,6 @@
- # distutils: language = c++
- # distutils: libraries = pynac gmp
--# distutils: extra_compile_args = -std=c++11
-+# distutils: extra_compile_args = -std=c++11 SINGULAR_CFLAGS
- """
- Declarations for pynac, a Python frontend for ginac
- 
diff --git a/debian/patches/u0-use-local-threejs.patch b/debian/patches/u0-use-local-threejs.patch
deleted file mode 100644
index 84c4781..0000000
--- a/debian/patches/u0-use-local-threejs.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-Description: Use threejs as the default 3D viewer
-Author: paulmasson <paulmasson at analyticphysics.com>
-Applied-Upstream:
- commit:5ddb9f154c1618039e60253e4e102a198d955af5
- commit:efbd87751b8fd5b384c563026e3470bdb42429c2
- commit:7c0c9cf8e7ccb3d9b09020ddf11615fcfac61780
- commit:63f725d65fcd99c3a8669534efdd3114e31bf1ff
-
---- a/sage/src/doc/en/reference/plot3d/threejs.rst
-+++ b/sage/src/doc/en/reference/plot3d/threejs.rst
-@@ -18,7 +18,10 @@
-   on a touch pad
- 
- The generated HTML file contains all data for the scene apart from the JavaScript library
--and can be saved to disk for sharing or embedding in a web page.
-+and can be saved to disk for sharing or embedding in a web page. The option ``online``
-+can be set to ``true`` to provide links to the required files in an online content delivery
-+network. Alternately the required files can be downloaded from the Three.js GitHub repository
-+and linked directly from the web server.
- 
- Options currently supported by the viewer:
- 
-@@ -36,6 +39,9 @@
- 
- - ``frame`` -- (default: True) Boolean determining whether frame is drawn
- 
-+- ``online`` -- (default: False) Boolean determining whether the local standard package
-+  files are replaced by links to an online content delivery network
-+
- - ``opacity`` -- (default: 1) numeric value for transparency of lines and surfaces
- 
- - ``radius`` -- (default: None) numeric value for radius of lines; use to render
---- a/sage/src/ext/threejs/threejs_template.html
-+++ b/sage/src/ext/threejs/threejs_template.html
-@@ -2,8 +2,8 @@
- <html>
- <head>
- <title></title>
--<meta charset=utf-8>
--<meta name=viewport content='width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0'>
-+<meta charset="utf-8">
-+<meta name=viewport content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
- <style>
- 
-     body { margin: 0px; overflow: hidden; }
-@@ -12,10 +12,7 @@
- </head>
- 
- <body>
--
--<script src=http://rawgit.com/mrdoob/three.js/r80/build/three.js></script>
--<script src=http://rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js></script>
--
-+SAGE_SCRIPTS
- <script>
- 
-     var scene = new THREE.Scene();
---- a/sage/src/sage/plot/plot3d/base.pyx
-+++ b/sage/src/sage/plot/plot3d/base.pyx
-@@ -367,10 +367,41 @@
-         options['axes_labels'] = kwds.get('axes_labels', ['x','y','z'])
-         options['decimals'] = int(kwds.get('decimals', 2))
-         options['frame'] = kwds.get('frame', True)
-+        options['online'] = kwds.get('online', False)
- 
-         if not options['frame']:
-             options['axes_labels'] = False
- 
-+        from sage.repl.rich_output import get_display_manager
-+        backend = get_display_manager()._backend
-+        from sage.repl.rich_output.backend_sagenb import BackendSageNB
-+        if isinstance(backend, BackendSageNB):
-+            options['online'] = True
-+
-+        if options['online']:
-+            scripts = ( """
-+<script src="https://cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js"></script>
-+<script src="https://cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js"></script>
-+            """ )
-+        else:
-+            from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook
-+            if isinstance(backend, BackendIPythonNotebook):
-+                scripts = ( """
-+<script src="/nbextensions/threejs/three.min.js"></script>
-+<script src="/nbextensions/threejs/OrbitControls.js"></script>
-+<script>
-+  if ( !window.THREE ) document.write('\
-+<script src="https://cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js"><\/script>\
-+<script src="https://cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js"><\/script>');
-+</script>
-+                """ )
-+            else:
-+                from sage.env import SAGE_SHARE
-+                scripts = ( """
-+<script src="{0}/threejs/three.min.js"></script>
-+<script src="{0}/threejs/OrbitControls.js"></script>
-+                """.format( SAGE_SHARE ) )
-+
-         lights = "[{x:0, y:0, z:10}, {x:0, y:0, z:-10}]"
- 
-         b = self.bounding_box()
-@@ -413,6 +444,7 @@
-         html = f.read()
-         f.close()
- 
-+        html = html.replace('SAGE_SCRIPTS', scripts)
-         html = html.replace('SAGE_OPTIONS', json.dumps(options))
-         html = html.replace('SAGE_LIGHTS', lights)
-         html = html.replace('SAGE_BOUNDS', bounds)
---- a/sage/src/sage/repl/ipython_kernel/install.py
-+++ b/sage/src/sage/repl/ipython_kernel/install.py
-@@ -1,5 +1,5 @@
- """
--Installing the SageMath Jupyter Kernel and extensions
-+Installing the SageMath Jupyter Kernel and Extensions
- 
- Kernels have to register themselves with Jupyter so that they appear
- in the Jupyter notebook's kernel drop-down. This is done by
-@@ -130,6 +130,23 @@
-         dst = os.path.join(self.nbextensions_dir, 'jsmol')
-         self.symlink(src, dst)
- 
-+    def use_local_threejs(self):
-+        """
-+        Symlink threejs to the Jupyter notebook.
-+
-+        EXAMPLES::
-+
-+            sage: from sage.repl.ipython_kernel.install import SageKernelSpec
-+            sage: spec = SageKernelSpec()
-+            sage: spec.use_local_threejs()
-+            sage: threejs = os.path.join(spec.nbextensions_dir, 'threejs')
-+            sage: os.path.isdir(threejs)
-+            True
-+        """
-+        src = os.path.join(SAGE_LOCAL, 'share', 'threejs')
-+        dst = os.path.join(self.nbextensions_dir, 'threejs')
-+        self.symlink(src, dst)
-+
-     def _kernel_cmd(self):
-         """
-         Helper to construct the SageMath kernel command.
-@@ -236,6 +253,7 @@
-         instance = cls()
-         instance.use_local_mathjax()
-         instance.use_local_jsmol()
-+        instance.use_local_threejs()
-         instance._install_spec()
-         instance._symlink_resources()
- 
diff --git a/debian/patches/u0-version-pari-2.9.patch b/debian/patches/u0-version-pari-2.9.patch
deleted file mode 100644
index 522ce68..0000000
--- a/debian/patches/u0-version-pari-2.9.patch
+++ /dev/null
@@ -1,678 +0,0 @@
-From b1c66bd445cceb05caa589afb7aab9d9efdf5e94 Mon Sep 17 00:00:00 2001
-From: Jeroen Demeyer <jdemeyer at cage.ugent.be>
-Date: Mon, 24 Oct 2016 14:05:01 +0200
-Subject: Upgrade to PARI 2.9.1
-Bug: https://trac.sagemath.org/ticket/21756
-Applied-Upstream: 7.6
-
----
- build/pkgs/pari/checksums.ini                      |  6 +-
- build/pkgs/pari/package-version.txt                |  2 +-
- build/pkgs/pari/patches/README.txt                 |  5 --
- build/pkgs/pari/patches/fix_constants.patch        | 51 ----------------
- build/pkgs/pari/patches/perl_inc.patch             | 45 --------------
- build/pkgs/pari/patches/stackwarn.patch            | 37 ++++++------
- src/sage/interfaces/gp.py                          |  3 +
- src/sage/libs/pari/tests.py                        |  6 +-
- src/sage/modular/cusps_nf.py                       | 18 +++---
- src/sage/rings/number_field/bdd_height.py          |  2 +-
- src/sage/rings/number_field/class_group.py         |  2 +-
- src/sage/rings/number_field/number_field.py        | 61 +++++++++----------
- .../rings/number_field/number_field_element.pyx    |  2 +-
- .../rings/number_field/number_field_ideal_rel.py   | 10 ++--
- src/sage/rings/number_field/number_field_rel.py    |  2 +-
- src/sage/rings/number_field/unit_group.py          | 37 +++++++++---
- .../rings/polynomial/polynomial_quotient_ring.py   | 70 +++++++++++++++++-----
- .../schemes/elliptic_curves/ell_number_field.py    | 28 +++++----
- .../schemes/elliptic_curves/ell_rational_field.py  |  4 +-
- src/sage/schemes/elliptic_curves/gp_simon.py       |  2 +-
- src/sage/schemes/elliptic_curves/period_lattice.py |  4 +-
- 21 files changed, 181 insertions(+), 216 deletions(-)
- delete mode 100644 build/pkgs/pari/patches/fix_constants.patch
- delete mode 100644 build/pkgs/pari/patches/perl_inc.patch
-
---- a/sage/src/sage/interfaces/gp.py
-+++ b/sage/src/sage/interfaces/gp.py
-@@ -239,6 +239,9 @@
- 
-     def _start(self, alt_message=None, block_during_init=True):
-         Expect._start(self, alt_message, block_during_init)
-+        # disable memory debugging: those warnings can only confuse our
-+        # interface
-+        self._eval_line('default(debugmem,0);')
-         # disable timer
-         self._eval_line('default(timer,0);')
-         # disable the break loop, otherwise gp will seem to hang on errors
---- a/sage/src/sage/libs/pari/tests.py
-+++ b/sage/src/sage/libs/pari/tests.py
-@@ -1457,7 +1457,7 @@
-     sage: x = pari('[1, -1, 2]~')
-     sage: y = pari('[1, -1, 3]~')
-     sage: nf.idealcoprime(x, y)
--    [1, 0, 0]~
-+    1
- 
-     sage: y = pari('[2, -2, 4]~')
-     sage: nf.idealcoprime(x, y)
-@@ -1489,7 +1489,7 @@
-     sage: nf = F._pari_()
-     sage: I = pari('[1, -1, 2]~')
-     sage: nf.idealstar(I)
--    [[[43, 9, 5; 0, 1, 0; 0, 0, 1], [0]], [42, [42]], Mat([[43, [9, 1, 0]~, 1, 1, [-5, 2, -18; -9, -5, 2; 1, -9, -5]], 1]), [[[[42], [3], [3], [Vecsmall([])], 1]], [[], [], []]], Mat(1)]
-+    [[[43, 9, 5; 0, 1, 0; 0, 0, 1], [0]], [42, [42]], Mat([[43, [9, 1, 0]~, 1, 1, [-5, 2, -18; -9, -5, 2; 1, -9, -5]], 1]), [[[[[42], [3], [3], [Vecsmall([])], 1, [43, 9, 5; 0, 1, 0; 0, 0, 1]]]], [[], [], [], Vecsmall([])], Vecsmall([0])], Mat(1)]
- 
-     sage: x = polygen(QQ)
-     sage: K.<a> = NumberField(x^3 - 17)
-@@ -1520,7 +1520,7 @@
- 
-     sage: x = QQ['x'].0; nf = pari(x^2 + 2).nfinit()
-     sage: nf.nfgaloisconj()
--    [-x, x]~
-+    [x, -x]~
-     sage: nf = pari(x^3 + 2).nfinit()
-     sage: nf.nfgaloisconj()
-     [x]~
---- a/sage/src/sage/modular/cusps_nf.py
-+++ b/sage/src/sage/modular/cusps_nf.py
-@@ -142,19 +142,17 @@
-         sage: N = k.ideal(713, a + 208)
-         sage: L = list_of_representatives(N); L
-         (Fractional ideal (1),
--        Fractional ideal (37, a + 12),
--        Fractional ideal (47, a - 9))
-+         Fractional ideal (47, a - 9),
-+         Fractional ideal (53, a - 16))
- 
--    The output of ``list_of_representatives`` has been cached:
--
--    ::
-+    The output of ``list_of_representatives`` has been cached::
- 
-         sage: sage.modular.cusps_nf._list_reprs_cache.keys()
-         [Fractional ideal (713, a + 208)]
-         sage: sage.modular.cusps_nf._list_reprs_cache[N]
-         (Fractional ideal (1),
--        Fractional ideal (37, a + 12),
--        Fractional ideal (47, a - 9))
-+         Fractional ideal (47, a - 9),
-+         Fractional ideal (53, a - 16))
-     """
-     if N in _list_reprs_cache:
-         lreps = _list_reprs_cache[N]
-@@ -1255,9 +1253,9 @@
-         sage: from sage.modular.cusps_nf import NFCusps_ideal_reps_for_levelN
-         sage: NFCusps_ideal_reps_for_levelN(N)
-         [(Fractional ideal (1),
--          Fractional ideal (13, a - 2),
--          Fractional ideal (43, a - 1),
--          Fractional ideal (67, a + 17))]
-+          Fractional ideal (67, a + 17),
-+          Fractional ideal (127, a + 48),
-+          Fractional ideal (157, a - 19))]
-         sage: L = NFCusps_ideal_reps_for_levelN(N, 5)
-         sage: all([len(L[i])==k.class_number() for i in range(len(L))])
-         True
---- a/sage/src/sage/rings/number_field/bdd_height.py
-+++ b/sage/src/sage/rings/number_field/bdd_height.py
-@@ -72,7 +72,7 @@
-         sage: bdd_pr_ideals[4]
-         [2]
-         sage: bdd_pr_ideals[5]
--        [g + 2, g - 2]
-+        [-g - 2, -g + 2]
-         sage: bdd_pr_ideals[7]
-         []
- 
---- a/sage/src/sage/rings/number_field/class_group.py
-+++ b/sage/src/sage/rings/number_field/class_group.py
-@@ -470,7 +470,7 @@
-             sage: CK = K.class_group()
-             sage: CL = L.class_group()
-             sage: [CL(I).exponents() for I in CK]
--            [(0,), (2,), (4,)]
-+            [(0,), (4,), (2,)]
-         """
-         if isinstance(args[0], FractionalIdealClass):
-             return self.element_class(self, None, self._number_field.ideal(args[0].ideal()))
---- a/sage/src/sage/rings/number_field/number_field.py
-+++ b/sage/src/sage/rings/number_field/number_field.py
-@@ -3868,8 +3868,8 @@
-             sage: K.<a> = QuadraticField(-3)
-             sage: K.unit_group()
-             Unit group with structure C6 of Number Field in a with defining polynomial x^2 + 3
--            sage: K.S_units([])
--            [-1/2*a + 1/2]
-+            sage: K.S_units([])  # random
-+            [1/2*a + 1/2]
-             sage: K.S_units([])[0].multiplicative_order()
-             6
- 
-@@ -3940,14 +3940,13 @@
- 
-             sage: K.<a> = NumberField(x^3 - 381 * x + 127)
-             sage: K._S_class_group_and_units(tuple(K.primes_above(13)))
--            ([-7/13*a^2 - 140/13*a + 36/13,
--              14/13*a^2 + 267/13*a - 85/13,
--              7/13*a^2 + 127/13*a - 49/13,
-+            ([2/13*a^2 + 1/13*a - 677/13,
-+              1/13*a^2 + 7/13*a - 332/13,
-+              -1/13*a^2 + 6/13*a + 345/13,
-               -1,
--              1/13*a^2 - 19/13*a + 6/13,
-+              2/13*a^2 + 1/13*a - 755/13,
-               1/13*a^2 - 19/13*a - 7/13],
--             [(Fractional ideal (11, a - 2), 2),
--              (Fractional ideal (19, 1/13*a^2 - 45/13*a - 332/13), 2)])
-+             [(Fractional ideal (11, a - 2), 2), (Fractional ideal (19, a + 7), 2)])
- 
-         Number fields defined by non-monic and non-integral
-         polynomials are supported (:trac:`252`)::
-@@ -4066,13 +4065,13 @@
-             sage: K.selmer_group([P2], 2)
-             [2, -1]
-             sage: K.selmer_group((P2,P3), 4)
--            [2, a + 1, -1]
-+            [2, -a - 1, -1]
-             sage: K.selmer_group((P2,P3), 4, orders=True)
--            ([2, a + 1, -1], [4, 4, 2])
-+            ([2, -a - 1, -1], [4, 4, 2])
-             sage: K.selmer_group([P2], 3)
-             [2]
-             sage: K.selmer_group([P2, P3], 3)
--            [2, a + 1]
-+            [2, -a - 1]
-             sage: K.selmer_group([P2, P3, K.ideal(a)], 3)  # random signs
-             [2, a + 1, a]
- 
-@@ -4093,14 +4092,21 @@
-             sage: P3 = K.ideal(3, a+1)
-             sage: P5 = K.ideal(a)
-             sage: S = K.selmer_group([P2, P3, P5], 3)
--            sage: S == [2, a + 1, a] or S == [2, a + 1, -a]
-+            sage: S in ([2, a + 1, a], [2, a + 1, -a], [2, -a - 1, a], [2, -a - 1, -a]) or S
-             True
- 
-         Verify that :trac:`14489` is fixed::
- 
-             sage: K.<a> = NumberField(x^3 - 381 * x + 127)
-             sage: K.selmer_group(K.primes_above(13), 2)
--            [-7/13*a^2 - 140/13*a + 36/13, 14/13*a^2 + 267/13*a - 85/13, 7/13*a^2 + 127/13*a - 49/13, -1, 1/13*a^2 - 19/13*a + 6/13, 1/13*a^2 - 19/13*a - 7/13, 2/13*a^2 + 53/13*a - 92/13, 10/13*a^2 + 44/13*a - 4555/13]
-+            [2/13*a^2 + 1/13*a - 677/13,
-+             1/13*a^2 + 7/13*a - 332/13,
-+             -1/13*a^2 + 6/13*a + 345/13,
-+             -1,
-+             2/13*a^2 + 1/13*a - 755/13,
-+             1/13*a^2 - 19/13*a - 7/13,
-+             2/13*a^2 + 53/13*a - 92/13,
-+             2/13*a^2 + 40/13*a - 27/13]
- 
-         Verify that :trac:`16708` is fixed::
- 
-@@ -4182,7 +4188,7 @@
-             sage: list(K.selmer_group_iterator([K.ideal(2, -a+1)], 2))
-             [1, -1, 2, -2]
-             sage: list(K.selmer_group_iterator([K.ideal(2, -a+1), K.ideal(3, a+1)], 2))
--            [1, -1, a + 1, -a - 1, 2, -2, 2*a + 2, -2*a - 2]
-+            [1, -1, -a - 1, a + 1, 2, -2, -2*a - 2, 2*a + 2]
- 
-         Examples over `\QQ` (as a number field)::
- 
-@@ -4710,7 +4716,7 @@
-             sage: K.elements_of_norm(3)
-             []
-             sage: K.elements_of_norm(50)
--            [-7*a + 1, -5*a - 5, 7*a + 1]
-+            [-7*a + 1, 5*a - 5, 7*a + 1]
- 
-         TESTS:
- 
-@@ -5891,7 +5897,7 @@
-             sage: A = x^4 - 10*x^3 + 20*5*x^2 - 15*5^2*x + 11*5^3
-             sage: K = NumberField(A, 'a')
-             sage: K.units()
--            (7/275*a^3 - 1/11*a^2 + 9/11*a + 2,)
-+            (1/275*a^3 + 4/55*a^2 - 5/11*a + 3,)
- 
-         For big number fields, provably computing the unit group can
-         take a very long time.  In this case, one can ask for the
-@@ -5976,8 +5982,8 @@
-             Unit group with structure C10 x Z of Number Field in a with defining polynomial x^4 - 10*x^3 + 100*x^2 - 375*x + 1375
-             sage: U.gens()
-             (u0, u1)
--            sage: U.gens_values()
--            [-7/275*a^3 + 1/11*a^2 - 9/11*a - 1, 7/275*a^3 - 1/11*a^2 + 9/11*a + 2]
-+            sage: U.gens_values()  # random
-+            [-1/275*a^3 + 7/55*a^2 - 6/11*a + 4, 1/275*a^3 + 4/55*a^2 - 5/11*a + 3]
-             sage: U.invariants()
-             (10, 0)
-             sage: [u.multiplicative_order() for u in U.gens()]
-@@ -6046,8 +6052,8 @@
-             S-unit group with structure C10 x Z x Z x Z of Number Field in a with defining polynomial x^4 - 10*x^3 + 100*x^2 - 375*x + 1375 with S = (Fractional ideal (5, 1/275*a^3 + 4/55*a^2 - 5/11*a + 5), Fractional ideal (11, 1/275*a^3 + 4/55*a^2 - 5/11*a + 9))
-             sage: U.gens()
-             (u0, u1, u2, u3)
--            sage: U.gens_values()
--            [-7/275*a^3 + 1/11*a^2 - 9/11*a - 1, 7/275*a^3 - 1/11*a^2 + 9/11*a + 2, 1/275*a^3 + 4/55*a^2 - 5/11*a + 5, -14/275*a^3 + 21/55*a^2 - 29/11*a + 6]
-+            sage: U.gens_values()  # random
-+            [-1/275*a^3 + 7/55*a^2 - 6/11*a + 4, 1/275*a^3 + 4/55*a^2 - 5/11*a + 3, 1/275*a^3 + 4/55*a^2 - 5/11*a + 5, -14/275*a^3 + 21/55*a^2 - 29/11*a + 6]
-             sage: U.invariants()
-             (10, 0, 0, 0)
-             sage: [u.multiplicative_order() for u in U.gens()]
-@@ -6291,19 +6297,14 @@
- 
-         OUTPUT: a primitive root of unity. No guarantee is made about
-         which primitive root of unity this returns, not even for
--        cyclotomic fields.
-+        cyclotomic fields. Repeated calls of this function may return
-+        a different value.
- 
-         .. note::
- 
-            We do not create the full unit group since that can be
-            expensive, but we do use it if it is already known.
- 
--        ALGORITHM:
--
--        We use the PARI function :pari:`nfrootsof1` in all cases. This is
--        required (even for cyclotomic fields) in order to be consistent
--        with the full unit group, which is also computed by PARI.
--
-         EXAMPLES::
- 
-             sage: K.<i> = NumberField(x^2+1)
-@@ -6344,12 +6345,12 @@
- 
-         Check for :trac:`15027`. We use a new variable name::
- 
--            sage: K.<f> = QuadraticField(-3)
-+            sage: K.<f> = NumberField(x^2 + x + 1)
-             sage: K.primitive_root_of_unity()
--            -1/2*f + 1/2
-+            f + 1
-             sage: UK = K.unit_group()
-             sage: K.primitive_root_of_unity()
--            -1/2*f + 1/2
-+            f + 1
- 
-         Number fields defined by non-monic and non-integral
-         polynomials are supported (:trac:`252`)::
---- a/sage/src/sage/rings/number_field/number_field_element.pyx
-+++ b/sage/src/sage/rings/number_field/number_field_element.pyx
-@@ -1607,7 +1607,7 @@
-             sage: t[0].norm(K)
-             -a
-             sage: t = K(3)._rnfisnorm(L); t
--            ((a^2 + 1)*b^3 - b^2 - a*b - a^2, -3*a^2 + 3*a - 3)
-+            (-b^3 - a*b^2 - a^2*b + 1, 3*a^2 - 3*a + 6)
-             sage: t[0].norm(K)*t[1]
-             3
- 
---- a/sage/src/sage/rings/number_field/number_field_ideal_rel.py
-+++ b/sage/src/sage/rings/number_field/number_field_ideal_rel.py
-@@ -506,7 +506,7 @@
-             sage: K.<c> = F.extension(Y^2 - (1 + a)*(a + b)*a*b)
-             sage: I = K.ideal(3, c)
-             sage: J = I.ideal_below(); J
--            Fractional ideal (b)
-+            Fractional ideal (-b)
-             sage: J.number_field() == F
-             True
- 
-@@ -535,12 +535,12 @@
- 
-             sage: K.<a, b> = QQ.extension([x^2 + 11, x^2 - 5])
-             sage: K.factor(5)
--            (Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 3/4))^2 * (Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 7/4))^2
-+            (Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 3/4))^2 * (Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 7/4))^2
-             sage: K.ideal(5).factor()
--            (Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 3/4))^2 * (Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 7/4))^2
-+            (Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 3/4))^2 * (Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 7/4))^2
-             sage: K.ideal(5).prime_factors()
--            [Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 3/4),
--             Fractional ideal (5, (1/4*b - 1/4)*a - 1/4*b - 7/4)]
-+            [Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 3/4),
-+             Fractional ideal (5, (-1/4*b - 1/4)*a + 1/4*b - 7/4)]
- 
-             sage: PQ.<X> = QQ[]
-             sage: F.<a, b> = NumberFieldTower([X^2 - 2, X^2 - 3])
---- a/sage/src/sage/rings/number_field/number_field_rel.py
-+++ b/sage/src/sage/rings/number_field/number_field_rel.py
-@@ -1769,7 +1769,7 @@
- 
-             sage: K.<a, b> = NumberField( [x^2 + x + 1, x^4 + 1] )
-             sage: K.roots_of_unity()[:5]
--            [b*a, -b^2*a - b^2, b^3, -a, b*a + b]
-+            [b*a + b, b^2*a, -b^3, a + 1, b*a]
-         """
-         abs = self.absolute_field('a')
-         from_abs, _ = abs.structure()
---- a/sage/src/sage/rings/number_field/unit_group.py
-+++ b/sage/src/sage/rings/number_field/unit_group.py
-@@ -15,12 +15,12 @@
-     sage: UK.gens_values()  # random
-     [-1/12*a^3 + 1/6*a, 1/24*a^3 + 1/4*a^2 - 1/12*a - 1]
-     sage: UK.gen(0).value()
--    -1/12*a^3 + 1/6*a
-+    1/12*a^3 - 1/6*a
- 
-     sage: UK.gen(0)
-     u0
-     sage: UK.gen(0) + K.one()   # coerce abstract generator into number field
--    -1/12*a^3 + 1/6*a + 1
-+    1/12*a^3 - 1/6*a + 1
- 
-     sage: [u.multiplicative_order() for u in UK.gens()]
-     [4, +Infinity]
-@@ -37,18 +37,18 @@
-     sage: UK(-1)
-     u0^2
-     sage: [UK(u) for u in (x^4-1).roots(K,multiplicities=False)]
--    [1, u0^2, u0^3, u0]
-+    [1, u0^2, u0, u0^3]
- 
-     sage: UK.fundamental_units() # random
-     [1/24*a^3 + 1/4*a^2 - 1/12*a - 1]
-     sage: torsion_gen = UK.torsion_generator();  torsion_gen
-     u0
-     sage: torsion_gen.value()
--    -1/12*a^3 + 1/6*a
-+    1/12*a^3 - 1/6*a
-     sage: UK.zeta_order()
-     4
-     sage: UK.roots_of_unity()
--    [-1/12*a^3 + 1/6*a, -1, 1/12*a^3 - 1/6*a, 1]
-+    [1/12*a^3 - 1/6*a, -1, -1/12*a^3 + 1/6*a, 1]
- 
- Exp and log functions provide maps between units as field elements and exponent
- vectors with respect to the generators::
-@@ -100,7 +100,30 @@
-     sage: UL.zeta_order()
-     24
-     sage: UL.roots_of_unity()
--    [b*a, -b^2*a - b^2, b^3, -a, b*a + b, -b^2, -b^3*a, -a - 1, b, b^2*a, -b^3*a - b^3, -1, -b*a, b^2*a + b^2, -b^3, a, -b*a - b, b^2, b^3*a, a + 1, -b, -b^2*a, b^3*a + b^3, 1]
-+    [-b*a,
-+     -b^2*a - b^2,
-+     -b^3,
-+     -a,
-+     -b*a - b,
-+     -b^2,
-+     b^3*a,
-+     -a - 1,
-+     -b,
-+     b^2*a,
-+     b^3*a + b^3,
-+     -1,
-+     b*a,
-+     b^2*a + b^2,
-+     b^3,
-+     a,
-+     b*a + b,
-+     b^2,
-+     -b^3*a,
-+     a + 1,
-+     b,
-+     -b^2*a,
-+     -b^3*a - b^3,
-+     1]
- 
- A relative extension example, which worked thanks to the code review by F.W.Clarke::
- 
-@@ -229,7 +252,7 @@
-             sage: UK.gens()
-             (u,)
-             sage: UK.gens_values()
--            [-1/2*a + 1/2]
-+            [1/2*a + 1/2]
- 
-             sage: K.<z> = CyclotomicField(13)
-             sage: UK = K.unit_group(); UK
---- a/sage/src/sage/rings/polynomial/polynomial_quotient_ring.py
-+++ b/sage/src/sage/rings/polynomial/polynomial_quotient_ring.py
-@@ -1082,7 +1082,21 @@
-             sage: R.<x> = K[]
-             sage: S.<xbar> = R.quotient((x^2 + 23)*(x^2 + 31))
-             sage: S.S_class_group([])
--            [((1/4*xbar^2 + 31/4, (-1/8*a + 1/8)*xbar^2 - 31/8*a + 31/8, 1/16*xbar^3 + 1/16*xbar^2 + 31/16*xbar + 31/16, -1/16*a*xbar^3 + (1/16*a + 1/8)*xbar^2 - 31/16*a*xbar + 31/16*a + 31/8), 6), ((-1/4*xbar^2 - 23/4, (1/8*a - 1/8)*xbar^2 + 23/8*a - 23/8, -1/16*xbar^3 - 1/16*xbar^2 - 23/16*xbar - 23/16, 1/16*a*xbar^3 + (-1/16*a - 1/8)*xbar^2 + 23/16*a*xbar - 23/16*a - 23/8), 6), ((-5/4*xbar^2 - 115/4, 5/4*a*xbar^2 + 115/4*a, -5/16*xbar^3 + 5/16*xbar^2 - 115/16*xbar + 115/16, 1/16*a*xb [...]
-+            [((1/4*xbar^2 + 31/4,
-+               (-1/8*a + 1/8)*xbar^2 - 31/8*a + 31/8,
-+               1/16*xbar^3 + 1/16*xbar^2 + 31/16*xbar + 31/16,
-+               -1/16*a*xbar^3 + (1/16*a + 1/8)*xbar^2 - 31/16*a*xbar + 31/16*a + 31/8),
-+              6),
-+             ((-1/4*xbar^2 - 23/4,
-+               (1/8*a - 1/8)*xbar^2 + 23/8*a - 23/8,
-+               -1/16*xbar^3 - 1/16*xbar^2 - 23/16*xbar - 23/16,
-+               1/16*a*xbar^3 + (-1/16*a - 1/8)*xbar^2 + 23/16*a*xbar - 23/16*a - 23/8),
-+              6),
-+             ((-5/4*xbar^2 - 115/4,
-+               1/4*a*xbar^2 + 23/4*a,
-+               -1/16*xbar^3 - 7/16*xbar^2 - 23/16*xbar - 161/16,
-+               1/16*a*xbar^3 - 1/16*a*xbar^2 + 23/16*a*xbar - 23/16*a),
-+              2)]
- 
-         By using the ideal `(a)`, we cut the part of the class group coming from
-         `x^2 + 31` from 12 to 2, i.e. we lose a generator of order 6 (this was
-@@ -1201,7 +1215,21 @@
-             sage: R.<x> = K[]
-             sage: S.<xbar> = R.quotient((x^2 + 23)*(x^2 + 31))
-             sage: S.class_group()
--            [((1/4*xbar^2 + 31/4, (-1/8*a + 1/8)*xbar^2 - 31/8*a + 31/8, 1/16*xbar^3 + 1/16*xbar^2 + 31/16*xbar + 31/16, -1/16*a*xbar^3 + (1/16*a + 1/8)*xbar^2 - 31/16*a*xbar + 31/16*a + 31/8), 6), ((-1/4*xbar^2 - 23/4, (1/8*a - 1/8)*xbar^2 + 23/8*a - 23/8, -1/16*xbar^3 - 1/16*xbar^2 - 23/16*xbar - 23/16, 1/16*a*xbar^3 + (-1/16*a - 1/8)*xbar^2 + 23/16*a*xbar - 23/16*a - 23/8), 6), ((-5/4*xbar^2 - 115/4, 5/4*a*xbar^2 + 115/4*a, -5/16*xbar^3 + 5/16*xbar^2 - 115/16*xbar + 115/16, 1/16*a*xb [...]
-+            [((1/4*xbar^2 + 31/4,
-+               (-1/8*a + 1/8)*xbar^2 - 31/8*a + 31/8,
-+               1/16*xbar^3 + 1/16*xbar^2 + 31/16*xbar + 31/16,
-+               -1/16*a*xbar^3 + (1/16*a + 1/8)*xbar^2 - 31/16*a*xbar + 31/16*a + 31/8),
-+              6),
-+             ((-1/4*xbar^2 - 23/4,
-+               (1/8*a - 1/8)*xbar^2 + 23/8*a - 23/8,
-+               -1/16*xbar^3 - 1/16*xbar^2 - 23/16*xbar - 23/16,
-+               1/16*a*xbar^3 + (-1/16*a - 1/8)*xbar^2 + 23/16*a*xbar - 23/16*a - 23/8),
-+              6),
-+             ((-5/4*xbar^2 - 115/4,
-+               1/4*a*xbar^2 + 23/4*a,
-+               -1/16*xbar^3 - 7/16*xbar^2 - 23/16*xbar - 161/16,
-+               1/16*a*xbar^3 - 1/16*a*xbar^2 + 23/16*a*xbar - 23/16*a),
-+              2)]
- 
-         Note that all the returned values live where we expect them to::
- 
-@@ -1239,13 +1267,13 @@
-             Unit group with structure C6 of Number Field in a with defining polynomial x^2 + 3
-             sage: K.<a> = QQ['x'].quotient(x^2 + 3)
-             sage: u,o = K.S_units([])[0]; u, o
--            (-1/2*a + 1/2, 6)
-+            (1/2*a + 1/2, 6)
-             sage: u^6
-             1
-             sage: u^3
-             -1
-             sage: u^2
--            -1/2*a - 1/2
-+            1/2*a - 1/2
- 
-         ::
- 
-@@ -1254,11 +1282,21 @@
-             sage: L.<b> = K['y'].quotient(y^3 + 5); L
-             Univariate Quotient Polynomial Ring in b over Number Field in a with defining polynomial x^2 + 3 with modulus y^3 + 5
-             sage: L.S_units([])
--            [(-1/2*a + 1/2, 6), ((1/3*a - 1)*b^2 + 4/3*a*b + 5/6*a + 7/2, +Infinity), ((-1/3*a + 1)*b^2 + (2/3*a - 2)*b - 5/6*a + 7/2, +Infinity)]
-+            [(1/2*a + 1/2, 6),
-+             ((-1/3*a - 1)*b^2 - 4/3*a*b - 5/6*a + 7/2, +Infinity),
-+             (2/3*a*b^2 + (2/3*a - 2)*b - 5/6*a - 7/2, +Infinity)]
-             sage: L.S_units([K.ideal(1/2*a - 3/2)])
--            [((-1/6*a - 1/2)*b^2 + (1/3*a - 1)*b + 4/3*a, +Infinity), (-1/2*a + 1/2, 6), ((1/3*a - 1)*b^2 + 4/3*a*b + 5/6*a + 7/2, +Infinity), ((-1/3*a + 1)*b^2 + (2/3*a - 2)*b - 5/6*a + 7/2, +Infinity)]
-+            [((-1/6*a - 1/2)*b^2 + (1/3*a - 1)*b + 4/3*a, +Infinity),
-+             (1/2*a + 1/2, 6),
-+             ((-1/3*a - 1)*b^2 - 4/3*a*b - 5/6*a + 7/2, +Infinity),
-+             (2/3*a*b^2 + (2/3*a - 2)*b - 5/6*a - 7/2, +Infinity)]
-             sage: L.S_units([K.ideal(2)])
--            [((-1/2*a + 1/2)*b^2 + (-a - 1)*b - 3, +Infinity), ((-1/6*a - 1/2)*b^2 + (1/3*a - 1)*b + 5/6*a - 1/2, +Infinity), ((1/6*a + 1/2)*b^2 + (-1/3*a + 1)*b - 5/6*a - 1/2, +Infinity), (-1/2*a + 1/2, 6), ((1/3*a - 1)*b^2 + 4/3*a*b + 5/6*a + 7/2, +Infinity), ((-1/3*a + 1)*b^2 + (2/3*a - 2)*b - 5/6*a + 7/2, +Infinity)]
-+            [((1/2*a - 1/2)*b^2 + (a + 1)*b + 3, +Infinity),
-+             ((1/6*a + 1/2)*b^2 + (-1/3*a + 1)*b - 5/6*a + 1/2, +Infinity),
-+             ((1/6*a + 1/2)*b^2 + (-1/3*a + 1)*b - 5/6*a - 1/2, +Infinity),
-+             (1/2*a + 1/2, 6),
-+             ((-1/3*a - 1)*b^2 - 4/3*a*b - 5/6*a + 7/2, +Infinity),
-+             (2/3*a*b^2 + (2/3*a - 2)*b - 5/6*a - 7/2, +Infinity)]
- 
-         Note that all the returned values live where we expect them to::
- 
-@@ -1316,13 +1354,13 @@
-             Unit group with structure C6 of Number Field in a with defining polynomial x^2 + 3
-             sage: K.<a> = QQ['x'].quotient(x^2 + 3)
-             sage: u = K.units()[0][0]; u
--            -1/2*a + 1/2
-+            1/2*a + 1/2
-             sage: u^6
-             1
-             sage: u^3
-             -1
-             sage: u^2
--            -1/2*a - 1/2
-+            1/2*a - 1/2
-             sage: K.<a> = QQ['x'].quotient(x^2 + 5)
-             sage: K.units(())
-             [(-1, 2)]
-@@ -1334,14 +1372,16 @@
-             sage: L.<b> = K['y'].quotient(y^3 + 5); L
-             Univariate Quotient Polynomial Ring in b over Number Field in a with defining polynomial x^2 + 3 with modulus y^3 + 5
-             sage: L.units()
--            [(-1/2*a + 1/2, 6), ((1/3*a - 1)*b^2 + 4/3*a*b + 5/6*a + 7/2, +Infinity), ((-1/3*a + 1)*b^2 + (2/3*a - 2)*b - 5/6*a + 7/2, +Infinity)]
-+            [(1/2*a + 1/2, 6),
-+             ((-1/3*a - 1)*b^2 - 4/3*a*b - 5/6*a + 7/2, +Infinity),
-+             (2/3*a*b^2 + (2/3*a - 2)*b - 5/6*a - 7/2, +Infinity)]
-             sage: L.<b> = K.extension(y^3 + 5)
-             sage: L.unit_group()
-             Unit group with structure C6 x Z x Z of Number Field in b with defining polynomial x^3 + 5 over its base field
-             sage: L.unit_group().gens()    # abstract generators
-             (u0, u1, u2)
-             sage: L.unit_group().gens_values()
--            [-1/2*a + 1/2, (1/3*a - 1)*b^2 + 4/3*a*b + 5/6*a + 7/2, (-1/3*a + 1)*b^2 + (2/3*a - 2)*b - 5/6*a + 7/2]
-+            [1/2*a + 1/2, (-1/3*a - 1)*b^2 - 4/3*a*b - 5/6*a + 7/2, 2/3*a*b^2 + (2/3*a - 2)*b - 5/6*a - 7/2]
- 
-         Note that all the returned values live where we expect them to::
- 
-@@ -1388,15 +1428,15 @@
-             sage: D.selmer_group([K.ideal(2, -a+1)], 2)
-             [2, -1]
-             sage: D.selmer_group([K.ideal(2, -a+1), K.ideal(3, a+1)], 2)
--            [2, -a - 1, -1]
-+            [2, a + 1, -1]
-             sage: D.selmer_group((K.ideal(2, -a+1),K.ideal(3, a+1)), 4)
--            [2, -a - 1, -1]
-+            [2, a + 1, -1]
-             sage: D.selmer_group([K.ideal(2, -a+1)], 3)
-             [2]
-             sage: D.selmer_group([K.ideal(2, -a+1), K.ideal(3, a+1)], 3)
--            [2, -a - 1]
-+            [2, a + 1]
-             sage: D.selmer_group([K.ideal(2, -a+1), K.ideal(3, a+1), K.ideal(a)], 3)
--            [2, -a - 1, a]
-+            [2, a + 1, a]
- 
-         """
-         fields, isos, iso_classes = self._S_decomposition(tuple(S))
---- a/sage/src/sage/schemes/elliptic_curves/ell_number_field.py
-+++ b/sage/src/sage/schemes/elliptic_curves/ell_number_field.py
-@@ -246,21 +246,19 @@
-               C = Mod(y, y^2 + 7)
-             <BLANKLINE>
-               Computing L(S,2)
--              L(S,2) = [Mod(Mod(-1, y^2 + 7)*x^2 + Mod(-1/2*y + 1/2, y^2 + 7)*x + 1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(-1, y^2 + 7)*x^2 + Mod(-1/2*y - 1/2, y^2 + 7)*x + 1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(-1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(x^2 + 2, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x + Mod(1/2*y + 3/2, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x + Mod(1/2*y - 3/2, y^2 + 7), x^ [...]
-+              L(S,2) = [Mod(Mod(-1/2*y + 1/2, y^2 + 7)*x^2 + Mod(-1/2*y - 1/2, y^2 + 7)*x + Mod(-y - 1, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(-1, y^2 + 7)*x^2 + Mod(-1/2*y - 1/2, y^2 + 7)*x + 1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(-1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(x^2 + 2, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x + Mod(1/2*y + 3/2, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x +  [...]
-             <BLANKLINE>
-               Computing the Selmer group
-               #LS2gen = 2
--               LS2gen = [Mod(Mod(-5, y^2 + 7)*x^2 + Mod(-3*y, y^2 + 7)*x + Mod(8, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x^2 + Mod(1/2*y - 1/2, y^2 + 7)*x - 1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))]
-+               LS2gen = [Mod(Mod(-1/2*y + 1/2, y^2 + 7)*x^2 + Mod(-1/2*y - 1/2, y^2 + 7)*x + Mod(-y - 1, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7)), Mod(Mod(1, y^2 + 7)*x^2 + Mod(1/2*y + 1/2, y^2 + 7)*x - 1, x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))]
-               Search for trivial points on the curve
-              Trivial points on the curve = [[Mod(1/2*y + 3/2, y^2 + 7), Mod(-y - 2, y^2 + 7)], [1, 1, 0], [Mod(1/2*y + 3/2, y^2 + 7), Mod(-y - 2, y^2 + 7), 1]]
--              zc = Mod(Mod(-5, y^2 + 7)*x^2 + Mod(-3*y, y^2 + 7)*x + Mod(8, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
--              Hilbert symbol (Mod(2, y^2 + 7),Mod(-5, y^2 + 7)) =
--              zc = Mod(Mod(1, y^2 + 7)*x^2 + Mod(1/2*y - 1/2, y^2 + 7)*x + Mod(-1, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
--              Hilbert symbol (Mod(-2*y + 2, y^2 + 7),Mod(1, y^2 + 7)) =
--              sol of quadratic equation = [1, 0, 1]~
--              zc*z1^2 = Mod(Mod(2*y - 2, y^2 + 7)*x + Mod(2*y + 10, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
--              quartic: (-1/2*y + 1/2)*Y^2 = x^4 + (-3*y - 15)*x^2 + (-8*y - 16)*x + (-11/2*y - 15/2)
--              reduced: Y^2 = (-1/2*y + 1/2)*x^4 - 4*x^3 + (-3*y + 3)*x^2 + (2*y - 2)*x + (1/2*y + 3/2)
-+              zc = Mod(Mod(-1/2*y + 1/2, y^2 + 7)*x^2 + Mod(-1/2*y - 1/2, y^2 + 7)*x + Mod(-y - 1, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
-+              Hilbert symbol (Mod(1, y^2 + 7),Mod(-2*y + 2, y^2 + 7)) =
-+              sol of quadratic equation = [1, 1, 0]~
-+              zc*z1^2 = Mod(Mod(4, y^2 + 7)*x + Mod(-2*y + 6, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
-+              quartic: (-1)*Y^2 = x^4 + (3*y - 9)*x^2 + (-8*y + 16)*x + (9/2*y - 11/2)
-+              reduced: Y^2 = -x^4 + (-3*y + 9)*x^2 + (-8*y + 16)*x + (-9/2*y + 11/2)
-               not ELS at [2, [0, 1]~, 1, 1, [1, -2; 1, 0]]
-               zc = Mod(Mod(1, y^2 + 7)*x^2 + Mod(1/2*y + 1/2, y^2 + 7)*x + Mod(-1, y^2 + 7), x^3 + Mod(1, y^2 + 7)*x + Mod(y, y^2 + 7))
-               comes from the trivial point [Mod(1/2*y + 3/2, y^2 + 7), Mod(-y - 2, y^2 + 7)]
-@@ -300,7 +298,10 @@
-             sage: K = CyclotomicField(43).subfields(3)[0][0]
-             sage: E = EllipticCurve(K, '37')
-             sage: E.simon_two_descent()  # long time (4s on sage.math, 2013)
--            (3, 3, [(0 : 0 : 1), (-1/4*zeta43_0^2 - 1/2*zeta43_0 + 3 : -3/8*zeta43_0^2 - 3/4*zeta43_0 + 4 : 1)])
-+            (3,
-+             3,
-+             [(0 : 0 : 1),
-+              (-1/2*zeta43_0^2 - 1/2*zeta43_0 + 7 : -3/2*zeta43_0^2 - 5/2*zeta43_0 + 18 : 1)])
-         """
-         verbose = int(verbose)
-         if known_points is None:
-@@ -2465,8 +2466,9 @@
-             sage: E = EllipticCurve(K, [1, 0, 5*y^2 + 16, 0, 0])
-             sage: E.gens(lim1=1, lim3=1)
-             []
--            sage: E.rank(), E.gens()  # long time (about 3 s)
--            (1, [(9/25*y^2 + 26/25 : -229/125*y^3 - 67/25*y^2 - 731/125*y - 213/25 : 1)])
-+            sage: E.rank(), E.gens(lim3=12)  # long time (about 4s)
-+            (1,
-+             [(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : -29038/125*y^3 - 43003/125*y^2 - 92706/125*y - 137286/125 : 1)])
- 
-         Here is a curve of rank 2, yet the list contains many points::
- 
---- a/sage/src/sage/schemes/elliptic_curves/ell_rational_field.py
-+++ b/sage/src/sage/schemes/elliptic_curves/ell_rational_field.py
-@@ -1805,7 +1805,7 @@
-             sage: E = EllipticCurve('389a1')
-             sage: E._known_points = []  # clear cached points
-             sage: E.simon_two_descent()
--            (2, 2, [(5/4 : 5/8 : 1), (-3/4 : 7/8 : 1)])
-+            (2, 2, [(1 : 0 : 1), (-11/9 : 28/27 : 1)])
-             sage: E = EllipticCurve('5077a1')
-             sage: E.simon_two_descent()
-             (3, 3, [(1 : 0 : 1), (2 : 0 : 1), (0 : 2 : 1)])
-@@ -1829,7 +1829,7 @@
-             (4, 4, [(6 : -1 : 1), (4 : 3 : 1), (5 : -2 : 1), (8 : 7 : 1)])
-             sage: E = EllipticCurve([0, 0, 1, -79, 342])
-             sage: E.simon_two_descent()  # long time (9s on sage.math, 2011)
--            (5, 5, [(7 : 11 : 1), (-1 : 20 : 1), (0 : 18 : 1), (3 : 11 : 1), (-3 : 23 : 1)])
-+            (5, 5, [(5 : 8 : 1), (10 : 23 : 1), (3 : 11 : 1), (-3 : 23 : 1), (0 : 18 : 1)])
-             sage: E = EllipticCurve([1, 1, 0, -2582, 48720])
-             sage: r, s, G = E.simon_two_descent(); r,s
-             (6, 6)
---- a/sage/src/sage/schemes/elliptic_curves/gp_simon.py
-+++ b/sage/src/sage/schemes/elliptic_curves/gp_simon.py
-@@ -57,7 +57,7 @@
-         sage: import sage.schemes.elliptic_curves.gp_simon
-         sage: E=EllipticCurve('389a1')
-         sage: sage.schemes.elliptic_curves.gp_simon.simon_two_descent(E)
--        (2, 2, [(5/4 : 5/8 : 1), (-3/4 : 7/8 : 1)])
-+        (2, 2, [(1 : 0 : 1), (-11/9 : 28/27 : 1)])
- 
-     TESTS::
- 
---- a/sage/src/sage/schemes/elliptic_curves/period_lattice.py
-+++ b/sage/src/sage/schemes/elliptic_curves/period_lattice.py
-@@ -1559,7 +1559,7 @@
- 
-         TESTS:
- 
--        (see :trac:`10026` and :trac:`11767`)::
-+        See :trac:`10026` and :trac:`11767`::
- 
-             sage: K.<w> = QuadraticField(2)
-             sage: E = EllipticCurve([ 0, -1, 1, -3*w -4, 3*w + 4 ])
-@@ -1567,7 +1567,7 @@
-             sage: P,Q = T[2]
-             sage: embs = K.embeddings(CC)
-             sage: Lambda = E.period_lattice(embs[0])
--            sage: Lambda.elliptic_logarithm(P,100)
-+            sage: Lambda.elliptic_logarithm(P+3*Q, 100)
-             4.7100131126199672766973600998
-             sage: R.<x> = QQ[]
-             sage: K.<a> = NumberField(x^2 + x + 5)
diff --git a/debian/patches/u0-version-pynac-0.7.4.patch b/debian/patches/u0-version-pynac-0.7.4.patch
deleted file mode 100644
index 1320f6f..0000000
--- a/debian/patches/u0-version-pynac-0.7.4.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From a178a75b2cda70c50544e13400327be23e1fe7e9 Mon Sep 17 00:00:00 2001
-From: Ralf Stephan <ralf at ark.in-berlin.de>
-Date: Fri, 20 Jan 2017 17:23:18 +0100
-Subject: 22219: doctest fixes
-
----
- src/sage/calculus/wester.py      | 4 ++++
- src/sage/libs/pynac/pynac.pyx    | 4 ++--
- src/sage/symbolic/expression.pyx | 2 +-
- src/sage/symbolic/function.pyx   | 2 +-
- 4 files changed, 8 insertions(+), 4 deletions(-)
-
---- a/sage/src/sage/calculus/wester.py
-+++ b/sage/src/sage/calculus/wester.py
-@@ -508,7 +508,11 @@
-     sage: # (OK-ish) D(x)Abs(x)
-     sage: #    Verify(D(x) Abs(x), Sign(x));
-     sage: diff(abs(x))
-+    1/2*(x + conjugate(x))/abs(x)
-+    sage: _ = var('x', domain='real')
-+    sage: diff(abs(x))
-     x/abs(x)
-+    sage: forget()
- 
- ::
- 
---- a/sage/src/sage/libs/pynac/pynac.pyx
-+++ b/sage/src/sage/libs/pynac/pynac.pyx
-@@ -1506,7 +1506,7 @@
-         sage: sin(2.*I)
-         3.62686040784702*I
-         sage: sin(QQbar(I))
--        1.17520119364380*I
-+        sin(I)
-     """
-     try:
-         return x.sin()
-@@ -1528,7 +1528,7 @@
-         sage: cos(2.*I)
-         3.76219569108363
-         sage: cos(QQbar(I))
--        1.54308063481524
-+        cos(I)
-     """
-     try:
-         return x.cos()
---- a/sage/src/sage/symbolic/expression.pyx
-+++ b/sage/src/sage/symbolic/expression.pyx
-@@ -4354,7 +4354,7 @@
-             sage: x,y = var('x,y', domain='real')
-             sage: p,q = var('p,q', domain='positive')
-             sage: (c/2*(5*(3*a*b*x*y*p*q)^2)^(7/2*c)).expand()
--            1/2*45^(7/2*c)*(a^2*b^2)^(7/2*c)*c*p^(7*c)*q^(7*c)*(x^2)^(7/2*c)*(y^2)^(7/2*c)
-+            1/2*45^(7/2*c)*(a^2*b^2*x^2*y^2)^(7/2*c)*c*p^(7*c)*q^(7*c)
-             sage: ((-(-a*x*p)^3*(b*y*p)^3)^(c/2)).expand()
-             (a^3*b^3*x^3*y^3)^(1/2*c)*p^(3*c)
-             sage: x,y,p,q = var('x,y,p,q', domain='complex')
---- a/sage/src/sage/symbolic/function.pyx
-+++ b/sage/src/sage/symbolic/function.pyx
-@@ -395,7 +395,7 @@
-             ...
-             TypeError: cannot coerce arguments: ...
-             sage: exp(QQbar(I))
--            0.540302305868140 + 0.841470984807897*I
-+            e^I
- 
-         For functions with single argument, if coercion fails we try to call
-         a method with the name of the function on the object::
diff --git a/debian/patches/u0-version-singular-4.1.0p2.patch b/debian/patches/u0-version-singular-4.1.0p2.patch
index f9536ff..ba61ff9 100644
--- a/debian/patches/u0-version-singular-4.1.0p2.patch
+++ b/debian/patches/u0-version-singular-4.1.0p2.patch
@@ -50,7 +50,7 @@ Subject: Further doctest changes.
  
 --- a/sage/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 +++ b/sage/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-@@ -591,7 +591,7 @@
+@@ -594,7 +594,7 @@
  
              sage: P._singular_()
              polynomial ring, over a field, global ordering
@@ -59,7 +59,7 @@ Subject: Further doctest changes.
              //   number of vars : 3
              //        block   1 : ordering dp
              //                  : names    x y z
-@@ -1179,7 +1179,7 @@
+@@ -1182,7 +1182,7 @@
              sage: P.<x,y,z> = QQ[]
              sage: P._singular_()
              polynomial ring, over a field, global ordering
@@ -68,7 +68,7 @@ Subject: Further doctest changes.
              //   number of vars : 3
              //        block   1 : ordering dp
              //                  : names    x y z
-@@ -1195,9 +1195,7 @@
+@@ -1198,9 +1198,7 @@
              sage: P.<x,y,z> = PolynomialRing(k,3)
              sage: P._singular_()
              polynomial ring, over a field, global ordering
@@ -79,7 +79,7 @@ Subject: Further doctest changes.
              //   number of vars : 3
              //        block   1 : ordering dp
              //                  : names    x y z
-@@ -1213,7 +1211,7 @@
+@@ -1216,7 +1214,7 @@
              sage: P.<x> = QQ[]
              sage: P._singular_()
              polynomial ring, over a field, global ordering
@@ -88,7 +88,7 @@ Subject: Further doctest changes.
              //   number of vars : 1
              //        block   1 : ordering lp
              //                  : names    x
-@@ -1253,7 +1251,7 @@
+@@ -1256,7 +1254,7 @@
              sage: P.<x,y,z> = QQ[]
              sage: P._singular_init_()
              polynomial ring, over a field, global ordering
@@ -97,7 +97,7 @@ Subject: Further doctest changes.
              //   number of vars : 3
              //        block   1 : ordering dp
              //                  : names    x y z
-@@ -1268,9 +1266,7 @@
+@@ -1271,9 +1269,7 @@
              sage: R.<x,y> = PolynomialRing(NumberField(w^2+1,'s'))
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -108,7 +108,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering dp
              //                  : names    x y
-@@ -1279,9 +1275,7 @@
+@@ -1282,9 +1278,7 @@
              sage: R = PolynomialRing(GF(2**8,'a'),10,'x', order='invlex')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -119,7 +119,7 @@ Subject: Further doctest changes.
              //   number of vars : 10
              //        block   1 : ordering rp
              //                  : names    x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
-@@ -1290,7 +1284,7 @@
+@@ -1293,7 +1287,7 @@
              sage: R = PolynomialRing(GF(127),2,'x', order='invlex')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -128,7 +128,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering rp
              //                  : names    x0 x1
-@@ -1299,7 +1293,7 @@
+@@ -1302,7 +1296,7 @@
              sage: R = PolynomialRing(QQ,2,'x', order='invlex')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -137,7 +137,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering rp
              //                  : names    x0 x1
-@@ -1308,7 +1302,7 @@
+@@ -1311,7 +1305,7 @@
              sage: R = PolynomialRing(QQ,2,'x', order='degneglex')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -146,7 +146,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering a
              //                  : names    x0 x1
-@@ -1320,7 +1314,7 @@
+@@ -1323,7 +1317,7 @@
              sage: R = PolynomialRing(QQ,'x')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -155,7 +155,7 @@ Subject: Further doctest changes.
              //   number of vars : 1
              //        block   1 : ordering lp
              //                  : names    x
-@@ -1329,7 +1323,7 @@
+@@ -1332,7 +1326,7 @@
              sage: R = PolynomialRing(GF(127),'x')
              sage: singular(R)
              polynomial ring, over a field, global ordering
@@ -164,7 +164,7 @@ Subject: Further doctest changes.
              //   number of vars : 1
              //        block   1 : ordering lp
              //                  : names    x
-@@ -1338,7 +1332,7 @@
+@@ -1341,7 +1335,7 @@
              sage: R = ZZ['x,y']
              sage: singular(R)
              polynomial ring, over a domain, global ordering
@@ -173,7 +173,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering dp
              //                  : names    x y
-@@ -1347,7 +1341,7 @@
+@@ -1350,7 +1344,7 @@
              sage: R = IntegerModRing(1024)['x,y']
              sage: singular(R)
              polynomial ring, over a ring (with zero-divisors), global ordering
@@ -182,7 +182,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering dp
              //                  : names    x y
-@@ -1356,7 +1350,7 @@
+@@ -1359,7 +1353,7 @@
              sage: R = IntegerModRing(15)['x,y']
              sage: singular(R)
              polynomial ring, over a ring (with zero-divisors), global ordering
@@ -191,7 +191,7 @@ Subject: Further doctest changes.
              //   number of vars : 2
              //        block   1 : ordering dp
              //                  : names    x y
-@@ -1367,7 +1361,7 @@
+@@ -1370,7 +1364,7 @@
              sage: P.<x> = QQ[]
              sage: P._singular_init_()
              polynomial ring, over a field, global ordering
@@ -202,7 +202,7 @@ Subject: Further doctest changes.
              //                  : names    x
 --- a/sage/src/sage/rings/polynomial/polynomial_quotient_ring.py
 +++ b/sage/src/sage/rings/polynomial/polynomial_quotient_ring.py
-@@ -601,7 +601,7 @@
+@@ -612,7 +612,7 @@
              sage: Q = P.quo([(x^2+1)])
              sage: singular(Q)        # indirect doctest
              polynomial ring, over a field, global ordering
@@ -382,7 +382,7 @@ Subject: Further doctest changes.
              //                  : names    x y
 --- a/sage/src/sage/rings/polynomial/multi_polynomial_element.py
 +++ b/sage/src/sage/rings/polynomial/multi_polynomial_element.py
-@@ -1997,7 +1997,7 @@
+@@ -1994,7 +1994,7 @@
      ::
  
          sage: r = f/g; r
@@ -402,7 +402,7 @@ Subject: Further doctest changes.
  
      Modulo any other prime the Groebner basis is trivial so there are
      no other solutions. For example::
-@@ -3644,11 +3644,13 @@
+@@ -3645,11 +3645,13 @@
              sage: P.<a,b,c> = PolynomialRing(Zmod(1000),3)
              sage: I = P * (a + 2*b + 2*c - 1, a^2 - a + 2*b^2 + 2*c^2, 2*a*b + 2*b*c - b)
              sage: I.groebner_basis()
@@ -421,7 +421,7 @@ Subject: Further doctest changes.
  
 --- a/sage/src/sage/rings/polynomial/pbori.pyx
 +++ b/sage/src/sage/rings/polynomial/pbori.pyx
-@@ -1371,7 +1371,7 @@
+@@ -1410,7 +1410,7 @@
              sage: B.<x,y> = BooleanPolynomialRing(2)
              sage: B._singular_() # indirect doctest
              polynomial ring, over a field, global ordering
@@ -576,7 +576,7 @@ Subject: Further doctest changes.
          //                  : names    t
 --- a/sage/src/sage/interfaces/expect.py
 +++ b/sage/src/sage/interfaces/expect.py
-@@ -1213,7 +1213,7 @@
+@@ -1216,7 +1216,7 @@
              sage: R.<x> = QQ[]; f = x^3 + x + 1;  g = x^3 - x - 1; r = f.resultant(g); gap(ZZ); singular(R)
              Integers
              polynomial ring, over a field, global ordering
@@ -587,7 +587,7 @@ Subject: Further doctest changes.
              //                  : names    x
 --- a/sage/src/sage/interfaces/interface.py
 +++ b/sage/src/sage/interfaces/interface.py
-@@ -734,7 +734,7 @@
+@@ -735,7 +735,7 @@
              sage: S = singular.ring(0, ('x'))
              sage: loads(dumps(S))
              polynomial ring, over a field, global ordering
diff --git a/debian/patches/u1-fix-proper-scipy-rtol.patch b/debian/patches/u1-fix-proper-scipy-rtol.patch
index b282c35..b743313 100644
--- a/debian/patches/u1-fix-proper-scipy-rtol.patch
+++ b/debian/patches/u1-fix-proper-scipy-rtol.patch
@@ -8,7 +8,7 @@ Forwarded: Bug: https://trac.sagemath.org/ticket/22439
 This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
 --- a/sage/src/sage/numerical/optimize.py
 +++ b/sage/src/sage/numerical/optimize.py
-@@ -15,8 +15,11 @@
+@@ -16,8 +16,11 @@
  from sage.modules.free_module_element import vector
  from sage.rings.real_double import RDF
  
@@ -23,7 +23,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
      (or `[b,a]`) if possible, where ``f`` is a function in the one variable.
 --- a/sage/src/sage/symbolic/expression.pyx
 +++ b/sage/src/sage/symbolic/expression.pyx
-@@ -11012,7 +11012,7 @@
+@@ -11118,7 +11118,7 @@
              ret = ret[0]
          return ret
  
@@ -32,7 +32,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
          """
          Numerically find a root of self on the closed interval [a,b] (or
          [b,a]) if possible, where self is a function in the one variable.
-@@ -11128,7 +11128,7 @@
+@@ -11234,7 +11234,7 @@
          """
          if is_a_relational(self._gobj) and self.operator() is not operator.eq:
              raise ValueError("Symbolic equation must be an equality.")
@@ -41,7 +41,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
          if self.number_of_arguments() == 0:
              if bool(self == 0):
                  return a
-@@ -11137,7 +11137,7 @@
+@@ -11243,7 +11243,7 @@
          elif self.number_of_arguments() == 1:
              f = self._fast_float_(self.default_variable())
              return find_root(f, a=a, b=b, xtol=xtol,
diff --git a/debian/patches/u1-fix-use-lexists-not-exists.patch b/debian/patches/u1-fix-use-lexists-not-exists.patch
index ebf7407..3a08a27 100644
--- a/debian/patches/u1-fix-use-lexists-not-exists.patch
+++ b/debian/patches/u1-fix-use-lexists-not-exists.patch
@@ -6,7 +6,7 @@ Bug: https://trac.sagemath.org/ticket/22438
 This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
 --- a/sage/src/sage_setup/docbuild/ext/multidocs.py
 +++ b/sage/src/sage_setup/docbuild/ext/multidocs.py
-@@ -283,7 +283,7 @@
+@@ -284,7 +284,7 @@
              app.builder.info(bold('linking _static directory.'))
              static_dir = os.path.join(app.builder.outdir, '_static')
              master_static_dir = os.path.join('..', '_static')
diff --git a/debian/patches/u1-version-ecm-7.patch b/debian/patches/u1-version-ecm-7.patch
index e508226..2702240 100644
--- a/debian/patches/u1-version-ecm-7.patch
+++ b/debian/patches/u1-version-ecm-7.patch
@@ -4,7 +4,7 @@ Bug: https://trac.sagemath.org/ticket/20385
 
 --- a/sage/src/sage/interfaces/ecm.py
 +++ b/sage/src/sage/interfaces/ecm.py
-@@ -140,9 +140,6 @@
+@@ -141,9 +141,6 @@
          - ``ve`` -- integer `n`. Verbosely show short (`< n`
            character) expressions on each loop
  
@@ -14,7 +14,7 @@ Bug: https://trac.sagemath.org/ticket/20385
          - ``B2scale`` -- integer. Multiplies the default B2 value
  
          - ``go`` -- integer. Preload with group order val, which can
-@@ -395,15 +392,15 @@
+@@ -396,15 +393,15 @@
              if m is not None:
                  factor = m.group('factor')
                  primality = m.group('primality')
@@ -34,7 +34,7 @@ Bug: https://trac.sagemath.org/ticket/20385
                  # assert len(result) == 2
                  return result
          raise ValueError('failed to parse ECM output')
-@@ -500,7 +497,6 @@
+@@ -501,7 +498,6 @@
          if factor_digits is not None:
              B1 = self.recommended_B1(factor_digits)
          kwds['one'] = True
@@ -42,7 +42,7 @@ Bug: https://trac.sagemath.org/ticket/20385
          cmd = self._make_cmd(B1, None, kwds)
          out = self._run_ecm(cmd, n)
          return self._parse_output(n, out)
-@@ -832,8 +828,8 @@
+@@ -833,8 +829,8 @@
  Step 1 took 12ms
  Step 2 took 17ms
  ********** Factor found in step 2: 79792266297612017
@@ -53,7 +53,7 @@ Bug: https://trac.sagemath.org/ticket/20385
  """
  
  TEST_ECM_OUTPUT_2 = """
-@@ -843,8 +839,8 @@
+@@ -844,8 +840,8 @@
  Step 1 took 2ms
  Step 2 took 3ms
  ********** Factor found in step 2: 179424673
@@ -64,7 +64,7 @@ Bug: https://trac.sagemath.org/ticket/20385
  """
  
  TEST_ECM_OUTPUT_3 = """
-@@ -862,7 +858,7 @@
+@@ -863,7 +859,7 @@
  Step 1 took 5ms
  Step 2 took 4ms
  ********** Factor found in step 2: 197002597249
@@ -73,7 +73,7 @@ Bug: https://trac.sagemath.org/ticket/20385
  Composite cofactor 339872432034468861533158743041639097889948066859 has 48 digits
  """
  
-@@ -874,5 +870,5 @@
+@@ -875,5 +871,5 @@
  Step 2 took 2ms
  ********** Factor found in step 2: 265748496095531068869578877937
  Found composite factor of 30 digits: 265748496095531068869578877937
diff --git a/debian/patches/u1-version-pbori-boost1.62-hashes.patch b/debian/patches/u1-version-pbori-boost1.62-hashes.patch
index c6c58ea..4d8a34f 100644
--- a/debian/patches/u1-version-pbori-boost1.62-hashes.patch
+++ b/debian/patches/u1-version-pbori-boost1.62-hashes.patch
@@ -11,7 +11,7 @@ Forwarded: https://trac.sagemath.org/ticket/22243
 
 --- a/sage/src/sage/rings/polynomial/pbori.pyx
 +++ b/sage/src/sage/rings/polynomial/pbori.pyx
-@@ -2340,8 +2340,8 @@
+@@ -2378,8 +2378,8 @@
              sage: B.<x,y> = BooleanPolynomialRing()
              sage: m = x.lm()
              sage: m.stable_hash()
@@ -22,7 +22,7 @@ Forwarded: https://trac.sagemath.org/ticket/22243
  
          .. NOTE::
  
-@@ -4648,8 +4648,8 @@
+@@ -4652,8 +4652,8 @@
  
              sage: B.<x,y> = BooleanPolynomialRing()
              sage: x.stable_hash()
@@ -33,7 +33,7 @@ Forwarded: https://trac.sagemath.org/ticket/22243
  
          .. NOTE::
  
-@@ -5732,8 +5732,8 @@
+@@ -5747,8 +5747,8 @@
              sage: B.<x,y> = BooleanPolynomialRing()
              sage: s = x.set()
              sage: s.stable_hash()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/sagemath.git



More information about the debian-science-commits mailing list