Version 9.3.

- Drop -arb and -openblas patches.
- Add -cvxopt patch.
- Add metainfo file.
This commit is contained in:
Jerry James 2021-06-18 11:37:21 -06:00
parent 26b688d416
commit 0a1b42ef2b
21 changed files with 1096 additions and 1037 deletions

View file

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.sagemath.sage</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0-or-later</project_license>
<name>sagemath</name>
<summary>Mathematics Software System</summary>
<description>
<p>
Sage is a free open-source mathematics software system licensed
under the GPL. It combines the power of many existing open-source
packages into a common Python-based interface.
</p>
</description>
<launchable type="desktop-id">org.sagemath.sage.desktop</launchable>
<screenshots>
<screenshot type="default">
<image>https://www.flickr.com/photos/sagescreenshots/2131280369/in/album-72157603532209437/</image>
<caption>Notebook</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280403/in/album-72157603532209437/</image>
<caption>Symbolic computation</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280441/in/album-72157603532209437/</image>
<caption>More symbolic computation</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057124/in/album-72157603532209437/</image>
<caption>Basic plotting</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280543/in/album-72157603532209437/</image>
<caption>Plotting multiple functions</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280585/in/album-72157603532209437/</image>
<caption>Plotting options</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280629/in/album-72157603532209437/</image>
<caption>Polygons</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280689/in/album-72157603532209437/</image>
<caption>Text annotations</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280719/in/album-72157603532209437/</image>
<caption>Parametric plotting</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057406/in/album-72157603532209437/</image>
<caption>List comprehensions</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057442/in/album-72157603532209437/</image>
<caption>Rubik's cube</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057494/in/album-72157603532209437/</image>
<caption>Scrambled cube</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057548/in/album-72157603532209437/</image>
<caption>3D cube</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131280959/in/album-72157603532209437/</image>
<caption>Interactive 3D cube</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057724/in/album-72157603532209437/</image>
<caption>3D plotting with Tachyon</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057802/in/album-72157603532209437/</image>
<caption>Parametric 3D plotting</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057836/in/album-72157603532209437/</image>
<caption>JSMath and LaTeX</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2132057874/in/album-72157603532209437/</image>
<caption>Matrix operations</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131281199/in/album-72157603532209437/</image>
<caption>Plotting of graphs</caption>
</screenshot>
<screenshot>
<image>https://www.flickr.com/photos/sagescreenshots/2131281877/in/album-72157603532209437/</image>
<caption>Contour plot</caption>
</screenshot>
</screenshots>
<update_contact>loganjerry@gmail.com</update_contact>
<url type="homepage">https://www.sagemath.org/</url>
<url type="bugtracker">https://trac.sagemath.org/</url>
<url type="faq">https://doc.sagemath.org/html/en/faq/</url>
<url type="help">https://doc.sagemath.org/</url>
<url type="donation">https://github.com/sponsors/sagemath</url>
<content_rating type="oars-1.0"></content_rating>
<provides>
<binary>sage</binary>
</provides>
</component>

View file

@ -1,9 +1,9 @@
diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py
--- src/sage/sandpiles/sandpile.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/sandpiles/sandpile.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/sandpiles/sandpile.py 2020-10-30 14:00:00.744208307 -0600 +++ src/sage/sandpiles/sandpile.py 2021-05-28 11:34:47.438557513 -0600
@@ -347,9 +347,6 @@ from sage.arith.all import falling_facto @@ -347,9 +347,6 @@ from sage.rings.all import Integer, Poly
from sage.rings.all import Integer, PolynomialRing, QQ, ZZ from sage.symbolic.constants import I, pi
from sage.symbolic.all import I, pi, SR from sage.symbolic.ring import SR
-# TODO: remove the following line once 4ti2 functions are removed -# TODO: remove the following line once 4ti2 functions are removed
-path_to_zsolve = os.path.join(SAGE_LOCAL, 'bin', 'zsolve') -path_to_zsolve = os.path.join(SAGE_LOCAL, 'bin', 'zsolve')
@ -11,8 +11,8 @@ diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py
def _sandpile_help(cls, usage, verbose=True): def _sandpile_help(cls, usage, verbose=True):
@@ -5174,7 +5171,7 @@ class SandpileDivisor(dict): @@ -5172,7 +5169,7 @@ class SandpileDivisor(dict):
sign_file.close() sign_file.write('\n')
# compute # compute
try: try:
- os.system(path_to_zsolve+' -q ' + lin_sys + ' > ' + lin_sys_log) - os.system(path_to_zsolve+' -q ' + lin_sys + ' > ' + lin_sys_log)

View file

@ -1,34 +0,0 @@
diff -up src/sage/libs/arb/arb_wrap.h.orig src/sage/libs/arb/arb_wrap.h
--- src/sage/libs/arb/arb_wrap.h.orig 2020-10-24 11:37:59.000000000 -0600
+++ src/sage/libs/arb/arb_wrap.h 2020-10-30 16:10:40.145976088 -0600
@@ -11,18 +11,18 @@
#define ulong mp_limb_t
#define slong mp_limb_signed_t
-#include <acb.h>
-#include <acb_calc.h>
-#include <acb_elliptic.h>
-#include <acb_hypgeom.h>
-#include <acb_mat.h>
-#include <acb_modular.h>
-#include <acb_poly.h>
-#include <arb.h>
-#include <arb_hypgeom.h>
-#include <arf.h>
-#include <bernoulli.h>
-#include <mag.h>
+#include <arb/acb.h>
+#include <arb/acb_calc.h>
+#include <arb/acb_elliptic.h>
+#include <arb/acb_hypgeom.h>
+#include <arb/acb_mat.h>
+#include <arb/acb_modular.h>
+#include <arb/acb_poly.h>
+#include <arb/arb.h>
+#include <arb/arb_hypgeom.h>
+#include <arb/arf.h>
+#include <arb/bernoulli.h>
+#include <arb/mag.h>
#undef ulong
#undef slong

View file

@ -1,7 +1,7 @@
diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
--- src/sage/databases/cremona.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/databases/cremona.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/databases/cremona.py 2020-10-30 14:02:27.778960819 -0600 +++ src/sage/databases/cremona.py 2021-05-28 11:39:00.005575551 -0600
@@ -854,7 +854,8 @@ class MiniCremonaDatabase(SQLDatabase): @@ -885,7 +885,8 @@ class MiniCremonaDatabase(SQLDatabase):
message = "There is no elliptic curve with label " \ message = "There is no elliptic curve with label " \
+ label + " in the default database; try installing " \ + label + " in the default database; try installing " \
+ "the optional package database_cremona_ellcurve which " \ + "the optional package database_cremona_ellcurve which " \
@ -11,8 +11,8 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
raise ValueError(message) raise ValueError(message)
ainvs = eval(c[0]) ainvs = eval(c[0])
data = {'cremona_label': label, data = {'cremona_label': label,
@@ -1659,6 +1660,7 @@ class LargeCremonaDatabase(MiniCremonaDa @@ -1663,6 +1664,7 @@ class LargeCremonaDatabase(MiniCremonaDa
con.executemany("UPDATE t_curve SET gens=? WHERE curve=?", \ con.executemany("UPDATE t_curve SET gens=? WHERE curve=?",
curve_data) curve_data)
print("Committing...") print("Committing...")
+ self.commit() + self.commit()

24
sagemath-cvxopt.patch Normal file
View file

@ -0,0 +1,24 @@
diff -up src/sage/numerical/backends/cvxopt_backend.pyx.orig src/sage/numerical/backends/cvxopt_backend.pyx
--- src/sage/numerical/backends/cvxopt_backend.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/numerical/backends/cvxopt_backend.pyx 2021-05-28 12:05:47.551650940 -0600
@@ -550,7 +550,7 @@ cdef class CVXOPTBackend(GenericBackend)
self.answer = solvers.lp(c,G,h)
#possible outcomes
- if self.answer['status'] == 'optimized':
+ if self.answer['status'] in ['optimized', 'optimal']:
pass
elif self.answer['status'] == 'primal infeasible':
raise MIPSolverException("CVXOPT: primal infeasible")
diff -up src/sage/numerical/backends/cvxopt_sdp_backend.pyx.orig src/sage/numerical/backends/cvxopt_sdp_backend.pyx
--- src/sage/numerical/backends/cvxopt_sdp_backend.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/numerical/backends/cvxopt_sdp_backend.pyx 2021-05-28 12:05:47.552650940 -0600
@@ -150,7 +150,7 @@ cdef class CVXOPTSDPBackend(MatrixSDPBac
self.answer = solvers.sdp(c,Gs=G_matrix,hs=h_matrix)
#possible outcomes
- if self.answer['status'] == 'optimized':
+ if self.answer['status'] in ['optimized', 'optimal']:
pass
elif self.answer['status'] == 'primal infeasible':
raise SDPSolverException("CVXOPT: primal infeasible")

View file

@ -1,43 +1,56 @@
diff -up src/sage/env.py.orig src/sage/env.py diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2020-10-30 16:09:54.834029866 -0600 --- src/sage/env.py.orig 2021-05-29 21:01:26.503474025 -0600
+++ src/sage/env.py 2020-10-30 16:10:20.089999891 -0600 +++ src/sage/env.py 2021-05-29 21:03:06.389635554 -0600
@@ -159,14 +159,14 @@ var('SAGE_DATE', version.date) @@ -166,16 +166,16 @@ SAGE_DATE = var("SAGE_DATE", version.dat
var('SAGE_VERSION_BANNER', version.banner) SAGE_VERSION_BANNER = var("SAGE_VERSION_BANNER", version.banner)
# bunch of sage directories and files # virtual environment where sagelib is installed
-var('SAGE_LOCAL', os.path.abspath(sys.prefix)) -SAGE_VENV = var("SAGE_VENV", os.path.abspath(sys.prefix))
-var('SAGE_ETC', join(SAGE_LOCAL, 'etc')) +SAGE_VENV = var("SAGE_VENV", "@@SAGE_LOCAL@@")
-var('SAGE_INC', join(SAGE_LOCAL, 'include')) SAGE_LIB = var("SAGE_LIB", os.path.dirname(os.path.dirname(sage.__file__)))
-var('SAGE_SHARE', join(SAGE_LOCAL, 'share')) -SAGE_EXTCODE = var("SAGE_EXTCODE", join(SAGE_LIB, "sage", "ext_data"))
-var('SAGE_DOC', join(SAGE_SHARE, 'doc', 'sage')) +SAGE_EXTCODE = var("SAGE_EXTCODE", join("/usr", "share", "sagemath", "etc"))
+var('SAGE_LOCAL', '@@SAGE_LOCAL@@')
+var('SAGE_ETC', join('/usr', 'share', 'sagemath', 'etc'))
+var('SAGE_INC', join('/usr', 'include'))
+var('SAGE_SHARE', join('/usr', 'share', 'sagemath'))
+var('SAGE_DOC', join('/usr', 'share', 'doc', 'sagemath'))
var('SAGE_SPKG_INST', join(SAGE_LOCAL, 'var', 'lib', 'sage', 'installed'))
var('SAGE_LIB', os.path.dirname(os.path.dirname(sage.__file__)))
-var('SAGE_EXTCODE', join(SAGE_LIB, 'sage', 'ext_data'))
+var('SAGE_EXTCODE', join('/usr', 'share', 'sagemath', 'etc'))
var('SAGE_ROOT') # no fallback for SAGE_ROOT # prefix hierarchy where non-Python packages are installed
var('SAGE_SRC', join(SAGE_ROOT, 'src'), SAGE_LIB) SAGE_LOCAL = var("SAGE_LOCAL", SAGE_VENV)
@@ -187,13 +187,13 @@ var('THEBE_DIR', joi -SAGE_ETC = var("SAGE_ETC", join(SAGE_LOCAL, "etc"))
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs')) -SAGE_INC = var("SAGE_INC", join(SAGE_LOCAL, "include"))
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona')) -SAGE_SHARE = var("SAGE_SHARE", join(SAGE_LOCAL, "share"))
var('CREMONA_LARGE_DATA_DIR', join(SAGE_SHARE, 'cremona')) -SAGE_DOC = var("SAGE_DOC", join(SAGE_SHARE, "doc", "sage"))
-var('JMOL_DIR', join(SAGE_SHARE, 'jmol')) +SAGE_ETC = var("SAGE_ETC", join("/usr", "share", "sagemath", "etc"))
-var('JSMOL_DIR', join(SAGE_SHARE, 'jsmol')) +SAGE_INC = var("SAGE_INC", join("/usr", "include"))
-var('MATHJAX_DIR', join(SAGE_SHARE, 'mathjax')) +SAGE_SHARE = var("SAGE_SHARE", join("/usr", "share", "sagemath"))
-var('MTXLIB', join(SAGE_SHARE, 'meataxe')) +SAGE_DOC = var("SAGE_DOC", join("/usr", "share", "doc", "sagemath"))
+var('JMOL_DIR', join('/usr', 'share', 'java', 'jmol')) SAGE_SPKG_INST = var("SAGE_SPKG_INST", join(SAGE_LOCAL, "var", "lib", "sage", "installed"))
+var('JSMOL_DIR', join('/usr', 'share', 'javascript', 'jsmol'))
+var('MATHJAX_DIR', join('/usr', 'share', 'javascript', 'mathjax')) # source tree of the Sage distribution
+var('MTXLIB', join(DOT_SAGE, 'meataxe')) @@ -199,12 +199,12 @@ THEBE_DIR = var("THEBE_DIR", join(SAGE_S
var('THREEJS_DIR', join(SAGE_SHARE, 'threejs')) COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs"))
var('SINGULARPATH', join(SAGE_SHARE, 'singular')) CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona"))
-var('PPLPY_DOCS', join(SAGE_SHARE, 'doc', 'pplpy')) CREMONA_LARGE_DATA_DIR = var("CREMONA_LARGE_DATA_DIR", join(SAGE_SHARE, "cremona"))
+var('PPLPY_DOCS', join('/usr', 'share', 'doc', 'python3-pplpy')) -JMOL_DIR = var("JMOL_DIR", join(SAGE_SHARE, "jmol"))
var('MAXIMA', 'maxima') -MATHJAX_DIR = var("MATHJAX_DIR", join(SAGE_SHARE, "mathjax"))
var('MAXIMA_FAS') -MTXLIB = var("MTXLIB", join(SAGE_SHARE, "meataxe"))
var('SAGE_NAUTY_BINS_PREFIX', '') +JMOL_DIR = var("JMOL_DIR", join("/usr", "share", "java", "jmol"))
+MATHJAX_DIR = var("MATHJAX_DIR", join("/usr", "share", "javascript", "mathjax"))
+MTXLIB = var("MTXLIB", join(DOT_SAGE, "meataxe"))
THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs"))
SINGULARPATH = var("SINGULARPATH", join(SAGE_SHARE, "singular"))
-PPLPY_DOCS = var("PPLPY_DOCS", join(SAGE_SHARE, "doc", "pplpy"))
+PPLPY_DOCS = var("PPLPY_DOCS", join("/usr", "share", "doc", "python3-pplpy"))
MAXIMA = var("MAXIMA", "maxima")
MAXIMA_FAS = var("MAXIMA_FAS")
SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "")
@@ -301,10 +301,10 @@ def _get_shared_lib_path(*libnames: str)
# locate singular shared object
# On Debian it's libsingular-Singular so try that as well
-SINGULAR_SO = var("SINGULAR_SO", _get_shared_lib_path("Singular", "singular-Singular"))
+SINGULAR_SO = var("SINGULAR_SO", "@@LIBDIR@@/libSingular.so")
# locate libgap shared object
-GAP_SO = var("GAP_SO", _get_shared_lib_path("gap", ""))
+GAP_SO = var("GAP_SO", "@@LIBDIR@@/libgap.so")
# post process
if ' ' in DOT_SAGE:

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
diff -up src/sage/env.py.orig src/sage/env.py diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/env.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/env.py 2020-10-30 15:44:29.575821493 -0600 +++ src/sage/env.py 2021-05-28 11:18:15.134457599 -0600
@@ -413,7 +413,8 @@ def cython_aliases(): @@ -430,7 +430,8 @@ def cython_aliases():
aliases[var + "INCDIR"] = pc['include_dirs'] aliases[var + "INCDIR"] = pc['include_dirs']
aliases[var + "LIBDIR"] = pc['library_dirs'] aliases[var + "LIBDIR"] = pc['library_dirs']
aliases[var + "LIBEXTRA"] = list(filter(lambda s: not s.startswith(('-l','-L')), libs.split())) aliases[var + "LIBEXTRA"] = list(filter(lambda s: not s.startswith(('-l','-L')), libs.split()))
@ -12,25 +12,25 @@ diff -up src/sage/env.py.orig src/sage/env.py
# uname-specific flags # uname-specific flags
UNAME = os.uname() UNAME = os.uname()
diff -up src/sage/graphs/mcqd.pyx.orig src/sage/graphs/mcqd.pyx diff -up src/sage/graphs/mcqd.pyx.orig src/sage/graphs/mcqd.pyx
--- src/sage/graphs/mcqd.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/graphs/mcqd.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/graphs/mcqd.pyx 2020-10-30 15:47:32.294609185 -0600 +++ src/sage/graphs/mcqd.pyx 2021-05-28 11:18:15.134457599 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# distutils: language = c++ # distutils: language = c++
+# distutils: libraries = mcqd +# distutils: libraries = mcqd
# sage_setup: distribution = sage-mcqd # sage_setup: distribution = sage-mcqd
from sage.ext.memory_allocator cimport MemoryAllocator from cysignals.signals cimport sig_on, sig_off
diff -up src/sage/interfaces/primecount.pyx.orig src/sage/interfaces/primecount.pyx diff -up src/sage/interfaces/primecount.pyx.orig src/sage/interfaces/primecount.pyx
--- src/sage/interfaces/primecount.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/primecount.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/primecount.pyx 2020-10-30 15:47:42.766597012 -0600 +++ src/sage/interfaces/primecount.pyx 2021-05-28 11:18:15.134457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: libraries = primecount +# distutils: libraries = primecount
# sage_setup: distribution = sage-primecount # sage_setup: distribution = sage-primecount
r""" r"""
diff -up src/sage/libs/arb/arb.pxd.orig src/sage/libs/arb/arb.pxd diff -up src/sage/libs/arb/arb.pxd.orig src/sage/libs/arb/arb.pxd
--- src/sage/libs/arb/arb.pxd.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/arb/arb.pxd.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/arb/arb.pxd 2020-10-30 15:47:18.918624733 -0600 +++ src/sage/libs/arb/arb.pxd 2021-05-28 11:18:15.135457599 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# distutils: libraries = gmp flint ARB_LIBRARY # distutils: libraries = gmp flint ARB_LIBRARY
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -38,8 +38,8 @@ diff -up src/sage/libs/arb/arb.pxd.orig src/sage/libs/arb/arb.pxd
from sage.libs.arb.types cimport * from sage.libs.arb.types cimport *
diff -up src/sage/libs/arb/arb_version.pyx.orig src/sage/libs/arb/arb_version.pyx diff -up src/sage/libs/arb/arb_version.pyx.orig src/sage/libs/arb/arb_version.pyx
--- src/sage/libs/arb/arb_version.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/arb/arb_version.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/arb/arb_version.pyx 2020-10-30 15:54:30.743122593 -0600 +++ src/sage/libs/arb/arb_version.pyx 2021-05-28 11:18:15.135457599 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# -*- coding: utf-8 # -*- coding: utf-8
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -47,48 +47,48 @@ diff -up src/sage/libs/arb/arb_version.pyx.orig src/sage/libs/arb/arb_version.py
from sage.cpython.string cimport char_to_str from sage.cpython.string cimport char_to_str
diff -up src/sage/libs/arb/arith.pyx.orig src/sage/libs/arb/arith.pyx diff -up src/sage/libs/arb/arith.pyx.orig src/sage/libs/arb/arith.pyx
--- src/sage/libs/arb/arith.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/arb/arith.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/arb/arith.pyx 2020-10-30 15:54:53.191096510 -0600 +++ src/sage/libs/arb/arith.pyx 2021-05-28 11:18:15.135457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
""" """
Arithmetic functions using the arb library Arithmetic functions using the arb library
""" """
diff -up src/sage/libs/mpmath/ext_impl.pyx.orig src/sage/libs/mpmath/ext_impl.pyx diff -up src/sage/libs/mpmath/ext_impl.pyx.orig src/sage/libs/mpmath/ext_impl.pyx
--- src/sage/libs/mpmath/ext_impl.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/mpmath/ext_impl.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/mpmath/ext_impl.pyx 2020-10-30 15:52:15.823279433 -0600 +++ src/sage/libs/mpmath/ext_impl.pyx 2021-05-28 11:18:15.135457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/flint +# distutils: include_dirs = /usr/include/flint
""" """
This module provides the core implementation of multiprecision This module provides the core implementation of multiprecision
floating-point arithmetic. Operations are done in-place. floating-point arithmetic. Operations are done in-place.
diff -up src/sage/libs/mpmath/ext_libmp.pyx.orig src/sage/libs/mpmath/ext_libmp.pyx diff -up src/sage/libs/mpmath/ext_libmp.pyx.orig src/sage/libs/mpmath/ext_libmp.pyx
--- src/sage/libs/mpmath/ext_libmp.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/mpmath/ext_libmp.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/mpmath/ext_libmp.pyx 2020-10-30 15:53:01.023226835 -0600 +++ src/sage/libs/mpmath/ext_libmp.pyx 2021-05-28 11:18:15.135457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/flint +# distutils: include_dirs = /usr/include/flint
""" """
Faster versions of some key functions in mpmath.libmp Faster versions of some key functions in mpmath.libmp
""" """
diff -up src/sage/libs/mpmath/ext_main.pyx.orig src/sage/libs/mpmath/ext_main.pyx diff -up src/sage/libs/mpmath/ext_main.pyx.orig src/sage/libs/mpmath/ext_main.pyx
--- src/sage/libs/mpmath/ext_main.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/mpmath/ext_main.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/mpmath/ext_main.pyx 2020-10-30 15:52:35.663256336 -0600 +++ src/sage/libs/mpmath/ext_main.pyx 2021-05-28 11:18:15.135457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/flint +# distutils: include_dirs = /usr/include/flint
""" """
mpmath floating-point numbers mpmath floating-point numbers
diff -up src/sage/libs/mpmath/utils.pyx.orig src/sage/libs/mpmath/utils.pyx diff -up src/sage/libs/mpmath/utils.pyx.orig src/sage/libs/mpmath/utils.pyx
--- src/sage/libs/mpmath/utils.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/mpmath/utils.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/mpmath/utils.pyx 2020-10-30 15:51:33.798328356 -0600 +++ src/sage/libs/mpmath/utils.pyx 2021-05-28 11:18:15.136457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/flint +# distutils: include_dirs = /usr/include/flint
""" """
Utilities for Sage-mpmath interaction Utilities for Sage-mpmath interaction
diff -up src/sage/matrix/matrix_complex_ball_dense.pyx.orig src/sage/matrix/matrix_complex_ball_dense.pyx diff -up src/sage/matrix/matrix_complex_ball_dense.pyx.orig src/sage/matrix/matrix_complex_ball_dense.pyx
--- src/sage/matrix/matrix_complex_ball_dense.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/matrix/matrix_complex_ball_dense.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/matrix/matrix_complex_ball_dense.pyx 2020-10-30 15:55:44.799036557 -0600 +++ src/sage/matrix/matrix_complex_ball_dense.pyx 2021-05-28 11:18:15.136457599 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# distutils: libraries = ARB_LIBRARY # distutils: libraries = ARB_LIBRARY
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -96,26 +96,28 @@ diff -up src/sage/matrix/matrix_complex_ball_dense.pyx.orig src/sage/matrix/matr
Arbitrary precision complex ball matrices using Arb Arbitrary precision complex ball matrices using Arb
diff -up src/sage/matrix/matrix_cyclo_dense.pyx.orig src/sage/matrix/matrix_cyclo_dense.pyx diff -up src/sage/matrix/matrix_cyclo_dense.pyx.orig src/sage/matrix/matrix_cyclo_dense.pyx
--- src/sage/matrix/matrix_cyclo_dense.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/matrix/matrix_cyclo_dense.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/matrix/matrix_cyclo_dense.pyx 2020-10-30 15:56:45.647965864 -0600 +++ src/sage/matrix/matrix_cyclo_dense.pyx 2021-05-28 12:09:14.100657210 -0600
@@ -1,5 +1,6 @@ @@ -1,7 +1,7 @@
# distutils: language = c++ # distutils: language = c++
# distutils: libraries = ntl # distutils: libraries = NTL_LIBRARIES
+# distutils: include_dirs = /usr/include/arb /usr/include/flint # distutils: extra_compile_args = NTL_CFLAGS
-# distutils: include_dirs = NTL_INCDIR
+# distutils: include_dirs = NTL_INCDIR /usr/include/arb /usr/include/flint
# distutils: library_dirs = NTL_LIBDIR
# distutils: extra_link_args = NTL_LIBEXTRA
""" """
Matrices over Cyclotomic Fields
diff -up src/sage/matrix/matrix_mpolynomial_dense.pyx.orig src/sage/matrix/matrix_mpolynomial_dense.pyx diff -up src/sage/matrix/matrix_mpolynomial_dense.pyx.orig src/sage/matrix/matrix_mpolynomial_dense.pyx
--- src/sage/matrix/matrix_mpolynomial_dense.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/matrix/matrix_mpolynomial_dense.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/matrix/matrix_mpolynomial_dense.pyx 2020-10-30 15:57:50.862889413 -0600 +++ src/sage/matrix/matrix_mpolynomial_dense.pyx 2021-05-28 11:18:15.136457599 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/singular /usr/include/factory +# distutils: include_dirs = /usr/include/singular /usr/include/factory
""" """
Dense matrices over multivariate polynomials over fields Dense matrices over multivariate polynomials over fields
diff -up src/sage/rings/complex_arb.pyx.orig src/sage/rings/complex_arb.pyx diff -up src/sage/rings/complex_arb.pyx.orig src/sage/rings/complex_arb.pyx
--- src/sage/rings/complex_arb.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/complex_arb.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/complex_arb.pyx 2020-11-05 15:42:05.494453973 -0700 +++ src/sage/rings/complex_arb.pyx 2021-05-28 11:18:15.137457600 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# -*- coding: utf-8 # -*- coding: utf-8
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -123,42 +125,43 @@ diff -up src/sage/rings/complex_arb.pyx.orig src/sage/rings/complex_arb.pyx
Arbitrary precision complex balls using Arb Arbitrary precision complex balls using Arb
diff -up src/sage/rings/number_field/number_field_element_quadratic.pyx.orig src/sage/rings/number_field/number_field_element_quadratic.pyx diff -up src/sage/rings/number_field/number_field_element_quadratic.pyx.orig src/sage/rings/number_field/number_field_element_quadratic.pyx
--- src/sage/rings/number_field/number_field_element_quadratic.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/number_field/number_field_element_quadratic.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/number_field/number_field_element_quadratic.pyx 2020-11-05 15:48:03.436448764 -0700 +++ src/sage/rings/number_field/number_field_element_quadratic.pyx 2021-05-28 11:18:15.138457600 -0600
@@ -1,5 +1,6 @@ @@ -4,6 +4,7 @@
# distutils: libraries = ntl # distutils: library_dirs = NTL_LIBDIR
# distutils: extra_link_args = NTL_LIBEXTRA
# distutils: language = c++ # distutils: language = c++
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
""" """
Optimized Quadratic Number Field Elements Optimized Quadratic Number Field Elements
diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sage/rings/polynomial/multi_polynomial_libsingular.pyx diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
--- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2020-10-30 11:34:26.064980206 -0600 --- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2021-05-28 11:01:44.993275358 -0600
+++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2020-10-30 16:02:19.239570828 -0600 +++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2021-05-28 11:18:15.138457600 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/singular /usr/include/factory +# distutils: include_dirs = /usr/include/singular /usr/include/factory
r""" r"""
Multivariate Polynomials via libSINGULAR Multivariate Polynomials via libSINGULAR
diff -up src/sage/rings/polynomial/multi_polynomial.pyx.orig src/sage/rings/polynomial/multi_polynomial.pyx diff -up src/sage/rings/polynomial/multi_polynomial.pyx.orig src/sage/rings/polynomial/multi_polynomial.pyx
--- src/sage/rings/polynomial/multi_polynomial.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/polynomial/multi_polynomial.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/polynomial/multi_polynomial.pyx 2020-11-05 15:42:05.505453973 -0700 +++ src/sage/rings/polynomial/multi_polynomial.pyx 2021-05-28 11:18:15.139457600 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/singular /usr/include/factory +# distutils: include_dirs = /usr/include/singular /usr/include/factory
r""" r"""
Base class for elements of multivariate polynomial rings Base class for elements of multivariate polynomial rings
""" """
diff -up src/sage/rings/polynomial/plural.pyx.orig src/sage/rings/polynomial/plural.pyx diff -up src/sage/rings/polynomial/plural.pyx.orig src/sage/rings/polynomial/plural.pyx
--- src/sage/rings/polynomial/plural.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/polynomial/plural.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/polynomial/plural.pyx 2020-11-05 15:42:05.507453973 -0700 +++ src/sage/rings/polynomial/plural.pyx 2021-05-28 11:18:15.139457600 -0600
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
+# distutils: include_dirs = /usr/include/singular /usr/include/factory +# distutils: include_dirs = /usr/include/singular /usr/include/factory
r""" r"""
Noncommutative Polynomials via libSINGULAR/Plural Noncommutative Polynomials via libSINGULAR/Plural
diff -up src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig src/sage/rings/polynomial/polynomial_complex_arb.pyx diff -up src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig src/sage/rings/polynomial/polynomial_complex_arb.pyx
--- src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/polynomial/polynomial_complex_arb.pyx 2020-10-30 16:03:19.870498851 -0600 +++ src/sage/rings/polynomial/polynomial_complex_arb.pyx 2021-05-28 11:18:15.139457600 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# -*- coding: utf-8 # -*- coding: utf-8
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -166,8 +169,8 @@ diff -up src/sage/rings/polynomial/polynomial_complex_arb.pyx.orig src/sage/ring
Univariate polynomials over `\CC` with interval coefficients using Arb. Univariate polynomials over `\CC` with interval coefficients using Arb.
diff -up src/sage/rings/real_arb.pyx.orig src/sage/rings/real_arb.pyx diff -up src/sage/rings/real_arb.pyx.orig src/sage/rings/real_arb.pyx
--- src/sage/rings/real_arb.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/real_arb.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/real_arb.pyx 2020-11-05 15:42:05.510453973 -0700 +++ src/sage/rings/real_arb.pyx 2021-05-28 11:18:15.140457600 -0600
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
# -*- coding: utf-8 # -*- coding: utf-8
+# distutils: include_dirs = /usr/include/arb /usr/include/flint +# distutils: include_dirs = /usr/include/arb /usr/include/flint
@ -175,13 +178,13 @@ diff -up src/sage/rings/real_arb.pyx.orig src/sage/rings/real_arb.pyx
Arbitrary precision real balls using Arb Arbitrary precision real balls using Arb
diff -up src/sage_setup/command/sage_build_cython.py.orig src/sage_setup/command/sage_build_cython.py diff -up src/sage_setup/command/sage_build_cython.py.orig src/sage_setup/command/sage_build_cython.py
--- src/sage_setup/command/sage_build_cython.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage_setup/command/sage_build_cython.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage_setup/command/sage_build_cython.py 2020-10-30 16:04:33.325411659 -0600 +++ src/sage_setup/command/sage_build_cython.py 2021-05-28 12:09:14.113657210 -0600
@@ -59,6 +59,7 @@ if subprocess.call("""$CC --version | gr @@ -209,6 +209,7 @@ class sage_build_cython(Command):
self.library_order = library_order
# Search for dependencies in the source tree and add to the list of include directories
self.sage_include_dirs = sage_include_directories(use_sources=True)
+ self.sage_include_dirs.extend(['@@CYSIGNALS@@'])
# Search for dependencies in the source tree and add to the list of include directories from Cython.Build import cythonize
include_dirs = sage_include_directories(use_sources=True) import Cython.Compiler.Options
+include_dirs.extend(['@@CYSIGNALS@@'])
# Look for libraries only in what is configured already through distutils
# and environment variables

View file

@ -1,116 +1,283 @@
diff -up src/sage/env.py.orig src/sage/env.py diff -up configure.orig configure
--- src/sage/env.py.orig 2020-10-30 16:10:20.089999891 -0600 --- configure.orig 2021-05-09 16:01:38.000000000 -0600
+++ src/sage/env.py 2020-10-31 12:11:19.256615196 -0600 +++ configure 2021-06-03 06:44:51.137915577 -0600
@@ -391,7 +391,7 @@ def cython_aliases(): @@ -12184,12 +12184,12 @@ if test -n "$OPENBLAS_CFLAGS"; then
aliases = {} pkg_cv_OPENBLAS_CFLAGS="$OPENBLAS_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas >= 0.2.20\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openblas >= 0.2.20") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas >= 3.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "flexiblas >= 3.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENBLAS_CFLAGS=`$PKG_CONFIG --cflags "openblas >= 0.2.20" 2>/dev/null`
+ pkg_cv_OPENBLAS_CFLAGS=`$PKG_CONFIG --cflags "flexiblas >= 3.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -12201,12 +12201,12 @@ if test -n "$OPENBLAS_LIBS"; then
pkg_cv_OPENBLAS_LIBS="$OPENBLAS_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas >= 0.2.20\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openblas >= 0.2.20") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas >= 3.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "flexiblas >= 3.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENBLAS_LIBS=`$PKG_CONFIG --libs "openblas >= 0.2.20" 2>/dev/null`
+ pkg_cv_OPENBLAS_LIBS=`$PKG_CONFIG --libs "flexiblas >= 3.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -12227,9 +12227,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openblas >= 0.2.20" 2>&1`
+ OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "flexiblas >= 3.0.0" 2>&1`
else
- OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openblas >= 0.2.20" 2>&1`
+ OPENBLAS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "flexiblas >= 3.0.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$OPENBLAS_PKG_ERRORS" >&5
@@ -12257,16 +12257,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
#ifdef __cplusplus
extern "C"
#endif
-char openblas_get_config ();
+char flexiblas_get_version ();
int
main ()
{
-return openblas_get_config ();
+return flexiblas_get_version ();
;
return 0;
}
_ACEOF
-for ac_lib in '' openblas cblas blas; do
+for ac_lib in '' flexiblas cblas blas; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12319,22 +12319,22 @@ else
/* end confdefs.h. */
#include <stdio.h>
- char *openblas_get_config(void);
+ void flexiblas_get_version(void);
int version[3];
int
main ()
{
version[0] = version[1] = version[2] = 0;
/*printf("%s", openblas_get_config());*/
- if (sscanf(openblas_get_config(), "OpenBLAS %d.%d.%d",
- version, version+1, version+2) < 1)
- return 1;
+ flexiblas_get_version(&version[0], &version[1], &version[2]);
+
+
if ( 10000 * version[0]
+ 100 * version[1]
+ version[2]
- < 10000 * 0
- + 100 * 2
- + 20)
+ < 10000 * 3
+ + 100 * 0
+ + 0)
return 1;
;
return 0;
@@ -12387,7 +12387,7 @@ return cblas_dgemm ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas cblas blas; do
+for ac_lib in '' flexiblas cblas blas; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12451,7 +12451,7 @@ return dgeqrf ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12515,7 +12515,7 @@ return dgeqrf_ ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12579,7 +12579,7 @@ return DGEQRF ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12643,7 +12643,7 @@ return DGEQRF_ ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12731,16 +12731,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
#ifdef __cplusplus
extern "C"
#endif
-char openblas_get_config ();
+char flexiblas_get_version ();
int
main ()
{
-return openblas_get_config ();
+return flexiblas_get_version ();
;
return 0;
}
_ACEOF
-for ac_lib in '' openblas cblas blas; do
+for ac_lib in '' flexiblas cblas blas; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12793,22 +12793,22 @@ else
/* end confdefs.h. */
#include <stdio.h>
- char *openblas_get_config(void);
+ void flexiblas_get_version(void);
int version[3];
int
main ()
{
version[0] = version[1] = version[2] = 0;
/*printf("%s", openblas_get_config());*/
- if (sscanf(openblas_get_config(), "OpenBLAS %d.%d.%d",
- version, version+1, version+2) < 1)
- return 1;
+ flexiblas_get_version(&version[0], &version[1], &version[2]);
+
+
if ( 10000 * version[0]
+ 100 * version[1]
+ version[2]
- < 10000 * 0
- + 100 * 2
- + 20)
+ < 10000 * 3
+ + 100 * 0
+ + 0)
return 1;
;
return 0;
@@ -12861,7 +12861,7 @@ return cblas_dgemm ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas cblas blas; do
+for ac_lib in '' flexiblas cblas blas; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12925,7 +12925,7 @@ return dgeqrf ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -12989,7 +12989,7 @@ return dgeqrf_ ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -13053,7 +13053,7 @@ return DGEQRF ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -13117,7 +13117,7 @@ return DGEQRF_ ();
return 0;
}
_ACEOF
-for ac_lib in '' openblas lapack; do
+for ac_lib in '' flexiblas lapack; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -13192,12 +13192,12 @@ if test -n "$OPENBLASPCDIR"; then
pkg_cv_OPENBLASPCDIR="$OPENBLASPCDIR"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openblas\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openblas") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flexiblas\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "flexiblas") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENBLASPCDIR=`$PKG_CONFIG --variable="pcfiledir" "openblas" 2>/dev/null`
+ pkg_cv_OPENBLASPCDIR=`$PKG_CONFIG --variable="pcfiledir" "flexiblas" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13412,7 +13412,7 @@ fi
if test x$sage_spkg_install_openblas != xyes; then :
- SAGE_OPENBLAS_PC_COMMAND="\$(LN) -sf \"$OPENBLASPCDIR/openblas.pc\" \"\$(@)\""
+ SAGE_OPENBLAS_PC_COMMAND="\$(LN) -sf \"$OPENBLASPCDIR/flexiblas.pc\" \"\$(@)\""
if test x$sage_install_blas_pc = xyes; then :
diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2021-06-16 13:13:15.378722205 -0600
+++ src/sage/env.py 2021-06-16 13:42:26.443996772 -0600
@@ -209,7 +209,7 @@ MAXIMA = var("MAXIMA", "maxima")
MAXIMA_FAS = var("MAXIMA_FAS")
SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "")
ARB_LIBRARY = var("ARB_LIBRARY", "arb")
-CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "cblas:openblas:blas")
+CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "flexiblas:cblas:openblas:blas")
ECL_CONFIG = var("ECL_CONFIG", "ecl-config")
NTL_INCDIR = var("NTL_INCDIR")
NTL_LIBDIR = var("NTL_LIBDIR")
@@ -408,7 +408,7 @@ def cython_aliases():
for lib in ['fflas-ffpack', 'givaro', 'gsl', 'linbox', 'Singular', for lib in ['fflas-ffpack', 'givaro', 'gsl', 'linbox', 'Singular',
- 'libpng', 'gdlib', 'm4ri', 'zlib', 'cblas', 'lapack']: 'libpng', 'gdlib', 'm4ri', 'zlib', 'cblas', 'lapack']:
+ 'libpng', 'gdlib', 'm4ri', 'zlib', 'flexiblas']:
var = lib.upper().replace("-", "") + "_" var = lib.upper().replace("-", "") + "_"
- if lib == 'cblas':
+ if lib == 'cblas' or lib == 'lapack':
lib = get_cblas_pc_module_name()
if lib == 'zlib': if lib == 'zlib':
aliases[var + "CFLAGS"] = "" aliases[var + "CFLAGS"] = ""
diff -up src/sage/matrix/matrix_integer_dense.pyx.orig src/sage/matrix/matrix_integer_dense.pyx
--- src/sage/matrix/matrix_integer_dense.pyx.orig 2020-10-30 11:52:49.737274785 -0600
+++ src/sage/matrix/matrix_integer_dense.pyx 2020-10-31 17:58:56.243063508 -0600
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# distutils: extra_compile_args = M4RI_CFLAGS
-# distutils: libraries = iml ntl gmp m CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = M4RI_INCDIR CBLAS_INCDIR
+# distutils: libraries = iml ntl gmp m FLEXIBLAS_LIBRARIES
+# distutils: library_dirs = FLEXIBLAS_LIBDIR
+# distutils: include_dirs = M4RI_INCDIR FLEXIBLAS_INCDIR
"""
Dense matrices over the integer ring
diff -up src/sage/matrix/matrix_modn_dense_double.pyx.orig src/sage/matrix/matrix_modn_dense_double.pyx
--- src/sage/matrix/matrix_modn_dense_double.pyx.orig 2020-10-24 11:37:59.000000000 -0600
+++ src/sage/matrix/matrix_modn_dense_double.pyx 2020-11-05 15:44:59.390454421 -0700
@@ -1,7 +1,7 @@
# distutils: language = c++
-# distutils: libraries = CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = CBLAS_INCDIR
+# distutils: libraries = FLEXIBLAS_LIBRARIES
+# distutils: library_dirs = FLEXIBLAS_LIBDIR
+# distutils: include_dirs = FLEXIBLAS_INCDIR
# distutils: extra_compile_args = -D_XPG6
"""
Dense matrices over `\ZZ/n\ZZ` for `n < 2^{23}` using LinBox's ``Modular<double>``
diff -up src/sage/matrix/matrix_modn_dense_float.pyx.orig src/sage/matrix/matrix_modn_dense_float.pyx
--- src/sage/matrix/matrix_modn_dense_float.pyx.orig 2020-11-05 15:44:59.391454421 -0700
+++ src/sage/matrix/matrix_modn_dense_float.pyx 2020-11-05 15:45:54.965454564 -0700
@@ -1,7 +1,7 @@
# distutils: language = c++
-# distutils: libraries = CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = CBLAS_INCDIR
+# distutils: libraries = FLEXIBLAS_LIBRARIES
+# distutils: library_dirs = FLEXIBLAS_LIBDIR
+# distutils: include_dirs = FLEXIBLAS_INCDIR
"""
Dense matrices over `\ZZ/n\ZZ` for `n < 2^{11}` using LinBox's ``Modular<float>``
diff -up src/sage/matrix/matrix_rational_dense.pyx.orig src/sage/matrix/matrix_rational_dense.pyx
--- src/sage/matrix/matrix_rational_dense.pyx.orig 2020-10-30 11:34:26.031980257 -0600
+++ src/sage/matrix/matrix_rational_dense.pyx 2020-10-31 17:58:10.490106273 -0600
@@ -1,7 +1,7 @@
# distutils: extra_compile_args = -D_XPG6 M4RI_CFLAGS
-# distutils: libraries = iml ntl m CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = M4RI_INCDIR CBLAS_INCDIR
+# distutils: libraries = iml ntl m FLEXIBLAS_LIBRARIES
+# distutils: library_dirs = FLEXIBLAS_LIBDIR
+# distutils: include_dirs = M4RI_INCDIR FLEXIBLAS_INCDIR
"""
Dense matrices over the rational field
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
--- src/sage/misc/cython.py.orig 2020-10-30 16:08:06.039158996 -0600
+++ src/sage/misc/cython.py 2020-10-30 16:24:09.037024792 -0600
@@ -35,10 +35,9 @@ from sage.cpython.string import str_to_b
# CBLAS can be one of multiple implementations
-cblas_pc = pkgconfig.parse('cblas')
-cblas_libs = list(cblas_pc['libraries'])
-cblas_library_dirs = list(cblas_pc['library_dirs'])
-cblas_include_dirs = list(cblas_pc['include_dirs'])
+cblas_libs = ['flexiblas']
+cblas_library_dirs = ['/usr/lib']
+cblas_include_dirs = ['/usr/include/flexiblas']
standard_libs = [
'mpfr', 'gmp', 'gmpxx', 'pari', 'm',
diff -up src/sage_setup/library_order.py.orig src/sage_setup/library_order.py
--- src/sage_setup/library_order.py.orig 2020-10-24 11:37:59.000000000 -0600
+++ src/sage_setup/library_order.py 2020-10-31 12:11:54.313540360 -0600
@@ -10,20 +10,18 @@ import os
import pkgconfig
# CBLAS can be one of multiple implementations
-cblas_pc = pkgconfig.parse('cblas')
-cblas_libs = cblas_pc['libraries']
-cblas_library_dirs = cblas_pc['library_dirs']
-cblas_include_dirs = cblas_pc['include_dirs']
+cblas_libs = ['flexiblas']
+cblas_library_dirs = ['/usr/lib']
+cblas_include_dirs = ['/usr/include/flexiblas']
# TODO: Remove Cygwin hack by installing a suitable cblas.pc
if os.path.exists('/usr/lib/libblas.dll.a'):
cblas_libs = ['gslcblas']
# LAPACK can be one of multiple implementations
-lapack_pc = pkgconfig.parse('lapack')
-lapack_libs = lapack_pc['libraries']
-lapack_library_dirs = lapack_pc['library_dirs']
-lapack_include_dirs = lapack_pc['include_dirs']
+lapack_libs = ['flexiblas']
+lapack_library_dirs = ['/usr/lib']
+lapack_include_dirs = ['/usr/include/flexiblas']
# GD image library
gd_pc = pkgconfig.parse('gdlib')

View file

@ -1,6 +1,6 @@
diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py
--- src/sage/interfaces/jmoldata.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/jmoldata.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/jmoldata.py 2020-10-30 14:01:33.291052531 -0600 +++ src/sage/interfaces/jmoldata.py 2021-05-28 11:36:18.844565672 -0600
@@ -148,8 +148,6 @@ class JmolData(SageObject): @@ -148,8 +148,6 @@ class JmolData(SageObject):
sage: print(os.path.exists(testfile)) # optional -- java sage: print(os.path.exists(testfile)) # optional -- java
True True
@ -21,5 +21,5 @@ diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py
+ subprocess.call(["jmol", "-n", "-g", size_arg, + subprocess.call(["jmol", "-n", "-g", size_arg,
+ "-J", launchscript, "-j", imagescript], stdout=jout) + "-J", launchscript, "-j", imagescript], stdout=jout)
if not os.path.isfile(targetfile): if not os.path.isfile(targetfile):
raise RuntimeError("Jmol failed to create file %s, see %s for details"%(repr(targetfile), repr(scratchout))) raise RuntimeError(f"Jmol failed to create file {targetfile}: {Path(scratchout).read_text()}")
os.unlink(scratchout) os.unlink(scratchout)

View file

@ -1,10 +1,10 @@
diff -up src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig src/sage/libs/lcalc/lcalc_Lfunction.pyx diff -up src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig src/sage/libs/lcalc/lcalc_Lfunction.pyx
--- src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/lcalc/lcalc_Lfunction.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/lcalc/lcalc_Lfunction.pyx 2020-10-30 14:40:53.875121354 -0600 +++ src/sage/libs/lcalc/lcalc_Lfunction.pyx 2021-06-02 17:12:56.077802570 -0600
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
# distutils: libraries = m ntl Lfunction # distutils: libraries = m NTL_LIBRARIES Lfunction
-# distutils: extra_compile_args = -O3 -ffast-math -# distutils: extra_compile_args = NTL_CFLAGS -O3 -ffast-math
+# distutils: extra_compile_args = -std=gnu++11 -ffast-math +# distutils: extra_compile_args = NTL_CFLAGS -std=gnu++11 -ffast-math
# distutils: language = c++ # distutils: include_dirs = NTL_INCDIR
r""" # distutils: library_dirs = NTL_LIBDIR
Rubinstein's lcalc library # distutils: extra_link_args = NTL_LIBEXTRA

View file

@ -1,18 +1,18 @@
diff -up src/sage/env.py.orig src/sage/env.py diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2020-10-30 15:44:29.575821493 -0600 --- src/sage/env.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/env.py 2020-10-30 16:09:54.834029866 -0600 +++ src/sage/env.py 2021-06-02 17:13:07.387813291 -0600
@@ -182,7 +182,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi @@ -194,7 +194,7 @@ CONWAY_POLYNOMIALS_DATA_DIR = var("CONWA
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs')) GRAPHS_DATA_DIR = var("GRAPHS_DATA_DIR", join(SAGE_SHARE, "graphs"))
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves')) ELLCURVE_DATA_DIR = var("ELLCURVE_DATA_DIR", join(SAGE_SHARE, "ellcurves"))
var('POLYTOPE_DATA_DIR', join(SAGE_SHARE, 'reflexive_polytopes')) POLYTOPE_DATA_DIR = var("POLYTOPE_DATA_DIR", join(SAGE_SHARE, "reflexive_polytopes"))
-var('GAP_ROOT_DIR', join(SAGE_SHARE, 'gap')) -GAP_ROOT_DIR = var("GAP_ROOT_DIR", join(SAGE_SHARE, "gap"))
+var('GAP_ROOT_DIR', join('/usr','lib','gap')) +GAP_ROOT_DIR = var("GAP_ROOT_DIR", join('/usr', 'lib', "gap"))
var('THEBE_DIR', join(SAGE_SHARE, 'thebe')) THEBE_DIR = var("THEBE_DIR", join(SAGE_SHARE, "thebe"))
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs')) COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs"))
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona')) CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona"))
diff -up src/sage/libs/gap/element.pyx.orig src/sage/libs/gap/element.pyx diff -up src/sage/libs/gap/element.pyx.orig src/sage/libs/gap/element.pyx
--- src/sage/libs/gap/element.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/gap/element.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/gap/element.pyx 2020-10-30 14:42:23.392975217 -0600 +++ src/sage/libs/gap/element.pyx 2021-05-28 11:43:51.678593573 -0600
@@ -264,7 +264,7 @@ cdef Obj make_gap_string(sage_string) ex @@ -264,7 +264,7 @@ cdef Obj make_gap_string(sage_string) ex
try: try:
GAP_Enter() GAP_Enter()
@ -104,8 +104,8 @@ diff -up src/sage/libs/gap/element.pyx.orig src/sage/libs/gap/element.pyx
if isinstance(i, tuple): if isinstance(i, tuple):
diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd
--- src/sage/libs/gap/gap_includes.pxd.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/gap/gap_includes.pxd.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/gap/gap_includes.pxd 2020-10-30 14:42:23.392975217 -0600 +++ src/sage/libs/gap/gap_includes.pxd 2021-05-28 11:43:51.679593573 -0600
@@ -13,8 +13,8 @@ from libc.stdint cimport uintptr_t, uint @@ -13,8 +13,8 @@ from libc.stdint cimport uintptr_t, uint
cdef extern from "gap/system.h" nogil: cdef extern from "gap/system.h" nogil:
@ -225,9 +225,9 @@ diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.
+ Obj NEW_STRING(Int len) + Obj NEW_STRING(Int len)
+ Obj MakeStringWithLen(const char *buf, size_t len) + Obj MakeStringWithLen(const char *buf, size_t len)
diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
--- src/sage/libs/gap/util.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/gap/util.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/gap/util.pyx 2020-10-30 14:42:23.393975216 -0600 +++ src/sage/libs/gap/util.pyx 2021-05-28 11:43:51.679593573 -0600
@@ -386,7 +386,7 @@ cdef Obj gap_eval(str gap_string) except @@ -387,7 +387,7 @@ cdef Obj gap_eval(str gap_string) except
""" """
initialize() initialize()
cdef Obj result cdef Obj result

View file

@ -1,116 +0,0 @@
diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2020-10-30 16:10:20.089999891 -0600
+++ src/sage/env.py 2020-10-31 12:11:19.256615196 -0600
@@ -391,7 +391,7 @@ def cython_aliases():
aliases = {}
for lib in ['fflas-ffpack', 'givaro', 'gsl', 'linbox', 'Singular',
- 'libpng', 'gdlib', 'm4ri', 'zlib', 'cblas', 'lapack']:
+ 'libpng', 'gdlib', 'm4ri', 'zlib', 'openblas']:
var = lib.upper().replace("-", "") + "_"
if lib == 'zlib':
aliases[var + "CFLAGS"] = ""
diff -up src/sage/matrix/matrix_integer_dense.pyx.orig src/sage/matrix/matrix_integer_dense.pyx
--- src/sage/matrix/matrix_integer_dense.pyx.orig 2020-10-30 11:52:49.737274785 -0600
+++ src/sage/matrix/matrix_integer_dense.pyx 2020-10-31 17:58:56.243063508 -0600
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# distutils: extra_compile_args = M4RI_CFLAGS
-# distutils: libraries = iml ntl gmp m CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = M4RI_INCDIR CBLAS_INCDIR
+# distutils: libraries = iml ntl gmp m OPENBLAS_LIBRARIES
+# distutils: library_dirs = OPENBLAS_LIBDIR
+# distutils: include_dirs = M4RI_INCDIR OPENBLAS_INCDIR
"""
Dense matrices over the integer ring
diff -up src/sage/matrix/matrix_modn_dense_double.pyx.orig src/sage/matrix/matrix_modn_dense_double.pyx
--- src/sage/matrix/matrix_modn_dense_double.pyx.orig 2020-10-24 11:37:59.000000000 -0600
+++ src/sage/matrix/matrix_modn_dense_double.pyx 2020-11-05 15:54:31.940411433 -0700
@@ -1,7 +1,7 @@
# distutils: language = c++
-# distutils: libraries = CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = CBLAS_INCDIR
+# distutils: libraries = OPENBLAS_LIBRARIES
+# distutils: library_dirs = OPENBLAS_LIBDIR
+# distutils: include_dirs = OPENBLAS_INCDIR
# distutils: extra_compile_args = -D_XPG6
"""
Dense matrices over `\ZZ/n\ZZ` for `n < 2^{23}` using LinBox's ``Modular<double>``
diff -up src/sage/matrix/matrix_modn_dense_float.pyx.orig src/sage/matrix/matrix_modn_dense_float.pyx
--- src/sage/matrix/matrix_modn_dense_float.pyx.orig 2020-11-05 15:54:31.940411433 -0700
+++ src/sage/matrix/matrix_modn_dense_float.pyx 2020-11-05 15:55:38.853405001 -0700
@@ -1,7 +1,7 @@
# distutils: language = c++
-# distutils: libraries = CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = CBLAS_INCDIR
+# distutils: libraries = OPENBLAS_LIBRARIES
+# distutils: library_dirs = OPENBLAS_LIBDIR
+# distutils: include_dirs = OPENBLAS_INCDIR
"""
Dense matrices over `\ZZ/n\ZZ` for `n < 2^{11}` using LinBox's ``Modular<float>``
diff -up src/sage/matrix/matrix_rational_dense.pyx.orig src/sage/matrix/matrix_rational_dense.pyx
--- src/sage/matrix/matrix_rational_dense.pyx.orig 2020-10-30 11:34:26.031980257 -0600
+++ src/sage/matrix/matrix_rational_dense.pyx 2020-10-31 17:58:10.490106273 -0600
@@ -1,7 +1,7 @@
# distutils: extra_compile_args = -D_XPG6 M4RI_CFLAGS
-# distutils: libraries = iml ntl m CBLAS_LIBRARIES
-# distutils: library_dirs = CBLAS_LIBDIR
-# distutils: include_dirs = M4RI_INCDIR CBLAS_INCDIR
+# distutils: libraries = iml ntl m OPENBLAS_LIBRARIES
+# distutils: library_dirs = OPENBLAS_LIBDIR
+# distutils: include_dirs = M4RI_INCDIR OPENBLAS_INCDIR
"""
Dense matrices over the rational field
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
--- src/sage/misc/cython.py.orig 2020-10-30 16:08:06.039158996 -0600
+++ src/sage/misc/cython.py 2020-10-30 16:24:09.037024792 -0600
@@ -35,10 +35,9 @@ from sage.cpython.string import str_to_b
# CBLAS can be one of multiple implementations
-cblas_pc = pkgconfig.parse('cblas')
-cblas_libs = list(cblas_pc['libraries'])
-cblas_library_dirs = list(cblas_pc['library_dirs'])
-cblas_include_dirs = list(cblas_pc['include_dirs'])
+cblas_libs = ['openblas']
+cblas_library_dirs = ['/usr/lib']
+cblas_include_dirs = ['/usr/include/openblas']
standard_libs = [
'mpfr', 'gmp', 'gmpxx', 'pari', 'm',
diff -up src/sage_setup/library_order.py.orig src/sage_setup/library_order.py
--- src/sage_setup/library_order.py.orig 2020-10-24 11:37:59.000000000 -0600
+++ src/sage_setup/library_order.py 2020-10-31 12:11:54.313540360 -0600
@@ -10,20 +10,18 @@ import os
import pkgconfig
# CBLAS can be one of multiple implementations
-cblas_pc = pkgconfig.parse('cblas')
-cblas_libs = cblas_pc['libraries']
-cblas_library_dirs = cblas_pc['library_dirs']
-cblas_include_dirs = cblas_pc['include_dirs']
+cblas_libs = ['openblas']
+cblas_library_dirs = ['/usr/lib']
+cblas_include_dirs = ['/usr/include/openblas']
# TODO: Remove Cygwin hack by installing a suitable cblas.pc
if os.path.exists('/usr/lib/libblas.dll.a'):
cblas_libs = ['gslcblas']
# LAPACK can be one of multiple implementations
-lapack_pc = pkgconfig.parse('lapack')
-lapack_libs = lapack_pc['libraries']
-lapack_library_dirs = lapack_pc['library_dirs']
-lapack_include_dirs = lapack_pc['include_dirs']
+lapack_libs = ['openblas']
+lapack_library_dirs = ['/usr/lib']
+lapack_include_dirs = ['/usr/include/openblas']
# GD image library
gd_pc = pkgconfig.parse('gdlib')

View file

@ -1,83 +1,6 @@
diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/remote-sagetex.py
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2020-08-12 02:35:31.000000000 -0600
+++ build/pkgs/sagetex/src/remote-sagetex.py 2020-10-30 14:03:01.286904419 -0600
@@ -24,12 +24,11 @@
## You should have received a copy of the GNU General Public License along
## with this program. If not, see <http://www.gnu.org/licenses/>.
##
-from __future__ import print_function
import json
import sys
import time
import re
-import urllib
+import urllib.request, urllib.parse, urllib.error
import hashlib
import os
import os.path
@@ -156,7 +155,7 @@ class RemoteSage:
'\n*(?P<output>.*)', re.DOTALL)
self._404 = re.compile('404 Not Found')
self._session = self._get_url('login',
- urllib.urlencode({'username': user,
+ urllib.parse.urlencode({'username': user,
'password':
password}))['session']
self._codewrap = """try:
@@ -176,18 +175,18 @@ except:
_p_.save(filename=plotfilename, **kwargs)""")
def _encode(self, d):
- return 'session={0}&'.format(self._session) + urllib.urlencode(d)
+ return 'session={0}&'.format(self._session) + urllib.parse.urlencode(d)
def _get_url(self, action, u):
- with closing(urllib.urlopen(self._srv + '/simple/' + action +
- '?' + u)) as h:
+ with closing(urllib.request.urlopen(self._srv + '/simple/' + action +
+ '?' + u)) as h:
data = self._response.match(h.read())
result = json.loads(data.group('header'))
result['output'] = data.group('output').rstrip()
return result
def _get_file(self, fn, cell, ofn=None):
- with closing(urllib.urlopen(self._srv + '/simple/' + 'file' + '?' +
+ with closing(urllib.request.urlopen(self._srv + '/simple/' + 'file' + '?' +
self._encode({'cell': cell, 'file': fn}))) as h:
myfn = ofn if ofn else fn
data = h.read()
@@ -277,13 +276,13 @@ if login_info_file:
password = get_val(line)
if not server:
- server = raw_input('Enter server: ')
+ server = input('Enter server: ')
if not server.startswith('http'):
server = 'https://' + server
if not username:
- username = raw_input('Enter username: ')
+ username = input('Enter username: ')
if not password:
from getpass import getpass
diff -up build/pkgs/sagetex/src/sagetexparse.py.orig build/pkgs/sagetex/src/sagetexparse.py
--- build/pkgs/sagetex/src/sagetexparse.py.orig 2020-08-12 02:35:31.000000000 -0600
+++ build/pkgs/sagetex/src/sagetexparse.py 2020-10-30 14:03:01.286904419 -0600
@@ -132,7 +132,7 @@ class SageCodeExtractor():
def plotout(self, s, l, t):
self.result += '# \\sageplot{} from line %s:\n' % lineno(l, s)
- if t.format is not '':
+ if t.format != '':
self.result += '# format: %s' % t.format[0][1:-1] + '\n'
self.result += t.code[1:-1] + '\n\n'
diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c
--- src/sage/cpython/debugimpl.c.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/cpython/debugimpl.c.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/cpython/debugimpl.c 2020-10-30 14:03:01.299904398 -0600 +++ src/sage/cpython/debugimpl.c 2021-05-28 11:39:54.261578894 -0600
@@ -148,6 +148,7 @@ static void _type_debug(PyTypeObject* tp @@ -148,6 +148,7 @@ static void _type_debug(PyTypeObject* tp
printf(" tp_basicsize: %ld\n", (long)tp->tp_basicsize); printf(" tp_basicsize: %ld\n", (long)tp->tp_basicsize);
printf(" tp_itemsize: %ld\n", (long)tp->tp_itemsize); printf(" tp_itemsize: %ld\n", (long)tp->tp_itemsize);
@ -95,9 +18,9 @@ diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c
attr_pointer_meth(tp_call, "__call__"); attr_pointer_meth(tp_call, "__call__");
attr_pointer_meth(tp_str, "__str__"); attr_pointer_meth(tp_str, "__str__");
diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx
--- src/sage/cpython/debug.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/cpython/debug.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/cpython/debug.pyx 2020-10-30 14:03:01.300904396 -0600 +++ src/sage/cpython/debug.pyx 2021-05-28 11:39:54.261578894 -0600
@@ -232,6 +232,7 @@ def type_debug(cls): @@ -231,6 +231,7 @@ def type_debug(cls):
tp_basicsize: 16 tp_basicsize: 16
tp_itemsize: 0 tp_itemsize: 0
tp_dictoffset: 0 tp_dictoffset: 0
@ -105,7 +28,7 @@ diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx
tp_weaklistoffset: 0 tp_weaklistoffset: 0
tp_base (__base__): NULL tp_base (__base__): NULL
tp_bases (__bases__): tuple: tp_bases (__bases__): tuple:
@@ -259,7 +260,6 @@ def type_debug(cls): @@ -258,7 +259,6 @@ def type_debug(cls):
tp_dealloc (__dealloc__): 0x7fc57d757010 tp_dealloc (__dealloc__): 0x7fc57d757010
tp_free: PyObject_Del tp_free: PyObject_Del
tp_repr (__repr__): 0x7fc57d75b990 tp_repr (__repr__): 0x7fc57d75b990
@ -114,9 +37,9 @@ diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx
tp_call (__call__): NULL tp_call (__call__): NULL
tp_str (__str__): 0x7fc57d757020 tp_str (__str__): 0x7fc57d757020
diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py
--- src/sage/geometry/triangulation/point_configuration.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/geometry/triangulation/point_configuration.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/geometry/triangulation/point_configuration.py 2020-10-30 14:03:01.301904394 -0600 +++ src/sage/geometry/triangulation/point_configuration.py 2021-05-28 11:39:54.263578895 -0600
@@ -619,11 +619,11 @@ class PointConfiguration(UniqueRepresent @@ -618,11 +618,11 @@ class PointConfiguration(UniqueRepresent
['{{0,1,2,4},{1,2,3,4}}'] ['{{0,1,2,4},{1,2,3,4}}']
""" """
timeout = 600 timeout = 600
@ -131,9 +54,9 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge
if verbose: if verbose:
print("#### TOPCOM input ####") print("#### TOPCOM input ####")
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
--- src/sage/interfaces/frobby.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/frobby.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/frobby.py 2020-10-30 14:03:02.534902319 -0600 +++ src/sage/interfaces/frobby.py 2021-05-28 11:39:54.264578894 -0600
@@ -79,7 +79,7 @@ class Frobby: @@ -78,7 +78,7 @@ class Frobby:
print("Frobby command: ", repr(command)) print("Frobby command: ", repr(command))
print("Frobby input:\n", input) print("Frobby input:\n", input)
@ -143,9 +66,9 @@ diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
frinput = str_to_bytes(input) frinput = str_to_bytes(input)
else: else:
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
--- src/sage/interfaces/gfan.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/gfan.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/gfan.py 2020-10-30 14:11:30.550047499 -0600 +++ src/sage/interfaces/gfan.py 2021-05-28 11:39:54.264578894 -0600
@@ -62,7 +62,7 @@ class Gfan(object): @@ -61,7 +61,7 @@ class Gfan(object):
print("gfan input:\n%s" % I) print("gfan input:\n%s" % I)
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
@ -155,9 +78,9 @@ diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
# sometimes, gfan outputs stuff to stderr even though everything is fine # sometimes, gfan outputs stuff to stderr even though everything is fine
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
--- src/sage/interfaces/latte.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/latte.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/latte.py 2020-10-30 14:03:03.974899895 -0600 +++ src/sage/interfaces/latte.py 2021-05-28 11:39:54.265578894 -0600
@@ -152,6 +152,7 @@ def count(arg, ehrhart_polynomial=False, @@ -162,6 +162,7 @@ def count(arg, ehrhart_polynomial=False,
latte_proc = Popen(args, latte_proc = Popen(args,
stdin=PIPE, stdout=PIPE, stdin=PIPE, stdout=PIPE,
stderr=(None if verbose else PIPE), stderr=(None if verbose else PIPE),
@ -165,7 +88,7 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
cwd=str(SAGE_TMP)) cwd=str(SAGE_TMP))
ans, err = latte_proc.communicate(arg) ans, err = latte_proc.communicate(arg)
@@ -364,6 +365,7 @@ def integrate(arg, polynomial=None, algo @@ -385,6 +386,7 @@ def integrate(arg, polynomial=None, algo
latte_proc = Popen(args, latte_proc = Popen(args,
stdin=PIPE, stdout=PIPE, stdin=PIPE, stdout=PIPE,
stderr=(None if verbose else PIPE), stderr=(None if verbose else PIPE),
@ -174,8 +97,8 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
ans, err = latte_proc.communicate(arg) ans, err = latte_proc.communicate(arg)
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
--- src/sage/interfaces/sagespawn.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/sagespawn.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/sagespawn.pyx 2020-10-30 14:03:03.975899894 -0600 +++ src/sage/interfaces/sagespawn.pyx 2021-05-28 11:39:54.266578895 -0600
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
""" """
Sage wrapper around pexpect's ``spawn`` class and Sage wrapper around pexpect's ``spawn`` class and
@ -224,8 +147,8 @@ diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.py
pass pass
self.fileobj.close() self.fileobj.close()
diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx
--- src/sage/libs/coxeter3/coxeter.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/libs/coxeter3/coxeter.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/libs/coxeter3/coxeter.pyx 2020-10-30 14:03:03.976899892 -0600 +++ src/sage/libs/coxeter3/coxeter.pyx 2021-05-28 11:39:54.267578895 -0600
@@ -37,7 +37,7 @@ cdef class String: @@ -37,7 +37,7 @@ cdef class String:
EXAMPLES:: EXAMPLES::
@ -359,9 +282,9 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
if rank == 0: if rank == 0:
raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented") raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented")
diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py
--- src/sage/misc/sageinspect.py.orig 2020-11-01 10:38:08.203022437 -0700 --- src/sage/misc/sageinspect.py.orig 2021-05-28 11:01:40.384274506 -0600
+++ src/sage/misc/sageinspect.py 2020-11-01 10:43:43.355143620 -0700 +++ src/sage/misc/sageinspect.py 2021-05-28 11:39:54.269578895 -0600
@@ -463,12 +463,9 @@ class SageArgSpecVisitor(ast.NodeVisitor @@ -462,12 +462,9 @@ class SageArgSpecVisitor(ast.NodeVisitor
""" """
return node.id return node.id
@ -377,7 +300,7 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py
INPUT: INPUT:
@@ -476,17 +473,21 @@ class SageArgSpecVisitor(ast.NodeVisitor @@ -475,17 +472,21 @@ class SageArgSpecVisitor(ast.NodeVisitor
OUTPUT: OUTPUT:
@ -405,7 +328,7 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py
""" """
return node.value return node.value
@@ -520,57 +521,6 @@ class SageArgSpecVisitor(ast.NodeVisitor @@ -519,57 +520,6 @@ class SageArgSpecVisitor(ast.NodeVisitor
""" """
return node.arg return node.arg
@ -464,9 +387,9 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py
""" """
Visit a Python AST :class:`ast.List` node. Visit a Python AST :class:`ast.List` node.
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
--- src/sage/plot/plot3d/plot3d.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/plot/plot3d/plot3d.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/plot/plot3d/plot3d.py 2020-10-30 14:24:36.813732073 -0600 +++ src/sage/plot/plot3d/plot3d.py 2021-05-28 11:39:54.270578895 -0600
@@ -186,7 +186,7 @@ class _Coordinates(object): @@ -185,7 +185,7 @@ class _Coordinates(object):
sage: arb((x+z,y*z,z), z, (x,y)) sage: arb((x+z,y*z,z), z, (x,y))
Arbitrary Coordinates coordinate transform (z in terms of x, y) Arbitrary Coordinates coordinate transform (z in terms of x, y)
""" """
@ -476,9 +399,9 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var])))) raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var]))))
self.dep_var = dep_var self.dep_var = dep_var
diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
--- src/sage/rings/integer.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/integer.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/integer.pyx 2020-10-30 14:03:05.737896928 -0600 +++ src/sage/rings/integer.pyx 2021-05-28 11:39:54.274578895 -0600
@@ -7093,7 +7093,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c @@ -7089,7 +7089,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
x += 1 # Strip spaces x += 1 # Strip spaces
# Disallow a sign here # Disallow a sign here
@ -488,9 +411,9 @@ diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
assert base >= 2 assert base >= 2
diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomial/pbori/pbori.pyx diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomial/pbori/pbori.pyx
--- src/sage/rings/polynomial/pbori/pbori.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/polynomial/pbori/pbori.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/polynomial/pbori/pbori.pyx 2020-11-05 15:44:02.756454276 -0700 +++ src/sage/rings/polynomial/pbori/pbori.pyx 2021-05-28 11:39:54.278578895 -0600
@@ -4800,8 +4800,7 @@ cdef class PolynomialConstruct: @@ -4704,8 +4704,7 @@ cdef class PolynomialConstruct:
# So, it is just a conversion. [Simon King] # So, it is just a conversion. [Simon King]
return (<BooleanPolynomialRing>ring)._element_constructor_(x) return (<BooleanPolynomialRing>ring)._element_constructor_(x)
@ -501,9 +424,9 @@ diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomia
cdef class MonomialConstruct: cdef class MonomialConstruct:
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
--- src/sage/rings/real_mpfi.pyx.orig 2020-10-30 11:34:28.078977132 -0600 --- src/sage/rings/real_mpfi.pyx.orig 2021-05-28 11:01:45.006275360 -0600
+++ src/sage/rings/real_mpfi.pyx 2020-10-30 14:03:09.088891288 -0600 +++ src/sage/rings/real_mpfi.pyx 2021-05-28 11:39:54.280578896 -0600
@@ -1955,12 +1955,12 @@ cdef class RealIntervalFieldElement(Ring @@ -1944,12 +1944,12 @@ cdef class RealIntervalFieldElement(Ring
cdef long digits cdef long digits
digits = strlen(lower_s) digits = strlen(lower_s)
@ -518,7 +441,7 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
digits -= 1 digits -= 1
upper_expo -= digits upper_expo -= digits
@@ -2129,7 +2129,7 @@ cdef class RealIntervalFieldElement(Ring @@ -2118,7 +2118,7 @@ cdef class RealIntervalFieldElement(Ring
raise MemoryError("Unable to allocate memory for the mantissa of an interval") raise MemoryError("Unable to allocate memory for the mantissa of an interval")
mpz_get_str(tmp_cstr, base, lower_mpz) mpz_get_str(tmp_cstr, base, lower_mpz)
digits = strlen(tmp_cstr) digits = strlen(tmp_cstr)
@ -528,9 +451,9 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
mant_string = bytes_to_str(tmp_cstr+1) mant_string = bytes_to_str(tmp_cstr+1)
sign_string = bytes_to_str(b'-') sign_string = bytes_to_str(b'-')
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
--- src/sage/rings/real_mpfr.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/rings/real_mpfr.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/rings/real_mpfr.pyx 2020-11-05 15:44:02.769454276 -0700 +++ src/sage/rings/real_mpfr.pyx 2021-05-28 11:39:54.283578896 -0600
@@ -2091,7 +2091,7 @@ cdef class RealNumber(sage.structure.ele @@ -2095,7 +2095,7 @@ cdef class RealNumber(sage.structure.ele
if s is NULL: if s is NULL:
raise RuntimeError("unable to convert an mpfr number to a string") raise RuntimeError("unable to convert an mpfr number to a string")
# t contains just digits (no sign, decimal point or exponent) # t contains just digits (no sign, decimal point or exponent)
@ -540,8 +463,8 @@ diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
t = char_to_str(s + 1) t = char_to_str(s + 1)
else: else:
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
--- src/sage/structure/sage_object.pyx.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/structure/sage_object.pyx.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/structure/sage_object.pyx 2020-10-30 14:03:09.091891283 -0600 +++ src/sage/structure/sage_object.pyx 2021-05-28 11:39:54.284578896 -0600
@@ -688,7 +688,7 @@ cdef class SageObject: @@ -688,7 +688,7 @@ cdef class SageObject:
try: try:
s = self._interface_init_(I) s = self._interface_init_(I)
@ -552,9 +475,9 @@ diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.
if c: if c:
try: try:
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
--- src/sage/symbolic/expression.pyx.orig 2020-10-30 12:10:19.747169301 -0600 --- src/sage/symbolic/expression.pyx.orig 2021-05-28 11:01:45.016275362 -0600
+++ src/sage/symbolic/expression.pyx 2020-10-30 14:03:09.095891276 -0600 +++ src/sage/symbolic/expression.pyx 2021-05-28 11:39:54.289578896 -0600
@@ -13071,7 +13071,7 @@ cdef class hold_class: @@ -13201,7 +13201,7 @@ cdef class hold_class:
sage: SR(2)^5 sage: SR(2)^5
32 32
""" """
@ -563,7 +486,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
def __exit__(self, *args): def __exit__(self, *args):
""" """
@@ -13084,7 +13084,7 @@ cdef class hold_class: @@ -13214,7 +13214,7 @@ cdef class hold_class:
sage: SR(2)^5 sage: SR(2)^5
32 32
""" """

View file

@ -1,6 +1,6 @@
diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
--- src/sage/interfaces/qepcad.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/interfaces/qepcad.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/qepcad.py 2020-10-30 14:49:41.431265953 -0600 +++ src/sage/interfaces/qepcad.py 2021-05-28 11:52:46.749626841 -0600
@@ -530,7 +530,7 @@ TESTS: @@ -530,7 +530,7 @@ TESTS:
Check the qepcad configuration file:: Check the qepcad configuration file::
@ -10,15 +10,15 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
....: f.readlines()[-1] ....: f.readlines()[-1]
'SINGULAR .../bin\n' 'SINGULAR .../bin\n'
@@ -606,7 +606,6 @@ AUTHORS: @@ -605,7 +605,6 @@ AUTHORS:
# http://www.gnu.org/licenses/
#***************************************************************************** #*****************************************************************************
from __future__ import print_function, absolute_import
-from sage.env import SAGE_LOCAL -from sage.env import SAGE_LOCAL
import pexpect import pexpect
import re import re
import sys import sys
@@ -621,6 +620,8 @@ from .expect import Expect, ExpectFuncti @@ -620,6 +619,8 @@ from .expect import Expect, ExpectFuncti
from sage.interfaces.interface import AsciiArtString from sage.interfaces.interface import AsciiArtString
@ -27,7 +27,7 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
def _qepcad_atoms(formula): def _qepcad_atoms(formula):
r""" r"""
Return the atoms of a qepcad quantifier-free formula, as a set of strings. Return the atoms of a qepcad quantifier-free formula, as a set of strings.
@@ -650,17 +651,17 @@ def _qepcad_cmd(memcells=None): @@ -649,17 +650,17 @@ def _qepcad_cmd(memcells=None):
sage: from sage.interfaces.qepcad import _qepcad_cmd sage: from sage.interfaces.qepcad import _qepcad_cmd
sage: s = _qepcad_cmd() sage: s = _qepcad_cmd()
@ -48,7 +48,7 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
_command_info_cache = None _command_info_cache = None
@@ -685,7 +686,7 @@ def _update_command_info(): @@ -684,7 +685,7 @@ def _update_command_info():
cache = {} cache = {}

View file

@ -1,12 +1,12 @@
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
--- src/sage/misc/cython.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/misc/cython.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/misc/cython.py 2020-10-30 16:08:06.039158996 -0600 +++ src/sage/misc/cython.py 2021-05-28 11:28:14.608518654 -0600
@@ -46,7 +46,7 @@ standard_libs = [ @@ -53,7 +53,7 @@ def _standard_libs_libdirs_incdirs_alias
] + cblas_libs + [ 'ec', 'gsl',
'ntl'] ] + aliases["CBLAS_LIBRARIES"] + [
'ntl']
- standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"]
+ standard_libdirs = [os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))] + aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"]
standard_incdirs = sage_include_directories() + aliases["CBLAS_INCDIR"] + aliases["NTL_INCDIR"]
return standard_libs, standard_libdirs, standard_incdirs, aliases
-standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + cblas_library_dirs
+standard_libdirs = [os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))] + cblas_library_dirs
################################################################

View file

@ -1,78 +1,7 @@
diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs.py
--- src/sage/doctest/control.py.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage_docbuild/ext/multidocs.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/doctest/control.py 2020-10-30 13:55:37.330649309 -0600 +++ src/sage_docbuild/ext/multidocs.py 2021-05-28 11:32:20.056542939 -0600
@@ -115,7 +115,6 @@ class DocTestDefaults(SageObject): @@ -84,8 +84,11 @@ def merge_environment(app, env):
self.valgrind = False
self.massif = False
self.cachegrind = False
- self.omega = False
self.failed = False
self.new = False
self.show_skipped = False
@@ -318,7 +317,7 @@ class DocTestController(SageObject):
if options.gdb or options.debug:
# Interactive debuggers: "infinite" timeout
options.timeout = 0
- elif options.valgrind or options.massif or options.cachegrind or options.omega:
+ elif options.valgrind or options.massif or options.cachegrind:
# Non-interactive debuggers: 48 hours
options.timeout = int(os.getenv('SAGE_TIMEOUT_VALGRIND', 48 * 60 * 60))
elif options.long:
@@ -1109,13 +1108,8 @@ class DocTestController(SageObject):
elif opt.cachegrind:
toolname = "cachegrind"
flags = os.getenv("SAGE_CACHEGRIND_FLAGS", "")
- elif opt.omega:
- toolname = "exp-omega"
- flags = os.getenv("SAGE_OMEGA_FLAGS", "")
cmd = "exec valgrind --tool=%s "%(toolname)
flags += ''' --log-file="%s" ''' % logfile
- if opt.omega:
- toolname = "omega"
if "%s" in flags:
flags %= toolname + ".%p" # replace %s with toolname
cmd += flags + sage_cmd
@@ -1201,10 +1195,10 @@ class DocTestController(SageObject):
"""
opt = self.options
- L = (opt.gdb, opt.valgrind, opt.massif, opt.cachegrind, opt.omega)
+ L = (opt.gdb, opt.valgrind, opt.massif, opt.cachegrind)
if any(L):
if L.count(True) > 1:
- self.log("You may only specify one of gdb, valgrind/memcheck, massif, cachegrind, omega")
+ self.log("You may only specify one of gdb, valgrind/memcheck, massif, cachegrind")
return 2
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 2020-10-24 11:37:59.000000000 -0600
+++ src/sage/interfaces/singular.py 2020-10-30 13:55:37.332649306 -0600
@@ -2349,7 +2349,7 @@ def generate_docstring_dictionary():
nodes.clear()
node_names.clear()
- singular_docdir = SINGULARPATH + "/../info/"
+ singular_docdir = "/usr/share/info/"
new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*")
new_lookup = re.compile(r"\* ([^:]*):*([^.]*)\..*")
@@ -2357,8 +2357,9 @@ def generate_docstring_dictionary():
L, in_node, curr_node = [], False, None
# singular.hlp contains a few iso-5559-1 encoded special characters
- with io.open(os.path.join(singular_docdir, 'singular.hlp'),
- encoding='latin-1') as f:
+ import gzip
+ with gzip.open(os.path.join(singular_docdir, 'singular.hlp.gz'),
+ encoding='utf-8') as f:
for line in f:
m = re.match(new_node,line)
if m:
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 2020-10-24 11:37:59.000000000 -0600
+++ src/sage_setup/docbuild/ext/multidocs.py 2020-10-30 13:55:37.332649306 -0600
@@ -82,8 +82,11 @@ def merge_environment(app, env):
for ind in newalldoc: for ind in newalldoc:
# treat subdocument source as orphaned file and don't complain # treat subdocument source as orphaned file and don't complain
md = env.metadata.get(ind, dict()) md = env.metadata.get(ind, dict())
@ -86,3 +15,27 @@ diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/e
# merge the citations # merge the citations
newcite = {} newcite = {}
for ind, (path, tag, lineno) in citations.items(): for ind, (path, tag, lineno) in citations.items():
diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py
--- src/sage/interfaces/singular.py.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/interfaces/singular.py 2021-05-28 11:29:00.597523201 -0600
@@ -2365,7 +2365,7 @@ def generate_docstring_dictionary():
nodes.clear()
node_names.clear()
- singular_docdir = SINGULARPATH + "/../info/"
+ singular_docdir = "/usr/share/info/"
new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*")
new_lookup = re.compile(r"\* ([^:]*):*([^.]*)\..*")
@@ -2373,8 +2373,9 @@ def generate_docstring_dictionary():
L, in_node, curr_node = [], False, None
# singular.hlp contains a few iso-5559-1 encoded special characters
- with io.open(os.path.join(singular_docdir, 'singular.hlp'),
- encoding='latin-1') as f:
+ import gzip
+ with gzip.open(os.path.join(singular_docdir, 'singular.hlp.gz'),
+ encoding='utf-8') as f:
for line in f:
m = re.match(new_node,line)
if m:

View file

@ -1,7 +1,7 @@
diff -up src/bin/sage.orig src/bin/sage diff -up src/bin/sage.orig src/bin/sage
--- src/bin/sage.orig 2020-10-24 11:37:59.000000000 -0600 --- src/bin/sage.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/bin/sage 2020-10-30 13:43:06.816896461 -0600 +++ src/bin/sage 2021-05-28 11:16:43.936440802 -0600
@@ -29,7 +29,6 @@ usage() { @@ -109,7 +109,6 @@ usage() {
echo " --gap [...] -- run Sage's Gap with given arguments" echo " --gap [...] -- run Sage's Gap with given arguments"
echo " --gp [...] -- run Sage's PARI/GP calculator with given arguments" echo " --gp [...] -- run Sage's PARI/GP calculator with given arguments"
echo " -h -- print this help message" echo " -h -- print this help message"
@ -9,8 +9,8 @@ diff -up src/bin/sage.orig src/bin/sage
echo " --maxima [...] -- run Sage's Maxima with given arguments" echo " --maxima [...] -- run Sage's Maxima with given arguments"
echo " --mwrank [...] -- run Sage's mwrank with given arguments" echo " --mwrank [...] -- run Sage's mwrank with given arguments"
echo " --notebook=[...] -- start the Sage notebook (valid options are" echo " --notebook=[...] -- start the Sage notebook (valid options are"
@@ -59,119 +58,6 @@ usage() { @@ -159,111 +158,6 @@ if [ -f "${SELF}-env-config" ]; then
# below, after sourcing sage-env. fi
##################################################################### #####################################################################
-# Special options to be processed without sage-env -# Special options to be processed without sage-env
@ -22,7 +22,7 @@ diff -up src/bin/sage.orig src/bin/sage
-if [ "$1" = '--nodotsage' ]; then -if [ "$1" = '--nodotsage' ]; then
- export DOT_SAGE=`mktemp -d ${TMPDIR:-/tmp}/dotsageXXXXXX` - export DOT_SAGE=`mktemp -d ${TMPDIR:-/tmp}/dotsageXXXXXX`
- shift - shift
- command "$0" "$@" - command "${SELF}" "$@"
- status=$? - status=$?
- rm -rf "$DOT_SAGE" - rm -rf "$DOT_SAGE"
- exit $status - exit $status
@ -51,14 +51,6 @@ diff -up src/bin/sage.orig src/bin/sage
- exit 127 - exit 127
-fi -fi
- -
-# Check for '--upgrade' before sourcing sage-env: the top-level "make"
-# should be run outside of the Sage shell, see #15517.
-if [ "$1" = '-upgrade' -o "$1" = "--upgrade" ]; then
- shift
- cd "$SAGE_ROOT"
- exec local/bin/sage-upgrade "$@"
-fi
-
-# Check for '-i' before sourcing sage-env: running "make" -# Check for '-i' before sourcing sage-env: running "make"
-# should be run outside of the Sage shell. -# should be run outside of the Sage shell.
-if [ "$1" = '-f' ]; then -if [ "$1" = '-f' ]; then
@ -129,7 +121,7 @@ diff -up src/bin/sage.orig src/bin/sage
# Report information about the Sage environment # Report information about the Sage environment
##################################################################### #####################################################################
@@ -217,20 +103,6 @@ fi @@ -308,20 +202,6 @@ fi
# Prepare for running Sage, either interactively or non-interactively. # Prepare for running Sage, either interactively or non-interactively.
sage_setup() { sage_setup() {
@ -150,7 +142,7 @@ diff -up src/bin/sage.orig src/bin/sage
if [ ! -d "$IPYTHONDIR" ]; then if [ ! -d "$IPYTHONDIR" ]; then
# make sure that $DOT_SAGE exists so that ipython will happily # make sure that $DOT_SAGE exists so that ipython will happily
# create its config directories there. If DOT_SAGE doesn't # create its config directories there. If DOT_SAGE doesn't
@@ -241,20 +113,6 @@ sage_setup() { @@ -332,20 +212,6 @@ sage_setup() {
} }
@ -160,7 +152,7 @@ diff -up src/bin/sage.orig src/bin/sage
-# if Python and sage-location haven't been installed yet. -# if Python and sage-location haven't been installed yet.
-maybe_sage_location() -maybe_sage_location()
-{ -{
- if [ -w "$SAGE_LOCAL" ]; then - if [ -n "$SAGE_LOCAL" -a -w "$SAGE_LOCAL" ]; then
- if [ -x "$SAGE_LOCAL/bin/python" ] && [ -x "$SAGE_LOCAL/bin/sage-location" ]; then - if [ -x "$SAGE_LOCAL/bin/python" ] && [ -x "$SAGE_LOCAL/bin/sage-location" ]; then
- sage-location || exit $? - sage-location || exit $?
- fi - fi
@ -171,7 +163,7 @@ diff -up src/bin/sage.orig src/bin/sage
# Start an interactive Sage session, this function never returns. # Start an interactive Sage session, this function never returns.
interactive_sage() { interactive_sage() {
sage_setup sage_setup
@@ -292,8 +150,6 @@ usage_advanced() { @@ -383,8 +249,6 @@ usage_advanced() {
echo " --nodotsage -- run Sage without using the user's" echo " --nodotsage -- run Sage without using the user's"
echo " .sage directory: create and use a temporary" echo " .sage directory: create and use a temporary"
echo " .sage directory instead." echo " .sage directory instead."
@ -180,7 +172,7 @@ diff -up src/bin/sage.orig src/bin/sage
echo " --simple-prompt -- pass the option through to IPython: use" echo " --simple-prompt -- pass the option through to IPython: use"
echo " this option with sage-shell mode in emacs" echo " this option with sage-shell mode in emacs"
if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then
@@ -327,18 +183,9 @@ usage_advanced() { @@ -418,18 +282,9 @@ usage_advanced() {
echo " environment (not Sage), passing additional" echo " environment (not Sage), passing additional"
echo " additional options to IPython" echo " additional options to IPython"
echo " --jupyter [...] -- run Sage's Jupyter with given arguments" echo " --jupyter [...] -- run Sage's Jupyter with given arguments"
@ -199,7 +191,7 @@ diff -up src/bin/sage.orig src/bin/sage
echo " --python [...], --python3 [...]" echo " --python [...], --python3 [...]"
echo " -- run the Python 3 interpreter" echo " -- run the Python 3 interpreter"
echo " -R [...] -- run Sage's R with the given arguments" echo " -R [...] -- run Sage's R with the given arguments"
@@ -601,11 +448,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] @@ -678,11 +533,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
exec ecl "$@" exec ecl "$@"
fi fi
@ -211,7 +203,7 @@ diff -up src/bin/sage.orig src/bin/sage
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
shift shift
maxima_cmd=$(sage-config MAXIMA 2>/dev/null) maxima_cmd=$(sage-config MAXIMA 2>/dev/null)
@@ -630,11 +472,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then @@ -707,11 +557,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then
exec R "$@" exec R "$@"
fi fi
@ -223,19 +215,19 @@ diff -up src/bin/sage.orig src/bin/sage
##################################################################### #####################################################################
# sage --sh and sage --buildsh # sage --sh and sage --buildsh
##################################################################### #####################################################################
@@ -804,11 +641,6 @@ fi @@ -883,11 +728,6 @@ fi
# build_sage, sage -b, sage -br, etc. could be moved to # build_sage, sage -b, sage -br, etc. could be moved to
# build/bin/sage-site. See #29111. # build/bin/sage-site. See #29111.
-build_sage() { -build_sage() {
- maybe_sage_location - maybe_sage_location
- ( cd "$SAGE_ROOT/build/make" && $MAKE sagelib-no-deps ) || exit $? - ( cd "$SAGE_ROOT/build/make" && ./install sagelib-no-deps ) || exit $?
-} -}
- -
if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then
sage-cleaner &>/dev/null & sage-cleaner &>/dev/null &
exec sage-notebook "$@" exec sage-notebook "$@"
@@ -819,13 +651,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not @@ -898,13 +738,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
exec sage-notebook "$@" exec sage-notebook "$@"
fi fi
@ -249,12 +241,12 @@ diff -up src/bin/sage.orig src/bin/sage
if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then
# Source inspection facilities, supported on sage-the-distribution and on distributions # Source inspection facilities, supported on sage-the-distribution and on distributions
# that package the Sage sources. # that package the Sage sources.
@@ -842,40 +667,12 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; @@ -921,36 +754,11 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ];
fi fi
fi fi
-if [ "$1" = '-b' ]; then -if [ "$1" = '-b' ]; then
- time build_sage - build_sage
- exit $? - exit $?
-fi -fi
- -
@ -283,15 +275,22 @@ diff -up src/bin/sage.orig src/bin/sage
- exit $? - exit $?
-fi -fi
- -
exec-runtests() {
sage_setup
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
@@ -967,10 +775,7 @@ exec-runtests() {
exec sage-runtests "$@"
}
-if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" = '-tp' -o "$1" = '-btp' ]; then -if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" = '-tp' -o "$1" = '-btp' ]; then
- if [ "$1" = '-bt' -o "$1" = '-btp' ]; then - if [ "$1" = '-bt' -o "$1" = '-btp' ]; then
- build_sage - build_sage
- fi - fi
+if [ "$1" = '-t' -o "$1" = '-tp' ]; then +if [ "$1" = '-t' -o "$1" = '-tp' ]; then
sage_setup
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
if [ "$1" = '-tp' -o "$1" = '-btp' ]; then if [ "$1" = '-tp' -o "$1" = '-btp' ]; then
@@ -887,16 +684,6 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" shift
exec-runtests -p "$@"
@@ -980,34 +785,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
fi fi
fi fi
@ -300,16 +299,12 @@ diff -up src/bin/sage.orig src/bin/sage
- build_sage - build_sage
- fi - fi
- shift - shift
- sage_setup - exec-runtests --new "$@"
- export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
- exec sage-runtests --new "$@"
-fi -fi
- -
if [ "$1" = '-testall' -o "$1" = "--testall" ]; then if [ "$1" = '-testall' -o "$1" = "--testall" ]; then
shift shift
sage_setup exec-runtests -a "$@"
@@ -904,21 +691,6 @@ if [ "$1" = '-testall' -o "$1" = "--test
exec sage-runtests -a "$@"
fi fi
-if [ "$1" = '-fixdoctests' -o "$1" = '--fixdoctests' ]; then -if [ "$1" = '-fixdoctests' -o "$1" = '--fixdoctests' ]; then
@ -324,13 +319,13 @@ diff -up src/bin/sage.orig src/bin/sage
- -
-if [ "$1" = "-coverageall" -o "$1" = "--coverageall" ]; then -if [ "$1" = "-coverageall" -o "$1" = "--coverageall" ]; then
- shift - shift
- exec sage-coverageall "$@" - exec sage-coverage --all "$@"
-fi -fi
- -
if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then
exec sage-startuptime.py "$@" exec sage-startuptime.py "$@"
fi fi
@@ -941,53 +713,6 @@ fi @@ -1030,59 +812,11 @@ fi
# Creating and handling Sage distributions # Creating and handling Sage distributions
##################################################################### #####################################################################
@ -364,27 +359,11 @@ diff -up src/bin/sage.orig src/bin/sage
- exit 1 - exit 1
- fi - fi
- done - done
- # Display a message if we actually installed something (using this
- # file, generated by sage-spkg, is a bit of a hack though)
- if [ -f "$SAGE_LOCAL/lib/sage-force-relocate.txt" ]; then
- echo
- echo "Warning: it might be needed to update the Sage library before"
- echo "installed packages work: you should run 'make' from \$SAGE_ROOT"
- echo "before running Sage."
- fi
- exit 0 - exit 0
-} -}
- -
- if [ "$1" = '-installed' -o "$1" = "--installed" ]; then
-if [ "$1" = '-package' -o "$1" = "--package" ]; then
- shift
- exec sage-package $@
-fi
-
if [ "$1" = '-optional' -o "$1" = "--optional" ]; then
shift shift
exec sage-list-packages optional $@
@@ -1008,30 +733,6 @@ if [ "$1" = '-installed' -o "$1" = "--in
exec sage-list-packages all --installed-only $@ exec sage-list-packages all --installed-only $@
fi fi
@ -397,15 +376,6 @@ diff -up src/bin/sage.orig src/bin/sage
- install "$@" - install "$@"
-fi -fi
- -
-if [ "$1" = '-info' -o "$1" = '--info' ]; then
- shift
- for PKG in "$@"
- do
- sage-spkg --info "$PKG" || exit $?
- done
- exit 0
-fi
-
-if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then -if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then
- maybe_sage_location - maybe_sage_location
- shift - shift
@ -415,7 +385,7 @@ diff -up src/bin/sage.orig src/bin/sage
##################################################################### #####################################################################
# Debugging tools # Debugging tools
##################################################################### #####################################################################
@@ -1075,12 +776,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca @@ -1126,12 +860,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
exec sage-callgrind "$@" exec sage-callgrind "$@"
fi fi

View file

@ -1,6 +1,6 @@
diff -up src/sage/graphs/graph_decompositions/tdlib/sage_tdlib.cpp.orig src/sage/graphs/graph_decompositions/tdlib/sage_tdlib.cpp diff -up src/sage/graphs/graph_decompositions/sage_tdlib.cpp.orig src/sage/graphs/graph_decompositions/sage_tdlib.cpp
--- src/sage/graphs/graph_decompositions/tdlib/sage_tdlib.cpp.orig 2020-10-24 11:37:59.000000000 -0600 --- src/sage/graphs/graph_decompositions/sage_tdlib.cpp.orig 2021-05-09 16:00:11.000000000 -0600
+++ src/sage/graphs/graph_decompositions/tdlib/sage_tdlib.cpp 2020-10-30 16:40:43.904036700 -0600 +++ src/sage/graphs/graph_decompositions/sage_tdlib.cpp 2021-06-16 08:33:47.325415307 -0600
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
#include <map> #include <map>

View file

@ -6,19 +6,11 @@
%bcond_with bundled_pexpect %bcond_with bundled_pexpect
%bcond_with bundled_ipython %bcond_with bundled_ipython
%bcond_without bundled_ipywidgets %bcond_without bundled_ipywidgets
%bcond_without bundled_jupyter_jsmol
%bcond_without bundled_thebe %bcond_without bundled_thebe
%bcond_without bundled_threejs %bcond_without bundled_threejs
%bcond_without install_hack %bcond_without install_hack
%if 0%{?fedora} >= 33
%bcond_without flexiblas
%endif
%if %{with flexiblas}
%global blaslib flexiblas
%else
%global blaslib openblas
%endif
# for faster full rpm test builds # for faster full rpm test builds
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
%bcond_without docs %bcond_without docs
@ -48,7 +40,7 @@
%global cremona_ver 2019-10-29 %global cremona_ver 2019-10-29
%global elliptic_curves_pkg elliptic_curves-0.8.1 %global elliptic_curves_pkg elliptic_curves-0.8.1
%global flintqs_pkg flintqs-1.0 %global flintqs_pkg flintqs-1.0
%global graphs_pkg graphs-20161026 %global graphs_pkg graphs-20210214
%if %{with bundled_ipython} %if %{with bundled_ipython}
%global ipython_ver 7.13.0 %global ipython_ver 7.13.0
%global ipython_pkg ipython-%{ipython_ver} %global ipython_pkg ipython-%{ipython_ver}
@ -56,27 +48,31 @@
%global prompt_tookit_pkg prompt_toolkit-%{prompt_toolkit_ver} %global prompt_tookit_pkg prompt_toolkit-%{prompt_toolkit_ver}
%endif %endif
%if %{with bundled_ipywidgets} %if %{with bundled_ipywidgets}
%global ipywidgets_ver 7.5.1 %global ipywidgets_ver 7.6.3
%global ipywidgets_pkg ipywidgets-%{ipywidgets_ver} %global ipywidgets_pkg ipywidgets-%{ipywidgets_ver}
%endif %endif
%if %{with bundled_jupyter_jsmol}
%global jupyter_jsmol_ver 0.2.4
%global jupyter_jsmol_pkg jupyter_jsmol-%{jupyter_jsmol_ver}
%endif
%if %{with bundled_pexpect} %if %{with bundled_pexpect}
%global pexpect_pkg pexpect-4.8.0 %global pexpect_pkg pexpect-4.8.0
%endif %endif
%global polytopes_db_pkg polytopes_db-20170220 %global polytopes_db_pkg polytopes_db-20170220
%global sagetex_pkg sagetex-3.5 %global sagetex_pkg sagetex-3.5
%global Sphinx_pkg Sphinx-3.1.2 %global Sphinx_pkg Sphinx-3.1.2
%global singular_pkg singular-4.1.1p2 %global singular_pkg singular-4.2.0p2
%if %{with bundled_thebe} %if %{with bundled_thebe}
%global thebe_ver 9624e0a0 %global thebe_ver 9624e0a0
%global thebe_pkg thebe-%{thebe_ver} %global thebe_pkg thebe-%{thebe_ver}
%endif %endif
%if %{with bundled_threejs} %if %{with bundled_threejs}
%global threejs_ver r117 %global threejs_ver r122
%global threejs_pkg threejs-%{threejs_ver} %global threejs_pkg threejs-sage-%{threejs_ver}
%endif %endif
# Spkg equivalents of required rpms; we pretend they are installed as spkgs. # Spkg equivalents of required rpms; we pretend they are installed as spkgs.
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 CoCoALib-0.99710 coxeter3-3.1 cryptominisat-5.7.1 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.0 libsirocco-2.0.2 lrslib-071 mcqd-1.0 meataxe-1.0 primecount-6.1 qepcad-B.1.72 saclib-2.2.7 surf-1.0.6-gcc6 tdlib-0.9.0 %global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 CoCoALib-0.99712 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.0 libsirocco-2.0.2 lrslib-071a mcqd-1.0 meataxe-1.0 primecount-7.0 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.0
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
%global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2 %global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2
@ -93,8 +89,8 @@
Name: sagemath Name: sagemath
Summary: A free open-source mathematics software system Summary: A free open-source mathematics software system
Version: 9.2 Version: 9.3
Release: 5%{?dist} Release: 1%{?dist}
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file # The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
# Additionally, every $files section has a comment with the license name # Additionally, every $files section has a comment with the license name
# before files with that license # before files with that license
@ -103,6 +99,7 @@ URL: http://www.sagemath.org
Source0: http://files.sagemath.org/src/sage-%{version}.tar.gz Source0: http://files.sagemath.org/src/sage-%{version}.tar.gz
Source1: https://github.com/JohnCremona/ecdata/archive/%{cremona_ver}/cremona-%{cremona_ver}.tar.gz Source1: https://github.com/JohnCremona/ecdata/archive/%{cremona_ver}/cremona-%{cremona_ver}.tar.gz
Source2: gprc.expect Source2: gprc.expect
Source3: org.sagemath.sage.metainfo.xml
# Follow maxima's ExclusiveArch, except exclude 32-bit ARM. The source RPM is # Follow maxima's ExclusiveArch, except exclude 32-bit ARM. The source RPM is
# now about 2GB in size. The 32-bit ARM builders run out of memory trying to # now about 2GB in size. The 32-bit ARM builders run out of memory trying to
# create the SRPM and also trying to unpack the SRPM before starting a build. # create the SRPM and also trying to unpack the SRPM before starting a build.
@ -171,46 +168,49 @@ Patch16: %{name}-env.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1243590 # https://bugzilla.redhat.com/show_bug.cgi?id=1243590
Patch17: %{name}-qepcad.patch Patch17: %{name}-qepcad.patch
# Correct path to arb headers # Make the cvxopt backend check for 'optimal' as well as 'optimized'
Patch18: %{name}-arb.patch Patch18: %{name}-cvxopt.patch
# Use flexiblas # Use flexiblas
Patch19: %{name}-flexiblas.patch Patch19: %{name}-flexiblas.patch
# Use openblas
Patch20: %{name}-openblas.patch
# Fix paths to latte-integrale binaries # Fix paths to latte-integrale binaries
Patch21: %{name}-latte.patch Patch20: %{name}-latte.patch
# Change rubiks binary names to match Fedora # Change rubiks binary names to match Fedora
Patch22: %{name}-rubiks.patch Patch21: %{name}-rubiks.patch
# Adapt to recent tdlib 0.9 # Adapt to recent tdlib 0.9
Patch23: %{name}-tdlib.patch Patch22: %{name}-tdlib.patch
# Use local objects.inv for intersphinx since no network on koji builders # Use local objects.inv for intersphinx since no network on koji builders
Patch24: %{name}-intersphinx.patch Patch23: %{name}-intersphinx.patch
# Remove an unused call to a primecount function that no longer exists # Remove an unused call to a primecount function that no longer exists
Patch25: %{name}-primecount.patch Patch24: %{name}-primecount.patch
BuildRequires: make
BuildRequires: 4ti2 BuildRequires: 4ti2
BuildRequires: appstream
BuildRequires: arb-devel BuildRequires: arb-devel
BuildRequires: bc
BuildRequires: bliss-devel BuildRequires: bliss-devel
BuildRequires: boost-devel BuildRequires: boost-devel
BuildRequires: brial-devel BuildRequires: brial-devel
BuildRequires: cmake
BuildRequires: cddlib-devel BuildRequires: cddlib-devel
BuildRequires: cddlib-tools BuildRequires: cddlib-tools
BuildRequires: cliquer-devel BuildRequires: cliquer-devel
BuildRequires: cocoalib-devel
BuildRequires: coxeter-devel BuildRequires: coxeter-devel
BuildRequires: cryptominisat-devel
BuildRequires: csdp-devel
BuildRequires: desktop-file-utils BuildRequires: desktop-file-utils
BuildRequires: dvipng BuildRequires: dvipng
BuildRequires: ecl BuildRequires: ecl
%if %{with fes} %if %{with fes}
BuildRequires: fes-devel BuildRequires: fes-devel
%endif %endif
BuildRequires: flexiblas-devel
BuildRequires: flint-devel BuildRequires: flint-devel
BuildRequires: gap-devel BuildRequires: gap-devel
BuildRequires: gap-pkg-aclib BuildRequires: gap-pkg-aclib
@ -264,7 +264,9 @@ BuildRequires: gdb
BuildRequires: gfan BuildRequires: gfan
BuildRequires: giac-devel BuildRequires: giac-devel
BuildRequires: giac-doc BuildRequires: giac-doc
BuildRequires: git-core
BuildRequires: glpk-devel BuildRequires: glpk-devel
BuildRequires: glpk-utils
BuildRequires: gmp-ecm BuildRequires: gmp-ecm
BuildRequires: gmp-ecm-devel BuildRequires: gmp-ecm-devel
BuildRequires: ImageMagick BuildRequires: ImageMagick
@ -274,42 +276,58 @@ BuildRequires: jmol
BuildRequires: jsmol BuildRequires: jsmol
BuildRequires: jsmath-fonts BuildRequires: jsmath-fonts
BuildRequires: L-function-devel BuildRequires: L-function-devel
BuildRequires: latexmk
BuildRequires: latte-integrale BuildRequires: latte-integrale
BuildRequires: libbraiding-devel BuildRequires: libbraiding-devel
BuildRequires: libfrobby-devel
BuildRequires: libgap BuildRequires: libgap
BuildRequires: libhomfly-devel BuildRequires: libhomfly-devel
BuildRequires: libmpc-devel BuildRequires: libmpc-devel
BuildRequires: lrcalc-devel BuildRequires: lrcalc-devel
BuildRequires: lrslib-utils BuildRequires: lrslib-utils
BuildRequires: make
BuildRequires: mathjax BuildRequires: mathjax
BuildRequires: maxima-runtime-ecl BuildRequires: maxima-runtime-ecl
BuildRequires: mcqd-devel BuildRequires: mcqd-devel
BuildRequires: mpfi-devel BuildRequires: mpfi-devel
BuildRequires: nauty BuildRequires: nauty
BuildRequires: ninja-build
BuildRequires: ntl-devel BuildRequires: ntl-devel
BuildRequires: %{blaslib}-devel
BuildRequires: openssl BuildRequires: openssl
BuildRequires: palp BuildRequires: palp
BuildRequires: pandoc
BuildRequires: pari-devel BuildRequires: pari-devel
BuildRequires: pari-elldata
BuildRequires: pari-galdata BuildRequires: pari-galdata
BuildRequires: pari-galpol
BuildRequires: pari-gp BuildRequires: pari-gp
BuildRequires: pari-seadata BuildRequires: pari-seadata
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(File::Slurp)
BuildRequires: pkgconfig(bdw-gc) BuildRequires: pkgconfig(bdw-gc)
BuildRequires: pkgconfig(cbc) BuildRequires: pkgconfig(cbc)
BuildRequires: pkgconfig(eclib) BuildRequires: pkgconfig(eclib)
BuildRequires: pkgconfig(factory) BuildRequires: pkgconfig(factory)
BuildRequires: pkgconfig(fplll) BuildRequires: pkgconfig(fplll)
BuildRequires: pkgconfig(gdlib) BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(gf2x)
BuildRequires: pkgconfig(gsl) BuildRequires: pkgconfig(gsl)
BuildRequires: pkgconfig(igraph)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libsemigroups)
BuildRequires: pkgconfig(libzmq)
BuildRequires: pkgconfig(linbox) BuildRequires: pkgconfig(linbox)
BuildRequires: pkgconfig(m4ri) BuildRequires: pkgconfig(m4ri)
BuildRequires: pkgconfig(m4rie) BuildRequires: pkgconfig(m4rie)
BuildRequires: pkgconfig(nauty)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(pynac) BuildRequires: pkgconfig(pynac)
BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(readline)
BuildRequires: pkgconfig(Singular) BuildRequires: pkgconfig(Singular)
BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(tk)
BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zlib)
BuildRequires: planarity-devel BuildRequires: planarity-devel
BuildRequires: ppl-devel BuildRequires: ppl-devel
@ -324,6 +342,8 @@ BuildRequires: python3-ipython-sphinx
BuildRequires: python3-pillow-devel BuildRequires: python3-pillow-devel
BuildRequires: python3-pplpy-devel BuildRequires: python3-pplpy-devel
BuildRequires: python3-tdlib-devel BuildRequires: python3-tdlib-devel
BuildRequires: python3-tkinter
BuildRequires: %{py3_dist argon2-cffi}
%if %{with bundled_ipython} %if %{with bundled_ipython}
BuildRequires: %{py3_dist backcall} BuildRequires: %{py3_dist backcall}
%endif %endif
@ -362,6 +382,7 @@ BuildRequires: %{py3_dist pkgconfig}
BuildRequires: %{py3_dist psutil} BuildRequires: %{py3_dist psutil}
BuildRequires: %{py3_dist ptyprocess} BuildRequires: %{py3_dist ptyprocess}
BuildRequires: %{py3_dist pycryptosat} BuildRequires: %{py3_dist pycryptosat}
BuildRequires: %{py3_dist pyopenssl}
%if %{with bundled_ipython} %if %{with bundled_ipython}
BuildRequires: %{py3_dist pyzmq} BuildRequires: %{py3_dist pyzmq}
%endif %endif
@ -369,12 +390,14 @@ BuildRequires: %{py3_dist rpy2}
BuildRequires: %{py3_dist scipy} BuildRequires: %{py3_dist scipy}
BuildRequires: %{py3_dist scons} BuildRequires: %{py3_dist scons}
BuildRequires: %{py3_dist setuptools} BuildRequires: %{py3_dist setuptools}
BuildRequires: %{py3_dist setuptools_scm}
%if %{with bundled_ipython} %if %{with bundled_ipython}
BuildRequires: %{py3_dist simplegeneric} BuildRequires: %{py3_dist simplegeneric}
%endif %endif
BuildRequires: %{py3_dist six} BuildRequires: %{py3_dist six}
BuildRequires: %{py3_dist sphinx} BuildRequires: %{py3_dist sphinx}
BuildRequires: %{py3_dist sympy} BuildRequires: %{py3_dist sympy}
BuildRequires: %{py3_dist tox}
BuildRequires: %{py3_dist wheel} BuildRequires: %{py3_dist wheel}
BuildRequires: %{py3_dist widgetsnbextension} BuildRequires: %{py3_dist widgetsnbextension}
BuildRequires: %{py3_dist zodb3} BuildRequires: %{py3_dist zodb3}
@ -383,9 +406,11 @@ BuildRequires: R
BuildRequires: ratpoints-devel BuildRequires: ratpoints-devel
BuildRequires: rubiks BuildRequires: rubiks
BuildRequires: rw-devel BuildRequires: rw-devel
BuildRequires: saclib-devel
BuildRequires: sharedmeataxe-devel BuildRequires: sharedmeataxe-devel
BuildRequires: sirocco-devel BuildRequires: sirocco-devel
BuildRequires: suitesparse-devel BuildRequires: suitesparse-devel
BuildRequires: surf-geometry
BuildRequires: symmetrica-devel BuildRequires: symmetrica-devel
BuildRequires: sympow BuildRequires: sympow
BuildRequires: tachyon BuildRequires: tachyon
@ -396,6 +421,7 @@ BuildRequires: tex(makecmds.sty)
BuildRequires: web-assets-devel BuildRequires: web-assets-devel
BuildRequires: xorg-x11-fonts-Type1 BuildRequires: xorg-x11-fonts-Type1
BuildRequires: xorg-x11-server-Xvfb BuildRequires: xorg-x11-server-Xvfb
BuildRequires: yasm-devel
BuildRequires: zn_poly-devel BuildRequires: zn_poly-devel
Requires: hicolor-icon-theme Requires: hicolor-icon-theme
@ -415,10 +441,6 @@ Provides: bundled(thebe) = %{thebe_ver}
Provides: bundled(threejs) = %{threejs_ver} Provides: bundled(threejs) = %{threejs_ver}
%endif %endif
# This can be removed when Fedora 30 reaches EOL
Obsoletes: %{name}-notebook-export < 8.8-5
Provides: %{name}-notebook-export = %{version}-%{release}
%description %description
Sage is a free open-source mathematics software system licensed Sage is a free open-source mathematics software system licensed
under the GPL. It combines the power of many existing open-source under the GPL. It combines the power of many existing open-source
@ -486,7 +508,9 @@ Requires: mathjax
Requires: maxima-runtime-ecl Requires: maxima-runtime-ecl
Requires: nauty Requires: nauty
Requires: palp Requires: palp
Requires: pari-elldata
Requires: pari-galdata Requires: pari-galdata
Requires: pari-galpol
Requires: pari-gp Requires: pari-gp
Requires: pari-seadata Requires: pari-seadata
Requires: python3-tdlib Requires: python3-tdlib
@ -551,6 +575,9 @@ Provides: bundled(prompt_toolkit) = %{prompt_toolkit_ver}
%if %{with bundled_ipywidgets} %if %{with bundled_ipywidgets}
Provides: bundled(ipywidgets) = %{ipywidgets_ver} Provides: bundled(ipywidgets) = %{ipywidgets_ver}
%endif %endif
%if %{with bundled_jupyter_jsmol}
Provides: bundled(jupyter-jsmol) = %{jupyter_jsmol_ver}
%endif
%description core %description core
This package contains the core sagemath python modules. This package contains the core sagemath python modules.
@ -737,12 +764,9 @@ This package contains the Turkish %{name} documentation.
Summary: Jupyter integration for sagemath Summary: Jupyter integration for sagemath
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python-jupyter-filesystem Requires: python-jupyter-filesystem
Requires: %{py3_dist argon2-cffi}
Requires: %{py3_dist widgetsnbextension} Requires: %{py3_dist widgetsnbextension}
# This can be removed when Fedora 31 reaches EOL
Obsoletes: sagemath-notebook < 9.0-1
Provides: sagemath-notebook = %{version}-%{release}
%description jupyter %description jupyter
This package contains a Jupyter integration for sagemath, replacing the This package contains a Jupyter integration for sagemath, replacing the
defunct notebook functionality. defunct notebook functionality.
@ -819,6 +843,13 @@ pushd build/pkgs/ipywidgets
popd popd
%endif %endif
%if %{with bundled_jupyter_jsmol}
pushd build/pkgs/jupyter_jsmol
tar zxf ../../../upstream/%{jupyter_jsmol_pkg}.tar.gz
mv %{jupyter_jsmol_pkg} src
popd
%endif
%if %{with bundled_pexpect} %if %{with bundled_pexpect}
pushd build/pkgs/pexpect pushd build/pkgs/pexpect
tar zxf ../../../upstream/%{pexpect_pkg}.tar.gz tar zxf ../../../upstream/%{pexpect_pkg}.tar.gz
@ -891,20 +922,16 @@ popd
%patch16 %patch16
%patch17 %patch17
%patch18 %patch18
%if "%{blaslib}" == "flexiblas"
%patch19 %patch19
%else
%patch20
%endif
%patch21 %patch21
%patch22 %patch22
%patch23 %patch23
%patch24 %patch24
%patch25
sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \ sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \
-e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \ -e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \
-e 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' \ -e 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' \
-e 's|@@LIBDIR@@|%{_libdir}|g' \
-i src/sage/env.py -i src/sage/env.py
sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \ sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \
@ -916,23 +943,20 @@ sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \
find src/sage \( -name \*.pyx -o -name \*.pxd \) -exec touch {} \+ find src/sage \( -name \*.pyx -o -name \*.pxd \) -exec touch {} \+
# fix Singular paths # fix Singular paths
singver=$(sed 's/.*-\([.[:digit:]]*\).*/\1/' <<< %{singular_pkg}) singver=$(sed 's/^.*-\([.[:digit:]]*\).*$/\1/' <<< %{singular_pkg})
sed -e "s,SINGULARPATH=\",&%{_datadir}/singular/LIB:," \ sed -e "s,SINGULARPATH=\",&%{_datadir}/singular/LIB:," \
-e "s,\(SINGULAR_EXECUTABLE=\"\).*\",\1%{_libdir}/Singular/Singular\"," \ -e "s,\(SINGULAR_EXECUTABLE=\"\).*\",\1%{_libdir}/Singular/Singular\"," \
-i src/bin/sage-env -i src/bin/sage-env
sed -e "s,\(SINGULAR_SO = \)SAGE.*,\1'%{_libdir}/libSingular-$singver.so'," \
-i src/sage/env.py
# fix shebangs; some paths contains spaces, so use the null byte facility # fix shebangs; some paths contains spaces, so use the null byte facility
grep -FrlZ '#!%{_bindir}/env python3' | \ grep -FrlZ '#!%{_bindir}/env python3' | \
xargs -0 sed -i 's,#!%{_bindir}/env python3,#!%{python3},g' xargs -0 sed -i 's,#!%{_bindir}/env python3,#!%{python3},g'
grep -FrlZ '#!%{_bindir}/env python' | \ grep -FrlZ '#!%{_bindir}/env python' | \
xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{python3},g' xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{python3},g'
grep -FrlZ '#!%{_bindir}/env sage-system-python' | \ grep -FrlZ '#!%{_bindir}/env sage-bootstrap-python' | \
xargs -0 sed -i 's,#!%{_bindir}/env sage-system-python,#!%{python3},g' xargs -0 sed -i 's,#!%{_bindir}/env sage-bootstrap-python,#!%{python3},g'
grep -FrlZ '#!%{_bindir}/env sage-python' | \ grep -FrlZ '#!%{_bindir}/env sage-python' | \
xargs -0 sed -i 's,#!%{_bindir}/env sage-python,#!%{python3},g' xargs -0 sed -i 's,#!%{_bindir}/env sage-python,#!%{python3},g'
grep -FrlZ 'sage-python23' | xargs -0 sed -i 's,sage-python23,python3,g'
grep -FrlZ '#!%{_bindir}/env' | \ grep -FrlZ '#!%{_bindir}/env' | \
xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,' xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,'
grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&3,' grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&3,'
@ -945,7 +969,7 @@ sed -i 's,%{_bindir}/python,&3,' src/sage/misc/dev_tools.py
sed -e 's,local/bin/python,bin/python,' \ sed -e 's,local/bin/python,bin/python,' \
-e 's,#!%{_bindir}/python,&3,' \ -e 's,#!%{_bindir}/python,&3,' \
-i src/sage/repl/preparse.py -i src/sage/repl/preparse.py
sed -i 's,"$SAGE_LOCAL"/bin/python,%{_bindir}/python,g' src/bin/sage sed -i 's,$SAGE_LOCAL/bin/python,%{_bindir}/python,g' src/bin/sage
%if %{with bundled_ipython} %if %{with bundled_ipython}
sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \ sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \
-i build/pkgs/ipython/src/IPython/utils/_process_posix.py -i build/pkgs/ipython/src/IPython/utils/_process_posix.py
@ -955,15 +979,38 @@ sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \
sed -i 's/64m/256m/' src/sage/interfaces/gap.py sed -i 's/64m/256m/' src/sage/interfaces/gap.py
# GAP does not have enough memory to build docs # GAP does not have enough memory to build docs
sed -i 's/80/128/' src/sage_setup/docbuild/build_options.py sed -i 's/80/128/' src/sage_docbuild/build_options.py
# Fix detection of Fedora
sed -i 's/yum/rpm/' build/bin/sage-guess-package-system
# Allow use of python 3.10
sed -i 's/3\.10\.0/3.11.0/g' configure
# Allow use of GCC 11
sed -i 's/1\[1-9\]/1[2-9]/' configure
# Allow use of pari 2.13.1
sed -i 's/Mod(0, 2)/0/' configure
# Allow use of fplll 5.4.1
sed -i 's/5\.4\.0/5.4.1/g' configure
# Allow use of giac 1.7
sed -i 's/1\.6\.999/1.7.999/g' configure
# Do not build with -march=native
sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure
######################################################################## ########################################################################
%build %build
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
export CC=%{__cc} export CC=%{__cc}
export CFLAGS="%{optflags}" export CPPFLAGS="-I%{_includedir}/arb -I%{_includedir}/cddlib"
export CXXFLAGS="%{optflags}" export CFLAGS="%{build_cflags}"
export CXXFLAGS="%{build_cxxflags}"
export ECMBIN=%{_bindir}/gmp-ecm
export SAGE_PYTHON_VERSION=3 export SAGE_PYTHON_VERSION=3
export SAGE_ROOT=%{buildroot}%{SAGE_ROOT} export SAGE_ROOT=%{buildroot}%{SAGE_ROOT}
export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL} export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL}
@ -992,20 +1039,30 @@ export PYTHON=%{_bindir}/python3
export PYTHONPATH=%{buildroot}%{python3_sitearch}:$PYTHONPATH export PYTHONPATH=%{buildroot}%{python3_sitearch}:$PYTHONPATH
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# Generate sage-env-config # Run the configure script to generate files
sed -e 's,@prefix@,%{SAGE_LOCAL},' \ export GSL_LIBS="-lgsl -lflexiblas -lm"
-e 's,@CC@,gcc,' \ %configure \
-e 's,@CXX@,g++,' \ --prefix=$SAGE_LOCAL \
-e 's,@FC@,gfortran,' \ --disable-silent-rules \
-e 's,@OBJC@,gcc,' \ --enable-4ti2 \
-e 's,@OBJCXX@,g++,' \ --enable-bliss \
-e 's,@SAGE_PYTHON_VERSION@,3,' \ --enable-cocoalib \
-e 's,@SAGE_GMP_PREFIX@,,' \ --enable-cryptominisat \
-e 's,@SAGE_GMP_INCLUDE@,%{_includedir},' \ --enable-csdp \
-e 's,@SAGE_MPFR_PREFIX@,,' \ --enable-database_cremona_ellcurve \
-e 's,@SAGE_MPC_PREFIX@,,' \ --enable-frobby \
-e 's,@SAGE_NTL_PREFIX@,,' \ --enable-mcqd \
src/bin/sage-env-config.in > src/bin/sage-env-config --enable-meataxe \
--enable-primecount \
--enable-qepcad \
--enable-saclib \
--enable-sirocco \
--enable-surf \
--enable-tdlib
#------------------------------------------------------------------------
# Link with flexiblas instead of gslcblas
grep -FrlZ gslcblas | xargs -0 sed -i 's/gslcblas/flexiblas/g'
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# Save and update environment to generate bundled interfaces # Save and update environment to generate bundled interfaces
@ -1016,20 +1073,27 @@ export SAGE_LOCAL=%{_builddir}
%if %{with bundled_ipython} %if %{with bundled_ipython}
pushd build/pkgs/ipython/src pushd build/pkgs/ipython/src
%__python3 setup.py build %{python3} setup.py build
%__python3 setup.py install --root %{_builddir} %{python3} setup.py install --root %{_builddir}
popd popd
pushd build/pkgs/prompt_toolkit/src pushd build/pkgs/prompt_toolkit/src
%__python3 setup.py build %{python3} setup.py build
%__python3 setup.py install --root %{_builddir} %{python3} setup.py install --root %{_builddir}
popd popd
%endif %endif
%if %{with bundled_ipywidgets} %if %{with bundled_ipywidgets}
pushd build/pkgs/ipywidgets/src pushd build/pkgs/ipywidgets/src
%__python3 setup.py build %{python3} setup.py build
%__python3 setup.py install --root %{_builddir} %{python3} setup.py install --root %{_builddir}
popd
%endif
%if %{with bundled_jupyter_jsmol}
pushd build/pkgs/jupyter_jsmol/src
%{python3} setup.py build
%{python3} setup.py install --root %{_builddir}
popd popd
%endif %endif
@ -1051,12 +1115,14 @@ mkdir -p %{buildroot}%{SAGE_SPKG_INST}
mkdir -p %{buildroot}%{_libdir}/sagemath/build/pkgs mkdir -p %{buildroot}%{_libdir}/sagemath/build/pkgs
pushd src pushd src
%__python3 -u ./setup.py build %{python3} -u ./setup.py build
tar cf - $(find sage -type f \! \( -name \*.c -o -name \*.cc -o -name \*.cpp -o -name .gitignore -o -name \*.hpp \) ) | (cd build/lib.*; tar xf -)
tar cf - $(find sage_setup -name \*.py) | (cd build/lib.*; tar xf -)
popd popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
pushd build/pkgs/sagetex/src pushd build/pkgs/sagetex/src
%__python3 ./setup.py build %{python3} ./setup.py build
popd popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -1208,7 +1274,7 @@ popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
pushd build/pkgs/conway_polynomials pushd build/pkgs/conway_polynomials
%__python3 ./spkg-install.py %{python3} ./spkg-install.py
popd popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -1219,7 +1285,7 @@ pushd build/pkgs/elliptic_curves
tar jxf ../../../upstream/%{elliptic_curves_pkg}.tar.bz2 tar jxf ../../../upstream/%{elliptic_curves_pkg}.tar.bz2
mv %{elliptic_curves_pkg} src mv %{elliptic_curves_pkg} src
fi fi
%__python3 ./spkg-install.py %{python3} ./spkg-install.py
popd popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -1256,6 +1322,11 @@ mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin
mv %{_builddir}%{python3_sitelib}/ipywidgets* %{buildroot}%{SAGE_PYTHONPATH} mv %{_builddir}%{python3_sitelib}/ipywidgets* %{buildroot}%{SAGE_PYTHONPATH}
%endif %endif
#------------------------------------------------------------------------
%if %{with bundled_jupyter_jsmol}
mv %{_builddir}%{python3_sitelib}/jupyter_jsmol* %{buildroot}%{SAGE_PYTHONPATH}
%endif
#------------------------------------------------------------------------ #------------------------------------------------------------------------
%if %{with bundled_thebe} %if %{with bundled_thebe}
pushd build/pkgs/thebe pushd build/pkgs/thebe
@ -1275,6 +1346,7 @@ popd
) # source build/bin/sage-dist-helpers ) # source build/bin/sage-dist-helpers
#------------------------------------------------------------------------ #------------------------------------------------------------------------
singver=$(sed 's/^.*-\([.[:digit:]]*\).*$/\1/' <<< %{singular_pkg})
cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-env << EOF cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-env << EOF
export CUR=\$PWD export CUR=\$PWD
##export DOT_SAGE="\$HOME/.sage" ##export DOT_SAGE="\$HOME/.sage"
@ -1295,7 +1367,7 @@ module load surf-geometry-%{_arch}
export PATH=$SAGE_LOCAL/bin:\$PATH export PATH=$SAGE_LOCAL/bin:\$PATH
export SINGULAR_DATA_DIR=%{_datadir} export SINGULAR_DATA_DIR=%{_datadir}
export SINGULAR_BIN_DIR=%{_libdir}/Singular export SINGULAR_BIN_DIR=%{_libdir}/Singular
export SINGULAR_SO=%{_libdir}/libSingular-4.1.1.so export SINGULAR_SO=%{_libdir}/libSingular-$singver.so
##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin" ##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin"
export SAGE_FORTRAN=%{_bindir}/gfortran export SAGE_FORTRAN=%{_bindir}/gfortran
export SAGE_FORTRAN_LIB=\`gfortran --print-file-name=libgfortran.so\` export SAGE_FORTRAN_LIB=\`gfortran --print-file-name=libgfortran.so\`
@ -1339,7 +1411,7 @@ pushd src/doc
export PATH=%{buildroot}%{_bindir}:$SAGE_LOCAL/bin:$PATH export PATH=%{buildroot}%{_bindir}:$SAGE_LOCAL/bin:$PATH
export SINGULARPATH=%{_datadir}/singular/LIB export SINGULARPATH=%{_datadir}/singular/LIB
export SINGULAR_BIN_DIR=%{_libdir}/Singular export SINGULAR_BIN_DIR=%{_libdir}/Singular
export PYTHONPATH=$SAGE_SETUP:%{buildroot}%{python3_sitearch}:$SAGE_PYTHONPATH:$SAGE_DOC export PYTHONPATH=$SAGE_SETUP:%{buildroot}%{python3_sitearch}:$SAGE_PYTHONPATH:$SAGE_SRC
%if %{with sphinx_hack} %if %{with sphinx_hack}
pushd ../../build/pkgs/sphinx/src pushd ../../build/pkgs/sphinx/src
@ -1353,10 +1425,9 @@ pushd src/doc
ln -sf %{buildroot}%{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc ln -sf %{buildroot}%{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc
export SAGE_DOC=%{buildroot}%{SAGE_DOC} export SAGE_DOC=%{buildroot}%{SAGE_DOC}
export SAGE_DOC_SRC=$SAGE_DOC export SAGE_DOC_SRC=$SAGE_DOC
# python -m sage_setup.docbuild
# Build with an X server running, required by some doc builders # Build with an X server running, required by some doc builders
SAGE_NUM_THREADS=2 \ SAGE_NUM_THREADS=2 \
xvfb-run -d %__python3 -m docbuild --no-pdf-links -k all html -j xvfb-run -d %{python3} -m sage_docbuild --no-pdf-links -k all html -j
rm -f %{buildroot}%{SAGE_SRC}/doc rm -f %{buildroot}%{SAGE_SRC}/doc
ln -sf %{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc ln -sf %{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc
@ -1409,7 +1480,7 @@ ln -sf src $SAGE_ROOT/devel
install -p -m644 -D src/sage/ext_data/notebook-ipython/logo.svg \ install -p -m644 -D src/sage/ext_data/notebook-ipython/logo.svg \
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg
mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/applications
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF cat > %{buildroot}%{_datadir}/applications/org.%{name}.sage.desktop << EOF
[Desktop Entry] [Desktop Entry]
Name=Sagemath Name=Sagemath
Comment=A free open-source mathematics software system Comment=A free open-source mathematics software system
@ -1419,7 +1490,13 @@ Terminal=true
Type=Application Type=Application
Categories=Education;Science;Math; Categories=Education;Science;Math;
EOF EOF
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/org.%{name}.sage.desktop
# Install the AppData file
mkdir -p %{buildroot}%{_metainfodir}
cp -p %{SOURCE3} %{buildroot}%{_metainfodir}
appstreamcli validate --no-net \
%{buildroot}%{_metainfodir}/org.%{name}.sage.metainfo.xml
# Fix permissions # Fix permissions
find %{buildroot} -name '*.so' -exec chmod 755 {} \+ find %{buildroot} -name '*.so' -exec chmod 755 {} \+
@ -1449,6 +1526,9 @@ find %{buildroot}%{SAGE_DOC} -type d -name _sources -exec rm -fr {} \+
rm -r %{buildroot}%{python3_sitearch}/sage_setup rm -r %{buildroot}%{python3_sitearch}/sage_setup
%endif %endif
# remove files we do not want to install
rm %{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config.in
# pretend sagemath spkgs are installed to reduce number of errors # pretend sagemath spkgs are installed to reduce number of errors
# in doctests # in doctests
mkdir -p %{buildroot}%{SAGE_SPKG_INST} mkdir -p %{buildroot}%{SAGE_SPKG_INST}
@ -1465,6 +1545,7 @@ pushd %{buildroot}%{SAGE_SPKG_INST}
mkdir $pkg mkdir $pkg
done done
popd popd
#------------------------------------------------------------------------ #------------------------------------------------------------------------
cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages << EOF cat > %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages << EOF
#!/bin/sh #!/bin/sh
@ -1541,19 +1622,26 @@ popd
# Build the large Cremona database # Build the large Cremona database
export PATH=%{buildroot}%{SAGE_LOCAL}/bin:$PATH export PATH=%{buildroot}%{SAGE_LOCAL}/bin:$PATH
export PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH}:%{buildroot}%{python3_sitearch} export PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH}:%{buildroot}%{python3_sitearch}
touch %{buildroot}%{SAGE_SHARE}/cremona/cremona.db
cat > cremona.sage << EOF cat > cremona.sage << EOF
import sage.env
import sage.databases.cremona import sage.databases.cremona
db_path = '%{buildroot}%{SAGE_SHARE}/cremona/cremona' sage.env.SAGE_SHARE = '%{buildroot}%{SAGE_SHARE}'
c = sage.databases.cremona.LargeCremonaDatabase(db_path, False, True) c = sage.databases.cremona.LargeCremonaDatabase('cremona', False, True)
c._init_from_ftpdata('ecdata-%{cremona_ver}') c._init_from_ftpdata('ecdata-%{cremona_ver}')
EOF EOF
%{buildroot}%{SAGE_LOCAL}/bin/sage cremona.sage %{buildroot}%{SAGE_LOCAL}/bin/sage cremona.sage
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# Script was used to build documentation and possibly other operations # Scripts were used to build documentation and possibly other operations
perl -pi -e 's|%{buildroot}||g;s|^##||g;' \ sed -i 's|%{buildroot}||g;s|^##||g;' \
%{buildroot}%{_bindir}/sage \ %{buildroot}%{_bindir}/sage \
%{buildroot}%{SAGE_LOCAL}/bin/sage-env %{buildroot}%{SAGE_LOCAL}/bin/sage-env \
%{buildroot}%{SAGE_LOCAL}/bin/sage-env-config \
%{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config
sed -i "s|$PWD|%{SAGE_ROOT}|g" \
%{buildroot}%{SAGE_LOCAL}/bin/sage-env-config \
%{buildroot}%{SAGE_LOCAL}/bin/sage-src-env-config
# last install command # last install command
rm -fr $DOT_SAGE rm -fr $DOT_SAGE
@ -1659,20 +1747,12 @@ end
%files %files
# GPLv2+ # GPLv2+
%dir %{SAGE_ROOT} %license COPYING.txt
%doc %{SAGE_ROOT}/COPYING.txt %doc %{SAGE_ROOT}/COPYING.txt
%dir %{SAGE_ROOT}
%dir %{SAGE_LOCAL}/ %dir %{SAGE_LOCAL}/
%dir %{SAGE_LOCAL}/bin/
%dir %{SAGE_SHARE}/ %dir %{SAGE_SHARE}/
%{SAGE_LOCAL}/bin/QuadraticSieve %{SAGE_LOCAL}/bin/
%{SAGE_LOCAL}/bin/ecm
%{SAGE_LOCAL}/bin/gap
%{SAGE_LOCAL}/bin/jmol
%if %{with bundled_ipython}
%{SAGE_LOCAL}/bin/ip*
%endif
%{SAGE_LOCAL}/bin/python
%{SAGE_LOCAL}/bin/sage*
%{SAGE_LOCAL}/include %{SAGE_LOCAL}/include
%{SAGE_LOCAL}/lib %{SAGE_LOCAL}/lib
%{SAGE_LOCAL}/share %{SAGE_LOCAL}/share
@ -1681,16 +1761,13 @@ end
%{SAGE_ROOT}/devel %{SAGE_ROOT}/devel
%{SAGE_ROOT}/doc %{SAGE_ROOT}/doc
%{SAGE_ROOT}/share %{SAGE_ROOT}/share
%dir %{SAGE_SRC}/ %{SAGE_SRC}/
%if %{with docs}
%{SAGE_SRC}/doc
%endif
%{SAGE_SRC}/sage
%dir %{SAGE_PYTHONPATH} %dir %{SAGE_PYTHONPATH}
# GPLv2+ # GPLv2+
%{_bindir}/sage %{_bindir}/sage
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/org.%{name}.sage.desktop
%{_metainfodir}/org.%{name}.sage.metainfo.xml
%if %{with bundled_thebe} %if %{with bundled_thebe}
# MIT # MIT
%{SAGE_SHARE}/thebe/ %{SAGE_SHARE}/thebe/
@ -1714,10 +1791,12 @@ end
%if %{with bundled_ipywidgets} %if %{with bundled_ipywidgets}
%{SAGE_PYTHONPATH}/ipywidgets* %{SAGE_PYTHONPATH}/ipywidgets*
%endif %endif
%if %{with bundled_jupyter_jsmol}
%{SAGE_PYTHONPATH}/jupyter_jsmol*
%endif
#------------------------------------------------------------------------ #------------------------------------------------------------------------
%files data %files data
%dir %{SAGE_SHARE}/
%dir %{SAGE_ETC}/ %dir %{SAGE_ETC}/
%{SAGE_ETC}/sage %{SAGE_ETC}/sage
%{SAGE_ETC}/gprc.expect %{SAGE_ETC}/gprc.expect
@ -1775,6 +1854,7 @@ end
#------------------------------------------------------------------------ #------------------------------------------------------------------------
%files doc %files doc
# GPLv2+ # GPLv2+
%license COPYING.txt
%dir %{SAGE_DOC}/ %dir %{SAGE_DOC}/
%{SAGE_DOC}/common/ %{SAGE_DOC}/common/
%dir %{SAGE_DOC}/html/ %dir %{SAGE_DOC}/html/
@ -1909,8 +1989,6 @@ end
%{SAGE_ETC}/notebook-ipython/ %{SAGE_ETC}/notebook-ipython/
# LGPLv2+ # LGPLv2+
%{_datadir}/jupyter/kernels/sagemath/ %{_datadir}/jupyter/kernels/sagemath/
%{_datadir}/jupyter/nbextensions/jsmol
%{_datadir}/jupyter/nbextensions/mathjax
%{_datadir}/jupyter/nbextensions/threejs %{_datadir}/jupyter/nbextensions/threejs
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -1923,6 +2001,12 @@ end
######################################################################## ########################################################################
%changelog %changelog
* Thu Jun 17 2021 Jerry James <loganjerry@gmail.com> - 9.3-1
- Version 9.3
- Drop -arb and -openblas patches
- Add -cvxopt patch
- Add metainfo file
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 9.2-5 * Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 9.2-5
- Rebuilt for Python 3.10 - Rebuilt for Python 3.10

View file

@ -1,2 +1,2 @@
SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8 SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8
SHA512 (sage-9.2.tar.gz) = d7e833919740dd9249b14fb0fc7fdc93ad6265dae9363fa2495c88274f0683c7aae2f7625f842584a95bd4f6a439d575a6532a945d6e50054355853d68e0275d SHA512 (sage-9.3.tar.gz) = e5775aeff52fde3176f73340050e373e010a96f965c4b939b2ab105a941260d163185be2495ad38de6fbcaed81e897b6ad4180874ccfc778542beb79287bc912