Hello community, here is the log from the commit of package PackageKit for openSUSE:Factory checked in at 2019-06-27 15:53:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/PackageKit (Old) and /work/SRC/openSUSE:Factory/.PackageKit.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "PackageKit" Thu Jun 27 15:53:05 2019 rev:188 rq:710955 version:1.1.12 Changes: -------- --- /work/SRC/openSUSE:Factory/PackageKit/PackageKit.changes 2019-05-10 09:15:28.700007995 +0200 +++ /work/SRC/openSUSE:Factory/.PackageKit.new.4615/PackageKit.changes 2019-06-27 15:53:07.371911583 +0200 @@ -1,0 +2,6 @@ +Wed Jun 19 08:17:22 UTC 2019 - Jonathan Kang <sck...@suse.com> + +- Add PackageKit-zypp-fix-newest-filter.patch: zypp: Emit installed + package for newest filter (bsc#1125434, gh#hughsie/PackageKit#329). + +------------------------------------------------------------------- New: ---- PackageKit-zypp-fix-newest-filter.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ PackageKit.spec ++++++ --- /var/tmp/diff_new_pack.AvSxvA/_old 2019-06-27 15:53:08.787913851 +0200 +++ /var/tmp/diff_new_pack.AvSxvA/_new 2019-06-27 15:53:08.791913858 +0200 @@ -51,6 +51,8 @@ # PATCH-FIX-OPENSUSE PackageKit-remove-polkit-rules.patch bsc#1125434 sck...@suse.com -- Remove polkit rules file Patch5: PackageKit-remove-polkit-rules.patch Patch6: zypp-perform-actions-disallowed-by-update-in-upgrade-mode.patch +# PATCH-FIX-UPSTREAM PackageKit-zypp-fix-newest-filter.patch bsc#1137019 gh#hughsie/PackageKit#329 sck...@suse.com -- zypp: Emit installed package for newest filter +Patch7: PackageKit-zypp-fix-newest-filter.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gobject-introspection-devel @@ -241,6 +243,7 @@ %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 translation-update-upstream %build ++++++ PackageKit-zypp-fix-newest-filter.patch ++++++ >From 1c497c904959978229899ead80e7e94be73a6e15 Mon Sep 17 00:00:00 2001 From: Jonathan Kang <jonathank...@gnome.org> Date: Wed, 19 Jun 2019 16:07:31 +0800 Subject: [PATCH] zypp: Emit installed package for newest filter Previously, zypp backend only emit newest package in backend_resolve_thread(). The newest filter processes installed and available package lists separately, so the installed package should be emitted as well. https://bugzilla.suse.com/show_bug.cgi?id=1137019 --- backends/zypp/pk-backend-zypp.cpp | 32 +++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp index 13a5c5db1..a8d50593b 100644 --- a/backends/zypp/pk-backend-zypp.cpp +++ b/backends/zypp/pk-backend-zypp.cpp @@ -2895,6 +2895,7 @@ backend_resolve_thread (PkBackendJob *job, GVariant *params, gpointer user_data) zypp_get_packages_by_name (search[i], ResKind::pattern, v2); v.insert (v.end (), v2.begin (), v2.end ()); + sat::Solvable installed; sat::Solvable newest; vector<sat::Solvable> pkgs; @@ -2906,7 +2907,11 @@ backend_resolve_thread (PkBackendJob *job, GVariant *params, gpointer user_data) if (zypp_filter_solvable (_filters, *it) || zypp_is_no_solvable(*it)) continue; - + + if (it->isSystem ()) { + installed = *it; + } + if (zypp_is_no_solvable(newest)) { newest = *it; } else if (it->edition() > newest.edition() || Arch::compare(it->arch(), newest.arch()) > 0) { @@ -2915,19 +2920,26 @@ backend_resolve_thread (PkBackendJob *job, GVariant *params, gpointer user_data) MIL << "emit " << *it << endl; pkgs.push_back (*it); } - - if (!zypp_is_no_solvable(newest)) { - - /* 'newest' filter support */ - if (pk_bitfield_contain (_filters, PK_FILTER_ENUM_NEWEST)) { - pkgs.clear(); - MIL << "emit just newest " << newest << endl; + + /* The newest filter processes installed and available package + * lists separately. */ + if (pk_bitfield_contain (_filters, PK_FILTER_ENUM_NEWEST)) { + pkgs.clear (); + + if (!zypp_is_no_solvable (installed)) { + MIL << "emit installed " << installed << endl; + pkgs.push_back (installed); + } + if (!zypp_is_no_solvable (newest)) { + MIL << "emit newest " << newest << endl; pkgs.push_back (newest); - } else if (pk_bitfield_contain (_filters, PK_FILTER_ENUM_NOT_NEWEST)) { + } + } else if (pk_bitfield_contain (_filters, PK_FILTER_ENUM_NOT_NEWEST)) { + if (!zypp_is_no_solvable (newest) && newest != installed) { pkgs.erase (find (pkgs.begin (), pkgs.end(), newest)); } } - + zypp_emit_filtered_packages_in_list (job, _filters, pkgs); } } -- 2.21.0