]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm: Avoid duplicate package generation failures
authorMark Hatle <mark.hatle@windriver.com>
Fri, 6 Jul 2012 19:14:01 +0000 (14:14 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 9 Jul 2012 10:37:29 +0000 (11:37 +0100)
When constructing a multilib based image, it's possible to end up with
the same package listed in multiple steps of the install.  During resolution
we use the --replacepkgs option to avoid errors, as the resulting install
solution will be as expected.  (We do not enable the replacepkgs option
for the final install step, only the generation of the install solution.)

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

index 78279f59b314c54f6b2c211c846024477fb93db2..2a2991768b43e299173fcd03927d9f52a415ba70 100644 (file)
@@ -318,7 +318,7 @@ package_install_internal_rpm () {
                        --root "${target_rootfs}/install" \
                        -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-base_archs.macro`" \
                        -D "__dbi_txn create nofsync" \
-                       -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
+                       -U --justdb --replacepkgs --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                        ${target_rootfs}/install/install.manifest
        fi
 
@@ -348,7 +348,7 @@ package_install_internal_rpm () {
                                --root "${target_rootfs}/install" \
                                -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}.macro`" \
                                -D "__dbi_txn create nofsync private" \
-                               -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
+                               -U --justdb --replacepkgs --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                        $pkg_name >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" || true
                done
        fi
@@ -399,7 +399,7 @@ package_install_internal_rpm () {
                                --root "${target_rootfs}/install" \
                                -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}.macro`" \
                                -D "__dbi_txn create nofsync private" \
-                               -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
+                               -U --justdb --replacepkgs --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                                $pkg_name >> "`dirname ${BB_LOGFILE}`/log.do_${task}_recommend.${PID}" 2>&1 || true
                done
                cat ${target_rootfs}/install/recommend.list ${target_rootfs}/install/recommend.new | sort -u > ${target_rootfs}/install/recommend.new.list
@@ -428,7 +428,7 @@ package_install_internal_rpm () {
                        --root "${target_rootfs}/install" \
                        -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-ml_archs.macro`" \
                        -D "__dbi_txn create nofsync" \
-                       -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
+                       -U --justdb --replacepkgs --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                        ${target_rootfs}/install/install_multilib.manifest
 
                # Now that we have a solution, pull out a list of what to install...
@@ -524,7 +524,7 @@ EOF
                                --root "${target_rootfs}/install" \
                                -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \
                                -D "__dbi_txn create nofsync" \
-                               -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
+                               -U --justdb --replacepkgs --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                                ${target_rootfs}/install/initial_install.manifest
 
                        ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \