GNOME Bugzilla – Bug 610340
libgsf introspection generation fails
Last modified: 2012-02-06 19:48:34 UTC
Created attachment 154109 [details] [review] patch for libgsf to run introspection at build time Attached is the patch for adding gobject introspection support to libgsf however it fails due generate typelib, as it does not pick up the alias struct guint64 gsf_off_t;
Hmm? You mean "typedef guint64 gsf_off_t"? I'd like a reduced test case for this.
Created attachment 156826 [details] [review] current status of libgsf support This is a better build patch for libgsf - I'm still experimenting with gobject introspection code to solve other issues with the build.
Created attachment 156835 [details] [review] Make file modifications for libgsf - needs changes to gobject-introspection to work This patch will enable building of Gsf. It will not work without changes to gobject introspection though. Notes: - gsf might get built with Bonobo - this may affect the introspection build includes. - I've not dealt with that yet.. - The core problem for Gsf is the va_list field members of things like GsfOutputClass - this in particular. gsf_off_t (*Vprintf) (GsfOutput *output, char const *format, va_list args) G_GNUC_PRINTF (2, 0); The change needed to handle this is to change transformer.py a) extend SkipError with VaListSkipError b) throw VaListSkipError when va_list is found. c) in create member wrap create_callback with a try, if it catches VaListSkipError then create a void* field which is not readable and not writable.
I'm not sure it's really useful to add introspection to libgsf-gnome. Both bonobo and gnomevfs are deprecated.
Does anyone know what the status of this is? Specifically, is there still a problem with current gobject-introspection?
Gsf builds ok with the previous patch and gobject-introspection HEAD. The patch could do with tidying up to confirm to this. http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration
Actually things fail for me with: Gsf-1.gir:In Infile.Input.Object: error: Can't resolve type 'gsf_off_t' for field Gsf.Input.size
It needs introspection HEAD to get rid of that error. git clone git://git.gnome.org/gobject-introspection the patch should probably check against at least this version. PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0 >= 0.9.4, have_introspection=true, have_introspection=false)
Nope, this is with current git.
Strange, I checked out both introspection and libgsf directly from git applied the patch and it built ok just a few minutes ago..
I'm also using gsf and introspection from git, may be something is interfering on my system.
still getting an error: Gsf-1.gir: error: Can't resolve type 'gsf_off_t' for field Gsf.Input.size
Please forge my last comment, it was with an old gobject_introspection version. Things work with current git at least.
In light of bonobo/gnome/gnome-vfs support just having been dropped, what is the status of this?
the bonobo/gnome* support drop does not have consequences. The patch only adds introspection support to the gsf directory only. We still need to add the appropriate fields to the API documentation comments.
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.