Package: release.debian.org Severity: normal User: release.debian....@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 <pi...@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?= <pi...@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