mutter-rounded icon indicating copy to clipboard operation
mutter-rounded copied to clipboard

Support for Fedora/other distros?

Open not-a-dev-stein opened this issue 3 years ago • 22 comments

Pretty much all is in the title. Is there a way to apply this patch in a distro other than Debian or Arch-based?

not-a-dev-stein avatar Nov 17 '21 14:11 not-a-dev-stein

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.

gregor160300 avatar Nov 18 '21 06:11 gregor160300

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.

yilozt avatar Nov 18 '21 07:11 yilozt

I have uploaded the RPMs I have built against mutter 41.1 here (couldn't add them directly on GitHub).

gregor160300 avatar Nov 18 '21 11:11 gregor160300

@yilozt the script you just added for fedora 35 works perfectly, makes updating when a new mutter comes out a lot easier, thank you. :)

gregor160300 avatar Nov 18 '21 11:11 gregor160300

Can confirm as well, works perfectly! Thanks for the good work!

not-a-dev-stein avatar Nov 18 '21 13:11 not-a-dev-stein

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.

ajstrongdev avatar Nov 18 '21 20:11 ajstrongdev

@MrBeeBenson , you should use rpm --reinstall <path_to_rpm_packages> when you install packages.

yilozt avatar Nov 19 '21 03:11 yilozt

@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?

ajstrongdev avatar Nov 20 '21 09:11 ajstrongdev

You can find them in ~/rpmbuild/RPMS/x86_64/

yilozt avatar Nov 20 '21 10:11 yilozt

sudo rpm -ivh --force <path_to_rpm_packages>

work for me

EtereosDawn avatar Nov 24 '21 19:11 EtereosDawn

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.

not-a-dev-stein avatar Dec 14 '21 15:12 not-a-dev-stein

I completely agree.

ajstrongdev avatar Dec 15 '21 14:12 ajstrongdev

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.

Sbatushe avatar Jan 08 '22 15:01 Sbatushe

I am trying to build it on debian. Steps I did:

  1. cloned the debian mutter gitrepo
  2. applied the patches (rounded corners and symbols.patch)
  3. the test fails
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

werdahias avatar Feb 16 '22 22:02 werdahias

@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.

0005-rounded-corners.zip

ran-dall avatar Jun 01 '22 13:06 ran-dall

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.

ran-dall avatar Jun 01 '22 13:06 ran-dall

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.

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 avatar Jun 03 '22 21:06 radical4ever

@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.

ran-dall avatar Jun 03 '22 23:06 ran-dall

@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

radical4ever avatar Jun 04 '22 00:06 radical4ever

I tried it, it didnt work, but i guess we have to wait until they find out a solution

radical4ever avatar Jun 04 '22 01:06 radical4ever

@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 avatar Jun 04 '22 06:06 ran-dall

@ran-dall yup, i got fixed!, it was worth the wait 😄 finally i can have my round bottom corners back!.

radical4ever avatar Jun 04 '22 13:06 radical4ever