commit:     60ef078452baefdcd4df087ced1ecac9965e4dc6
Author:     Yuri Konotopov <ykonotopov <AT> gnome <DOT> org>
AuthorDate: Thu Jan 26 14:38:56 2017 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 22:45:55 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60ef0784

gnome-extra/chrome-gnome-shell: added patches to fix various issues.

Closes: https://github.com/gentoo/gentoo/pull/3660

 ...ell-8.ebuild => chrome-gnome-shell-8-r1.ebuild} |  8 +-
 ...me-gnome-shell-8-enabled-extensions-array.patch | 32 ++++++++
 .../chrome-gnome-shell-8-get_dbus_connection.patch | 91 ++++++++++++++++++++++
 .../chrome-gnome-shell-8-metadata-version.patch    | 28 +++++++
 4 files changed, 158 insertions(+), 1 deletion(-)

diff --git a/gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8.ebuild 
b/gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8-r1.ebuild
similarity index 92%
rename from gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8.ebuild
rename to gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8-r1.ebuild
index 5eed8d8..495e02e 100644
--- a/gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8.ebuild
+++ b/gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8-r1.ebuild
@@ -24,11 +24,17 @@ DEPEND="${PYTHON_DEPS}
        sys-apps/coreutils
 "
 RDEPEND="${PYTHON_DEPS}
-       dev-python/requests[${PYTHON_USEDEP}]
        dev-python/pygobject:3[${PYTHON_USEDEP}]
+       dev-python/requests[${PYTHON_USEDEP}]
        gnome-base/gnome-shell
 "
 
+PATCHES=(
+       "${FILESDIR}/${P}"-enabled-extensions-array.patch
+       "${FILESDIR}/${P}"-metadata-version.patch
+       "${FILESDIR}/${P}"-get_dbus_connection.patch
+)
+
 src_configure() {
        local mycmakeargs=( -DBUILD_EXTENSION=OFF )
        cmake-utils_src_configure

diff --git 
a/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-enabled-extensions-array.patch
 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-enabled-extensions-array.patch
new file mode 100644
index 00000000..7a56ca0
--- /dev/null
+++ 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-enabled-extensions-array.patch
@@ -0,0 +1,32 @@
+From 1de3c56c636adfdb74970bf9d7a5424af3830d92 Mon Sep 17 00:00:00 2001
+From: Yuri Konotopov <[email protected]>
+Date: Mon, 23 Jan 2017 19:43:30 +0400
+Subject: [PATCH 3/6] connector: assume that "enabled-extensions" array can
+ contains duplicates
+
+See-Also: https://bugzilla.gnome.org/show_bug.cgi?id=777650
+Fixes: https://github.com/nE0sIghT/chrome-gnome-shell-mirror/issues/26
+---
+ connector/chrome-gnome-shell.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/connector/chrome-gnome-shell.py b/connector/chrome-gnome-shell.py
+index 719a347..0b92d83 100755
+--- a/connector/chrome-gnome-shell.py
++++ b/connector/chrome-gnome-shell.py
+@@ -424,9 +424,10 @@ class ChromeGNOMEShell(Gio.Application):
+                     continue
+ 
+                 if extension['enable']:
+-                    uuids.append(extension['uuid'])
++                    if not extension['uuid'] in uuids:
++                        uuids.append(extension['uuid'])
+                 elif extension['uuid'] in uuids:
+-                    uuids.remove(extension['uuid'])
++                    uuids = [value for value in uuids if value != 
extension['uuid']]
+ 
+             settings.set_strv(ENABLED_EXTENSIONS_KEY, uuids)
+ 
+-- 
+2.10.2
+

diff --git 
a/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-get_dbus_connection.patch
 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-get_dbus_connection.patch
new file mode 100644
index 00000000..be5f6c4
--- /dev/null
+++ 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-get_dbus_connection.patch
@@ -0,0 +1,91 @@
+From dca4a3538f86d8e2e957945a691430573192716d Mon Sep 17 00:00:00 2001
+From: Yuri Konotopov <[email protected]>
+Date: Tue, 24 Jan 2017 19:42:19 +0400
+Subject: [PATCH 6/6] connector: do not use get_dbus_connection after
+ GApplication was released.
+
+Fixes: https://github.com/nE0sIghT/chrome-gnome-shell-mirror/issues/27
+---
+ connector/chrome-gnome-shell.py | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/connector/chrome-gnome-shell.py b/connector/chrome-gnome-shell.py
+index 0f6e5f1..ac6740a 100755
+--- a/connector/chrome-gnome-shell.py
++++ b/connector/chrome-gnome-shell.py
+@@ -106,21 +106,26 @@ class ChromeGNOMEShell(Gio.Application):
+             self.hold()
+ 
+     # Is there any way to hook this to shutdown?
+-    def cleanup(self):
+-        debug('Cleanup')
++    def clean_release(self):
++        debug('Release')
+ 
+         if self.shellAppearedId:
+             Gio.bus_unwatch_name(self.shellAppearedId)
+ 
+         if self.shellSignalId:
+-            self.get_dbus_connection().signal_unsubscribe(self.shellSignalId)
++            dbus_connection = self.get_dbus_connection()
++
++            if dbus_connection is not None:
++                dbus_connection.signal_unsubscribe(self.shellSignalId)
++
++        self.release()
+ 
+     def default_exception_hook(self, exception_type, value, tb):
+         log_error("Uncaught exception of type %s occured" % exception_type)
+         traceback.print_tb(tb)
+         log_error("Exception: %s" % value)
+ 
+-        self.release()
++        self.clean_release()
+ 
+     def add_simple_action(self, name, callback, parameter_type):
+         action = Gio.SimpleAction.new(
+@@ -191,7 +196,7 @@ class ChromeGNOMEShell(Gio.Application):
+     # noinspection PyUnusedLocal
+     def on_service_timeout(self, data):
+         debug('On service timeout')
+-        self.release()
++        self.clean_release()
+ 
+         return False
+ 
+@@ -203,7 +208,7 @@ class ChromeGNOMEShell(Gio.Application):
+ 
+         if len(text_length_bytes) == 0:
+             debug('Release condition: %s' % str(condition))
+-            self.release()
++            self.clean_release()
+             return
+ 
+         # Unpack message length as 4 byte integer.
+@@ -255,14 +260,14 @@ class ChromeGNOMEShell(Gio.Application):
+     # noinspection PyUnusedLocal
+     def on_hup(self, source, condition, data):
+         debug('On hup: %s' % str(condition))
+-        self.release()
++        self.clean_release()
+ 
+         return False
+ 
+     # noinspection PyUnusedLocal
+     def on_sigint(self, data):
+         debug('On sigint')
+-        self.release()
++        self.clean_release()
+ 
+         return False
+ 
+@@ -545,6 +550,5 @@ if __name__ == '__main__':
+     app = ChromeGNOMEShell('--gapplication-service' in sys.argv)
+ 
+     app.run(sys.argv)
+-    app.cleanup()
+ 
+     debug('Quit')
+-- 
+2.10.2
+

diff --git 
a/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-metadata-version.patch
 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-metadata-version.patch
new file mode 100644
index 00000000..238d1fc
--- /dev/null
+++ 
b/gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-metadata-version.patch
@@ -0,0 +1,28 @@
+From 48ded6911e60fb8415190b252ca420b994e6c525 Mon Sep 17 00:00:00 2001
+From: Yuri Konotopov <[email protected]>
+Date: Mon, 23 Jan 2017 22:29:12 +0400
+Subject: [PATCH 4/6] connector: assume version 1 for extensions without
+ version in metadata
+
+Bug: https://github.com/nE0sIghT/chrome-gnome-shell-mirror/issues/27
+See-Also: 
https://git.gnome.org/browse/extensions-web/commit/?id=214f03ee90f0f391d3d4fdec23feedf45e3d0507
+---
+ connector/chrome-gnome-shell.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/connector/chrome-gnome-shell.py b/connector/chrome-gnome-shell.py
+index 0b92d83..0f6e5f1 100755
+--- a/connector/chrome-gnome-shell.py
++++ b/connector/chrome-gnome-shell.py
+@@ -506,7 +506,7 @@ class ChromeGNOMEShell(Gio.Application):
+                         http_request['installed'][uuid] = {
+                             'version': int(extensions[uuid]['version'])
+                         }
+-                    except ValueError:
++                    except (ValueError, KeyError):
+                         http_request['installed'][uuid] = {
+                             'version': 1
+                         }
+-- 
+2.10.2
+

Reply via email to