Hello community,

here is the log from the commit of package gnome-software for openSUSE:Factory 
checked in at 2018-01-16 09:28:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-software (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-software.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-software"

Tue Jan 16 09:28:25 2018 rev:49 rq:562585 version:3.26.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-software/gnome-software.changes    
2017-12-06 08:49:49.492235413 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-software.new/gnome-software.changes       
2018-01-16 09:28:39.580186265 +0100
@@ -1,0 +2,20 @@
+Mon Jan  8 15:53:22 UTC 2018 - zai...@opensuse.org
+
+- Update to version 3.26.4:
+  + Fix crashes in the repos plugin due to missing locking.
+  + Work around Firefox deleting rpm/deb files downloaded to /tmp
+    when closing.
+  + Do not require the user to keep clicking 'More reviews' after
+    each click.
+  + Fix a critical when updating (flatpak) packages live.
+  + fwupd: Prepend the vendor name to the device name if not
+    included.
+  + Improve SPDX ID parsing when working out if it is 'free'.
+  + packagekit: Do not crash when getting an invalid ID from
+    PackageKit.
+  + Do not crash when closing the source dialog while it is
+    loading.
+  + Updated translations.
+- Drop gs-add-locking-to-the-repos-plugin.patch: Fixed upstream.
+
+-------------------------------------------------------------------

Old:
----
  gnome-software-3.26.3.tar.xz
  gs-add-locking-to-the-repos-plugin.patch

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

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

Other differences:
------------------
++++++ gnome-software.spec ++++++
--- /var/tmp/diff_new_pack.YZaLiA/_old  2018-01-16 09:28:40.452145469 +0100
+++ /var/tmp/diff_new_pack.YZaLiA/_new  2018-01-16 09:28:40.452145469 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gnome-software
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,14 @@
 
 %define gs_plugin_api 11
 Name:           gnome-software
-Version:        3.26.3
+Version:        3.26.4
 Release:        0
 Summary:        GNOME Software Store
 License:        GPL-2.0+
 Group:          System/GUI/GNOME
 Url:            https://wiki.gnome.org/Design/Apps/Software
 Source0:        
http://download.gnome.org/sources/gnome-software/3.26/%{name}-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM gs-add-locking-to-the-repos-plugin.patch rh#1516536 
zai...@opensuse.org -- Add locking to the repos plugin
-Patch0:         gs-add-locking-to-the-repos-plugin.patch
+
 BuildRequires:  gtk-doc
 BuildRequires:  intltool >= 0.35.0
 BuildRequires:  meson

++++++ gnome-software-3.26.3.tar.xz -> gnome-software-3.26.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/NEWS 
new/gnome-software-3.26.4/NEWS
--- old/gnome-software-3.26.3/NEWS      2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/NEWS      2017-12-17 09:58:55.000000000 +0100
@@ -1,3 +1,19 @@
+Version 3.26.4
+~~~~~~~~~~~~~~
+Released: 2017-12-17
+
+This is a stable release with the following changes:
+ * Fix crashes in the repos plugin due to missing locking
+ * Work around Firefox deleting rpm/deb files downloaded to /tmp when closing
+ * Do not require the user to keep clicking 'More reviews' after each click
+ * Fix a critical when updating (flatpak) packages live
+ * fwupd: Prepend the vendor name to the device name if not included
+ * Improve SPDX ID parsing when working out if it is 'free'
+ * packagekit: Do not crash when getting an invalid ID from PackageKit
+ * Do not crash when closing the source dialog while it is loading
+
+This release also updates translations.
+
 Version 3.26.3
 ~~~~~~~~~~~~~~
 Released: 2017-11-21
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/RELEASE 
new/gnome-software-3.26.4/RELEASE
--- old/gnome-software-3.26.3/RELEASE   2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/RELEASE   2017-12-17 09:58:55.000000000 +0100
@@ -2,14 +2,14 @@
 
 Write release entries:
 
-git log --format="%s" --cherry-pick --right-only GNOME_SOFTWARE_3_26_2... | 
grep -i -v trivial | grep -v Merge | sort | uniq
+git log --format="%s" --cherry-pick --right-only GNOME_SOFTWARE_3_26_3... | 
grep -i -v trivial | grep -v Merge | sort | uniq
 Add any user visible changes into 
data/appdata/org.gnome.Software.appdata.xml.in
 
 Generate NEWS file:
 appstream-util appdata-to-news data/appdata/org.gnome.Software.appdata.xml.in 
> NEWS
 
-git commit -a -m "Release version 3.26.3"
-git tag -s GNOME_SOFTWARE_3_26_3 -m "==== Version 3.26.3 ===="
+git commit -a -m "Release version 3.26.4"
+git tag -s GNOME_SOFTWARE_3_26_4 -m "==== Version 3.26.4 ===="
 <enter password>
 
 ninja-build dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/data/appdata/org.gnome.Software.appdata.xml.in 
new/gnome-software-3.26.4/data/appdata/org.gnome.Software.appdata.xml.in
--- old/gnome-software-3.26.3/data/appdata/org.gnome.Software.appdata.xml.in    
2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/data/appdata/org.gnome.Software.appdata.xml.in    
2017-12-17 09:58:55.000000000 +0100
@@ -46,6 +46,24 @@
    Validate with `appstream-util validate *.appdata.xml`
   -->
   <releases>
+    <release date="2017-12-17" version="3.26.4">
+      <description>
+        <p>
+          This is a stable release with the following changes:
+        </p>
+        <ul>
+          <li>Fix crashes in the repos plugin due to missing locking</li>
+          <li>Work around Firefox deleting rpm/deb files downloaded to /tmp 
when closing</li>
+          <li>Do not require the user to keep clicking 'More reviews' after 
each click</li>
+          <li>Fix a critical when updating (flatpak) packages live</li>
+          <li>fwupd: Prepend the vendor name to the device name if not 
included</li>
+          <li>Improve SPDX ID parsing when working out if it is 'free'</li>
+          <li>packagekit: Do not crash when getting an invalid ID from 
PackageKit</li>
+          <li>Do not crash when closing the source dialog while it is 
loading</li>
+        </ul>
+        <p>This release also updates translations.</p>
+      </description>
+    </release>
     <release date="2017-11-21" version="3.26.3">
       <description>
         <p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/lib/gs-app.c 
new/gnome-software-3.26.4/lib/gs-app.c
--- old/gnome-software-3.26.3/lib/gs-app.c      2017-11-21 12:01:08.000000000 
+0100
+++ new/gnome-software-3.26.4/lib/gs-app.c      2017-12-17 09:58:55.000000000 
+0100
@@ -2215,6 +2215,7 @@
        tokens = as_utils_spdx_license_tokenize (license);
        for (i = 0; tokens[i] != NULL; i++) {
                if (g_strcmp0 (tokens[i], "&") == 0 ||
+                   g_strcmp0 (tokens[i], "+") == 0 ||
                    g_strcmp0 (tokens[i], "|") == 0)
                        continue;
                if (gs_app_get_license_token_is_nonfree (tokens[i])) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/lib/gs-plugin-loader.c 
new/gnome-software-3.26.4/lib/gs-plugin-loader.c
--- old/gnome-software-3.26.3/lib/gs-plugin-loader.c    2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/lib/gs-plugin-loader.c    2017-12-17 
09:58:55.000000000 +0100
@@ -239,7 +239,7 @@
 gs_plugin_loader_job_debug (GsPluginLoaderHelper *helper)
 {
        g_autofree gchar *str = gs_plugin_job_to_string (helper->plugin_job);
-       g_info ("%s", str);
+       g_debug ("%s", str);
 }
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GsPluginLoaderHelper, 
gs_plugin_loader_helper_free)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/meson.build 
new/gnome-software-3.26.4/meson.build
--- old/gnome-software-3.26.3/meson.build       2017-11-21 12:01:08.000000000 
+0100
+++ new/gnome-software-3.26.4/meson.build       2017-12-17 09:58:55.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gnome-software', 'c',
-  version : '3.26.3',
+  version : '3.26.4',
   license : 'GPL-2.0+',
   default_options : ['warning_level=1', 'c_std=c99'],
   meson_version : '>=0.37.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/plugins/fwupd/gs-fwupd-app.c 
new/gnome-software-3.26.4/plugins/fwupd/gs-fwupd-app.c
--- old/gnome-software-3.26.3/plugins/fwupd/gs-fwupd-app.c      2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/fwupd/gs-fwupd-app.c      2017-12-17 
09:58:55.000000000 +0100
@@ -95,8 +95,16 @@
                gs_app_set_metadata (app, "fwupd::Guid", guid_str);
        }
        if (fwupd_device_get_name (dev) != NULL) {
-               gs_app_set_name (app, GS_APP_QUALITY_NORMAL,
-                                fwupd_device_get_name (dev));
+               g_autofree gchar *vendor_name = NULL;
+               if (g_str_has_prefix (fwupd_device_get_name (dev),
+                                     fwupd_device_get_vendor (dev))) {
+                       vendor_name = g_strdup (fwupd_device_get_name (dev));
+               } else {
+                       vendor_name = g_strdup_printf ("%s %s",
+                                                      fwupd_device_get_vendor 
(dev),
+                                                      fwupd_device_get_name 
(dev));
+               }
+               gs_app_set_name (app, GS_APP_QUALITY_NORMAL, vendor_name);
        }
        if (fwupd_device_get_summary (dev) != NULL) {
                gs_app_set_summary (app, GS_APP_QUALITY_NORMAL,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit-local.c 
new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit-local.c
--- old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit-local.c   
2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit-local.c   
2017-12-17 09:58:55.000000000 +0100
@@ -210,6 +210,13 @@
                             gs_plugin_get_name (plugin));
        package_id = pk_details_get_package_id (item);
        split = pk_package_id_split (package_id);
+       if (split == NULL) {
+               g_set_error (error,
+                            GS_PLUGIN_ERROR,
+                            GS_PLUGIN_ERROR_INVALID_FORMAT,
+                            "invalid package-id: %s", package_id);
+               return FALSE;
+       }
        basename = g_path_get_basename (filename);
        gs_app_set_management_plugin (app, "packagekit");
        gs_app_set_kind (app, AS_APP_KIND_GENERIC);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit-refine.c 
new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit-refine.c
--- old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit-refine.c  
2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit-refine.c  
2017-12-17 09:58:55.000000000 +0100
@@ -450,7 +450,11 @@
        g_auto(GStrv) split2 = NULL;
 
        split1 = pk_package_id_split (package_id1);
+       if (split1 == NULL)
+               return FALSE;
        split2 = pk_package_id_split (package_id2);
+       if (split2 == NULL)
+               return FALSE;
        ret = (g_strcmp0 (split1[PK_PACKAGE_ID_NAME],
                          split2[PK_PACKAGE_ID_NAME]) == 0 &&
               g_strcmp0 (split1[PK_PACKAGE_ID_VERSION],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit.c 
new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit.c
--- old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-packagekit.c 
2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit.c 
2017-12-17 09:58:55.000000000 +0100
@@ -152,6 +152,14 @@
                g_auto(GStrv) split = NULL;
                app = gs_app_list_index (installed, i);
                split = pk_package_id_split (gs_app_get_source_id_default 
(app));
+               if (split == NULL) {
+                       g_set_error (error,
+                                    GS_PLUGIN_ERROR,
+                                    GS_PLUGIN_ERROR_INVALID_FORMAT,
+                                    "invalid package-id: %s",
+                                    gs_app_get_source_id_default (app));
+                       return FALSE;
+               }
                if (g_str_has_prefix (split[PK_PACKAGE_ID_DATA], "installed:")) 
{
                        id = split[PK_PACKAGE_ID_DATA] + 10;
                        app_tmp = g_hash_table_lookup (hash, id);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-systemd-updates.c 
new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-systemd-updates.c
--- old/gnome-software-3.26.3/plugins/packagekit/gs-plugin-systemd-updates.c    
2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/packagekit/gs-plugin-systemd-updates.c    
2017-12-17 09:58:55.000000000 +0100
@@ -179,12 +179,21 @@
                        continue;
                }
 
+               /* get ID details */
+               split = pk_package_id_split (package_ids[i]);
+               if (split == NULL) {
+                       g_set_error (error,
+                                    GS_PLUGIN_ERROR,
+                                    GS_PLUGIN_ERROR_INVALID_FORMAT,
+                                    "invalid package-id: %s", package_ids[i]);
+                       return FALSE;
+               }
+
                /* create new app */
                app = gs_app_new (NULL);
                gs_app_add_quirk (app, AS_APP_QUIRK_NEEDS_REBOOT);
                gs_app_set_management_plugin (app, "packagekit");
                gs_app_add_source_id (app, package_ids[i]);
-               split = pk_package_id_split (package_ids[i]);
                gs_app_add_source (app, split[PK_PACKAGE_ID_NAME]);
                gs_app_set_update_version (app, split[PK_PACKAGE_ID_VERSION]);
                gs_app_set_state (app, AS_APP_STATE_UPDATABLE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/repos/gs-plugin-repos.c 
new/gnome-software-3.26.4/plugins/repos/gs-plugin-repos.c
--- old/gnome-software-3.26.3/plugins/repos/gs-plugin-repos.c   2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/plugins/repos/gs-plugin-repos.c   2017-12-17 
09:58:55.000000000 +0100
@@ -26,6 +26,7 @@
 struct GsPluginData {
        GHashTable      *urls;          /* origin : url */
        GFileMonitor    *monitor;
+       GMutex           mutex;
        gchar           *reposdir;
        gboolean         valid;
 };
@@ -35,6 +36,8 @@
 {
        GsPluginData *priv = gs_plugin_alloc_data (plugin, 
sizeof(GsPluginData));
 
+       g_mutex_init (&priv->mutex);
+
        /* for debugging and the self tests */
        priv->reposdir = g_strdup (g_getenv ("GS_SELF_TEST_REPOS_DIR"));
        if (priv->reposdir == NULL)
@@ -62,8 +65,10 @@
                g_hash_table_unref (priv->urls);
        if (priv->monitor != NULL)
                g_object_unref (priv->monitor);
+       g_mutex_clear (&priv->mutex);
 }
 
+/* mutex must be held */
 static gboolean
 gs_plugin_repos_setup (GsPlugin *plugin, GCancellable *cancellable, GError 
**error)
 {
@@ -145,6 +150,7 @@
 {
        GsPluginData *priv = gs_plugin_get_data (plugin);
        g_autoptr(GFile) file = g_file_new_for_path (priv->reposdir);
+       g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&priv->mutex);
 
        /* watch for changes */
        priv->monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, 
cancellable, error);
@@ -168,6 +174,7 @@
 {
        GsPluginData *priv = gs_plugin_get_data (plugin);
        const gchar *tmp;
+       g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&priv->mutex);
 
        /* not required */
        if ((flags & GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_HOSTNAME) == 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-software-3.26.3/plugins/shell-extensions/gs-plugin-shell-extensions.c 
new/gnome-software-3.26.4/plugins/shell-extensions/gs-plugin-shell-extensions.c
--- 
old/gnome-software-3.26.3/plugins/shell-extensions/gs-plugin-shell-extensions.c 
    2017-11-21 12:01:08.000000000 +0100
+++ 
new/gnome-software-3.26.4/plugins/shell-extensions/gs-plugin-shell-extensions.c 
    2017-12-17 09:58:55.000000000 +0100
@@ -284,7 +284,10 @@
        /* not running under Shell */
        name_owner = g_dbus_proxy_get_name_owner (priv->proxy);
        if (name_owner == NULL) {
-               g_clear_object (&priv->proxy);
+               g_set_error_literal (error,
+                                    GS_PLUGIN_ERROR,
+                                    GS_PLUGIN_ERROR_NOT_SUPPORTED,
+                                    "gnome-shell is not running");
                return FALSE;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/po/cs.po 
new/gnome-software-3.26.4/po/cs.po
--- old/gnome-software-3.26.3/po/cs.po  2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/po/cs.po  2017-12-17 09:58:55.000000000 +0100
@@ -1350,7 +1350,7 @@
 
 #: src/gs-details-page.ui:823
 msgid "Age Rating"
-msgstr "Stáří hodnocení"
+msgstr "Hodnocení podle věku"
 
 #: src/gs-details-page.ui:861
 msgid "Updated"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/po/pl.po 
new/gnome-software-3.26.4/po/pl.po
--- old/gnome-software-3.26.3/po/pl.po  2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/po/pl.po  2017-12-17 09:58:55.000000000 +0100
@@ -9,8 +9,8 @@
 "Project-Id-Version: gnome-software\n"
 "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-";
 "software&keywords=I18N+L10N&component=General\n"
-"POT-Creation-Date: 2017-09-28 11:43+0000\n"
-"PO-Revision-Date: 2017-09-28 14:50+0200\n"
+"POT-Creation-Date: 2017-11-05 16:28+0000\n"
+"PO-Revision-Date: 2017-12-04 19:22+0100\n"
 "Last-Translator: Piotr Drąg <piotrd...@gmail.com>\n"
 "Language-Team: Polish <community-pol...@mozilla.org>\n"
 "Language: pl\n"
@@ -68,7 +68,7 @@
 msgid "The update details"
 msgstr "Informacje o aktualizacji"
 
-#: data/appdata/org.gnome.Software.appdata.xml.in:884
+#: data/appdata/org.gnome.Software.appdata.xml.in:900
 msgid "The GNOME Project"
 msgstr "Projekt GNOME"
 
@@ -364,7 +364,7 @@
 #. button in the info bar
 #. TRANSLATORS: this is a link to the
 #. * control-center network panel
-#: src/gnome-software.ui:372 src/gs-updates-page.c:1391
+#: src/gnome-software.ui:372 src/gs-updates-page.c:1392
 msgid "Network Settings"
 msgstr "Ustawienia sieci"
 
@@ -389,7 +389,7 @@
 
 #. TRANSLATORS: this is a button next to the search results that
 #. * shows the status of an application being installed
-#: src/gs-app-addon-row.c:105 src/gs-app-row.c:218 src/gs-details-page.c:439
+#: src/gs-app-addon-row.c:105 src/gs-app-row.c:218 src/gs-details-page.c:440
 msgid "Installing"
 msgstr "Instalowanie"
 
@@ -404,7 +404,7 @@
 msgstr "Nazwa katalogu"
 
 #: src/gs-app-folder-dialog.c:321 src/gs-app-folder-dialog.ui:16
-#: src/gs-details-page.c:379 src/gs-details-page.ui:330 src/gs-editor.c:623
+#: src/gs-details-page.c:380 src/gs-details-page.ui:330 src/gs-editor.c:623
 #: src/gs-editor.c:655 src/gs-installed-page.c:609 src/gs-removal-dialog.ui:33
 #: src/gs-review-dialog.ui:23 src/gs-upgrade-banner.ui:131
 msgid "_Cancel"
@@ -1166,14 +1166,14 @@
 #. * can be installed
 #. TRANSLATORS: button text in the header when firmware
 #. * can be live-installed
-#: src/gs-details-page.c:278 src/gs-details-page.c:308
+#: src/gs-details-page.c:279 src/gs-details-page.c:309
 #: src/gs-details-page.ui:206 src/gs-upgrade-banner.ui:146
 msgid "_Install"
 msgstr "_Zainstaluj"
 
 #. TRANSLATORS: button text in the header when an application
 #. * can be live-updated
-#: src/gs-details-page.c:313
+#: src/gs-details-page.c:314
 msgid "_Update"
 msgstr "Z_aktualizuj"
 
@@ -1181,21 +1181,21 @@
 #. * be installed.
 #. * The ellipsis indicates that further steps are required,
 #. * e.g. enabling software sources or the like
-#: src/gs-details-page.c:326
+#: src/gs-details-page.c:327
 msgid "_Install…"
 msgstr "_Zainstaluj…"
 
 #. TRANSLATORS: button text in the header when an application can be erased
-#: src/gs-details-page.c:373 src/gs-details-page.ui:242
+#: src/gs-details-page.c:374 src/gs-details-page.ui:242
 msgid "_Remove"
 msgstr "_Usuń"
 
-#: src/gs-details-page.c:434 src/gs-sources-dialog.c:513
+#: src/gs-details-page.c:435 src/gs-sources-dialog.c:513
 msgid "Removing…"
 msgstr "Usuwanie…"
 
 #. TRANSLATORS: this is the warning box
-#: src/gs-details-page.c:744
+#: src/gs-details-page.c:745
 msgid ""
 "This application can only be used when there is an active internet "
 "connection."
@@ -1204,53 +1204,53 @@
 "internetowe."
 
 #. TRANSLATORS: this is where the version is not known
-#: src/gs-details-page.c:879
+#: src/gs-details-page.c:880
 msgctxt "version"
 msgid "Unknown"
 msgstr "Nieznana"
 
 #. TRANSLATORS: this is where the updated date is not known
-#: src/gs-details-page.c:913
+#: src/gs-details-page.c:914
 msgctxt "updated"
 msgid "Never"
 msgstr "Nigdy"
 
 #. TRANSLATORS: this is where we don't know the origin of the
 #. * application
-#: src/gs-details-page.c:957
+#: src/gs-details-page.c:958
 msgctxt "origin"
 msgid "Unknown"
 msgstr "Nieznane"
 
 #. TRANSLATORS: we need a remote server to process
-#: src/gs-details-page.c:1361
+#: src/gs-details-page.c:1362
 msgid "You need internet access to write a review"
 msgstr "Wymagany jest dostęp do Internetu, aby napisać recenzję"
 
-#: src/gs-details-page.c:1490
+#: src/gs-details-page.c:1491
 #, c-format
 msgid "Unable to find “%s”"
 msgstr "Nie można odnaleźć „%s”"
 
 #. TRANSLATORS: see the wikipedia page
-#: src/gs-details-page.c:2065
+#: src/gs-details-page.c:2071
 msgid "Public domain"
 msgstr "Domena publiczna"
 
 #. TRANSLATORS: see GNU page
-#: src/gs-details-page.c:2081 src/gs-details-page.ui:1395
+#: src/gs-details-page.c:2087 src/gs-details-page.ui:1395
 msgid "Free Software"
 msgstr "Wolne oprogramowanie"
 
 #. TRANSLATORS: for the free software popover
-#: src/gs-details-page.c:2138
+#: src/gs-details-page.c:2144
 msgid "Users are bound by the following license:"
 msgid_plural "Users are bound by the following licenses:"
 msgstr[0] "Użytkowników obowiązuje ta licencja:"
 msgstr[1] "Użytkowników obowiązują te licencje:"
 msgstr[2] "Użytkowników obowiązują te licencje:"
 
-#: src/gs-details-page.c:2154 src/gs-details-page.ui:1504
+#: src/gs-details-page.c:2160 src/gs-details-page.ui:1504
 msgid "More information"
 msgstr "Więcej informacji"
 
@@ -2119,11 +2119,10 @@
 msgid "US$%.2f"
 msgstr "%.2f $"
 
-# This is currently broken, see 
https://bugzilla.gnome.org/show_bug.cgi?id=786704
 #: lib/gs-price.c:129
 #, c-format
 msgid "%s %f"
-msgstr "%s %f"
+msgstr "%2$f %1$s"
 
 #. TRANSLATORS: This is a text displayed during a distro upgrade. %s
 #. will be replaced by the name and version of distro, e.g. 'Fedora 23'.
@@ -2980,7 +2979,7 @@
 "zainstalowania"
 
 #. TRANSLATORS: button text
-#: src/gs-update-monitor.c:100 src/gs-updates-page.c:703
+#: src/gs-update-monitor.c:100 src/gs-updates-page.c:705
 msgid "Not Now"
 msgstr "Nie teraz"
 
@@ -3187,23 +3186,23 @@
 msgstr "Ostatnio wyszukano: %s"
 
 #. TRANSLATORS: we've just live-updated some apps
-#: src/gs-updates-page.c:699
+#: src/gs-updates-page.c:701
 msgid "Updates have been installed"
 msgstr "Zainstalowano aktualizacje"
 
 #. TRANSLATORS: the new apps will not be run until we restart
-#: src/gs-updates-page.c:701
+#: src/gs-updates-page.c:703
 msgid "A restart is required for them to take effect."
 msgstr "Wymagane jest ponowne uruchomienie, aby zastosować zmiany."
 
 #. TRANSLATORS: button text
-#: src/gs-updates-page.c:705
+#: src/gs-updates-page.c:707
 msgid "Restart"
 msgstr "Uruchom ponownie"
 
 #. TRANSLATORS: This is the header for system firmware that
 #. * requires a reboot to apply
-#: src/gs-updates-page.c:766
+#: src/gs-updates-page.c:768
 msgid "Integrated Firmware"
 msgstr "Zintegrowane oprogramowanie sprzętowe"
 
@@ -3211,31 +3210,31 @@
 #. * system firmware
 #. TRANSLATORS: This is the button for upgrading all
 #. * offline updates
-#: src/gs-updates-page.c:769 src/gs-updates-page.c:779
+#: src/gs-updates-page.c:771 src/gs-updates-page.c:781
 msgid "Restart & Update"
 msgstr "Uruchom ponownie i zaktualizuj"
 
 #. TRANSLATORS: This is the header for offline OS and offline
 #. * app updates that require a reboot to apply
-#: src/gs-updates-page.c:776
+#: src/gs-updates-page.c:778
 msgid "Requires Restart"
 msgstr "Wymaga ponownego uruchomienia"
 
 #. TRANSLATORS: This is the header for online runtime and
 #. * app updates, typically flatpaks or snaps
-#: src/gs-updates-page.c:786
+#: src/gs-updates-page.c:788
 msgid "Application Updates"
 msgstr "Aktualizacje programów"
 
 #. TRANSLATORS: This is the button for upgrading all
 #. * online-updatable applications
-#: src/gs-updates-page.c:789
+#: src/gs-updates-page.c:791
 msgid "Update All"
 msgstr "Zaktualizuj wszystko"
 
 #. TRANSLATORS: This is the header for device firmware that can
 #. * be installed online
-#: src/gs-updates-page.c:796
+#: src/gs-updates-page.c:798
 msgid "Device Firmware"
 msgstr "Oprogramowanie sprzętowe urządzenia"
 
@@ -3251,34 +3250,34 @@
 
 #. TRANSLATORS:  the first %s is the distro name, e.g. 'Fedora'
 #. * and the second %s is the distro version, e.g. '25'
-#: src/gs-updates-page.c:1088
+#: src/gs-updates-page.c:1089
 #, c-format
 msgid "%s %s is no longer supported."
 msgstr "System %s %s nie jest już wspierany."
 
 #. TRANSLATORS: OS refers to operating system, e.g. Fedora
-#: src/gs-updates-page.c:1093
+#: src/gs-updates-page.c:1094
 msgid "Your OS is no longer supported."
 msgstr "Używany system operacyjny nie jest już wspierany."
 
 #. TRANSLATORS: EOL distros do not get important updates
-#: src/gs-updates-page.c:1098
+#: src/gs-updates-page.c:1099
 msgid "This means that it does not receive security updates."
 msgstr "Oznacza to, że nie będzie otrzymywał aktualizacji bezpieczeństwa."
 
 #. TRANSLATORS: upgrade refers to a major update, e.g. Fedora 25 to 26
-#: src/gs-updates-page.c:1102
+#: src/gs-updates-page.c:1103
 msgid "It is recommended that you upgrade to a more recent version."
 msgstr "Zalecane jest zaktualizowanie do nowszej wersji."
 
 #. TRANSLATORS: this is to explain that downloading updates may cost money
-#: src/gs-updates-page.c:1359
+#: src/gs-updates-page.c:1360
 msgid "Charges may apply"
 msgstr "Możliwe koszty"
 
 #. TRANSLATORS: we need network
 #. * to do the updates check
-#: src/gs-updates-page.c:1363
+#: src/gs-updates-page.c:1364
 msgid ""
 "Checking for updates while using mobile broadband could cause you to incur "
 "charges."
@@ -3288,26 +3287,26 @@
 
 #. TRANSLATORS: this is a link to the
 #. * control-center network panel
-#: src/gs-updates-page.c:1367
+#: src/gs-updates-page.c:1368
 msgid "Check Anyway"
 msgstr "Wyszukaj mimo to"
 
 #. TRANSLATORS: can't do updates check
-#: src/gs-updates-page.c:1383
+#: src/gs-updates-page.c:1384
 msgid "No Network"
 msgstr "Brak sieci"
 
 #. TRANSLATORS: we need network
 #. * to do the updates check
-#: src/gs-updates-page.c:1387
+#: src/gs-updates-page.c:1388
 msgid "Internet access is required to check for updates."
 msgstr "Wymagany jest dostęp do Internetu, aby wyszukać aktualizacje."
 
-#: src/gs-updates-page.c:1792
+#: src/gs-updates-page.c:1793
 msgid "Restart & _Install"
 msgstr "_Uruchom ponownie i zainstaluj"
 
-#: src/gs-updates-page.c:1810
+#: src/gs-updates-page.c:1811
 msgid "Check for updates"
 msgstr "Wyszukaj aktualizacje"
 
@@ -3866,12 +3865,12 @@
 msgstr "Skopiowanie się nie powiodła"
 
 #. TRANSLATORS: status text when downloading
-#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:212
+#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:217
 msgid "Downloading upgrade information…"
 msgstr "Pobieranie informacji o aktualizacji…"
 
 #. TRANSLATORS: this is a title for Fedora distro upgrades
-#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:303
+#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:311
 msgid "Upgrade your Fedora system to the latest features and improvements."
 msgstr "Aktualizacja systemu Fedora do najnowszych funkcji i ulepszeń."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/po/ru.po 
new/gnome-software-3.26.4/po/ru.po
--- old/gnome-software-3.26.3/po/ru.po  2017-11-21 12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/po/ru.po  2017-12-17 09:58:55.000000000 +0100
@@ -12,9 +12,9 @@
 "Project-Id-Version: gnome-software master\n"
 "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-";
 "software&keywords=I18N+L10N&component=General\n"
-"POT-Creation-Date: 2017-09-04 17:53+0000\n"
-"PO-Revision-Date: 2017-09-04 22:53+0400\n"
-"Last-Translator: Yuri Myasoedov <ymyasoe...@yandex.ru>\n"
+"POT-Creation-Date: 2017-11-05 16:28+0000\n"
+"PO-Revision-Date: 2017-12-14 13:15+0300\n"
+"Last-Translator: Stas Solovey <whats...@tut.by>\n"
 "Language-Team: Русский <gnome-...@gnome.org>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
@@ -22,7 +22,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 2.0.2\n"
+"X-Generator: Poedit 2.0.5\n"
 
 #  перевод по аналогии с ubuntu software - центр приложений ubuntu
 #: data/appdata/org.gnome.Software.appdata.xml.in:7
@@ -73,7 +73,7 @@
 msgid "The update details"
 msgstr "Подробности об обновлении"
 
-#: data/appdata/org.gnome.Software.appdata.xml.in:861
+#: data/appdata/org.gnome.Software.appdata.xml.in:900
 msgid "The GNOME Project"
 msgstr "Проект GNOME"
 
@@ -363,7 +363,7 @@
 #. button in the info bar
 #. TRANSLATORS: this is a link to the
 #. * control-center network panel
-#: src/gnome-software.ui:372 src/gs-updates-page.c:1391
+#: src/gnome-software.ui:372 src/gs-updates-page.c:1392
 msgid "Network Settings"
 msgstr "Параметры сети"
 
@@ -388,7 +388,7 @@
 
 #. TRANSLATORS: this is a button next to the search results that
 #. * shows the status of an application being installed
-#: src/gs-app-addon-row.c:105 src/gs-app-row.c:218 src/gs-details-page.c:439
+#: src/gs-app-addon-row.c:105 src/gs-app-row.c:218 src/gs-details-page.c:440
 msgid "Installing"
 msgstr "Устанавливается"
 
@@ -403,7 +403,7 @@
 msgstr "Имя папки"
 
 #: src/gs-app-folder-dialog.c:321 src/gs-app-folder-dialog.ui:16
-#: src/gs-details-page.c:379 src/gs-details-page.ui:330 src/gs-editor.c:623
+#: src/gs-details-page.c:380 src/gs-details-page.ui:330 src/gs-editor.c:623
 #: src/gs-editor.c:655 src/gs-installed-page.c:609 src/gs-removal-dialog.ui:33
 #: src/gs-review-dialog.ui:23 src/gs-upgrade-banner.ui:131
 msgid "_Cancel"
@@ -607,6 +607,10 @@
 msgid "PIN"
 msgstr "PIN"
 
+#: src/gs-auth-dialog.ui:325
+msgid "Authenticate"
+msgstr "Авторизоваться"
+
 #: src/gs-auth-dialog.ui:337
 msgid "Continue"
 msgstr "Продолжить"
@@ -1164,14 +1168,14 @@
 #. * can be installed
 #. TRANSLATORS: button text in the header when firmware
 #. * can be live-installed
-#: src/gs-details-page.c:278 src/gs-details-page.c:308
+#: src/gs-details-page.c:279 src/gs-details-page.c:309
 #: src/gs-details-page.ui:206 src/gs-upgrade-banner.ui:146
 msgid "_Install"
 msgstr "_Установить"
 
 #. TRANSLATORS: button text in the header when an application
 #. * can be live-updated
-#: src/gs-details-page.c:313
+#: src/gs-details-page.c:314
 msgid "_Update"
 msgstr "_Обновить"
 
@@ -1179,21 +1183,21 @@
 #. * be installed.
 #. * The ellipsis indicates that further steps are required,
 #. * e.g. enabling software sources or the like
-#: src/gs-details-page.c:326
+#: src/gs-details-page.c:327
 msgid "_Install…"
 msgstr "Ус_тановить…"
 
 #. TRANSLATORS: button text in the header when an application can be erased
-#: src/gs-details-page.c:373 src/gs-details-page.ui:242
+#: src/gs-details-page.c:374 src/gs-details-page.ui:242
 msgid "_Remove"
 msgstr "У_далить"
 
-#: src/gs-details-page.c:434 src/gs-sources-dialog.c:513
+#: src/gs-details-page.c:435 src/gs-sources-dialog.c:513
 msgid "Removing…"
 msgstr "Удаление…"
 
 #. TRANSLATORS: this is the warning box
-#: src/gs-details-page.c:744
+#: src/gs-details-page.c:745
 msgid ""
 "This application can only be used when there is an active internet "
 "connection."
@@ -1202,54 +1206,54 @@
 "подключения."
 
 #. TRANSLATORS: this is where the version is not known
-#: src/gs-details-page.c:879
+#: src/gs-details-page.c:880
 msgctxt "version"
 msgid "Unknown"
 msgstr "Неизвестная"
 
 #. TRANSLATORS: this is where the updated date is not known
-#: src/gs-details-page.c:913
+#: src/gs-details-page.c:914
 msgctxt "updated"
 msgid "Never"
 msgstr "Не обновлялось"
 
 #. TRANSLATORS: this is where we don't know the origin of the
 #. * application
-#: src/gs-details-page.c:957
+#: src/gs-details-page.c:958
 msgctxt "origin"
 msgid "Unknown"
 msgstr "Неизвестно"
 
 #. TRANSLATORS: we need a remote server to process
-#: src/gs-details-page.c:1361
+#: src/gs-details-page.c:1362
 msgid "You need internet access to write a review"
 msgstr "Для написания отзыва необходимо подключение к Интернету"
 
-#: src/gs-details-page.c:1490
+#: src/gs-details-page.c:1491
 #, c-format
 msgid "Unable to find “%s”"
 msgstr "Не удалось найти «%s»"
 
 #. TRANSLATORS: see the wikipedia page
-#: src/gs-details-page.c:2065
+#: src/gs-details-page.c:2071
 msgid "Public domain"
 msgstr "Общественное достояние"
 
 #  перевод по аналогии с ubuntu software - центр приложений ubuntu
 #. TRANSLATORS: see GNU page
-#: src/gs-details-page.c:2081 src/gs-details-page.ui:1395
+#: src/gs-details-page.c:2087 src/gs-details-page.ui:1395
 msgid "Free Software"
 msgstr "Свободное ПО"
 
 #. TRANSLATORS: for the free software popover
-#: src/gs-details-page.c:2138
+#: src/gs-details-page.c:2144
 msgid "Users are bound by the following license:"
 msgid_plural "Users are bound by the following licenses:"
 msgstr[0] "Пользователи ограничены следующей лицензией:"
 msgstr[1] "Пользователи ограничены следующими лицензиями:"
 msgstr[2] "Пользователи ограничены следующими лицензиями:"
 
-#: src/gs-details-page.c:2154 src/gs-details-page.ui:1504
+#: src/gs-details-page.c:2160 src/gs-details-page.ui:1504
 msgid "More information"
 msgstr "Больше информации"
 
@@ -1574,6 +1578,10 @@
 msgid "Undo"
 msgstr "Отменить"
 
+#: src/gs-editor.ui:524 src/org.gnome.Software.Editor.desktop.in:3
+msgid "Banner Designer"
+msgstr "Конструктор баннеров"
+
 #: src/gs-editor.ui:547
 msgid "New Banner"
 msgstr "Новый макет"
@@ -2955,7 +2963,7 @@
 msgstr "Важные обновления ОС и приложений готовы к установке"
 
 #. TRANSLATORS: button text
-#: src/gs-update-monitor.c:100 src/gs-updates-page.c:703
+#: src/gs-update-monitor.c:100 src/gs-updates-page.c:705
 msgid "Not Now"
 msgstr "Не сейчас"
 
@@ -3161,23 +3169,23 @@
 msgstr "Последняя проверка: %s"
 
 #. TRANSLATORS: we've just live-updated some apps
-#: src/gs-updates-page.c:699
+#: src/gs-updates-page.c:701
 msgid "Updates have been installed"
 msgstr "Обновления были установлены"
 
 #. TRANSLATORS: the new apps will not be run until we restart
-#: src/gs-updates-page.c:701
+#: src/gs-updates-page.c:703
 msgid "A restart is required for them to take effect."
 msgstr "Необходима перезагрузка, чтобы изменения вступили в силу."
 
 #. TRANSLATORS: button text
-#: src/gs-updates-page.c:705
+#: src/gs-updates-page.c:707
 msgid "Restart"
 msgstr "Перезапустить"
 
 #. TRANSLATORS: This is the header for system firmware that
 #. * requires a reboot to apply
-#: src/gs-updates-page.c:766
+#: src/gs-updates-page.c:768
 msgid "Integrated Firmware"
 msgstr "Встроенная прошивка"
 
@@ -3185,31 +3193,31 @@
 #. * system firmware
 #. TRANSLATORS: This is the button for upgrading all
 #. * offline updates
-#: src/gs-updates-page.c:769 src/gs-updates-page.c:779
+#: src/gs-updates-page.c:771 src/gs-updates-page.c:781
 msgid "Restart & Update"
 msgstr "Перезапустить и обновить"
 
 #. TRANSLATORS: This is the header for offline OS and offline
 #. * app updates that require a reboot to apply
-#: src/gs-updates-page.c:776
+#: src/gs-updates-page.c:778
 msgid "Requires Restart"
 msgstr "Требуется перезапуск"
 
 #. TRANSLATORS: This is the header for online runtime and
 #. * app updates, typically flatpaks or snaps
-#: src/gs-updates-page.c:786
+#: src/gs-updates-page.c:788
 msgid "Application Updates"
 msgstr "Обновления приложения"
 
 #. TRANSLATORS: This is the button for upgrading all
 #. * online-updatable applications
-#: src/gs-updates-page.c:789
+#: src/gs-updates-page.c:791
 msgid "Update All"
 msgstr "Обновить всё"
 
 #. TRANSLATORS: This is the header for device firmware that can
 #. * be installed online
-#: src/gs-updates-page.c:796
+#: src/gs-updates-page.c:798
 msgid "Device Firmware"
 msgstr "Прошивка устройства"
 
@@ -3225,35 +3233,35 @@
 
 #. TRANSLATORS:  the first %s is the distro name, e.g. 'Fedora'
 #. * and the second %s is the distro version, e.g. '25'
-#: src/gs-updates-page.c:1088
+#: src/gs-updates-page.c:1089
 #, c-format
 msgid "%s %s is no longer supported."
 msgstr "%s %s больше не поддерживается."
 
 #. TRANSLATORS: OS refers to operating system, e.g. Fedora
-#: src/gs-updates-page.c:1093
+#: src/gs-updates-page.c:1094
 msgid "Your OS is no longer supported."
 msgstr "Ваша ОС больше не поддерживается."
 
 #. TRANSLATORS: EOL distros do not get important updates
-#: src/gs-updates-page.c:1098
+#: src/gs-updates-page.c:1099
 msgid "This means that it does not receive security updates."
 msgstr ""
 "Это означает, что система больше не будет получать обновления безопасности."
 
 #. TRANSLATORS: upgrade refers to a major update, e.g. Fedora 25 to 26
-#: src/gs-updates-page.c:1102
+#: src/gs-updates-page.c:1103
 msgid "It is recommended that you upgrade to a more recent version."
 msgstr "Рекомендуется выполнить обновление до более новой версии."
 
 #. TRANSLATORS: this is to explain that downloading updates may cost money
-#: src/gs-updates-page.c:1359
+#: src/gs-updates-page.c:1360
 msgid "Charges may apply"
 msgstr "Возможны дополнительные расходы"
 
 #. TRANSLATORS: we need network
 #. * to do the updates check
-#: src/gs-updates-page.c:1363
+#: src/gs-updates-page.c:1364
 msgid ""
 "Checking for updates while using mobile broadband could cause you to incur "
 "charges."
@@ -3264,26 +3272,26 @@
 
 #. TRANSLATORS: this is a link to the
 #. * control-center network panel
-#: src/gs-updates-page.c:1367
+#: src/gs-updates-page.c:1368
 msgid "Check Anyway"
 msgstr "Всё равно проверить"
 
 #. TRANSLATORS: can't do updates check
-#: src/gs-updates-page.c:1383
+#: src/gs-updates-page.c:1384
 msgid "No Network"
 msgstr "Нет сети"
 
 #. TRANSLATORS: we need network
 #. * to do the updates check
-#: src/gs-updates-page.c:1387
+#: src/gs-updates-page.c:1388
 msgid "Internet access is required to check for updates."
 msgstr "Для проверки обновлений требуется подключение к Интернету."
 
-#: src/gs-updates-page.c:1792
+#: src/gs-updates-page.c:1793
 msgid "Restart & _Install"
 msgstr "Перезапустить и _установить"
 
-#: src/gs-updates-page.c:1810
+#: src/gs-updates-page.c:1811
 msgid "Check for updates"
 msgstr "Проверить наличие обновлений"
 
@@ -3384,10 +3392,6 @@
 "Обновления;Источники;Репозитории;Параметры;Установить;Удалить;Программа;"
 "Приложение;Магазин;"
 
-#: src/org.gnome.Software.Editor.desktop.in:3
-msgid "Banner Designer"
-msgstr "Конструктор баннеров"
-
 #: src/org.gnome.Software.Editor.desktop.in:4
 msgid "Design the featured banners for GNOME Software"
 msgstr "Проектировка баннеров для центра приложений GNOME"
@@ -3849,12 +3853,12 @@
 msgstr "Сбой копирования"
 
 #. TRANSLATORS: status text when downloading
-#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:212
+#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:217
 msgid "Downloading upgrade information…"
 msgstr "Загрузка сведений об обновлениях…"
 
 #. TRANSLATORS: this is a title for Fedora distro upgrades
-#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:303
+#: plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c:311
 msgid "Upgrade your Fedora system to the latest features and improvements."
 msgstr "Обновите Fedora для получения последних возможностей и улучшений."
 
@@ -3873,10 +3877,9 @@
 msgstr "Получение метаданных flatpak для %s…"
 
 #. TRANSLATORS: status text when downloading the RuntimeRepo
-#: plugins/flatpak/gs-flatpak.c:2606
-#, fuzzy
+#: plugins/flatpak/gs-flatpak.c:2617
 msgid "Getting runtime source…"
-msgstr "Получение источника…"
+msgstr "Получение источника исполняемой библиотеки…"
 
 #. TRANSLATORS: status text when downloading
 #: plugins/fwupd/gs-plugin-fwupd.c:801
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-application.c 
new/gnome-software-3.26.4/src/gs-application.c
--- old/gnome-software-3.26.3/src/gs-application.c      2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-application.c      2017-12-17 
09:58:55.000000000 +0100
@@ -625,6 +625,35 @@
        gs_shell_install (app->shell, a, interaction);
 }
 
+static GFile *
+_copy_file_to_cache (GFile *file_src, GError **error)
+{
+       g_autoptr(GFile) file_dest = NULL;
+       g_autofree gchar *cache_dir = NULL;
+       g_autofree gchar *cache_fn = NULL;
+       g_autofree gchar *filename = NULL;
+       g_autofree gchar *basename = NULL;
+
+       /* get destination location */
+       filename = g_file_get_path (file_src);
+       cache_dir = g_dir_make_tmp ("gnome-software-XXXXXX", error);
+       if (cache_dir == NULL)
+               return NULL;
+       basename = g_file_get_basename (file_src);
+       cache_fn = g_build_filename (cache_dir, basename, NULL);
+
+       /* copy file to cache */
+       file_dest = g_file_new_for_path (cache_fn);
+       if (!g_file_copy (file_src, file_dest,
+                         G_FILE_COPY_OVERWRITE,
+                         NULL, /* cancellable */
+                         NULL, NULL, /* progress */
+                         error)) {
+               return NULL;
+       }
+       return g_steal_pointer (&file_dest);
+}
+
 static void
 filename_activated (GSimpleAction *action,
                    GVariant      *parameter,
@@ -637,7 +666,21 @@
        gs_application_initialize_ui (app);
 
        g_variant_get (parameter, "(&s)", &filename);
-       file = g_file_new_for_path (filename);
+
+       /* this could go away at any moment, so make a local copy */
+       if (g_str_has_prefix (filename, "/tmp") ||
+           g_str_has_prefix (filename, "/var/tmp")) {
+               g_autoptr(GError) error = NULL;
+               g_autoptr(GFile) file_src = g_file_new_for_path (filename);
+               file = _copy_file_to_cache (file_src, &error);
+               if (file == NULL) {
+                       g_warning ("failed to copy file, falling back to %s: 
%s",
+                                  filename, error->message);
+                       file = g_file_new_for_path (filename);
+               }
+       } else {
+               file = g_file_new_for_path (filename);
+       }
        gs_shell_show_local_file (app->shell, file);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-details-page.c 
new/gnome-software-3.26.4/src/gs-details-page.c
--- old/gnome-software-3.26.3/src/gs-details-page.c     2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-details-page.c     2017-12-17 
09:58:55.000000000 +0100
@@ -62,6 +62,7 @@
        GsShell                 *shell;
        SoupSession             *session;
        gboolean                 enable_reviews;
+       gboolean                 show_all_reviews;
        GSettings               *settings;
 
        GtkWidget               *application_details_icon;
@@ -1341,13 +1342,15 @@
                }
                gs_review_row_set_actions (GS_REVIEW_ROW (row), actions);
                gtk_container_add (GTK_CONTAINER (self->list_box_reviews), row);
-               gtk_widget_set_visible (row, i < SHOW_NR_REVIEWS_INITIAL);
+               gtk_widget_set_visible (row, self->show_all_reviews ||
+                                            i < SHOW_NR_REVIEWS_INITIAL);
                gs_review_row_set_network_available (GS_REVIEW_ROW (row),
                                                     
gs_plugin_loader_get_network_available (self->plugin_loader));
        }
 
        /* only show the button if there are more to show */
        gtk_widget_set_visible (self->button_more_reviews,
+                               !self->show_all_reviews &&
                                reviews->len > SHOW_NR_REVIEWS_INITIAL);
 
        /* show the button only if the user never reviewed */
@@ -1514,6 +1517,9 @@
 {
        g_autofree gchar *tmp = NULL;
 
+       /* do not show all the reviews by default */
+       self->show_all_reviews = FALSE;
+
        /* disconnect the old handlers */
        if (self->app != NULL) {
                g_signal_handlers_disconnect_by_func (self->app, 
gs_details_page_notify_state_changed_cb, self);
@@ -1956,6 +1962,7 @@
 static void
 gs_details_page_more_reviews_button_cb (GtkWidget *widget, GsDetailsPage *self)
 {
+       self->show_all_reviews = TRUE;
        gtk_container_foreach (GTK_CONTAINER (self->list_box_reviews),
                               (GtkCallback) gtk_widget_show, NULL);
        gtk_widget_set_visible (self->button_more_reviews, FALSE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-sources-dialog.c 
new/gnome-software-3.26.4/src/gs-sources-dialog.c
--- old/gnome-software-3.26.3/src/gs-sources-dialog.c   2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-sources-dialog.c   2017-12-17 
09:58:55.000000000 +0100
@@ -316,9 +316,6 @@
        g_autoptr(GError) error = NULL;
        g_autoptr(GsAppList) list = NULL;
 
-       /* show results */
-       gs_stop_spinner (GTK_SPINNER (dialog->spinner));
-
        /* get the results */
        list = gs_plugin_loader_job_process_finish (plugin_loader, res, &error);
        if (list == NULL) {
@@ -326,6 +323,7 @@
                                     GS_PLUGIN_ERROR,
                                     GS_PLUGIN_ERROR_CANCELLED)) {
                        g_debug ("get sources cancelled");
+                       return;
                } else {
                        g_warning ("failed to get sources: %s", error->message);
                }
@@ -335,9 +333,14 @@
                return;
        }
 
+       /* stop the spinner */
+       gs_stop_spinner (GTK_SPINNER (dialog->spinner));
+
        /* no results */
        if (gs_app_list_length (list) == 0) {
                g_debug ("no sources to show");
+               gtk_stack_set_visible_child_name (GTK_STACK (dialog->stack), 
"empty");
+               gtk_style_context_add_class (gtk_widget_get_style_context 
(dialog->label_header), "dim-label");
                return;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-update-dialog.c 
new/gnome-software-3.26.4/src/gs-update-dialog.c
--- old/gnome-software-3.26.3/src/gs-update-dialog.c    2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-update-dialog.c    2017-12-17 
09:58:55.000000000 +0100
@@ -250,6 +250,7 @@
        plugin_job = gs_plugin_job_newv 
(GS_PLUGIN_ACTION_GET_UPDATES_HISTORICAL,
                                         "failure-flags", 
GS_PLUGIN_FAILURE_FLAGS_NONE,
                                         "refine-flags", 
GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_DETAILS |
+                                                        
GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON |
                                                         
GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION,
                                         NULL);
        gs_plugin_loader_job_process_async (dialog->plugin_loader, plugin_job,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-update-list.c 
new/gnome-software-3.26.4/src/gs-update-list.c
--- old/gnome-software-3.26.3/src/gs-update-list.c      2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-update-list.c      2017-12-17 
09:58:55.000000000 +0100
@@ -59,9 +59,9 @@
                                    priv->sizegroup_image,
                                    priv->sizegroup_name,
                                    NULL);
-       g_signal_connect (app, "notify::state",
-                         G_CALLBACK (gs_update_list_app_state_notify_cb),
-                         app_row);
+       g_signal_connect_object (app, "notify::state",
+                                G_CALLBACK 
(gs_update_list_app_state_notify_cb),
+                                app_row, 0);
        gtk_widget_show (app_row);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-software-3.26.3/src/gs-updates-page.c 
new/gnome-software-3.26.4/src/gs-updates-page.c
--- old/gnome-software-3.26.3/src/gs-updates-page.c     2017-11-21 
12:01:08.000000000 +0100
+++ new/gnome-software-3.26.4/src/gs-updates-page.c     2017-12-17 
09:58:55.000000000 +0100
@@ -931,9 +931,9 @@
                                    self->sizegroup_image,
                                    self->sizegroup_name,
                                    self->sizegroup_button);
-       g_signal_connect (app, "notify::state",
-                         G_CALLBACK (_app_state_notify_cb),
-                         app_row);
+       g_signal_connect_object (app, "notify::state",
+                                G_CALLBACK (_app_state_notify_cb),
+                                app_row, 0);
 }
 
 static void


Reply via email to