summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README2
-rw-r--r--configure.ac4
-rw-r--r--tools/xml_helper.py27
3 files changed, 12 insertions, 21 deletions
diff --git a/README b/README
index 509b45f6f..9aa63128d 100644
--- a/README
+++ b/README
@@ -133,8 +133,8 @@ REQUIREMENTS:
gperf
gtkdocize (optional)
python (optional)
+ python-lxml (optional, but required to build the indices)
sphinx (optional)
- python-lxml (entirely optional)
When systemd-hostnamed is used, it is strongly recommended to
install nss-myhostname to ensure that, in a world of
diff --git a/configure.ac b/configure.ac
index d92f1fe01..59650a256 100644
--- a/configure.ac
+++ b/configure.ac
@@ -188,9 +188,11 @@ have_python=no
AC_ARG_WITH([python],
[AS_HELP_STRING([--without-python], [Disable building the man page index and systemd-python (default: test)])])
+have_lxml=no
AS_IF([test "x$with_python" != "xno"], [
AM_PATH_PYTHON(,, [:])
- AS_IF([test "$PYTHON" != :], [have_python=yes])
+ AS_IF(["$PYTHON" -c 'import lxml' 2>/dev/null], [have_lxml=yes], [have_lxml=no])
+ AS_IF([test "$PYTHON" != : -a $have_lxml = yes], [have_python=yes])
])
AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
AS_IF([test "x$PYTHON_BINARY" = "x"],
diff --git a/tools/xml_helper.py b/tools/xml_helper.py
index 0d91a17bb..e87126f2f 100644
--- a/tools/xml_helper.py
+++ b/tools/xml_helper.py
@@ -24,22 +24,11 @@ class CustomResolver(tree.Resolver):
if 'custom-entities.ent' in url:
return self.resolve_filename('man/custom-entities.ent', context)
-try:
- _parser = tree.XMLParser()
- _parser.resolvers.add(CustomResolver())
- def xml_parse(page):
- doc = tree.parse(page, _parser)
- doc.xinclude()
- return doc
- def xml_print(xml):
- return tree.tostring(xml, pretty_print=True, encoding='utf-8')
-
-except ImportError:
- import xml.etree.ElementTree as tree
- import re as _re
- import io as _io
-
- def xml_parse(page):
- s = _re.sub(b'&[a-zA-Z0-9_]+;', b'', open(page, 'rb').read())
- return tree.parse(_io.BytesIO(s))
- xml_print = lambda xml: tree.tostring(xml, encoding='utf-8')
+_parser = tree.XMLParser()
+_parser.resolvers.add(CustomResolver())
+def xml_parse(page):
+ doc = tree.parse(page, _parser)
+ doc.xinclude()
+ return doc
+def xml_print(xml):
+ return tree.tostring(xml, pretty_print=True, encoding='utf-8')