[arch-commits] Commit in sagemath/trunk (PKGBUILD sagemath-versioned-threejs.patch)
Antonio Rojas
arojas at archlinux.org
Fri Jul 2 21:30:41 UTC 2021
Date: Friday, July 2, 2021 @ 21:30:40
Author: arojas
Revision: 970947
Backport support for versioned three.js install
Added:
sagemath/trunk/sagemath-versioned-threejs.patch
Modified:
sagemath/trunk/PKGBUILD
----------------------------------+
PKGBUILD | 14 +++-
sagemath-versioned-threejs.patch | 110 +++++++++++++++++++++++++++++++++++++
2 files changed, 121 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2021-07-02 21:18:04 UTC (rev 970946)
+++ PKGBUILD 2021-07-02 21:30:40 UTC (rev 970947)
@@ -7,7 +7,7 @@
pkgname=sagemath
pkgver=9.3
-pkgrel=7
+pkgrel=8
pkgdesc='Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab'
arch=(x86_64)
url='http://www.sagemath.org'
@@ -44,7 +44,8 @@
sagemath-lrcalc2.patch
sagemath-eclib-20210310.patch
sagemath-matplotlib-3.4.patch
- sagemath-lrs-071.patch)
+ sagemath-lrs-071.patch
+ sagemath-versioned-threejs.patch)
sha256sums=('d3b104a83e140cda563ae0b44fa3ec2b3545660f120fab78dde6ceb5fb1ed991'
'c100a61c8dfade43bebc622a363abcb3d935a2f40958371ad87a9eb00689f8b0'
'88e944f23c3b2391dc2e9f9be8e1131152d837dc8c829dfc714663869a272e81'
@@ -53,7 +54,8 @@
'240ac4c29d96d56407a20e1b7f9846e342a7eb2bb4edd6e5c86b3b5a8ff462f9'
'e7b31f5e7ea88681c6eda41e5a74a2859a12dd128e75c00db3cfbd1d8ddf080d'
'5e6f919a386e1a9e9caf7528088a3a3f3f3fc51b158a4daf435771afb1212384'
- '4220a65e40f0f9df3a1667d7e5ac6bec36cfb7d2c3056fc02e5a6beb7dc882fa')
+ '4220a65e40f0f9df3a1667d7e5ac6bec36cfb7d2c3056fc02e5a6beb7dc882fa'
+ '3b4c38210b11e04a207a523f7bd7c5695393a2b1aa5c953a4647e862849a8530')
prepare(){
cd sage-$pkgver
@@ -69,6 +71,8 @@
patch -p1 -i ../sagemath-matplotlib-3.4.patch
# Fixes for lrs 071 https://trac.sagemath.org/ticket/27745
patch -p1 -i ../sagemath-lrs-071.patch
+# Use versioned three.js path https://trac.sagemath.org/ticket/30972
+ patch -p1 -i ../sagemath-versioned-threejs.patch
# Arch-specific patches
# assume all optional packages are installed
@@ -100,4 +104,8 @@
rm "$pkgdir"/usr/share/jupyter/kernels/sagemath/$_i
ln -s $_pythonpath/sage/ext_data/notebook-ipython/$_i "$pkgdir"/usr/share/jupyter/kernels/sagemath/
done
+
+# adjust threejs version
+ rm "$pkgdir"$_pythonpath/sage/ext_data/threejs/threejs-version.txt
+ ln -s /usr/share/threejs-sage/version "$pkgdir"$_pythonpath/sage/ext_data/threejs/threejs-version.txt
}
Added: sagemath-versioned-threejs.patch
===================================================================
--- sagemath-versioned-threejs.patch (rev 0)
+++ sagemath-versioned-threejs.patch 2021-07-02 21:30:40 UTC (rev 970947)
@@ -0,0 +1,110 @@
+diff --git a/src/sage/env.py b/src/sage/env.py
+index e792ca8..c4f0e02 100644
+--- a/src/sage/env.py
++++ b/src/sage/env.py
+@@ -207,7 +207,7 @@ CREMONA_LARGE_DATA_DIR = var("CREMONA_LARGE_DATA_DIR", join(SAGE_SHARE, "cremona
+ JMOL_DIR = var("JMOL_DIR", join(SAGE_SHARE, "jmol"))
+ MATHJAX_DIR = var("MATHJAX_DIR", join(SAGE_SHARE, "mathjax"))
+ MTXLIB = var("MTXLIB", join(SAGE_SHARE, "meataxe"))
+-THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs"))
++THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs-sage"))
+ SINGULARPATH = var("SINGULARPATH", join(SAGE_SHARE, "singular"))
+ PPLPY_DOCS = var("PPLPY_DOCS", join(SAGE_SHARE, "doc", "pplpy"))
+ MAXIMA = var("MAXIMA", "maxima")
+diff --git a/src/sage/ext_data/threejs/threejs-version.txt b/src/sage/ext_data/threejs/threejs-version.txt
+new file mode 100644
+index 00000000..98ffb8e
+--- /dev/null
++++ b/src/sage/ext_data/threejs/threejs-version.txt
+@@ -0,0 +1 @@
++r122
+diff --git a/src/sage/repl/ipython_kernel/install.py b/src/sage/repl/ipython_kernel/install.py
+index a1d3ec7..2143c22 100644
+--- a/src/sage/repl/ipython_kernel/install.py
++++ b/src/sage/repl/ipython_kernel/install.py
+@@ -123,12 +123,12 @@ class SageKernelSpec(object):
+ sage: from sage.repl.ipython_kernel.install import SageKernelSpec
+ sage: spec = SageKernelSpec(prefix=tmp_dir())
+ sage: spec.use_local_threejs()
+- sage: threejs = os.path.join(spec.nbextensions_dir, 'threejs')
++ sage: threejs = os.path.join(spec.nbextensions_dir, 'threejs-sage')
+ sage: os.path.isdir(threejs)
+ True
+ """
+ src = THREEJS_DIR
+- dst = os.path.join(self.nbextensions_dir, 'threejs')
++ dst = os.path.join(self.nbextensions_dir, 'threejs-sage')
+ self.symlink(src, dst)
+
+ def _kernel_cmd(self):
+diff --git a/src/sage/repl/rich_output/backend_ipython.py b/src/sage/repl/rich_output/backend_ipython.py
+index b290e74..43835b4 100644
+--- a/src/sage/repl/rich_output/backend_ipython.py
++++ b/src/sage/repl/rich_output/backend_ipython.py
+@@ -413,8 +413,9 @@ class BackendIPythonCommandline(BackendIPython):
+ '...<script ...</script>...'
+ """
+ from sage.env import THREEJS_DIR
++ from sage.repl.rich_output.display_manager import _required_threejs_version
+
+- script = os.path.join(THREEJS_DIR, 'build/three.min.js')
++ script = os.path.join(THREEJS_DIR, '{}/three.min.js'.format(_required_threejs_version()))
+
+ if sys.platform == 'cygwin':
+ import cygwin
+@@ -597,13 +598,15 @@ 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/build/three.min...<\\/script>...'
++ '...<script src="/nbextensions/threejs-sage/r.../three.min.js...<\\/script>...'
+ """
+ from sage.repl.rich_output import get_display_manager
++ from sage.repl.rich_output.display_manager import _required_threejs_version
+ CDN_script = get_display_manager().threejs_scripts(online=True)
++ CDN_script = CDN_script.replace('</script>', r'<\/script>').replace('\n', ' \\\n')
+ return """
+-<script src="/nbextensions/threejs/build/three.min.js"></script>
++<script src="/nbextensions/threejs-sage/{}/three.min.js"></script>
+ <script>
+ if ( !window.THREE ) document.write('{}');
+ </script>
+- """.format(CDN_script.replace('</script>', r'<\/script>').replace('\n', ' \\\n'))
++ """.format(_required_threejs_version(), CDN_script)
+diff --git a/src/sage/repl/rich_output/display_manager.py b/src/sage/repl/rich_output/display_manager.py
+index f91c56e..eb042a9 100644
+--- a/src/sage/repl/rich_output/display_manager.py
++++ b/src/sage/repl/rich_output/display_manager.py
+@@ -45,6 +45,20 @@ from sage.repl.rich_output.output_browser import (
+ )
+ from sage.repl.rich_output.preferences import DisplayPreferences
+
++def _required_threejs_version():
++ """
++ Return the version of threejs that Sage requires.
++
++ EXAMPLES::
++
++ sage: from sage.repl.rich_output.display_manager import _required_threejs_version
++ sage: _required_threejs_version()
++ 'r...'
++ """
++ import os
++ import sage.env
++ with open(os.path.join(sage.env.SAGE_EXTCODE, 'threejs', 'threejs-version.txt')) as f:
++ return f.read().strip()
+
+ class DisplayException(Exception):
+ """
+@@ -749,10 +763,7 @@ class DisplayManager(SageObject):
+ offline threejs graphics
+ """
+ if online:
+- import sage.env
+- import os
+- with open(os.path.join(sage.env.THREEJS_DIR, 'version')) as f:
+- version = f.read().strip()
++ version = _required_threejs_version()
+ return """
+ <script src="https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@{0}/build/three.min.js"></script>
+ """.format(version)
More information about the arch-commits
mailing list