Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: abf2c876d65e
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6e74109b13f5
Choose a head ref
  • 1 commit
  • 4 files changed
  • 1 contributor

Commits on Jun 18, 2019

  1. sage: fix threejs integration (#63375)

    Before this it didn't find the correct files. Unfortunately, the
    interactive parts of sage are hard to test automatically.
    timokau authored Jun 18, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    6e74109 View commit details
2 changes: 1 addition & 1 deletion pkgs/applications/science/math/sage/default.nix
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ let
# `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
sagelib = self.callPackage ./sagelib.nix {
inherit flint ecl arb;
inherit sage-src pynac singular;
inherit sage-src env-locations pynac singular;
linbox = pkgs.linbox.override { withSage = true; };
pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
};
64 changes: 64 additions & 0 deletions pkgs/applications/science/math/sage/patches/threejs-offline.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
diff --git a/build/pkgs/threejs/spkg-src b/build/pkgs/threejs/spkg-src
index 91780d813c..254b850a24 100755
--- a/build/pkgs/threejs/spkg-src
+++ b/build/pkgs/threejs/spkg-src
@@ -20,9 +20,17 @@ URL3="https://raw.githubusercontent.com/mrdoob/three.js/${GIT_VERSION}/LICENSE"
echo "Downloading $URL3"
curl -OL "$URL3"

+# Set up directory structure
+
+mkdir build
+mv three.min.js build
+
+mkdir -p examples/js/controls
+mv OrbitControls.js examples/js/controls
+
# Package
-tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" 'three.min.js' 'OrbitControls.js' 'LICENSE'
-rm -rf 'three.min.js' 'OrbitControls.js' 'LICENSE'
+tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" build examples 'LICENSE'
+rm -rf 'build' 'examples' 'LICENSE'

# Update package info
echo "${GIT_VERSION}" > 'package-version.txt'
diff --git a/src/sage/repl/rich_output/backend_ipython.py b/src/sage/repl/rich_output/backend_ipython.py
index 7c27d48a21..8bf4861a35 100644
--- a/src/sage/repl/rich_output/backend_ipython.py
+++ b/src/sage/repl/rich_output/backend_ipython.py
@@ -411,10 +411,15 @@ class BackendIPythonCommandline(BackendIPython):
sage: backend.threejs_offline_scripts()
'...<script ...</script>...'
"""
- from sage.env import SAGE_SHARE
+ from sage.env import THREEJS_DIR

- scripts = [os.path.join(SAGE_SHARE, 'threejs', script)
- for script in ['three.min.js', 'OrbitControls.js']]
+ scripts = [
+ os.path.join(THREEJS_DIR, script)
+ for script in [
+ 'build/three.min.js',
+ 'examples/js/controls/OrbitControls.js',
+ ]
+ ]

if sys.platform == 'cygwin':
import cygwin
@@ -594,13 +599,13 @@ class BackendIPythonNotebook(BackendIPython):
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook
sage: backend = BackendIPythonNotebook()
sage: backend.threejs_offline_scripts()
- '...<script src="/nbextensions/threejs/three.min...<\\/script>...'
+ '...<script src="/nbextensions/threejs/build/three.min...<\\/script>...'
"""
from sage.repl.rich_output import get_display_manager
CDN_scripts = get_display_manager().threejs_scripts(online=True)
return """
-<script src="/nbextensions/threejs/three.min.js"></script>
-<script src="/nbextensions/threejs/OrbitControls.js"></script>
+<script src="/nbextensions/threejs/build/three.min.js"></script>
+<script src="/nbextensions/threejs/examples/js/controls/OrbitControls.js"></script>
<script>
if ( !window.THREE ) document.write('{}');
</script>
3 changes: 3 additions & 0 deletions pkgs/applications/science/math/sage/sage-src.nix
Original file line number Diff line number Diff line change
@@ -68,6 +68,9 @@ stdenv.mkDerivation rec {
url = "https://git.sagemath.org/sage.git/patch/?h=c4d966e7cb0c7b87c55d52dc6f46518433a2a0a2";
sha256 = "0pqbbsx8mriwny422s9mp3z5d095cnam32sm62q4mxk8g8jb9vm9";
})

# https://trac.sagemath.org/ticket/28007
./patches/threejs-offline.patch
];

# Since sage unfortunately does not release bugfix releases, packagers must
6 changes: 5 additions & 1 deletion pkgs/applications/science/math/sage/sagelib.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{ sage-src
, env-locations
, perl
, buildPythonPackage
, arb
@@ -125,8 +126,11 @@ buildPythonPackage rec {
export SAGE_ROOT="$PWD"
export SAGE_LOCAL="$SAGE_ROOT"
export SAGE_SHARE="$SAGE_LOCAL/share"
export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
# set locations of dependencies (needed for nbextensions like threejs)
. ${env-locations}/sage-env-locations
export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH"
export SAGE_NUM_THREADS="$NIX_BUILD_CORES"