package_rpm.bbclass: Avoid unnecessary installs in complementary pass
authorMark Hatle <mark.hatle@windriver.com>
Fri, 7 Sep 2012 22:05:44 +0000 (17:05 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 12 Sep 2012 14:13:35 +0000 (15:13 +0100)
When called with the complementary install option, the first step is to
backup the install manifest so that we can avoid installing items previously
installed.  However, this backup process skipped the initial_install portion
of the manifest, causing early install items like libc6, bash, and base-files
to be installed a second time.

Fix this by cating the files to original_solution.  This is done as an append to
allow multiple calls to package_install_internal_rpm to work.

(From OE-Core rev: af9fd7566a5de4716a202922f5eabb13a412f2fb)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package_rpm.bbclass

index 5f0e1d0..61f0117 100644 (file)
@@ -313,7 +313,14 @@ package_install_internal_rpm () {
                        done
                fi
        else
-               mv ${target_rootfs}/install/total_solution.manifest ${target_rootfs}/install/original_solution.manifest
+               # We may run through the complementary installs multiple times.  For each time
+               # we should add the previous solution manifest to the full "original" set to
+               # avoid duplicate install steps.
+               echo "Update original solution..."
+               cat ${target_rootfs}/install/initial_solution.manifest >> ${target_rootfs}/install/original_solution.manifest
+               cat ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/original_solution.manifest
+               rm ${target_rootfs}/install/initial_solution.manifest
+               rm ${target_rootfs}/install/total_solution.manifest
        fi
 
        # Setup manifest of packages to install...