From ebd2093b32942756fa376833786e0cc70fc9765f Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Wed, 9 Mar 2022 14:16:54 -0500
Subject: gnu: python-robotframework: Fully build the documentation.

* gnu/packages/patches/python-robotframework-ug2html.patch: New patch.
* gnu/local.mk: Register it.
* gnu/packages/python-xyz.scm (python-robotframework): Apply patch.
[modules]: New argument.
[phases]{build-and-install-doc}: Modify to build the full HTML documentation,
including the user guide.
[native-inputs]: Add python-pygments.
---
 .../patches/python-robotframework-ug2html.patch    | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 gnu/packages/patches/python-robotframework-ug2html.patch

(limited to 'gnu/packages/patches/python-robotframework-ug2html.patch')

diff --git a/gnu/packages/patches/python-robotframework-ug2html.patch b/gnu/packages/patches/python-robotframework-ug2html.patch
new file mode 100644
index 0000000000..eea88e01f3
--- /dev/null
+++ b/gnu/packages/patches/python-robotframework-ug2html.patch
@@ -0,0 +1,57 @@
+Do not require the obsolete robotframeworklexer.
+
+Submitted upstream at: https://github.com/robotframework/robotframework/pull/4265.
+diff --git a/doc/userguide/ug2html.py b/doc/userguide/ug2html.py
+index 43cdb31bd..033203552 100755
+--- a/doc/userguide/ug2html.py
++++ b/doc/userguide/ug2html.py
+@@ -93,34 +93,26 @@ from docutils.parsers.rst import directives
+ from pygments import highlight, __version__ as pygments_version
+ from pygments.lexers import get_lexer_by_name
+ 
+-# Use latest version, not version bundled with Pygments
+-import robotframeworklexer
+-
+ 
+ def too_old(version_string, minimum):
+     version = tuple(int(v) for v in version_string.split('.')[:2])
+     return version < minimum
+ 
+ 
+-if too_old(getattr(robotframeworklexer, '__version__', '1.0'), (1, 1)):
+-    sys.exit('robotframeworklexer >= 1.1 is required.')
+-if too_old(pygments_version, (2, 1)):
+-    sys.exit('Pygments >= 2.1 is required.')
++if too_old(pygments_version, (2, 8)):
++    sys.exit('Pygments >= 2.8 is required.')
+ 
+ 
+ def pygments_directive(name, arguments, options, content, lineno,
+                        content_offset, block_text, state, state_machine):
+     try:
+-        if arguments[0] == 'robotframework':
+-            lexer = robotframeworklexer.RobotFrameworkLexer()
+-        else:
+-            lexer = get_lexer_by_name(arguments[0])
++        lexer = get_lexer_by_name(arguments[0])
+     except ValueError as err:
+         raise ValueError(f'Invalid syntax highlighting language "{arguments[0]}".')
+     # take an arbitrary option if more than one is given
+     formatter = options and VARIANTS[options.keys()[0]] or DEFAULT
+     # possibility to read the content from an external file
+-    filtered = [ line for line in content if line.strip() ]
++    filtered = [line for line in content if line.strip()]
+     if len(filtered) == 1:
+         path = filtered[0].replace('/', os.sep)
+         if os.path.isfile(path):
+diff --git a/requirements-build.txt b/requirements-build.txt
+index e0f5e19a2..a2fcdcfd5 100644
+--- a/requirements-build.txt
++++ b/requirements-build.txt
+@@ -5,5 +5,4 @@ rellu >= 0.7
+ twine >= 1.12
+ wheel
+ docutils
+-pygments >= 2.1
+-robotframeworklexer >= 1.1
++pygments >= 2.8
-- 
cgit 1.4.1