[Pidgin] #3926: amd64 incompatibilites with libpurple and dbus

Pidgin trac at pidgin.im
Mon Nov 12 15:23:28 EST 2007


#3926: amd64 incompatibilites with libpurple and dbus
-----------------------+----------------------------------------------------
 Reporter:  Trundle    |       Type:  defect
   Status:  new        |   Priority:  minor 
Component:  libpurple  |    Version:  2.2.2 
 Keywords:             |    Pending:  0     
-----------------------+----------------------------------------------------
 The following code results in an exception:

 {{{
 #!python
 #!/usr/bin/env python

 import dbus
 import dbus.decorators
 import dbus.glib
 import gobject

 purple = None

 def on_signed_on(buddy_id):
     print 'Signed on:', purple.PurpleBuddyGetName(buddy_id)

 def main():
     global purple
     bus = dbus.SessionBus()
     obj = bus.get_object('im.pidgin.purple.PurpleService',
                          '/im/pidgin/purple/PurpleObject')
     purple = dbus.Interface(obj, 'im.pidgin.purple.PurpleInterface')
     # Register signals
     bus.add_signal_receiver(on_signed_on,
 dbus_interface='im.pidgin.purple.PurpleInterface',
                             signal_name='BuddySignedOn')

     # Start the mainloop
     gobject.MainLoop().run()

 if __name__ == '__main__':
     main()
 }}}

 Exception and traceback:

 {{{
 ERROR:dbus.connection:Unable to set arguments
 (dbus.UInt64(287762809624L),) according to signature u'i':
 exceptions.OverflowError: Value 792 out of range for Int32
 ERROR:dbus.connection:Exception in handler for D-Bus signal:
 Traceback (most recent call last):
   File "/var/lib/python-support/python2.4/dbus/connection.py", line 214,
 in maybe_handle_message
     self._handler(*args, **kwargs)
   File "./bug.py", line 11, in on_signed_on
     print 'Signed on:', purple.PurpleBuddyGetName(buddy_id)
   File "/var/lib/python-support/python2.4/dbus/proxies.py", line 135, in
 __call__
     args,
   File "/var/lib/python-support/python2.4/dbus/connection.py", line 597,
 in call_blocking
     message.append(signature=signature, *args)
 OverflowError: Value 792 out of range for Int32
 }}}

 Same code just works fine if the purple client (not the py script) is
 started in a 32 bit environment. I'm using the debian-packaged libpurple0
 (version 2.2.2-1).

-- 
Ticket URL: <http://developer.pidgin.im/ticket/3926>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list