about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/x11/quartz-wm
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/x11/quartz-wm')
-rw-r--r--nixpkgs/pkgs/servers/x11/quartz-wm/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/x11/quartz-wm/extern-patch.patch13
-rw-r--r--nixpkgs/pkgs/servers/x11/quartz-wm/no_title_crash.patch25
3 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/x11/quartz-wm/default.nix b/nixpkgs/pkgs/servers/x11/quartz-wm/default.nix
new file mode 100644
index 000000000000..ccb3937ac85f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/quartz-wm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, xorg, pixman, pkgconfig, AppKit, Foundation, Xplugin, cf-private }:
+
+let version = "1.3.1";
+in stdenv.mkDerivation {
+  name = "quartz-wm-${version}";
+  src = fetchurl {
+    url = "http://xquartz-dl.macosforge.org/src/quartz-wm-${version}.tar.xz";
+    sha256 = "1j8zd3p7rhay1s3sxq6anw78k5s59mx44xpqla2ianl62346a5g9";
+  };
+  patches = [
+    ./no_title_crash.patch
+    ./extern-patch.patch
+  ];
+  buildInputs = [
+    xorg.libXinerama
+    xorg.libAppleWM
+    xorg.applewmproto
+    xorg.libXrandr
+    xorg.libXext
+    pixman
+    pkgconfig
+    AppKit Xplugin Foundation
+    # Needed for CFNotificationCenterAddObserver symbols.
+    cf-private
+  ];
+  meta = with stdenv.lib; {
+    license = licenses.apsl20;
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ matthewbauer ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/x11/quartz-wm/extern-patch.patch b/nixpkgs/pkgs/servers/x11/quartz-wm/extern-patch.patch
new file mode 100644
index 000000000000..cd7b47fc7b05
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/quartz-wm/extern-patch.patch
@@ -0,0 +1,13 @@
+diff --git a/src/x-list.h b/src/x-list.h
+index bb85c02..059c88b 100644
+--- a/src/x-list.h
++++ b/src/x-list.h
+@@ -39,7 +39,7 @@
+ #endif
+ 
+ #ifndef X_EXTERN
+-# define X_EXTERN __private_extern__
++# define X_EXTERN extern
+ #endif
+ 
+ X_EXTERN void X_PFX (list_free_1) (x_list *node);
diff --git a/nixpkgs/pkgs/servers/x11/quartz-wm/no_title_crash.patch b/nixpkgs/pkgs/servers/x11/quartz-wm/no_title_crash.patch
new file mode 100644
index 000000000000..751a35072bcf
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/quartz-wm/no_title_crash.patch
@@ -0,0 +1,25 @@
+commit c28527b1340c51f2b492a31e49127106cebbfc5d
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Fri Jun 1 10:38:37 2012 -0700
+
+    Fix a crash when minimizing windows without titles
+    
+    <rdar://problem/11575791>
+    
+    Regression-from: 21f210c923aa5d79400ce46275084f2636c92bd9
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+diff --git a/src/x-window.m b/src/x-window.m
+index a210c6a..e3b9066 100644
+--- a/src/x-window.m
++++ b/src/x-window.m
+@@ -2139,7 +2139,7 @@ - (void) do_collapse
+     if (wid == XP_NULL_NATIVE_WINDOW_ID)
+         return;
+ 
+-    title_c = strdup([_title UTF8String]);
++    title_c = strdup([[self title] UTF8String]);
+     assert(title_c);
+ 
+     err = qwm_dock_minimize_item_with_title_async (wid, title_c);