Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix dependencies upgrading.
Vsevolod Stakhov committed 11 years ago
commit 2f3c58df521565225769b94d7cc2d9ad838b6504
parent 2064515
1 file changed +9 -2
modified libpkg/pkg_jobs.c
@@ -405,7 +405,7 @@ pkg_jobs_process_add_request(struct pkg_jobs *j, bool top)
		 upgrade = j->type == PKG_JOBS_UPGRADE;
	struct pkg_job_request *req, *tmp, *found;
	struct pkg_job_request_item *it;
-
	struct pkg_job_universe_item *un;
+
	struct pkg_job_universe_item *un, *cur;
	struct pkg_dep *d;
	struct pkg *lp;
	int (*deps_func)(const struct pkg *pkg, struct pkg_dep **d);
@@ -448,7 +448,14 @@ pkg_jobs_process_add_request(struct pkg_jobs *j, bool top)
				 */
				un = pkg_jobs_universe_get_upgrade_candidates(j->universe,
					d->uid, lp, force);
-
				utarray_push_back(to_process, &un);
+
				cur = un->prev;
+
				while (cur != un) {
+
					if (cur->pkg->type != PKG_INSTALLED) {
+
						utarray_push_back(to_process, &un);
+
						break;
+
					}
+
					cur = cur->prev;
+
				}
			}
		}
	}