pakfire_package_set_vendor(self->package, vendor);
}
+static PyObject* Package_get_distribution(PackageObject* self) {
+ const char* distribution = pakfire_package_get_distribution(self->package);
+ if (!distribution)
+ Py_RETURN_NONE;
+
+ return PyUnicode_FromString(distribution);
+}
+
+static void Package_set_distribution(PackageObject* self, PyObject* value) {
+ const char* distribution = PyUnicode_AsUTF8(value);
+
+ pakfire_package_set_distribution(self->package, distribution);
+}
+
static PyObject* Package_get_maintainer(PackageObject* self) {
const char* maintainer = pakfire_package_get_maintainer(self->package);
if (!maintainer)
NULL,
NULL
},
+ {
+ "distribution",
+ (getter)Package_get_distribution,
+ (setter)Package_set_distribution,
+ NULL,
+ NULL
+ },
{
"maintainer",
(getter)Package_get_maintainer,
if (vendor)
pakfire_package_set_vendor(pkg, vendor);
+ // Distribution
+ const char* distribution = pakfire_archive_metadata_get(archive, "distribution", NULL);
+ if (distribution)
+ pakfire_package_set_distribution(pkg, distribution);
+
// UUID
const char* uuid = pakfire_archive_metadata_get(archive, "uuid", NULL);
if (uuid)
goto ERROR;
}
+ // Set distribution
+ const char* distribution = pakfire_parser_get(makefile, NULL, "DISTRO_NAME");
+ if (distribution)
+ pakfire_package_set_distribution(pkg, distribution);
+
// Set build ID
pakfire_package_set_build_id_from_uuid(pkg, build_id);
"repository TEXT, "
"source_name TEXT, "
"source_evr TEXT, "
- "source_arch TEXT"
+ "source_arch TEXT, "
+ "distribution TEXT"
")");
if (r)
return 1;
"userinstalled, "
"source_name, "
"source_evr, "
- "source_arch"
+ "source_arch, "
+ "distribution"
") VALUES("
"?, "
"?, "
"?, "
"?, "
"?, "
+ "?, "
"?"
")";
goto ERROR;
}
+ // Distribution
+ const char* distribution = pakfire_package_get_distribution(pkg);
+ if (distribution) {
+ r = sqlite3_bind_text(stmt, 21, distribution, -1, NULL);
+ if (r)
+ goto ERROR;
+ } else {
+ r = sqlite3_bind_null(stmt, 21);
+ if (r)
+ goto ERROR;
+ }
+
// Run query
do {
r = sqlite3_step(stmt);
if (source_arch)
pakfire_package_set_source_arch(pkg, source_arch);
+ // Distribution
+ const char* distribution = (const char*)sqlite3_column_text(stmt, 31);
+ if (distribution)
+ pakfire_package_set_distribution(pkg, distribution);
+
// Success
r = 0;
") AS enhances, "
"source_name, "
"source_evr, "
- "source_arch "
+ "source_arch, "
+ "distribution "
"FROM "
"packages"
";";
void pakfire_package_set_groups(struct pakfire_package* pkg, const char* groups);
const char* pakfire_package_get_vendor(struct pakfire_package* pkg);
void pakfire_package_set_vendor(struct pakfire_package* pkg, const char* vendor);
+const char* pakfire_package_get_distribution(struct pakfire_package* pkg);
+void pakfire_package_set_distribution(struct pakfire_package* pkg, const char* distribution);
const char* pakfire_package_get_maintainer(struct pakfire_package* pkg);
void pakfire_package_set_maintainer(struct pakfire_package* pkg, const char* maintainer);
const char* pakfire_package_get_filename(struct pakfire_package* pkg);
pakfire_package_get_conflicts;
pakfire_package_get_description;
pakfire_package_get_digest;
+ pakfire_package_get_distribution;
pakfire_package_get_downloadsize;
pakfire_package_get_enhances;
pakfire_package_get_evr;
pakfire_package_set_build_time;
pakfire_package_set_checksum;
pakfire_package_set_description;
+ pakfire_package_set_distribution;
pakfire_package_set_downloadsize;
pakfire_package_set_evr;
pakfire_package_set_filelist;
pakfire_package_set_string(pkg, SOLVABLE_VENDOR, vendor);
}
+PAKFIRE_EXPORT const char* pakfire_package_get_distribution(struct pakfire_package* pkg) {
+ return pakfire_package_get_string(pkg, SOLVABLE_DISTRIBUTION);
+}
+
+PAKFIRE_EXPORT void pakfire_package_set_distribution(struct pakfire_package* pkg, const char* distribution) {
+ pakfire_package_set_string(pkg, SOLVABLE_DISTRIBUTION, distribution);
+}
+
PAKFIRE_EXPORT const char* pakfire_package_get_maintainer(struct pakfire_package* pkg) {
return pakfire_package_get_string(pkg, SOLVABLE_PACKAGER);
}
goto ERROR;
}
+ // Distribution
+ const char* distribution = pakfire_package_get_distribution(pkg);
+ if (distribution) {
+ r = pakfire_json_add_string(pkg->pakfire, md, "distribution", distribution);
+ if (r)
+ goto ERROR;
+ }
+
// UUID
const char* uuid = pakfire_package_get_uuid(pkg);
if (uuid) {