Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fixes issue #409: Download pkgs needed for all the upgradable packages on a machine
Matthew Seaman committed 13 years ago
commit de9a9acef8ac0c9336d781d986ab423dbbb12524
parent 005bf7f
3 files changed +10 -6
modified libpkg/pkg_jobs.c
@@ -171,6 +171,7 @@ jobs_solve_upgrade(struct pkg_jobs *j)
	char *origin;
	bool all = false;
	bool pkgversiontest = false;
+
	unsigned flags = PKG_LOAD_BASIC;

	if ((j->flags & PKG_FLAG_FORCE) != 0)
		all = true;
@@ -178,11 +179,14 @@ jobs_solve_upgrade(struct pkg_jobs *j)
	if ((j->flags & PKG_FLAG_PKG_VERSION_TEST) != 0)
		pkgversiontest = true;

+
	if ((j->flags & PKG_FLAG_WITH_DEPS) != 0)
+
		flags |= PKG_LOAD_DEPS;
+

	if ((it = pkgdb_query_upgrades(j->db, j->reponame, all,
	        pkgversiontest)) == NULL)
		return (EPKG_FATAL);

-
	while (pkgdb_it_next(it, &pkg, PKG_LOAD_BASIC) == EPKG_OK) {
+
	while (pkgdb_it_next(it, &pkg, flags) == EPKG_OK) {
		pkg_get(pkg, PKG_ORIGIN, &origin);
		HASH_ADD_KEYPTR(hh, j->jobs, origin, strlen(origin), pkg);
		pkg = NULL;
modified libpkg/pkgdb.c
@@ -3992,14 +3992,14 @@ pkgdb_query_fetch(struct pkgdb *db, match_t match, int nbpkgs, char **pkgs,
		"FROM pkgjobs ORDER BY weight DESC;";

	const char	 main_sql[] = ""
-
		"INSERT OR IGNORE INTO pkgjobs (pkgid, origin, name, version, "
-
			"flatsize, pkgsize, cksum, repopath) "
+
		"INSERT OR IGNORE INTO pkgjobs (pkgid, origin, name, "
+
		        "newversion, newflatsize, pkgsize, cksum, repopath) "
			"SELECT id, origin, name, version, flatsize, "
			"pkgsize, cksum, path FROM '%s'.packages ";

	const char	deps_sql[] = ""
-
		"INSERT OR IGNORE INTO pkgjobs (pkgid, origin, name, version, "
-
			"flatsize, pkgsize, cksum, repopath) "
+
		"INSERT OR IGNORE INTO pkgjobs (pkgid, origin, name, "
+
		        "newversion, newflatsize, pkgsize, cksum, repopath) "
		"SELECT DISTINCT r.id, r.origin, r.name, r.version, "
			"r.flatsize, r.pkgsize, r.cksum, r.path "
		"FROM '%s'.packages AS r where r.origin IN "
modified pkg/utils.c
@@ -636,7 +636,7 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)

			humanize_number(size, sizeof(size), pkgsize, "B", HN_AUTOSCALE, 0);

-
			printf("\t%s-%s (%ld%% of %s)\n", name, newversion, (100 * oldsize)/pkgsize, size);
+
			printf("\t%s-%s (%ld%% of %s)\n", name, newversion, 100 - (100 * oldsize)/pkgsize, size);
			break;
		}
	}