From 7dcf75bdd4eb85bce2506eb95d338a5da5e9a5e9 Mon Sep 17 00:00:00 2001
From: Tobias Pflug <tobias.pflug@holidaycheck.com>
Date: Mon, 25 Apr 2016 16:04:22 +0200
Subject: [PATCH 1/2] libuv: 1.7.5 -> 1.9.0

---
 pkgs/development/libraries/libuv/default.nix | 91 ++++----------------
 pkgs/top-level/all-packages.nix              |  7 +-
 pkgs/top-level/python-packages.nix           |  2 +-
 3 files changed, 21 insertions(+), 79 deletions(-)

diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 48d12321248..e039711e457 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -2,9 +2,23 @@
 
 , ApplicationServices, CoreServices }:
 
-let
-  stable = "stable";
-  unstable = "unstable";
+stdenv.mkDerivation rec {
+  version = "1.9.0";
+  name = "libuv-${version}";
+
+  src = fetchFromGitHub {
+    owner = "libuv";
+    repo = "libuv";
+    rev = "v${version}";
+    sha256 = "0sq8c8n7xixn2xxp35crprvh35ry18i5mcxgwh12lydwv9ks0d4k";
+  };
+
+  buildInputs = [ automake autoconf libtool pkgconfig ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ];
+
+  preConfigure = ''
+    LIBTOOLIZE=libtoolize ./autogen.sh
+  '';
 
   meta = with lib; {
     description = "A multi-platform support library with a focus on asynchronous I/O";
@@ -13,73 +27,4 @@ let
     platforms   = with platforms; linux ++ darwin;
   };
 
-  mkName = stability: version:
-    if stability == stable
-    then "libuv-${version}"
-    else "libuv-${stability}-${version}";
-
-  mkSrc = version: sha256: fetchFromGitHub {
-    owner = "libuv";
-    repo = "libuv";
-    rev = "v${version}";
-    inherit sha256;
-  };
-
-  # for versions < 0.11.6
-  mkWithoutAutotools = stability: version: sha256: stdenv.mkDerivation {
-    name = mkName stability version;
-    src = mkSrc version sha256;
-    buildPhase = lib.optionalString stdenv.isDarwin ''
-      mkdir extrapath
-      ln -s /usr/sbin/dtrace extrapath/dtrace
-      export PATH=$PATH:`pwd`/extrapath
-    '' + ''
-      mkdir build
-      make builddir_name=build
-
-      rm -r build/src
-      rm build/libuv.a
-      cp -r include build
-
-      mkdir build/lib
-      mv build/libuv.* build/lib
-
-      pushd build/lib
-      lib=$(basename libuv.*)
-      ext="''${lib##*.}"
-      mv $lib libuv.10.$ext
-      ln -s libuv.10.$ext libuv.$ext
-      popd
-    '';
-    installPhase = ''
-      cp -r build $out
-    '';
-    inherit meta;
-  };
-
-  # for versions > 0.11.6
-  mkWithAutotools = stability: version: sha256: stdenv.mkDerivation {
-    name = mkName stability version;
-    src = mkSrc version sha256;
-    buildInputs = [ automake autoconf libtool pkgconfig ]
-      ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ];
-    preConfigure = ''
-      LIBTOOLIZE=libtoolize ./autogen.sh
-    '';
-    inherit meta;
-  };
-
-  toVersion = with lib; name:
-    replaceChars ["_"] ["."] (removePrefix "v" name);
-
-in
-
-  with lib;
-
-  mapAttrs (v: h: mkWithAutotools unstable (toVersion v) h) {
-    v0_11_29 = "1z07phfwryfy2155p3lxcm2a33h20sfl96lds5dghn157x6csz7m";
-  }
-  //
-  mapAttrs (v: h: mkWithAutotools stable (toVersion v) h) {
-    v1_7_5 = "18x6cy2xn31am97vn6jli7kmb2fbp4c8kmv7jm97vggh0x55flsc";
-  }
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0851c5fb941..cee180b89d8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8037,12 +8037,9 @@ in
     then darwin.libunwind
     else callPackage ../development/libraries/libunwind { };
 
-  libuvVersions = recurseIntoAttrs (callPackage ../development/libraries/libuv {
-    automake = automake113x; # fails with 14
+  libuv = callPackage ../development/libraries/libuv {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  });
-
-  libuv = self.libuvVersions.v1_7_5;
+  };
 
   libv4l = lowPrio (self.v4l_utils.override {
     alsaLib = null;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 304c4932d8e..8c04c6feb78 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -22288,7 +22288,7 @@ in modules // {
 
     patches = [ ../development/python-modules/pyuv-external-libuv.patch ];
 
-    buildInputs = with self; [ pkgs.libuvVersions.v0_11_29 ];
+    buildInputs = with self; [ pkgs.libuv ];
 
     meta = {
       description = "Python interface for libuv";

From c893105f1f4497225a70961513726f5243a242f7 Mon Sep 17 00:00:00 2001
From: Tobias Pflug <tobias.pflug@holidaycheck.com>
Date: Wed, 27 Apr 2016 12:25:22 +0200
Subject: [PATCH 2/2] pyuv: 0.11.5 -> 1.2.0

---
 .../python-modules/pyuv-external-libuv.patch  | 22 +++++++++----------
 pkgs/top-level/python-packages.nix            |  4 ++--
 2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/pkgs/development/python-modules/pyuv-external-libuv.patch b/pkgs/development/python-modules/pyuv-external-libuv.patch
index 33539d9b4b2..41e169acd5f 100644
--- a/pkgs/development/python-modules/pyuv-external-libuv.patch
+++ b/pkgs/development/python-modules/pyuv-external-libuv.patch
@@ -1,27 +1,25 @@
 diff --git a/setup.py b/setup.py
-index ec0caac..2c1fdb6 100644
+index 5071c3b..4b4a176 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -6,7 +6,6 @@ try:
+@@ -7,7 +7,6 @@ try:
      from setuptools import setup, Extension
  except ImportError:
      from distutils.core import setup, Extension
 -from setup_libuv import libuv_build_ext, libuv_sdist
- 
- 
- __version__ = "0.11.5"
-@@ -32,12 +31,11 @@ setup(name             = "pyuv",
+
+
+ def get_version():
+@@ -35,11 +34,10 @@ setup(name             = "pyuv",
            "Programming Language :: Python :: 3.3",
            "Programming Language :: Python :: 3.4"
        ],
 -      cmdclass     = {'build_ext': libuv_build_ext,
 -                      'sdist'    : libuv_sdist},
-       ext_modules  = [Extension('pyuv',
+       packages     = ['pyuv'],
+       ext_modules  = [Extension('pyuv._cpyuv',
                                  sources = ['src/pyuv.c'],
-+                                libraries = ['uv'],
-                                 define_macros=[('MODULE_VERSION', __version__),
--                                               ('LIBUV_REVISION', libuv_build_ext.libuv_revision)]
-+                                               ('LIBUV_REVISION', 'unknown')]
++                                libraries = ['uv']
                       )]
       )
- 
+
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 8c04c6feb78..e755ff208b1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -22278,12 +22278,12 @@ in modules // {
   };
 
   pyuv = buildPythonPackage rec {
-    name = "pyuv-0.11.5";
+    name = "pyuv-1.2.0";
     disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
 
     src = pkgs.fetchurl {
       url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz";
-      sha256 = "c251952cb4e54c92ab0e871decd13cf73d11ca5dba9f92962de51d12e3a310a9";
+      sha256 = "19yl1l5l6dq1xr8xcv6dhx1avm350nr4v2358iggcx4ma631rycx";
     };
 
     patches = [ ../development/python-modules/pyuv-external-libuv.patch ];