From: Michael Tremer Date: Thu, 29 Apr 2021 11:08:49 +0000 (+0000) Subject: pakfire: Always create a dummy repository X-Git-Tag: 0.9.28~1285^2~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bb8c1f9986a18ff2ee5f4c10d993a4ddbd86994;p=pakfire.git pakfire: Always create a dummy repository Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/archive.c b/src/_pakfire/archive.c index 3c6bdc0d1..c10d4117d 100644 --- a/src/_pakfire/archive.c +++ b/src/_pakfire/archive.c @@ -146,7 +146,7 @@ static PyObject* Archive_extract(ArchiveObject* self, PyObject* args) { static PyObject* Archive_get_package(ArchiveObject* self) { Pakfire pakfire = pakfire_archive_get_pakfire(self->archive); - PakfireRepo repo = pakfire_repo_create(pakfire, "@dummy"); + PakfireRepo repo = pakfire_get_repo(pakfire, "@dummy"); if (!repo) return NULL; diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index b242b0a82..0bdc45df2 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -757,7 +757,9 @@ ERROR: PAKFIRE_EXPORT char* pakfire_archive_extraction_path(PakfireArchive archive, const char* target) { char prefix[PATH_MAX]; - PakfireRepo repo = pakfire_repo_create(archive->pakfire, "@dummy"); + PakfireRepo repo = pakfire_get_repo(archive->pakfire, "@dummy"); + if (!repo) + return NULL; // Read package metadata PakfirePackage pkg = pakfire_archive_make_package(archive, repo); diff --git a/src/libpakfire/dist.c b/src/libpakfire/dist.c index 94058d22b..595ffe12b 100644 --- a/src/libpakfire/dist.c +++ b/src/libpakfire/dist.c @@ -307,7 +307,7 @@ PAKFIRE_EXPORT int pakfire_dist(Pakfire pakfire, const char* path, const char* t return r; } - PakfireRepo repo = pakfire_repo_create(pakfire, "@dummy"); + PakfireRepo repo = pakfire_get_repo(pakfire, "@dummy"); if (!repo) goto ERROR; diff --git a/src/libpakfire/pakfire.c b/src/libpakfire/pakfire.c index f8e5931dd..5427f787a 100644 --- a/src/libpakfire/pakfire.c +++ b/src/libpakfire/pakfire.c @@ -331,6 +331,7 @@ static void pool_log(Pool* pool, void* data, int type, const char* s) { static int pakfire_populate_pool(Pakfire pakfire) { struct pakfire_db* db; PakfireRepo repo = NULL; + PakfireRepo dummy = NULL; int r; // Initialize the pool @@ -356,6 +357,14 @@ static int pakfire_populate_pool(Pakfire pakfire) { if (r) goto ERROR; + // Create a dummy repository + dummy = pakfire_repo_create(pakfire, "@dummy"); + if (!dummy) + goto ERROR; + + // Disable the repository + pakfire_repo_set_enabled(dummy, 0); + // Create the system repository repo = pakfire_repo_create(pakfire, "@system"); if (!repo) @@ -370,12 +379,12 @@ static int pakfire_populate_pool(Pakfire pakfire) { goto ERROR; ERROR: - // Cleanup if (db) pakfire_db_unref(db); - if (repo) pakfire_repo_unref(repo); + if (dummy) + pakfire_repo_unref(dummy); return r; } @@ -1013,6 +1022,10 @@ PAKFIRE_EXPORT struct pakfire_repolist* pakfire_get_repos(Pakfire pakfire) { int i; FOR_REPOS(i, solv_repo) { + // Skip the dummy repository + if (strcmp(solv_repo->name, "@dummy") == 0) + continue; + PakfireRepo repo = pakfire_repo_create_from_repo(pakfire, solv_repo); if (!repo) { r = 1; diff --git a/tests/libpakfire/db.c b/tests/libpakfire/db.c index d196d7c59..929f58017 100644 --- a/tests/libpakfire/db.c +++ b/tests/libpakfire/db.c @@ -65,7 +65,7 @@ static int test_check(const struct test* t) { static int test_add_package(const struct test* t) { struct pakfire_db* db; - PakfireRepo repo = pakfire_repo_create(t->pakfire, "@dummy"); + PakfireRepo repo = pakfire_get_repo(t->pakfire, "@dummy"); ASSERT(repo); int r = pakfire_db_open(&db, t->pakfire, PAKFIRE_DB_READWRITE);