Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Register local packages requires.
Vsevolod Stakhov committed 11 years ago
commit 3a5165a010a452ead7dc096bd73c48d5d3933611
parent a690fa9
2 files changed +22 -0
modified libpkg/pkgdb.c
@@ -1892,6 +1892,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete, int forced)
	 */
	if (pkgdb_update_provides(pkg, package_id, s) != EPKG_OK)
		goto cleanup;
+
	if (pkgdb_update_requires(pkg, package_id, s) != EPKG_OK)
+
		goto cleanup;

	retcode = EPKG_OK;

@@ -1977,6 +1979,25 @@ pkgdb_update_shlibs_provided(struct pkg *pkg, int64_t package_id, sqlite3 *s)
}

int
+
pkgdb_update_requires(struct pkg *pkg, int64_t package_id, sqlite3 *s)
+
{
+
	struct pkg_provide	*provide = NULL;
+

+
	while (pkg_requires(pkg, &provide) == EPKG_OK) {
+
		if (run_prstmt(REQUIRE, provide->provide)
+
		    != SQLITE_DONE
+
		    ||
+
		    run_prstmt(PKG_REQUIRE, package_id, provide->provide)
+
		    != SQLITE_DONE) {
+
			ERROR_SQLITE(s, SQL(PKG_REQUIRE));
+
			return (EPKG_FATAL);
+
		}
+
	}
+

+
	return (EPKG_OK);
+
}
+

+
int
pkgdb_update_provides(struct pkg *pkg, int64_t package_id, sqlite3 *s)
{
	struct pkg_provide	*provide = NULL;
modified libpkg/private/pkg.h
@@ -604,6 +604,7 @@ int pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete, int forc
int pkgdb_update_shlibs_required(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_update_shlibs_provided(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_update_provides(struct pkg *pkg, int64_t package_id, sqlite3 *s);
+
int pkgdb_update_requires(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_insert_annotations(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_register_finale(struct pkgdb *db, int retcode);
int pkgdb_set_pkg_digest(struct pkgdb *db, struct pkg *pkg);