[pygtk] 2.15.1 build error on Solaris

Jedy Wang Jedy.Wang at Sun.COM
Thu Sep 17 15:47:46 WST 2009


Hi all,

I tried to build pygtk 2.15.1 on Solaris and encountered the following
error:

"./gtk.override", line 7549: warning: argument #3 is incompatible with prototype:
	prototype: pointer to pointer to const char : "/usr/include/gtk-2.0/gtk/gtkrecentmanager.h", line 187
	argument : pointer to pointer to char
"gtk.c", line 105225: warning: initializer does not fit or is out of range: -1
"gtkbuilder.override", line 258: warning: initializer does not fit or is out of range: -1
"gtk.c", line 123323: undefined symbol: PyGMountOperation_Type
cc: acomp failed for gtk.c

I checked gtk.c at line 123323 and it's

pygobject_register_class(d, "GtkMountOperation", GTK_TYPE_MOUNT_OPERATION, &PyGtkMountOperation_Type, Py_BuildValue("(O)", &PyGMountOperation_Type));

So it seems the problem is cased by lacking definition of
PyGMountOperation_Type which should be defined in pygobject. I am not
familiar with pygtk. I guess codegen.py uses some .defs files to
generate gtk.c and because GMountOperation is used by
gtk-2.14-types.defs so it's also used in generated gtk.c. I tried to
edit gtk.override to change
    import gio.MountOperation as PyGMountOperation_Type for GMountOperation
to
    import gio.MountOperation as PyGMountOperation_Type
. And the problem is gone. I do not know what import * as * for * means.
So I am not sure if this is a correct fix.

Regards,

Jedy



More information about the pygtk mailing list