package_rpm.bbclass: Refactor the attempt only install

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.

(From OE-Core rev: 7c11ab93242ad3453b730da79a641479de588227)

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>
This commit is contained in:
Mark Hatle 2012-12-14 16:40:34 -06:00 committed by Richard Purdie
parent 84a5c63a57
commit 1874c8d7e2
1 changed files with 6 additions and 2 deletions

View File

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