-
-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fails to compile against latest mutter (3.29.4+) #303
Comments
@ricotz I'm trying to work on this, but I can't seem to figure out how to regenerate the mutter vapi files from the .gir files - it looks like I'm too stupid to use vapigen correctly, I'm only getting errors so far. |
Thanks! Now the build is failing with this on fedora rawhide:
Is that an error in the .gir files supplied by json-glib and glib, or something else? |
Just as a heads-up: I'm working on bringing a mutter328 compat package to fedora 29+, so support for mutter 3.30 is no longer time-critical. |
The topic is again relevant. `[dirli pkgconfig]$ ls | grep mutt libmutter-3.pc In dependencies only libmutter-2 P.S. mutter-3.28 ok |
In NixOS we've also kept the mutter 3.28 package around for this. |
in gentoo, it's easier. The current official version of mutter-3.26. I was just being proactive) |
I need to do increasingly nasty things to keep supporting mutter 3.28 on fedora: Is there any progress with porting gala to the newer mutter versions? |
Why exactly did you need patches 70-75? |
Because some functionality was moved from gnome-settings-daemon to mutter with GNOME 3.32, and some GSettings keys were renamed in gsettings-desktop-schemas 3.32 - which made gala and elementary-greeter (master) SEGFAULT due to the now missing GSettings key. So, the patch-set both adapts to the renamed GSettings key, and also adds the functionality that was moved from gnome-settings-daemon to mutter with 3.32. The patches are backports of this upstream MR: https://gitlab.gnome.org/GNOME/mutter/merge_requests/133/commits |
In fact I just succeeded (today) to build against mutter 3.30 on Gentoo (which is finally the official latest stable release, switching from 3.24 to 3.30, it seems that all the major distros have switched to 3.30+). Patches are still a bit ugly so I didn't open a PR yet, but here are the instructions if anyone is interested. Notes on the following solution
Generate VAPI filesI only regenerated Generation is done through the This can be done properly by providing the gir file provided in the More details can be found on those links : The vapi files provided with gala are vala front-end for C code, and generated through the gir files provided with mutter. Gir files are introspection of Gobject code used within C code. So we have a mapping like : On Gentoo, the GIR files of mutter are installed within To generate the file, you can do something like this : META_GIR="/usr/lib64/mutter/Meta-3.gir"
MUTTER_GIR_DIR=" /usr/lib64/mutter"
VAPI_DIR="./"
METADATA_DIR="./metadata/"
FINAL_LIB_NAME="libmutter-3"
vapigen-0.42 "${META_GIR}" --library "${FINAL_LIB_NAME}" --girdir "${MUTTER_GIR_DIR}" --vapidir="${VAPI_DIR}" --metadatadir="${METADATA_DIR}" With the following statements :
As for the metadata dir, it should contain files named after the GIR they applies to. After 3 full days of work, I ended with this metadata file : Add the new vapi fileOnce you have generated the
(it seems to work by just dropping the file as In addition to this, we need to :
Fix meson dependenciesCurrently, the meson files still references (Note : I removed dependency on the Fix API ChangesMutter 3.30 removed the Screen class and moved most of its old method within Display and the new WorkspaceManager and MonitorManager classes. After digging out, I ended up with the following patch : Note : I needed to cast most of the loop using Clutter.Actor to Meta.WindowActor because the current vapi may still be not perfect. The Add schema override for mutterYou may have notice a TODO in the previous patch. I found the fix latter, within a budgie-desktop PR. Fix headerI still had trouble because of some missing import statement within mutter headers, and I did a manual change within
CompileYou should now be able to build it using the common meson / ninja build instructions. |
this thread has been helpful for insights solus-project/budgie-desktop#1591 |
Binding updates can be found here https://github.com/elementary/gala/tree/wip/mutter-3.3x |
I've continued the mutter-3.3x branch but the compilation fails because of MetaBackgroundGroup being a final class, I've opened a PR upstream to fix it https://gitlab.gnome.org/GNOME/mutter/merge_requests/640 |
Yeah, I'll close this issue since we've actually got it to compile against all mutter versions now :) |
This is due to the version bump of the libmutter interfaces from 2 to 3.
Currently meson fails like this:
So, I think new checks (and more?) to add support for
libmutter-3
will be necessary.The text was updated successfully, but these errors were encountered: