diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix index 8ef1f5189e5..4a18d1e88a6 100644 --- a/pkgs/applications/science/math/sage/default.nix +++ b/pkgs/applications/science/math/sage/default.nix @@ -38,14 +38,16 @@ let logo64 = "${sage-src}/doc/common/themes/sage/static/sageicon.png"; }; + three = callPackage ./threejs-sage.nix { }; + # A bash script setting various environment variables to tell sage where # the files its looking fore are located. Also see `sage-env`. env-locations = callPackage ./env-locations.nix { inherit pari_data; inherit singular maxima-ecl; + inherit three; ecl = maxima-ecl.ecl; cysignals = python3.pkgs.cysignals; - three = nodePackages.three; mathjax = nodePackages.mathjax; }; @@ -70,8 +72,8 @@ let inherit python3 pythonEnv; inherit sage-env; inherit pynac singular maxima-ecl; + inherit three; pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config - three = nodePackages.three; }; # Doesn't actually build anything, just runs sages testsuite. This is a diff --git a/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch b/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch deleted file mode 100644 index 88cb66506b1..00000000000 --- a/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/sage/repl/rich_output/display_manager.py b/src/sage/repl/rich_output/display_manager.py -index fb21f7a9c9..f39470777d 100644 ---- a/src/sage/repl/rich_output/display_manager.py -+++ b/src/sage/repl/rich_output/display_manager.py -@@ -749,9 +749,9 @@ class DisplayManager(SageObject): - import sage.env - import re - import os -- with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.min.js')) as f: -+ with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.js')) as f: - text = f.read().replace('\n','') -- version = re.search(r'REVISION="(\d+)"', text).group(1) -+ version = re.search(r"REVISION = '(\d+)'", text).group(1) - return """ - - diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index 1fb605b3599..8ac5143f443 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -131,9 +131,6 @@ stdenv.mkDerivation rec { # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985) ./patches/sympy-1.7-update.patch - # workaround until we use sage's fork of threejs, which contains a "version" file - ./patches/dont-grep-threejs-version-from-minified-js.patch - # updated eclib output has punctuation changes and tidier whitespace ./patches/eclib-20210223-test-formatting.patch diff --git a/pkgs/applications/science/math/sage/threejs-sage.nix b/pkgs/applications/science/math/sage/threejs-sage.nix new file mode 100644 index 00000000000..0e4ad4dee95 --- /dev/null +++ b/pkgs/applications/science/math/sage/threejs-sage.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "threejs-sage"; + version = "r122"; + + src = fetchFromGitHub { + owner = "sagemath"; + repo = "threejs-sage"; + rev = version; + sha256 = "sha256-xPAPt36Fon3hYQq6SOmGkIyUzAII2LMl10nqYG4UPI0="; + }; + + installPhase = '' + mkdir -p $out/lib/node_modules/three + cp -r build version $out/lib/node_modules/three + ''; +}