summary refs log tree commit diff
path: root/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
blob: 1ff081b25e0fd52fb97807e45307209c8a744dbf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
diff --git a/src/sage_docbuild/__init__.py b/src/sage_docbuild/__init__.py
index 8a5c1a19d2..21fd192642 100644
--- a/src/sage_docbuild/__init__.py
+++ b/src/sage_docbuild/__init__.py
@@ -89,27 +89,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_docbuild import DocBuilder, setup_parser
-        sage: DocBuilder._options = setup_parser().parse_args([]) # builder_helper needs _options to be set
-
-        sage: import sage_docbuild.sphinxbuild
-        sage: def raiseBaseException():
-        ....:     raise BaseException("abort pool operation")
-        sage: original_runsphinx, sage_docbuild.sphinxbuild.runsphinx = sage_docbuild.sphinxbuild.runsphinx, raiseBaseException
-
-        sage: from sage_docbuild import builder_helper, build_ref_doc
-        sage: from sage_docbuild import _build_many as build_many
-        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)
@@ -131,10 +110,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 = "python3 -um sage_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_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
index d917c3e9d4..551cc8028a 100644
--- a/src/sage_docbuild/sphinxbuild.py
+++ b/src/sage_docbuild/sphinxbuild.py
@@ -327,3 +327,8 @@ def runsphinx():
         sys.stderr = saved_stderr
         sys.stdout.flush()
         sys.stderr.flush()
+
+if __name__ == '__main__':
+    import sys
+    sys.argv[0] = "sphinx-build"
+    runsphinx()