From patchwork Tue Nov 13 12:56:37 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [for-denzil, 2/2] rootfs_rpm.bbclass: save rpmlib rather than remove it Date: Tue, 13 Nov 2012 12:56:37 -0000 From: Robert Yang X-Patchwork-Id: 38913 Message-Id: <1eb37561b7824b92db7432e9811bf899de677e5e.1352807729.git.liezhi.yang@windriver.com> To: Cc: Zhenfeng.Zhao@windriver.com, scott.a.garman@intel.com The rpmlib was removed when images that add "remove_packaging_data_files" to ROOTFS_POSTPROCESS_COMMAND, which would make the increment rpm image generation doesn't work in the second build, since list_installed_packages would get incorrect value in the second build, move the rpmlib to ${T} rather than remove it, and move it back when INC_RPM_IMAGE_GEN =1. [YOCTO #2690] (From OE-Core rev: c30e79510c06701f10f659eedaa0fe785538ac17) Signed-off-by: Robert Yang Signed-off-by: Elizabeth Flanagan Signed-off-by: Richard Purdie --- meta/classes/image.bbclass | 6 ++++++ meta/classes/rootfs_rpm.bbclass | 6 +++++- 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 9557433..90a6a9d 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -143,6 +143,12 @@ fakeroot do_rootfs () { # When use the rpm incremental image generation, don't remove the rootfs if [ "${INC_RPM_IMAGE_GEN}" != "1" -o "${IMAGE_PKGTYPE}" != "rpm" ]; then rm -rf ${IMAGE_ROOTFS} + elif [ -d ${T}/saved_rpmlib/var/lib/rpm ]; then + # Move the rpmlib back + if [ ! -d ${IMAGE_ROOTFS}/var/lib/rpm ]; then + mkdir -p ${IMAGE_ROOTFS}/var/lib/ + mv ${T}/saved_rpmlib/var/lib/rpm ${IMAGE_ROOTFS}/var/lib/ + fi fi rm -rf ${MULTILIB_TEMP_ROOTFS} mkdir -p ${IMAGE_ROOTFS} diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 9039b21..fbc46c0 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -154,7 +154,11 @@ EOF } remove_packaging_data_files() { - rm -rf ${IMAGE_ROOTFS}${rpmlibdir} + # Save the rpmlib for increment rpm image generation + t="${T}/saved_rpmlib/var/lib" + rm -fr $t + mkdir -p $t + mv ${IMAGE_ROOTFS}${rpmlibdir} $t rm -rf ${IMAGE_ROOTFS}${opkglibdir} }