summaryrefslogtreecommitdiffstats
path: root/libopkg
diff options
context:
space:
mode:
authorgraham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-10 21:10:49 (EST)
committer graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-10 21:10:49 (EST)
commit11c434b8019682a3e6f0f683fd14a6b69151956a (patch)
tree3babe631e1e1f5fda1ee99193c6b55b79c7fbfab /libopkg
parentbf11afd779881043a7df4e511cffb4f7af121496 (diff)
Don't try to rerun control scripts, problems caused by circular dependencies.
Symptoms of this problem are seeing the following when installing a package: opkg: (null): Bad address opkg: (null): Bad address git-svn-id: http://opkg.googlecode.com/svn/trunk@281 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg')
-rw-r--r--libopkg/opkg_install.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c
index 4a1ff9a..15e15c7 100644
--- a/libopkg/opkg_install.c
+++ b/libopkg/opkg_install.c
@@ -910,6 +910,9 @@ int opkg_install_pkg(opkg_conf_t *conf, pkg_t *pkg, int from_upgrade)
if (conf->nodeps == 0) {
err = satisfy_dependencies_for(conf, pkg);
if (err) { return OPKG_INSTALL_ERR_DEPENDENCIES; }
+ if (pkg->state_status == SS_UNPACKED)
+ /* Circular dependency has installed it for us. */
+ return 0;
}
replacees = pkg_vec_alloc();