Control: tags -1 + upstream fixed-upstream patch pending

Le samedi 17 août 2013 à 23:12 +0200, Sébastien Villemot a écrit :
> Package: workrave
> Version: 1.10.1-1
> Severity: important

> Since the upload of gjs 1.36 in unstable, the GNOME workrave extension no
> longer starts. The error message is:

I have uploaded to DELAYED/10 a NMU of workrave fixing this bug. The
debdiff is attached, and is based on an changeset that I pushed
upstream. Please let me know if I should delay the upload longer.

Cheers,

-- 
 .''`.    Sébastien Villemot
: :' :    Debian Developer
`. `'     http://www.dynare.org/sebastien
  `-      GPG Key: 4096R/381A7594

diff -Nru workrave-1.10.1/debian/changelog workrave-1.10.1/debian/changelog
--- workrave-1.10.1/debian/changelog	2013-06-15 03:03:09.000000000 +0200
+++ workrave-1.10.1/debian/changelog	2013-09-01 22:09:22.000000000 +0200
@@ -1,3 +1,11 @@
+workrave (1.10.1-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * gnome_3.8.patch: makes the GNOME Shell extension compatible with GNOME 3.8
+    (Closes: #720037)
+
+ -- Sébastien Villemot <sebast...@debian.org>  Sun, 01 Sep 2013 22:07:56 +0200
+
 workrave (1.10.1-1) unstable; urgency=low
 
   * New upstream version
diff -Nru workrave-1.10.1/debian/patches/gnome_3.8.patch workrave-1.10.1/debian/patches/gnome_3.8.patch
--- workrave-1.10.1/debian/patches/gnome_3.8.patch	1970-01-01 01:00:00.000000000 +0100
+++ workrave-1.10.1/debian/patches/gnome_3.8.patch	2013-09-01 22:11:33.000000000 +0200
@@ -0,0 +1,178 @@
+Description: Make the GNOME shell extension compatible with GNOME 3.8
+ The D-Bus Glib bindings, which were deprecated since GNOME 3.4, have been
+ removed in GNOME 3.8. This commit replaces them by the new Gio bindings.
+Author: Sébastien Villemot <sebast...@debian.org>
+Bug: http://issues.workrave.org/show_bug.cgi?id=1120
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720037
+Applied-Upstream: https://github.com/rcaelers/workrave/commit/15f09d8a626e0c1251adc842e5cc5ed05a4cb690
+Last-Update: 2013-09-01
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/frontend/applets/gnome-shell/src/extension.js b/frontend/applets/gnome-shell/src/extension.js
+index ffc640d..cec7ebc 100644
+--- a/frontend/applets/gnome-shell/src/extension.js
++++ b/frontend/applets/gnome-shell/src/extension.js
+@@ -13,7 +13,7 @@ const GLib = imports.gi.GLib;
+ const Cairo = imports.cairo;
+ const Clutter = imports.gi.Clutter;
+ const Util = imports.misc.util;
+-const DBus = imports.dbus;
++const Gio = imports.gi.Gio;
+ const Workrave = imports.gi.Workrave;
+  
+ const _ = Gettext.gettext;
+@@ -21,33 +21,28 @@ const _ = Gettext.gettext;
+ let start = GLib.get_monotonic_time();
+ global.log('workrave-applet: start @ ' + start);
+ 
+-const IndicatorIface = {
+-    name: 'org.workrave.AppletInterface',
+-    methods: [ { name: 'Embed',
+-                 inSignature: 'bs',
+-                 outSignature: ''
+-               },
+-	       { name: 'GetMenu',
+-                 inSignature: '',
+-                 outSignature: 'a(siii)'
+-               },
+-	       { name: 'Command',
+-                 inSignature: 'i',
+-                 outSignature: ''
+-               }
+-             ],
+-
+-    signals: [ {  name: 'TimersUpdated',
+-                  inSignature: '(siuuuuuu)(siuuuuuu)(siuuuuuu)'
+-               },
+-	       {  name: 'MenuUpdated',
+-                  inSignature: 'a(siii)'
+-               }
+-             ],
+-   properties: []
+-};
+-
+-let IndicatorProxy = DBus.makeProxyClass(IndicatorIface);
++const IndicatorIface = <interface name="org.workrave.AppletInterface">
++<method name="Embed">
++    <arg type="b" name="enabled" direction="in" />
++    <arg type="s" name="sender" direction="in" />
++</method>
++<method name="Command">
++    <arg type="i" name="command" direction="in" />
++</method>
++<method name="GetMenu">
++    <arg type="a(sii)" name="menuitems" direction="out" />
++</method>
++<signal name="TimersUpdated">
++    <arg type="(siuuuuuu)" />
++    <arg type="(siuuuuuu)" />
++    <arg type="(siuuuuuu)" />
++</signal>
++<signal name="MenuUpdated">
++    <arg type="a(sii)" />
++</signal>
++</interface>
++
++let IndicatorProxy = Gio.DBusProxy.makeProxyWrapper(IndicatorIface);
+ 
+ function _workraveButton() {
+     this._init();
+@@ -73,17 +68,16 @@ _workraveButton.prototype = {
+ 
+ 	this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
+ 
+-	this._proxy = new IndicatorProxy(DBus.session, 'org.workrave.Workrave', '/org/workrave/Workrave/UI');
+-	this._timers_updated_id = this._proxy.connect("TimersUpdated", Lang.bind(this, this._onTimersUpdated));
+-	this._menu_updated_id = this._proxy.connect("MenuUpdated", Lang.bind(this, this._onMenuUpdated));
++	this._proxy = new IndicatorProxy(Gio.DBus.session, 'org.workrave.Workrave', '/org/workrave/Workrave/UI');
++	this._timers_updated_id = this._proxy.connectSignal("TimersUpdated", Lang.bind(this, this._onTimersUpdated));
++	this._menu_updated_id = this._proxy.connectSignal("MenuUpdated", Lang.bind(this, this._onMenuUpdated));
+ 
+ 	this._updateMenu(null);
+ 
+-        DBus.session.watch_name('org.workrave.Workrave',
+-                                false, // no auto launch
+-                                Lang.bind(this, this._onWorkraveAppeared),
+-                                Lang.bind(this, this._onWorkraveVanished));
+-        DBus.session.start_service('org.workrave.Workrave');
++        Gio.DBus.session.watch_name('org.workrave.Workrave',
++                                    Gio.BusNameWatcherFlags.NONE, // no auto launch
++                                    Lang.bind(this, this._onWorkraveAppeared),
++                                    Lang.bind(this, this._onWorkraveVanished));
+     },
+  
+     _onDestroy: function() 
+@@ -96,8 +90,8 @@ _workraveButton.prototype = {
+ 
+     _destroy: function() {
+ 	global.log('workrave-applet: _destroy');
+-	this._proxy.disconnect(this._timers_updated_id);
+-	this._proxy.disconnect(this._menu_updated_id);
++	this._proxy.disconnectSignal(this._timers_updated_id);
++	this._proxy.disconnectSignal(this._menu_updated_id);
+ 	this._proxy = null;
+ 
+         this.actor.destroy();
+@@ -108,7 +102,7 @@ _workraveButton.prototype = {
+ 	global.log('workrave-applet: starting');
+ 	if (! this._alive)
+ 	{
+-	    this._bus_id = DBus.session.acquire_name(this._bus_name, 0, null, null);
++	    this._bus_id = Gio.DBus.session.own_name(this._bus_name, Gio.BusNameOwnerFlags.NONE, null, null);
+ 	    this._proxy.GetMenuRemote(Lang.bind(this, this._onGetMenuReply));
+     	    this._proxy.EmbedRemote(true, this._bus_name);
+ 	    this._timeoutId = Mainloop.timeout_add(5000, Lang.bind(this, this._onTimer));
+@@ -123,7 +117,7 @@ _workraveButton.prototype = {
+ 	 {
+ 	     global.log('workrave-applet: stopping');
+ 	     Mainloop.source_remove(this._timeoutId);
+-	     DBus.session.release_name_by_id(this._bus_id);
++	     Gio.DBus.session.unown_name(this._bus_id);
+ 	     this._bus_id = 0;
+ 	     this._timerbox.set_enabled(false);
+ 	     this._area.queue_repaint();
+@@ -166,7 +160,7 @@ _workraveButton.prototype = {
+ 	this._stop();
+     },
+ 
+-    _onTimersUpdated : function(result, microbreak, restbreak, daily) {
++    _onTimersUpdated : function(emitter, senderName, [microbreak, restbreak, daily]) {
+ 
+ 	if (! this._alive)
+ 	{
+@@ -213,11 +207,11 @@ _workraveButton.prototype = {
+ 	this._area.queue_repaint();
+     },
+ 
+-    _onGetMenuReply : function(menuitems) {
++    _onGetMenuReply : function([menuitems], excp) {
+ 	this._updateMenu(menuitems);
+     },
+ 
+-    _onMenuUpdated : function(result, menuitems) {
++    _onMenuUpdated : function(emitter, senderName, [menuitems]) {
+ 	this._updateMenu(menuitems);
+     },
+ 
+@@ -230,7 +224,7 @@ _workraveButton.prototype = {
+ 
+     _onMenuOpenCommand: function(item, event) {
+ 	global.log('workrave-applet: open');
+-        DBus.session.start_service('org.workrave.Workrave');
++	this._proxy.GetMenuRemote(); // A dummy method call to re-activate the service
+     },
+ 
+     _updateMenu : function(menuitems) {
+diff --git a/frontend/applets/gnome-shell/src/metadata.json.in b/frontend/applets/gnome-shell/src/metadata.json.in
+index d34d5e7..016f095 100644
+--- a/frontend/applets/gnome-shell/src/metadata.json.in
++++ b/frontend/applets/gnome-shell/src/metadata.json.in
+@@ -3,7 +3,7 @@
+  "uuid": "@uuid@",
+  "name": "Workrave",
+  "description": "Applet that shows all the Workrave timers.",
+- "shell-version": [ "3.1.90", "3.1.91", "3.1.92", "3.2", "3.3", "3.4", "3.5", "3.5.4", "3.6.0", "3.6", "@shell_current@" ],
++ "shell-version": [ "3.1.90", "3.1.91", "3.1.92", "3.2", "3.3", "3.4", "3.5", "3.5.4", "3.6.0", "3.6", "3.8", "@shell_current@" ],
+  "localedir": "@LOCALEDIR@",
+  "url": "@url@"
+ }
diff -Nru workrave-1.10.1/debian/patches/series workrave-1.10.1/debian/patches/series
--- workrave-1.10.1/debian/patches/series	2013-06-15 03:03:09.000000000 +0200
+++ workrave-1.10.1/debian/patches/series	2013-09-01 22:09:34.000000000 +0200
@@ -1,2 +1,3 @@
 #private_dirs.patch
 git_fix_desktop_bugs.patch
+gnome_3.8.patch

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to