[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#694781: unblock: spyder/2.1.10-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package spyder

Hello,

I would like you to consider an unblock for spyder. It fix a nasty bug #678339
this cause some troubles when saving a file. for a python editor which become
quite popular, it seems to me that this should be fixed before wheeze release.

this bug was reported upstream
http://code.google.com/p/spyderlib/issues/detail?id=1098

and fix on top of the current 2.1.10-1 version with this commit
http://code.google.com/p/spyderlib/source/detail?r=6260313cb49b

this is the same patch which was apply between 2.1.10-1 and 2.1.10-2

since the last upload I had no bug report against spyder.

unblock spyder/2.1.10-2


thanks for your time

Frederic

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1,
'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-486
diff -Nru spyder-2.1.10/debian/changelog spyder-2.1.10/debian/changelog
--- spyder-2.1.10/debian/changelog	2012-05-28 08:24:47.000000000 +0200
+++ spyder-2.1.10/debian/changelog	2012-07-31 22:44:05.000000000 +0200
@@ -1,3 +1,10 @@
+spyder (2.1.10-2) unstable; urgency=low
+
+  * debian/pacthes
+    - 0003-from-upstream-fix-1098.patch (new) (Closes: #678339)
+
+ -- Picca Frédéric-Emmanuel <picca@debian.org>  Tue, 31 Jul 2012 22:42:04 +0200
+
 spyder (2.1.10-1) unstable; urgency=low
 
   * Imported Upstream version 2.1.10
diff -Nru spyder-2.1.10/debian/patches/0001-fix-documentation-installation.patch spyder-2.1.10/debian/patches/0001-fix-documentation-installation.patch
--- spyder-2.1.10/debian/patches/0001-fix-documentation-installation.patch	2012-04-01 10:10:27.000000000 +0200
+++ spyder-2.1.10/debian/patches/0001-fix-documentation-installation.patch	2012-07-31 22:40:47.000000000 +0200
@@ -23,7 +23,7 @@
              setup_command.BuildDoc.run(self)
          except UnicodeDecodeError:
 diff --git a/spyderlib/__init__.py b/spyderlib/__init__.py
-index c8eb4e2..cad8046 100644
+index 8ef9182..eadd49a 100644
 --- a/spyderlib/__init__.py
 +++ b/spyderlib/__init__.py
 @@ -35,6 +35,7 @@ __forum_url__   = 'http://groups.google.com/group/spyderlib'
diff -Nru spyder-2.1.10/debian/patches/0003-from-upstream-fix-1098.patch spyder-2.1.10/debian/patches/0003-from-upstream-fix-1098.patch
--- spyder-2.1.10/debian/patches/0003-from-upstream-fix-1098.patch	1970-01-01 01:00:00.000000000 +0100
+++ spyder-2.1.10/debian/patches/0003-from-upstream-fix-1098.patch	2012-07-31 22:40:47.000000000 +0200
@@ -0,0 +1,155 @@
+From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca@debian.org>
+Date: Tue, 31 Jul 2012 22:40:10 +0200
+Subject: from upstream fix 1098
+
+---
+ spyderlib/plugins/editor.py |   14 +++++++-------
+ spyderlib/widgets/editor.py |   22 +++++++++++++++++-----
+ spyderlib/widgets/tabs.py   |   22 +++++++++++++++++-----
+ 3 files changed, 41 insertions(+), 17 deletions(-)
+
+diff --git a/spyderlib/plugins/editor.py b/spyderlib/plugins/editor.py
+index 58ee269..4054d32 100644
+--- a/spyderlib/plugins/editor.py
++++ b/spyderlib/plugins/editor.py
+@@ -1,4 +1,4 @@
+-# -*- coding: utf-8 -*-
++# -*- coding: utf-8 -*-
+ #
+ # Copyright © 2009-2010 Pierre Raybaut
+ # Licensed under the terms of the MIT License
+@@ -997,9 +997,9 @@ class Editor(SpyderPluginWidget):
+         self.connect(editorstack, SIGNAL('editor_focus_changed()'),
+                      self.main.plugin_focus_changed)
+         
+-        self.connect(editorstack, SIGNAL('close_file(long,long)'),
++        self.connect(editorstack, SIGNAL('close_file(QString,int)'),
+                      self.close_file_in_all_editorstacks)
+-        self.connect(editorstack, SIGNAL('file_saved(long,long)'),
++        self.connect(editorstack, SIGNAL('file_saved(QString, int)'),
+                      self.file_saved_in_editorstack)
+         
+         self.connect(editorstack, SIGNAL("create_new_window()"),
+@@ -1052,18 +1052,18 @@ class Editor(SpyderPluginWidget):
+             self.register_widget_shortcuts("Editor", finfo.editor)
+         
+     @Slot(int, int)
+-    def close_file_in_all_editorstacks(self, editorstack_id, index):
++    def close_file_in_all_editorstacks(self, editorstack_id_str, index):
+         for editorstack in self.editorstacks:
+-            if id(editorstack) != editorstack_id:
++            if str(id(editorstack)) != editorstack_id_str:
+                 editorstack.blockSignals(True)
+                 editorstack.close_file(index, force=True)
+                 editorstack.blockSignals(False)
+                 
+     @Slot(int, int)
+-    def file_saved_in_editorstack(self, editorstack_id, index):
++    def file_saved_in_editorstack(self, editorstack_id_str, index):
+         """A file was saved in editorstack, this notifies others"""
+         for editorstack in self.editorstacks:
+-            if id(editorstack) != editorstack_id:
++            if str(id(editorstack)) != editorstack_id_str:
+                 editorstack.file_saved_in_other_editorstack(index)
+         
+         
+diff --git a/spyderlib/widgets/editor.py b/spyderlib/widgets/editor.py
+index 72adbcb..e947b79 100644
+--- a/spyderlib/widgets/editor.py
++++ b/spyderlib/widgets/editor.py
+@@ -1193,7 +1193,13 @@ class EditorStack(QWidget):
+                 self.outlineexplorer.remove_editor(finfo.editor)
+             
+             self.remove_from_data(index)
+-            self.emit(SIGNAL('close_file(long,long)'), id(self), index)
++            
++            # We pass self object ID as a QString, because otherwise it would 
++            # depend on the platform: long for 64bit, int for 32bit. Replacing 
++            # by long all the time is not working on some 32bit platforms 
++            # (see Issue 1094, Issue 1098)
++            self.emit(SIGNAL('close_file(QString,int)'), str(id(self)), index)
++
+             if not self.data and self.is_closable:
+                 # editortabwidget is empty: removing it
+                 # (if it's not the first editortabwidget)
+@@ -1284,7 +1290,13 @@ class EditorStack(QWidget):
+             finfo.newly_created = False
+             self.emit(SIGNAL('encoding_changed(QString)'), finfo.encoding)
+             finfo.lastmodified = QFileInfo(finfo.filename).lastModified()
+-            self.emit(SIGNAL('file_saved(long,long)'), id(self), index)
++
++            # We pass self object ID as a QString, because otherwise it would 
++            # depend on the platform: long for 64bit, int for 32bit. Replacing 
++            # by long all the time is not working on some 32bit platforms 
++            # (see Issue 1094, Issue 1098)
++            self.emit(SIGNAL('file_saved(QString,int)'), str(id(self)), index)
++
+             finfo.editor.document().setModified(False)
+             self.modification_changed(index=index)
+             self.analyze_script(index)
+@@ -2326,7 +2338,7 @@ class EditorPluginExample(QSplitter):
+         font = QFont("Courier New")
+         font.setPointSize(10)
+         editorstack.set_default_font(font, color_scheme='Spyder')
+-        self.connect(editorstack, SIGNAL('close_file(long,long)'),
++        self.connect(editorstack, SIGNAL('close_file(QString,int)'),
+                      self.close_file_in_all_editorstacks)
+         self.connect(editorstack, SIGNAL("create_new_window()"),
+                      self.create_new_window)
+@@ -2369,9 +2381,9 @@ class EditorPluginExample(QSplitter):
+     def get_focus_widget(self):
+         pass
+ 
+-    def close_file_in_all_editorstacks(self, editorstack_id, index):
++    def close_file_in_all_editorstacks(self, editorstack_id_str, index):
+         for editorstack in self.editorstacks:
+-            if id(editorstack) != editorstack_id:
++            if str(id(editorstack)) != editorstack_id_str:
+                 editorstack.blockSignals(True)
+                 editorstack.close_file(index, force=True)
+                 editorstack.blockSignals(False)
+diff --git a/spyderlib/widgets/tabs.py b/spyderlib/widgets/tabs.py
+index aff1556..24a8f34 100644
+--- a/spyderlib/widgets/tabs.py
++++ b/spyderlib/widgets/tabs.py
+@@ -76,9 +76,15 @@ class TabBar(QTabBar):
+         if index_to == -1:
+             index_to = self.count()
+         if mimeData.data("tabbar-id").toLong()[0] != id(self):
+-            tabwidget_from = mimeData.data("tabwidget-id").toLong()[0]
+-            self.emit(SIGNAL("move_tab(long,int,int)"), 
++            tabwidget_from = str(mimeData.data("tabwidget-id").toLong()[0])
++
++            # We pass self object ID as a QString, because otherwise it would 
++            # depend on the platform: long for 64bit, int for 32bit. Replacing 
++            # by long all the time is not working on some 32bit platforms 
++            # (see Issue 1094, Issue 1098)
++            self.emit(SIGNAL("move_tab(QString,int,int)"), 
+                       tabwidget_from, index_from, index_to)
++
+             event.acceptProposedAction()
+         elif index_from != index_to:
+             self.emit(SIGNAL("move_tab(int,int)"), index_from, index_to)
+@@ -246,7 +252,7 @@ class Tabs(BaseTabs):
+                           corner_widgets, menu_use_tooltips)
+         tab_bar = TabBar(self, parent)
+         self.connect(tab_bar, SIGNAL('move_tab(int,int)'), self.move_tab)
+-        self.connect(tab_bar, SIGNAL('move_tab(long,int,int)'),
++        self.connect(tab_bar, SIGNAL('move_tab(QString,int,int)'),
+                      self.move_tab_from_another_tabwidget)
+         self.setTabBar(tab_bar)
+         self.index_history = []
+@@ -303,5 +309,11 @@ class Tabs(BaseTabs):
+     def move_tab_from_another_tabwidget(self, tabwidget_from,
+                                         index_from, index_to):
+         """Move tab from a tabwidget to another"""
+-        self.emit(SIGNAL('move_tab(long,long,int,int)'),
+-                  tabwidget_from, id(self), index_from, index_to)
++
++        # We pass self object IDs as QString objs, because otherwise it would 
++        # depend on the platform: long for 64bit, int for 32bit. Replacing 
++        # by long all the time is not working on some 32bit platforms 
++        # (see Issue 1094, Issue 1098)
++        self.emit(SIGNAL('move_tab(QString,QString,int,int)'),
++                  tabwidget_from, str(id(self)), index_from, index_to)
++
diff -Nru spyder-2.1.10/debian/patches/series spyder-2.1.10/debian/patches/series
--- spyder-2.1.10/debian/patches/series	2012-04-01 10:10:27.000000000 +0200
+++ spyder-2.1.10/debian/patches/series	2012-07-31 22:40:47.000000000 +0200
@@ -1,2 +1,3 @@
 0001-fix-documentation-installation.patch
 0002-feature-forwarded-add-icon-to-desktop-file.patch
+0003-from-upstream-fix-1098.patch

Reply to: