Open not-a-dev-stein opened 3 years ago
I have managed to compile these patches against Fedora's mutter code and have been running this without issues for a few days now on Fedora 35. I'll upload the rpms here later today.
I'm trying to learn how to build rpm packages in a Fedora 35 Live CD. It's seems to patches works properly in Fedora 35.
I have uploaded the RPMs I have built against mutter 41.1 here (couldn't add them directly on GitHub).
@yilozt the script you just added for fedora 35 works perfectly, makes updating when a new mutter comes out a lot easier, thank you. :)
Can confirm as well, works perfectly! Thanks for the good work!
I am running Fedora 35 and it doesn't seem to work for me. I am on the latest version of Fedora. It's like it's installed but not patched itself in properly. Gsettings can't find any of the settings, etc etc.
@MrBeeBenson , you should use rpm --reinstall <path_to_rpm_packages>
when you install packages.
@MrBeeBenson , you should use
rpm --reinstall <path_to_rpm_packages>
when you install packages.
I just ran the installation script considering that's what I assumed I had to do. Where are the rpm packages stored?
You can find them in ~/rpmbuild/RPMS/x86_64/
sudo rpm -ivh --force
work for me
Beyond keeping it updated (mutter 41.2 is already out for Fedora) it would be nice to have a Copr repo for the project, to have an easy way to track updates for it.
I completely agree.
I would like to install this on Void Linux but I'm not shell script expert. Can someone help me with script phases? I just need to know what to do, i can find the how myself. I can release binaries after the building process.
I am trying to build it on debian. Steps I did:
106/108 mutter:core+mutter/native/headless / native-headless FAIL 1.60s exit status 1
21:46:23 MUTTER_TEST_PLUGIN_PATH=/home/matthias/mutter/obj-x86_64-linux-gnu/src/compositor/plugins/libdefault.so G_TEST_SRCDIR=/home/matthias/mutter/src MALLOC_PERTURB_=134 G_TEST_BUILDDIR=/home/matthias/mutter/obj-x86_64-linux-gnu /home/matthias/mutter/src/tests/meta-dbus-runner.py /home/matthias/mutter/obj-x86_64-linux-gnu/src/tests/mutter-native-headless-tests
----------------------------------- output -----------------------------------
# random seed: R02Sc11406ab99beab70abb14542c86d9fb0
# mutter-MESSAGE: Running Mutter Test (using mutter 41.3) as a Wayland display server
mutter-Message: 14:46:24.640: Running Mutter Test (using mutter 41.3) as a Wayland display server
# mutter-MESSAGE: Added device '/dev/dri/renderD128' (i915) using no mode setting.
mutter-Message: 14:46:24.678: Added device '/dev/dri/renderD128' (i915) using no mode setting.
# mutter-MESSAGE: Added device '/dev/dri/renderD129' (nvidia-drm) using no mode setting.
mutter-Message: 14:46:24.678: Added device '/dev/dri/renderD129' (nvidia-drm) using no mode setting.
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ‘gsettings-backend’
# mutter-MESSAGE: Created gbm renderer for '/dev/dri/renderD128'
mutter-Message: 14:46:24.758: Created gbm renderer for '/dev/dri/renderD128'
# mutter-MESSAGE: Failed to initialize accelerated iGPU/dGPU framebuffer sharing: Do not want to use software renderer (llvmpipe (LLVM 13.0.1, 256 bits)), falling back to CPU copy path
mutter-Message: 14:46:24.778: Failed to initialize accelerated iGPU/dGPU framebuffer sharing: Do not want to use software renderer (llvmpipe (LLVM 13.0.1, 256 bits)), falling back to CPU copy path
# mutter-MESSAGE: Created gbm renderer for '/dev/dri/renderD129'
mutter-Message: 14:46:24.778: Created gbm renderer for '/dev/dri/renderD129'
# mutter-MESSAGE: Boot VGA GPU /dev/dri/renderD128 selected as primary
mutter-Message: 14:46:24.778: Boot VGA GPU /dev/dri/renderD128 selected as primary
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’
# mutter-MESSAGE: Using Wayland display name 'mutter-test-display'
mutter-Message: 14:46:24.817: Using Wayland display name 'mutter-test-display'
Window manager warning: Failed to set environment variable WAYLAND_DISPLAY for gnome-session: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.SessionManager" does not exist
1..2
# Start of backends tests
# Start of native tests
# Start of virtual-monitor tests
# mutter-MESSAGE: Added virtual monitor Meta-0
mutter-Message: 14:46:24.846: Added virtual monitor Meta-0
# mutter-INFO: Acquired name org.gnome.Mutter.ScreenCast
# mutter-INFO: Acquired name org.gnome.Mutter.RemoteDesktop
# mutter-MESSAGE: Removed virtual monitor Meta-0
mutter-Message: 14:46:25.017: Removed virtual monitor Meta-0
ok 1 /backends/native/virtual-monitor/create
# End of virtual-monitor tests
# Start of screen-cast tests
**
mutter:ERROR:../src/tests/screen-cast-client.c:150:init_pipewire: '_pipewire_core' should not be NULL
**
mutter:ERROR:../src/tests/native-screen-cast.c:77:meta_test_screen_cast_record_virtual: 'g_subprocess_get_successful (subprocess)' should be TRUE
Bail out! mutter:ERROR:../src/tests/native-screen-cast.c:77:meta_test_screen_cast_record_virtual: 'g_subprocess_get_successful (subprocess)' should be TRUE
Traceback (most recent call last):
File "/home/matthias/mutter/src/tests/meta-dbus-runner.py", line 126, in <module>
test_case.wrap_call(sys.argv[1:])
File "/home/matthias/mutter/src/tests/meta-dbus-runner.py", line 118, in wrap_call
self.assertEqual(p.wait(), 0)
File "/usr/lib/python3.9/unittest/case.py", line 837, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/lib/python3.9/unittest/case.py", line 830, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: -6 != 0
------------------------------------------------------------------------------
Any ideas how I can fix that? I have the same issue with the original mutter repo
@yilozt First off, great work; I'm enjoying it very much without any issues. Thus I packaged it for Gentoo yesterday. I'm testing it now before upstreaming it. I can send you the info once I do. I was probably going to start it off in the Guru overlay, FYI.
However, if I can make a suggestion, I think the way the patches are packaged (or put together) is not the most optimum way of packaging them. Getting files from a 3rd repo makes the whole thing confusing (as you can see above); not to mention, there will be varying support in distros to pull in additional files not packaged within a patch. Some distros allow for the deployment of additional files, while others do not.
Therefore, I would like to kindly suggest we modify the patches to include all the files and modifications required within a simple singular git patch. This should make it nice and easy to apply.
I have attached the modified patch I made for Gentoo. This patch is a single patch that has all the modifications required. There is no need to add any additional files or modifications, as they will all be added when the patch is applied.
For those of you that are having issues...
If you're using 42.*, you can probably apply the patch above using git apply -p1 -3 0005-rounded-corners.patch
. It's worth noting the patch above was intended for Gentoo, which modifies the upstream package very little, if any at all. Therefore, if your distro applies different patches, fixes, or any other modification, then it may not work.
If you're looking to make your patch (to work with your distro's tooling). You can clone your upstream's repo of Mutter (or just GNOME's version of Mutter, if your distro doesn't modify anything), deploy the five files required in /src,
and apply the patches in this repo, and then make your patch. Once you do that, you can compile Mutter directly from the modified folder, or you could run a diff
to make a distro-specific patch to integrate with your distro's tooling.
I hope that helps.
For those of you that are having issues...
If you're using 42.*, you can probably apply the patch above using
git apply -p1 -3 0005-rounded-corners.patch
. It's worth noting the patch above was intended for Gentoo, which modifies the upstream package very little, if any at all. Therefore, if your distro applies different patches, fixes, or any other modification, then it may not work.If you're looking to make your patch (to work with your distro's tooling). You can clone your upstream's repo of Mutter (or just GNOME's version of Mutter, if your distro doesn't modify anything), deploy the five files required in
/src,
and apply the patches in this repo, and then make your patch. Once you do that, you can compile Mutter directly from the modified folder, or you could run adiff
to make a distro-specific patch to integrate with your distro's tooling.I hope that helps.
Hi, i tried using the patch, but when applying it it drops me this:
0005-rounded-corners.patch:58:` trailing whitespace.
0005-rounded-corners.patch:60: trailing whitespace.
`WM_CLASS` property, as same as the output of `xprop WM_CLASS|cut -d
0005-rounded-corners.patch:75: trailing whitespace.
Typora, we will cut different pixels.
0005-rounded-corners.patch:191: trailing whitespace.
0005-rounded-corners.patch:362: trailing whitespace.
clutter_actor_set_child_below_sibling (parent, priv->blur_actor, CLUTTER_ACTOR(self));
error: data/org.gnome.mutter.gschema.xml.in: no concuerda con el índice
error: src/compositor/compositor.c: no concuerda con el índice
error: src/compositor/compositor-private.h: no concuerda con el índice
error: src/compositor/meta-window-actor.c: no concuerda con el índice
error: src/compositor/meta-window-actor-private.h: no concuerda con el índice
error: src/compositor/meta-window-actor-wayland.c: no concuerda con el índice
error: src/compositor/meta-window-actor-x11.c: no concuerda con el índice
error: src/core/prefs.c: no concuerda con el índice
error: src/meson.build: no concuerda con el índice
error: src/meta/prefs.h: no concuerda con el índice
Realizando un merge de tres vías...
error: src/meta_clip_effect.c: no existe en el índice
error: no se pueden leer los contenidos actuales de 'src/meta_clip_effect.c'
error: src/meta_clip_effect.c: el parche no aplica
Realizando un merge de tres vías...
error: src/meta_clip_effect.h: no existe en el índice
error: no se pueden leer los contenidos actuales de 'src/meta_clip_effect.h'
error: src/meta_clip_effect.h: el parche no aplica
Realizando un merge de tres vías...
error: src/shader.h: no existe en el índice
error: no se pueden leer los contenidos actuales de 'src/shader.h'
error: src/shader.h: el parche no aplica
Realizando un merge de tres vías...
error: src/shell-blur-effect.c: no existe en el índice
error: no se pueden leer los contenidos actuales de 'src/shell-blur-effect.c'
error: src/shell-blur-effect.c: el parche no aplica
Realizando un merge de tres vías...
error: src/shell-blur-effect.h: no existe en el índice
error: no se pueden leer los contenidos actuales de 'src/shell-blur-effect.h'
error: src/shell-blur-effect.h: el parche no aplica
error: src/ui/frames.c: no concuerda con el índice
error: src/ui/frames.h: no concuerda con el índice
error: src/wayland/meta-window-wayland.c: no concuerda con el índice
I dont see why clone it from the repo when this is actually done by the .sh itself. btw do you have an step by step to make it work?. thank you
@Radical4ever It should patch 42.1 directly, without the need for anything else. If it doesn't patch, you may need to refresh your git index. If it still doesn't apply, maybe your distro made a modification that fails this patch.
@Radical4ever It should patch 42.1 directly, without the need for anything else. If it doesn't patch, you may need to refresh your git index. If it still doesn't apply, maybe your distro made a modification that fails this patch.
Im currently using fedora 36 with gnome 42.1.2 (i guess), but im going to try what you said about refreshing the git index
I tried it, it didnt work, but i guess we have to wait until they find out a solution
@Radical4ever There really shouldn't be a need for my patch on Fedora. It should work with the script provided for use on Fedora. It was updated a few hours ago to fix 42.2 and Fedora 36, so it might be worth another shot.
@ran-dall yup, i got fixed!, it was worth the wait 😄 finally i can have my round bottom corners back!.
Pretty much all is in the title. Is there a way to apply this patch in a distro other than Debian or Arch-based?