Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Do not propose to downgrade from pkg upgrade
Baptiste Daroussin committed 13 years ago
commit 74dd1770b207432e7d41ea426fccc896a4915c1c
parent 34d4eae85794bb38e27224dcbe016172f0dca782
1 file changed +9 -0
modified libpkg/pkgdb.c
@@ -2749,6 +2749,7 @@ pkgdb_query_upgrades(struct pkgdb *db, const char *repo, bool all)

	/* Remove packages already installed and in the latest version */
	if (!all) {
+
		/* Remove all the downgrades we asked for upgrade :) */
		sql_exec(db->sqlite, "DELETE FROM pkgjobs WHERE "
		    "(SELECT p.origin FROM main.packages AS p WHERE "
		    "p.origin=pkgjobs.origin AND PKGGT(p.version,pkgjobs.version))"
@@ -2768,6 +2769,14 @@ pkgdb_query_upgrades(struct pkgdb *db, const char *repo, bool all)
		sql_exec(db->sqlite, sbuf_get(sql));
	} while (sqlite3_changes(db->sqlite) != 0);

+
	if (!all) {
+
		/* Remove all the downgrades in dependencies as well we asked for upgrade :) */
+
		sql_exec(db->sqlite, "DELETE FROM pkgjobs WHERE "
+
		    "(SELECT p.origin FROM main.packages AS p WHERE "
+
		    "p.origin=pkgjobs.origin AND PKGGT(p.version,pkgjobs.version))"
+
		    "IS NOT NULL;");
+
	}
+

	/* Determine if there is an upgrade needed */
	sql_exec(db->sqlite, pkgjobs_sql_3);