[Sugar-devel] Copy from paint broken with Rainbow

Tomeu Vizoso tomeu at tomeuvizoso.net
Sat Feb 6 07:04:25 EST 2010


On Mon, Feb 1, 2010 at 21:12, Daniel Drake <dsd at laptop.org> wrote:
> Hi,
>
> There is a Sugar-0.82 regression in that you can't copy a selection
> from paint to the clipboard (using Paint's copy button). Reproduced on
> OLPC OS 8.2 with Paint-23.
> Disabling Rainbow solves the issue.
>
> At the point of failure, a broken icon is created in Sugar's clipboard
> tray and this appears in shell.log
> ---------------------------------------------------------------------------
> DBusException                             Traceback (most recent call last)
>
> /usr/share/sugar/shell/view/frame/clipboardpanelwindow.py in
> _owner_change_cb(self=<ClipboardPanelWindow object at 0x8748e64
> (SugarFrameWindow at 0x87b8588)>, clipboard=<gtk.Clipboard object at
> 0x8748fcc (GtkClipboard at 0x89c1a50)>, event=<GdkEvent at 0x8a220b0>)
>     69                 self._add_selection(key, selection)
>     70
> ---> 71         cb_service.set_object_percent(key, percent=100)
>        cb_service.set_object_percent = <bound method
> ClipboardService.set_object_percent of <ClipboardService object at
> 0x874b57c (sugar+clipboard+clipboardservice+ClipboardService at
> 0x87d3660)>>
>        key = '/org/laptop/Clipboard/Objects/1'
>        global percent = undefined
>     72
>     73     def _add_selection(self, key, selection):
>
> /usr/lib/python2.5/site-packages/sugar/clipboard/clipboardservice.py
> in set_object_percent(self=<ClipboardService object at 0x874b57c
> (sugar+cli...+clipboardservice+ClipboardService at 0x87d3660)>,
> object_id='/org/laptop/Clipboard/Objects/1', percent=100)
>    185         """
>    186         self._dbus_service.set_object_percent(
> --> 187                                 dbus.ObjectPath(object_id), percent)
>        global dbus.ObjectPath = <type 'dbus.ObjectPath'>
>        object_id = '/org/laptop/Clipboard/Objects/1'
>        percent = 100
>    188
>    189     def get_object(self, object_id):
>
> /usr/lib/python2.5/site-packages/dbus/proxies.py in
> __call__(self=<dbus.proxies._ProxyMethod instance at 0x90cc38c>,
> *args=(dbus.ObjectPath('/org/laptop/Clipboard/Objects/1'), 100),
> **keywords={})
>    138                                                   introspect_sig,
>    139                                                   args,
> --> 140                                                   **keywords)
>        keywords = {}
>    141
>    142     def call_async(self, *args, **keywords):
>
> /usr/lib/python2.5/site-packages/dbus/connection.py in
> call_blocking(self=<dbus._dbus.SessionBus (session) at 0x86f6bfc>,
> bus_name='org.laptop.Clipboard', object_path='/org/laptop/Clipboard',
> dbus_interface='org.laptop.Clipboard', method='set_object_percent',
> signature=u'oi',
> args=(dbus.ObjectPath('/org/laptop/Clipboard/Objects/1'), 100),
> timeout=-1.0, utf8_strings=False, byte_arrays=False)
>    628         # make a blocking call
>    629         reply_message = self.send_message_with_reply_and_block(
> --> 630             message, timeout)
>        message = <dbus.lowlevel.MethodCallMessage object at 0x8aa2d70>
>        timeout = -1.0
>    631         args_list = reply_message.get_args_list(**get_args_opts)
>    632         if len(args_list) == 0:
>
> DBusException: org.freedesktop.DBus.Python.IOError: Traceback (most
> recent call last):
>  File "/usr/lib/python2.5/site-packages/dbus/service.py", line 702,
> in _message_cb
>    retval = candidate_method(self, *args, **keywords)
>  File "/usr/share/sugar/service/clipboardservice.py", line 123, in
> set_object_percent
>    new_uri = self._copy_file(format.get_data())
>  File "/usr/share/sugar/service/clipboardservice.py", line 201, in _copy_file
>    shutil.copyfile(uri.path, new_file_path)
>  File "/usr/lib/python2.5/shutil.py", line 46, in copyfile
>    fsrc = open(src, 'rb')
> IOError: [Errno 13] Permission denied:
> '/home/olpc/isolation/1/uid_to_home_dir/10000/instance/tmpwL_h6t.png'
>
>
> Could someone running a more recent Sugar with rainbow setup please
> test to see if this regression still exists?

Bernie, Raul, I think you were looking at Rainbow in 0.84, could you
take care of this?

Thanks,

Tomeu


More information about the Sugar-devel mailing list