Hello community,

here is the log from the commit of package PackageKit for openSUSE:12.3 checked 
in at 2013-02-14 21:29:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3/PackageKit (Old)
 and      /work/SRC/openSUSE:12.3/.PackageKit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "PackageKit", Maintainer is "gnome-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:12.3/PackageKit/PackageKit.changes       2013-02-05 
15:37:10.000000000 +0100
+++ /work/SRC/openSUSE:12.3/.PackageKit.new/PackageKit.changes  2013-02-14 
21:29:28.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Feb 11 18:37:26 UTC 2013 - co...@suse.com
+
+- Add one more patch from git (bnc#735864):
+  + 0013-zypp-remap-PK-provides-into-rpm-provides-as-the-zif-.patch
+
+-------------------------------------------------------------------

New:
----
  0013-zypp-remap-PK-provides-into-rpm-provides-as-the-zif-.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ PackageKit.spec ++++++
--- /var/tmp/diff_new_pack.zkWaJd/_old  2013-02-14 21:29:28.000000000 +0100
+++ /var/tmp/diff_new_pack.zkWaJd/_new  2013-02-14 21:29:28.000000000 +0100
@@ -54,6 +54,8 @@
 Patch12:        0011-zypp-Fix-compile-with-__attribute__-gnu_printf.patch
 # PATCH-FIX-UPSTREAM 0012-zypp-less-debug-in-progress-functions.patch 
co...@suse.de -- less debug
 Patch13:        0012-zypp-less-debug-in-progress-functions.patch
+# PATCH-FIX-UPSTREAM 
0013-zypp-remap-PK-provides-into-rpm-provides-as-the-zif-.patch co...@suse.de 
-- search in ppds
+Patch14:        0013-zypp-remap-PK-provides-into-rpm-provides-as-the-zif-.patch
 # To update this package, please git-format-patch the tag of the
 # tarball version (eg: PACKAGEKIT_0_6_19) vs the distro tag (eg: 
openSUSE_Factory)
 # in https://github.com/openSUSE/PackageKit and keep the patches
@@ -285,6 +287,7 @@
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 translation-update-upstream
 
 %build

++++++ 0013-zypp-remap-PK-provides-into-rpm-provides-as-the-zif-.patch ++++++
>From cc89ed2698fd21245d955e722fdd2509f857b355 Mon Sep 17 00:00:00 2001
From: Stephan Kulow <co...@suse.de>
Date: Mon, 11 Feb 2013 19:07:53 +0100
Subject: [PATCH] zypp: remap PK provides into rpm provides as the zif backend
 does

---
 backends/zypp/pk-backend-zypp.cpp | 97 ++++++++++++++++++++++++++++++++++-----
 1 file changed, 85 insertions(+), 12 deletions(-)

diff --git a/backends/zypp/pk-backend-zypp.cpp 
b/backends/zypp/pk-backend-zypp.cpp
index f492a1c..6df4067 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -3314,6 +3314,73 @@ pk_backend_repo_set_data (PkBackend *backend, 
PkBackendJob *job, const gchar *re
        pk_backend_job_thread_create (job, backend_repo_set_data_thread, NULL, 
NULL);
 }
 
+/**
+ * pk_backend_what_provides_decompose: maps enums to provides
+ */
+static gchar **
+pk_backend_what_provides_decompose (PkBackendJob *job,
+                                   PkProvidesEnum provides,
+                                   gchar **values)
+{
+       guint i;
+       guint len;
+       gchar **search = NULL;
+       GPtrArray *array = NULL;
+
+       /* iter on each provide string, and wrap it with the fedora prefix - 
unless different to openSUSE */
+       len = g_strv_length (values);
+       array = g_ptr_array_new_with_free_func (g_free);
+       for (i=0; i<len; i++) {
+               MIL << provides << " " << values[i] << endl;
+               /* compatibility with previous versions of GPK */
+               if (g_str_has_prefix (values[i], "gstreamer0.10(") ||
+                   g_str_has_prefix (values[i], "gstreamer1(")) {
+                       g_ptr_array_add (array, g_strdup (values[i]));
+               } else if (provides == PK_PROVIDES_ENUM_CODEC) {
+                       g_ptr_array_add (array, g_strdup_printf 
("gstreamer0.10(%s)", values[i]));
+                       g_ptr_array_add (array, g_strdup_printf 
("gstreamer1(%s)", values[i]));
+               } else if (provides == PK_PROVIDES_ENUM_FONT) {
+                       g_ptr_array_add (array, g_strdup_printf ("font(%s)", 
values[i]));
+               } else if (provides == PK_PROVIDES_ENUM_MIMETYPE) {
+                       g_ptr_array_add (array, g_strdup_printf 
("mimehandler(%s)", values[i]));
+               } else if (provides == PK_PROVIDES_ENUM_POSTSCRIPT_DRIVER) {
+                       g_ptr_array_add (array, g_strdup_printf 
("postscriptdriver(%s)", values[i]));
+               } else if (provides == PK_PROVIDES_ENUM_PLASMA_SERVICE) {
+                       /* We need to allow the Plasma version to be specified. 
*/
+                       if (g_str_has_prefix (values[i], "plasma")) {
+                               g_ptr_array_add (array, g_strdup (values[i]));
+                       } else {
+                               /* For compatibility, we default to plasma4. */
+                               g_ptr_array_add (array, g_strdup_printf 
("plasma4(%s)", values[i]));
+                       }
+               } else if (provides == PK_PROVIDES_ENUM_ANY) {
+                       /* We need to allow the Plasma version to be specified. 
*/
+                       if (g_str_has_prefix (values[i], "plasma")) {
+                               g_ptr_array_add (array, g_strdup (values[i]));
+                       } else {
+                               g_ptr_array_add (array, g_strdup_printf 
("gstreamer0.10(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("gstreamer1(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("font(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("mimehandler(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("postscriptdriver(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("plasma4(%s)", values[i]));
+                               g_ptr_array_add (array, g_strdup_printf 
("plasma5(%s)", values[i]));
+                       }
+               } else {
+                       pk_backend_job_error_code (job,
+                                                  
PK_ERROR_ENUM_PROVIDE_TYPE_NOT_SUPPORTED,
+                                                 "provide type %s not 
supported",
+                                                 pk_provides_enum_to_string 
(provides));
+                       goto out;
+               }
+       }
+       search = pk_ptr_array_to_strv (array);
+       for (i = 0; search[i] != NULL; i++)
+               g_debug ("Querying provide '%s'", search[i]);
+out:
+       return search;
+}
+
 static void
 backend_what_provides_thread (PkBackendJob *job, GVariant *params, gpointer 
user_data)
 {
@@ -3336,10 +3403,9 @@ backend_what_provides_thread (PkBackendJob *job, 
GVariant *params, gpointer user
        }
        pk_backend_job_set_status (job, PK_STATUS_ENUM_QUERY);
 
-       const gchar *search = values[0]; //Fixme - support possible multi1ple 
search values (logical OR)
        ResPool pool = zypp_build_pool (zypp, true);
 
-       if((provides == PK_PROVIDES_ENUM_HARDWARE_DRIVER) || 
g_ascii_strcasecmp("drivers_for_attached_hardware", search) == 0) {
+       if((provides == PK_PROVIDES_ENUM_HARDWARE_DRIVER) || 
g_ascii_strcasecmp("drivers_for_attached_hardware", values[0]) == 0) {
                // solver run
                Resolver solver(pool);
                solver.setIgnoreAlreadyRecommended (TRUE);
@@ -3375,18 +3441,25 @@ backend_what_provides_thread (PkBackendJob *job, 
GVariant *params, gpointer user
                }
                solver.setIgnoreAlreadyRecommended (FALSE);
        } else {
-               Capability cap (search);
-               sat::WhatProvides prov (cap);
-
-               for (sat::WhatProvides::const_iterator it = prov.begin (); it 
!= prov.end (); ++it) {
-                       if (zypp_filter_solvable (_filters, *it))
-                               continue;
-
-                       PkInfoEnum info = it->isSystem () ? 
PK_INFO_ENUM_INSTALLED : PK_INFO_ENUM_AVAILABLE;
-                       zypp_backend_package (job, info, *it,  
make<ResObject>(*it)->summary().c_str ());
+               gchar **search = pk_backend_what_provides_decompose (job,
+                                                                    provides,
+                                                                    values);
+               
+               guint len = g_strv_length (search);
+               for (guint i=0; i<len; i++) {
+                       MIL << search[i] << endl;
+                       Capability cap (search[i]);
+                       sat::WhatProvides prov (cap);
+                       
+                       for (sat::WhatProvides::const_iterator it = prov.begin 
(); it != prov.end (); ++it) {
+                               if (zypp_filter_solvable (_filters, *it))
+                                       continue;
+                               
+                               PkInfoEnum info = it->isSystem () ? 
PK_INFO_ENUM_INSTALLED : PK_INFO_ENUM_AVAILABLE;
+                               zypp_backend_package (job, info, *it,  
make<ResObject>(*it)->summary().c_str ());
+                       }
                }
        }
-
        pk_backend_job_finished (job);
 }
 
-- 
1.8.1.1


-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to