summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Kang <jonathankang@gnome.org>2020-10-12 15:18:40 +0800
committerJonathan Kang <jonathankang@gnome.org>2020-10-13 09:51:49 +0800
commit81207bd3ac347199e72d227a0cf0e90403dcb568 (patch)
tree9cfe81a17fe4ef6883ee8c0e8f2af29f0f834770
parentd5e8c59745bf7c521c6f311e6b22b4b67a8b828f (diff)
zypp: Don’t refresh repos again when actually updating packages
https://bugzilla.suse.com/show_bug.cgi?id=1173562
-rw-r--r--backends/zypp/pk-backend-zypp.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index d936a2b43..9404abb1a 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -3423,16 +3423,19 @@ upgrade_system (PkBackendJob *job,
{
set<PoolItem> candidates;
- /* refresh the repos before checking for updates. */
- if (!zypp_refresh_cache (job, zypp, FALSE)) {
- return;
- }
- zypp_get_updates (job, zypp, candidates);
- if (candidates.empty ()) {
- pk_backend_job_error_code (job, PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,
- "No Distribution Upgrade Available.");
+ /* Only refresh repos when it's simulating. */
+ if (pk_bitfield_contain (transaction_flags, PK_TRANSACTION_FLAG_ENUM_SIMULATE)) {
+ /* refresh the repos before checking for updates. */
+ if (!zypp_refresh_cache (job, zypp, FALSE)) {
+ return;
+ }
+ zypp_get_updates (job, zypp, candidates);
+ if (candidates.empty ()) {
+ pk_backend_job_error_code (job, PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,
+ "No Distribution Upgrade Available.");
- return;
+ return;
+ }
}
zypp->resolver ()->dupSetAllowVendorChange (ZConfig::instance ().solver_dupAllowVendorChange ());