You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.9 KiB
82 lines
2.9 KiB
3 years ago
|
From 02abfc3695b71e05e3d5df83514f50ec0ab60bdf Mon Sep 17 00:00:00 2001
|
||
|
From: Antonio Rojas <arojas@archlinux.org>
|
||
|
Date: Fri, 14 May 2021 20:42:02 +0200
|
||
|
Subject: [PATCH] Fix doc build with Sphinx 4
|
||
|
|
||
|
Port away from removed functions. In particular, port to the new index structure which was introduced in 1.4 (released november 2016).
|
||
|
Also account for the new default location of built man pages.
|
||
|
|
||
|
BUG: 436818
|
||
|
---
|
||
|
docs/CMakeLists.txt | 3 ++-
|
||
|
docs/sphinx/ext/ecm.py | 13 ++++++++-----
|
||
|
2 files changed, 10 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
|
||
|
index 84cca9ea..32687b64 100644
|
||
|
--- a/docs/CMakeLists.txt
|
||
|
+++ b/docs/CMakeLists.txt
|
||
|
@@ -110,7 +110,8 @@ if(BUILD_MAN_DOCS)
|
||
|
set(name "${CMAKE_MATCH_1}")
|
||
|
set(sec "${CMAKE_MATCH_2}")
|
||
|
install(
|
||
|
- FILES ${CMAKE_CURRENT_BINARY_DIR}/man/${name}.${sec}
|
||
|
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/man/${name}.${sec} ${CMAKE_CURRENT_BINARY_DIR}/man/${sec}/${name}.${sec}
|
||
|
+ OPTIONAL
|
||
|
DESTINATION ${MAN_INSTALL_DIR}/man${sec}
|
||
|
)
|
||
|
endif()
|
||
|
diff --git a/docs/sphinx/ext/ecm.py b/docs/sphinx/ext/ecm.py
|
||
|
index 8667b367..a09e4890 100644
|
||
|
--- a/docs/sphinx/ext/ecm.py
|
||
|
+++ b/docs/sphinx/ext/ecm.py
|
||
|
@@ -5,6 +5,7 @@
|
||
|
#
|
||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||
|
|
||
|
+import html
|
||
|
import os
|
||
|
import re
|
||
|
|
||
|
@@ -19,8 +20,11 @@ CMakeLexer.tokens["args"].append(('(\\$<)(.+?)(>)',
|
||
|
|
||
|
# Monkey patch for sphinx generating invalid content for qcollectiongenerator
|
||
|
# https://bitbucket.org/birkenfeld/sphinx/issue/1435/qthelp-builder-should-htmlescape-keywords
|
||
|
-from sphinx.util.pycompat import htmlescape
|
||
|
-from sphinx.builders.qthelp import QtHelpBuilder
|
||
|
+try:
|
||
|
+ from sphinxcontrib.qthelp import QtHelpBuilder
|
||
|
+except ImportError:
|
||
|
+ # sphinx < 4.0
|
||
|
+ from sphinx.builders.qthelp import QtHelpBuilder
|
||
|
old_build_keywords = QtHelpBuilder.build_keywords
|
||
|
def new_build_keywords(self, title, refs, subitems):
|
||
|
old_items = old_build_keywords(self, title, refs, subitems)
|
||
|
@@ -29,13 +33,12 @@ def new_build_keywords(self, title, refs, subitems):
|
||
|
before, rest = item.split("ref=\"", 1)
|
||
|
ref, after = rest.split("\"")
|
||
|
if ("<" in ref and ">" in ref):
|
||
|
- new_items.append(before + "ref=\"" + htmlescape(ref) + "\"" + after)
|
||
|
+ new_items.append(before + "ref=\"" + html.escape(ref) + "\"" + after)
|
||
|
else:
|
||
|
new_items.append(item)
|
||
|
return new_items
|
||
|
QtHelpBuilder.build_keywords = new_build_keywords
|
||
|
|
||
|
-
|
||
|
from docutils.parsers.rst import Directive, directives
|
||
|
from docutils.transforms import Transform
|
||
|
try:
|
||
|
@@ -127,7 +130,7 @@ class _ecm_index_entry:
|
||
|
self.desc = desc
|
||
|
|
||
|
def __call__(self, title, targetid):
|
||
|
- return ('pair', u'%s ; %s' % (self.desc, title), targetid, 'main')
|
||
|
+ return ('pair', u'%s ; %s' % (self.desc, title), targetid, 'main', None)
|
||
|
|
||
|
_ecm_index_objs = {
|
||
|
'manual': _ecm_index_entry('manual'),
|
||
|
--
|
||
|
GitLab
|
||
|
|