summaryrefslogtreecommitdiff
path: root/meta/classes
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2013-03-02 17:12:59 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-02 12:59:48 +0000
commita66ed54490305380c549838f9a580528d5b49275 (patch)
tree7ba17befee3448e28ab082a9cd0cc2d2bf488886 /meta/classes
parent8487b352cabd8c8ae8a7d9e7e66489e4e964bd50 (diff)
downloadopenembedded-core-a66ed54490305380c549838f9a580528d5b49275.tar.gz
openembedded-core-a66ed54490305380c549838f9a580528d5b49275.tar.bz2
openembedded-core-a66ed54490305380c549838f9a580528d5b49275.zip
package_deb.bbclass:fix meta-toolchain-sdk fail on do_populate_sdk
When build meta-toolchain-sdk in a newly created environment, there is an error: ... packagegroup-core-standalone-gmae-sdk-target set to manually installed. You might want to run `apt-get -f install' to correct these: The following packages have unmet dependencies: avahi-dev: Depends: avahi (= 0.6.31-r6.1) but it is not going to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). ... In this case, avahi was installed and then removed by dpkg (the reason is unknown, only with log `Noting disappearance of avahi, which has been completely replaced'), the uninstall was done by dpkg rather than apt, and apt detected the package dependency was broken, so apt-get install failed. Use `apt-get install -f' to correct the upper broken dependencies in place. The removed avahi will be reinstalled. [YOCTO #3720] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/package_deb.bbclass12
1 files changed, 9 insertions, 3 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index 309c48da11..2f278009f0 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -117,12 +117,18 @@ package_install_internal_deb () {
fi
# normal install
- for i in ${package_to_install}; do
- apt-get install $i --force-yes --allow-unauthenticated
+ if [ ! -z "${package_to_install}" ]; then
+ apt-get install ${package_to_install} --force-yes --allow-unauthenticated
if [ $? -ne 0 ]; then
exit 1
fi
- done
+
+ # Attempt to correct the probable broken dependencies in place.
+ apt-get -f install
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+ fi
rm -f `dirname ${BB_LOGFILE}`/log.do_${task}-attemptonly.${PID}
if [ ! -z "${package_attemptonly}" ]; then