diff options
author | Jonathan Kang <jonathankang@gnome.org> | 2020-10-12 15:18:40 +0800 |
---|---|---|
committer | Jonathan Kang <jonathankang@gnome.org> | 2020-10-13 09:51:49 +0800 |
commit | 81207bd3ac347199e72d227a0cf0e90403dcb568 (patch) | |
tree | 9cfe81a17fe4ef6883ee8c0e8f2af29f0f834770 | |
parent | d5e8c59745bf7c521c6f311e6b22b4b67a8b828f (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.cpp | 21 |
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 ()); |