summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Konotopov <ykonotopov@gnome.org>2017-01-26 18:38:56 +0400
committerDavid Seifert <soap@gentoo.org>2017-01-26 23:45:55 +0100
commit60ef078452baefdcd4df087ced1ecac9965e4dc6 (patch)
tree7a711c36e71003667cb0ba8bc40e3502281ffe3a /gnome-extra
parentsys-apps/qdirstat: bump to version 1.2 (diff)
downloadgentoo-60ef078452baefdcd4df087ced1ecac9965e4dc6.tar.gz
gentoo-60ef078452baefdcd4df087ced1ecac9965e4dc6.tar.bz2
gentoo-60ef078452baefdcd4df087ced1ecac9965e4dc6.zip
gnome-extra/chrome-gnome-shell: added patches to fix various issues.
Closes: https://github.com/gentoo/gentoo/pull/3660
Diffstat (limited to 'gnome-extra')
-rw-r--r--gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8-r1.ebuild (renamed from gnome-extra/chrome-gnome-shell/chrome-gnome-shell-8.ebuild)8
-rw-r--r--gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-enabled-extensions-array.patch32
-rw-r--r--gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-get_dbus_connection.patch91
-rw-r--r--gnome-extra/chrome-gnome-shell/files/chrome-gnome-shell-8-metadata-version.patch28
4 files changed, 158 insertions, 1 deletions
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
index 5eed8d81c4e2..495e02ee7386 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 000000000000..7a56ca0256be
--- /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 <ykonotopov@gnome.org>
+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 000000000000..be5f6c4e51d0
--- /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 <ykonotopov@gnome.org>
+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 000000000000..238d1fcd1df6
--- /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 <ykonotopov@gnome.org>
+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
+