gobbi icon indicating copy to clipboard operation
gobbi copied to clipboard

Incompatible with gobject 2.62.4

Open ddevault opened this issue 5 years ago • 7 comments

lib/glib/v-.go:308:46: could not determine kind of name for C.G_KEY_FILE_DESKTOP_KEY_FULLNAME
lib/glib/v-.go:309:52: could not determine kind of name for C.G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN
lib/glib/v-.go:310:46: could not determine kind of name for C.G_KEY_FILE_DESKTOP_KEY_KEYWORDS

ddevault avatar Jan 18 '20 17:01 ddevault

Strangely I can see those constants are defined in glib-2.0/glib/gkeyfile.h. I have glib 2.56.4.

However I cannot find any documentation for the constants. So I have blacklisted them from the generation. https://github.com/pekim/gobbi/commit/33e954cd8649653cccf0e96f231774bbac1354b0

Can you give branch 16-glib-constants a try please?

pekim avatar Jan 19 '20 11:01 pekim

This gets me a bit further:

# github.com/pekim/gobbi/lib/atk
/usr/bin/ld: $WORK/b036/_x005.o: undefined reference to symbol 'g_object_ref_sink'
/usr/bin/ld: /usr/lib//libgobject-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
# github.com/pekim/gobbi/lib/gio
lib/gio/v-.go:1194:44: undefined: Converter
lib/gio/v-.go:1199:43: undefined: Initable
lib/gio/v-.go:1263:66: undefined: Converter
lib/gio/v-.go:1282:58: undefined: PollableInputStream
lib/gio/v-.go:1346:68: undefined: Converter
lib/gio/v-.go:1365:60: undefined: PollableOutputStream
lib/gio/v-.go:1463:41: undefined: MenuModel
lib/gio/v-.go:4599:55: undefined: PollableInputStream
lib/gio/v-.go:4681:57: undefined: PollableOutputStream
lib/gio/v-.go:6447:51: undefined: ProxyResolver
lib/gio/v-.go:6447:51: too many errors

ddevault avatar Jan 19 '20 14:01 ddevault

What go build/run command are you running when this happens?

Does the example in the readme work?

pekim avatar Jan 19 '20 15:01 pekim

lib/gobject/package.go contains

// #cgo pkg-config: gobject-2.0
import "C"

Which should result in use of pkg-config --libs gobject-2.0 by go build so that it includes the necessary linker flags for the library. So I'm not sure why the g_object_ref_sink symbol is not found.

I'm quite puzzled by DSO missing from command line.

pekim avatar Jan 19 '20 15:01 pekim

I was trying gtk_application, but the command you gave doesn't work either.

ddevault avatar Jan 20 '20 18:01 ddevault

I've got a handle on this now.

A function (for example g_converter_output_stream_new) has no version information in the gir file. However it has a parameter with a type (in this case GConverter, introduced in gio 2.24) that does have version information.

I'm generating the function as though it's available in all versions of gio. But it's implicitly new in 2.24. So unless you're targetting gio 2.24 or later (using a build tag of gio_2.24 or later) the build is going to fail.

I'll look in to fixing the generation code to take this in to account.

pekim avatar Jan 20 '20 20:01 pekim

Thanks, let me know and I'll give it a shot when the time comes.

ddevault avatar Jan 20 '20 21:01 ddevault