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/ccl/default.nix2
-rw-r--r--pkgs/development/compilers/dmd/default.nix3
-rw-r--r--pkgs/development/compilers/gcl/default.nix14
-rw-r--r--pkgs/development/compilers/ghc/6.10.2-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/7.0.4-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/7.4.2-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/7.8.3.nix48
-rw-r--r--pkgs/development/compilers/intercal/default.nix11
-rw-r--r--pkgs/development/compilers/julia/0.3.nix11
-rw-r--r--pkgs/development/compilers/llvm/3.7/clang/default.nix55
-rw-r--r--pkgs/development/compilers/llvm/3.7/clang/purity.patch17
-rw-r--r--pkgs/development/compilers/llvm/3.7/default.nix35
-rw-r--r--pkgs/development/compilers/llvm/3.7/libc++/darwin.patch30
-rw-r--r--pkgs/development/compilers/llvm/3.7/libc++/default.nix49
-rw-r--r--pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh3
-rw-r--r--pkgs/development/compilers/llvm/3.7/libc++abi.nix47
-rw-r--r--pkgs/development/compilers/llvm/3.7/lldb.nix49
-rw-r--r--pkgs/development/compilers/llvm/3.7/llvm.nix74
-rw-r--r--pkgs/development/compilers/openjdk/7.nix (renamed from pkgs/development/compilers/openjdk/default.nix)0
-rw-r--r--pkgs/development/compilers/openjdk/8.nix (renamed from pkgs/development/compilers/openjdk/openjdk8.nix)46
-rw-r--r--pkgs/development/compilers/oraclejdk/dlj-bundle-builder.sh2
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk-linux-base.nix7
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix26
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix2
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix327
-rw-r--r--pkgs/development/haskell-modules/lib.nix1
-rw-r--r--pkgs/development/interpreters/mujs/default.nix6
-rw-r--r--pkgs/development/interpreters/python/3.5/default.nix112
-rw-r--r--pkgs/development/interpreters/python/3.5/setup-hook.sh15
-rw-r--r--pkgs/development/interpreters/ruby/bundler-head.nix2
-rw-r--r--pkgs/development/interpreters/ruby/bundler.nix6
-rw-r--r--pkgs/development/interpreters/ruby/config.nix6
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.0.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.1.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.2.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.3.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.6.nix8
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.2.0.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.2.2.nix4
-rw-r--r--pkgs/development/interpreters/ruby/rubygems.nix4
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix18
-rw-r--r--pkgs/development/libraries/audio/lvtk/default.nix12
-rw-r--r--pkgs/development/libraries/boost/1.59.nix40
-rw-r--r--pkgs/development/libraries/box2d/default.nix6
-rw-r--r--pkgs/development/libraries/folly/default.nix9
-rw-r--r--pkgs/development/libraries/geos/default.nix4
-rw-r--r--pkgs/development/libraries/gettext/default.nix4
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix4
-rw-r--r--pkgs/development/libraries/gnutls/3.3.nix6
-rw-r--r--pkgs/development/libraries/gnutls/3.4.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/python/default.nix14
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.10/dependencies.sh2
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.10/packages.sh2
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.12/dependencies.sh2
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.12/packages.sh2
-rw-r--r--pkgs/development/libraries/kerberos/heimdal.nix6
-rw-r--r--pkgs/development/libraries/ldns/default.nix9
-rw-r--r--pkgs/development/libraries/ldns/perl-5.22-compat.patch12
-rw-r--r--pkgs/development/libraries/lesstif/default.nix9
-rw-r--r--pkgs/development/libraries/libabw/default.nix26
-rw-r--r--pkgs/development/libraries/libcdr/default.nix10
-rw-r--r--pkgs/development/libraries/libcmis/default.nix24
-rw-r--r--pkgs/development/libraries/libe-book/default.nix8
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix7
-rw-r--r--pkgs/development/libraries/libhangul/default.nix18
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--pkgs/development/libraries/libpsl/default.nix10
-rw-r--r--pkgs/development/libraries/libressl/default.nix4
-rw-r--r--pkgs/development/libraries/librevenge/default.nix6
-rw-r--r--pkgs/development/libraries/libs3/default.nix2
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix4
-rw-r--r--pkgs/development/libraries/libtiff/default.nix4
-rw-r--r--pkgs/development/libraries/libunwind/default.nix10
-rw-r--r--pkgs/development/libraries/libvisio/default.nix15
-rw-r--r--pkgs/development/libraries/libwps/default.nix20
-rw-r--r--pkgs/development/libraries/mesa/default.nix4
-rw-r--r--pkgs/development/libraries/ncbi/default.nix12
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix35
-rw-r--r--pkgs/development/libraries/openldap/CVE-2015-6908.patch25
-rw-r--r--pkgs/development/libraries/openldap/default.nix3
-rw-r--r--pkgs/development/libraries/proj/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/arpack/default.nix4
-rw-r--r--pkgs/development/libraries/unixODBCDrivers/default.nix10
-rw-r--r--pkgs/development/libraries/wavpack/default.nix12
-rw-r--r--pkgs/development/libraries/wavpack/wavpack_clang.patch25
-rw-r--r--pkgs/development/libraries/wtk/builder.sh4
-rw-r--r--pkgs/development/libraries/zimlib/default.nix21
-rw-r--r--pkgs/development/mobile/androidenv/androidndk.nix2
-rw-r--r--pkgs/development/mobile/androidenv/androidndk_r8e.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolog/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix12
-rw-r--r--pkgs/development/python-modules/btrees_interger_overflow.patch146
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh2
-rw-r--r--pkgs/development/python-modules/irclib/default.nix8
-rw-r--r--pkgs/development/python-modules/libsexy/default.nix6
-rw-r--r--pkgs/development/python-modules/wxPython/2.8.nix25
-rw-r--r--pkgs/development/python-modules/wxPython/3.0.nix30
-rw-r--r--pkgs/development/python-modules/wxPython/builder.sh22
-rw-r--r--pkgs/development/python-modules/wxPython/builder3.0.sh22
-rw-r--r--pkgs/development/python-modules/wxPython/generic.nix32
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/jam/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix5
-rw-r--r--pkgs/development/tools/misc/global/default.nix4
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--pkgs/development/tools/misc/patchelf/setup-hook.sh2
-rw-r--r--pkgs/development/tools/misc/teensy-loader-cli/default.nix26
-rw-r--r--pkgs/development/tools/misc/teensy/default.nix26
-rw-r--r--pkgs/development/tools/parsing/lemon/default.nix48
111 files changed, 1422 insertions, 570 deletions
diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix
index 378a8fc8cad2..3522e234fa2a 100644
--- a/pkgs/development/compilers/ccl/default.nix
+++ b/pkgs/development/compilers/ccl/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   src = fetchsvn {
     url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl;
     rev = revision;
-    sha256 = "11lmdvzj1mbm7mbr22vjbcrsvinyz8n32a91ms324xqdqpr82ifb";
+    sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8";
   };
 
   buildInputs = [ gcc glibc m4 ];
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index fb4666de4c21..8b0f2509a911 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation {
       substituteInPlace src/dmd/posix.mak --replace g++ clang++
   '';
 
+  # Buid and install are based on http://wiki.dlang.org/Building_DMD
   buildPhase = ''
       cd src/dmd
       make -f posix.mak INSTALL_DIR=$out
@@ -50,7 +51,7 @@ stdenv.mkDerivation {
       cd $out/bin
       tee dmd.conf << EOF
       [Environment]
-      DFLAGS=-I$out/include/d2 -L-L$out/lib -L--no-warn-search-mismatch -L--export-dynamic
+      DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--no-warn-search-mismatch -L--export-dynamic"}
       EOF
   '';
 
diff --git a/pkgs/development/compilers/gcl/default.nix b/pkgs/development/compilers/gcl/default.nix
index f1844a1a632b..a8a803c2a7d8 100644
--- a/pkgs/development/compilers/gcl/default.nix
+++ b/pkgs/development/compilers/gcl/default.nix
@@ -1,11 +1,13 @@
-a :  
-let 
+a @ { mpfr, m4, binutils, fetchcvs, emacs, zlib, which
+, texinfo, libX11, xproto, inputproto, libXi
+, libXext, xextproto, libXt, libXaw, libXmu, stdenv, ... } :
+let
   buildInputs = with a; [
     mpfr m4 binutils emacs gmp
-    libX11 xproto inputproto libXi 
+    libX11 xproto inputproto libXi
     libXext xextproto libXt libXaw libXmu
     zlib which texinfo texLive
-  ]; 
+  ];
 in
 
 (
@@ -40,7 +42,7 @@ rec {
   '') ["minInit" "doUnpack" "addInputs"];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doUnpack" "preBuild" 
+  phaseNames = ["setVars" "doUnpack" "preBuild"
     "doConfigure" "doMakeInstall"];
 }) // {
   meta = {
@@ -48,7 +50,7 @@ rec {
     maintainers = [
       a.lib.maintainers.raskin
     ];
-    platforms = with a.lib.platforms; 
+    platforms = with a.lib.platforms;
       linux;
   };
 }
diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 4e660853f200..96ec4e6c114a 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
     (if stdenv.isLinux then ''
-      find . -type f -perm +100 \
+      find . -type f -perm -0100 \
           -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
           --set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
       for prog in ld ar gcc strip ranlib; do
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
index 7a6f1b78fa49..31df7f1fa355 100644
--- a/pkgs/development/compilers/ghc/7.0.4-binary.nix
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
     stdenv.lib.optionalString stdenv.isLinux ''
-      find . -type f -perm +100 \
+      find . -type f -perm -0100 \
           -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
           --set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
       sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
index 3d781e9d558f..03dd4dcd35bb 100644
--- a/pkgs/development/compilers/ghc/7.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     stdenv.lib.optionalString stdenv.isLinux ''
       mkdir -p "$out/lib"
       ln -sv "${ncurses}/lib/libncurses.so" "$out/lib/libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5"
-      find . -type f -perm +100 \
+      find . -type f -perm -0100 \
           -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
           --set-rpath "$out/lib:${gmp}/lib" {} \;
       sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
diff --git a/pkgs/development/compilers/ghc/7.8.3.nix b/pkgs/development/compilers/ghc/7.8.3.nix
new file mode 100644
index 000000000000..2e0f5ba07e4d
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.8.3.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, ghc, perl, gmp, ncurses, libiconv }:
+
+stdenv.mkDerivation rec {
+  version = "7.8.3";
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://www.haskell.org/ghc/dist/${version}/${name}-src.tar.xz";
+    sha256 = "0n5rhwl83yv8qm0zrbaxnyrf8x1i3b6si927518mwfxs96jrdkdh";
+  };
+
+  buildInputs = [ ghc perl gmp ncurses ];
+
+  enableParallelBuilding = true;
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
+    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+    DYNAMIC_BY_DEFAULT = NO
+    ${stdenv.lib.optionalString stdenv.isDarwin ''
+      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
+      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
+    ''}
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_LDFLAGS+=" -no_dtrace_dof"
+  '';
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!stdenv.isDarwin) "--keep-file-symbols";
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = with stdenv.lib.maintainers; [ marcweber andres simons ];
+    inherit (ghc.meta) license platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/intercal/default.nix b/pkgs/development/compilers/intercal/default.nix
index d3ecdab9ee3f..f601dc254a43 100644
--- a/pkgs/development/compilers/intercal/default.nix
+++ b/pkgs/development/compilers/intercal/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl
 , pkgconfig
-, bison, flex }:
+, bison, flex
+, makeWrapper }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -14,7 +15,12 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-  [ pkgconfig bison flex ];
+  [ pkgconfig bison flex makeWrapper ];
+
+  # Intercal invokes gcc, so we need an explicit PATH
+  postInstall = ''
+    wrapProgram $out/bin/ick --suffix PATH ':' ${stdenv.cc}/bin
+  '';
 
   meta = {
     description = "The original esoteric programming language";
@@ -33,3 +39,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+# TODO: investigate if LD_LIBRARY_PATH needs to be set
diff --git a/pkgs/development/compilers/julia/0.3.nix b/pkgs/development/compilers/julia/0.3.nix
index 7f0f263283d8..82b35e2b9b36 100644
--- a/pkgs/development/compilers/julia/0.3.nix
+++ b/pkgs/development/compilers/julia/0.3.nix
@@ -5,11 +5,22 @@
 , libunwind, llvm, readline, utf8proc, zlib
 # standard library dependencies
 , double_conversion, fftwSinglePrec, fftw, glpk, gmp, mpfr, pcre
+# linear algebra
 , openblas, arpack, suitesparse
 }:
 
 with stdenv.lib;
 
+# All dependencies should use the same OpenBLAS.
+let
+  arpack_ = arpack;
+  suitesparse_ = suitesparse;
+in
+let
+  arpack = arpack_.override { inherit openblas; };
+  suitesparse = suitesparse_.override { inherit openblas; };
+in
+
 stdenv.mkDerivation rec {
   pname = "julia";
   version = "0.3.11";
diff --git a/pkgs/development/compilers/llvm/3.7/clang/default.nix b/pkgs/development/compilers/llvm/3.7/clang/default.nix
new file mode 100644
index 000000000000..9fb212b9c054
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/clang/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, clang-tools-extra_src }:
+
+let
+  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+in stdenv.mkDerivation {
+  name = "clang-${version}";
+
+  unpackPhase = ''
+    unpackFile ${fetch "cfe" "1k517b0jj74c4vgnnd4ikbrpb96na541bi8q845ckw8xm72l1msf"}
+    mv cfe-${version}.src clang
+    sourceRoot=$PWD/clang
+    unpackFile ${clang-tools-extra_src}
+    mv clang-tools-extra-* $sourceRoot/tools/extra
+  '';
+
+  buildInputs = [ cmake libedit libxml2 llvm ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DCMAKE_CXX_FLAGS=-std=c++11"
+  ] ++
+  # Maybe with compiler-rt this won't be needed?
+  (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++
+  (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include");
+
+  patches = [ ./purity.patch ];
+
+  postPatch = ''
+    sed -i -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/Tools.cpp
+    sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp
+  '';
+
+  # Clang expects to find LLVMgold in its own prefix
+  # Clang expects to find sanitizer libraries in its own prefix
+  postInstall = ''
+    ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+    ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/
+    ln -sv $out/bin/clang $out/bin/cpp
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    isClang = true;
+  } // stdenv.lib.optionalAttrs stdenv.isLinux {
+    inherit gcc;
+  };
+
+  meta = {
+    description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.7/clang/purity.patch b/pkgs/development/compilers/llvm/3.7/clang/purity.patch
new file mode 100644
index 000000000000..ee73b26eb5ce
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/clang/purity.patch
@@ -0,0 +1,17 @@
+--- a/lib/Driver/Tools.cpp	2015-07-31 00:47:41.000000000 +0200
++++ b/lib/Driver/Tools.cpp	2015-09-11 21:30:50.057895565 +0200
+@@ -8150,15 +8150,6 @@
+     CmdArgs.push_back("-shared");
+   }
+ 
+-  if (Arch == llvm::Triple::arm || Arch == llvm::Triple::armeb ||
+-      Arch == llvm::Triple::thumb || Arch == llvm::Triple::thumbeb ||
+-      (!Args.hasArg(options::OPT_static) &&
+-       !Args.hasArg(options::OPT_shared))) {
+-    CmdArgs.push_back("-dynamic-linker");
+-    CmdArgs.push_back(Args.MakeArgString(
+-        D.DyldPrefix + getLinuxDynamicLinker(Args, ToolChain)));
+-  }
+-
+   CmdArgs.push_back("-o");
+   CmdArgs.push_back(Output.getFilename());
diff --git a/pkgs/development/compilers/llvm/3.7/default.nix b/pkgs/development/compilers/llvm/3.7/default.nix
new file mode 100644
index 000000000000..cbd0f89ae086
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/default.nix
@@ -0,0 +1,35 @@
+{ newScope, stdenv, isl, fetchurl, overrideCC, wrapCC }:
+let
+  callPackage = newScope (self // { inherit stdenv isl version fetch; });
+
+  version = "3.7.0";
+
+  fetch = fetch_v version;
+  fetch_v = ver: name: sha256: fetchurl {
+    url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.xz";
+    inherit sha256;
+  };
+
+  compiler-rt_src = fetch "compiler-rt" "02rbsqdnj1dw9q3d8w5wwmvz5gfraiv8xp18lis4kj8baacajzr2";
+  clang-tools-extra_src = fetch "clang-tools-extra" "1k894zkx4w8grigmgv5y4q9zrcic2ypz0zfn28270ykbm6is1s4a";
+
+  self = {
+    llvm = callPackage ./llvm.nix {
+      inherit compiler-rt_src stdenv;
+    };
+
+    clang-unwrapped = callPackage ./clang {
+      inherit clang-tools-extra_src stdenv;
+    };
+
+    clang = wrapCC self.clang-unwrapped;
+
+    stdenv = overrideCC stdenv self.clang;
+
+    lldb = callPackage ./lldb.nix {};
+
+    libcxx = callPackage ./libc++ {};
+
+    libcxxabi = callPackage ./libc++abi.nix {};
+  };
+in self
diff --git a/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch b/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch
new file mode 100644
index 000000000000..bf83f169cfc3
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch
@@ -0,0 +1,30 @@
+diff -ru -x '*~' libcxx-3.4.2.src-orig/lib/CMakeLists.txt libcxx-3.4.2.src/lib/CMakeLists.txt
+--- libcxx-3.4.2.src-orig/lib/CMakeLists.txt	2013-11-15 18:18:57.000000000 +0100
++++ libcxx-3.4.2.src/lib/CMakeLists.txt	2014-09-24 14:04:01.000000000 +0200
+@@ -56,7 +56,7 @@
+       "-compatibility_version 1"
+       "-current_version ${LIBCXX_VERSION}"
+       "-install_name /usr/lib/libc++.1.dylib"
+-      "-Wl,-reexport_library,/usr/lib/libc++abi.dylib"
++      "-Wl,-reexport_library,${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
+       "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
+       "/usr/lib/libSystem.B.dylib")
+   else()
+@@ -64,14 +64,14 @@
+       list(FIND ${CMAKE_OSX_ARCHITECTURES} "armv7" OSX_HAS_ARMV7)
+       if (OSX_HAS_ARMV7)
+         set(OSX_RE_EXPORT_LINE
+-          "${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"
++          "${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
+           "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++sjlj-abi.exp")
+       else()
+         set(OSX_RE_EXPORT_LINE
+-          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib")
++          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib")
+       endif()
+     else()
+-      set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
++      set (OSX_RE_EXPORT_LINE "${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
+     endif()
+ 
+     list(APPEND link_flags
diff --git a/pkgs/development/compilers/llvm/3.7/libc++/default.nix b/pkgs/development/compilers/llvm/3.7/libc++/default.nix
new file mode 100644
index 000000000000..cd985d89098d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/libc++/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetch, cmake, libcxxabi, fixDarwinDylibNames, version }:
+
+stdenv.mkDerivation rec {
+  name = "libc++-${version}";
+
+  src = fetch "libcxx" "13nh78zp5d2jf732mxnalw679zjywbjpz9942j66fznd6f1kr3y1";
+
+  postUnpack = ''
+    unpackFile ${libcxxabi.src}
+  '';
+
+  preConfigure = ''
+    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
+    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include")
+  '' +
+  stdenv.lib.optionalString stdenv.isDarwin ''
+    # instead of allowing libc++ to link with /usr/lib/libc++abi.dylib,
+    # force it to link with our copy
+    substituteInPlace lib/CMakeLists.txt \
+      --replace 'OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib' \
+                'OSX_RE_EXPORT_LINE "${libcxxabi}/lib/libc++abi.dylib' \
+      --replace '"''${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"' \
+                '"${libcxxabi}/lib/libc++abi.dylib"'
+  '';
+
+  patches = [ ./darwin.patch ];
+
+  buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  cmakeFlags =
+    [ "-DCMAKE_BUILD_TYPE=Release"
+      "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
+      "-DLIBCXX_LIBCPPABI_VERSION=2"
+      "-DLIBCXX_CXX_ABI=libcxxabi"
+    ];
+
+  enableParallelBuilding = true;
+
+  linkCxxAbi = stdenv.isLinux;
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    homepage = http://libcxx.llvm.org/;
+    description = "A new implementation of the C++ standard library, targeting C++11";
+    license = "BSD";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh
new file mode 100644
index 000000000000..9022fced6ecf
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh
@@ -0,0 +1,3 @@
+linkCxxAbi="@linkCxxAbi@"
+export NIX_CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
+export NIX_CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/3.7/libc++abi.nix b/pkgs/development/compilers/llvm/3.7/libc++abi.nix
new file mode 100644
index 000000000000..a1b300ffa04f
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/libc++abi.nix
@@ -0,0 +1,47 @@
+{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+
+stdenv.mkDerivation {
+  name = "libc++abi-${version}";
+
+  src = fetch "libcxxabi" "1swvnhrf9g67579c5picg0l869f8l2bwi4xqpbcb4n296gyp9c28";
+
+  buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin) libunwind;
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    unpackFile ${llvm.src}
+    export NIX_CFLAGS_COMPILE+=" -I$PWD/include"
+    export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export TRIPLE=x86_64-apple-darwin
+  '';
+
+  installPhase = if stdenv.isDarwin
+    then ''
+      for file in lib/*.dylib; do
+        # this should be done in CMake, but having trouble figuring out
+        # the magic combination of necessary CMake variables
+        # if you fancy a try, take a look at
+        # http://www.cmake.org/Wiki/CMake_RPATH_handling
+        install_name_tool -id $out/$file $file
+      done
+      make install
+      install -d 755 $out/include
+      install -m 644 ../include/cxxabi.h $out/include
+    ''
+    else ''
+      install -d -m 755 $out/include $out/lib
+      install -m 644 lib/libc++abi.so.1.0 $out/lib
+      install -m 644 ../include/cxxabi.h $out/include
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+    '';
+
+  meta = {
+    homepage = http://libcxxabi.llvm.org/;
+    description = "A new implementation of low level support for a standard C++ library";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.7/lldb.nix b/pkgs/development/compilers/llvm/3.7/lldb.nix
new file mode 100644
index 000000000000..60f1550dd447
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/lldb.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, llvm
+, clang-unwrapped
+, python
+, version
+}:
+
+stdenv.mkDerivation {
+  name = "lldb-${version}";
+
+  src = fetch "lldb" "1sbi9c6c4m73wfw249dn0n2974p444i03brk82m4w10iq5dm1mzl";
+
+  patchPhase = ''
+    sed -i 's|/usr/bin/env||' \
+      scripts/Python/finish-swig-Python-LLDB.sh \
+      scripts/Python/build-swig-Python.sh
+  '';
+
+  buildInputs = [ cmake python which swig ncurses zlib libedit ];
+
+  preConfigure = ''
+    export CXXFLAGS="-pthread"
+    export LDFLAGS="-ldl"
+  '';
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}"
+    "-DLLDB_PATH_TO_CLANG_BUILD=${clang-unwrapped}"
+    "-DPYTHON_VERSION_MAJOR=2"
+    "-DPYTHON_VERSION_MINOR=7"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A next-generation high-performance debugger";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.7/llvm.nix b/pkgs/development/compilers/llvm/3.7/llvm.nix
new file mode 100644
index 000000000000..eb1f6f668b15
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.7/llvm.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetch
+, perl
+, groff
+, cmake
+, python
+, libffi
+, binutils
+, libxml2
+, valgrind
+, ncurses
+, version
+, zlib
+, compiler-rt_src
+}:
+
+let
+  src = fetch "llvm" "0lrirklh4nrcb078qc2f6vbmmc34kxqgsy9s18a1xbfdkmgqjidb";
+in stdenv.mkDerivation rec {
+  name = "llvm-${version}";
+
+  unpackPhase = ''
+    unpackFile ${src}
+    mv llvm-${version}.src llvm
+    sourceRoot=$PWD/llvm
+    unpackFile ${compiler-rt_src}
+    mv compiler-rt-* $sourceRoot/projects/compiler-rt
+  '';
+
+  buildInputs = [ perl groff cmake libxml2 python libffi ] /* ++ stdenv.lib.optional stdenv.isLinux valgrind */;
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+  ] ++ stdenv.lib.optionals (!isDarwin) [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DLLVM_BINUTILS_INCDIR=${binutils}/include"
+  ] ++ stdenv.lib.optionals ( isDarwin) [
+    "-DCMAKE_CXX_FLAGS=-stdlib=libc++"
+    "-DCAN_TARGET_i386=false"
+  ];
+
+  postBuild = ''
+    rm -fR $out
+
+    paxmark m bin/{lli,llvm-rtdyld}
+
+    paxmark m unittests/ExecutionEngine/JIT/JITTests
+    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
+    paxmark m unittests/Support/SupportTests
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru.src = src;
+
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 raskin viric ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/7.nix
index 19dec917bf82..19dec917bf82 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/7.nix
diff --git a/pkgs/development/compilers/openjdk/openjdk8.nix b/pkgs/development/compilers/openjdk/8.nix
index 8afa770cdb27..0e9184e1c628 100644
--- a/pkgs/development/compilers/openjdk/openjdk8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -1,8 +1,22 @@
 { stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype
 , alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib
+, setJavaClassPath
+, minimal ? false
+}:
 
-, minimal ? false } :
 let
+
+  /**
+   * The JRE libraries are in directories that depend on the CPU.
+   */
+  architecture =
+    if stdenv.system == "i686-linux" then
+      "i386"
+    else if stdenv.system == "x86_64-linux" then
+      "amd64"
+    else
+      throw "openjdk requires i686-linux or x86_64 linux";
+
   update = "60";
   build = "24";
   baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
@@ -98,14 +112,14 @@ let
     installPhase = ''
       mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk
 
-      cp -av build"/"*/images/j2sdk-image"/"* $out/lib/openjdk
+      cp -av build/*/images/j2sdk-image/* $out/lib/openjdk
 
       # Move some stuff to top-level.
       mv $out/lib/openjdk/include $out/include
       mv $out/lib/openjdk/man $out/share/man
 
       # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/linux"/"*_md.h $out/include/
+      ln -s $out/include/linux/*_md.h $out/include/
 
       # Remove some broken manpages.
       rm -rf $out/share/man/ja*
@@ -124,7 +138,7 @@ let
       ln -s $out/lib/openjdk/bin $out/lib/openjdk/jre/bin
 
       # Set PaX markings
-      exes=$(file $out/lib/openjdk/bin"/"* $jre/lib/openjdk/jre/bin"/"* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+      exes=$(file $out/lib/openjdk/bin/* $jre/lib/openjdk/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
       echo "to mark: *$exes*"
       for file in $exes; do
         echo "marking *$file*"
@@ -149,6 +163,25 @@ let
       ln -s $jre/lib/openjdk/jre/bin $jre/bin
     '';
 
+    # FIXME: this is unnecessary once the multiple-outputs branch is merged.
+    preFixup = ''
+      prefix=$jre stripDirs "$stripDebugList" "''${stripDebugFlags:--S}"
+      patchELF $jre
+      propagatedNativeBuildInputs+=" $jre"
+
+      # Propagate the setJavaClassPath setup hook from the JRE so that
+      # any package that depends on the JRE has $CLASSPATH set up
+      # properly.
+      mkdir -p $jre/nix-support
+      echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
     postFixup = ''
       # Build the set of output library directories to rpath against
       LIBDIRS=""
@@ -183,6 +216,9 @@ let
       platforms = platforms.linux;
     };
 
-    passthru.home = "${openjdk8}/lib/openjdk";
+    passthru = {
+      inherit architecture;
+      home = "${openjdk8}/lib/openjdk";
+    };
   };
 in openjdk8
diff --git a/pkgs/development/compilers/oraclejdk/dlj-bundle-builder.sh b/pkgs/development/compilers/oraclejdk/dlj-bundle-builder.sh
index 56669ae0f2f6..459bfce50988 100644
--- a/pkgs/development/compilers/oraclejdk/dlj-bundle-builder.sh
+++ b/pkgs/development/compilers/oraclejdk/dlj-bundle-builder.sh
@@ -45,7 +45,7 @@ fi
 rpath=$rpath${rpath:+:}$jrePath/lib/$architecture/jli
 
 # set all the dynamic linkers
-find $out -type f -perm +100 \
+find $out -type f -perm -0100 \
     -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
     --set-rpath "$rpath" {} \;
 
diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 35ee1a04a268..f4944e45c0e8 100644
--- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -142,7 +142,7 @@ let result = stdenv.mkDerivation rec {
     rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}
 
     # set all the dynamic linkers
-    find $out -type f -perm +100 \
+    find $out -type f -perm -0100 \
         -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --set-rpath "$rpath" {} \;
 
@@ -182,6 +182,9 @@ let result = stdenv.mkDerivation rec {
 
   passthru.home = result;
 
-  meta.license = stdenv.lib.licenses.unfree;
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "i686-linux" "x86_64-linux" ]; # some inherit jre.meta.platforms
+  };
 
 }; in result
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index ee8089f90638..80cf5ebd478d 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -12,7 +12,7 @@ self: super: {
   cabal-install_1_18_1_0 = (dontCheck super.cabal-install_1_18_1_0).overrideScope (self: super: { Cabal = self.Cabal_1_18_1_6; zlib = self.zlib_0_5_4_2; });
 
   # Link statically to avoid runtime dependency on GHC.
-  jailbreak-cabal = disableSharedExecutables super.jailbreak-cabal;
+  jailbreak-cabal = (disableSharedExecutables super.jailbreak-cabal).override { Cabal = dontJailbreak self.Cabal_1_20_0_3; };
 
   # Apply NixOS-specific patches.
   ghc-paths = appendPatch super.ghc-paths ./patches/ghc-paths-nix.patch;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
index 28092f8d886f..db3cb7bd3ce7 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
@@ -41,7 +41,7 @@ self: super: {
   # Cabal_1_22_1_1 requires filepath >=1 && <1.4
   cabal-install = dontCheck (super.cabal-install.override { Cabal = null; });
 
-  # Don't use jailbreak built with Cabal 1.22.x because of https://github.com/peti/jailbreak-cabal/issues/9.
+  # Don't compile jailbreak-cabal with Cabal 1.22.x because of https://github.com/peti/jailbreak-cabal/issues/9.
   Cabal_1_23_0_0 = overrideCabal super.Cabal_1_22_4_0 (drv: {
     version = "1.23.0.0";
     src = pkgs.fetchFromGitHub {
@@ -54,10 +54,12 @@ self: super: {
     doHaddock = false;
     postUnpack = "sourceRoot+=/Cabal";
   });
-  jailbreak-cabal = overrideCabal super.jailbreak-cabal (drv: {
-    executableHaskellDepends = [ self.Cabal_1_23_0_0 ];
-    preConfigure = "sed -i -e 's/Cabal == 1.20\\.\\*/Cabal >= 1.23/' jailbreak-cabal.cabal";
-  });
+  jailbreak-cabal = super.jailbreak-cabal.override {
+    Cabal = self.Cabal_1_23_0_0;
+    mkDerivation = drv: self.mkDerivation (drv // {
+      preConfigure = "sed -i -e 's/Cabal == 1.20\\.\\*/Cabal >= 1.23/' jailbreak-cabal.cabal";
+    });
+  };
 
   idris =
     let idris' = overrideCabal super.idris (drv: {
@@ -80,7 +82,7 @@ self: super: {
 
   # haddock: No input file(s).
   nats = dontHaddock super.nats;
-  bytestring-builder = dontHaddock super.bytestring-builder;
+  bytestring-builder = dontHaddock (triggerRebuild super.bytestring-builder 1);
 
   # We have time 1.5
   aeson = disableCabalFlag super.aeson "old-locale";
@@ -209,18 +211,6 @@ self: super: {
   # http://hub.darcs.net/ivanm/graphviz/issue/5
   graphviz = dontCheck (dontJailbreak (appendPatch super.graphviz ./patches/graphviz-fix-ghc710.patch));
 
-  # Broken with GHC 7.10.x.
-  aeson_0_7_0_6 = markBroken super.aeson_0_7_0_6;
-  Cabal_1_20_0_3 = markBroken super.Cabal_1_20_0_3;
-  cabal-install_1_18_1_0 = markBroken super.cabal-install_1_18_1_0;
-  containers_0_4_2_1 = markBroken super.containers_0_4_2_1;
-  control-monad-free_0_5_3 = markBroken super.control-monad-free_0_5_3;
-  haddock-api_2_15_0_2 = markBroken super.haddock-api_2_15_0_2;
-  QuickCheck_1_2_0_1 = markBroken super.QuickCheck_1_2_0_1;
-  seqid-streams_0_1_0 = markBroken super.seqid-streams_0_1_0;
-  vector_0_10_9_2 = markBroken super.vector_0_10_9_2;
-  hoopl_3_10_2_0 = markBroken super.hoopl_3_10_2_0;
-
   # https://github.com/HugoDaniel/RFC3339/issues/14
   timerep = dontCheck super.timerep;
 
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 94c9305e7598..3a689105c1c1 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -7,7 +7,7 @@ self: super: {
   # LLVM is not supported on this GHC; use the latest one.
   inherit (pkgs) llvmPackages;
 
-  inherit (pkgs.haskell.packages.ghc7102) jailbreak-cabal alex happy;
+  inherit (pkgs.haskell.packages.ghc7102) jailbreak-cabal alex happy gtk2hs-buildtools;
 
   # Many packages fail with:
   #   haddock: internal error: expectJust getPackageDetails
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 66d9c9aaf24d..f9f628dab60a 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -6000,6 +6000,7 @@ self: {
          FormalGrammars lens newtype parsers PrimitiveArray semigroups
          template-haskell transformers trifecta
        ];
+       jailbreak = true;
        homepage = "https://github.com/choener/GrammarProducts";
        description = "Grammar products and higher-dimensional grammars";
        license = stdenv.lib.licenses.gpl3;
@@ -12006,8 +12007,8 @@ self: {
     ({ mkDerivation, base, mesa, transformers }:
      mkDerivation {
        pname = "OpenGLRaw";
-       version = "2.5.2.1";
-       sha256 = "08c3302e4b543ebed9a8dd92bb2a16550ca7b224b7ddcc3df59135d32aacb845";
+       version = "2.5.3.0";
+       sha256 = "b749afebac567ffb4a0f6a0ce2eb480d975a0a89d4b07a3186f0ecdbec14f7f1";
        libraryHaskellDepends = [ base transformers ];
        librarySystemDepends = [ mesa ];
        homepage = "http://www.haskell.org/haskellwiki/Opengl";
@@ -18061,6 +18062,7 @@ self: {
        testHaskellDepends = [
          base lens linear QuickCheck semigroupoids semigroups vector
        ];
+       jailbreak = true;
        description = "Abstractions for animation";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -29226,6 +29228,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "bson-lens" = callPackage
+    ({ mkDerivation, base, bson, lens, text }:
+     mkDerivation {
+       pname = "bson-lens";
+       version = "0.1.1";
+       sha256 = "d73bb417def2d8cb1efebfc22482a859e119bcc4005dd10106c82dff5ceeb160";
+       libraryHaskellDepends = [ base bson lens text ];
+       homepage = "https://github.com/jb55/bson-lens";
+       description = "BSON lenses";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "bson-mapping" = callPackage
     ({ mkDerivation, base, bson, compact-string-fix, template-haskell
      , th-lift
@@ -36451,6 +36465,7 @@ self: {
        testHaskellDepends = [
          base machines tasty tasty-hunit time transformers
        ];
+       jailbreak = true;
        description = "Concurrent networked stream transducers";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -40030,14 +40045,16 @@ self: {
      }) {};
 
   "cuda" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, pretty }:
+    ({ mkDerivation, base, bytestring, c2hs, Cabal, pretty }:
      mkDerivation {
        pname = "cuda";
-       version = "0.6.6.2";
-       sha256 = "618a31947922de6de12890797d9d49f91b3efe8ebd6e39af54f6438881b58281";
+       version = "0.6.7.0";
+       sha256 = "7fa1929e4b7a8f3c24c163781788f2e3a8b893c72efc87af886e0b16f5bdbbbb";
+       revision = "1";
+       editedCabalFile = "835d4e423da92826bb241196b10a56016091623e04df181ddb0eaecf1be7fc41";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base bytestring ];
+       libraryHaskellDepends = [ base bytestring Cabal ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [ base pretty ];
        homepage = "https://github.com/tmcdonell/cuda";
@@ -43974,6 +43991,7 @@ self: {
          base containers diagrams-lib HUnit QuickCheck test-framework
          test-framework-hunit test-framework-quickcheck2
        ];
+       jailbreak = true;
        homepage = "http://projects.haskell.org/diagrams/";
        description = "Collection of user contributions to diagrams EDSL";
        license = stdenv.lib.licenses.bsd3;
@@ -43992,6 +44010,7 @@ self: {
          adjunctions base containers distributive dual-tree lens linear
          monoid-extras mtl semigroups unordered-containers
        ];
+       jailbreak = true;
        homepage = "http://projects.haskell.org/diagrams";
        description = "Core libraries for diagrams EDSL";
        license = stdenv.lib.licenses.bsd3;
@@ -44103,6 +44122,7 @@ self: {
          JuicyPixels lens linear monoid-extras mtl optparse-applicative
          process semigroups tagged text transformers unordered-containers
        ];
+       jailbreak = true;
        homepage = "http://projects.haskell.org/diagrams";
        description = "Embedded domain-specific language for declarative graphics";
        license = stdenv.lib.licenses.bsd3;
@@ -44184,6 +44204,7 @@ self: {
          filepath hashable lens monoid-extras mtl semigroups split
          statestack
        ];
+       jailbreak = true;
        homepage = "http://projects.haskell.org/diagrams/";
        description = "Postscript backend for diagrams drawing EDSL";
        license = stdenv.lib.licenses.bsd3;
@@ -44272,6 +44293,7 @@ self: {
          monoid-extras mtl old-time optparse-applicative process semigroups
          split text time
        ];
+       jailbreak = true;
        homepage = "http://projects.haskell.org/diagrams/";
        description = "SVG backend for diagrams drawing EDSL";
        license = stdenv.lib.licenses.bsd3;
@@ -46988,6 +47010,7 @@ self: {
        version = "0.2.0.6";
        sha256 = "9ba928efb967f180c7a8319d3f76faf072cf20f588709187714fac931df3b57d";
        libraryHaskellDepends = [ base monoid-extras newtype semigroups ];
+       jailbreak = true;
        description = "Rose trees with cached and accumulating monoidal annotations";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -49250,8 +49273,8 @@ self: {
      }:
      mkDerivation {
        pname = "envy";
-       version = "0.2.0.0";
-       sha256 = "78cd8c6b847d3911ccd9c0a556f4f50be28aeb6e75c5711971623c9133b52942";
+       version = "0.3.0.0";
+       sha256 = "013b88c0f480083336247b4ac18cb2bea4d14691a73992beb858f0b68db00eec";
        libraryHaskellDepends = [
          base bytestring containers mtl text time transformers
        ];
@@ -50091,6 +50114,7 @@ self: {
        libraryHaskellDepends = [
          base containers semigroups transformers
        ];
+       jailbreak = true;
        description = "Monoidal, monadic and first-class events";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -50425,19 +50449,22 @@ self: {
      }) {};
 
   "exherbo-cabal" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers
-     , haddock-library, http-client, pcre-light, pretty
+    ({ mkDerivation, base, bytestring, Cabal, containers, doctest
+     , haddock-library, http-client, http-types, pcre-light, pretty
      }:
      mkDerivation {
        pname = "exherbo-cabal";
-       version = "0.1.0.3";
-       sha256 = "daaa13b265cf59f16f9b05735fe37d046d181e2038b3d0d06584b8f6f94d37c4";
-       isLibrary = false;
+       version = "0.1.1.0";
+       sha256 = "ae4f8c8f5a071e9f8df4ce79568b6078ae1cb5a55774f389c0a61e7ab6d78fd7";
+       isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         base Cabal containers haddock-library pretty
+       ];
        executableHaskellDepends = [
-         base bytestring Cabal containers haddock-library http-client
-         pcre-light pretty
+         base bytestring Cabal http-client http-types pcre-light
        ];
+       testHaskellDepends = [ base doctest ];
        description = "Exheres generator for cabal packages";
        license = stdenv.lib.licenses.gpl2;
      }) {};
@@ -51241,8 +51268,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-tags";
-       version = "1.1.0";
-       sha256 = "5e55564b9b0422c0dccea91f2c212254c7e798e77ae85708352303459b4cdbd4";
+       version = "1.1.1";
+       sha256 = "6c9cafc9d3d67536a748977dcfbacd4f318b817321a7e8d52fc801e4e37a3674";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -53423,6 +53450,7 @@ self: {
          http-client http-client-tls lens semigroups tagged tasty
          tasty-quickcheck text time unordered-containers
        ];
+       jailbreak = true;
        homepage = "https://github.com/futurice/haskell-flowdock-rest#readme";
        description = "Flowdock REST API";
        license = stdenv.lib.licenses.bsd3;
@@ -53675,8 +53703,8 @@ self: {
      }:
      mkDerivation {
        pname = "foldl-transduce";
-       version = "0.4.1.0";
-       sha256 = "b1fba255648ac4ee5a49f405c82528ae68d0a25349ecc70377efec05e8a36257";
+       version = "0.4.3.0";
+       sha256 = "109def33459ab6b6939adef12334b8135a4ed1a48b699212ac0882570e96a424";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers foldl free
          monoid-subclasses semigroupoids text transformers
@@ -54284,6 +54312,7 @@ self: {
        version = "0.1.0.4";
        sha256 = "aeedbb9fa8520d8f17f68840336b895c81df16120dcefab82dc4ae1c98de9b2e";
        libraryHaskellDepends = [ base semigroups ];
+       jailbreak = true;
        homepage = "http://darcs.wolfgang.jeltsch.info/haskell/fraction";
        description = "Fractions";
        license = stdenv.lib.licenses.bsd3;
@@ -58909,7 +58938,7 @@ self: {
        homepage = "http://khumba.net/projects/goatee";
        description = "A monadic take on a 2,500-year-old board game - library";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ khumba ];
      }) {};
 
   "goatee-gtk" = callPackage
@@ -58931,7 +58960,7 @@ self: {
        homepage = "http://khumba.net/projects/goatee";
        description = "A monadic take on a 2,500-year-old board game - GTK+ UI";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ khumba ];
      }) {};
 
   "gofer-prelude" = callPackage
@@ -62256,23 +62285,22 @@ self: {
      }) {};
 
   "haddocset" = callPackage
-    ({ mkDerivation, base, Cabal, conduit, conduit-extra, exceptions
-     , ghc, haddock-api, mtl, optparse-applicative, process, resourcet
-     , sqlite-simple, system-fileio, system-filepath, tagsoup, text
-     , transformers
+    ({ mkDerivation, base, Cabal, conduit, conduit-extra, directory
+     , exceptions, filepath, ghc, haddock-api, http-types, mtl
+     , optparse-applicative, process, resourcet, sqlite-simple, tagsoup
+     , text, transformers
      }:
      mkDerivation {
        pname = "haddocset";
-       version = "0.3.2";
-       sha256 = "6745779bc9bc03e9508089f54a21fa84cd11e7fcf44ebafc44f7801f6bddeb5e";
+       version = "0.4.0";
+       sha256 = "dfecc6d53c74108f4ada154cd1593dc271cb0b715e2dfd6f4b17d01416147338";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base Cabal conduit conduit-extra exceptions ghc haddock-api mtl
-         optparse-applicative process resourcet sqlite-simple system-fileio
-         system-filepath tagsoup text transformers
+         base Cabal conduit conduit-extra directory exceptions filepath ghc
+         haddock-api http-types mtl optparse-applicative process resourcet
+         sqlite-simple tagsoup text transformers
        ];
-       jailbreak = true;
        homepage = "https://github.com/philopon/haddocset";
        description = "Generate docset of Dash by Haddock haskell documentation tool";
        license = stdenv.lib.licenses.bsd3;
@@ -62843,10 +62871,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "half";
-       version = "0.2.0.1";
-       sha256 = "1ca7e015830121fc144a2268c81815106d4762782e7c62f077e9da8bf62a9053";
-       revision = "1";
-       editedCabalFile = "cfadc0b87a5d9c4cc9a3ab5d7a5524221ae88e962f812eb41beba7b39111ccce";
+       version = "0.2.1";
+       sha256 = "88ccbee47c73f2eb496abb803083199d564fc3b93da2dfe4af39b1fb92003b44";
        libraryHaskellDepends = [ base ];
        homepage = "http://github.com/ekmett/half";
        description = "Half-precision floating-point";
@@ -69412,6 +69438,7 @@ self: {
          base directory doctest filepath hspec hspec-expectations mtl pipes
          semigroups transformers
        ];
+       jailbreak = true;
        homepage = "https://github.com/jwiegley/hierarchy";
        description = "Pipes-based library for predicated traversal of generated trees";
        license = stdenv.lib.licenses.bsd3;
@@ -70317,8 +70344,8 @@ self: {
      }:
      mkDerivation {
        pname = "hjsonpointer";
-       version = "0.2.0.3";
-       sha256 = "83024edf70e5f3910e062abcb5b7d3b752d13a1baf3a15cb3cbe3ad1e077c08e";
+       version = "0.2.0.4";
+       sha256 = "8ac317938cc885b01d1165f15671def24e6ceac971413bd494195e77fe0e45b0";
        libraryHaskellDepends = [
          aeson base text unordered-containers vector
        ];
@@ -70326,7 +70353,6 @@ self: {
          aeson base http-types HUnit test-framework test-framework-hunit
          text unordered-containers vector
        ];
-       jailbreak = true;
        homepage = "https://github.com/seagreen/hjsonpointer";
        description = "JSON Pointer library";
        license = stdenv.lib.licenses.mit;
@@ -70341,8 +70367,8 @@ self: {
      }:
      mkDerivation {
        pname = "hjsonschema";
-       version = "0.6.0.1";
-       sha256 = "c97cf86761fe0253b153ce0c4be211ef35e1d47a62280c2df475c2994e78eed4";
+       version = "0.6.0.2";
+       sha256 = "343836f8062337a61b6db1fee79b663e673c6cce7d185f9ceed4b1c7a994a2ef";
        libraryHaskellDepends = [
          aeson base bytestring file-embed hashable hjsonpointer http-client
          http-types regexpr scientific text unordered-containers vector
@@ -76863,8 +76889,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.4.22";
-       sha256 = "769c99eaa9aea041ac7cb8bede9397737a1235cd6c83b3c8e98366f868ea5b33";
+       version = "0.4.22.1";
+       sha256 = "44d462259752a7be3dd21e7432eee55b16933447147d08bee71eb1fae42f65ab";
        libraryHaskellDepends = [
          array base base64-bytestring blaze-builder bytestring
          case-insensitive containers cookie data-default-class deepseq
@@ -80150,20 +80176,20 @@ self: {
   "implicit" = callPackage
     ({ mkDerivation, base, blaze-builder, blaze-markup, blaze-svg
      , bytestring, containers, deepseq, directory, filepath, JuicyPixels
-     , mtl, optparse-applicative, parallel, parsec, storable-endian
-     , text, unordered-containers, vector-space
+     , mtl, NumInstances, optparse-applicative, parallel, parsec
+     , storable-endian, text, unordered-containers, vector-space
      }:
      mkDerivation {
        pname = "implicit";
-       version = "0.0.3";
-       sha256 = "8986c6cad9f9f5362cb7c422bf8507dad0b65eb04b5b7963b89a30d05e114d7f";
+       version = "0.0.4";
+       sha256 = "fa33a903850b34a6534ec5f99c012db059018d5f1ee9002e2ebb0db0ae3e98b7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base blaze-builder blaze-markup blaze-svg bytestring containers
-         deepseq directory filepath JuicyPixels mtl optparse-applicative
-         parallel parsec storable-endian text unordered-containers
-         vector-space
+         deepseq directory filepath JuicyPixels mtl NumInstances
+         optparse-applicative parallel parsec storable-endian text
+         unordered-containers vector-space
        ];
        homepage = "https://github.com/colah/ImplicitCAD";
        description = "Math-inspired programmatic 2&3D CAD: CSG, bevels, and shells; gcode export..";
@@ -81314,8 +81340,8 @@ self: {
      }:
      mkDerivation {
        pname = "invariant";
-       version = "0.2";
-       sha256 = "411aba2fbb5480007cce8356247668ea1c32bb94ea2d5dfb109ffca1e0babf7f";
+       version = "0.2.1";
+       sha256 = "30eec3443c6306625dda0937de2963f57d58219de5466f9a8fbdc40e99e24919";
        libraryHaskellDepends = [
          array base bifunctors containers contravariant ghc-prim profunctors
          semigroups stm tagged template-haskell transformers
@@ -86492,8 +86518,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-lua2";
-       version = "0.1.0.2";
-       sha256 = "047710b7b055110d773a878db1cf9ee74a05cff2df41ef849af8dd953ec3339d";
+       version = "0.1.0.3";
+       sha256 = "f375d752b3100a5cf2afa3238ba6a3fac5311af3e937e3f988c569de319aa009";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -90385,8 +90411,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-domain";
-       version = "0.10.2.1";
-       sha256 = "174045ba21aa787db043e8b592bb74906da2290e14c2469f9fb1e07bb760f11c";
+       version = "0.10.3";
+       sha256 = "9e0df2214ffd7b258e23dc535b7c75e0927df0b791f5dc579eb08ffaaf0b51bb";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq distributive hashable
          hashable-extras safecopy semigroupoids semigroups vector
@@ -90395,7 +90421,7 @@ self: {
          base directory doctest filepath generic-deriving semigroups
          simple-reflect
        ];
-       homepage = "http://github.com/analytics/log-domain/";
+       homepage = "http://github.com/ekmett/log-domain/";
        description = "Log-domain arithmetic";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -96184,6 +96210,7 @@ self: {
        version = "0.4.0.1";
        sha256 = "ce1f99bda388567af08e9a9f816c89bdd4837c5d71eb880b90c468322b969e49";
        libraryHaskellDepends = [ base groups semigroupoids semigroups ];
+       jailbreak = true;
        description = "Various extra monoid-related definitions and utilities";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -96708,6 +96735,7 @@ self: {
        testHaskellDepends = [
          base doctest profunctors tasty tasty-quickcheck vector
        ];
+       jailbreak = true;
        homepage = "https://github.com/relrod/ms";
        description = "metric spaces";
        license = stdenv.lib.licenses.bsd2;
@@ -98019,21 +98047,23 @@ self: {
      }) {};
 
   "myo" = callPackage
-    ({ mkDerivation, aeson, base, containers, inline-c, lens-family
-     , lens-family-th, scientific, tasty, tasty-hunit, template-haskell
-     , text, vector, websockets
+    ({ mkDerivation, aeson, base, containers, lens-family
+     , lens-family-th, scientific, string-conv, tasty, tasty-hunit, text
+     , unordered-containers, vector, websockets
      }:
      mkDerivation {
        pname = "myo";
-       version = "0.1.0.0";
-       sha256 = "1607cc7510c7733e7d43953a7cd0efdd788130133418fde229ce9104078bc36a";
+       version = "0.2.0.0";
+       sha256 = "a606c19c6bfc4ea1044f5b6447dd3f060372a89cbd5d2cfebe2492c93cfd4c74";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base containers inline-c lens-family lens-family-th
-         scientific template-haskell text vector websockets
+         aeson base containers lens-family lens-family-th scientific text
+         unordered-containers vector websockets
+       ];
+       executableHaskellDepends = [
+         aeson base lens-family string-conv websockets
        ];
-       executableHaskellDepends = [ aeson base lens-family websockets ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        homepage = "http://github.com/adinapoli/myo";
        description = "Haskell binding to the Myo armband";
@@ -102003,6 +102033,7 @@ self: {
          base containers contravariant multiset postgresql-simple
          product-profunctors profunctors QuickCheck semigroups time
        ];
+       jailbreak = true;
        homepage = "https://github.com/tomjaguarpaw/haskell-opaleye";
        description = "An SQL-generating DSL targeting PostgreSQL";
        license = stdenv.lib.licenses.bsd3;
@@ -102047,6 +102078,7 @@ self: {
          base containers contravariant product-profunctors profunctors
          QuickCheck semigroups sqlite-simple time
        ];
+       jailbreak = true;
        homepage = "https://github.com/tomjaguarpaw/haskell-opaleye";
        description = "An SQL-generating DSL targeting SQLite";
        license = stdenv.lib.licenses.bsd3;
@@ -106860,6 +106892,7 @@ self: {
          hspec-expectations mtl pipes pipes-safe process semigroups text
          transformers unix
        ];
+       jailbreak = true;
        homepage = "https://github.com/jwiegley/pipes-files";
        description = "Fast traversal of directory trees using pipes";
        license = stdenv.lib.licenses.bsd3;
@@ -107179,6 +107212,7 @@ self: {
        executableHaskellDepends = [
          base bytestring pipes pipes-safe semigroups zeromq4-haskell
        ];
+       jailbreak = true;
        homepage = "https://github.com/peddie/pipes-zeromq4";
        description = "Pipes integration for ZeroMQ messaging";
        license = stdenv.lib.licenses.bsd3;
@@ -107858,8 +107892,8 @@ self: {
     ({ mkDerivation, base, containers, hspec, lens, mtl }:
      mkDerivation {
        pname = "polar-shader";
-       version = "0.1.0.1";
-       sha256 = "829390e1e8ed5dcfb49ed52f96866f95483e7b404c65f11b6fe3745860460cc7";
+       version = "0.1.0.2";
+       sha256 = "86e79bda1cc4655188f4e7cfc17e77935a86e71c3cf06f5891d21391703626ce";
        libraryHaskellDepends = [ base containers lens mtl ];
        testHaskellDepends = [ base containers hspec ];
        description = "High-level shader compiler for Polar Game Engine";
@@ -108567,26 +108601,26 @@ self: {
      }) {inherit (pkgs) postgresql;};
 
   "postgresql-orm" = callPackage
-    ({ mkDerivation, aeson, base, blaze-builder, bytestring, directory
-     , filepath, ghc-prim, mtl, old-locale, postgresql-simple, process
-     , text, time, transformers, unix, unordered-containers, vector
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring
+     , bytestring-builder, directory, filepath, ghc-prim, mtl
+     , old-locale, postgresql-simple, process, text, time, transformers
+     , unix, unordered-containers, vector
      }:
      mkDerivation {
        pname = "postgresql-orm";
-       version = "0.3.2";
-       sha256 = "575c2cd8c9e6619276f74240cd9d9e4ba89cf3acca7e108f86ed5df871e601a9";
+       version = "0.4.0";
+       sha256 = "06ad6a6dc84eaf7cda7c9dc1973e9ed9e1f16d78926d9cf029e0c3a8e3dbf5ef";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base blaze-builder bytestring directory filepath ghc-prim mtl
-         old-locale postgresql-simple process text time transformers unix
-         unordered-containers vector
+         aeson base blaze-builder bytestring bytestring-builder directory
+         filepath ghc-prim mtl old-locale postgresql-simple process text
+         time transformers unix unordered-containers vector
        ];
        executableHaskellDepends = [
-         base blaze-builder bytestring directory filepath ghc-prim mtl
-         old-locale postgresql-simple process time
+         base blaze-builder bytestring bytestring-builder directory filepath
+         ghc-prim mtl old-locale postgresql-simple process time
        ];
-       jailbreak = true;
        description = "An ORM (Object Relational Mapping) and migrations DSL for PostgreSQL";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -108630,8 +108664,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-schema";
-       version = "0.1.4";
-       sha256 = "274dac6dcd5d263b4e2023d35901f9b02914b804aa71cd39f10ee813e2cd4ffd";
+       version = "0.1.5";
+       sha256 = "c3942ace299e3db40f3c1080aff86b252547af5c4bab7a1df46fb1343f1665a7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -110654,6 +110688,30 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "psc-ide" = callPackage
+    ({ mkDerivation, aeson, base, containers, directory, filepath
+     , hspec, lens, lens-aeson, mtl, network, optparse-applicative
+     , parsec, regex-tdfa, text, wreq
+     }:
+     mkDerivation {
+       pname = "psc-ide";
+       version = "0.1.0.0";
+       sha256 = "787d26ce0d50409f41a34ad72e857d19d2e346b75e072da6396195e960f8145d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers directory filepath lens lens-aeson mtl parsec
+         regex-tdfa text wreq
+       ];
+       executableHaskellDepends = [
+         base directory mtl network optparse-applicative text
+       ];
+       testHaskellDepends = [ base hspec ];
+       homepage = "http://github.com/kRITZCREEK/psc-ide";
+       description = "Language support for the PureScript programming language";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pseudo-boolean" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, bytestring-builder
      , containers, deepseq, dlist, hashable, HUnit, parsec, QuickCheck
@@ -111177,6 +111235,7 @@ self: {
          optparse-applicative parsec process time transformers
          transformers-compat
        ];
+       jailbreak = true;
        homepage = "http://www.purescript.org/";
        description = "PureScript Programming Language Compiler";
        license = stdenv.lib.licenses.mit;
@@ -112142,12 +112201,13 @@ self: {
      }) {};
 
   "quiver" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, mmorph, transformers }:
      mkDerivation {
        pname = "quiver";
-       version = "0.0.0.12";
-       sha256 = "3ae4d76c2b4f4805b43ac6136c865142d3e847affb86e1e3dba6f9bb35e7bf04";
-       libraryHaskellDepends = [ base ];
+       version = "1.0.0";
+       sha256 = "583bcf4662a27a7d1697e89a1080144196ab5301efab2ec720eb12610a736437";
+       libraryHaskellDepends = [ base mmorph transformers ];
+       jailbreak = true;
        homepage = "https://github.com/zadarnowski/quiver";
        description = "Quiver finite stream processing library";
        license = stdenv.lib.licenses.bsd3;
@@ -112157,8 +112217,8 @@ self: {
     ({ mkDerivation, base, bytestring, quiver }:
      mkDerivation {
        pname = "quiver-bytestring";
-       version = "0.0.0.2";
-       sha256 = "948fba3fe0b40b08d6454fe705bed3c4ad34e9f9ae4fd2529de301f35c90929f";
+       version = "1.0.0";
+       sha256 = "bfb24db01b676e1f2ed374e58b4192037facf74b52d0205a55390a6bce3797c7";
        libraryHaskellDepends = [ base bytestring quiver ];
        homepage = "https://github.com/zadarnowski/quiver-bytestring";
        description = "Quiver combinators for bytestring streaming";
@@ -112218,6 +112278,7 @@ self: {
        libraryHaskellDepends = [
          base bytestring http-client http-client-tls quiver
        ];
+       jailbreak = true;
        homepage = "https://github.com/christian-marie/quiver-http/";
        description = "Adapter to stream over HTTP(s) with quiver";
        license = stdenv.lib.licenses.bsd3;
@@ -112816,6 +112877,7 @@ self: {
          base QuickCheck semigroups test-framework
          test-framework-quickcheck2 time vector-space vector-space-points
        ];
+       jailbreak = true;
        homepage = "https://github.com/JohnLato/range-space";
        description = "A Range type with vector-space instances";
        license = stdenv.lib.licenses.bsd3;
@@ -113191,6 +113253,7 @@ self: {
          aeson base deepseq lens-family monads-tf text transformers
          unordered-containers void
        ];
+       jailbreak = true;
        homepage = "https://github.com/joelburget/react-haskell";
        description = "Haskell React bindings";
        license = stdenv.lib.licenses.mit;
@@ -113871,8 +113934,8 @@ self: {
      }:
      mkDerivation {
        pname = "reducers";
-       version = "3.11";
-       sha256 = "f8212e2adfeb1631f82da8bb4c4bbb6da2d79a558a2a5e80d3cc6d33f22b46bc";
+       version = "3.12";
+       sha256 = "00d61cc883c517f02a25d6bd754cea69b7e5bcfa041c1fb3b19b60ef6c12cad4";
        libraryHaskellDepends = [
          array base bytestring containers fingertree hashable semigroupoids
          semigroups text transformers unordered-containers
@@ -116025,8 +116088,8 @@ self: {
        pname = "rest-gen";
        version = "0.17.1.2";
        sha256 = "4aed5068ebdbac25a7c5a377904f64a6a48a83370985856258ca2c40d57a3516";
-       revision = "2";
-       editedCabalFile = "2b7d43435169be39d3976983cfc287cd39cc49a2ceefeca19937a21f7481e22c";
+       revision = "3";
+       editedCabalFile = "cae6f35e87d9cbf39e4b0ebbee24f9e1086a5b9c146a3ea2329d346ca97ddda2";
        libraryHaskellDepends = [
          aeson base blaze-html Cabal code-builder directory fclabels
          filepath hashable haskell-src-exts HStringTemplate hxt json-schema
@@ -120028,14 +120091,14 @@ self: {
 
   "semigroups" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, hashable
-     , nats, text, unordered-containers
+     , nats, tagged, text, unordered-containers
      }:
      mkDerivation {
        pname = "semigroups";
-       version = "0.16.2.2";
-       sha256 = "d17e3e42c8e2457286d5c583dad5d0df57678ce4dcf12acc8a7667e80bd8ed57";
+       version = "0.17.0.1";
+       sha256 = "7930dbd98e023df8485a928ff11e4bee95a002fd41253f14c4447ba34f74773f";
        libraryHaskellDepends = [
-         base bytestring containers deepseq hashable nats text
+         base bytestring containers deepseq hashable nats tagged text
          unordered-containers
        ];
        homepage = "http://github.com/ekmett/semigroups/";
@@ -121194,8 +121257,8 @@ self: {
      }:
      mkDerivation {
        pname = "settings";
-       version = "0.1.0.0";
-       sha256 = "17688b89f025d50f3ad00d140d83fb7c276fba1aeee75717881d8444187f18a9";
+       version = "0.1.0.1";
+       sha256 = "ef438645ade0155249ed6fe6c869b594642a562a5116a6a5cdae6172bbacc347";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring time-units unordered-containers
        ];
@@ -121605,10 +121668,8 @@ self: {
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.5";
-       sha256 = "f0ff00f9262f874512ce7624c45c0e9f6e90dd1c4bf9e81891f7e34f5faeb549";
-       revision = "1";
-       editedCabalFile = "c3cde3794b87e5f99500aac7199a66ad95985ba716170551fe40e82452a61ebc";
+       version = "2.0.6";
+       sha256 = "5c0ae56bb5c06a3f9d86279c93b2e760e923cd476e7dbaaa556a1cdb78ff97ce";
        libraryHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
          exceptions ghc-prim parsec process template-haskell text time
@@ -128309,6 +128370,19 @@ self: {
        license = "LGPL";
      }) {};
 
+  "stopwatch" = callPackage
+    ({ mkDerivation, base, clock, hspec, transformers }:
+     mkDerivation {
+       pname = "stopwatch";
+       version = "0.1.0";
+       sha256 = "17f488ef8e74a9dc4ad7e8a649abc386d010379a9b63f88d52638a078fbc16f6";
+       libraryHaskellDepends = [ base clock transformers ];
+       testHaskellDepends = [ base clock hspec ];
+       homepage = "https://github.com/debug-ito/stopwatch";
+       description = "A simple stopwatch utility";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "storable" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -128531,8 +128605,8 @@ self: {
     ({ mkDerivation, base, mmorph, mtl, transformers }:
      mkDerivation {
        pname = "streaming";
-       version = "0.1.0.16";
-       sha256 = "2030f69e744fe981c2ec4bdf620a596d234bc3174fc59fd23bbc899b5a577863";
+       version = "0.1.0.17";
+       sha256 = "577e8adf2fec1abc29dc06f7ddd15b2d8adc2fb015fbb4b27a2f35a1eca9bfc4";
        libraryHaskellDepends = [ base mmorph mtl transformers ];
        homepage = "https://github.com/michaelt/streaming";
        description = "a free monad transformer optimized for streaming applications";
@@ -128545,8 +128619,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-bytestring";
-       version = "0.1.0.5";
-       sha256 = "83ee0525ca41576058705cc448f952525afe2c0f3c93c50f327dc44091aea0a5";
+       version = "0.1.0.6";
+       sha256 = "64741cef68f724824b2ea143e62b68713872e5c834015d601331a54090ab0f99";
        libraryHaskellDepends = [
          base bytestring deepseq mmorph mtl streaming transformers
        ];
@@ -133311,24 +133385,24 @@ self: {
      }) {};
 
   "text-show" = callPackage
-    ({ mkDerivation, array, base, base-compat, base-orphans, bytestring
-     , bytestring-builder, containers, generic-deriving, ghc-prim, hspec
-     , integer-gmp, nats, QuickCheck, quickcheck-instances, semigroups
-     , tagged, template-haskell, text, transformers, transformers-compat
-     , void
+    ({ mkDerivation, array, base, base-compat, base-orphans, bifunctors
+     , bytestring, bytestring-builder, containers, generic-deriving
+     , ghc-prim, hspec, integer-gmp, nats, QuickCheck
+     , quickcheck-instances, semigroups, tagged, template-haskell, text
+     , transformers, transformers-compat, void
      }:
      mkDerivation {
        pname = "text-show";
-       version = "2";
-       sha256 = "5f64a35d1121c31a9166fd3910c865ad8f23e50edfc4b3733e63d4f415635694";
+       version = "2.1";
+       sha256 = "37c97fae47f7bd40c4a39ac007ba5cd6d627d154631fbbb85537e544656d0aa5";
        libraryHaskellDepends = [
          array base base-compat bytestring bytestring-builder containers
          generic-deriving ghc-prim integer-gmp nats semigroups tagged
          template-haskell text transformers void
        ];
        testHaskellDepends = [
-         array base base-compat base-orphans bytestring bytestring-builder
-         generic-deriving ghc-prim hspec nats QuickCheck
+         array base base-compat base-orphans bifunctors bytestring
+         bytestring-builder generic-deriving ghc-prim hspec nats QuickCheck
          quickcheck-instances tagged text transformers transformers-compat
          void
        ];
@@ -133362,6 +133436,7 @@ self: {
          template-haskell terminfo text-show th-orphans time transformers
          transformers-compat unix unordered-containers vector xhtml
        ];
+       jailbreak = true;
        homepage = "https://github.com/RyanGlScott/text-show-instances";
        description = "Additional instances for text-show";
        license = stdenv.lib.licenses.bsd3;
@@ -134010,6 +134085,7 @@ self: {
          base bifunctors QuickCheck tasty tasty-quickcheck transformers
          vector
        ];
+       jailbreak = true;
        homepage = "https://github.com/isomorphism/these";
        description = "An either-or-both data type, with corresponding hybrid error/writer monad transformer";
        license = stdenv.lib.licenses.bsd3;
@@ -139578,20 +139654,22 @@ self: {
 
   "uri-bytestring" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-builder, bytestring
-     , derive, HUnit, lens, QuickCheck, quickcheck-instances, tasty
-     , tasty-hunit, tasty-quickcheck
+     , derive, HUnit, lens, QuickCheck, quickcheck-instances, semigroups
+     , tasty, tasty-hunit, tasty-quickcheck
      }:
      mkDerivation {
        pname = "uri-bytestring";
-       version = "0.1.8";
-       sha256 = "d1655ca765206ab3f49a6374fe8bd2c6726990dd10814e4600df74c3d0f15dec";
+       version = "0.1.9";
+       sha256 = "0c0d7e384c53395821fc1d25294533db00bb8110399d1b6751937edeb4146089";
        libraryHaskellDepends = [
          attoparsec base blaze-builder bytestring
        ];
        testHaskellDepends = [
          attoparsec base blaze-builder bytestring derive HUnit lens
-         QuickCheck quickcheck-instances tasty tasty-hunit tasty-quickcheck
+         QuickCheck quickcheck-instances semigroups tasty tasty-hunit
+         tasty-quickcheck
        ];
+       jailbreak = true;
        homepage = "https://github.com/Soostone/uri-bytestring";
        description = "Haskell URI parsing as ByteStrings";
        license = stdenv.lib.licenses.bsd3;
@@ -141802,12 +141880,14 @@ self: {
      }) {};
 
   "void" = callPackage
-    ({ mkDerivation, base, ghc-prim, hashable, semigroups }:
+    ({ mkDerivation, base, deepseq, ghc-prim, hashable, semigroups }:
      mkDerivation {
        pname = "void";
-       version = "0.7";
-       sha256 = "981b85d19bb51c1ac60103b184b86061621e0b016d4db24dd965751b2bc96f47";
-       libraryHaskellDepends = [ base ghc-prim hashable semigroups ];
+       version = "0.7.1";
+       sha256 = "c9f0fd93680c029abb9654b5464be260652829961b18b7046f96a0df95e825f4";
+       libraryHaskellDepends = [
+         base deepseq ghc-prim hashable semigroups
+       ];
        homepage = "http://github.com/ekmett/void";
        description = "A Haskell 98 logically uninhabited data type";
        license = stdenv.lib.licenses.bsd3;
@@ -144684,8 +144764,8 @@ self: {
     ({ mkDerivation, base, hspec, vector }:
      mkDerivation {
        pname = "woot";
-       version = "0.0.0.3";
-       sha256 = "929d716863bc3194ec4ce10e9b40242ac0bf2c987102aa0a4a0e01ce128cf3de";
+       version = "0.0.0.4";
+       sha256 = "2d9412b9ac683cc6d28a33b133bb5542144a2d5688232dc328736cc5928112f5";
        libraryHaskellDepends = [ base vector ];
        testHaskellDepends = [ base hspec ];
        jailbreak = true;
@@ -149848,6 +149928,7 @@ self: {
        version = "0.1.2";
        sha256 = "37f9b003e202bf88fe8dcf5e7e4fd8eae1e373d8ad4135a4244b909744d40e06";
        libraryHaskellDepends = [ base semigroups ];
+       jailbreak = true;
        homepage = "https://github.com/phaazon/zero";
        description = "Semigroups with absorption";
        license = stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 635fc317b284..7ac30668d8fe 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -17,6 +17,7 @@ rec {
   doCheck = drv: overrideCabal drv (drv: { doCheck = true; });
   dontCheck = drv: overrideCabal drv (drv: { doCheck = false; });
 
+  doDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = drv.platforms or ["i686-linux" "x86_64-linux" "x86_64-darwin"]; });
   dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; });
 
   appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix
index bebacc878173..1faf913a2d63 100644
--- a/pkgs/development/interpreters/mujs/default.nix
+++ b/pkgs/development/interpreters/mujs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, clang }:
 
 stdenv.mkDerivation rec {
-  name = "mujs-2015-01-22";
+  name = "mujs-2015-09-15";
 
   src = fetchgit {
     url = git://git.ghostscript.com/mujs.git;
-    rev  = "c1ad1ba1e482e7d01743e3f4f9517572bebf99ac";
-    sha256 = "1713h82zzd189nb54ilpa8fj9xhinhn0jvmd3li4c2fwh6xfjpcy";
+    rev  = "17019d29e5494d4b0ae148a3043a940be78e3215";
+    sha256 = "07192f4va733dr3v4ywfaqhz21iyydjwm84ij7zafwjvfi5z2b38";
   };
 
   buildInputs = [ clang ];
diff --git a/pkgs/development/interpreters/python/3.5/default.nix b/pkgs/development/interpreters/python/3.5/default.nix
new file mode 100644
index 000000000000..d689fdeee4c2
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.5/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchurl
+, bzip2
+, db
+, gdbm
+, libX11, xproto
+, lzma
+, ncurses
+, openssl
+, readline
+, sqlite
+, tcl, tk
+, zlib
+, callPackage
+, self
+}:
+
+assert readline != null -> ncurses != null;
+
+with stdenv.lib;
+
+let
+  majorVersion = "3.5";
+  pythonVersion = majorVersion;
+  version = "${majorVersion}.0";
+  fullVersion = "${version}";
+
+  buildInputs = filter (p: p != null) [
+    zlib bzip2 lzma gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
+  ];
+in
+stdenv.mkDerivation {
+  name = "python3-${fullVersion}";
+  pythonVersion = majorVersion;
+  inherit majorVersion version;
+
+  src = fetchurl {
+    url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
+    sha256 = "14dywb94mci0kqbsji9riyyq8kx0h9ljdjjgxnkfrvm56hbammyn";
+  };
+
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
+
+  preConfigure = ''
+    for i in /usr /sw /opt /pkg; do	# improve purity
+      substituteInPlace ./setup.py --replace $i /no-such-path
+    done
+    ${optionalString stdenv.isDarwin ''
+       export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
+       export MACOSX_DEPLOYMENT_TARGET=10.6
+     ''}
+
+    configureFlagsArray=( --enable-shared --with-threads
+                          CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
+                          LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
+                          LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
+                        )
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  postInstall = ''
+    # needed for some packages, especially packages that backport functionality
+    # to 2.x from 3.x
+    for item in $out/lib/python${majorVersion}/test/*; do
+      if [[ "$item" != */test_support.py* ]]; then
+        rm -rf "$item"
+      else
+        echo $item
+      fi
+    done
+    touch $out/lib/python${majorVersion}/test/__init__.py
+
+    ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}"
+    paxmark E $out/bin/python${majorVersion}
+  '';
+
+  passthru = rec {
+    zlibSupport = zlib != null;
+    sqliteSupport = sqlite != null;
+    dbSupport = db != null;
+    readlineSupport = readline != null;
+    opensslSupport = openssl != null;
+    tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
+    libPrefix = "python${majorVersion}";
+    executable = "python${majorVersion}m";
+    buildEnv = callPackage ../wrapper.nix { python = self; };
+    isPy3 = true;
+    isPy35 = true;
+    is_py3k = true;  # deprecated
+    sitePackages = "lib/${libPrefix}/site-packages";
+    interpreter = "${self}/bin/${executable}";
+  };
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://python.org;
+    description = "A high-level dynamically-typed programming language";
+    longDescription = ''
+      Python is a remarkably powerful dynamic programming language that
+      is used in a wide variety of application domains. Some of its key
+      distinguishing features include: clear, readable syntax; strong
+      introspection capabilities; intuitive object orientation; natural
+      expression of procedural code; full modularity, supporting
+      hierarchical packages; exception-based error handling; and very
+      high level dynamic data types.
+    '';
+    license = stdenv.lib.licenses.psfl;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+    maintainers = with stdenv.lib.maintainers; [ simons chaoflow iElectric cstrahan ];
+  };
+}
diff --git a/pkgs/development/interpreters/python/3.5/setup-hook.sh b/pkgs/development/interpreters/python/3.5/setup-hook.sh
new file mode 100644
index 000000000000..2836ad7e8f56
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.5/setup-hook.sh
@@ -0,0 +1,15 @@
+addPythonPath() {
+    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python3.5/site-packages
+}
+
+toPythonPath() {
+    local paths="$1"
+    local result=
+    for i in $paths; do
+        p="$i/lib/python3.5/site-packages"
+        result="${result}${result:+:}$p"
+    done
+    echo $result
+}
+
+envHooks+=(addPythonPath)
diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix b/pkgs/development/interpreters/ruby/bundler-head.nix
index 0aa6e9f90ce1..a81f2f771bcb 100644
--- a/pkgs/development/interpreters/ruby/bundler-head.nix
+++ b/pkgs/development/interpreters/ruby/bundler-head.nix
@@ -10,7 +10,7 @@ buildRubyGem {
   };
   dontPatchShebangs = true;
   postInstall = ''
-    find $out -type f -perm /0100 | while read f; do
+    find $out -type f -perm -0100 | while read f; do
       substituteInPlace $f \
          --replace "/usr/bin/env" "${coreutils}/bin/env"
     done
diff --git a/pkgs/development/interpreters/ruby/bundler.nix b/pkgs/development/interpreters/ruby/bundler.nix
index 6dc01f9929c9..3789170f57fe 100644
--- a/pkgs/development/interpreters/ruby/bundler.nix
+++ b/pkgs/development/interpreters/ruby/bundler.nix
@@ -1,12 +1,12 @@
 { buildRubyGem, makeWrapper, ruby, coreutils }:
 
 buildRubyGem {
-  name = "bundler-1.10.5";
+  name = "bundler-1.10.6";
   namePrefix = "";
-  sha256 = "1zkxw6699bbmsamrij2lirscbh0j58p1p3bql22jsxvx34j6w5nc";
+  sha256 = "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv";
   dontPatchShebangs = true;
   postInstall = ''
-    find $out -type f -perm /0100 | while read f; do
+    find $out -type f -perm -0100 | while read f; do
       substituteInPlace $f \
          --replace "/usr/bin/env" "${coreutils}/bin/env"
     done
diff --git a/pkgs/development/interpreters/ruby/config.nix b/pkgs/development/interpreters/ruby/config.nix
index c03c0520d7ae..c4f3160d1602 100644
--- a/pkgs/development/interpreters/ruby/config.nix
+++ b/pkgs/development/interpreters/ruby/config.nix
@@ -1,6 +1,8 @@
 # Ruby >= 2.1.0 tries to download config.{guess,sub}
-fetchgit: fetchgit {
-  url = "git://git.sv.gnu.org/config.git";
+{ fetchFromSavannah }:
+
+fetchFromSavannah {
+  repo = "config";
   rev = "576c839acca0e082e536fd27568b90a446ce5b96";
   sha256 = "11bjngchjhj0qq0ppp8c37rfw0yhp230nvhs2jvlx15i9qbf56a0";
 }
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.0.nix b/pkgs/development/interpreters/ruby/ruby-2.1.0.nix
index 95ab84eedb8e..0fe9daa50e4d 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.1.0.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -13,7 +13,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_1_0.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.1.nix b/pkgs/development/interpreters/ruby/ruby-2.1.1.nix
index abd09c0f2768..8b2c04e853f8 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.1.1.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.1.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -13,7 +13,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_1_1.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.2.nix b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix
index 8612cd6bd439..2cad52cc56d2 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.1.2.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -13,7 +13,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_1_2.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.3.nix b/pkgs/development/interpreters/ruby/ruby-2.1.3.nix
index 1ba97daac04f..50cc3484730d 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.1.3.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.3.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -13,7 +13,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_1_3.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.6.nix b/pkgs/development/interpreters/ruby/ruby-2.1.6.nix
index c9016a338af2..0bf89de1d98c 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.1.6.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.6.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -7,13 +7,14 @@
 , libyaml, yamlSupport ? true
 , libffi, fiddleSupport ? true
 , ruby_2_1_6, autoreconfHook, bison, useRailsExpress ? true
+, libiconv, libobjc, libunwind
 }:
 
 let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_1_6.override { useRailsExpress = false; };
 in
 
@@ -47,7 +48,8 @@ stdenv.mkDerivation rec {
     # support is not enabled, so add readline to the build inputs if curses
     # support is disabled (if it's enabled, we already have it) and we're
     # running on darwin
-    ++ (op (!cursesSupport && stdenv.isDarwin) readline);
+    ++ (op (!cursesSupport && stdenv.isDarwin) readline)
+    ++ (ops stdenv.isDarwin [ libiconv libobjc libunwind ]);
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.2.0.nix b/pkgs/development/interpreters/ruby/ruby-2.2.0.nix
index e22e64681a3a..a29b74664001 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.2.0.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.2.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -14,7 +14,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_2_0.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/ruby-2.2.2.nix b/pkgs/development/interpreters/ruby/ruby-2.2.2.nix
index 9e015ce9d7b6..df40f674989e 100644
--- a/pkgs/development/interpreters/ruby/ruby-2.2.2.nix
+++ b/pkgs/development/interpreters/ruby/ruby-2.2.2.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
 , zlib, zlibSupport ? true
 , openssl, opensslSupport ? true
 , gdbm, gdbmSupport ? true
@@ -14,7 +14,7 @@ let
   op = stdenv.lib.optional;
   ops = stdenv.lib.optionals;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
-  config = import ./config.nix fetchgit;
+  config = import ./config.nix { inherit fetchFromSavannah; };
   baseruby = ruby_2_2_2.override { useRailsExpress = false; };
 in
 
diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems.nix
index 773a752ffef5..f4942b840919 100644
--- a/pkgs/development/interpreters/ruby/rubygems.nix
+++ b/pkgs/development/interpreters/ruby/rubygems.nix
@@ -1,4 +1,4 @@
-args : with args; 
+args @ { makeWrapper, ruby, ... }: with args;
 
 rec {
   name = "rubygems-" + version;
@@ -23,7 +23,7 @@ rec {
 
   /* doConfigure should be specified separately */
   phaseNames = ["doPatch" "doInstall"];
-      
+
   meta = {
     description = "Ruby gems package collection";
     longDescription = ''
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
new file mode 100644
index 000000000000..e819078f7868
--- /dev/null
+++ b/pkgs/development/libraries/CoinMP/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "CoinMP-${version}";
+  version = "1.7.6";
+
+  src = fetchurl {
+    url = "http://www.coin-or.org/download/source/CoinMP/${name}.tgz";
+    sha256 = "0gqi2vqkg35gazzzv8asnhihchnbjcd6bzjfzqhmj7wy1dw9iiw6";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://projects.coin-or.org/CoinMP/;
+    description = "COIN-OR lightweight API for COIN-OR libraries CLP, CBC, and CGL";
+    platforms = platforms.linux;
+    license = licenses.epl10;
+  };
+}
diff --git a/pkgs/development/libraries/audio/lvtk/default.nix b/pkgs/development/libraries/audio/lvtk/default.nix
index 6e2b9a31b304..401743ac517f 100644
--- a/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/pkgs/development/libraries/audio/lvtk/default.nix
@@ -9,10 +9,18 @@ stdenv.mkDerivation rec {
     sha256 = "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd";
   };
 
-  buildInputs = [ boost gtkmm lv2 pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig python ];
+  buildInputs = [ boost gtkmm lv2 ];
+
+  # Fix including the boost libraries during linking
+  postPatch = ''
+    sed -i '/target[ ]*= "ttl2c"/ ilib=["boost_system"],' tools/wscript_build
+  '';
 
   configurePhase = ''
-    python waf configure --prefix=$out --boost-includes="${boost.dev}/include"
+    python waf configure --prefix=$out \
+      --boost-includes="${boost.dev}/include" \
+      --boost-libs="${boost.lib}/lib"
   '';
 
   buildPhase = "python waf";
diff --git a/pkgs/development/libraries/boost/1.59.nix b/pkgs/development/libraries/boost/1.59.nix
new file mode 100644
index 000000000000..2666b1d6c5d2
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.59.nix
@@ -0,0 +1,40 @@
+{ stdenv, callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.59.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_59_0.tar.bz2";
+    sha256 = "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj";
+  };
+
+  patches = if stdenv.isCygwin then [
+      ./cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
+      ./cygwin-fedora-boost-1.50.0-pool.patch
+      ./cygwin-fedora-boost-1.57.0-mpl-print.patch
+      ./cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
+      ./cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
+      ./cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
+      ./cygwin-fedora-boost-1.57.0-pool-test_linking.patch
+      ./cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
+      ./cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
+      ./cygwin-fedora-boost-1.57.0-uuid-comparison.patch
+      ./cygwin-fedora-boost-1.57.0-move-is_class.patch
+      ./cygwin-1.40.0-cstdint-cygwin.patch
+      ./cygwin-1.57.0-asio-cygwin.patch
+      ./cygwin-1.55.0-asio-MSG_EOR.patch
+      ./cygwin-1.57.0-config-cygwin.patch
+      ./cygwin-1.57.0-context-cygwin.patch
+      ./cygwin-1.57.0-filesystem-cygwin.patch
+      ./cygwin-1.55.0-interlocked-cygwin.patch
+      ./cygwin-1.40.0-iostreams-cygwin.patch
+      ./cygwin-1.57.0-locale-cygwin.patch
+      ./cygwin-1.57.0-log-cygwin.patch
+      ./cygwin-1.40.0-python-cygwin.patch
+      ./cygwin-1.40.0-regex-cygwin.patch
+      ./cygwin-1.57.0-smart_ptr-cygwin.patch
+      ./cygwin-1.57.0-system-cygwin.patch
+      ./cygwin-1.45.0-jam-cygwin.patch
+      ./cygwin-1.50.0-jam-pep3149.patch
+    ] else null;
+})
diff --git a/pkgs/development/libraries/box2d/default.nix b/pkgs/development/libraries/box2d/default.nix
index 74875e41783f..10a7ca549521 100644
--- a/pkgs/development/libraries/box2d/default.nix
+++ b/pkgs/development/libraries/box2d/default.nix
@@ -3,9 +3,9 @@ x@{builderDefsPackage
   , inputproto, libXi, fetchsvn, pkgconfig
   , ...}:
 builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+(a :
+let
+  helperArgNames = ["stdenv" "fetchsvn" "builderDefsPackage"] ++
     [];
 
   buildInputs = map (n: builtins.getAttr n x)
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 0cea9413baef..5ca5fe638eff 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -2,19 +2,18 @@
 , google-gflags, python, libiberty, openssl }:
 
 stdenv.mkDerivation rec {
-  version = "0.52.0";
+  version = "0.57.0";
   name = "folly-${version}";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "16g3hpy1gy56zqnhwzkvzzpm6dgm01qa9yaigmrqr9b59c3k6cqf";
+    sha256 = "12b9bkwmndfwmsknc209kpplxn9wqmwr3p2h0l2szrppq4qqyfq9";
   };
 
-  buildInputs = [ libiberty boost.lib libevent double_conversion glog google-gflags openssl ];
-
-  nativeBuildInputs = [ autoreconfHook python boost ];
+  nativeBuildInputs = [ autoreconfHook python ];
+  buildInputs = [ libiberty boost libevent double_conversion glog google-gflags openssl ];
 
   postUnpack = "sourceRoot=\${sourceRoot}/folly";
   preBuild = ''
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index d1695f295fcb..d63a1bb75726 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -10,11 +10,11 @@ composableDerivation.composableDerivation {} rec {
     # (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else [])
     # // edf { name = "ruby"; enable = { buildInputs = [ ruby ]; };}
 
-  name = "geos-3.4.2";
+  name = "geos-3.5.0";
 
   src = fetchurl {
     url = "http://download.osgeo.org/geos/${name}.tar.bz2";
-    sha256 = "0lvcs8x9as5jlxilykgg3i4220x8m4z59b2ngfapl219gvgvzs0m";
+    sha256 = "49982b23bcfa64a53333dab136b82e25354edeb806e5a2e2f5b8aa98b1d0ae02";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index a56795a4c15e..874c767046b2 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libiconv, xz }:
 
 stdenv.mkDerivation (rec {
-  name = "gettext-0.19.5.1";
+  name = "gettext-0.19.6";
 
   src = fetchurl {
     url = "mirror://gnu/gettext/${name}.tar.gz";
-    sha256 = "0cbp498ckjwj7qr8b9pmkry8hkhldgkvg5yix8hi9c8z1hxxb651";
+    sha256 = "0pb9vp4ifymvdmc31ks3xxcnfqgzj8shll39czmk8c1splclqjzd";
   };
 
   outputs = [ "out" "doc" ];
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index d21cc0ddd0aa..e674aae2b58a 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnu-efi-${version}";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnu-efi/${name}.tar.bz2";
-    sha256 = "1mxl6xarwickhssn0nc5hyvayyf2cjh5p10l37jd1ymirl75hjqr";
+    sha256 = "1jxlypkgb8bd1c114x96i699ib0glb5aca9dv56j377x2ldg4c65";
   };
 
   buildInputs = [ pciutils ];
diff --git a/pkgs/development/libraries/gnutls/3.3.nix b/pkgs/development/libraries/gnutls/3.3.nix
index 1359980e19dd..c314da388dce 100644
--- a/pkgs/development/libraries/gnutls/3.3.nix
+++ b/pkgs/development/libraries/gnutls/3.3.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
-  version = "3.3.17";
+  version = "3.3.18";
 
   src = fetchurl {
-    url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-${version}.tar.lz";
-    sha256 = "00zrwqvy054fymb6j04xfr583javfjxsid2rbmyk63qrbqzm61v7";
+    url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-${version}.tar.xz";
+    sha256 = "15ckyblhkap3d4sqw0dc9l8wdrnd2aj1fs9m0w0a3bfihvsfg1vs";
   };
 })
diff --git a/pkgs/development/libraries/gnutls/3.4.nix b/pkgs/development/libraries/gnutls/3.4.nix
index debdfadcf348..acd164de0247 100644
--- a/pkgs/development/libraries/gnutls/3.4.nix
+++ b/pkgs/development/libraries/gnutls/3.4.nix
@@ -1,11 +1,11 @@
 { callPackage, fetchurl, autoreconfHook, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
-  version = "3.4.4";
+  version = "3.4.5";
 
   src = fetchurl {
-    url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-${version}.tar.lz";
-    sha256 = "17xazr0fdhlkr13bwiy52xq6z6mssml7q1ydyj8s1hwh68703c75";
+    url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-${version}.tar.xz";
+    sha256 = "1bks1zpmhmnkz2v32dd9b44pz6x0a5w4yi9zzwsd0a078vhbi25g";
   };
 
   # This fixes some broken parallel dependencies
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 6ec5e5d9e0a5..7d349f31e044 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -13,8 +13,6 @@ rec {
 
   gst-libav = callPackage ./libav { inherit gst-plugins-base; };
 
-  gst-python = callPackage ./python { inherit gst-plugins-base gstreamer; };
-
   gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; };
 
   gst-editing-services = callPackage ./ges { inherit gnonlin; };
diff --git a/pkgs/development/libraries/gstreamer/python/default.nix b/pkgs/development/libraries/gstreamer/python/default.nix
index a91b5d81bb32..c1b94a647b88 100644
--- a/pkgs/development/libraries/gstreamer/python/default.nix
+++ b/pkgs/development/libraries/gstreamer/python/default.nix
@@ -1,5 +1,6 @@
-{ fetchurl, stdenv, pkgconfig, python, gstreamer
-  , gst-plugins-base, pygtk, pygobject3
+{ fetchurl, stdenv, pkgconfig, python
+, gst-plugins-base, pygobject3
+, ncurses
 }:
 
 stdenv.mkDerivation rec {
@@ -15,15 +16,16 @@ stdenv.mkDerivation rec {
 
   patches = [ ./different-path-with-pygobject.patch ];
 
-  buildInputs =
-    [ pkgconfig gst-plugins-base pygtk pygobject3 ]
-    ;
+  nativeBuildInputs = [ pkgconfig python ];
+
+  # XXX: in the Libs.private field of python3.pc
+  buildInputs = [ ncurses ];
 
   preConfigure = ''
     export configureFlags="$configureFlags --with-pygi-overrides-dir=$out/lib/${python.libPrefix}/site-packages/gi/overrides"
   '';
 
-  propagatedBuildInputs = [ gstreamer python ];
+  propagatedBuildInputs = [ gst-plugins-base pygobject3 ];
 
   meta = {
     homepage = http://gstreamer.freedesktop.org;
diff --git a/pkgs/development/libraries/kde-frameworks-5.10/dependencies.sh b/pkgs/development/libraries/kde-frameworks-5.10/dependencies.sh
index 2b220244c596..6122ddf4b3a6 100755
--- a/pkgs/development/libraries/kde-frameworks-5.10/dependencies.sh
+++ b/pkgs/development/libraries/kde-frameworks-5.10/dependencies.sh
@@ -14,7 +14,7 @@ manifestXML=$(nix-build -E 'with (import ../../../.. {}); autonix.writeManifestX
 
 autonixDepsKf5=""
 if [[ -z $1 ]]; then
-    autonixDepsKF5=$(nix-build ../../../.. -A haskellngPackages.autonix-deps-kf5)/bin
+    autonixDepsKF5=$(nix-build ../../../.. -A haskellPackages.autonix-deps-kf5)/bin
 else
     autonixDepsKF5="$1/dist/build/kf5-deps"
 fi
diff --git a/pkgs/development/libraries/kde-frameworks-5.10/packages.sh b/pkgs/development/libraries/kde-frameworks-5.10/packages.sh
index 6889773a55ec..9d226db2c043 100755
--- a/pkgs/development/libraries/kde-frameworks-5.10/packages.sh
+++ b/pkgs/development/libraries/kde-frameworks-5.10/packages.sh
@@ -15,7 +15,7 @@ $(nix-build -A autonix.manifest) \
     "${KDE_MIRROR}/stable/frameworks/5.10/" \
     "$@" -A '*.tar.xz'
 
-AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellngPackages.autonix-deps-kf5)/bin/kf5-deps"}
+AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellPackages.autonix-deps-kf5)/bin/kf5-deps"}
 
 $AUTONIX_DEPS_KF5 manifest.json
 
diff --git a/pkgs/development/libraries/kde-frameworks-5.12/dependencies.sh b/pkgs/development/libraries/kde-frameworks-5.12/dependencies.sh
index 2b220244c596..6122ddf4b3a6 100755
--- a/pkgs/development/libraries/kde-frameworks-5.12/dependencies.sh
+++ b/pkgs/development/libraries/kde-frameworks-5.12/dependencies.sh
@@ -14,7 +14,7 @@ manifestXML=$(nix-build -E 'with (import ../../../.. {}); autonix.writeManifestX
 
 autonixDepsKf5=""
 if [[ -z $1 ]]; then
-    autonixDepsKF5=$(nix-build ../../../.. -A haskellngPackages.autonix-deps-kf5)/bin
+    autonixDepsKF5=$(nix-build ../../../.. -A haskellPackages.autonix-deps-kf5)/bin
 else
     autonixDepsKF5="$1/dist/build/kf5-deps"
 fi
diff --git a/pkgs/development/libraries/kde-frameworks-5.12/packages.sh b/pkgs/development/libraries/kde-frameworks-5.12/packages.sh
index 7cce2d05fc96..b859a87f32f9 100755
--- a/pkgs/development/libraries/kde-frameworks-5.12/packages.sh
+++ b/pkgs/development/libraries/kde-frameworks-5.12/packages.sh
@@ -15,7 +15,7 @@ $(nix-build -A autonix.manifest) \
     "${KDE_MIRROR}/stable/frameworks/5.12/" \
     "$@" -A '*.tar.xz'
 
-AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellngPackages.autonix-deps-kf5)/bin/kf5-deps"}
+AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellPackages.autonix-deps-kf5)/bin/kf5-deps"}
 
 $AUTONIX_DEPS_KF5 manifest.json
 
diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix
index 98907da3e421..e5db8a103f62 100644
--- a/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/pkgs/development/libraries/kerberos/heimdal.nix
@@ -11,13 +11,13 @@ let
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "${type}heimdal-2015-06-17";
+  name = "${type}heimdal-2015-09-13";
 
   src = fetchFromGitHub {
     owner = "heimdal";
     repo = "heimdal";
-    rev = "be63a2914adcbea7d42d56e674ee6edb4883ebaf";
-    sha256 = "147gv49gmy94y6f0x1vx523qni0frgcp3r7fill0r06rkfgfzc0j";
+    rev = "c81572ab5dcee3062e715b9e25ca7a20f6ec456b";
+    sha256 = "1r60i4v6y5lpll0l2qpn0ycp6q6f1xjg7k1csi547zls8k96yk9s";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig python perl yacc flex ]
diff --git a/pkgs/development/libraries/ldns/default.nix b/pkgs/development/libraries/ldns/default.nix
index b4dbbf792efa..b1f81549ef0c 100644
--- a/pkgs/development/libraries/ldns/default.nix
+++ b/pkgs/development/libraries/ldns/default.nix
@@ -8,11 +8,14 @@ stdenv.mkDerivation rec {
     sha256 = "1kf8pkwhcssvgzhh6ha1pjjiziwvwmfaali7kaafh6118mcy124b";
   };
 
-  patchPhase = ''
-    sed -i 's,\$(srcdir)/doc/doxyparse.pl,perl $(srcdir)/doc/doxyparse.pl,' Makefile.in
+  patches = [ ./perl-5.22-compat.patch ];
+
+  postPatch = ''
+    patchShebangs doc/doxyparse.pl
   '';
 
-  buildInputs = [ openssl perl ];
+  nativeBuildInputs = [ perl ];
+  buildInputs = [ openssl ];
 
   configureFlags = [ "--with-ssl=${openssl}" "--with-drill" ];
 
diff --git a/pkgs/development/libraries/ldns/perl-5.22-compat.patch b/pkgs/development/libraries/ldns/perl-5.22-compat.patch
new file mode 100644
index 000000000000..ddf711cef5d8
--- /dev/null
+++ b/pkgs/development/libraries/ldns/perl-5.22-compat.patch
@@ -0,0 +1,12 @@
+diff -Naur old/doc/doxyparse.pl new/doc/doxyparse.pl
+--- old/doc/doxyparse.pl	2014-01-11 06:04:41.000000000 +0900
++++ new/doc/doxyparse.pl	2015-08-08 22:29:34.216889652 +0900
+@@ -273,7 +273,7 @@
+ 
+ 	print MAN $MAN_MIDDLE;
+ 
+-	if (defined(@$also)) {
++	if (@$also) {
+ 		print MAN "\n.SH SEE ALSO\n\\fI";
+ 		print MAN join "\\fR, \\fI", @$also;
+ 		print MAN "\\fR.\nAnd ";
diff --git a/pkgs/development/libraries/lesstif/default.nix b/pkgs/development/libraries/lesstif/default.nix
index f5c959bba7ac..67263d5ff5ed 100644
--- a/pkgs/development/libraries/lesstif/default.nix
+++ b/pkgs/development/libraries/lesstif/default.nix
@@ -1,16 +1,15 @@
 {stdenv, fetchurl, xlibsWrapper, libXp, libXau}:
 
-stdenv.mkDerivation {
-  name = "lesstif-0.95.0-p2";
+stdenv.mkDerivation rec {
+  name = "lesstif-0.95.2";
   src = fetchurl {
-    url = mirror://sourceforge/lesstif/lesstif-0.95.2.tar.bz2;
+    url = "mirror://sourceforge/lesstif/${name}.tar.bz2";
     sha256 = "1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb";
   };
   buildInputs = [xlibsWrapper];
   propagatedBuildInputs = [libXp libXau];
 
-  # The last stable release of lesstif was in June 2006. These
-  # patches fix a number of later issues - in particular the 
+  # These patches fix a number of later issues - in particular the
   # render_table_crash shows up in 'arb'. The same patches appear
   # in Debian, so we assume they have been sent upstream.
   #
diff --git a/pkgs/development/libraries/libabw/default.nix b/pkgs/development/libraries/libabw/default.nix
new file mode 100644
index 000000000000..42abb3d297cb
--- /dev/null
+++ b/pkgs/development/libraries/libabw/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, boost, doxygen, gperf, pkgconfig, librevenge, libxml2, perl }:
+
+stdenv.mkDerivation rec {
+  name = "libabw-${version}";
+  version = "0.1.1";
+
+  src = fetchurl {
+    url = "http://dev-www.libreoffice.org/src/libabw/${name}.tar.xz";
+    sha256 = "0zi1zj4fpxgpglbbb5n1kg3dmhqq5rpf46lli89r5daavp19iing";
+  };
+
+  # Boost 1.59 compatability fix
+  # Attempt removing when updating
+  postPatch = ''
+    sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
+  '';
+
+  buildInputs = [ boost doxygen gperf pkgconfig librevenge libxml2 perl ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.documentfoundation.org/DLP/Libraries/libabw;
+    description = "Library parsing abiword documents";
+    platforms = platforms.linux;
+    license = licenses.mpl20;
+  };
+}
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 90318e3e9917..670484f0ae61 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -1,17 +1,23 @@
 { stdenv, fetchurl, libwpg, libwpd, lcms, pkgconfig, librevenge, icu, boost }:
 
 stdenv.mkDerivation rec {
-  name = "libcdr-0.1.0";
+  name = "libcdr-0.1.1";
 
   src = fetchurl {
     url = "http://dev-www.libreoffice.org/src/${name}.tar.bz2";
-    sha256 = "1l4glkyyxhzqq6j9n9cc01sf1q7xx8dd97cl3bwj8w4fp06ihv7g";
+    sha256 = "0javd72wmaqd6vprsh3clm393b3idjdjzbb7vyn44li7yaxppzkj";
   };
 
   buildInputs = [ libwpg libwpd lcms librevenge icu boost ];
 
   nativeBuildInputs = [ pkgconfig ];
 
+  # Boost 1.59 compatability fix
+  # Attempt removing when updating
+  postPatch = ''
+    sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
+  '';
+
   configureFlags = if stdenv.cc.isClang
     then [ "--disable-werror" ] else null;
 
diff --git a/pkgs/development/libraries/libcmis/default.nix b/pkgs/development/libraries/libcmis/default.nix
new file mode 100644
index 000000000000..5535623298af
--- /dev/null
+++ b/pkgs/development/libraries/libcmis/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, boost, libxml2, pkgconfig, curl }:
+
+stdenv.mkDerivation rec {
+  name = "libcmis-${version}";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libcmis/${name}.tar.gz";
+    sha256 = "1dprvk4fibylv24l7gr49gfqbkfgmxynvgssvdcycgpf7n8h4zm8";
+  };
+
+  buildInputs = [ boost libxml2 pkgconfig curl ];
+  configureFlags = "--without-man --with-boost=${boost.dev} --disable-werror --disable-tests";
+
+  # Cppcheck cannot find all the include files (use --check-config for details)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "C++ client library for the CMIS interface";
+    homepage = https://sourceforge.net/projects/libcmis/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libe-book/default.nix b/pkgs/development/libraries/libe-book/default.nix
index fa47c1587c32..02195dede936 100644
--- a/pkgs/development/libraries/libe-book/default.nix
+++ b/pkgs/development/libraries/libe-book/default.nix
@@ -15,10 +15,16 @@ let
   buildInputs = [
     gperf pkgconfig librevenge libxml2 boost icu cppunit zlib
   ];
+
+  # Boost 1.59 compatability fix
+  # Attempt removing when updating
+  postPatch = ''
+    sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
+  '';
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  inherit buildInputs postPatch;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 37537816104a..cc23d47e2bf2 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
     sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la
   '';
 
+  # TODO: figure out why this is even necessary and why the missing dylib only crashes
+  # random instead of every test
+  preCheck = stdenv.lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/lib
+    cp src/.libs/libgcrypt.20.dylib $out/lib
+  '';
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/libraries/libhangul/default.nix b/pkgs/development/libraries/libhangul/default.nix
new file mode 100644
index 000000000000..79fc973731a6
--- /dev/null
+++ b/pkgs/development/libraries/libhangul/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "libhangul-0.1.0";
+
+  src = fetchurl {
+    url = "https://libhangul.googlecode.com/files/libhangul-0.1.0.tar.gz";
+    sha256 = "0ni9b0v70wkm0116na7ghv03pgxsfpfszhgyj3hld3bxamfal1ar";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Core algorithm library for Korean input routines";
+    homepage = https://code.google.com/p/libhangul;
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.ianwookim ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 4a4159bfdc72..df692f76a2af 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libmnl }:
 
 stdenv.mkDerivation rec {
-  name = "libnftnl-1.0.3";
+  name = "libnftnl-1.0.5";
 
   src = fetchurl {
     url = "netfilter.org/projects/libnftnl/files/${name}.tar.bz2";
-    sha256 = "1xr7gis51z9r96s5m5z3dw3f5jx2m1qb7mpvl69631m6nvmff2ng";
+    sha256 = "15z4kcsklbvy94d24p2r0avyhc2rsvygjqr3gyccg2z30akzbm7n";
   };
 
   buildInputs = [ pkgconfig libmnl ];
diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix
index 334c5558e2b1..ec2611e2ac99 100644
--- a/pkgs/development/libraries/libpsl/default.nix
+++ b/pkgs/development/libraries/libpsl/default.nix
@@ -5,21 +5,21 @@ let
 
   version = "${libVersion}-list-${listVersion}";
 
-  listVersion = "2015-09-07";
+  listVersion = "2015-09-15";
   listSources = fetchFromGitHub {
-    sha256 = "0inpdixg967ibi5f41jq15l6r027lj2y5q0ymlfrp9b29gfay50n";
-    rev = "ee621394b6d863dcc2ff89956d91cdd7d15d8c9d";
+    sha256 = "1rrds3bsnxb2n2ifl0zg6mh1h8nd3h1ba4bz0dznrrlqzfbav0l2";
+    rev = "4f89204a24e99d8a65353cc62d5bc4dea1b2ae31";
     repo = "list";
     owner = "publicsuffix";
   };
 
-  libVersion = "0.8.0";
+  libVersion = "0.9.0";
 
 in stdenv.mkDerivation {
   name = "libpsl-${version}";
 
   src = fetchFromGitHub {
-    sha256 = "0mjnj36igk6w3c0d4k2fqqg1kl6bpnxfrcgcgz1zdw33gfa5gdi7";
+    sha256 = "01vmlmm75jdpfmd546z1yib92nmdqdlqv19ax379p3ys6kgap1sw";
     rev = "libpsl-${libVersion}";
     repo = "libpsl";
     owner = "rockdaboot";
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index a56d4ead823c..8d9743a880f1 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libressl-${version}";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url    = "mirror://openbsd/LibreSSL/${name}.tar.gz";
-    sha256 = "0551i4jbs81ark3jy6nycqpyqn7rg30nvcdjvdg58s6l6fgv1570";
+    sha256 = "10nq2rpyzgl7xhdip9mmn7hzb6hcjffbjcb04jchxmlivwdc5k51";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index b35432361581..fa90c76b24af 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation {
   configureFlags = if stdenv.cc.isClang
     then [ "--disable-werror" ] else null;
 
+  # Fix an issue with boost 1.59
+  # This is fixed upstream so please remove this when updating
+  postPatch = ''
+    sed -i 's,-DLIBREVENGE_BUILD,\0 -DBOOST_ERROR_CODE_HEADER_ONLY,g' src/lib/Makefile.in
+  '';
+
   meta = {
     inherit (s) version;
     description = ''A base library for writing document import filters'';
diff --git a/pkgs/development/libraries/libs3/default.nix b/pkgs/development/libraries/libs3/default.nix
index f5c4683e7308..2d8b2a3b5f15 100644
--- a/pkgs/development/libraries/libs3/default.nix
+++ b/pkgs/development/libraries/libs3/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation {
     homepage = https://github.com/bji/libs3;
     description = "A library for interfacing with amazon s3";
     license = licenses.lgpl3;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index 2ae5a79b9586..1ae26c48fc21 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "libtasn1-4.5";
+  name = "libtasn1-4.7";
 
   src = fetchurl {
     url = "mirror://gnu/libtasn1/${name}.tar.gz";
-    sha256 = "1nhvnznhg2aqfrfjxc8v008hjlzkh5831jsfahqk89qrw7fbbcw9";
+    sha256 = "1j8iixynchziw1y39lnibyl5h81m4p78w3i4f28q2vgwjgf801x4";
   };
 
   buildInputs = [ perl texinfo ];
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 25f6cf5b6b7b..692fab9f6544 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, zlib, libjpeg, xz }:
 
 let
-  version = "4.0.4beta";
+  version = "4.0.5";
 in
 stdenv.mkDerivation rec {
   name = "libtiff-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       [ "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${version}.tar.gz"
         "http://download.osgeo.org/libtiff/tiff-${version}.tar.gz"
       ];
-    sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa";
+    sha256 = "171hgy4mylwmvdm7gp6ffjva81m4j56v3fbqsbfl7avzxn1slpp2";
   };
 
   outputs = [ "out" "doc" "man" ];
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index ecaa643b143f..3fc8b5085590 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, xz }:
+{ stdenv, fetchurl, fetchpatch, xz }:
 
 stdenv.mkDerivation rec {
   name = "libunwind-1.1";
@@ -8,7 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx";
   };
 
-  patches = [ ./libunwind-1.1-lzma.patch ./cve-2015-3239.patch ];
+  patches = [ ./libunwind-1.1-lzma.patch ./cve-2015-3239.patch
+              # https://lists.nongnu.org/archive/html/libunwind-devel/2014-04/msg00000.html
+              (fetchpatch {
+                url = "https://raw.githubusercontent.com/dropbox/pyston/1b2e676417b0f5f17526ece0ed840aa88c744145/libunwind_patches/0001-Change-the-RBP-validation-heuristic-to-allow-size-0-.patch";
+                sha256 = "1a0fsgfxmgd218nscswx7pgyb7rcn2gh6566252xhfvzhgn5i4ha";
+              })
+            ];
 
   postPatch = ''
     sed -i -e '/LIBLZMA/s:-lzma:-llzma:' configure
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
index d03fabcc653f..bda14d729476 100644
--- a/pkgs/development/libraries/libvisio/default.nix
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -3,17 +3,26 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libvisio-0.1.0";
+  name = "libvisio-0.1.3";
 
   src = fetchurl {
     url = "http://dev-www.libreoffice.org/src/${name}.tar.bz2";
-    sha256 = "1vpb7nbk5qh6w3jz9rl9w8p25invcvj46parb9ld13h9777kyf0j";
+    sha256 = "1blgdwxprqkasm2175imcvy647sqv6xyf3k09p0b1i7hlq889wvy";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost libwpd libwpg zlib gperf librevenge libxml2 icu perl ];
 
-  configureFlags = "--disable-werror";
+  # Boost 1.59 compatability fix
+  # Attempt removing when updating
+  postPatch = ''
+    sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
+  '';
+
+  configureFlags = [
+    "--disable-werror"
+    "--disable-tests"
+  ];
 
   meta = {
     description = "A library providing ability to interpret and import visio diagrams into various applications";
diff --git a/pkgs/development/libraries/libwps/default.nix b/pkgs/development/libraries/libwps/default.nix
new file mode 100644
index 000000000000..e17540e96a43
--- /dev/null
+++ b/pkgs/development/libraries/libwps/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, boost, pkgconfig, librevenge, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "libwps-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libwps/${name}.tar.gz";
+    sha256 = "0nc44ia5sn9mmhkq5hjacz0vm520wldq03whc5psgcb9dahvsjsc";
+  };
+
+  buildInputs = [ boost pkgconfig librevenge zlib ];
+
+  meta = with stdenv.lib; {
+    homepage = http://libwps.sourceforge.net/;
+    description = "Microsoft Works file word processor format import filter library";
+    platforms = platforms.linux;
+    license = licenses.lgpl21;
+  };
+}
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 2af843346c65..96dad654de8e 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -22,7 +22,7 @@ else
 */
 
 let
-  version = "10.6.5";
+  version = "10.6.7";
   # this is the default search path for DRI drivers
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
       "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "fb6fac3c85bcfa9d06b8dd439169f23f0c0924a88e44362e738b99b1feff762f";
+    sha256 = "feb1f640b915dada88a7c793dfaff0ae23580f8903f87a6b76469253de0d28d8";
   };
 
   prePatch = "patchShebangs .";
diff --git a/pkgs/development/libraries/ncbi/default.nix b/pkgs/development/libraries/ncbi/default.nix
index a74cd81854e1..88f6740f7334 100644
--- a/pkgs/development/libraries/ncbi/default.nix
+++ b/pkgs/development/libraries/ncbi/default.nix
@@ -1,11 +1,11 @@
-a :  
-let 
+a @ { tcsh, mesa, lesstif, libX11, libXaw, xproto, libXt, libSM, libICE, libXmu, libXext, ... }:
+let
   fetchurl = a.fetchurl;
 
-  version = "20090809"; 
+  version = "20090809";
   buildInputs = with a; [
-    tcsh libX11 libXaw lesstif xproto mesa libXt 
-    libSM libICE libXmu libXext 
+    tcsh libX11 libXaw lesstif xproto mesa libXt
+    libSM libICE libXmu libXext
   ];
 in
 rec {
@@ -40,7 +40,7 @@ rec {
     cp ../make/makedis.csh $out/share/${name}/build-snapshot
     cp *.h $out/include 
     cp *.c *.h $out/source
-    find . -perm +111 -a '(' '(' ! -name '*.*' ')' -o '(' -name '*.REAL' ')' ')' -exec cp '{}' $out/bin ';'
+    find . -perm -0100 -a '(' '(' ! -name '*.*' ')' -o '(' -name '*.REAL' ')' ')' -exec cp '{}' $out/bin ';'
   '') ["defEnsureDir" "build" "minInit"];
       
   name = "NCBI-Toolbox-" + version;
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index eed77b9113a4..4a58ae43bb7a 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -1,8 +1,19 @@
-{ lib, stdenv, fetchurl, cmake, gtk, libjpeg, libpng, libtiff, jasper, ffmpeg
+{ lib, stdenv, fetchurl, fetchzip, cmake, gtk, libjpeg, libpng, libtiff, jasper, ffmpeg
 , fetchpatch, pkgconfig, gstreamer, xineLib, glib, python27, python27Packages, unzip
+, enableIpp ? false
+, enableContrib ? false
 , enableBloat ? false }:
 
-let v = "3.0.0"; in
+let
+  v = "3.0.0";
+
+  contribSrc = fetchzip {
+    url = "https://github.com/Itseez/opencv_contrib/archive/3.0.0.tar.gz";
+    sha256 = "1gx7f9v85hmzh37s0zaillg7bs6cy9prm3wl0jb5zc5zrf9d8bm8";
+    name = "opencv-contrib-3.0.0-src";
+  };
+
+in
 
 stdenv.mkDerivation rec {
   name = "opencv-${v}";
@@ -12,15 +23,29 @@ stdenv.mkDerivation rec {
     sha256 = "00dh7wvgkflz22liqd10fma8m3395lb3l3rgawnn5wlnz6i4w287";
   };
 
+  postPatch =
+    let ippicv = fetchurl {
+          url = "http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/${ippicvName}";
+          md5 = ippicvHash;
+        };
+        ippicvName    = "ippicv_linux_20141027.tgz";
+        ippicvHash    = "8b449a536a2157bcad08a2b9f266828b";
+        ippicvArchive = "3rdparty/ippicv/downloads/linux-${ippicvHash}/${ippicvName}";
+    in stdenv.lib.optionalString enableIpp
+      ''
+        mkdir -p $(dirname ${ippicvArchive})
+        ln -s ${ippicv}    ${ippicvArchive}
+      '';
+
   buildInputs =
     [ unzip libjpeg libpng libtiff ]
     ++ lib.optionals enableBloat [ gtk glib jasper ffmpeg xineLib gstreamer python27 python27Packages.numpy ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  # TODO: Pre-download IPP so that OpenCV doesn't try to download it itself
-  # (which fails).
-  cmakeFlags = [ "-DWITH_IPP=OFF" ];
+  cmakeFlags = [
+    "-DWITH_IPP=${if enableIpp then "ON" else "OFF"}"
+  ] ++ stdenv.lib.optionals enableContrib [ "-DOPENCV_EXTRA_MODULES_PATH=${contribSrc}/modules" ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/openldap/CVE-2015-6908.patch b/pkgs/development/libraries/openldap/CVE-2015-6908.patch
new file mode 100644
index 000000000000..5db36629475f
--- /dev/null
+++ b/pkgs/development/libraries/openldap/CVE-2015-6908.patch
@@ -0,0 +1,25 @@
+From 6fe51a9ab04fd28bbc171da3cf12f1c1040d6629 Mon Sep 17 00:00:00 2001
+From: Howard Chu <hyc@openldap.org>
+Date: Thu, 10 Sep 2015 00:37:32 +0100
+Subject: [PATCH] ITS#8240 remove obsolete assert
+
+---
+ libraries/liblber/io.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libraries/liblber/io.c b/libraries/liblber/io.c
+index 85c3e23..c05dcf8 100644
+--- a/libraries/liblber/io.c
++++ b/libraries/liblber/io.c
+@@ -679,7 +679,7 @@ done:
+ 		return (ber->ber_tag);
+ 	}
+ 
+-	assert( 0 ); /* ber structure is messed up ?*/
++	/* invalid input */
+ 	return LBER_DEFAULT;
+ }
+ 
+-- 
+1.7.10.4
+
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index 83c65048227a..253f74ecc6a8 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "0qwfpb5ipp2l76v11arghq5mr0sjc6xhjfg8a0kgsaw5qpib1dzf";
   };
 
+  # Should be removed with >=2.4.43
+  patches = [ ./CVE-2015-6908.patch ];
+
   outputs = [ "out" "man" ];
 
   buildInputs = [ openssl cyrus_sasl db groff ];
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index 597dc2c4786d..14f459cc6fec 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "proj-4.9.1";
+  name = "proj-4.9.2";
 
   src = fetchurl {
-    url = http://download.osgeo.org/proj/proj-4.9.1.tar.gz;
-    sha256 = "06f36s7yi6yky92g235kj9wkcckm04qgzxnj0fla3icb7y7ki87w";
+    url = http://download.osgeo.org/proj/proj-4.9.2.tar.gz;
+    sha256 = "15kpcmz3qjxfrs6vq48mgyvb4vxscmwgkzrdcn71a60wxp8rmgv0";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix
index c896ecca4728..58326a6fa503 100644
--- a/pkgs/development/libraries/science/math/arpack/default.nix
+++ b/pkgs/development/libraries/science/math/arpack/default.nix
@@ -23,10 +23,10 @@ stdenv.mkDerivation {
   FFLAGS = optional openblas.blas64 "-fdefault-integer-8";
 
   meta = {
-    homepage = "http://forge.scilab.org/index.php/p/arpack-ng/";
+    homepage = "http://github.com/opencollab/arpack-ng";
     description = ''
       A collection of Fortran77 subroutines to solve large scale eigenvalue
-      problems
+      problems.
     '';
     license = stdenv.lib.licenses.bsd3;
     maintainers = [ stdenv.lib.maintainers.ttuegel ];
diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix
index 74a142318019..d3a2debbd121 100644
--- a/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -1,4 +1,4 @@
-args : with args;
+{fetchurl, stdenv, unixODBC, glibc, libtool, openssl, zlib, postgresql, mysql, sqlite}:
 # each attr contains the name deriv referencing the derivation and ini which
 # evaluates to a string which can be appended to the global unix odbc ini file
 # to register the driver
@@ -9,7 +9,7 @@ args : with args;
     deriv = stdenv.mkDerivation {
       name = "unix-odbc-pg-odbcng-0.90.101";
       buildInputs = [ unixODBC glibc libtool postgresql ];
-      # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose' 
+      # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose'
       preConfigure="
         export CPPFLAGS=-I${unixODBC}/include
         export LDFLAGS='-L${unixODBC}/lib -lltdl'
@@ -37,7 +37,7 @@ args : with args;
       export CPPFLAGS=-I${unixODBC}/include
       export LDFLAGS='-L${unixODBC}/lib -lltdl'
     ";
-    # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose' 
+    # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose'
     src = fetchurl {
       url = "http://ftp.postgresql.org/pub/odbc/versions/src/${name}.tar.gz";
       sha256 = "0mh10chkmlppidnmvgbp47v5jnphsrls28zwbvyk2crcn8gdx9q1";
@@ -48,7 +48,7 @@ args : with args;
         license = "LGPL";
     };
   };
-  ini = 
+  ini =
     "[PostgreSQL]\n" +
     "Description     = official PostgreSQL driver for Linux & Win32\n" +
     "Driver          = ${deriv}/lib/psqlodbcw.so\n" +
@@ -97,7 +97,7 @@ args : with args;
         mv "$out"/*.la "$out/lib"
       '';
 
-      meta = { 
+      meta = {
         description = "ODBC driver for SQLite";
         homepage = http://www.ch-werner.de/sqliteodbc;
         license = stdenv.lib.licenses.bsd2;
diff --git a/pkgs/development/libraries/wavpack/default.nix b/pkgs/development/libraries/wavpack/default.nix
index b205519eea17..074b26e3f3a5 100644
--- a/pkgs/development/libraries/wavpack/default.nix
+++ b/pkgs/development/libraries/wavpack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "wavpack-${version}";
@@ -6,10 +6,20 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  patches = [
+    # backported from
+    # https://github.com/dbry/WavPack/commit/12867b33e2de3e95b88d7cb6f449ce0c5c87cdd5
+    ./wavpack_clang.patch
+  ];
+
   preConfigure = ''
     sed -i '2iexec_prefix=@exec_prefix@' wavpack.pc.in
   '';
 
+  # --disable-asm is required for clang
+  # https://github.com/dbry/WavPack/issues/3
+  configureFlags = lib.optionalString stdenv.cc.isClang "--disable-asm";
+
   src = fetchurl {
     url = "http://www.wavpack.com/${name}.tar.bz2";
     sha256 = "0bmgwcvch3cjcivk7pyasqysj0s81wkg40j3zfrcd7bl0qhmqgn6";
diff --git a/pkgs/development/libraries/wavpack/wavpack_clang.patch b/pkgs/development/libraries/wavpack/wavpack_clang.patch
new file mode 100644
index 000000000000..dfbe47181431
--- /dev/null
+++ b/pkgs/development/libraries/wavpack/wavpack_clang.patch
@@ -0,0 +1,25 @@
+diff -ru -x '*~' wavpack-4.75.0_orig/src/wavpack_local.h wavpack-4.75.0/src/wavpack_local.h
+--- wavpack-4.75.0_orig/src/wavpack_local.h	2015-05-21 06:50:26.000000000 +0900
++++ wavpack-4.75.0/src/wavpack_local.h	2015-09-14 21:48:09.000000000 +0900
+@@ -650,9 +650,9 @@
+ void scan_word (WavpackStream *wps, int32_t *samples, uint32_t num_samples, int dir);
+ void update_error_limit (WavpackStream *wps);
+ 
+-const uint32_t bitset [32];
+-const uint32_t bitmask [32];
+-const char nbits_table [256];
++extern const uint32_t bitset [32];
++extern const uint32_t bitmask [32];
++extern const char nbits_table [256];
+ 
+ int log2s (int32_t value);
+ int32_t exp2s (int log);
+@@ -734,7 +734,7 @@
+ /////////////////////////////////// common utilities ////////////////////////////////////
+ // module: common_utils.c
+ 
+-const uint32_t sample_rates [16];
++extern const uint32_t sample_rates [16];
+ uint32_t WavpackGetLibraryVersion (void);
+ const char *WavpackGetLibraryVersionString (void);
+ uint32_t WavpackGetSampleRate (WavpackContext *wpc);
diff --git a/pkgs/development/libraries/wtk/builder.sh b/pkgs/development/libraries/wtk/builder.sh
index ef0085da924c..86f2719537cd 100644
--- a/pkgs/development/libraries/wtk/builder.sh
+++ b/pkgs/development/libraries/wtk/builder.sh
@@ -21,7 +21,7 @@ rpath=
 for i in $libraries; do
     rpath=$rpath${rpath:+:}$i/lib
 done
-find $out -type f -perm +100 \
+find $out -type f -perm -0100 \
     -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" {} \;
-find $out -type f -perm +100 \
+find $out -type f -perm -0100 \
     -exec patchelf --set-rpath "$rpath" {} \;
diff --git a/pkgs/development/libraries/zimlib/default.nix b/pkgs/development/libraries/zimlib/default.nix
new file mode 100644
index 000000000000..c46a950804c5
--- /dev/null
+++ b/pkgs/development/libraries/zimlib/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchgit, automake, autoconf, libtool, lzma }:
+
+stdenv.mkDerivation {
+  name = "zimlib";
+  version = "20150710";
+  src = fetchgit {
+    url = https://gerrit.wikimedia.org/r/p/openzim.git;
+    rev = "165eab3e154c60b5b6436d653dc7c90f56cf7456";
+    sha256 = "0x0d3rx6zcc8k66nqkacmwdvslrz70h9bliqawzv90ribq3alb0q";
+  };
+  buildInputs = [ automake autoconf libtool lzma ];
+  setSourceRoot = "cd openzim-*/zimlib; export sourceRoot=`pwd`";
+  preConfigurePhases = [ "./autogen.sh" ];
+
+  meta = {
+    description = "Library for reading and writing ZIM files (file format for storing Web content offline)";
+    homepage =  http://www.openzim.org/wiki/Zimlib;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ robbinch ];
+  };
+}
diff --git a/pkgs/development/mobile/androidenv/androidndk.nix b/pkgs/development/mobile/androidenv/androidndk.nix
index 9f5393949ca7..cc1c28105245 100644
--- a/pkgs/development/mobile/androidenv/androidndk.nix
+++ b/pkgs/development/mobile/androidenv/androidndk.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
     find $out \( \
         \( -type f -a -name "*.so*" \) -o \
-        \( -type f -a -perm /0100 \) \
+        \( -type f -a -perm -0100 \) \
         \) -exec patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-*so.? \
                           --set-rpath ${zlib}/lib:${ncurses}/lib {} \;
     # fix ineffective PROGDIR / MYNDKDIR determination
diff --git a/pkgs/development/mobile/androidenv/androidndk_r8e.nix b/pkgs/development/mobile/androidenv/androidndk_r8e.nix
index 5e04bbf0116d..90994ae708e5 100644
--- a/pkgs/development/mobile/androidenv/androidndk_r8e.nix
+++ b/pkgs/development/mobile/androidenv/androidndk_r8e.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
     find $out \( \
         \( -type f -a -name "*.so*" \) -o \
-        \( -type f -a -perm /0100 \) \
+        \( -type f -a -perm -0100 \) \
         \) -exec patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-*so.? \
                           --set-rpath ${zlib}/lib:${ncurses}/lib {} \;
     # fix ineffective PROGDIR / MYNDKDIR determination
diff --git a/pkgs/development/ocaml-modules/dolog/default.nix b/pkgs/development/ocaml-modules/dolog/default.nix
index 6d046ce5294b..ceb028e0712a 100644
--- a/pkgs/development/ocaml-modules/dolog/default.nix
+++ b/pkgs/development/ocaml-modules/dolog/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, ocaml, findlib }:
 
-let version = "1.0"; in
+let version = "1.1"; in
 
 stdenv.mkDerivation {
   name = "ocaml-dolog-${version}";
   src = fetchzip {
     url = "https://github.com/UnixJunkie/dolog/archive/v${version}.tar.gz";
-    sha256 = "1yy3a0h9xn5mv8q38yx5jgavj2hgfw42mdnrzixl25pqx7idvcmf";
+    sha256 = "093lmprb1v2ran3pyymcdq80xnsgdz7h76g764xsy97dba5ik40n";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 58d8b047ec1d..a6361ce1237a 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -1,6 +1,12 @@
 {stdenv, fetchurl, ocaml, findlib, which, ocaml_react, ocaml_ssl,
 ocaml_lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ipaddr, zlib,
-libev, openssl, ocaml_sqlite3, tree, uutf}:
+libev, openssl, ocaml_sqlite3, tree, uutf, makeWrapper
+}:
+
+let mkpath = p: n:
+  let v = stdenv.lib.getVersion ocaml; in
+  "${p}/lib/ocaml/${v}/site-lib/${n}";
+in
 
 stdenv.mkDerivation {
   name = "ocsigenserver-2.5";
@@ -12,7 +18,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ocaml which findlib ocaml_react ocaml_ssl ocaml_lwt
   ocamlnet ocaml_pcre cryptokit tyxml ipaddr zlib libev openssl
-  ocaml_sqlite3 tree uutf];
+  ocaml_sqlite3 tree uutf makeWrapper ];
 
   configureFlags = "--root $(out) --prefix /";
 
@@ -23,6 +29,8 @@ stdenv.mkDerivation {
   postFixup =
   ''
   rm -rf $out/var/run
+  wrapProgram $out/bin/ocsigenserver \
+    --prefix CAML_LD_LIBRARY_PATH : "${mkpath ocaml_ssl "ssl"}:${mkpath ocaml_lwt "lwt"}:${mkpath ocamlnet "netsys"}:${mkpath ocamlnet "netstring"}:${mkpath ocaml_pcre "pcre"}:${mkpath cryptokit "cryptokit"}:${mkpath ocaml_sqlite3 "sqlite3"}"
   '';
 
   dontPatchShebangs = true;
diff --git a/pkgs/development/python-modules/btrees_interger_overflow.patch b/pkgs/development/python-modules/btrees_interger_overflow.patch
deleted file mode 100644
index a05c7bd6b3cb..000000000000
--- a/pkgs/development/python-modules/btrees_interger_overflow.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From be19c1f32e4d430092c029f17984f0087a2b2087 Mon Sep 17 00:00:00 2001
-From: Jim Fulton <jim@zope.com>
-Date: Mon, 19 May 2014 19:52:43 -0400
-Subject: [PATCH 1/2] Fixed: integer overflow on 32-bit machines wasn't
- detected correctly   under Python 3.
-
----
- BTrees/intkeymacros.h        |  7 ++++---
- BTrees/intvaluemacros.h      |  3 ++-
- BTrees/tests/testBTrees.py   | 11 +++++++++--
- BTrees/tests/test_IIBTree.py |  2 ++
- CHANGES.rst                  |  2 ++
- 5 files changed, 19 insertions(+), 6 deletions(-)
-
-diff --git a/BTrees/intkeymacros.h b/BTrees/intkeymacros.h
-index d439aa0..f9244b5 100644
---- a/BTrees/intkeymacros.h
-+++ b/BTrees/intkeymacros.h
-@@ -19,9 +19,10 @@
- #define KEY_CHECK INT_CHECK
- #define COPY_KEY_TO_OBJECT(O, K) O=INT_FROM_LONG(K)
- #define COPY_KEY_FROM_ARG(TARGET, ARG, STATUS)                    \
--  if (INT_CHECK(ARG)) {                                         \
--      long vcopy = INT_AS_LONG(ARG);                            \
--      if ((int)vcopy != vcopy) {                                  \
-+  if (INT_CHECK(ARG)) {                                           \
-+      long vcopy = INT_AS_LONG(ARG);                              \
-+      if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; }           \
-+      else if ((int)vcopy != vcopy) {                             \
-         PyErr_SetString(PyExc_TypeError, "integer out of range"); \
-         (STATUS)=0; (TARGET)=0;                                   \
-       }                                                           \
-diff --git a/BTrees/intvaluemacros.h b/BTrees/intvaluemacros.h
-index b77a5c9..3072eea 100644
---- a/BTrees/intvaluemacros.h
-+++ b/BTrees/intvaluemacros.h
-@@ -23,7 +23,8 @@
- #define COPY_VALUE_FROM_ARG(TARGET, ARG, STATUS)                  \
-   if (INT_CHECK(ARG)) {                                         \
-       long vcopy = INT_AS_LONG(ARG);                            \
--      if ((int)vcopy != vcopy) {                                  \
-+      if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; }           \
-+      else if ((int)vcopy != vcopy) {                                  \
-         PyErr_SetString(PyExc_TypeError, "integer out of range"); \
-         (STATUS)=0; (TARGET)=0;                                   \
-       }                                                           \
-diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py
-index 50f5b43..31d641d 100644
---- a/BTrees/tests/testBTrees.py
-+++ b/BTrees/tests/testBTrees.py
-@@ -11,8 +11,11 @@
- # FOR A PARTICULAR PURPOSE
- #
- ##############################################################################
-+import sys
- import unittest
- 
-+python3 = sys.version_info >= (3, )
-+
- from BTrees.tests.common import permutations
- 
- 
-@@ -451,8 +454,12 @@ def test32(self):
-         # the characteristics change to match the 64 bit version, please
-         # feel free to change.
-         big = BTrees.family32.maxint + 1
--        self.assertRaises(TypeError, s.insert, big)
--        self.assertRaises(TypeError, s.insert, BTrees.family32.minint - 1)
-+        if python3:
-+            expected_exception = OverflowError
-+        else:
-+            expected_exception = TypeError
-+        self.assertRaises(expected_exception, s.insert,
-+                          BTrees.family32.minint - 1)
-         self.check_pickling(BTrees.family32)
- 
-     def test64(self):
-diff --git a/BTrees/tests/test_IIBTree.py b/BTrees/tests/test_IIBTree.py
-index 72e95b2..fe776b8 100644
---- a/BTrees/tests/test_IIBTree.py
-+++ b/BTrees/tests/test_IIBTree.py
-@@ -113,6 +113,8 @@ def trial(i):
-             i = int(i)
-             try:
-                 b[i] = 0
-+            except OverflowError:
-+                self.assertRaises(OverflowError, b.__setitem__, 0, i)
-             except TypeError:
-                 self.assertRaises(TypeError, b.__setitem__, 0, i)
-             else:
-diff --git a/CHANGES.rst b/CHANGES.rst
-index 4696be3..e3869ff 100644
---- a/CHANGES.rst
-+++ b/CHANGES.rst
-@@ -1,6 +1,8 @@
- ``BTrees`` Changelog
- ====================
- 
-+- Fixed: integer overflow on 32-bit machines wasn't detected correctly
-+  under Python 3.
- 
- 4.0.9 (unreleased)
- ------------------
--- 
-2.0.4
-
-
-From 11a51d2a12bb9904e96349ff86e78e24a0ebe51a Mon Sep 17 00:00:00 2001
-From: Jim Fulton <jim@zope.com>
-Date: Wed, 21 May 2014 07:33:06 -0400
-Subject: [PATCH 2/2] added back test mistakedly removed.
-
-We have to check both TypeError and OverflowError. On Python3 32-bit,
-we'll get an OverflowError, otherwise, we get type error.
----
- BTrees/tests/testBTrees.py | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py
-index 31d641d..d9be43a 100644
---- a/BTrees/tests/testBTrees.py
-+++ b/BTrees/tests/testBTrees.py
-@@ -453,13 +453,13 @@ def test32(self):
-         # this next bit illustrates an, um, "interesting feature".  If
-         # the characteristics change to match the 64 bit version, please
-         # feel free to change.
--        big = BTrees.family32.maxint + 1
--        if python3:
--            expected_exception = OverflowError
--        else:
--            expected_exception = TypeError
--        self.assertRaises(expected_exception, s.insert,
--                          BTrees.family32.minint - 1)
-+        try: s.insert(BTrees.family32.maxint + 1)
-+        except (TypeError, OverflowError): pass
-+        else: self.assert_(False)
-+
-+        try: s.insert(BTrees.family32.minint - 1)
-+        except (TypeError, OverflowError): pass
-+        else: self.assert_(False)
-         self.check_pickling(BTrees.family32)
- 
-     def test64(self):
--- 
-2.0.4
-
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index 6ad603e01384..557f79f865ec 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -26,7 +26,7 @@ wrapPythonProgramsIn() {
     done
 
     # Find all regular files in the output directory that are executable.
-    for f in $(find "$dir" -type f -perm /0100); do
+    for f in $(find "$dir" -type f -perm -0100); do
         # Rewrite "#! .../env python" to "#! /nix/store/.../python".
         if head -n1 "$f" | grep -q '#!.*/env.*\(python\|pypy\)'; then
             sed -i "$f" -e "1 s^.*/env[ ]*\(python\|pypy\)^#! $python^"
diff --git a/pkgs/development/python-modules/irclib/default.nix b/pkgs/development/python-modules/irclib/default.nix
index 3e0eda34b17a..4fdf93e126b6 100644
--- a/pkgs/development/python-modules/irclib/default.nix
+++ b/pkgs/development/python-modules/irclib/default.nix
@@ -1,8 +1,8 @@
-a :  
-let 
+a @ {python, ...} :
+let
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "0.4.8" a; 
+  version = a.lib.attrByPath ["version"] "0.4.8" a;
   buildInputs = with a; [
     python
   ];
@@ -24,7 +24,7 @@ rec {
 
   /* doConfigure should be removed if not needed */
   phaseNames = ["doPatch" "installPythonPackage"];
-      
+
   name = "python-irclib-" + version;
   meta = {
     description = "Python IRC library";
diff --git a/pkgs/development/python-modules/libsexy/default.nix b/pkgs/development/python-modules/libsexy/default.nix
index fa00a7040a03..5e0d391a3380 100644
--- a/pkgs/development/python-modules/libsexy/default.nix
+++ b/pkgs/development/python-modules/libsexy/default.nix
@@ -1,8 +1,8 @@
-a :  
-let 
+a @ { python, libsexy, pkgconfig, libxml2, pygtk, pango, gtk, glib, ... } :
+let
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "0.1.9" a; 
+  version = a.lib.attrByPath ["version"] "0.1.9" a;
   buildInputs = with a; [
     pkgconfig pygtk
   ];
diff --git a/pkgs/development/python-modules/wxPython/2.8.nix b/pkgs/development/python-modules/wxPython/2.8.nix
index a6fd0100f587..4a464e572b80 100644
--- a/pkgs/development/python-modules/wxPython/2.8.nix
+++ b/pkgs/development/python-modules/wxPython/2.8.nix
@@ -1,24 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, python, isPyPy }:
+{ callPackage, ... } @ args:
 
-assert wxGTK.unicode;
+callPackage ./generic.nix (args // rec {
 
-let version = "2.8.12.1"; in
+  version = "2.8.12.1";
 
-if isPyPy then throw "wxPython-${version} not supported for interpreter ${python.executable}" else stdenv.mkDerivation {
-  name = "wxPython-${version}";
-  
-  builder = ./builder.sh;
-  
-  src = fetchurl {
-    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
-    sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
-  };
-  
-  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) pythonPackages.python pythonPackages.wrapPython ];
-  
-  passthru = { inherit wxGTK; };
+  sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
 
-  meta = {
-    platforms = stdenv.lib.platforms.all;
-  };
-}
+})
diff --git a/pkgs/development/python-modules/wxPython/3.0.nix b/pkgs/development/python-modules/wxPython/3.0.nix
index 4974daebb2bb..6892d7e87298 100644
--- a/pkgs/development/python-modules/wxPython/3.0.nix
+++ b/pkgs/development/python-modules/wxPython/3.0.nix
@@ -1,29 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, openglSupport ? true, python, isPyPy }:
+{ callPackage, ... } @ args:
 
-assert wxGTK.unicode;
+callPackage ./generic.nix (args // rec {
 
-with stdenv.lib;
+  version = "3.0.2.0";
 
-let version = "3.0.0.0"; in
+  sha256 = "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm";
 
-if isPyPy then throw "wxPython-${version} not supported for interpreter ${python.executable}" else stdenv.mkDerivation {
-  name = "wxPython-${version}";
-  
-  builder = ./builder3.0.sh;
-  
-  src = fetchurl {
-    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
-    sha256 = "af88695e820dd914e8375dc91ecb736f6fb605979bb38460ace61bbea494dc11";
-  };
-  
-  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) pythonPackages.python pythonPackages.wrapPython ]
-                ++ optional openglSupport pythonPackages.pyopengl;
-
-  inherit openglSupport;
-
-  passthru = { inherit wxGTK openglSupport; };
-  
-  meta = {
-    platforms = stdenv.lib.platforms.all;
-  };
-}
\ No newline at end of file
+})
diff --git a/pkgs/development/python-modules/wxPython/builder.sh b/pkgs/development/python-modules/wxPython/builder.sh
deleted file mode 100644
index 1ad71e3b9cdc..000000000000
--- a/pkgs/development/python-modules/wxPython/builder.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-source $stdenv/setup
-
-flags="WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=0 BUILD_OGL=0 UNICODE=1"
-
-configurePhase() {
-    cd wxPython
-}
-
-buildPhase() {
-    python setup.py $flags build
-}
-
-installPhase() {
-    python setup.py $flags install --prefix=$out
-
-    # Ugly workaround for Nixpkgs/111.
-    ln -s $out/lib/python*/site-packages/wx-*-gtk2-unicode/* $out/lib/python*/site-packages
-    
-    wrapPythonPrograms    
-}
-
-genericBuild
diff --git a/pkgs/development/python-modules/wxPython/builder3.0.sh b/pkgs/development/python-modules/wxPython/builder3.0.sh
deleted file mode 100644
index 7403c67d0912..000000000000
--- a/pkgs/development/python-modules/wxPython/builder3.0.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-source $stdenv/setup
-
-flags="WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=${openglSupport?1:0} UNICODE=1"
-
-configurePhase() {
-    cd wxPython
-}
-
-buildPhase() {
-    python setup.py $flags build
-}
-
-installPhase() {
-    python setup.py $flags install --prefix=$out
-
-    # Ugly workaround for Nixpkgs/111.
-    ln -s $out/lib/python*/site-packages/wx-*-gtk2-unicode/* $out/lib/python*/site-packages
-    
-    wrapPythonPrograms    
-}
-
-genericBuild
diff --git a/pkgs/development/python-modules/wxPython/generic.nix b/pkgs/development/python-modules/wxPython/generic.nix
new file mode 100644
index 000000000000..8990f5cf4d1b
--- /dev/null
+++ b/pkgs/development/python-modules/wxPython/generic.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, python, buildPythonPackage, isPy3k, isPyPy, wxGTK, openglSupport ? true, pyopengl
+, version, sha256, ...
+}:
+
+assert wxGTK.unicode;
+
+buildPythonPackage rec {
+
+  disabled = isPy3k || isPyPy;
+  doCheck = false;
+
+  name = "wxPython-${version}";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
+    inherit sha256;
+  };
+
+  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) ]
+                ++ stdenv.lib.optional openglSupport pyopengl;
+
+  preConfigure = "cd wxPython";
+
+  setupPyBuildFlags = [ "WXPORT=gtk2" "NO_HEADERS=1" "BUILD_GLCANVAS=${if openglSupport then "1" else "0"}" "UNICODE=1" ];
+
+  installPhase = ''
+    ${python}/bin/${python.executable} setup.py ${stdenv.lib.concatStringsSep " " setupPyBuildFlags} install --prefix=$out
+  '';
+
+  passthru = { inherit wxGTK openglSupport; };
+}
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
index 57b35ad91ed0..46e81c588452 100644
--- a/pkgs/development/python-modules/xmpppy/default.nix
+++ b/pkgs/development/python-modules/xmpppy/default.nix
@@ -1,8 +1,8 @@
-a :  
-let 
+a @ {python, setuptools, ... } :
+let
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "0.5.0rc1" a; 
+  version = a.lib.attrByPath ["version"] "0.5.0rc1" a;
   buildInputs = with a; [
     python setuptools
   ];
@@ -22,7 +22,7 @@ rec {
     mkdir -p $out/bin $out/lib $out/share $(toPythonPath $out)
     export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out)
   '') ["defEnsureDir" "addInputs"];
-      
+
   name = "xmpp.py-" + version;
   meta = {
     description = "XMPP python library";
diff --git a/pkgs/development/tools/build-managers/jam/default.nix b/pkgs/development/tools/build-managers/jam/default.nix
index 8f56577de32f..9c7a7287cfdf 100644
--- a/pkgs/development/tools/build-managers/jam/default.nix
+++ b/pkgs/development/tools/build-managers/jam/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, yacc}:
 
 let
   bindir = if stdenv.system == "i686-linux" then "bin.linuxx86"
@@ -13,6 +13,8 @@ stdenv.mkDerivation {
     sha256 = "04c6khd7gdkqkvx4h3nbz99lyz7waid4fd221hq5chcygyx1sj3i";
   };
 
+  buildInputs = [ yacc ];
+
   installPhase = ''
     mkdir -p $out/bin
     cp ${bindir}/jam $out/bin
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index d50822d49491..f90fcb817b18 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -8,7 +8,7 @@
 
 let
 
-  basename = "gdb-7.9.1";
+  basename = "gdb-7.10";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
   # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.xz";
-    sha256 = "0h5sfg4ndhb8q4fxbq0hdxfjp35n6ih96f6x8yvb418s84x5976d";
+    sha256 = "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby";
   };
 
   # I think python is not a native input, but I leave it
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   configureFlags = with stdenv.lib;
     '' --with-gmp=${gmp} --with-mpfr=${mpfr} --with-system-readline
        --with-expat --with-libexpat-prefix=${expat}
+       --with-separate-debug-dir=/run/current-system/sw/lib/debug
     ''
     + optionalString (target != null) " --target=${target.config}"
     + optionalString (elem stdenv.system platforms.cygwin) "  --without-python";
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 13903b4c7b9b..63b29fccd527 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "global-6.5";
+  name = "global-6.5.1";
 
   src = fetchurl {
     url = "mirror://gnu/global/${name}.tar.gz";
-    sha256 = "1af6lhwhrpdnigd3707fnk3dd6y53pbc4g0i75xjf0563bdi5zaa";
+    sha256 = "1y34nbazsw2p6r2jhv27z15qvm9mhy5xjchpz8pwps00shkm578f";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index 2f811d9ae82f..4386e7eaf741 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gettext, LocaleGettext, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.1";
+  name = "help2man-1.47.2";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "01ib718afwc28bmh1n0p5h7245vs3rrfm7bj1sq4avmh1kv2d6y5";
+    sha256 = "0z1zgw6k1fba59fii6ksfi1g2gci6i4ysa3kdfh3j475fdkn1if4";
   };
 
   buildInputs = [ makeWrapper perl gettext LocaleGettext ];
diff --git a/pkgs/development/tools/misc/patchelf/setup-hook.sh b/pkgs/development/tools/misc/patchelf/setup-hook.sh
index 944b418d1b47..a76fbfbd509c 100644
--- a/pkgs/development/tools/misc/patchelf/setup-hook.sh
+++ b/pkgs/development/tools/misc/patchelf/setup-hook.sh
@@ -9,7 +9,7 @@ patchELF() {
     if [ -e "$prefix" ]; then
         find "$prefix" \( \
             \( -type f -a -name "*.so*" \) -o \
-            \( -type f -a -perm /0100 \) \
+            \( -type f -a -perm -0100 \) \
             \) -print -exec patchelf --shrink-rpath '{}' \;
     fi
     stopNest
diff --git a/pkgs/development/tools/misc/teensy-loader-cli/default.nix b/pkgs/development/tools/misc/teensy-loader-cli/default.nix
new file mode 100644
index 000000000000..db86f1a56d6e
--- /dev/null
+++ b/pkgs/development/tools/misc/teensy-loader-cli/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, unzip, libusb, fetchgit }:
+let
+  version = "2.1";
+in
+stdenv.mkDerivation {
+  name = "teensy-loader-cli-${version}";
+  src = fetchgit {
+    url = "git://github.com/PaulStoffregen/teensy_loader_cli.git";
+    rev = "001da416bc362ff24485ff97e3a729bd921afe98";
+    sha256 = "36aed0a725055e36d71183ff57a023993099fdc380072177cffc7676da3c3966";
+  };
+
+  buildInputs = [ unzip libusb ];
+
+  installPhase = ''
+    install -Dm755 teensy_loader_cli $out/bin/teensy-loader-cli
+  '';
+
+  meta = with stdenv.lib; {
+    license = licenses.gpl3;
+    description = "Firmware uploader for the Teensy microcontroller boards";
+    homepage = http://www.pjrc.com/teensy/;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/teensy/default.nix b/pkgs/development/tools/misc/teensy/default.nix
deleted file mode 100644
index 9902cd034539..000000000000
--- a/pkgs/development/tools/misc/teensy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, unzip, libusb }:
-let
-  version = "2.1";
-in
-stdenv.mkDerivation {
-  name = "teensy-loader-${version}";
-  src = fetchurl {
-    url = "http://www.pjrc.com/teensy/teensy_loader_cli.2.1.zip";
-    sha256 = "0iidj3q0l2hds1gaadnwgni4qdgk6r0nv101986jxda8cw6h9zfs";
-  };
-
-  buildInputs = [ unzip libusb ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -v teensy_loader_cli $out/bin/
-  '';
-
-  meta = with stdenv.lib; {
-    license = licenses.gpl3;
-    description = "Firmware uploader for the Teensy microcontroller board";
-    homepage = http://www.pjrc.com/teensy/;
-    maintainers = with maintainers; [ the-kenny ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/tools/parsing/lemon/default.nix b/pkgs/development/tools/parsing/lemon/default.nix
new file mode 100644
index 000000000000..23d4ea911dbe
--- /dev/null
+++ b/pkgs/development/tools/parsing/lemon/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl }:
+
+let
+
+  version = "1.0";
+
+  srcs = {
+    lemon = fetchurl {
+      sha256 = "1grm95m2cnc61zim332g7z8nchmcy91ljf50k13lm421v0ygyyv6";
+      url = "http://www.sqlite.org/src/raw/tool/lemon.c?name=039f813b520b9395740c52f9cbf36c90b5d8df03";
+      name = "lemon.c";
+    };
+    lempar = fetchurl {
+      sha256 = "09nki0cwc5zrm365g6plhjxz3byhl9w117ab3yvrpds43ks1j85z";
+      url = "http://www.sqlite.org/src/raw/tool/lempar.c?name=3617143ddb9b176c3605defe6a9c798793280120";
+      name = "lempar.c";
+    };
+  };
+
+in stdenv.mkDerivation {
+  name = "lemon-${version}";
+
+  phases = [ "buildPhase" "installPhase" ];
+
+  buildPhase = ''
+    sh -xc "$CC ${srcs.lemon} -o lemon"
+  '';
+
+  installPhase = ''
+    install -Dvm755 lemon $out/bin/lemon
+    install -Dvm644 ${srcs.lempar} $out/bin/lempar.c
+  '';
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "An LALR(1) parser generator";
+    longDescription = ''
+      The Lemon program is an LALR(1) parser generator that takes a
+      context-free grammar and converts it into a subroutine that will parse a
+      file using that grammar. Lemon is similar to the much more famous
+      programs "yacc" and "bison", but is not compatible with either.
+    '';
+    homepage = http://www.hwaci.com/sw/lemon/;
+    license = licenses.publicDomain;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ nckx ];
+  };
+}