classes/rootfs_*: error out if postinstalls exist with read-only rootfs
PATCH 1/1 classes/rootfs_*: error out if postinstalls exist with read-only rootfs
If there are postinstall scripts to be run on first boot and IMAGE_FEATURES contains "read-only-rootfs", we know this will fail on the target device so just error out during do_rootfs. This check was already implemented for ipk, so add it to the deb and rpm backends. Also make all backends use bberror rather than just echo to display the error.
Fixes [YOCTO #3407].
Signed-off-by Paul Eggleton <[email protected]>
--- meta/classes/rootfs_deb.bbclass | 7 +++++++ meta/classes/rootfs_ipk.bbclass | 2 +- meta/classes/rootfs_rpm.bbclass | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-)
meta/classes/rootfs_deb.bbclass +7 -0
@@ -70,6 +70,13 @@ fakeroot rootfs_deb_do_rootfs () { set -e + if ${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "true", "false" ,d)}; then + if grep Status:.install.ok.unpacked ${IMAGE_ROOTFS}/var/lib/dpkg/status; then + bberror "Some packages could not be configured offline and rootfs is read-only." + exit 1 + fi + fi + install -d ${IMAGE_ROOTFS}/${sysconfdir} echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version
meta/classes/rootfs_ipk.bbclass +1 -1
@@ -83,7 +83,7 @@ fakeroot rootfs_ipk_do_rootfs () { if ${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "true", "false" ,d)}; then if grep Status:.install.ok.unpacked ${STATUS}; then - echo "Some packages could not be configured offline and rootfs is read-only." + bberror "Some packages could not be configured offline and rootfs is read-only." exit 1 fi fi
meta/classes/rootfs_rpm.bbclass +9 -0
@@ -87,6 +87,15 @@ fakeroot rootfs_rpm_do_rootfs () { ${ROOTFS_POSTINSTALL_COMMAND} + if ${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "true", "false" ,d)}; then + if [ -d ${IMAGE_ROOTFS}/etc/rpm-postinsts ] ; then + if [ "`ls -A ${IMAGE_ROOTFS}/etc/rpm-postinsts`" != "" ] ; then + bberror "Some packages could not be configured offline and rootfs is read-only." + exit 1 + fi + fi + fi + # Report delayed package scriptlets for i in ${IMAGE_ROOTFS}/etc/rpm-postinsts/*; do if [ -f $i ]; then
Signature · 1 line
1.7.10.4