From: Michael Tremer Date: Fri, 18 Jun 2021 16:01:28 +0000 (+0000) Subject: pakfire: Automatically refresh repositories when initializing X-Git-Tag: 0.9.28~1235 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb12e94b65afb958698b9e4bffb1997286ad4406;p=pakfire.git pakfire: Automatically refresh repositories when initializing Signed-off-by: Michael Tremer --- diff --git a/contrib/config/distros/ipfire3.conf b/contrib/config/distros/ipfire3.conf index d37898cbb..cc2e6a914 100644 --- a/contrib/config/distros/ipfire3.conf +++ b/contrib/config/distros/ipfire3.conf @@ -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 diff --git a/src/libpakfire/repo.c b/src/libpakfire/repo.c index ba7121de6..f9176cbb4 100644 --- a/src/libpakfire/repo.c +++ b/src/libpakfire/repo.c @@ -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)); diff --git a/src/pakfire/base.py b/src/pakfire/base.py index 8f5b8665e..9bf7fd0fa 100644 --- a/src/pakfire/base.py +++ b/src/pakfire/base.py @@ -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: