Opened 2 years ago

Last modified 14 months ago

#64513 new defect

diffuse fails to run: AttributeError: 'NoneType' object has no attribute 'get_width'

Reported by: keithdtyler (Keith Tyler) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: diffuse

Description (last modified by jmroot (Joshua Root))

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
  warnings.warn(str(e), _gtk.Warning)
/opt/local/bin/diffuse:7359: Warning: invalid (NULL) pointer instance
  gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
/opt/local/bin/diffuse:7359: Warning: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
  gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
/opt/local/bin/diffuse:7368: GtkWarning: gdk_screen_get_width: assertion 'GDK_IS_SCREEN (screen)' failed
  self.int_state['window_x'] = max(0, (gtk.gdk.screen_width() - self.int_state['window_width']) / 2)
/opt/local/bin/diffuse:7369: GtkWarning: gdk_screen_get_height: assertion 'GDK_IS_SCREEN (screen)' failed
  self.int_state['window_y'] = max(0, (gtk.gdk.screen_height() - self.int_state['window_height']) / 2)
/opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_size_lookup_for_settings: assertion 'GTK_IS_SETTINGS (settings)' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: Invalid icon size 3

  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_theme_load_icon: assertion 'GTK_IS_ICON_THEME (icon_theme)' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: Error loading theme icon 'document-new' for stock: 
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: gtkstyle.c:2358: invalid icon size '3'
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: GtkWarning: gtk_style_render_icon: assertion 'pixbuf != NULL' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
/opt/local/bin/diffuse:7391: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
  p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR)
Traceback (most recent call last):
  File "/opt/local/bin/diffuse", line 8329, in <module>
    diff = Diffuse(rc_dir)
  File "/opt/local/bin/diffuse", line 7392, in __init__
    w, h = p0.get_width(), p0.get_height()
AttributeError: 'NoneType' object has no attribute 'get_width'

Change History (5)

comment:1 Changed 2 years ago by jmroot (Joshua Root)

Description: modified (diff)
Summary: Installed port failsdiffuse fails to run: AttributeError: 'NoneType' object has no attribute 'get_width'

comment:2 Changed 2 years ago by jmroot (Joshua Root)

Do you have gtk2 installed with +x11 or +quartz? If +x11, do you have an X server installed?

comment:3 Changed 2 years ago by keithdtyler (Keith Tyler)

No, I don't. This isn't indicated anywhere. I don't see any dependencies mentioned on the ports page or in the install output. I thought MacPorts installed dependencies for recipes?

Aside from the Linux version, I'm used to the version on Windows that doesn't have such a dependency, it works with native windowing.

Maybe the additional dependencies could be mentioned in the install process? I can't see installing X11 just for one application.

Last edited 2 years ago by keithdtyler (Keith Tyler) (previous) (diff)

comment:4 Changed 2 years ago by jmroot (Joshua Root)

It isn't strictly a dependency since you might not even be running the X server on the same machine. If you want to use the native window system, you want gtk2 +quartz. Unfortunately the whole GTK 2 situation is kind of a mess, as it can't be installed for X11 and Quartz at the same time, some dependents rely on X11-specific functionality (hence the default variant being +x11), and a bunch of other dependencies also have to be built for the right back-end. #27990 and #60511 have a lot of discussion of the problem and possible solutions that could be implemented.

comment:5 Changed 14 months ago by keithdtyler (Keith Tyler)

I don't have X on here... i expected the mac install to work like the (non-cyg) windows install without X dependency.

I've installed gtk-quartz-engine, and reinstalled diffuse (both via macports), didn't help.

Note: See TracTickets for help on using tickets.