Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix `pkg install -R` not installing missing dependencies
Bryan Drewery committed 13 years ago
commit 9210aa63687dd28b2758e619df28f5a96dc3694c
parent 99d225c
1 file changed +9 -8
modified libpkg/pkgdb.c
@@ -3056,7 +3056,15 @@ pkgdb_query_installs(struct pkgdb *db, match_t match, int nbpkgs, char **pkgs,
		    ") IS NOT NULL;");
	}

-
	/* Append dependencies */
+
	/* Include all reverse dependencies */
+
	if (recursive) {
+
		do {
+
			sql_exec(db->sqlite, upwards_deps_sql,
+
				 reponame, reponame);
+
		} while (sqlite3_changes(db->sqlite) != 0);
+
	}
+

+
	/* Append missing dependencies */
	sbuf_reset(sql);
	sbuf_printf(sql, deps_sql, reponame, reponame);
	sbuf_finish(sql);
@@ -3065,13 +3073,6 @@ pkgdb_query_installs(struct pkgdb *db, match_t match, int nbpkgs, char **pkgs,
		sql_exec(db->sqlite, sbuf_get(sql));
	} while (sqlite3_changes(db->sqlite) != 0);

-
	if (recursive) {
-
		do {
-
			sql_exec(db->sqlite, upwards_deps_sql,
-
				 reponame, reponame);
-
		} while (sqlite3_changes(db->sqlite) != 0);
-
	}
-

	/* Determine if there is an upgrade needed */
	sql_exec(db->sqlite, ""
		 "INSERT OR REPLACE INTO pkgjobs (pkgid, origin, name, "