From 47418eaf4ed7000bedde80203153f7bda95e7544 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 10 Dec 2025 21:02:48 +0800 Subject: [PATCH] pantheon.mutter: 46.8 -> 48.7 https://github.com/GNOME/mutter/blob/48.7/NEWS --- .../mu/{mutter46 => mutter48}/package.nix | 36 +++++++++++++------ pkgs/desktops/pantheon/default.nix | 2 +- pkgs/top-level/aliases.nix | 1 + 3 files changed, 28 insertions(+), 11 deletions(-) rename pkgs/by-name/mu/{mutter46 => mutter48}/package.nix (77%) diff --git a/pkgs/by-name/mu/mutter46/package.nix b/pkgs/by-name/mu/mutter48/package.nix similarity index 77% rename from pkgs/by-name/mu/mutter46/package.nix rename to pkgs/by-name/mu/mutter48/package.nix index c2045eeb3060..17c973d1751d 100644 --- a/pkgs/by-name/mu/mutter46/package.nix +++ b/pkgs/by-name/mu/mutter48/package.nix @@ -8,13 +8,16 @@ gobject-introspection, cairo, colord, + docutils, lcms2, pango, libstartup_notification, libcanberra, ninja, xvfb-run, + libadwaita, libxcvt, + libGL, libICE, libX11, libXcomposite, @@ -27,7 +30,6 @@ libxkbfile, xkeyboard_config, libxkbcommon, - libXrender, libxcb, libXrandr, libXinerama, @@ -69,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "mutter"; - version = "46.8"; + version = "48.7"; outputs = [ "out" @@ -80,13 +82,15 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz"; - hash = "sha256-+8CDVEr7O4Vn18pobCF/g3sG+UeNbiV0FZ/5ocjhyWI="; + hash = "sha256-7BAqo8uw45ABIGYnrKMFUxRVX3BgneXmwrfvzR+pDyA="; }; mesonFlags = [ "-Degl_device=true" "-Dinstalled_tests=false" # TODO: enable these - "-Dtests=false" + "-Dtests=disabled" + # For NVIDIA proprietary driver up to 470. + # https://src.fedoraproject.org/rpms/mutter/pull-request/49 "-Dwayland_eglstream=true" "-Dprofiler=true" "-Dxwayland_path=${lib.getExe xwayland}" @@ -104,13 +108,16 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ desktop-file-utils + docutils # for rst2man gettext + glib libxcvt meson ninja xvfb-run pkg-config python3 + python3.pkgs.argcomplete # for register-python-argcomplete wayland-scanner wrapGAppsHook4 gi-docgen @@ -134,6 +141,7 @@ stdenv.mkDerivation (finalAttrs: { libgbm libei libdisplay-info + libGL libgudev libinput libstartup_notification @@ -162,36 +170,43 @@ stdenv.mkDerivation (finalAttrs: { libxkbfile xkeyboard_config libxkbcommon - libXrender libxcb libXrandr libXinerama libXau + + # for gdctl shebang + (python3.withPackages (pp: [ + pp.pygobject3 + pp.argcomplete + ])) ]; postPatch = '' patchShebangs src/backends/native/gen-default-modes.py - ''; - postInstall = '' - ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas" + # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3981 + substituteInPlace src/frames/main.c \ + --replace-fail "libadwaita-1.so.0" "${libadwaita}/lib/libadwaita-1.so.0" ''; postFixup = '' # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. # TODO: Move this into a directory devhelp can find. - moveToOutput "share/mutter-14/doc" "$devdoc" + moveToOutput "share/mutter-${finalAttrs.passthru.libmutter_api_version}/doc" "$devdoc" ''; # Install udev files into our own tree. env.PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev"; separateDebugInfo = true; + strictDeps = true; doInstallCheck = true; passthru = { - libdir = "${finalAttrs.finalPackage}/lib/mutter-14"; + libmutter_api_version = "16"; # bumped each dev cycle + libdir = "${finalAttrs.finalPackage}/lib/mutter-${finalAttrs.passthru.libmutter_api_version}"; tests = { libdirExists = runCommand "mutter-libdir-exists" { } '' @@ -208,6 +223,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Window manager for GNOME"; mainProgram = "mutter"; homepage = "https://gitlab.gnome.org/GNOME/mutter"; + changelog = "https://gitlab.gnome.org/GNOME/mutter/-/blob/${finalAttrs.version}/NEWS?ref_type=tags"; license = lib.licenses.gpl2Plus; teams = [ lib.teams.pantheon ]; platforms = lib.platforms.linux; diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index 2b3b53bc6e4d..ce88d24e09d1 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -45,7 +45,7 @@ lib.makeScope pkgs.newScope ( teams = [ lib.teams.pantheon ]; - mutter = pkgs.mutter46; + mutter = pkgs.mutter48; # Using 43 to match Mutter used in Pantheon gnome-settings-daemon = pkgs.gnome-settings-daemon46; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ab2536fbbed8..1f1ae3d2d466 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1216,6 +1216,7 @@ mapAliases { mumps_par = throw "'mumps_par' has been renamed to/replaced by 'mumps-mpi'"; # Converted to throw 2025-10-27 mustache-tcl = throw "'mustache-tcl' has been renamed to/replaced by 'tclPackages.mustache-tcl'"; # Converted to throw 2025-10-27 mutt-with-sidebar = throw "'mutt-with-sidebar' has been renamed to/replaced by 'mutt'"; # Converted to throw 2025-10-27 + mutter46 = throw "'mutter46' has been removed, no longer used by Pantheon"; # Added 2026-01-24 muzika = throw "muzika was discontinued upstream in november 2024"; # Added 2025-12-15; mx-puppet-discord = throw "mx-puppet-discord was removed since the packaging was unmaintained and was the sole user of sha1 hashes in nixpkgs"; # Added 2025-07-24 mysql-client = throw "mysql-client has been replaced by mariadb.client"; # Converted to throw 2025-10-26