diff --git a/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch b/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch deleted file mode 100644 index 2df70ff9646..00000000000 --- a/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 71acfd5258b4d12323fc51dda48e83830e62e696 Mon Sep 17 00:00:00 2001 -From: worldofpeace -Date: Mon, 16 Sep 2019 11:18:27 -0400 -Subject: [PATCH] build: use get_pkgconfig_variable for sysprof dbusdir - ---- - src/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/meson.build b/src/meson.build -index 182f7f5f5..43060865b 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -710,7 +710,7 @@ if have_profiler - 'backends/meta-profiler.h', - ] - -- dbus_interfaces_dir = join_paths(datadir, 'dbus-1', 'interfaces') -+ dbus_interfaces_dir = join_paths(sysprof_dep.get_pkgconfig_variable('prefix'), 'share', 'dbus-1', 'interfaces') - sysprof3_dbus_file = join_paths(dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml') - - dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler', --- -2.22.1 - diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix index 8ed00edf6c5..3c8a139d3e1 100644 --- a/pkgs/desktops/gnome-3/core/mutter/default.nix +++ b/pkgs/desktops/gnome-3/core/mutter/default.nix @@ -38,24 +38,30 @@ , desktop-file-utils , libcap_ng , egl-wayland +, graphene +, wayland-protocols }: stdenv.mkDerivation rec { pname = "mutter"; - version = "3.34.4"; + version = "3.36.0"; outputs = [ "out" "dev" "man" ]; src = fetchurl { url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "18hbw98p4h3d4qz57415smwmfg72s9a0nk8mb04ds1gn2lsm2d01"; + sha256 = "18lvj158w6gwc6xpvn699v8ykh1r5szry7sqascl6f1i8g628v2x"; }; mesonFlags = [ "-Degl_device=true" "-Dinstalled_tests=false" # TODO: enable these "-Dwayland_eglstream=true" - "-Dxwayland-path=${xwayland}/bin/Xwayland" + "-Dprofiler=true" + "-Dxwayland_path=${xwayland}/bin/Xwayland" + # This should be auto detected, but it looks like it manages a false + # positive. + "-Dxwayland_initfd=disabled" ]; propagatedBuildInputs = [ @@ -63,6 +69,7 @@ stdenv.mkDerivation rec { json-glib libXtst libcap_ng + graphene ]; nativeBuildInputs = [ @@ -102,26 +109,25 @@ stdenv.mkDerivation rec { xwayland zenity zenity + wayland-protocols ]; patches = [ - # Fix build with libglvnd provided headers - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch"; - sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd"; - }) - # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381 ./drop-inheritable.patch - # TODO: submit upstream - ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch - (substituteAll { src = ./fix-paths.patch; inherit zenity; }) + + # Fix crash when opening submenus from «always on visible workspace» windows + # https://gitlab.gnome.org/GNOME/mutter/issues/1083 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/mutter/commit/7e32cc05ce2e5b3931ddcf46ce9ead603a0de39e.patch"; + sha256 = "5ZzOMizucfrSnHNYjHIUObLHCvAIjrE6fY/CxLp4c7k="; + }) ]; postPatch = '' diff --git a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch index 574ed572561..1600db1e705 100644 --- a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch +++ b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch @@ -41,12 +41,12 @@ index 3322bd3b1..01c8020fa 100644 # optional version requirements udev_req = '>= 228' -@@ -125,6 +126,7 @@ xau_dep = dependency('xau') - ice_dep = dependency('ice') +@@ -131,6 +131,7 @@ ice_dep = dependency('ice') atk_dep = dependency('atk', version: atk_req) libcanberra_dep = dependency('libcanberra', version: libcanberra_req) + dbus_dep = dependency('dbus-1') +libcapng_dep = dependency('libcap-ng', required: get_option('libcapng')) - + # For now always require X11 support have_x11 = true @@ -256,6 +258,7 @@ have_core_tests = false @@ -65,10 +65,10 @@ index 3322bd3b1..01c8020fa 100644 cdata.set('HAVE_PROFILER', have_profiler) xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base') -@@ -443,6 +447,7 @@ output = [ - ' Startup notification..... ' + have_startup_notification.to_string(), +@@ -465,6 +465,7 @@ output = [ ' Introspection............ ' + have_introspection.to_string(), ' Profiler................. ' + have_profiler.to_string(), + ' Xwayland initfd.......... ' + have_xwayland_initfd.to_string(), + ' libcap-ng................ ' + have_libcapng.to_string(), '', ' Tests:',