asciidoc: use local docbook XML catalogue

Message ID 20190402152512.13112-1-ross.burton@intel.com
State New
Headers show
Series
  • asciidoc: use local docbook XML catalogue
Related show

Commit Message

Ross Burton April 2, 2019, 3:25 p.m.
libxml-native by default uses a XML catalogue at /etc/xml/catalog, instead of
the one in the sysroot.  Until this is fixed (#13260) override the XML catalogue
manually in the recipe.

Signed-off-by: Ross Burton <ross.burton@intel.com>

---
 .../asciidoc/asciidoc/auto-catalogs.patch          | 27 ++++++++++++++++++++++
 meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb   |  7 +++++-
 2 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch

-- 
2.11.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Ross Burton April 2, 2019, 4:37 p.m. | #1
Retracting this: it then goes and downloads the xsl stylesheets during
do_compile, which is slow and networking during a non-network phase.
Easier hack incoming.

Ross

On Tue, 2 Apr 2019 at 16:25, Ross Burton <ross.burton@intel.com> wrote:
>

> libxml-native by default uses a XML catalogue at /etc/xml/catalog, instead of

> the one in the sysroot.  Until this is fixed (#13260) override the XML catalogue

> manually in the recipe.

>

> Signed-off-by: Ross Burton <ross.burton@intel.com>

> ---

>  .../asciidoc/asciidoc/auto-catalogs.patch          | 27 ++++++++++++++++++++++

>  meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb   |  7 +++++-

>  2 files changed, 33 insertions(+), 1 deletion(-)

>  create mode 100644 meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch

>

> diff --git a/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch b/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch

> new file mode 100644

> index 00000000000..f507080cd3c

> --- /dev/null

> +++ b/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch

> @@ -0,0 +1,27 @@

> +If SGML_CATALOG_FILES is in the environment, pass --catalogs to xmllint.

> +

> +Upstream-Status: Submitted [https://github.com/asciidoc/asciidoc-py3/issues/61]

> +Signed-off-by: Ross Burton <ross.burton@intel.com>

> +

> +diff --git a/a2x.py b/a2x.py

> +index 2d7699a..5bb995f 100755

> +--- a/a2x.py

> ++++ b/a2x.py

> +@@ -47,6 +47,8 @@ FOP = 'fop'                 # pdf generation (--fop option).

> + W3M = 'w3m'                 # primary text file generator.

> + LYNX = 'lynx'               # alternate text file generator.

> + XMLLINT = 'xmllint'         # Set to '' to disable.

> ++if "SGML_CATALOG_FILES" in os.environ:

> ++  XMLLINT += " --catalogs"

> + EPUBCHECK = 'epubcheck'     # Set to '' to disable.

> + # External executable default options.

> + ASCIIDOC_OPTS = ''

> +@@ -634,7 +636,7 @@ class A2X(AttrDict):

> +         shell('"%s" --backend docbook -a "a2x-format=%s" %s --out-file "%s" "%s"' %

> +              (self.asciidoc, self.format, self.asciidoc_opts, docbook_file, self.asciidoc_file))

> +         if not self.no_xmllint and XMLLINT:

> +-            shell('"%s" --nonet --noout --valid "%s"' % (XMLLINT, docbook_file))

> ++            shell('%s --nonet --noout --valid "%s"' % (XMLLINT, docbook_file))

> +

> +     def to_xhtml(self):

> +         self.to_docbook()

> diff --git a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb b/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb

> index d0d15171ac4..88ee93bfc10 100644

> --- a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb

> +++ b/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb

> @@ -8,7 +8,8 @@ LICENSE = "GPLv2"

>  LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \

>                      file://COPYRIGHT;md5=029ad5428ba5efa20176b396222d4069"

>

> -SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https"

> +SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \

> +           file://auto-catalogs.patch"

>  SRCREV = "618f6e6f6b558ed1e5f2588cd60a5a6b4f881ca0"

>  PV .= "+py3-git${SRCPV}"

>

> @@ -16,6 +17,10 @@ DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native"

>

>  S = "${WORKDIR}/git"

>

> +# Tell xmllint where to find the DocBook XML catalogue, because right now it

> +# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch

> +export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/docbook-xml.xml"

> +

>  # Not using automake

>  inherit autotools-brokensep

>  CLEANBROKEN = "1"

> --

> 2.11.0

>

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch b/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch
new file mode 100644
index 00000000000..f507080cd3c
--- /dev/null
+++ b/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch
@@ -0,0 +1,27 @@ 
+If SGML_CATALOG_FILES is in the environment, pass --catalogs to xmllint.
+
+Upstream-Status: Submitted [https://github.com/asciidoc/asciidoc-py3/issues/61]
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/a2x.py b/a2x.py
+index 2d7699a..5bb995f 100755
+--- a/a2x.py
++++ b/a2x.py
+@@ -47,6 +47,8 @@ FOP = 'fop'                 # pdf generation (--fop option).
+ W3M = 'w3m'                 # primary text file generator.
+ LYNX = 'lynx'               # alternate text file generator.
+ XMLLINT = 'xmllint'         # Set to '' to disable.
++if "SGML_CATALOG_FILES" in os.environ:
++  XMLLINT += " --catalogs"
+ EPUBCHECK = 'epubcheck'     # Set to '' to disable.
+ # External executable default options.
+ ASCIIDOC_OPTS = ''
+@@ -634,7 +636,7 @@ class A2X(AttrDict):
+         shell('"%s" --backend docbook -a "a2x-format=%s" %s --out-file "%s" "%s"' %
+              (self.asciidoc, self.format, self.asciidoc_opts, docbook_file, self.asciidoc_file))
+         if not self.no_xmllint and XMLLINT:
+-            shell('"%s" --nonet --noout --valid "%s"' % (XMLLINT, docbook_file))
++            shell('%s --nonet --noout --valid "%s"' % (XMLLINT, docbook_file))
+ 
+     def to_xhtml(self):
+         self.to_docbook()
diff --git a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb b/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
index d0d15171ac4..88ee93bfc10 100644
--- a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
+++ b/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
@@ -8,7 +8,8 @@  LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
                     file://COPYRIGHT;md5=029ad5428ba5efa20176b396222d4069"
 
-SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https"
+SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \
+           file://auto-catalogs.patch"
 SRCREV = "618f6e6f6b558ed1e5f2588cd60a5a6b4f881ca0"
 PV .= "+py3-git${SRCPV}"
 
@@ -16,6 +17,10 @@  DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native"
 
 S = "${WORKDIR}/git"
 
+# Tell xmllint where to find the DocBook XML catalogue, because right now it
+# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch
+export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/docbook-xml.xml"
+
 # Not using automake
 inherit autotools-brokensep
 CLEANBROKEN = "1"