From 1a0bd1afc6aa8db0811956401af3a7e1544b7a63 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Sun, 23 Sep 2018 08:28:54 -0600 Subject: [PATCH] Update to sagemath 8.3 (bz 1612867). Also: - Drop -lrslib, -gap-hap, and -flask patches. - Drop obsolete scriplets to fix F24 to F25 upgrade (bz 1594429 and 1618934). - Drop obsolete mktexlsr invocations. - Fix more Singular paths. - Fix still more uses of /usr/bin/env. - Drop disallow/dissallow fixup for cython; now fixed in cython itself. --- .gitignore | 18 +--- sagemath-4ti2.patch | 6 +- sagemath-arb.patch | 58 +++++------ sagemath-cremona.patch | 6 +- sagemath-extensions.patch | 12 +-- sagemath-fes.patch | 6 +- sagemath-flask.patch | 201 -------------------------------------- sagemath-gap-hap.patch | 23 ----- sagemath-includes.patch | 32 +++--- sagemath-jmol.patch | 8 +- sagemath-libgap.patch | 57 ++++++----- sagemath-lrslib.patch | 13 --- sagemath-maxima.patch | 16 +-- sagemath-mpfr.patch | 18 ++-- sagemath-nauty.patch | 16 +-- sagemath-nofstring.patch | 18 ++-- sagemath-qepcad.patch | 12 +-- sagemath-readonly.patch | 7 +- sagemath-rpmbuild.patch | 18 ++-- sagemath-sagedoc.patch | 22 ++--- sagemath-sagenb.patch | 18 ++-- sagemath-scripts.patch | 87 +++++++++-------- sagemath.spec | 136 ++++++++++++-------------- sources | 2 +- 24 files changed, 285 insertions(+), 525 deletions(-) delete mode 100644 sagemath-flask.patch delete mode 100644 sagemath-gap-hap.patch delete mode 100644 sagemath-lrslib.patch diff --git a/.gitignore b/.gitignore index 139bf42..47d07fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1 @@ -/sage-5.8.tar -/sage-5.9.tar -/sage-5.10.tar -/sage-5.12.tar -/sage-5.13.tar -/sage-6.1.1.tar.gz -/sage-6.2.tar.gz -/sage-6.3.tar.gz -/sage-6.4.1.tar.gz -/sage-6.5.tar.gz -/sage-6.8.tar.gz -/sage-7.3.tar.gz -/sage-7.4.tar.gz -/sage-7.5.1.tar.gz -/sage-7.6.tar.gz -/sage-8.0.tar.gz -/sage-8.2.tar.gz +/sage-*.tar.gz diff --git a/sagemath-4ti2.patch b/sagemath-4ti2.patch index 7caaeff..7ed50a2 100644 --- a/sagemath-4ti2.patch +++ b/sagemath-4ti2.patch @@ -1,6 +1,6 @@ diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py ---- src/sage/sandpiles/sandpile.py.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage/sandpiles/sandpile.py 2018-05-16 13:28:24.939025388 -0600 +--- src/sage/sandpiles/sandpile.py.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/sandpiles/sandpile.py 2018-08-29 08:47:29.728055776 -0600 @@ -342,9 +342,6 @@ from sage.arith.all import falling_facto from sage.rings.all import Integer, PolynomialRing, QQ, ZZ from sage.symbolic.all import I, pi @@ -11,7 +11,7 @@ diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py class Sandpile(DiGraph): """ Class for Dhar's abelian sandpile model. -@@ -5199,7 +5196,7 @@ class SandpileDivisor(dict): +@@ -5197,7 +5194,7 @@ class SandpileDivisor(dict): sign_file.close() # compute try: diff --git a/sagemath-arb.patch b/sagemath-arb.patch index 7ad3797..85d7c48 100644 --- a/sagemath-arb.patch +++ b/sagemath-arb.patch @@ -1,18 +1,6 @@ -diff -up src/sage/libs/arb/acb.pxd.orig src/sage/libs/arb/acb.pxd ---- src/sage/libs/arb/acb.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/acb.pxd 2018-05-16 13:59:18.715290712 -0600 -@@ -3,7 +3,7 @@ - from sage.libs.arb.types cimport * - from sage.libs.flint.types cimport fmpz_t, fmpq_t - --cdef extern from "acb.h": -+cdef extern from "arb/acb.h": - - arb_t acb_realref(acb_t x) - arb_t acb_imagref(acb_t x) diff -up src/sage/libs/arb/acb_hypgeom.pxd.orig src/sage/libs/arb/acb_hypgeom.pxd ---- src/sage/libs/arb/acb_hypgeom.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/acb_hypgeom.pxd 2018-05-16 13:59:18.717290684 -0600 +--- src/sage/libs/arb/acb_hypgeom.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/acb_hypgeom.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -2,7 +2,7 @@ from sage.libs.arb.types cimport * @@ -23,10 +11,10 @@ diff -up src/sage/libs/arb/acb_hypgeom.pxd.orig src/sage/libs/arb/acb_hypgeom.px long acb_hypgeom_pfq_choose_n(acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long prec) void acb_hypgeom_pfq_sum_forward(acb_t s, acb_t t, acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long n, long prec) diff -up src/sage/libs/arb/acb_mat.pxd.orig src/sage/libs/arb/acb_mat.pxd ---- src/sage/libs/arb/acb_mat.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/acb_mat.pxd 2018-05-16 13:59:18.717290684 -0600 +--- src/sage/libs/arb/acb_mat.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/acb_mat.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -1,6 +1,6 @@ - from sage.libs.arb.types cimport acb_t, acb_mat_t + from sage.libs.arb.types cimport acb_t, acb_mat_t, acb_poly_t -cdef extern from "acb_mat.h": +cdef extern from "arb/acb_mat.h": @@ -34,8 +22,8 @@ diff -up src/sage/libs/arb/acb_mat.pxd.orig src/sage/libs/arb/acb_mat.pxd unsigned int acb_mat_ncols(acb_mat_t mat) acb_t acb_mat_entry(acb_mat_t mat, unsigned long i, unsigned long j) diff -up src/sage/libs/arb/acb_modular.pxd.orig src/sage/libs/arb/acb_modular.pxd ---- src/sage/libs/arb/acb_modular.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/acb_modular.pxd 2018-05-16 13:59:18.718290670 -0600 +--- src/sage/libs/arb/acb_modular.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/acb_modular.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -3,7 +3,7 @@ from sage.libs.arb.types cimport * from sage.libs.flint.types cimport fmpz_poly_t @@ -46,8 +34,8 @@ diff -up src/sage/libs/arb/acb_modular.pxd.orig src/sage/libs/arb/acb_modular.px void acb_modular_j(acb_t z, const acb_t tau, long prec) void acb_modular_eta(acb_t z, const acb_t tau, long prec) diff -up src/sage/libs/arb/acb_poly.pxd.orig src/sage/libs/arb/acb_poly.pxd ---- src/sage/libs/arb/acb_poly.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/acb_poly.pxd 2018-05-16 13:59:18.719290655 -0600 +--- src/sage/libs/arb/acb_poly.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/acb_poly.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -3,7 +3,7 @@ from sage.libs.arb.types cimport * from sage.libs.flint.types cimport fmpz_poly_t, fmpq_poly_t @@ -57,9 +45,21 @@ diff -up src/sage/libs/arb/acb_poly.pxd.orig src/sage/libs/arb/acb_poly.pxd void acb_poly_init(acb_poly_t poly) void acb_poly_clear(acb_poly_t poly) void acb_poly_fit_length(acb_poly_t poly, long len) +diff -up src/sage/libs/arb/acb.pxd.orig src/sage/libs/arb/acb.pxd +--- src/sage/libs/arb/acb.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/acb.pxd 2018-08-29 10:43:48.571623007 -0600 +@@ -3,7 +3,7 @@ + from sage.libs.arb.types cimport * + from sage.libs.flint.types cimport fmpz_t, fmpq_t + +-cdef extern from "acb.h": ++cdef extern from "arb/acb.h": + + arb_t acb_realref(acb_t x) + arb_t acb_imagref(acb_t x) diff -up src/sage/libs/arb/arf.pxd.orig src/sage/libs/arb/arf.pxd ---- src/sage/libs/arb/arf.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/arf.pxd 2018-05-16 13:59:18.716290698 -0600 +--- src/sage/libs/arb/arf.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/arf.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -5,7 +5,7 @@ from sage.libs.gmp.types cimport mpz_t from sage.libs.flint.types cimport fmpz_t from sage.libs.mpfr.types cimport mpfr_t, mpfr_rnd_t @@ -70,8 +70,8 @@ diff -up src/sage/libs/arb/arf.pxd.orig src/sage/libs/arb/arf.pxd void arf_clear(arf_t x) void arf_zero(arf_t x) diff -up src/sage/libs/arb/bernoulli.pxd.orig src/sage/libs/arb/bernoulli.pxd ---- src/sage/libs/arb/bernoulli.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/bernoulli.pxd 2018-05-16 13:59:18.718290670 -0600 +--- src/sage/libs/arb/bernoulli.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/bernoulli.pxd 2018-08-29 10:43:48.572622995 -0600 @@ -2,5 +2,5 @@ from ..flint.types cimport fmpq_t, ulong @@ -80,8 +80,8 @@ diff -up src/sage/libs/arb/bernoulli.pxd.orig src/sage/libs/arb/bernoulli.pxd +cdef extern from "arb/bernoulli.h": void bernoulli_fmpq_ui(fmpq_t b, ulong n) diff -up src/sage/libs/arb/mag.pxd.orig src/sage/libs/arb/mag.pxd ---- src/sage/libs/arb/mag.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/mag.pxd 2018-05-16 13:59:18.717290684 -0600 +--- src/sage/libs/arb/mag.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/mag.pxd 2018-08-29 10:43:48.573622983 -0600 @@ -3,7 +3,7 @@ from sage.libs.arb.types cimport * from sage.libs.flint.types cimport fmpz_t, fmpq_t @@ -92,8 +92,8 @@ diff -up src/sage/libs/arb/mag.pxd.orig src/sage/libs/arb/mag.pxd void mag_clear(mag_t x) void mag_init_set(mag_t x, const mag_t y) diff -up src/sage/libs/arb/types.pxd.orig src/sage/libs/arb/types.pxd ---- src/sage/libs/arb/types.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/arb/types.pxd 2018-05-16 13:59:18.719290655 -0600 +--- src/sage/libs/arb/types.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/arb/types.pxd 2018-08-29 10:43:48.573622983 -0600 @@ -1,4 +1,4 @@ -cdef extern from "mag.h": +cdef extern from "arb/mag.h": diff --git a/sagemath-cremona.patch b/sagemath-cremona.patch index 87591e0..053d412 100644 --- a/sagemath-cremona.patch +++ b/sagemath-cremona.patch @@ -1,6 +1,6 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py ---- src/sage/databases/cremona.py.orig 2016-10-20 08:11:03.521544935 -0400 -+++ src/sage/databases/cremona.py 2016-10-20 08:11:13.681545324 -0400 +--- src/sage/databases/cremona.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/databases/cremona.py 2018-08-29 08:48:43.090148635 -0600 @@ -53,7 +53,6 @@ from sage.misc.prandom import randint import sage.schemes.elliptic_curves.constructor as elliptic @@ -9,7 +9,7 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py from sage.env import SAGE_SHARE from sage.misc.all import walltime -@@ -824,14 +823,6 @@ class MiniCremonaDatabase(SQLDatabase): +@@ -825,14 +824,6 @@ class MiniCremonaDatabase(SQLDatabase): if N < self.largest_conductor(): message = "There is no elliptic curve with label " + label \ + " in the database" diff --git a/sagemath-extensions.patch b/sagemath-extensions.patch index 6758840..09b226c 100644 --- a/sagemath-extensions.patch +++ b/sagemath-extensions.patch @@ -1,6 +1,6 @@ diff -up src/module_list.py.orig src/module_list.py ---- src/module_list.py.orig 2018-05-05 16:21:22.000000000 -0600 -+++ src/module_list.py 2018-05-18 07:46:16.531947286 -0600 +--- src/module_list.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/module_list.py 2018-08-29 08:34:50.846439644 -0600 @@ -358,16 +358,16 @@ ext_modules = [ Extension('sage.graphs.matchpoly', sources = ['sage/graphs/matchpoly.pyx']), @@ -42,7 +42,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.graphs.spanning_tree', sources = ['sage/graphs/spanning_tree.pyx']), -@@ -454,21 +454,20 @@ ext_modules = [ +@@ -461,21 +461,20 @@ ext_modules = [ ## ################################ @@ -72,7 +72,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.libs.flint.flint', sources = ["sage/libs/flint/flint.pyx"], -@@ -488,22 +487,22 @@ ext_modules = [ +@@ -495,22 +494,22 @@ ext_modules = [ Extension('sage.libs.gmp.pylong', sources = ['sage/libs/gmp/pylong.pyx']), @@ -109,7 +109,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('*', ['sage/libs/linbox/*.pyx']), -@@ -844,10 +843,10 @@ ext_modules = [ +@@ -843,10 +842,10 @@ ext_modules = [ Extension('sage.matrix.matrix_window', sources = ['sage/matrix/matrix_window.pyx']), @@ -124,7 +124,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.matrix.misc', sources = ['sage/matrix/misc.pyx']), -@@ -1024,26 +1023,25 @@ ext_modules = [ +@@ -1023,26 +1022,25 @@ ext_modules = [ Extension("sage.numerical.backends.interactivelp_backend", ["sage/numerical/backends/interactivelp_backend.pyx"]), diff --git a/sagemath-fes.patch b/sagemath-fes.patch index 7fbb79d..00cef93 100644 --- a/sagemath-fes.patch +++ b/sagemath-fes.patch @@ -1,7 +1,7 @@ diff -up src/module_list.py.orig src/module_list.py ---- src/module_list.py.orig 2018-05-18 09:34:28.942183178 -0600 -+++ src/module_list.py 2018-05-18 09:35:15.210542150 -0600 -@@ -464,10 +464,10 @@ ext_modules = [ +--- src/module_list.py.orig 2018-08-29 08:35:19.927079956 -0600 ++++ src/module_list.py 2018-08-29 10:41:05.127643255 -0600 +@@ -471,10 +471,10 @@ ext_modules = [ Extension('sage.libs.ecl', sources = ["sage/libs/ecl.pyx"]), diff --git a/sagemath-flask.patch b/sagemath-flask.patch deleted file mode 100644 index e6f8061..0000000 --- a/sagemath-flask.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- build/pkgs/sagenb/src/sagenb/flask_version/admin.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/admin.py 2018-06-15 16:07:44.250325912 -0600 -@@ -1,7 +1,7 @@ - import os - from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app - from .decorators import login_required, admin_required, with_lock --from flask.ext.babel import Babel, gettext, ngettext, lazy_gettext -+from flask_babel import Babel, gettext, ngettext, lazy_gettext - _ = gettext - - admin = Blueprint('admin', 'sagenb.flask_version.admin') ---- build/pkgs/sagenb/src/sagenb/flask_version/authentication.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/authentication.py 2018-06-15 16:06:44.083100080 -0600 -@@ -2,7 +2,7 @@ import os - import random - from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app - from .decorators import with_lock --from flask.ext.babel import gettext, ngettext, lazy_gettext -+from flask_babel import gettext, ngettext, lazy_gettext - _ = gettext - - authentication = Blueprint('authentication', ---- build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig 2018-06-15 13:17:46.940191938 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/base.py 2018-06-15 16:09:19.512516887 -0600 -@@ -8,11 +8,11 @@ from flask import Flask, Blueprint, url_ - from .decorators import login_required, guest_or_login_required, with_lock - from .decorators import global_lock - --from flask.ext.autoindex import AutoIndex -+from flask_autoindex import AutoIndex - from sage.env import SAGE_SRC, SAGE_DOC - SRC = os.path.join(SAGE_SRC, 'sage') --from flask.ext.openid import OpenID --from flask.ext.babel import Babel, gettext, ngettext, lazy_gettext, get_locale -+from flask_openid import OpenID -+from flask_babel import Babel, gettext, ngettext, lazy_gettext, get_locale - from sagenb.misc.misc import SAGENB_ROOT, DATA, translations_path, N_, nN_, unicode_str - from json import dumps - from sagenb.notebook.cell import number_of_rows ---- build/pkgs/sagenb/src/sagenb/flask_version/decorators.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/decorators.py 2018-06-15 16:09:33.447105994 -0600 -@@ -1,6 +1,6 @@ - from functools import wraps - from flask import Flask, url_for, render_template, request, session, redirect, g, current_app --from flask.ext.babel import Babel, gettext, ngettext, lazy_gettext -+from flask_babel import Babel, gettext, ngettext, lazy_gettext - _ = gettext - - from threading import Lock ---- build/pkgs/sagenb/src/sagenb/flask_version/doc.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/doc.py 2018-06-15 16:09:43.966795797 -0600 -@@ -18,7 +18,7 @@ import os - from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app - from .decorators import login_required, guest_or_login_required - --from flask.ext.babel import gettext, ngettext, lazy_gettext -+from flask_babel import gettext, ngettext, lazy_gettext - _ = gettext - - doc = Blueprint('doc', 'sagenb.flask_version.doc') ---- build/pkgs/sagenb/src/sagenb/flask_version/settings.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/settings.py 2018-06-15 16:09:55.078468143 -0600 -@@ -2,7 +2,7 @@ import os - import random - from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app - from .decorators import login_required, with_lock --from flask.ext.babel import gettext, ngettext, lazy_gettext -+from flask_babel import gettext, ngettext, lazy_gettext - _ = gettext - - ---- build/pkgs/sagenb/src/sagenb/flask_version/worksheet_listing.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/worksheet_listing.py 2018-06-15 16:07:22.393970396 -0600 -@@ -5,7 +5,7 @@ import os - import urllib, urlparse - from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app - from .decorators import login_required, guest_or_login_required, with_lock --from flask.ext.babel import Babel, gettext, ngettext, lazy_gettext -+from flask_babel import Babel, gettext, ngettext, lazy_gettext - _ = gettext - - worksheet_listing = Blueprint('worksheet_listing', ---- build/pkgs/sagenb/src/sagenb/flask_version/worksheet.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/flask_version/worksheet.py 2018-06-15 16:07:04.820488591 -0600 -@@ -8,7 +8,7 @@ from flask import Blueprint, make_respon - from .decorators import login_required, with_lock - from collections import defaultdict - from werkzeug.utils import secure_filename --from flask.ext.babel import Babel, gettext, ngettext, lazy_gettext -+from flask_babel import Babel, gettext, ngettext, lazy_gettext - _ = gettext - - from sagenb.notebook.interact import INTERACT_UPDATE_PREFIX ---- build/pkgs/sagenb/src/sagenb/notebook/challenge.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/challenge.py 2018-06-15 16:10:52.222783112 -0600 -@@ -32,7 +32,7 @@ from six.moves.urllib.parse import urlen - from six.moves.urllib.request import urlopen, Request - - from sagenb.notebook.template import template --from flask.ext.babel import gettext, lazy_gettext -+from flask_babel import gettext, lazy_gettext - _ = lazy_gettext - - class ChallengeResponse(object): ---- build/pkgs/sagenb/src/sagenb/notebook/conf.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/conf.py 2018-06-15 16:10:52.223783083 -0600 -@@ -10,7 +10,7 @@ from __future__ import absolute_import - # The full text of the GPL is available at: - # http://www.gnu.org/licenses/ - ############################################################################# --from flask.ext.babel import gettext, lazy_gettext -+from flask_babel import gettext, lazy_gettext - - POS = 'pos' - DESC = 'desc' ---- build/pkgs/sagenb/src/sagenb/notebook/notebook.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/notebook.py 2018-06-15 16:10:52.236782699 -0600 -@@ -51,7 +51,7 @@ from . import server_conf # server conf - from . import user_conf # user configuration - from . import user # users - from .template import template, prettify_time_ago --from flask.ext.babel import gettext, lazy_gettext -+from flask_babel import gettext, lazy_gettext - - try: - # sage is installed ---- build/pkgs/sagenb/src/sagenb/notebook/register.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/register.py 2018-06-15 16:10:52.236782699 -0600 -@@ -12,7 +12,7 @@ - """ - Helper functions dealing with the verification of user - """ --from flask.ext.babel import gettext as _ -+from flask_babel import gettext as _ - - def build_msg(key, username, addr, port, secure): - url_prefix = "https" if secure else "http" ---- build/pkgs/sagenb/src/sagenb/notebook/server_conf.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/server_conf.py 2018-06-15 16:10:52.238782641 -0600 -@@ -8,7 +8,7 @@ from . import conf - from .conf import (POS, DESC, GROUP, TYPE, CHOICES, T_BOOL, T_INTEGER, - T_CHOICE, T_REAL, T_COLOR, T_STRING, T_LIST, T_INFO) - from sagenb.misc.misc import get_languages, N_ --from flask.ext.babel import gettext, lazy_gettext -+from flask_babel import gettext, lazy_gettext - _ = lazy_gettext - - defaults = {'word_wrap_cols':72, ---- build/pkgs/sagenb/src/sagenb/notebook/template.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/template.py 2018-06-15 16:10:52.238782641 -0600 -@@ -21,7 +21,7 @@ import jinja2 - import os, re, sys - - from sagenb.misc.misc import SAGE_VERSION, DATA --from flask.ext.babel import gettext, ngettext, lazy_gettext -+from flask_babel import gettext, ngettext, lazy_gettext - from flask import current_app as app - - if 'SAGENB_TEMPLATE_PATH' in os.environ: ---- build/pkgs/sagenb/src/sagenb/notebook/tutorial.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/tutorial.py 2018-06-15 16:10:52.239782611 -0600 -@@ -348,7 +348,7 @@ the "save" command), and get back to whe - - ##################################### - --from flask.ext.babel import lazy_gettext as _ -+from flask_babel import lazy_gettext as _ - - notebook_help = [ - (_('Find Help and Documentation'), ---- build/pkgs/sagenb/src/sagenb/notebook/user_conf.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/user_conf.py 2018-06-15 16:10:52.239782611 -0600 -@@ -8,7 +8,7 @@ from . import server_conf - from .conf import (Configuration, POS, DESC, GROUP, TYPE, CHOICES, T_BOOL, - T_INTEGER, T_CHOICE, T_REAL, T_COLOR, T_STRING, T_LIST) - from sagenb.misc.misc import SAGENB_ROOT, get_languages --from flask.ext.babel import lazy_gettext -+from flask_babel import lazy_gettext - - defaults = {'max_history_length':1000, - 'default_system':'sage', ---- build/pkgs/sagenb/src/sagenb/notebook/worksheet.py.orig 2017-06-02 16:24:20.000000000 -0600 -+++ build/pkgs/sagenb/src/sagenb/notebook/worksheet.py 2018-06-15 16:10:52.248782346 -0600 -@@ -57,7 +57,7 @@ from sagenb.misc.format import relocate_ - # Imports specifically relevant to the sage notebook - from .cell import Cell, TextCell - from .template import template, clean_name, prettify_time_ago --from flask.ext.babel import gettext, lazy_gettext -+from flask_babel import gettext, lazy_gettext - _ = gettext - - # Set some constants that will be used for regular expressions below. -@@ -4527,7 +4527,7 @@ def convert_time_to_string(t): - Converts ``t`` (in Unix time) to a locale-specific string - describing the time and date. - """ -- from flask.ext.babel import format_datetime -+ from flask_babel import format_datetime - import datetime, time - try: - return format_datetime(datetime.datetime.fromtimestamp(float(t))) diff --git a/sagemath-gap-hap.patch b/sagemath-gap-hap.patch deleted file mode 100644 index 08816e6..0000000 --- a/sagemath-gap-hap.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up src/sage/groups/perm_gps/permgroup.py.orig src/sage/groups/perm_gps/permgroup.py ---- src/sage/groups/perm_gps/permgroup.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/groups/perm_gps/permgroup.py 2018-05-16 13:38:07.049015293 -0600 -@@ -166,6 +166,10 @@ def load_hap(): - gap.load_package("hap") - except Exception: - gap.load_package("hap") -+ try: -+ gap.load_package("hap") -+ except Exception: -+ raise RuntimeError("gap-hap package failed to load.") - - def hap_decorator(f): - """ -@@ -191,8 +195,6 @@ def hap_decorator(f): - """ - @wraps(f) - def wrapped(self, n, p=0): -- if not is_package_installed('gap_packages'): -- raise PackageNotFoundError("gap_packages") - load_hap() - from sage.arith.all import is_prime - if not (p == 0 or is_prime(p)): diff --git a/sagemath-includes.patch b/sagemath-includes.patch index ea0cc17..91bfef3 100644 --- a/sagemath-includes.patch +++ b/sagemath-includes.patch @@ -1,6 +1,6 @@ diff -up src/module_list.py.orig src/module_list.py ---- src/module_list.py.orig 2018-05-22 15:41:19.892745329 -0600 -+++ src/module_list.py 2018-05-22 15:42:40.289863491 -0600 +--- src/module_list.py.orig 2018-08-29 10:41:05.127643255 -0600 ++++ src/module_list.py 2018-08-29 10:44:16.376279329 -0600 @@ -45,6 +45,9 @@ zlib_libs = zlib_pc['libraries'] zlib_library_dirs = zlib_pc['library_dirs'] zlib_include_dirs = zlib_pc['include_dirs'] @@ -36,7 +36,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('*', sources = ['sage/algebras/finite_dimensional_algebras/*.pyx']), -@@ -519,7 +531,8 @@ ext_modules = [ +@@ -526,7 +538,8 @@ ext_modules = [ [])), Extension('sage.libs.lrcalc.lrcalc', @@ -46,7 +46,7 @@ diff -up src/module_list.py.orig src/module_list.py OptionalExtension("sage.libs.meataxe", sources = ['sage/libs/meataxe.pyx'], -@@ -541,23 +554,28 @@ ext_modules = [ +@@ -548,23 +561,28 @@ ext_modules = [ sources = ['sage/libs/readline.pyx'], libraries = ['readline']), @@ -80,7 +80,7 @@ diff -up src/module_list.py.orig src/module_list.py ################################### ## -@@ -565,7 +583,8 @@ ext_modules = [ +@@ -572,7 +590,8 @@ ext_modules = [ ## ################################### @@ -90,7 +90,7 @@ diff -up src/module_list.py.orig src/module_list.py ################################### ## -@@ -745,7 +764,8 @@ ext_modules = [ +@@ -744,7 +763,8 @@ ext_modules = [ Extension("sage.matrix.matrix_complex_ball_dense", ["sage/matrix/matrix_complex_ball_dense.pyx"], @@ -100,7 +100,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.matrix.matrix_complex_double_dense', sources = ['sage/matrix/matrix_complex_double_dense.pyx']), -@@ -753,6 +773,7 @@ ext_modules = [ +@@ -752,6 +772,7 @@ ext_modules = [ Extension('sage.matrix.matrix_cyclo_dense', sources = ['sage/matrix/matrix_cyclo_dense.pyx'], language = "c++", @@ -108,7 +108,7 @@ diff -up src/module_list.py.orig src/module_list.py libraries=['ntl']), Extension('sage.matrix.matrix_gap', -@@ -815,6 +836,7 @@ ext_modules = [ +@@ -814,6 +835,7 @@ ext_modules = [ sources = ['sage/matrix/matrix_modn_sparse.pyx']), Extension('sage.matrix.matrix_mpolynomial_dense', @@ -116,7 +116,7 @@ diff -up src/module_list.py.orig src/module_list.py sources = ['sage/matrix/matrix_mpolynomial_dense.pyx']), Extension('sage.matrix.matrix_polynomial_dense', -@@ -1112,7 +1134,8 @@ ext_modules = [ +@@ -1111,7 +1133,8 @@ ext_modules = [ language = 'c++'), Extension("sage.rings.complex_arb", @@ -126,7 +126,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.rings.complex_double', sources = ['sage/rings/complex_double.pyx'], -@@ -1182,7 +1205,8 @@ ext_modules = [ +@@ -1181,7 +1204,8 @@ ext_modules = [ sources = ['sage/rings/real_interval_absolute.pyx']), Extension("sage.rings.real_arb", @@ -136,7 +136,7 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.rings.real_lazy', sources = ['sage/rings/real_lazy.pyx']), -@@ -1265,6 +1289,7 @@ ext_modules = [ +@@ -1264,6 +1288,7 @@ ext_modules = [ Extension('sage.rings.number_field.number_field_element_quadratic', sources = ['sage/rings/number_field/number_field_element_quadratic.pyx'], @@ -144,7 +144,7 @@ diff -up src/module_list.py.orig src/module_list.py libraries=['ntl'], language = 'c++'), -@@ -1387,12 +1412,15 @@ ext_modules = [ +@@ -1386,12 +1411,15 @@ ext_modules = [ sources = ['sage/rings/polynomial/multi_polynomial.pyx']), Extension('sage.rings.polynomial.multi_polynomial_ideal_libsingular', @@ -159,8 +159,8 @@ diff -up src/module_list.py.orig src/module_list.py + include_dirs = singular_incs, sources = ['sage/rings/polynomial/multi_polynomial_libsingular.pyx']), - Extension('sage.rings.polynomial.multi_polynomial_ring_generic', -@@ -1405,7 +1433,8 @@ ext_modules = [ + Extension('sage.rings.polynomial.multi_polynomial_ring_base', +@@ -1404,7 +1432,8 @@ ext_modules = [ sources = ['sage/rings/polynomial/polydict.pyx']), Extension('sage.rings.polynomial.polynomial_complex_arb', @@ -171,8 +171,8 @@ diff -up src/module_list.py.orig src/module_list.py Extension('sage.rings.polynomial.polynomial_compiled', sources = ['sage/rings/polynomial/polynomial_compiled.pyx']), diff -up src/setup.py.orig src/setup.py ---- src/setup.py.orig 2018-05-22 15:41:19.893745318 -0600 -+++ src/setup.py 2018-05-22 15:41:27.805658536 -0600 +--- src/setup.py.orig 2018-08-29 08:35:19.955079610 -0600 ++++ src/setup.py 2018-08-29 10:44:16.376279329 -0600 @@ -85,6 +85,7 @@ except KeyError: # search for dependencies and add to gcc -I diff --git a/sagemath-jmol.patch b/sagemath-jmol.patch index 41efb18..b3f89ed 100644 --- a/sagemath-jmol.patch +++ b/sagemath-jmol.patch @@ -1,6 +1,6 @@ diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py ---- src/sage/interfaces/jmoldata.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/interfaces/jmoldata.py 2018-05-16 13:30:58.803927423 -0600 +--- src/sage/interfaces/jmoldata.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/interfaces/jmoldata.py 2018-08-29 08:47:39.203938604 -0600 @@ -148,8 +148,6 @@ class JmolData(SageObject): sage: print(os.path.exists(testfile)) # optional -- java True @@ -8,9 +8,9 @@ diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py - # Set up paths, file names and scripts - jmolpath = os.path.join(SAGE_LOCAL, "share", "jmol", "JmolData.jar") target_native = targetfile - import sys + if sys.platform == 'cygwin': -@@ -174,10 +172,8 @@ class JmolData(SageObject): +@@ -173,10 +171,8 @@ class JmolData(SageObject): env = dict(os.environ) env['LC_ALL'] = 'C' env['LANG'] = 'C' diff --git a/sagemath-libgap.patch b/sagemath-libgap.patch index 430e7dd..1ba2a10 100644 --- a/sagemath-libgap.patch +++ b/sagemath-libgap.patch @@ -1,6 +1,30 @@ +diff -up src/sage/env.py.orig src/sage/env.py +--- src/sage/env.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/env.py 2018-08-29 11:25:26.833962117 -0600 +@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO + _add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs')) + _add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves')) + _add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes')) +-_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_LOCAL','gap','latest')) ++_add_variable_or_fallback('GAP_ROOT_DIR', opj('usr','lib','gap')) + _add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe')) + + # locate singular shared object +diff -up src/sage/interfaces/gap.py.orig src/sage/interfaces/gap.py +--- src/sage/interfaces/gap.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/interfaces/gap.py 2018-08-29 11:21:43.180584324 -0600 +@@ -197,7 +197,7 @@ import string + + WORKSPACE = gap_workspace_file() + +-GAP_BINARY = os.path.join(SAGE_LOCAL, 'bin', 'gap') ++GAP_BINARY = os.path.join('usr', 'bin', 'gap') + + first_try = True + diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c ---- src/sage/libs/gap/test/main.c.orig 2017-07-21 13:10:16.000000000 -0600 -+++ src/sage/libs/gap/test/main.c 2017-11-24 10:40:06.024865775 -0700 +--- src/sage/libs/gap/test/main.c.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/gap/test/main.c 2018-08-29 10:38:22.512653256 -0600 @@ -22,7 +22,7 @@ void eval(char* cmd) { libgap_start_interaction(cmd); @@ -11,40 +35,29 @@ diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c char* out = libgap_get_output(); libgap_exit(); diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx ---- src/sage/libs/gap/util.pyx.orig 2017-07-21 13:10:16.000000000 -0600 -+++ src/sage/libs/gap/util.pyx 2017-11-24 10:41:12.757621519 -0700 -@@ -22,6 +22,8 @@ from sage.interfaces.gap_workspace impor +--- src/sage/libs/gap/util.pyx.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/gap/util.pyx 2018-08-29 11:32:06.654205922 -0600 +@@ -25,6 +25,8 @@ from sage.cpython.string cimport str_to_ + from sage.interfaces.gap_workspace import prepare_workspace_dir from sage.env import SAGE_LOCAL, GAP_ROOT_DIR - from .element cimport * +import re + ############################################################################ ### Hooking into the GAP memory management ################################# -@@ -160,17 +162,9 @@ def gap_root(): +@@ -164,7 +166,7 @@ def gap_root(): sage: from sage.libs.gap.util import gap_root sage: gap_root() # random output - '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest' + '/usr/lib/gap' """ -- import os.path -- if os.path.exists(GAP_ROOT_DIR): -- return GAP_ROOT_DIR -- print('The gap-4.5.5.spkg (or later) seems to be not installed!') -- gap_sh = open(os.path.join(SAGE_LOCAL, 'bin', 'gap')).read().splitlines() -- gapdir = filter(lambda dir:dir.strip().startswith('GAP_DIR'), gap_sh)[0] -- gapdir = gapdir.split('"')[1] -- gapdir = gapdir.replace('$SAGE_LOCAL', SAGE_LOCAL) -- return gapdir -+ return '/usr/lib/gap' - - - cdef initialize(): -@@ -224,6 +218,7 @@ cdef initialize(): + import os.path + if os.path.exists(GAP_ROOT_DIR): +@@ -232,6 +234,7 @@ cdef initialize(): libgap_initialize(argc, argv) - gap_error_msg = str(libgap_get_output()) + gap_error_msg = char_to_str(libgap_get_output()) libgap_finish_interaction() + gap_error_msg = re.sub(r'#I.*\n?', '', gap_error_msg, flags=re.MULTILINE) if gap_error_msg: diff --git a/sagemath-lrslib.patch b/sagemath-lrslib.patch deleted file mode 100644 index 8212b43..0000000 --- a/sagemath-lrslib.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up src/sage/geometry/polyhedron/base.py.orig src/sage/geometry/polyhedron/base.py ---- src/sage/geometry/polyhedron/base.py.orig 2018-05-16 13:31:55.930138769 -0600 -+++ src/sage/geometry/polyhedron/base.py 2018-05-16 13:35:12.219428900 -0600 -@@ -4281,9 +4281,6 @@ class Polyhedron_base(Element): - - David Avis's lrs program. - """ -- if not is_package_installed('lrslib'): -- raise PackageNotFoundError('lrslib') -- - from sage.misc.temporary_file import tmp_filename - from subprocess import Popen, PIPE - in_str = self.cdd_Vrepresentation() diff --git a/sagemath-maxima.patch b/sagemath-maxima.patch index 94e9d9c..10b1857 100644 --- a/sagemath-maxima.patch +++ b/sagemath-maxima.patch @@ -1,6 +1,6 @@ diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp ---- src/bin/sage-maxima.lisp.orig 2018-05-05 16:21:22.000000000 -0600 -+++ src/bin/sage-maxima.lisp 2018-05-16 13:25:51.499101380 -0600 +--- src/bin/sage-maxima.lisp.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/bin/sage-maxima.lisp 2018-08-29 08:45:21.302643791 -0600 @@ -4,3 +4,8 @@ (setf *prompt-prefix* "") @@ -11,18 +11,18 @@ diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp + *standard-input* (open "/dev/stdin" :direction :input) + *standard-output* (open "/dev/stdout" :direction :output)) diff -up src/sage/interfaces/maxima.py.orig src/sage/interfaces/maxima.py ---- src/sage/interfaces/maxima.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/interfaces/maxima.py 2018-05-16 13:27:01.240157806 -0600 -@@ -556,7 +556,7 @@ class Maxima(MaximaAbstract, Expect): +--- src/sage/interfaces/maxima.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/interfaces/maxima.py 2018-08-29 08:47:09.779302448 -0600 +@@ -546,7 +546,7 @@ class Maxima(MaximaAbstract, Expect): Expect.__init__(self, name = 'maxima', prompt = '\(\%i[0-9]+\) ', -- command = 'maxima --userdir="%s" -p "%s"'%(SAGE_MAXIMA_DIR,STARTUP), -+ command = 'maxima --disable-readline --userdir="%s" -p "%s"'%(SAGE_MAXIMA_DIR,STARTUP), +- command = 'maxima -p "{0}"'.format(STARTUP), ++ command = 'maxima --disable-readline -p "{0}"'.format(STARTUP), env = {'TMPDIR': str(ECL_TMP)}, script_subdirectory = script_subdirectory, restart_on_ctrlc = False, -@@ -624,7 +624,8 @@ class Maxima(MaximaAbstract, Expect): +@@ -615,7 +615,8 @@ class Maxima(MaximaAbstract, Expect): # Remove limit on the max heapsize (since otherwise it defaults # to 256MB with ECL). diff --git a/sagemath-mpfr.patch b/sagemath-mpfr.patch index 0e54f02..e9002c4 100644 --- a/sagemath-mpfr.patch +++ b/sagemath-mpfr.patch @@ -1,6 +1,6 @@ diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd ---- src/sage/libs/mpfr/__init__.pxd.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/libs/mpfr/__init__.pxd 2018-05-25 15:01:25.576043678 -0600 +--- src/sage/libs/mpfr/__init__.pxd.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/libs/mpfr/__init__.pxd 2018-08-29 10:41:34.027286042 -0600 @@ -96,7 +96,6 @@ cdef extern from "mpfr.h": int mpfr_sqrt(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd) int mpfr_sqrt_ui(mpfr_t rop, unsigned long int op, mpfr_rnd_t rnd) @@ -10,8 +10,8 @@ diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd int mpfr_pow(mpfr_t rop, mpfr_t op1, mpfr_t op2, mpfr_rnd_t rnd) int mpfr_pow_ui(mpfr_t rop, mpfr_t op1, unsigned long int op2, mpfr_rnd_t rnd) diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx ---- src/sage/rings/complex_mpc.pyx.orig 2018-05-05 16:21:25.000000000 -0600 -+++ src/sage/rings/complex_mpc.pyx 2018-05-25 15:02:11.567712409 -0600 +--- src/sage/rings/complex_mpc.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/rings/complex_mpc.pyx 2018-08-29 10:41:34.027286042 -0600 @@ -2221,7 +2221,7 @@ cdef class MPComplexNumber(sage.structur cdef RealNumber a,r a = self.argument()/n @@ -22,8 +22,8 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx cdef MPComplexNumber z z = self._new() diff -up src/sage/rings/complex_number.pyx.orig src/sage/rings/complex_number.pyx ---- src/sage/rings/complex_number.pyx.orig 2018-05-05 16:21:25.000000000 -0600 -+++ src/sage/rings/complex_number.pyx 2018-05-25 15:01:52.328850983 -0600 +--- src/sage/rings/complex_number.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/rings/complex_number.pyx 2018-08-29 10:41:34.027286042 -0600 @@ -2276,7 +2276,7 @@ cdef class ComplexNumber(sage.structure. rho = abs(self) arg = self.argument() / n @@ -34,9 +34,9 @@ diff -up src/sage/rings/complex_number.pyx.orig src/sage/rings/complex_number.py mpfr_sin_cos(z.__im, z.__re, arg.value, rnd) mpfr_mul(z.__re, z.__re, r, rnd) diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx ---- src/sage/rings/real_mpfr.pyx.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage/rings/real_mpfr.pyx 2018-05-25 11:33:48.009144647 -0600 -@@ -5369,7 +5369,7 @@ cdef class RealNumber(sage.structure.ele +--- src/sage/rings/real_mpfr.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/rings/real_mpfr.pyx 2018-08-29 10:41:34.028286030 -0600 +@@ -5370,7 +5370,7 @@ cdef class RealNumber(sage.structure.ele if algorithm == 1: x = self._new() sig_on() diff --git a/sagemath-nauty.patch b/sagemath-nauty.patch index 5173c5b..2bedc83 100644 --- a/sagemath-nauty.patch +++ b/sagemath-nauty.patch @@ -1,12 +1,12 @@ diff -up src/sage/graphs/graph_generators.py.orig src/sage/graphs/graph_generators.py ---- src/sage/graphs/graph_generators.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/graphs/graph_generators.py 2018-05-16 13:35:59.299778933 -0600 -@@ -886,7 +886,7 @@ class GraphGenerators(): - >A geng -d0D3 n=4 e=0-6 - """ - import subprocess +--- src/sage/graphs/graph_generators.py.orig 2018-08-29 08:52:26.099392035 -0600 ++++ src/sage/graphs/graph_generators.py 2018-08-29 08:56:44.782205619 -0600 +@@ -906,7 +906,7 @@ class GraphGenerators(): + else: + enc_kwargs = {'encoding': 'latin-1'} + - sp = subprocess.Popen("geng {0}".format(options), shell=True, + sp = subprocess.Popen("nauty-geng {0}".format(options), shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, close_fds=True) - if debug: + stderr=subprocess.PIPE, close_fds=True, + **enc_kwargs) diff --git a/sagemath-nofstring.patch b/sagemath-nofstring.patch index 9008492..66c4a86 100644 --- a/sagemath-nofstring.patch +++ b/sagemath-nofstring.patch @@ -1,6 +1,6 @@ diff -up src/sage/arith/multi_modular.pyx.orig src/sage/arith/multi_modular.pyx ---- src/sage/arith/multi_modular.pyx.orig 2018-05-05 16:21:22.000000000 -0600 -+++ src/sage/arith/multi_modular.pyx 2018-05-18 09:39:53.247690061 -0600 +--- src/sage/arith/multi_modular.pyx.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/arith/multi_modular.pyx 2018-08-29 10:44:04.624424587 -0600 @@ -173,9 +173,9 @@ cdef class MultiModularBasis_base(object ArithmeticError: The inverse of 6 modulo 10 is not defined. """ @@ -23,9 +23,9 @@ diff -up src/sage/arith/multi_modular.pyx.orig src/sage/arith/multi_modular.pyx cdef Py_ssize_t i diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_rings/integer_mod.pyx ---- src/sage/rings/finite_rings/integer_mod.pyx.orig 2018-05-05 16:21:25.000000000 -0600 -+++ src/sage/rings/finite_rings/integer_mod.pyx 2018-05-18 09:41:48.412094505 -0600 -@@ -457,7 +457,7 @@ cdef class IntegerMod_abstract(FiniteRin +--- src/sage/rings/finite_rings/integer_mod.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/rings/finite_rings/integer_mod.pyx 2018-08-29 10:44:04.624424587 -0600 +@@ -468,7 +468,7 @@ cdef class IntegerMod_abstract(FiniteRin from .integer_mod_ring import IntegerModRing R = IntegerModRing(modulus) if (self)._parent._IntegerModRing_generic__order % R.order(): @@ -35,8 +35,8 @@ diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_ def is_nilpotent(self): diff -up src/sage/structure/parent.pyx.orig src/sage/structure/parent.pyx ---- src/sage/structure/parent.pyx.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage/structure/parent.pyx 2018-05-18 09:42:38.685397989 -0600 +--- src/sage/structure/parent.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/structure/parent.pyx 2018-08-29 10:44:04.625424574 -0600 @@ -726,7 +726,7 @@ cdef class Parent(sage.structure.categor cdef int init_coerce(self, bint warn=True) except -1: if self._coerce_from_hash is None: @@ -47,8 +47,8 @@ diff -up src/sage/structure/parent.pyx.orig src/sage/structure/parent.pyx self._initial_action_list = [] self._initial_convert_list = [] diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx ---- src/sage/symbolic/ring.pyx.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage/symbolic/ring.pyx 2018-05-18 09:43:07.395000229 -0600 +--- src/sage/symbolic/ring.pyx.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/symbolic/ring.pyx 2018-08-29 10:44:04.625424574 -0600 @@ -378,7 +378,7 @@ cdef class SymbolicRing(CommutativeRing) from sage.misc.all import prod return prod([SR(p)**e for p,e in x], SR(x.unit())) diff --git a/sagemath-qepcad.patch b/sagemath-qepcad.patch index 527415b..c8c3695 100644 --- a/sagemath-qepcad.patch +++ b/sagemath-qepcad.patch @@ -1,12 +1,12 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py ---- src/sage/interfaces/qepcad.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/interfaces/qepcad.py 2018-05-16 13:58:34.360913275 -0600 +--- src/sage/interfaces/qepcad.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/interfaces/qepcad.py 2018-08-29 10:43:25.856903772 -0600 @@ -530,7 +530,7 @@ TESTS: Check the qepcad configuration file:: -- sage: with open(os.path.join(SAGE_LOCAL, 'default.qepcadrc')) as f: -+ sage: with open('/usr/share/qepcad/default.qepcadrc')) as f: +- sage: with open(os.path.join(SAGE_LOCAL, 'default.qepcadrc')) as f: # optional - qepcad ++ sage: with open('/usr/share/qepcad/default.qepcadrc')) as f: # optional - qepcad ....: f.readlines()[-1] 'SINGULAR .../bin\n' @@ -52,8 +52,8 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py cache = {} -- with open('%s/bin/qepcad.help'%SAGE_LOCAL) as help: -+ with open('%s/bin/qepcad.help'%QEPCAD_LOCAL) as help: +- with open(os.path.join(SAGE_LOCAL, 'bin', 'qepcad.help')) as help: ++ with open(os.path.join(QEPCAD_LOCAL, 'bin', 'qepcad.help')) as help: assert(help.readline().strip() == '@') while True: diff --git a/sagemath-readonly.patch b/sagemath-readonly.patch index 0c959b9..9186879 100644 --- a/sagemath-readonly.patch +++ b/sagemath-readonly.patch @@ -1,6 +1,7 @@ ---- src/sage/all.py.orig 2018-05-05 16:21:22.000000000 -0600 -+++ src/sage/all.py 2018-05-16 13:25:28.300415250 -0600 -@@ -290,11 +290,11 @@ def _write_started_file(): +diff -up src/sage/all.py.orig src/sage/all.py +--- src/sage/all.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/all.py 2018-08-29 08:45:06.117831555 -0600 +@@ -284,11 +284,11 @@ def _write_started_file(): Check that the file exists when Sage is running:: diff --git a/sagemath-rpmbuild.patch b/sagemath-rpmbuild.patch index b8bd336..d0c6002 100644 --- a/sagemath-rpmbuild.patch +++ b/sagemath-rpmbuild.patch @@ -1,6 +1,6 @@ diff -up src/module_list.py.orig src/module_list.py ---- src/module_list.py.orig 2018-05-16 12:35:55.223524926 -0600 -+++ src/module_list.py 2018-05-16 13:13:20.467262594 -0600 +--- src/module_list.py.orig 2018-08-29 08:34:50.846439644 -0600 ++++ src/module_list.py 2018-08-29 08:35:19.927079956 -0600 @@ -3,7 +3,7 @@ from glob import glob from distutils.extension import Extension from sage.env import SAGE_LOCAL @@ -11,8 +11,8 @@ diff -up src/module_list.py.orig src/module_list.py ######################################################### ### pkg-config setup diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py ---- src/sage/misc/cython.py.orig 2018-05-16 13:13:20.468262581 -0600 -+++ src/sage/misc/cython.py 2018-05-16 13:16:29.207708998 -0600 +--- src/sage/misc/cython.py.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage/misc/cython.py 2018-08-29 08:35:19.954079622 -0600 @@ -601,7 +601,7 @@ def cython(filename, verbose=0, compile_ ext = Extension(name, sources=[pyxfile] + extra_sources, @@ -23,8 +23,8 @@ diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py language=language) diff -up src/setup.py.orig src/setup.py ---- src/setup.py.orig 2018-05-05 16:21:27.000000000 -0600 -+++ src/setup.py 2018-05-16 13:17:40.774740719 -0600 +--- src/setup.py.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/setup.py 2018-08-29 08:35:19.955079610 -0600 @@ -370,9 +370,8 @@ class sage_build_cython(Command): # Debugging gdb_debug=self.debug, @@ -47,9 +47,9 @@ diff -up src/setup.py.orig src/setup.py def install_kernel_spec(self): """ -@@ -897,40 +893,6 @@ class sage_install(install): - from sage.repl.ipython_kernel.install import SageKernelSpec - SageKernelSpec.update() +@@ -900,40 +896,6 @@ class sage_install(install): + # the install_data directory for installing our Jupyter files. + SageKernelSpec.update(prefix=self.install_data) - def clean_stale_files(self): - """ diff --git a/sagemath-sagedoc.patch b/sagemath-sagedoc.patch index 21da4ff..44e0f49 100644 --- a/sagemath-sagedoc.patch +++ b/sagemath-sagedoc.patch @@ -1,6 +1,6 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py ---- src/sage/doctest/control.py.orig 2018-05-05 16:21:23.000000000 -0600 -+++ src/sage/doctest/control.py 2018-05-16 13:20:01.420837824 -0600 +--- src/sage/doctest/control.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/doctest/control.py 2018-08-29 08:36:07.805487927 -0600 @@ -102,7 +102,6 @@ class DocTestDefaults(SageObject): self.valgrind = False self.massif = False @@ -46,9 +46,9 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py return self.run_val_gdb() else: diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py ---- src/sage/interfaces/singular.py.orig 2018-05-05 16:21:24.000000000 -0600 -+++ src/sage/interfaces/singular.py 2018-05-16 13:20:01.421837810 -0600 -@@ -2258,7 +2258,7 @@ def generate_docstring_dictionary(): +--- src/sage/interfaces/singular.py.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/sage/interfaces/singular.py 2018-08-29 08:36:07.818487766 -0600 +@@ -2262,7 +2262,7 @@ def generate_docstring_dictionary(): nodes.clear() node_names.clear() @@ -58,9 +58,9 @@ diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py new_node = re.compile("File: singular\.hlp, Node: ([^,]*),.*") new_lookup = re.compile("\* ([^:]*):*([^.]*)\..*") diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/ext/multidocs.py ---- src/sage_setup/docbuild/ext/multidocs.py.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage_setup/docbuild/ext/multidocs.py 2018-05-16 13:20:01.421837810 -0600 -@@ -82,8 +82,11 @@ def merge_environment(app, env): +--- src/sage_setup/docbuild/ext/multidocs.py.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage_setup/docbuild/ext/multidocs.py 2018-08-29 08:36:07.829487630 -0600 +@@ -84,8 +84,11 @@ def merge_environment(app, env): for ind in newalldoc: # treat subdocument source as orphaned file and don't complain md = env.metadata.get(ind, dict()) @@ -75,9 +75,9 @@ diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/e newcite = {} citations = docenv.domaindata["std"]["citations"] diff -up src/sage_setup/docbuild/__init__.py.orig src/sage_setup/docbuild/__init__.py ---- src/sage_setup/docbuild/__init__.py.orig 2018-05-05 16:21:26.000000000 -0600 -+++ src/sage_setup/docbuild/__init__.py 2018-05-16 13:20:01.422837797 -0600 -@@ -242,13 +242,14 @@ if NUM_THREADS > 1: +--- src/sage_setup/docbuild/__init__.py.orig 2018-08-03 05:10:09.000000000 -0600 ++++ src/sage_setup/docbuild/__init__.py 2018-08-29 08:36:07.837487531 -0600 +@@ -272,13 +272,14 @@ if NUM_THREADS > 1: # map_async handles KeyboardInterrupt correctly. Plain map and # apply_async does not, so don't use it. x = pool.map_async(target, args, 1) diff --git a/sagemath-sagenb.patch b/sagemath-sagenb.patch index f8eccac..1d2a5a5 100644 --- a/sagemath-sagenb.patch +++ b/sagemath-sagenb.patch @@ -1,6 +1,6 @@ diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sagenb/src/sagenb/flask_version/base.py ---- build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig 2017-11-08 08:11:53.546180946 -0500 -+++ build/pkgs/sagenb/src/sagenb/flask_version/base.py 2017-11-08 08:13:13.400184004 -0500 +--- build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig 2018-01-24 04:17:47.000000000 -0700 ++++ build/pkgs/sagenb/src/sagenb/flask_version/base.py 2018-08-29 08:44:38.823169061 -0600 @@ -7,8 +7,6 @@ from functools import partial from flask import Flask, Blueprint, url_for, request, session, redirect, g, make_response, current_app, render_template from .decorators import login_required, guest_or_login_required, with_lock @@ -40,8 +40,8 @@ diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sage mimetypes.add_type('text/plain','.jmol') diff -up build/pkgs/sagenb/src/sagenb/misc/misc.py.orig build/pkgs/sagenb/src/sagenb/misc/misc.py ---- build/pkgs/sagenb/src/sagenb/misc/misc.py.orig 2017-11-08 08:13:24.162184416 -0500 -+++ build/pkgs/sagenb/src/sagenb/misc/misc.py 2017-11-08 08:13:41.928185096 -0500 +--- build/pkgs/sagenb/src/sagenb/misc/misc.py.orig 2017-06-02 16:24:20.000000000 -0600 ++++ build/pkgs/sagenb/src/sagenb/misc/misc.py 2018-08-29 08:44:38.823169061 -0600 @@ -184,7 +184,8 @@ def pad_zeros(s, size=3): SAGENB_ROOT = os.path.split(resource_filename(__name__, ''))[0] @@ -53,8 +53,8 @@ diff -up build/pkgs/sagenb/src/sagenb/misc/misc.py.orig build/pkgs/sagenb/src/sa if 'DOT_SAGENB' in os.environ: DOT_SAGENB = os.environ['DOT_SAGENB'] diff -up build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig build/pkgs/sagenb/src/sagenb/notebook/cell.py ---- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2017-11-08 08:13:51.658185469 -0500 -+++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2017-11-08 08:14:22.016186631 -0500 +--- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2018-01-24 04:17:38.000000000 -0700 ++++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2018-08-29 08:44:38.823169061 -0600 @@ -2384,8 +2384,8 @@ class Cell(Cell_generic): with open(jmol_name, 'r') as f: jmol_script = f.read() @@ -67,9 +67,9 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig build/pkgs/sagenb/sr f.write(jmol_script) diff -up build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py ---- build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig 2017-11-08 08:14:30.274186948 -0500 -+++ build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py 2017-11-08 08:15:04.624188263 -0500 -@@ -49,12 +49,11 @@ sagenb.notebook.misc.DIR = %(cwd)r #We s +--- build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig 2018-05-22 10:16:28.000000000 -0600 ++++ build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py 2018-08-29 08:44:38.824169048 -0600 +@@ -53,12 +53,11 @@ sagenb.notebook.misc.DIR = %(cwd)r #We s # Flask # ######### import os, sys, random diff --git a/sagemath-scripts.patch b/sagemath-scripts.patch index d91d51f..2cafa7d 100644 --- a/sagemath-scripts.patch +++ b/sagemath-scripts.patch @@ -1,7 +1,7 @@ diff -up src/bin/sage.orig src/bin/sage ---- src/bin/sage.orig 2018-05-05 16:21:22.000000000 -0600 -+++ src/bin/sage 2018-05-16 12:29:16.699989835 -0600 -@@ -13,13 +13,10 @@ usage() { +--- src/bin/sage.orig 2018-08-03 05:10:08.000000000 -0600 ++++ src/bin/sage 2018-08-29 08:32:06.325478480 -0600 +@@ -26,13 +26,10 @@ usage() { echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file" echo " -advanced -- list all command line options" echo " -c -- Evaluates cmd as sage code" @@ -15,15 +15,15 @@ diff -up src/bin/sage.orig src/bin/sage echo " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)" echo " -maxima [...] -- run Sage's Maxima with given arguments" echo " -mwrank [...] -- run Sage's mwrank with given arguments" -@@ -27,7 +24,6 @@ usage() { +@@ -40,7 +37,6 @@ usage() { echo " 'default', 'sagenb', 'jupyter', and 'export')" echo " Current default is 'export' from sagenb to jupyter" echo " -n, --notebook -- shortcut for --notebook=default" - echo " -optional -- list all optional packages that can be installed" - echo " -python [...] -- run the Python 2 interpreter" + echo " -python [...] -- run the Python interpreter" + echo " -python2 [...] -- run the Python 2 interpreter" echo " -python3 [...] -- run the Python 3 interpreter" - echo " -R [...] -- run Sage's R with given arguments" -@@ -44,10 +40,6 @@ usage() { +@@ -58,10 +54,6 @@ usage() { echo " --optional - controls which optional tests are run" echo " --sagenb - test all sagenb files" echo " --help - show all testing options" @@ -34,7 +34,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " -v, -version -- display Sage version information" exit 0 } -@@ -66,11 +58,8 @@ usage_advanced() { +@@ -81,11 +73,8 @@ usage_advanced() { echo " -preparse -- preparse file.sage and produce corresponding file.sage.py" echo " -q -- quiet; start with no banner" echo " -root -- print the Sage root directory" @@ -46,7 +46,7 @@ diff -up src/bin/sage.orig src/bin/sage echo #### 1.......................26..................................................78 -@@ -82,8 +71,6 @@ usage_advanced() { +@@ -97,8 +86,6 @@ usage_advanced() { echo " See the output of sage --notebook --help" echo " for more details and examples of how to pass" echo " optional arguments" @@ -55,7 +55,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)" echo " -n, -notebook [...] -- start the default Sage notebook (options are the" echo " same as for the notebook command in Sage). See the" -@@ -103,18 +90,11 @@ usage_advanced() { +@@ -118,18 +105,11 @@ usage_advanced() { echo " -ipython [...] -- run Sage's IPython using the default environment (not" echo " Sage), passing additional options to IPython" echo " -ipython3 [...] -- same as above, but using Python 3" @@ -74,7 +74,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " -python [...] -- run the Python interpreter" echo " -R [...] -- run Sage's R with given arguments" echo " -scons [...] -- run Sage's scons" -@@ -126,55 +106,7 @@ usage_advanced() { +@@ -141,55 +121,7 @@ usage_advanced() { echo #### 1.......................26..................................................78 #### |.....................--.|...................................................| @@ -131,7 +131,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " -startuptime [module] -- display how long each component of Sage takes to" echo " start up; optionally specify a module to get more" echo " details about that particular module" -@@ -205,7 +137,6 @@ usage_advanced() { +@@ -220,7 +152,6 @@ usage_advanced() { echo " -coverage -- give info about doctest coverage of files" echo " -coverageall -- give summary info about doctest coverage of all" echo " files in the Sage library" @@ -139,7 +139,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " -search_src -- search through all the Sage library code for string" echo " -search_doc -- search through the Sage documentation for string" echo " -grep -- same as -search_src" -@@ -227,16 +158,6 @@ usage_advanced() { +@@ -244,16 +175,6 @@ usage_advanced() { echo #### 1.......................26..................................................78 #### |.....................--.|...................................................| @@ -156,7 +156,7 @@ diff -up src/bin/sage.orig src/bin/sage echo "Valgrind memory debugging:" echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log" echo " files are named sage-cachegrind.PID can be found in" -@@ -250,9 +171,6 @@ usage_advanced() { +@@ -267,9 +188,6 @@ usage_advanced() { echo " -memcheck -- run Sage using Valgrind's memcheck tool. The log" echo " files are named sage-memcheck.PID can be found in" echo " $DOT_SAGE" @@ -166,11 +166,10 @@ diff -up src/bin/sage.orig src/bin/sage echo " -valgrind -- this is an alias for -memcheck" echo echo "You can also use -- before a long option, e.g., 'sage --optional'." -@@ -261,128 +179,6 @@ usage_advanced() { - } +@@ -279,115 +197,6 @@ usage_advanced() { --##################################################################### + ##################################################################### -# Special options to be processed without sage-env -##################################################################### - @@ -279,6 +278,14 @@ diff -up src/bin/sage.orig src/bin/sage -fi - - +-##################################################################### + # Report information about the Sage environment + ##################################################################### + +@@ -416,35 +225,8 @@ if [ $# -gt 0 ]; then + fi + + -##################################################################### -# Source sage-env ($0 is the name of this "sage" script, so we can just -# append -env to that). We redirect stdout to stderr, which is safer @@ -292,11 +299,6 @@ diff -up src/bin/sage.orig src/bin/sage -fi - - - if [ $# -gt 0 ]; then - if [ "$1" = '-h' -o "$1" = '-?' -o "$1" = '-help' -o "$1" = '--help' ]; then - usage -@@ -394,20 +190,6 @@ fi - # Prepare for running Sage, either interactively or non-interactively. sage_setup() { - # Check that we're not in a source tarball which hasn't been built yet (#13561). @@ -316,7 +318,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ ! -d "$IPYTHONDIR" ]; then # make sure that $DOT_SAGE exists so that ipython will happily # create its config directories there. If DOT_SAGE doesn't -@@ -418,20 +200,6 @@ sage_setup() { +@@ -455,20 +237,6 @@ sage_setup() { } @@ -337,7 +339,7 @@ diff -up src/bin/sage.orig src/bin/sage # Start an interactive Sage session, this function never returns. interactive_sage() { sage_setup -@@ -536,16 +304,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] +@@ -552,16 +320,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] exec ecl "$@" fi @@ -354,7 +356,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then shift exec maxima "$@" -@@ -571,11 +329,6 @@ if [ "$1" = '-pip' -o "$1" = '--pip' ]; +@@ -587,11 +345,6 @@ if [ "$1" = '-pip' -o "$1" = '--pip' ]; exec pip "$@" fi @@ -365,8 +367,8 @@ diff -up src/bin/sage.orig src/bin/sage - if [ "$1" = '-python' -o "$1" = '--python' ]; then shift - exec python "$@" -@@ -606,16 +359,6 @@ if [ "$1" = '-ipython3' -o "$1" = '--ipy + if [ "$SAGE_PYTHON3" = 'yes' ]; then +@@ -626,16 +379,6 @@ if [ "$1" = '-ipython3' -o "$1" = '--ipy exec ipython3 "$@" fi @@ -383,7 +385,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-sh' -o "$1" = '--sh' ]; then # AUTHORS: # - Carl Witty and William Stein: initial version -@@ -735,20 +478,6 @@ EOF +@@ -755,20 +498,6 @@ EOF fi ##################################################################### @@ -404,7 +406,7 @@ diff -up src/bin/sage.orig src/bin/sage # File conversion ##################################################################### -@@ -771,11 +500,6 @@ fi +@@ -796,11 +525,6 @@ fi # Run Sage's versions of the standard Algebra/Geometry etc. software ##################################################################### @@ -416,7 +418,7 @@ diff -up src/bin/sage.orig src/bin/sage if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then sage-cleaner &>/dev/null & exec sage-notebook "$@" -@@ -786,13 +510,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not +@@ -811,13 +535,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not exec sage-notebook "$@" fi @@ -430,7 +432,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then shift sage-cleaner &>/dev/null & -@@ -811,34 +528,15 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep +@@ -836,34 +553,15 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep exit 0 fi @@ -467,7 +469,7 @@ diff -up src/bin/sage.orig src/bin/sage shift exec sage-runtests -p "$@" else -@@ -847,10 +545,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" +@@ -872,10 +570,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" fi fi @@ -479,7 +481,7 @@ diff -up src/bin/sage.orig src/bin/sage shift sage_setup export PYTHONIOENCODING="utf-8" # Fix encoding for doctests -@@ -871,119 +566,6 @@ if [ "$1" = '-c' ]; then +@@ -896,122 +591,6 @@ if [ "$1" = '-c' ]; then exec sage-eval "$@" fi @@ -545,7 +547,7 @@ diff -up src/bin/sage.orig src/bin/sage - -if [ "$1" = '-installed' -o "$1" = "--installed" ]; then - shift -- exec sage-list-packages installed $@ +- exec sage-list-packages all --installed-only $@ -fi - -if [ "$1" = '-p' ]; then @@ -592,14 +594,17 @@ diff -up src/bin/sage.orig src/bin/sage -fi - -if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then +- # Redirect stdin from /dev/null. This helps with running TeX which +- # tends to ask interactive questions if something goes wrong. These +- # cause the build to hang. If stdin is /dev/null, TeX just aborts. - shift -- exec sage-python23 -m "sage_setup.docbuild" "$@" +- exec sage-python23 -m sage_setup.docbuild "$@" =0.10'||" \ - -e "s|'http://github.com/mitsuhiko/flask-oldsessions/tarball/master#egg=flask-oldsessions-0.10'||" \ +sed -e "/flask-oldsessions/d" \ -i build/pkgs/sagenb/src/setup.py #------------------------------------------------------------------------ @@ -872,21 +877,34 @@ rm build/pkgs/sagenb/src/sagenb/data/sage3d/lib/sage3d.jar rm -r build/pkgs/sagenb/src/sagenb.egg-info # fix Singular paths +singver=$(sed 's/.*-\([.[:digit:]]*\).*/\1/' <<< %{singular_pkg}) sed -e "s,SINGULARPATH=\",&%{_datadir}/singular/LIB:," \ -e "s,\(SINGULAR_EXECUTABLE=\"\).*\",\1%{_libdir}/Singular/Singular\"," \ -i src/bin/sage-env +sed -e "s,\(SINGULAR_SO = \)SAGE.*,\1'%{_libdir}/libSingular-$singver.so'," \ + -i src/sage/env.py -# fix shebangs -sed -i 's,#!%{_bindir}/env python,#!%{_bindir}/python2,' \ - $(grep -Frl '#!%{_bindir}/env python') -sed -i 's,#!%{_bindir}/env sage-python23,#!%{_bindir}/python2,' \ - $(grep -Frl '#!%{_bindir}/env sage-python23') -sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,' $(grep -Frl '#!%{_bindir}/env') -sed -i 's,#!%{_bindir}/python$,&2,' $(grep -Frl '#!%{_bindir}/python') +# fix shebangs; some paths contains spaces, so use the null byte facility +grep -FrlZ '#!%{_bindir}/env python' | \ + xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{__python2},' +grep -FrlZ '#!%{_bindir}/env sage-python23' | \ + xargs -0 sed -i 's,#!%{_bindir}/env sage-python23,#!%{__python2},' +grep -FrlZ '#!%{_bindir}/env' | \ + xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,' +grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&2,' +sed -i 's,%{_bindir}/env python,%{__python2},' \ +%if %{with bundled_pexpect} + build/pkgs/pexpect/src/examples/python.py \ +%endif + build/pkgs/sagetex/src/sagetex.ins sed -i 's,%{_bindir}/python,&2,' src/sage/misc/dev_tools.py sed -e 's,local/bin/python,bin/python,' \ -e 's,#!%{_bindir}/python,&2,' \ -i src/sage/repl/preparse.py +%if %{with bundled_ipython} +sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \ + -i build/pkgs/ipython/src/IPython/utils/_process_posix.py +%endif ######################################################################## %build @@ -955,8 +973,6 @@ popd do patch -p1 < $BASE/$PATCH done - # https://bugzilla.redhat.com/show_bug.cgi?id=1406533 - sed -i 's/disallow/dissallow/' Cython/Compiler/Options.py popd %endif @@ -1134,7 +1150,7 @@ popd #------------------------------------------------------------------------ pushd $SAGE_LOCAL/bin/ - for file in \ + rm -f \ sage-arch-env \ sage-bdist \ sage-build \ @@ -1173,14 +1189,13 @@ pushd $SAGE_LOCAL/bin/ sage-update-src \ sage-update-version \ sage-upgrade \ - spkg-install; do - rm -f $file - done + spkg-install popd #------------------------------------------------------------------------ pushd build/pkgs/combinatorial_designs - bash ./spkg-install + chmod a+x spkg-install + bash -c '. ../../../src/bin/sage-dist-helpers; ./spkg-install' popd #------------------------------------------------------------------------ @@ -1460,6 +1475,11 @@ for file in *.tar.*; do mkdir %{buildroot}%{SAGE_SPKG_INST}/$(echo $file | sed -e 's|\.tar.*||') done popd +pushd %{buildroot}%{SAGE_SPKG_INST} + for pkg in %{SAGE_REQUIRED_PKGS}; do + mkdir $pkg + done +popd #------------------------------------------------------------------------ cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages << EOF #!/bin/sh @@ -1503,45 +1523,8 @@ chmod +x %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages rm -fr $DOT_SAGE ######################################################################## -%pretrans -p /usr/bin/lua -posix = require('posix') -path = "%{python2_sitearch}/sagenb/data/mathjax" -st = posix.stat(path) -if st and st.type == "directory" then - status = os.rename(path, path .. ".rpmmoved") - if not status then - suffix = 0 - while not status do - suffix = suffix + 1 - status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix) - end - os.rename(path, path .. ".rpmmoved") - end -end - %ldconfig_scriptlets core -%if %{with docs} -# Upgrade correction for change from directory to symlink -%post doc -if [ ! -e %{SAGE_DOC}/common ]; then - ln -sf . %{SAGE_DOC}/common -fi -exit 0 - -%preun doc -if [ $1 -eq 0 ] ; then - if [ -h %{SAGE_DOC}/common ]; then - rm %{SAGE_DOC}/common - fi -fi -exit 0 -%endif - -%post sagetex -p %{_bindir}/mktexlsr - -%postun sagetex -p %{_bindir}/mktexlsr - ######################################################################## %files # GPLv2+ @@ -1811,6 +1794,15 @@ exit 0 ######################################################################## %changelog +* Sat Sep 22 2018 Jerry James - 8.3-1 +- Update to sagemath 8.3 (bz 1612867) +- Drop -lrslib, -gap-hap, and -flask patches +- Drop obsolete scriplets to fix F24 to F25 upgrade (bz 1594429 and 1618934) +- Drop obsolete mktexlsr invocations +- Fix more Singular paths +- Fix still more uses of /usr/bin/env +- Drop disallow/dissallow fixup for cython; now fixed in cython itself + * Fri Aug 10 2018 Jerry James - 8.2-4 - Rebuild for arb 2.14.0, eclib 20180710, ntl 11.2.1, and pari 2.11.0 - Drop unneeded genus2reduction dependency; pari is used instead now diff --git a/sources b/sources index 0ed0dd8..b65bb9d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (sage-8.2.tar.gz) = 32afa401d0c0a825e9507a445de9a5abb19b3f2444c70ae0e5d7fea0fe319f6a43a94e5eee032fd85c21b87487a42d0c70177766dfa6ea1ea42d3a22e1395663 +SHA512 (sage-8.3.tar.gz) = d0b971896738adc6604e51a00ff38f41b5c2e7595e8d257346fd975106519a1b3a1734a07229e7bf6e9373073d0cc0ca45c259dece1e7c97a3debd12914485d6