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 <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
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
}