openjade/sgml-common: Add sstate postrm commands
PATCH 1/1 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]
meta/recipes-devtools/openjade/openjade-native_1.3.2.bb +0 -0
@@ -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,19 +103,19 @@ 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
}
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
-}
+}meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb +0 -0
@@ -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
}