После последнего dist-upgrade до текущего Sisyphus перестал работать deluge - не может инициализировать core, ни в классическом режиме, ни при запуске с отдельным демоном. При запуске deluge из xterm выдаёт на консоль следующее: Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/twisted/internet/base.py", line 374, in fireEvent DeferredList(beforeResults).addCallback(self._continueFiring) File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 195, in addCallback callbackKeywords=kw) File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 186, in addCallbacks self._runCallbacks() File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) --- <exception caught here> --- File "/usr/lib/python2.6/site-packages/twisted/internet/base.py", line 387, in _continueFiring callable(*args, **kwargs) File "/usr/lib/python2.6/site-packages/deluge/ui/gtkui/gtkui.py", line 299, in _on_reactor_start component.start() File "/usr/lib/python2.6/site-packages/deluge/component.py", line 210, in start _ComponentRegistry.start() File "/usr/lib/python2.6/site-packages/deluge/component.py", line 118, in start self.start_component(component) File "/usr/lib/python2.6/site-packages/deluge/component.py", line 125, in start_component self.start_component(depend) File "/usr/lib/python2.6/site-packages/deluge/component.py", line 131, in start_component self.components[name].start() File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 203, in start self.load_state() File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 585, in load_state resume_data=resume_data.get(torrent_state.torrent_id)) File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 440, in add torrent = Torrent(handle, options, state, filename, magnet) File "/usr/lib/python2.6/site-packages/deluge/core/torrent.py", line 132, in __init__ self.set_trackers(state.trackers) File "/usr/lib/python2.6/site-packages/deluge/core/torrent.py", line 309, in set_trackers self.handle.replace_trackers(trackers) exceptions.TypeError: No registered converter was able to extract a C++ reference to type libtorrent::announce_entry from this Python object of type dict $ rpm -qa | grep libtorrent-rasterbar libtorrent-rasterbar0.15-0.15.0-alt0.1.svn4196 libtorrent-rasterbar0.14-0.14.6-alt1 python-module-libtorrent-rasterbar-0.15.0-alt0.1.svn4196 $ rpm -q deluge deluge-1.2.0-alt2 Пересборка deluge с новой libtorrent-rasterbar не помогает. При downgrade libtorrent-rasterbar0.15 и python-module-libtorrent-rasterbar до версии 0.15.0-alt0.1.svn4022.1 работоспособность deluge восстанавливается.
А что в апстриме делюги про версии libtorrent-rasterbar0.15 говорят? Понижать то врядли получится.. если только собрать compat какой
Апстрим deluge для сборки предпочитает использовать стабильный бранч RC_0_14 (это в случае если в с системе во время сборки нет питоньих байндингов к libtorrent). Но в коде присутствуют проверки на минорную версию библиотеки как правило такого вида: if lt.version_minor < 15: Т.о. поддерживаются и 15 версия и 14. Покопавшись в изменениях libtorrent увидел вот такой коммит: http://git.altlinux.org/people/swi/packages/?p=libtorrent-rasterbar.git;a=commitdiff;h=edd799592782fa6ce186fd1d41e18b0b5eefa6b3 В комментарии говорится "reverted bad python binding change". Судя по всему тут по какой-то причине произошёл откат процедуры replace_trackers() до того состояния, в котором она была в версии 14. В коде deluge есть обёртка проверяющая какая версия библиотеки и в соответствии с этим меняется вызов replace_trackers(). Поскольку произошёл откат этой процедуры до состояния, в котором она была в версии 14, то эта обёртка приводит к ошибке. Я уберу в deluge эту проверку для данной процедуры и попробую повесить баг в апстрим.
deluge-1.2.0-alt3 -> sisyphus: * Fri Jan 29 2010 Vladimir Lettiev <crux@altlinux> 1.2.0-alt3 - Fixed deluged failure with new libtorrent-rasterbar0.15 (Closes: #22849)