File ghc-8.6.3-sphinx-1.8.patch of Package ghc-prepare-binary-distributions

Index: ghc-9.2.0.20210331/docs/users_guide/flags.py
===================================================================
--- ghc-9.2.0.20210331.orig/docs/users_guide/flags.py
+++ ghc-9.2.0.20210331/docs/users_guide/flags.py
@@ -49,6 +49,8 @@ from docutils.parsers.rst import Directi
 import sphinx
 from sphinx import addnodes
 from sphinx.domains.std import GenericObject
+from sphinx.domains import ObjType
+from sphinx.roles import XRefRole
 from sphinx.errors import SphinxError
 from distutils.version import LooseVersion
 from utils import build_table_from_list
@@ -631,14 +633,21 @@ def setup(app):
     sphinx_version = LooseVersion(sphinx.__version__)
     override_arg = {'override': True} if sphinx_version >= LooseVersion('1.8') else {}
 
+    # Yuck: We can't use app.add_object_type since we need to provide the
+    # Directive instance ourselves.
+    std_object_types = app.registry.domain_object_types.setdefault('std', {})
+ 
     # Add ghc-flag directive, and override the class with our own
-    app.add_object_type('ghc-flag', 'ghc-flag')
     app.add_directive_to_domain('std', 'ghc-flag', Flag, **override_arg)
+    app.add_role_to_domain('std', 'ghc-flag', XRefRole())
+    std_object_types['ghc-flag'] = ObjType('ghc-flag', 'ghc-flag')
 
     # Add extension directive, and override the class with our own
-    app.add_object_type('extension', 'extension')
     app.add_directive_to_domain('std', 'extension', LanguageExtension,
                                 **override_arg)
+    app.add_role_to_domain('std', 'extension', XRefRole())
+    std_object_types['extension'] = ObjType('ghc-flag', 'ghc-flag')
+
     # NB: language-extension would be misinterpreted by sphinx, and produce
     # lang="extensions" XML attributes
 
openSUSE Build Service is sponsored by