]> git.ipfire.org Git - people/stevee/pakfire.git/commitdiff
pakfire: Automatically refresh repositories when initializing
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 18 Jun 2021 16:01:28 +0000 (16:01 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 18 Jun 2021 16:01:28 +0000 (16:01 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
contrib/config/distros/ipfire3.conf
src/libpakfire/repo.c
src/pakfire/base.py

index d37898cbb2f93bfc4e7dd438425aef7f57464913..cc2e6a914250091faf9386877f0e9aecb9232374 100644 (file)
@@ -35,7 +35,7 @@ baseurl               = https://pakfire.ipfire.org/repositories/ipfire3/unstable/%{arch}
 mirrors                = https://pakfire.ipfire.org/distro/ipfire3/repo/unstable/mirrorlist?arch=%{arch}
 priority       = 300
 
-[repo:local]
+[repo:@local]
 description    = IPFire 3 locally built packages
 baseurl                = file:///var/lib/pakfire/local/ipfire3
 priority       = 1000
index ba7121de6d867e9f0a63efd8b0a6ef6be396f8e7..f9176cbb40041fb091fe95cda2765131e9dc0233 100644 (file)
@@ -217,9 +217,12 @@ static int pakfire_repo_download_database(PakfireRepo repo, const char* database
        return pakfire_repo_retrieve(repo, title, database_url, cache_path, 0);
 }
 
-static int pakfire_repo_read_metadata(PakfireRepo repo, const char* path, int refresh) {
+static int pakfire_repo_read_metadata(PakfireRepo repo, const char* path) {
        int r;
 
+       // Do not refresh when offline
+       const int refresh = !pakfire_has_flag(repo->pakfire, PAKFIRE_FLAGS_OFFLINE);
+
        struct json_object* json = pakfire_json_parse_from_file(repo->pakfire, path);
        if (!json) {
                // Ignore metadata not existing when not on refresh mode
@@ -319,7 +322,7 @@ static int pakfire_repo_refresh_metadata(PakfireRepo repo, const int force) {
                return r;
 
        // Parse metadata
-       r = pakfire_repo_read_metadata(repo, repo->appdata->metadata, 1);
+       r = pakfire_repo_read_metadata(repo, repo->appdata->metadata);
        if (r) {
                unlink(repo->appdata->metadata);
                return r;
@@ -424,7 +427,7 @@ PAKFIRE_EXPORT PakfireRepo pakfire_repo_create(Pakfire pakfire, const char* name
                goto ERROR;
 
        // Try loading metadata
-       r = pakfire_repo_read_metadata(repo, repo->appdata->metadata, 0);
+       r = pakfire_repo_read_metadata(repo, repo->appdata->metadata);
        if (r) {
                ERROR(repo->pakfire, "Could not initialize repository metadata: %s\n",
                        strerror(errno));
index 8f5b8665e8aff3a5b924b959372456ba30df58b9..9bf7fd0fae11516fd4290b141b1bc78ec3b92d60 100644 (file)
@@ -40,18 +40,11 @@ class Pakfire(_pakfire.Pakfire):
                        Called to initialize this Pakfire instance when
                        the context is entered.
                """
-               # Refresh repositories
-               self.refresh_repositories()
-
                return PakfireContext(self)
 
        def __exit__(self, type, value, traceback):
                pass
 
-       def refresh_repositories(self, force=False):
-               for repo in self.repos:
-                       repo.refresh(force=force)
-
        def clean(self):
                # Clean up repository caches
                for repo in self.repos: