Smart does not have a method to perform an install, but ignore failures.

There was a class of failures that stopped Smart from processing
attemptonly installs.  To work around this we need to iterate over the to
be attempted list.

Signed-off-by: Mark Hatle <[email protected]>
---
 meta/classes/package_rpm.bbclass |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 05108b2..dc8a54e 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -465,10 +465,14 @@ EOF
 
        if [ -n "${package_attemptonly}" ]; then
                echo "Note: installing attempt only packages..."
+               echo "Attempting $pkgs_to_install"
                echo "Note: see `dirname 
${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
                translate_oe_to_smart ${sdk_mode} --attemptonly 
$package_attemptonly
-               echo "Attempting $pkgs_to_install"
-               smart --data-dir=${target_rootfs}/var/lib/smart install -y 
$pkgs_to_install >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 
2>&1 || true
+               for each_pkg in $pkgs_to_install ;  do
+                       # We need to try each package individually as a single 
dependency failure
+                       # will break the whole set otherwise.
+                       smart --data-dir=${target_rootfs}/var/lib/smart install 
-y $each_pkg >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 
2>&1 || true
+               done
        fi
 }
 
-- 
1.7.3.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to