summary refs log tree commit diff
path: root/pkgs/applications/misc/synergy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc/synergy/default.nix')
-rw-r--r--pkgs/applications/misc/synergy/default.nix37
1 files changed, 28 insertions, 9 deletions
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index 4bb3ef9e64a4..0b3734ea147a 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -1,19 +1,34 @@
-{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst }:
+{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput
+, cryptopp ? null, unzip ? null }:
+
+assert stdenv.isLinux -> cryptopp != null;
+assert !stdenv.isLinux -> unzip != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "synergy-1.4.10";
+  name = "synergy-1.4.12";
 
   src = fetchurl {
   	url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
-  	sha256 = "1ghgf96gbk4sdw8sqlc3pjschkmmqybihi12mg6hi26gnk7a5m86";
+  	sha256 = "0j884skwqy8r8ckj9a4rlwsbjwb1yrj9wqma1nwhr2inff6hrdim";
   };
 
-  buildInputs = [ cmake x11 libX11 libXi libXtst ];
-  
+  patches = optional stdenv.isLinux ./cryptopp.patch;
+
+  postPatch = if stdenv.isLinux then ''
+    sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
+      set(HAVE_X11_EXTENSIONS_XRANDR_H true)' CMakeLists.txt
+  '' else ''
+    ${unzip}/bin/unzip -d tools/cryptopp562 tools/cryptopp562.zip
+  '';
+
+  buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput ]
+             ++ optional stdenv.isLinux cryptopp;
+
   # At this moment make install doesn't work for synergy
   # http://synergy-foss.org/spit/issues/details/3317/
 
-  
   installPhase = ''
     ensureDir $out/bin
     cp ../bin/synergyc $out/bin
@@ -21,10 +36,14 @@ stdenv.mkDerivation rec {
     cp ../bin/synergyd $out/bin
   '';
 
-  meta = { 
+  doCheck = true;
+  checkPhase = "../bin/unittests";
+
+  meta = {
     description = "Tool to share the mouse keyboard and the clipboard between computers";
     homepage = http://synergy-foss.org;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.aszlig ];
+    platforms = platforms.all;
   };
 }