GNOME Bugzilla – Bug 657648
Can't compile caribou with vala > 0.13.1
Last modified: 2011-08-30 00:39:38 UTC
I didn't have time to do a full git bisect but I manually downgraded vala iteratively from master through all tags until 0.13.1 and this was the only one that allowed me to compile caribou (master). This is the error: CC libcaribou_la-group-model.lo CC libcaribou_la-level-model.lo xadapter.c: In function 'caribou_xadapter_get_reserved_keycode': xadapter.c:426:29: error: 'XkbClientMapRec' has no member named 'key_sym_map_length1' xadapter.c: In function 'caribou_xadapter_replace_keycode': xadapter.c:524:25: error: 'XkbClientMapRec' has no member named 'key_sym_map_length1' xadapter.c:531:10: warning: assignment from incompatible pointer type [enabled by default] xadapter.c:532:27: error: 'XkbClientMapRec' has no member named 'syms_length1' xadapter.c: In function 'caribou_xadapter_get_current_group': xadapter.c:848:25: error: 'XklConfigRec' has no member named 'layouts_length1' xadapter.c:856:25: error: 'XklConfigRec' has no member named 'variants_length1' xadapter.c: In function 'caribou_xadapter_get_groups': xadapter.c:931:27: error: 'XklConfigRec' has no member named 'layouts_length1' xadapter.c:989:29: error: 'XklConfigRec' has no member named 'layouts_length1' xadapter.c:998:29: error: 'XklConfigRec' has no member named 'variants_length1' xadapter.c:1017:30: error: 'XklConfigRec' has no member named 'variants_length1' make[1]: *** [libcaribou_la-xadapter.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/home/rui/Source/git.gnome.org/caribou/libcaribou' make: *** [all-recursive] Error 1
These errors appear to be caused by bugs in the xkl / xkb bindings that are shipped as part of Caribou. Changes in the code generator trigger these issues but they need to be fixed in the bindings. I'm not familiar with these C libraries, but I assume that the relevant string array fields have to be annotated with the following attribute [CCode (array_length = false, array_null_terminated = true)] to indicate that the arrays are null-terminated and don't have a separate struct member for the array length.
Created attachment 195145 [details] [review] Added annotations for list struct members in vapi.
Comment on attachment 195145 [details] [review] Added annotations for list struct members in vapi. Thanks for explaing what was wrong, committed.