Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Drop support for legacy remote db
Baptiste Daroussin committed 12 years ago
commit 8da52a7c0107ad7b36854a56cc3a6cb3f72dd976
parent 7fa6521
4 files changed +15 -114
modified libpkg/pkgdb_repo.c
@@ -66,7 +66,6 @@

typedef enum _sql_prstmt_index {
	PKG = 0,
-
	PKG2001,
	DEPS,
	CAT1,
	CAT2,
@@ -76,7 +75,6 @@ typedef enum _sql_prstmt_index {
	OPT2,
	SHLIB1,
	SHLIB_REQD,
-
	SHLIB2001,
	SHLIB_PROV,
	ANNOTATE1,
	ANNOTATE2,
@@ -96,15 +94,6 @@ static sql_prstmt sql_prepared_statements[PRSTMT_LAST] = {
		"VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15)",
		"TTTTTTTTTIIITTT",
	},
-
	[PKG2001] = {
-
		NULL,
-
		"INSERT INTO packages ("
-
		"origin, name, version, comment, desc, arch, maintainer, www, "
-
		"prefix, pkgsize, flatsize, licenselogic, cksum, path"
-
		")"
-
		"VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14)",
-
		"TTTTTTTTTIIITT",
-
	},
	[DEPS] = {
		NULL,
		"INSERT INTO deps (origin, name, version, package_id) "
@@ -156,12 +145,6 @@ static sql_prstmt sql_prepared_statements[PRSTMT_LAST] = {
		"VALUES (?1, (SELECT id FROM shlibs WHERE name = ?2))",
		"IT",
	},
-
	[SHLIB2001] = {
-
		NULL,
-
		"INSERT OR ROLLBACK INTO pkg_shlibs(package_id, shlib_id) "
-
		"VALUES (?1, (SELECT id FROM shlibs WHERE name = ?2))",
-
		"IT",
-
	},
	[SHLIB_PROV] = {
		NULL,
		"INSERT OR ROLLBACK INTO pkg_shlibs_provided(package_id, shlib_id) "
@@ -256,7 +239,7 @@ get_repo_user_version(sqlite3 *sqlite, const char *database, int *reposcver)
}

static int
-
initialize_prepared_statements(sqlite3 *sqlite, bool legacy)
+
initialize_prepared_statements(sqlite3 *sqlite)
{
	sql_prstmt_index i, last;
	int ret;
@@ -264,10 +247,6 @@ initialize_prepared_statements(sqlite3 *sqlite, bool legacy)
	last = PRSTMT_LAST;

	for (i = 0; i < last; i++) {
-
		if (legacy && (i == PKG || i == SHLIB_REQD || (i > SHLIB2001 && i < EXISTS)))
-
			continue;
-
		if (!legacy && (i == PKG2001 || i == SHLIB2001))
-
			continue;
		ret = sqlite3_prepare_v2(sqlite, SQL(i), -1, &STMT(i), NULL);
		if (ret != SQLITE_OK) {
			ERROR_SQLITE(sqlite);
@@ -332,7 +311,7 @@ finalize_prepared_statements(void)
}

int
-
pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite, bool legacy)
+
pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite)
{
	bool incremental = false;
	bool db_not_open;
@@ -361,8 +340,6 @@ pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite, bool legacy)
		retcode = get_repo_user_version(*sqlite, "main", &reposcver);
		if (retcode != EPKG_OK)
			return (EPKG_FATAL);
-
		if (legacy)
-
			break;
		if (force || reposcver != REPO_SCHEMA_VERSION) {
			if (reposcver != REPO_SCHEMA_VERSION)
				pkg_emit_error("re-creating repo to upgrade schema version "
@@ -379,7 +356,7 @@ pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite, bool legacy)
	    file_exists, NULL, NULL);

	if (!incremental) {
-
		retcode = sql_exec(*sqlite, legacy ? initsql_legacy : initsql, REPO_SCHEMA_VERSION);
+
		retcode = sql_exec(*sqlite, initsql, REPO_SCHEMA_VERSION);
		if (retcode != EPKG_OK)
			return (retcode);
	}
@@ -388,7 +365,7 @@ pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite, bool legacy)
}

int
-
pkgdb_repo_init(sqlite3 *sqlite, bool legacy)
+
pkgdb_repo_init(sqlite3 *sqlite)
{
	int retcode = EPKG_OK;

@@ -404,7 +381,7 @@ pkgdb_repo_init(sqlite3 *sqlite, bool legacy)
	if (retcode != EPKG_OK)
		return (retcode);

-
	retcode = initialize_prepared_statements(sqlite, legacy);
+
	retcode = initialize_prepared_statements(sqlite);
	if (retcode != EPKG_OK)
		return (retcode);

@@ -491,7 +468,7 @@ pkgdb_repo_cksum_exists(sqlite3 *sqlite, const char *cksum)

int
pkgdb_repo_add_package(struct pkg *pkg, const char *pkg_path,
-
		sqlite3 *sqlite, const char *manifest_digest, bool forced, bool legacy)
+
		sqlite3 *sqlite, const char *manifest_digest, bool forced)
{
	const char *name, *version, *origin, *comment, *desc;
	const char *arch, *maintainer, *www, *prefix, *sum, *rpath;
@@ -514,10 +491,8 @@ pkgdb_repo_add_package(struct pkg *pkg, const char *pkg_path,
			    PKG_LICENSE_LOGIC, &licenselogic, PKG_CKSUM, &sum,
			    PKG_PKGSIZE, &pkgsize, PKG_REPOPATH, &rpath);

-
	/* setup the legacy version */
-

try_again:
-
	if ((ret = run_prepared_statement(legacy ? PKG2001 : PKG, origin, name, version,
+
	if ((ret = run_prepared_statement(PKG, origin, name, version,
			comment, desc, arch, maintainer, www, prefix,
			pkgsize, flatsize, (int64_t)licenselogic, sum,
			rpath, manifest_digest)) != SQLITE_DONE) {
@@ -600,7 +575,7 @@ try_again:

		ret = run_prepared_statement(SHLIB1, shlib_name);
		if (ret == SQLITE_DONE)
-
			ret = run_prepared_statement(legacy ? SHLIB2001 : SHLIB_REQD, package_id,
+
			ret = run_prepared_statement(SHLIB_REQD, package_id,
					shlib_name);
		if (ret != SQLITE_DONE) {
			ERROR_SQLITE(sqlite);
@@ -608,9 +583,6 @@ try_again:
		}
	}

-
	if (legacy)
-
		return (EPKG_OK);
-

	shlib = NULL;
	while (pkg_shlibs_provided(pkg, &shlib) == EPKG_OK) {
		const char *shlib_name = pkg_shlib_name(shlib);
modified libpkg/private/pkgdb.h
@@ -77,14 +77,14 @@ void pkgshell_open(const char **r);
 * @param sqlite destination db pointer
 * @return EPKG_OK if succeed
 */
-
int pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite, bool legacy);
+
int pkgdb_repo_open(const char *repodb, bool force, sqlite3 **sqlite);

/**
 * Init repository for pkgdb_repo* functions
 * @param sqlite sqlite object
 * @return EPKG_OK if succeed
 */
-
int pkgdb_repo_init(sqlite3 *sqlite, bool legacy);
+
int pkgdb_repo_init(sqlite3 *sqlite);

/**
 * Close repodb and commit/rollback transaction started
@@ -113,7 +113,7 @@ int pkgdb_repo_cksum_exists(sqlite3 *sqlite, const char *cksum);
 * inserted one, EPKG_FATAL if error occurred
 */
int pkgdb_repo_add_package(struct pkg *pkg, const char *pkg_path,
-
		sqlite3 *sqlite, const char *manifest_digest, bool forced, bool legacy);
+
		sqlite3 *sqlite, const char *manifest_digest, bool forced);

/**
 * Remove specified pkg from repo
modified libpkg/private/repodb.h
@@ -38,78 +38,6 @@ static const char repo_filesite_archive[] = "filesite";
static const char repo_digests_file[] = "digests";
static const char repo_digests_archive[] = "digests";

-
static const char initsql_legacy[] = ""
-
	"CREATE TABLE packages ("
-
		"id INTEGER PRIMARY KEY,"
-
		"origin TEXT UNIQUE,"
-
		"name TEXT NOT NULL,"
-
		"version TEXT NOT NULL,"
-
		"comment TEXT NOT NULL,"
-
		"desc TEXT NOT NULL,"
-
		"osversion TEXT,"
-
		"arch TEXT NOT NULL,"
-
		"maintainer TEXT NOT NULL,"
-
		"www TEXT,"
-
		"prefix TEXT NOT NULL,"
-
		"pkgsize INTEGER NOT NULL,"
-
		"flatsize INTEGER NOT NULL,"
-
		"licenselogic INTEGER NOT NULL,"
-
		"cksum TEXT NOT NULL,"
-
		/* relative path to the package in the repository */
-
		"path TEXT NOT NULL,"
-
		"pkg_format_version INTEGER"
-
	");"
-
	"CREATE TABLE deps ("
-
		"origin TEXT,"
-
		"name TEXT,"
-
		"version TEXT,"
-
		"package_id INTEGER REFERENCES packages(id)"
-
		" ON DELETE CASCADE ON UPDATE CASCADE,"
-
		"UNIQUE(package_id, origin)"
-
	");"
-
	"CREATE TABLE categories ("
-
		"id INTEGER PRIMARY KEY, "
-
		"name TEXT NOT NULL UNIQUE "
-
	");"
-
		"CREATE TABLE pkg_categories ("
-
		"package_id INTEGER REFERENCES packages(id)"
-
		" ON DELETE CASCADE ON UPDATE CASCADE,"
-
		"category_id INTEGER REFERENCES categories(id)"
-
		" ON DELETE RESTRICT ON UPDATE RESTRICT,"
-
		"UNIQUE(package_id, category_id)"
-
	");"
-
	"CREATE TABLE licenses ("
-
		"id INTEGER PRIMARY KEY,"
-
		"name TEXT NOT NULL UNIQUE"
-
	");"
-
	"CREATE TABLE pkg_licenses ("
-
		"package_id INTEGER REFERENCES packages(id)"
-
		" ON DELETE CASCADE ON UPDATE CASCADE,"
-
		"license_id INTEGER REFERENCES licenses(id)"
-
		" ON DELETE RESTRICT ON UPDATE RESTRICT,"
-
		"UNIQUE(package_id, license_id)"
-
	");"
-
	"CREATE TABLE options ("
-
		"package_id INTEGER REFERENCES packages(id)"
-
		" ON DELETE CASCADE ON UPDATE CASCADE,"
-
		"option TEXT,"
-
		"value TEXT,"
-
		"UNIQUE (package_id, option)"
-
	");"
-
	"CREATE TABLE shlibs ("
-
		"id INTEGER PRIMARY KEY,"
-
		"name TEXT NOT NULL UNIQUE "
-
	");"
-
	"CREATE TABLE pkg_shlibs ("
-
		"package_id INTEGER REFERENCES packages(id)"
-
		" ON DELETE CASCADE ON UPDATE CASCADE,"
-
		"shlib_id INTEGER REFERENCES shlibs(id)"
-
		" ON DELETE RESTRICT ON UPDATE RESTRICT,"
-
		"UNIQUE(package_id, shlib_id)"
-
	");"
-
	"PRAGMA user_version=2001;"
-
	;
-

static const char initsql[] = ""
	"CREATE TABLE packages ("
	    "id INTEGER PRIMARY KEY,"
modified libpkg/update.c
@@ -555,7 +555,7 @@ pkg_add_from_manifest(char *buf, const char *origin, long offset,
		goto cleanup;
	}

-
	rc = pkgdb_repo_add_package(pkg, NULL, sqlite, manifest_digest, true, false);
+
	rc = pkgdb_repo_add_package(pkg, NULL, sqlite, manifest_digest, true);

cleanup:
	return (rc);
@@ -606,12 +606,13 @@ pkg_update_incremental(const char *name, struct pkg_repo *repo, time_t *mtime)
	size_t len = 0;

	pkg_debug(1, "Pkgrepo, begin incremental update of '%s'", name);
-
	if ((rc = pkgdb_repo_open(name, false, &sqlite, false)) != EPKG_OK) {
+
	if ((rc = pkgdb_repo_open(name, false, &sqlite)) != EPKG_OK) {
		return (EPKG_FATAL);
	}

-
	if ((rc = pkgdb_repo_init(sqlite, false)) != EPKG_OK)
+
	if ((rc = pkgdb_repo_init(sqlite)) != EPKG_OK) {
		goto cleanup;
+
	}

	if ((rc = pkg_register_repo(repo, sqlite)) != EPKG_OK)
		goto cleanup;