about summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core/mutter
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome-3/core/mutter')
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/math.patch10
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/x86.patch20
4 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
new file mode 100644
index 000000000000..ebceb4ef706b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -0,0 +1,42 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
+, pango, cogl, clutter, libstartup_notification, libcanberra_gtk2, zenity, libcanberra_gtk3
+, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libudev, libinput
+, libgudev, xwayland }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  # fatal error: gio/gunixfdlist.h: No such file or directory
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0 -Wno-error=format -Wno-error=sign-compare";
+
+  configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra --with-xwayland-path=${xwayland}/bin/Xwayland";
+
+  propagatedBuildInputs = [
+    # required for pkgconfig to detect mutter-clutter
+    libXtst
+  ];
+
+  buildInputs = with gnome3;
+    [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower
+      gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra_gtk2
+      gnome3.geocode_glib libudev libinput libgudev
+      libcanberra_gtk3 zenity libtool makeWrapper xkeyboard_config libxkbfile
+      libxkbcommon ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/mutter" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  patches = [
+    ./x86.patch # ./math.patch
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/core/mutter/math.patch b/pkgs/desktops/gnome-3/core/mutter/math.patch
new file mode 100644
index 000000000000..dbdfd93f5e1d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/math.patch
@@ -0,0 +1,10 @@
+--- mutter-3.18.0/src/backends/meta-cursor-renderer.c.orig	2015-09-23 13:54:31.297523343 +0200
++++ mutter-3.18.0/src/backends/meta-cursor-renderer.c	2015-09-23 13:54:43.728271766 +0200
+@@ -31,6 +31,7 @@
+ 
+ #include <cogl/cogl.h>
+ #include <clutter/clutter.h>
++#include <math.h>
+ 
+ #include "meta-stage.h"
+ 
diff --git a/pkgs/desktops/gnome-3/core/mutter/src.nix b/pkgs/desktops/gnome-3/core/mutter/src.nix
new file mode 100644
index 000000000000..579ee0689e87
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "mutter-3.24.4";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/mutter/3.24/mutter-3.24.4.tar.xz;
+    sha256 = "7300b3fbf1bd0f7fe25e4869dd37134f2127bb6d9b8aa3aadd0eaf3c8bbf9aea";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/mutter/x86.patch b/pkgs/desktops/gnome-3/core/mutter/x86.patch
new file mode 100644
index 000000000000..93df1e7f2831
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/x86.patch
@@ -0,0 +1,20 @@
+--- a/src/core/window.c	2015-05-26 10:52:41.382834963 +0200
++++ b/src/core/window.c	2015-05-26 10:53:03.039948034 +0200
+@@ -3499,7 +3499,7 @@
+ 
+ static MetaMonitorInfo *
+ find_monitor_by_winsys_id (MetaWindow *window,
+-                           guint       winsys_id)
++                           gint       winsys_id)
+ {
+   int i;
+ 
+@@ -3618,7 +3618,7 @@
+    */
+ 
+   gboolean did_placement;
+-  guint old_output_winsys_id;
++  gint old_output_winsys_id;
+   MetaRectangle unconstrained_rect;
+   MetaRectangle constrained_rect;
+   MetaMoveResizeResultFlags result = 0;