From 21c1ab6776dbb43ba31d5d07a8673ded3573e0d4 Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Thu, 18 Apr 2019 22:54:25 +0200 Subject: [PATCH] sage: 8.7 -> 8.8.beta2 --- .../sphinx-docbuild-subprocesses.patch | 57 +++++++++++++++++++ .../science/math/sage/sage-src.nix | 42 +++----------- 2 files changed, 64 insertions(+), 35 deletions(-) create mode 100644 pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch new file mode 100644 index 00000000000..933344aa559 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch @@ -0,0 +1,57 @@ +diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py +index 0f2700168a..60f71357d2 100644 +--- a/src/sage_setup/docbuild/__init__.py ++++ b/src/sage_setup/docbuild/__init__.py +@@ -86,26 +86,6 @@ def builder_helper(type): + """ + Returns a function which builds the documentation for + output type ``type``. +- +- TESTS: +- +- Check that :trac:`25161` has been resolved:: +- +- sage: from sage_setup.docbuild import DocBuilder, setup_parser +- sage: DocBuilder._options = setup_parser().parse_args([])[0] # builder_helper needs _options to be set +- +- sage: import sage_setup.docbuild.sphinxbuild +- sage: def raiseBaseException(): +- ....: raise BaseException("abort pool operation") +- sage: original_runsphinx, sage_setup.docbuild.sphinxbuild.runsphinx = sage_setup.docbuild.sphinxbuild.runsphinx, raiseBaseException +- +- sage: from sage_setup.docbuild import builder_helper, build_many, build_ref_doc +- sage: helper = builder_helper("html") +- sage: try: +- ....: build_many(build_ref_doc, [("docname", "en", "html", {})]) +- ....: except Exception as E: +- ....: "Non-exception during docbuild: abort pool operation" in str(E) +- True + """ + def f(self, *args, **kwds): + output_dir = self._output_dir(type) +@@ -127,10 +107,9 @@ def builder_helper(type): + logger.debug(build_command) + + # Run Sphinx with Sage's special logger +- sys.argv = ["sphinx-build"] + build_command.split() +- from .sphinxbuild import runsphinx ++ args = "python -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split() + try: +- runsphinx() ++ subprocess.check_call(args) + except Exception: + if ABORT_ON_ERROR: + raise +diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py +index 9a2fba79bc..77c8ed3592 100644 +--- a/src/sage_setup/docbuild/sphinxbuild.py ++++ b/src/sage_setup/docbuild/sphinxbuild.py +@@ -318,3 +318,8 @@ def runsphinx(): + sys.stderr = saved_stderr + sys.stdout.flush() + sys.stderr.flush() ++ ++if __name__ == '__main__': ++ import sys ++ sys.argv[0] = "sphinx-build" ++ runsphinx() diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index 013b1bca930..9bfe453150c 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -10,14 +10,14 @@ # all get the same sources with the same patches applied. stdenv.mkDerivation rec { - version = "8.7"; + version = "8.8.beta2"; pname = "sage-src"; src = fetchFromGitHub { owner = "sagemath"; repo = "sage"; rev = version; - sha256 = "05vvrd6syh0hlmrk6kzjrwd0hpmvxp8vr8p3mkjb0jh5p2kjdd27"; + sha256 = "1avrxhhcd1hy4hm9sgma430hvxg36f10kr9p3himj6kl4m9pyflv"; }; # Patches needed because of particularities of nix or the way this is packaged. @@ -45,15 +45,6 @@ stdenv.mkDerivation rec { # Fixes a potential race condition which can lead to transient doctest failures. ./patches/fix-ecl-race.patch - # Parallelize docubuild using subprocesses, fixing an isolation issue. See - # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE - (fetchpatch { - name = "sphinx-docbuild-subprocesses.patch"; - url = "https://salsa.debian.org/science-team/sagemath/raw/8a215b17e6f791ddfae6df8ce6d01dfb89acb434/debian/patches/df-subprocess-sphinx.patch"; - sha256 = "07p9i0fwjgapmfvmi436yn6v60p8pvmxqjc93wsssqgh5kd8qw3n"; - stripLen = 1; - }) - # Part of the build system. Should become unnecessary with sage 8.8. # Upstream discussion here: https://trac.sagemath.org/ticket/27124#comment:33 ./patches/do-not-test-package-manifests.patch @@ -71,20 +62,16 @@ stdenv.mkDerivation rec { # https://trac.sagemath.org/ticket/28007 ./patches/threejs-offline.patch + + # Parallelize docubuild using subprocesses, fixing an isolation issue. See + # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE + ./patches/sphinx-docbuild-subprocesses.patch ]; # Since sage unfortunately does not release bugfix releases, packagers must # fix those bugs themselves. This is for critical bugfixes, where "critical" # == "causes (transient) doctest failures / somebody complained". - bugfixPatches = [ - # Transient doctest failure in src/sage/modular/abvar/torsion_subgroup.py - # https://trac.sagemath.org/ticket/27477 - (fetchpatch { - name = "sig_on_in_matrix_sparce.patch"; - url = "https://git.sagemath.org/sage.git/patch?id2=10407524b18659e14e184114b61c043fb816f3c2&id=c9b0cc9d0b8748ab85e568f8f57f316c5e8cbe54"; - sha256 = "0wgp7yvn9sm1ynlhcr4l0hzmvr2n28llg4xc01p6k1zz4im64c17"; - }) - ]; + bugfixPatches = [ ]; # Patches needed because of package updates. We could just pin the versions of # dependencies, but that would lead to rebuilds, confusion and the burdons of @@ -116,14 +103,6 @@ stdenv.mkDerivation rec { stripLen = 1; }) - # https://trac.sagemath.org/ticket/26451 - (fetchSageDiff { - name = "sphinx-1.8.patch"; - base = "8.7"; - rev = "737afd8f314bd1e16feaec562bb4b5efa2effa8b"; - sha256 = "0n56ss88ds662bp49j23z5c2i6hsn3jynxw13wv76hyl0h7l1hjh"; - }) - # https://trac.sagemath.org/ticket/27653 (fetchpatch { name = "sympy-1.4.patch"; @@ -131,13 +110,6 @@ stdenv.mkDerivation rec { sha256 = "09avaanwmdgqv14mmllbgw9z2scf4lc0y0kzdhlriiq8ss9j8iir"; }) - # https://trac.sagemath.org/ticket/27094 - (fetchpatch { - name = "gap-4.10.1.patch"; - url = "https://git.sagemath.org/sage.git/patch?id=d3483110474591ea6cc8e3210cd884f3e0018b3e"; - sha256 = "028i6h8l8npwzx5z0ax0rcywl85gc83qw1jf93zf523msdfcsk0n"; - }) - # https://trac.sagemath.org/ticket/27738 (fetchpatch { name = "R-3.6.0.patch";