about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-11-14 14:28:23 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-11-14 14:28:23 +0100
commitb4af993c3f2a2e9808b582eb6dd4500a2847fb2b (patch)
tree6a4d51255f30e0da26fb94d4725b6c19145bb89d
parent5ad9db047327b74a4002341f074369ee736e4f9e (diff)
parent961ed7c8b41bb80cdf5f4f0f5e49093ad171393b (diff)
downloadnixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar.gz
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar.bz2
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar.lz
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar.xz
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.tar.zst
nixlib-b4af993c3f2a2e9808b582eb6dd4500a2847fb2b.zip
Merge branch 'master' into staging
Conflicts (simple):
	pkgs/development/lisp-modules/clwrapper/setup-hook.sh
-rw-r--r--doc/language-support.xml435
-rw-r--r--doc/stdenv.xml7
-rw-r--r--lib/lists.nix10
-rw-r--r--lib/maintainers.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-base.nix3
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl9
-rw-r--r--nixos/modules/misc/ids.nix1
-rwxr-xr-xnixos/modules/module-list.nix3
-rw-r--r--nixos/modules/services/networking/dnscrypt-proxy.nix133
-rw-r--r--nixos/modules/services/networking/firewall.nix6
-rw-r--r--nixos/modules/services/networking/minidlna.nix2
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix3
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh5
-rw-r--r--nixos/modules/system/boot/stage-1.nix9
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix220
-rw-r--r--nixos/modules/tasks/network-interfaces.nix50
-rw-r--r--nixos/modules/virtualisation/lxc.nix75
-rw-r--r--nixos/modules/virtualisation/parallels-guest.nix93
-rw-r--r--pkgs/applications/audio/caudec/default.nix39
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--pkgs/applications/editors/bluefish/default.nix23
-rw-r--r--pkgs/applications/editors/jedit/build.xml.patch252
-rw-r--r--pkgs/applications/editors/jedit/default.nix51
-rw-r--r--pkgs/applications/editors/vim/configurable.nix2
-rw-r--r--pkgs/applications/misc/bitcoin/default.nix3
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/keybase-node-client/default.nix37
-rw-r--r--pkgs/applications/misc/keybase-node-client/package.nix2518
-rw-r--r--pkgs/applications/misc/qtbitcointrader/default.nix30
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix6
-rw-r--r--pkgs/applications/networking/sniffers/ettercap/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/github-backup/default.nix4
-rw-r--r--pkgs/development/compilers/dmd/default.nix56
-rw-r--r--pkgs/development/compilers/mozart/binary.nix12
-rw-r--r--pkgs/development/compilers/rdmd/default.nix30
-rw-r--r--pkgs/development/compilers/sbcl/default.nix7
-rw-r--r--pkgs/development/coq-modules/unimath/default.nix26
-rw-r--r--pkgs/development/interpreters/nix-exec/default.nix4
-rw-r--r--pkgs/development/interpreters/pypy/2.4/default.nix3
-rw-r--r--pkgs/development/interpreters/python/2.6/default.nix1
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix1
-rw-r--r--pkgs/development/interpreters/python/3.2/default.nix1
-rw-r--r--pkgs/development/interpreters/python/3.3/default.nix1
-rw-r--r--pkgs/development/interpreters/python/3.4/default.nix1
-rw-r--r--pkgs/development/interpreters/racket/default.nix55
-rw-r--r--pkgs/development/libraries/clearsilver/default.nix8
-rw-r--r--pkgs/development/libraries/cminpack/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix4
-rw-r--r--pkgs/development/libraries/haskell/HFuse/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/HandsomeSoup/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/ReadArgs/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/Unixutils/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/cabal-cargs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-lenses/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cairo/0.12.5.3.nix22
-rw-r--r--pkgs/development/libraries/haskell/cairo/default.nix (renamed from pkgs/development/libraries/haskell/cairo/0.13.0.4.nix)0
-rw-r--r--pkgs/development/libraries/haskell/cgrep/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/colors/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/conduit-combinators/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit-extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cufft/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/either/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/github/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/gitlib-libgit2/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/gitlib-test/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/glib/0.12.5.4.nix21
-rw-r--r--pkgs/development/libraries/haskell/glib/default.nix (renamed from pkgs/development/libraries/haskell/glib/0.13.0.5.nix)0
-rw-r--r--pkgs/development/libraries/haskell/glib/gtk2hs.patch15
-rw-r--r--pkgs/development/libraries/haskell/gtk/0.12.5.7.nix22
-rw-r--r--pkgs/development/libraries/haskell/gtk/default.nix (renamed from pkgs/development/libraries/haskell/gtk/0.13.0.3.nix)0
-rw-r--r--pkgs/development/libraries/haskell/gtk/gtk.patch10
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hoauth2/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hsimport/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hspec-core/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/hspec-discover/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hspec-meta/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/hspec/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hspec2/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/labeled-tree/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/libjenkins/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/linear/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pango/0.12.5.3.nix22
-rw-r--r--pkgs/development/libraries/haskell/pango/default.nix (renamed from pkgs/development/libraries/haskell/pango/0.13.0.3.nix)0
-rw-r--r--pkgs/development/libraries/haskell/pango/pango.patch10
-rw-r--r--pkgs/development/libraries/haskell/pipes-text/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rethinkdb/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/sdl2/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/snaplet-postgresql-simple/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/system-fileio/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/terminal-size/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/twitter-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-bin/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-test/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/bsf/default.nix22
-rw-r--r--pkgs/development/libraries/java/commons/logging/default.nix22
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix13
-rw-r--r--pkgs/development/libraries/libusb/default.nix14
-rw-r--r--pkgs/development/libraries/science/math/ipopt/default.nix25
-rwxr-xr-xpkgs/development/lisp-modules/clwrapper/cl-wrapper.sh3
-rw-r--r--pkgs/development/lisp-modules/define-package.nix5
-rwxr-xr-xpkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh113
-rw-r--r--pkgs/development/lisp-modules/iterate.darcs-context116
-rw-r--r--pkgs/development/lisp-modules/lisp-packages.nix414
-rw-r--r--pkgs/development/python-modules/generic/default.nix5
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix2
-rw-r--r--pkgs/development/tools/atom-shell/default.nix49
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix28
-rw-r--r--pkgs/development/tools/haskell/PastePipe/default.nix4
-rw-r--r--pkgs/development/tools/haskell/cabal-bounds/default.nix4
-rw-r--r--pkgs/development/tools/haskell/ghcid/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix12
-rw-r--r--pkgs/development/tools/haskell/keter/default.nix4
-rw-r--r--pkgs/development/tools/haskell/threadscope/default.nix12
-rw-r--r--pkgs/development/tools/haskell/threadscope/threadscope.patch14
-rw-r--r--pkgs/development/tools/misc/ShellCheck/default.nix17
-rw-r--r--pkgs/development/tools/misc/yodl/default.nix53
-rw-r--r--pkgs/development/tools/pydb/default.nix1
-rw-r--r--pkgs/development/tools/winpdb/default.nix51
-rw-r--r--pkgs/games/tibia/default.nix7
-rw-r--r--pkgs/games/xsnow/default.nix34
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix6
-rw-r--r--pkgs/misc/vim-plugins/default.nix1353
-rw-r--r--pkgs/misc/vim-plugins/vimrc.nix203
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix3
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix2
-rw-r--r--pkgs/os-specific/linux/prl-tools/autostart.desktop8
-rw-r--r--pkgs/os-specific/linux/prl-tools/default.nix197
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix4
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix45
-rw-r--r--pkgs/os-specific/linux/zfs/git.nix37
-rw-r--r--pkgs/os-specific/linux/zfs/remove-lock-checks.patch64
-rw-r--r--pkgs/servers/zeromq/default.nix29
-rw-r--r--pkgs/stdenv/generic/default.nix1
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/default.nix19
-rw-r--r--pkgs/tools/security/volatility/default.nix7
-rw-r--r--pkgs/tools/system/acct/default.nix12
-rw-r--r--pkgs/top-level/all-packages.nix46
-rw-r--r--pkgs/top-level/haskell-packages.nix46
-rw-r--r--pkgs/top-level/perl-packages.nix2
-rw-r--r--pkgs/top-level/python-packages.nix50
-rw-r--r--pkgs/top-level/release-lib.nix4
151 files changed, 6653 insertions, 1253 deletions
diff --git a/doc/language-support.xml b/doc/language-support.xml
index 5e49121e695b..67949808ec06 100644
--- a/doc/language-support.xml
+++ b/doc/language-support.xml
@@ -108,7 +108,7 @@ a <varname>preConfigure</varname> hook to generate a configuration
 file used by <filename>Makefile.PL</filename>:
 
 <programlisting>
-{buildPerlPackage, fetchurl, db}:
+{ buildPerlPackage, fetchurl, db }:
 
 buildPerlPackage rec {
   name = "BerkeleyDB-0.36";
@@ -191,45 +191,424 @@ you need it.</para>
 </section>
 
 
-<section><title>Python</title>
+<section xml:id="python"><title>Python</title>
+
+<para>
+  Currently supported interpreters are <varname>python26</varname>, <varname>python27</varname>,
+  <varname>python32</varname>, <varname>python33</varname>, <varname>python34</varname>
+  and <varname>pypy</varname>.
+</para>
+
+<para>
+  <varname>python</varname> is an alias of <varname>python27</varname> and <varname>python3</varname> is an alias of <varname>python34</varname>.
+</para>
+
+<para>
+  <varname>python26</varname> and <varname>python27</varname> do not include modules that require
+  external dependencies (to reduce dependency bloat). Following modules need to be added as
+  <varname>buildInput</varname> explicitly:
+</para>
+
+<itemizedlist>
+  <listitem><para><varname>python.modules.bsddb</varname></para></listitem>
+  <listitem><para><varname>python.modules.curses</varname></para></listitem>
+  <listitem><para><varname>python.modules.curses_panel</varname></para></listitem>
+  <listitem><para><varname>python.modules.crypt</varname></para></listitem>
+  <listitem><para><varname>python.modules.gdbm</varname></para></listitem>
+  <listitem><para><varname>python.modules.sqlite3</varname></para></listitem>
+  <listitem><para><varname>python.modules.tkinter</varname></para></listitem>
+  <listitem><para><varname>python.modules.readline</varname></para></listitem>
+</itemizedlist>
+
+<para>For convenience <varname>python27Full</varname> and <varname>python26Full</varname>
+are provided with all modules included.</para>
 
 <para>
   Python packages that
-  use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link>,
-  which many Python packages do nowadays, can be built very simply using
-  the <varname>buildPythonPackage</varname> function.  This function is
-  implemented
-  in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/default.nix"><filename>pkgs/development/python-modules/generic/default.nix</filename></link>
-  and works similarly to <varname>buildPerlPackage</varname>. (See
-  <xref linkend="ssec-language-perl"/> for details.)
+  use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link> or <literal>distutils</literal>,
+  can be built using the <varname>buildPythonPackage</varname> function as documented below.
 </para>
 
 <para>
-  Python packages that use <varname>buildPythonPackage</varname> are
-  defined
-  in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>.
-  Most of them are simple.  For example:
+ All packages depending on any Python interpreter get appended <varname>$out/${python.libPrefix}/site-packages</varname>
+ to <literal>$PYTHONPATH</literal> if such directory exists.
+</para>
 
-  <programlisting>
-twisted = buildPythonPackage {
-  name = "twisted-8.1.0";
+<variablelist>
+  <title>
+     Useful attributes on interpreters packages:
+  </title>
+
+  <varlistentry>
+    <term><varname>libPrefix</varname></term>
+    <listitem><para>
+        Name of the folder in <literal>${python}/lib/</literal> for corresponding interpreter.
+    </para></listitem>
+  </varlistentry>
+  
+  <varlistentry>
+    <term><varname>interpreter</varname></term>
+    <listitem><para>
+        Alias for <literal>${python}/bin/${executable}.</literal>
+    </para></listitem>
+  </varlistentry>
+  
+  <varlistentry>
+    <term><varname>buildEnv</varname></term>
+    <listitem><para>
+        Function to build python interpreter environments with extra packages bundled together.
+        See <xref linkend="python-build-env" /> for usage and documentation.
+    </para></listitem>
+  </varlistentry>
+  
+  <varlistentry>
+    <term><varname>sitePackages</varname></term>
+    <listitem><para>
+      Alias for <literal>lib/${libPrefix}/site-packages</literal>.
+    </para></listitem>
+  </varlistentry>
+  
+  <varlistentry>
+    <term><varname>executable</varname></term>
+    <listitem><para>
+      Name of the interpreter executable, ie <literal>python3.4</literal>.
+    </para></listitem>
+  </varlistentry>
+  
+</variablelist>
+<section xml:id="build-python-package"><title><varname>buildPythonPackage</varname> function</title>
+  
+  <para>
+  The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/default.nix">
+  <filename>pkgs/development/python-modules/generic/default.nix</filename></link>.
+  Example usage:
+  
+    <programlisting language="nix">
+      twisted = buildPythonPackage {
+        name = "twisted-8.1.0";
+      
+        src = pkgs.fetchurl {
+          url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
+          sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
+        };
+      
+        propagatedBuildInputs = [ self.ZopeInterface ];
+      
+        meta = {
+          homepage = http://twistedmatrix.com/;
+          description = "Twisted, an event-driven networking engine written in Python";
+          license = stdenv.lib.licenses.mit;
+        };
+      };
+    </programlisting>
+
+  Most of Python packages that use <varname>buildPythonPackage</varname> are defined
+  in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
+  and generated for each python interpreter separately into attribute sets <varname>python26Packages</varname>,
+  <varname>python27Packages</varname>, <varname>python32Packages</varname>, <varname>python33Packages</varname>,
+  <varname>python34Packages</varname> and <varname>pypyPackages</varname>.
+  </para>
+  
+  <para>
+    <function>buildPythonPackage</function> mainly does four things:
+      
+    <orderedlist>
+      <listitem><para>
+        In the <varname>configurePhase</varname>, it patches
+        <literal>setup.py</literal> to always include setuptools before
+        distutils for monkeypatching machinery to take place.
+      </para></listitem>
+    
+      <listitem><para>
+        In the <varname>buildPhase</varname>, it calls 
+        <literal>${python.interpreter} setup.py build ...</literal>
+      </para></listitem>
+      
+      <listitem><para>
+        In the <varname>installPhase</varname>, it calls 
+        <literal>${python.interpreter} setup.py install ...</literal>
+      </para></listitem>
+      
+      <listitem><para>
+        In the <varname>postFixup</varname> phase, <literal>wrapPythonPrograms</literal>
+        bash function is called to wrap all programs in <filename>$out/bin/*</filename>
+        directory to include <literal>$PYTHONPATH</literal> and <literal>$PATH</literal>
+        environment variables.
+      </para></listitem>
+    </orderedlist>
+  </para>
+  
+  <para>By default <varname>doCheck = true</varname> is set and tests are run with 
+  <literal>${python.interpreter} setup.py test</literal> command in <varname>checkPhase</varname>.</para>
+  
+  <para><varname>propagatedBuildInputs</varname> packages are propagated to user environment.</para>
+    
+  <para>
+    By default <varname>meta.platforms</varname> is set to the same value
+    as the interpreter unless overriden otherwise.
+  </para>
+  
+  <variablelist>
+    <title>
+      <varname>buildPythonPackage</varname> parameters
+      (all parameters from <varname>mkDerivation</varname> function are still supported)
+    </title>
+  
+    <varlistentry>
+      <term><varname>namePrefix</varname></term>
+      <listitem><para>
+        Prepended text to <varname>${name}</varname> parameter.
+        Defaults to <literal>"python3.3-"</literal> for Python 3.3, etc. Set it to
+        <literal>""</literal>
+        if you're packaging an application or a command line tool.
+      </para></listitem>
+    </varlistentry>
+  
+    <varlistentry>
+      <term><varname>disabled</varname></term>
+      <listitem><para>
+        If <varname>true</varname>, package is not build for
+        particular python interpreter version. Grep around
+        <filename>pkgs/top-level/python-packages.nix</filename>
+        for examples.
+      </para></listitem>
+    </varlistentry>
+      
+    <varlistentry>
+      <term><varname>setupPyInstallFlags</varname></term>
+      <listitem><para>
+        List of flags passed to <command>setup.py install</command> command.
+      </para></listitem>
+    </varlistentry>
+     
+    <varlistentry>
+      <term><varname>setupPyBuildFlags</varname></term>
+      <listitem><para>
+        List of flags passed to <command>setup.py build</command> command.
+      </para></listitem>
+    </varlistentry>
+     
+    <varlistentry>
+      <term><varname>pythonPath</varname></term>
+      <listitem><para>
+        List of packages to be added into <literal>$PYTHONPATH</literal>.
+        Packages in <varname>pythonPath</varname> are not propagated into user environment
+        (contrary to <varname>propagatedBuildInputs</varname>).
+      </para></listitem>
+    </varlistentry>
+     
+    <varlistentry>
+      <term><varname>preShellHook</varname></term>
+      <listitem><para>
+        Hook to execute commands before <varname>shellHook</varname>.
+      </para></listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term><varname>postShellHook</varname></term>
+      <listitem><para>
+        Hook to execute commands after <varname>shellHook</varname>.
+      </para></listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term><varname>distutilsExtraCfg</varname></term>
+      <listitem><para>
+        Extra lines passed to <varname>[easy_install]</varname> section of
+        <filename>distutils.cfg</filename> (acts as global setup.cfg
+        configuration).
+      </para></listitem>
+    </varlistentry>
+  
+  </variablelist>
+  
+</section>
 
-  src = fetchurl {
-    url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
-    sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
-  };
+<section xml:id="python-build-env"><title><function>python.buildEnv</function> function</title>
+  <para>
+    Create Python envorinments using low-level <function>pkgs.buildEnv</function> function. Example <filename>default.nix</filename>:
+    
+    <programlisting language="nix">
+    <![CDATA[
+      with import <nixpkgs> {};
+      
+      python.buildEnv.override {
+        extraLibs = [ pkgs.pythonPackages.pyramid ];
+        ignoreCollisions = true;
+      }
+    ]]>
+    </programlisting>
+    
+    Running <command>nix-build</command> will create
+    <filename>/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env</filename>
+    with wrapped binaries in <filename>bin/</filename>.
+  </para>
+  
+  <variablelist>
+    <title>
+      <function>python.buildEnv</function> arguments
+    </title>
+  
+    <varlistentry>
+      <term><varname>extraLibs</varname></term>
+      <listitem><para>
+        List of packages installed inside the environment.
+      </para></listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term><varname>postBuild</varname></term>
+      <listitem><para>
+        Shell command executed after the build of environment.
+      </para></listitem>
+    </varlistentry>
+    
+    <varlistentry>
+      <term><varname>ignoreCollisions</varname></term>
+      <listitem><para>
+         Ignore file collisions inside the environment (default is <varname>false</varname>).
+      </para></listitem>
+    </varlistentry>
+  </variablelist>
+</section>
 
-  propagatedBuildInputs = [ pkgs.ZopeInterface ];
+<section xml:id="python-tools"><title>Tools</title>
 
-  meta = {
-    homepage = http://twistedmatrix.com/;
-    description = "Twisted, an event-driven networking engine written in Python";
-    license = "MIT";
-  };
-};
-  </programlisting>
+<para>Packages inside nixpkgs are written by hand. However many tools
+exist in community to help save time. No tool is prefered at the moment.
 </para>
 
+<itemizedlist>
+
+  <listitem><para>
+    <link xlink:href="https://github.com/proger/python2nix">python2nix</link>
+    by Vladimir Kirillov
+  </para></listitem>
+
+  <listitem><para>
+    <link xlink:href="https://github.com/garbas/pypi2nix">pypi2nix</link>
+    by Rok Garbas
+  </para></listitem>
+
+  <listitem><para>
+    <link xlink:href="https://github.com/offlinehacker/pypi2nix">pypi2nix</link>
+    by Jaka Hudoklin
+  </para></listitem>
+
+</itemizedlist>
+
+</section>
+
+<section xml:id="python-development"><title>Development</title>
+
+  <para>
+    To develop Python packages <function>bulidPythonPackage</function> has
+    additional logic inside <varname>shellPhase</varname> to run
+    <command>${python.interpreter} setup.py develop</command> for the package.
+  </para>
+  
+  <para>
+    Given a <filename>default.nix</filename>:
+    
+    <programlisting language="nix">
+    <![CDATA[
+      with import <nixpkgs> {};
+      
+      buildPythonPackage {
+        name = "myproject";
+      
+        buildInputs = with pkgs.pythonPackages; [ pyramid ];
+      
+        src = ./.;
+      }
+    ]]>
+    </programlisting>
+    
+    Running <command>nix-shell</command> with no arguments should give you
+    the environment in which the package would be build with
+    <command>nix-build</command>.
+  </para>
+  
+  <para>
+    Shortcut to setup environments with C headers/libraries and python packages:
+    
+    <programlisting language="bash">$ nix-shell -p pythonPackages.pyramid zlib libjpeg git</programlisting>
+  </para>
+  
+  <para>
+    Note: there is a boolean value <varname>lib.inNixShell</varname> set to
+    <varname>true</varname> if nix-shell is invoked.
+  </para>
+
+</section>
+
+<section xml:id="python-faq"><title>FAQ</title>
+
+<variablelist>
+
+  <varlistentry>
+    <term>How to solve circular dependencies?</term>
+    <listitem><para>
+      If you have packages <varname>A</varname> and <varname>B</varname> that
+      depend on each other, when packaging <varname>B</varname> override package
+      <varname>A</varname> not to depend on <varname>B</varname> as input
+      (and also the other way around).
+    </para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>install_data / data_files</varname> problems resulting into <literal>error: could not create '/nix/store/6l1bvljpy8gazlsw2aw9skwwp4pmvyxw-python-2.7.8/etc': Permission denied</literal></term>
+    <listitem><para>
+      <link xlink:href="https://bitbucket.org/pypa/setuptools/issue/130/install_data-doesnt-respect-prefix">
+      Known bug in setuptools <varname>install_data</varname> does not respect --prefix</link>. Example of
+      such package using the feature is <filename>pkgs/tools/X11/xpra/default.nix</filename>. As workaround
+      install it as an extra <varname>preInstall</varname> step:
+      
+      <programlisting>${python.interpreter} setup.py install_data --install-dir=$out --root=$out
+sed -i '/ = data_files/d' setup.py</programlisting>
+    </para></listitem>
+  </varlistentry>
+  
+  <varlistentry>
+    <term>Rationale of non-existent global site-packages</term>
+    <listitem><para>
+      There is no need to have global site-packages in Nix. Each package has isolated
+      dependency tree and installing any python package will only populate <varname>$PATH</varname>
+      inside user environment. See <xref linkend="python-build-env" /> to create self-contained
+      interpreter with a set of packages.
+    </para></listitem>
+  </varlistentry>
+
+</variablelist>
+
+</section>
+
+
+<section xml:id="python-contrib"><title>Contributing guidelines</title>
+<para>
+  Following rules are desired to be respected:
+</para>
+
+<itemizedlist>
+
+  <listitem><para>
+    Make sure package builds for all python interpreters. Use <varname>disabled</varname> argument to
+    <function>buildPythonPackage</function> to set unsupported interpreters.
+  </para></listitem>
+
+  <listitem><para>
+    If tests need to be disabled for a package, make sure you leave a comment about reasoning.
+  </para></listitem>
+
+  <listitem><para>
+    Packages in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
+    are sorted quasi-alphabetically to avoid merge conflicts.
+  </para></listitem>
+
+</itemizedlist>
+
+</section>
+
 </section>
 
 
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index 8c6266b2672a..00fa7567c078 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -1120,12 +1120,9 @@ echo @foo@
   <varlistentry>
     <term>Python</term>
     <listitem><para>Adds the
-    <filename>lib/python2.5/site-packages</filename> subdirectory of
+    <filename>lib/${python.libPrefix}/site-packages</filename> subdirectory of
     each build input to the <envar>PYTHONPATH</envar> environment
-    variable.</para>
-
-    <note><para>This should be generalised: the Python version
-    shouldn’t be hard-coded.</para></note></listitem>
+    variable.</para></listitem>
   </varlistentry>
 
   <varlistentry>
diff --git a/lib/lists.nix b/lib/lists.nix
index 566ee89c95bc..d57c4893daa8 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -223,4 +223,14 @@ rec {
 
   crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
 
+  # Remove duplicate elements from the list
+  unique = list:
+    if list == [] then
+      []
+    else
+      let
+        x = head list;
+        xs = unique (drop 1 list);
+      in [x] ++ remove x xs;
+
 }
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index d0e156ea1771..fe58405eb10e 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -61,6 +61,7 @@
   exlevan = "Alexey Levan <exlevan@gmail.com>";
   falsifian = "James Cook <james.cook@utoronto.ca>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
+  fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
   fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
   ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
   funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
@@ -80,6 +81,7 @@
   jcumming = "Jack Cummings <jack@mudshark.org>";
   jgeerds = "Jascha Geerds <jg@ekby.de>";
   jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
+  joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
   joamaki = "Jussi Maki <joamaki@gmail.com>";
   joelteon = "Joel Taylor <me@joelt.io>";
   jwiegley = "John Wiegley <johnw@newartisans.com>";
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index 3001214f90fb..b723a91e4f35 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -45,6 +45,9 @@ with lib;
   # Add support for cow filesystems and their utilities
   boot.supportedFilesystems = [ "zfs" "btrfs" ];
 
+  # Configure host id for ZFS to work
+  networking.hostId = "8425e349";
+
   # Allow the user to log in as root without a password.
   users.extraUsers.root.initialHashedPassword = "";
 }
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index e8f100d64984..9abc1b4cc1b5 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -476,6 +476,14 @@ EOF
 EOF
         }
 
+        # Generate a random 32-bit value to use as the host id
+        open my $rnd, "<", "/dev/urandom" or die $!;
+        read $rnd, $hostIdBin, 4;
+        close $rnd;
+
+        # Convert the 32-bit value to a hex string
+        my $hostIdHex = unpack("H*", $hostIdBin);
+
         write_file($fn, <<EOF);
 # Edit this configuration file to define what should be installed on
 # your system.  Help is available in the configuration.nix(5) man page
@@ -491,6 +499,7 @@ EOF
 
 $bootLoaderConfig
   # networking.hostName = "nixos"; # Define your hostname.
+  networking.hostId = "$hostIdHex";
   # networking.wireless.enable = true;  # Enables wireless.
 
   # Select internationalisation properties.
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 7388cfc9a072..4eeaa2008fd0 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -158,6 +158,7 @@
       seeks = 148;
       prosody = 149;
       i2pd = 150;
+      dnscrypt-proxy = 151;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c6187125abbf..fcea0fed3808 100755
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -221,6 +221,7 @@
   ./services/networking/ddclient.nix
   ./services/networking/dhcpcd.nix
   ./services/networking/dhcpd.nix
+  ./services/networking/dnscrypt-proxy.nix
   ./services/networking/dnsmasq.nix
   ./services/networking/ejabberd.nix
   ./services/networking/firewall.nix
@@ -386,8 +387,10 @@
   ./virtualisation/containers.nix
   ./virtualisation/docker.nix
   ./virtualisation/libvirtd.nix
+  ./virtualisation/lxc.nix
   #./virtualisation/nova.nix
   ./virtualisation/openvswitch.nix
+  ./virtualisation/parallels-guest.nix
   ./virtualisation/virtualbox-guest.nix
   #./virtualisation/xen-dom0.nix
 ]
diff --git a/nixos/modules/services/networking/dnscrypt-proxy.nix b/nixos/modules/services/networking/dnscrypt-proxy.nix
new file mode 100644
index 000000000000..d847e10a9361
--- /dev/null
+++ b/nixos/modules/services/networking/dnscrypt-proxy.nix
@@ -0,0 +1,133 @@
+{ config, lib, pkgs, ... }:
+with lib;
+
+let
+  apparmorEnabled = config.security.apparmor.enable;
+  dnscrypt-proxy = pkgs.dnscrypt-proxy;
+  cfg = config.services.dnscrypt-proxy;
+  uid = config.ids.uids.dnscrypt-proxy;
+  daemonArgs = [ "--daemonize"
+                 "--user=dnscrypt-proxy"
+                 "--local-address=${cfg.localAddress}:${toString cfg.port}"
+                 (optionalString cfg.tcpOnly "--tcp-only")
+                 "--resolvers-list=${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
+                 "--resolver-name=${cfg.resolverName}"
+               ];
+in
+
+{
+  ##### interface
+
+  options = {
+
+    services.dnscrypt-proxy = {
+
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enable dnscrypt-proxy.
+          The proxy relays regular DNS queries to a DNSCrypt enabled
+          upstream resolver.
+          The traffic between the client and the upstream resolver is
+          encrypted and authenticated, which may mitigate the risk of MITM
+          attacks and third-party snooping (assuming the upstream is
+          trustworthy).
+        '';
+      };
+
+      localAddress = mkOption {
+        default = "127.0.0.1";
+        type = types.string;
+        description = ''
+          Listen for DNS queries on this address.
+        '';
+      };
+
+      port = mkOption {
+        default = 53;
+        type = types.int;
+        description = ''
+          Listen on this port.
+        '';
+      };
+
+      resolverName = mkOption {
+        default = "opendns";
+        type = types.string;
+        description = ''
+          The name of the upstream DNSCrypt resolver to use.
+          See <literal>${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv</literal>
+          for alternative resolvers (e.g., if you are concerned about logging
+          and/or server location).
+        '';
+      };
+
+      tcpOnly = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Force sending encrypted DNS queries to the upstream resolver
+          over TCP instead of UDP (on port 443).
+          Enabling this option may help circumvent filtering, but should
+          not be used otherwise.
+        '';
+      };
+
+    };
+
+  };
+
+  ##### implementation
+
+  config = mkIf cfg.enable {
+
+    ### AppArmor profile
+
+    security.apparmor.profiles = mkIf apparmorEnabled [
+      (pkgs.writeText "apparmor-dnscrypt-proxy" ''
+
+        ${dnscrypt-proxy}/sbin/dnscrypt-proxy {
+          capability ipc_lock,
+          capability net_bind_service,
+          capability net_admin,
+          capability sys_chroot,
+          capability setgid,
+          capability setuid,
+
+          /dev/null rw,
+          /dev/urandom r,
+
+          ${pkgs.glibc}/lib/*.so mr,
+          ${pkgs.tzdata}/share/zoneinfo/** r,
+
+          ${dnscrypt-proxy}/share/dnscrypt-proxy/** r,
+          ${pkgs.gcc.gcc}/lib/libssp.so.* mr,
+          ${pkgs.libsodium}/lib/libsodium.so.* mr,
+        }
+      '')
+    ];
+
+    ### User
+
+    users.extraUsers = singleton {
+      inherit uid;
+      name = "dnscrypt-proxy";
+      description = "dnscrypt-proxy daemon user";
+    };
+
+    ### Service definition
+
+    systemd.services.dnscrypt-proxy = {
+      description = "dnscrypt-proxy daemon";
+      after = [ "network.target" ] ++ optional apparmorEnabled "apparmor.service";
+      requires = mkIf apparmorEnabled [ "apparmor.service" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${dnscrypt-proxy}/sbin/dnscrypt-proxy ${toString daemonArgs}";
+      };
+    };
+
+  };
+}
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index 68aac3d30de1..51e1679ce4de 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -187,6 +187,12 @@ let
     # Clean up after added ruleset
     ip46tables -D INPUT -j nixos-fw 2>/dev/null || true
 
+    ${optionalString (kernelHasRPFilter && cfg.checkReversePath) ''
+      if ! ip46tables -D PREROUTING -t raw -m rpfilter --invert -j DROP; then
+        echo "<2>failed to stop rpfilter support" >&2
+      fi
+    ''}
+
     ${cfg.extraStopCommands}
   '';
 
diff --git a/nixos/modules/services/networking/minidlna.nix b/nixos/modules/services/networking/minidlna.nix
index a519857d6a0b..989ee4d91af9 100644
--- a/nixos/modules/services/networking/minidlna.nix
+++ b/nixos/modules/services/networking/minidlna.nix
@@ -79,7 +79,7 @@ in
       { description = "MiniDLNA Server";
 
         wantedBy = [ "multi-user.target" ];
-        after = [ "network.target" ];
+        after = [ "network.target" "local-fs.target" ];
 
         preStart =
           ''
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 1f0729c1b715..5adfb8f0f96a 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -98,6 +98,9 @@ let
       # Authorization: is the user allowed access?
       "authz_user" "authz_groupfile" "authz_host"
 
+      # For compatibility with old configurations, the new module mod_access_compat is provided.
+      (if version24 then "access_compat" else "")
+
       # Other modules.
       "ext_filter" "include" "log_config" "env" "mime_magic"
       "cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 5caef2068c20..071eb8ee874c 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -122,6 +122,9 @@ for o in $(cat /proc/cmdline); do
     esac
 done
 
+# Set hostid before modules are loaded.
+# This is needed by the spl/zfs modules.
+@setHostId@
 
 # Load the required kernel modules.
 mkdir -p /lib
@@ -398,7 +401,7 @@ echo /sbin/modprobe > /proc/sys/kernel/modprobe
 # Start stage 2.  `switch_root' deletes all files in the ramfs on the
 # current root.  Note that $stage2Init might be an absolute symlink,
 # in which case "-e" won't work because we're not in the chroot yet.
-if ! test -e "$targetRoot/$stage2Init" -o -L "$targetRoot/$stage2Init"; then
+if ! test -e "$targetRoot/$stage2Init" -o ! -L "$targetRoot/$stage2Init"; then
     echo "stage 2 init script ($targetRoot/$stage2Init) not found"
     fail
 fi
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 755125db8664..cf2114046498 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -190,6 +190,15 @@ let
     fsInfo =
       let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType fs.options ];
       in pkgs.writeText "initrd-fsinfo" (concatStringsSep "\n" (concatMap f fileSystems));
+
+    setHostId = optionalString (config.networking.hostId != null) ''
+      hi="${config.networking.hostId}"
+      ${if pkgs.stdenv.isBigEndian then ''
+        echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > /etc/hostid
+      '' else ''
+        echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > /etc/hostid
+      ''}
+    '';
   };
 
 
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index eb72bfba33c0..ab5942b79453 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -1,11 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 #
 # todo:
 #   - crontab for scrubs, etc
 #   - zfs tunables
-#   - /etc/zfs/zpool.cache handling
-
 
+with utils;
 with lib;
 
 let
@@ -31,6 +30,20 @@ let
 
   zfsAutoSnap = "${autosnapPkg}/bin/zfs-auto-snapshot";
 
+  datasetToPool = x: elemAt (splitString "/" x) 0;
+
+  fsToPool = fs: datasetToPool fs.device;
+
+  zfsFilesystems = filter (x: x.fsType == "zfs") (attrValues config.fileSystems);
+
+  isRoot = fs: fs.neededForBoot || elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+
+  allPools = unique ((map fsToPool zfsFilesystems) ++ cfgZfs.extraPools);
+
+  rootPools = unique (map fsToPool (filter isRoot zfsFilesystems));
+
+  dataPools = unique (filter (pool: !(elem pool rootPools)) allPools);
+
 in
 
 {
@@ -38,28 +51,73 @@ in
   ###### interface
 
   options = {
-    boot.spl.hostid = mkOption {
-      default = "";
-      example = "0xdeadbeef";
-      description = ''
-        ZFS uses a system's hostid to determine if a storage pool (zpool) is
-        native to this system, and should thus be imported automatically.
-        Unfortunately, this hostid can change under linux from boot to boot (by
-        changing network adapters, for instance). Specify a unique 32 bit hostid in
-        hex here for zfs to prevent getting a random hostid between boots and having to
-        manually import pools.
-      '';
-    };
+    boot.zfs = {
+      useGit = mkOption {
+        type = types.bool;
+        default = false;
+        example = true;
+        description = ''
+          Use the git version of the SPL and ZFS packages.
+          Note that these are unreleased versions, with less testing, and therefore
+          may be more unstable.
+        '';
+      };
+
+      extraPools = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "tank" "data" ];
+        description = ''
+          Name or GUID of extra ZFS pools that you wish to import during boot.
+
+          Usually this is not necessary. Instead, you should set the mountpoint property
+          of ZFS filesystems to <literal>legacy</literal> and add the ZFS filesystems to
+          NixOS's <option>fileSystems</option> option, which makes NixOS automatically
+          import the associated pool.
+
+          However, in some cases (e.g. if you have many filesystems) it may be preferable
+          to exclusively use ZFS commands to manage filesystems. If so, since NixOS/systemd
+          will not be managing those filesystems, you will need to specify the ZFS pool here
+          so that NixOS automatically imports it on every boot.
+        '';
+      };
 
-    boot.zfs.useGit = mkOption {
-      type = types.bool;
-      default = false;
-      example = true;
-      description = ''
-        Use the git version of the SPL and ZFS packages.
-        Note that these are unreleased versions, with less testing, and therefore
-        may be more unstable.
-      '';
+      forceImportRoot = mkOption {
+        type = types.bool;
+        default = true;
+        example = false;
+        description = ''
+          Forcibly import the ZFS root pool(s) during early boot.
+
+          This is enabled by default for backwards compatibility purposes, but it is highly
+          recommended to disable this option, as it bypasses some of the safeguards ZFS uses
+          to protect your ZFS pools.
+
+          If you set this option to <literal>false</literal> and NixOS subsequently fails to
+          boot because it cannot import the root pool, you should boot with the
+          <literal>zfs_force=1</literal> option as a kernel parameter (e.g. by manually
+          editing the kernel params in grub during boot). You should only need to do this
+          once.
+        '';
+      };
+
+      forceImportAll = mkOption {
+        type = types.bool;
+        default = true;
+        example = false;
+        description = ''
+          Forcibly import all ZFS pool(s).
+
+          This is enabled by default for backwards compatibility purposes, but it is highly
+          recommended to disable this option, as it bypasses some of the safeguards ZFS uses
+          to protect your ZFS pools.
+
+          If you set this option to <literal>false</literal> and NixOS subsequently fails to
+          import your non-root ZFS pool(s), you should manually import each pool with
+          "zpool import -f &lt;pool-name&gt;", and then reboot. You should only need to do
+          this once.
+        '';
+      };
     };
 
     services.zfs.autoSnapshot = {
@@ -124,12 +182,20 @@ in
 
   config = mkMerge [
     (mkIf enableZfs {
+      assertions = [
+        {
+          assertion = config.networking.hostId != null;
+          message = "ZFS requires config.networking.hostId to be set";
+        }
+        {
+          assertion = !cfgZfs.forceImportAll || cfgZfs.forceImportRoot;
+          message = "If you enable boot.zfs.forceImportAll, you must also enable boot.zfs.forceImportRoot";
+        }
+      ];
+
       boot = {
         kernelModules = [ "spl" "zfs" ] ;
         extraModulePackages = [ splPkg zfsPkg ];
-        extraModprobeConfig = mkIf (cfgSpl.hostid != "") ''
-          options spl spl_hostid=${cfgSpl.hostid}
-        '';
       };
 
       boot.initrd = mkIf inInitrd {
@@ -142,50 +208,84 @@ in
             cp -pdv ${zfsPkg}/lib/lib*.so* $out/lib
             cp -pdv ${pkgs.zlib}/lib/lib*.so* $out/lib
           '';
-        postDeviceCommands =
-          ''
-            zpool import -f -a
-          '';
+        postDeviceCommands = concatStringsSep "\n" ([''
+            ZFS_FORCE="${optionalString cfgZfs.forceImportRoot "-f"}"
+
+            for o in $(cat /proc/cmdline); do
+              case $o in
+                zfs_force|zfs_force=1)
+                  ZFS_FORCE="-f"
+                  ;;
+              esac
+            done
+            ''] ++ (map (pool: ''
+            echo "importing root ZFS pool \"${pool}\"..."
+            zpool import -N $ZFS_FORCE "${pool}"
+        '') rootPools));
       };
 
       boot.loader.grub = mkIf inInitrd {
         zfsSupport = true;
       };
 
-      systemd.services."zpool-import" = {
-        description = "Import zpools";
-        after = [ "systemd-udev-settle.service" ];
-        wantedBy = [ "local-fs.target" ];
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-          ExecStart = "${zfsPkg}/sbin/zpool import -f -a";
-        };
-        restartIfChanged = false;
-      };
-
-      systemd.services."zfs-mount" = {
-        description = "Mount ZFS Volumes";
-        after = [ "zpool-import.service" ];
-        wantedBy = [ "local-fs.target" ];
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-          ExecStart = "${zfsPkg}/sbin/zfs mount -a";
-          ExecStop = "${zfsPkg}/sbin/zfs umount -a";
-        };
-        restartIfChanged = false;
-      };
+      environment.etc."zfs/zed.d".source = "${zfsPkg}/etc/zfs/zed.d/*";
 
       system.fsPackages = [ zfsPkg ];                  # XXX: needed? zfs doesn't have (need) a fsck
       environment.systemPackages = [ zfsPkg ];
       services.udev.packages = [ zfsPkg ];             # to hook zvol naming, etc.
+      systemd.packages = [ zfsPkg ];
+
+      systemd.services = let
+        getPoolFilesystems = pool:
+          filter (x: x.fsType == "zfs" && (fsToPool x) == pool) (attrValues config.fileSystems);
+
+        getPoolMounts = pool:
+          let
+            mountPoint = fs: escapeSystemdPath fs.mountPoint;
+          in
+            map (x: "${mountPoint x}.mount") (getPoolFilesystems pool);
+
+        createImportService = pool:
+          nameValuePair "zfs-import-${pool}" {
+            description = "Import ZFS pool \"${pool}\"";
+            requires = [ "systemd-udev-settle.service" ];
+            after = [ "systemd-udev-settle.service" "systemd-modules-load.service" ];
+            wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ];
+            before = (getPoolMounts pool) ++ [ "local-fs.target" ];
+            unitConfig = {
+              DefaultDependencies = "no";
+            };
+            serviceConfig = {
+              Type = "oneshot";
+              RemainAfterExit = true;
+            };
+            script = ''
+              zpool_cmd="${zfsPkg}/sbin/zpool"
+              ("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
+            '';
+          };
+      in listToAttrs (map createImportService dataPools) // {
+        "zfs-mount" = { after = [ "systemd-modules-load.service" ]; };
+        "zfs-share" = { after = [ "systemd-modules-load.service" ]; };
+        "zed" = { after = [ "systemd-modules-load.service" ]; };
+      };
+
+      systemd.targets."zfs-import" =
+        let
+          services = map (pool: "zfs-import-${pool}.service") dataPools;
+        in
+          {
+            requires = services;
+            after = services;
+          };
+
+      systemd.targets."zfs".wantedBy = [ "multi-user.target" ];
     })
 
     (mkIf enableAutoSnapshots {
       systemd.services."zfs-snapshot-frequent" = {
         description = "ZFS auto-snapshotting every 15 mins";
-        after = [ "zpool-import.service" ];
+        after = [ "zfs-import.target" ];
         serviceConfig = {
           Type = "oneshot";
           ExecStart = "${zfsAutoSnap} frequent ${toString cfgSnapshots.frequent}";
@@ -196,7 +296,7 @@ in
 
       systemd.services."zfs-snapshot-hourly" = {
         description = "ZFS auto-snapshotting every hour";
-        after = [ "zpool-import.service" ];
+        after = [ "zfs-import.target" ];
         serviceConfig = {
           Type = "oneshot";
           ExecStart = "${zfsAutoSnap} hourly ${toString cfgSnapshots.hourly}";
@@ -207,7 +307,7 @@ in
 
       systemd.services."zfs-snapshot-daily" = {
         description = "ZFS auto-snapshotting every day";
-        after = [ "zpool-import.service" ];
+        after = [ "zfs-import.target" ];
         serviceConfig = {
           Type = "oneshot";
           ExecStart = "${zfsAutoSnap} daily ${toString cfgSnapshots.daily}";
@@ -218,7 +318,7 @@ in
 
       systemd.services."zfs-snapshot-weekly" = {
         description = "ZFS auto-snapshotting every week";
-        after = [ "zpool-import.service" ];
+        after = [ "zfs-import.target" ];
         serviceConfig = {
           Type = "oneshot";
           ExecStart = "${zfsAutoSnap} weekly ${toString cfgSnapshots.weekly}";
@@ -229,7 +329,7 @@ in
 
       systemd.services."zfs-snapshot-monthly" = {
         description = "ZFS auto-snapshotting every month";
-        after = [ "zpool-import.service" ];
+        after = [ "zfs-import.target" ];
         serviceConfig = {
           Type = "oneshot";
           ExecStart = "${zfsAutoSnap} monthly ${toString cfgSnapshots.monthly}";
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 22b52f77b145..9579eaa77d06 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -189,6 +189,10 @@ let
 
   };
 
+  hexChars = stringToCharacters "0123456789abcdef";
+
+  isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
+
 in
 
 {
@@ -205,6 +209,20 @@ in
       '';
     };
 
+    networking.hostId = mkOption {
+      default = null;
+      example = "4e98920d";
+      type = types.nullOr types.str;
+      description = ''
+        The 32-bit host ID of the machine, formatted as 8 hexadecimal characters.
+
+        You should try to make this ID unique among your machines. You can
+        generate a random 32-bit ID using the following command:
+
+        <literal>head -c4 /dev/urandom | od -A none -t x4</literal>
+      '';
+    };
+
     networking.enableIPv6 = mkOption {
       default = true;
       description = ''
@@ -513,10 +531,15 @@ in
   config = {
 
     assertions =
-      flip map interfaces (i: {
+      (flip map interfaces (i: {
         assertion = i.subnetMask == null;
         message = "The networking.interfaces.${i.name}.subnetMask option is defunct. Use prefixLength instead.";
-      });
+      })) ++ [
+        {
+          assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId);
+          message = "Invalid value given to the networking.hostId option.";
+        }
+      ];
 
     boot.kernelModules = [ ]
       ++ optional cfg.enableIPv6 "ipv6"
@@ -872,14 +895,29 @@ in
     # clear it if it's not configured in the NixOS configuration,
     # since it may have been set by dhcpcd in the meantime.
     system.activationScripts.hostname =
-      optionalString (config.networking.hostName != "") ''
-        hostname "${config.networking.hostName}"
+      optionalString (cfg.hostName != "") ''
+        hostname "${cfg.hostName}"
       '';
     system.activationScripts.domain =
-      optionalString (config.networking.domain != "") ''
-        domainname "${config.networking.domain}"
+      optionalString (cfg.domain != "") ''
+        domainname "${cfg.domain}"
       '';
 
+    environment.etc = mkIf (cfg.hostId != null)
+      [
+        {
+          target = "hostid";
+          source = pkgs.runCommand "gen-hostid" {} ''
+            hi="${cfg.hostId}"
+            ${if pkgs.stdenv.isBigEndian then ''
+              echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
+            '' else ''
+              echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
+            ''}
+          '';
+        }
+      ];
+
     services.udev.extraRules =
       ''
         KERNEL=="tun", TAG+="systemd"
diff --git a/nixos/modules/virtualisation/lxc.nix b/nixos/modules/virtualisation/lxc.nix
new file mode 100644
index 000000000000..10d3a6575fb9
--- /dev/null
+++ b/nixos/modules/virtualisation/lxc.nix
@@ -0,0 +1,75 @@
+# LXC Configuration
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.virtualisation.lxc;
+
+in
+
+{
+  ###### interface
+
+  options.virtualisation.lxc = {
+    enable =
+      mkOption {
+        type = types.bool;
+        default = false;
+        description =
+          ''
+            This enables Linux Containers (LXC), which provides tools
+            for creating and managing system or application containers
+            on Linux.
+          '';
+      };
+
+    systemConfig =
+      mkOption {
+        type = types.lines;
+        default = "";
+        description =
+          ''
+            This is the system-wide LXC config. See lxc.system.conf(5).
+          '';
+      };
+
+    defaultConfig =
+      mkOption {
+        type = types.lines;
+        default = "";
+        description =
+          ''
+            Default config (default.conf) for new containers, i.e. for
+            network config. See lxc.container.conf(5).
+          '';
+      };
+
+    usernetConfig =
+      mkOption {
+        type = types.lines;
+        default = "";
+        description =
+          ''
+            This is the config file for managing unprivileged user network
+            administration access in LXC. See lxc-user-net(5).
+          '';
+      };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    environment.systemPackages = [ pkgs.lxc ];
+
+    environment.etc."lxc/lxc.conf".text = cfg.systemConfig;
+    environment.etc."lxc/lxc-usernet".text = cfg.usernetConfig;
+    environment.etc."lxc/default.conf".text = cfg.defaultConfig;
+
+  };
+
+}
diff --git a/nixos/modules/virtualisation/parallels-guest.nix b/nixos/modules/virtualisation/parallels-guest.nix
new file mode 100644
index 000000000000..141e70974058
--- /dev/null
+++ b/nixos/modules/virtualisation/parallels-guest.nix
@@ -0,0 +1,93 @@
+{ config, lib, pkgs, pkgs_i686, ... }:
+
+with lib;
+
+let
+
+  prl-tools = config.boot.kernelPackages.prl-tools;
+
+in
+
+{
+
+  options = {
+    hardware.parallels = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          This enables Parallel Tools for Linux guests, along with provided
+          video, mouse and other hardware drivers.
+        '';
+      };
+
+    };
+
+  };
+
+  config = mkIf config.hardware.parallels.enable {
+
+    services.xserver = {
+      drivers = singleton
+        { name = "prlvideo"; modules = [ prl-tools ]; libPath = [ prl-tools ]; };
+
+      screenSection = ''
+        Option "NoMTRR"
+      '';
+
+      config = ''
+        Section "InputClass"
+          Identifier "prlmouse"
+          MatchIsPointer "on"
+          MatchTag "prlmouse"
+          Driver "prlmouse"
+        EndSection
+      '';
+    };
+
+    hardware.opengl.package = prl-tools;
+    hardware.opengl.package32 = pkgs_i686.linuxPackages.prl-tools.override { libsOnly = true; kernel = null; };
+
+    services.udev.packages = [ prl-tools ];
+
+    environment.systemPackages = [ prl-tools ];
+
+    boot.extraModulePackages = [ prl-tools ];
+
+    boot.kernelModules = [ "prl_tg" "prl_eth" "prl_fs" "prl_fs_freeze" "acpi_memhotplug" ];
+
+    services.ntp.enable = false;
+
+    systemd.services.prltoolsd = {
+      description = "Parallels Tools' service";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${prl-tools}/bin/prltoolsd -f";
+        PIDFile = "/var/run/prltoolsd.pid";
+      };
+    };
+
+    systemd.services.prlfsmountd = {
+      description = "Parallels Shared Folders Daemon";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = rec {
+        ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}";
+        ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media";
+        ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u";
+        PIDFile = "/run/prlfsmountd.pid";
+      };
+    };
+
+    systemd.services.prlshprint = {
+      description = "Parallels Shared Printer Tool";
+      wantedBy = [ "multi-user.target" ];
+      bindsTo = [ "cupsd.service" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${prl-tools}/bin/prlshprint";
+      };
+    };
+
+  };
+}
diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix
new file mode 100644
index 000000000000..24613d4dd965
--- /dev/null
+++ b/pkgs/applications/audio/caudec/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, bash, bc, findutils, flac, lame, opusTools, procps, sox }:
+
+let
+  version = "1.7.5";
+in
+
+stdenv.mkDerivation rec {
+  name = "caudec-${version}";
+
+  src = fetchurl {
+    url = "http://caudec.net/downloads/caudec-${version}.tar.gz";
+    sha256 = "5d1f5ab3286bb748bd29cbf45df2ad2faf5ed86070f90deccf71c60be832f3d5";
+  };
+
+  preBuild = ''
+    patchShebangs ./install.sh
+  '';
+
+  buildInputs = [ bash makeWrapper ];
+
+  installPhase = ''
+    ./install.sh --prefix=$out/bin
+  '';
+
+  postFixup = ''
+    for executable in $(cd $out/bin && ls); do
+	wrapProgram $out/bin/$executable \
+	  --prefix PATH : "${bc}/bin:${findutils}/bin:${sox}/bin:${procps}/bin:${opusTools}/bin:${lame}/bin:${flac}/bin"
+    done
+  '';
+
+   meta = with stdenv.lib; {
+    homepage = http://caudec.net/;
+    description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ _1126 ];
+  };
+}
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index bab6cdcf33f0..96d43d77c897 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -6,11 +6,11 @@ assert stdenv ? glibc;
 
 stdenv.mkDerivation  rec {
   name = "yoshimi-${version}";
-  version = "1.2.4";
+  version = "1.2.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
-    sha256 = "0wz2bc0x0h989schwzqjj6sx9hvzxkw4jrkflwhyrzjini1pvkxz";
+    sha256 = "0lixrxv0wds3p50kmy9k166qhavdjkhlxs432s248hk43k7n6c1h";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
new file mode 100644
index 000000000000..4e569fc68a57
--- /dev/null
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, intltool, pkgconfig , gtk, libxml2
+, enchant, gucharmap, python
+}:
+
+stdenv.mkDerivation rec {
+  name = "bluefish-2.2.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
+    sha256 = "05j2mv6s2llf2pxknddhk8fzbghr7yff58xhkxy2icky64n8khjl";
+  };
+
+  buildInputs = [intltool pkgconfig gtk libxml2
+    enchant gucharmap python];
+
+  meta = with stdenv.lib; {
+    description = "A powerful editor targeted towards programmers and webdevelopers";
+    homepage = http://bluefish.openoffice.nl/;
+    license = licenses.gpl3Plus;
+    maintainer = [maintainers.vbgl];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/jedit/build.xml.patch b/pkgs/applications/editors/jedit/build.xml.patch
new file mode 100644
index 000000000000..2dabaaaed0c9
--- /dev/null
+++ b/pkgs/applications/editors/jedit/build.xml.patch
@@ -0,0 +1,252 @@
+--- a/build.xml	2013-07-28 18:03:55.000000000 +0100
++++ b/build.xml	2014-11-12 21:54:48.443482074 +0000
+@@ -42,16 +42,6 @@
+ 	<property name="textAreaPackage"
+ 		  location="../textarea"/>
+ 
+-	<!-- Ivy Properties -->
+-	<property name="config.ivy.version"
+-		  value="2.2.0"/>
+-	<property name="ivy.jar.dir"
+-		  location="${lib.dir}/ivy"/>
+-	<property name="ivy.jar.filename"
+-		  value="ivy-${config.ivy.version}.jar"/>
+-	<property name="ivy.jar.file"
+-		  location="${ivy.jar.dir}/${ivy.jar.filename}"/>
+-
+ 	<!-- Miscellaneous -->
+ 	<property name="jar.filename"
+ 		  value="${ant.project.name}.jar"/>
+@@ -89,51 +79,8 @@
+ 			  value="true"/>
+ 	</target>
+ 
+-	<target name="check-ivy"
+-		depends="init">
+-		<available property="ivy.jar.present"
+-			   file="${ivy.jar.file}"
+-			   type="file"/>
+-	</target>
+-
+-	<target name="download-ivy"
+-		depends="init,check-ivy"
+-		unless="ivy.jar.present">
+-		<mkdir dir="${ivy.jar.dir}"/>
+-		<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
+-		     dest="${ivy.jar.file}"
+-		     usetimestamp="true"/>
+-	</target>
+-
+-	<target name="init-ivy"
+-		depends="init,download-ivy"
+-		unless="${ivy.done}">
+-		<property name="ivy.retrieve.pattern"
+-			  value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
+-		<taskdef resource="org/apache/ivy/ant/antlib.xml"
+-			 classpath="${ivy.jar.file}"
+-			 loaderref="ivy.loader"
+-			 uri="antlib:org.apache.ivy.ant"/>
+-		<ivy:settings file="ivysettings.xml"/>
+-	</target>
+-
+-	<target name="retrieve"
+-		description="retrieve the dependencies"
+-		depends="init,init-ivy"
+-		unless="${ivy.done}">
+-		<ivy:retrieve sync="true"/>
+-		<ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
+-			      organisation="org.apache.ivy"
+-			      module="ivy"
+-			      revision="${config.ivy.version}"
+-			      conf="default"
+-			      inline="true"/>
+-		<property name="ivy.done"
+-			  value="true"/>
+-	</target>
+-
+ 	<target name="setup"
+-		depends="init,retrieve">
++		depends="init">
+ 		<taskdef resource="net/sf/antcontrib/antlib.xml"
+ 			 uri="antlib:net.sf.antcontrib">
+ 			<classpath>
+@@ -238,37 +185,6 @@
+ 		</javac>
+ 	</target>
+ 
+-	<target name="compile-test"
+-		depends="init,retrieve,compile">
+-		<mkdir dir="${classes.dir}/test"/>
+-		<depend srcDir="${basedir}/test"
+-			destDir="${classes.dir}/test"
+-			cache="${classes.dir}"/>
+-		<dependset>
+-			<srcfilelist files="build.xml"/>
+-			<srcfilelist files="ivy.xml"/>
+-			<targetfileset dir="${classes.dir}/test"/>
+-		</dependset>
+-		<javac srcdir="test"
+-		       destdir="${classes.dir}/test"
+-		       debug="true"
+-		       debuglevel="${config.build.debuglevel}"
+-		       nowarn="${config.build.nowarn}"
+-		       deprecation="${config.build.deprecation}"
+-		       source="${target.java.version}"
+-		       target="${target.java.version}"
+-		       compiler="modern"
+-		       encoding="UTF-8"
+-		       includeAntRuntime="false">
+-			<classpath id="classpath.test">
+-				<fileset dir="${lib.dir}/test"
+-					 includes="*.jar"/>
+-				<pathelement location="${classes.dir}/core"/>
+-			</classpath>
+-			<compilerarg line="${config.build.compilerarg}"/>
+-		</javac>
+-	</target>
+-
+ 	<target name="prepare-textArea"
+ 		depends="init">
+ 		<delete includeemptydirs="true"
+@@ -425,32 +341,8 @@
+ 		</javac>
+ 	</target>
+ 
+-	<target name="test"
+-		depends="init,retrieve,compile,compile-test"
+-		description="run unit tests">
+-		<delete dir="${build.dir}/test/raw-reports"/>
+-		<mkdir dir="${build.dir}/test/raw-reports"/>
+-		<junit printsummary="true"
+-		       failureproperty="tests.failed"
+-		       enabletestlistenerevents="true">
+-			<classpath refid="classpath.test"/>
+-			<classpath location="${classes.dir}/test"/>
+-			<formatter type="xml"/>
+-			<batchtest todir="${build.dir}/test/raw-reports">
+-				<fileset dir="test"/>
+-			</batchtest>
+-		</junit>
+-		<mkdir dir="${build.dir}/test/merged-reports"/>
+-		<junitreport todir="${build.dir}/test/merged-reports">
+-			<fileset dir="${build.dir}/test/raw-reports"/>
+-			<report todir="${build.dir}/test/reports"/>
+-		</junitreport>
+-		<fail message="Unit test(s) failed! See reports at ${build.dir}/test/reports/index.html"
+-		      if="tests.failed"/>
+-	</target>
+-
+ 	<target name="build"
+-		depends="init,retrieve,setup,compile"
++		depends="init,setup,compile"
+ 		description="build the jEdit JAR-file with full debug-information">
+ 		<mkdir dir="${jar.location}"/>
+ 		<jar destfile="${jar.location}/${jar.filename}"
+@@ -508,7 +400,7 @@
+ 	</target>
+ 
+ 	<target name="build-exe-launcher"
+-		depends="init,retrieve,setup,filter-package-files"
++		depends="init,setup,filter-package-files"
+ 		description="build the EXE launcher">
+ 		<contrib:if>
+ 			<os family="windows"/>
+@@ -611,7 +503,7 @@
+ 	</target>
+ 
+ 	<target name="unpack-docbook-xsl"
+-		depends="init,retrieve">
++		depends="init">
+ 		<unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
+ 		       dest="${build.dir}/docbook-xsl/"/>
+ 	</target>
+@@ -655,7 +547,7 @@
+ 	</presetdef>
+ 
+ 	<target name="generate-doc-faq"
+-		depends="init,retrieve,setup,unpack-docbook-xsl">
++		depends="init,setup,unpack-docbook-xsl">
+ 		<dependset.html>
+ 			<srcfileset dir="doc/FAQ"/>
+ 			<targetfileset dir="${jar.location}/doc/FAQ"/>
+@@ -679,7 +571,7 @@
+ 	</target>
+ 
+ 	<target name="generate-doc-news"
+-		depends="init,retrieve,setup,unpack-docbook-xsl">
++		depends="init,setup,unpack-docbook-xsl">
+ 		<dependset.html>
+ 			<srcfileset dir="doc/whatsnew"/>
+ 			<targetfileset dir="${jar.location}/doc/whatsnew"/>
+@@ -703,7 +595,7 @@
+ 	</target>
+ 
+ 	<target name="generate-doc-users-guide"
+-		depends="init,retrieve,setup,unpack-docbook-xsl">
++		depends="init,setup,unpack-docbook-xsl">
+ 		<dependset.html>
+ 			<srcfileset dir="doc/users-guide"/>
+ 			<targetfileset dir="${jar.location}/doc/users-guide"/>
+@@ -838,7 +730,7 @@
+ 	</target>
+ 
+ 	<target name="generate-pdf-users-guide"
+-		depends="init,retrieve,setup,unpack-docbook-xsl">
++		depends="init,setup,unpack-docbook-xsl">
+ 		<fail message="Please set the property &quot;paper.type&quot;"
+ 		      unless="paper.type"/>
+ 		<contrib:switch value="${paper.type}">
+@@ -1143,7 +1035,7 @@
+ 	</target>
+ 
+ 	<target name="compile-jarbundler"
+-		depends="init,retrieve">
++		depends="init">
+ 		<mkdir dir="${classes.dir}/jarbundler"/>
+ 		<depend srcDir="${basedir}"
+ 			destDir="${classes.dir}/jarbundler"
+@@ -1173,7 +1065,7 @@
+ 	</target>
+ 
+ 	<target name="dist-mac-finish"
+-		depends="init,retrieve,setup"
++		depends="init,setup"
+ 		description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
+ 		<fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
+ 			<condition>
+@@ -1271,7 +1163,7 @@
+ 	</target>
+ 
+ 	<target name="dist-mac"
+-		depends="init,retrieve,setup,prepare-dist-files"
++		depends="init,setup,prepare-dist-files"
+ 		description="build the Mac OS X disk image (DMG-file)">
+ 		<antcall target="compile-jarbundler">
+ 			<param name="config.build.debuglevel"
+@@ -1386,7 +1278,7 @@
+ 	</target>
+ 
+ 	<target name="prepare-dist-files"
+-		depends="init,retrieve,setup">
++		depends="init,setup">
+ 		<antcall target="build">
+ 			<param name="config.build.debuglevel"
+ 			       value="lines,source"/>
+@@ -1567,7 +1459,7 @@
+ 	</target>
+ 
+ 	<target name="dist-deb"
+-		depends="init,retrieve,setup,prepare-dist-files"
++		depends="init,setup,prepare-dist-files"
+ 		description="build the DEB Package">
+ 		<antcall target="compile-ar">
+ 			<param name="config.build.debuglevel"
+@@ -1813,7 +1705,7 @@
+ 	</target>
+ 
+ 	<target name="dist-sign-deb-Release"
+-		depends="init,retrieve,setup"
++		depends="init,setup"
+ 		description="sign the DEB Release file">
+ 		<contrib:if>
+ 			<not>
diff --git a/pkgs/applications/editors/jedit/default.nix b/pkgs/applications/editors/jedit/default.nix
index 8a57f650fb4a..0e11c577fc85 100644
--- a/pkgs/applications/editors/jedit/default.nix
+++ b/pkgs/applications/editors/jedit/default.nix
@@ -1,32 +1,47 @@
-{ stdenv, fetchurl, ant, jdk }:
+{stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging}:
 
-let version = "4.4.2"; in
+let
+  version = "5.1.0";
+  bsh = fetchurl {
+    url = http://www.beanshell.org/bsh-2.0b4.jar;
+    sha256 = "1di7hj2yms1m3wa8k70jpw0wzfnrgibpqnvdk33ahfaqi03mqfci";
+  };
+  bcpg = fetchurl {
+    url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
+    sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
+  };
+  jsr305 = fetchurl {
+    url = http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar;
+    sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
+  };
+in
 
 stdenv.mkDerivation {
   name = "jedit-${version}";
-
   src = fetchurl {
     url = "mirror://sourceforge/jedit/jedit${version}source.tar.bz2";
-    sha256 = "5e9ad9c32871b77ef0b9fe46dcfcea57ec52558d36113b7280194a33430b8ceb";
+    sha256 = "015rn4339mp4wrd901x56nr42wfcy429pg54n835c6n34b2jjdc6";
   };
 
-  buildInputs = [ ant jdk ];
+  buildInputs = [ ant jdk commonsBsf commonsLogging ];
+
+  # This patch removes from the build process:
+  #  - the automatic download of dependencies (see configurePhase);
+  #  - the tests
+  patches = [ ./build.xml.patch ];
 
-  sourceRoot = "jEdit";
+  configurePhase = ''
+    mkdir -p lib/ant-contrib/ lib/scripting lib/compile lib/default-plugins
+    cp ${ant}/lib/ant/lib/ant-contrib-*.jar lib/ant-contrib/
+    cp ${bsh} ${bcpg} lib/scripting/
+    cp ${jsr305} lib/compile/
+  '';
 
   buildPhase = "ant build";
 
   installPhase = ''
     mkdir -p $out/share/jEdit
-    cp build/jedit.jar $out/share/jEdit
-    mkdir -p $out/share/jEdit/modes
-    cp -r modes/* $out/share/jEdit/modes
-    mkdir -p $out/share/jEdit/icons
-    cp -r icons/* $out/share/jEdit/icons
-    mkdir -p $out/share/jEdit/macros
-    cp -r macros/* $out/share/jEdit/macros
-    mkdir -p $out/share/jEdit/doc
-    cp -r doc/* $out/share/jEdit/doc
+    cp -r build/jedit.jar doc icons keymaps macros modes startup $out/share/jEdit
 
     sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
     mkdir -p $out/share/applications
@@ -44,9 +59,11 @@ stdenv.mkDerivation {
     chmod +x $out/bin/jedit
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Mature programmer's text editor (Java based)";
     homepage = http://www.jedit.org;
-    license = "GPL";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vbgl ];
   };
 }
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 710ceb7d31f1..572bce7a2f56 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -139,7 +139,7 @@ composableDerivation {
     nlsSupport       = config.vim.nls or false;
     tclSupport       = config.vim.tcl or false;
     multibyteSupport = config.vim.multibyte or false;
-    cscopeSupport    = config.vim.cscope or false;
+    cscopeSupport    = config.vim.cscope or true;
     netbeansSupport  = config.netbeans or true; # eg envim is using it
 
     # by default, compile with darwin support if we're compiling on darwin, but
diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix
index 808984ad664d..c886cf3c2707 100644
--- a/pkgs/applications/misc/bitcoin/default.nix
+++ b/pkgs/applications/misc/bitcoin/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     HOME=$TMPDIR
   '';
 
+  configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ];
+
   doCheck = true;
 
   enableParallelBuilding = true;
@@ -45,5 +47,6 @@ stdenv.mkDerivation rec {
       homepage = "http://www.bitcoin.org/";
       maintainers = [ maintainers.roconnor ];
       license = licenses.mit;
+      platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 2928317bbc7b..9cda2d93d7a5 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-2.9.0";
+  name = "calibre-2.10.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "0g6vhah736ps88maw3ggn7pcvnmani2mp8b29ksasv0683q7lldw";
+    sha256 = "06nya8r3bfkgfjsl83fl6l6g3ccw3mpmn3kih4i51gpcgma3aa6b";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/keybase-node-client/default.nix b/pkgs/applications/misc/keybase-node-client/default.nix
new file mode 100644
index 000000000000..bacd8d46fd56
--- /dev/null
+++ b/pkgs/applications/misc/keybase-node-client/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, callPackage, gnupg, utillinux }:
+
+with stdenv.lib;
+
+let 
+  nodePackages = callPackage (import <nixpkgs/pkgs/top-level/node-packages.nix>) {
+    neededNatives = [] ++ optional (stdenv.isLinux) utillinux;
+    self = nodePackages;
+    generated = ./package.nix;
+  };
+
+in nodePackages.buildNodePackage rec {
+  name = "keybase-node-client-${version}";
+  version = "0.7.0";
+
+  src = [(fetchurl {
+    url = "https://github.com/keybase/node-client/archive/v${version}.tar.gz";
+    sha256 = "0n73v4f61rq2dvy2yd3s4l8qvvjzp3ncqj70llm4i6cvbp9kym1v";
+  })];
+
+  deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));
+  buildInputs = [ makeWrapper gnupg ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/keybase" --set NODE_PATH "$out/lib/node_modules/keybase/node_modules/"
+  '';
+
+  passthru.names = ["keybase"];
+
+  meta = {
+    description = "CLI for keybase.io written in/for Node.js";
+    license = licenses.mit;
+    homepage = https://keybase.io/docs/command_line;
+    maintainers = with maintainers; [manveru];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/keybase-node-client/package.nix b/pkgs/applications/misc/keybase-node-client/package.nix
new file mode 100644
index 000000000000..85d10ad0ba45
--- /dev/null
+++ b/pkgs/applications/misc/keybase-node-client/package.nix
@@ -0,0 +1,2518 @@
+{ self, fetchurl, fetchgit ? null, lib }:
+
+{
+  by-spec."CSSselect"."~0.4.0" =
+    self.by-version."CSSselect"."0.4.1";
+  by-version."CSSselect"."0.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-CSSselect-0.4.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz";
+        name = "CSSselect-0.4.1.tgz";
+        sha1 = "f8ab7e1f8418ce63cda6eb7bd778a85d7ec492b2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."CSSselect" or []);
+    deps = [
+      self.by-version."CSSwhat"."0.4.7"
+      self.by-version."domutils"."1.4.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "CSSselect" ];
+  };
+  by-spec."CSSwhat"."0.4" =
+    self.by-version."CSSwhat"."0.4.7";
+  by-version."CSSwhat"."0.4.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-CSSwhat-0.4.7";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz";
+        name = "CSSwhat-0.4.7.tgz";
+        sha1 = "867da0ff39f778613242c44cfea83f0aa4ebdf9b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."CSSwhat" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "CSSwhat" ];
+  };
+  by-spec."argparse"."0.1.15" =
+    self.by-version."argparse"."0.1.15";
+  by-version."argparse"."0.1.15" = lib.makeOverridable self.buildNodePackage {
+    name = "node-argparse-0.1.15";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz";
+        name = "argparse-0.1.15.tgz";
+        sha1 = "28a1f72c43113e763220e5708414301c8840f0a1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."argparse" or []);
+    deps = [
+      self.by-version."underscore"."1.4.4"
+      self.by-version."underscore.string"."2.3.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "argparse" ];
+  };
+  "argparse" = self.by-version."argparse"."0.1.15";
+  by-spec."asn1"."0.1.11" =
+    self.by-version."asn1"."0.1.11";
+  by-version."asn1"."0.1.11" = lib.makeOverridable self.buildNodePackage {
+    name = "node-asn1-0.1.11";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+        name = "asn1-0.1.11.tgz";
+        sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."asn1" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "asn1" ];
+  };
+  by-spec."assert-plus"."0.1.2" =
+    self.by-version."assert-plus"."0.1.2";
+  by-version."assert-plus"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-assert-plus-0.1.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz";
+        name = "assert-plus-0.1.2.tgz";
+        sha1 = "d93ffdbb67ac5507779be316a7d65146417beef8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."assert-plus" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "assert-plus" ];
+  };
+  by-spec."async"."0.2.x" =
+    self.by-version."async"."0.2.10";
+  by-version."async"."0.2.10" = lib.makeOverridable self.buildNodePackage {
+    name = "node-async-0.2.10";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        name = "async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "async" ];
+  };
+  by-spec."async"."~0.9.0" =
+    self.by-version."async"."0.9.0";
+  by-version."async"."0.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-async-0.9.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async/-/async-0.9.0.tgz";
+        name = "async-0.9.0.tgz";
+        sha1 = "ac3613b1da9bed1b47510bb4651b8931e47146c7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "async" ];
+  };
+  by-spec."aws-sign2"."~0.5.0" =
+    self.by-version."aws-sign2"."0.5.0";
+  by-version."aws-sign2"."0.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-aws-sign2-0.5.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+        name = "aws-sign2-0.5.0.tgz";
+        sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."aws-sign2" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "aws-sign2" ];
+  };
+  by-spec."bitcoyne".">=0.0.6" =
+    self.by-version."bitcoyne"."0.0.6";
+  by-version."bitcoyne"."0.0.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-bitcoyne-0.0.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bitcoyne/-/bitcoyne-0.0.6.tgz";
+        name = "bitcoyne-0.0.6.tgz";
+        sha1 = "a309d1afe7554f2b380782428cd6f67a82183d2f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bitcoyne" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."kbpgp"."1.0.5"
+      self.by-version."pgp-utils"."0.0.27"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bitcoyne" ];
+  };
+  "bitcoyne" = self.by-version."bitcoyne"."0.0.6";
+  by-spec."bn"."^1.0.0" =
+    self.by-version."bn"."1.0.1";
+  by-version."bn"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-bn-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bn/-/bn-1.0.1.tgz";
+        name = "bn-1.0.1.tgz";
+        sha1 = "a153825e6b1eb2c2db7726149b047a07ce0a3bb3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bn" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bn" ];
+  };
+  by-spec."bn"."^1.0.1" =
+    self.by-version."bn"."1.0.1";
+  "bn" = self.by-version."bn"."1.0.1";
+  by-spec."boom"."0.4.x" =
+    self.by-version."boom"."0.4.2";
+  by-version."boom"."0.4.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-boom-0.4.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
+        name = "boom-0.4.2.tgz";
+        sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."boom" or []);
+    deps = [
+      self.by-version."hoek"."0.9.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "boom" ];
+  };
+  by-spec."cheerio"."0.13.0" =
+    self.by-version."cheerio"."0.13.0";
+  by-version."cheerio"."0.13.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cheerio-0.13.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cheerio/-/cheerio-0.13.0.tgz";
+        name = "cheerio-0.13.0.tgz";
+        sha1 = "44f5112044e0e0148300dd16bf8bbd7755ce65f1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cheerio" or []);
+    deps = [
+      self.by-version."htmlparser2"."3.4.0"
+      self.by-version."underscore"."1.4.4"
+      self.by-version."entities"."0.5.0"
+      self.by-version."CSSselect"."0.4.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cheerio" ];
+  };
+  "cheerio" = self.by-version."cheerio"."0.13.0";
+  by-spec."cli"."0.4.x" =
+    self.by-version."cli"."0.4.5";
+  by-version."cli"."0.4.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cli-0.4.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cli/-/cli-0.4.5.tgz";
+        name = "cli-0.4.5.tgz";
+        sha1 = "78f9485cd161b566e9a6c72d7170c4270e81db61";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cli" or []);
+    deps = [
+      self.by-version."glob"."4.0.6"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cli" ];
+  };
+  by-spec."cliff"."0.1.x" =
+    self.by-version."cliff"."0.1.9";
+  by-version."cliff"."0.1.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cliff-0.1.9";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz";
+        name = "cliff-0.1.9.tgz";
+        sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cliff" or []);
+    deps = [
+      self.by-version."colors"."0.6.2"
+      self.by-version."eyes"."0.1.8"
+      self.by-version."winston"."0.8.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cliff" ];
+  };
+  by-spec."codesign"."0.0.9" =
+    self.by-version."codesign"."0.0.9";
+  by-version."codesign"."0.0.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-codesign-0.0.9";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/codesign/-/codesign-0.0.9.tgz";
+        name = "codesign-0.0.9.tgz";
+        sha1 = "2da6b703f1d1cf2a76e8b1d48f44fa922e21b55f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."codesign" or []);
+    deps = [
+      self.by-version."argparse"."0.1.15"
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-logger"."0.0.5"
+      self.by-version."glob-to-regexp"."0.0.1"
+      self.by-version."tablify"."0.1.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "codesign" ];
+  };
+  "codesign" = self.by-version."codesign"."0.0.9";
+  by-spec."colors"."0.6.2" =
+    self.by-version."colors"."0.6.2";
+  by-version."colors"."0.6.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-colors-0.6.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
+        name = "colors-0.6.2.tgz";
+        sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."colors" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "colors" ];
+  };
+  "colors" = self.by-version."colors"."0.6.2";
+  by-spec."colors"."0.6.x" =
+    self.by-version."colors"."0.6.2";
+  by-spec."colors"."0.x.x" =
+    self.by-version."colors"."0.6.2";
+  by-spec."colors".">=0.6.2" =
+    self.by-version."colors"."0.6.2";
+  by-spec."colors"."~0.6.2" =
+    self.by-version."colors"."0.6.2";
+  by-spec."combined-stream"."~0.0.4" =
+    self.by-version."combined-stream"."0.0.5";
+  by-version."combined-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-combined-stream-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz";
+        name = "combined-stream-0.0.5.tgz";
+        sha1 = "29ed76e5c9aad07c4acf9ca3d32601cce28697a2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."combined-stream" or []);
+    deps = [
+      self.by-version."delayed-stream"."0.0.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "combined-stream" ];
+  };
+  by-spec."commander".">= 0.5.2" =
+    self.by-version."commander"."2.3.0";
+  by-version."commander"."2.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-commander-2.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/commander/-/commander-2.3.0.tgz";
+        name = "commander-2.3.0.tgz";
+        sha1 = "fd430e889832ec353b9acd1de217c11cb3eef873";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."commander" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "commander" ];
+  };
+  by-spec."commander"."~2.1.0" =
+    self.by-version."commander"."2.1.0";
+  by-version."commander"."2.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-commander-2.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
+        name = "commander-2.1.0.tgz";
+        sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."commander" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "commander" ];
+  };
+  by-spec."core-util-is"."~1.0.0" =
+    self.by-version."core-util-is"."1.0.1";
+  by-version."core-util-is"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-core-util-is-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz";
+        name = "core-util-is-1.0.1.tgz";
+        sha1 = "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."core-util-is" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "core-util-is" ];
+  };
+  by-spec."cryptiles"."0.2.x" =
+    self.by-version."cryptiles"."0.2.2";
+  by-version."cryptiles"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cryptiles-0.2.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
+        name = "cryptiles-0.2.2.tgz";
+        sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cryptiles" or []);
+    deps = [
+      self.by-version."boom"."0.4.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cryptiles" ];
+  };
+  by-spec."ctype"."0.5.2" =
+    self.by-version."ctype"."0.5.2";
+  by-version."ctype"."0.5.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ctype-0.5.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz";
+        name = "ctype-0.5.2.tgz";
+        sha1 = "fe8091d468a373a0b0c9ff8bbfb3425c00973a1d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ctype" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ctype" ];
+  };
+  by-spec."cycle"."1.0.x" =
+    self.by-version."cycle"."1.0.3";
+  by-version."cycle"."1.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cycle-1.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+        name = "cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cycle" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cycle" ];
+  };
+  by-spec."deep-equal"."0.2.1" =
+    self.by-version."deep-equal"."0.2.1";
+  by-version."deep-equal"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-deep-equal-0.2.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/deep-equal/-/deep-equal-0.2.1.tgz";
+        name = "deep-equal-0.2.1.tgz";
+        sha1 = "fad7a793224cbf0c3c7786f92ef780e4fc8cc878";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."deep-equal" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "deep-equal" ];
+  };
+  "deep-equal" = self.by-version."deep-equal"."0.2.1";
+  by-spec."deep-equal".">=0.2.1" =
+    self.by-version."deep-equal"."0.2.1";
+  by-spec."deep-equal"."~0.2.1" =
+    self.by-version."deep-equal"."0.2.1";
+  by-spec."delayed-stream"."0.0.5" =
+    self.by-version."delayed-stream"."0.0.5";
+  by-version."delayed-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-delayed-stream-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
+        name = "delayed-stream-0.0.5.tgz";
+        sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."delayed-stream" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "delayed-stream" ];
+  };
+  by-spec."docco"."~0.6.2" =
+    self.by-version."docco"."0.6.3";
+  by-version."docco"."0.6.3" = lib.makeOverridable self.buildNodePackage {
+    name = "docco-0.6.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/docco/-/docco-0.6.3.tgz";
+        name = "docco-0.6.3.tgz";
+        sha1 = "c47b5823d79563d6fc3abd49f3de48986e5522ee";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."docco" or []);
+    deps = [
+      self.by-version."commander"."2.3.0"
+      self.by-version."marked"."0.3.2"
+      self.by-version."fs-extra"."0.12.0"
+      self.by-version."underscore"."1.7.0"
+      self.by-version."highlight.js"."8.2.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "docco" ];
+  };
+  by-spec."domelementtype"."1" =
+    self.by-version."domelementtype"."1.1.1";
+  by-version."domelementtype"."1.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-domelementtype-1.1.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.1.tgz";
+        name = "domelementtype-1.1.1.tgz";
+        sha1 = "7887acbda7614bb0a3dbe1b5e394f77a8ed297cf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."domelementtype" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "domelementtype" ];
+  };
+  by-spec."domhandler"."2.2" =
+    self.by-version."domhandler"."2.2.0";
+  by-version."domhandler"."2.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-domhandler-2.2.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/domhandler/-/domhandler-2.2.0.tgz";
+        name = "domhandler-2.2.0.tgz";
+        sha1 = "ac9febfa988034b43f78ba056ebf7bd373416476";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."domhandler" or []);
+    deps = [
+      self.by-version."domelementtype"."1.1.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "domhandler" ];
+  };
+  by-spec."domutils"."1.3" =
+    self.by-version."domutils"."1.3.0";
+  by-version."domutils"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-domutils-1.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/domutils/-/domutils-1.3.0.tgz";
+        name = "domutils-1.3.0.tgz";
+        sha1 = "9ad4d59b5af6ca684c62fe6d768ef170e70df192";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."domutils" or []);
+    deps = [
+      self.by-version."domelementtype"."1.1.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "domutils" ];
+  };
+  by-spec."domutils"."1.4" =
+    self.by-version."domutils"."1.4.3";
+  by-version."domutils"."1.4.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-domutils-1.4.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz";
+        name = "domutils-1.4.3.tgz";
+        sha1 = "0865513796c6b306031850e175516baf80b72a6f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."domutils" or []);
+    deps = [
+      self.by-version."domelementtype"."1.1.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "domutils" ];
+  };
+  by-spec."entities"."0.x" =
+    self.by-version."entities"."0.5.0";
+  by-version."entities"."0.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-entities-0.5.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/entities/-/entities-0.5.0.tgz";
+        name = "entities-0.5.0.tgz";
+        sha1 = "f611cb5ae221050e0012c66979503fd7ae19cc49";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."entities" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "entities" ];
+  };
+  by-spec."eyes"."0.1.x" =
+    self.by-version."eyes"."0.1.8";
+  by-version."eyes"."0.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-eyes-0.1.8";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
+        name = "eyes-0.1.8.tgz";
+        sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."eyes" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "eyes" ];
+  };
+  by-spec."forever-agent"."~0.5.0" =
+    self.by-version."forever-agent"."0.5.2";
+  by-version."forever-agent"."0.5.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-forever-agent-0.5.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
+        name = "forever-agent-0.5.2.tgz";
+        sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."forever-agent" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "forever-agent" ];
+  };
+  by-spec."form-data"."~0.1.0" =
+    self.by-version."form-data"."0.1.4";
+  by-version."form-data"."0.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-form-data-0.1.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+        name = "form-data-0.1.4.tgz";
+        sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."form-data" or []);
+    deps = [
+      self.by-version."combined-stream"."0.0.5"
+      self.by-version."mime"."1.2.11"
+      self.by-version."async"."0.9.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "form-data" ];
+  };
+  by-spec."framed-msgpack-rpc"."1.1.4" =
+    self.by-version."framed-msgpack-rpc"."1.1.4";
+  by-version."framed-msgpack-rpc"."1.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-framed-msgpack-rpc-1.1.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/framed-msgpack-rpc/-/framed-msgpack-rpc-1.1.4.tgz";
+        name = "framed-msgpack-rpc-1.1.4.tgz";
+        sha1 = "54bfc5fbdf0c7c1b7691f20ffb31ef955c185db2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."framed-msgpack-rpc" or []);
+    deps = [
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."purepack"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "framed-msgpack-rpc" ];
+  };
+  "framed-msgpack-rpc" = self.by-version."framed-msgpack-rpc"."1.1.4";
+  by-spec."fs-extra".">= 0.6.0" =
+    self.by-version."fs-extra"."0.12.0";
+  by-version."fs-extra"."0.12.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-fs-extra-0.12.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fs-extra/-/fs-extra-0.12.0.tgz";
+        name = "fs-extra-0.12.0.tgz";
+        sha1 = "407cf6e11321e440d66f9486fba1cc9eb4c21868";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."fs-extra" or []);
+    deps = [
+      self.by-version."ncp"."0.6.0"
+      self.by-version."mkdirp"."0.5.0"
+      self.by-version."jsonfile"."2.0.0"
+      self.by-version."rimraf"."2.2.8"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "fs-extra" ];
+  };
+  by-spec."glob".">= 3.1.4" =
+    self.by-version."glob"."4.0.6";
+  by-version."glob"."4.0.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-glob-4.0.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob/-/glob-4.0.6.tgz";
+        name = "glob-4.0.6.tgz";
+        sha1 = "695c50bdd4e2fb5c5d370b091f388d3707e291a7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."glob" or []);
+    deps = [
+      self.by-version."graceful-fs"."3.0.2"
+      self.by-version."inherits"."2.0.1"
+      self.by-version."minimatch"."1.0.0"
+      self.by-version."once"."1.3.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob" ];
+  };
+  by-spec."glob-to-regexp".">=0.0.1" =
+    self.by-version."glob-to-regexp"."0.0.1";
+  by-version."glob-to-regexp"."0.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-glob-to-regexp-0.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.0.1.tgz";
+        name = "glob-to-regexp-0.0.1.tgz";
+        sha1 = "2a5f79f2ed3233d4ee9ea7b6412547000c3f9d75";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."glob-to-regexp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob-to-regexp" ];
+  };
+  by-spec."gpg-wrapper"."0.0.47" =
+    self.by-version."gpg-wrapper"."0.0.47";
+  by-version."gpg-wrapper"."0.0.47" = lib.makeOverridable self.buildNodePackage {
+    name = "node-gpg-wrapper-0.0.47";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/gpg-wrapper/-/gpg-wrapper-0.0.47.tgz";
+        name = "gpg-wrapper-0.0.47.tgz";
+        sha1 = "5de253269cb999e3e928a375971c7613bcb29d36";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."gpg-wrapper" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."iced-spawn"."0.0.10"
+      self.by-version."iced-utils"."0.1.21"
+      self.by-version."pgp-utils"."0.0.27"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "gpg-wrapper" ];
+  };
+  "gpg-wrapper" = self.by-version."gpg-wrapper"."0.0.47";
+  by-spec."graceful-fs"."^3.0.2" =
+    self.by-version."graceful-fs"."3.0.2";
+  by-version."graceful-fs"."3.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-graceful-fs-3.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz";
+        name = "graceful-fs-3.0.2.tgz";
+        sha1 = "2cb5bf7f742bea8ad47c754caeee032b7e71a577";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."graceful-fs" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "graceful-fs" ];
+  };
+  by-spec."hawk"."~1.0.0" =
+    self.by-version."hawk"."1.0.0";
+  by-version."hawk"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-hawk-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz";
+        name = "hawk-1.0.0.tgz";
+        sha1 = "b90bb169807285411da7ffcb8dd2598502d3b52d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."hawk" or []);
+    deps = [
+      self.by-version."hoek"."0.9.1"
+      self.by-version."boom"."0.4.2"
+      self.by-version."cryptiles"."0.2.2"
+      self.by-version."sntp"."0.2.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "hawk" ];
+  };
+  by-spec."highlight.js".">= 8.0.x" =
+    self.by-version."highlight.js"."8.2.0";
+  by-version."highlight.js"."8.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-highlight.js-8.2.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/highlight.js/-/highlight.js-8.2.0.tgz";
+        name = "highlight.js-8.2.0.tgz";
+        sha1 = "31ac0ea5d20f88f562948e7e8eb5a62e9e8c5e43";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."highlight.js" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "highlight.js" ];
+  };
+  by-spec."hoek"."0.9.x" =
+    self.by-version."hoek"."0.9.1";
+  by-version."hoek"."0.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-hoek-0.9.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
+        name = "hoek-0.9.1.tgz";
+        sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."hoek" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "hoek" ];
+  };
+  by-spec."htmlparser2"."~3.4.0" =
+    self.by-version."htmlparser2"."3.4.0";
+  by-version."htmlparser2"."3.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-htmlparser2-3.4.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.4.0.tgz";
+        name = "htmlparser2-3.4.0.tgz";
+        sha1 = "a1cd65f5823ad285e19d63b085ad722d0a51eae7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."htmlparser2" or []);
+    deps = [
+      self.by-version."domhandler"."2.2.0"
+      self.by-version."domutils"."1.3.0"
+      self.by-version."domelementtype"."1.1.1"
+      self.by-version."readable-stream"."1.1.13"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "htmlparser2" ];
+  };
+  by-spec."http-signature"."~0.10.0" =
+    self.by-version."http-signature"."0.10.0";
+  by-version."http-signature"."0.10.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-http-signature-0.10.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz";
+        name = "http-signature-0.10.0.tgz";
+        sha1 = "1494e4f5000a83c0f11bcc12d6007c530cb99582";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."http-signature" or []);
+    deps = [
+      self.by-version."assert-plus"."0.1.2"
+      self.by-version."asn1"."0.1.11"
+      self.by-version."ctype"."0.5.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "http-signature" ];
+  };
+  by-spec."iced-coffee-script"."~1.7.1-c" =
+    self.by-version."iced-coffee-script"."1.7.1-g";
+  by-version."iced-coffee-script"."1.7.1-g" = lib.makeOverridable self.buildNodePackage {
+    name = "iced-coffee-script-1.7.1-g";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-coffee-script/-/iced-coffee-script-1.7.1-g.tgz";
+        name = "iced-coffee-script-1.7.1-g.tgz";
+        sha1 = "41f9ccabe113bade608d519c10a41406a62c170b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-coffee-script" or []);
+    deps = [
+      self.by-version."docco"."0.6.3"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."mkdirp"."0.3.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-coffee-script" ];
+  };
+  "iced-coffee-script" = self.by-version."iced-coffee-script"."1.7.1-g";
+  by-spec."iced-data-structures"."0.0.5" =
+    self.by-version."iced-data-structures"."0.0.5";
+  by-version."iced-data-structures"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-data-structures-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-data-structures/-/iced-data-structures-0.0.5.tgz";
+        name = "iced-data-structures-0.0.5.tgz";
+        sha1 = "21de124f847fdeeb88f32cf232d3e3e600e05db4";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-data-structures" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-data-structures" ];
+  };
+  "iced-data-structures" = self.by-version."iced-data-structures"."0.0.5";
+  by-spec."iced-db"."0.0.4" =
+    self.by-version."iced-db"."0.0.4";
+  by-version."iced-db"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-db-0.0.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-db/-/iced-db-0.0.4.tgz";
+        name = "iced-db-0.0.4.tgz";
+        sha1 = "355bf9808998076013a0850ee33c6905dfb85a00";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-db" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."iced-utils"."0.1.21"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-db" ];
+  };
+  "iced-db" = self.by-version."iced-db"."0.0.4";
+  by-spec."iced-error"."0.0.9" =
+    self.by-version."iced-error"."0.0.9";
+  by-version."iced-error"."0.0.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-error-0.0.9";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-error/-/iced-error-0.0.9.tgz";
+        name = "iced-error-0.0.9.tgz";
+        sha1 = "c7c3057614c0a187d96b3d18c6d520e6b872ed37";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-error" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-error" ];
+  };
+  "iced-error" = self.by-version."iced-error"."0.0.9";
+  by-spec."iced-error".">=0.0.8" =
+    self.by-version."iced-error"."0.0.9";
+  by-spec."iced-error".">=0.0.9" =
+    self.by-version."iced-error"."0.0.9";
+  by-spec."iced-error"."~0.0.8" =
+    self.by-version."iced-error"."0.0.9";
+  by-spec."iced-expect"."0.0.3" =
+    self.by-version."iced-expect"."0.0.3";
+  by-version."iced-expect"."0.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-expect-0.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-expect/-/iced-expect-0.0.3.tgz";
+        name = "iced-expect-0.0.3.tgz";
+        sha1 = "206f271f27b200b9b538e2c0ca66a70209be1238";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-expect" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-expect" ];
+  };
+  "iced-expect" = self.by-version."iced-expect"."0.0.3";
+  by-spec."iced-lock"."^1.0.1" =
+    self.by-version."iced-lock"."1.0.1";
+  by-version."iced-lock"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-lock-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-lock/-/iced-lock-1.0.1.tgz";
+        name = "iced-lock-1.0.1.tgz";
+        sha1 = "0914a61a4d3dec69db8f871ef40f95417fa38986";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-lock" or []);
+    deps = [
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-lock" ];
+  };
+  "iced-lock" = self.by-version."iced-lock"."1.0.1";
+  by-spec."iced-logger"."0.0.5" =
+    self.by-version."iced-logger"."0.0.5";
+  by-version."iced-logger"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-logger-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-logger/-/iced-logger-0.0.5.tgz";
+        name = "iced-logger-0.0.5.tgz";
+        sha1 = "501852a410691cf7e9542598e04dfbfdadc51486";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-logger" or []);
+    deps = [
+      self.by-version."colors"."0.6.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-logger" ];
+  };
+  "iced-logger" = self.by-version."iced-logger"."0.0.5";
+  by-spec."iced-logger".">=0.0.3" =
+    self.by-version."iced-logger"."0.0.5";
+  by-spec."iced-runtime".">=0.0.1" =
+    self.by-version."iced-runtime"."1.0.1";
+  by-version."iced-runtime"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-runtime-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-runtime/-/iced-runtime-1.0.1.tgz";
+        name = "iced-runtime-1.0.1.tgz";
+        sha1 = "b2a8f4544241408d076c581ffa97c67d32e3d49b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-runtime" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-runtime" ];
+  };
+  "iced-runtime" = self.by-version."iced-runtime"."1.0.1";
+  by-spec."iced-runtime".">=0.0.1 <2.0.0-0" =
+    self.by-version."iced-runtime"."1.0.1";
+  by-spec."iced-runtime"."^1.0.0" =
+    self.by-version."iced-runtime"."1.0.1";
+  by-spec."iced-runtime"."^1.0.1" =
+    self.by-version."iced-runtime"."1.0.1";
+  by-spec."iced-spawn"."0.0.10" =
+    self.by-version."iced-spawn"."0.0.10";
+  by-version."iced-spawn"."0.0.10" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-spawn-0.0.10";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-spawn/-/iced-spawn-0.0.10.tgz";
+        name = "iced-spawn-0.0.10.tgz";
+        sha1 = "bef06e4fd98b73a519e6781bc3a4bdf2e78054f4";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-spawn" or []);
+    deps = [
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."semver"."2.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-spawn" ];
+  };
+  "iced-spawn" = self.by-version."iced-spawn"."0.0.10";
+  by-spec."iced-spawn".">=0.0.8" =
+    self.by-version."iced-spawn"."0.0.10";
+  by-spec."iced-test".">=0.0.16" =
+    self.by-version."iced-test"."0.0.19";
+  by-version."iced-test"."0.0.19" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-test-0.0.19";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-test/-/iced-test-0.0.19.tgz";
+        name = "iced-test-0.0.19.tgz";
+        sha1 = "0aff4cfa5170a0ebf9d888695b233e68cf60c634";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-test" or []);
+    deps = [
+      self.by-version."colors"."0.6.2"
+      self.by-version."deep-equal"."0.2.1"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."minimist"."1.1.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-test" ];
+  };
+  "iced-test" = self.by-version."iced-test"."0.0.19";
+  by-spec."iced-utils"."0.1.20" =
+    self.by-version."iced-utils"."0.1.20";
+  by-version."iced-utils"."0.1.20" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-utils-0.1.20";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-utils/-/iced-utils-0.1.20.tgz";
+        name = "iced-utils-0.1.20.tgz";
+        sha1 = "923cbc3c080511cb6cc8e3ccde6609548d2db3e8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-utils" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-utils" ];
+  };
+  "iced-utils" = self.by-version."iced-utils"."0.1.20";
+  by-spec."iced-utils".">=0.1.11" =
+    self.by-version."iced-utils"."0.1.21";
+  by-version."iced-utils"."0.1.21" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iced-utils-0.1.21";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iced-utils/-/iced-utils-0.1.21.tgz";
+        name = "iced-utils-0.1.21.tgz";
+        sha1 = "6f9fb61232c75f365340151794082a718ace436b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iced-utils" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iced-utils" ];
+  };
+  by-spec."iced-utils".">=0.1.16" =
+    self.by-version."iced-utils"."0.1.21";
+  by-spec."iced-utils".">=0.1.18" =
+    self.by-version."iced-utils"."0.1.21";
+  by-spec."inherits"."2" =
+    self.by-version."inherits"."2.0.1";
+  by-version."inherits"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-inherits-2.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+        name = "inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."inherits" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "inherits" ];
+  };
+  by-spec."inherits"."~2.0.1" =
+    self.by-version."inherits"."2.0.1";
+  by-spec."ipv6"."~3.1.1" =
+    self.by-version."ipv6"."3.1.1";
+  by-version."ipv6"."3.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "ipv6-3.1.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ipv6/-/ipv6-3.1.1.tgz";
+        name = "ipv6-3.1.1.tgz";
+        sha1 = "46da0e260af36fd9beb41297c987b7c21a2d9e1c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ipv6" or []);
+    deps = [
+      self.by-version."sprintf"."0.1.4"
+      self.by-version."cli"."0.4.5"
+      self.by-version."cliff"."0.1.9"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ipv6" ];
+  };
+  by-spec."isarray"."0.0.1" =
+    self.by-version."isarray"."0.0.1";
+  by-version."isarray"."0.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-isarray-0.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        name = "isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."isarray" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "isarray" ];
+  };
+  by-spec."json-stringify-safe"."~5.0.0" =
+    self.by-version."json-stringify-safe"."5.0.0";
+  by-version."json-stringify-safe"."5.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-json-stringify-safe-5.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz";
+        name = "json-stringify-safe-5.0.0.tgz";
+        sha1 = "4c1f228b5050837eba9d21f50c2e6e320624566e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."json-stringify-safe" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "json-stringify-safe" ];
+  };
+  by-spec."jsonfile"."^2.0.0" =
+    self.by-version."jsonfile"."2.0.0";
+  by-version."jsonfile"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-jsonfile-2.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/jsonfile/-/jsonfile-2.0.0.tgz";
+        name = "jsonfile-2.0.0.tgz";
+        sha1 = "c3944f350bd3c078b392e0aa1633b44662fcf06b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."jsonfile" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "jsonfile" ];
+  };
+  by-spec."kbpgp".">=1.0.2" =
+    self.by-version."kbpgp"."1.0.5";
+  by-version."kbpgp"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-kbpgp-1.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/kbpgp/-/kbpgp-1.0.5.tgz";
+        name = "kbpgp-1.0.5.tgz";
+        sha1 = "5dea54ffbe648494bd4afcdadae1323e1de909fa";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."kbpgp" or []);
+    deps = [
+      self.by-version."bn"."1.0.1"
+      self.by-version."deep-equal"."0.2.1"
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."keybase-compressjs"."1.0.1-c"
+      self.by-version."keybase-ecurve"."1.0.0"
+      self.by-version."pgp-utils"."0.0.27"
+      self.by-version."purepack"."1.0.1"
+      self.by-version."triplesec"."3.0.19"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "kbpgp" ];
+  };
+  "kbpgp" = self.by-version."kbpgp"."1.0.5";
+  by-spec."kbpgp"."^1.0.2" =
+    self.by-version."kbpgp"."1.0.5";
+  by-spec."keybase-compressjs"."^1.0.1-c" =
+    self.by-version."keybase-compressjs"."1.0.1-c";
+  by-version."keybase-compressjs"."1.0.1-c" = lib.makeOverridable self.buildNodePackage {
+    name = "node-keybase-compressjs-1.0.1-c";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/keybase-compressjs/-/keybase-compressjs-1.0.1-c.tgz";
+        name = "keybase-compressjs-1.0.1-c.tgz";
+        sha1 = "dc664a7f5d95584a534622a260297532f3ce9f9f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."keybase-compressjs" or []);
+    deps = [
+      self.by-version."commander"."2.1.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "keybase-compressjs" ];
+  };
+  by-spec."keybase-ecurve"."^1.0.0" =
+    self.by-version."keybase-ecurve"."1.0.0";
+  by-version."keybase-ecurve"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-keybase-ecurve-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/keybase-ecurve/-/keybase-ecurve-1.0.0.tgz";
+        name = "keybase-ecurve-1.0.0.tgz";
+        sha1 = "c6bc72adda4603fd3184fee7e99694ed8fd69ad2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."keybase-ecurve" or []);
+    deps = [
+      self.by-version."bn"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "keybase-ecurve" ];
+  };
+  by-spec."keybase-path"."0.0.15" =
+    self.by-version."keybase-path"."0.0.15";
+  by-version."keybase-path"."0.0.15" = lib.makeOverridable self.buildNodePackage {
+    name = "node-keybase-path-0.0.15";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/keybase-path/-/keybase-path-0.0.15.tgz";
+        name = "keybase-path-0.0.15.tgz";
+        sha1 = "94b95448fc4edf73e096366279bd28a469d5f72f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."keybase-path" or []);
+    deps = [
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "keybase-path" ];
+  };
+  "keybase-path" = self.by-version."keybase-path"."0.0.15";
+  by-spec."keybase-proofs"."^1.1.3" =
+    self.by-version."keybase-proofs"."1.1.3";
+  by-version."keybase-proofs"."1.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-keybase-proofs-1.1.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/keybase-proofs/-/keybase-proofs-1.1.3.tgz";
+        name = "keybase-proofs-1.1.3.tgz";
+        sha1 = "f2a1a77c7e978a70480fb6ef4fb236f413f729da";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."keybase-proofs" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-lock"."1.0.1"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."pgp-utils"."0.0.27"
+      self.by-version."triplesec"."3.0.19"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "keybase-proofs" ];
+  };
+  "keybase-proofs" = self.by-version."keybase-proofs"."1.1.3";
+  by-spec."libkeybase"."^0.0.6" =
+    self.by-version."libkeybase"."0.0.6";
+  by-version."libkeybase"."0.0.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-libkeybase-0.0.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/libkeybase/-/libkeybase-0.0.6.tgz";
+        name = "libkeybase-0.0.6.tgz";
+        sha1 = "03d19afe7ca48ca041d962f0885d373faca2e90e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."libkeybase" or []);
+    deps = [
+      self.by-version."iced-lock"."1.0.1"
+      self.by-version."iced-logger"."0.0.5"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."kbpgp"."1.0.5"
+      self.by-version."tweetnacl"."0.12.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "libkeybase" ];
+  };
+  "libkeybase" = self.by-version."libkeybase"."0.0.6";
+  by-spec."lru-cache"."2" =
+    self.by-version."lru-cache"."2.5.0";
+  by-version."lru-cache"."2.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-lru-cache-2.5.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
+        name = "lru-cache-2.5.0.tgz";
+        sha1 = "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lru-cache" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "lru-cache" ];
+  };
+  by-spec."marked".">= 0.2.7" =
+    self.by-version."marked"."0.3.2";
+  by-version."marked"."0.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "marked-0.3.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/marked/-/marked-0.3.2.tgz";
+        name = "marked-0.3.2.tgz";
+        sha1 = "015db158864438f24a64bdd61a0428b418706d09";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."marked" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "marked" ];
+  };
+  by-spec."merkle-tree"."0.0.12" =
+    self.by-version."merkle-tree"."0.0.12";
+  by-version."merkle-tree"."0.0.12" = lib.makeOverridable self.buildNodePackage {
+    name = "node-merkle-tree-0.0.12";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/merkle-tree/-/merkle-tree-0.0.12.tgz";
+        name = "merkle-tree-0.0.12.tgz";
+        sha1 = "c8d6f0e9489b828c1d02942b24514311bac5e30f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."merkle-tree" or []);
+    deps = [
+      self.by-version."deep-equal"."0.2.1"
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."iced-utils"."0.1.21"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "merkle-tree" ];
+  };
+  "merkle-tree" = self.by-version."merkle-tree"."0.0.12";
+  by-spec."mime"."~1.2.11" =
+    self.by-version."mime"."1.2.11";
+  by-version."mime"."1.2.11" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mime-1.2.11";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
+        name = "mime-1.2.11.tgz";
+        sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime" ];
+  };
+  by-spec."mime"."~1.2.9" =
+    self.by-version."mime"."1.2.11";
+  by-spec."minimatch"."^1.0.0" =
+    self.by-version."minimatch"."1.0.0";
+  by-version."minimatch"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimatch-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz";
+        name = "minimatch-1.0.0.tgz";
+        sha1 = "e0dd2120b49e1b724ce8d714c520822a9438576d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimatch" or []);
+    deps = [
+      self.by-version."lru-cache"."2.5.0"
+      self.by-version."sigmund"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimatch" ];
+  };
+  by-spec."minimist"."0.0.8" =
+    self.by-version."minimist"."0.0.8";
+  by-version."minimist"."0.0.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimist-0.0.8";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        name = "minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
+  by-spec."minimist".">=0.0.8" =
+    self.by-version."minimist"."1.1.0";
+  by-version."minimist"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimist-1.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz";
+        name = "minimist-1.1.0.tgz";
+        sha1 = "cdf225e8898f840a258ded44fc91776770afdc93";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
+  by-spec."minimist"."~0.0.1" =
+    self.by-version."minimist"."0.0.10";
+  by-version."minimist"."0.0.10" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimist-0.0.10";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
+        name = "minimist-0.0.10.tgz";
+        sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
+  by-spec."mkdirp"."0.3.5" =
+    self.by-version."mkdirp"."0.3.5";
+  by-version."mkdirp"."0.3.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mkdirp-0.3.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
+        name = "mkdirp-0.3.5.tgz";
+        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mkdirp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mkdirp" ];
+  };
+  "mkdirp" = self.by-version."mkdirp"."0.3.5";
+  by-spec."mkdirp"."^0.5.0" =
+    self.by-version."mkdirp"."0.5.0";
+  by-version."mkdirp"."0.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "mkdirp-0.5.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
+        name = "mkdirp-0.5.0.tgz";
+        sha1 = "1d73076a6df986cd9344e15e71fcc05a4c9abf12";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mkdirp" or []);
+    deps = [
+      self.by-version."minimist"."0.0.8"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mkdirp" ];
+  };
+  by-spec."mkdirp"."~0.3.5" =
+    self.by-version."mkdirp"."0.3.5";
+  by-spec."more-entropy".">=0.0.7" =
+    self.by-version."more-entropy"."0.0.7";
+  by-version."more-entropy"."0.0.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-more-entropy-0.0.7";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/more-entropy/-/more-entropy-0.0.7.tgz";
+        name = "more-entropy-0.0.7.tgz";
+        sha1 = "67bfc6f7a86f26fbc37aac83fd46d88c61d109b5";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."more-entropy" or []);
+    deps = [
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "more-entropy" ];
+  };
+  by-spec."mute-stream"."~0.0.4" =
+    self.by-version."mute-stream"."0.0.4";
+  by-version."mute-stream"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mute-stream-0.0.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz";
+        name = "mute-stream-0.0.4.tgz";
+        sha1 = "a9219960a6d5d5d046597aee51252c6655f7177e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mute-stream" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mute-stream" ];
+  };
+  by-spec."ncp"."^0.6.0" =
+    self.by-version."ncp"."0.6.0";
+  by-version."ncp"."0.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "ncp-0.6.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ncp/-/ncp-0.6.0.tgz";
+        name = "ncp-0.6.0.tgz";
+        sha1 = "df8ce021e262be21b52feb3d3e5cfaab12491f0d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ncp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ncp" ];
+  };
+  by-spec."network-byte-order"."~0.2.0" =
+    self.by-version."network-byte-order"."0.2.0";
+  by-version."network-byte-order"."0.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-network-byte-order-0.2.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/network-byte-order/-/network-byte-order-0.2.0.tgz";
+        name = "network-byte-order-0.2.0.tgz";
+        sha1 = "6ac11bf44bf610daeddbe90a09a5c817c6e0d2b3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."network-byte-order" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "network-byte-order" ];
+  };
+  by-spec."node-uuid"."~1.4.0" =
+    self.by-version."node-uuid"."1.4.1";
+  by-version."node-uuid"."1.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-node-uuid-1.4.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz";
+        name = "node-uuid-1.4.1.tgz";
+        sha1 = "39aef510e5889a3dca9c895b506c73aae1bac048";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."node-uuid" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "node-uuid" ];
+  };
+  by-spec."oauth-sign"."~0.3.0" =
+    self.by-version."oauth-sign"."0.3.0";
+  by-version."oauth-sign"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-oauth-sign-0.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz";
+        name = "oauth-sign-0.3.0.tgz";
+        sha1 = "cb540f93bb2b22a7d5941691a288d60e8ea9386e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."oauth-sign" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "oauth-sign" ];
+  };
+  by-spec."once"."^1.3.0" =
+    self.by-version."once"."1.3.1";
+  by-version."once"."1.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-once-1.3.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/once/-/once-1.3.1.tgz";
+        name = "once-1.3.1.tgz";
+        sha1 = "f3f3e4da5b7d27b5c732969ee3e67e729457b31f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."once" or []);
+    deps = [
+      self.by-version."wrappy"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "once" ];
+  };
+  by-spec."optimist"."0.6.1" =
+    self.by-version."optimist"."0.6.1";
+  by-version."optimist"."0.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-optimist-0.6.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz";
+        name = "optimist-0.6.1.tgz";
+        sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."optimist" or []);
+    deps = [
+      self.by-version."wordwrap"."0.0.2"
+      self.by-version."minimist"."0.0.10"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "optimist" ];
+  };
+  "optimist" = self.by-version."optimist"."0.6.1";
+  by-spec."pgp-utils".">=0.0.21" =
+    self.by-version."pgp-utils"."0.0.27";
+  by-version."pgp-utils"."0.0.27" = lib.makeOverridable self.buildNodePackage {
+    name = "node-pgp-utils-0.0.27";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/pgp-utils/-/pgp-utils-0.0.27.tgz";
+        name = "pgp-utils-0.0.27.tgz";
+        sha1 = "3c9afdc0c5d0674bd78ed5009e2d0aec20be32b3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."pgp-utils" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-runtime"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "pgp-utils" ];
+  };
+  by-spec."pgp-utils".">=0.0.22" =
+    self.by-version."pgp-utils"."0.0.27";
+  "pgp-utils" = self.by-version."pgp-utils"."0.0.27";
+  by-spec."pgp-utils".">=0.0.25" =
+    self.by-version."pgp-utils"."0.0.27";
+  by-spec."pkginfo"."0.3.x" =
+    self.by-version."pkginfo"."0.3.0";
+  by-version."pkginfo"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-pkginfo-0.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz";
+        name = "pkginfo-0.3.0.tgz";
+        sha1 = "726411401039fe9b009eea86614295d5f3a54276";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."pkginfo" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "pkginfo" ];
+  };
+  by-spec."progress"."1.1.3" =
+    self.by-version."progress"."1.1.3";
+  by-version."progress"."1.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-progress-1.1.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/progress/-/progress-1.1.3.tgz";
+        name = "progress-1.1.3.tgz";
+        sha1 = "42f89c5fc3b6f0408a0bdd68993b174f96aababf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."progress" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "progress" ];
+  };
+  "progress" = self.by-version."progress"."1.1.3";
+  by-spec."progress"."~1.1.2" =
+    self.by-version."progress"."1.1.8";
+  by-version."progress"."1.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-progress-1.1.8";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
+        name = "progress-1.1.8.tgz";
+        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."progress" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "progress" ];
+  };
+  by-spec."punycode".">=0.2.0" =
+    self.by-version."punycode"."1.3.1";
+  by-version."punycode"."1.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-punycode-1.3.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz";
+        name = "punycode-1.3.1.tgz";
+        sha1 = "710afe5123c20a1530b712e3e682b9118fe8058e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."punycode" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "punycode" ];
+  };
+  by-spec."purepack"."1.0.1" =
+    self.by-version."purepack"."1.0.1";
+  by-version."purepack"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-purepack-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/purepack/-/purepack-1.0.1.tgz";
+        name = "purepack-1.0.1.tgz";
+        sha1 = "9592f35bc22279a777885d3de04acc3555994f68";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."purepack" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "purepack" ];
+  };
+  "purepack" = self.by-version."purepack"."1.0.1";
+  by-spec."purepack".">=1" =
+    self.by-version."purepack"."1.0.1";
+  by-spec."purepack".">=1.0.1" =
+    self.by-version."purepack"."1.0.1";
+  by-spec."qs"."~0.6.0" =
+    self.by-version."qs"."0.6.6";
+  by-version."qs"."0.6.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-qs-0.6.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/qs/-/qs-0.6.6.tgz";
+        name = "qs-0.6.6.tgz";
+        sha1 = "6e015098ff51968b8a3c819001d5f2c89bc4b107";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."qs" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "qs" ];
+  };
+  by-spec."read"."~1.0.5" =
+    self.by-version."read"."1.0.5";
+  by-version."read"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-read-1.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/read/-/read-1.0.5.tgz";
+        name = "read-1.0.5.tgz";
+        sha1 = "007a3d169478aa710a491727e453effb92e76203";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."read" or []);
+    deps = [
+      self.by-version."mute-stream"."0.0.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "read" ];
+  };
+  "read" = self.by-version."read"."1.0.5";
+  by-spec."readable-stream"."1.1" =
+    self.by-version."readable-stream"."1.1.13";
+  by-version."readable-stream"."1.1.13" = lib.makeOverridable self.buildNodePackage {
+    name = "node-readable-stream-1.1.13";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz";
+        name = "readable-stream-1.1.13.tgz";
+        sha1 = "f6eef764f514c89e2b9e23146a75ba106756d23e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."readable-stream" or []);
+    deps = [
+      self.by-version."core-util-is"."1.0.1"
+      self.by-version."isarray"."0.0.1"
+      self.by-version."string_decoder"."0.10.31"
+      self.by-version."inherits"."2.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "readable-stream" ];
+  };
+  by-spec."request"."2.30.0" =
+    self.by-version."request"."2.30.0";
+  by-version."request"."2.30.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-request-2.30.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/request/-/request-2.30.0.tgz";
+        name = "request-2.30.0.tgz";
+        sha1 = "8e0d36f0806e8911524b072b64c5ee535a09d861";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."request" or []);
+    deps = [
+      self.by-version."qs"."0.6.6"
+      self.by-version."json-stringify-safe"."5.0.0"
+      self.by-version."forever-agent"."0.5.2"
+      self.by-version."node-uuid"."1.4.1"
+      self.by-version."mime"."1.2.11"
+      self.by-version."tough-cookie"."0.9.15"
+      self.by-version."form-data"."0.1.4"
+      self.by-version."tunnel-agent"."0.3.0"
+      self.by-version."http-signature"."0.10.0"
+      self.by-version."oauth-sign"."0.3.0"
+      self.by-version."hawk"."1.0.0"
+      self.by-version."aws-sign2"."0.5.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "request" ];
+  };
+  "request" = self.by-version."request"."2.30.0";
+  by-spec."rimraf"."^2.2.8" =
+    self.by-version."rimraf"."2.2.8";
+  by-version."rimraf"."2.2.8" = lib.makeOverridable self.buildNodePackage {
+    name = "rimraf-2.2.8";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
+        name = "rimraf-2.2.8.tgz";
+        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."rimraf" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "rimraf" ];
+  };
+  by-spec."semver"."2.2.1" =
+    self.by-version."semver"."2.2.1";
+  by-version."semver"."2.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "semver-2.2.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/semver/-/semver-2.2.1.tgz";
+        name = "semver-2.2.1.tgz";
+        sha1 = "7941182b3ffcc580bff1c17942acdf7951c0d213";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."semver" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "semver" ];
+  };
+  "semver" = self.by-version."semver"."2.2.1";
+  by-spec."semver"."~2.2.1" =
+    self.by-version."semver"."2.2.1";
+  by-spec."sigmund"."~1.0.0" =
+    self.by-version."sigmund"."1.0.0";
+  by-version."sigmund"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sigmund-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz";
+        name = "sigmund-1.0.0.tgz";
+        sha1 = "66a2b3a749ae8b5fb89efd4fcc01dc94fbe02296";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sigmund" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sigmund" ];
+  };
+  by-spec."sntp"."0.2.x" =
+    self.by-version."sntp"."0.2.4";
+  by-version."sntp"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sntp-0.2.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
+        name = "sntp-0.2.4.tgz";
+        sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sntp" or []);
+    deps = [
+      self.by-version."hoek"."0.9.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sntp" ];
+  };
+  by-spec."socks5-client"."0.x" =
+    self.by-version."socks5-client"."0.3.6";
+  by-version."socks5-client"."0.3.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-socks5-client-0.3.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/socks5-client/-/socks5-client-0.3.6.tgz";
+        name = "socks5-client-0.3.6.tgz";
+        sha1 = "4205b5791f2df77cf07527222558fe4e46aca2f1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."socks5-client" or []);
+    deps = [
+      self.by-version."ipv6"."3.1.1"
+      self.by-version."network-byte-order"."0.2.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "socks5-client" ];
+  };
+  by-spec."socks5-client"."^0.3.6" =
+    self.by-version."socks5-client"."0.3.6";
+  "socks5-client" = self.by-version."socks5-client"."0.3.6";
+  by-spec."socks5-client"."~0.3.4" =
+    self.by-version."socks5-client"."0.3.6";
+  by-spec."socks5-http-client"."^0.1.6" =
+    self.by-version."socks5-http-client"."0.1.6";
+  by-version."socks5-http-client"."0.1.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-socks5-http-client-0.1.6";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/socks5-http-client/-/socks5-http-client-0.1.6.tgz";
+        name = "socks5-http-client-0.1.6.tgz";
+        sha1 = "a915ba75573787876e5d3756ee4a81d60cd4b69b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."socks5-http-client" or []);
+    deps = [
+      self.by-version."socks5-client"."0.3.6"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "socks5-http-client" ];
+  };
+  "socks5-http-client" = self.by-version."socks5-http-client"."0.1.6";
+  by-spec."socks5-https-client"."^0.2.2" =
+    self.by-version."socks5-https-client"."0.2.2";
+  by-version."socks5-https-client"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-socks5-https-client-0.2.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/socks5-https-client/-/socks5-https-client-0.2.2.tgz";
+        name = "socks5-https-client-0.2.2.tgz";
+        sha1 = "b855e950e97c4fa6bca72a108f00278d33ac91d1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."socks5-https-client" or []);
+    deps = [
+      self.by-version."socks5-client"."0.3.6"
+      self.by-version."starttls"."0.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "socks5-https-client" ];
+  };
+  "socks5-https-client" = self.by-version."socks5-https-client"."0.2.2";
+  by-spec."sprintf"."0.1.x" =
+    self.by-version."sprintf"."0.1.4";
+  by-version."sprintf"."0.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sprintf-0.1.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sprintf/-/sprintf-0.1.4.tgz";
+        name = "sprintf-0.1.4.tgz";
+        sha1 = "6f870a8f4aae1c7fe53eee02b6ca31aa2d78863b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sprintf" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sprintf" ];
+  };
+  by-spec."stack-trace"."0.0.x" =
+    self.by-version."stack-trace"."0.0.9";
+  by-version."stack-trace"."0.0.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-stack-trace-0.0.9";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
+        name = "stack-trace-0.0.9.tgz";
+        sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."stack-trace" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "stack-trace" ];
+  };
+  by-spec."starttls"."0.x" =
+    self.by-version."starttls"."0.2.1";
+  by-version."starttls"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-starttls-0.2.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/starttls/-/starttls-0.2.1.tgz";
+        name = "starttls-0.2.1.tgz";
+        sha1 = "b98d3e5e778d46f199c843a64f889f0347c6d19a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."starttls" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "starttls" ];
+  };
+  by-spec."string_decoder"."~0.10.x" =
+    self.by-version."string_decoder"."0.10.31";
+  by-version."string_decoder"."0.10.31" = lib.makeOverridable self.buildNodePackage {
+    name = "node-string_decoder-0.10.31";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        name = "string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."string_decoder" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "string_decoder" ];
+  };
+  by-spec."tablify"."0.1.5" =
+    self.by-version."tablify"."0.1.5";
+  by-version."tablify"."0.1.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tablify-0.1.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tablify/-/tablify-0.1.5.tgz";
+        name = "tablify-0.1.5.tgz";
+        sha1 = "47160ce2918be291d63cecceddb5254dd72982c7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tablify" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tablify" ];
+  };
+  "tablify" = self.by-version."tablify"."0.1.5";
+  by-spec."tablify".">=0.1.5" =
+    self.by-version."tablify"."0.1.5";
+  by-spec."timeago"."0.1.0" =
+    self.by-version."timeago"."0.1.0";
+  by-version."timeago"."0.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-timeago-0.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/timeago/-/timeago-0.1.0.tgz";
+        name = "timeago-0.1.0.tgz";
+        sha1 = "21176a84d469be35ee431c5c48c0b6aba1f72464";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."timeago" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "timeago" ];
+  };
+  "timeago" = self.by-version."timeago"."0.1.0";
+  by-spec."tough-cookie"."~0.9.15" =
+    self.by-version."tough-cookie"."0.9.15";
+  by-version."tough-cookie"."0.9.15" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tough-cookie-0.9.15";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz";
+        name = "tough-cookie-0.9.15.tgz";
+        sha1 = "75617ac347e3659052b0350131885829677399f6";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tough-cookie" or []);
+    deps = [
+      self.by-version."punycode"."1.3.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tough-cookie" ];
+  };
+  by-spec."triplesec".">=3.0.16" =
+    self.by-version."triplesec"."3.0.19";
+  by-version."triplesec"."3.0.19" = lib.makeOverridable self.buildNodePackage {
+    name = "node-triplesec-3.0.19";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/triplesec/-/triplesec-3.0.19.tgz";
+        name = "triplesec-3.0.19.tgz";
+        sha1 = "1cf858ccfcc133a3e884ff7d37aedf3b306c32f9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."triplesec" or []);
+    deps = [
+      self.by-version."iced-error"."0.0.9"
+      self.by-version."iced-lock"."1.0.1"
+      self.by-version."iced-runtime"."1.0.1"
+      self.by-version."more-entropy"."0.0.7"
+      self.by-version."progress"."1.1.8"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "triplesec" ];
+  };
+  "triplesec" = self.by-version."triplesec"."3.0.19";
+  by-spec."triplesec".">=3.0.19" =
+    self.by-version."triplesec"."3.0.19";
+  by-spec."tunnel-agent"."~0.3.0" =
+    self.by-version."tunnel-agent"."0.3.0";
+  by-version."tunnel-agent"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tunnel-agent-0.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz";
+        name = "tunnel-agent-0.3.0.tgz";
+        sha1 = "ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tunnel-agent" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tunnel-agent" ];
+  };
+  by-spec."tweetnacl"."^0.12.0" =
+    self.by-version."tweetnacl"."0.12.2";
+  by-version."tweetnacl"."0.12.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tweetnacl-0.12.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.12.2.tgz";
+        name = "tweetnacl-0.12.2.tgz";
+        sha1 = "bd59f890507856fb0a1136acc3a8b44547e29ddb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tweetnacl" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tweetnacl" ];
+  };
+  by-spec."underscore".">= 1.0.0" =
+    self.by-version."underscore"."1.7.0";
+  by-version."underscore"."1.7.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-underscore-1.7.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz";
+        name = "underscore-1.7.0.tgz";
+        sha1 = "6bbaf0877500d36be34ecaa584e0db9fef035209";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."underscore" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "underscore" ];
+  };
+  by-spec."underscore"."~1.4" =
+    self.by-version."underscore"."1.4.4";
+  by-version."underscore"."1.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-underscore-1.4.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
+        name = "underscore-1.4.4.tgz";
+        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."underscore" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "underscore" ];
+  };
+  by-spec."underscore"."~1.4.3" =
+    self.by-version."underscore"."1.4.4";
+  by-spec."underscore.string"."~2.3.1" =
+    self.by-version."underscore.string"."2.3.3";
+  by-version."underscore.string"."2.3.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-underscore.string-2.3.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz";
+        name = "underscore.string-2.3.3.tgz";
+        sha1 = "71c08bf6b428b1133f37e78fa3a21c82f7329b0d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."underscore.string" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "underscore.string" ];
+  };
+  by-spec."winston"."0.8.x" =
+    self.by-version."winston"."0.8.0";
+  by-version."winston"."0.8.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-winston-0.8.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/winston/-/winston-0.8.0.tgz";
+        name = "winston-0.8.0.tgz";
+        sha1 = "61d0830fa699706212206b0a2b5ca69a93043668";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."winston" or []);
+    deps = [
+      self.by-version."async"."0.2.10"
+      self.by-version."colors"."0.6.2"
+      self.by-version."cycle"."1.0.3"
+      self.by-version."eyes"."0.1.8"
+      self.by-version."pkginfo"."0.3.0"
+      self.by-version."stack-trace"."0.0.9"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "winston" ];
+  };
+  by-spec."wordwrap"."~0.0.2" =
+    self.by-version."wordwrap"."0.0.2";
+  by-version."wordwrap"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-wordwrap-0.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+        name = "wordwrap-0.0.2.tgz";
+        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."wordwrap" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "wordwrap" ];
+  };
+  by-spec."wrappy"."1" =
+    self.by-version."wrappy"."1.0.1";
+  by-version."wrappy"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-wrappy-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz";
+        name = "wrappy-1.0.1.tgz";
+        sha1 = "1e65969965ccbc2db4548c6b84a6f2c5aedd4739";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."wrappy" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "wrappy" ];
+  };
+}
diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix
index 38606d798731..8f7fc3b0e261 100644
--- a/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl, qt4 }:
+{ stdenv, fetchFromGitHub, qt }:
 
 let
-  version = "1.07.98";
+  version = "1.08.02";
 in
 stdenv.mkDerivation {
   name = "qtbitcointrader-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/bitcointrader/SRC/QtBitcoinTrader-${version}.tar.gz";
-    sha256 = "1irz17q71fx64dfkmgajlyva7d1wifv4bxgb2iwz7d69rvhzaqzx";
+  src = fetchFromGitHub {
+    owner = "JulyIGHOR";
+    repo = "QtBitcoinTrader";
+    rev = "452db3ee9447b8f9e7d63253f834b31394b23d92";
+    sha256 = "1l2a021dy2j4sr4nmq7wn27r2zli9nigwbviqzain3nlyzq9fjpg";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ qt ];
 
   postUnpack = "sourceRoot=\${sourceRoot}/src";
 
@@ -23,11 +25,11 @@ stdenv.mkDerivation {
         QtBitcoinTrader_Desktop.pro
   '';
 
-  meta = {
-    description = "Secure bitcoin trading client";
-    homepage = http://qtopentrader.com;
-    license = stdenv.lib.licenses.lgpl21Plus;
-    platforms = stdenv.lib.platforms.linux;  # arbitrary choice
-    maintainers = [ stdenv.lib.maintainers.emery ];
-  };
-}
\ No newline at end of file
+  meta = with stdenv.lib;
+    { description = "Secure bitcoin trading client";
+      homepage = https://centrabit.com/;
+      license = licenses.lgpl3;
+      platforms = platforms.linux;  # arbitrary choice
+      maintainers = [ maintainers.emery ];
+    };
+}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index 2a23d90f8443..656a639b2c35 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.411";
+  version = "11.2.202.418";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,7 +47,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "1983rj824bhzk48yhgminsiil778vwq0217hfrhbmymhrq3p7gzd";
+        sha256 = "0c7iid6apab99axrhl509hycbc4yc55k8xrh0pvr005q5jlmx99n";
       }
     else if stdenv.system == "i686-linux" then
       if debug then
@@ -60,7 +60,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "1bxp94s63i3136pjxgcm8106mqzaj4h096mkf7iq6ddkcvi0cxzn";
+        sha256 = "17mpjvkvvb7wwmyvwz93w7q4lvjrpma1f9lcf83i927jqpzg8x73";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/sniffers/ettercap/default.nix b/pkgs/applications/networking/sniffers/ettercap/default.nix
index 3994563cf3eb..7e32a26abf18 100644
--- a/pkgs/applications/networking/sniffers/ettercap/default.nix
+++ b/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchurl, cmake, libpcap, libnet, zlib, curl, pcre,
+{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre,
   openssl, ncurses, glib, gtk, atk, pango, flex, bison }:
 
 stdenv.mkDerivation rec {
   name = "ettercap-${version}";
-  version = "0.8.0";
+  version = "0.8.1";
 
-  src = fetchurl {
-    url = "https://github.com/Ettercap/ettercap/archive/v${version}.tar.gz";
-    sha256 = "1g69782wk2hag8h76jqy81szw5jhvqqnn3m4v0wjkbv9zjxy44w0";
+  src = fetchFromGitHub {
+    owner = "Ettercap";
+    repo = "ettercap";
+    rev = "v${version}";
+    sha256 = "017398fiqcl2x1bjfnz97y6j8v5n83gbsniy73vbx21kmhh5pacg";
   };
 
   buildInputs = [
@@ -16,7 +18,8 @@ stdenv.mkDerivation rec {
   ];
 
   preConfigure = ''
-    substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc
+    substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \
+                                     --replace /usr \$\{INSTALL_PREFIX\}
   '';
 
   cmakeFlags = [
@@ -24,10 +27,11 @@ stdenv.mkDerivation rec {
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
   ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Comprehensive suite for man in the middle attacks";
     homepage = http://ettercap.github.io/ettercap/;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index fbb57a658120..7ba69a9fc182 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
       # Install git-subtree.
       pushd contrib/subtree
       make
-      make install install-doc
+      make install ${stdenv.lib.optionalString withManual "install-doc"}
       popd
       rm -rf contrib/subtree
 
diff --git a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
index 50c42c5c9d4e..5b1e2041e4aa 100644
--- a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "github-backup";
-  version = "1.20141031";
-  sha256 = "1rg8hz7g12k6h3vflm51l6gdi0wckmxwdq1213ykrbl8w8bvlkm8";
+  version = "1.20141110";
+  sha256 = "0675zcijfap757076r3j7js4iadnj1jbihmchf6ikzaanczmq1kg";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 96a3d2abfc66..c48d74249e19 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -1,25 +1,20 @@
-{ stdenv, fetchurl, gcc, unzip, curl }:
+{ stdenv, fetchurl, unzip, curl }:
 
 stdenv.mkDerivation {
-  name = "dmd-2.064.2";
+  name = "dmd-2.066.1";
 
   src = fetchurl {
-    url = http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip;
-    sha256 = "1i0jdybigffwyb7c43j0c4aayxx3b93zzqrjxyw6zgp06yhi06pm";
+    url = http://downloads.dlang.org/releases/2014/dmd.2.066.1.zip;
+    sha256 = "1qifwgrl6h232zsnvcx3kmb5d0fsy7j9zv17r3b4vln7x5rvzc66";
   };
 
-  buildInputs = [ gcc unzip curl ];
+  buildInputs = [ unzip curl ];
 
-  configurePhase = "";
-  patchPhase = ''
-      cp src/VERSION src/dmd/
-      cp license.txt src/phobos/LICENSE_1_0.txt
-  '';
   buildPhase = ''
       cd src/dmd
       make -f posix.mak INSTALL_DIR=$out
       export DMD=$PWD/dmd
-      cd ../druntime 
+      cd ../druntime
       make -f posix.mak INSTALL_DIR=$out DMD=$DMD
       cd ../phobos
       make -f posix.mak INSTALL_DIR=$out DMD=$DMD
@@ -28,25 +23,36 @@ stdenv.mkDerivation {
 
   installPhase = ''
       cd src/dmd
-      tee dmd.conf.default << EOF
-          [Environment]
-          DFLAGS=-I$out/import -L-L$out/lib
-      EOF
+      mkdir $out
+      mkdir $out/bin
+      cp dmd $out/bin
+
+      cd ../druntime
+      mkdir $out/include
+      mkdir $out/include/d2
+      cp -r import/* $out/include/d2
 
-      make -f posix.mak INSTALL_DIR=$out install
-      export DMD=$PWD/dmd
-      cd ../druntime 
-      make -f posix.mak INSTALL_DIR=$out install
       cd ../phobos
-      make -f posix.mak INSTALL_DIR=$out install
-      cd ../..
+      mkdir $out/lib
+      ${let bits = if stdenv.is64bit then "64" else "32"; in
+      "cp generated/linux/release/${bits}/libphobos2.a $out/lib"
+      }
+
+      cp -r std $out/include/d2
+      cp -r etc $out/include/d2
+
+      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
+      EOF
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "D language compiler";
     homepage = http://dlang.org/;
-    license = "open source, see included files";
-    maintainers = with stdenv.lib.maintainers; [ vlstill ];
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.free; # parts under different licenses
+    platforms = platforms.unix;
   };
 }
+
diff --git a/pkgs/development/compilers/mozart/binary.nix b/pkgs/development/compilers/mozart/binary.nix
index 57e339204bd0..bcaf917b3c3c 100644
--- a/pkgs/development/compilers/mozart/binary.nix
+++ b/pkgs/development/compilers/mozart/binary.nix
@@ -22,9 +22,15 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     homepage = "http://www.mozart-oz.org/";
-    description = "The Mozart Programming System combines ongoing research in programming language design and implementation, constraint logic programming, distributed computing, and human-computer interfaces. Mozart implements the Oz language and provides both expressive power and advanced functionality.";
-
+    description = "Multiplatform implementation of the Oz programming language";
+    longDescription = ''
+      The Mozart Programming System combines ongoing research in
+      programming language design and implementation, constraint logic
+      programming, distributed computing, and human-computer
+      interfaces. Mozart implements the Oz language and provides both
+      expressive power and advanced functionality.
+    '';
     license = licenses.mit;
-    platforms = ["x86_64-linux"];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/compilers/rdmd/default.nix b/pkgs/development/compilers/rdmd/default.nix
index 621ace195bbe..f70b8f448b48 100644
--- a/pkgs/development/compilers/rdmd/default.nix
+++ b/pkgs/development/compilers/rdmd/default.nix
@@ -1,29 +1,29 @@
-{ stdenv, fetchurl, writeText, lib, dmd }:
+{stdenv, lib, fetchgit, dmd}:
 
 stdenv.mkDerivation {
-  name = "rdmd-2.064";
-
-  src = fetchurl {
-    url = https://raw2.github.com/D-Programming-Language/tools/2.064/rdmd.d;
-    sha256 = "0b1g3ng6bkanvg00r6xb4ycpbh9x8b9dw589av665azxbcraqrs1";
-    name = "rdmd-src";
-  };
+  name = "rdmd-20141113";
 
   buildInputs = [ dmd ];
 
-  builder = writeText "drmd-builder.sh" ''
-      source $stdenv/setup
-      cp $src rdmd.d
-      dmd rdmd.d
-      mkdir -p $out/bin
-      cp rdmd $out/bin/
+  src = fetchgit {
+    url = git://github.com/D-Programming-Language/tools.git;
+    rev = "f496c68ee4e776597bd7382aa47f05da698a69e";
+    sha256 = "0vbhmz8nbh8ayml4vad0239kfg982vqfyqqrjv6wrlnjah97n5ms";
+  };
+
+  buildPhase = ''
+    dmd rdmd.d
   '';
 
+  installPhase = ''
+    mkdir -p $out/bin
+    cp rdmd $out/bin/
+	'';
+
   meta = {
     description = "Wrapper for D language compiler";
     homepage = http://dlang.org/rdmd.html;
     license = lib.licenses.boost;
-    maintainers = with stdenv.lib.maintainers; [ vlstill ];
     platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 09418f5f2af5..17c0bed7caa0 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, sbclBootstrap, clisp}:
+{ stdenv, fetchurl, sbclBootstrap, clisp, which}:
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0nmb9amygr5flzk2z9fa6wzwqknbgd2qrkybxkxkamvbdwyayvzr";
   };
 
-  buildInputs = [ ]
+  buildInputs = [ which ]
     ++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
     ++ (stdenv.lib.optional stdenv.isLinux clisp)
     ;
@@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
     sed -i src/code/target-load.lisp -e \
       '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
 
+    # Fix software version retrieval
+    sed -e "s@/bin/uname@$(which uname)@g" -i src/code/*-os.lisp
+
     # Fix the tests
     sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
     sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
diff --git a/pkgs/development/coq-modules/unimath/default.nix b/pkgs/development/coq-modules/unimath/default.nix
new file mode 100644
index 000000000000..e16156dec530
--- /dev/null
+++ b/pkgs/development/coq-modules/unimath/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchgit, coq}:
+
+stdenv.mkDerivation rec {
+
+  name = "coq-unimath-${coq.coq-version}-${version}";
+  version = "a2714eca";
+
+  src = fetchgit {
+    url = git://github.com/UniMath/UniMath.git;
+    rev = "a2714eca29444a595cd280ea961ec33d17712009";
+    sha256 = "0brhbslx4sxl8m9nxjbdl91gi99vcrikykl6b00f4cx5ww43csln";
+  };
+
+  buildInputs = [ coq.ocaml coq.camlp5 ];
+  propagatedBuildInputs = [ coq ];
+
+  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/UniMath/UniMath;
+    description = "UniMath aims to formalize a substantial body of mathematics using the univalent point of view.";
+    maintainers = with maintainers; [ jwiegley ];
+    platforms = coq.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/interpreters/nix-exec/default.nix b/pkgs/development/interpreters/nix-exec/default.nix
index 66cd199373e1..f2fcfc1ad77c 100644
--- a/pkgs/development/interpreters/nix-exec/default.nix
+++ b/pkgs/development/interpreters/nix-exec/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, nix, git }: let
-  version = "2.0.1";
+  version = "2.0.2";
 in stdenv.mkDerivation {
   name = "nix-exec-${version}";
 
   src = fetchurl {
     url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
 
-    sha256 = "1iyz19c15yw0p5lgfbfh8arja2cy3apx5697cm671j4qzjkws32p";
+    sha256 = "0vgvvj0qywx9a1ihc8nddc3fcw69dinf136spw4i7qz4bszbs9j5";
   };
 
   buildInputs = [ pkgconfig nix git ];
diff --git a/pkgs/development/interpreters/pypy/2.4/default.nix b/pkgs/development/interpreters/pypy/2.4/default.nix
index 786622fe4cce..4c9bf13937cd 100644
--- a/pkgs/development/interpreters/pypy/2.4/default.nix
+++ b/pkgs/development/interpreters/pypy/2.4/default.nix
@@ -95,11 +95,12 @@ let
          --set LIBRARY_PATH "${LIBRARY_PATH}"
     '';
 
-    passthru = {
+    passthru = rec {
       inherit zlibSupport libPrefix;
       executable = "pypy";
       isPypy = true;
       buildEnv = callPackage ../../python/wrapper.nix { python = self; };
+      interpreter = "${self}/bin/${executable}";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index bb6dea2a4a3e..3894f401d4ae 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -93,6 +93,7 @@ let
       libPrefix = "python${majorVersion}";
       executable = libPrefix;
       sitePackages = "lib/${libPrefix}/site-packages";
+      interpreter = "${self}/bin/${executable}";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index 85970641daaf..3201d7520d13 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -101,6 +101,7 @@ let
       libPrefix = "python${majorVersion}";
       executable = libPrefix;
       sitePackages = "lib/${libPrefix}/site-packages";
+      interpreter = "${self}/bin/${executable}";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/3.2/default.nix b/pkgs/development/interpreters/python/3.2/default.nix
index 9222f9fc4e11..d3f5c6e1f138 100644
--- a/pkgs/development/interpreters/python/3.2/default.nix
+++ b/pkgs/development/interpreters/python/3.2/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation {
     isPy32 = true;
     is_py3k = true;  # deprecated
     sitePackages = "lib/${libPrefix}/site-packages";
+    interpreter = "${self}/bin/${executable}";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index f96167018297..1f91d1bbaf43 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation {
     isPy33 = true;
     is_py3k = true;  # deprecated
     sitePackages = "lib/${libPrefix}/site-packages";
+    interpreter = "${self}/bin/${executable}";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix
index e585c6c148dd..3cadfc2d22f6 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/3.4/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation {
     isPy34 = true;
     is_py3k = true;  # deprecated
     sitePackages = "lib/${libPrefix}/site-packages";
+    interpreter = "${self}/bin/${executable}";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 310b0d935420..8c26d1f89ef2 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -1,38 +1,47 @@
-{ stdenv, fetchurl, cairo, file, pango, glib, gtk
-, which, libtool, makeWrapper, libjpeg, libpng
-, fontconfig, liberation_ttf, sqlite, openssl } :
+{ stdenv, fetchurl, cairo, file, fontconfig, glib, gtk, freefont_ttf
+, libjpeg, libpng, libtool, makeWrapper, openssl, pango, sqlite, which } :
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "6.1";
+  version = "6.1.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
-    sha256 = "fde283bf5899bb9266ce721db44631c9bac4a4864a7c3211de413fd9503178c6";
+    sha256 = "090269522d20e7a5ce85d2251a126745746ebf5e87554c05efe03f3b7173da75";
   };
 
-  # Various racket executables do run-time searches for these.
-  ffiSharedLibs = "${glib}/lib:${cairo}/lib:${pango}/lib:${gtk}/lib:${libjpeg}/lib:${libpng}/lib:${sqlite}/lib:${openssl}/lib";
+  # Various Racket executables do runtime searches for these.
+  ffiSharedLibs = "${cairo}/lib:${fontconfig}/lib:${glib}/lib:${gtk}/lib:${libjpeg}/lib:"
+                + "${libpng}/lib:${openssl}/lib:${pango}/lib:${sqlite}/lib";
 
-  buildInputs = [ file libtool which makeWrapper fontconfig liberation_ttf sqlite ];
+  buildInputs = [ file fontconfig freefont_ttf libtool makeWrapper sqlite which ];
 
   preConfigure = ''
     export LD_LIBRARY_PATH=${ffiSharedLibs}:$LD_LIBRARY_PATH
 
-    # Chroot builds do not have access to /etc/fonts/fonts.conf, but the Racket bootstrap
-    # needs a working fontconfig, so here a simple standin is used.
+    # Chroot builds do not have access to /etc/fonts/fonts.conf,
+    # but the Racket bootstrap needs a working fontconfig,
+    # so here a simple temporary stand-in is used.
     mkdir chroot-fontconfig
     cat ${fontconfig}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
     sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
-    echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf
+    echo "<dir>${freefont_ttf}</dir>" >> chroot-fontconfig/fonts.conf
     echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
 
+    # remove extraneous directories from temporary fonts.conf
+    sed -e 's@<dir></dir>@@g' \
+        -e 's@<dir prefix="xdg">fonts</dir>@@g' \
+        -e 's@<dir>~/.fonts</dir>@@g' \
+        -e 's@<cachedir prefix="xdg">fontconfig</cachedir>@@g' \
+        -e 's@<cachedir>~/.fontconfig</cachedir>@@g' \
+        -i chroot-fontconfig/fonts.conf
+
     export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
 
     cd src
     sed -e 's@/usr/bin/uname@'"$(which uname)"'@g' -i configure
-    sed -e 's@/usr/bin/file@'"$(which file)"'@g' -i foreign/libffi/configure 
+    sed -e 's@/usr/bin/file@'"$(which file)"'@g' -i foreign/libffi/configure
   '';
 
   configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
@@ -41,25 +50,25 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     for p in $(ls $out/bin/) ; do
-      wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}" ;
+      wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}";
     done
   '';
 
   meta = {
-    description = "Programming language derived from Scheme (formerly called PLT Scheme)";
+    description = "A programmable programming language";
     longDescription = ''
-      Racket (formerly called PLT Scheme) is a programming language derived
-      from Scheme. The Racket project has four primary components: the
-      implementation of Racket, a JIT compiler; DrRacket, the Racket program
-      development environment; the TeachScheme! outreach, an attempt to turn
-      Computing and Programming into "an indispensable part of the liberal
-      arts curriculum"; and PLaneT, Racket's web-based package
-      distribution system for user-contributed packages.
+      Racket is a full-spectrum programming language. It goes beyond
+      Lisp and Scheme with dialects that support objects, types,
+      laziness, and more. Racket enables programmers to link
+      components written in different dialects, and it empowers
+      programmers to create new, project-specific dialects. Racket's
+      libraries support applications from web servers and databases to
+      GUIs and charts.
     '';
 
     homepage = http://racket-lang.org/;
-    license = stdenv.lib.licenses.lgpl2Plus; # and licenses of contained libraries
-    maintainers = [ stdenv.lib.maintainers.kkallio ];
+    license = stdenv.lib.licenses.lgpl3;
+    maintainers = with stdenv.lib.maintainers; [ kkallio henrytill ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/clearsilver/default.nix b/pkgs/development/libraries/clearsilver/default.nix
index 200bf034dc64..34a26e9da86b 100644
--- a/pkgs/development/libraries/clearsilver/default.nix
+++ b/pkgs/development/libraries/clearsilver/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python }:
 
-stdenv.mkDerivation {
-  name = "clearsilver-0.10.3";
+stdenv.mkDerivation rec {
+  name = "clearsilver-0.10.5";
 
   src = fetchurl {
-    url = http://www.clearsilver.net/downloads/clearsilver-0.10.3.tar.gz;
-    sha256 = "1lhbbf5rrqxb44y5clga7iifcfrh8sfjwpj4phnr3qabk92wdn3i";
+    url = "http://www.clearsilver.net/downloads/${name}.tar.gz";
+    sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
   };
 
   builder = ./builder.sh;
diff --git a/pkgs/development/libraries/cminpack/default.nix b/pkgs/development/libraries/cminpack/default.nix
index c73e95948577..892e32777ea6 100644
--- a/pkgs/development/libraries/cminpack/default.nix
+++ b/pkgs/development/libraries/cminpack/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "cminpack-1.3.2";
+stdenv.mkDerivation rec {
+  name = "cminpack-1.3.4";
   
   src = fetchurl {
-    url = http://devernay.free.fr/hacks/cminpack/cminpack-1.3.2.tar.gz;
-    sha256 = "09bqr44wqancbdsc39lvhdz7rci3hknmlrrrzv46skvwx6rgk9x0";
+    url = "http://devernay.free.fr/hacks/cminpack/${name}.tar.gz";
+    sha256 = "1jh3ymxfcy3ykh6gnvds5bbkf38aminvjgc8halck356vkvpnl9v";
   };
 
   patchPhase = ''
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://devernay.free.fr/hacks/cminpack/cminpack.html;
-    license = "BSD";
+    license = stdenv.lib.licenses.bsd3;
     description = "Software for solving nonlinear equations and nonlinear least squares problems";
   };
 
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
index cadf9e3e9c24..9622ea5d0dc6 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HDBC-odbc";
-  version = "2.3.1.1";
-  sha256 = "0zypgwy8yxzp69c2775gkzi8591b0l3wncn7vmq11l16ign95fc7";
+  version = "2.4.0.0";
+  sha256 = "0zjq5j095jyh0axmgnr59fwhh1nhipj6flz77z46kygagygrg2qz";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ HDBC mtl time utf8String ];
diff --git a/pkgs/development/libraries/haskell/HFuse/default.nix b/pkgs/development/libraries/haskell/HFuse/default.nix
index 510ffd4acb9c..05caf6975ac3 100644
--- a/pkgs/development/libraries/haskell/HFuse/default.nix
+++ b/pkgs/development/libraries/haskell/HFuse/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HFuse";
-  version = "0.2.4.3";
-  sha256 = "1daka673mx0gsnsa04pxani7n4wp93hflzxs3imzy4sgb30p7l01";
+  version = "0.2.4.4";
+  sha256 = "1wsrf9y90dk27da9pm9m11hnrxwrqwvq6c9799b91a91mc2lxslc";
   isLibrary = true;
   isExecutable = true;
   extraLibraries = [ fuse ];
@@ -17,6 +17,6 @@ cabal.mkDerivation (self: {
     description = "HFuse is a binding for the Linux FUSE library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.stdenv.lib.platforms.linux;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = with self.stdenv.lib.maintainers; [ andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/HandsomeSoup/default.nix b/pkgs/development/libraries/haskell/HandsomeSoup/default.nix
index 6fa5e7e91140..69915ccfeefa 100644
--- a/pkgs/development/libraries/haskell/HandsomeSoup/default.nix
+++ b/pkgs/development/libraries/haskell/HandsomeSoup/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HandsomeSoup";
-  version = "0.3.4";
-  sha256 = "0xpimys8pb0kzqnfxxf04dbxfmcrry5pzgmagyydcrmafacg0vjb";
+  version = "0.3.5";
+  sha256 = "1d1zanlr1mdxjc69xvbxg5kn5bc08gd960j6lb1x3grhcgmj9krm";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -15,7 +15,6 @@ cabal.mkDerivation (self: {
   ];
   testDepends = [ hspec hxt ];
   jailbreak = true;
-  doCheck = false;
   meta = {
     homepage = "https://github.com/egonSchiele/HandsomeSoup";
     description = "Work with HTML more easily in HXT";
diff --git a/pkgs/development/libraries/haskell/ReadArgs/default.nix b/pkgs/development/libraries/haskell/ReadArgs/default.nix
index 484aacb91f02..badf97bee4a9 100644
--- a/pkgs/development/libraries/haskell/ReadArgs/default.nix
+++ b/pkgs/development/libraries/haskell/ReadArgs/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
   isExecutable = true;
   buildDepends = [ systemFilepath text ];
   testDepends = [ hspec systemFilepath text ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/rampion/ReadArgs";
     description = "Simple command line argument parsing";
diff --git a/pkgs/development/libraries/haskell/Unixutils/default.nix b/pkgs/development/libraries/haskell/Unixutils/default.nix
index baabbbc6546f..c776686509b3 100644
--- a/pkgs/development/libraries/haskell/Unixutils/default.nix
+++ b/pkgs/development/libraries/haskell/Unixutils/default.nix
@@ -8,7 +8,7 @@ cabal.mkDerivation (self: {
   sha256 = "1gp04mc6irycwazykl9kpyhkkryn3hbnpn08ih6cjbsm3p8yi8b4";
   buildDepends = [ filepath pureMD5 regexTdfa zlib ];
   meta = {
-    homepage = "http://src.seereason.com/haskell-unixutils";
+    homepage = "https://github.com/seereason/haskell-unixutils";
     description = "A crude interface between Haskell and Unix-like operating systems";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/cabal-cargs/default.nix b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
index c96fab45c192..ea1f896d78c4 100644
--- a/pkgs/development/libraries/haskell/cabal-cargs/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-cargs";
-  version = "0.7.3";
-  sha256 = "10707nja5j9hbx5yj7pq8s9zgfx21n36r4xhs71g70g6hwpciqjb";
+  version = "0.7.4";
+  sha256 = "0dar64xk3bcccyaz2b9v1qc8y63vrm60vb54k8c4n1j6cqzcdp8h";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/cabal-lenses/default.nix b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
index 77afe64bd380..7416e001d1b0 100644
--- a/pkgs/development/libraries/haskell/cabal-lenses/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-lenses";
-  version = "0.4";
-  sha256 = "19ryd1qvsc301kdpk0zvw89aqhvk26ccbrgddm9j5m31mn62jl2d";
+  version = "0.4.1";
+  sha256 = "0gkd82g6q8ahrrfmnjzr4r9n5cgdmhpxkqvnsy50k043v0faa0cx";
   buildDepends = [ Cabal lens unorderedContainers ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/cairo/0.12.5.3.nix b/pkgs/development/libraries/haskell/cairo/0.12.5.3.nix
deleted file mode 100644
index 5ff7b64d2ea4..000000000000
--- a/pkgs/development/libraries/haskell/cairo/0.12.5.3.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, cairo, gtk2hsBuildtools, libc, mtl, pkgconfig, utf8String
-, zlib
-}:
-
-cabal.mkDerivation (self: {
-  pname = "cairo";
-  version = "0.12.5.3";
-  sha256 = "1g5wn7dzz8cc7my09igr284j96d795jlnmy1q2hhlvssfhwbbvg7";
-  buildDepends = [ mtl utf8String ];
-  buildTools = [ gtk2hsBuildtools ];
-  extraLibraries = [ cairo libc pkgconfig zlib ];
-  pkgconfigDepends = [ cairo ];
-  meta = {
-    homepage = "http://projects.haskell.org/gtk2hs/";
-    description = "Binding to the Cairo library";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/cairo/0.13.0.4.nix b/pkgs/development/libraries/haskell/cairo/default.nix
index 10eedda6f24d..10eedda6f24d 100644
--- a/pkgs/development/libraries/haskell/cairo/0.13.0.4.nix
+++ b/pkgs/development/libraries/haskell/cairo/default.nix
diff --git a/pkgs/development/libraries/haskell/cgrep/default.nix b/pkgs/development/libraries/haskell/cgrep/default.nix
index e19cac2b2ec3..304ba2d0cb0c 100644
--- a/pkgs/development/libraries/haskell/cgrep/default.nix
+++ b/pkgs/development/libraries/haskell/cgrep/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cgrep";
-  version = "6.4.6";
-  sha256 = "13plsh6411k273qllpkcrkakwxcdmw0p6arj0j3gdqa7bbxii99s";
+  version = "6.4.7";
+  sha256 = "1937dvd69igx41sp1ljpghwqz0ki436pv0xmwz6bq1vny0axwmp7";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/colors/default.nix b/pkgs/development/libraries/haskell/colors/default.nix
index 2d4db2cdc4dd..f5523a5a2b52 100644
--- a/pkgs/development/libraries/haskell/colors/default.nix
+++ b/pkgs/development/libraries/haskell/colors/default.nix
@@ -4,13 +4,14 @@
 
 cabal.mkDerivation (self: {
   pname = "colors";
-  version = "0.1.1";
-  sha256 = "1i1n05prbp0l3xgx0w2lxzc5r81pcmbzclsamdr7fmjvhvh8blqm";
+  version = "0.2";
+  sha256 = "009qkab6m1gnvxc23ayhv5h2v9mpiji5hasiym7a8nm69p8678xa";
   buildDepends = [ profunctors ];
   meta = {
     homepage = "https://github.com/fumieval/colors";
     description = "A type for colors";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/conduit-combinators/default.nix b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
index 7386c2494945..0f237e12cb08 100644
--- a/pkgs/development/libraries/haskell/conduit-combinators/default.nix
+++ b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit-combinators";
-  version = "0.3.0";
-  sha256 = "1ggdzll71a05743x3a8y1n43ais85simlqsng9da2z3qa42a9dz9";
+  version = "0.3.0.4";
+  sha256 = "1aphk79r3ibpb9gykdnz55isp7kf48jhz4h4vgplb0ndbmz8f8zm";
   buildDepends = [
     base16Bytestring base64Bytestring chunkedData conduit conduitExtra
     monadControl monoTraversable mwcRandom primitive resourcet
diff --git a/pkgs/development/libraries/haskell/conduit-extra/default.nix b/pkgs/development/libraries/haskell/conduit-extra/default.nix
index 4c9038c05cac..b9ddeec104fb 100644
--- a/pkgs/development/libraries/haskell/conduit-extra/default.nix
+++ b/pkgs/development/libraries/haskell/conduit-extra/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit-extra";
-  version = "1.1.4.1";
-  sha256 = "18q2d9ga49gldw4i8a5vnncsr712b21ik0160gdw3czqilvf8nbr";
+  version = "1.1.4.2";
+  sha256 = "0s2ggca6g2104dylbrkn090xwsfrp0946bhwf7fgpfpg9gi1sz1g";
   buildDepends = [
     attoparsec blazeBuilder conduit filepath monadControl network
     primitive resourcet stm streamingCommons text transformers
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index 53f7e05a6717..327fbfe5bc61 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "1.2.2";
-  sha256 = "04wx9c7lybqmrvhw8h6zb9vp5qyqfs9p7a9a2m2yicf1p3p0q4n8";
+  version = "1.2.2.2";
+  sha256 = "0jabdv91zc64bwk709hkpjd7n4gy2cmsv2dhr5ydv35whmkhyry2";
   buildDepends = [
     exceptions liftedBase mmorph monadControl mtl resourcet
     transformers transformersBase void
diff --git a/pkgs/development/libraries/haskell/crypto-conduit/default.nix b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
index b63f6a44108c..c7c3f2590a73 100644
--- a/pkgs/development/libraries/haskell/crypto-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-conduit";
-  version = "0.5.4";
-  sha256 = "1z628gj4sf50s7pd6p41c670rz98f8b6p3n2dvl93haczcg53l1n";
+  version = "0.5.5";
+  sha256 = "0zd4smj3rk2x1msl8z8f5y01x4b87rhgm45g26g6c3dsdasn1lyf";
   buildDepends = [
     cereal conduit conduitExtra cryptoApi resourcet transformers
   ];
diff --git a/pkgs/development/libraries/haskell/cufft/default.nix b/pkgs/development/libraries/haskell/cufft/default.nix
index d24af97f4f24..dfcf9bec757b 100644
--- a/pkgs/development/libraries/haskell/cufft/default.nix
+++ b/pkgs/development/libraries/haskell/cufft/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cufft";
-  version = "0.1.0.3";
-  sha256 = "1jj1ixacmhwjcb2syv4fglawpya5vmdhdk2xqrw4wwfxw4wc9ypi";
+  version = "0.1.1.0";
+  sha256 = "0d13nf61698gzh0hcycx1z9bm2xpikkg27bjymsjhfwimvqn7z8h";
   buildDepends = [ cuda ];
   buildTools = [ c2hs ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix
index d2fb0964dd99..f7e7cead1ac3 100644
--- a/pkgs/development/libraries/haskell/either/default.nix
+++ b/pkgs/development/libraries/haskell/either/default.nix
@@ -1,16 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, exceptions, free, monadControl, MonadRandom, mtl
-, semigroupoids, semigroups, transformers, transformersBase
+{ cabal, bifunctors, exceptions, free, monadControl, MonadRandom
+, mtl, profunctors, semigroupoids, semigroups, transformers
+, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "either";
-  version = "4.3.1";
-  sha256 = "1k7aqy3k0ivpbqhym79q49dx41gnrkn1nw2inkm6gv8dy7bj9h6x";
+  version = "4.3.2";
+  sha256 = "0bmw4qc263fs5ivf94qfzrq26v8kflb13gims7c474d4jhg8g0w1";
   buildDepends = [
-    exceptions free monadControl MonadRandom mtl semigroupoids
-    semigroups transformers transformersBase
+    bifunctors exceptions free monadControl MonadRandom mtl profunctors
+    semigroupoids semigroups transformers transformersBase
   ];
   noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.6";
   meta = {
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
index 0e03c34da01c..3b40f5959f79 100644
--- a/pkgs/development/libraries/haskell/entropy/default.nix
+++ b/pkgs/development/libraries/haskell/entropy/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "entropy";
-  version = "0.3.4";
-  sha256 = "1khfvrk49zf0rd90d34983048mxy093ci2qk8866qq0hwi53b0q0";
+  version = "0.3.4.1";
+  sha256 = "10myxs2a7838sywnlfggpsd7lmvzphl10zdh1vbbi18n3x79gyk0";
   meta = {
     homepage = "https://github.com/TomMD/entropy";
     description = "A platform independent entropy source";
diff --git a/pkgs/development/libraries/haskell/extra/default.nix b/pkgs/development/libraries/haskell/extra/default.nix
index 30d066e3b2ed..dfbdf73a2ae9 100644
--- a/pkgs/development/libraries/haskell/extra/default.nix
+++ b/pkgs/development/libraries/haskell/extra/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "extra";
-  version = "0.7";
-  sha256 = "11839h4915xjgmz8av60pn8qaw3b0ckbpw4l9nq5a77qb9rgpbfs";
+  version = "0.8";
+  sha256 = "06ydgniar294i9xzviz7qmr3xpnlkpvyvgigwxqfz50kv77w8ijw";
   buildDepends = [ filepath time ];
   testDepends = [ filepath QuickCheck time ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/github/default.nix b/pkgs/development/libraries/haskell/github/default.nix
index d912f1c56bb5..86e344dc2ca4 100644
--- a/pkgs/development/libraries/haskell/github/default.nix
+++ b/pkgs/development/libraries/haskell/github/default.nix
@@ -1,18 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, attoparsec, caseInsensitive, conduit, cryptohash
-, dataDefault, failure, hashable, HTTP, httpConduit, httpTypes
-, network, text, time, unorderedContainers, vector
+{ cabal, aeson, attoparsec, base16Bytestring, byteable
+, caseInsensitive, conduit, cryptohash, dataDefault, failure
+, hashable, HTTP, httpConduit, httpTypes, network, text, time
+, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "github";
-  version = "0.11.1";
-  sha256 = "0s94ivp3c40zhwwfxa6nzzgwh2frfih8as81i0kidx4ca35wf92k";
+  version = "0.13";
+  sha256 = "1vvfrlz6p43mrzskvhp9skh6xbgd5pqcn06wvxw31plpamf5pmzn";
   buildDepends = [
-    aeson attoparsec caseInsensitive conduit cryptohash dataDefault
-    failure hashable HTTP httpConduit httpTypes network text time
-    unorderedContainers vector
+    aeson attoparsec base16Bytestring byteable caseInsensitive conduit
+    cryptohash dataDefault failure hashable HTTP httpConduit httpTypes
+    network text time unorderedContainers vector
   ];
   meta = {
     homepage = "https://github.com/fpco/github";
diff --git a/pkgs/development/libraries/haskell/gitlib-libgit2/default.nix b/pkgs/development/libraries/haskell/gitlib-libgit2/default.nix
index 6d2af5587063..287f98d661da 100644
--- a/pkgs/development/libraries/haskell/gitlib-libgit2/default.nix
+++ b/pkgs/development/libraries/haskell/gitlib-libgit2/default.nix
@@ -26,6 +26,7 @@ cabal.mkDerivation (self: {
     description = "Libgit2 backend for gitlib";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
     maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gitlib-test/default.nix b/pkgs/development/libraries/haskell/gitlib-test/default.nix
index 38e1cbc36e7c..e8ab6aca6cf0 100644
--- a/pkgs/development/libraries/haskell/gitlib-test/default.nix
+++ b/pkgs/development/libraries/haskell/gitlib-test/default.nix
@@ -18,5 +18,6 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/glib/0.12.5.4.nix b/pkgs/development/libraries/haskell/glib/0.12.5.4.nix
deleted file mode 100644
index c819af766c22..000000000000
--- a/pkgs/development/libraries/haskell/glib/0.12.5.4.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, glib, gtk2hsBuildtools, libc, pkgconfig, utf8String
-}:
-
-cabal.mkDerivation (self: {
-  pname = "glib";
-  version = "0.12.5.4";
-  sha256 = "1jbqfcsmsghq67lwnk6yifs34lxvh6xfbzxzfryalifb4zglccz6";
-  buildDepends = [ utf8String ];
-  buildTools = [ gtk2hsBuildtools ];
-  extraLibraries = [ libc pkgconfig ];
-  pkgconfigDepends = [ glib ];
-  patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./gtk2hs.patch ];
-  meta = {
-    homepage = "http://projects.haskell.org/gtk2hs/";
-    description = "Binding to the GLIB library for Gtk2Hs";
-    license = self.stdenv.lib.licenses.lgpl21;
-    platforms = self.ghc.meta.platforms;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/glib/0.13.0.5.nix b/pkgs/development/libraries/haskell/glib/default.nix
index 1229b7c8506e..1229b7c8506e 100644
--- a/pkgs/development/libraries/haskell/glib/0.13.0.5.nix
+++ b/pkgs/development/libraries/haskell/glib/default.nix
diff --git a/pkgs/development/libraries/haskell/glib/gtk2hs.patch b/pkgs/development/libraries/haskell/glib/gtk2hs.patch
deleted file mode 100644
index 210cf2eb571a..000000000000
--- a/pkgs/development/libraries/haskell/glib/gtk2hs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Author: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
-Date:   Mon Jul 7 21:28:50 2014 +1200
-
-    Fixes #1
-
---- a/glib.cabal.orig	2014-11-03 14:52:40.000000000 -0600
-+++ b/glib.cabal	2014-11-03 14:52:51.000000000 -0600
-@@ -36,6 +36,7 @@
-                         utf8-string >= 0.2 && < 0.4,
-                         containers
-         build-tools:    gtk2hsC2hs >= 0.13.8
-+        cpp-options:    -U__BLOCKS__ -D__attribute__(A)=
-         if flag(closure_signals)
-           cpp-options:  -DUSE_GCLOSURE_SIGNALS_IMPL
-           c-sources: System/Glib/hsgclosure.ccommit aa22754e04616c354557fc350f96a8f7f331e984
diff --git a/pkgs/development/libraries/haskell/gtk/0.12.5.7.nix b/pkgs/development/libraries/haskell/gtk/0.12.5.7.nix
deleted file mode 100644
index 34c1480c8c34..000000000000
--- a/pkgs/development/libraries/haskell/gtk/0.12.5.7.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, cairo, gio, glib, gtk, gtk2hsBuildtools, libc, mtl, pango
-, pkgconfig, text
-}:
-
-cabal.mkDerivation (self: {
-  pname = "gtk";
-  version = "0.12.5.7";
-  sha256 = "0hax4ixdz523753rc774c8g76bjlj56lsabyl5nwkpnppffpa73w";
-  buildDepends = [ cairo gio glib mtl pango text ];
-  buildTools = [ gtk2hsBuildtools ];
-  extraLibraries = [ libc pkgconfig ];
-  pkgconfigDepends = [ glib gtk ];
-  patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./gtk.patch ];
-  meta = {
-    homepage = "http://projects.haskell.org/gtk2hs/";
-    description = "Binding to the Gtk+ graphical user interface library";
-    license = self.stdenv.lib.licenses.lgpl21;
-    platforms = self.ghc.meta.platforms;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/gtk/0.13.0.3.nix b/pkgs/development/libraries/haskell/gtk/default.nix
index e9a90659a95f..e9a90659a95f 100644
--- a/pkgs/development/libraries/haskell/gtk/0.13.0.3.nix
+++ b/pkgs/development/libraries/haskell/gtk/default.nix
diff --git a/pkgs/development/libraries/haskell/gtk/gtk.patch b/pkgs/development/libraries/haskell/gtk/gtk.patch
deleted file mode 100644
index 242552950df1..000000000000
--- a/pkgs/development/libraries/haskell/gtk/gtk.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/gtk.cabal.orig	2014-11-03 15:13:42.000000000 -0600
-+++ b/gtk.cabal	2014-11-03 15:14:05.000000000 -0600
-@@ -148,6 +148,7 @@
- 
-         build-tools:    gtk2hsC2hs >= 0.13.8,
-                         gtk2hsHookGenerator, gtk2hsTypeGen
-+        cpp-options:    -U__BLOCKS__ -D__attribute__(A)=
- 
-         exposed-modules:
-           Graphics.UI.Gtk
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index d77479ff0589..d5ee69f5f0db 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.5.9";
-  sha256 = "025j6d97nwjhhyhdz7bsfhzgpb1ld28va4r8yv7zfh1dvczs6lkr";
+  version = "0.5.11";
+  sha256 = "0jfgz4cyn6fylfrsk1yi0fykir8mhxdniq80h7hy5i2xv7qwf5vw";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hoauth2/default.nix b/pkgs/development/libraries/haskell/hoauth2/default.nix
index 6de6e25b4b64..ec88bb0f1742 100644
--- a/pkgs/development/libraries/haskell/hoauth2/default.nix
+++ b/pkgs/development/libraries/haskell/hoauth2/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hoauth2";
-  version = "0.4.2";
-  sha256 = "08vdrgzn1j02gn2j5apjhnv2lgp7i8xhvibqjcjf4l80spmja2h0";
+  version = "0.4.3";
+  sha256 = "1qmhk9h3rwp29dsjqbgsma4zgzdd6cw1jcryzd17rk32biiiylvg";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hsimport/default.nix b/pkgs/development/libraries/haskell/hsimport/default.nix
index 068aed9ff896..6eeb6f36f896 100644
--- a/pkgs/development/libraries/haskell/hsimport/default.nix
+++ b/pkgs/development/libraries/haskell/hsimport/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hsimport";
-  version = "0.6.2";
-  sha256 = "02v32gh5has3y8qk55cpdr0336n2hi33d5aw0ifpg84p89k8kr33";
+  version = "0.6.3";
+  sha256 = "0pmlspz09qj8zb1qpv6dxd25l69hh2ccsyvc37914dis74g9rw03";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hspec-core/default.nix b/pkgs/development/libraries/haskell/hspec-core/default.nix
new file mode 100644
index 000000000000..454f7c55bc71
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hspec-core/default.nix
@@ -0,0 +1,27 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, ansiTerminal, async, deepseq, ghcPaths, hspecExpectations
+, hspecMeta, HUnit, QuickCheck, quickcheckIo, random, setenv
+, silently, tfRandom, time, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hspec-core";
+  version = "2.0.1";
+  sha256 = "1yr2hkr1p95bpj5n6hqw20g8imqal6pva4nrvy0hmxdg53jyxcf7";
+  buildDepends = [
+    ansiTerminal async deepseq hspecExpectations HUnit QuickCheck
+    quickcheckIo random setenv tfRandom time transformers
+  ];
+  testDepends = [
+    ansiTerminal async deepseq ghcPaths hspecExpectations hspecMeta
+    HUnit QuickCheck quickcheckIo random setenv silently tfRandom time
+    transformers
+  ];
+  meta = {
+    homepage = "http://hspec.github.io/";
+    description = "A Testing Framework for Haskell";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hspec-discover/default.nix b/pkgs/development/libraries/haskell/hspec-discover/default.nix
new file mode 100644
index 000000000000..b8af52ee87d7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hspec-discover/default.nix
@@ -0,0 +1,20 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, filepath, hspecMeta }:
+
+cabal.mkDerivation (self: {
+  pname = "hspec-discover";
+  version = "2.0.1";
+  sha256 = "0k54j1id5yj60kjxs16w4hr52wanc55l131arypcjgf9w4yx3x3w";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ filepath ];
+  testDepends = [ filepath hspecMeta ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://hspec.github.io/";
+    description = "Automatically discover and run Hspec tests";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hspec-meta/default.nix b/pkgs/development/libraries/haskell/hspec-meta/default.nix
index c0527d380b9d..8a10a3001460 100644
--- a/pkgs/development/libraries/haskell/hspec-meta/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-meta/default.nix
@@ -1,19 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, ansiTerminal, async, deepseq, filepath, hspecExpectations
-, HUnit, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
+, HUnit, QuickCheck, quickcheckIo, random, setenv, time
 , transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec-meta";
-  version = "1.12.3";
-  sha256 = "106wzvramjw18a2wvmfik3z47zshq7yalgax389gx340g3wnrfp7";
+  version = "2.0.0";
+  sha256 = "0x1k2d4nycglzn9l4i32xrampr9fgzjpp4j1jyy7pj89cfl8jc8f";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     ansiTerminal async deepseq filepath hspecExpectations HUnit
-    QuickCheck quickcheckIo random setenv tfRandom time transformers
+    QuickCheck quickcheckIo random setenv time transformers
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/hspec/default.nix b/pkgs/development/libraries/haskell/hspec/default.nix
index 0848aabb5152..58b0022d3b34 100644
--- a/pkgs/development/libraries/haskell/hspec/default.nix
+++ b/pkgs/development/libraries/haskell/hspec/default.nix
@@ -1,26 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
-, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
-, random, setenv, silently, stringbuilder, tfRandom, time
-, transformers
+{ cabal, hspecCore, hspecDiscover, hspecExpectations, hspecMeta
+, QuickCheck, stringbuilder, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec";
-  version = "1.12.3";
-  sha256 = "0lqihgsk46lwm4k2nc81pbi1gdfk7qnmjli90bvf4pbbhg5igjkn";
-  isLibrary = true;
-  isExecutable = true;
+  version = "2.0.1";
+  sha256 = "05kwxn5sws8gc1v8im2pyirrj5bzc6lnj22q2klgj4mg3apjd0jb";
   buildDepends = [
-    ansiTerminal async deepseq filepath hspecExpectations HUnit
-    QuickCheck quickcheckIo random setenv tfRandom time transformers
-  ];
-  testDepends = [
-    ansiTerminal async deepseq filepath ghcPaths hspecExpectations
-    hspecMeta HUnit QuickCheck quickcheckIo random setenv silently
-    stringbuilder tfRandom time transformers
+    hspecCore hspecDiscover hspecExpectations QuickCheck transformers
   ];
+  testDepends = [ hspecCore hspecMeta QuickCheck stringbuilder ];
   doCheck = false;
   meta = {
     homepage = "http://hspec.github.io/";
diff --git a/pkgs/development/libraries/haskell/hspec2/default.nix b/pkgs/development/libraries/haskell/hspec2/default.nix
index 8411bdff144d..c833b80bb9fd 100644
--- a/pkgs/development/libraries/haskell/hspec2/default.nix
+++ b/pkgs/development/libraries/haskell/hspec2/default.nix
@@ -1,31 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
-, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
-, random, setenv, silently, stringbuilder, tfRandom, time
-, transformers
-}:
+{ cabal, hspec, hspecDiscover }:
 
 cabal.mkDerivation (self: {
   pname = "hspec2";
-  version = "0.5.1";
-  sha256 = "1ax507vb0zm5jalp6pvlk1fjfil766pf7w61d1igpxr0s00lnvlq";
-  isLibrary = true;
-  isExecutable = true;
-  buildDepends = [
-    ansiTerminal async deepseq filepath hspecExpectations HUnit
-    QuickCheck quickcheckIo random setenv tfRandom time transformers
-  ];
-  testDepends = [
-    ansiTerminal async deepseq filepath ghcPaths hspecExpectations
-    hspecMeta HUnit QuickCheck quickcheckIo random setenv silently
-    stringbuilder tfRandom time transformers
-  ];
+  version = "0.6.1";
+  sha256 = "0zlvm7r46q8yhgx2kx9mfrf6x2f5amdbi3a59fh69dsqs4lbgmf4";
+  buildDepends = [ hspec hspecDiscover ];
   meta = {
     homepage = "http://hspec.github.io/";
     description = "Alpha version of Hspec 2.0";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/labeled-tree/default.nix b/pkgs/development/libraries/haskell/labeled-tree/default.nix
new file mode 100644
index 000000000000..dd6ea9e7af31
--- /dev/null
+++ b/pkgs/development/libraries/haskell/labeled-tree/default.nix
@@ -0,0 +1,14 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "labeled-tree";
+  version = "1.0.0.0";
+  sha256 = "1cnnyic5z5y21hpxpmx66ph34mjyysckgiasmzg7yx202y2ih7s7";
+  meta = {
+    description = "Labeled tree structure";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/libjenkins/default.nix b/pkgs/development/libraries/haskell/libjenkins/default.nix
index 26a9bfdad2d9..a873616f3c01 100644
--- a/pkgs/development/libraries/haskell/libjenkins/default.nix
+++ b/pkgs/development/libraries/haskell/libjenkins/default.nix
@@ -1,24 +1,24 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, async, conduit, doctest, exceptions, filepath, free, hspec
-, hspecExpectationsLens, httpClient, httpConduit, httpTypes, lens
-, monadControl, network, networkUri, resourcet, text, transformers
-, xmlConduit
+{ cabal, async, attoparsec, doctest, filepath, free, hspec
+, hspecExpectationsLens, httpClient, httpClientTls, httpTypes, lens
+, liftedAsync, liftedBase, monadControl, mtl, network, networkUri
+, profunctors, text, transformers, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "libjenkins";
-  version = "0.5.0";
-  sha256 = "010gid9r3kcajijg7x56c77l93vlbh7fy7akjrg7b73i4zy6jnl7";
+  version = "0.6.0";
+  sha256 = "0rcqmj5myi2wy2acd59gqdfwiiapw1zwzm71bjqb1y66z0rnrkx4";
   buildDepends = [
-    async conduit exceptions free httpClient httpConduit httpTypes lens
-    monadControl network networkUri resourcet text transformers
-    xmlConduit
+    attoparsec free httpClient httpClientTls httpTypes liftedAsync
+    liftedBase monadControl mtl network networkUri profunctors text
+    transformers
   ];
   testDepends = [
-    async conduit doctest exceptions filepath free hspec
-    hspecExpectationsLens httpClient httpConduit httpTypes lens
-    monadControl network networkUri resourcet text transformers
+    async attoparsec doctest filepath free hspec hspecExpectationsLens
+    httpClient httpClientTls httpTypes lens liftedAsync liftedBase
+    monadControl mtl network networkUri profunctors text transformers
     xmlConduit
   ];
   jailbreak = true;
diff --git a/pkgs/development/libraries/haskell/linear/default.nix b/pkgs/development/libraries/haskell/linear/default.nix
index 9f1883d3ef8a..1a2f875b05cf 100644
--- a/pkgs/development/libraries/haskell/linear/default.nix
+++ b/pkgs/development/libraries/haskell/linear/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "linear";
-  version = "1.11.3";
-  sha256 = "12a3qfkyb4h14630k312gpb5j7dxr38bqk5y2lnnafka8hcc6w5n";
+  version = "1.13";
+  sha256 = "1gad6dvri7a21v8zx6m2m3ghcvb4zfrra3c4ghrc7ywccxvzmxpc";
   buildDepends = [
     adjunctions binary distributive hashable lens reflection
     semigroupoids semigroups tagged transformers unorderedContainers
diff --git a/pkgs/development/libraries/haskell/pango/0.12.5.3.nix b/pkgs/development/libraries/haskell/pango/0.12.5.3.nix
deleted file mode 100644
index e95c590e3545..000000000000
--- a/pkgs/development/libraries/haskell/pango/0.12.5.3.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, cairo, glib, gtk2hsBuildtools, libc, mtl, pango, pkgconfig
-, text
-}:
-
-cabal.mkDerivation (self: {
-  pname = "pango";
-  version = "0.12.5.3";
-  sha256 = "1n64ppz0jqrbzvimbz4avwnx3z0n5z2gbmbmca0hw9wqf9j6y79a";
-  buildDepends = [ cairo glib mtl text ];
-  buildTools = [ gtk2hsBuildtools ];
-  extraLibraries = [ libc pkgconfig ];
-  pkgconfigDepends = [ cairo pango ];
-  patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./pango.patch ];
-  meta = {
-    homepage = "http://projects.haskell.org/gtk2hs/";
-    description = "Binding to the Pango text rendering engine";
-    license = self.stdenv.lib.licenses.lgpl21;
-    platforms = self.ghc.meta.platforms;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/pango/0.13.0.3.nix b/pkgs/development/libraries/haskell/pango/default.nix
index c3ce339f7d55..c3ce339f7d55 100644
--- a/pkgs/development/libraries/haskell/pango/0.13.0.3.nix
+++ b/pkgs/development/libraries/haskell/pango/default.nix
diff --git a/pkgs/development/libraries/haskell/pango/pango.patch b/pkgs/development/libraries/haskell/pango/pango.patch
deleted file mode 100644
index af338cbe32ce..000000000000
--- a/pkgs/development/libraries/haskell/pango/pango.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/pango.cabal.orig	2014-11-03 15:11:35.000000000 -0600
-+++ b/pango.cabal	2014-11-03 15:11:57.000000000 -0600
-@@ -52,6 +52,7 @@
-           build-depends:  base < 4
- 
-         build-tools:    gtk2hsC2hs >= 0.13.8, gtk2hsTypeGen
-+        cpp-options:    -U__BLOCKS__ -D__attribute__(A)=
- 
-         exposed-modules: Graphics.Rendering.Pango
-                          Graphics.Rendering.Pango.Font
diff --git a/pkgs/development/libraries/haskell/pipes-text/default.nix b/pkgs/development/libraries/haskell/pipes-text/default.nix
index ca849127e9d7..177eb6e7d358 100644
--- a/pkgs/development/libraries/haskell/pipes-text/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-text/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pipes-text";
-  version = "0.0.0.13";
-  sha256 = "1sqwrs5y9s16zikwb5w21fvrqf06ld0915kc065ikdcrd6z4sk43";
+  version = "0.0.0.15";
+  sha256 = "10906gdb9gjhxxmxvmib6kw7py6fl2r4df5bryqvbjvr1afcc3x9";
   buildDepends = [
     pipes pipesBytestring pipesGroup pipesParse pipesSafe
     streamingCommons text transformers
diff --git a/pkgs/development/libraries/haskell/rethinkdb/default.nix b/pkgs/development/libraries/haskell/rethinkdb/default.nix
index ecc31e4266f0..bcf4272ad7aa 100644
--- a/pkgs/development/libraries/haskell/rethinkdb/default.nix
+++ b/pkgs/development/libraries/haskell/rethinkdb/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rethinkdb";
-  version = "1.15.2.0";
-  sha256 = "1cca6nrdaia5dgq2ah6sfr9qy01iasilw7zdw6k8vp5907alsh0f";
+  version = "1.15.2.1";
+  sha256 = "017fq9mhqdw78hrnjm9n0nipi182361bxh1qzjpb8djc8azx49b5";
   buildDepends = [
     aeson base64Bytestring binary dataDefault mtl network scientific
     text time unorderedContainers utf8String vector
diff --git a/pkgs/development/libraries/haskell/sdl2/default.nix b/pkgs/development/libraries/haskell/sdl2/default.nix
index 3e6a66685856..2e3eeba018dd 100644
--- a/pkgs/development/libraries/haskell/sdl2/default.nix
+++ b/pkgs/development/libraries/haskell/sdl2/default.nix
@@ -1,13 +1,15 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, SDL2 }:
+{ cabal, SDL2, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "sdl2";
-  version = "1.2.0";
-  sha256 = "19q7x74b9ismxmlsblqvfy4w91bspl9n1fjccz8w1qylyilr6ca2";
+  version = "1.3.0";
+  sha256 = "0fi9kjf12qlp64r2pxwc1k9241s23j6xm0dmwdsc18y8f6acvqxa";
+  buildDepends = [ transformers ];
   extraLibraries = [ SDL2 ];
   pkgconfigDepends = [ SDL2 ];
+  noHaddock = true;
   meta = {
     description = "Low-level bindings to SDL2";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index 251eb07d8aa6..1ee2053c6a9b 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
-  version = "2.0.1.1";
-  sha256 = "0xddm8xby19323d9bcd196b1ninlvfkv5b93w1da23m7w0hy509p";
+  version = "2.0.2";
+  sha256 = "18yzihkjxgchb4358pbm45xk9zcmpgbp3rr27mx08nj5n0mdkwyy";
   buildDepends = [
     aeson blazeHtml blazeMarkup exceptions parsec systemFileio
     systemFilepath text time transformers
diff --git a/pkgs/development/libraries/haskell/snaplet-postgresql-simple/default.nix b/pkgs/development/libraries/haskell/snaplet-postgresql-simple/default.nix
index 5238fee7b9f6..7745fa5ddbe1 100644
--- a/pkgs/development/libraries/haskell/snaplet-postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/snaplet-postgresql-simple/default.nix
@@ -1,6 +1,6 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, clientsession, configurator, errors
+{ cabal, clientsession, configurator, errors, lens
 , MonadCatchIOTransformers, mtl, postgresqlSimple
 , resourcePoolCatchio, snap, text, transformers
 , unorderedContainers
@@ -8,10 +8,10 @@
 
 cabal.mkDerivation (self: {
   pname = "snaplet-postgresql-simple";
-  version = "0.5";
-  sha256 = "0pzn0lg1slrllrrx1n9s1kp1pmq2ahrkjypcwnnld8zxzvz4g5jm";
+  version = "0.6";
+  sha256 = "042mpyj84d089pr2qjix9fvzfj4ir74kjkdx3jg84jwn602lhzi6";
   buildDepends = [
-    clientsession configurator errors MonadCatchIOTransformers mtl
+    clientsession configurator errors lens MonadCatchIOTransformers mtl
     postgresqlSimple resourcePoolCatchio snap text transformers
     unorderedContainers
   ];
@@ -20,7 +20,5 @@ cabal.mkDerivation (self: {
     description = "postgresql-simple snaplet for the Snap Framework";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/system-fileio/default.nix b/pkgs/development/libraries/haskell/system-fileio/default.nix
index 9853c4abd08d..98048f503b78 100644
--- a/pkgs/development/libraries/haskell/system-fileio/default.nix
+++ b/pkgs/development/libraries/haskell/system-fileio/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "system-fileio";
-  version = "0.3.14";
-  sha256 = "1x5cricx2n1wwvdad4i3q8s3gb28a129v3kkj9rn9803xh43zh29";
+  version = "0.3.15";
+  sha256 = "06cnr3hzw8xd75529nfqajgb5xy5i4ddqybgjw1v1nwpq04mhihi";
   buildDepends = [ systemFilepath text time ];
   testDepends = [
     chell systemFilepath temporary text time transformers
diff --git a/pkgs/development/libraries/haskell/terminal-size/default.nix b/pkgs/development/libraries/haskell/terminal-size/default.nix
index 4387ceb423ea..d143a66713a0 100644
--- a/pkgs/development/libraries/haskell/terminal-size/default.nix
+++ b/pkgs/development/libraries/haskell/terminal-size/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "terminal-size";
-  version = "0.2.1.0";
-  sha256 = "0d41af1is3vdb1kgd8dk82fags86bgs67vkbzpdhjdwa3aimsxgn";
+  version = "0.3.0";
+  sha256 = "0g8v08d20hlfsah9dlgv2v2pzj0m4dva0zp6zi4jrkxjhg6vi7bw";
   meta = {
     description = "Get terminal window height and width";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/twitter-conduit/default.nix b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
index ffd2dc00b7d3..a1b3cf561654 100644
--- a/pkgs/development/libraries/haskell/twitter-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "twitter-conduit";
-  version = "0.0.7";
-  sha256 = "1xwfyhjkbdl19b7cpw12lgnjzqhpiqvfhag2l8zhks21yv0l3kg0";
+  version = "0.0.8";
+  sha256 = "16yxf9qdy1x2w4l4ix1kp1a9vcgmd1cvkqffkj52rzckcjpyd6fs";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix
index dd4051d28d73..bea079c6dae2 100644
--- a/pkgs/development/libraries/haskell/yesod-bin/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix
@@ -5,14 +5,14 @@
 , ghcPaths, httpConduit, httpReverseProxy, httpTypes, liftedBase
 , network, optparseApplicative, parsec, projectTemplate, resourcet
 , shakespeare, split, streamingCommons, systemFileio
-, systemFilepath, tar, text, time, transformers, unixCompat
-, unorderedContainers, wai, waiExtra, warp, yaml, zlib
+, systemFilepath, tar, text, time, transformers, transformersCompat
+, unixCompat, unorderedContainers, wai, waiExtra, warp, yaml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-bin";
-  version = "1.4.0.5";
-  sha256 = "06rwmcag0vlj8q647mwimk5fsjfmrxc6d1yg95b7a2g48rh1m25x";
+  version = "1.4.0.6";
+  sha256 = "1sx8fwi191zzq4p4lmmvk430dgf0zkik01ckxnkswvazmbjlm5vj";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
@@ -20,8 +20,9 @@ cabal.mkDerivation (self: {
     dataDefaultClass fileEmbed filepath fsnotify ghcPaths httpConduit
     httpReverseProxy httpTypes liftedBase network optparseApplicative
     parsec projectTemplate resourcet shakespeare split streamingCommons
-    systemFileio systemFilepath tar text time transformers unixCompat
-    unorderedContainers wai waiExtra warp yaml zlib
+    systemFileio systemFilepath tar text time transformers
+    transformersCompat unixCompat unorderedContainers wai waiExtra warp
+    yaml zlib
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index c93f238a66a0..49d6421d7c4a 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -13,8 +13,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.4.3";
-  sha256 = "1mglavffzvav4dzwqq70agz5rd4bdb66p40qa445fq1dxwbwcq6i";
+  version = "1.4.3.1";
+  sha256 = "11zds9zh6vpc83vv8aizd8vm5ajlnqdha5l0rz35n75c21iygg3w";
   buildDepends = [
     aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
     clientsession conduit conduitExtra cookie dataDefault deepseq
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
index 75cde9382190..09fda53aa906 100644
--- a/pkgs/development/libraries/haskell/yesod-test/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-test";
-  version = "1.4.0.3";
-  sha256 = "00rg8q5qwyp7aa409d8ir09vgbvwa9qxkgcjpwqa4lp3ncbpiw9j";
+  version = "1.4.1";
+  sha256 = "10z88ki694z0kzbg84gaj10h8s9hrj5ghgbxq4y486nvmp4px8f1";
   buildDepends = [
     attoparsec blazeBuilder blazeHtml blazeMarkup caseInsensitive
     cookie hspec htmlConduit httpTypes HUnit monadControl network
diff --git a/pkgs/development/libraries/java/commons/bsf/default.nix b/pkgs/development/libraries/java/commons/bsf/default.nix
new file mode 100644
index 000000000000..b29286831841
--- /dev/null
+++ b/pkgs/development/libraries/java/commons/bsf/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "commons-bsf-1.2";
+
+  src = fetchurl {
+    url = mirror://apache/commons/bsf/binaries/bsf-bin-2.4.0.tar.gz;
+    sha256 = "1my3hv4y8cvrd1kr315wvbjqsamzlzswnbqcmsa2m4hqcafddfr8";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp lib/bsf.jar $out/share/java/
+  '';
+
+  meta = {
+    description = "Interface to scripting languages, including JSR-223";
+    homepage = http://commons.apache.org/proper/commons-bsf/;
+    license = stdenv.lib.licenses.asl20;
+  };
+}
+
diff --git a/pkgs/development/libraries/java/commons/logging/default.nix b/pkgs/development/libraries/java/commons/logging/default.nix
new file mode 100644
index 000000000000..ee4074702024
--- /dev/null
+++ b/pkgs/development/libraries/java/commons/logging/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "commons-logging-1.2";
+
+  src = fetchurl {
+    url    = mirror://apache/commons/logging/binaries/commons-logging-1.2-bin.tar.gz;
+    sha256 = "1gc70pmcv0x6ibl89jglmr22f8zpr63iaifi49nrq399qw2qhx9z";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp commons-logging-*.jar $out/share/java/
+  '';
+
+  meta = {
+    description = "Wrapper around a variety of logging API implementations";
+    homepage = http://commons.apache.org/proper/commons-logging;
+    license = stdenv.lib.licenses.asl20;
+  };
+}
+
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index d739b0948743..24017d6f1c4b 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, libusb, libtool, libexif, libjpeg, gettext}:
+{ stdenv, fetchurl, pkgconfig, libusb1, libtool, libexif, libjpeg, gettext }:
 
 stdenv.mkDerivation rec {
   name = "libgphoto2-${meta.version}";
@@ -7,12 +7,12 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
     sha256 = "0ij80nixichihv3iic7cgdq3irssk8waz1c25m6yypjl4kg6n3k0";
   };
-  
+
   nativeBuildInputs = [ pkgconfig gettext ];
-  buildInputs = [ libtool libjpeg ];
+  buildInputs = [ libtool libjpeg libusb1 ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
-  propagatedBuildInputs = [ libusb libexif ];
+  propagatedBuildInputs = [ libexif ];
 
   meta = {
     homepage = http://www.gphoto.org/proj/libgphoto2/;
@@ -20,12 +20,13 @@ stdenv.mkDerivation rec {
     longDescription = ''
       This is the library backend for gphoto2. It contains the code for PTP,
       MTP, and other vendor specific protocols for controlling and transferring data
-      from digital cameras. 
+      from digital cameras.
     '';
     version = "2.5.5.1";
     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
-    license = stdenv.lib.licenses.lgpl21Plus; 
+    license = stdenv.lib.licenses.lgpl21Plus;
     platforms = with stdenv.lib.platforms; unix;
     maintainers = with stdenv.lib.maintainers; [ jcumming ];
   };
 }
+
diff --git a/pkgs/development/libraries/libusb/default.nix b/pkgs/development/libraries/libusb/default.nix
index ac06b4893f1e..efdbc6e22a72 100644
--- a/pkgs/development/libraries/libusb/default.nix
+++ b/pkgs/development/libraries/libusb/default.nix
@@ -1,16 +1,12 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, pkgconfig, libusb1}:
 
 stdenv.mkDerivation {
-  name = "libusb-0.1.12";
+  name = "libusb-compat-0.1.5";
 
-  # On non-linux, we get warnings compiling, and we don't want the
-  # build to break.
-  patchPhase = ''
-    sed -i s/-Werror// Makefile.in
-  '';
+  buildInputs = [ pkgconfig libusb1 ];
 
   src = fetchurl {
-    url = mirror://sourceforge/libusb/libusb-0.1.12.tar.gz;
-    sha256 = "0i4bacxkyr7xyqxbmb00ypkrv4swkgm0mghbzjsnw6blvvczgxip";
+    url = mirror://sourceforge/libusb/libusb-compat-0.1.5.tar.bz2;
+    sha256 = "0nn5icrfm9lkhzw1xjvaks9bq3w6mjg86ggv3fn7kgi4nfvg8kj0";
   };
 }
diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix
new file mode 100644
index 000000000000..3a22ecb73fca
--- /dev/null
+++ b/pkgs/development/libraries/science/math/ipopt/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, unzip, blas, liblapack, gfortran }:
+
+stdenv.mkDerivation rec {
+  version = "3.11.9";
+  name = "ipopt-${version}";
+
+  src = fetchurl {
+    url = "http://www.coin-or.org/download/source/Ipopt/Ipopt-${version}.zip";
+    sha256 = "0sji4spl5dhw1s3f9y0ym09gi7d1c8wldn6wbiap4q8dq7cvklq5";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ gfortran blas liblapack ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A software package for large-scale nonlinear optimization";
+    homepage = https://projects.coin-or.org/Ipopt;
+    license = licenses.epl10;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
index 91b8a0c2bb0f..6452bd5d95ae 100755
--- a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
+++ b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
@@ -12,6 +12,9 @@ shift
 
 export NIX_LISP NIX_LISP_LOAD_FILE NIX_LISP_EXEC_CODE NIX_LISP_COMMAND NIX_LISP_FINAL_PARAMETERS
 
+test -n "$NIX_LISP_LD_LIBRARY_PATH" &&
+	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH+:}$NIX_LISP_LD_LIBRARY_PATH"
+
 case "$NIX_LISP" in
 	sbcl)
 		NIX_LISP_LOAD_FILE="--load"
diff --git a/pkgs/development/lisp-modules/define-package.nix b/pkgs/development/lisp-modules/define-package.nix
index 675fc7e74681..bb6baddc47d4 100644
--- a/pkgs/development/lisp-modules/define-package.nix
+++ b/pkgs/development/lisp-modules/define-package.nix
@@ -1,5 +1,5 @@
 args @ {stdenv, clwrapper, baseName, version ? "latest", src, description, deps, 
-  buildInputs ? [], meta ? {}, overrides?(x: {})}:
+  buildInputs ? [], meta ? {}, overrides?(x: {}), propagatedBuildInputs ? []}:
 let 
   deployConfigScript = ''
     config_script="$out"/lib/common-lisp-settings/${args.baseName}-shell-config.sh
@@ -38,7 +38,8 @@ basePackage = {
     ${deployConfigScript}
     ${deployLaunchScript}
   '';
-  propagatedBuildInputs = args.deps ++ [clwrapper clwrapper.lisp];
+  propagatedBuildInputs = (args.deps or []) ++ [clwrapper clwrapper.lisp] 
+    ++ (args.propagatedBuildInputs or []);
   buildInputs = buildInputs;
   dontStrip=true;
   meta = {
diff --git a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
index 61c00eb92ae8..742e880c4f13 100755
--- a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
+++ b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
@@ -2,10 +2,16 @@
 
 name="$1"
 
-nix-instantiate "$(dirname "$0")"/../../../../ -A "lispPackages.$name" > /dev/null && exit
-[ "$NIX_LISP_PACKAGES_DEFINED" != "${NIX_LISP_PACKAGES_DEFINED/$name/@@}" ] && exit
+[ -z "$NIX_LISP_PACKAGES_DEFINED_LIST" ] && export NIX_LISP_PACKAGES_DEFINED_LIST="$(mktemp)"
 
-NIX_LISP_PACKAGES_DEFINED="$NIX_LISP_PACKAGES_DEFINED $1 "
+if [ -n "$NIX_LISP_UPDATE_PACKAGE" ] || [ -n "$NIX_LISP_UPDATE_PACKAGES" ]; then
+  export NIX_LISP_UPDATE_PACKAGE=
+else
+  nix-instantiate "$(dirname "$0")"/../../../../ -A "lispPackages.$name" > /dev/null && exit
+fi
+grep "^$name\$" "$NIX_LISP_PACKAGES_DEFINED_LIST" > /dev/null && exit
+
+echo "$name" >> "$NIX_LISP_PACKAGES_DEFINED_LIST"
 
 [ -z "$NIX_QUICKLISP_DIR" ] && {
   export NIX_QUICKLISP_DIR="$(mktemp -d --tmpdir nix-quicklisp.XXXXXX)"
@@ -26,14 +32,39 @@ ql_src="$(curl -L https://github.com/quicklisp/quicklisp-projects/raw/master/"$n
 ql_src_type="${ql_src%% *}"
 url="${ql_src##* }"
 
+[ "$ql_src_type" = "kmr-git" ] && {
+  ql_src_type=git
+  url="http://git.b9.com/$url.git"
+  export NIX_PREFETCH_GIT_DEEP_CLONE=1
+}
+
+[ "$ql_src_type" = ediware-http ] && {
+  ql_src_type=github
+  url="edicl/$url";
+}
+
+[ "$ql_src_type" = xach-http ] && {
+  ql_src_type=github
+  url="xach/$url";
+}
+
+[ "$ql_src_type" = github ] && {
+  ql_src_type=git
+  url="https://github.com/$url";
+  version="$("$(dirname "$0")/../../../build-support/upstream-updater/urls-from-page.sh" "$url/releases/" | grep /tag/ | head -n 1 | xargs -l1 basename)"
+  rev="refs/tags/$version";
+}
+
 [ "$ql_src_type" = git ] && {
   fetcher="pkgs.fetchgit"
-  [ "${url#git://github.com/}" != "$url" ] && {
+  ( [ "${url#git://github.com/}" != "$url" ] ||
+    [ "${url#https://github.com/}" != "$url" ]
+    ) && {
     url="${url/git:/https:}"
     url="${url%.git}"
-    rev=$("$(dirname "$0")/../../../build-support/upstream-updater/urls-from-page.sh" "$url/commits" | grep /commit/ | head -n 1 | xargs basename)
-    hash=$("$(dirname "$0")/../../../build-support/fetchgit/nix-prefetch-git" "$url" "$rev")
-    version="git-$(date +%Y%m%d)";
+    [ -z "$rev" ] && rev=$("$(dirname "$0")/../../../build-support/upstream-updater/urls-from-page.sh" "$url/commits" | grep /commit/ | head -n 1 | xargs basename)
+    hash=$("$(dirname "$0")/../../../build-support/fetchgit/nix-prefetch-git" "$url" "$rev" | grep . | tail -n 1)
+    [ -z "$version" ] && version="git-$(date +%Y%m%d)";
   }
   [ "${url#git://common-lisp.net/}" != "$url" ] && {
     http_repo_url="$url"
@@ -41,8 +72,26 @@ url="${ql_src##* }"
     http_repo_url="${http_repo_url/\/projects\// /r/projects/}"
     http_repo_head="$http_repo_url/refs/heads/master"
     echo "$http_repo_head" >&2
-    rev=$(curl -L "$http_repo_head");
+    [ -z "$rev" ] && rev=$(curl -L "$http_repo_head");
     hash=$("$(dirname "$0")/../../../build-support/fetchgit/nix-prefetch-git" "$url" "$rev")
+    [ -z "$version" ] && version="git-$(date +%Y%m%d)";
+  }
+  [ "${url#http://git.b9.com/}" != "$url" ] && {
+    http_repo_url="$url"
+    http_repo_url="${http_repo_url/git:/http:}"
+    http_repo_head="$http_repo_url/refs/heads/master"
+    echo "$http_repo_head" >&2
+    rev=$(curl -L "$http_repo_head");
+    hash=$("$(dirname "$0")/../../../build-support/fetchgit/nix-prefetch-git" "$url" "$rev" | tail -n 1)
+    version="git-$(date +%Y%m%d)";
+  }
+  [ "${url#http://common-lisp.net/}" != "$url" ] && {
+    http_repo_url="$url"
+    http_repo_url="${http_repo_url/git:/http:}"
+    http_repo_head="$http_repo_url/refs/heads/master"
+    echo "$http_repo_head" >&2
+    rev=$(curl -L "$http_repo_head");
+    hash=$("$(dirname "$0")/../../../build-support/fetchgit/nix-prefetch-git" "$url" "$rev" | tail -n 1)
     version="git-$(date +%Y%m%d)";
   }
 }
@@ -57,13 +106,58 @@ url="${ql_src##* }"
   unset url
 }
 
-cat << EOF
+[ "$ql_src_type" = clnet-darcs ] && {
+  ql_src_type=darcs
+  url="http://common-lisp.net/project/$url/darcs/$url/"
+}
+
+[ "$ql_src_type" = darcs ] && {
+  fetcher="pkgs.fetchdarcs"
+  [ -z "$version" ] &&
+  version="$(curl "$url/_darcs/inventory" | grep '\[TAG ' | tail -n 1 | sed -e 's/.* //')"
+  [ -z "$version" ] &&
+  version="$(curl "$url/_darcs/hashed_inventory" | grep '\[TAG ' | tail -n 1 | sed -e 's/.* //')"
+  rev="$version";
+  hash=$(echo "
+  with (import <nixpkgs> {});
+      fetchdarcs {
+        url=''$url'';
+	rev=''$version'';
+	sha256=''0000000000000000000000000000000000000000000000000000000000000000'';
+    }" | nix-instantiate - | tail -n 1 |
+    xargs nix-store -r 2>&1 | tee /dev/stderr | grep 'instead has' | tail -n 1 |
+    sed -e 's/.* instead has .//;s/[^0-9a-z].*//')
+}
+
+[ "$ql_src_type" = froydware-http ] && {
+  dirurl = "http://method-combination.net/lisp/files/";
+  url="$("$(dirname "$0")/../../../build-support/upstream-updater/urls-from-page.sh" "$dirurl" | grep "/$url_" | tail -n 1)"
+  ql_src_type=http
+}
+
+[ "$ql_src_type" = http ] && {
+  fetcher="pkgs.fetchurl";
+  version="$(echo "$url" | sed -re 's@.*-([0-9.]+)[-._].*@\1@')"
+  hash="$(nix-prefetch-url "$url" | grep . | tail -n 1)"
+}
+
+[ "$ql_src_type" = https ] && {
+  fetcher="pkgs.fetchurl";
+  version="$(echo "$url" | sed -re 's@.*-([0-9.]+)[-._].*@\1@')"
+  hash="$(nix-prefetch-url "$url" | grep . | tail -n 1)"
+}
+
+if [ "$ql_src" = '{"error":"Not Found"}' ]; then
+	echo "# $name: not found"
+else
+cat << EOF | grep -Ev '^[ ]+$'
 
   $name = buildLispPackage rec {
     baseName = "$name";
     version = "${version:-\${Set me //}";
     description = "$description";
     deps = [$dependencies];
+    # Source type: $ql_src_type
     src = ${fetcher:-pkgs.fetchurl} {
       ${url:+url = ''$url'';}
       sha256 = "${hash:-0000000000000000000000000000000000000000000000000000000000000000}";
@@ -74,5 +168,6 @@ cat << EOF
     };
   };
 EOF
+fi
 
 for i in $dependencies; do "$0" "$i"; done
diff --git a/pkgs/development/lisp-modules/iterate.darcs-context b/pkgs/development/lisp-modules/iterate.darcs-context
new file mode 100644
index 000000000000..533faaec8e77
--- /dev/null
+++ b/pkgs/development/lisp-modules/iterate.darcs-context
@@ -0,0 +1,116 @@
+
+Context:
+
+[make the #L reader macro standard conformant by not assuming anything about the representation of quasiquoted forms.
+Douglas Katzman <dougk@google.com>**20140423044759
+ Ignore-this: ccdda48acdf7b2033ac0f51ed48582fc
+] 
+
+[fix for test for.previous.var-with-type-declaration
+Jan Moringen <jmoringe@techfak.uni-bielefeld.de>**20140129144214
+ Ignore-this: a617d046d90816827d370d3bbf38d2df
+] 
+
+[housekeeping
+attila.lendvai@gmail.com**20140129143709
+ Ignore-this: a05c5fbace98b282a464b829711e064f
+] 
+
+[added test for.previous.var-with-type-declaration
+attila.lendvai@gmail.com**20140129143435
+ Ignore-this: 6e9f419e118724c660d519c3fa9f8dd2
+] 
+
+[added a restart to remove conflicting clauses
+Russ Tyndall <russ@acceleration.net>**20120508185107
+ Ignore-this: b7c4c6eec565dd435b8e9e5403fcb0a8
+] 
+
+[added new failing test bug/collect-at-beginning, as reported by Paul Sexton
+attila.lendvai@gmail.com**20121218144220
+ Ignore-this: d55e7c22deeaf89b90d03d7ef01179d6
+] 
+
+[Fix: If both AT BEGINNING and RESULT-TYPE are specified, RESULT-TYPE was ignored.
+attila.lendvai@gmail.com**20120509225435
+ Ignore-this: 20cf116df585ffedfbe63ce7a4092249
+ 
+ Patched by Ilya Perminov
+] 
+
+[fix package nickname in case sensitive mode
+attila.lendvai@gmail.com**20110927152614
+ Ignore-this: fb1ba1d418b4a20a0cd4e697d943a0e6
+] 
+
+[move list-of-forms? out of the #L eval-when, because it's also used by other parts of iterate
+attila.lendvai@gmail.com**20110119161133
+ Ignore-this: 97545988c4a3eab02434f222120b1a1
+] 
+
+[added bug/walk.2
+attila.lendvai@gmail.com**20100603093335
+ Ignore-this: faa1bd48d0450e76652552bb47bcff02
+] 
+
+[first-time-p bugfix: return-code :body must return list of forms
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525141533
+ if-first-time not declared obsolete
+ documentation strings for (iter:display-iterate-clauses) complete
+] 
+
+[fix defmacro-driver example in manual
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525081443] 
+
+[Use @:, @. and two spaces between sentences
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525080932
+ Move section on predicate (first-time-p) outside of gathering clauses
+ Various typos and some clarifications
+] 
+
+[document *list-end-test* removal in FOR...IN+ON
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525074338] 
+
+[Renamed back to sharpL-reader
+attila.lendvai@gmail.com**20070506100744] 
+
+[Fix sharpL reader, add :execute to the eval-when to make (load "iterate" :compiling t) work on clisp
+attila.lendvai@gmail.com**20070506100704] 
+
+[Convert manual to Texinfo.
+Luis Oliveira <loliveira@common-lisp.net>**20060713142915] 
+
+[make FOR...IN/ON with dotted lists work like LOOP
+hoehle@users.sourceforge.net**20070503130604
+ More precisely, FOR ON accepts dotted lists, FOR IN errors out.
+ As a result, iterate::*list-end-test* was eliminated.
+ Behaviour is now constant and does not depend on some special variable.
+ Note: Documentation not yet updated, pending move to Texinfo.
+] 
+
+[walk-tagbody: more testcases
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503095309] 
+
+[walk-tagbody must not macroexpand symbol/tags among its statements
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070404124132] 
+
+[add ELSE test cases, remove GNU Arch tag
+Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503093008] 
+
+[Clean up #L stuff, do not leave #L enabled after loading iterate
+attila.lendvai@gmail.com**20070426153431] 
+
+[Set *list-end-test* to 'endp instead of 'atom, so (iter (for foo :in something-non-list)) fails instead of silently exists
+attila.lendvai@gmail.com**20070215151652] 
+
+[wrap code in progns, to avoid possiblity of multiple nil tags in tagbody
+ Henrik Hjelte <henrik@evahjelte.com>**20061025145324] 
+
+[test to detect bug, more than one nil tag in tagbody
+ Henrik Hjelte <henrik@evahjelte.com>**20061025145128] 
+
+[Added release.sh
+attila.lendvai@gmail.com**20060506155953] 
+
+[TAG 1.4.3
+attila.lendvai@gmail.com**20060505134701] 
diff --git a/pkgs/development/lisp-modules/lisp-packages.nix b/pkgs/development/lisp-modules/lisp-packages.nix
index 2b4cda88ef81..de9f35cb87f7 100644
--- a/pkgs/development/lisp-modules/lisp-packages.nix
+++ b/pkgs/development/lisp-modules/lisp-packages.nix
@@ -32,13 +32,13 @@ let lispPackages = rec {
 
   iterate = buildLispPackage rec {
     baseName = "iterate";
-    version = "1.4.3";
+    version = "darcs-2014-11-01";
     description = "Iteration package for Common Lisp";
     deps = [];
     src = pkgs.fetchdarcs {
       url = "http://common-lisp.net/project/iterate/darcs/iterate";
-      sha256 = "0m3q0s7h5s8varwx584m2akgdslj14df7kg4w1bj1fbgzsag5m1w";
-      rev = version;
+      sha256 = "0gm05s3laiivsqgqjfj1rkz83c2c0jyn4msfgbv6sz42znjpam25";
+      context = ./iterate.darcs-context;
     };
     overrides = x: {
       configurePhase="buildPhase(){ true; }";
@@ -66,8 +66,6 @@ let lispPackages = rec {
       url = "https://github.com/fb08af68/esrap-peg.git";
       sha256 = "48e616a697aca95e90e55052fdc9a7f96bf29b3208b1b4012fcd3189c2eceeb1";
       rev = ''1f2f21e32e618f71ed664cdc5e7005f8b6b0f7c8'';
-      
-      
     };
   };
 
@@ -78,7 +76,6 @@ let lispPackages = rec {
     deps = [];
     src = pkgs.fetchcvs {
       sha256 = "a574b7f9615232366e3e5e7ee400d60dbff23f6d0e1def5a3c77aafdfd786e6a";
-      
       date = ''2013-10-28'';
       module = ''cl-unification'';
       cvsRoot = '':pserver:anonymous:anonymous@common-lisp.net:/project/cl-unification/cvsroot'';
@@ -94,8 +91,409 @@ let lispPackages = rec {
       url = "https://github.com/scymtym/esrap.git";
       sha256 = "c56616ac01be0f69e72902f9fd830a8af2c2fa9018b66747a5da3988ae38817f";
       rev = ''c71933b84e220f21e8a509ec26afe3e3871e2e26'';
-      
-      
+    };
+  };
+
+  clx-truetype = buildLispPackage rec {
+    baseName = "clx-truetype";
+    version = "git-20141112";
+    description = "clx-truetype is pure common lisp solution for antialiased TrueType font rendering using CLX and XRender extension.";
+    deps = [cl-fad cl-store cl-vectors clx trivial-features zpb-ttf];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/filonenko-mikhail/clx-truetype'';
+      sha256 = "fe3d3923909a8f0a19298bfa366bb265c5155eed43d4dd315920535d15424d65";
+      rev = ''6f72905c6886a656e5a1c8167097f12375c6da7d'';
+    };
+    overrides = x:{
+      configurePhase = "rm Makefile";
+    };
+  };
+
+  cl-fad = buildLispPackage rec {
+    baseName = "cl-fad";
+    version = "v0.7.2";
+    description = "Portable pathname library";
+    deps = [alexandria bordeaux-threads];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/edicl/cl-fad'';
+      sha256 = "87917ab4af4f713ad41faa72c7eaed2872f8dac47f49c0668ba8782590fdbca4";
+      rev = ''refs/tags/v0.7.2'';
+    };
+  };
+
+  bordeaux-threads = buildLispPackage rec {
+    baseName = "bordeaux-threads";
+    version = "0.8.3";
+    description = "Bordeaux Threads makes writing portable multi-threaded apps simple";
+    deps = [alexandria];
+    # Source type: http
+    src = pkgs.fetchurl {
+      url = ''http://common-lisp.net/project/bordeaux-threads/releases/bordeaux-threads-0.8.3.tar.gz'';
+      sha256 = "0c3n7qsx4jc3lg8s0n9kxfvhhyl0s7123f3038nsb96rf0bvb5hy";
+    };
+  };
+
+  zpb-ttf = buildLispPackage rec {
+    baseName = "zpb-ttf";
+    version = "release-1.0.3";
+    description = "Access TrueType font metrics and outlines from Common Lisp";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/xach/zpb-ttf'';
+      sha256 = "3092a3ba9f27b091224d11c0ccfb09c9a4632ebfd6c3986df3147f19e53606f2";
+      rev = ''refs/tags/release-1.0.3'';
+    };
+  };
+
+  cl-store = buildLispPackage rec {
+    baseName = "cl-store";
+    version = "git-20141112";
+    description = "Serialization package";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/skypher/cl-store'';
+      sha256 = "7096ad38d5c77d58f7aa0ef8df1884411173c140408cb7967922b315ab505472";
+      rev = ''2d2455c024fe64ee24cbf914c82254fa5bd09cab'';
+    };
+  };
+
+  cl-vectors = buildLispPackage rec {
+    baseName = "cl-vectors";
+    version = "git-20141112";
+    description = "cl-paths: vectorial paths manipulation";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/fjolliton/cl-vectors'';
+      sha256 = "2d1428911cd2699513a0b886661e9b54d1edf78558277ac83723a22c7fc9dea7";
+      rev = ''7b3e5d6a8abe3de307c1dc0c4347f4efa4f25f29'';
+    };
+  };
+
+  trivial-features = buildLispPackage rec {
+    baseName = "trivial-features";
+    version = "git-20141112";
+    description = "Ensures consistent *FEATURES* across multiple CLs.";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/trivial-features/trivial-features'';
+      sha256 = "2006aebe0c2bfed1c39a2195639e221fdc52a443b6c8522e535cbef2370a07fc";
+      rev = ''2b7cdc3b8073eb33655850b51223770b535da6d9'';
+    };
+  };
+
+  clsql = buildLispPackage rec {
+    baseName = "clsql";
+    version = "git-20141112";
+    description = "Common Lisp SQL Interface library";
+    deps = [uffi];
+    buildInputs = [pkgs.mysql pkgs.zlib];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://git.b9.com/clsql.git'';
+      sha256 = "dacd56bc9a0348e8101184bf154b971407a98f3a753d7cce34c7a44b4b19f8fd";
+      rev = ''180b52cb686a87487e12e87b13bafe131e6c3bef'';
+    };
+    overrides = x:{
+      preConfigure = ''
+        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.mysql}/include/mysql"
+	export NIX_LDFLAGS="$NIX_LDFLAGS -L${pkgs.mysql}/lib/mysql"
+      '';
+    };
+  };
+
+  uffi = buildLispPackage rec {
+    baseName = "uffi";
+    version = "git-20141112";
+    description = "Universal Foreign Function Library for Common Lisp";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://git.b9.com/uffi.git'';
+      sha256 = "219e4cfebfac251c922bcb9d517980b0988d765bd18b7f5cc765a43913aaacc6";
+      rev = ''a63da5b764b6fa30e32fcda4ddac88de385c9d5b'';
+    };
+  };
+
+  query-fs = buildLispPackage rec {
+    baseName = "query-fs";
+    version = "git-20141113";
+    description = "High-level virtual FS using CL-Fuse-Meta-FS to represent results of queries";
+    deps = [bordeaux-threads cl-fuse cl-fuse-meta-fs cl-ppcre command-line-arguments iterate trivial-backtrace];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/fb08af68/query-fs'';
+      sha256 = "4ed66f255e50d2c9ea9f0b3fbaa92bde9b8acf6a5fafb0d7f12b254be9de99e9";
+      rev = ''831f0180967f09b1dd345fef82144f48334279c3'';
+    };
+  };
+
+  cl-fuse = buildLispPackage rec {
+    baseName = "cl-fuse";
+    version = "git-20141113";
+    description = "CFFI bindings to FUSE (Filesystem in user space)";
+    deps = [bordeaux-threads cffi cl-utilities iterate trivial-backtrace trivial-utf-8];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/fb08af68/cl-fuse'';
+      sha256 = "1l4ydxbwzlj6gkb1c9vc96rfbj951snaidpx10pxz4wdnzg3kq99";
+      rev = ''6feffaa34a21cfc7890b25357284858f924e8cb3'';
+    };
+    propagatedBuildInputs = [pkgs.fuse];
+    overrides = x : {
+      configurePhase = ''
+        export CL_SOURCE_REGISTRY="$CL_SOURCE_REGISTRY:$PWD"
+	export makeFlags="$makeFlags LISP=common-lisp.sh"
+      '';
+    };
+  };
+
+  cffi = buildLispPackage rec {
+    baseName = "cffi";
+    version = "0.14.0";
+    description = "The Common Foreign Function Interface";
+    deps = [alexandria babel trivial-features];
+    # Source type: http
+    src = pkgs.fetchurl {
+      url = ''http://common-lisp.net/project/cffi/releases/cffi_${version}.tar.gz'';
+      sha256 = "155igjh096vrp7n71c0xcg9qbcpj6547qjvzi9shxbpi6piw6fkw";
+    };
+  };
+
+  babel = buildLispPackage rec {
+    baseName = "babel";
+    version = "git-20141113";
+    description = "Babel, a charset conversion library.";
+    deps = [alexandria trivial-features];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/cl-babel/babel'';
+      sha256 = "abe7150f25ceb7eded520d95f1665a46f4233cf13b577fd02c3f6be54c32facc";
+      rev = ''74b35ea79b769c4f9aefad933923778ffa7915ab'';
+    };
+  };
+
+  cl-utilities = buildLispPackage rec {
+    baseName = "cl-utilities";
+    version = "1.2.4";
+    description = "A collection of Common Lisp utility functions";
+    deps = [];
+    # Source type: http
+    src = pkgs.fetchurl {
+      url = ''http://common-lisp.net/project/cl-utilities/cl-utilities-${version}.tar.gz'';
+      sha256 = "1z2ippnv2wgyxpz15zpif7j7sp1r20fkjhm4n6am2fyp6a3k3a87";
+    };
+  };
+
+  trivial-utf-8 = buildLispPackage rec {
+    baseName = "trivial-utf-8";
+    version = "2011-09-08";
+    description = "A UTF-8 encoding library";
+    deps = [];
+    # Source type: darcs
+    src = pkgs.fetchdarcs {
+      url = ''http://common-lisp.net/project/trivial-utf-8/darcs/trivial-utf-8/'';
+      sha256 = "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1";
+    };
+  };
+
+  cl-fuse-meta-fs = buildLispPackage rec {
+    baseName = "cl-fuse-meta-fs";
+    version = "git-20141113";
+    description = "CFFI bindings to FUSE (Filesystem in user space)";
+    deps = [bordeaux-threads cl-fuse iterate pcall];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/fb08af68/cl-fuse-meta-fs'';
+      sha256 = "259303effea61baf293ffc5d080cb071ef15bed8fa1c76f0c1631f68d2aa3c85";
+      rev = ''d3d332471ce9330e3eaebf9d6cecdd2014c3599b'';
+    };
+  };
+
+  pcall = buildLispPackage rec {
+    baseName = "pcall";
+    version = "0.3";
+    description = "Common Lisp library intended to simplify 'result-oriented' parallelism";
+    deps = [bordeaux-threads];
+    # Source type: http
+    src = pkgs.fetchgit {
+      url = ''https://github.com/marijnh/pcall'';
+      sha256 = "00ix5d9ljymrrpwsri0hhh3d592jqr2lvgbvkhav3k96rwq974ps";
+      rev = "4e1ef32c33c2ca18fd8ab9afb4fa793c179a3578";
+    };
+  };
+
+  command-line-arguments = buildLispPackage rec {
+    baseName = "command-line-arguments";
+    version = "git-20141113";
+    description = "small library to deal with command-line arguments";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://common-lisp.net/project/qitab/git/command-line-arguments.git'';
+      sha256 = "91bb321e201034c35121860cb6ec05e39c6392d5906a52b9a2d33d0f76b06123";
+      rev = ''121f303bbef9c9cdf37a7a12d8adb1ad4be5a6ae'';
+    };
+  };
+
+  trivial-backtrace = buildLispPackage rec {
+    baseName = "trivial-backtrace";
+    version = "git-2014-11-01";
+    description = "trivial-backtrace";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://common-lisp.net/project/trivial-backtrace/trivial-backtrace.git'';
+      sha256 = "1ql80z0igsng32rbp24h81pj5c4l87c1ana6c9lx3dlqpixzl4kj";
+      rev = ''48a6b081e00b0d85f1e001c7258393ed34d06bc9'';
+    };
+  };
+
+  drakma = buildLispPackage rec {
+    baseName = "drakma";
+    version = "v1.3.10";
+    description = "Full-featured http/https client based on usocket";
+    deps = [chipz chunga cl-ssl cl-base64 cl-ppcre flexi-streams puri usocket];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/edicl/drakma'';
+      sha256 = "0ecc37c9d5cc91a3b86746c4f20c0b1609969db01041df04ff6a9df1d021b30a";
+      rev = ''refs/tags/v1.3.10'';
+    };
+  };
+
+  chipz = buildLispPackage rec {
+    baseName = "chipz";
+    version = "git-20141113";
+    description = "A library for decompressing deflate, zlib, and gzip data";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/froydnj/chipz'';
+      sha256 = "73ae22d58b6db5b2c86af4a465260e48a5aca19827d2b7329e2870c1148da8e2";
+      rev = ''3402c94df1d0af7742df08d3ffa23fd5c04c9bf2'';
+    };
+  };
+
+  chunga = buildLispPackage rec {
+    baseName = "chunga";
+    version = "v1.1.5";
+    description = "Portable chunked streams";
+    deps = [trivial-gray-streams];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/edicl/chunga'';
+      sha256 = "5d045882be34b158185c491da85cfd4671f456435c9ff8fa311a864f633b0446";
+      rev = ''refs/tags/v1.1.5'';
+    };
+  };
+
+  trivial-gray-streams = buildLispPackage rec {
+    baseName = "trivial-gray-streams";
+    version = "git-20141113";
+    description = "Compatibility layer for Gray Streams (see http://www.cliki.net/Gray%20streams).";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/trivial-gray-streams/trivial-gray-streams'';
+      sha256 = "8d5c041f95eb31aa313adc433edf91bb14656400cae1e0ec98ad7ed085bb7954";
+      rev = ''0483ade330508b4b2edeabdb47d16ec9437ee1cb'';
+    };
+  };
+
+  cl-ssl = buildLispPackage rec {
+    baseName = "cl+ssl";
+    version = "git-20141113";
+    description = "Common Lisp interface to OpenSSL.";
+    deps = [bordeaux-threads cffi flexi-streams trivial-garbage trivial-gray-streams];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/cl-plus-ssl/cl-plus-ssl'';
+      sha256 = "6b99fc49ac38e49ee69a47ce5791606b8b811c01e5563bfd3164d393db6c4040";
+      rev = ''f8695c5df48ebc3557f76a8a08dd96429bdf8df2'';
+    };
+    propagatedBuildInputs = [pkgs.openssl];
+  };
+
+  flexi-streams = buildLispPackage rec {
+    baseName = "flexi-streams";
+    version = "v1.0.13";
+    description = "Flexible bivalent streams for Common Lisp";
+    deps = [trivial-gray-streams];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/edicl/flexi-streams'';
+      sha256 = "46d6b056cffc9ea201dedde847b071db744dfbadf0a21a261717272fe3d85cab";
+      rev = ''refs/tags/v1.0.13'';
+    };
+  };
+
+  trivial-garbage = buildLispPackage rec {
+    baseName = "trivial-garbage";
+    version = "git-20141113";
+    description = "Portable finalizers, weak hash-tables and weak pointers.";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/trivial-garbage/trivial-garbage'';
+      sha256 = "69f6c910921de436393ff5f93bee36443534756965fa34e43e04d9e8919212df";
+      rev = ''2721d36d71748d9736a82fe5afe333c52bae3084'';
+    };
+  };
+
+  cl-base64 = buildLispPackage rec {
+    baseName = "cl-base64";
+    version = "git-20141113";
+    description = "Base64 encoding and decoding with URI support.";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://git.b9.com/cl-base64.git'';
+      sha256 = "a34196544cc67d54aef74e31eff2cee62a7861a5675d010fcd925f1c61c23e81";
+      rev = ''f375d1fc3a6616e95ae88bb33493bb99f920ba13'';
+    };
+  };
+
+  puri = buildLispPackage rec {
+    baseName = "puri";
+    version = "git-20141113";
+    description = "Portable Universal Resource Indentifier Library";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''http://git.b9.com/puri.git'';
+      sha256 = "71804698e7f3009fb7f570656af5d952465bfe77f72e9c41f7e2dda8a5b45c5e";
+      rev = ''68260dbf320c01089c8cee54ef32c800eefcde7f'';
+    };
+  };
+
+  usocket = buildLispPackage rec {
+    baseName = "usocket";
+    version = "0.6.1";
+    description = "Universal socket library for Common Lisp";
+    deps = [];
+    # Source type: http
+    src = pkgs.fetchurl {
+      url = ''http://common-lisp.net/project/usocket/releases/usocket-${version}.tar.gz'';
+      sha256 = "1lnhjli85w20iy5nn6j6gsyxx42mvj8l0dfhwcjpl6dl2lz80r7a";
+    };
+  };
+
+  cl-html-parse = buildLispPackage rec {
+    baseName = "cl-html-parse";
+    version = "git-20141113";
+    description = "HTML Parser";
+    deps = [];
+    # Source type: git
+    src = pkgs.fetchgit {
+      url = ''https://github.com/gwkkwg/cl-html-parse'';
+      sha256 = "0153d4962493f106849fc7cbfe03c5ff874adae8d307ea2e1ceebbb009e2f89f";
+      rev = ''b21e8757210a1eb2a47104a563f58bf82ba9a579'';
     };
   };
 };
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 6ec7934e5638..260128a2ddac 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -57,12 +57,13 @@ if disabled then throw "${name} not supported for interpreter ${python.executabl
   name = namePrefix + name;
 
   buildInputs = [
-    python wrapPython setuptools
+    wrapPython setuptools
     (distutils-cfg.override { extraCfg = distutilsExtraCfg; })
   ] ++ buildInputs ++ pythonPath
     ++ (lib.optional (lib.hasSuffix "zip" attrs.src.name or "") unzip);
 
-  propagatedBuildInputs = propagatedBuildInputs ++ [ recursivePthLoader ];
+  # propagate python to active setup-hook in nix-shell
+  propagatedBuildInputs = propagatedBuildInputs ++ [ recursivePthLoader python ];
 
   pythonPath = [ setuptools ] ++ pythonPath;
 
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index aeb59dda6642..7971f0bb67f0 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "6.0";
+  version = "6.1";
   name = "checkstyle-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/checkstyle/${version}/${name}-bin.tar.gz";
-    sha256 = "08qjx7yfx5p7ydbcm6lzm15qcwkgcf1jw27i9fnyr01wppz9yrsx";
+    sha256 = "0g5ywnc64v2c4zlamm3l2x0l1z79199mcjz0xzv3j5wx7rsyasrc";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 64f3b7d60abd..27fd739ed544 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
         --replace 'obj:/usr/X11R6/lib' 'obj:*/lib' \
         --replace 'obj:/usr/lib' 'obj:*/lib'
     done
+
+    paxmark m $out/lib/valgrind/*-*-linux
   '';
 
   meta = {
diff --git a/pkgs/development/tools/atom-shell/default.nix b/pkgs/development/tools/atom-shell/default.nix
new file mode 100644
index 000000000000..141ba284cc05
--- /dev/null
+++ b/pkgs/development/tools/atom-shell/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, buildEnv, makeDesktopItem, makeWrapper, zlib, glib, alsaLib
+, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
+, cairo, cups, expat, libgpgerror, nspr, gconf, nss, xlibs, libcap, unzip
+}:
+let
+  atomEnv = buildEnv {
+    name = "env-atom";
+    paths = [
+      stdenv.gcc.gcc zlib glib dbus gtk atk pango freetype libgnome_keyring3
+      fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
+      xlibs.libXrender xlibs.libX11 xlibs.libXext xlibs.libXdamage xlibs.libXtst
+      xlibs.libXcomposite xlibs.libXi xlibs.libXfixes xlibs.libXrandr
+      xlibs.libXcursor libcap
+    ];
+  };
+in stdenv.mkDerivation rec {
+  name = "atom-shell-${version}";
+  version = "0.19.1";
+
+  src = fetchurl {
+    url = "https://github.com/atom/atom-shell/releases/download/v0.19.1/atom-shell-v0.19.1-linux-x64.zip";
+    sha256 = "10q1slwv2lkiqqxpv0m5a1k0gj2yp8bi9a7ilb05zz1wg7j3yw4y";
+    name = "${name}.zip";
+  };
+
+  buildInputs = [ atomEnv makeWrapper unzip ];
+
+  phases = [ "installPhase" "fixupPhase" ];
+
+  unpackCmd = "unzip";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    unzip -d $out/bin $src
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+    $out/bin/atom
+    mv $out/bin/atom $out/bin/atom-shell
+    wrapProgram $out/bin/atom-shell \
+    --prefix "LD_LIBRARY_PATH" : "${atomEnv}/lib:${atomEnv}/lib64"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Cross platform desktop application shell";
+    homepage = https://github.com/atom/atom-shell;
+    license = [ licenses.mit ];
+    maintainers = [ maintainers.fluffynukeit ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
new file mode 100644
index 000000000000..a32ea9a3adda
--- /dev/null
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "icmake-${version}";
+  version = "7.21.01";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/icmake/icmake_${version}.orig.tar.gz";
+    sha256 = "0jx547bb0h1z5f3v9kvjiq5bgarbrcs1h47y1nnwdkg0q1mqma1h";
+  };
+
+  preConfigure = ''
+    patchShebangs ./
+    sed -i "s;usr/;;g" INSTALL.im
+  '';
+
+  buildPhase = "./icm_bootstrap $out";
+
+  installPhase = "./icm_install all /";
+
+  meta = with stdenv.lib; {
+    description = "A program maintenance (make) utility using a C-like grammar";
+    homepage = http://icmake.sourceforge.net/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/haskell/PastePipe/default.nix b/pkgs/development/tools/haskell/PastePipe/default.nix
index 92d985ecc6e2..9d967c30f1cf 100644
--- a/pkgs/development/tools/haskell/PastePipe/default.nix
+++ b/pkgs/development/tools/haskell/PastePipe/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "PastePipe";
-  version = "1.6";
-  sha256 = "08rsq2j3gy98a69pjldvbhawmnzxgld7abh9kszrb0kpjmd9sgc4";
+  version = "1.7";
+  sha256 = "0had11n44y7zjhhymdbvahwmxcxxrbxy7c9jxijhw3n7xqhdmva0";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ cmdargs HTTP network networkUri ];
diff --git a/pkgs/development/tools/haskell/cabal-bounds/default.nix b/pkgs/development/tools/haskell/cabal-bounds/default.nix
index b0bf11bb2a01..ec2310ff5822 100644
--- a/pkgs/development/tools/haskell/cabal-bounds/default.nix
+++ b/pkgs/development/tools/haskell/cabal-bounds/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-bounds";
-  version = "0.8.7";
-  sha256 = "03kp59nhdyq3bl91akd38iwvwwy3zgvadx85lwl3827nr6s774qk";
+  version = "0.8.8";
+  sha256 = "0jd901r6312yw4rzxvy5x7q18kjwjhgr5s5npczhwc4q7zvxdj7q";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/ghcid/default.nix b/pkgs/development/tools/haskell/ghcid/default.nix
index 3ad43076a417..2ce069f53c37 100644
--- a/pkgs/development/tools/haskell/ghcid/default.nix
+++ b/pkgs/development/tools/haskell/ghcid/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghcid";
-  version = "0.3.1";
-  sha256 = "09dyynqa42q6rcms8pghlyih8a3fahb5fbhc500grqc094kgfs7c";
+  version = "0.3.2";
+  sha256 = "1kx20la4snldhd709y69za8bs57v90nblghfrxrvmzhrmpvh4bn3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ cmdargs extra filepath terminalSize time ];
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index a79dbb9a1332..0699337640f1 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -1,18 +1,18 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, cmdargs, cpphs, filepath, haskellSrcExts, hscolour
-, transformers, uniplate
+{ cabal, ansiTerminal, cmdargs, cpphs, extra, filepath
+, haskellSrcExts, hscolour, transformers, uniplate
 }:
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.9.10";
-  sha256 = "08pfc0mhqkhali0hjxpa26hr5ykfdmyldh0r04v1b42a1c60k1id";
+  version = "1.9.12";
+  sha256 = "0ga66b7lpvgx2w1fg5gnilncg75dfxcjcrx9hvjyxh7fin4y1z6a";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    cmdargs cpphs filepath haskellSrcExts hscolour transformers
-    uniplate
+    ansiTerminal cmdargs cpphs extra filepath haskellSrcExts hscolour
+    transformers uniplate
   ];
   meta = {
     homepage = "http://community.haskell.org/~ndm/hlint/";
diff --git a/pkgs/development/tools/haskell/keter/default.nix b/pkgs/development/tools/haskell/keter/default.nix
index 18c4b2b88641..38c343903d93 100644
--- a/pkgs/development/tools/haskell/keter/default.nix
+++ b/pkgs/development/tools/haskell/keter/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "keter";
-  version = "1.3.5.1";
-  sha256 = "1g8cq74cjhy8r0435m4il0iak5g03jdiz40sn4801iy765rcylpv";
+  version = "1.3.5.3";
+  sha256 = "18dpi97q4sz5zxv2yc6ar5nbf9gvs71n6gmxd9mv5myknvsliif2";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/threadscope/default.nix b/pkgs/development/tools/haskell/threadscope/default.nix
index a4961440a3ec..07854f970dc0 100644
--- a/pkgs/development/tools/haskell/threadscope/default.nix
+++ b/pkgs/development/tools/haskell/threadscope/default.nix
@@ -1,26 +1,24 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, binary, cairo, deepseq, filepath, ghcEvents, glib, gtk
-, mtl, pango, time
+, mtl, pango, text, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "threadscope";
-  version = "0.2.4";
-  sha256 = "1208gp80vj3dngc4nrj1jk5y4h1181bgwq2qj764kcjvkaxch599";
+  version = "0.2.5";
+  sha256 = "1nrhgir855n6n764fapaqd94dhqmsxn07ky3zf04nrx0lca9ir52";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    binary cairo deepseq filepath ghcEvents glib gtk mtl pango time
+    binary cairo deepseq filepath ghcEvents glib gtk mtl pango text
+    time
   ];
   configureFlags = "--ghc-options=-rtsopts";
-  patches = [ ./threadscope.patch ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/ThreadScope";
     description = "A graphical tool for profiling parallel Haskell programs";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/tools/haskell/threadscope/threadscope.patch b/pkgs/development/tools/haskell/threadscope/threadscope.patch
deleted file mode 100644
index af504a11f26e..000000000000
--- a/pkgs/development/tools/haskell/threadscope/threadscope.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/threadscope.cabal.orig	2014-11-03 15:23:29.000000000 -0600
-+++ b/threadscope.cabal	2014-11-03 15:24:01.000000000 -0600
-@@ -41,7 +41,10 @@
- Executable threadscope
-   Main-is:           Main.hs
-   Build-Depends:     base >= 4.0 && < 5,
--                     gtk >= 0.12, cairo, glib, pango,
-+                     gtk >= 0.12 && < 0.13,
-+                     cairo < 0.13,
-+                     glib < 0.13,
-+                     pango < 0.13,
-                      binary, array, mtl, filepath,
-                      ghc-events >= 0.4.2,
-                      containers >= 0.2 && < 0.6,
diff --git a/pkgs/development/tools/misc/ShellCheck/default.nix b/pkgs/development/tools/misc/ShellCheck/default.nix
index d93383171dd6..519ca892f3c1 100644
--- a/pkgs/development/tools/misc/ShellCheck/default.nix
+++ b/pkgs/development/tools/misc/ShellCheck/default.nix
@@ -1,19 +1,24 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, json, mtl, parsec, QuickCheck, regexCompat }:
+{ cabal, json, mtl, parsec, QuickCheck, regexCompat, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "ShellCheck";
-  version = "0.3.4";
-  sha256 = "07fw8c33p7h1kvg899dwnvqpxpywcidhbw9jhjd8xsma7kz471iw";
+  version = "0.3.5";
+  sha256 = "0x4rvhpzrjkn9a9fsmp9iwv9g21hkrd8fgq05iy4wgv8nfhgv2cj";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ json mtl parsec QuickCheck regexCompat ];
-  testDepends = [ json mtl parsec QuickCheck regexCompat ];
+  buildDepends = [
+    json mtl parsec QuickCheck regexCompat transformers
+  ];
+  testDepends = [
+    json mtl parsec QuickCheck regexCompat transformers
+  ];
   meta = {
     homepage = "http://www.shellcheck.net/";
     description = "Shell script analysis tool";
-    license = "unknown";
+    license = self.stdenv.lib.licenses.agpl3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ aycanirican ];
   };
diff --git a/pkgs/development/tools/misc/yodl/default.nix b/pkgs/development/tools/misc/yodl/default.nix
index 4c92946008ec..691974353e10 100644
--- a/pkgs/development/tools/misc/yodl/default.nix
+++ b/pkgs/development/tools/misc/yodl/default.nix
@@ -1,31 +1,40 @@
-# This package is only used to create the documentation of zsh-cvs
-# eg have a look at http://www.zsh.org/mla/users/2008/msg00715.html
-# latest release is newer though
+{ stdenv, fetchurl, perl, icmake }:
 
-{ stdenv, fetchurl, perl }:
+stdenv.mkDerivation rec {
+  name = "yodl-${version}";
+  version = "3.04.00";
 
-stdenv.mkDerivation {
-  name = "yodl-2.14.3";
-
-  buildInputs = [ perl ];
+  buildInputs = [ perl icmake ];
 
   src = fetchurl {
-    url = "mirror://sourceforge/yodl/yodl_2.14.3.orig.tar.gz";
-    sha256 = "0paypm76p34hap3d18vvks5rrilchcw6q56rvq6pjf9raqw8ynd4";
+    url = "mirror://sourceforge/yodl/yodl_${version}.orig.tar.gz";
+    sha256 = "14sqd03j3w9g5l5rkdnqyxv174yz38m39ycncx86bq86g63igcv6";
   };
-  
-  patches =
-    [ (fetchurl {
-        url = "mirror://sourceforge/yodl/yodl_2.14.3-1.diff.gz";
-        sha256 = "176hlbiidv7p9051f04anzj4sr9dwlp9439f9mjvvgks47ac0qx4";
-      })
-    ];
 
-  # This doesn't isntall docs yet, do you need them?
+  preConfigure = ''
+    patchShebangs scripts/.
+    sed -i 's;/usr;;g' INSTALL.im
+    substituteInPlace build --replace /usr/bin/icmake ${icmake}/bin/icmake
+    substituteInPlace macros/rawmacros/startdoc.pl --replace /usr/bin/perl ${perl}/bin/perl
+  '';
+
+  buildPhase = ''
+    ./build programs
+    ./build man
+    ./build macros
+  '';
+
   installPhase = ''
-    # -> $out
-    sed -i "s@'/usr/@'$out/@" contrib/build.pl
-    perl contrib/build.pl make-software
-    perl contrib/build.pl install-software
+    ./build install programs $out
+    ./build install man $out
+    ./build install macros $out
   '';
+
+  meta = with stdenv.lib; {
+    description = "A package that implements a pre-document language and tools to process it";
+    homepage = http://yodl.sourceforge.net/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/development/tools/pydb/default.nix b/pkgs/development/tools/pydb/default.nix
index baa816589cab..1b5a2ca674f4 100644
--- a/pkgs/development/tools/pydb/default.nix
+++ b/pkgs/development/tools/pydb/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     description = "Python debugger with GDB-like commands and Emacs bindings";
     homepage = http://bashdb.sourceforge.net/pydb/;
     license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/tools/winpdb/default.nix b/pkgs/development/tools/winpdb/default.nix
new file mode 100644
index 000000000000..fd6e0a991387
--- /dev/null
+++ b/pkgs/development/tools/winpdb/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, buildPythonPackage, wxPython, makeDesktopItem }:
+
+buildPythonPackage rec {
+  name = "winpdb-1.4.8";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://winpdb.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0vkpd24r40j928vc04c721innv0168sbllg97v4zw10adm24d8fs";
+  };
+
+  propagatedBuildInputs = [ wxPython ];
+
+  desktopItem = makeDesktopItem {
+    name = "winpdb";
+    exec = "winpdb";
+    icon = "winpdb";
+    comment = "Platform independend Python debugger";
+    desktopName = "Winpdb";
+    genericName = "Python Debugger";
+    categories = "Application;Development;Debugger;";
+  };
+
+  # Don't call gnome-terminal with "--disable-factory" flag, which is
+  # unsupported since GNOME >= 3.10. Apparently, debian also does this fix:
+  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757718
+  postPatch = ''
+    sed -i "s/--disable-factory//" rpdb2.py
+  '';
+
+  postInstall = ''
+    mkdir -p "$out"/share/applications
+    cp "$desktopItem"/share/applications/* "$out"/share/applications/
+
+    mkdir -p "$out"/share/icons
+    cp artwork/winpdb-icon.svg "$out"/share/icons/winpdb.svg
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Platform independent Python debugger";
+    longDescription = ''
+      Winpdb is a platform independent GPL Python debugger with support for
+      multiple threads, namespace modification, embedded debugging, encrypted
+      communication and is up to 20 times faster than pdb.
+    '';
+    homepage = http://winpdb.org/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/games/tibia/default.nix b/pkgs/games/tibia/default.nix
index 41c3133e2a8e..4168a84cebcb 100644
--- a/pkgs/games/tibia/default.nix
+++ b/pkgs/games/tibia/default.nix
@@ -3,11 +3,11 @@
 with stdenv.lib;
 assert stdenv.isi686;
 stdenv.mkDerivation {
-  name = "tibia-10.61";
+  name = "tibia-10.62";
 
   src = fetchurl {
-    url = http://static.tibia.com/download/tibia1061.tgz;
-    sha256 = "0dyhzhklarx9zj281d5pjxvfd1r740wdg79b07dj8ll8zwvxfqcz";
+    url = http://static.tibia.com/download/tibia1062.tgz;
+    sha256 = "0s7kxq3li0z8d23x51bwn2bc4vxj309vr9rzwr2025sm6yxn3x5l";
   };
 
   shell = stdenv.shell;
@@ -53,5 +53,6 @@ stdenv.mkDerivation {
     homepage = "http://tibia.com";
     license = stdenv.lib.licenses.unfree;
     platforms = ["i686-linux"];
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/games/xsnow/default.nix b/pkgs/games/xsnow/default.nix
new file mode 100644
index 000000000000..68b77dd091b6
--- /dev/null
+++ b/pkgs/games/xsnow/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libXt, libXpm, libXext, imake }:
+
+stdenv.mkDerivation rec {
+
+  version = "1.42";
+  name = "xsnow";
+
+  src = fetchurl {
+    url = "http://dropmix.xs4all.nl/rick/Xsnow/xsnow-${version}.tar.gz";
+    sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh";
+  };
+
+  buildInputs = [
+    libXt libXpm libXext imake
+  ];
+
+  buildPhase = ''
+    xmkmf
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man1
+    cp xsnow $out/bin/
+    cp xsnow.1 $out/share/man/man1/
+  '';
+
+  meta = {
+    description = "An X-windows application that will let it snow on the root, in between and on windows";
+    homepage = http://dropmix.xs4all.nl/rick/Xsnow/;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.robberer ];
+  }; 
+}
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index b4f459d671cb..ca35ed1f0921 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -4,11 +4,11 @@
 , pulseaudio ? null }:
 
 stdenv.mkDerivation rec {
-  name = "dolphin-emu-20141101";
+  name = "dolphin-emu-20141112";
   src = fetchgit {
     url = git://github.com/dolphin-emu/dolphin.git;
-    rev = "9daaf94f3c8caf71dab16c7e591ce7905c1416c4";
-    sha256 = "1n71by34mrgdxcr8c5bsbpy9azi62512knp5sjgzq6sfwzgy40d8";
+    rev = "b1f8974db8b94861f02abec7ab442f6855181199";
+    sha256 = "17rv92ycsfnsdqz785njw6zm8gcvr4y3d86jizwpqqn1lvwd2shj";
     fetchSubmodules = false;
   };
 
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 59ff877f0a3f..d739912538dc 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1,12 +1,8 @@
+# TODO check that no license information gets lost
 { fetchurl, bash, stdenv, python, cmake, vim, perl, ruby, unzip, which, fetchgit, fetchzip, clang, zip }:
 
 /*
-About Vim and plugins
-=====================
-Let me tell you how Vim plugins work, so that you can decide on how to orginize
-your setup.
-
-typical plugin files:
+Typical plugin files:
 
   plugin/P1.vim
   autoload/P1.vim
@@ -24,57 +20,18 @@ this to your .vimrc should make most plugins work:
   set rtp+=~/.nix-profile/vim-plugins/youcompleteme
   " or for p in ["youcompleteme"] | exec 'set rtp+=~/.nix-profile/vim-plugins/'.p | endfor
 
-Its what pathogen, vundle, vim-addon-manager (VAM) use.
-
-VAM's benefits:
-- allows activating plugins at runtime, eg when you need them. (works around
-  some au command hooks, eg required for TheNerdTree plugin)
-- VAM checkous out all sources (vim.sf.net, git, mercurial, ...)
-- runs :helptags on update/installation only. Obviously it cannot do that on
-  store paths.
-- it reads addon-info.json files which can declare dependencies by name
-  (without version)
-
-VAM is made up of
-- the code loading plugins
-- an optional pool (github.com/MarcWeber/vim-addon-manager-known-repositories)
-
-That pool probably is the best source to automatically derive plugin
-information from or to lookup about how to get data from www.vim.org.
-
-I'm not sure we should package them all. Most of them are not used much.
-You need your .vimrc anyway, and then VAM gets the job done ?
-
-How to install VAM? eg provide such a bash function:
-
-    vim-install-vam () {
-    mkdir -p ~/.vim/vim-addons && git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager.git ~/.vim/vim-addons/vim-addon-manager && cat >> ~/.vimrc <<EOF
-    set nocompatible
-    set hidden
-    filetype indent plugin on | syn on
-    fun ActivateAddons()
-      let g:vim_addon_manager = {}
-      let g:vim_addon_manager.log_to_buf =1
-      set runtimepath+=~/.vim/vim-addons/vim-addon-manager
-      call vam#ActivateAddons([])
-    endf
-    call ActivateAddons()
-    EOF
-    }
-
-Marc Weber thinks that having no plugins listed might be better than having
-outdated ones.
+Its what pathogen, vundle, vim-addon-manager (VAM) and others use.
+Learn about some differences by visiting http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html.
 
-So which plugins to add here according to what Marc Weber thinks is best?
-Complicated plugins requiring dependencies, such as YouCompleteMe.
-Then its best to symlink ~/.nix-profile/vim-plugins/youcompleteme to
-~/.vim/{vim-addons,bundle} or whatever plugin management solution you use.
-
-If you feel differently change the comments and proceed.
+If you want Nix to create a .vimrc for you have a look at vimrc in all-packages.nix.
+It also contains VAM code illustrating how to make VAM find plugins in arbitrary locations
 */
 
 # provide a function creating tag files for vim help documentation (doc/*.txt)
-let vimHelpTags = ''
+
+let rtpPath = "share/vim-plugins";
+
+    vimHelpTags = ''
     vimHelpTags(){
       if [ -d "$1/doc" ]; then
         ${vim}/bin/vim -N -u NONE -i NONE -n -e -s -c "helptags $1/doc" +quit!
@@ -82,23 +39,47 @@ let vimHelpTags = ''
     }
   '';
 
-  buildVimPlugin = a@{name, namePrefix ? "vimplugin-", src, buildPhase ? "", ...}: stdenv.mkDerivation (a // {
-    name = namePrefix + name;
-
-    inherit buildPhase;
-
-    installPhase = let path = (builtins.parseDrvName name).name; in ''
-      target=$out/share/vim-plugins/${path}
-      mkdir -p $out/share/vim-plugins
-      cp -r . $target
-      ${vimHelpTags}
-      vimHelpTags $target
-    '';
-  });
-
-in rec
-
-{
+  addRtp = path: derivation:
+    derivation // { rtp = "${derivation}/${path}"; };
+
+  buildVimPlugin = a@{
+    name,
+    namePrefix ? "vimplugin-",
+    src,
+    buildPhase ? "",
+    path ? (builtins.parseDrvName name).name,
+    ...
+  }:
+    addRtp "${rtpPath}/${path}" (stdenv.mkDerivation (a // {
+      name = namePrefix + name;
+
+      inherit buildPhase;
+
+      installPhase = ''
+        target=$out/${rtpPath}/${path}
+        mkdir -p $out/${rtpPath}
+        cp -r . $target
+        ${vimHelpTags}
+        vimHelpTags $target
+      '';
+    }));
+
+in
+
+# The attr names in this set should be equal to names used in the vim-pi project [1] so that
+# VAM's dependencies work. How to find the name?
+#  * http://vam.mawercer.de/ or VAM's
+#  * grep vim-pi
+#  * use VAM's completion or :AddonsInfo command
+#
+# How to create derivations? Experimental derivation creation is provided by VAM, example usage:
+# call nix#ExportPluginsForNix({'path_to_nixpkgs': '/etc/nixos/nixpkgs', 'names': ["vim-addon-manager", "vim-addon-nix"], 'cache_file': 'cache'})
+#
+# [1] https://bitbucket.org/vimcommunity/vim-pi
+rec {
+  inherit rtpPath;
+
+  # vim-pi: not git version
   a = buildVimPlugin {
     name = "a-git-2010-11-06";
     src = fetchgit {
@@ -107,26 +88,14 @@ in rec
       sha256 = "ca0982873ed81e7f6545a6623b735104c574fe580d5f21b0aa3dc1557edac240";
      };
     meta = {
-      homepage = https://github.com/vim-scripts/a.vim; 
+      homepage = https://github.com/vim-scripts/a.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
   alternative = a; # backwards compat, added 2014-10-21
 
-  airline = buildVimPlugin {
-    name = "airline-git-2014-10-18";
-    src = fetchgit {
-      url = "https://github.com/bling/vim-airline.git";
-      rev = "616daceb735771ed27535abe8a6e4907320f1e82";
-      sha256 = "05ee7f6d58b14c35edda36183745e508bab19d2289b02af73f980062e51316e7";
-     };
-    meta = {
-      homepage = https://github.com/bling/vim-airline; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
+  # vim-pi: Align%294
   align = buildVimPlugin {
     name = "align-git-2012-08-07";
     src = fetchgit {
@@ -135,11 +104,12 @@ in rec
       sha256 = "f7b5764357370f03546556bd45558837f3790b0e86afadb63cd04d714a668a29";
      };
     meta = {
-      homepage = https://github.com/vim-scripts/align; 
+      homepage = https://github.com/vim-scripts/align;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # vim-pi: not git versior
   calendar = buildVimPlugin {
     name = "calendar-git-2014-10-19";
     src = fetchgit {
@@ -148,48 +118,11 @@ in rec
       sha256 = "55f38e3e0af0f95229c654420c332668f93ac941f044c0573c7f1b26030e9202";
      };
     meta = {
-      homepage = https://github.com/itchyny/calendar.vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  coffee-script = buildVimPlugin {
-    name = "coffee-script-002";
-    src = fetchurl {
-      url = "https://github.com/vim-scripts/vim-coffee-script/archive/v002.tar.gz";
-      sha256 = "1xln6i6jbbihcyp5bsdylr2146y41hmp2xf7wi001g2ymj1zdsc0";
-    };
-  };
-
-  coffeeScript = coffee-script; # backwards compat, added 2014-10-18
-
-  colors-solarized = buildVimPlugin {
-    name = "colors-solarized-git-2011-05-09";
-    src = fetchgit {
-      url = "https://github.com/altercation/vim-colors-solarized.git";
-      rev = "528a59f26d12278698bb946f8fb82a63711eec21";
-      sha256 = "a1b2ef696eee94dafa76431c31ee260acdd13a7cf87939f27eca431d5aa5a315";
-     };
-    meta = {
-      homepage = https://github.com/altercation/vim-colors-solarized; 
+      homepage = https://github.com/itchyny/calendar.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  colorsamplerpack = buildVimPlugin rec {
-    version = "2012.10.28";
-    name    = "colorsamplerpack-${version}";
-
-    setSourceRoot = "sourceRoot=.";
-    src = fetchurl {
-      url    = "http://www.vim.org/scripts/download_script.php?src_id=18915";
-      name   = "colorsamplerpack.zip";
-      sha256 = "1wsrb3vpqn9fncnalfpvc8r92wk1mcskm4shb3s2h9x5dyihf2rd";
-    };
-
-    buildInputs = [ unzip ];
-  };
-
   command-t = buildVimPlugin rec {
     version = "1.8";
     name = "command-t-${version}";
@@ -209,46 +142,8 @@ in rec
 
   command_T = command-t; # backwards compat, added 2014-10-18
 
-  commentary = buildVimPlugin {
-    name = "commentary-git-2014-06-27";
-    src = fetchgit {
-      url = "https://github.com/tpope/vim-commentary.git";
-      rev = "8b4df6ca0ba9cd117d97a8fd26b44b2439d5e3f1";
-      sha256 = "5496ed31706552957d4caa76669ecd04e9b2853cf7a7e40bd0164726b21fcca0";
-     };
-    meta = {
-      homepage = https://github.com/tpope/vim-commentary; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  ctrlp = buildVimPlugin rec {
-    version = "1.79";
-    name    = "ctrlp-${version}";
-
-    setSourceRoot = "sourceRoot=.";
-    src = fetchurl {
-      url    = "http://www.vim.org/scripts/download_script.php?src_id=19448";
-      name   = "ctrlp_180.zip";
-      sha256 = "1x9im8g0g27mxc3c9k7v0jg5bb1dmnbjygmqif5bizab5g69n2mi";
-    };
-
-    buildInputs = [ unzip ];
-  };
-
-  easy-align = buildVimPlugin {
-    name = "easy-align-git-2014-10-03";
-    src = fetchgit {
-      url = "https://github.com/junegunn/vim-easy-align.git";
-      rev = "2595ebf9333f3598502276b29f78ad39965bc595";
-      sha256 = "1223b587c515169d4b735bf56f109f7bfc4f7c1327e76865f498309f7472ef78";
-     };
-    meta = {
-      homepage = https://github.com/junegunn/vim-easy-align; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
+  # vim-pi: not git version
   easymotion = buildVimPlugin {
     name = "easymotion-git-2014-09-29";
     src = fetchgit {
@@ -257,11 +152,12 @@ in rec
       sha256 = "13c8b93c257fcbb0f6e0eb197700b4f8cbe4cf4846d29f1aba65f625202b9d77";
      };
     meta = {
-      homepage = https://github.com/lokaltog/vim-easymotion; 
+      homepage = https://github.com/lokaltog/vim-easymotion;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # not replacing by vim-pi because license information would get lost
   eighties = buildVimPlugin rec {
     version = "1.0.4";
     name = "eighties-${version}";
@@ -278,72 +174,8 @@ in rec
     };
   };
 
-  extradite = buildVimPlugin {
-    name = "extradite-git-2014-06-18";
-    src = fetchgit {
-      url = "https://github.com/int3/vim-extradite.git";
-      rev = "af4f3a51b6b654d655121b93c0cd9d8fe9a0c85d";
-      sha256 = "d1d29cfbc654134be383747f2cd6b14b7a87de75f997af6a041f14d7ef61ade6";
-     };
-    meta = {
-      homepage = https://github.com/int3/vim-extradite; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  fugitive = buildVimPlugin {
-    name = "fugitive-git-2014-09-02";
-    src = fetchgit {
-      url = "https://github.com/tpope/vim-fugitive.git";
-      rev = "0374322ba5d85ae44dd9dc44ef31ca015a59097e";
-      sha256 = "3bb09693726c4f9fc1695bc8b40c45d64a6a0f1d9a4243b4a79add841013ad6c";
-     };
-    meta = {
-      homepage = https://github.com/tpope/vim-fugitive; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  ghcmod-vim = buildVimPlugin {
-    name = "ghcmod-vim-git-2014-10-19";
-    src = fetchgit {
-      url = "https://github.com/eagletmt/ghcmod-vim.git";
-      rev = "d5c6c7f3c85608b5b76dc3e7e001f60b86c32cb9";
-      sha256 = "ab56d470ea18da3fae021e22bba14460505e61a94f8bf707778dff5eec51cd6d";
-     };
-    meta = {
-      homepage = https://github.com/eagletmt/ghcmod-vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  gist-vim = buildVimPlugin {
-    name = "gist-vim-git-2014-10-19";
-    src = fetchgit {
-      url = "https://github.com/mattn/gist-vim.git";
-      rev = "9265aaa3fb3f090a292c3fb883eab4cea9d2a722";
-      sha256 = "2a1b6c589a60af7acd68f7686d1cbadc60a1da8a407b02d96f86ddfe8bc70c18";
-     };
-    buildInputs = [ zip ];
-    meta = {
-      homepage = https://github.com/mattn/gist-vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  gitgutter = buildVimPlugin {
-    name = "gitgutter-git-2014-10-17";
-    src = fetchgit {
-      url = "https://github.com/airblade/vim-gitgutter.git";
-      rev = "39f011909620e0c7ae555efdace20c3963ac88af";
-      sha256 = "585c367c8cf72d7ef511b3beca3d1eae1d68bbd61b9a8d4dc7aea6e0caa4813a";
-     };
-    meta = {
-      homepage = https://github.com/airblade/vim-gitgutter; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
+  # unkown by vim-pi
   golang = buildVimPlugin {
     name = "golang-git-2014-08-06";
     src = fetchgit {
@@ -352,24 +184,12 @@ in rec
       sha256 = "1231a2eff780dbff4f885fcb4f656f7dd70597e1037ca800470de03bf0c5e7af";
      };
     meta = {
-      homepage = https://github.com/jnwhiteh/vim-golang; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  gundo = buildVimPlugin {
-    name = "gundo-git-2013-08-11";
-    src = fetchgit {
-      url = "https://github.com/vim-scripts/gundo.git";
-      rev = "f443470b96364c24a775629418a6b2562ec9173e";
-      sha256 = "b7a949167e59c936d6eae0d23635b87491b2cd2f46a197683b171d30165a90f9";
-     };
-    meta = {
-      homepage = https://github.com/vim-scripts/gundo; 
+      homepage = https://github.com/jnwhiteh/vim-golang;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi
   hardtime = buildVimPlugin {
     name = "hardtime-git-2014-10-21";
     src = fetchgit {
@@ -378,11 +198,12 @@ in rec
       sha256 = "65e4bda7531076147fc46f496c8e56c740d1fcf8fe85c18cb2d2070d0c3803cd";
      };
     meta = {
-      homepage = https://github.com/takac/vim-hardtime; 
+      homepage = https://github.com/takac/vim-hardtime;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi
   haskellconceal = buildVimPlugin {
     name = "haskellconceal-git-2014-08-07";
     src = fetchgit {
@@ -391,13 +212,12 @@ in rec
       sha256 = "8ae762939ea435333031a094f3c63e6edd534ac849f0008fa0440440f1f2f633";
      };
     meta = {
-      homepage = https://github.com/twinside/vim-haskellconceal; 
+      homepage = https://github.com/twinside/vim-haskellconceal;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  haskellConceal = haskellconceal; # backwards compat, added 2014-10-18
-
+  # unkown by vim-pi
   hasksyn = buildVimPlugin {
     name = "hasksyn-git-2014-09-03";
     src = fetchgit {
@@ -406,11 +226,12 @@ in rec
       sha256 = "b1a735928aeca7011b83133959d59b9c95ab8535fd00ce9968fae4c3b1381931";
      };
     meta = {
-      homepage = https://github.com/travitch/hasksyn; 
+      homepage = https://github.com/travitch/hasksyn;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi
   hdevtools = buildVimPlugin {
     name = "hdevtools-git-2012-12-29";
     src = fetchgit {
@@ -419,11 +240,12 @@ in rec
       sha256 = "bf5f096b665c51ce611c6c1bfddc3267c4b2f94af84b04482b07272a6a5a92f3";
      };
     meta = {
-      homepage = https://github.com/bitc/vim-hdevtools; 
+      homepage = https://github.com/bitc/vim-hdevtools;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # not git version in vim-pi
   hier = buildVimPlugin {
     name = "hier-git-2011-08-27";
     src = fetchgit {
@@ -433,25 +255,12 @@ in rec
      };
     buildInputs = [ vim ];
     meta = {
-      homepage = https://github.com/jceb/vim-hier; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-
-  hoogle = buildVimPlugin {
-    name = "hoogle-git-2013-11-26";
-    src = fetchgit {
-      url = "https://github.com/twinside/vim-hoogle.git";
-      rev = "81f28318b0d4174984c33df99db7752891c5c4e9";
-      sha256 = "0f96f3badb6218cac87d0f7027ff032ecc74f08ad3ada542898278ce11cbd5a0";
-     };
-    meta = {
-      homepage = https://github.com/twinside/vim-hoogle; 
+      homepage = https://github.com/jceb/vim-hier;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi
   idris-vim = buildVimPlugin {
     name = "idris-vim-git-2014-10-14";
     src = fetchgit {
@@ -460,11 +269,12 @@ in rec
       sha256 = "47638b25fa53203e053e27ec6f135fd63ae640edbe37e62d7450a8c434a4cc6b";
      };
     meta = {
-      homepage = https://github.com/idris-hackers/idris-vim; 
+      homepage = https://github.com/idris-hackers/idris-vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # not git version in vim-pi
   ipython = buildVimPlugin {
     name = "ipython-git-2014-07-17";
     src = fetchgit {
@@ -473,11 +283,12 @@ in rec
       sha256 = "444dede544f9b519143ecc3a6cdfef0c4c32043fc3cd69f92fdcd86c1010e824";
      };
     meta = {
-      homepage = https://github.com/ivanov/vim-ipython; 
+      homepage = https://github.com/ivanov/vim-ipython;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi ?
   latex-box = buildVimPlugin {
     name = "latex-box-git-2014-10-05";
     src = fetchgit {
@@ -486,24 +297,12 @@ in rec
       sha256 = "462803aceec5904943074e11888482ef6c49c8a5e26d6728ebcb2c4f5dbbb6a4";
      };
     meta = {
-      homepage = https://github.com/latex-box-team/latex-box; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  latex-live-preview = buildVimPlugin {
-    name = "latex-live-preview-git-2013-11-25";
-    src = fetchgit {
-      url = "https://github.com/xuhdev/vim-latex-live-preview.git";
-      rev = "18625ceca4de5984f3df50cdd0202fc13eb9e37c";
-      sha256 = "261852d3830189a50176f997a4c6b4ec7e25893c5b7842a3eb57eb7771158722";
-     };
-    meta = {
-      homepage = https://github.com/xuhdev/vim-latex-live-preview; 
+      homepage = https://github.com/latex-box-team/latex-box;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi ?
   lushtags = buildVimPlugin {
     name = "lushtags-git-2013-12-27";
     src = fetchgit {
@@ -512,11 +311,12 @@ in rec
       sha256 = "5170019fbe64b15be30a0ba82e6b01364d115ccad6ef690a6df86f73af22a0a7";
      };
     meta = {
-      homepage = https://github.com/bitc/lushtags; 
+      homepage = https://github.com/bitc/lushtags;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
+  # unkown by vim-pi ?
   neco-ghc = buildVimPlugin {
     name = "neco-ghc-git-2014-10-17";
     src = fetchgit {
@@ -525,65 +325,13 @@ in rec
       sha256 = "464b24e3151ebaf0e95c25f09cb047e2542d5dd9100087e538d0a5e46bd0e638";
      };
     meta = {
-      homepage = https://github.com/eagletmt/neco-ghc; 
+      homepage = https://github.com/eagletmt/neco-ghc;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  necoGhc = neco-ghc; # backwards compat, added 2014-10-18
-
-  nerdcommenter = buildVimPlugin {
-    name = "nerdcommenter-git-2014-07-08";
-    src = fetchgit {
-      url = "https://github.com/scrooloose/nerdcommenter.git";
-      rev = "6549cfde45339bd4f711504196ff3e8b766ef5e6";
-      sha256 = "ef270ae5617237d68b3d618068e758af8ffd8d3ba27a3799149f7a106cfd178e";
-     };
-    meta = {
-      homepage = https://github.com/scrooloose/nerdcommenter; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  nerdtree = buildVimPlugin {
-    name = "nerdtree-git-2014-08-06";
-    src = fetchgit {
-      url = "https://github.com/scrooloose/nerdtree.git";
-      rev = "4f1e6ecb057fc0bac189171c1430d71ef25f6bb1";
-      sha256 = "67ff2e7b9a7f39e58e9e334b1b79343a4c11aae10a657ab4fece289d8fe59300";
-     };
-    meta = {
-      homepage = https://github.com/scrooloose/nerdtree; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  pathogen = buildVimPlugin {
-    name = "pathogen-git-2014-07-19";
-    src = fetchgit {
-      url = "https://github.com/tpope/vim-pathogen.git";
-      rev = "91e6378908721d20514bbe5d18d292a0a15faf0c";
-      sha256 = "24c1897d6b58576b2189c90050a7f8ede72a51343c752e9d030e833dbe5cac6f";
-     };
-    meta = {
-      homepage = https://github.com/tpope/vim-pathogen; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  quickfixstatus = buildVimPlugin {
-    name = "quickfixstatus-git-2011-09-02";
-    src = fetchgit {
-      url = "https://github.com/dannyob/quickfixstatus.git";
-      rev = "fd3875b914fc51bbefefa8c4995588c088163053";
-      sha256 = "7b6831d5da1c23d95f3158c67e4376d32c2f62ab2e30d02d3f3e14dcfd867d9b";
-     };
-    meta = {
-      homepage = https://github.com/dannyob/quickfixstatus; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
+  # vim-pi: quickrun%3146
   quickrun = buildVimPlugin {
     name = "quickrun-git-2014-10-08";
     src = fetchgit {
@@ -592,38 +340,13 @@ in rec
       sha256 = "3219fadb3732c895c82b8bcff1d6e86f0917cd5ac7bf34180c27bb3f75ed1787";
      };
     meta = {
-      homepage = https://github.com/thinca/vim-quickrun; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-
-  rainbow_parentheses = buildVimPlugin {
-    name = "rainbow_parentheses-git-2013-03-04";
-    src = fetchgit {
-      url = "https://github.com/kien/rainbow_parentheses.vim.git";
-      rev = "eb8baa5428bde10ecc1cb14eed1d6e16f5f24695";
-      sha256 = "47975a426d06f41811882691d8a51f32bc72f590477ed52b298660486b2488e3";
-     };
-    meta = {
-      homepage = https://github.com/kien/rainbow_parentheses.vim; 
+      homepage = https://github.com/thinca/vim-quickrun;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  rust = buildVimPlugin {
-    name = "rust-git-2014-10-15";
-    src = fetchgit {
-      url = "https://github.com/wting/rust.vim.git";
-      rev = "aaeb7b51f1b188fb1edc29c3a3824053b3e5e265";
-      sha256 = "be858b1e2cb0b37091a3d79a51e264b3101229b007cfc16bcd28c740f3823c01";
-     };
-    meta = {
-      homepage = https://github.com/wting/rust.vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
+  # unkown by vim-pi
   shabadou = buildVimPlugin {
     name = "shabadou-git-2014-07-27";
     src = fetchgit {
@@ -632,7 +355,7 @@ in rec
       sha256 = "392efa8a5e725219e478b571d9a30ddba88d47662467ed3123a168e8b55c4de6";
      };
     meta = {
-      homepage = https://github.com/osyo-manga/shabadou.vim; 
+      homepage = https://github.com/osyo-manga/shabadou.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
@@ -645,79 +368,13 @@ in rec
       sha256 = "c0e5010e1e8e56b179ce500387afb569f051c45b37ce92feb4350f293df96a8c";
      };
     meta = {
-      homepage = https://github.com/nbouscal/vim-stylish-haskell; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  stylishHaskell = stylish-haskell; # backwards compat, added 2014-10-18
-
-  supertab = buildVimPlugin {
-    name = "supertab-git-2014-10-17";
-    src = fetchgit {
-      url = "https://github.com/ervandew/supertab.git";
-      rev = "fd4e0d06c2b1d9bff2eef1d15e7895b3b4da7cd7";
-      sha256 = "5919521b95519d4baa8ed146c340ca739fa7f31dfd305c74ca0ace324ba93d74";
-     };
-    buildInputs = [ vim ];
-    meta = {
-      homepage = https://github.com/ervandew/supertab; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  surround = buildVimPlugin {
-    name = "surround-git-2014-07-26";
-    src = fetchgit {
-      url = "https://github.com/tpope/vim-surround.git";
-      rev = "fa433e0b7330753688f715f3be5d10dc480f20e5";
-      sha256 = "5f01daf72d23fc065f4e4e8eac734275474f32bfa276a9d90ce0d20dfe24058d";
-     };
-    meta = {
-      homepage = https://github.com/tpope/vim-surround; 
+      homepage = https://github.com/nbouscal/vim-stylish-haskell;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  signature = buildVimPlugin {
-    name = "signature-git-2014-10-17";
-    src = fetchgit {
-      url = "https://github.com/kshenoy/vim-signature.git";
-      rev = "f012d6f4d288ef6006f61b06f5240bc461a1f89e";
-      sha256 = "bef5254e343758d609856c745fe9d83639546f3af4ca50542429c1cb91ab577a";
-     };
-    meta = {
-      homepage = https://github.com/kshenoy/vim-signature; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  syntastic = buildVimPlugin {
-    name = "syntastic-git-2014-10-17";
-    src = fetchgit {
-      url = "https://github.com/scrooloose/syntastic.git";
-      rev = "77c125170aa6b8c553d58f876021b0cedd8ac820";
-      sha256 = "ec9b1e22134cb16d07bef842be26b4f1f74a9f8b9a0afd9ab771ff79935920af";
-     };
-    meta = {
-      homepage = https://github.com/scrooloose/syntastic; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  table-mode = buildVimPlugin {
-    name = "table-mode-git-2014-09-17";
-    src = fetchgit {
-      url = "https://github.com/dhruvasagar/vim-table-mode.git";
-      rev = "ef0eef0f35f2ca172907f6d696dc8859acd8a0da";
-      sha256 = "0377059972580f621f1bb4b35738e0e00d386b23d839115e8c5fa8fd3acbc98d";
-     };
-    meta = {
-      homepage = https://github.com/dhruvasagar/vim-table-mode; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
+  # unkown by vim-pi
   tabmerge = buildVimPlugin {
     name = "tabmerge-git-2010-10-17";
     src = fetchgit {
@@ -726,36 +383,11 @@ in rec
       sha256 = "b84501b0fc5cd51bbb58f12f4c2b3a7c97b03fe2a76446b56a2c111bd4f7335f";
      };
     meta = {
-      homepage = https://github.com/vim-scripts/tabmerge; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  tabular = buildVimPlugin {
-    name = "tabular-git-2013-05-16";
-    src = fetchgit {
-      url = "https://github.com/godlygeek/tabular.git";
-      rev = "60f25648814f0695eeb6c1040d97adca93c4e0bb";
-      sha256 = "28c860ad621587f2c3213fae47d1a3997746527c17d51e9ab94c209eb7bfeb0f";
-     };
-    meta = {
-      homepage = https://github.com/godlygeek/tabular; 
+      homepage = https://github.com/vim-scripts/tabmerge;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  tagbar = buildVimPlugin {
-    name = "tagbar-git-2014-10-14";
-    src = fetchgit {
-      url = "https://github.com/majutsushi/tagbar.git";
-      rev = "64e935fe5812d3b7022aba1dee63ec9f7456b02f";
-      sha256 = "2a66b86328e395bd594c8673a6420307a32468e4040dafe2b877ad4afcf6b7f9";
-     };
-    meta = {
-      homepage = https://github.com/majutsushi/tagbar; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
   taglist = buildVimPlugin {
     name = "taglist-4.6";
@@ -788,7 +420,7 @@ in rec
       sha256 = "f36d915804e36b5f2dcea7db481da97ec60d0c90df87599a5d5499e649d97f66";
      };
     meta = {
-      homepage = https://github.com/itchyny/thumbnail.vim; 
+      homepage = https://github.com/itchyny/thumbnail.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
@@ -801,7 +433,7 @@ in rec
       sha256 = "4235c2bfb64a9094b854cdd7303a64bbb994717f24704911c4b358b2373dfaa9";
      };
     meta = {
-      homepage = https://github.com/christoomey/vim-tmux-navigator; 
+      homepage = https://github.com/christoomey/vim-tmux-navigator;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
@@ -816,62 +448,11 @@ in rec
       sha256 = "47fb7165c1dcc444285cdff6fa89bbd4ace82ca79ec14ba0da6091c5f78d1251";
      };
     meta = {
-      homepage = https://github.com/jgdavey/tslime.vim; 
+      homepage = https://github.com/jgdavey/tslime.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  ultisnips = buildVimPlugin {
-    name = "ultisnips-git-2014-10-11";
-    src = fetchgit {
-      url = "https://github.com/sirver/ultisnips.git";
-      rev = "1ad970379edaec1a386bab5ff26c385b9e89a0ff";
-      sha256 = "5d6858a153d79f596513d01d4ed9cd6dcff853e2c42c4b4546d38bd15423af98";
-     };
-    meta = {
-      homepage = https://github.com/sirver/ultisnips; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  undotree = buildVimPlugin {
-    name = "undotree-git-2014-09-17";
-    src = fetchgit {
-      url = "https://github.com/mbbill/undotree.git";
-      rev = "14655d87774b1f35b5bd23c6de64f535d90ed48d";
-      sha256 = "ad55b88db051f57d0c7ddc226a7b7778daab58fa67dc8ac1d78432c0e7d38520";
-     };
-    meta = {
-      homepage = https://github.com/mbbill/undotree; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  vim2hs = buildVimPlugin {
-    name = "vim2hs-git-2014-04-16";
-    src = fetchgit {
-      url = "https://github.com/dag/vim2hs.git";
-      rev = "f2afd55704bfe0a2d66e6b270d247e9b8a7b1664";
-      sha256 = "485fc58595bb4e50f2239bec5a4cbb0d8f5662aa3f744e42c110cd1d66b7e5b0";
-     };
-    meta = {
-      homepage = https://github.com/dag/vim2hs; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  vimoutliner = buildVimPlugin {
-    name = "vimoutliner-git-2014-10-20";
-    src = fetchgit {
-      url = "https://github.com/vimoutliner/vimoutliner.git";
-      rev = "4e924d9e42b6955a696e087d22795f5fe0e6c857";
-      sha256 = "6a9a27526c51202fb15374b40c5a759df0e10977dbe3045dabef0439c3e62c72";
-     };
-    meta = {
-      homepage = https://github.com/vimoutliner/vimoutliner; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
 
   vimproc = buildVimPlugin {
     name = "vimproc-git-2014-10-03";
@@ -888,7 +469,7 @@ in rec
     '';
 
     meta = {
-      homepage = https://github.com/shougo/vimproc.vim; 
+      homepage = https://github.com/shougo/vimproc.vim;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
@@ -915,24 +496,11 @@ in rec
 
     preBuild = ''
       sed -ie '1 i\
-      set runtimepath+=${vimproc}/share/vim-plugins/vimproc\
+      set runtimepath+=${vimproc}/${rtpPath}/vimproc\
       ' autoload/vimshell.vim
     '';
   };
 
-  vundle = buildVimPlugin {
-    name = "vundle-git-2014-07-18";
-    src = fetchgit {
-      url = "https://github.com/gmarik/vundle.vim.git";
-      rev = "0b28e334e65b6628b0a61c412fcb45204a2f2bab";
-      sha256 = "9681d471d1391626cb9ad22b2b469003d9980cd23c5c3a8d34666376447e6204";
-     };
-    meta = {
-      homepage = https://github.com/gmarik/vundle.vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
   watchdogs = buildVimPlugin {
     name = "watchdogs-git-2014-10-18";
     src = fetchgit {
@@ -941,34 +509,7 @@ in rec
       sha256 = "4c621ac2834864cf0c46f776029837913e1ba0c725a12d7cb24bf92e04ed1279";
      };
     meta = {
-      homepage = https://github.com/osyo-manga/vim-watchdogs; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  webapi-vim = buildVimPlugin {
-    name = "webapi-vim-git-2014-10-19";
-    src = fetchgit {
-      url = "https://github.com/mattn/webapi-vim.git";
-      rev = "99e11199838ccbeb7213cbc30698200170d355c9";
-      sha256 = "599e282ef45bf6587c34579ab08d4e4a1f2cb54589e1e386c75d701880c90b9e";
-     };
-    buildInputs = [ zip ];
-    meta = {
-      homepage = https://github.com/mattn/webapi-vim; 
-      maintainers = [ stdenv.lib.maintainers.jagajaga ];
-    };
-  };
-
-  wombat256 = buildVimPlugin {
-    name = "wombat256-git-2010-10-17";
-    src = fetchgit {
-      url = "https://github.com/vim-scripts/wombat256.vim.git";
-      rev = "8734ba45dcf5e38c4d2686b35c94f9fcb30427e2";
-      sha256 = "2feb7d57ab0a9f2ea44ccd606e540db64ab3285956398a50ecc562d7b8dbcd05";
-     };
-    meta = {
-      homepage = https://github.com/vim-scripts/wombat256.vim; 
+      homepage = https://github.com/osyo-manga/vim-watchdogs;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
@@ -982,34 +523,13 @@ in rec
      };
     postInstall = false;
     meta = {
-      homepage = https://github.com/joonty/vim-xdebug; 
+      homepage = https://github.com/joonty/vim-xdebug;
       maintainers = [ stdenv.lib.maintainers.jagajaga ];
     };
   };
 
-  yankring = buildVimPlugin rec {
-    version = "18.0";
-    name    = "yankring-${version}";
-
-    setSourceRoot = "sourceRoot=.";
-    src = fetchurl {
-      url    = "http://www.vim.org/scripts/download_script.php?src_id=20842";
-      name   = "yankring_180.zip";
-      sha256 = "0bsq4pxagy12jqxzs7gcf25k5ahwif13ayb9k8clyhm0jjdkf0la";
-    };
-
-    buildInputs = [ unzip ];
-  };
-
-  vim-addon-nix = {
-    # github.com/MarcWeber/vim-addon-nix provides some additional support for
-    # editing .nix files
 
-    # This is a placeholder, because I think you always should be using latest
-    # git version. It also depends on some additional plugins (see addon-info.json)
-  };
-
-  youcompleteme = stdenv.mkDerivation {
+  YouCompleteMe = addRtp "${rtpPath}/youcompleteme" (stdenv.mkDerivation {
     src = fetchgit {
       url = "https://github.com/Valloric/YouCompleteMe.git";
       rev = "87b42c689391b69968950ae99c3aaacf2e14c329";
@@ -1025,7 +545,7 @@ in rec
     buildPhase = ''
       patchShebangs .
 
-      target=$out/share/vim-plugins/youcompleteme
+      target=$out/${rtpPath}/youcompleteme
       mkdir -p $target
       cp -a ./ $target
 
@@ -1050,8 +570,681 @@ in rec
       maintainers = [stdenv.lib.maintainers.marcweber];
       platforms = stdenv.lib.platforms.linux;
     };
-  };
-
-  YouCompleteMe = youcompleteme; # backwards compat, added 2014-10-18
+  });
 
+  # aliases
+  airline = vim-airline;
+  coffee-script = vim-coffee-script;
+  coffeeScript = coffee-script; # backwards compat, added 2014-10-18
+  colors-solarized = Solarized;
+  colorsamplerpack = Colour_Sampler_Pack;
+  easy-align = vim-easy-align;
+  ghc-mod-vim = ghcmod;
+  gist-vim = Gist;
+  gitgutter = vim-gitgutter;
+  gundo = Gundo;
+  haskellConceal = haskellconceal; # backwards compat, added 2014-10-18
+  hoogle = Hoogle;
+  latex-live-preview = vim-latex-live-preview;
+  necoGhc = neco-ghc; # backwards compat, added 2014-10-18
+  nerdcommenter = The_NERD_Commenter;
+  nerdtree = The_NERD_tree;
+  signature = vim-signature;
+  stylishHaskell = stylish-haskell; # backwards compat, added 2014-10-18
+  supertab = Supertab;
+  syntastic = Syntastic;
+  tabular = Tabular;
+  tagbar = Tagbar;
+  webapi-vim = WebAPI;
+  yankring = YankRing;
+  youcompleteme = YouCompleteMe;
+
+
+  /*
+     The plugin definitions below are generated the following VimL command
+     provided by vim-addon-manager.
+
+     " Copy /tmp/tmp.vim file and run: :source /tmp/tmp.vim
+     call nix#ExportPluginsForNix({
+     \  'path_to_nixpkgs': '/etc/nixos/nixpkgs',
+     \  'cache_file': '/tmp/vim2nix-cache',
+     \  'names': [
+     \    "vim-addon-syntax-checker",
+     \    "vim-addon-other",
+     \    "vim-addon-local-vimrc",
+     \    "snipmate",
+     \    "vim-snippets",
+     \    "vim-addon-mru",
+     \    "vim-addon-commenting",
+     \    "vim-addon-sql",
+     \    "vim-addon-async",
+     \    "vim-addon-toggle-buffer",
+     \    "vim-addon-mw-utils",
+     \    "matchit.zip",
+     \    "vim-addon-xdebug",
+     \    "vim-addon-php-manual",
+     \    "sourcemap.vim",
+     \    "vim-iced-coffee-script",
+     \    "ctrlp",
+     \    "commentary",
+     \    "Colour_Sampler_Pack",
+     \    "Solarized",
+     \    "vim-coffee-script",
+     \    "vim-easy-align",
+     \    "Tagbar",
+     \    "Tabular",
+     \    "table-mode",
+     \    "Syntastic",
+     \    "vim-signature",
+     \    "surround",
+     \    "Supertab",
+     \    "rust",
+     \    "rainbow_parentheses",
+     \    "pathogen",
+     \    "quickfixstatus",
+     \    "The_NERD_Commenter",
+     \    "The_NERD_tree",
+     \    "vim-latex-live-preview",
+     \    "Hoogle",
+     \    "Gundo",
+     \    "vim-gitgutter",
+     \    "Gist",
+     \    "ghcmod",
+     \    "fugitive",
+     \    "extradite",
+     \    "vim-airline",
+     \    "VimOutliner",
+     \    "vim2hs",
+     \    "undotree",
+     \    "UltiSnips",
+     \    "wombat256",
+     \    "vundle",
+     \    "WebAPI",
+     \    "YankRing",
+     \    "vim-addon-manager",
+     \    "vim-addon-nix",
+     \    "YUNOcommit"
+     \ ],
+     \ })
+
+  # TODO: think about how to add license information?
+  */
+
+
+  ctrlp = buildVimPlugin {
+    name = "ctrlp";
+    src = fetchgit {
+      url = "git://github.com/kien/ctrlp.vim";
+      rev = "b5d3fe66a58a13d2ff8b6391f4387608496a030f";
+      sha256 = "41f7884973770552395b96f8693da70999dc815462d4018c560d3ff6be462e76";
+    };
+    dependencies = [];
+  };
+  vim-addon-signs = buildVimPlugin {
+    name = "vim-addon-signs";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-signs";
+      rev = "17a49f293d18174ff09d1bfff5ba86e8eee8e8ae";
+      sha256 = "a9c03a32e758d51106741605188cb7f00db314c73a26cae75c0c9843509a8fb8";
+    };
+    dependencies = [];
+  };
+  vundle = buildVimPlugin {
+    name = "vundle";
+    src = fetchgit {
+      url = "git://github.com/gmarik/vundle";
+      rev = "0b28e334e65b6628b0a61c412fcb45204a2f2bab";
+      sha256 = "9681d471d1391626cb9ad22b2b469003d9980cd23c5c3a8d34666376447e6204";
+    };
+    dependencies = [];
+  };
+  vim-signature = buildVimPlugin {
+    name = "vim-signature";
+    src = fetchgit {
+      url = "git://github.com/kshenoy/vim-signature";
+      rev = "29fc095535c4a3206d3194305739b33cd72ffad2";
+      sha256 = "46101330cd291dd819552ba1f47571342fe671d6985d06897c34465b87fd7bc4";
+    };
+    dependencies = [];
+  };
+  vim-addon-sql = buildVimPlugin {
+    name = "vim-addon-sql";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-sql";
+      rev = "05b8a0c211f1ae4c515c64e91dec555cdf20d90b";
+      sha256 = "a1334ae694e0a03229bacc8ba7e08e7223df240244c7378e3f1bd91d74e957c2";
+    };
+    dependencies = ["vim-addon-completion" "vim-addon-background-cmd" "tlib"];
+  };
+  vim-addon-background-cmd = buildVimPlugin {
+    name = "vim-addon-background-cmd";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-background-cmd";
+      rev = "14df72660a95804a57c02b9ff0ae3198608e2491";
+      sha256 = "5c2ece1f3ff7653eb7c1b40180554e8e89e5ae43d67e7cc159d95c0156135687";
+    };
+    dependencies = ["vim-addon-mw-utils"];
+  };
+  extradite = buildVimPlugin {
+    name = "extradite";
+    src = fetchgit {
+      url = "git://github.com/int3/vim-extradite";
+      rev = "af4f3a51b6b654d655121b93c0cd9d8fe9a0c85d";
+      sha256 = "d1d29cfbc654134be383747f2cd6b14b7a87de75f997af6a041f14d7ef61ade6";
+    };
+    dependencies = [];
+  };
+  UltiSnips = buildVimPlugin {
+    name = "UltiSnips";
+    src = fetchgit {
+      url = "git://github.com/sirver/ultisnips";
+      rev = "cb8536d7240f5f458c292f8aa38fc50278222fe8";
+      sha256 = "95bc88fc3dae45896893797cff9bb697f3701572c27442898c661d004b50be16";
+    };
+    dependencies = [];
+  };
+  vim-addon-goto-thing-at-cursor = buildVimPlugin {
+    name = "vim-addon-goto-thing-at-cursor";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-goto-thing-at-cursor";
+      rev = "f052e094bdb351829bf72ae3435af9042e09a6e4";
+      sha256 = "34658ac99d9a630db9c544b3dfcd2c3df69afa5209e27558cc022b7afc2078ea";
+    };
+    dependencies = ["tlib"];
+  };
+  Tagbar = buildVimPlugin {
+    name = "Tagbar";
+    src = fetchgit {
+      url = "git://github.com/majutsushi/tagbar";
+      rev = "5283bc834a8c39b058d5eef1173e323b23b04fa0";
+      sha256 = "ed2bcbbb9caf476251cbbe650fc685b9e781390f9966f0c75ff02da0677deb1c";
+    };
+    dependencies = [];
+  };
+  surround = buildVimPlugin {
+    name = "surround";
+    src = fetchgit {
+      url = "git://github.com/tpope/vim-surround";
+      rev = "fa433e0b7330753688f715f3be5d10dc480f20e5";
+      sha256 = "5f01daf72d23fc065f4e4e8eac734275474f32bfa276a9d90ce0d20dfe24058d";
+    };
+    dependencies = [];
+  };
+  vim-addon-actions = buildVimPlugin {
+    name = "vim-addon-actions";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-actions";
+      rev = "a5d20500fb8812958540cf17862bd73e7af64936";
+      sha256 = "d2c3eb7a1f29e7233c6fcf3b02d07efebe8252d404ee593419ad399a5fdf6383";
+    };
+    dependencies = ["vim-addon-mw-utils" "tlib"];
+  };
+  Tabular = buildVimPlugin {
+    name = "Tabular";
+    src = fetchgit {
+      url = "git://github.com/godlygeek/tabular";
+      rev = "60f25648814f0695eeb6c1040d97adca93c4e0bb";
+      sha256 = "28c860ad621587f2c3213fae47d1a3997746527c17d51e9ab94c209eb7bfeb0f";
+    };
+    dependencies = [];
+  };
+  vim-addon-completion = buildVimPlugin {
+    name = "vim-addon-completion";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-completion";
+      rev = "80f717d68df5b0d7b32228229ddfd29c3e86e435";
+      sha256 = "c8c0af8760f2622c4caef371482916861f68a850eb6a7cd746fe8c9ab405c859";
+    };
+    dependencies = ["tlib"];
+  };
+  table-mode = buildVimPlugin {
+    name = "table-mode";
+    src = fetchgit {
+      url = "git://github.com/dhruvasagar/vim-table-mode";
+      rev = "ea78f6256513b4b853ea01b55b18baf0f9d99f8c";
+      sha256 = "570a9660b17489ec6a976d878aec45470bc91c8da41f0e3ab8f09962683b2da7";
+    };
+    dependencies = [];
+  };
+  vim-addon-xdebug = buildVimPlugin {
+    name = "vim-addon-xdebug";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-xdebug";
+      rev = "45f26407305b4ce6f8f5f37d2b5e6e4354104172";
+      sha256 = "0a7bf2caf36772c94bd25bfbf46bf628623809c9cfab447ff788eb74149464ef";
+    };
+    dependencies = ["WebAPI" "vim-addon-mw-utils" "vim-addon-signs" "vim-addon-async"];
+  };
+  vim2hs = buildVimPlugin {
+    name = "vim2hs";
+    src = fetchgit {
+      url = "git://github.com/dag/vim2hs";
+      rev = "f2afd55704bfe0a2d66e6b270d247e9b8a7b1664";
+      sha256 = "485fc58595bb4e50f2239bec5a4cbb0d8f5662aa3f744e42c110cd1d66b7e5b0";
+    };
+    dependencies = [];
+  };
+  WebAPI = buildVimPlugin {
+    name = "WebAPI";
+    src = fetchgit {
+      url = "git://github.com/mattn/webapi-vim";
+      rev = "a7789abffe936db56e3152e23733847f94755753";
+      sha256 = "455b84d9fd13200ff5ced5d796075f434a7fb9c00f506769174579266ae2be80";
+    };
+    buildInputs = [ zip ];
+    dependencies = [];
+  };
+  rainbow_parentheses = buildVimPlugin {
+    name = "rainbow_parentheses";
+    src = fetchgit {
+      url = "git://github.com/kien/rainbow_parentheses.vim";
+      rev = "eb8baa5428bde10ecc1cb14eed1d6e16f5f24695";
+      sha256 = "47975a426d06f41811882691d8a51f32bc72f590477ed52b298660486b2488e3";
+    };
+    dependencies = [];
+  };
+  sourcemap.vim = buildVimPlugin {
+    name = "sourcemap.vim";
+    src = fetchgit {
+      url = "git://github.com/chikatoike/sourcemap.vim";
+      rev = "0dd82d40faea2fdb0771067f46c01deb41610ba1";
+      sha256 = "a08c77aea39be4a0a980d62673d1d17fecc518a8aeb9101210e453aaacb78fbd";
+    };
+    dependencies = [];
+  };
+  vim-addon-other = buildVimPlugin {
+    name = "vim-addon-other";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-other";
+      rev = "f78720c9cb5bf871cabb13c7cbf94378dbf0163b";
+      sha256 = "43f027e4b7576031072515c23c2b09f7f2c8bba7ee43a1e2041a4371bd954d1b";
+    };
+    dependencies = ["vim-addon-actions" "vim-addon-mw-utils"];
+  };
+  vim-addon-mw-utils = buildVimPlugin {
+    name = "vim-addon-mw-utils";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-mw-utils";
+      rev = "0c5612fa31ee434ba055e21c76f456244b3b5109";
+      sha256 = "4e1b6d1b59050f1063e58ef4bee9e9603616ad184cd9ef7466d0ec3d8e22b91c";
+    };
+    dependencies = [];
+  };
+  Gist = buildVimPlugin {
+    name = "Gist";
+    src = fetchgit {
+      url = "git://github.com/mattn/gist-vim";
+      rev = "d609d93472db9cf45bd701bebe51adc356631547";
+      sha256 = "e5cabc03d5015c589a32f11c654ab9fbd1e91d26ba01f4b737685be81852c511";
+    };
+    buildInputs = [ zip ];
+    dependencies = [];
+  };
+  pathogen = buildVimPlugin {
+    name = "pathogen";
+    src = fetchgit {
+      url = "git://github.com/tpope/vim-pathogen";
+      rev = "91e6378908721d20514bbe5d18d292a0a15faf0c";
+      sha256 = "24c1897d6b58576b2189c90050a7f8ede72a51343c752e9d030e833dbe5cac6f";
+    };
+    dependencies = [];
+  };
+  vim-latex-live-preview = buildVimPlugin {
+    name = "vim-latex-live-preview";
+    src = fetchgit {
+      url = "git://github.com/xuhdev/vim-latex-live-preview";
+      rev = "18625ceca4de5984f3df50cdd0202fc13eb9e37c";
+      sha256 = "261852d3830189a50176f997a4c6b4ec7e25893c5b7842a3eb57eb7771158722";
+    };
+    dependencies = [];
+  };
+  vim-addon-mru = buildVimPlugin {
+    name = "vim-addon-mru";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-mru";
+      rev = "e41e39bd9d1bf78ccfd8d5e1bc05ae5e1026c2bb";
+      sha256 = "15b70f796f28cbd999060fea7f47408fa8a6cb176cd4915b9cc3dc6c53eed960";
+    };
+    dependencies = ["vim-addon-other" "vim-addon-mw-utils"];
+  };
+  VimOutliner = buildVimPlugin {
+    name = "VimOutliner";
+    src = fetchgit {
+      url = "git://github.com/vimoutliner/vimoutliner";
+      rev = "91dccce033ca3924ad47831d29cd93fccc546013";
+      sha256 = "c6dd19df1432908574e84a339a15076ddf8bfd6dfd2544b220928c29d9f752d3";
+    };
+    dependencies = [];
+  };
+  tlib = buildVimPlugin {
+    name = "tlib";
+    src = fetchgit {
+      url = "git://github.com/tomtom/tlib_vim";
+      rev = "88c5a2427e12397f9b5b1819e3d80c2eebe2c411";
+      sha256 = "6cbbeb7fcda26028f73836ce3bae880db3e250cf8289804e6e28cb914854b7de";
+    };
+    dependencies = [];
+  };
+  vim-airline = buildVimPlugin {
+    name = "vim-airline";
+    src = fetchgit {
+      url = "git://github.com/bling/vim-airline";
+      rev = "256dec6800342c121c1b26dabc06dafb0c91edca";
+      sha256 = "9bb684da91bffc80d8489210fc74476895be81772b1d1370ee0b9a9ec7469750";
+    };
+    dependencies = [];
+  };
+  vim-addon-manager = buildVimPlugin {
+    name = "vim-addon-manager";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-manager";
+      rev = "d6de0d52bfe338eb373a4908b51b0eb89eaf42b0";
+      sha256 = "4becba76d3389e4ace9e01c4393bc7bf38767eecf9eee239689054b9ee0c1fc9";
+    };
+    dependencies = [];
+  };
+  vim-gitgutter = buildVimPlugin {
+    name = "vim-gitgutter";
+    src = fetchgit {
+      url = "git://github.com/airblade/vim-gitgutter";
+      rev = "39f011909620e0c7ae555efdace20c3963ac88af";
+      sha256 = "585c367c8cf72d7ef511b3beca3d1eae1d68bbd61b9a8d4dc7aea6e0caa4813a";
+    };
+    dependencies = [];
+  };
+  wombat256 = buildVimPlugin {
+    name = "wombat256";
+    src = fetchurl {
+      url = "http://www.vim.org/scripts/download_script.php?src_id=13400";
+      name = "wombat256mod.vim";
+      sha256 = "1san0jg9sfm6chhnr1wc5nhczlp11ibca0v7i4gf68h9ick9mysn";
+    };
+    buildInputs = [ unzip ];
+    dependencies = [];
+    meta = {
+       url = "http://www.vim.org/scripts/script.php?script_id=2465";
+    };
+  };
+  vim-addon-async = buildVimPlugin {
+    name = "vim-addon-async";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-async";
+      rev = "dadc96e188f1cdacbac62129eb29a1eacfed792c";
+      sha256 = "27f941e21a8ca5940bd20914e2a9e3809e554f3ef2c27b3bafb9a153107a5d07";
+    };
+    dependencies = ["vim-addon-signs"];
+  };
+  fugitive = buildVimPlugin {
+    name = "fugitive";
+    src = fetchgit {
+      url = "git://github.com/tpope/vim-fugitive";
+      rev = "0374322ba5d85ae44dd9dc44ef31ca015a59097e";
+      sha256 = "3bb09693726c4f9fc1695bc8b40c45d64a6a0f1d9a4243b4a79add841013ad6c";
+    };
+    dependencies = [];
+  };
+  vim-addon-errorformats = buildVimPlugin {
+    name = "vim-addon-errorformats";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-errorformats";
+      rev = "dcbb203ad5f56e47e75fdee35bc92e2ba69e1d28";
+      sha256 = "a1260206545d5ae17f2e6b3319f5cf1808b74e792979b1c6667d75974cc53f95";
+    };
+    dependencies = [];
+  };
+  vim-addon-php-manual = buildVimPlugin {
+    name = "vim-addon-php-manual";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-php-manual";
+      rev = "e09ccdce3d2132771d0bd32884553207cc7122d0";
+      sha256 = "b2f44be3a1ceca9de7789ea9b5fd36035b720ea529f4301f3771b010d1e453c2";
+    };
+    dependencies = [];
+  };
+  matchit.zip = buildVimPlugin {
+    name = "matchit.zip";
+    src = fetchurl {
+      url = "http://www.vim.org/scripts/download_script.php?src_id=8196";
+      name = "matchit.zip";
+      sha256 = "1bbm8j1bhb70kagwdimwy9vcvlrz9ax5bk2a7wrmn4cy87f9xj4l";
+    };
+    buildInputs = [ unzip ];
+    dependencies = [];
+    meta = {
+       url = "http://www.vim.org/scripts/script.php?script_id=39";
+    };
+  };
+  ghcmod = buildVimPlugin {
+    name = "ghcmod";
+    src = fetchgit {
+      url = "git://github.com/eagletmt/ghcmod-vim";
+      rev = "d5c6c7f3c85608b5b76dc3e7e001f60b86c32cb9";
+      sha256 = "ab56d470ea18da3fae021e22bba14460505e61a94f8bf707778dff5eec51cd6d";
+    };
+    dependencies = [];
+  };
+  YankRing = buildVimPlugin {
+    name = "YankRing";
+    src = fetchurl {
+      url = "http://www.vim.org/scripts/download_script.php?src_id=20842";
+      name = "yankring_180.zip";
+      sha256 = "0bsq4pxagy12jqxzs7gcf25k5ahwif13ayb9k8clyhm0jjdkf0la";
+    };
+    buildInputs = [ unzip ];
+    dependencies = [];
+    meta = {
+       url = "http://www.vim.org/scripts/script.php?script_id=1234";
+    };
+  };
+  The_NERD_tree = buildVimPlugin {
+    name = "The_NERD_tree";
+    src = fetchgit {
+      url = "git://github.com/scrooloose/nerdtree";
+      rev = "f8fd2ecce20f5005e6313ce57d6d2a209890c946";
+      sha256 = "b86f8923d4068add210101d34c5272b575dcb1c1352992ee878af59db581fd75";
+    };
+    dependencies = [];
+  };
+  Colour_Sampler_Pack = buildVimPlugin {
+    name = "Colour_Sampler_Pack";
+    src = fetchurl {
+      url = "http://www.vim.org/scripts/download_script.php?src_id=18915";
+      name = "ColorSamplerPack.zip";
+      sha256 = "1wsrb3vpqn9fncnalfpvc8r92wk1mcskm4shb3s2h9x5dyihf2rd";
+    };
+    buildInputs = [ unzip ];
+    dependencies = [];
+    meta = {
+       url = "http://www.vim.org/scripts/script.php?script_id=625";
+    };
+  };
+  Syntastic = buildVimPlugin {
+    name = "Syntastic";
+    src = fetchgit {
+      url = "git://github.com/scrooloose/syntastic";
+      rev = "e4c94d67a9ba7f35397b4a2f0daa8f346a84a8b9";
+      sha256 = "366b5568ddf0db0e35a19bbd3ae4d0dc4accaefe5fdd14159540d26a76e3a96e";
+    };
+    dependencies = [];
+  };
+  Gundo = buildVimPlugin {
+    name = "Gundo";
+    src = fetchgit {
+      url = "https://bitbucket.org/sjl/gundo.vim";
+      rev = "";
+      sha256 = "";
+    };
+    dependencies = [];
+  };
+  snipmate = buildVimPlugin {
+    name = "snipmate";
+    src = fetchgit {
+      url = "git://github.com/garbas/vim-snipmate";
+      rev = "e6eb057a58e2fe98137997157d0eff9d1a975888";
+      sha256 = "4d8f9091b92a75f21d96a6f6a862aa4ad5671ab8317ceef4498eeb14a1524190";
+    };
+    dependencies = ["vim-addon-mw-utils" "tlib"];
+  };
+  The_NERD_Commenter = buildVimPlugin {
+    name = "The_NERD_Commenter";
+    src = fetchgit {
+      url = "git://github.com/scrooloose/nerdcommenter";
+      rev = "6549cfde45339bd4f711504196ff3e8b766ef5e6";
+      sha256 = "ef270ae5617237d68b3d618068e758af8ffd8d3ba27a3799149f7a106cfd178e";
+    };
+    dependencies = [];
+  };
+  vim-addon-nix = buildVimPlugin {
+    name = "vim-addon-nix";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-nix";
+      rev = "7b0a376bb1797fef8da2dc14e768f318bcb671e8";
+      sha256 = "c2b0f6f50083063b5e801b872f38d4f00307fe5d7a4f3977a108e5cd10c1c410";
+    };
+    dependencies = ["vim-addon-completion" "vim-addon-goto-thing-at-cursor" "vim-addon-errorformats" "vim-addon-actions" "vim-addon-mw-utils" "tlib"];
+  };
+  vim-addon-syntax-checker = buildVimPlugin {
+    name = "vim-addon-syntax-checker";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-syntax-checker";
+      rev = "8eb7217e636ca717d4de5cd03cc0180c5b66ae77";
+      sha256 = "aef048e664653b5007df71ac24ed34ec55d8938c763d3f80885a122e445a9b3d";
+    };
+    dependencies = ["vim-addon-mw-utils" "tlib"];
+  };
+  commentary = buildVimPlugin {
+    name = "commentary";
+    src = fetchgit {
+      url = "git://github.com/tpope/vim-commentary";
+      rev = "401dbd8abee69defe66acf5e9ccc85e2746c27e2";
+      sha256 = "3deec79d6c40a6c91fa504423f38c9f6a9e3495804f1996e2420d0ad34fe2da8";
+    };
+    dependencies = [];
+  };
+  undotree = buildVimPlugin {
+    name = "undotree";
+    src = fetchgit {
+      url = "git://github.com/mbbill/undotree";
+      rev = "88e4a9bc2f7916f24441faf884853a01ba11d294";
+      sha256 = "ad55b88db051f57d0c7ddc226a7b7778daab58fa67dc8ac1d78432c0e7d38520";
+    };
+    dependencies = [];
+  };
+  vim-easy-align = buildVimPlugin {
+    name = "vim-easy-align";
+    src = fetchgit {
+      url = "git://github.com/junegunn/vim-easy-align";
+      rev = "2595ebf9333f3598502276b29f78ad39965bc595";
+      sha256 = "1223b587c515169d4b735bf56f109f7bfc4f7c1327e76865f498309f7472ef78";
+    };
+    dependencies = [];
+  };
+  vim-addon-toggle-buffer = buildVimPlugin {
+    name = "vim-addon-toggle-buffer";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-toggle-buffer";
+      rev = "a1b38b9c5709cba666ed2d84ef06548f675c6b0b";
+      sha256 = "672166ecfe0599177afb56b444366f587f77e9659c256ac4e41ee45cb2df6055";
+    };
+    dependencies = ["vim-addon-mw-utils" "tlib"];
+  };
+  Hoogle = buildVimPlugin {
+    name = "Hoogle";
+    src = fetchgit {
+      url = "git://github.com/Twinside/vim-hoogle";
+      rev = "81f28318b0d4174984c33df99db7752891c5c4e9";
+      sha256 = "0f96f3badb6218cac87d0f7027ff032ecc74f08ad3ada542898278ce11cbd5a0";
+    };
+    dependencies = [];
+  };
+  vim-addon-commenting = buildVimPlugin {
+    name = "vim-addon-commenting";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-commenting";
+      rev = "b7cf748ac1c9bf555cbd347589e3b7196030d20b";
+      sha256 = "4ad7d5f6669f0a1b4a24c9ce3649c030d7d3fc8588de4d4d6c3269140fbe9b3e";
+    };
+    dependencies = [];
+  };
+  quickfixstatus = buildVimPlugin {
+    name = "quickfixstatus";
+    src = fetchgit {
+      url = "git://github.com/dannyob/quickfixstatus";
+      rev = "fd3875b914fc51bbefefa8c4995588c088163053";
+      sha256 = "7b6831d5da1c23d95f3158c67e4376d32c2f62ab2e30d02d3f3e14dcfd867d9b";
+    };
+    dependencies = [];
+  };
+  vim-coffee-script = buildVimPlugin {
+    name = "vim-coffee-script";
+    src = fetchgit {
+      url = "git://github.com/kchmck/vim-coffee-script";
+      rev = "827e4a38b07479433b619091469a7495a392df8a";
+      sha256 = "89ee4c7cce9f3310be502df6b2dd2e70a715c0b06882afc9c8169fbf58b207d0";
+    };
+    dependencies = [];
+  };
+  vim-iced-coffee-script = buildVimPlugin {
+    name = "vim-iced-coffee-script";
+    src = fetchgit {
+      url = "git://github.com/noc7c9/vim-iced-coffee-script";
+      rev = "e42e0775fa4b1f8840c55cd36ac3d1cedbc1dea2";
+      sha256 = "c7859591975a51a1736f99a433d7ca3e7638b417340a0472a63995e16d8ece93";
+    };
+    dependencies = ["vim-coffee-script"];
+  };
+  rust = buildVimPlugin {
+    name = "rust";
+    src = fetchgit {
+      url = "git://github.com/wting/rust.vim";
+      rev = "0cf510adc5a83ad4c256f576fd36b38c74349d43";
+      sha256 = "839f4ea2e045fc41fa2292882576237dc36d714bd78e46728c6696c44d2851d8";
+    };
+    dependencies = [];
+  };
+  YUNOcommit = buildVimPlugin {
+    name = "YUNOcommit";
+    src = fetchgit {
+      url = "git://github.com/esneide/YUNOcommit.vim";
+      rev = "10e0d674bfba05e88359dbe0ded4eb1d806b1342";
+      sha256 = "8efe7129ccc1cd13a09ffd4b5f8abe1fca12c434768ff57b865844cf40d49b41";
+    };
+    dependencies = [];
+  };
+  vim-snippets = buildVimPlugin {
+    name = "vim-snippets";
+    src = fetchgit {
+      url = "git://github.com/honza/vim-snippets";
+      rev = "d05ca095ef93e256b45accb1e4b56ae3c44af125";
+      sha256 = "1685ebe317ad1029bfc25e06c8f14cc3c14db887a7e1d743378c3748e416ac77";
+    };
+    dependencies = [];
+  };
+  Solarized = buildVimPlugin {
+    name = "Solarized";
+    src = fetchgit {
+      url = "git://github.com/altercation/vim-colors-solarized";
+      rev = "528a59f26d12278698bb946f8fb82a63711eec21";
+      sha256 = "a1b2ef696eee94dafa76431c31ee260acdd13a7cf87939f27eca431d5aa5a315";
+    };
+    dependencies = [];
+  };
+  vim-addon-local-vimrc = buildVimPlugin {
+    name = "vim-addon-local-vimrc";
+    src = fetchgit {
+      url = "git://github.com/MarcWeber/vim-addon-local-vimrc";
+      rev = "7689b55ee86dd6046923fd28ceab49da3881abfe";
+      sha256 = "f11d13676e2fdfcc9cabc991577f0b2e85909665b6f245aa02f21ff78d6a8556";
+    };
+    dependencies = [];
+  };
+  Supertab = buildVimPlugin {
+    name = "Supertab";
+    src = fetchgit {
+      url = "git://github.com/ervandew/supertab";
+      rev = "fd4e0d06c2b1d9bff2eef1d15e7895b3b4da7cd7";
+      sha256 = "5919521b95519d4baa8ed146c340ca739fa7f31dfd305c74ca0ace324ba93d74";
+    };
+    dependencies = [];
+  };
 }
diff --git a/pkgs/misc/vim-plugins/vimrc.nix b/pkgs/misc/vim-plugins/vimrc.nix
new file mode 100644
index 000000000000..4e97d7f1d549
--- /dev/null
+++ b/pkgs/misc/vim-plugins/vimrc.nix
@@ -0,0 +1,203 @@
+{stdenv, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin}:
+
+  /* usage example::
+     let vimrcConfig = {
+
+       # If you like pathogen use such
+       pathogen.knownPlugins = vimPlugins; # optional
+       pathogen.pluginNames = ["vim-addon-nix"];
+
+       # If you like VAM use such:
+       vam.knownPlugins = vimPlugins; # optional
+       vam.pluginDictionaries = [
+         # load always
+         { name = "youcompleteme"; }
+         { names = ["youcompleteme" "foo"]; }
+         # only load when opening a .php file
+         { name = "phpCompletion"; ft_regex = "^php\$"; }
+         { name = "phpCompletion"; filename_regex = "^.php\$"; }
+
+         # provide plugin which can be loaded manually:
+         { name = "phpCompletion"; tag = "lazy"; }
+       ];
+
+       # if you like NeoBundle or Vundle provide an implementation
+
+       # add custom .vimrc lines like this:
+       customRC = ''
+         set hidden
+       '';
+     };
+     in vim_configurable.customize { name = "vim-with-plugins"; inherit vimrcConfig; };
+
+  */
+
+let
+  inherit (stdenv) lib;
+
+  findDependenciesRecursively = {knownPlugins, names}:
+
+    let depsOf = name: (builtins.getAttr name knownPlugins).dependencies or [];
+
+        recurseNames = path: names: lib.concatMap (name: recurse ([name]++path)) names;
+
+        recurse = path:
+          let name = builtins.head path;
+          in if builtins.elem name (builtins.tail path)
+            then throw "recursive vim dependencies"
+            else [name] ++ recurseNames path (depsOf name);
+
+    in lib.uniqList { inputList = recurseNames [] names; };
+
+  vimrcFile = {
+    vam ? null,
+    pathogen ? null,
+    customRC ? ""
+  }:
+
+    let
+      /* pathogen mostly can set &rtp at startup time. Its used very commonly.
+      */
+      pathogenImpl = lib.optionalString (pathogen != null)
+      (let
+        knownPlugins = pathogen.knownPlugins or vimPlugins;
+
+        plugins = map (name: knownPlugins.${name}) (findDependenciesRecursively { inherit knownPlugins; names = pathogen.pluginNames; });
+
+        pluginsEnv = buildEnv {
+          name = "pathogen-plugin-env";
+          paths = map (x: "${x}/${vimPlugins.rtpPath}") plugins;
+        };
+      in
+      ''
+        let &rtp.=(empty(&rtp)?"":',')."${vimPlugins.pathogen.rtp}"
+        execute pathogen#infect('${pluginsEnv}/{}')
+      '');
+
+      /*
+       vim-addon-manager = VAM
+
+       * maps names to plugin location
+
+       * manipulates &rtp at startup time
+         or when Vim has been running for a while
+
+       * can activate plugins laziy (eg when loading a specific filetype)
+
+       * knows about vim plugin dependencies (addon-info.json files)
+
+       * still is minimalistic (only loads one file), the "check out" code it also
+         has only gets loaded when a plugin is requested which is not found on disk
+         yet
+
+      */
+      vamImpl = lib.optionalString (vam != null)
+      (let
+        knownPlugins = vam.knownPlugins or vimPlugins;
+
+        toNames = x:
+            if builtins.isString x then [x]
+            else (lib.optional (x ? name) x.name)
+                  ++ (x.names or []);
+
+        names = findDependenciesRecursively { inherit knownPlugins; names = lib.concatMap toNames vam.pluginDictionaries; };
+
+        # Vim almost reads JSON, so eventually JSON support should be added to Nix
+        # TODO: proper quoting
+        toNix = x:
+          if (builtins.isString x) then "'${x}'"
+          else if builtins.isAttrs x && builtins ? out then toNix "${x}" # a derivation
+          else if builtins.isAttrs x then "{${lib.concatStringsSep ", " (lib.mapAttrsToList (n: v: "${toNix n}: ${toNix v}") x)}}"
+          else if builtins.isList x then "[${lib.concatMapStringsSep ", " toNix x}]"
+          else throw "turning ${lib.showVal x} into a VimL thing not implemented yet";
+
+      in assert builtins.hasAttr "vim-addon-manager" knownPlugins;
+      ''
+        let g:nix_plugin_locations = {}
+        ${lib.concatMapStrings (name: ''
+          let g:nix_plugin_locations['${name}'] = "${knownPlugins.${name}.rtp}"
+        '') names}
+        let g:nix_plugin_locations['vim-addon-manager'] = "${vimPlugins."vim-addon-manager".rtp}"
+
+        let g:vim_addon_manager = {}
+
+        if exists('g:nix_plugin_locations')
+          " nix managed config
+
+          " override default function making VAM aware of plugin locations:
+          fun! NixPluginLocation(name)
+            let path = get(g:nix_plugin_locations, a:name, "")
+            return path == "" ? vam#DefaultPluginDirFromName(a:name) : path
+          endfun
+          let g:vim_addon_manager.plugin_dir_by_name = 'NixPluginLocation'
+          " tell Vim about VAM:
+          let &rtp.=(empty(&rtp)?"":','). g:nix_plugin_locations['vim-addon-manager']
+        else
+          " standalone config
+
+          let &rtp.=(empty(&rtp)?"":',').c.plugin_root_dir.'/vim-addon-manager'
+          if !isdirectory(c.plugin_root_dir.'/vim-addon-manager/autoload')
+            " checkout VAM
+            execute '!git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager '
+                \       shellescape(c.plugin_root_dir.'/vim-addon-manager', 1)
+          endif
+        endif
+
+        " tell vam about which plugins to load when:
+        let l = []
+        ${lib.concatMapStrings (p: "call add(l, ${toNix p})\n") vam.pluginDictionaries}
+        call vam#Scripts(l, {})
+      '');
+
+      # somebody else could provide these implementations
+      vundleImpl = "";
+
+      neobundleImpl = "";
+
+
+  in writeText "vimrc" ''
+  " minimal setup, generated by NIX
+  set nocompatible
+  filetype indent plugin on | syn on
+
+  ${vamImpl}
+  ${pathogenImpl}
+  ${vundleImpl}
+  ${neobundleImpl}
+
+  ${customRC}
+  '';
+
+in
+
+rec {
+  inherit vimrcFile;
+
+  # shell script with custom name passing [-u vimrc] [-U gvimrc] to vim
+  vimWithRC = {vimExecutable, name ? null, vimrcFile ? null, gvimrcFile ? null}:
+    let rcOption = o: file: stdenv.lib.optionalString (file != null) "-${o} ${file}";
+    in writeScriptBin (if name == null then "vim" else name) ''
+      #!/bin/sh
+      exec ${vimExecutable} ${rcOption "u" vimrcFile} ${rcOption "U" gvimrcFile} "$@"
+      '';
+
+  # add a customize option to a vim derivation
+  makeCustomizable = vim: vim // {
+    customize = {name, vimrcConfig}: vimWithRC {
+      vimExecutable = "${vim}/bin/vim";
+      inherit name;
+      vimrcFile = vimrcFile vimrcConfig;
+    };
+  };
+
+  # test cases:
+  test_vim_with_vim_addon_nix_using_vam = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix-using-vam";
+    vimrcConfig.vam.pluginDictionaries = [{name = "vim-addon-nix"; }];
+  };
+
+  test_vim_with_vim_addon_nix_using_pathogen = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix-using-pathogen";
+    vimrcConfig.pathogen.pluginNames = [ "vim-addon-nix" ];
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 0aaefc2a723e..48493044065c 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -318,9 +318,6 @@ with stdenv.lib;
   ${optionalString (!stdenv.is64bit) ''
     HIGHMEM64G? y # We need 64 GB (PAE) support for Xen guest support.
   ''}
-  ${optionalString stdenv.is64bit ''
-    INTEL_IOMMU_DEFAULT_ON y
-  ''}
   ${optionalString (versionAtLeast version "3.9" && stdenv.is64bit) ''
     VFIO_PCI_VGA y
   ''}
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index 7827dc228b14..79e65fdb613d 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     export XML_CATALOG_FILES=${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml
     substituteInPlace doc/rootfs/Makefile.am --replace '@LXCROOTFSMOUNT@' '$out/lib/lxc/rootfs'
+    substituteInPlace configure.ac --replace '$sysconfdir/' '/etc/'
+    substituteInPlace configure.ac --replace '$${sysconfdir}/' '/etc/'
   '';
 
   configureFlags = [
diff --git a/pkgs/os-specific/linux/prl-tools/autostart.desktop b/pkgs/os-specific/linux/prl-tools/autostart.desktop
new file mode 100644
index 000000000000..b8eb27fdd992
--- /dev/null
+++ b/pkgs/os-specific/linux/prl-tools/autostart.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Version=@version@
+Encoding=UTF-8
+Name=@description@
+Type=Application
+Exec=@exec@
+X-KDE-autostart-phase=1
+GenericName[en_US]=
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix
new file mode 100644
index 000000000000..bd73bc77c82e
--- /dev/null
+++ b/pkgs/os-specific/linux/prl-tools/default.nix
@@ -0,0 +1,197 @@
+{ stdenv, lib, requireFile, makeWrapper, substituteAll, p7zip
+, gawk, utillinux, xorg, glib, dbus_glib, zlib
+, kernel ? null, libsOnly ? false
+}:
+
+assert (!libsOnly) -> kernel != null;
+
+let xorgFullVer = (builtins.parseDrvName xorg.xorgserver.name).version;
+    xorgVer = lib.concatStringsSep "." (lib.take 2 (lib.splitString "." xorgFullVer));
+    x64 = if stdenv.system == "x86_64-linux" then true
+          else if stdenv.system == "i686-linux" then false
+          else abort "Parallels Tools for Linux only support {x86-64,i686}-linux targets";
+    # We autostart user services by ourselves, because prlcc uses hardcoded paths.
+    autostart = [ { exec = "prlcc";
+                    description = "Parallels Control Center";
+                  }
+                  { exec = "prldhd";
+                    description = "Parallels Control Center"; # not a mistake
+                  }
+                  { exec = "prl_wmouse_d";
+                    description = "Parallels Walking Mouse Daemon";
+                  }
+                  { exec = "prlcp";
+                    description = "Parallels CopyPaste Tool";
+                  }
+                  { exec = "prlsga";
+                    description = "Parallels Shared Guest Applications Tool";
+                  }
+                  { exec = "prlshprof";
+                    description = "Parallels Shared Profile Tool";
+                  }
+                ];
+in
+stdenv.mkDerivation rec {
+  version = "10.0.2.27712";
+  name = "prl-tools-${version}";
+
+  src = requireFile rec {
+    name = "prl-tools-lin.iso";
+    sha256 = "07960jvyv7gihjlg922znjm6db6l6bd23x9mg6ympwibzf2mylmx";
+    message = ''
+      Please, place Parallel Tools for Linux image into Nix store
+      using either
+        nix-store --add-fixed sha256 ${name}
+      or
+        nix-prefetch-url file://path/to/${name}
+    '';
+  };
+
+  # also maybe python2 to generate xorg.conf
+  nativeBuildInputs = [ p7zip ] ++ lib.optionals (!libsOnly) [ makeWrapper ];
+
+  inherit libsOnly;
+
+  unpackPhase = ''
+    7z x $src
+    export sourceRoot=.
+    if test -z "$libsOnly"; then
+      ( cd kmods; tar -xaf prl_mod.tar.gz )
+    fi
+    ( cd tools; tar -xaf prltools${if x64 then ".x64" else ""}.tar.gz )
+  '';
+
+  kernelVersion = if libsOnly then "" else (builtins.parseDrvName kernel.name).version;
+  kernelDir = if libsOnly then "" else "${kernel.dev}/lib/modules/${kernelVersion}";
+  scriptPath = lib.concatStringsSep ":" (lib.optionals (!libsOnly) [ "${utillinux}/bin" "${gawk}/bin" ]);
+
+  buildPhase = ''
+    if test -z "$libsOnly"; then
+      ( # kernel modules
+        cd kmods
+        make -f Makefile.kmods \
+          KSRC=$kernelDir/source \
+          HEADERS_CHECK_DIR=$kernelDir/source \
+          KERNEL_DIR=$kernelDir/build \
+          SRC=$kernelDir/build \
+          KVER=$kernelVersion
+      )
+
+      # Xorg config (maybe would be useful for other versions)
+      #python2 installer/xserver-config.py xorg ${xorgVer} /dev/null parallels.conf
+    fi
+  '';
+
+  libPath = with xorg;
+            stdenv.lib.makeLibraryPath ([ stdenv.gcc.gcc libXrandr libXext libX11 libXcomposite libXinerama ]
+            ++ lib.optionals (!libsOnly) [ libXi glib dbus_glib zlib ]);
+
+  desktops = map (x: substituteAll ({
+               src = ./autostart.desktop;
+               name = x.exec + ".desktop";
+               version = version;
+             } // x)) autostart;
+
+  installPhase = ''
+    if test -z "$libsOnly"; then
+      ( # kernel modules
+        cd kmods
+        mkdir -p $out/lib/modules/${kernelVersion}/extra
+        cp prl_eth/pvmnet/prl_eth.ko $out/lib/modules/${kernelVersion}/extra
+        cp prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko $out/lib/modules/${kernelVersion}/extra
+        cp prl_fs/SharedFolders/Guest/Linux/prl_fs/prl_fs.ko $out/lib/modules/${kernelVersion}/extra
+        cp prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.ko $out/lib/modules/${kernelVersion}/extra
+      )
+    fi
+
+    ( # tools
+      cd tools
+      mkdir -p $out/lib
+
+      if test -z "$libsOnly"; then
+        # install binaries
+        for i in bin/* sbin/prl_nettool sbin/prl_snapshot; do
+          install -Dm755 $i $out/$i
+        done
+        # other binaries
+        for i in xorg.7.1/usr/bin/*; do
+          cp $i $out/bin
+        done
+
+        for i in $out/bin/* $out/sbin/*; do
+          patchelf \
+            --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+            --set-rpath "$out/lib:$libPath" \
+            $i
+        done
+
+        mkdir -p $out/bin
+        install -Dm755 ../installer/prlfsmountd.sh $out/sbin/prlfsmountd
+        wrapProgram $out/sbin/prlfsmountd \
+          --prefix PATH ':' "$scriptPath"
+
+        for i in lib/*.a; do
+          cp $i $out/lib
+        done
+
+        for i in xorg.7.1/usr/lib/libprl_wmouse_watcher.*; do
+          cp $i $out/lib
+        done
+
+        mkdir -p $out/lib/udev/rules.d
+        for i in *.rules; do
+          sed 's,/bin/bash,${stdenv.shell},g' $i > $out/lib/udev/rules.d/$i
+        done
+
+        mkdir -p $out/share/autostart
+        for i in $desktops; do
+          cat $i | sed "s,^Exec=,Exec=$out/bin/," > $out/share/autostart/$(basename $i)
+        done
+
+        (
+          cd xorg.${xorgVer}
+          # Install the X modules.
+          (
+            cd x-server/modules
+            for i in */*; do
+              install -Dm755 $i $out/lib/xorg/modules/$i
+            done
+          )
+          (
+            cd usr/lib
+            libGLXname=$(echo libglx.so*)
+            install -Dm755 $libGLXname $out/lib/xorg/modules/extensions/$libGLXname
+            ln -s $libGLXname $out/lib/xorg/modules/extensions/libglx.so
+            ln -s $libGLXname $out/lib/xorg/modules/extensions/libglx.so.1
+          )
+        )
+      fi
+
+      for i in xorg.7.1/usr/lib/libGL.*; do
+        cp $i $out/lib
+      done
+
+      cd $out
+      find -name \*.so\* -type f -exec \
+        patchelf --set-rpath "$out/lib:$libPath" {} \;
+
+      cd lib
+      libGLname=$(echo libGL.so*)
+      ln -s $libGLname libGL.so
+      ln -s $libGLname libGL.so.1
+    )
+  '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    description = "Parallels Tools for Linux guests";
+    homepage = http://parallels.com;
+    platforms = platforms.linux;
+    license = licenses.unfree;
+    # I was making this package blindly and requesting testing from the real user,
+    # so I can't even test it by myself and won't provide future updates.
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 947761bad344..2d3dc4888a3a 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -3,11 +3,11 @@
 , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.26.99.1";
+  name = "xf86-input-wacom-0.27.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "00sclpsmimqfr79zkm8lvkd0b80x62rmcflbv558zy479bnsazav";
+    sha256 = "0hpc0waa91d34h2fw1sjhxzn2xya51627jrps9rw4a2zb5hh6a6i";
   };
 
   buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 0242c586cea5..a5b8429c03a0 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -8,7 +8,11 @@ stdenv.mkDerivation {
     sha256 = "06rrip9fxn13x6qnyp6br68r9pcygb95lld25hnnj88m2vagvg19";
   };
 
-  patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
+  patches = [
+    ./mount_zfs_prefix.patch
+    ./nix-build.patch # Remove in >=0.6.4
+    ./remove-lock-checks.patch # Remove in >=0.6.4
+  ];
 
   buildInputs = [ spl perl autoconf automake libtool zlib libuuid coreutils ];
 
@@ -16,34 +20,53 @@ stdenv.mkDerivation {
   NIX_CFLAGS_LINK = "-lgcc_s";
 
   preConfigure = ''
-    ./autogen.sh
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "umount -t zfs"           "${utillinux}/bin/umount -t zfs"
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "mount -t zfs"            "${utillinux}/bin/mount -t zfs"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/mount"              "${utillinux}/bin/mount"
+    substituteInPlace ./udev/rules.d/*            --replace "/lib/udev/vdev_id"       "$out/lib/udev/vdev_id"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/ztest"         "$out/sbin/ztest"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/zdb"           "$out/sbin/zdb"
+    substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
+    substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+    substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
+    substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "umount -t zfs"     "${utillinux}/bin/umount -t zfs"
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "mount -t zfs"      "${utillinux}/bin/mount -t zfs"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/umount"       "${utillinux}/bin/umount"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/mount"        "${utillinux}/bin/mount"
-    substituteInPlace ./udev/rules.d/*             --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/ztest"   "$out/sbin/ztest"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/zdb"     "$out/sbin/zdb"
+    ./autogen.sh
   '';
 
   configureFlags = [
-    "--disable-systemd"
+    "--enable-systemd"
     "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
     "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "--with-spl=${spl}/libexec/spl"
     "--with-dracutdir=$(out)/lib/dracut"
     "--with-udevdir=$(out)/lib/udev"
+    "--with-systemdunitdir=$(out)/etc/systemd/system"
+    "--with-systemdpresetdir=$(out)/etc/systemd/system-preset"
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
   ];
 
   enableParallelBuilding = true;
 
+  # Remove provided services as they are buggy
+  postInstall = ''
+    rm $out/etc/systemd/system/zfs-import-*.service
+
+    sed -i '/zfs-import-scan.service/d' $out/etc/systemd/system/*
+
+    for i in $out/etc/systemd/system/*; do
+      substituteInPlace $i --replace "zfs-import-cache.service" "zfs-import.target"
+    done
+  '';
+
   meta = {
     description = "ZFS Filesystem Linux Kernel module";
     longDescription = ''
       ZFS is a filesystem that combines a logical volume manager with a
       Copy-On-Write filesystem with data integrity detection and repair,
-      snapshotting, cloning, block devices, deduplication, and more. 
+      snapshotting, cloning, block devices, deduplication, and more.
       '';
     homepage = http://zfsonlinux.org/;
     license = stdenv.lib.licenses.cddl;
diff --git a/pkgs/os-specific/linux/zfs/git.nix b/pkgs/os-specific/linux/zfs/git.nix
index e88cb9d6130a..e5002bbbb3f3 100644
--- a/pkgs/os-specific/linux/zfs/git.nix
+++ b/pkgs/os-specific/linux/zfs/git.nix
@@ -17,28 +17,47 @@ stdenv.mkDerivation {
   NIX_CFLAGS_LINK = "-lgcc_s";
 
   preConfigure = ''
-    ./autogen.sh
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "umount -t zfs"           "${utillinux}/bin/umount -t zfs"
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "mount -t zfs"            "${utillinux}/bin/mount -t zfs"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/mount"              "${utillinux}/bin/mount"
+    substituteInPlace ./udev/rules.d/*            --replace "/lib/udev/vdev_id"       "$out/lib/udev/vdev_id"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/ztest"         "$out/sbin/ztest"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/zdb"           "$out/sbin/zdb"
+    substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
+    substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+    substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
+    substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "umount -t zfs"     "${utillinux}/bin/umount -t zfs"
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "mount -t zfs"      "${utillinux}/bin/mount -t zfs"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/umount"       "${utillinux}/bin/umount"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/mount"        "${utillinux}/bin/mount"
-    substituteInPlace ./udev/rules.d/*             --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/ztest"   "$out/sbin/ztest"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/zdb"     "$out/sbin/zdb"
+    ./autogen.sh
   '';
 
   configureFlags = [
-    "--disable-systemd"
+    "--enable-systemd"
     "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
     "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "--with-spl=${spl_git}/libexec/spl"
     "--with-dracutdir=$(out)/lib/dracut"
     "--with-udevdir=$(out)/lib/udev"
+    "--with-systemdunitdir=$(out)/etc/systemd/system"
+    "--with-systemdpresetdir=$(out)/etc/systemd/system-preset"
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
   ];
 
   enableParallelBuilding = true;
 
+  # Remove provided services as they are buggy
+  postInstall = ''
+    rm $out/etc/systemd/system/zfs-import-*.service
+
+    sed -i '/zfs-import-scan.service/d' $out/etc/systemd/system/*
+
+    for i in $out/etc/systemd/system/*; do
+      substituteInPlace $i --replace "zfs-import-cache.service" "zfs-import.target"
+    done
+  '';
+
   meta = {
     description = "ZFS Filesystem Linux Kernel module";
     longDescription = ''
diff --git a/pkgs/os-specific/linux/zfs/remove-lock-checks.patch b/pkgs/os-specific/linux/zfs/remove-lock-checks.patch
new file mode 100644
index 000000000000..1261b49ee1d4
--- /dev/null
+++ b/pkgs/os-specific/linux/zfs/remove-lock-checks.patch
@@ -0,0 +1,64 @@
+diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
+index 33f9e0e..2f55e56 100644
+--- a/module/zfs/zfs_vnops.c
++++ b/module/zfs/zfs_vnops.c
+@@ -474,15 +474,6 @@ zfs_read(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
+ 	}
+ 
+ 	/*
+-	 * Check for mandatory locks
+-	 */
+-	if (mandatory_lock(ip) &&
+-	    !lock_may_read(ip, uio->uio_loffset, uio->uio_resid)) {
+-		ZFS_EXIT(zsb);
+-		return (SET_ERROR(EAGAIN));
+-	}
+-
+-	/*
+ 	 * If we're in FRSYNC mode, sync out this znode before reading it.
+ 	 */
+ 	if (ioflag & FRSYNC || zsb->z_os->os_sync == ZFS_SYNC_ALWAYS)
+@@ -651,15 +642,6 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
+ 	}
+ 
+ 	/*
+-	 * Check for mandatory locks before calling zfs_range_lock()
+-	 * in order to prevent a deadlock with locks set via fcntl().
+-	 */
+-	if (mandatory_lock(ip) && !lock_may_write(ip, woff, n)) {
+-		ZFS_EXIT(zsb);
+-		return (SET_ERROR(EAGAIN));
+-	}
+-
+-	/*
+ 	 * Pre-fault the pages to ensure slow (eg NFS) pages
+ 	 * don't hold up txg.
+ 	 * Skip this if uio contains loaned arc_buf.
+diff --git a/module/zfs/zfs_znode.c b/module/zfs/zfs_znode.c
+index 90dbfd3..f02c021 100644
+--- a/module/zfs/zfs_znode.c
++++ b/module/zfs/zfs_znode.c
+@@ -1546,7 +1546,6 @@ zfs_trunc(znode_t *zp, uint64_t end)
+ int
+ zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
+ {
+-	struct inode *ip = ZTOI(zp);
+ 	dmu_tx_t *tx;
+ 	zfs_sb_t *zsb = ZTOZSB(zp);
+ 	zilog_t *zilog = zsb->z_log;
+@@ -1567,15 +1566,6 @@ zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
+ 		goto out;
+ 	}
+ 
+-	/*
+-	 * Check for any locks in the region to be freed.
+-	 */
+-	if (ip->i_flock && mandatory_lock(ip)) {
+-		uint64_t length = (len ? len : zp->z_size - off);
+-		if (!lock_may_write(ip, off, length))
+-			return (SET_ERROR(EAGAIN));
+-	}
+-
+ 	if (len == 0) {
+ 		error = zfs_trunc(zp, off);
+ 	} else {
diff --git a/pkgs/servers/zeromq/default.nix b/pkgs/servers/zeromq/default.nix
new file mode 100644
index 000000000000..15d453321fb9
--- /dev/null
+++ b/pkgs/servers/zeromq/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "zeromq";
+  version = "4.1.0-rc1";
+
+  src = fetchurl {
+    url = "http://download.zeromq.org/${name}-${version}.tar.gz";
+    sha256 = "e8e6325abe2ede0a9fb3d1abbe425d8a7911f6ac283652ee49b36afbb0164d60";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "0MQ is a lightweight messaging kernel";
+    longDescription = ''
+      The 0MQ lightweight messaging kernel is a library which extends
+      the standard socket interfaces with features traditionally provided
+      by specialised messaging middleware products. 0MQ sockets provide
+      an abstraction of asynchronous message queues, multiple messaging patterns,
+      message filtering (subscriptions), seamless access to multiple transport protocols
+      and more.
+    '';
+    homepage = http://zeromq.org/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.gavin ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 2d7a13010095..f41515154c65 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -183,6 +183,7 @@ let
       isArm = system == "armv5tel-linux"
            || system == "armv6l-linux"
            || system == "armv7l-linux";
+      isBigEndian = system == "powerpc-linux";
 
       # Whether we should run paxctl to pax-mark binaries.
       needsPax = isLinux;
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 8d03cfae260b..7d514e8bd133 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, python, zip }:
 
 let
-  version = "2014.11.04";
+  version = "2014.11.12";
 in
 stdenv.mkDerivation rec {
   name = "youtube-dl-${version}";
 
   src = fetchurl {
     url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "073qnbl0lbv1pacqsdvccawlzgxs3kbayw3inlyqhr6xn3471jgk";
+    sha256 = "1cjwyvwdgwfw1gsyqfgq7clczh01wjacdic20n0hyyjv37xhr1nq";
   };
 
   buildInputs = [ python ];
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
new file mode 100644
index 000000000000..d0205be35b92
--- /dev/null
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, libsodium }:
+
+stdenv.mkDerivation rec {
+  name = "dnscrypt-proxy-1.4.1";
+
+  src = fetchurl {
+    url = "http://download.dnscrypt.org/dnscrypt-proxy/${name}.tar.bz2";
+    sha256 = "00cf5c520c8a5a71ad4916b33aa0c8f9f55434039304f4ba10d7fffc620563f8";
+  };
+
+  buildInputs = [ libsodium ];
+
+  meta = {
+    description = "A DNS proxy which encrypts and authenticates requests using the DNSCrypt protocol.";
+    homepage = http://dnscrypt.org/;
+    license = with stdenv.lib.licenses; [ isc ];
+    maintainers = with stdenv.lib.maintainers; [ joachifm ];
+  };
+}
diff --git a/pkgs/tools/security/volatility/default.nix b/pkgs/tools/security/volatility/default.nix
index e88c8b7db1f5..6aa3a9d5ea11 100644
--- a/pkgs/tools/security/volatility/default.nix
+++ b/pkgs/tools/security/volatility/default.nix
@@ -2,11 +2,12 @@
 
 buildPythonPackage rec {
   namePrefix = "";
-  name = "volatility-2.3.1";
+  name = "volatility-2.4";
+
 
   src = fetchurl {
-    url = "http://volatility.googlecode.com/files/${name}.tar.gz";
-    sha256 = "bb1411fc671e0bf550a31e534fb1991b2f940f1dce1ebe4ce2fb627aec40726c";
+    url = "http://downloads.volatilityfoundation.org/releases/2.4/${name}.tar.gz";
+    sha256 = "1wffrkvj2lrkqhwamyix9fy05y6g6w8h1sz2iqlm6i6ag7yxykv8";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/system/acct/default.nix b/pkgs/tools/system/acct/default.nix
index 0bea6bec3547..c99d20d7953e 100644
--- a/pkgs/tools/system/acct/default.nix
+++ b/pkgs/tools/system/acct/default.nix
@@ -1,16 +1,16 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "acct-6.6.1";
+  name = "acct-6.6.2";
 
   src = fetchurl {
     url = "mirror://gnu/acct/${name}.tar.gz";
-    sha256 = "1jzz601cavml7894fjalw661gz28ia35002inw990agr3rhiaiam";
+    sha256 = "0081hzkcxw9aslpsakridj15m0wbnkdhm210fzbg021vi4pppm4f";
   };
 
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "GNU Accounting Utilities, login and process accounting utilities";
 
     longDescription = ''
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
       execution statistics.
     '';
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
     homepage = http://www.gnu.org/software/acct/;
 
-    maintainers = [ ];
-    platforms = with stdenv.lib.platforms; allBut cygwin;
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; allBut cygwin;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 45b299ef7440..ef6f903a94b7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -797,6 +797,8 @@ let
 
   can-utils = callPackage ../os-specific/linux/can-utils { };
 
+  caudec = callPackage ../applications/audio/caudec { };
+
   ccid = callPackage ../tools/security/ccid { };
 
   ccrypt = callPackage ../tools/security/ccrypt { };
@@ -975,6 +977,8 @@ let
 
   dev86 = callPackage ../development/compilers/dev86 { };
 
+  dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy { };
+
   dnsmasq = callPackage ../tools/networking/dnsmasq { };
 
   dnstop = callPackage ../tools/networking/dnstop { };
@@ -1530,6 +1534,8 @@ let
 
   kexectools = callPackage ../os-specific/linux/kexectools { };
 
+  keybase-node-client = callPackage ../applications/misc/keybase-node-client { };
+
   keychain = callPackage ../tools/misc/keychain { };
 
   kibana = callPackage ../development/tools/misc/kibana { };
@@ -3992,6 +3998,10 @@ let
 
   nix-exec = callPackage ../development/interpreters/nix-exec {
     nix = nixUnstable;
+    git = git.override {
+      withManual = false;
+      pythonSupport = false;
+    };
   };
 
   octave = callPackage ../development/interpreters/octave {
@@ -4267,6 +4277,11 @@ let
 
   astyle = callPackage ../development/tools/misc/astyle { };
 
+  atom-shell = callPackage ../development/tools/atom-shell {
+    gconf = pkgs.gnome.GConf;
+  };
+
+
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
   autoconf = callPackage ../development/tools/misc/autoconf { };
@@ -4519,6 +4534,8 @@ let
 
   ibus = callPackage ../development/libraries/ibus { };
 
+  icmake = callPackage ../development/tools/build-managers/icmake { };
+
   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
     inherit (perlPackages) XMLSimple;
   };
@@ -4771,6 +4788,8 @@ let
 
   yodl = callPackage ../development/tools/misc/yodl { };
 
+  winpdb = callPackage ../development/tools/winpdb { };
+
 
   ### DEVELOPMENT / LIBRARIES
 
@@ -7149,12 +7168,16 @@ let
 
   commonsBcel = callPackage ../development/libraries/java/commons/bcel { };
 
+  commonsBsf = callPackage ../development/libraries/java/commons/bsf { };
+
   commonsCompress = callPackage ../development/libraries/java/commons/compress { };
 
   commonsFileUpload = callPackage ../development/libraries/java/commons/fileupload { };
 
   commonsLang = callPackage ../development/libraries/java/commons/lang { };
 
+  commonsLogging = callPackage ../development/libraries/java/commons/logging { };
+
   commonsIo = callPackage ../development/libraries/java/commons/io { };
 
   commonsMath = callPackage ../development/libraries/java/commons/math { };
@@ -7802,6 +7825,7 @@ let
 
   zabbix20 = callPackage ../servers/monitoring/zabbix/2.0.nix { };
   zabbix22 = callPackage ../servers/monitoring/zabbix/2.2.nix { };
+  zmq = callPackage ../servers/zeromq/default.nix { };
 
 
   ### OS-SPECIFIC
@@ -8267,6 +8291,8 @@ let
 
     perf = callPackage ../os-specific/linux/kernel/perf.nix { };
 
+    prl-tools = callPackage ../os-specific/linux/prl-tools { };
+
     psmouse_alps = callPackage ../os-specific/linux/psmouse-alps { };
 
     seturgent = callPackage ../os-specific/linux/seturgent { };
@@ -9041,6 +9067,10 @@ let
     python = python34;
   };
 
+  bluefish = callPackage ../applications/editors/bluefish {
+    gtk = gtk3;
+  };
+
   bristol = callPackage ../applications/audio/bristol { };
 
   bspwm = callPackage ../applications/window-managers/bspwm { };
@@ -10834,7 +10864,7 @@ let
 
   vimHugeX = vim_configurable;
 
-  vim_configurable = callPackage ../applications/editors/vim/configurable.nix {
+  vim_configurable = vimrc.makeCustomizable (callPackage ../applications/editors/vim/configurable.nix {
     inherit (pkgs) fetchurl fetchhg stdenv ncurses pkgconfig gettext
       composableDerivation lib config glib gtk python perl tcl ruby;
     inherit (pkgs.xlibs) libX11 libXext libSM libXpm libXt libXaw libXau libXmu
@@ -10849,7 +10879,7 @@ let
 
     # so that we can use gccApple if we're building on darwin
     inherit stdenvAdapters gccApple;
-  };
+  });
 
   vimNox = lowPrio (vim_configurable.override { source = "vim-nox"; });
 
@@ -11206,7 +11236,9 @@ let
 
   qgis = callPackage ../applications/gis/qgis {};
 
-  qtbitcointrader = callPackage ../applications/misc/qtbitcointrader { };
+  qtbitcointrader = callPackage ../applications/misc/qtbitcointrader {
+    qt = qt4;
+  };
 
   ykpers = callPackage ../applications/misc/ykpers {};
 
@@ -11586,6 +11618,8 @@ let
 
   xskat = callPackage ../games/xskat { };
 
+  xsnow = callPackage ../games/xsnow { };
+
   xsokoban = builderDefsPackage (import ../games/xsokoban) {
     inherit (xlibs) libX11 xproto libXpm libXt;
   };
@@ -11958,6 +11992,8 @@ let
 
   sage = callPackage ../applications/science/math/sage { };
 
+  ipopt = callPackage ../development/libraries/science/math/ipopt { };
+
   ### SCIENCE/MOLECULAR-DYNAMICS
 
   gromacs = callPackage ../applications/science/molecular-dynamics/gromacs {
@@ -12017,6 +12053,8 @@ let
 
     tlc = callPackage ../development/coq-modules/tlc {};
 
+    unimath = callPackage ../development/coq-modules/unimath {};
+
     ynot = callPackage ../development/coq-modules/ynot {};
 
   };
@@ -12585,6 +12623,8 @@ let
 
   viewnior = callPackage ../applications/graphics/viewnior { };
 
+  vimrc = callPackage ../misc/vim-plugins/vimrc.nix { inherit writeText; };
+
   vimPlugins = recurseIntoAttrs (callPackage ../misc/vim-plugins { });
 
   vimprobable2 = callPackage ../applications/networking/browsers/vimprobable2 {
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index df16bb125bad..78b33244b1f4 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -356,15 +356,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   cabalMacosx = callPackage ../development/libraries/haskell/cabal-macosx {};
 
-  cairo_0_12_5_3 = callPackage ../development/libraries/haskell/cairo/0.12.5.3.nix {
+  cairo = callPackage ../development/libraries/haskell/cairo {
     inherit (pkgs) cairo zlib;
     libc = pkgs.stdenv.gcc.libc;
   };
-  cairo_0_13_0_4 = callPackage ../development/libraries/haskell/cairo/0.13.0.4.nix {
-    inherit (pkgs) cairo zlib;
-    libc = pkgs.stdenv.gcc.libc;
-  };
-  cairo = self.cairo_0_13_0_4;
 
   carray = callPackage ../development/libraries/haskell/carray {};
 
@@ -956,15 +951,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   GLFWB = callPackage ../development/libraries/haskell/GLFW-b {};
 
-  glib_0_12_5_4 = callPackage ../development/libraries/haskell/glib/0.12.5.4.nix {
-    glib = pkgs.glib;
-    libc = pkgs.stdenv.gcc.libc;
-  };
-  glib_0_13_0_5 = callPackage ../development/libraries/haskell/glib/0.13.0.5.nix {
+  glib = callPackage ../development/libraries/haskell/glib {
     glib = pkgs.glib;
     libc = pkgs.stdenv.gcc.libc;
   };
-  glib = self.glib_0_13_0_5;
 
   Glob = callPackage ../development/libraries/haskell/Glob {};
 
@@ -996,18 +986,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   gsasl = callPackage ../development/libraries/haskell/gsasl { inherit (pkgs) gsasl; };
 
-  gtk_0_12_5_7 = callPackage ../development/libraries/haskell/gtk/0.12.5.7.nix {
-    inherit (pkgs) gtk;
-    libc = pkgs.stdenv.gcc.libc;
-    glib = self.glib_0_12_5_4;
-    cairo = self.cairo_0_12_5_3;
-    pango = self.pango_0_12_5_3;
-  };
-  gtk_0_13_0_3 = callPackage ../development/libraries/haskell/gtk/0.13.0.3.nix {
+  gtk = callPackage ../development/libraries/haskell/gtk {
     inherit (pkgs) gtk;
     libc = pkgs.stdenv.gcc.libc;
   };
-  gtk = self.gtk_0_13_0_3;
 
   gtk3 = callPackage ../development/libraries/haskell/gtk3 {
     inherit (pkgs) gtk3;
@@ -1313,6 +1295,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   hspecCheckers = callPackage ../development/libraries/haskell/hspec-checkers {};
 
+  hspecCore = callPackage ../development/libraries/haskell/hspec-core {};
+
+  hspecDiscover = callPackage ../development/libraries/haskell/hspec-discover {};
+
   hstatsd = callPackage ../development/libraries/haskell/hstatsd {};
 
   hsyslog = callPackage ../development/libraries/haskell/hsyslog {};
@@ -1456,6 +1442,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   knob = callPackage ../development/libraries/haskell/knob {};
 
+  labeledTree = callPackage ../development/libraries/haskell/labeled-tree {};
+
   languageC = callPackage ../development/libraries/haskell/language-c {};
 
   languageCInline = callPackage ../development/libraries/haskell/language-c-inline {};
@@ -1827,17 +1815,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   pandocTypes = callPackage ../development/libraries/haskell/pandoc-types {};
 
-  pango_0_12_5_3 = callPackage ../development/libraries/haskell/pango/0.12.5.3.nix {
+  pango = callPackage ../development/libraries/haskell/pango {
     inherit (pkgs) pango;
     libc = pkgs.stdenv.gcc.libc;
-    glib = self.glib_0_12_5_4;
-    cairo = self.cairo_0_12_5_3;
   };
-  pango_0_13_0_3 = callPackage ../development/libraries/haskell/pango/0.13.0.3.nix {
-    inherit (pkgs) pango;
-    libc = pkgs.stdenv.gcc.libc;
-  };
-  pango = self.pango_0_13_0_3;
 
   parallel_3_2_0_3 = callPackage ../development/libraries/haskell/parallel/3.2.0.3.nix {};
   parallel_3_2_0_4 = callPackage ../development/libraries/haskell/parallel/3.2.0.4.nix {};
@@ -2948,12 +2929,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   tar = callPackage ../development/libraries/haskell/tar {};
 
-  threadscope = callPackage ../development/tools/haskell/threadscope {
-    gtk = self.gtk_0_12_5_7;
-    glib = self.glib_0_12_5_4;
-    cairo = self.cairo_0_12_5_3;
-    pango = self.pango_0_12_5_3;
-  };
+  threadscope = callPackage ../development/tools/haskell/threadscope {};
 
   uuagcBootstrap = callPackage ../development/tools/haskell/uuagc/bootstrap.nix {};
   uuagcCabal = callPackage ../development/tools/haskell/uuagc/cabal.nix {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 122cc1a596b8..41aa51daa750 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -801,7 +801,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "a80ed1b1600a8ababda34bc024756a6fb0275b0fff3fa1bb17104813e3ce8752";
     };
     buildInputs = [ DataDump HTTPMessage IOstringy JSONMaybeXS TestFatal ];
-    propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT ClassDataInheritable ClassLoad DataDump DataOptList Encode HTMLParser HTTPBody HTTPMessage HTTPRequestAsCGI HashMultiValue JSONMaybeXS LWP ListMoreUtils MROCompat ModulePluggable Moose MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass Plack PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StreamBuffered StringRewritePrefix SubExporter TaskWeaken TextSimpleTable TreeSimple TreeSimpleVisitorFactory TryTiny URI namespaceautoclean namespaceclean ];
+    propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT ClassDataInheritable ClassLoad DataDump DataOptList Encode HTMLParser HTTPBody HTTPMessage HTTPRequestAsCGI HashMultiValue JSONMaybeXS LWP ListMoreUtils MROCompat ModulePluggable Moose MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass Plack PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StreamBuffered StringRewritePrefix SubExporter TaskWeaken TermSizeAny TextSimpleTable TreeSimple TreeSimpleVisitorFactory TryTiny URI namespaceautoclean namespaceclean ];
     meta = {
       homepage = http://dev.catalyst.perl.org/;
       description = "The Catalyst Framework Runtime";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 08cf2770f31e..60bc382e2900 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -818,7 +818,7 @@ let
       homepage = "http://cvxopt.org/";
       description = "Python Software for Convex Optimization";
       maintainers = with maintainers; [ edwtjo ];
-      licsense = licenses.gpl3Plus;
+      license = licenses.gpl3Plus;
     };
   };
 
@@ -6584,6 +6584,24 @@ let
   };
 
 
+  pyalgotrade = buildPythonPackage {
+    name = "pyalogotrade-0.16";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/P/PyAlgoTrade/PyAlgoTrade-0.16.tar.gz";
+      md5 = "01d70583ab15eb3bad21027bdeb30ae5";
+    };
+
+    propagatedBuildInputs = with self; [ numpy scipy pytz ];
+
+    meta = {
+      description = "Python Algorithmic Trading";
+      homepage = http://gbeced.github.io/pyalgotrade/;
+      license = stdenv.lib.licenses.asl20;
+    };
+  };
+
+
   pyasn1 = buildPythonPackage ({
     name = "pyasn1-0.1.7";
 
@@ -8376,6 +8394,36 @@ let
   };
 
 
+  scikitlearn = buildPythonPackage {
+    name = "scikit-learn-0.15.2";
+
+    disabled = isPy3k;
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/s/scikit-learn/scikit-learn-0.15.2.tar.gz";
+      md5 = "d9822ad0238e17b382a3c756ea94fe0d";
+    };
+
+    buildInputs = with self; [ nose pillow pkgs.gfortran ];
+    propagatedBuildInputs = with self; [ numpy scipy pkgs.atlas ];
+
+    buildPhase = ''
+      export ATLAS=${pkgs.atlas}
+      ${self.python.executable} setup.py build_ext -i --fcompiler='gnu95'
+    '';
+
+    checkPhase = ''
+      LOCALE_ARCHIVE=${localePath} LC_ALL="en_US.UTF-8" HOME=$TMPDIR ATLAS="" nosetests
+    '';
+
+    meta = {
+      description = "A set of python modules for machine learning and data mining";
+      homepage = http://scikit-learn.org;
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
+
+
   scripttest = buildPythonPackage rec {
     version = "1.3";
     name = "scripttest-${version}";
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index 0a8e7165d663..cc27693ab2be 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -1,9 +1,9 @@
-{ supportedSystems }:
+{ supportedSystems, packageSet ? (import ./all-packages.nix) }:
 
 rec {
 
   # Ensure that we don't build packages marked as unfree.
-  allPackages = args: import ./all-packages.nix (args // {
+  allPackages = args: packageSet (args // {
     config.allowUnfree = false;
   });