// Files
const char* files = (const char*)sqlite3_column_text(stmt, 17);
if (files) {
- DEBUG(db->pakfire, "FILES = %s\n", files);
r = pakfire_package_set_filelist_from_string(pkg, files);
if (r)
goto ERROR;
}
+ // Dependencies
+
+ const struct dependency {
+ unsigned int field;
+ void (*func)(PakfirePackage pkg, PakfireRelationList list);
+ } dependencies[] = {
+ { 18, pakfire_package_set_provides },
+ { 19, pakfire_package_set_prerequires },
+ { 20, pakfire_package_set_requires },
+ { 21, pakfire_package_set_conflicts },
+ { 22, pakfire_package_set_obsoletes },
+ { 23, pakfire_package_set_recommends },
+ { 24, pakfire_package_set_suggests },
+ { 0, NULL },
+ };
+
+ for (const struct dependency* deps = dependencies; deps->field; deps++) {
+ const char* relations = (const char*)sqlite3_column_text(stmt, deps->field);
+ if (relations) {
+ PakfireRelationList list;
+
+ r = pakfire_relationlist_create_from_string(&list, db->pakfire, relations);
+ if (r)
+ goto ERROR;
+
+ deps->func(pkg, list);
+ pakfire_relationlist_unref(list);
+ }
+ }
+
// Success
r = 0;
"hash1, license, summary, description, uuid, vendor, build_host, build_time, "
"("
"SELECT group_concat(name, '\n') FROM files WHERE files.pkg = packages.id"
- ") AS files "
+ ") AS files, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'provides'"
+ ") AS provides, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'prerequires'"
+ ") AS prerequires, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'requires'"
+ ") AS requires, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'conflicts'"
+ ") AS conflicts, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'obsoletes'"
+ ") AS obsoletes, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'recommends'"
+ ") AS recommends, "
+ "("
+ "SELECT group_concat(dependency, '\n') FROM dependencies d "
+ "WHERE d.pkg = packages.id AND d.type = 'suggests'"
+ ") AS suggests "
"FROM "
"packages"
";";