Merge pull request #294062 from collares/sage-10.3

sage: 10.2 -> 10.3
This commit is contained in:
Mauricio Collares 2024-03-20 13:21:12 +01:00 committed by GitHub
commit e21968aa89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 66 additions and 87 deletions

View file

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
pname = "nauty";
version = "2.7r4";
version = "2.8.8";
src = fetchurl {
url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] [""] version}.tar.gz";
sha256 = "sha256-uBDIWm/imfO0yfJKr5KcrH+VRsLzXCDh3Qrbx0CISKY=";
url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] ["_"] version}.tar.gz";
sha256 = "sha256-FZ0hVoEKa7JAQQzWHrZBrdhQiNnxXIiM2qN7hoH5Kc4=";
};
outputs = [ "out" "dev" ];
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
# I'm not sure if the filename will remain the same for future changelog or
# if it will track changes to minor releases. Lets see. Better than nothing
# in any case.
changelog = "https://pallini.di.uniroma1.it/changes24-27.txt";
changelog = "https://pallini.di.uniroma1.it/changes24-28.txt";
homepage = "https://pallini.di.uniroma1.it/";
};
}

View file

@ -15,7 +15,7 @@ let
pkgs = pkgs.python3.pkgs.overrideScope (self: super: {
# `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
sagelib = self.callPackage ./sagelib.nix {
inherit flint arb;
inherit flint3;
inherit sage-src env-locations singular;
inherit (maxima) lisp-compiler;
linbox = pkgs.linbox.override { withSage = true; };
@ -73,7 +73,7 @@ let
sagelib = python3.pkgs.sagelib;
sage-docbuild = python3.pkgs.sage-docbuild;
inherit env-locations;
inherit python3 singular palp flint pythonEnv maxima;
inherit python3 singular palp flint3 pythonEnv maxima;
pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
};
@ -125,9 +125,7 @@ let
ignoreCollisions = true;
} // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
arb = pkgs.arb.override { inherit flint; };
singular = pkgs.singular.override { inherit flint; };
singular = pkgs.singular.override { inherit flint3; };
maxima = pkgs.maxima-ecl.override {
lisp-compiler = pkgs.ecl.override {
@ -149,7 +147,7 @@ let
# openblas instead of openblasCompat. Apparently other packages somehow use flints
# blas when it is available. Alternative would be to override flint to use
# openblasCompat.
flint = pkgs.flint.override { withBlas = false; };
flint3 = pkgs.flint3.override { withBlas = false; };
# Multiple palp dimensions need to be available and sage expects them all to be
# in the same folder.

View file

@ -3,7 +3,6 @@
, pari
, singular
, maxima
, conway_polynomials
, graphs
, elliptic_curves
, polytopes_db
@ -27,16 +26,13 @@ writeTextFile rec {
export GPDOCDIR="${pari}/share/pari/doc"
export SINGULARPATH='${singular}/share/singular'
export SINGULAR_SO='${singular}/lib/libSingular.so'
export GAP_SO='${gap}/lib/libgap.so'
export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
export MAXIMA_FAS='${maxima}/lib/maxima/${maxima.version}/binary-ecl/maxima.fas'
export MAXIMA_PREFIX="${maxima}"
export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
export GRAPHS_DATA_DIR='${graphs}/share/graphs'
export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
export GAP_LIB_DIR='${gap}/lib/gap'
export GAP_SHARE_DIR='${gap}/share/gap'
export GAP_ROOT_PATHS='${gap}/lib/gap;${gap}/share/gap'
export ECLDIR='${maxima.lisp-compiler}/lib/${maxima.lisp-compiler.pname}-${maxima.lisp-compiler.version}/'
export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"

View file

@ -4,6 +4,7 @@
, jupyter-sphinx
, sphinx
, sphinx-copybutton
, sphinx-inline-tabs
}:
buildPythonPackage rec {
@ -15,6 +16,7 @@ buildPythonPackage rec {
jupyter-sphinx
sphinx
sphinx-copybutton
sphinx-inline-tabs
];
preBuild = ''

View file

@ -42,7 +42,7 @@
, flintqs
, blas
, lapack
, flint
, flint3
, gmp
, mpfr
, zlib
@ -155,7 +155,7 @@ writeTextFile rec {
# cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
export LDFLAGS='${
lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
flint
flint3
gap
glpk
gmp
@ -174,7 +174,7 @@ writeTextFile rec {
singular
gmp.dev
glpk
flint
flint3
gap
mpfr.dev
])

View file

@ -10,14 +10,14 @@
# all get the same sources with the same patches applied.
stdenv.mkDerivation rec {
version = "10.2";
version = "10.3";
pname = "sage-src";
src = fetchFromGitHub {
owner = "sagemath";
repo = "sage";
rev = version;
sha256 = "sha256-VXnPdJhtw5Y/anecrVpevJDCyBVfnjksyuuZslNipm4=";
hash = "sha256-OHtMv8t0RrP6R8XIREU+C1vpazeQLWa75wx9Mv6BN1U=";
};
# contains essential files (e.g., setup.cfg) generated by the bootstrap script.
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
configure-src = fetchurl {
# the hash below is the tagged commit's _parent_. it can also be found by looking for
# the "configure" asset at https://github.com/sagemath/sage/releases/tag/${version}
url = "mirror://sageupstream/configure/configure-b2813506039143e6f0abe859ab67a343abf72c2e.tar.gz";
sha256 = "sha256-a1v0XyoKI+zO6Sjm8DzEwItRHbIgRDbpj4UfwVH+/hw=";
url = "mirror://sageupstream/configure/configure-ab1a517b64b02bf15bbcb8d7c2d4d643bd5eff9b.tar.gz";
hash = "sha256-pe9AxTM+gFSR4/eVfUzay+4bwjoubbYeDPc+avKjlaw=";
};
# Patches needed because of particularities of nix or the way this is packaged.
@ -62,11 +62,11 @@ stdenv.mkDerivation rec {
# should come from or be proposed to upstream. This list will probably never
# be empty since dependencies update all the time.
packageUpgradePatches = [
# https://github.com/sagemath/sage/pull/37123, to land in 10.3.beta7
# https://github.com/sagemath/sage/pull/37492
(fetchpatch {
name = "scipy-1.12-upgrade.patch";
url = "https://github.com/sagemath/sage/commit/54eec464e9fdf18b411d9148aecb918178e95909.diff";
sha256 = "sha256-9wyNrcSfF6mYFTIV4ev2OdD7igb0AeyZZYWSc/+JrIU=";
name = "singular-4.3.2p14-upgrade.patch";
url = "https://github.com/sagemath/sage/commit/a0c56816b051e97da44ac0a4e4d4f6915cf7fa0f.diff";
sha256 = "sha256-WGMmPeBoj2LUC+2qxWuaJL89QUuGt6axGvxWkpM9LYg=";
})
];

View file

@ -10,7 +10,6 @@
, iml
, libpng
, readline
, arb
, blas
, boost
, brial
@ -18,7 +17,7 @@
, eclib
, ecm
, fflas-ffpack
, flint
, flint3
, gap
, giac
, givaro
@ -45,6 +44,7 @@
, singular
, sqlite
, symmetrica
, conway-polynomials
, cvxopt
, cypari2
, cysignals
@ -92,6 +92,7 @@ buildPythonPackage rec {
version = src.version;
pname = "sagelib";
src = sage-src;
pyproject = true;
nativeBuildInputs = [
iml
@ -112,7 +113,6 @@ buildPythonPackage rec {
propagatedBuildInputs = [
# native dependencies (TODO: determine which ones need to be propagated)
arb
blas
boost
brial
@ -120,7 +120,7 @@ buildPythonPackage rec {
eclib
ecm
fflas-ffpack
flint
flint3
gap
giac
givaro
@ -149,6 +149,7 @@ buildPythonPackage rec {
symmetrica
# from src/sage/setup.cfg and requirements.txt
conway-polynomials
cvxopt
cypari2
cysignals
@ -202,11 +203,7 @@ buildPythonPackage rec {
mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
mkdir -p "var/lib/sage/installed"
# version lower bounds are useful, but upper bounds are a hassle because
# Sage tests already catch any relevant API breakage.
# according to the discussion at https://trac.sagemath.org/ticket/33520,
# upper bounds will be less noisy starting from Sage 9.6.
sed -i 's/, <[^, ]*//' build/pkgs/*/install-requires.txt
sed -i "/sage-conf/d" src/{setup.cfg,pyproject.toml,requirements.txt}
cd build/pkgs/sagelib/src
'';

View file

@ -5,7 +5,7 @@
, sharutils
, file
, getconf
, flint
, flint3
, ntl
, cddlib
, gfan
@ -18,13 +18,13 @@
# want it to match the upstream format because sage depends on it.
, texinfo4
, texliveSmall
, enableDocs ? !stdenv.isDarwin
, enableDocs ? true
, enableGfanlib ? true
}:
stdenv.mkDerivation rec {
pname = "singular";
version = "4.3.2p2";
version = "4.3.2p16";
# since the tarball does not contain tests, we fetch from GitHub.
src = fetchFromGitHub {
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
# if a release is tagged (which sometimes does not happen), it will
# be in the format below.
rev = "Release-${lib.replaceStrings ["."] ["-"] version}";
sha256 = "sha256-dtZmN8xUCZ9eSgmtBxqfJeWsM4W5Baq7xWXuNAxNLjA=";
sha256 = "sha256-5JZgI5lnfX4JlBSEAL7Wv6uao/57GBaMqwgslJt9Bjk=";
# the repository's .gitattributes file contains the lines "/Tst/
# export-ignore" and "/doc/ export-ignore" so some directories are
@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
ncurses
readline
ntl
flint
flint3
lrcalc
gfan
] ++ lib.optionals enableGfanlib [

View file

@ -1,41 +0,0 @@
{ lib, stdenv
, fetchurl
, python3
}:
stdenv.mkDerivation rec {
pname = "conway_polynomials";
version = "0.5";
src = fetchurl {
url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
};
# Script that creates the "database" (nested python array) and pickles it
spkg-install = fetchurl {
url = "https://raw.githubusercontent.com/sagemath/sage/9.2/build/pkgs/conway_polynomials/spkg-install.py";
sha256 = "1bwnqasnyv793hxg29viing4dnliz29grkhldsirq19d509yk1fs";
};
installPhase = ''
# directory layout as spkg-install.py expects
dir="$PWD"
cd ..
ln -s "$dir" "src"
# environment spkg-install.py expects
mkdir -p "$out/share"
export SAGE_SHARE="$out/share"
export PYTHONPATH=$PWD
${python3.interpreter} ${spkg-install}
'';
meta = with lib; {
description = "Contains a small database of Conway polynomials";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = teams.sage.members;
};
}

View file

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-blas-libs=-lcblas"
"--with-lapack-libs=-llapacke"
"--without-archnative"
] ++ lib.optionals stdenv.isx86_64 [
# disable SIMD instructions (which are enabled *when available* by default)
# for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)

View file

@ -24,16 +24,19 @@ stdenv.mkDerivation rec {
sha256 = "sha256-ezEaAFA6hjiB64F32+uEMi8pOZ89fXLzsaTJuh1XlLQ=";
};
propagatedBuildInputs = [
nativeBuildInputs = [
autoconf
automake
gettext
libtool
];
propagatedBuildInputs = [
mpfr
];
buildInputs = [
gmp
mpfr
] ++ lib.optionals withBlas [
openblas
] ++ lib.optionals withNtl [

View file

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ gmpxx ];
configureFlags = [
"--disable-optimization"
"--without-archnative"
] ++ lib.optionals stdenv.isx86_64 [
# disable SIMD instructions (which are enabled *when available* by default)
"--${if stdenv.hostPlatform.sse3Support then "enable" else "disable"}-sse3"

View file

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-blas-libs=-lblas"
"--disable-optimization"
"--without-archnative"
] ++ lib.optionals stdenv.isx86_64 [
# disable SIMD instructions (which are enabled *when available* by default)
"--${if stdenv.hostPlatform.sse3Support then "enable" else "disable"}-sse3"

View file

@ -0,0 +1,23 @@
{ lib
, fetchPypi
, buildPythonPackage
}:
buildPythonPackage rec {
pname = "conway-polynomials";
version = "0.9";
src = fetchPypi {
inherit pname version;
hash = "sha256-btIwBgm8558BddW4VGhY7sAoVPi+MjfbjRRJzMzBxYE=";
};
pythonImportsCheck = [ "conway_polynomials" ];
meta = with lib; {
description = "Python interface to Frank Lübeck's Conway polynomial database";
homepage = "https://github.com/sagemath/conway-polynomials";
maintainers = teams.sage.members;
license = licenses.gpl3Plus;
};
}

View file

@ -28821,8 +28821,6 @@ with pkgs;
commit-mono = callPackage ../data/fonts/commit-mono { };
conway_polynomials = callPackage ../data/misc/conway_polynomials { };
cooper-hewitt = callPackage ../data/fonts/cooper-hewitt { };
d2coding = callPackage ../data/fonts/d2coding { };

View file

@ -1955,6 +1955,8 @@ self: super: with self; {
connio = callPackage ../development/python-modules/connio { };
conway-polynomials = callPackage ../development/python-modules/conway-polynomials {};
correctionlib = callPackage ../development/python-modules/correctionlib { };
coqpit = callPackage ../development/python-modules/coqpit { };