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].

(From OE-Core rev: 510e377f252dece8850487c30482f83df4a89c7e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2013-01-16 18:09:27 +00:00 committed by Richard Purdie
parent 5e4671b30d
commit 8ca0d592c5
3 changed files with 17 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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