8 , gobject-introspection
13 , libstartup_notification
39 , gsettings-desktop-schemas
53 , gnome-settings-daemon
67 stdenv.mkDerivation (finalAttrs: {
71 outputs = [ "out" "dev" "man" "devdoc" ];
74 url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
75 hash = "sha256-dHpj2jdF8wSwG1U5PZar2qggmDsYi2C0DburPmg8gF8=";
80 "-Dinstalled_tests=false" # TODO: enable these
82 "-Dwayland_eglstream=true"
84 "-Dxwayland_path=${lib.getExe xwayland}"
85 # This should be auto detected, but it looks like it manages a false
87 "-Dxwayland_initfd=disabled"
91 propagatedBuildInputs = [
92 # required for pkg-config to detect mutter-mtk
100 mesa # needed for gbm
109 gobject-introspection
117 gnome-settings-daemon
118 gsettings-desktop-schemas
128 libstartup_notification
135 sysprof # for D-Bus interfaces
163 patchShebangs src/backends/native/gen-default-modes.py
167 ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
171 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
172 # TODO: Move this into a directory devhelp can find.
173 moveToOutput "share/mutter-14/doc" "$devdoc"
176 # Install udev files into our own tree.
177 PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
179 separateDebugInfo = true;
182 libdir = "${finalAttrs.finalPackage}/lib/mutter-14";
185 libdirExists = runCommand "mutter-libdir-exists" {} ''
186 if [[ ! -d ${finalAttrs.finalPackage.libdir} ]]; then
187 echo "passthru.libdir should contain a directory, “${finalAttrs.finalPackage.libdir}” is not one."
194 updateScript = gnome.updateScript {
195 packageName = "mutter";
196 attrPath = "gnome.mutter";
201 description = "Window manager for GNOME";
202 mainProgram = "mutter";
203 homepage = "https://gitlab.gnome.org/GNOME/mutter";
204 license = licenses.gpl2Plus;
205 maintainers = teams.gnome.members;
206 platforms = platforms.linux;