diff options
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | tools/xml_helper.py | 27 |
3 files changed, 12 insertions, 21 deletions
@@ -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 d92f1fe015..59650a256d 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 0d91a17bbc..e87126f2f7 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') |