From 903c57a365dae494371cc6179a4f06e7074cee6a Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Wed, 4 Dec 2019 16:23:14 -0500 Subject: [PATCH 1/2] gnome3.mutter: nixpkgs-fmt, meta attrs --- pkgs/desktops/gnome-3/core/mutter/default.nix | 105 +++++++++++++----- 1 file changed, 75 insertions(+), 30 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix index 6d36b8710b62..42490fa3e870 100644 --- a/pkgs/desktops/gnome-3/core/mutter/default.nix +++ b/pkgs/desktops/gnome-3/core/mutter/default.nix @@ -1,8 +1,35 @@ -{ fetchurl, fetchpatch, substituteAll, stdenv, pkgconfig, gnome3, gettext, gobject-introspection, upower, cairo -, pango, cogl, json-glib, libstartup_notification, zenity, libcanberra-gtk3 -, ninja, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput -, gsettings-desktop-schemas, glib, gtk3, gnome-desktop -, geocode-glib, pipewire, libgudev, libwacom, xwayland, meson +{ fetchurl +, fetchpatch +, substituteAll +, stdenv +, pkgconfig +, gnome3 +, gettext +, gobject-introspection +, upower +, cairo +, pango +, cogl +, json-glib +, libstartup_notification +, zenity +, libcanberra-gtk3 +, ninja +, xkeyboard_config +, libxkbfile +, libxkbcommon +, libXtst +, libinput +, gsettings-desktop-schemas +, glib +, gtk3 +, gnome-desktop +, geocode-glib +, pipewire +, libgudev +, libwacom +, xwayland +, meson , gnome-settings-daemon , xorgserver , python3 @@ -25,46 +52,64 @@ stdenv.mkDerivation rec { }; mesonFlags = [ - "-Dxwayland-path=${xwayland}/bin/Xwayland" + "-Degl_device=true" "-Dinstalled_tests=false" # TODO: enable these "-Dwayland_eglstream=true" - "-Degl_device=true" + "-Dxwayland-path=${xwayland}/bin/Xwayland" ]; propagatedBuildInputs = [ # required for pkgconfig to detect mutter-clutter - libXtst json-glib + libXtst libcap_ng ]; nativeBuildInputs = [ - meson - pkgconfig - gettext - ninja - python3 - # for cvt command - xorgserver - wrapGAppsHook desktop-file-utils + gettext + meson + ninja + pkgconfig + python3 + wrapGAppsHook + xorgserver # for cvt command ]; buildInputs = [ - glib gobject-introspection gtk3 gsettings-desktop-schemas upower - gnome-desktop cairo pango cogl zenity libstartup_notification - geocode-glib libinput libgudev libwacom - libcanberra-gtk3 zenity xkeyboard_config libxkbfile - libxkbcommon pipewire xwayland egl-wayland - gnome-settings-daemon sysprof + cairo + cogl + egl-wayland + geocode-glib + glib + gnome-desktop + gnome-settings-daemon + gobject-introspection + gsettings-desktop-schemas + gtk3 + libcanberra-gtk3 + libgudev + libinput + libstartup_notification + libwacom + libxkbcommon + libxkbfile + pango + pipewire + sysprof + upower + xkeyboard_config + xwayland + zenity + zenity ]; patches = [ # 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 + # TODO: submit upstream + ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch (substituteAll { src = ./fix-paths.patch; inherit zenity; @@ -84,18 +129,18 @@ stdenv.mkDerivation rec { ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas" ''; - enableParallelBuilding = true; - passthru = { updateScript = gnome3.updateScript { - packageName = "mutter"; - attrPath = "gnome3.mutter"; + packageName = pname; + attrPath = "gnome3.${pname}"; }; }; meta = with stdenv.lib; { - platforms = platforms.linux; - maintainers = gnome3.maintainers; + description = "A window manager for GNOME"; + homepage = "https://gitlab.gnome.org/GNOME/mutter"; license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; }; } From 43b1e5d9981b3501c6303b573965c427e45e1379 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Wed, 4 Dec 2019 16:51:56 -0500 Subject: [PATCH 2/2] gnome3.mutter: backport patches from gnome-3-34 branch There's probably other fixes people would be interested in like https://gitlab.gnome.org/GNOME/mutter/merge_requests/943. Fixes #74934 --- pkgs/desktops/gnome-3/core/mutter/default.nix | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix index 42490fa3e870..63136d95f812 100644 --- a/pkgs/desktops/gnome-3/core/mutter/default.nix +++ b/pkgs/desktops/gnome-3/core/mutter/default.nix @@ -105,20 +105,34 @@ stdenv.mkDerivation rec { ]; patches = [ - # 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; + # Fixes from gnome-3-34 branch 2019-11-29. + (fetchpatch { + name = "gnome-3-34-2019-11-29.patch"; + url = "https://github.com/GNOME/mutter/compare/3.34.1...c0e76186da5b7baf7c8804c0ffa80232a5a6bf98.patch"; + excludes = [ + ".gitlab-ci.yml" + ".gitlab-ci/checkout-gnome-shell.sh" + ]; + sha256 = "1qmxic83bd3dvg6isipqy8jaaksd7p5s3cb7h44zinq738n8d0fb"; }) + # 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; + }) ]; postPatch = ''