Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnome-software for openSUSE:Factory 
checked in at 2022-03-20 20:54:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-software (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-software.new.25692 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-software"

Sun Mar 20 20:54:33 2022 rev:89 rq:962637 version:41.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-software/gnome-software.changes    
2022-02-11 23:06:53.366519185 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-software.new.25692/gnome-software.changes 
2022-03-20 20:54:39.486449586 +0100
@@ -1,0 +2,9 @@
+Fri Mar 18 09:56:37 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Update to version 41.5:
+  + Disable scroll-by-mouse-wheel on featured carousel.
+  + Ensure details page shows app provided on command line.
+  + Added several appstream-related fixes.
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  gnome-software-41.4.tar.xz

New:
----
  gnome-software-41.5.tar.xz

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

Other differences:
------------------
++++++ gnome-software.spec ++++++
--- /var/tmp/diff_new_pack.KfwrzO/_old  2022-03-20 20:54:40.242450674 +0100
+++ /var/tmp/diff_new_pack.KfwrzO/_new  2022-03-20 20:54:40.250450685 +0100
@@ -19,7 +19,7 @@
 %define gs_plugin_api 16
 
 Name:           gnome-software
-Version:        41.4
+Version:        41.5
 Release:        0
 Summary:        GNOME Software Store
 License:        GPL-2.0-or-later

++++++ gnome-software-41.4.tar.xz -> gnome-software-41.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/NEWS new/gnome-software-41.5/NEWS
--- old/gnome-software-41.4/NEWS        2022-02-10 16:41:41.335416800 +0100
+++ new/gnome-software-41.5/NEWS        2022-03-18 09:09:27.884578500 +0100
@@ -1,3 +1,15 @@
+Version 41.5
+~~~~~~~~~~~~
+Released: 2022-03-18
+
+This is a stable release with the following changes:
+ * Disable scroll-by-mouse-wheel on featured carousel
+ * Ensure details page shows app provided on command line
+ * Added several appstream-related fixes
+
+This release also updates translation:
+ * Catalan
+
 Version 41.4
 ~~~~~~~~~~~~
 Released: 2022-02-10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-41.4/data/appdata/org.gnome.Software.appdata.xml.in 
new/gnome-software-41.5/data/appdata/org.gnome.Software.appdata.xml.in
--- old/gnome-software-41.4/data/appdata/org.gnome.Software.appdata.xml.in      
2022-02-10 16:41:41.337417000 +0100
+++ new/gnome-software-41.5/data/appdata/org.gnome.Software.appdata.xml.in      
2022-03-18 09:09:27.886578600 +0100
@@ -66,6 +66,20 @@
    Validate with `appstreamcli validate *.appdata.xml`
   -->
   <releases>
+    <release date="2022-03-18" version="41.5" type="stable">
+      <description>
+        <p>This is a stable release with the following changes:</p>
+        <ul>
+          <li>Disable scroll-by-mouse-wheel on featured carousel</li>
+          <li>Ensure details page shows app provided on command line</li>
+          <li>Added several appstream-related fixes</li>
+        </ul>
+        <p>This release also updates translation:</p>
+        <ul>
+          <li>Catalan</li>
+        </ul>
+      </description>
+    </release>
     <release date="2022-02-10" version="41.4" type="stable">
       <description>
         <p>This is a stable release which only updates translations:</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/lib/gs-appstream.c 
new/gnome-software-41.5/lib/gs-appstream.c
--- old/gnome-software-41.4/lib/gs-appstream.c  2022-02-10 16:41:41.346417000 
+0100
+++ new/gnome-software-41.5/lib/gs-appstream.c  2022-03-18 09:09:27.897578500 
+0100
@@ -889,6 +889,16 @@
                }
        }
 
+       /* set id kind */
+       if (gs_app_get_kind (app) == AS_COMPONENT_KIND_UNKNOWN ||
+           gs_app_get_kind (app) == AS_COMPONENT_KIND_GENERIC) {
+               AsComponentKind kind;
+               tmp = xb_node_get_attr (component, "type");
+               kind = as_component_kind_from_string (tmp);
+               if (kind != AS_COMPONENT_KIND_UNKNOWN)
+                       gs_app_set_kind (app, kind);
+       }
+
        /* types we can never launch */
        switch (gs_app_get_kind (app)) {
        case AS_COMPONENT_KIND_ADDON:
@@ -938,7 +948,9 @@
                gs_app_set_id (app, tmp);
 
        /* set source */
-       tmp = xb_node_query_text (component, "../info/filename", NULL);
+       tmp = xb_node_query_text (component, "info/filename", NULL);
+       if (tmp == NULL)
+               tmp = xb_node_query_text (component, "../info/filename", NULL);
        if (tmp != NULL && gs_app_get_metadata_item (app, 
"appstream::source-file") == NULL) {
                gs_app_set_metadata (app, "appstream::source-file", tmp);
        }
@@ -1071,16 +1083,6 @@
                        gs_app_set_developer_name (app, tmp);
        }
 
-       /* set id kind */
-       if (gs_app_get_kind (app) == AS_COMPONENT_KIND_UNKNOWN ||
-           gs_app_get_kind (app) == AS_COMPONENT_KIND_GENERIC) {
-               AsComponentKind kind;
-               tmp = xb_node_get_attr (component, "type");
-               kind = as_component_kind_from_string (tmp);
-               if (kind != AS_COMPONENT_KIND_UNKNOWN)
-                       gs_app_set_kind (app, kind);
-       }
-
        /* set the release date */
        timestamp = component_get_release_timestamp (component);
        if (timestamp != G_MAXUINT64)
@@ -1824,3 +1826,22 @@
                break;
        }
 }
+
+/* Resolve any media URIs which are actually relative
+ * paths against the media_baseurl property */
+void
+gs_appstream_component_fix_url (XbBuilderNode *component, const gchar *baseurl)
+{
+       const gchar *text = xb_builder_node_get_text (component);
+       g_autofree gchar *url = NULL;
+
+       if (text == NULL)
+               return;
+
+       if (g_str_has_prefix (text, "http:") ||
+           g_str_has_prefix (text, "https:"))
+               return;
+
+       url = g_strconcat (baseurl, "/", text, NULL);
+       xb_builder_node_set_text (component, url , -1);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/lib/gs-appstream.h 
new/gnome-software-41.5/lib/gs-appstream.h
--- old/gnome-software-41.4/lib/gs-appstream.h  2022-02-10 16:41:41.347416900 
+0100
+++ new/gnome-software-41.5/lib/gs-appstream.h  2022-03-18 09:09:27.897578500 
+0100
@@ -72,5 +72,7 @@
                                                         const gchar    *str);
 void            gs_appstream_component_add_provide     (XbBuilderNode  
*component,
                                                         const gchar    *str);
+void            gs_appstream_component_fix_url         (XbBuilderNode  
*component,
+                                                        const gchar    
*baseurl);
 
 G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/lib/gs-fedora-third-party.c 
new/gnome-software-41.5/lib/gs-fedora-third-party.c
--- old/gnome-software-41.4/lib/gs-fedora-third-party.c 2022-02-10 
16:41:41.347416900 +0100
+++ new/gnome-software-41.5/lib/gs-fedora-third-party.c 2022-03-18 
09:09:27.899578600 +0100
@@ -465,7 +465,7 @@
                }
                self->last_update = g_get_real_time () / G_USEC_PER_SEC;
        }
-       success = self->repos != NULL && g_hash_table_size (self->repos) != 0;
+       success = self->repos != NULL;
        if (success && out_repos)
                *out_repos = g_hash_table_ref (self->repos);
        g_mutex_unlock (&self->lock);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/meson.build 
new/gnome-software-41.5/meson.build
--- old/gnome-software-41.4/meson.build 2022-02-10 16:41:41.351416800 +0100
+++ new/gnome-software-41.5/meson.build 2022-03-18 09:09:27.903578500 +0100
@@ -1,5 +1,5 @@
 project('gnome-software', 'c',
-  version : '41.4',
+  version : '41.5',
   license : 'GPL-2.0+',
   default_options : ['warning_level=1', 'c_std=c11'],
   meson_version : '>=0.47.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-41.4/plugins/core/gs-plugin-appstream.c 
new/gnome-software-41.5/plugins/core/gs-plugin-appstream.c
--- old/gnome-software-41.4/plugins/core/gs-plugin-appstream.c  2022-02-10 
16:41:41.351416800 +0100
+++ new/gnome-software-41.5/plugins/core/gs-plugin-appstream.c  2022-03-18 
09:09:27.904578400 +0100
@@ -69,6 +69,8 @@
 {
        if (g_strcmp0 (kind, "webapp") == 0)
                return "web-application";
+       if (g_strcmp0 (kind, "desktop") == 0)
+               return "desktop-application";
        return kind;
 }
 
@@ -133,6 +135,60 @@
        return TRUE;
 }
 
+static void
+gs_plugin_appstream_media_baseurl_free (gpointer user_data)
+{
+       g_string_free ((GString *) user_data, TRUE);
+}
+
+static gboolean
+gs_plugin_appstream_media_baseurl_cb (XbBuilderFixup *self,
+                                     XbBuilderNode *bn,
+                                     gpointer user_data,
+                                     GError **error)
+{
+       GString *baseurl = user_data;
+       if (g_strcmp0 (xb_builder_node_get_element (bn), "components") == 0) {
+               const gchar *url = xb_builder_node_get_attr (bn, 
"media_baseurl");
+               if (url == NULL) {
+                       g_string_truncate (baseurl, 0);
+                       return TRUE;
+               }
+               g_string_assign (baseurl, url);
+               return TRUE;
+       }
+
+       if (baseurl->len == 0)
+               return TRUE;
+
+       if (g_strcmp0 (xb_builder_node_get_element (bn), "icon") == 0) {
+               const gchar *type = xb_builder_node_get_attr (bn, "type");
+               if (g_strcmp0 (type, "remote") != 0)
+                       return TRUE;
+               gs_appstream_component_fix_url (bn, baseurl->str);
+       } else if (g_strcmp0 (xb_builder_node_get_element (bn), "screenshots") 
== 0) {
+               GPtrArray *screenshots = xb_builder_node_get_children (bn);
+               for (guint i = 0; i < screenshots->len; i++) {
+                       XbBuilderNode *screenshot = g_ptr_array_index 
(screenshots, i);
+                       GPtrArray *children = NULL;
+                       /* Type-check for security */
+                       if (g_strcmp0 (xb_builder_node_get_element 
(screenshot), "screenshot") != 0) {
+                               continue;
+                       }
+                       children = xb_builder_node_get_children (screenshot);
+                       for (guint j = 0; j < children->len; j++) {
+                               XbBuilderNode *child = g_ptr_array_index 
(children, j);
+                               const gchar *element = 
xb_builder_node_get_element (child);
+                               if (g_strcmp0 (element, "image") != 0 &&
+                                   g_strcmp0 (element, "video") != 0)
+                                       continue;
+                               gs_appstream_component_fix_url (child, 
baseurl->str);
+                       }
+               }
+       }
+       return TRUE;
+}
+
 static gboolean
 gs_plugin_appstream_load_appdata_fn (GsPlugin *plugin,
                                     XbBuilder *builder,
@@ -398,6 +454,8 @@
 #if LIBXMLB_CHECK_VERSION(0,3,1)
        g_autoptr(XbBuilderFixup) fixup4 = NULL;
 #endif
+       g_autoptr(XbBuilderFixup) fixup5 = NULL;
+       GString *media_baseurl = g_string_new (NULL);
        g_autoptr(XbBuilderSource) source = xb_builder_source_new ();
 
        /* add support for DEP-11 files */
@@ -453,6 +511,14 @@
        xb_builder_source_add_fixup (source, fixup4);
 #endif
 
+       /* prepend media_baseurl to remote relative URLs */
+       fixup5 = xb_builder_fixup_new ("MediaBaseUrl",
+                                      gs_plugin_appstream_media_baseurl_cb,
+                                      media_baseurl,
+                                      gs_plugin_appstream_media_baseurl_free);
+       xb_builder_fixup_set_max_depth (fixup5, 3);
+       xb_builder_source_add_fixup (source, fixup5);
+
        /* success */
        xb_builder_import_source (builder, source);
        return TRUE;
@@ -828,10 +894,10 @@
        /* look in AppStream then fall back to AppData */
        if (origin && *origin) {
                xb_string_append_union (xpath, 
"components[@origin='%s']/component/id[text()='%s']/../pkgname/..", origin, id);
-               xb_string_append_union (xpath, 
"components[@origin='%s']/component[@type='webapp']/id[text()='%s']/..", 
origin, id);
+               xb_string_append_union (xpath, 
"components[@origin='%s']/component[@type='web-application']/id[text()='%s']/..",
 origin, id);
        } else {
                xb_string_append_union (xpath, 
"components/component/id[text()='%s']/../pkgname/..", id);
-               xb_string_append_union (xpath, 
"components/component[@type='webapp']/id[text()='%s']/..", id);
+               xb_string_append_union (xpath, 
"components/component[@type='web-application']/id[text()='%s']/..", id);
        }
        xb_string_append_union (xpath, "component/id[text()='%s']/..", id);
        components = xb_silo_query (priv->silo, xpath->str, 0, &error_local);
@@ -886,9 +952,9 @@
                locker = g_rw_lock_reader_locker_new (&priv->silo_lock);
 
                /* prefer actual apps and then fallback to anything else */
-               xb_string_append_union (xpath, 
"components/component[@type='desktop']/pkgname[text()='%s']/..", pkgname);
-               xb_string_append_union (xpath, 
"components/component[@type='console']/pkgname[text()='%s']/..", pkgname);
-               xb_string_append_union (xpath, 
"components/component[@type='webapp']/pkgname[text()='%s']/..", pkgname);
+               xb_string_append_union (xpath, 
"components/component[@type='desktop-application']/pkgname[text()='%s']/..", 
pkgname);
+               xb_string_append_union (xpath, 
"components/component[@type='console-application']/pkgname[text()='%s']/..", 
pkgname);
+               xb_string_append_union (xpath, 
"components/component[@type='web-application']/pkgname[text()='%s']/..", 
pkgname);
                xb_string_append_union (xpath, 
"components/component/pkgname[text()='%s']/..", pkgname);
                component = xb_silo_query_first (priv->silo, xpath->str, 
&error_local);
                if (component == NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/src/gs-details-page.c 
new/gnome-software-41.5/src/gs-details-page.c
--- old/gnome-software-41.4/src/gs-details-page.c       2022-02-10 
16:41:41.420417300 +0100
+++ new/gnome-software-41.5/src/gs-details-page.c       2022-03-18 
09:09:27.983578400 +0100
@@ -1643,6 +1643,7 @@
                gs_shell_set_mode (self->shell, GS_SHELL_MODE_OVERVIEW);
        } else {
                GsApp *app = gs_app_list_index (list, 0);
+               g_set_object (&self->app_local_file, app);
                _set_app (self, app);
                gs_details_page_load_stage2 (self);
        }
@@ -1690,12 +1691,16 @@
 gs_details_page_load_stage1 (GsDetailsPage *self)
 {
        g_autoptr(GsPluginJob) plugin_job = NULL;
+       g_autoptr(GCancellable) cancellable = g_cancellable_new ();
 
        /* update UI */
        gs_page_switch_to (GS_PAGE (self));
        gs_page_scroll_up (GS_PAGE (self));
        gs_details_page_set_state (self, GS_DETAILS_PAGE_STATE_LOADING);
 
+       g_cancellable_cancel (self->cancellable);
+       g_set_object (&self->cancellable, cancellable);
+
        /* get extra details about the app */
        plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_REFINE,
                                         "app", self->app,
@@ -2095,7 +2100,7 @@
        self->shell = shell;
 
        self->plugin_loader = g_object_ref (plugin_loader);
-       self->cancellable = g_object_ref (cancellable);
+       self->cancellable = g_cancellable_new ();
 
        /* hide some UI when offline */
        g_signal_connect_object (self->plugin_loader, 
"notify::network-available",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-41.4/src/gs-featured-carousel.c 
new/gnome-software-41.5/src/gs-featured-carousel.c
--- old/gnome-software-41.4/src/gs-featured-carousel.c  2022-02-10 
16:41:41.421417500 +0100
+++ new/gnome-software-41.5/src/gs-featured-carousel.c  2022-03-18 
09:09:27.985578500 +0100
@@ -192,6 +192,12 @@
        gtk_widget_set_has_window (GTK_WIDGET (self), FALSE);
        gtk_widget_init_template (GTK_WIDGET (self));
 
+#if HDY_CHECK_VERSION(1, 3, 0)
+       /* Disable scrolling through the carousel, as it???s typically used
+        * in category pages which are themselves scrollable. */
+       hdy_carousel_set_allow_scroll_wheel (HDY_CAROUSEL (self->carousel), 
FALSE);
+#endif
+
        /* Ensure the text directions are up to date */
        next_button_direction_changed_cb (GTK_WIDGET (self->next_button_image), 
GTK_TEXT_DIR_NONE, self);
        previous_button_direction_changed_cb (GTK_WIDGET 
(self->previous_button_image), GTK_TEXT_DIR_NONE, self);

Reply via email to