Hello community,
here is the log from the commit of package gnome-software for openSUSE:Factory checked in at 2016-12-07 11:11:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-software (Old)
and /work/SRC/openSUSE:Factory/.gnome-software.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-software"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-software/gnome-software.changes 2016-11-10 13:11:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-software.new/gnome-software.changes 2016-12-07 11:11:45.000000000 +0100
@@ -1,0 +2,17 @@
+Thu Dec 1 16:18:05 UTC 2016 - zaitor@opensuse.org
+
+- Update to version 3.22.3:
+ + Misc. fixes to the search results page.
+ + Misc. flatpak bug and crasher fixes.
+ + Correctly raise the codec search window under the Wayland
+ session.
+ + Improve spinner state handling on the updates page.
+ + Make it possible to upgrade two Fedora versions at a time.
+ + Fix a memory leak with every search request.
+ + Don't show screenshot placeholder for add-ons that can't have
+ screenshots.
+ + Show an error if the screenshot download fails.
+ + Get the screenshot metadata from the GNOME Shell Extension JSON
+ data.
+
+-------------------------------------------------------------------
Old:
----
gnome-software-3.22.2.tar.xz
New:
----
gnome-software-3.22.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-software.spec ++++++
--- /var/tmp/diff_new_pack.5TiR4k/_old 2016-12-07 11:11:46.000000000 +0100
+++ /var/tmp/diff_new_pack.5TiR4k/_new 2016-12-07 11:11:46.000000000 +0100
@@ -17,7 +17,7 @@
Name: gnome-software
-Version: 3.22.2
+Version: 3.22.3
Release: 0
%define gs_plugin_api 11
Summary: GNOME Software Store
++++++ gnome-software-3.22.2.tar.xz -> gnome-software-3.22.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/NEWS new/gnome-software-3.22.3/NEWS
--- old/gnome-software-3.22.2/NEWS 2016-11-07 20:45:14.000000000 +0100
+++ new/gnome-software-3.22.3/NEWS 2016-12-01 16:53:35.000000000 +0100
@@ -1,3 +1,18 @@
+Version 3.22.3
+~~~~~~~~~~~~~~
+Released: 2016-12-01
+
+This stable release fixes the following bugs:
+ * Misc. fixes to the search results page
+ * Misc. flatpak bug and crasher fixes
+ * Correctly raise the codec search window under the Wayland session
+ * Improve spinner state handling on the updates page
+ * Make it possible to upgrade two Fedora versions at a time
+ * Fix a memory leak with every search request
+ * Don't show screenshot placeholder for add-ons that can't have screenshots
+ * Show an error if the screenshot download fails
+ * Get the screenshot metadata from the GNOME Shell Extension JSON data
+
Version 3.22.2
~~~~~~~~~~~~~~
Released: 2016-11-07
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/config.h new/gnome-software-3.22.3/config.h
--- old/gnome-software-3.22.2/config.h 2016-11-07 20:44:18.000000000 +0100
+++ new/gnome-software-3.22.3/config.h 2016-12-01 16:52:14.000000000 +0100
@@ -110,7 +110,7 @@
#define PACKAGE_NAME "gnome-software"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gnome-software 3.22.2"
+#define PACKAGE_STRING "gnome-software 3.22.3"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gnome-software"
@@ -119,10 +119,10 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.22.2"
+#define PACKAGE_VERSION "3.22.3"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "3.22.2"
+#define VERSION "3.22.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/configure new/gnome-software-3.22.3/configure
--- old/gnome-software-3.22.2/configure 2016-11-07 20:44:13.000000000 +0100
+++ new/gnome-software-3.22.3/configure 2016-12-01 16:52:08.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gnome-software 3.22.2.
+# Generated by GNU Autoconf 2.69 for gnome-software 3.22.3.
#
# Report bugs to http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-software.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='gnome-software'
PACKAGE_TARNAME='gnome-software'
-PACKAGE_VERSION='3.22.2'
-PACKAGE_STRING='gnome-software 3.22.2'
+PACKAGE_VERSION='3.22.3'
+PACKAGE_STRING='gnome-software 3.22.3'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-software'
PACKAGE_URL=''
@@ -1556,7 +1556,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gnome-software 3.22.2 to adapt to many kinds of systems.
+\`configure' configures gnome-software 3.22.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1626,7 +1626,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gnome-software 3.22.2:";;
+ short | recursive ) echo "Configuration of gnome-software 3.22.3:";;
esac
cat <<\_ACEOF
@@ -1844,7 +1844,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gnome-software configure 3.22.2
+gnome-software configure 3.22.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2213,7 +2213,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gnome-software $as_me 3.22.2, which was
+It was created by gnome-software $as_me 3.22.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3077,7 +3077,7 @@
# Define the identity of the package.
PACKAGE='gnome-software'
- VERSION='3.22.2'
+ VERSION='3.22.3'
cat >>confdefs.h <<_ACEOF
@@ -18021,7 +18021,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gnome-software $as_me 3.22.2, which was
+This file was extended by gnome-software $as_me 3.22.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18087,7 +18087,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gnome-software config.status 3.22.2
+gnome-software config.status 3.22.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/configure.ac new/gnome-software-3.22.3/configure.ac
--- old/gnome-software-3.22.2/configure.ac 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/configure.ac 2016-12-01 14:52:56.000000000 +0100
@@ -1,7 +1,7 @@
# Copyright (C) 2010-2015 Richard Hughes
AC_PREREQ(2.63)
-AC_INIT([gnome-software],[3.22.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-software])
+AC_INIT([gnome-software],[3.22.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-software])
AC_CONFIG_SRCDIR(src)
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar serial-tests foreign])
AC_CONFIG_HEADERS([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/data/appdata/org.gnome.Software.appdata.xml.in new/gnome-software-3.22.3/data/appdata/org.gnome.Software.appdata.xml.in
--- old/gnome-software-3.22.2/data/appdata/org.gnome.Software.appdata.xml.in 2016-11-07 20:43:12.000000000 +0100
+++ new/gnome-software-3.22.3/data/appdata/org.gnome.Software.appdata.xml.in 2016-12-01 16:49:17.000000000 +0100
@@ -46,6 +46,22 @@
Validate with `appstream-util validate *.appdata.xml`
-->
<releases>
+ <release date="2016-12-01" version="3.22.3">
+ <description>
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Misc. fixes to the search results page</li>
+ <li>Misc. flatpak bug and crasher fixes</li>
+ <li>Correctly raise the codec search window under the Wayland session</li>
+ <li>Improve spinner state handling on the updates page</li>
+ <li>Make it possible to upgrade two Fedora versions at a time</li>
+ <li>Fix a memory leak with every search request</li>
+ <li>Don't show screenshot placeholder for add-ons that can't have screenshots</li>
+ <li>Show an error if the screenshot download fails</li>
+ <li>Get the screenshot metadata from the GNOME Shell Extension JSON data</li>
+ </ul>
+ </description>
+ </release>
<release date="2016-11-07" version="3.22.2">
<description>
<p>This stable release fixes the following bugs:</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/doc/api/gnome-software-sections.txt new/gnome-software-3.22.3/doc/api/gnome-software-sections.txt
--- old/gnome-software-3.22.2/doc/api/gnome-software-sections.txt 2016-11-07 20:45:21.000000000 +0100
+++ new/gnome-software-3.22.3/doc/api/gnome-software-sections.txt 2016-12-01 16:53:44.000000000 +0100
@@ -337,7 +337,6 @@
gs_utils_show_error_dialog
gs_utils_build_unique_id_kind
gs_utils_list_has_app_fuzzy
-gs_search_button_new
</SECTION>
<SECTION>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gnome-software.ui new/gnome-software-3.22.3/src/gnome-software.ui
--- old/gnome-software-3.22.2/src/gnome-software.ui 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gnome-software.ui 2016-12-01 14:52:56.000000000 +0100
@@ -241,6 +241,32 @@
</child>
</object>
</child>
+ <child>
+ <object class="GtkToggleButton" id="search_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="search_button_accessible">
+ <property name="accessible-name" translatable="yes">Search</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="search_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ <property name="icon_size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-app-row.c new/gnome-software-3.22.3/src/gs-app-row.c
--- old/gnome-software-3.22.2/src/gs-app-row.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-app-row.c 2016-12-01 14:52:56.000000000 +0100
@@ -49,12 +49,9 @@
GtkWidget *label_warning;
GtkWidget *label_origin;
GtkWidget *label_installed;
- GtkWidget *box_sandboxed;
- GtkWidget *image_sandboxed;
gboolean colorful;
gboolean show_folders;
gboolean show_buttons;
- gboolean show_sandbox;
gboolean show_source;
gboolean show_codec;
gboolean show_update;
@@ -344,25 +341,6 @@
gtk_widget_set_visible (priv->label_origin, FALSE);
}
- /* sandboxed */
- if (priv->show_sandbox) {
- if (gs_app_get_kudos (priv->app) & GS_APP_KUDO_SANDBOXED_SECURE) {
- gtk_widget_set_visible (priv->box_sandboxed, TRUE);
- gtk_image_set_from_icon_name (GTK_IMAGE (priv->image_sandboxed),
- "security-high-symbolic",
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- } else if (gs_app_get_kudos (priv->app) & GS_APP_KUDO_SANDBOXED) {
- gtk_widget_set_visible (priv->box_sandboxed, TRUE);
- gtk_image_set_from_icon_name (GTK_IMAGE (priv->image_sandboxed),
- "security-medium-symbolic",
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- } else {
- gtk_widget_set_visible (priv->box_sandboxed, FALSE);
- }
- } else {
- gtk_widget_set_visible (priv->box_sandboxed, FALSE);
- }
-
/* installed tag */
if (!priv->show_buttons) {
switch (gs_app_get_state (priv->app)) {
@@ -678,8 +656,6 @@
gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, label_warning);
gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, label_origin);
gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, label_installed);
- gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, box_sandboxed);
- gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, image_sandboxed);
}
static void
@@ -753,15 +729,6 @@
gs_app_row_refresh (app_row);
}
-void
-gs_app_row_set_show_sandbox (GsAppRow *app_row, gboolean show_sandbox)
-{
- GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
-
- priv->show_sandbox = show_sandbox;
- gs_app_row_refresh (app_row);
-}
-
void
gs_app_row_set_show_source (GsAppRow *app_row, gboolean show_source)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-app-row.ui new/gnome-software-3.22.3/src/gs-app-row.ui
--- old/gnome-software-3.22.2/src/gs-app-row.ui 2016-10-12 10:07:40.000000000 +0200
+++ new/gnome-software-3.22.3/src/gs-app-row.ui 2016-12-01 14:52:56.000000000 +0100
@@ -127,54 +127,6 @@
<property name="fill">False</property>
</packing>
</child>
- <child>
- <object class="GtkBox" id="box_sandboxed">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">horizontal</property>
- <property name="margin_top">6</property>
- <property name="spacing">3</property>
- <property name="halign">start</property>
- <property name="valign">start</property>
- <child>
- <object class="GtkImage" id="image_sandboxed">
- <property name="visible">True</property>
- <property name="pixel_size">16</property>
- <property name="valign">center</property>
- <property name="halign">start</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label_sandboxed">
- <property name="label" translatable="yes" comments="security sandbox">Sandboxed</property>
- <property name="visible">True</property>
- <property name="xalign">0.0</property>
- <property name="yalign">0.5</property>
- <property name="halign">start</property>
- <property name="ellipsize">end</property>
- <style>
- <class name="app-row-origin-text"/>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
</object>
<packing>
<property name="fill">True</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-app.c new/gnome-software-3.22.3/src/gs-app.c
--- old/gnome-software-3.22.2/src/gs-app.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-app.c 2016-12-01 14:52:56.000000000 +0100
@@ -770,7 +770,7 @@
/* this state change was unexpected */
if (!state_change_ok) {
g_warning ("State change on %s from %s to %s is not OK",
- app->id,
+ gs_app_get_unique_id (app),
as_app_state_to_string (app->state),
as_app_state_to_string (state));
return FALSE;
@@ -792,7 +792,8 @@
default:
if (app->state_recover != state) {
g_debug ("%s non-transient state now %s",
- app->id, as_app_state_to_string (state));
+ gs_app_get_unique_id (app),
+ as_app_state_to_string (state));
app->state_recover = state;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-application.c new/gnome-software-3.22.3/src/gs-application.c
--- old/gnome-software-3.22.2/src/gs-application.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-application.c 2016-12-01 14:52:56.000000000 +0100
@@ -32,7 +32,12 @@
#include
#ifdef GDK_WINDOWING_X11
-#include
+#include
+#endif
+#ifdef GDK_WINDOWING_WAYLAND
+#if GTK_CHECK_VERSION(3,22,4)
+#include
+#endif
#endif
#ifdef HAVE_PACKAGEKIT
@@ -320,10 +325,13 @@
gs_shell_setup (app->shell, app->plugin_loader, app->cancellable);
gtk_application_add_window (GTK_APPLICATION (app), gs_shell_get_window (app->shell));
+
+ /* monitor the network as the many UI operations need the network */
+ gs_application_monitor_network (app);
}
static void
-initialize_ui_and_present_window (GsApplication *app)
+initialize_ui_and_present_window (GsApplication *app, const gchar *startup_id)
{
GList *windows;
GtkWindow *window;
@@ -332,6 +340,9 @@
windows = gtk_application_get_windows (GTK_APPLICATION (app));
if (windows) {
window = windows->data;
+
+ if (startup_id != NULL)
+ gtk_window_set_startup_id (window, startup_id);
gtk_window_present (window);
}
}
@@ -541,7 +552,7 @@
GsApplication *app = GS_APPLICATION (data);
const gchar *mode;
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, NULL);
mode = g_variant_get_string (parameter, NULL);
if (g_strcmp0 (mode, "updates") == 0) {
@@ -568,7 +579,7 @@
GsApplication *app = GS_APPLICATION (data);
const gchar *search;
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, NULL);
search = g_variant_get_string (parameter, NULL);
gs_shell_show_search (app->shell, search);
@@ -583,7 +594,7 @@
const gchar *id;
const gchar *search;
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, NULL);
g_variant_get (parameter, "(&s&s)", &id, &search);
if (search != NULL && search[0] != '\0')
@@ -608,7 +619,7 @@
GsApplication *app = GS_APPLICATION (data);
g_autoptr (GsApp) a = NULL;
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, NULL);
a = gs_app_new (NULL);
gs_app_add_source (a, g_variant_get_string (parameter, NULL));
@@ -624,7 +635,6 @@
const gchar *filename;
gs_application_initialize_ui (app);
- gs_application_monitor_network (GS_APPLICATION (app));
g_variant_get (parameter, "(&s)", &filename);
gs_shell_show_filename (app->shell, filename);
@@ -662,7 +672,7 @@
{
GsApplication *app = GS_APPLICATION (data);
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, NULL);
gs_shell_set_mode (app->shell, GS_SHELL_MODE_UPDATES);
gs_update_monitor_show_error (app->update_monitor, app->shell);
@@ -674,26 +684,32 @@
gpointer data)
{
GsApplication *app = GS_APPLICATION (data);
-#ifdef GDK_WINDOWING_X11
GdkDisplay *display;
-#endif
const gchar *mode;
const gchar *startup_id;
g_autofree gchar **resources = NULL;
g_variant_get (parameter, "(&s^a&s&s)", &mode, &resources, &startup_id);
-#ifdef GDK_WINDOWING_X11
display = gdk_display_get_default ();
-
+#ifdef GDK_WINDOWING_X11
if (GDK_IS_X11_DISPLAY (display)) {
if (startup_id != NULL && startup_id[0] != '\0')
gdk_x11_display_set_startup_notification_id (display,
startup_id);
}
#endif
+#ifdef GDK_WINDOWING_WAYLAND
+#if GTK_CHECK_VERSION(3,22,4)
+ if (GDK_IS_WAYLAND_DISPLAY (display)) {
+ if (startup_id != NULL && startup_id[0] != '\0')
+ gdk_wayland_display_set_startup_notification_id (display,
+ startup_id);
+ }
+#endif
+#endif
- initialize_ui_and_present_window (app);
+ initialize_ui_and_present_window (app, startup_id);
gs_shell_show_extras_search (app->shell, mode, resources);
}
@@ -777,7 +793,6 @@
GsApplication *app = GS_APPLICATION (application);
gs_application_initialize_ui (GS_APPLICATION (application));
- gs_application_monitor_network (GS_APPLICATION (application));
/* start metadata loading screen */
if (gs_shell_get_mode (app->shell) == GS_SHELL_MODE_UNKNOWN) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-common.c new/gnome-software-3.22.3/src/gs-common.c
--- old/gnome-software-3.22.2/src/gs-common.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-common.c 2016-12-01 14:52:56.000000000 +0100
@@ -850,53 +850,6 @@
gtk_widget_show (dialog);
}
-static void
-gs_search_button_cb (GtkToggleButton *toggle_button, GtkSearchBar *search_bar)
-{
- gtk_search_bar_set_search_mode (search_bar,
- gtk_toggle_button_get_active (toggle_button));
-}
-
-static void
-gs_search_mode_enabled_cb (GtkSearchBar *search_bar,
- GParamSpec *pspec,
- GtkToggleButton *toggle_button)
-{
- gtk_toggle_button_set_active (toggle_button,
- gtk_search_bar_get_search_mode (search_bar));
-}
-
-/**
- * gs_search_button_new:
- *
- * Creates a new search toggle button.
- */
-GtkWidget *
-gs_search_button_new (GtkSearchBar *search_bar)
-{
- GtkWidget *widget;
- GtkWidget *im;
-
- widget = gtk_toggle_button_new ();
- im = gtk_image_new_from_icon_name ("edit-find-symbolic", GTK_ICON_SIZE_BUTTON);
- gtk_widget_set_visible (im, TRUE);
- gtk_container_add (GTK_CONTAINER (widget), im);
- gtk_widget_set_visible (widget, TRUE);
-
- if (search_bar != NULL) {
- /* show the search bar when clicked */
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gs_search_button_cb),
- search_bar);
- /* set the button enabled when search appears */
- g_signal_connect (search_bar, "notify::search-mode-enabled",
- G_CALLBACK (gs_search_mode_enabled_cb),
- widget);
- }
-
- return widget;
-}
-
/**
* gs_utils_get_error_value:
* @error: A GError
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-common.h new/gnome-software-3.22.3/src/gs-common.h
--- old/gnome-software-3.22.2/src/gs-common.h 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-common.h 2016-12-01 14:52:56.000000000 +0100
@@ -70,7 +70,6 @@
const gchar *id);
gboolean gs_utils_list_has_app_fuzzy (GsAppList *list,
GsApp *app);
-GtkWidget *gs_search_button_new (GtkSearchBar *search_bar);
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-page.c new/gnome-software-3.22.3/src/gs-page.c
--- old/gnome-software-3.22.2/src/gs-page.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-page.c 2016-12-01 14:52:56.000000000 +0100
@@ -196,8 +196,10 @@
!gs_shell_is_active (priv->shell))
gs_app_notify_installed (helper->app);
- if (GS_PAGE_GET_CLASS (page)->app_installed != NULL)
+ if (gs_app_is_installed (helper->app) &&
+ GS_PAGE_GET_CLASS (page)->app_installed != NULL) {
GS_PAGE_GET_CLASS (page)->app_installed (page, helper->app);
+ }
}
static void
@@ -265,8 +267,10 @@
return;
}
- if (GS_PAGE_GET_CLASS (page)->app_removed != NULL)
+ if (!gs_app_is_installed (helper->app) &&
+ GS_PAGE_GET_CLASS (page)->app_removed != NULL) {
GS_PAGE_GET_CLASS (page)->app_removed (page, helper->app);
+ }
}
GtkWidget *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-screenshot-image.c new/gnome-software-3.22.3/src/gs-screenshot-image.c
--- old/gnome-software-3.22.2/src/gs-screenshot-image.c 2016-10-12 10:07:40.000000000 +0200
+++ new/gnome-software-3.22.3/src/gs-screenshot-image.c 2016-12-01 14:52:56.000000000 +0100
@@ -215,10 +215,12 @@
return;
if (msg->status_code != SOUP_STATUS_OK) {
+ g_warning ("Result of screenshot downloading attempt with "
+ "status code '%u': %s", msg->status_code,
+ msg->reason_phrase);
/* TRANSLATORS: this is when we try to download a screenshot and
* we get back 404 */
gs_screenshot_image_set_error (ssimg, _("Screenshot not found"));
- gtk_widget_hide (GTK_WIDGET (ssimg));
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-shell-details.c new/gnome-software-3.22.3/src/gs-shell-details.c
--- old/gnome-software-3.22.2/src/gs-shell-details.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-shell-details.c 2016-12-01 14:52:56.000000000 +0100
@@ -569,6 +569,8 @@
case AS_APP_KIND_SOURCE:
case AS_APP_KIND_FIRMWARE:
case AS_APP_KIND_DRIVER:
+ case AS_APP_KIND_INPUT_METHOD:
+ case AS_APP_KIND_LOCALIZATION:
gtk_widget_set_visible (self->box_details_screenshot_fallback, FALSE);
break;
default:
@@ -1445,6 +1447,16 @@
gs_plugin_loader_file_to_app_async (self->plugin_loader,
file,
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_UI |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_MENU_PATH |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_URL |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROVENANCE |
+ GS_PLUGIN_REFINE_FLAGS_REQUIRE_RELATED |
GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS,
self->cancellable,
gs_shell_details_file_to_app_cb,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-shell-overview.c new/gnome-software-3.22.3/src/gs-shell-overview.c
--- old/gnome-software-3.22.2/src/gs-shell-overview.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-shell-overview.c 2016-12-01 14:52:56.000000000 +0100
@@ -51,7 +51,6 @@
gboolean loading_categories;
gboolean empty;
gchar *category_of_day;
- GtkWidget *search_button;
GHashTable *category_hash; /* id : GsCategory */
GSettings *settings;
@@ -574,7 +573,8 @@
}
/* we hid the search bar */
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->search_button), FALSE);
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_button"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "buttonbox_main"));
gtk_widget_show (widget);
@@ -737,7 +737,6 @@
GCancellable *cancellable)
{
GsShellOverviewPrivate *priv = gs_shell_overview_get_instance_private (self);
- GtkSearchBar *search_bar;
GtkAdjustment *adj;
GtkWidget *tile;
gint i;
@@ -776,12 +775,6 @@
g_signal_connect (priv->categories_expander_button, "clicked",
G_CALLBACK (gs_shell_overview_categories_expander_cb), self);
- /* search button */
- search_bar = GTK_SEARCH_BAR (gtk_builder_get_object (priv->builder,
- "search_bar"));
- priv->search_button = gs_search_button_new (search_bar);
- gs_page_set_header_end_widget (GS_PAGE (self), priv->search_button);
-
/* chain up */
gs_page_setup (GS_PAGE (self),
shell,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-shell-search.c new/gnome-software-3.22.3/src/gs-shell-search.c
--- old/gnome-software-3.22.2/src/gs-shell-search.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-shell-search.c 2016-12-01 14:52:56.000000000 +0100
@@ -44,7 +44,6 @@
gchar *appid_to_show;
gchar *value;
guint waiting_id;
- GtkWidget *search_button;
GtkWidget *list_box_search;
GtkWidget *scrolledwindow_search;
@@ -134,7 +133,6 @@
for (i = 0; i < gs_app_list_length (list); i++) {
app = gs_app_list_index (list, i);
app_row = gs_app_row_new (app);
- gs_app_row_set_show_sandbox (GS_APP_ROW (app_row), TRUE);
if (!gs_app_has_quirk (app, AS_APP_QUIRK_PROVENANCE) ||
gs_utils_list_has_app_fuzzy (list, app))
gs_app_row_set_show_source (GS_APP_ROW (app_row), TRUE);
@@ -254,7 +252,8 @@
gtk_widget_show (widget);
/* hardcode */
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->search_button), TRUE);
+ widget = GTK_WIDGET (gtk_builder_get_object (self->builder, "search_button"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
if (scroll_up) {
GtkAdjustment *adj;
@@ -381,14 +380,6 @@
gs_shell_search_reload (page);
}
-static void
-gs_shell_search_search_button_cb (GtkButton *button, GsShellSearch *self)
-{
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
- return;
- gs_shell_change_mode (self->shell, GS_SHELL_MODE_OVERVIEW, NULL, TRUE);
-}
-
void
gs_shell_search_setup (GsShellSearch *self,
GsShell *shell,
@@ -418,12 +409,6 @@
gs_shell_search_sort_func,
self, NULL);
- /* search button */
- self->search_button = gs_search_button_new (NULL);
- gs_page_set_header_end_widget (GS_PAGE (self), self->search_button);
- g_signal_connect (self->search_button, "clicked",
- G_CALLBACK (gs_shell_search_search_button_cb), self);
-
/* chain up */
gs_page_setup (GS_PAGE (self),
shell,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-shell-updates.c new/gnome-software-3.22.3/src/gs-shell-updates.c
--- old/gnome-software-3.22.2/src/gs-shell-updates.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-shell-updates.c 2016-12-01 14:52:56.000000000 +0100
@@ -302,11 +302,11 @@
/* headerbar refresh icon */
switch (self->state) {
case GS_SHELL_UPDATES_STATE_ACTION_REFRESH:
+ case GS_SHELL_UPDATES_STATE_ACTION_GET_UPDATES:
gtk_image_set_from_icon_name (GTK_IMAGE (gtk_button_get_image (GTK_BUTTON (self->button_refresh))),
"media-playback-stop-symbolic", GTK_ICON_SIZE_MENU);
gtk_widget_show (self->button_refresh);
break;
- case GS_SHELL_UPDATES_STATE_ACTION_GET_UPDATES:
case GS_SHELL_UPDATES_STATE_STARTUP:
case GS_SHELL_UPDATES_STATE_MANAGED:
gtk_widget_hide (self->button_refresh);
@@ -338,8 +338,11 @@
case GS_SHELL_UPDATES_STATE_FAILED:
gtk_stack_set_visible_child_name (GTK_STACK (self->stack_updates), "failed");
break;
- case GS_SHELL_UPDATES_STATE_ACTION_REFRESH:
case GS_SHELL_UPDATES_STATE_ACTION_GET_UPDATES:
+ gtk_stack_set_visible_child_name (GTK_STACK (self->stack_updates),
+ "spinner");
+ break;
+ case GS_SHELL_UPDATES_STATE_ACTION_REFRESH:
if (self->result_flags != GS_SHELL_UPDATES_FLAG_NONE) {
gtk_stack_set_visible_child_name (GTK_STACK (self->stack_updates), "view");
} else {
@@ -554,6 +557,7 @@
}
} else if (gs_app_list_length (list) == 0) {
g_debug ("updates-shell: no upgrades to show");
+ gs_shell_updates_clear_flag (self, GS_SHELL_UPDATES_FLAG_HAS_UPGRADES);
} else {
GsApp *app = gs_app_list_index (list, 0);
g_debug ("got upgrade %s", gs_app_get_id (app));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-shell.c new/gnome-software-3.22.3/src/gs-shell.c
--- old/gnome-software-3.22.2/src/gs-shell.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/gs-shell.c 2016-12-01 14:52:56.000000000 +0100
@@ -83,6 +83,7 @@
GQueue *back_entry_stack;
GPtrArray *modal_dialogs;
gulong search_changed_id;
+ gboolean in_mode_change;
} GsShellPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (GsShell, gs_shell, G_TYPE_OBJECT)
@@ -254,10 +255,16 @@
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "header_selection_menu_button"));
gtk_widget_hide (widget);
+ priv->in_mode_change = TRUE;
+ /* only show the search button in overview and search pages */
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_button"));
+ gtk_widget_set_visible (widget, mode == GS_SHELL_MODE_OVERVIEW ||
+ mode == GS_SHELL_MODE_SEARCH);
/* hide unless we're going to search */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_bar"));
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (widget),
mode == GS_SHELL_MODE_SEARCH);
+ priv->in_mode_change = FALSE;
context = gtk_widget_get_style_context (GTK_WIDGET (gtk_builder_get_object (priv->builder, "header")));
gtk_style_context_remove_class (context, "selection-mode");
@@ -333,9 +340,13 @@
/* show the back button if needed */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_back"));
- gtk_widget_set_visible (widget, !g_queue_is_empty (priv->back_entry_stack));
+ gtk_widget_set_visible (widget,
+ mode != GS_SHELL_MODE_SEARCH &&
+ !g_queue_is_empty (priv->back_entry_stack));
+ priv->in_mode_change = TRUE;
gs_page_switch_to (new_page, scroll_up);
+ priv->in_mode_change = FALSE;
/* update header bar widgets */
widget = gs_page_get_header_start_widget (new_page);
@@ -528,6 +539,35 @@
}
}
+static void
+search_button_clicked_cb (GtkToggleButton *toggle_button, GsShell *shell)
+{
+ GsShellPrivate *priv = gs_shell_get_instance_private (shell);
+ GtkWidget *search_bar;
+
+ search_bar = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_bar"));
+ gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (search_bar),
+ gtk_toggle_button_get_active (toggle_button));
+
+ if (priv->in_mode_change)
+ return;
+
+ /* switch back to overview */
+ if (!gtk_toggle_button_get_active (toggle_button))
+ gs_shell_change_mode (shell, GS_SHELL_MODE_OVERVIEW, NULL, TRUE);
+}
+
+static void
+search_mode_enabled_cb (GtkSearchBar *search_bar, GParamSpec *pspec, GsShell *shell)
+{
+ GsShellPrivate *priv = gs_shell_get_instance_private (shell);
+ GtkWidget *search_button;
+
+ search_button = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_button"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (search_button),
+ gtk_search_bar_get_search_mode (search_bar));
+}
+
static gboolean
window_key_press_event (GtkWidget *win, GdkEventKey *event, GsShell *shell)
{
@@ -680,6 +720,17 @@
g_signal_connect_after (priv->main_window, "button_press_event",
G_CALLBACK (window_button_press_event), shell);
+ /* show the search bar when clicking on the search button */
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_button"));
+ g_signal_connect (widget, "clicked",
+ G_CALLBACK (search_button_clicked_cb),
+ shell);
+ /* set the search button enabled when search bar appears */
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "search_bar"));
+ g_signal_connect (widget, "notify::search-mode-enabled",
+ G_CALLBACK (search_mode_enabled_cb),
+ shell);
+
/* setup buttons */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_back"));
g_signal_connect (widget, "clicked",
@@ -853,6 +904,8 @@
void gs_shell_show_extras_search (GsShell *shell, const gchar *mode, gchar **resources)
{
GsShellPrivate *priv = gs_shell_get_instance_private (shell);
+
+ save_back_entry (shell);
gs_shell_extras_search (priv->shell_extras, mode, resources);
gs_shell_change_mode (shell, GS_SHELL_MODE_EXTRAS, NULL, TRUE);
gs_shell_activate (shell);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/gs-update-list.c new/gnome-software-3.22.3/src/gs-update-list.c
--- old/gnome-software-3.22.2/src/gs-update-list.c 2016-10-12 10:07:40.000000000 +0200
+++ new/gnome-software-3.22.3/src/gs-update-list.c 2016-11-27 16:36:29.000000000 +0100
@@ -45,8 +45,6 @@
G_DEFINE_TYPE_WITH_PRIVATE (GsUpdateList, gs_update_list, GTK_TYPE_LIST_BOX)
-#define GET_PRIV(o) gs_update_list_get_instance_private(o)
-
static void
gs_update_list_button_clicked_cb (GsAppRow *app_row,
GsUpdateList *update_list)
@@ -59,7 +57,7 @@
gs_update_list_add_app (GsUpdateList *update_list,
GsApp *app)
{
- GsUpdateListPrivate *priv = GET_PRIV (update_list);
+ GsUpdateListPrivate *priv = gs_update_list_get_instance_private (update_list);
GtkWidget *app_row;
app_row = gs_app_row_new (app);
@@ -194,7 +192,7 @@
gs_update_list_dispose (GObject *object)
{
GsUpdateList *update_list = GS_UPDATE_LIST (object);
- GsUpdateListPrivate *priv = GET_PRIV (update_list);
+ GsUpdateListPrivate *priv = gs_update_list_get_instance_private (update_list);
g_clear_object (&priv->sizegroup_image);
g_clear_object (&priv->sizegroup_name);
@@ -205,7 +203,7 @@
static void
gs_update_list_init (GsUpdateList *update_list)
{
- GsUpdateListPrivate *priv = GET_PRIV (update_list);
+ GsUpdateListPrivate *priv = gs_update_list_get_instance_private (update_list);
priv->sizegroup_image = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
priv->sizegroup_name = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-appstream.c new/gnome-software-3.22.3/src/plugins/gs-appstream.c
--- old/gnome-software-3.22.2/src/plugins/gs-appstream.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-appstream.c 2016-12-01 14:52:56.000000000 +0100
@@ -120,30 +120,44 @@
gs_app_add_icon (app, icon);
}
-static void
-gs_appstream_refine_add_addons (GsPlugin *plugin, GsApp *app, AsApp *item)
+static gboolean
+gs_appstream_refine_add_addons (GsPlugin *plugin,
+ GsApp *app,
+ AsApp *item,
+ GError **error)
{
GPtrArray *addons;
guint i;
+ g_autoptr(AsProfileTask) ptask = NULL;
+
+ /* we only care about addons to desktop apps */
+ if (gs_app_get_kind (app) != AS_APP_KIND_DESKTOP)
+ return TRUE;
+
+ /* search categories for the search term */
+ ptask = as_profile_start (gs_plugin_get_profile (plugin),
+ "appstream::refine-addons{%s}",
+ gs_app_get_unique_id (app));
+ g_assert (ptask != NULL);
addons = as_app_get_addons (item);
if (addons == NULL)
- return;
+ return TRUE;
for (i = 0; i < addons->len; i++) {
AsApp *as_addon = g_ptr_array_index (addons, i);
- g_autoptr(GError) error = NULL;
g_autoptr(GsApp) addon = NULL;
- addon = gs_app_new (as_app_get_id (as_addon));
+ addon = gs_appstream_create_app (plugin, as_addon, error);
+ if (addon == NULL)
+ return FALSE;
/* add all the data we can */
- if (!gs_appstream_refine_app (plugin, addon, as_addon, &error)) {
- g_warning ("failed to refine addon: %s", error->message);
- continue;
- }
+ if (!gs_appstream_refine_app (plugin, addon, as_addon, error))
+ return FALSE;
gs_app_add_addon (app, addon);
}
+ return TRUE;
}
static void
@@ -506,6 +520,13 @@
GPtrArray *kudos;
const gchar *tmp;
guint i;
+ g_autoptr(AsProfileTask) ptask = NULL;
+
+ /* search categories for the search term */
+ ptask = as_profile_start (gs_plugin_get_profile (plugin),
+ "appstream::refine-app{%s}",
+ gs_app_get_unique_id (app));
+ g_assert (ptask != NULL);
/* set the kind to be more precise */
if (gs_app_get_kind (app) == AS_APP_KIND_UNKNOWN ||
@@ -657,7 +678,8 @@
gs_app_set_sources (app, pkgnames);
/* set addons */
- gs_appstream_refine_add_addons (plugin, app, item);
+ if (!gs_appstream_refine_add_addons (plugin, app, item, error))
+ return FALSE;
/* set screenshots */
gs_appstream_refine_add_screenshots (app, item);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-flatpak.c new/gnome-software-3.22.3/src/plugins/gs-flatpak.c
--- old/gnome-software-3.22.2/src/plugins/gs-flatpak.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-flatpak.c 2016-12-01 14:52:56.000000000 +0100
@@ -113,6 +113,10 @@
g_autoptr(GError) error = NULL;
g_autoptr(GError) error_md = NULL;
+ /* don't refresh when it's us ourselves doing the change */
+ if (gs_plugin_has_flags (self->plugin, GS_PLUGIN_FLAGS_RUNNING_SELF))
+ return;
+
/* manually drop the cache */
if (!flatpak_installation_drop_caches (self->installation,
NULL, &error)) {
@@ -1025,6 +1029,10 @@
if (gs_app_get_origin_hostname (app) != NULL)
return TRUE;
+ /* no origin */
+ if (gs_app_get_origin (app) == NULL)
+ return TRUE;
+
/* get the remote */
xremote = flatpak_installation_get_remote_by_name (self->installation,
gs_app_get_origin (app),
@@ -1470,6 +1478,16 @@
} else {
g_autoptr(FlatpakRef) xref = NULL;
+ /* no origin */
+ if (gs_app_get_origin (app) == NULL) {
+ g_set_error (error,
+ GS_PLUGIN_ERROR,
+ GS_PLUGIN_ERROR_NOT_SUPPORTED,
+ "no origin set for %s",
+ gs_app_get_unique_id (app));
+ return FALSE;
+ }
+
/* fetch from the server */
xref = gs_flatpak_create_fake_ref (app, error);
if (xref == NULL)
@@ -1584,6 +1602,16 @@
} else {
g_autoptr(FlatpakRef) xref = NULL;
g_autoptr(GError) error_local = NULL;
+
+ /* no origin */
+ if (gs_app_get_origin (app) == NULL) {
+ g_set_error (error,
+ GS_PLUGIN_ERROR,
+ GS_PLUGIN_ERROR_NOT_SUPPORTED,
+ "no origin set for %s",
+ gs_app_get_unique_id (app));
+ return FALSE;
+ }
xref = gs_flatpak_create_fake_ref (app, error);
if (xref == NULL)
return FALSE;
@@ -1952,6 +1980,15 @@
app,
cancellable, error);
} else {
+ /* no origin */
+ if (gs_app_get_origin (app) == NULL) {
+ g_set_error (error,
+ GS_PLUGIN_ERROR,
+ GS_PLUGIN_ERROR_NOT_SUPPORTED,
+ "no origin set for %s",
+ gs_app_get_unique_id (app));
+ return FALSE;
+ }
g_debug ("installing %s", gs_app_get_id (app));
xref = flatpak_installation_install (self->installation,
gs_app_get_origin (app),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-appstream.c new/gnome-software-3.22.3/src/plugins/gs-plugin-appstream.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-appstream.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-appstream.c 2016-12-01 14:52:56.000000000 +0100
@@ -345,6 +345,13 @@
GsPluginData *priv = gs_plugin_get_data (plugin);
const gchar *unique_id;
AsApp *item;
+ g_autoptr(AsProfileTask) ptask = NULL;
+
+ /* search categories for the search term */
+ ptask = as_profile_start (gs_plugin_get_profile (plugin),
+ "appstream::refine-from-id{%s}",
+ gs_app_get_unique_id (app));
+ g_assert (ptask != NULL);
/* unfound */
*found = FALSE;
@@ -391,6 +398,12 @@
GPtrArray *sources;
const gchar *pkgname;
guint i;
+ g_autoptr(AsProfileTask) ptask = NULL;
+
+ /* search categories for the search term */
+ ptask = as_profile_start_literal (gs_plugin_get_profile (plugin),
+ "appstream::refine-from-pkgname");
+ g_assert (ptask != NULL);
/* find anything that matches the ID */
sources = gs_app_get_sources (app);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-fedora-distro-upgrades.c new/gnome-software-3.22.3/src/plugins/gs-plugin-fedora-distro-upgrades.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-fedora-distro-upgrades.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-fedora-distro-upgrades.c 2016-12-01 14:52:56.000000000 +0100
@@ -299,6 +299,19 @@
return g_strdup_printf ("#151E65");
}
+static gint
+sort_distros_cb (gconstpointer a, gconstpointer b)
+{
+ DistroInfo *distro_a = *((DistroInfo **) a);
+ DistroInfo *distro_b = *((DistroInfo **) b);
+
+ if (distro_a->version > distro_b->version)
+ return 1;
+ if (distro_a->version < distro_b->version)
+ return -1;
+ return 0;
+}
+
gboolean
gs_plugin_add_distro_upgrades (GsPlugin *plugin,
GsAppList *list,
@@ -328,6 +341,7 @@
distros = parse_pkgdb_collections_data (data, (gssize) len, error);
if (distros == NULL)
return FALSE;
+ g_ptr_array_sort (distros, sort_distros_cb);
for (i = 0; i < distros->len; i++) {
DistroInfo *distro_info = g_ptr_array_index (distros, i);
g_autofree gchar *app_id = NULL;
@@ -343,13 +357,14 @@
if (g_strcmp0 (distro_info->name, priv->os_name) != 0)
continue;
- /* only interested in newer versions */
- if (distro_info->version <= priv->os_version)
+ /* only interested in newer versions, but not more than N+2 */
+ if (distro_info->version <= priv->os_version ||
+ distro_info->version > priv->os_version + 2)
continue;
/* only interested in non-devel distros */
if (!g_settings_get_boolean (settings, "show-upgrade-prerelease")) {
- if (distro_info->status != DISTRO_STATUS_ACTIVE)
+ if (distro_info->status == DISTRO_STATUS_DEVEL)
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-flatpak-system.c new/gnome-software-3.22.3/src/plugins/gs-plugin-flatpak-system.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-flatpak-system.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-flatpak-system.c 2016-12-01 14:52:56.000000000 +0100
@@ -36,15 +36,15 @@
struct GsPluginData {
GsFlatpak *flatpak;
- GSettings *settings;
};
void
gs_plugin_initialize (GsPlugin *plugin)
{
GsPluginData *priv = gs_plugin_alloc_data (plugin, sizeof(GsPluginData));
+ g_autoptr(GSettings) settings = g_settings_new ("org.gnome.software");
+
priv->flatpak = gs_flatpak_new (plugin, AS_APP_SCOPE_SYSTEM);
- priv->settings = g_settings_new ("org.gnome.software");
/* set plugin flags */
gs_plugin_add_flags (plugin, GS_PLUGIN_FLAGS_GLOBAL_CACHE);
@@ -54,6 +54,10 @@
/* prioritize over packages */
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_BETTER_THAN, "packagekit");
+
+ /* prefer system-wide handling of local files */
+ if (g_settings_get_boolean (settings, "install-bundles-system-wide"))
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_BEFORE, "flatpak-user");
}
void
@@ -61,7 +65,6 @@
{
GsPluginData *priv = gs_plugin_get_data (plugin);
g_clear_object (&priv->flatpak);
- g_clear_object (&priv->settings);
}
void
@@ -214,10 +217,9 @@
{
GsPluginData *priv = gs_plugin_get_data (plugin);
- /* only handle when installing bundles system-wide */
- if (!g_settings_get_boolean (priv->settings,
- "install-bundles-system-wide")) {
- g_debug ("not handling bundle as per-user specified");
+ /* only handle when nothing yet has added this */
+ if (gs_app_list_length (list) > 0) {
+ g_debug ("not handling bundle as already added");
return TRUE;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-flatpak-user.c new/gnome-software-3.22.3/src/plugins/gs-plugin-flatpak-user.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-flatpak-user.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-flatpak-user.c 2016-12-01 14:52:56.000000000 +0100
@@ -36,15 +36,15 @@
struct GsPluginData {
GsFlatpak *flatpak;
- GSettings *settings;
};
void
gs_plugin_initialize (GsPlugin *plugin)
{
GsPluginData *priv = gs_plugin_alloc_data (plugin, sizeof(GsPluginData));
+ g_autoptr(GSettings) settings = g_settings_new ("org.gnome.software");
+
priv->flatpak = gs_flatpak_new (plugin, AS_APP_SCOPE_USER);
- priv->settings = g_settings_new ("org.gnome.software");
/* set plugin flags */
gs_plugin_add_flags (plugin, GS_PLUGIN_FLAGS_GLOBAL_CACHE);
@@ -54,14 +54,18 @@
/* prioritize over packages */
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_BETTER_THAN, "packagekit");
+
+ /* prefer user-specific handling of local files */
+ if (!g_settings_get_boolean (settings, "install-bundles-system-wide"))
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_BEFORE, "flatpak-system");
}
+
void
gs_plugin_destroy (GsPlugin *plugin)
{
GsPluginData *priv = gs_plugin_get_data (plugin);
g_clear_object (&priv->flatpak);
- g_clear_object (&priv->settings);
}
void
@@ -197,11 +201,9 @@
{
GsPluginData *priv = gs_plugin_get_data (plugin);
- /* only handle when installing bundles user-wide */
- if (g_getenv ("GS_SELF_TEST_FLATPACK_DATADIR") == NULL &&
- g_settings_get_boolean (priv->settings,
- "install-bundles-system-wide")) {
- g_debug ("not handling bundle as per-system specified");
+ /* only handle when nothing yet has added this */
+ if (gs_app_list_length (list) > 0) {
+ g_debug ("not handling bundle as already added");
return TRUE;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-fwupd.c new/gnome-software-3.22.3/src/plugins/gs-plugin-fwupd.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-fwupd.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-fwupd.c 2016-12-01 14:52:56.000000000 +0100
@@ -495,6 +495,10 @@
gs_app_set_local_file (app, file);
gs_app_list_add (list, app);
+ /* schedule for download */
+ if (!g_file_test (filename_cache, G_FILE_TEST_EXISTS))
+ gs_plugin_fwupd_add_required_location (plugin, update_uri);
+
return TRUE;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-packagekit-refine.c new/gnome-software-3.22.3/src/plugins/gs-plugin-packagekit-refine.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-packagekit-refine.c 2016-11-07 14:35:25.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-packagekit-refine.c 2016-12-01 13:35:47.000000000 +0100
@@ -485,7 +485,7 @@
}
/* the size is the size of all sources */
- if (gs_app_get_state (app) == AS_APP_STATE_INSTALLED) {
+ if (gs_app_is_installed (app)) {
gs_app_set_size_download (app, GS_APP_SIZE_UNKNOWABLE);
if (size > 0 && gs_app_get_size_installed (app) == 0)
gs_app_set_size_installed (app, size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.22.2/src/plugins/gs-plugin-shell-extensions.c new/gnome-software-3.22.3/src/plugins/gs-plugin-shell-extensions.c
--- old/gnome-software-3.22.2/src/plugins/gs-plugin-shell-extensions.c 2016-11-07 20:42:06.000000000 +0100
+++ new/gnome-software-3.22.3/src/plugins/gs-plugin-shell-extensions.c 2016-12-01 14:52:56.000000000 +0100
@@ -31,7 +31,6 @@
/*
* Things we want from the API:
*
- * - Screenshots
* - Size on disk/download
* - Existing review data for each extension?
* - A local icon for an installed shell extension
@@ -432,7 +431,6 @@
AsApp *app;
JsonObject *json_ver_map;
const gchar *tmp;
- gint64 pk;
app = as_app_new ();
as_app_set_kind (app, AS_APP_KIND_SHELL_EXTENSION);
@@ -446,6 +444,20 @@
return NULL;
as_app_set_description (app, NULL, desc);
}
+ tmp = json_object_get_string_member (json_app, "screenshot");
+ if (tmp != NULL) {
+ g_autoptr(AsScreenshot) ss = NULL;
+ g_autoptr(AsImage) im = NULL;
+ g_autofree gchar *uri = NULL;
+ uri = g_build_path ("/", SHELL_EXTENSIONS_API_URI, tmp, NULL);
+ im = as_image_new ();
+ as_image_set_kind (im, AS_IMAGE_KIND_SOURCE);
+ as_image_set_url (im, uri);
+ ss = as_screenshot_new ();
+ as_screenshot_set_kind (ss, AS_SCREENSHOT_KIND_DEFAULT);
+ as_screenshot_add_image (ss, im);
+ as_app_add_screenshot (app, ss);
+ }
tmp = json_object_get_string_member (json_app, "name");
if (tmp != NULL)
as_app_set_name (app, NULL, tmp);
@@ -483,25 +495,6 @@
return NULL;
}
- /* add a screenshot, which curiously isn't in the json */
- pk = json_object_get_int_member (json_app, "pk");
- if (1) {
- g_autoptr(AsScreenshot) ss = NULL;
- g_autoptr(AsImage) im = NULL;
- g_autofree gchar *uri = NULL;
- uri = g_strdup_printf ("%s/static/extension-data/"
- "screenshots/"
- "screenshot_%" G_GINT64_FORMAT ".png",
- SHELL_EXTENSIONS_API_URI, pk);
- im = as_image_new ();
- as_image_set_kind (im, AS_IMAGE_KIND_SOURCE);
- as_image_set_url (im, uri);
- ss = as_screenshot_new ();
- as_screenshot_set_kind (ss, AS_SCREENSHOT_KIND_DEFAULT);
- as_screenshot_add_image (ss, im);
- as_app_add_screenshot (app, ss);
- }
-
/* required to match categories in gnome-software */
as_app_add_category (app, "Addons");
as_app_add_category (app, "ShellExtensions");