Date: Thursday, May 13, 2010 @ 17:51:24 Author: ibiru Revision: 80228
upgpkg: deluge 1.2.3-6 fixes hangs when closing deluge Added: deluge/trunk/fix_freeze.patch Modified: deluge/trunk/PKGBUILD ------------------+ PKGBUILD | 10 +++++-- fix_freeze.patch | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2010-05-13 18:06:31 UTC (rev 80227) +++ PKGBUILD 2010-05-13 21:51:24 UTC (rev 80228) @@ -4,7 +4,7 @@ pkgname=deluge pkgver=1.2.3 -pkgrel=5 +pkgrel=6 pkgdesc="A bittorrent client written with python and pygtk" arch=('i686' 'x86_64') url="http://deluge-torrent.org/" @@ -15,15 +15,19 @@ 'pygtk: needed for gtk ui' 'librsvg: needed for gtk ui' 'python-mako: needed for web ui') -source=(http://download.deluge-torrent.org/source/${pkgname}-${pkgver}.tar.bz2 deluged deluged.conf.d deluge-web) +source=(http://download.deluge-torrent.org/source/${pkgname}-${pkgver}.tar.bz2 deluged deluged.conf.d deluge-web + fix_freeze.patch) install=deluge.install backup=(etc/conf.d/deluged) md5sums=('f1dbc8734c1881b115b98f572e523a4d' '7d5790eeb14cd0b47d1bb3e0a19c9935' - '332d23fe0d21ce92b494efd73322856c' '6c913ec7322eaa60494ac9d53103005f') + '332d23fe0d21ce92b494efd73322856c' '6c913ec7322eaa60494ac9d53103005f' + '09af9b6badccb2fd5d24f8cbe9a109a7') build() { cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i "${srcdir}/fix_freeze.patch" || return 1 + python setup.py build || return 1 python setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1 || return 1 Added: fix_freeze.patch =================================================================== --- fix_freeze.patch (rev 0) +++ fix_freeze.patch 2010-05-13 21:51:24 UTC (rev 80228) @@ -0,0 +1,73 @@ +diff --git a/deluge/ui/gtkui/connectionmanager.py b/deluge/ui/gtkui/connectionmanager.py +index 554c570..3b9ddf4 100644 +--- a/deluge/ui/gtkui/connectionmanager.py ++++ b/deluge/ui/gtkui/connectionmanager.py +@@ -99,12 +99,16 @@ class ConnectionManager(component.Component): + + self.config = ConfigManager("hostlist.conf.1.2", DEFAULT_CONFIG) + ++ self.running = False ++ + # Component overrides + def start(self): + pass + + def stop(self): +- pass ++ # Close this dialog when we are shutting down ++ if self.running: ++ self.connection_manager.response(gtk.RESPONSE_CLOSE) + + def shutdown(self): + pass +diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py +index 255622a..4856986 100644 +--- a/deluge/ui/gtkui/gtkui.py ++++ b/deluge/ui/gtkui/gtkui.py +@@ -167,7 +167,7 @@ class GtkUI(object): + self.gnome_prog = gnome.init("Deluge", deluge.common.get_version()) + self.gnome_client = gnome.ui.master_client() + def on_die(*args): +- gtk.main_quit() ++ reactor.stop() + self.gnome_client.connect("die", on_die) + log.debug("GNOME session 'die' handler registered!") + except Exception, e: +@@ -180,7 +180,7 @@ class GtkUI(object): + def win_handler(ctrl_type): + log.debug("ctrl_type: %s", ctrl_type) + if ctrl_type in (CTRL_CLOSE_EVENT, CTRL_SHUTDOWN_EVENT): +- gtk.main_quit() ++ reactor.stop() + return 1 + SetConsoleCtrlHandler(win_handler) + +diff --git a/deluge/ui/gtkui/mainwindow.py b/deluge/ui/gtkui/mainwindow.py +index ad33fd0..1153b1e 100644 +--- a/deluge/ui/gtkui/mainwindow.py ++++ b/deluge/ui/gtkui/mainwindow.py +@@ -46,6 +46,7 @@ from deluge.ui.client import client + import deluge.component as component + from deluge.configmanager import ConfigManager + from deluge.ui.gtkui.ipcinterface import process_args ++from twisted.internet import reactor + + import deluge.common + import common +@@ -152,7 +153,7 @@ class MainWindow(component.Component): + return self.main_glade + + def quit(self): +- gtk.main_quit() ++ reactor.stop() + + def load_window_state(self): + x = self.config["window_x_pos"] +@@ -238,7 +239,6 @@ class MainWindow(component.Component): + + def on_newversionavailable_event(self, new_version): + if self.config["show_new_releases"]: +- from twisted.internet import reactor + from deluge.ui.gtkui.new_release_dialog import NewReleaseDialog + reactor.callLater(5.0, NewReleaseDialog().show, new_version) + \ No newline at end of file