Opened 9 years ago

Closed 9 years ago

#46812 closed defect (fixed)

Unstable gdk-pixbuf2 @2.31.2 breaks MyPaint-devel (AttributeError: 'Pixbuf' object has no attribute 'savev')

Reported by: su-v Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), dbevans (David B. Evans)
Port: mypaint-devel, gdk-pixbuf2

Description

The latest unstable Gdk-pixbuf release (2.31.2) has internal changes which break its Python API. After the latest upgrade of gdk-pixbuf2 in MacPorts (r131845), MyPaint-devel now fails to save (files, thumbnails, config, etc.):

INFO: lib.document: save_ora: u'/Users/a_user/.tmpsave.mypaint-save-test1.ora' (None, {'feedback_cb': <function gtk_main_tick at 0x1164decf8>})
ERROR: lib.fileutils: Save method failed
Traceback (most recent call last):
  File "/opt/local/share/mypaint/lib/fileutils.py", line 110, in _wrapped_save_method
    save_result = save_method(self, temp_path, *args, **kwds)
  File "/opt/local/share/mypaint/lib/document.py", line 895, in save_ora
    thumbnail.savev(tmpfile, 'png', [], [])
AttributeError: 'Pixbuf' object has no attribute 'savev'
Traceback (most recent call last):
  File "/opt/local/share/mypaint/gui/filehandling.py", line 507, in save_as_cb
    self.save_as_dialog(self.save_file, suggested_filename=current_filename)
  File "/opt/local/share/mypaint/gui/filehandling.py", line 565, in save_as_dialog
    save_method_reference(filename, **options)
  File "/opt/local/share/mypaint/gui/drawwindow.py", line 79, in wrapper
    func(self, *args, **kwargs)
  File "/opt/local/share/mypaint/gui/filehandling.py", line 317, in save_file
    **options
  File "/opt/local/share/mypaint/gui/filehandling.py", line 370, in save_doc_to_file
    **options
  File "/opt/local/share/mypaint/lib/document.py", line 729, in save
    result = save(filename, **kwargs)
  File "/opt/local/share/mypaint/lib/fileutils.py", line 114, in _wrapped_save_method
    raise ex
AttributeError: 'Pixbuf' object has no attribute 'savev'

Related comment in upstream bug tracker for gdk-pixbuf2:

Comment in same bug report referring to a commit with workaround implemented by another gdk-pixbuf client:

Notes:

  1. MacPorts switched to unstable gdk-pixbuf releases 4 months ago (r125860: 2.30.8 -> 2.31.1) - I do not know whether this was a requirement of one of the GNOME 3.14 ports at the time (current GTK+ 3.14 itself only requires >= 2.30.0).

According to the comments in upstream bugzilla, the breakage occurred in latest unstable release 2.31.2.

  1. Above backtrace was obtained with current MyPaint-devel @1.1.1.alpha.20141216+git.68f876fc_0 and earlier gtk3 @3.14.7_100+quartz (local Portfile); MyPaint-devel fails to launch for me under gtk3 @3.14.8_100 +quartz (local Portfile) with an error unrelated to this ticket (and which could well be a local issue due to using several custom portfiles for the dependencies in local port repo).

Change History (6)

comment:1 Changed 9 years ago by bunk3m (Bunk3m)

I noticed this problem also and started a thread on the MyPaint GitHub. Issue 202 https://github.com/mypaint/mypaint/issues/202

In addition to above issue about gdk-pixbuf, could you check that the default icon theme "hicolor" is enabled?

The maintainer on GitHub suggested to try with a newer pull as some of these issues have been resolved. In particular https://github.com/mypaint/mypaint/commit/8439ef56b587d8c12d225e55fcc2e97562fcaeb7 and others on the issue link above.

Thanks.

comment:2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

I updated MyPaint-devel to 1.1.1.alpha.20150306 in r133653. Did that help?

comment:3 Changed 9 years ago by dbevans (David B. Evans)

In addition, I updated gdk-pixbuf2 to 2.31.3 in r133659 which claims

* API changes:
- Revert an annotation change that broke bindings

This may help as well.

comment:4 in reply to:  description Changed 9 years ago by dbevans (David B. Evans)

Replying to suv-sf@…:

Notes:

  1. MacPorts switched to unstable gdk-pixbuf releases 4 months ago (r125860: 2.30.8 -> 2.31.1) - I do not know whether this was a requirement of one of the GNOME 3.14 ports at the time (current GTK+ 3.14 itself only requires >= 2.30.0).

Indeed, 2.31.1 is the version specified for the GNOME 3.14.0 release. GNOME 3.15.91 (3.16 beta 2) released this past week shows version 2.31.2.

See:
https://download.gnome.org/teams/releng/3.14.0/versions
https://download.gnome.org/teams/releng/3.15.91/versions

comment:5 in reply to:  3 Changed 9 years ago by su-v

Replying to ryandesign@…:

I updated MyPaint-devel to 1.1.1.alpha.20150306 in r133653. Did that help?

Replying to devans@…:

In addition, I updated gdk-pixbuf2 to 2.31.3 in r133659 (...) This may help as well.

Confirmed fixed: latest MyPaint-devel port works ok with latest gdk-pixbuf2 port and GTK+/X11 3.14.9.

MyPaint-devel with GTK+/Quartz >= 3.14.8 on my system still fails to launch:

Traceback (most recent call last):
  File "/Volumes/magenta/mp-trunk/quartz/bin/mypaint", line 267, in <module>
    = get_paths()
  File "/Volumes/magenta/mp-trunk/quartz/bin/mypaint", line 190, in get_paths
    from lib import mypaintlib
  File "/Volumes/magenta/mp-trunk/quartz/share/mypaint/lib/mypaintlib.py", line 28, in <module>
    _mypaintlib = swig_import_helper()
  File "/Volumes/magenta/mp-trunk/quartz/share/mypaint/lib/mypaintlib.py", line 20, in swig_import_helper
    import _mypaintlib
ImportError: dlopen(/Volumes/magenta/mp-trunk/quartz/lib/mypaint/_mypaintlib.so, 2): Symbol not found: _gtk_drag_cancel
  Referenced from: /Volumes/magenta/mp-trunk/quartz/lib/libgtk-3.0.dylib
  Expected in: flat namespace
 in /Volumes/magenta/mp-trunk/quartz/lib/libgtk-3.0.dylib

I'll try to further investigate this, and will file a separate ticket if I can make sure that the breakage is not due to changes introduced with modified portfiles in the local port repo. The broken build is possible related to a recent upstream commit (>= Gtk+ 3.14.8).

Last edited 9 years ago by su-v (previous) (diff)

comment:6 Changed 9 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

Just a reminder that GNOME 3.16 hard code freeze is scheduled for 16 Mar 2015, so if you find something that you'd like to see fixed, you need to report it upstream (preferably with a fix) ASAP.

Note: See TracTickets for help on using tickets.