summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/fsharp/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/clang/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/4/libc++/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/libc++abi.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/lld.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/lldb.nix2
-rw-r--r--pkgs/development/compilers/llvm/4/llvm.nix23
-rw-r--r--pkgs/development/compilers/rust/bootstrap.nix4
-rw-r--r--pkgs/development/compilers/rust/nightlyBin.nix4
-rw-r--r--pkgs/development/compilers/sbcl/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml68
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix6
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix442
-rw-r--r--pkgs/development/interpreters/lua-5/5.2.darwin.patch4
-rw-r--r--pkgs/development/interpreters/racket/default.nix5
-rw-r--r--pkgs/development/libraries/boost/generic.nix2
-rw-r--r--pkgs/development/libraries/botan/2.0.nix10
-rw-r--r--pkgs/development/libraries/botan/2.0.upstream10
-rw-r--r--pkgs/development/libraries/eigen/3.3.nix4
-rw-r--r--pkgs/development/libraries/eigen/default.nix8
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/icu/57.nix64
-rw-r--r--pkgs/development/libraries/icu/default.nix24
-rw-r--r--pkgs/development/libraries/libp11/default.nix20
-rw-r--r--pkgs/development/libraries/libpcap/default.nix9
-rw-r--r--pkgs/development/libraries/libre/default.nix4
-rw-r--r--pkgs/development/libraries/libuv/default.nix5
-rw-r--r--pkgs/development/libraries/mpir/default.nix13
-rw-r--r--pkgs/development/libraries/nss/default.nix6
-rw-r--r--pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch13
-rw-r--r--pkgs/development/libraries/phonon/backends/gstreamer.nix27
-rw-r--r--pkgs/development/libraries/qt-5/5.7/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.7/qtbase/cmake-paths-darwin.patch384
-rw-r--r--pkgs/development/libraries/qt-5/5.7/qtbase/default.nix127
-rw-r--r--pkgs/development/libraries/qt-5/5.7/qtbase/series1
-rw-r--r--pkgs/development/libraries/qt-5/5.7/qtwebengine/default.nix7
-rw-r--r--pkgs/development/libraries/sqlite/default.nix6
-rw-r--r--pkgs/development/python-modules/edward/default.nix27
-rw-r--r--pkgs/development/python-modules/nltk.nix30
-rw-r--r--pkgs/development/python-modules/pep257.nix2
-rw-r--r--pkgs/development/python-modules/pyqt/4.x.nix6
-rw-r--r--pkgs/development/python-modules/pyqt/5.x.nix4
-rw-r--r--pkgs/development/python-modules/pyrax.nix33
-rw-r--r--pkgs/development/python-modules/rackspace-novaclient.nix151
-rw-r--r--pkgs/development/python-modules/sip/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buildbot/default.nix138
-rw-r--r--pkgs/development/tools/build-managers/buildbot/worker.nix8
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix20
-rw-r--r--pkgs/development/tools/delve/default.nix1
-rw-r--r--pkgs/development/tools/misc/kibana/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/jbuilder/default.nix23
-rw-r--r--pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--pkgs/development/tools/simavr/default.nix4
-rw-r--r--pkgs/development/tools/vndr/default.nix2
57 files changed, 1520 insertions, 273 deletions
diff --git a/pkgs/development/compilers/fsharp/default.nix b/pkgs/development/compilers/fsharp/default.nix
index c00cea0029e..2971fd8a98b 100644
--- a/pkgs/development/compilers/fsharp/default.nix
+++ b/pkgs/development/compilers/fsharp/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     homepage = "http://fsharp.org/";
     license = stdenv.lib.licenses.asl20;
     maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = with stdenv.lib.platforms; unix;
   };
 }
diff --git a/pkgs/development/compilers/llvm/4/clang/default.nix b/pkgs/development/compilers/llvm/4/clang/default.nix
index 5be8ffd91cf..c0a33f03e0f 100644
--- a/pkgs/development/compilers/llvm/4/clang/default.nix
+++ b/pkgs/development/compilers/llvm/4/clang/default.nix
@@ -6,7 +6,7 @@ let
     name = "clang-${version}";
 
     unpackPhase = ''
-      unpackFile ${fetch "cfe" "1lsdyrz82vyrsc7k0ah1zmzzan61s5kakxrkxgfbmklp3pclfkwp"}
+      unpackFile ${fetch "cfe" "062n17mfsn85dx3qy1qvq8rfxi7hcbr2nj70v2dah3xmy28i3yaq"}
       mv cfe-${version}* clang
       sourceRoot=$PWD/clang
       unpackFile ${clang-tools-extra_src}
diff --git a/pkgs/development/compilers/llvm/4/default.nix b/pkgs/development/compilers/llvm/4/default.nix
index cbb3852057d..aed77b7513a 100644
--- a/pkgs/development/compilers/llvm/4/default.nix
+++ b/pkgs/development/compilers/llvm/4/default.nix
@@ -3,7 +3,7 @@ let
   callPackage = newScope (self // { inherit stdenv isl release_version version fetch; });
 
   release_version = "4.0.0";
-  rc = "rc3";
+  rc = "rc4";
   version = "${release_version}${rc}";
 
   fetch = name: sha256: fetchurl {
@@ -13,8 +13,8 @@ let
     inherit sha256;
   };
 
-  compiler-rt_src = fetch "compiler-rt" "0jfqhz95cp15c5688c6l9mr12s0qp86milpcrjlc93dc2jy08ba5";
-  clang-tools-extra_src = fetch "clang-tools-extra" "1c9c507w3f5vm153rdd0kmzvv2ski6z439izk01zf5snfwkqxkq8";
+  compiler-rt_src = fetch "compiler-rt" "1bxz2z9mxbx7211xfgsn5inwvpz53d1cqg76h8166dsli27xwkjm";
+  clang-tools-extra_src = fetch "clang-tools-extra" "0zkgnnv3srqxf44q4a5n3wpizf71mlq8w5rnwfwhdx777k94s5nx";
 
   self = {
     llvm = callPackage ./llvm.nix {
diff --git a/pkgs/development/compilers/llvm/4/libc++/default.nix b/pkgs/development/compilers/llvm/4/libc++/default.nix
index 57e064fb79a..753aded54ff 100644
--- a/pkgs/development/compilers/llvm/4/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/4/libc++/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libc++-${version}";
 
-  src = fetch "libcxx" "15l6bcmwczspbqcq4m2lmzb23g11axr9m8dayn25iys26nn00q43";
+  src = fetch "libcxx" "052fc91y8084830ajfm8nkc0vghafhnfl7l89b68qsyz3ra93i3l";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
diff --git a/pkgs/development/compilers/llvm/4/libc++abi.nix b/pkgs/development/compilers/llvm/4/libc++abi.nix
index fc1a6d84caa..23269f605f0 100644
--- a/pkgs/development/compilers/llvm/4/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/4/libc++abi.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "libc++abi-${version}";
 
-  src = fetch "libcxxabi" "1frj1wz780xcwq77icfclnw6q4c8bkkdzkqsrmfjv9963kjylsy5";
+  src = fetch "libcxxabi" "02z8d0q42wfmnnd0rd1yg2x4y50rfrv1k9rq00a86b6803dc7p45";
 
   buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
 
diff --git a/pkgs/development/compilers/llvm/4/lld.nix b/pkgs/development/compilers/llvm/4/lld.nix
index 7fe08cb0262..e62e50b2d31 100644
--- a/pkgs/development/compilers/llvm/4/lld.nix
+++ b/pkgs/development/compilers/llvm/4/lld.nix
@@ -10,7 +10,7 @@
 stdenv.mkDerivation {
   name = "lld-${version}";
 
-  src = fetch "lld" "0kmyp7iyf4f76wgy87jczkyhvzhlwfydvxgggl74z0x89xgry745";
+  src = fetch "lld" "00wy4qczh4s6g49sbfmyk21845zx5qc2qpm39bznqz8ynpnh4phc";
 
   buildInputs = [ cmake llvm ];
 
diff --git a/pkgs/development/compilers/llvm/4/lldb.nix b/pkgs/development/compilers/llvm/4/lldb.nix
index 23667e6afcd..4fec3ad1a89 100644
--- a/pkgs/development/compilers/llvm/4/lldb.nix
+++ b/pkgs/development/compilers/llvm/4/lldb.nix
@@ -17,7 +17,7 @@
 stdenv.mkDerivation {
   name = "lldb-${version}";
 
-  src = fetch "lldb" "1qr0ky7llwgjgx1pzkp3pnz32nb6f7lvg8qg6rp5axhgpkx54hz7";
+  src = fetch "lldb" "14dy1j48nw10w8brkpmla2vjjwfr1mrsl9wfabjfx1j85ywp3h69";
 
   patchPhase = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix
index 2d36f7cd0fb..1470e7d510f 100644
--- a/pkgs/development/compilers/llvm/4/llvm.nix
+++ b/pkgs/development/compilers/llvm/4/llvm.nix
@@ -21,7 +21,7 @@
 }:
 
 let
-  src = fetch "llvm" "0ic3y9gaissi6ixyj9x1c0pq69wfbl2svhprp33av0b58f7wj9v7";
+  src = fetch "llvm" "1ljb5y5wgypk3sy8zcd5qdgsm5hw8vl7cy6874mbf4gnk9k809b1";
   shlib = if stdenv.isDarwin then "dylib" else "so";
 
   # Used when creating a version-suffixed symlink of libLLVM.dylib
@@ -50,12 +50,19 @@ in stdenv.mkDerivation rec {
   # 10.9. This is a temporary measure until nixpkgs darwin support is
   # updated.
   postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-        sed -i 's/os_trace(\(.*\)");$/printf(\1\\n");/g' ./projects/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
+    sed -i 's/os_trace(\(.*\)");$/printf(\1\\n");/g' ./projects/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + stdenv.lib.optionalString (enableSharedLibraries) ''
     substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
     patch -p1 < ./llvm-outputs.patch
+  ''
+  # Remove broken tests: (https://bugs.llvm.org//show_bug.cgi?id=31610)
+  + ''
+    rm test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll
+    rm test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll
+    rm test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll
+    rm test/CodeGen/AMDGPU/runtime-metadata.ll
   '';
 
   # hacky fix: created binaries need to be run before installation
@@ -85,6 +92,14 @@ in stdenv.mkDerivation rec {
     rm -fR $out
 
     paxmark m bin/{lli,llvm-rtdyld}
+    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
+    paxmark m unittests/ExecutionEngine/Orc/OrcJITTests
+    paxmark m unittests/Support/SupportTests
+    paxmark m bin/lli-child-target
+  '';
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
   '';
 
   postInstall = ""
@@ -103,6 +118,10 @@ in stdenv.mkDerivation rec {
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   '';
 
+  doCheck = stdenv.isLinux;
+
+  checkTarget = "check-all";
+
   enableParallelBuilding = true;
 
   passthru.src = src;
diff --git a/pkgs/development/compilers/rust/bootstrap.nix b/pkgs/development/compilers/rust/bootstrap.nix
index b582b21dcc4..91660dcc5b3 100644
--- a/pkgs/development/compilers/rust/bootstrap.nix
+++ b/pkgs/development/compilers/rust/bootstrap.nix
@@ -12,7 +12,7 @@ let
     then "i686-apple-darwin"
     else if stdenv.system == "x86_64-darwin"
     then "x86_64-apple-darwin"
-    else abort "missing boostrap url for platform ${stdenv.system}";
+    else throw "missing bootstrap url for platform ${stdenv.system}";
 
   # fetch hashes by running `print-hashes.sh 1.14.0`
   bootstrapHash =
@@ -24,7 +24,7 @@ let
     then "fe1b3d67329a22d67e3b8db8858a43022e2e746dde60ef4a2db3f2cac16ea9bd"
     else if stdenv.system == "x86_64-darwin"
     then "3381341524b0184da5ed2cdcddc2a25e2e335e87f1cf676f64d98ee5e6479f20"
-    else throw "missing boostrap hash for platform ${stdenv.system}";
+    else throw "missing bootstrap hash for platform ${stdenv.system}";
 
   needsPatchelf = stdenv.isLinux;
 
diff --git a/pkgs/development/compilers/rust/nightlyBin.nix b/pkgs/development/compilers/rust/nightlyBin.nix
index 5f92e5c6d92..9916e4555c5 100644
--- a/pkgs/development/compilers/rust/nightlyBin.nix
+++ b/pkgs/development/compilers/rust/nightlyBin.nix
@@ -5,12 +5,12 @@ let
 
   platform = if stdenv.system == "x86_64-linux"
     then "x86_64-unknown-linux-gnu"
-    else abort "missing boostrap url for platform ${stdenv.system}";
+    else throw "missing bootstrap url for platform ${stdenv.system}";
 
   bootstrapHash =
     if stdenv.system == "x86_64-linux"
     then "1v7jvwigb29m15wilzcrk5jmlpaccpzbkhlzf7z5qw08320gvc91"
-    else throw "missing boostrap hash for platform ${stdenv.system}";
+    else throw "missing bootstrap hash for platform ${stdenv.system}";
 
   needsPatchelf = stdenv.isLinux;
 
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index c713d819661..d1dcda064cb 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
-  version = "1.3.14";
+  version = "1.3.15";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
-    sha256 = "1jnwsv8bdkrrg1w0gkjx9nb8sw3if38sna40davrx0rxadc3v5mz";
+    sha256 = "11db8pkv3i8ajyb295dh9nl0niyrkh9gjqv4vlaa1dl1vzck5ddi";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 6163e177a89..f37d8b4c9c7 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -875,4 +875,6 @@ self: super: {
   # https://github.com/cartazio/arithmoi/issues/49
   arithmoi = overrideCabal super.arithmoi (drv: { doCheck = !pkgs.stdenv.isi686; });
 
+  # https://github.com/danidiaz/streaming-eversion/issues/1
+  streaming-eversion = dontCheck super.streaming-eversion;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 76c460786c1..cab70ea6f6d 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -38,7 +38,7 @@ core-packages:
 
 default-package-overrides:
   - store < 0.4.1               # https://github.com/fpco/store/issues/104
-  # LTS Haskell 8.3
+  # LTS Haskell 8.4
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Vector ==2.3.2
@@ -171,7 +171,7 @@ default-package-overrides:
   - arrow-list ==0.7
   - ascii-progress ==0.3.3.0
   - asciidiagram ==1.3.3
-  - asn1-encoding ==0.9.4
+  - asn1-encoding ==0.9.5
   - asn1-parse ==0.9.4
   - asn1-types ==0.3.2
   - async ==2.1.1
@@ -207,7 +207,7 @@ default-package-overrides:
   - base58string ==0.10.0
   - base64-bytestring ==1.0.0.1
   - base64-string ==0.2
-  - basic-prelude ==0.6.1
+  - basic-prelude ==0.6.1.1
   - bcrypt ==0.0.10
   - benchpress ==0.2.2.9
   - bencode ==0.6.0.0
@@ -326,7 +326,7 @@ default-package-overrides:
   - cheapskate ==0.1.0.5
   - cheapskate-highlight ==0.1.0.0
   - cheapskate-lucid ==0.1.0.0
-  - check-email ==1.0
+  - check-email ==1.0.2
   - checkers ==0.4.6
   - chell ==0.4.0.1
   - choice ==0.2.0
@@ -345,7 +345,7 @@ default-package-overrides:
   - clash-systemverilog ==0.7
   - clash-verilog ==0.7
   - clash-vhdl ==0.7
-  - classy-prelude ==1.2.0
+  - classy-prelude ==1.2.0.1
   - classy-prelude-conduit ==1.2.0
   - classy-prelude-yesod ==1.2.0
   - clay ==0.12.1
@@ -407,7 +407,7 @@ default-package-overrides:
   - cookie ==0.4.2.1
   - countable ==1.0
   - courier ==0.1.1.4
-  - cpphs ==1.20.3
+  - cpphs ==1.20.4
   - cprng-aes ==0.6.1
   - cpu ==0.1.2
   - cpuinfo ==0.1.0.1
@@ -612,8 +612,8 @@ default-package-overrides:
   - feed ==0.3.12.0
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.4
-  - fgl ==5.5.3.0
-  - fgl-arbitrary ==0.2.0.2
+  - fgl ==5.5.3.1
+  - fgl-arbitrary ==0.2.0.3
   - file-embed ==0.0.10
   - file-modules ==0.1.2.4
   - filecache ==0.2.9
@@ -860,6 +860,7 @@ default-package-overrides:
   - happstack-server-tls ==7.1.6.2
   - happy ==1.19.5
   - harp ==0.4.2
+  - hasbolt ==0.1.1.1
   - hashable ==1.2.5.0
   - hashable-time ==0.2
   - hashmap ==1.3.2
@@ -1089,7 +1090,7 @@ default-package-overrides:
   - interpolatedstring-perl6 ==1.0.0
   - IntervalMap ==0.5.2.0
   - intervals ==0.7.2
-  - intro ==0.1.0.8
+  - intro ==0.1.0.10
   - invariant ==0.4
   - invertible ==0.2.0.2
   - io-choice ==0.0.6
@@ -1105,7 +1106,7 @@ default-package-overrides:
   - IPv6Addr ==0.6.3
   - irc ==0.6.1.0
   - irc-client ==0.4.4.1
-  - irc-conduit ==0.2.2.0
+  - irc-conduit ==0.2.2.1
   - irc-ctcp ==0.1.3.0
   - irc-dcc ==2.0.0
   - islink ==0.1.0.0
@@ -1164,7 +1165,7 @@ default-package-overrides:
   - language-javascript ==0.6.0.9
   - language-lua2 ==0.1.0.5
   - language-nix ==2.1.0.1
-  - language-puppet ==1.3.5.1
+  - language-puppet ==1.3.6
   - language-python ==0.5.4
   - language-thrift ==0.10.0.0
   - large-hashable ==0.1.0.3
@@ -1223,7 +1224,7 @@ default-package-overrides:
   - loop ==0.3.0
   - lrucache ==1.2.0.0
   - lrucaching ==0.3.1
-  - lucid ==2.9.7
+  - lucid ==2.9.8.1
   - lucid-svg ==0.7.0.0
   - lzma-conduit ==1.1.3.1
   - machines ==0.6.1
@@ -1259,6 +1260,7 @@ default-package-overrides:
   - metrics ==0.4.0.1
   - MFlow ==0.4.6.0
   - mfsolve ==0.3.2.0
+  - microbench ==0.1
   - microformats2-parser ==1.0.1.6
   - microlens ==0.4.7.0
   - microlens-aeson ==2.2.0
@@ -1293,10 +1295,10 @@ default-package-overrides:
   - monad-par ==0.3.4.8
   - monad-par-extras ==0.3.3
   - monad-parallel ==0.7.2.2
-  - monad-peel ==0.2.1.1
+  - monad-peel ==0.2.1.2
   - monad-primitive ==0.1
   - monad-products ==4.0.1
-  - monad-skeleton ==0.1.2.2
+  - monad-skeleton ==0.1.3
   - monad-time ==0.2
   - monad-unlift ==0.2.0
   - monad-unlift-ref ==0.2.0
@@ -1309,7 +1311,7 @@ default-package-overrides:
   - MonadRandom ==0.5.1
   - monads-tf ==0.1.0.3
   - mongoDB ==2.1.1.1
-  - mono-traversable ==1.0.1.3
+  - mono-traversable ==1.0.2
   - mono-traversable-instances ==0.1.0.0
   - monoid-extras ==0.4.2
   - monoid-subclasses ==0.4.3.1
@@ -1646,7 +1648,7 @@ default-package-overrides:
   - rest-types ==1.14.1.1
   - rest-wai ==0.2.0.1
   - result ==0.2.6.0
-  - rethinkdb ==2.2.0.8
+  - rethinkdb ==2.2.0.9
   - rethinkdb-client-driver ==0.0.23
   - retry ==0.7.4.2
   - rev-state ==0.1.2
@@ -1703,7 +1705,7 @@ default-package-overrides:
   - servant-docs ==0.9.1.1
   - servant-elm ==0.4.0.1
   - servant-foreign ==0.9.1.1
-  - servant-js ==0.9.2
+  - servant-js ==0.9.3
   - servant-JuicyPixels ==0.3.0.2
   - servant-lucid ==0.7.1
   - servant-mock ==0.8.1.1
@@ -1813,7 +1815,7 @@ default-package-overrides:
   - storable-endian ==0.2.6
   - storable-record ==0.0.3.1
   - Strafunski-StrategyLib ==5.0.0.10
-  - stratosphere ==0.4.0
+  - stratosphere ==0.4.1
   - streaming ==0.1.4.5
   - streaming-bytestring ==0.1.4.6
   - streaming-commons ==0.1.17
@@ -1831,6 +1833,10 @@ default-package-overrides:
   - stringable ==0.1.3
   - stringbuilder ==0.5.0
   - stringsearch ==0.3.6.6
+  - stripe-core ==2.2.1
+  - stripe-haskell ==2.2.1
+  - stripe-http-streams ==2.2.1
+  - stripe-tests ==2.2.1
   - strive ==3.0.2
   - stylish-haskell ==0.7.1.0
   - success ==0.2.6
@@ -1863,7 +1869,7 @@ default-package-overrides:
   - tar-conduit ==0.1.0
   - tardis ==0.4.1.0
   - tasty ==0.11.2
-  - tasty-ant-xml ==1.0.4
+  - tasty-ant-xml ==1.0.5
   - tasty-auto ==0.1.0.2
   - tasty-dejafu ==0.3.0.2
   - tasty-discover ==1.1.0
@@ -2017,7 +2023,7 @@ default-package-overrides:
   - Unixutils ==1.54.1
   - unlit ==0.4.0.0
   - unordered-containers ==0.2.7.2
-  - uri-bytestring ==0.2.3.0
+  - uri-bytestring ==0.2.3.1
   - uri-encode ==1.5.0.5
   - uri-templater ==0.2.1.0
   - url ==2.1.3
@@ -2172,27 +2178,27 @@ default-package-overrides:
   - Yampa ==0.10.5
   - YampaSynth ==0.2
   - yes-precure5-command ==5.5.3
-  - yesod ==1.4.4
-  - yesod-auth ==1.4.16
+  - yesod ==1.4.5
+  - yesod-auth ==1.4.17
   - yesod-auth-account ==1.4.3
   - yesod-auth-basic ==0.1.0.2
   - yesod-auth-hashdb ==1.6.0.1
-  - yesod-bin ==1.5.1
-  - yesod-core ==1.4.31
-  - yesod-eventsource ==1.4.0.1
+  - yesod-bin ==1.5.2
+  - yesod-core ==1.4.32
+  - yesod-eventsource ==1.4.1
   - yesod-fay ==0.8.0
-  - yesod-form ==1.4.10
+  - yesod-form ==1.4.11
   - yesod-form-richtext ==0.1.0.0
   - yesod-gitrepo ==0.2.1.0
   - yesod-gitrev ==0.1.0.0
   - yesod-newsfeed ==1.6
-  - yesod-persistent ==1.4.1.1
+  - yesod-persistent ==1.4.2
   - yesod-sitemap ==1.4.0.1
-  - yesod-static ==1.5.1.1
+  - yesod-static ==1.5.2
   - yesod-static-angular ==0.1.8
   - yesod-table ==2.0.3
-  - yesod-test ==1.5.4.1
-  - yesod-websockets ==0.2.5
+  - yesod-test ==1.5.5
+  - yesod-websockets ==0.2.6
   - yi-core ==0.13.5
   - yi-frontend-vty ==0.13.5
   - yi-fuzzy-open ==0.13.5
@@ -2209,7 +2215,7 @@ default-package-overrides:
   - yjtools ==0.9.18
   - zero ==0.1.4
   - zeromq4-haskell ==0.6.5
-  - zip ==0.1.8
+  - zip ==0.1.9
   - zip-archive ==0.3.0.5
   - zippers ==0.2.2
   - zlib ==0.6.1.2
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index c62d2702b44..85421ba960e 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -420,10 +420,16 @@ self: super: builtins.intersectAttrs super {
   # tests require git
   hapistrano = addBuildTool super.hapistrano pkgs.git;
 
+  # This propagates this to everything depending on haskell-gi-base
+  haskell-gi-base = addBuildDepend super.haskell-gi-base pkgs.gobjectIntrospection;
+
   # requires webkitgtk API version 3 (webkitgtk 2.4 is the latest webkit supporting that version)
   gi-javascriptcore = super.gi-javascriptcore.override { webkitgtk = pkgs.webkitgtk24x; };
   gi-webkit = super.gi-webkit.override { webkit = pkgs.webkitgtk24x; };
 
+  # Requires gi-javascriptcore API version 4
+  gi-webkit2 = super.gi-webkit2.override { gi-javascriptcore = self.gi-javascriptcore_4_0_11; };
+
   # requires valid, writeable $HOME
   hatex-guide = overrideCabal super.hatex-guide (drv: {
     preConfigure = ''
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index e47375e71c7..f580de51a35 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, ghc, pkgconfig, glibcLocales, coreutils, gnugrep, gnused
-, jailbreak-cabal, hscolour, cpphs, nodePackages
+, jailbreak-cabal, hscolour, cpphs
 }: let isCross = (ghc.cross or null) != null; in
 
 { pname
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index d9ebdb70b82..c50f9a12731 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -2873,6 +2873,17 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "Compactable" = callPackage
+    ({ mkDerivation, base, containers, transformers, vector }:
+     mkDerivation {
+       pname = "Compactable";
+       version = "0.1.0.2";
+       sha256 = "402a4d9c2fd28c9d780f094d112858f38600cf73bbdddf9baaac580912cd3f3e";
+       libraryHaskellDepends = [ base containers transformers vector ];
+       description = "A generalization for containers that can be stripped of Nothing";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Concurrent-Cache" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -20896,8 +20907,8 @@ self: {
      }:
      mkDerivation {
        pname = "affection";
-       version = "0.0.0.4";
-       sha256 = "31d82e66df577e34b0b96a70111d61918db70db93b3b0a66ce4e27c661688a58";
+       version = "0.0.0.5";
+       sha256 = "4d5f2d6257d6dcb6fe7b1658bead8e0c48451414d434d44e5492709b81ac43e7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -33658,6 +33669,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "boltzmann-samplers" = callPackage
+    ({ mkDerivation, ad, base, containers, hashable, hmatrix, ieee754
+     , MonadRandom, mtl, QuickCheck, transformers, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "boltzmann-samplers";
+       version = "0.1.0.0";
+       sha256 = "5707065a83cb30223ffedbd740ac07d3d879bb0895ba7666d23d659e3b69883f";
+       revision = "1";
+       editedCabalFile = "203beaed2fdb6bbbd42cfa264f9fe1ef2ba4a69f4c92a85864317ffdd43a6a03";
+       libraryHaskellDepends = [
+         ad base containers hashable hmatrix ieee754 MonadRandom mtl
+         QuickCheck transformers unordered-containers vector
+       ];
+       homepage = "https://github.com/Lysxia/boltzmann-samplers#readme";
+       description = "Uniform random generators";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "bond" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring
      , cmdargs, derive, Diff, directory, filepath, HUnit, monad-loops
@@ -34511,8 +34542,8 @@ self: {
     ({ mkDerivation, base, bson, template-haskell, text, th-lift }:
      mkDerivation {
        pname = "bson-mapping";
-       version = "0.1.5.0";
-       sha256 = "ba8ec4df8362c67e3da032399e92ddc94a6ddbd80232e2566648de0b5d53085a";
+       version = "0.1.5.1";
+       sha256 = "3f8eeb235b75a265bbc32b0fd808319144096d306f9bf1ed4434a28dd24facde";
        libraryHaskellDepends = [
          base bson template-haskell text th-lift
        ];
@@ -41194,20 +41225,20 @@ self: {
 
   "clit" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, authenticate-oauth, base
-     , bytestring, data-default, http-client, http-client-tls
+     , bytestring, data-default, directory, http-client, http-client-tls
      , http-types, lens, megaparsec, MissingH, optparse-applicative
      , split, text
      }:
      mkDerivation {
        pname = "clit";
-       version = "0.3.0.3";
-       sha256 = "963a5a636ded2f1f7ac7a6b4b4af8a38403ecda4913e12b36719ee57c1a27925";
+       version = "0.3.1.0";
+       sha256 = "1e8f6dfb1c868b979722ec855b8b75165a61bf41a210a2c29a408573c9bc8085";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-wl-pprint authenticate-oauth base bytestring
-         data-default http-client http-client-tls http-types lens megaparsec
-         MissingH optparse-applicative split text
+         data-default directory http-client http-client-tls http-types lens
+         megaparsec MissingH optparse-applicative split text
        ];
        executableHaskellDepends = [ base ];
        homepage = "https://github.com/vmchale/command-line-tweeter#readme";
@@ -58120,8 +58151,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "effin";
-       version = "0.3.0.1";
-       sha256 = "2e6a4a183d3626ab2509e7e80461efaeeb7327fa41fe3883f7e4163e9bec9365";
+       version = "0.3.0.2";
+       sha256 = "dd09e453c57987990865d8ff3b5e8ff26035a6087a31b5ecb4d1c3dfd785f014";
        libraryHaskellDepends = [ base mtl ];
        homepage = "https://github.com/YellPika/effin";
        description = "A Typeable-free implementation of extensible effects";
@@ -60658,6 +60689,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "eve" = callPackage
+    ({ mkDerivation, base, containers, data-default, free, hspec
+     , hspec-core, lens, mtl, pipes, pipes-concurrency, pipes-parse
+     }:
+     mkDerivation {
+       pname = "eve";
+       version = "0.1.0";
+       sha256 = "18cc10498a3c663fed847eaa5caf910f613cca4c817e05a3e884b077b2122ed9";
+       libraryHaskellDepends = [
+         base containers data-default free lens mtl pipes pipes-concurrency
+         pipes-parse
+       ];
+       testHaskellDepends = [
+         base data-default hspec hspec-core lens mtl
+       ];
+       homepage = "https://github.com/ChrisPenner/eve#readme";
+       description = "An extensible event framework";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "event" = callPackage
     ({ mkDerivation, base, containers, semigroups, transformers }:
      mkDerivation {
@@ -64053,8 +64104,8 @@ self: {
      }:
      mkDerivation {
        pname = "fix-imports";
-       version = "1.0.4";
-       sha256 = "46da19d982e3470bd28e55f895c3fc6e6e80a6b98f1014f32755b8601cc61e49";
+       version = "1.0.5";
+       sha256 = "0b072eec7895d3514276c2a25d6d56665dbabb46b13c22aeb5f560459216de05";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -64957,8 +65008,8 @@ self: {
      }:
      mkDerivation {
        pname = "fltkhs";
-       version = "0.5.1.2";
-       sha256 = "30a8f7229bb16ccd72bdefddf67d4ef23e9c87e200207dfdf944b737dd49a71d";
+       version = "0.5.1.3";
+       sha256 = "391f97abb8acac97b82d3b8a3ee3d62e2f76b566c01be2dff8835932fd85ae29";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -66560,6 +66611,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "freer-effects" = callPackage
+    ({ mkDerivation, base, criterion, free, hlint, mtl, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "freer-effects";
+       version = "0.3.0.0";
+       sha256 = "06b67cabe8141468a0bc55d6f39918fd0a037992e760411d116a36a22586d57f";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hlint QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base criterion free mtl ];
+       homepage = "https://github.com/IxpertaSolutions/freer-effects";
+       description = "Implementation of effect system for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "freesect" = callPackage
     ({ mkDerivation, array, base, cpphs, directory, mtl, parallel
      , pretty, random, syb
@@ -68242,8 +68314,8 @@ self: {
      }:
      mkDerivation {
        pname = "general-games";
-       version = "1.0.1";
-       sha256 = "ce6805d308b6aed79de4c55ea6b4d1edd7ce0a536df9131d1aef2f1f7e1221a6";
+       version = "1.0.2";
+       sha256 = "1415c6cb8a2d37322e7568ae53ffca5d658aed6e47bbbefa5c59ed88c09b384e";
        libraryHaskellDepends = [
          base monad-loops MonadRandom random random-shuffle
        ];
@@ -68475,6 +68547,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "generic-random_0_4_1_0" = callPackage
+    ({ mkDerivation, base, boltzmann-samplers, QuickCheck }:
+     mkDerivation {
+       pname = "generic-random";
+       version = "0.4.1.0";
+       sha256 = "cad16f88436384b5157b1ba09d7931f2d31a60c46bab4669659bff7936032ee2";
+       libraryHaskellDepends = [ base boltzmann-samplers QuickCheck ];
+       homepage = "http://github.com/lysxia/generic-random";
+       description = "Generic random generators";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-records" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -70291,14 +70376,14 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghcjs-hplay_0_4_1" = callPackage
+  "ghcjs-hplay_0_4_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , ghcjs-perch, mtl, transformers, transient, transient-universe
      }:
      mkDerivation {
        pname = "ghcjs-hplay";
-       version = "0.4.1";
-       sha256 = "0589b76f6411abcf05a61a3f2b9d2d25064d5c1140dabf14b4a5d6aca0162b2b";
+       version = "0.4.2";
+       sha256 = "abab4f37c8168fca3c9c82b3349ac817c0771b6b09cc09a1eb6cce46bd0bdc2d";
        libraryHaskellDepends = [
          base bytestring containers directory ghcjs-perch mtl transformers
          transient transient-universe
@@ -76091,10 +76176,8 @@ self: {
      }:
      mkDerivation {
        pname = "google-maps-geocoding";
-       version = "0.1.0.0";
-       sha256 = "375204744bebde75f9d249dc535d6b3199b342c6e68e452b7af4a3ac55521ef5";
-       revision = "1";
-       editedCabalFile = "293782aef4b6465cfe154b1601db24c5720a444c802f5a454fa06f04f0549614";
+       version = "0.1.0.1";
+       sha256 = "58cd8efd50ebeaf4a5630f4548065c1e05ce6a39367d9ccaa0e1ccc67be3f531";
        libraryHaskellDepends = [
          aeson base http-client servant servant-client text
        ];
@@ -102520,8 +102603,8 @@ self: {
        pname = "imperative-edsl";
        version = "0.7";
        sha256 = "1a207736fb6b84e5316bbbe95593b464fe7f155db65e89fbac78b59d0e05f5f7";
-       revision = "1";
-       editedCabalFile = "c7ce36becbcecf66151a8b850abb7a19752aa0dfd68922198dd53ed95470b57c";
+       revision = "2";
+       editedCabalFile = "c0d206bbb494b14bb4f2bbcbab994dc65fde03edb3f898d3ede7492578774f97";
        libraryHaskellDepends = [
          array base BoundedChan containers data-default-class deepseq
          directory exception-transformers ghc-prim language-c-quote
@@ -106293,6 +106376,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "javascript-extras" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "javascript-extras";
+       version = "0.1.0.0";
+       sha256 = "cf74b6c2be87ee5bc96b5ff47335a8eb2d879d7ec83bf6c83be609293f40f4be";
+       libraryHaskellDepends = [ base ];
+       homepage = "https://github.com/louispan/javascript-extras#readme";
+       description = "Extra javascript functions when using GHCJS";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "javasf" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, doctest
      , filepath, language-java-classfile, QuickCheck
@@ -110783,6 +110878,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-c-quote_0_11_7_2" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers
+     , exception-mtl, exception-transformers, filepath, happy
+     , haskell-src-meta, HUnit, mainland-pretty, mtl, srcloc, syb
+     , symbol, template-haskell, test-framework, test-framework-hunit
+     }:
+     mkDerivation {
+       pname = "language-c-quote";
+       version = "0.11.7.2";
+       sha256 = "5654187eaa82afe2b7ad959436b35c561fa5bc5b68af5624ab204e9db3591508";
+       libraryHaskellDepends = [
+         array base bytestring containers exception-mtl
+         exception-transformers filepath haskell-src-meta mainland-pretty
+         mtl srcloc syb symbol template-haskell
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         base bytestring HUnit mainland-pretty srcloc symbol test-framework
+         test-framework-hunit
+       ];
+       homepage = "http://www.drexel.edu/~mainland/";
+       description = "C/CUDA/OpenCL/Objective-C quasiquoting library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-cil" = callPackage
     ({ mkDerivation, base, bool-extras }:
      mkDerivation {
@@ -118345,6 +118466,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mainland-pretty_0_5_0_0" = callPackage
+    ({ mkDerivation, base, containers, srcloc, text }:
+     mkDerivation {
+       pname = "mainland-pretty";
+       version = "0.5.0.0";
+       sha256 = "0666eb8e8005d42c00b49177eeb07518f578d2cb0f891aa7be6c44bd88428d43";
+       libraryHaskellDepends = [ base containers srcloc text ];
+       homepage = "https://github.com/mainland/mainland-pretty";
+       description = "Pretty printing designed for printing source code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "majordomo" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, monad-loops, old-locale
      , threads, time, unix, zeromq-haskell
@@ -119321,8 +119455,8 @@ self: {
      }:
      mkDerivation {
        pname = "marvin";
-       version = "0.2.2";
-       sha256 = "87c5aa6059c7dbf6c8d20d31d3a242bc68aa888313453448ca520f726272dbbb";
+       version = "0.2.3";
+       sha256 = "79f439662bd8acd8ab528f29fad7ec73517edcf198fc29dc693c35100110553d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119587,6 +119721,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {eng = null; mat = null; mx = null;};
 
+  "matplotlib" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, process, tasty
+     , tasty-hunit, temporary
+     }:
+     mkDerivation {
+       pname = "matplotlib";
+       version = "0.1.0.0";
+       sha256 = "8001811170e201741eca52a0926c78810f451b104cc1ef055779b1b7351dee0d";
+       libraryHaskellDepends = [
+         aeson base bytestring process temporary
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit temporary ];
+       homepage = "https://github.com/abarbu/matplotlib-haskell";
+       description = "Bindings to Matplotlib; a Python plotting library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "matrices" = callPackage
     ({ mkDerivation, base, criterion, deepseq, primitive, tasty
      , tasty-hunit, tasty-quickcheck, vector
@@ -136351,6 +136502,41 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent_2_6_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
+     , blaze-html, blaze-markup, bytestring, conduit, containers
+     , exceptions, fast-logger, hspec, http-api-data, lifted-base
+     , monad-control, monad-logger, mtl, old-locale, path-pieces
+     , resource-pool, resourcet, scientific, silently, tagged
+     , template-haskell, text, time, transformers, transformers-base
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "persistent";
+       version = "2.6.1";
+       sha256 = "c79e0f6e7b727dcae0c7c541f1d47eb8fb0b9e9c55d2478a476a4aca8e405f7e";
+       libraryHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-html blaze-markup
+         bytestring conduit containers exceptions fast-logger http-api-data
+         lifted-base monad-control monad-logger mtl old-locale path-pieces
+         resource-pool resourcet scientific silently tagged template-haskell
+         text time transformers transformers-base unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-html bytestring
+         conduit containers fast-logger hspec http-api-data lifted-base
+         monad-control monad-logger mtl old-locale path-pieces resource-pool
+         resourcet scientific tagged template-haskell text time transformers
+         unordered-containers vector
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Type-safe, multi-backend data serialization";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-audit" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , getopt-generics, hashable, hspec, mongoDB, persistent
@@ -136532,6 +136718,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "persistent-mysql_2_6_0_1" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
+     , containers, monad-control, monad-logger, mysql, mysql-simple
+     , persistent, resource-pool, resourcet, text, transformers
+     }:
+     mkDerivation {
+       pname = "persistent-mysql";
+       version = "2.6.0.1";
+       sha256 = "6c7b1805517c084ed971bcb78f12e7ebc87339389660ac470473a2ed49894cbe";
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring conduit containers
+         monad-control monad-logger mysql mysql-simple persistent
+         resource-pool resourcet text transformers
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Backend for the persistent library using MySQL database server";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "persistent-odbc" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, containers
      , convertible, HDBC, HDBC-odbc, monad-control, monad-logger
@@ -136588,6 +136794,28 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent-postgresql_2_6_1" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
+     , containers, monad-control, monad-logger, persistent
+     , postgresql-libpq, postgresql-simple, resource-pool, resourcet
+     , text, time, transformers
+     }:
+     mkDerivation {
+       pname = "persistent-postgresql";
+       version = "2.6.1";
+       sha256 = "0cdfb492faa3a69ec69f06bb3c17ee6c36399f406e02a2ff16086f45bed6f870";
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring conduit containers
+         monad-control monad-logger persistent postgresql-libpq
+         postgresql-simple resource-pool resourcet text time transformers
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Backend for the persistent library using postgresql";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-protobuf" = callPackage
     ({ mkDerivation, base, bytestring, persistent, protocol-buffers
      , protocol-buffers-descriptor, template-haskell, text
@@ -136708,6 +136936,34 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent-sqlite_2_6_2" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, containers
+     , hspec, microlens-th, monad-control, monad-logger, old-locale
+     , persistent, persistent-template, resource-pool, resourcet
+     , temporary, text, time, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-sqlite";
+       version = "2.6.2";
+       sha256 = "6136c471fc81869cf0fde2049defb9c82698e3c0048d1321c3eda01046b985bf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring conduit containers microlens-th monad-control
+         monad-logger old-locale persistent resource-pool resourcet text
+         time transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base hspec persistent persistent-template temporary text time
+         transformers
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Backend for the persistent library using sqlite3";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-template" = callPackage
     ({ mkDerivation, aeson, aeson-compat, base, bytestring, containers
      , ghc-prim, hspec, http-api-data, monad-control, monad-logger
@@ -136734,6 +136990,31 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent-template_2_5_2" = callPackage
+    ({ mkDerivation, aeson, aeson-compat, base, bytestring, containers
+     , ghc-prim, hspec, http-api-data, monad-control, monad-logger
+     , path-pieces, persistent, QuickCheck, tagged, template-haskell
+     , text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-template";
+       version = "2.5.2";
+       sha256 = "de695b008158f9ae66d103fc33f89c098ebcf59337367063d9f4f816a58b4011";
+       libraryHaskellDepends = [
+         aeson aeson-compat base bytestring containers ghc-prim
+         http-api-data monad-control monad-logger path-pieces persistent
+         tagged template-haskell text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec persistent QuickCheck text transformers
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Type-safe, non-relational, multi-backend persistence";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-vector" = callPackage
     ({ mkDerivation, base, containers, criterion, deepseq, QuickCheck
      , test-framework, test-framework-quickcheck2
@@ -141984,6 +142265,8 @@ self: {
        pname = "primitive";
        version = "0.6.2.0";
        sha256 = "b8e8d70213e22b3fab0e0d11525c02627489618988fdc636052ca0adce282ae1";
+       revision = "1";
+       editedCabalFile = "a67c9da25c0d15971f8dc06c119cae4a0180a7216c0a3a3d6e52357d2f7ac134";
        libraryHaskellDepends = [ base ghc-prim transformers ];
        testHaskellDepends = [ base ghc-prim ];
        homepage = "https://github.com/haskell/primitive";
@@ -149006,8 +149289,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex";
-       version = "0.3.0.0";
-       sha256 = "f0f8c9722a601edfc2fb7963956f331f3dd1e1655fafb07758aad6defea579de";
+       version = "0.5.0.0";
+       sha256 = "422392384ce3986d1c5627b30c8dc9dfb05fe41044820739d11da51ff1a8c27f";
        libraryHaskellDepends = [
          array base base-compat bytestring containers hashable heredoc
          regex-base regex-pcre-builtin regex-tdfa regex-tdfa-text
@@ -149165,8 +149448,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex-examples";
-       version = "0.3.0.0";
-       sha256 = "c274ffacf3eeecb9e9530d07fd44dd0539c8225923ae0cb82b5d48ad6333903b";
+       version = "0.5.0.0";
+       sha256 = "bfc94f67d1723fd833247512549aa2e0a9d18070aaf9409feaef87388a48a1bb";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -159666,6 +159949,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shell-conduit_4_6_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , control-monad-loop, directory, filepath, hspec
+     , hspec-expectations, monad-control, monads-tf, process, resourcet
+     , semigroups, split, template-haskell, text, transformers
+     , transformers-base, unix
+     }:
+     mkDerivation {
+       pname = "shell-conduit";
+       version = "4.6.0";
+       sha256 = "9ce6230efb78589b5b28dd82396d73afbc832bbb8213f51c28ab6c946a9a12a1";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra control-monad-loop
+         directory filepath monad-control monads-tf process resourcet
+         semigroups split template-haskell text transformers
+         transformers-base unix
+       ];
+       testHaskellDepends = [
+         base hspec hspec-expectations template-haskell
+       ];
+       homepage = "https://github.com/psibi/shell-conduit";
+       description = "Write shell scripts with Conduit";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shell-escape" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, vector }:
      mkDerivation {
@@ -166267,6 +166576,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stache_0_2_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, directory, exceptions, file-embed, filepath, hspec
+     , hspec-megaparsec, megaparsec, mtl, template-haskell, text
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "stache";
+       version = "0.2.1";
+       sha256 = "f25c0a913cca7ae0056d8030e5351da809bdff53afef80d863c1ecaa0dbbd00f";
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq directory exceptions
+         filepath megaparsec mtl template-haskell text unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers file-embed hspec hspec-megaparsec
+         megaparsec text yaml
+       ];
+       benchmarkHaskellDepends = [
+         aeson base criterion deepseq megaparsec text
+       ];
+       homepage = "https://github.com/stackbuilders/stache";
+       description = "Mustache templates for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stack" = callPackage
     ({ mkDerivation, aeson, annotated-wl-pprint, ansi-terminal, async
      , attoparsec, base, base-compat, base16-bytestring
@@ -178733,6 +179070,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "transient-universe-tls" = callPackage
+    ({ mkDerivation, base, bytestring, certificate, cprng-aes
+     , data-default, network, tls, transient, transient-universe
+     , x509-store
+     }:
+     mkDerivation {
+       pname = "transient-universe-tls";
+       version = "0.1.0.0";
+       sha256 = "9f4b345602de7a3652fdcebb787c66017697ef6e0f16a47e59cda3c42cbd8467";
+       libraryHaskellDepends = [
+         base bytestring certificate cprng-aes data-default network tls
+         transient transient-universe x509-store
+       ];
+       homepage = "http://github.com/transient-haskell/transient-universe-tls";
+       description = "transient with secure communications";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "translatable-intset" = callPackage
     ({ mkDerivation, base, fingertree }:
      mkDerivation {
@@ -188859,6 +189214,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "websockets-rpc" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, exceptions
+     , mtl, QuickCheck, quickcheck-instances, stm, tasty
+     , tasty-quickcheck, text, unordered-containers, wai-transformers
+     , websockets
+     }:
+     mkDerivation {
+       pname = "websockets-rpc";
+       version = "0.0.0";
+       sha256 = "e8a97330230f178fede76701fd2335fe18f48a124bd020c4be8120fa75ddf5bb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers exceptions mtl QuickCheck stm text
+         unordered-containers wai-transformers websockets
+       ];
+       testHaskellDepends = [
+         aeson base QuickCheck quickcheck-instances tasty tasty-quickcheck
+       ];
+       description = "Simple streaming RPC mechanism using WebSockets";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "websockets-snap" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-builder, io-streams
      , mtl, snap-core, snap-server, websockets
diff --git a/pkgs/development/interpreters/lua-5/5.2.darwin.patch b/pkgs/development/interpreters/lua-5/5.2.darwin.patch
index b314bd2abac..be0e206bbfc 100644
--- a/pkgs/development/interpreters/lua-5/5.2.darwin.patch
+++ b/pkgs/development/interpreters/lua-5/5.2.darwin.patch
@@ -15,8 +15,8 @@ index d2c7db4..dc107b3 100644
  	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
  	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
  	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
-+	ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${majorVersion}.dylib
-+	ln -s -f liblua.${majorVersion}.dylib $(INSTALL_LIB)/liblua.dylib
++	ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${luaversion}.dylib
++	ln -s -f liblua.${luaversion}.dylib $(INSTALL_LIB)/liblua.dylib
  
  uninstall:
  	cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 6f3df4e866d..72217a860b4 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, makeFontsConf, makeWrapper
 , cairo, coreutils, fontconfig, freefont_ttf
-, glib, gmp, gtk2, libffi, libjpeg, libpng
-, libtool, mpfr, openssl, pango, poppler
+, glib, gmp, gtk2, libedit, libffi, libjpeg
+, libpng, libtool, mpfr, openssl, pango, poppler
 , readline, sqlite
 , disableDocs ? true
 }:
@@ -18,6 +18,7 @@ let
     glib
     gmp
     gtk2
+    libedit
     libjpeg
     libpng
     mpfr
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index 6adcce45d80..174e9fe4776 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation {
     description = "Collection of C++ libraries";
     license = stdenv.lib.licenses.boost;
 
-    platforms = platforms.unix;
+    platforms = (if versionOlder version "1.59" then remove "aarch64-linux" else id) platforms.unix;
     maintainers = with maintainers; [ peti wkennington ];
   };
 
diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix
new file mode 100644
index 00000000000..8d87f119157
--- /dev/null
+++ b/pkgs/development/libraries/botan/2.0.nix
@@ -0,0 +1,10 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  baseVersion = "2.0";
+  revision = "1";
+  sha256 = "02sf6qghgs1lmprx715dnyll1rmqcjb9q6s50n20li8idlqysf51";
+  postPatch = ''
+    sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
+  '';
+})
diff --git a/pkgs/development/libraries/botan/2.0.upstream b/pkgs/development/libraries/botan/2.0.upstream
new file mode 100644
index 00000000000..d10850d46ad
--- /dev/null
+++ b/pkgs/development/libraries/botan/2.0.upstream
@@ -0,0 +1,10 @@
+url http://botan.randombit.net/download.html
+version_link 'Botan-[0-9]+[.][0-9]*[02468]([.][0-9]+)?[.](tgz|tbz|tbz2|tar[.]bz2)$'
+ensure_version
+attribute_name botan2
+do_overwrite(){
+  ensure_hash
+  set_var_value sha256 $CURRENT_HASH
+  set_var_value baseVersion ${CURRENT_VERSION%.*}
+  set_var_value revision ${CURRENT_VERSION##*.}
+}
diff --git a/pkgs/development/libraries/eigen/3.3.nix b/pkgs/development/libraries/eigen/3.3.nix
index ca3d4402206..b4cb1029001 100644
--- a/pkgs/development/libraries/eigen/3.3.nix
+++ b/pkgs/development/libraries/eigen/3.3.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, cmake}:
 
 let
-  version = "3.3.1";
+  version = "3.3.3";
 in
 stdenv.mkDerivation {
   name = "eigen-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz";
     name = "eigen-${version}.tar.gz";
-    sha256 = "141axgv5kykq7125scisjvnfcdx7qcj8n8zlk7g09r7fhqgjr79w";
+    sha256 = "0pz7k8kd9nydmsj2prjs67apixipl6pll3f0cjy0y3bvlazqr1wl";
   };
   
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 0e43b9fb602..c38759e0c75 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, cmake}:
 
 let
-  version = "3.2.5";
+  version = "3.2.10";
 in
 stdenv.mkDerivation {
   name = "eigen-${version}";
@@ -9,10 +9,14 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz";
     name = "eigen-${version}.tar.gz";
-    sha256 = "1vjixip19lwfia2bjpjwm09j7l20ry75493i6mjsk9djszj61agi";
+    sha256 = "00l52y7m276gh8wjkqqcxz6x687azrm7a70s3iraxnpy9bxa9y04";
   };
   
   nativeBuildInputs = [ cmake ];
+
+  postInstall = ''
+    sed -e '/Cflags:/s@''${prefix}@@' -i "$out"/share/pkgconfig/eigen3.pc
+  '';
   
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 43861e9e195..e8cd4f13ece 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -5,7 +5,7 @@
 }:
 
 let
-  version = "1.4.2";
+  version = "1.4.4";
   inherit (stdenv.lib) optional optionals optionalString;
 in
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
-    sha256 = "1cxpkhrjd20fwfysyxmi9rjvvggxlbzlyrs39p1dw3q0mg7ls8wg";
+    sha256 = "0mfj37qr8fw9mzsvk4296fq8vzq909mwlkl2xrjfrfvc8z5gilim";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/icu/57.nix b/pkgs/development/libraries/icu/57.nix
new file mode 100644
index 00000000000..fbd5f512aee
--- /dev/null
+++ b/pkgs/development/libraries/icu/57.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, fetchpatch, fixDarwinDylibNames }:
+
+let
+  pname = "icu4c";
+  version = "57.1";
+in
+stdenv.mkDerivation ({
+  name = pname + "-" + version;
+
+  src = fetchurl {
+    url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-"
+      + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz";
+    sha256 = "10cmkqigxh9f73y7q3p991q6j8pph0mrydgj11w1x6wlcp5ng37z";
+  };
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  # FIXME: This fixes dylib references in the dylibs themselves, but
+  # not in the programs in $out/bin.
+  buildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  postUnpack = ''
+    sourceRoot=''${sourceRoot}/source
+    echo Source root reset to ''${sourceRoot}
+  '';
+
+  # This pre/postPatch shenanigans is to handle that the patches expect
+  # to be outside of `source`.
+  prePatch = ''
+    pushd ..
+  '';
+  postPatch = ''
+    popd
+  '';
+
+  patches = [
+  ];
+
+  preConfigure = ''
+    sed -i -e "s|/bin/sh|${stdenv.shell}|" configure
+  '';
+
+  configureFlags = "--disable-debug" +
+    stdenv.lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) " --enable-rpath";
+
+  # remove dependency on bootstrap-tools in early stdenv build
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc
+  '';
+
+  postFixup = ''moveToOutput lib/icu "$dev" '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Unicode and globalization support library";
+    homepage = http://site.icu-project.org/;
+    maintainers = with maintainers; [ raskin urkud ];
+    platforms = platforms.all;
+  };
+} // (if stdenv.isArm then {
+  patches = [ ./0001-Disable-LDFLAGSICUDT-for-Linux.patch ];
+} else {}))
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix
index d4a4c2a500c..1508f05db8b 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "icu4c";
-  version = "57.1";
+  version = "58.2";
 in
 stdenv.mkDerivation ({
   name = pname + "-" + version;
@@ -10,7 +10,7 @@ stdenv.mkDerivation ({
   src = fetchurl {
     url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-"
       + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz";
-    sha256 = "10cmkqigxh9f73y7q3p991q6j8pph0mrydgj11w1x6wlcp5ng37z";
+    sha256 = "036shcb3f8bm1lynhlsb4kpjm9s9c2vdiir01vg216rs2l8482ib";
   };
 
   outputs = [ "out" "dev" ];
@@ -35,26 +35,6 @@ stdenv.mkDerivation ({
   '';
 
   patches = [
-    (fetchpatch {
-      url = "https://sources.debian.net/data/main/i/icu/57.1-5/debian/patches/CVE-2014-6585.patch";
-      sha256 = "1s8kqax444pqf5chwxvgsx1n1dx7v74h34fqh08fyq57mcjnpj4d";
-    })
-    (fetchpatch {
-      url = "https://sources.debian.net/data/main/i/icu/57.1-5/debian/patches/CVE-2015-4760.patch";
-      sha256 = "08gawyqbylk28i9pxv9vsw2drdpd6i97q0aml4nmv2xyb1ala0wp";
-    })
-    (fetchpatch {
-      url = "https://sources.debian.net/data/main/i/icu/57.1-5/debian/patches/CVE-2016-0494.patch";
-      sha256 = "1741s8lpmnizjprzk3xb7zkm5fznzgk8hhlrs8a338c18nalvxay";
-    })
-    (fetchpatch {
-      url = "https://sources.debian.net/data/main/i/icu/57.1-5/debian/patches/CVE-2016-6293.patch";
-      sha256 = "01h4xcss1vmsr60ijkv4lxsgvspwimyss61zp9nq4xd5i3kk1f4b";
-    })
-    (fetchpatch {
-      url = "https://sources.debian.net/data/main/i/icu/57.1-5/debian/patches/CVE-2016-7415.patch";
-      sha256 = "01d070h8d7rkj55ac8isr64m999bv5znc8vnxa7aajglsfidzs2r";
-    })
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/libp11/default.nix b/pkgs/development/libraries/libp11/default.nix
index 4f1bd7de3d9..91195229d87 100644
--- a/pkgs/development/libraries/libp11/default.nix
+++ b/pkgs/development/libraries/libp11/default.nix
@@ -1,17 +1,17 @@
-{stdenv, fetchurl, libtool, openssl, pkgconfig}:
+{ stdenv, fetchFromGitHub, autoreconfHook, libtool, openssl, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "libp11-0.2.7";
-  
-  src = fetchurl {
-    urls = [
-      "http://www.opensc-project.org/files/libp11/${name}.tar.gz"
-      "http://www.openadk.org/distfiles/${name}.tar.gz"
-    ];
-    sha256 = "0kaz5qafaxm0ycywmajl166c29fh9cz89b8i043jqsbxlpzf4hdp";
+
+  src = fetchFromGitHub {
+    owner = "OpenSC";
+    repo = "libp11";
+    rev = name;
+    sha256 = "0llw69kcb6nvz7zzkb9nyfyhc2s972q68sqciabqxwxljr09c411";
   };
-  
-  buildInputs = [ libtool openssl pkgconfig ];
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig libtool ];
+  buildInputs = [ openssl ];
 
   meta = {
     homepage = http://www.opensc-project.org/libp11/;
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index 14567c0daf4..0cd9d758725 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, flex, bison }:
+{ stdenv, fetchurl, fetchpatch, flex, bison }:
 
 stdenv.mkDerivation rec {
   name = "libpcap-1.8.1";
@@ -21,6 +21,13 @@ stdenv.mkDerivation rec {
     substituteInPlace configure --replace " -arch i386" ""
   '';
 
+  patches = [
+    (fetchpatch {
+      url    = "https://sources.debian.net/data/main/libp/libpcap/1.8.1-3/debian/patches/disable-remote.diff";
+      sha256 = "0dvjax9c0spvq8cdjnkbnm65wlzaml259yragf95kzg611vszfmj";
+    })
+  ];
+
   preInstall = ''mkdir -p $out/bin'';
 
   crossAttrs = {
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
index 6ec6333a73d..5bd18f72356 100644
--- a/pkgs/development/libraries/libre/default.nix
+++ b/pkgs/development/libraries/libre/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, zlib, openssl}:
 stdenv.mkDerivation rec {
-  version = "0.5.0";
+  version = "0.5.1";
   name = "libre-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/re-${version}.tar.gz";
-    sha256 = "18msdi5a1ssymz00w21hg6sgacb2lzx0ns31iapvk5hv6l225pd2";
+    sha256 = "1qs6gpflgwic2pp1nplhhyl585h9q0kf74h5z29ajr5ij0j65rsa";
   };
   buildInputs = [zlib openssl];
   makeFlags = [
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 0b3b86e66a2..941ab6710c2 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -34,7 +34,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  doCheck = true;
+  # These should be turned back on, but see https://github.com/NixOS/nixpkgs/issues/23651
+  # For now the tests are just breaking large swaths of the nixpkgs binary cache for Darwin,
+  # and I'd rather have everything else work at all than have stronger assurance here.
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "A multi-platform support library with a focus on asynchronous I/O";
diff --git a/pkgs/development/libraries/mpir/default.nix b/pkgs/development/libraries/mpir/default.nix
index 142bd93fe52..4bfd4350831 100644
--- a/pkgs/development/libraries/mpir/default.nix
+++ b/pkgs/development/libraries/mpir/default.nix
@@ -1,21 +1,16 @@
-{ stdenv, fetchurl, fetchpatch, m4 }:
+{ stdenv, fetchurl, fetchpatch, m4, which, yasm }:
 
 stdenv.mkDerivation rec {
   name = "mpir-${version}";
-  version = "2.7.2";
+  version = "3.0.0";
 
-  buildInputs = [ m4 ];
+  nativeBuildInputs = [ m4 which yasm ];
 
   src = fetchurl {
     url = "http://mpir.org/mpir-${version}.tar.bz2";
-    sha256 = "1v25dx7cah2vxwzgq78hpzqkryrfxhwx3mcj3jjq3xxljlsw7m57";
+    sha256 = "1fvmhrqdjs925hzr2i8bszm50h00gwsh17p2kn2pi51zrxck9xjj";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/wbhart/mpir/commit/fdb590023f7ca4b2e881a2e9573718e7ed180f03.patch";
-    sha256 = "152pdqpf8xxr4ky25f9zrvfb66i1wzy6a5b91h4zmpqjdffqf1iw";
-  }) ];
-
   meta = {
     inherit version;
     description = ''A highly optimised library for bignum arithmetic forked from GMP'';
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 8621d60ca96..294371dde7a 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nss-${version}";
-  version = "3.28.1";
+  version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://mozilla/security/nss/releases/NSS_3_28_1_RTM/src/${name}.tar.gz";
-    sha256 = "58cc0c05c0ed9523e6d820bea74f513538f48c87aac931876e3d3775de1a82ad";
+    url = "mirror://mozilla/security/nss/releases/NSS_3_28_3_RTM/src/${name}.tar.gz";
+    sha256 = "1wrx2ig6yvgywjs25hzy4szgml21hwhd7ds0ghyfybhkiq7lyg6x";
   };
 
   buildInputs = [ nspr perl zlib sqlite ];
diff --git a/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch b/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch
new file mode 100644
index 00000000000..39c1b9c0d29
--- /dev/null
+++ b/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch
@@ -0,0 +1,13 @@
+Index: phonon-gstreamer-4.9.0/gstreamer/backend.cpp
+===================================================================
+--- phonon-gstreamer-4.9.0.orig/gstreamer/backend.cpp
++++ phonon-gstreamer-4.9.0/gstreamer/backend.cpp
+@@ -85,6 +85,8 @@ Backend::Backend(QObject *parent, const
+         "--gst-debug-no-color"
+     };
+ 
++    qputenv("GST_PLUGIN_PATH_1_0", GST_PLUGIN_PATH_1_0);
++
+     int argc = sizeof(args) / sizeof(*args);
+     char **argv = const_cast<char**>(args);
+     GError *err = 0;
diff --git a/pkgs/development/libraries/phonon/backends/gstreamer.nix b/pkgs/development/libraries/phonon/backends/gstreamer.nix
index d8358757094..e0f24fbc822 100644
--- a/pkgs/development/libraries/phonon/backends/gstreamer.nix
+++ b/pkgs/development/libraries/phonon/backends/gstreamer.nix
@@ -29,15 +29,32 @@ stdenv.mkDerivation rec {
     sha256 = "1wc5p1rqglf0n1avp55s50k7fjdzdrhg0gind15k8796w7nfbhyf";
   };
 
+  # Hardcode paths to useful plugins so the backend doesn't depend
+  # on system paths being set.
+  patches = [ ./gst-plugin-paths.patch ];
+
+  NIX_CFLAGS_COMPILE =
+    let gstPluginPaths =
+          lib.makeSearchPathOutput "lib" "/lib/gstreamer-1.0"
+          (with gst_all_1; [
+            gstreamer
+            gst-plugins-base
+            gst-plugins-good
+            gst-plugins-ugly
+            gst-plugins-bad
+            gst-libav
+          ]);
+    in [
+      # This flag should be picked up through pkgconfig, but it isn't.
+      "-I${gst_all_1.gstreamer.dev}/lib/gstreamer-1.0/include"
+
+      ''-DGST_PLUGIN_PATH_1_0="${gstPluginPaths}"''
+    ];
+
   buildInputs = with gst_all_1;
     [ gstreamer gst-plugins-base phonon ]
     ++ (if withQt5 then [ qtbase qtx11extras ] else [ qt4 ]);
 
-  NIX_CFLAGS_COMPILE = [
-    # This flag should be picked up through pkgconfig, but it isn't.
-    "-I${gst_all_1.gstreamer.dev}/lib/gstreamer-1.0/include"
-  ];
-
   # cleanup: the build system creates (empty) $out/$out/share/icons (double prefix)
   # if DESTDIR is unset
   DESTDIR="/";
diff --git a/pkgs/development/libraries/qt-5/5.7/default.nix b/pkgs/development/libraries/qt-5/5.7/default.nix
index 85b38c6fc6c..f468670674f 100644
--- a/pkgs/development/libraries/qt-5/5.7/default.nix
+++ b/pkgs/development/libraries/qt-5/5.7/default.nix
@@ -107,12 +107,12 @@ let
       makeQtWrapper =
         makeSetupHook
         { deps = [ makeWrapper ]; }
-        ../make-qt-wrapper.sh;
+        (if stdenv.isDarwin then ../make-qt-wrapper-darwin.sh else ../make-qt-wrapper.sh);
 
       qmakeHook =
         makeSetupHook
         { deps = [ self.qtbase.dev ]; }
-        ../qmake-hook.sh;
+        (if stdenv.isDarwin then ../qmake-hook-darwin.sh else ../qmake-hook.sh);
 
     };
 
diff --git a/pkgs/development/libraries/qt-5/5.7/qtbase/cmake-paths-darwin.patch b/pkgs/development/libraries/qt-5/5.7/qtbase/cmake-paths-darwin.patch
new file mode 100644
index 00000000000..2fda5ed8cf0
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.7/qtbase/cmake-paths-darwin.patch
@@ -0,0 +1,384 @@
+Index: qtbase-opensource-src-5.7.1/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ qtbase-opensource-src-5.7.1/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -9,30 +9,6 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0)
+ endif()
+ !!ENDIF
+ 
+-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ELSE
+-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+-# Use original install prefix when loaded through a
+-# cross-prefix symbolic link such as /lib -> /usr/lib.
+-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
+-if(_realCurr STREQUAL _realOrig)
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
+-else()
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-endif()
+-unset(_realOrig)
+-unset(_realCurr)
+-unset(_IMPORT_PREFIX)
+-!!ENDIF
+-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-!!ELSE
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ENDIF
+-
+ !!IF !equals(TEMPLATE, aux)
+ # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
+ set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)")
+@@ -59,7 +35,10 @@ macro(_populate_$${CMAKE_MODULE_NAME}_ta
+     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"@NIX_OUT@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    if(NOT EXISTS \"${imported_location}\")
++        set(imported_location \"@NIX_DEV@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    endif()
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+@@ -74,45 +53,17 @@ macro(_populate_$${CMAKE_MODULE_NAME}_ta
+         \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
+     )
+ 
+-!!IF !isEmpty(CMAKE_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ELSE
+-    set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ENDIF
+-    _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
+-    if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
+-        set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
+-        \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib}
+-        )
+-    endif()
+-!!ENDIF
+ endmacro()
+ !!ENDIF
+ 
+ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ 
+ !!IF !no_module_headers
+-!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\"
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\"
+-    )
+-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+-    )
+-!!ELSE
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+-!!ENDIF
+-!!ELSE
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
++    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"@NIX_OUT@/lib\" \"@NIX_OUT@/lib/$${MODULE_INCNAME}.framework/Headers\")
+ !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
++        \"\"
+     )
+ !!ELSE
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+@@ -128,7 +80,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+ !!ENDIF
+ !!ENDIF
+-!!ENDIF
++
+ !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+     include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
+ !!ENDIF
+@@ -253,28 +205,19 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+ 
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_DEBUG_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+-    if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+-        _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
+-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
++        \"@NIX_OUT@/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+ !!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+ !!ENDIF
+       AND EXISTS
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
++        \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+ !!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+ !!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+ !!ENDIF // CMAKE_DEBUG_TYPE
+ !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
+@@ -282,36 +225,23 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+ !!ENDIF // CMAKE_RELEASE_TYPE
+ 
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-    _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
+-!!ELSE
+     _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+ 
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_RELEASE_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+-    if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+-        _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" )
+-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
++        \"@NIX_OUT@/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+ !!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+ !!ENDIF
+       AND EXISTS
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
++        \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+ !!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+ !!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+ !!ENDIF // CMAKE_RELEASE_TYPE
+ !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
+@@ -328,11 +258,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+     macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
+-        set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ELSE
+-        set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ENDIF
++        set(imported_location \"${PLUGIN_LOCATION}\")
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+Index: qtbase-opensource-src-5.7.1/src/gui/Qt5GuiConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/gui/Qt5GuiConfigExtras.cmake.in
++++ qtbase-opensource-src-5.7.1/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -2,7 +2,7 @@
+ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
+ 
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
++set(Qt5Gui_EGL_INCLUDE_DIRS \"@NIX_DEV@/$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ELSE
+ set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ENDIF
+@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_propert
+     set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"@NIX_OUT@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
++    set(imported_implib \"@NIX_DEV@/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ELSE
+     set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ qtbase-opensource-src-5.7.1/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
+     add_executable(Qt5::uic IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qmake)
+     add_executable(Qt5::qmake IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::moc)
+     add_executable(Qt5::moc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -35,7 +35,7 @@ if (NOT TARGET Qt5::rcc)
+     add_executable(Qt5::rcc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -131,7 +131,7 @@ if (NOT TARGET Qt5::WinMain)
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ENDIF
+@@ -145,7 +145,7 @@ if (NOT TARGET Qt5::WinMain)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
++++ qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"@NIX_DEV@/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
++++ qtbase-opensource-src-5.7.1/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"@NIX_DEV@/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/src/dbus/Qt5DBusConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ qtbase-opensource-src-5.7.1/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
+     add_executable(Qt5::qdbuscpp2xml IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
+     add_executable(Qt5::qdbusxml2cpp IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.7.1/mkspecs/features/create_cmake.prf
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/mkspecs/features/create_cmake.prf
++++ qtbase-opensource-src-5.7.1/mkspecs/features/create_cmake.prf
+@@ -136,28 +136,28 @@ contains(CONFIG, plugin) {
+ 
+     win32 {
+         isEmpty(CMAKE_STATIC_TYPE) {
+-            CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll
+-            CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll
++            CMAKE_PLUGIN_LOCATION_RELEASE = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/$${TARGET}.dll
++            CMAKE_PLUGIN_LOCATION_DEBUG = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/$${TARGET}d.dll
+         } else:mingw {
+-            CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a
+-            CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a
++            CMAKE_PLUGIN_LOCATION_RELEASE = $${CMAKE_PLUGIN_DIR}/$$PLUGIN_TYPE/lib$${TARGET}.a
++            CMAKE_PLUGIN_LOCATION_DEBUG = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/lib$${TARGET}d.a
+         } else {                         # MSVC static
+-            CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib
+-            CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib
++            CMAKE_PLUGIN_LOCATION_RELEASE = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/$${TARGET}.lib
++            CMAKE_PLUGIN_LOCATION_DEBUG = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/$${TARGET}d.lib
+         }
+     } else {
+         mac {
+             isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib
+             else: CMAKE_PlUGIN_EXT = .a
+ 
+-            CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
+-            CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
++            CMAKE_PLUGIN_LOCATION_RELEASE = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
++            CMAKE_PLUGIN_LOCATION_DEBUG = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
+         } else {
+             isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .so
+             else: CMAKE_PlUGIN_EXT = .a
+ 
+-            CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
+-            CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
++            CMAKE_PLUGIN_LOCATION_RELEASE = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
++            CMAKE_PLUGIN_LOCATION_DEBUG = $${CMAKE_PLUGIN_DIR}$$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT}
+         }
+     }
+     cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in
+Index: qtbase-opensource-src-5.7.1/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.7.1.orig/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
++++ qtbase-opensource-src-5.7.1/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+@@ -2,10 +2,10 @@
+ add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED)
+ 
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\")
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"@NIX_OUT@/$${CMAKE_PLUGIN_LOCATION_RELEASE}\")
+ !!ENDIF
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\")
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"@NIX_OUT@/$${CMAKE_PLUGIN_LOCATION_DEBUG}\")
+ !!ENDIF
+ 
+ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME)
diff --git a/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix
index 934203950b0..63e65ff2489 100644
--- a/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix
@@ -4,6 +4,7 @@
 
   coreutils, bison, flex, gdb, gperf, lndir, patchelf, perl, pkgconfig, python2,
   ruby,
+  darwin, libiconv,
 
   dbus, fontconfig, freetype, glib, gtk3, harfbuzz, icu, libX11, libXcomposite,
   libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng, libtiff,
@@ -15,7 +16,8 @@
   cups ? null, mysql ? null, postgresql ? null,
 
   # options
-  mesaSupported, mesa,
+  mesaSupported ? (!stdenv.isDarwin),
+  mesa,
   buildExamples ? false,
   buildTests ? false,
   developerBuild ? false,
@@ -35,6 +37,7 @@ stdenv.mkDerivation {
 
   patches =
     copyPathsToStore (lib.readPathsFromFile ./. ./series)
+    ++ [(if stdenv.isDarwin then ./cmake-paths-darwin.patch else ./cmake-paths.patch)]
     ++ lib.optional decryptSslTraffic ./decrypt-ssl-traffic.patch
     ++ lib.optional mesaSupported [ ./dlopen-gl.patch ./mkspecs-libgl.patch ];
 
@@ -54,11 +57,11 @@ stdenv.mkDerivation {
       substituteInPlace src/network/kernel/qhostinfo_unix.cpp \
         --replace "@glibc@" "${stdenv.cc.libc.out}"
 
-      substituteInPlace src/plugins/platforms/xcb/qxcbcursor.cpp \
-        --replace "@libXcursor@" "${libXcursor.out}"
-
       substituteInPlace src/network/ssl/qsslsocket_openssl_symbols.cpp \
         --replace "@openssl@" "${openssl.out}"
+    '' + lib.optionalString stdenv.isLinux ''
+      substituteInPlace src/plugins/platforms/xcb/qxcbcursor.cpp \
+        --replace "@libXcursor@" "${libXcursor.out}"
 
       substituteInPlace src/dbus/qdbus_symbols.cpp \
         --replace "@dbus_libs@" "${dbus.lib}"
@@ -74,8 +77,23 @@ stdenv.mkDerivation {
       substituteInPlace mkspecs/common/linux.conf \
         --replace "@mesa_lib@" "${mesa.out}" \
         --replace "@mesa_inc@" "${mesa.dev or mesa}"
-    '';
-
+    ''+ lib.optionalString stdenv.isDarwin ''
+      sed -i \
+          -e 's|! /usr/bin/xcode-select --print-path >/dev/null 2>&1;|false;|' \
+          -e 's|! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1;|false;|' \
+          -e 's|sysroot=$(/usr/bin/xcodebuild -sdk $sdk -version Path 2>/dev/null)|sysroot="${darwin.apple_sdk.sdk}"|' \
+          -e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \
+          -e 's|XCRUN=`/usr/bin/xcrun -sdk macosx clang -v 2>&1`|XCRUN="clang -v 2>&1"|' \
+          -e 's#sdk_val=$(/usr/bin/xcrun -sdk $sdk -find $(echo $val | cut -d \x27 \x27 -f 1))##' \
+          -e 's#val=$(echo $sdk_val $(echo $val | cut -s -d \x27 \x27 -f 2-))##' \
+          ./configure
+      sed -i '3,$d' ./mkspecs/features/mac/default_pre.prf
+      sed -i '26,$d' ./mkspecs/features/mac/default_post.prf
+      sed -i '1,$d' ./mkspecs/features/mac/sdk.prf
+      sed 's/QMAKE_LFLAGS_RPATH      = -Wl,-rpath,/QMAKE_LFLAGS_RPATH      =/' -i ./mkspecs/common/mac.conf
+     '';
+     # Note on the above: \x27 is a way if including a single-quote
+     # character in the sed string arguments.
 
   setOutputFlags = false;
   preConfigure = ''
@@ -103,7 +121,6 @@ stdenv.mkDerivation {
     ${lib.optionalString developerBuild "-developer-build"}
     -largefile
     -accessibility
-    -rpath
     -optimized-qmake
     -strip
     -no-reduce-relocations
@@ -117,15 +134,6 @@ stdenv.mkDerivation {
     -iconv
     -icu
     -pch
-    -glib
-    -xcb
-    -qpa xcb
-    -${lib.optionalString (cups == null) "no-"}cups
-
-    -no-eglfs
-    -no-directfb
-    -no-linuxfb
-    -no-kms
 
     ${lib.optionalString (!system-x86_64) "-no-sse2"}
     -no-sse3
@@ -141,13 +149,8 @@ stdenv.mkDerivation {
     -system-libpng
     -system-libjpeg
     -system-harfbuzz
-    -system-xcb
-    -system-xkbcommon
     -system-pcre
     -openssl-linked
-    -dbus-linked
-    -libinput
-    -gtk
 
     -system-sqlite
     -${if mysql != null then "plugin" else "no"}-sql-mysql
@@ -158,7 +161,30 @@ stdenv.mkDerivation {
     -${lib.optionalString (buildExamples == false) "no"}make examples
     -${lib.optionalString (buildTests == false) "no"}make tests
     -v
-  '';
+  '' + lib.optionalString (!stdenv.isDarwin) ''
+    -no-rpath
+    -glib
+    -xcb
+    -qpa xcb
+
+    -${lib.optionalString (cups == null) "no-"}cups
+
+    -no-eglfs
+    -no-directfb
+    -no-linuxfb
+    -no-kms
+
+    -libinput
+    -gtk
+    -system-xcb
+    -system-xkbcommon
+    -dbus-linked
+  '' + lib.optionalString stdenv.isDarwin ''
+    -platform macx-clang
+    -no-use-gold-linker
+    -no-fontconfig
+    -qt-freetype
+   '';
 
   # PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag
   # if dependency paths contain the string "pq", which can occur in the hash.
@@ -166,32 +192,44 @@ stdenv.mkDerivation {
   PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
 
   propagatedBuildInputs = [
-    dbus glib libxml2 libxslt openssl pcre16 sqlite udev zlib
+    libxml2 libxslt openssl pcre16 sqlite zlib
+
+    # Text rendering
+    harfbuzz icu
 
     # Image formats
     libjpeg libpng libtiff
+  ]
+  ++ lib.optional mesaSupported mesa
+  ++ lib.optionals (!stdenv.isDarwin) [
+    dbus glib udev
 
     # Text rendering
-    fontconfig freetype harfbuzz icu
+    fontconfig freetype
 
     # X11 libs
     libX11 libXcomposite libXext libXi libXrender libxcb libxkbcommon xcbutil
     xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm
-  ]
-  ++ lib.optional mesaSupported mesa;
+   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+    ApplicationServices CoreServices AppKit Carbon OpenGL AGL Cocoa
+    DiskArbitration darwin.cf-private libiconv darwin.apple_sdk.sdk
+  ]);
 
-  buildInputs =
-    [ gtk3 libinput ]
+  buildInputs = [ ]
+    ++ lib.optional (!stdenv.isDarwin) [ gtk3 libinput]
     ++ lib.optional developerBuild gdb
     ++ lib.optional (cups != null) cups
     ++ lib.optional (mysql != null) mysql.lib
     ++ lib.optional (postgresql != null) postgresql;
 
-  nativeBuildInputs =
-    [ bison flex gperf lndir patchelf perl pkgconfig python2 ];
+  nativeBuildInputs = [ bison flex gperf lndir perl pkgconfig python2 ] ++ lib.optional (!stdenv.isDarwin) patchelf;
 
   # freetype-2.5.4 changed signedness of some struct fields
-  NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
+  NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"
+    + lib.optionalString stdenv.isDarwin " -D__MAC_OS_X_VERSION_MAX_ALLOWED=1090 -D__AVAILABILITY_INTERNAL__MAC_10_10=__attribute__((availability(macosx,introduced=10.10)))";
+  # Note that nixpkgs's objc4 is from macOS 10.11 while the SDK is
+  # 10.9 which necessitates the above macro definition that mentions
+  # 10.10
 
   postInstall = ''
     find "$out" -name "*.cmake" | while read file; do
@@ -213,6 +251,11 @@ stdenv.mkDerivation {
     moveToOutput "share/doc" "$dev"
   '';
 
+  # Don't move .prl files on darwin because they end up in
+  # "dev/lib/Foo.framework/Foo.prl" which interferes with subsequent
+  # use of lndir in the qtbase setup-hook. On Linux, the .prl files
+  # are in lib, and so do not cause a subsequent recreation of deep
+  # framework directory trees.
   postFixup =
     ''
       # Don't retain build-time dependencies like gdb.
@@ -221,17 +264,33 @@ stdenv.mkDerivation {
       # Move libtool archives and qmake projects
       if [ "z''${!outputLib}" != "z''${!outputDev}" ]; then
           pushd "''${!outputLib}"
-          find lib -name '*.a' -o -name '*.la' -o -name '*.prl' | \
+          find lib -name '*.a' -o -name '*.la'${if stdenv.isDarwin then "" else "-o -name '*.prl'"} | \
               while read -r file; do
                   mkdir -p "''${!outputDev}/$(dirname "$file")"
                   mv "''${!outputLib}/$file" "''${!outputDev}/$file"
               done
           popd
       fi
+    '' + lib.optionalString stdenv.isDarwin ''
+      fixDarwinDylibNames_rpath() {
+        local flags=()
+
+        for fn in "$@"; do
+          flags+=(-change "@rpath/$fn.framework/Versions/5/$fn" "$out/lib/$fn.framework/Versions/5/$fn")
+        done
+
+        for fn in "$@"; do
+          echo "$fn: fixing dylib"
+          install_name_tool -id "$out/lib/$fn.framework/Versions/5/$fn" "''${flags[@]}" "$out/lib/$fn.framework/Versions/5/$fn"
+        done
+      }
+      fixDarwinDylibNames_rpath "QtConcurrent" "QtPrintSupport" "QtCore" "QtSql" "QtDBus" "QtTest" "QtGui" "QtWidgets" "QtNetwork" "QtXml" "QtOpenGL"
     '';
 
   inherit lndir;
-  setupHook = ../../qtbase-setup-hook.sh;
+  setupHook = if stdenv.isDarwin
+              then ../../qtbase-setup-hook-darwin.sh
+              else ../../qtbase-setup-hook.sh;
 
   enableParallelBuilding = true;
 
@@ -240,7 +299,7 @@ stdenv.mkDerivation {
     description = "A cross-platform application framework for C++";
     license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
     maintainers = with maintainers; [ bbenoist qknight ttuegel ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/pkgs/development/libraries/qt-5/5.7/qtbase/series b/pkgs/development/libraries/qt-5/5.7/qtbase/series
index 44e2d904080..2196d838375 100644
--- a/pkgs/development/libraries/qt-5/5.7/qtbase/series
+++ b/pkgs/development/libraries/qt-5/5.7/qtbase/series
@@ -7,4 +7,3 @@ xdg-config-dirs.patch
 nix-profiles-library-paths.patch
 compose-search-path.patch
 libressl.patch
-cmake-paths.patch
diff --git a/pkgs/development/libraries/qt-5/5.7/qtwebengine/default.nix b/pkgs/development/libraries/qt-5/5.7/qtwebengine/default.nix
index ec3f9061f79..a42dda1b36c 100644
--- a/pkgs/development/libraries/qt-5/5.7/qtwebengine/default.nix
+++ b/pkgs/development/libraries/qt-5/5.7/qtwebengine/default.nix
@@ -35,6 +35,13 @@ qtSubmodule {
     # fix default SSL bundle location
     sed -i -e 's,/cert.pem,/certs/ca-bundle.crt,' src/3rdparty/chromium/third_party/boringssl/src/crypto/x509/x509_def.c
 
+    # Fix library paths
+    sed -i \
+      -e "s,QLibraryInfo::location(QLibraryInfo::DataPath),QLatin1String(\"$out\"),g" \
+      -e "s,QLibraryInfo::location(QLibraryInfo::TranslationsPath),QLatin1String(\"$out/translations\"),g" \
+      -e "s,QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath),QLatin1String(\"$out/libexec\"),g" \
+      src/core/web_engine_library_info.cpp
+
     configureFlags+="\
         -plugindir $out/lib/qt5/plugins \
         -importdir $out/lib/qt5/imports \
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 6e86780446c..a8031716230 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -3,11 +3,11 @@
 assert interactive -> readline != null && ncurses != null;
 
 stdenv.mkDerivation {
-  name = "sqlite-3.16.2";
+  name = "sqlite-3.17.0";
 
   src = fetchurl {
-    url = "http://sqlite.org/2017/sqlite-autoconf-3160200.tar.gz";
-    sha256 = "059n4s9qd35qpbd4g29y9ay99a6f68ad7k65g430rxb6jcz0rk35";
+    url = "http://sqlite.org/2017/sqlite-autoconf-3170000.tar.gz";
+    sha256 = "0k472gq0p706jq4529p60znvw02hdf172qxgbdv59q0n7anqbr54";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/python-modules/edward/default.nix b/pkgs/development/python-modules/edward/default.nix
new file mode 100644
index 00000000000..0ae81aef096
--- /dev/null
+++ b/pkgs/development/python-modules/edward/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+, Keras, numpy, scipy, six, tensorflow }:
+
+buildPythonPackage rec {
+  pname = "edward";
+  version = "1.2.2";
+  name  = "${pname}-${version}";
+
+  disabled = !(isPy27 || pythonAtLeast "3.4");
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h9i15l7mczwx8jvabjbvxjjidr13x81h6vylb1p8r308w01r2as";
+  };
+
+  # disabled for now due to Tensorflow trying to create files in $HOME:
+  doCheck = false;
+
+  propagatedBuildInputs = [ Keras numpy scipy six tensorflow ];
+
+  meta = with stdenv.lib; {
+    description = "Probabilistic programming language using Tensorflow";
+    homepage = https://github.com/blei-lab/edward;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/nltk.nix b/pkgs/development/python-modules/nltk.nix
new file mode 100644
index 00000000000..c436e40d238
--- /dev/null
+++ b/pkgs/development/python-modules/nltk.nix
@@ -0,0 +1,30 @@
+{ fetchurl, buildPythonPackage, isPy33, lib, six, pythonAtLeast, pythonOlder }:
+
+buildPythonPackage rec {
+  name = "nltk-${version}";
+  version = "3.2.2";
+
+  src = fetchurl {
+    url = "mirror://pypi/n/nltk/nltk-${version}.tar.gz";
+    sha256 = "13m8i393h5mhpyvh5rghxxpax3bscv8li3ynwfdiq0kh8wsdndqv";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  disabled = pythonOlder "2.7" || pythonOlder "3.4" && (pythonAtLeast "3.0");
+
+  # Tests require some data, the downloading of which is impure. It would
+  # probably make sense to make the data another derivation, but then feeding
+  # that into the tests (given that we need nltk itself to download the data,
+  # unless there's an easy way to download it without nltk's downloader) might
+  # be complicated. For now let's just disable the tests and hope for the
+  # best.
+  doCheck = false;
+
+  meta = {
+    description = "Natural Language Processing ToolKit";
+    homepage = http://nltk.org/;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ lheckemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/pep257.nix b/pkgs/development/python-modules/pep257.nix
index f185019b0f7..1cd0e4afc0c 100644
--- a/pkgs/development/python-modules/pep257.nix
+++ b/pkgs/development/python-modules/pep257.nix
@@ -18,6 +18,6 @@ buildPythonPackage rec {
     homepage = https://github.com/GreenSteam/pep257/;
     description = "Python docstring style checker";
     longDescription = "Static analysis tool for checking compliance with Python PEP 257.";
-    lecense = licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pyqt/4.x.nix b/pkgs/development/python-modules/pyqt/4.x.nix
index 73835fedcd4..dc3dd69ac02 100644
--- a/pkgs/development/python-modules/pyqt/4.x.nix
+++ b/pkgs/development/python-modules/pyqt/4.x.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pythonPackages, qt4, pkgconfig, lndir, dbus_libs, makeWrapper }:
 
 let
-  version = "4.11.3";
+  version = "4.12";
   inherit (pythonPackages) mkPythonDerivation python dbus-python sip;
 in mkPythonDerivation {
   name = "PyQt-x11-gpl-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/pyqt/PyQt4/PyQt-${version}/PyQt-x11-gpl-${version}.tar.gz";
-    sha256 = "11jnfjw79s0b0qdd9s6kd69w87vf16dhagbhbmwbmrp2vgf80dw5";
+    url = "mirror://sourceforge/pyqt/PyQt4_gpl_x11-${version}.tar.gz";
+    sha256 = "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/python-modules/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix
index 84da1cf9ebf..ee3419eed0e 100644
--- a/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/pkgs/development/python-modules/pyqt/5.x.nix
@@ -2,7 +2,7 @@
 , lndir, makeWrapper, qmakeHook }:
 
 let
-  version = "5.6";
+  version = "5.8.1";
   inherit (pythonPackages) mkPythonDerivation python dbus-python sip;
 in mkPythonDerivation {
   name = "PyQt-${version}";
@@ -17,7 +17,7 @@ in mkPythonDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/PyQt5/PyQt-${version}/PyQt5_gpl-${version}.tar.gz";
-    sha256 = "1qgh42zsr9jppl9k7fcdbhxcd1wrb7wyaj9lng9nxfa19in1lj1f";
+    sha256 = "0biak7l574i2gc8lj1s45skajbxsmmx66nlvs6xaakzkc6r293qy";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pyrax.nix b/pkgs/development/python-modules/pyrax.nix
new file mode 100644
index 00000000000..0abf54f03fe
--- /dev/null
+++ b/pkgs/development/python-modules/pyrax.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonPackage, fetchurl, requests2, novaclient, keyring,
+  rackspace-novaclient, six, isPy3k, pytest, glibcLocales }:
+buildPythonPackage rec {
+  name = "pyrax-1.9.8";
+
+  src = fetchurl {
+    url = "mirror://pypi/p/pyrax/${name}.tar.gz";
+    sha256 = "1x98jzyxnvha81pgx3jpfixljhs7zik89yfp8q06kwpx8ws99nz9";
+  };
+
+  # no good reason given in commit why limited, and seems to work
+  patchPhase = ''
+      substituteInPlace "setup.py"                                     \
+              --replace "python-novaclient==2.27.0" "python-novaclient"
+    '';
+
+  disabled = isPy3k;
+  propagatedBuildInputs = [ requests2 novaclient keyring rackspace-novaclient six ];
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ pytest glibcLocales ];
+
+  checkPhase = ''
+    py.test tests/unit
+  '';
+
+  meta = {
+    homepage = "https://github.com/rackspace/pyrax";
+    license = lib.licenses.asl20;
+    description = "Python API to interface with Rackspace";
+    maintainers = with lib.maintainers; [ teh ];
+  };
+}
diff --git a/pkgs/development/python-modules/rackspace-novaclient.nix b/pkgs/development/python-modules/rackspace-novaclient.nix
new file mode 100644
index 00000000000..0eaed7e36fd
--- /dev/null
+++ b/pkgs/development/python-modules/rackspace-novaclient.nix
@@ -0,0 +1,151 @@
+{ buildPythonPackage, fetchurl, isPy3k, requests2, novaclient, six, lib }:
+let
+os-virtual-interfacesv2-python-novaclient-ext = buildPythonPackage rec {
+  name = "os_virtual_interfacesv2_python_novaclient_ext-0.20";
+
+  src = fetchurl {
+    url = "mirror://pypi/o/os-virtual-interfacesv2-python-novaclient-ext/${name}.tar.gz";
+    sha256 = "17a4r8psxmfikgmzh709absbn5jsh1005whibmwhysj9fi0zyfbd";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://github.com/rackerlabs/os_virtual_interfacesv2_ext;
+    license = lib.licenses.asl20;
+    description = "Adds Virtual Interfaces support to python-novaclient";
+  };
+};
+
+ip-associations-python-novaclient-ext = buildPythonPackage rec {
+  name = "ip_associations_python_novaclient_ext-0.2";
+
+  src = fetchurl {
+    url = "mirror://pypi/i/ip_associations_python_novaclient_ext/${name}.tar.gz";
+    sha256 = "0dxfkfjhzskafmb01y8hzbcpvc4cd6fas1s50dzcmg29w4z6qmz4";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://github.com/rackerlabs/ip_associations_python_novaclient_ext;
+    license = lib.licenses.asl20;
+    description = "Adds Rackspace ip_associations support to python-novaclient";
+  };
+};
+
+
+rackspace-auth-openstack = buildPythonPackage rec {
+  name = "rackspace-auth-openstack-1.3";
+
+  src = fetchurl {
+    url = "mirror://pypi/r/rackspace-auth-openstack/${name}.tar.gz";
+    sha256 = "1kaiyvgwmavw2mh0s32yjk70xsziynjdhi01qn9a8kljn7p6kh64";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/rackspace-auth-openstack;
+    license = lib.licenses.asl20;
+    description = "Rackspace Auth Plugin for OpenStack Clients.";
+  };
+};
+rax-default-network-flags-python-novaclient-ext = buildPythonPackage rec {
+  name = "rax_default_network_flags_python_novaclient_ext-0.4.0";
+
+  src = fetchurl {
+    url = "mirror://pypi/r/rax_default_network_flags_python_novaclient_ext/${name}.tar.gz";
+    sha256 = "00b0csb58k6rr1is68bkkw358mms8mmb898bm8bbr8g7j2fz8aw5";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://pypi.python.org/simple/rax-default-network-flags-python-novaclient-ext;
+    license = lib.licenses.asl20;
+    description = "Novaclient Extension for Instance Default Network Flags";
+  };
+};
+os-networksv2-python-novaclient-ext = buildPythonPackage rec {
+  name = "os_networksv2_python_novaclient_ext-0.26";
+
+  src = fetchurl {
+    url = "mirror://pypi/o/os_networksv2_python_novaclient_ext/${name}.tar.gz";
+    sha256 = "06dzqmyrwlq7hla6dk699z18c8v27qr1gxqknimwxlwqdlhpafk1";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/os_networksv2_python_novaclient_ext;
+    license = lib.licenses.asl20;
+    description = "Adds rackspace networks support to python-novaclient";
+  };
+};
+
+rax-scheduled-images-python-novaclient-ext = buildPythonPackage rec {
+  name = "rax_scheduled_images_python_novaclient_ext-0.3.1";
+
+  src = fetchurl {
+    url = "mirror://pypi/r/rax_scheduled_images_python_novaclient_ext/${name}.tar.gz";
+    sha256 = "1nvwjgrkp1p1d27an393qf49pszm1nvqa2ychhbqmp0bnabwyw7i";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/rax_scheduled_images_python_novaclient_ext;
+    license = lib.licenses.asl20;
+    description = "Extends python-novaclient to use RAX-SI, the Rackspace Nova API Scheduled Images extension";
+  };
+};
+
+os-diskconfig-python-novaclient-ext = buildPythonPackage rec {
+  name = "os_diskconfig_python_novaclient_ext-0.1.3";
+
+  src = fetchurl {
+    url = "mirror://pypi/o/os_diskconfig_python_novaclient_ext/${name}.tar.gz";
+    sha256 = "0xayy5nlkgl9yr0inqkwirlmar8pv1id29r59lj70g5plwrr5lg7";
+  };
+
+  propagatedBuildInputs = [ six novaclient ];
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/os_diskconfig_python_novaclient_ext;
+    license = lib.licenses.asl20;
+    description = "Disk Config extension for python-novaclient";
+  };
+};
+
+in
+buildPythonPackage rec {
+  name = "rackspace-novaclient-2.1";
+
+  src = fetchurl {
+    url = "mirror://pypi/r/rackspace-novaclient/${name}.tar.gz";
+    sha256 = "1rzaa328hzm8hs9q99gvjr64x47fmcq4dv4656rzxq5s4gv49z12";
+  };
+
+  disabled = isPy3k;
+  propagatedBuildInputs = [
+    requests2
+    novaclient
+    six
+    # extensions
+    ip-associations-python-novaclient-ext
+    os-diskconfig-python-novaclient-ext
+    os-networksv2-python-novaclient-ext
+    os-virtual-interfacesv2-python-novaclient-ext
+    rackspace-auth-openstack
+    rax-default-network-flags-python-novaclient-ext
+    rax-scheduled-images-python-novaclient-ext
+  ];
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/rackspace-novaclient/;
+    license = lib.licenses.asl20;
+    description = "Metapackage to install python-novaclient and Rackspace extensions";
+    maintainers = with lib.maintainers; [ teh ];
+  };
+}
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index e44f92ab013..99d3c89e1f9 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchurl, mkPythonDerivation, python, isPyPy }:
 
 if isPyPy then throw "sip not supported for interpreter ${python.executable}" else mkPythonDerivation rec {
-  name = "sip-4.18.1";
+  name = "sip-4.19.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/sip/${name}/${name}.tar.gz";
-    sha256 = "1452zy3g0qv4fpd9c0y4gq437kn0xf7bbfniibv5n43zpwnpmklv";
+    sha256 = "501852b8325349031b769d1c03d6eab04f7b9b97f790ec79f3d3d04bf065d83e";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix
index b9b8dc71927..ed24e917a1c 100644
--- a/pkgs/development/tools/build-managers/buildbot/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot/default.nix
@@ -1,76 +1,82 @@
-{ stdenv, lib, fetchurl, coreutils, openssh, buildbot-worker, makeWrapper,
-  pythonPackages, gnused, plugins ? [] }:
+{ stdenv, lib, openssh, buildbot-worker, pythonPackages, runCommand, makeWrapper }:
 
-pythonPackages.buildPythonApplication (rec {
-  name = "${pname}-${version}";
-  pname = "buildbot";
-  version = "0.9.4";
-  src = fetchurl {
-    url = "mirror://pypi/b/${pname}/${name}.tar.gz";
-    sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
-  };
+let
+  withPlugins = plugins: runCommand "wrapped-${package.name}" {
+    buildInputs = [ makeWrapper ] ++ plugins;
+    passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
+  } ''
+    makeWrapper ${package}/bin/buildbot $out/bin/buildbot --prefix PYTHONPATH : $PYTHONPATH
+  '';
 
-  buildInputs = with pythonPackages; [
-    lz4
-    txrequests
-    pyjade
-    boto3
-    moto
-    txgithub
-    mock
-    setuptoolsTrial
-    isort
-    pylint
-    astroid
-    pyflakes
-    openssh
-    buildbot-worker
-    makeWrapper
-    treq
-  ];
+  package = pythonPackages.buildPythonApplication (rec {
+    name = "${pname}-${version}";
+    pname = "buildbot";
+    version = "0.9.4";
 
-  propagatedBuildInputs = with pythonPackages; [
+    src = pythonPackages.fetchPypi {
+      inherit pname version;
+      sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
+    };
 
-    # core
-    twisted
-    jinja2
-    zope_interface
-    sqlalchemy
-    sqlalchemy_migrate
-    future
-    dateutil
-    txaio
-    autobahn
-    pyjwt
+    buildInputs = with pythonPackages; [
+      lz4
+      txrequests
+      pyjade
+      boto3
+      moto
+      txgithub
+      mock
+      setuptoolsTrial
+      isort
+      pylint
+      astroid
+      pyflakes
+      openssh
+      buildbot-worker
+      treq
+    ];
 
-    # tls
-    pyopenssl
-    service-identity
-    idna
+    propagatedBuildInputs = with pythonPackages; [
 
-    # docs
-    sphinx
-    sphinxcontrib-blockdiag
-    sphinxcontrib-spelling
-    pyenchant
-    docutils
-    ramlfications
-    sphinx-jinja
+      # core
+      twisted
+      jinja2
+      zope_interface
+      sqlalchemy
+      sqlalchemy_migrate
+      future
+      dateutil
+      txaio
+      autobahn
+      pyjwt
 
-  ] ++ plugins;
+      # tls
+      pyopenssl
+      service-identity
+      idna
 
-  postPatch = ''
-    ${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py
-  '';
+      # docs
+      sphinx
+      sphinxcontrib-blockdiag
+      sphinxcontrib-spelling
+      pyenchant
+      docutils
+      ramlfications
+      sphinx-jinja
 
-  postFixup = ''
-    makeWrapper $out/bin/.buildbot-wrapped $out/bin/buildbot --set PYTHONPATH "$PYTHONPATH"
-  '';
+    ];
+
+    postPatch = ''
+      substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+    '';
+
+    passthru = { inherit withPlugins; };
 
-  meta = with stdenv.lib; {
-    homepage = http://buildbot.net/;
-    description = "Continuous integration system that automates the build/test cycle";
-    maintainers = with maintainers; [ nand0p ryansydnor ];
-    license = licenses.gpl2;
-  };
-})
+    meta = with stdenv.lib; {
+      homepage = http://buildbot.net/;
+      description = "Continuous integration system that automates the build/test cycle";
+      maintainers = with maintainers; [ nand0p ryansydnor ];
+      license = licenses.gpl2;
+    };
+  });
+in package
diff --git a/pkgs/development/tools/build-managers/buildbot/worker.nix b/pkgs/development/tools/build-managers/buildbot/worker.nix
index 3023555d22c..b9b4b86aa44 100644
--- a/pkgs/development/tools/build-managers/buildbot/worker.nix
+++ b/pkgs/development/tools/build-managers/buildbot/worker.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, gnused, coreutils, pythonPackages }:
+{ stdenv, pythonPackages }:
 
 pythonPackages.buildPythonApplication (rec {
   name = "${pname}-${version}";
   pname = "buildbot-worker";
   version = "0.9.4";
 
-  src = fetchurl {
-    url = "mirror://pypi/b/${pname}/${name}.tar.gz";
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
     sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj";
   };
 
@@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication (rec {
   propagatedBuildInputs = with pythonPackages; [ twisted future ];
 
   postPatch = ''
-    ${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot_worker/scripts/logwatcher.py
+    substituteInPlace buildbot_worker/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/database/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index 338f3323d94..c9aecd59135 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -1,17 +1,28 @@
-{ stdenv, fetchFromGitHub, qt4, sqlite, cmake }:
+{ stdenv, fetchFromGitHub, qt5, sqlite, cmake }:
 
 stdenv.mkDerivation rec {
-  version = "3.8.0";
+  version = "3.9.1";
   name = "sqlitebrowser-${version}";
 
   src = fetchFromGitHub {
     repo   = "sqlitebrowser";
     owner  = "sqlitebrowser";
     rev    = "v${version}";
-    sha256 = "009yaamf6f654dl796f1gmj3rb34d55w87snsfgk33gpy6x19ccp";
+    sha256 = "1s7f2d7wx2i68x60z7wdws3il6m83k5n5w5wyjvr0mz0mih0s150";
   };
 
-  buildInputs = [ qt4 sqlite cmake ];
+  buildInputs = [ qt5.qtbase qt5.qttools sqlite cmake ];
+  
+  enableParallelBuilding = true;
+  
+  cmakeFlags = [ "-DUSE_QT5=TRUE" ];
+  
+  # A regression was introduced in CMakeLists.txt on v3.9.x
+  # See https://github.com/sqlitebrowser/sqlitebrowser/issues/832 and issues/755
+  patchPhase = ''
+    substituteInPlace CMakeLists.txt --replace 'project("DB Browser for SQLite")' 'project(sqlitebrowser)'
+  '';
+
 
   meta = with stdenv.lib; {
     description = "DB Browser for SQLite";
@@ -21,4 +32,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux; # can only test on linux
   };
 }
-
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index fc8488ee104..9fe9c46816a 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -19,5 +19,6 @@ buildGoPackage rec {
     homepage = "https://github.com/derekparker/delve";
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.mit;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/tools/misc/kibana/default.nix b/pkgs/development/tools/misc/kibana/default.nix
index 677ffa49c99..bd85f614028 100644
--- a/pkgs/development/tools/misc/kibana/default.nix
+++ b/pkgs/development/tools/misc/kibana/default.nix
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.elastic.co/kibana/kibana/${name}-${plat}-${elasticArch}.tar.gz";
-    sha256 = shas."${stdenv.system}";
+    sha256 = shas."${stdenv.system}" or (throw "Unknown architecture");
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/ocaml/jbuilder/default.nix b/pkgs/development/tools/ocaml/jbuilder/default.nix
new file mode 100644
index 00000000000..9d6485841fa
--- /dev/null
+++ b/pkgs/development/tools/ocaml/jbuilder/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip, ocaml, opam }:
+
+stdenv.mkDerivation {
+  name = "jbuilder-1.0+beta2";
+  src = fetchzip {
+    url = http://github.com/janestreet/jbuilder/archive/1.0+beta2.tar.gz;
+    sha256 = "0xbq6p0n4a740l3jvq4a0a58mwfcal0q37vi8ix053f3jiqki6ng";
+  };
+
+  buildInputs = [ ocaml ];
+
+  installPhase = "${opam}/bin/opam-installer -i --prefix=$out --libdir=$OCAMLFIND_DESTDIR";
+
+  preFixup = "rm -rf $out/jbuilder";
+
+  meta = {
+    homepage = https://github.com/janestreet/jbuilder;
+    description = "Fast, portable and opinionated build system";
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    license = stdenv.lib.licenses.asl20;
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index c7d26fc79dd..59a16bfc27c 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, unzip, jre }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.8";
+  version = "0.6.2";
   baseName = "scalafmt";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "https://github.com/olafurpg/scalafmt/releases/download/v${version}/${baseName}.tar.gz";
-    sha256 = "0pwmmn5k5wscmpidxpc88yrgm7gkpk9ssdh97lz0fjqln99gwp8r";
+    sha256 = "0xafl7vmncdycapi9shxqf73nhb24llgxjd2x98irmr9bvzg844q";
   };
 
   unpackPhase = "tar xvzf $src";
diff --git a/pkgs/development/tools/simavr/default.nix b/pkgs/development/tools/simavr/default.nix
index 82c2c131f07..9fa6b8b5716 100644
--- a/pkgs/development/tools/simavr/default.nix
+++ b/pkgs/development/tools/simavr/default.nix
@@ -4,7 +4,6 @@
 stdenv.mkDerivation rec {
   name = "simavr-${version}";
   version = "1.5";
-  enableParallelBuilding = true;
 
   src = fetchFromGitHub {
     owner = "buserror";
@@ -13,6 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "0b2lh6l2niv80dmbm9xkamvnivkbmqw6v97sy29afalrwfxylxla";
   };
 
+  # ld: cannot find -lsimavr
+  enableParallelBuilding = false;
+
   buildFlags = "AVR_ROOT=${avrgcclibc}/avr SIMAVR_VERSION=${version}";
   installFlags = buildFlags + " DESTDIR=$(out)";
 
diff --git a/pkgs/development/tools/vndr/default.nix b/pkgs/development/tools/vndr/default.nix
index 7cc77bd1bb3..14f01863c8a 100644
--- a/pkgs/development/tools/vndr/default.nix
+++ b/pkgs/development/tools/vndr/default.nix
@@ -18,6 +18,6 @@ buildGoPackage rec {
     description = "Stupid golang vendoring tool, inspired by docker vendor script";
     homepage = "https://github.com/LK4D4/vndr";
     maintainers = with lib.maintainers; [ vdemeester ];
-    licence = lib.licenses.asl20;
+    license = lib.licenses.asl20;
   };
 }