-
-
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
Adapt to mutter 3.33 #566
Adapt to mutter 3.33 #566
Conversation
0926bde
to
249fa14
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good and compiles on 3.28. I wonder if in the future we should split up the functions by versions to different files since it's getting quite crowded there.
Mutter API removed the override_preference_schema func. and now Gala is not setting its own settings. At least I ran into this when I adapted it to 3.30. for myself I decided to directly overwrite the necessary schemes, but it worked: WindowManager.vala ( public WindowManagerGala () ):var mutter_schema = new GLib.Settings ("org.gnome.mutter"); var general_schema = new GLib.Settings ("org.gnome.desktop.wm.preferences"); var interface_schema = new GLib.Settings ("org.gnome.desktop.interface"); |
It's almost building fine on archlinux, but I'm getting a bunch of these:
Do you have any idea how this could happen? Note that we already have GCC 9, so it might be pickier than previous versions. |
@worldofpeace Thanks for the pointer, I'll try to get this commit backported into our mutter package. |
Indeed this is true in 3.30 They've replaced it with per desktop GSettings overrides Not sure if that API is present in elementary (ref elementary/default-settings#114) |
@tintou I just noticed mutter bumped the libraries again (to |
901195f
to
4a1c17c
Compare
I'll try to build from this branch for fedora. FYI, mutter bumped again 😦 to |
Aaaaaand this doesn't compile on fedora 31 / mutter 3.34.1 with these errors:
|
do not dream, at the moment above mutter30 gala does not want to work, I tried to build this branch on 32 in gentoo, everything was compiled but falls with an error at startup |
@tintou thanks, it now correctly finds libmutter-6 on rawhide, but now it fails with the same compilation error as on fedora 31:
|
@tintou great, I can confirm that with your latest commit this branch compiles on both fedora 31 and rawhide. I've submitted a build for testing to my elementary-staging COPR repo. |
@tintou Good here for NixOS as well, with mutter but it does build 👍 |
@tintou looks like it works. maybe. the crashes I'm seeing are probably because the wingpanel gala plugin is still getting linked with libmutter 3.28, and loading both libs into a process at the same time is probably what messes things up. |
@tintou I have adapted the changes from this PR for wingpanel. I still get the fail-whale screen, but now at least wingpanel start correctly 🙁 https://github.com/decathorpe/wingpanel/tree/wip/mutter-3.3x |
This is the crash backtrace from gala:
|
Cool @decathorpe, I'm trying that patch with debugging and a full rebuild currently. It seems someone else dropped a patch for wingpanel with 3.30 mutter btw. I actually cannot reproduce the issue you have there on NixOS. Perhaps this is because everything forces a full-rebuild over here for purity, so I would try rebuilding the indicators etc.
Edit: I was able to get a crash on an existing system, however there's no problems in a clean vm where I was testing in. Here's a full backtrace with symbols |
I've now done the same for elementary-greeter elementary/greeter#377. |
ef7fac2
to
ca0ed9f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The tests pass and so I think it's not worth to hold it off even longer. Let's go.
@Dirli It doesn't work without wingpanel also being ported to latest mutter. |
@worldofpeace here you are shown an error, and yes, I ran the wingpanel supports the latest mutter. if you look at my screenshot (second), you will see that just the wingpanel started. |
Yeah it's not because it's building that it's completely working, it's a starting point though, we don't officially support any version different that the one we ship with elementary anyway so there is no guarantee. |
Umm, don't know how I feel about this then. It seems from the build system that you allow it to be built with many different versions, and if you don't actually plan to officially support this at all then I believe you shouldn't try too. So I'm under the assumption that you must if this is the case? |
Granted resources will dictate these sort of things majorly. Hopefully this wouldn't be misconstrued as contributions being unwelcome also. |
@tintou Maybe it makes sense to fork mutter, so as not to chase gnome, and carefully embed new features, while maintaining support. Of course this will require more costs, but perhaps these costs will be less th race for mutter api? |
No, we have no plan to fork mutter because it's great as it is an accepts our patches, we just have to rebase every 2 weeks on our end, we're more than happy to have patch that fixes it for latest mutter but we can't even pretend that it might work on any version other than the one shipped by elementary. We don't have that manpower but again, patches are welcome. |
Ok so I have been able to work some issues mentionned by @Dirli, @worldofpeace and @decathorpe. First, thanks @tintou and everyone for your hard work upon mutter 3.3x APIs, its really easier to build everything. Their are still some issues but this is still a great improvement. Some details about my environment:
Required mutter patches:
Required Gala patches
Optionnal patches
Other bugsI didn't encountered the bug reported by @decathorpe and @Dirli (#566 (comment)). Remove workspace bug@tintou The bug seems to be within If you have any idea that may help debugging, I'd gladly use them to find the origin of this issue. EditOk after some investigation, it seems both #566 (comment) and #566 (comment) comes from the callback changes.
Maybe some vala / libgobject version is required to make this work properly ? Maybe vapi is incorrect ? Any other calls to this function and related assignments seems to work properly. Anyway, we could use the help of any experimented vala developper. |
More bugs found across investigation (with this patch applied: https://gist.github.com/Tireg/2af03fa2d602d6112868eb722f2d27f1): Adding workspace (by opening a window on the last workspace) seems to frequently crash gala. Here is one stacktrace on opening a windows on the last workspace when only 2 workspaces are opened:
This is still related to https://github.com/elementary/gala/pull/566/files#diff-3c621372cc3a9bae11f71f0db0419664R125 and I don't know how to deal with this one. This occur under some really specific circumstances:
Another bug while trying to switch from an empty workspace (which is not the last workspace) to another workspace, with and without the Multi-Tasking view (triggering the removal of the initial workspace):
This is yet another call to workspace It seems MultiTasking view still has workspace that may not be indexed within Meta.WorkspaceManager when the function is called (probably deleted from the manager). Mutter starts by emitting the Anyway, mutter 3.3x may have broken more things than expected within gala. |
Finally managed to create patch to fix it properly. I still got some bugs with the patched version, so I opened a new issue in order to discuss each patch created and bugs that are still present. PatchesFor everyone seeking to get gala working with mutter 3.3x, I just built some AIO patches that group everything. Required mutter patches
Required gala patches
Optional patchesWarning: This patches requires using the above gala patch.
|
It is building and basically working for Mutter 3.33.3 so let's iterate after on this