diff options
author | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | 2016-03-10 14:47:09 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-12 22:11:47 +0000 |
commit | cbb4c5b0f1a08aa556ec53a34c1916d7cb60d419 (patch) | |
tree | e3f1fbd4c1711b74067dd0a410f855ec15b7e627 | |
parent | fcc7ff072a6be2da36b6e7883d30c3c7ee02db0c (diff) | |
download | poky-cbb4c5b0f1a08aa556ec53a34c1916d7cb60d419.tar.gz |
package-deb: Ignore circular dependencies
If a package depends on itself apt-get fails to install it with the
error attached to this patch.
This patch checks for this conditions and notifies the user so the
recipe maintainer can fix his RDEPENDS variable.
root@qt5022:~# apt-get install perl-module-cpan
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
perl-module-cpan
0 upgraded, 640 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/5964 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
E: Internal error: MaxLoopCount reached in SmartUnPack (2) for
perl-module-cpan:amd64, aborting
E: Internal error, packages left unconfigured. perl-module-cpan:amd64
root@qt5022:~# apt-get install perl-modules
(From OE-Core rev: d8bf148c3b740254ed23d52cf244f0f6e9c7a4ab)
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/package_deb.bbclass | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 6ecea0e182..e1d05a74c2 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
@@ -235,6 +235,9 @@ python do_package_deb () { | |||
235 | rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS", True) or "") | 235 | rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS", True) or "") |
236 | debian_cmp_remap(rdepends) | 236 | debian_cmp_remap(rdepends) |
237 | for dep in rdepends.keys(): | 237 | for dep in rdepends.keys(): |
238 | if dep == pkg: | ||
239 | del rdepends[dep] | ||
240 | continue | ||
238 | if '*' in dep: | 241 | if '*' in dep: |
239 | del rdepends[dep] | 242 | del rdepends[dep] |
240 | rrecommends = bb.utils.explode_dep_versions2(localdata.getVar("RRECOMMENDS", True) or "") | 243 | rrecommends = bb.utils.explode_dep_versions2(localdata.getVar("RRECOMMENDS", True) or "") |