diff -up src/doc/common/builder.py.orig src/doc/common/builder.py --- src/doc/common/builder.py.orig 2015-12-22 10:55:07.586513923 -0200 +++ src/doc/common/builder.py 2015-12-22 10:55:10.131514020 -0200 @@ -32,7 +32,7 @@ from sage.env import SAGE_DOC, SAGE_SRC # SAGE_DOC, LANGUAGES, SPHINXOPTS, PAPER, OMIT, # PAPEROPTS, ALLSPHINXOPTS, NUM_THREADS, WEBSITESPHINXOPTS # from build_options.py. -fpath = os.path.join(SAGE_DOC, 'common', 'build_options.py') +fpath = os.path.join(os.getenv('SAGE_ROOT'), 'src', 'doc', 'common', 'build_options.py') exec(compile(open(fpath).read(), fpath, 'exec')) @@ -303,12 +303,12 @@ class AllBuilder(object): # apply_async does not, so don't use it. x = pool.map_async(build_other_doc, L, 1) try: - x.get(99999) + x.get(3600) pool.close() pool.join() except Exception: - pool.terminate() if ABORT_ON_ERROR: + pool.terminate() raise logger.warning("Elapsed time: %.1f seconds."%(time.time()-start)) logger.warning("Done building the documentation!") @@ -500,12 +500,12 @@ class ReferenceBuilder(AllBuilder): # (See comment in AllBuilder._wrapper about using map instead of apply.) x = pool.map_async(build_ref_doc, L, 1) try: - x.get(99999) + x.get(3600) pool.close() pool.join() except Exception: - pool.terminate() if ABORT_ON_ERROR: + pool.terminate() raise # The html refman must be build at the end to ensure correct # merging of indexes and inventories. diff -up src/doc/common/conf.py.orig src/doc/common/conf.py --- src/doc/common/conf.py.orig 2015-12-22 10:55:07.588513923 -0200 +++ src/doc/common/conf.py 2015-12-22 10:55:10.132514020 -0200 @@ -1,5 +1,5 @@ import sys, os, sphinx -from sage.env import SAGE_DOC +from sage.env import SAGE_DOC, SAGE_SRC from datetime import date def get_doc_abspath(path): @@ -224,8 +224,7 @@ if (os.environ.get('SAGE_DOC_MATHJAX', ' from sage.misc.latex_macros import sage_mathjax_macros html_theme_options['mathjax_macros'] = sage_mathjax_macros() - from pkg_resources import Requirement, working_set - sagenb_path = working_set.find(Requirement.parse('sagenb')).location + sagenb_path = SAGE_SRC mathjax_relative = os.path.join('sagenb','data','mathjax') # It would be really nice if sphinx would copy the entire mathjax directory, diff -up src/doc/common/multidocs.py.orig src/doc/common/multidocs.py --- src/doc/common/multidocs.py.orig 2015-12-22 10:55:07.591513923 -0200 +++ src/doc/common/multidocs.py 2015-12-22 10:55:10.132514020 -0200 @@ -73,8 +73,11 @@ def merge_environment(app, env): for ind in newalldoc: # treat subdocument source as orphaned file and don't complain md = env.metadata.get(ind, set()) - md.add('orphan') - env.metadata[ind] = md + try: + md.add('orphan') + env.metadata[ind] = md + except AttributeError: + env.metadata[ind] = {'orphan'} # merge the citations newcite = {} for ind, (path, tag) in docenv.citations.iteritems(): diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py --- src/sage/doctest/control.py.orig 2015-12-22 10:55:07.592513923 -0200 +++ src/sage/doctest/control.py 2015-12-22 10:55:27.152514672 -0200 @@ -90,7 +90,6 @@ class DocTestDefaults(SageObject): self.valgrind = False self.massif = False self.cachegrind = False - self.omega = False self.failed = False self.new = False self.show_skipped = False @@ -212,7 +211,7 @@ class DocTestController(SageObject): if options.gdb or options.debug: # Interactive debuggers: "infinite" timeout options.timeout = 0 - elif options.valgrind or options.massif or options.cachegrind or options.omega: + elif options.valgrind or options.massif or options.cachegrind: # Non-interactive debuggers: 48 hours options.timeout = int(os.getenv('SAGE_TIMEOUT_VALGRIND', 48 * 60 * 60)) elif options.long: @@ -545,7 +544,6 @@ class DocTestController(SageObject): def all_files(): from glob import glob self.files.append(opj(SAGE_SRC, 'sage')) - self.files.append(opj(SAGE_SRC, 'sage_setup')) self.files.append(opj(SAGE_SRC, 'doc', 'common')) self.files.extend(glob(opj(SAGE_SRC, 'doc', '[a-z][a-z]'))) self.options.sagenb = True @@ -940,13 +938,8 @@ class DocTestController(SageObject): elif opt.cachegrind: toolname = "cachegrind" flags = os.getenv("SAGE_CACHEGRIND_FLAGS", "") - elif opt.omega: - toolname = "exp-omega" - flags = os.getenv("SAGE_OMEGA_FLAGS", "") cmd = "exec valgrind --tool=%s "%(toolname) flags += ''' --log-file="%s" ''' % logfile - if opt.omega: - toolname = "omega" if "%s" in flags: flags %= toolname + ".%p" # replace %s with toolname cmd += flags + sage_cmd @@ -1006,10 +999,10 @@ class DocTestController(SageObject): 0 """ opt = self.options - L = (opt.gdb, opt.valgrind, opt.massif, opt.cachegrind, opt.omega) + L = (opt.gdb, opt.valgrind, opt.massif, opt.cachegrind) if any(L): if L.count(True) > 1: - self.log("You may only specify one of gdb, valgrind/memcheck, massif, cachegrind, omega") + self.log("You may only specify one of gdb, valgrind/memcheck, massif, cachegrind") return 2 return self.run_val_gdb() else: diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py --- src/sage/interfaces/singular.py.orig 2015-12-22 10:55:07.594513923 -0200 +++ src/sage/interfaces/singular.py 2015-12-22 10:55:10.134514020 -0200 @@ -2232,7 +2232,7 @@ def generate_docstring_dictionary(): nodes.clear() node_names.clear() - singular_docdir = os.environ["SAGE_LOCAL"]+"/share/singular/" + singular_docdir = os.environ["SINGULAR_BIN_DIR"]+"/info/" new_node = re.compile("File: singular\.hlp, Node: ([^,]*),.*") new_lookup = re.compile("\* ([^:]*):*([^.]*)\..*")