diff --git a/debian/changelog b/debian/changelog index f415669f..95e56b41 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,9 @@ gnome-shell-extensions (3.26.2-3) UNRELEASED; urgency=medium [ Simon McVittie ] * d/patches: Re-export with gbp pq export + * d/p/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch: + Take patch from upstream to avoid frequent tracebacks from the Places + menu with gjs >= 1.50.2-3 (Closes: #888608) -- Jeremy Bicha Fri, 19 Jan 2018 20:44:11 -0500 diff --git a/debian/patches/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch b/debian/patches/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch new file mode 100644 index 00000000..2fbc9551 --- /dev/null +++ b/debian/patches/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch @@ -0,0 +1,63 @@ +From: =?utf-8?q?Florian_M=C3=BCllner?= +Date: Wed, 17 Jan 2018 21:57:49 +0100 +Subject: places-menu: Don't force dispose() of uninitialized proxies + +Trying to dispose a proxy object before it has been properly +initialized triggers an "uncatchable exception", which gjs +treats as a fatal error since commit c7bdcaab4. We only have +anything to clean up once the proxy is initialized anyway, so +don't force dispose() before that. + +Origin: upstream, 3.26.2, commit:61594afd687bf5883cc39fa79c5fbdb0d4cc9eda +Bug: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/44 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888608 +--- + extensions/places-menu/placeDisplay.js | 28 ++++++++++++++++------------ + 1 file changed, 16 insertions(+), 12 deletions(-) + +diff --git a/extensions/places-menu/placeDisplay.js b/extensions/places-menu/placeDisplay.js +index ba316bf..9647d63 100644 +--- a/extensions/places-menu/placeDisplay.js ++++ b/extensions/places-menu/placeDisplay.js +@@ -136,17 +136,18 @@ const RootInfo = new Lang.Class({ + _init: function() { + this.parent('devices', Gio.File.new_for_path('/'), _("Computer")); + +- this._proxy = new Hostname1(Gio.DBus.system, +- 'org.freedesktop.hostname1', +- '/org/freedesktop/hostname1', +- Lang.bind(this, function(obj, error) { +- if (error) +- return; +- +- this._proxy.connect('g-properties-changed', +- Lang.bind(this, this._propertiesChanged)); +- this._propertiesChanged(obj); +- })); ++ new Hostname1(Gio.DBus.system, ++ 'org.freedesktop.hostname1', ++ '/org/freedesktop/hostname1', ++ Lang.bind(this, function(obj, error) { ++ if (error) ++ return; ++ ++ this._proxy = obj; ++ this._proxy.connect('g-properties-changed', ++ Lang.bind(this, this._propertiesChanged)); ++ this._propertiesChanged(obj); ++ })); + }, + + getIcon: function() { +@@ -163,7 +164,10 @@ const RootInfo = new Lang.Class({ + }, + + destroy: function() { +- this._proxy.run_dispose(); ++ if (this._proxy) { ++ this._proxy.run_dispose(); ++ this._proxy = null; ++ } + this.parent(); + } + }); diff --git a/debian/patches/series b/debian/patches/series index 6410b5c4..3e8344b1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ +places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch dont-require-nautilus-classic.patch gnome-session-classic-wrapper-script.patch