sage: 9.4 -> 9.5
This commit is contained in:
parent
0aef6270cd
commit
cecbb55fb0
13 changed files with 156 additions and 108 deletions
|
@ -14,13 +14,17 @@ let
|
|||
# `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
|
||||
sagelib = self.callPackage ./sagelib.nix {
|
||||
inherit flint arb;
|
||||
inherit sage-src env-locations pynac singular;
|
||||
inherit sage-src env-locations singular;
|
||||
inherit (maxima) lisp-compiler;
|
||||
linbox = pkgs.linbox.override { withSage = true; };
|
||||
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
|
||||
};
|
||||
|
||||
sage_docbuild = self.callPackage ./sage_docbuild.nix {
|
||||
sage-docbuild = self.callPackage ./python-modules/sage-docbuild.nix {
|
||||
inherit sage-src;
|
||||
};
|
||||
|
||||
sage-setup = self.callPackage ./python-modules/sage-setup.nix {
|
||||
inherit sage-src;
|
||||
};
|
||||
};
|
||||
|
@ -58,9 +62,9 @@ let
|
|||
# the env-locations file.
|
||||
sage-env = callPackage ./sage-env.nix {
|
||||
sagelib = python3.pkgs.sagelib;
|
||||
sage_docbuild = python3.pkgs.sage_docbuild;
|
||||
sage-docbuild = python3.pkgs.sage-docbuild;
|
||||
inherit env-locations;
|
||||
inherit python3 singular palp flint pynac pythonEnv maxima;
|
||||
inherit python3 singular palp flint pythonEnv maxima;
|
||||
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
|
||||
};
|
||||
|
||||
|
@ -74,7 +78,7 @@ let
|
|||
sage-with-env = callPackage ./sage-with-env.nix {
|
||||
inherit python3 pythonEnv;
|
||||
inherit sage-env;
|
||||
inherit pynac singular maxima;
|
||||
inherit singular maxima;
|
||||
inherit three;
|
||||
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
|
||||
};
|
||||
|
@ -91,7 +95,7 @@ let
|
|||
|
||||
pythonRuntimeDeps = with python3.pkgs; [
|
||||
sagelib
|
||||
sage_docbuild
|
||||
sage-docbuild
|
||||
cvxopt
|
||||
networkx
|
||||
service-identity
|
||||
|
@ -132,9 +136,6 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
# *not* to confuse with the python package "pynac"
|
||||
pynac = pkgs.pynac.override { inherit singular flint; };
|
||||
|
||||
# With openblas (64 bit), the tests fail the same way as when sage is build with
|
||||
# openblas instead of openblasCompat. Apparently other packages somehow use flints
|
||||
# blas when it is available. Alternative would be to override flint to use
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/sage/env.py b/src/sage/env.py
|
||||
index 95980cc2df..37107a30e1 100644
|
||||
index c4953cfa65..47b880f9ad 100644
|
||||
--- a/src/sage/env.py
|
||||
+++ b/src/sage/env.py
|
||||
@@ -227,93 +227,12 @@ OPENMP_CXXFLAGS = var("OPENMP_CXXFLAGS", "")
|
||||
@@ -244,81 +244,8 @@ os.environ['MPMATH_SAGE'] = '1'
|
||||
SAGE_BANNER = var("SAGE_BANNER", "")
|
||||
SAGE_IMPORTALL = var("SAGE_IMPORTALL", "yes")
|
||||
|
||||
|
@ -29,20 +29,12 @@ index 95980cc2df..37107a30e1 100644
|
|||
-
|
||||
- EXAMPLES::
|
||||
-
|
||||
- sage: import sys
|
||||
- sage: from fnmatch import fnmatch
|
||||
- sage: from sage.env import _get_shared_lib_path
|
||||
- sage: lib_filename = _get_shared_lib_path("Singular", "singular-Singular")
|
||||
- sage: if sys.platform == 'cygwin':
|
||||
- ....: pattern = "*/cygSingular-*.dll"
|
||||
- ....: elif sys.platform == 'darwin':
|
||||
- ....: pattern = "*/libSingular-*.dylib"
|
||||
- ....: else:
|
||||
- ....: pattern = "*/lib*Singular-*.so"
|
||||
- sage: fnmatch(str(lib_filename), pattern)
|
||||
- sage: "gap" in _get_shared_lib_path("gap")
|
||||
- True
|
||||
- sage: _get_shared_lib_path("an_absurd_lib") is None
|
||||
- True
|
||||
-
|
||||
- """
|
||||
-
|
||||
- for libname in libnames:
|
||||
|
@ -87,11 +79,6 @@ index 95980cc2df..37107a30e1 100644
|
|||
- # Just return None if no files were found
|
||||
- return None
|
||||
-
|
||||
# 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", '/default')
|
||||
|
||||
# locate libgap shared object
|
||||
-GAP_SO = var("GAP_SO", _get_shared_lib_path("gap", ""))
|
||||
+GAP_SO = var("GAP_SO", '/default')
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
diff --git a/src/sage/libs/linbox/conversion.pxd b/src/sage/libs/linbox/conversion.pxd
|
||||
index 7794c9edc3..1753277b1f 100644
|
||||
--- a/src/sage/libs/linbox/conversion.pxd
|
||||
+++ b/src/sage/libs/linbox/conversion.pxd
|
||||
@@ -177,9 +177,8 @@ cdef inline Vector_integer_dense new_sage_vector_integer_dense(P, DenseVector_in
|
||||
- v -- linbox vector
|
||||
"""
|
||||
cdef Vector_integer_dense res = P()
|
||||
- cdef cppvector[Integer] * vec = &v.refRep()
|
||||
cdef size_t i
|
||||
for i in range(<size_t> res._degree):
|
||||
- mpz_set(res._entries[i], vec[0][i].get_mpz_const())
|
||||
+ mpz_set(res._entries[i], v.getEntry(i).get_mpz_const())
|
||||
|
||||
return res
|
||||
diff --git a/src/sage/libs/linbox/linbox.pxd b/src/sage/libs/linbox/linbox.pxd
|
||||
index 9112d151f8..dcc482960c 100644
|
||||
--- a/src/sage/libs/linbox/linbox.pxd
|
||||
+++ b/src/sage/libs/linbox/linbox.pxd
|
||||
@@ -32,7 +32,7 @@ cdef extern from "linbox/matrix/dense-matrix.h":
|
||||
ctypedef Modular_double Field
|
||||
ctypedef double Element
|
||||
DenseMatrix_Modular_double(Field F, size_t m, size_t n)
|
||||
- DenseMatrix_Modular_double(Field F, Element*, size_t m, size_t n)
|
||||
+ DenseMatrix_Modular_double(Field F, size_t m, size_t n, Element*)
|
||||
void setEntry(size_t i, size_t j, Element& a)
|
||||
Element &getEntry(size_t i, size_t j)
|
||||
|
||||
@@ -42,7 +42,7 @@ cdef extern from "linbox/matrix/dense-matrix.h":
|
||||
ctypedef Modular_float Field
|
||||
ctypedef float Element
|
||||
DenseMatrix_Modular_float(Field F, size_t m, size_t n)
|
||||
- DenseMatrix_Modular_float(Field F, Element*, size_t m, size_t n)
|
||||
+ DenseMatrix_Modular_float(Field F, size_t m, size_t n, Element*)
|
||||
void setEntry(size_t i, size_t j, Element& a)
|
||||
Element &getEntry(size_t i, size_t j)
|
||||
|
||||
@@ -101,7 +101,6 @@ cdef extern from "linbox/vector/vector.h":
|
||||
DenseVector_integer (Field &F)
|
||||
DenseVector_integer (Field &F, long& m)
|
||||
DenseVector_integer (Field &F, cppvector[Integer]&)
|
||||
- cppvector[Element]& refRep()
|
||||
size_t size()
|
||||
void resize(size_t)
|
||||
void resize(size_t n, const Element&)
|
||||
diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
index 010365d76f..3d60726ff9 100644
|
||||
--- a/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
+++ b/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
@@ -219,7 +219,7 @@ cdef inline linbox_echelonize_efd(celement modulus, celement* entries, Py_ssize_
|
||||
return 0,[]
|
||||
|
||||
cdef ModField *F = new ModField(<long>modulus)
|
||||
- cdef DenseMatrix *A = new DenseMatrix(F[0], <ModField.Element*>entries,<Py_ssize_t>nrows, <Py_ssize_t>ncols)
|
||||
+ cdef DenseMatrix *A = new DenseMatrix(F[0], <Py_ssize_t>nrows, <Py_ssize_t>ncols, <ModField.Element*>entries)
|
||||
cdef Py_ssize_t r = reducedRowEchelonize(A[0])
|
||||
cdef Py_ssize_t i,j
|
||||
for i in range(nrows):
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/sage_docbuild/__init__.py b/src/sage_docbuild/__init__.py
|
||||
index 79005b903a..fbe6fe2595 100644
|
||||
index 8a5c1a19d2..21fd192642 100644
|
||||
--- a/src/sage_docbuild/__init__.py
|
||||
+++ b/src/sage_docbuild/__init__.py
|
||||
@@ -85,27 +85,6 @@ def builder_helper(type):
|
||||
@@ -89,27 +89,6 @@ def builder_helper(type):
|
||||
"""
|
||||
Returns a function which builds the documentation for
|
||||
output type ``type``.
|
||||
|
@ -12,7 +12,7 @@ index 79005b903a..fbe6fe2595 100644
|
|||
- Check that :trac:`25161` has been resolved::
|
||||
-
|
||||
- sage: from sage_docbuild import DocBuilder, setup_parser
|
||||
- sage: DocBuilder._options = setup_parser().parse_args([])[0] # builder_helper needs _options to be set
|
||||
- sage: DocBuilder._options = setup_parser().parse_args([]) # builder_helper needs _options to be set
|
||||
-
|
||||
- sage: import sage_docbuild.sphinxbuild
|
||||
- sage: def raiseBaseException():
|
||||
|
@ -30,7 +30,7 @@ index 79005b903a..fbe6fe2595 100644
|
|||
"""
|
||||
def f(self, *args, **kwds):
|
||||
output_dir = self._output_dir(type)
|
||||
@@ -127,10 +106,9 @@ def builder_helper(type):
|
||||
@@ -131,10 +110,9 @@ def builder_helper(type):
|
||||
logger.debug(build_command)
|
||||
|
||||
# Run Sphinx with Sage's special logger
|
||||
|
@ -44,10 +44,10 @@ index 79005b903a..fbe6fe2595 100644
|
|||
if ABORT_ON_ERROR:
|
||||
raise
|
||||
diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
|
||||
index f58f6c61d7..ef51a55411 100644
|
||||
index d917c3e9d4..551cc8028a 100644
|
||||
--- a/src/sage_docbuild/sphinxbuild.py
|
||||
+++ b/src/sage_docbuild/sphinxbuild.py
|
||||
@@ -326,3 +326,8 @@ def runsphinx():
|
||||
@@ -327,3 +327,8 @@ def runsphinx():
|
||||
sys.stderr = saved_stderr
|
||||
sys.stdout.flush()
|
||||
sys.stderr.flush()
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, sage-src
|
||||
, sphinx
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = src.version;
|
||||
pname = "sage-docbuild";
|
||||
src = sage-src;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
sphinx
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
cd pkgs/sage-docbuild
|
||||
'';
|
||||
|
||||
doCheck = false; # we will run tests in sagedoc.nix
|
||||
|
||||
meta = with lib; {
|
||||
description = "Build system of the Sage documentation";
|
||||
homepage = "https://www.sagemath.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.sage.members;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, sage-src
|
||||
, pkgconfig # the python module, not the pkg-config alias
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = src.version;
|
||||
pname = "sage-setup";
|
||||
src = sage-src;
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
cd pkgs/sage-setup
|
||||
'';
|
||||
|
||||
doCheck = false; # sagelib depends on sage-setup, but sage-setup's tests depend on sagelib
|
||||
|
||||
meta = with lib; {
|
||||
description = "Build system of the Sage library";
|
||||
homepage = "https://www.sagemath.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.sage.members;
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
, lib
|
||||
, writeTextFile
|
||||
, sagelib
|
||||
, sage_docbuild
|
||||
, sage-docbuild
|
||||
, env-locations
|
||||
, gfortran
|
||||
, bash
|
||||
|
@ -45,11 +45,10 @@
|
|||
, flint
|
||||
, gmp
|
||||
, mpfr
|
||||
, pynac
|
||||
, zlib
|
||||
, gsl
|
||||
, ntl
|
||||
, jdk8
|
||||
, jdk
|
||||
, less
|
||||
}:
|
||||
|
||||
|
@ -60,8 +59,6 @@ assert (!blas.isILP64) && (!lapack.isILP64);
|
|||
# dependencies.
|
||||
|
||||
let
|
||||
jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
|
||||
|
||||
runtimepath = (lib.makeBinPath ([
|
||||
"@sage-local@"
|
||||
"@sage-local@/build"
|
||||
|
@ -163,7 +160,6 @@ writeTextFile rec {
|
|||
gmp
|
||||
mpfr
|
||||
pari
|
||||
pynac
|
||||
zlib
|
||||
eclib
|
||||
gsl
|
||||
|
@ -179,7 +175,6 @@ writeTextFile rec {
|
|||
glpk
|
||||
flint
|
||||
gap
|
||||
pynac
|
||||
mpfr.dev
|
||||
])
|
||||
}'
|
||||
|
@ -193,5 +188,5 @@ writeTextFile rec {
|
|||
'';
|
||||
} // { # equivalent of `passthru`, which `writeTextFile` doesn't support
|
||||
lib = sagelib;
|
||||
docbuild = sage_docbuild;
|
||||
docbuild = sage-docbuild;
|
||||
}
|
||||
|
|
|
@ -57,14 +57,14 @@ let
|
|||
);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "9.4";
|
||||
version = "9.5";
|
||||
pname = "sage-src";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sagemath";
|
||||
repo = "sage";
|
||||
rev = version;
|
||||
sha256 = "sha256-jqkr4meG02KbTCMsGvyr1UbosS4ZuUJhPXU/InuS+9A=";
|
||||
sha256 = "sha256-uOsLpsGpcIGs8Xr82X82MElnTB2E908gytyNJ8WVD5w=";
|
||||
};
|
||||
|
||||
# Patches needed because of particularities of nix or the way this is packaged.
|
||||
|
@ -117,46 +117,6 @@ stdenv.mkDerivation rec {
|
|||
# Let's just assume warnings are expected until we update to 4.27.0.
|
||||
./patches/fonttools-deprecation-warnings.patch
|
||||
|
||||
# https://trac.sagemath.org/ticket/32305
|
||||
(fetchSageDiff {
|
||||
base = "9.4";
|
||||
name = "networkx-2.6-upgrade.patch";
|
||||
rev = "9808325853ba9eb035115e5b056305a1c9d362a0";
|
||||
sha256 = "sha256-gJSqycCtbAVr5qnVEbHFUvIuTOvaxFIeffpzd6nH4DE=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32420
|
||||
(fetchSageDiff {
|
||||
base = "9.5.beta2";
|
||||
name = "sympy-1.9-update.patch";
|
||||
rev = "beed4e16aff32e47d0c3b1c58cb1e2f4c38590f8";
|
||||
sha256 = "sha256-3eJPfWfCrCAQ5filIn7FbzjRQeO9QyTIVl/HyRuqFtE=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32567
|
||||
(fetchSageDiff {
|
||||
base = "9.5.beta2";
|
||||
name = "arb-2.21.0-update.patch";
|
||||
rev = "eb3304dd521a3d5a9334e747a08e234bbf16b4eb";
|
||||
sha256 = "sha256-XDkaY4VQGyESXI6zuD7nCNzyQOl/fmBFvAESH9+RRvk=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32797
|
||||
(fetchSageDiff {
|
||||
base = "9.5.beta7";
|
||||
name = "pari-2.13.3-update.patch";
|
||||
rev = "f5f7a86908daf60b25e66e6a189c51ada7e0a732";
|
||||
sha256 = "sha256-H/caGx3q4KcdsyGe+ojV9bUTQ5y0siqM+QHgDbeEnbw=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32909
|
||||
(fetchSageDiff {
|
||||
base = "9.5.beta7";
|
||||
name = "matplotlib-3.5-deprecation-warnings.patch";
|
||||
rev = "a5127dc56fdf5c2e82f6bc781cfe78dbd04e97b7";
|
||||
sha256 = "sha256-p23qUu9mgEUbdbX6cy7ArxZAtpcFjCKbgyxN4jWvj1o=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32968
|
||||
(fetchSageDiff {
|
||||
base = "9.5.beta8";
|
||||
|
@ -164,6 +124,11 @@ stdenv.mkDerivation rec {
|
|||
rev = "fc84f82f52b6f05f512cb359ec7c100f93cf8841";
|
||||
sha256 = "sha256-bBbfdcnw/9LUOlY8rHJRbFJEdMXK4shosqTNaobTS1Q=";
|
||||
})
|
||||
|
||||
# Upstream has not upgraded to linbox 1.7 yet because it conflicts with
|
||||
# pre-4.2.1p3 versions of Singular, but we don't have this problem.
|
||||
# https://trac.sagemath.org/ticket/32959
|
||||
./patches/linbox-1.7-upgrade.patch
|
||||
];
|
||||
|
||||
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
, eclib
|
||||
, ntl
|
||||
, ecm
|
||||
, pynac
|
||||
, pythonEnv
|
||||
}:
|
||||
|
||||
|
@ -36,7 +35,6 @@ let
|
|||
blas lapack
|
||||
singular
|
||||
three
|
||||
pynac
|
||||
giac
|
||||
gap
|
||||
pari
|
||||
|
@ -126,6 +124,10 @@ stdenv.mkDerivation rec {
|
|||
cp -r src/bin "$out/bin"
|
||||
cp -r build/bin "$out/build/bin"
|
||||
|
||||
# sage assumes the existence of sage-src-env-config.in means it's being executed in-tree. in this case, it
|
||||
# adds SAGE_SRC/bin to PATH, breaking our wrappers
|
||||
rm "$out/bin"/*.in "$out/build/bin"/*.in
|
||||
|
||||
cp -f '${sage-env}/sage-env' "$out/bin/sage-env"
|
||||
substituteInPlace "$out/bin/sage-env" \
|
||||
--subst-var-by sage-local "$out"
|
||||
|
|
|
@ -62,7 +62,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://www.sagemath.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.sage.members;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
{ buildPythonPackage
|
||||
, sage-src
|
||||
, sphinx
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = src.version;
|
||||
pname = "sage_docbuild";
|
||||
src = sage-src;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
sphinx
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
cd build/pkgs/sage_docbuild/src
|
||||
'';
|
||||
|
||||
doCheck = false; # we will run tests in sagedoc.nix
|
||||
}
|
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||
jmol
|
||||
cddlib
|
||||
] ++ (with python3.pkgs; [
|
||||
sage_docbuild
|
||||
sage-docbuild
|
||||
psutil
|
||||
future
|
||||
sphinx
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
, pkg-config
|
||||
, planarity
|
||||
, ppl
|
||||
, pynac
|
||||
, primecountpy
|
||||
, python
|
||||
, ratpoints
|
||||
, readline
|
||||
|
@ -50,6 +50,7 @@
|
|||
, singular
|
||||
, pip
|
||||
, jupyter_core
|
||||
, sage-setup
|
||||
, libhomfly
|
||||
, libbraiding
|
||||
, gmpy2
|
||||
|
@ -86,6 +87,7 @@ buildPythonPackage rec {
|
|||
perl
|
||||
jupyter_core
|
||||
pkg-config
|
||||
sage-setup
|
||||
pip # needed to query installed packages
|
||||
lisp-compiler
|
||||
m4
|
||||
|
@ -130,7 +132,7 @@ buildPythonPackage rec {
|
|||
pari
|
||||
planarity
|
||||
ppl
|
||||
pynac
|
||||
primecountpy
|
||||
rankwidth
|
||||
ratpoints
|
||||
singular
|
||||
|
@ -181,6 +183,7 @@ buildPythonPackage rec {
|
|||
# build/pkgs, either directly or via sage-get-system-packages.
|
||||
sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
|
||||
sed -i 's/, <3.4//' ../rpy2/install-requires.txt
|
||||
sed -i 's/, <4.3//' ../sphinx/install-requires.txt
|
||||
sed -i '/sage_conf/d' src/setup.cfg.m4
|
||||
sed -i '/sage_conf/d' src/requirements.txt.m4
|
||||
for infile in src/*.m4; do
|
||||
|
|
Loading…
Reference in a new issue