[arch-commits] Commit in sagemath-doc/repos/community-any (10 files)

Antonio Rojas arojas at archlinux.org
Sat Apr 18 21:15:09 UTC 2020


    Date: Saturday, April 18, 2020 @ 21:15:09
  Author: arojas
Revision: 616170

archrelease: copy trunk to community-any

Added:
  sagemath-doc/repos/community-any/PKGBUILD
    (from rev 616169, sagemath-doc/trunk/PKGBUILD)
  sagemath-doc/repos/community-any/docbuild_main.patch
    (from rev 616169, sagemath-doc/trunk/docbuild_main.patch)
  sagemath-doc/repos/community-any/sagemath-doc-sphinx-3.patch
    (from rev 616169, sagemath-doc/trunk/sagemath-doc-sphinx-3.patch)
  sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch
    (from rev 616169, sagemath-doc/trunk/sagemath-ecl-sigfpe.patch)
  sagemath-doc/repos/community-any/sagemath-matplotlib-3.2.patch
    (from rev 616169, sagemath-doc/trunk/sagemath-matplotlib-3.2.patch)
  sagemath-doc/repos/community-any/sphinxify-warnings.patch
    (from rev 616169, sagemath-doc/trunk/sphinxify-warnings.patch)
Deleted:
  sagemath-doc/repos/community-any/PKGBUILD
  sagemath-doc/repos/community-any/docbuild_main.patch
  sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch
  sagemath-doc/repos/community-any/sphinxify-warnings.patch

-------------------------------+
 PKGBUILD                      |  137 +++++++++---------
 docbuild_main.patch           |   12 -
 sagemath-doc-sphinx-3.patch   |  227 ++++++++++++++++++++++++++++++
 sagemath-ecl-sigfpe.patch     |  294 ++++++++++++++++++++--------------------
 sagemath-matplotlib-3.2.patch |   62 ++++++++
 sphinxify-warnings.patch      |   32 ++--
 6 files changed, 531 insertions(+), 233 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-04-18 21:13:29 UTC (rev 616169)
+++ PKGBUILD	2020-04-18 21:15:09 UTC (rev 616170)
@@ -1,64 +0,0 @@
-# Maintainer: Antonio Rojas <arojas at archlinux.org>
-
-pkgname=sagemath-doc
-pkgver=9.0
-pkgrel=2
-pkgdesc="HTML documentation for SageMath"
-arch=(any)
-url="http://www.sagemath.org"
-license=(GPL)
-depends=(gap-doc python-pplpy)
-makedepends=(sagemath python-pyzmq python-docutils python-jupyter_client python-pkgconfig cython python-ipywidgets python-sphinx-1 thebe)
-source=(sagemath-$pkgver.tar.gz::"https://github.com/sagemath/sage/archive/$pkgver.tar.gz"
-        docbuild_main.patch
-        sagemath-ecl-sigfpe.patch
-        sphinxify-warnings.patch)
-sha256sums=('6f5d42b306a2c03073dd95086f80602bd1a0b929b8ad19c6d219c8ca8e96da26'
-            'ea5e17bb7a7cb36a22e5e3872fcc2585852bc971c4b139b0b2cd69a36c1b009b'
-            'e44bbde87f3312548faad75b7383ef21fade55be251ab5804de41cd3842ca8a0'
-            '99fc7f393d5ee2687573c0ef6bf5ecb75077e415aa0605af3766824fa11aafd6')
-
-prepare() {
-  cd sage-$pkgver
-
-# fix relative imports
-  patch -p0 -i ../docbuild_main.patch
-# use sage_setup imports from sagemath source, but use system sage ones (which include compiled modules)
-  mkdir -p local-python
-  ln -sr src/sage_setup local-python
-# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191
-  patch -p1 -i ../sagemath-ecl-sigfpe.patch
-# Fix sphinxify deprecation warnings
-  patch -p1 -i ../sphinxify-warnings.patch
-}
-
-build() {
-  cd sage-$pkgver/src
-
-  export SAGE_LOCAL="/usr" \
-         SAGE_ROOT="/usr" \
-         SAGE_SRC="$PWD" \
-         SAGE_DOC_SRC="$PWD"/doc \
-         SAGE_DOC="$PWD"/doc \
-         MATHJAX_DIR="/usr/share/mathjax2" \
-         PYTHONPATH="$srcdir"/sage-$pkgver/local-python \
-         SAGE_NUM_THREADS=10
-  python sage_setup/docbuild --no-pdf-links --mathjax all html
-}
-
-package() {
-  cd sage-$pkgver/src/doc
- 
-  mkdir -p "$pkgdir"/usr/share/doc/sage
-  cp -r common "$pkgdir"/usr/share/doc/sage
-  cp -r html "$pkgdir"/usr/share/doc/sage
-
-# Replace duplicated files by symlinks (Gentoo)
-  cd "$pkgdir"/usr/share/doc/sage
-  mv html/en/_static{,.tmp}
-  for _dir in `find -name _static` ; do
-    rm -r $_dir
-    ln -s /usr/share/doc/sage/html/en/_static $_dir
-  done
-  mv html/en/_static{.tmp,}
-}

Copied: sagemath-doc/repos/community-any/PKGBUILD (from rev 616169, sagemath-doc/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,73 @@
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+
+pkgname=sagemath-doc
+pkgver=9.0
+pkgrel=3
+pkgdesc="HTML documentation for SageMath"
+arch=(any)
+url="http://www.sagemath.org"
+license=(GPL)
+depends=(gap-doc python-pplpy)
+makedepends=(sagemath python-pyzmq python-docutils python-jupyter_client python-pkgconfig cython python-ipywidgets thebe)
+source=(sagemath-$pkgver.tar.gz::"https://github.com/sagemath/sage/archive/$pkgver.tar.gz"
+        docbuild_main.patch
+        sagemath-ecl-sigfpe.patch
+        sphinxify-warnings.patch
+        sagemath-matplotlib-3.2.patch
+        sagemath-doc-sphinx-3.patch)
+sha256sums=('6f5d42b306a2c03073dd95086f80602bd1a0b929b8ad19c6d219c8ca8e96da26'
+            'ea5e17bb7a7cb36a22e5e3872fcc2585852bc971c4b139b0b2cd69a36c1b009b'
+            'e44bbde87f3312548faad75b7383ef21fade55be251ab5804de41cd3842ca8a0'
+            '99fc7f393d5ee2687573c0ef6bf5ecb75077e415aa0605af3766824fa11aafd6'
+            '979777363001cca87f73128dd4db5f372fc9e4f1079805a20af01df47797468f'
+            '57dc8b1d2adb2bde9896edc2d123149897390af5c13d5fe02cc175850305200c')
+options=(!strip)
+
+prepare() {
+  cd sage-$pkgver
+
+# fix relative imports
+  patch -p0 -i ../docbuild_main.patch
+# use sage_setup imports from sagemath source, but use system sage ones (which include compiled modules)
+  mkdir -p local-python
+  ln -sr src/sage_setup local-python
+# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191
+  patch -p1 -i ../sagemath-ecl-sigfpe.patch
+# Fix sphinxify deprecation warnings
+  patch -p1 -i ../sphinxify-warnings.patch
+# Fix warnings with matplotlib 3.2
+  patch -p1 -i ../sagemath-matplotlib-3.2.patch
+# Fix build with sphinx 3.0
+  patch -p1 -i ../sagemath-doc-sphinx-3.patch
+}
+
+build() {
+  cd sage-$pkgver/src
+
+  export SAGE_LOCAL="/usr" \
+         SAGE_ROOT="/usr" \
+         SAGE_SRC="$PWD" \
+         SAGE_DOC_SRC="$PWD"/doc \
+         SAGE_DOC="$PWD"/doc \
+         MATHJAX_DIR="/usr/share/mathjax2" \
+         PYTHONPATH="$srcdir"/sage-$pkgver/local-python \
+         SAGE_NUM_THREADS=10
+  python sage_setup/docbuild --no-pdf-links --mathjax all html -k
+}
+
+package() {
+  cd sage-$pkgver/src/doc
+ 
+  mkdir -p "$pkgdir"/usr/share/doc/sage
+  cp -r common "$pkgdir"/usr/share/doc/sage
+  cp -r html "$pkgdir"/usr/share/doc/sage
+
+# Replace duplicated files by symlinks (Gentoo)
+  cd "$pkgdir"/usr/share/doc/sage
+  mv html/en/_static{,.tmp}
+  for _dir in `find -name _static` ; do
+    rm -r $_dir
+    ln -s /usr/share/doc/sage/html/en/_static $_dir
+  done
+  mv html/en/_static{.tmp,}
+}

Deleted: docbuild_main.patch
===================================================================
--- docbuild_main.patch	2020-04-18 21:13:29 UTC (rev 616169)
+++ docbuild_main.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -1,6 +0,0 @@
---- src/sage_setup/docbuild/__main__.py.orig
-+++ src/sage_setup/docbuild/__main__.py
-@@ -1,2 +1,2 @@
--from . import main
-+from sage_setup.docbuild import main
- main()

Copied: sagemath-doc/repos/community-any/docbuild_main.patch (from rev 616169, sagemath-doc/trunk/docbuild_main.patch)
===================================================================
--- docbuild_main.patch	                        (rev 0)
+++ docbuild_main.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,6 @@
+--- src/sage_setup/docbuild/__main__.py.orig
++++ src/sage_setup/docbuild/__main__.py
+@@ -1,2 +1,2 @@
+-from . import main
++from sage_setup.docbuild import main
+ main()

Copied: sagemath-doc/repos/community-any/sagemath-doc-sphinx-3.patch (from rev 616169, sagemath-doc/trunk/sagemath-doc-sphinx-3.patch)
===================================================================
--- sagemath-doc-sphinx-3.patch	                        (rev 0)
+++ sagemath-doc-sphinx-3.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,227 @@
+--- a/src/sage_setup/docbuild/__init__.py
++++ b/src/sage_setup/docbuild/__init__.py
+@@ -817,9 +817,13 @@ class ReferenceSubBuilder(DocBuilder):
+ 
+         env_pickle = os.path.join(self._doctrees_dir(), 'environment.pickle')
+         try:
+-            env = BuildEnvironment.frompickle(env_pickle, FakeApp(self.dir))
+-            logger.debug("Opened Sphinx environment: %s", env_pickle)
+-            return env
++            with open(env_pickle, 'rb') as f:
++                import pickle
++                env = pickle.load(f)
++                env.app = FakeApp(self.dir)
++                env.config.values = env.app.config.values
++                logger.debug("Opened Sphinx environment: %s", env_pickle)
++                return env
+         except IOError as err:
+             logger.debug("Failed to open Sphinx environment: %s", err)
+ 
+--- a/src/sage/docs/conf.py
++++ b/src/sage/docs/conf.py
+@@ -8,6 +8,7 @@ from docutils import nodes
+ from docutils.transforms import Transform
+ from sphinx.ext.doctest import blankline_re
+ from sphinx import highlighting
++import sphinx.ext.intersphinx as intersphinx
+ from IPython.lib.lexers import IPythonConsoleLexer, IPyLexer
+ 
+ # If your extensions are in another directory, add it here.
+@@ -169,13 +169,8 @@ todo_include_todos = True
+ 
+ # Cross-links to other project's online documentation.
+ python_version = sys.version_info.major
+-intersphinx_mapping = {
+-    'python': ('https://docs.python.org/',
+-                os.path.join(SAGE_DOC_SRC, "common",
+-                             "python{}.inv".format(python_version))),
+-    'pplpy': (PPLPY_DOCS, None)}
+ 
+-def set_intersphinx_mappings(app):
++def set_intersphinx_mappings(app, config):
+     """
+     Add precompiled inventory (the objects.inv)
+     """
+@@ -186,7 +182,11 @@ def set_intersphinx_mappings(app):
+         app.config.intersphinx_mapping = {}
+         return
+ 
+-    app.config.intersphinx_mapping = intersphinx_mapping
++    app.config.intersphinx_mapping =  {
++    'python': ('https://docs.python.org/',
++                os.path.join(SAGE_DOC_SRC, "common",
++                             "python{}.inv".format(python_version))),
++    'pplpy': (PPLPY_DOCS, None)}
+ 
+     # Add master intersphinx mapping
+     dst = os.path.join(invpath, 'objects.inv')
+@@ -201,6 +201,7 @@ def set_intersphinx_mappings(app):
+             dst = os.path.join(invpath, directory, 'objects.inv')
+             app.config.intersphinx_mapping[src] = dst
+ 
++    intersphinx.normalize_intersphinx_mapping(app, config)
+ 
+ # By default document are not master.
+ multidocs_is_master = True
+@@ -669,7 +672,7 @@ def call_intersphinx(app, env, node, contnode):
+     """
+     debug_inf(app, "???? Trying intersphinx for %s" % node['reftarget'])
+     builder = app.builder
+-    res =  sphinx.ext.intersphinx.missing_reference(
++    res =  intersphinx.missing_reference(
+         app, env, node, contnode)
+     if res:
+         # Replace absolute links to $SAGE_DOC by relative links: this
+@@ -852,11 +855,10 @@ def setup(app):
+     if app.srcdir.startswith(SAGE_DOC_SRC):
+         app.add_config_value('intersphinx_mapping', {}, False)
+         app.add_config_value('intersphinx_cache_limit', 5, False)
++        app.connect('config-inited', set_intersphinx_mappings)
++        app.connect('builder-inited', intersphinx.load_mappings)
+         # We do *not* fully initialize intersphinx since we call it by hand
+         # in find_sage_dangling_links.
+         #   app.connect('missing-reference', missing_reference)
+         app.connect('missing-reference', find_sage_dangling_links)
+-        import sphinx.ext.intersphinx
+-        app.connect('builder-inited', set_intersphinx_mappings)
+-        app.connect('builder-inited', sphinx.ext.intersphinx.load_mappings)
+         app.connect('builder-inited', nitpick_patch_config)
+--- a/src/sage_setup/docbuild/ext/multidocs.py
++++ b/src/sage_setup/docbuild/ext/multidocs.py
+@@ -47,32 +47,39 @@ def merge_environment(app, env):
+     - domaindata['py']['modules'] # list of python modules
+     """
+     logger.info(bold('Merging environment/index files...'))
++    if not hasattr(env, "todo_all_todos"):
++        env.todo_all_todos = []
++    if not env.domaindata['citation'].get('citations'):
++        env.domaindata['citation']['citations'] = dict()
+     for curdoc in app.env.config.multidocs_subdoc_list:
+         logger.info("    %s:"%curdoc, nonl=1)
+         docenv = get_env(app, curdoc)
+         if docenv is not None:
+             fixpath = lambda path: os.path.join(curdoc, path)
++            todos = docenv.todo_all_todos if hasattr(docenv, "todo_all_todos") else []
++            citations = docenv.domaindata['citation'].get('citations', dict())
++            indexentries = docenv.domaindata['index'].get('entries', dict())
+             logger.info(" %s todos, %s index, %s citations"%(
+-                    len(docenv.todo_all_todos),
+-                    len(docenv.indexentries),
+-                    len(docenv.domaindata["std"]["citations"])
++                    len(todos),
++                    len(indexentries),
++                    len(citations)
+                     ), nonl=1)
+ 
+             # merge titles
+             for t in docenv.titles:
+                 env.titles[fixpath(t)] = docenv.titles[t]
+             # merge the todo links
+-            for dct in docenv.todo_all_todos:
++            for dct in todos:
+                 dct['docname'] = fixpath(dct['docname'])
+-            env.todo_all_todos += docenv.todo_all_todos
++            env.todo_all_todos += todos
+             # merge the html index links
+             newindex = {}
+-            for ind in docenv.indexentries:
++            for ind in indexentries:
+                 if ind.startswith('sage/'):
+-                    newindex[fixpath(ind)] = docenv.indexentries[ind]
++                    newindex[fixpath(ind)] = indexentries[ind]
+                 else:
+-                    newindex[ind] = docenv.indexentries[ind]
+-            env.indexentries.update(newindex)
++                    newindex[ind] = indexentries[ind]
++            env.domaindata['index']['entries'].update(newindex)
+             # merge the all_docs links, needed by the js index
+             newalldoc = {}
+             for ind in docenv.all_docs:
+@@ -86,24 +93,23 @@ def merge_environment(app, env):
+                 env.metadata[ind] = md
+             # merge the citations
+             newcite = {}
+-            citations = docenv.domaindata["std"]["citations"]
+-            for ind, (path, tag, lineno) in six.iteritems(docenv.domaindata["std"]["citations"]):
++            for ind, (path, tag, lineno) in six.iteritems(citations):
+                 # TODO: Warn on conflicts
+                 newcite[ind] = (fixpath(path), tag, lineno)
+-            env.domaindata["std"]["citations"].update(newcite)
++            env.domaindata['citation']['citations'].update(newcite)
+             # merge the py:module indexes
+             newmodules = {}
+-            for ind,(modpath,v1,v2,v3) in (
++            for ind,(modpath,v1,v2,v3,v4) in (
+                 six.iteritems(docenv.domaindata['py']['modules'])):
+-                newmodules[ind] = (fixpath(modpath),v1,v2,v3)
++                newmodules[ind] = (fixpath(modpath),v1,v2,v3,v4)
+             env.domaindata['py']['modules'].update(newmodules)
+             logger.info(", %s modules"%(len(newmodules)))
+     logger.info('... done (%s todos, %s index, %s citations, %s modules)'%(
+             len(env.todo_all_todos),
+-            len(env.indexentries),
+-            len(env.domaindata["std"]["citations"]),
++            len(env.domaindata['index']['entries']),
++            len(env.domaindata['citation']['citations']),
+             len(env.domaindata['py']['modules'])))
+-    write_citations(app, env.domaindata["std"]["citations"])
++    write_citations(app, env.domaindata['citation']['citations'])
+ 
+ 
+ def get_env(app, curdoc):
+@@ -253,7 +259,7 @@ def fetch_citation(app, env):
+     with open(filename, 'rb') as f:
+         cache = cPickle.load(f)
+     logger.info("done (%s citations)."%len(cache))
+-    cite = env.domaindata["std"]["citations"]
++    cite = env.domaindata['citation']['citations']
+     for ind, (path, tag, lineno) in six.iteritems(cache):
+         if ind not in cite: # don't override local citation
+             cite[ind] = (os.path.join("..", path), tag, lineno)
+--- a/src/sage_setup/docbuild/ext/sage_autodoc.py
++++ b/src/sage_setup/docbuild/ext/sage_autodoc.py
+@@ -35,14 +35,15 @@ import sys
+ from docutils.statemachine import ViewList
+ 
+ import sphinx
+-from sphinx.ext.autodoc.importer import mock, import_object, get_object_members
++from sphinx.ext.autodoc import mock
++from sphinx.ext.autodoc.importer import import_object, get_object_members, get_module_members
+ from sphinx.locale import _, __
+ from sphinx.pycode import ModuleAnalyzer
+ from sphinx.errors import PycodeError
+ from sphinx.util import logging
+ from sphinx.util import rpartition, force_decode
+ from sphinx.util.docstrings import prepare_docstring
+-from sphinx.util.inspect import isdescriptor, safe_getmembers, \
++from sphinx.util.inspect import isdescriptor, \
+     safe_getattr, object_description, is_builtin_class_method, \
+     isenumattribute, isclassmethod, isstaticmethod, getdoc
+ 
+@@ -536,7 +537,7 @@ class Documenter(object):
+ 
+         # add content from docstrings
+         if not no_docstring:
+-            encoding = self.analyzer and self.analyzer.encoding
++            encoding = self.analyzer and self.analyzer._encoding
+             docstrings = self.get_doc(encoding)
+             if not docstrings:
+                 # append at least a dummy docstring, so that the event
+@@ -882,7 +883,7 @@ class ModuleDocumenter(Documenter):
+             if not hasattr(self.object, '__all__'):
+                 # for implicit module members, check __module__ to avoid
+                 # documenting imported objects
+-                return True, safe_getmembers(self.object)
++                return True, get_module_members(self.object)
+             else:
+                 memberlist = self.object.__all__
+                 # Sometimes __all__ is broken...
+@@ -893,7 +894,7 @@ class ModuleDocumenter(Documenter):
+                         '(in module %s) -- ignoring __all__' %
+                         (memberlist, self.fullname))
+                     # fall back to all members
+-                    return True, safe_getmembers(self.object)
++                    return True, get_module_members(self.object)
+         else:
+             memberlist = self.options.members or []
+         ret = []

Deleted: sagemath-ecl-sigfpe.patch
===================================================================
--- sagemath-ecl-sigfpe.patch	2020-04-18 21:13:29 UTC (rev 616169)
+++ sagemath-ecl-sigfpe.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -1,147 +0,0 @@
-diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx
-index e408866..fa24ac0 100644
---- a/src/sage/libs/ecl.pyx
-+++ b/src/sage/libs/ecl.pyx
-@@ -15,7 +15,7 @@ from __future__ import print_function, absolute_import
- #adapted to work with pure Python types.
- 
- from libc.stdlib cimport abort
--from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD
-+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE
- from libc.signal cimport raise_ as signal_raise
- from posix.signal cimport sigaction, sigaction_t
- cimport cysignals.signals
-@@ -47,9 +47,14 @@ cdef extern from "eclsig.h":
-     void ecl_sig_off()
-     cdef sigaction_t ecl_sigint_handler
-     cdef sigaction_t ecl_sigbus_handler
-+    cdef sigaction_t ecl_sigfpe_handler
-     cdef sigaction_t ecl_sigsegv_handler
-     cdef mpz_t ecl_mpz_from_bignum(cl_object obj)
-     cdef cl_object ecl_bignum_from_mpz(mpz_t num)
-+    cdef int fegetexcept()
-+    cdef int feenableexcept(int)
-+    cdef int fedisableexcept(int)
-+    cdef int ecl_feflags
- 
- cdef cl_object string_to_object(char * s):
-     return ecl_read_from_cstring(s)
-@@ -238,6 +243,7 @@ def init_ecl():
-     global ecl_has_booted
-     cdef char *argv[1]
-     cdef sigaction_t sage_action[32]
-+    cdef int sage_fpes
-     cdef int i
- 
-     if ecl_has_booted:
-@@ -257,6 +263,8 @@ def init_ecl():
-     for i in range(1,32):
-         sigaction(i, NULL, &sage_action[i])
- 
-+    sage_fpes = fegetexcept()
-+
-     #initialize ECL
-     ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
-     cl_boot(1, argv)
-@@ -264,8 +272,12 @@ def init_ecl():
-     #save signal handler from ECL
-     sigaction(SIGINT, NULL, &ecl_sigint_handler)
-     sigaction(SIGBUS, NULL, &ecl_sigbus_handler)
-+    sigaction(SIGFPE, NULL, &ecl_sigfpe_handler)
-     sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler)
- 
-+    #save ECL's floating point exception flags
-+    ecl_feflags = fegetexcept()
-+
-     #verify that no SIGCHLD handler was installed
-     cdef sigaction_t sig_test
-     sigaction(SIGCHLD, NULL, &sig_test)
-@@ -276,6 +288,9 @@ def init_ecl():
-     for i in range(1,32):
-         sigaction(i, &sage_action[i], NULL)
- 
-+    fedisableexcept(ecl_feflags)
-+    feenableexcept(sage_fpes)
-+
-     #initialise list of objects and bind to global variable
-     # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC
-     list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil))
-@@ -319,7 +334,6 @@ def init_ecl():
-                     (values nil (princ-to-string cnd)))))
-         """))
-     safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)"))
--
-     ecl_has_booted = 1
- 
- cdef cl_object ecl_safe_eval(cl_object form) except NULL:
-diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h
-index f9f2690..a7e1f40 100644
---- a/src/sage/libs/eclsig.h
-+++ b/src/sage/libs/eclsig.h
-@@ -9,24 +9,66 @@
- 
- 
- #include <signal.h>
-+
-+/* Rummage around to determine how ECL was configured */
-+#define ECL_AVOID_FPE_H  /* Prevent some local includes */
-+#include <ecl/config-internal.h>
-+
-+#ifdef HAVE_FENV_H
-+#include <fenv.h>
-+#ifndef FE_ALL_EXCEPT
-+#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID
-+#endif
-+#else
-+#ifndef FE_ALL_EXCEPT
-+#define FE_ALL_EXCEPT 0
-+#endif
-+#define feclearexcept(flags) do {} while (0)
-+#endif
-+
-+#ifndef HAVE_FEENABLEEXCEPT
-+/* These are GNU extensions */
-+#define fegetexcept() 0
-+#define feenablexcept(flags) do {} while (0)
-+#define fdisableexcept(flags) do {} while (0)
-+#endif
-+
- static struct sigaction ecl_sigint_handler;
- static struct sigaction ecl_sigbus_handler;
-+static struct sigaction ecl_sigfpe_handler;
- static struct sigaction ecl_sigsegv_handler;
- static struct sigaction sage_sigint_handler;
- static struct sigaction sage_sigbus_handler;
-+static struct sigaction sage_sigfpe_handler;
- static struct sigaction sage_sigsegv_handler;
-+static int ecl_feflags;
-+static int sage_feflags;
- 
- static inline void set_ecl_signal_handler(void)
- {
-     sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler);
-     sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler);
-+    sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler);
-     sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler);
-+
-+    /* first clear pending floating point exceptions, if any */
-+    feclearexcept(FE_ALL_EXCEPT);
-+
-+    /* sage_feflags should be 0; we don't set them otherwise */
-+    sage_feflags = fedisableexcept(FE_ALL_EXCEPT);
-+    feenableexcept(ecl_feflags);
- }
- 
- static inline void unset_ecl_signal_handler(void)
- {
-+    /* clear pending exceptions and restore previous exception mask */
-+    feclearexcept(FE_ALL_EXCEPT);
-+    ecl_feflags = fedisableexcept(FE_ALL_EXCEPT);
-+    feenableexcept(sage_feflags);
-+
-     sigaction(SIGINT, &sage_sigint_handler, NULL);
-     sigaction(SIGBUS, &sage_sigbus_handler, NULL);
-+    sigaction(SIGFPE, &sage_sigfpe_handler, NULL);
-     sigaction(SIGSEGV, &sage_sigsegv_handler, NULL);
- }
- 

Copied: sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch (from rev 616169, sagemath-doc/trunk/sagemath-ecl-sigfpe.patch)
===================================================================
--- sagemath-ecl-sigfpe.patch	                        (rev 0)
+++ sagemath-ecl-sigfpe.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,147 @@
+diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx
+index e408866..fa24ac0 100644
+--- a/src/sage/libs/ecl.pyx
++++ b/src/sage/libs/ecl.pyx
+@@ -15,7 +15,7 @@ from __future__ import print_function, absolute_import
+ #adapted to work with pure Python types.
+ 
+ from libc.stdlib cimport abort
+-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD
++from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE
+ from libc.signal cimport raise_ as signal_raise
+ from posix.signal cimport sigaction, sigaction_t
+ cimport cysignals.signals
+@@ -47,9 +47,14 @@ cdef extern from "eclsig.h":
+     void ecl_sig_off()
+     cdef sigaction_t ecl_sigint_handler
+     cdef sigaction_t ecl_sigbus_handler
++    cdef sigaction_t ecl_sigfpe_handler
+     cdef sigaction_t ecl_sigsegv_handler
+     cdef mpz_t ecl_mpz_from_bignum(cl_object obj)
+     cdef cl_object ecl_bignum_from_mpz(mpz_t num)
++    cdef int fegetexcept()
++    cdef int feenableexcept(int)
++    cdef int fedisableexcept(int)
++    cdef int ecl_feflags
+ 
+ cdef cl_object string_to_object(char * s):
+     return ecl_read_from_cstring(s)
+@@ -238,6 +243,7 @@ def init_ecl():
+     global ecl_has_booted
+     cdef char *argv[1]
+     cdef sigaction_t sage_action[32]
++    cdef int sage_fpes
+     cdef int i
+ 
+     if ecl_has_booted:
+@@ -257,6 +263,8 @@ def init_ecl():
+     for i in range(1,32):
+         sigaction(i, NULL, &sage_action[i])
+ 
++    sage_fpes = fegetexcept()
++
+     #initialize ECL
+     ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
+     cl_boot(1, argv)
+@@ -264,8 +272,12 @@ def init_ecl():
+     #save signal handler from ECL
+     sigaction(SIGINT, NULL, &ecl_sigint_handler)
+     sigaction(SIGBUS, NULL, &ecl_sigbus_handler)
++    sigaction(SIGFPE, NULL, &ecl_sigfpe_handler)
+     sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler)
+ 
++    #save ECL's floating point exception flags
++    ecl_feflags = fegetexcept()
++
+     #verify that no SIGCHLD handler was installed
+     cdef sigaction_t sig_test
+     sigaction(SIGCHLD, NULL, &sig_test)
+@@ -276,6 +288,9 @@ def init_ecl():
+     for i in range(1,32):
+         sigaction(i, &sage_action[i], NULL)
+ 
++    fedisableexcept(ecl_feflags)
++    feenableexcept(sage_fpes)
++
+     #initialise list of objects and bind to global variable
+     # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC
+     list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil))
+@@ -319,7 +334,6 @@ def init_ecl():
+                     (values nil (princ-to-string cnd)))))
+         """))
+     safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)"))
+-
+     ecl_has_booted = 1
+ 
+ cdef cl_object ecl_safe_eval(cl_object form) except NULL:
+diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h
+index f9f2690..a7e1f40 100644
+--- a/src/sage/libs/eclsig.h
++++ b/src/sage/libs/eclsig.h
+@@ -9,24 +9,66 @@
+ 
+ 
+ #include <signal.h>
++
++/* Rummage around to determine how ECL was configured */
++#define ECL_AVOID_FPE_H  /* Prevent some local includes */
++#include <ecl/config-internal.h>
++
++#ifdef HAVE_FENV_H
++#include <fenv.h>
++#ifndef FE_ALL_EXCEPT
++#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID
++#endif
++#else
++#ifndef FE_ALL_EXCEPT
++#define FE_ALL_EXCEPT 0
++#endif
++#define feclearexcept(flags) do {} while (0)
++#endif
++
++#ifndef HAVE_FEENABLEEXCEPT
++/* These are GNU extensions */
++#define fegetexcept() 0
++#define feenablexcept(flags) do {} while (0)
++#define fdisableexcept(flags) do {} while (0)
++#endif
++
+ static struct sigaction ecl_sigint_handler;
+ static struct sigaction ecl_sigbus_handler;
++static struct sigaction ecl_sigfpe_handler;
+ static struct sigaction ecl_sigsegv_handler;
+ static struct sigaction sage_sigint_handler;
+ static struct sigaction sage_sigbus_handler;
++static struct sigaction sage_sigfpe_handler;
+ static struct sigaction sage_sigsegv_handler;
++static int ecl_feflags;
++static int sage_feflags;
+ 
+ static inline void set_ecl_signal_handler(void)
+ {
+     sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler);
+     sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler);
++    sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler);
+     sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler);
++
++    /* first clear pending floating point exceptions, if any */
++    feclearexcept(FE_ALL_EXCEPT);
++
++    /* sage_feflags should be 0; we don't set them otherwise */
++    sage_feflags = fedisableexcept(FE_ALL_EXCEPT);
++    feenableexcept(ecl_feflags);
+ }
+ 
+ static inline void unset_ecl_signal_handler(void)
+ {
++    /* clear pending exceptions and restore previous exception mask */
++    feclearexcept(FE_ALL_EXCEPT);
++    ecl_feflags = fedisableexcept(FE_ALL_EXCEPT);
++    feenableexcept(sage_feflags);
++
+     sigaction(SIGINT, &sage_sigint_handler, NULL);
+     sigaction(SIGBUS, &sage_sigbus_handler, NULL);
++    sigaction(SIGFPE, &sage_sigfpe_handler, NULL);
+     sigaction(SIGSEGV, &sage_sigsegv_handler, NULL);
+ }
+ 

Copied: sagemath-doc/repos/community-any/sagemath-matplotlib-3.2.patch (from rev 616169, sagemath-doc/trunk/sagemath-matplotlib-3.2.patch)
===================================================================
--- sagemath-matplotlib-3.2.patch	                        (rev 0)
+++ sagemath-matplotlib-3.2.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,62 @@
+diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py
+index a7533fa3d9..12a2b1f670 100644
+--- a/src/sage/plot/contour_plot.py
++++ b/src/sage/plot/contour_plot.py
+@@ -223,7 +223,7 @@ class ContourPlot(GraphicPrimitive):
+                 cb.add_lines(CS)
+ 
+ 
+- at suboptions('colorbar', orientation='vertical', format=None, spacing=None)
++ at suboptions('colorbar', orientation='vertical', format=None, spacing='uniform')
+ @suboptions('label', fontsize=9, colors='blue', inline=None, inline_spacing=3,
+             fmt="%1.2f")
+ @options(plot_points=100, fill=True, contours=None, linewidths=None,
+diff --git a/src/sage/plot/colors.py b/src/sage/plot/colors.py
+index 1860b6c948..af6fc7ec64 100644
+--- a/src/sage/plot/colors.py
++++ b/src/sage/plot/colors.py
+@@ -20,7 +20,7 @@ comprises the "official" W3C CSS3_ / SVG_ colors.
+ For a list of color maps in Sage, evaluate::
+ 
+     sage: sorted(colormaps)
+-    [u'Accent', u'Accent_r', u'Blues', u'Blues_r', u'BrBG', u'BrBG_r', ...]
++    [u'Accent', u'Blues', u'BrBG', ...]
+ 
+ These are imported from matplotlib's cm_ module.
+ 
+@@ -1374,7 +1374,7 @@ def get_cmap(cmap):
+     and color names.  For a list of map names, evaluate::
+ 
+         sage: sorted(colormaps)
+-        [u'Accent', u'Accent_r', u'Blues', u'Blues_r', ...]
++        [u'Accent', u'Blues', ...]
+ 
+     See :func:`rgbcolor` for valid list/tuple element formats.
+ 
+@@ -1468,7 +1468,7 @@ class Colormaps(collections.MutableMapping):
+     For a list of map names, evaluate::
+ 
+         sage: sorted(colormaps)
+-        [u'Accent', u'Accent_r', u'Blues', u'Blues_r', ...]
++        [u'Accent', u'Blues', ...]
+     """
+     def __init__(self):
+         """
+@@ -1495,7 +1495,7 @@ class Colormaps(collections.MutableMapping):
+             sage: len(maps.maps)
+             0
+             sage: maps.load_maps()
+-            sage: len(maps.maps)>130
++            sage: len(maps.maps)>65
+             True
+         """
+         global cm
+@@ -1539,7 +1539,7 @@ class Colormaps(collections.MutableMapping):
+ 
+             sage: from sage.plot.colors import Colormaps
+             sage: maps = Colormaps()
+-            sage: len(maps)>130
++            sage: len(maps)>65
+             True
+         """
+         self.load_maps()

Deleted: sphinxify-warnings.patch
===================================================================
--- sphinxify-warnings.patch	2020-04-18 21:13:29 UTC (rev 616169)
+++ sphinxify-warnings.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -1,16 +0,0 @@
-diff --git a/src/doc/common/themes/sage/search.html b/src/doc/common/themes/sage/search.html
-index 88d5813bea..9fd5017991 100644
---- a/src/doc/common/themes/sage/search.html
-+++ b/src/doc/common/themes/sage/search.html
-@@ -9,7 +9,10 @@
- #}
- {% extends "layout.html" %}
- {% set title = _('Search') %}
--{% set script_files = script_files + ['_static/searchtools.js'] %}
-+{%- block scripts %}
-+    {{ super() }}
-+    <script type="text/javascript" src="{{ pathto('_static/searchtools.js', 1) }}"></script>
-+{%- endblock %}
- {% block extrahead %}
-   <script type="text/javascript">
-     jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });

Copied: sagemath-doc/repos/community-any/sphinxify-warnings.patch (from rev 616169, sagemath-doc/trunk/sphinxify-warnings.patch)
===================================================================
--- sphinxify-warnings.patch	                        (rev 0)
+++ sphinxify-warnings.patch	2020-04-18 21:15:09 UTC (rev 616170)
@@ -0,0 +1,16 @@
+diff --git a/src/doc/common/themes/sage/search.html b/src/doc/common/themes/sage/search.html
+index 88d5813bea..9fd5017991 100644
+--- a/src/doc/common/themes/sage/search.html
++++ b/src/doc/common/themes/sage/search.html
+@@ -9,7 +9,10 @@
+ #}
+ {% extends "layout.html" %}
+ {% set title = _('Search') %}
+-{% set script_files = script_files + ['_static/searchtools.js'] %}
++{%- block scripts %}
++    {{ super() }}
++    <script type="text/javascript" src="{{ pathto('_static/searchtools.js', 1) }}"></script>
++{%- endblock %}
+ {% block extrahead %}
+   <script type="text/javascript">
+     jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });



More information about the arch-commits mailing list