#include <stdlib.h>
#include <time.h>
+#include <solv/solver.h>
#include <sqlite3.h>
#include <pakfire/archive.h>
return packages;
}
+static void pakfire_db_add_userinstalled(Pakfire pakfire, const char* name) {
+ Pool* pool = pakfire_get_solv_pool(pakfire);
+
+ // Convert name to ID
+ Id id = pool_str2id(pool, name, 1);
+
+ // Append it to pooljobs
+ queue_push2(&pool->pooljobs, SOLVER_USERINSTALLED|SOLVER_SOLVABLE_NAME, id);
+}
+
static int pakfire_db_add_dependencies(struct pakfire_db* db, unsigned long id, PakfirePackage pkg) {
sqlite3_stmt* stmt = NULL;
int r = 1;
pakfire_package_set_install_time(pkg, install_time);
}
+ // installed by user?
+ int userinstalled = sqlite3_column_int(stmt, 16);
+ if (userinstalled)
+ pakfire_db_add_userinstalled(db->pakfire, name);
+
// Files
- const char* files = (const char*)sqlite3_column_text(stmt, 16);
+ const char* files = (const char*)sqlite3_column_text(stmt, 17);
if (files) {
r = pakfire_package_set_filelist_from_string(pkg, files);
if (r)
unsigned int field;
void (*func)(PakfirePackage pkg, const char* dep);
} dependencies[] = {
- { 17, pakfire_package_add_provides },
- { 18, pakfire_package_add_prerequires },
- { 10, pakfire_package_add_requires },
- { 20, pakfire_package_add_conflicts },
- { 21, pakfire_package_add_obsoletes },
- { 22, pakfire_package_add_recommends },
- { 23, pakfire_package_add_suggests },
- { 24, pakfire_package_add_supplements },
- { 25, pakfire_package_add_enhances },
+ { 18, pakfire_package_add_provides },
+ { 19, pakfire_package_add_prerequires },
+ { 20, pakfire_package_add_requires },
+ { 21, pakfire_package_add_conflicts },
+ { 22, pakfire_package_add_obsoletes },
+ { 23, pakfire_package_add_recommends },
+ { 24, pakfire_package_add_suggests },
+ { 25, pakfire_package_add_supplements },
+ { 26, pakfire_package_add_enhances },
{ 0, NULL },
};
"SELECT "
"name, evr, arch, groups, filename, size, inst_size, hash1, license, summary, "
"description, uuid, vendor, build_host, build_time, "
- "strftime('%s', installed) AS installed, "
+ "strftime('%s', installed) AS installed, userinstalled, "
"("
"SELECT group_concat(path, '\n') FROM files WHERE files.pkg = packages.id"
") AS files, "