Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add dep_formula field.
Vsevolod Stakhov committed 10 years ago
commit ad93098d5b8c46e30392747da4bbaa419bbf4634
parent fb13040
6 files changed +22 -4
modified libpkg/pkg.c
@@ -77,6 +77,7 @@ pkg_free(struct pkg *pkg)
	free(pkg->repopath);
	free(pkg->repourl);
	free(pkg->reason);
+
	free(pkg->dep_formula);

	for (int i = 0; i < PKG_NUM_SCRIPTS; i++)
		sbuf_free(pkg->scripts[i]);
@@ -271,6 +272,9 @@ pkg_vget(const struct pkg * restrict pkg, va_list ap)
		case PKG_OLD_DIGEST:
			*va_arg(ap, const char **) = pkg->old_digest;
			break;
+
		case PKG_DEP_FORMULA:
+
			*va_arg(ap, const char **) = pkg->dep_formula;
+
			break;
		}
	}

@@ -405,6 +409,10 @@ pkg_vset(struct pkg *pkg, va_list ap)
		case PKG_TIME:
			pkg->timestamp = va_arg(ap, int64_t);
			break;
+
		case PKG_DEP_FORMULA:
+
			free(pkg->dep_formula);
+
			pkg->dep_formula = strdup(va_arg(ap, const char *));
+
			break;
		}
	}

modified libpkg/pkg.h.in
@@ -292,6 +292,7 @@ typedef enum {
	PKG_CATEGORIES,
	PKG_UNIQUEID,
	PKG_OLD_DIGEST,
+
	PKG_DEP_FORMULA,
	PKG_NUM_FIELDS,		/* end of fields */
} pkg_attr;

modified libpkg/pkg_manifest.c
@@ -83,6 +83,7 @@ static struct manifest_key {
	{ "comment",             PKG_COMMENT,             UCL_STRING, pkg_string},
	{ "conflicts",           PKG_CONFLICTS,           UCL_ARRAY,  pkg_array},
	{ "config",              PKG_CONFIG_FILES,        UCL_ARRAY,  pkg_array},
+
	{ "dep_formula",         PKG_DEP_FORMULA,         UCL_STRING, pkg_string},
	{ "deps",                PKG_DEPS,                UCL_OBJECT, pkg_obj},
	{ "desc",                PKG_DESC,                UCL_STRING, pkg_string},
	{ "directories",         PKG_DIRECTORIES,         UCL_OBJECT, pkg_obj},
@@ -326,6 +327,9 @@ pkg_string(struct pkg *pkg, const ucl_object_t *obj, int attr)
	case PKG_WWW:
		pkg->www = strdup(str);
		break;
+
	case PKG_DEP_FORMULA:
+
		pkg->dep_formula = strdup(str);
+
		break;
	}

	return (ret);
modified libpkg/pkgdb.c
@@ -1303,10 +1303,10 @@ static sql_prstmt sql_prepared_statements[PRSTMT_LAST] = {
		"INSERT OR REPLACE INTO packages( "
			"origin, name, version, comment, desc, message, arch, "
			"maintainer, www, prefix, flatsize, automatic, "
-
			"licenselogic, mtree_id, time, manifestdigest) "
+
			"licenselogic, mtree_id, time, manifestdigest, dep_formula) "
		"VALUES( ?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, "
-
		"?13, (SELECT id FROM mtree WHERE content = ?14), NOW(), ?15)",
-
		"TTTTTTTTTTIIITT",
+
		"?13, (SELECT id FROM mtree WHERE content = ?14), NOW(), ?15, ?16)",
+
		"TTTTTTTTTTIIITTT",
	},
	[DEPS_UPDATE] = {
		NULL,
@@ -1645,7 +1645,7 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete, int forced)
	ret = run_prstmt(PKG, pkg->origin, pkg->name, pkg->version,
	    pkg->comment, pkg->desc, pkg->message, arch, pkg->maintainer,
	    pkg->www, pkg->prefix, pkg->flatsize, (int64_t)pkg->automatic,
-
	    (int64_t)pkg->licenselogic, NULL, pkg->digest);
+
	    (int64_t)pkg->licenselogic, NULL, pkg->digest, pkg->dep_formula);
	if (ret != SQLITE_DONE) {
		ERROR_SQLITE(s, SQL(PKG));
		goto cleanup;
modified libpkg/pkgdb_iterator.c
@@ -77,6 +77,7 @@ static struct column_mapping {
	{ "cksum",	PKG_CKSUM, PKG_SQLITE_STRING },
	{ "comment",	PKG_COMMENT, PKG_SQLITE_STRING },
	{ "dbname",	PKG_REPONAME, PKG_SQLITE_STRING },
+
	{ "dep_formula",	PKG_DEP_FORMULA, PKG_SQLITE_STRING },
	{ "desc",	PKG_DESC, PKG_SQLITE_STRING },
	{ "flatsize",	PKG_FLATSIZE, PKG_SQLITE_INT64 },
	{ "id",		PKG_ROWID, PKG_SQLITE_INT64 },
@@ -763,6 +764,9 @@ populate_pkg(sqlite3_stmt *stmt, struct pkg *pkg) {
			case PKG_WWW:
				pkg->www = strdup(sqlite3_column_text(stmt, icol));
				break;
+
			case PKG_DEP_FORMULA:
+
				pkg->dep_formula = strdup(sqlite3_column_text(stmt, icol));
+
				break;
			default:
				pkg_emit_error("Unexpected text value for %s", colname);
				break;
modified libpkg/private/pkg.h
@@ -155,6 +155,7 @@ struct pkg {
	char			*reponame;
	char			*repourl;
	char			*reason;
+
	char			*dep_formula;
	lic_t			 licenselogic;
	int64_t			 pkgsize;
	int64_t			 flatsize;