Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Compute rdepends base on the unique id
Baptiste Daroussin committed 11 years ago
commit 55b176b5c85a278689fc1ab6067b41f3c62ab455
parent 44b3639
2 files changed +6 -5
modified libpkg/pkgdb.c
@@ -1804,19 +1804,19 @@ pkgdb_load_rdeps(struct pkgdb *db, struct pkg *pkg)
{
	sqlite3_stmt	*stmt = NULL;
	int		 ret;
-
	const char	*origin;
+
	const char	*uniqueid;
	const char	*reponame = NULL;
	char		 sql[BUFSIZ];
	const char	*mainsql = ""
		"SELECT p.name, p.origin, p.version, p.locked "
		"FROM main.packages AS p, main.deps AS d "
		"WHERE p.id = d.package_id "
-
			"AND d.origin = ?1;";
+
			"AND d.name || \"~\" || d.origin = ?1;";
	const char	*reposql = ""
		"SELECT p.name, p.origin, p.version, 0 "
		"FROM %Q.packages AS p, %Q.deps AS d "
		"WHERE p.id = d.package_id "
-
			"AND d.origin = ?1;";
+
			"AND d.name || \"~\" || d.origin = ?1;";

	assert(db != NULL && pkg != NULL);

@@ -1839,8 +1839,8 @@ pkgdb_load_rdeps(struct pkgdb *db, struct pkg *pkg)
		return (EPKG_FATAL);
	}

-
	pkg_get(pkg, PKG_ORIGIN, &origin);
-
	sqlite3_bind_text(stmt, 1, origin, -1, SQLITE_STATIC);
+
	pkg_get(pkg, PKG_UNIQUEID, &uniqueid);
+
	sqlite3_bind_text(stmt, 1, uniqueid, -1, SQLITE_STATIC);

	while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) {
		pkg_addrdep(pkg, sqlite3_column_text(stmt, 0),
modified libpkg/private/pkg.h
@@ -391,6 +391,7 @@ static struct pkg_key {
	[PKG_ANNOTATIONS] = { "annotations", UCL_OBJECT },
	[PKG_LICENSES] = { "licenses", UCL_ARRAY },
	[PKG_CATEGORIES] = { "catagories", UCL_ARRAY },
+
	[PKG_UNIQUEID] = { "uniqueid", UCL_STRING },
};

int pkg_fetch_file_to_fd(struct pkg_repo *repo, const char *url,