[oe-commits] [openembedded-core] 06/10: openjade/sgml-common: Add sstate postrm commands

git at git.openembedded.org git at git.openembedded.org
Thu Sep 15 11:20:29 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 61319e2f303912c7b669c4a97f8e39d63655c5f0
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Thu Sep 15 11:48:39 2016 +0100

    openjade/sgml-common: Add sstate postrm commands
    
    If you bump the PR of sgml-common and openjade-native but not sgml-
    common-native, you will see a failure as files were removed from the
    sysroot but still referenced by the sgml docbook catalog.
    
    To properly handle this, the clean function needs to run at sstate
    removal time, the problem is that this sstate removal can happen when
    the metadata isn't present, so the correct removal commands are
    unknown.
    
    To avoid this, we need to write the commands into a "postrm" script
    when we install the files, this can then be executed at sstate removal
    time.
    
    [YOCTO #8273]
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 .../openjade/openjade-native_1.3.2.bb                 | 19 +++++++++----------
 .../sgml-common/sgml-common-native_0.6.3.bb           | 17 ++++++++---------
 2 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
index afcb8ca..8b15b0c 100644
--- a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
+++ b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
@@ -48,7 +48,6 @@ CXXFLAGS += "-fno-tree-dse"
 
 SSTATEPOSTINSTFUNCS += "openjade_sstate_postinst"
 SYSROOT_PREPROCESS_FUNCS += "openjade_sysroot_preprocess"
-CLEANFUNCS += "openjade_sstate_clean"
 
 # configure.in needs to be reloacted to trigger reautoconf
 do_extraunpack () {
@@ -104,6 +103,15 @@ openjade_sstate_postinst() {
 		${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-openjade \
 			--add ${sysconfdir}/sgml/sgml-docbook.cat \
 			${sysconfdir}/sgml/openjade-${PV}.cat
+		cat << EOF > ${SSTATE_INST_POSTRM}
+#!/bin/sh
+# Ensure that the catalog file sgml-docbook.cat is properly
+# updated when the package is removed from sstate cache.
+files="${sysconfdir}/sgml/sgml-docbook.bak ${sysconfdir}/sgml/sgml-docbook.cat"
+for f in \$files; do
+	[ ! -f \$f ] || sed -i '/\/sgml\/openjade-${PV}.cat/d' \$f
+done
+EOF
 	fi
 }
 
@@ -111,12 +119,3 @@ openjade_sysroot_preprocess () {
     install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
     install -m 755 ${STAGING_BINDIR_NATIVE}/install-catalog ${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-openjade
 }
-
-openjade_sstate_clean () {
-	# Ensure that the catalog file sgml-docbook.cat is properly
-	# updated when the package is removed from sstate cache.
-	files="${sysconfdir}/sgml/sgml-docbook.bak ${sysconfdir}/sgml/sgml-docbook.cat"
-	for f in $files; do
-		[ ! -f $f ] || sed -i '/\/sgml\/openjade-${PV}.cat/d' $f
-	done
-}
diff --git a/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb b/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
index 5975365..97b308a 100644
--- a/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
+++ b/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
@@ -22,8 +22,6 @@ S = "${WORKDIR}/sgml-common-${PV}"
 
 SYSROOT_PREPROCESS_FUNCS += "sgml_common_native_mangle"
 SSTATEPOSTINSTFUNCS += "sgml_common_sstate_postinst"
-CLEANFUNCS += "sgml_common_sstate_clean"
-
 
 do_install_append() {
 	# install-catalog script contains hard-coded references to
@@ -59,13 +57,14 @@ sgml_common_sstate_postinst() {
 				fi
 			done
 		fi
-	fi
-}
+		cat << EOF > ${SSTATE_INST_POSTRM}
+#!/bin/sh
 
-sgml_common_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.cat ]; then
-		sed -i '/\/sgml\/sgml-ent.cat/d' ${sysconfdir}/sgml/sgml-docbook.cat
+# 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.cat ]; then
+	sed -i '/\/sgml\/sgml-ent.cat/d' ${sysconfdir}/sgml/sgml-docbook.cat
+fi
+EOF
 	fi
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list