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



Reply via email to