On 03/12/2014 02:38 PM, Robert Yang wrote:
The docbook_sgml_dtd_sstate_postinst adds catalog file to
/etc/sgml/sgml-docbook.cat, but the do_clean would not remove the file,
which would cause unexpected errors since we have multiple versions
of docbook-sgml-dtd:

docbook-sgml-dtd-3.1-native_3.1.bb
docbook-sgml-dtd-4.1-native_4.1.bb
docbook-sgml-dtd-4.5-native.bb

If we run:

$ bitbake docbook-sgml-dtd-4.1-native
$ bitbake docbook-sgml-dtd-4.1-native -ccleansstate && bitbake 
docbook-sgml-dtd-3.1-native
$ bitbake docbook-utils-native

We would get this error:

jade: cannot open "/path/to/etc/sgml/sgml-docbook-dtd-4.1.cat" (No such file or 
directory)
make[2]: *** [sgmldiff.html] Error 1

Remove the catalog entry when do_clean will fix the problem.

[YOCTO #5949]

Signed-off-by: Robert Yang <[email protected]>
---
  .../docbook-sgml-dtd/docbook-sgml-dtd-native.inc             |   10 ++++++++++
  1 file changed, 10 insertions(+)

diff --git a/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc 
b/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
index 1b357b5..bf2affb 100644
--- a/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
+++ b/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
@@ -58,3 +58,13 @@ docbook_sgml_dtd_sysroot_preprocess () {
      install -m 755 ${STAGING_BINDIR_NATIVE}/install-catalog 
${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-docbook-sgml-dtd-${DTD_VERSION}
  }

+CLEANFUNCS += "docbook_sgml_dtd_sstate_clean"
+
+docbook_sgml_dtd_sstate_clean () {
+       # Ensure that the catalog file sgml-docbook.cat is properly
+       # updated when the package is removed from sstate cache.
+       if [ -s ${sysconfdir}/sgml/sgml-docbook.bak ]; then
+               sed -i '/'"\/sgml\/sgml-docbook-dtd-${DTD_VERSION}.cat"'/d' \
+                       ${sysconfdir}/sgml/sgml-docbook.bak

I updated the patch a little, we need also remove the catalog file from
sgml-docbook.cat, please see the PULL:

git://git.pokylinux.org/poky-contrib rbt/sgml


And here is the patch:

diff --git a/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc b/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
index 1b357b5..b2381bd 100644
--- a/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
+++ b/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-native.inc
@@ -58,3 +58,15 @@ docbook_sgml_dtd_sysroot_preprocess () {
install -m 755 ${STAGING_BINDIR_NATIVE}/install-catalog ${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-docbook-sgml-dtd-${DTD_VERSION}
 }

+CLEANFUNCS += "docbook_sgml_dtd_sstate_clean"
+
+docbook_sgml_dtd_sstate_clean () {
+       # Ensure that the catalog file sgml-docbook.cat is properly
+       # updated when the package is removed from sstate cache.
+       if [ -f ${sysconfdir}/sgml/sgml-docbook.bak ]; then
+               sed -i '/'"\/sgml\/sgml-docbook-dtd-${DTD_VERSION}.cat"'/d' \
+                       ${sysconfdir}/sgml/sgml-docbook.bak
+               sed -i '/'"\/sgml\/sgml-docbook-dtd-${DTD_VERSION}.cat"'/d' \
+                       ${sysconfdir}/sgml/sgml-docbook.cat
+       fi
+}

// Robert


+       fi
+}

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to