After fixing what appears to be a package-specific issue (undeclared function meta_keybindings_set_custom_handler, see <https://github.com/BuddiesOfBudgie/budgie-desktop/pull/330>), building budgie-desktop still fails due to what seems to be a Vala compiler problem: Missing declarations of called functions in [ModuleInit] function <https://gitlab.gnome.org/GNOME/vala/-/issues/1422> Until the Vala compiler can be fixed, we need to build budgie-desktop in C89 mode, to avoid build failures with future compilers.
Unfortunately, I am unable to build in C89 with the current exception framework we have. The reason is that the project also contains hand-written C code that must be built in C99 or later language modes. The meson build generator does not seem to allow setting different compiler flags for Vala-generated C sources and regular C resources.
Yea, we take advantage of specifying initializers in our `for` loop which requires c11 / gnu11. gvc (gnome-volume-control) which we use as a subproject also appears to have issues with compiling against c89, which would prevent building in c89 mode. So even if I was to fix our code to just specify the variable outside our loops, it wouldn't fix the gvc compilation and it'd just be a workaround for the issue you identified with Vala. Regardless, your PR to budgie-desktop is LGTM and much appreciated. I'll get that merged in.
(In reply to Joshua Strobl from comment #2) > Yea, we take advantage of specifying initializers in our `for` loop which > requires c11 / gnu11. gvc (gnome-volume-control) which we use as a > subproject also appears to have issues with compiling against c89, which > would prevent building in c89 mode. > > So even if I was to fix our code to just specify the variable outside our > loops, it wouldn't fix the gvc compilation and it'd just be a workaround for > the issue you identified with Vala. Yes, there are multiple packages that need both C89-only features and C99-only features at the same time. I need to rework the exception mechanism. I don't think it's necessary to change anything in budgie-desktop while the Vala issues persist (and the [ModuleInit] problem isn't rhe only one, unfortunately). > Regardless, your PR to budgie-desktop is LGTM and much appreciated. I'll get > that merged in. Thanks.
Created attachment 1951925 [details] Upstream patch for budgie-desktop C99 compat issue Vala upstream fixed the compiler issue in this commit: codegen: Add declaration for register call of dynamic DBus interfaces <https://gitlab.gnome.org/GNOME/vala/-/commit/a902d7eae96a3f1ab0cb64f268443b23ee8ab45a> budgie-desktop upstream applied my patch as well. This means that budgie-desktop can now build with strict(er) C99 compilers.