diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs.py --- src/sage_docbuild/ext/multidocs.py.orig 2023-02-11 06:25:15.000000000 -0700 +++ src/sage_docbuild/ext/multidocs.py 2023-03-13 10:54:54.452252122 -0600 @@ -83,8 +83,11 @@ def merge_environment(app, env): for ind in newalldoc: # treat sub-document source as orphaned file and don't complain md = env.metadata.get(ind, dict()) - md['orphan'] = 1 - env.metadata[ind] = md + try: + md['orphan'] = 1 + env.metadata[ind] = md + except AttributeError: + env.metadata[ind] = {'orphan'} # merge the citations newcite = {} for ind, (path, tag, lineno) in citations.items(): diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py --- src/sage/interfaces/singular.py.orig 2023-02-11 06:25:15.000000000 -0700 +++ src/sage/interfaces/singular.py 2023-03-13 10:54:54.452252122 -0600 @@ -2379,11 +2379,11 @@ def generate_docstring_dictionary(): L, in_node, curr_node = [], False, None - from sage.libs.singular.singular import get_resource - singular_info_file = get_resource('i') + singular_info_file = '/usr/share/info/singular.info.gz' # singular.hlp contains a few iso-8859-1 encoded special characters - with io.open(singular_info_file, + import gzip + with gzip.open(singular_info_file, encoding='latin-1') as f: for line in f: m = re.match(new_node, line)