bugMyPaint - Bugs: bug #20688, KeyError: 'could not find foreign...

 
 
Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #20688: KeyError: 'could not find foreign type Surface'

Submitted by:  Cedric sodhi <manday>
Submitted on:  Sat 30 Mar 2013 09:30:26 PM UTC  
 
Severity: 3 - NormalPriority: 5 - Normal
Status: Works For MePrivacy: Public
Assigned to: NoneOpen/Closed: Open
Release: git masterPlanned Release: None
Operating System: 

Thu 04 Apr 2013 03:24:00 PM UTC, comment #4:

Cairo introspection data for Python/GObject is quite normal these days, since GTK uses Cairo for all of its drawing... :)

I notice that --enable-cairo defaults to "yes" in at least pygobject-3.2.2.

So it's not so unusual or Debianish to have _gi_cairo.so installed, and perfectly fine to rely on. I have updated the README:

https://gitorious.org/mypaint/mypaint/commit/6bb1536a12cfcae49d48c32e55de5b4d044ae264

Closing WORKSFORME.

Andrew Chadwick <achadwick>
Project Administrator
Mon 01 Apr 2013 09:24:19 AM UTC, comment #3:

It turned out pygobject needs to be compiled against cairo to provide a sort of emulation of introspection for cairo. This should perhaps be noted in the readme.

Cedric sodhi <manday>
Mon 01 Apr 2013 08:12:42 AM UTC, comment #2:

Gentoo Linux, git master. I do have all prerequesties but cairo introspection. Such a thing does not exist to my knowledge. It must be a very debian specific feature - is mypaint relying on it? If so, perhaps it shouldn't?

Cedric sodhi <manday>
Sun 31 Mar 2013 09:52:59 PM UTC, comment #1:

What operating system and version are you using, and do you have the prerequisites listed in the READMEs installed?

Take a look at README.gtk3, where it mentions python-gi-cairo. I suspect that will make the "Couldn't find conversion for foreign struct" relating to Cairo go away, per http://stackoverflow.com/questions/6133622/

If you use a Debian-based system, you can try

as well. If this fixes the issue (and even more if it doesn't!), let us know.

Andrew Chadwick <achadwick>
Project Administrator
Sat 30 Mar 2013 09:30:26 PM UTC, original submission:

Latest release gives

Warning: setting "u'pressure_gain_log'" should be added to a group in brushsettingswindow.py
Traceback (most recent call last):
File "/home/manday/local/share/mypaint/gui/tileddrawwidget.py", line 161, in enter_notify_cb
self.renderer.update_cursor()
File "/home/manday/local/share/mypaint/gui/tileddrawwidget.py", line 400, in update_cursor
c = cursor.get_brush_cursor(radius, style, self.app.preferences)
File "/home/manday/local/share/mypaint/gui/cursor.py", line 66, in get_brush_cursor
pixbuf = image_surface_to_pixbuf(surf)
File "/home/manday/local/share/mypaint/gui/cursor.py", line 80, in image_surface_to_pixbuf
return gdk.pixbuf_get_from_surface(surf, 0, 0, w, h)
File "/usr/lib64/python2.7/site-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
KeyError: 'could not find foreign type Surface'
Traceback (most recent call last):
File "/home/manday/local/share/mypaint/gui/application.py", line 220, in at_application_start
self.brushmanager.select_initial_brush()
File "/home/manday/local/share/mypaint/gui/brushmanager.py", line 163, in select_initial_brush
self.select_brush(initial_brush)
File "/home/manday/local/share/mypaint/gui/brushmanager.py", line 565, in select_brush
callback(brush, brushinfo)
File "/home/manday/local/share/mypaint/gui/brushmodifier.py", line 289, in brush_selected_cb
b.end_atomic()
File "/home/manday/local/share/mypaint/lib/brush.py", line 400, in end_atomic
f(pending)
File "/home/manday/local/share/mypaint/gui/tileddrawwidget.py", line 441, in brush_modified_cb
self.update_cursor()
File "/home/manday/local/share/mypaint/gui/tileddrawwidget.py", line 400, in update_cursor
c = cursor.get_brush_cursor(radius, style, self.app.preferences)
File "/home/manday/local/share/mypaint/gui/cursor.py", line 66, in get_brush_cursor
pixbuf = image_surface_to_pixbuf(surf)
File "/home/manday/local/share/mypaint/gui/cursor.py", line 80, in image_surface_to_pixbuf
return gdk.pixbuf_get_from_surface(surf, 0, 0, w, h)
File "/usr/lib64/python2.7/site-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
KeyError: 'could not find foreign type Surface'
Traceback (most recent call last):
File "/home/manday/local/share/mypaint/gui/document.py", line 979, in _view_changed_notification_idle_cb
for cb in self.view_changed_observers:
TypeError: Couldn't find conversion for foreign struct 'cairo.Context'
device change: Bluetooth Laser Travel Mouse <enum GDK_SOURCE_MOUSE of type GdkInputSource>

Cedric sodhi <manday>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by achadwick (Posted a comment)
  • -unavailable- added by manday (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 04 Apr 2013 03:24:00 PM UTCachadwickStatusNeed Info=>Works For Me
    Sun 31 Mar 2013 09:52:59 PM UTCachadwickSeverity5 - Blocker=>3 - Normal
      StatusNone=>Need Info
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup