summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-01-04 12:45:06 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-01-04 18:34:53 +0100
commit9443129b08b37a6f4267d257cd8d42dd92a2539c (patch)
treeaec261361299cc2d85827dbcf5d03b594ae85e28
parentf78534ca0f8ec63d79370eb2367605579efba088 (diff)
parentf6d51f7717cffd8b220ce02498db8b8359b5964c (diff)
downloadnixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.gz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.bz2
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.lz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.xz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.zst
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.zip
Merge master into stdenv-updates
Conflicts:
	pkgs/development/libraries/glibc/2.18/common.nix (take stdenv-updates)
	pkgs/misc/emulators/zsnes/default.nix (more complex, build tested)
	pkgs/top-level/all-packages.nix (auto-solved)
-rw-r--r--doc/quick-start.xml3
-rw-r--r--nixos/doc/manual/configuration.xml2
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix1
-rw-r--r--nixos/modules/services/networking/networkmanager.nix5
-rw-r--r--nixos/modules/services/x11/redshift.nix2
-rw-r--r--nixos/modules/tasks/network-interfaces.nix184
-rw-r--r--pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch14
-rw-r--r--pkgs/applications/audio/clementine/default.nix48
-rw-r--r--pkgs/applications/audio/qmmp/default.nix2
-rw-r--r--pkgs/applications/editors/vim/configurable.nix31
-rw-r--r--pkgs/applications/editors/vim/default.nix22
-rw-r--r--pkgs/applications/editors/vim/ft-nix-support.patch4
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.001489
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00277
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.003100
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.004232
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00548
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00666
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00795
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00871
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.00964
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01079
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.011100
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.012202
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01399
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.014102
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.015106
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.016221
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01778
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01845
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.01961
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02082
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02186
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.022148
-rw-r--r--pkgs/applications/editors/vim/patches/7.4.02353
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix3
-rw-r--r--pkgs/applications/graphics/openscad/default.nix3
-rw-r--r--pkgs/applications/graphics/sane/backends-git.nix8
-rw-r--r--pkgs/applications/graphics/sane/backends.nix7
-rw-r--r--pkgs/applications/ike/default.nix12
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/evtest/default.nix2
-rw-r--r--pkgs/applications/misc/gammu/bashcomp-dir.patch12
-rw-r--r--pkgs/applications/misc/gammu/default.nix29
-rw-r--r--pkgs/applications/misc/gnuradio/default.nix3
-rw-r--r--pkgs/applications/misc/pitz/default.nix5
-rw-r--r--pkgs/applications/misc/slic3r/default.nix3
-rw-r--r--pkgs/applications/misc/tint2/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix5
-rw-r--r--pkgs/applications/science/spyder/default.nix2
-rw-r--r--pkgs/applications/version-management/subversion/default.nix17
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/video/xbmc/default.nix13
-rw-r--r--pkgs/applications/window-managers/compton/default.nix31
-rw-r--r--pkgs/build-support/cabal/default.nix15
-rw-r--r--pkgs/build-support/fetchsvn/builder.sh2
-rw-r--r--pkgs/data/misc/freepats/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/default.nix6
-rw-r--r--pkgs/development/compilers/elm/elm.nix8
-rw-r--r--pkgs/development/compilers/jdk/jdk7-linux.nix11
-rw-r--r--pkgs/development/compilers/nasm/default.nix1
-rw-r--r--pkgs/development/compilers/sbcl/default.nix8
-rw-r--r--pkgs/development/compilers/sbcl/newglibc.patch43
-rw-r--r--pkgs/development/compilers/sdcc/default.nix2
-rw-r--r--pkgs/development/compilers/yasm/default.nix1
-rw-r--r--pkgs/development/interpreters/elixir/default.nix4
-rw-r--r--pkgs/development/interpreters/pypy/2.2/default.nix3
-rw-r--r--pkgs/development/interpreters/python/3.3/default.nix4
-rw-r--r--pkgs/development/libraries/apr-util/default.nix16
-rw-r--r--pkgs/development/libraries/fftw/default.nix51
-rw-r--r--pkgs/development/libraries/fltk/fltk13.nix6
-rw-r--r--pkgs/development/libraries/haskell/DRBG/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/HsOpenSSL/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/RSA/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/asn1-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cipher-aes128/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/crypto-pubkey/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-heist/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/either/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/fast-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fastcgi/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/fclabels/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/heredoc/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/lens-aeson/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monad-logger/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/mono-traversable/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-postgresql/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/prettyclass/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/profunctors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rethinkdb/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/robots-txt/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty-ant-xml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty-golden/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/temporary/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/trifecta/1.1.nix3
-rw-r--r--pkgs/development/libraries/haskell/trifecta/1.2.nix1
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/wai-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/warp-tls/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-bin/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-platform/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-routes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix4
-rw-r--r--pkgs/development/libraries/phonon-backend-gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/serf/default.nix45
-rw-r--r--pkgs/development/libraries/serf/default.upstream3
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix17
-rw-r--r--pkgs/development/libraries/vxl/default.nix9
-rw-r--r--pkgs/development/libraries/wildmidi/default.nix2
-rw-r--r--pkgs/development/libraries/wxGTK-3.0/default.nix58
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix12
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/scons/default.upstream10
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix5
-rw-r--r--pkgs/development/tools/misc/openocd/default.nix2
-rw-r--r--pkgs/development/tools/misc/premake/default.nix6
-rw-r--r--pkgs/development/tools/misc/stlink/default.nix2
-rw-r--r--pkgs/development/tools/misc/tcptrack/default.nix2
-rw-r--r--pkgs/development/tools/slimerjs/default.nix21
-rw-r--r--pkgs/games/nexuiz/default.nix76
-rw-r--r--pkgs/games/xonotic/default.nix26
-rw-r--r--pkgs/misc/emulators/wine/unstable.nix4
-rw-r--r--pkgs/misc/emulators/wine/winetricks.nix4
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix24
-rw-r--r--pkgs/misc/themes/qtcurve/default.nix37
-rw-r--r--pkgs/misc/themes/qtcurve/qtcurve-1.8.17-install-paths.patch25
-rw-r--r--pkgs/os-specific/linux/ati-drivers/default.nix1
-rw-r--r--pkgs/os-specific/linux/ifenslave/default.nix26
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.11.nix4
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix4
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix1
-rw-r--r--pkgs/servers/monitoring/munin/default.nix3
-rw-r--r--pkgs/servers/sql/postgresql/8.3.x.nix24
-rw-r--r--pkgs/servers/sql/postgresql/8.4.x.nix4
-rw-r--r--pkgs/servers/sql/postgresql/9.0.x.nix4
-rw-r--r--pkgs/servers/sql/postgresql/9.1.x.nix4
-rw-r--r--pkgs/servers/sql/postgresql/9.2.x.nix4
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix10
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix8
-rw-r--r--pkgs/tools/backup/chunksync/default.nix32
-rw-r--r--pkgs/tools/backup/duply/default.nix3
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c109
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix29
-rw-r--r--pkgs/tools/filesystems/chunkfs/default.nix30
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix4
-rw-r--r--pkgs/tools/misc/dvtm/default.nix29
-rw-r--r--pkgs/tools/misc/ethtool/default.nix2
-rw-r--r--pkgs/tools/misc/kde-gtk-config/default.nix49
-rw-r--r--pkgs/tools/misc/kde-gtk-config/kde-gtk-config-2.2.1-install-paths.patch28
-rw-r--r--pkgs/tools/networking/ncftp/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix9
-rw-r--r--pkgs/tools/networking/network-manager/default.nix10
-rw-r--r--pkgs/tools/networking/network-manager/openconnect.nix2
-rw-r--r--pkgs/tools/networking/network-manager/openvpn.nix2
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix4
-rw-r--r--pkgs/tools/networking/ngrep/default.nix39
-rw-r--r--pkgs/tools/networking/ntopng/default.nix3
-rw-r--r--pkgs/tools/networking/openssh/default.nix10
-rw-r--r--pkgs/tools/networking/openssh/gcmrekey.patch18
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix8
-rw-r--r--pkgs/top-level/all-packages.nix98
-rw-r--r--pkgs/top-level/haskell-defaults.nix48
-rw-r--r--pkgs/top-level/haskell-packages.nix35
-rw-r--r--pkgs/top-level/node-packages-generated.nix942
-rw-r--r--pkgs/top-level/node-packages.json1
-rw-r--r--pkgs/top-level/perl-packages.nix8
-rw-r--r--pkgs/top-level/python-packages.nix303
-rw-r--r--pkgs/top-level/r-packages.nix8
-rw-r--r--pkgs/top-level/release.nix4
189 files changed, 2272 insertions, 3828 deletions
diff --git a/doc/quick-start.xml b/doc/quick-start.xml
index 46578619e1f4..35983f0b114a 100644
--- a/doc/quick-start.xml
+++ b/doc/quick-start.xml
@@ -196,7 +196,8 @@ $ emacs pkgs/top-level/all-packages.nix</screen>
   </listitem>
 
   <listitem>
-    <para>Test whether the package builds:
+    <para>To test whether the package builds, run the following command
+    from the root of the nixpkgs source tree:
 
     <screen>
 $ nix-build -A libfoo</screen>
diff --git a/nixos/doc/manual/configuration.xml b/nixos/doc/manual/configuration.xml
index 9bca53ae9040..e6d7dee251af 100644
--- a/nixos/doc/manual/configuration.xml
+++ b/nixos/doc/manual/configuration.xml
@@ -1235,7 +1235,7 @@ with other kernel modules.</para>
 <para>On 64-bit systems, if you want full acceleration for 32-bit
 programs such as Wine, you should also set the following:
 <programlisting>
-service.xserver.driSupport32Bit = true;
+services.xserver.driSupport32Bit = true;
 </programlisting>
 </para>
 
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index ea263b3c89de..08a5d6de6a2b 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -11,6 +11,7 @@ let
   ignoredInterfaces =
     map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces))
     ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
+    ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds))
     ++ config.networking.dhcpcd.denyInterfaces;
 
   # Config file adapted from the one that ships with dhcpcd.
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 62bf38e4e708..40c20aae4ef0 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -146,6 +146,9 @@ in {
       { source = "${networkmanager_openconnect}/etc/NetworkManager/VPN/nm-openconnect-service.name";
         target = "NetworkManager/VPN/nm-openconnect-service.name";
       }
+      { source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name";
+        target = "NetworkManager/VPN/nm-pptp-service.name";
+      }
     ] ++ pkgs.lib.optional (cfg.appendNameservers == [] || cfg.insertNameservers == [])
            { source = overrideNameserversScript;
              target = "NetworkManager/dispatcher.d/02overridedns";
@@ -155,6 +158,7 @@ in {
         networkmanager_openvpn
         networkmanager_vpnc
         networkmanager_openconnect
+        networkmanager_pptp
         ];
 
     users.extraGroups = singleton {
@@ -199,6 +203,7 @@ in {
         networkmanager_openvpn
         networkmanager_vpnc
         networkmanager_openconnect
+        networkmanager_pptp
         ];
 
     services.udev.packages = cfg.packages;
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index bf7f974edc7b..b9ad962d8e46 100644
--- a/nixos/modules/services/x11/redshift.nix
+++ b/nixos/modules/services/x11/redshift.nix
@@ -40,12 +40,14 @@ in {
     systemd.services.redshift = {
       description = "Redshift colour temperature adjuster";
       requires = [ "display-manager.service" ];
+      after = [ "display-manager.service" ];
       script = ''
         ${pkgs.redshift}/bin/redshift \
           -l ${cfg.latitude}:${cfg.longitude} \
           -t ${toString cfg.temperature.day}:${toString cfg.temperature.night}
       '';
       environment = { DISPLAY = ":0"; };
+      serviceConfig.Restart = "always";
     };
   };
 }
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index b1ab989f130f..9619f0f5ebe7 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -7,6 +7,7 @@ let
   cfg = config.networking;
   interfaces = attrValues cfg.interfaces;
   hasVirtuals = any (i: i.virtual) interfaces;
+  hasBonds = cfg.bonds != { };
 
   interfaceOpts = { name, ... }: {
 
@@ -58,6 +59,15 @@ let
         '';
       };
 
+      mtu = mkOption {
+        default = null;
+        example = 9000;
+        type = types.nullOr types.int;
+        description = ''
+          MTU size for packets leaving the interface. Leave empty to use the default.
+        '';
+      };
+
       virtual = mkOption {
         default = false;
         type = types.bool;
@@ -219,6 +229,99 @@ in
 
     };
 
+    networking.bonds = mkOption {
+      default = { };
+      example = {
+        bond0 = {
+          interfaces = [ "eth0" "wlan0" ];
+          miimon = 100;
+          mode = "active-backup";
+        };
+        fatpipe.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ];
+      };
+      description = ''
+        This option allows you to define bond devices that aggregate multiple,
+        underlying networking interfaces together. The value of this option is
+        an attribute set. Each attribute specifies a bond, with the attribute
+        name specifying the name of the bond's network interface
+      '';
+
+      type = types.attrsOf types.optionSet;
+
+      options = {
+
+        interfaces = mkOption {
+          example = [ "enp4s0f0" "enp4s0f1" "wlan0" ];
+          type = types.listOf types.string;
+          description = "The interfaces to bond together";
+        };
+
+        miimon = mkOption {
+          default = null;
+          example = 100;
+          type = types.nullOr types.int;
+          description = ''
+            Miimon is the number of millisecond in between each round of polling
+            by the device driver for failed links. By default polling is not
+            enabled and the driver is trusted to properly detect and handle
+            failure scenarios.
+          '';
+        };
+
+        mode = mkOption {
+          default = null;
+          example = "active-backup";
+          type = types.nullOr types.string;
+          description = ''
+            The mode which the bond will be running. The default mode for
+            the bonding driver is balance-rr, optimizing for throughput.
+            More information about valid modes can be found at
+            https://www.kernel.org/doc/Documentation/networking/bonding.txt
+          '';
+        };
+
+      };
+    };
+
+    networking.vlans = mkOption {
+      default = { };
+      example = {
+        vlan0 = {
+          id = 3;
+          interface = "enp3s0";
+        };
+        vlan1 = {
+          id = 1;
+          interface = "wlan0";
+        };
+      };
+      description =
+        ''
+          This option allows you to define vlan devices that tag packets
+          on top of a physical interface. The value of this option is an
+          attribute set. Each attribute specifies a vlan, with the name
+          specifying the name of the vlan interface.
+        '';
+
+      type = types.attrsOf types.optionSet;
+
+      options = {
+
+        id = mkOption {
+          example = 1;
+          type = types.int;
+          description = "The vlan identifier";
+        };
+
+        interface = mkOption {
+          example = "enp4s0";
+          type = types.string;
+          description = "The interface the vlan will transmit packets through.";
+        };
+
+      };
+    };
+
     networking.useDHCP = mkOption {
       type = types.bool;
       default = true;
@@ -236,7 +339,15 @@ in
 
   config = {
 
-    boot.kernelModules = optional cfg.enableIPv6 "ipv6" ++ optional hasVirtuals "tun";
+    boot.kernelModules = [ ]
+      ++ optional cfg.enableIPv6 "ipv6"
+      ++ optional hasVirtuals "tun"
+      ++ optional hasBonds "bonding";
+
+    boot.extraModprobeConfig =
+      # This setting is intentional as it prevents default bond devices
+      # from being created.
+      optionalString hasBonds "options bonding max_bonds=0";
 
     environment.systemPackages =
       [ pkgs.host
@@ -342,6 +453,11 @@ in
                   echo "setting MAC address to ${i.macAddress}..."
                   ip link set "${i.name}" address "${i.macAddress}"
                 ''
+              + optionalString (i.mtu != null)
+                ''
+                  echo "setting MTU to ${toString i.mtu}..."
+                  ip link set "${i.name}" mtu "${toString i.mtu}"
+                ''
               + optionalString (i.ipAddress != null)
                 ''
                   cur=$(ip -4 -o a show dev "${i.name}" | awk '{print $4}')
@@ -397,6 +513,9 @@ in
             path = [ pkgs.bridge_utils pkgs.iproute ];
             script =
               ''
+                # Remove Dead Interfaces
+                ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
+
                 brctl addbr "${n}"
 
                 # Set bridge's hello time to 0 to avoid startup delays.
@@ -421,10 +540,73 @@ in
               '';
           };
 
+        createBondDevice = n: v:
+          let
+            deps = map (i: "sys-subsystem-net-devices-${i}.device") v.interfaces;
+          in
+          { description = "Bond Interface ${n}";
+            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            bindsTo = deps;
+            after = deps;
+            serviceConfig.Type = "oneshot";
+            serviceConfig.RemainAfterExit = true;
+            path = [ pkgs.ifenslave pkgs.iproute ];
+            script = ''
+              # Remove Dead Interfaces
+              ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
+
+              ip link add "${n}" type bond
+
+              # !!! There must be a better way to wait for the interface
+              while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done;
+
+              # Set the miimon and mode options
+              ${optionalString (v.miimon != null)
+                "echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"}
+              ${optionalString (v.mode != null)
+                "echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"}
+
+              # Bring up the bridge and enslave the specified interfaces
+              ip link set "${n}" up
+              ${flip concatMapStrings v.interfaces (i: ''
+                ifenslave "${n}" "${i}"
+              '')}
+            '';
+            postStop = ''
+              ip link set "${n}" down
+              ifenslave -d "${n}"
+              ip link delete "${n}"
+            '';
+          };
+
+        createVlanDevice = n: v:
+          let
+            deps = [ "sys-subsystem-net-devices-${v.interface}.device" ];
+          in
+          { description = "Vlan Interface ${n}";
+            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            bindsTo = deps;
+            after = deps;
+            serviceConfig.Type = "oneshot";
+            serviceConfig.RemainAfterExit = true;
+            path = [ pkgs.iproute ];
+            script = ''
+              # Remove Dead Interfaces
+              ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
+              ip link add link "${v.interface}" "${n}" type vlan id "${toString v.id}"
+              ip link set "${n}" up
+            '';
+            postStop = ''
+              ip link delete "${n}"
+            '';
+          };
+
       in listToAttrs (
            map configureInterface interfaces ++
            map createTunDevice (filter (i: i.virtual) interfaces))
          // mapAttrs createBridgeDevice cfg.bridges
+         // mapAttrs createBondDevice cfg.bonds
+         // mapAttrs createVlanDevice cfg.vlans
          // { "network-setup" = networkSetup; };
 
     # Set the host and domain names in the activation script.  Don't
diff --git a/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch b/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch
new file mode 100644
index 000000000000..4c17846b99df
--- /dev/null
+++ b/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch
@@ -0,0 +1,14 @@
+diff -ur clementine-1.2.1-a/CMakeLists.txt clementine-1.2.1-b/CMakeLists.txt
+--- clementine-1.2.1-a/CMakeLists.txt	2013-11-25 15:16:24.000000000 -0600
++++ clementine-1.2.1-b/CMakeLists.txt	2013-12-30 17:01:48.470011058 -0600
+@@ -158,6 +158,10 @@
+ include_directories(${TAGLIB_INCLUDE_DIRS})
+ include_directories(${QJSON_INCLUDE_DIRS})
+ include_directories(${GSTREAMER_INCLUDE_DIRS})
++include_directories(${GSTREAMER_APP_INCLUDE_DIRS})
++include_directories(${GSTREAMER_BASE_INCLUDE_DIRS})
++include_directories(${GSTREAMER_CDDA_INCLUDE_DIRS})
++include_directories(${GSTREAMER_TAG_INCLUDE_DIRS})
+ include_directories(${GLIB_INCLUDE_DIRS})
+ include_directories(${GLIBCONFIG_INCLUDE_DIRS})
+ include_directories(${LIBXML_INCLUDE_DIRS})
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
new file mode 100644
index 000000000000..cf554f83c8b0
--- /dev/null
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
+, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
+, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
+, sparsehash }:
+
+stdenv.mkDerivation {
+  name = "clementine-1.2.1";
+
+  src = fetchurl {
+    url = http://clementine-player.googlecode.com/files/clementine-1.2.1.tar.gz;
+    sha256 = "0kk5cjmb8nirx0im3c0z91af2k72zxi6lwzm6rb57qihya5nwmfv";
+  };
+
+  patches = [ ./clementine-1.2.1-include-paths.patch ];
+
+  buildInputs = [
+    boost
+    cmake
+    fftw
+    gettext
+    glew
+    gst_plugins_base
+    gstreamer
+    gvfs
+    libcdio
+    libgpod
+    liblastfm
+    libmtp
+    libplist
+    libspotify
+    pkgconfig
+    protobuf
+    qca2
+    qjson
+    qt4
+    sparsehash
+    sqlite
+    taglib
+    usbmuxd
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.clementine-player.org";
+    description = "A multiplatform music player";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 8cb64820295c..255c63a5d6d2 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     homepage = http://qmmp.ylsoftware.com/;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
     repositories.svn = http://qmmp.googlecode.com/svn/;
   };
 }
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 789ddcc10395..f8e717d60898 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -19,10 +19,12 @@ composableDerivation {
       builtins.getAttr source {
       "default" =
         # latest release
-        args.fetchurl {
-            url = ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2;
-            sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
-          };
+      args.fetchhg {
+            url = "https://vim.googlecode.com/hg/";
+            tag = "v7-4-131";
+            sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
+      };
+
       "vim-nox" =
           {
             # vim nox branch: client-server without X by uing sockets
@@ -53,14 +55,6 @@ composableDerivation {
 
     prePatch = "cd src";
     
-    patches =
-      [ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
-        ./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
-        ./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
-        ./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
-        ./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
-        ./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
-
     # most interpreters aren't tested yet.. (see python for example how to do it)
     flags = {
         ftNix = {
@@ -93,7 +87,17 @@ composableDerivation {
 
       // edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
       // edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
-      // edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
+      // edf {
+        name = "lua";
+        feat = "luainterp";
+        enable = {
+          nativeBuildInputs = [lua];
+          configureFlags = [
+            "--with-lua-prefix=${args.lua}"
+            "--enable-luainterp"
+          ];
+        };
+      }
       // edf { name = "cscope"; } #Include cscope interface.
       // edf { name = "workshop"; } #Include Sun Visual Workshop support.
       // edf { name = "netbeans"; } #Disable NetBeans integration support.
@@ -108,6 +112,7 @@ composableDerivation {
       ;
 
   cfg = {
+    luaSupport       = config.vim.lua or true;
     pythonSupport    = config.vim.python or true;
     rubySupport      = config.vim.ruby or true;
     nlsSupport       = config.vim.nls or false;
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index a2672b5c0d67..7dd4a0519ce4 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
+{ stdenv, fetchhg, ncurses, gettext, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  patchLevel = "23";
-  name       = "vim-7.4.${patchLevel}";
+  name = "vim-7.4.131";
  
-  src = fetchurl {
-    url    = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
-    sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
+  src = fetchhg {
+    url = "https://vim.googlecode.com/hg/";
+    tag = "v7-4-131";
+    sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
   };
 
   enableParallelBuilding = true;
@@ -44,16 +44,6 @@ stdenv.mkDerivation rec {
   #   sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
   # '';
 
-  prePatch = "cd src";
-  
-  patches =
-    [ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
-      ./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
-      ./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
-      ./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
-      ./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
-      ./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
-
   meta = with stdenv.lib; {
     description = "The most popular clone of the VI editor";
     homepage    = http://www.vim.org;
diff --git a/pkgs/applications/editors/vim/ft-nix-support.patch b/pkgs/applications/editors/vim/ft-nix-support.patch
index 4b5a742dac1c..0e73162d33ef 100644
--- a/pkgs/applications/editors/vim/ft-nix-support.patch
+++ b/pkgs/applications/editors/vim/ft-nix-support.patch
@@ -38,7 +38,8 @@ index 0000000..a2f9918
 +  finish
 +endif
 +
-+syn keyword	nixKeyword	let throw inherit import true false null with
++syn keyword	nixKeyword	let in rec assert inherit import true false null with ...
++syn keyword	nixBuiltin	import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation
 +syn keyword	nixConditional	if else then
 +syn keyword     nixBrace        ( ) { } =
 +syn keyword     nixBuiltin         __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists 
@@ -54,6 +55,7 @@ index 0000000..a2f9918
 +syn region nixString         start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam
 +
 +hi def link nixKeyword       Keyword
++hi def link nixBuiltin       Function
 +hi def link nixConditional   Conditional
 +hi def link nixBrace         Special
 +hi def link nixString        String
diff --git a/pkgs/applications/editors/vim/patches/7.4.001 b/pkgs/applications/editors/vim/patches/7.4.001
deleted file mode 100644
index 5788972a569d..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.001
+++ /dev/null
@@ -1,489 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.001
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.001
-Problem:    Character classes such as [a-z] to not react to 'ignorecase'.
-	    Breaks man page highlighting. (Mario Grgic)
-Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
-	    up logic handling character classes.  Add more tests.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.000/src/regexp_nfa.c	2013-08-01 18:27:51.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 11:49:50.000000000 +0200
-***************
-*** 29,34 ****
---- 29,37 ----
-  # define NFA_REGEXP_DEBUG_LOG	"nfa_regexp_debug.log"
-  #endif
-  
-+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
-+ #define NFA_ADD_NL		31
-+ 
-  enum
-  {
-      NFA_SPLIT = -1024,
-***************
-*** 183,188 ****
---- 186,198 ----
-      NFA_NLOWER,		/*	Match non-lowercase char */
-      NFA_UPPER,		/*	Match uppercase char */
-      NFA_NUPPER,		/*	Match non-uppercase char */
-+     NFA_LOWER_IC,	/*	Match [a-z] */
-+     NFA_NLOWER_IC,	/*	Match [^a-z] */
-+     NFA_UPPER_IC,	/*	Match [A-Z] */
-+     NFA_NUPPER_IC,	/*	Match [^A-Z] */
-+ 
-+     NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
-+     NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
-  
-      NFA_CURSOR,		/*	Match cursor pos */
-      NFA_LNUM,		/*	Match line number */
-***************
-*** 199,207 ****
-      NFA_MARK_LT,	/*	Match < mark */
-      NFA_VISUAL,		/*	Match Visual area */
-  
--     NFA_FIRST_NL = NFA_ANY + ADD_NL,
--     NFA_LAST_NL = NFA_NUPPER + ADD_NL,
-- 
-      /* Character classes [:alnum:] etc */
-      NFA_CLASS_ALNUM,
-      NFA_CLASS_ALPHA,
---- 209,214 ----
-***************
-*** 578,583 ****
---- 585,592 ----
-   * On failure, return 0 (=FAIL)
-   * Start points to the first char of the range, while end should point
-   * to the closing brace.
-+  * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
-+  * need to be interpreted as [a-zA-Z].
-   */
-      static int
-  nfa_recognize_char_class(start, end, extra_newl)
-***************
-*** 681,687 ****
-  	return FAIL;
-  
-      if (newl == TRUE)
-! 	extra_newl = ADD_NL;
-  
-      switch (config)
-      {
---- 690,696 ----
-  	return FAIL;
-  
-      if (newl == TRUE)
-! 	extra_newl = NFA_ADD_NL;
-  
-      switch (config)
-      {
-***************
-*** 710,722 ****
-  	case CLASS_not | CLASS_az | CLASS_AZ:
-  	    return extra_newl + NFA_NALPHA;
-  	case CLASS_az:
-! 	   return extra_newl + NFA_LOWER;
-  	case CLASS_not | CLASS_az:
-! 	    return extra_newl + NFA_NLOWER;
-  	case CLASS_AZ:
-! 	    return extra_newl + NFA_UPPER;
-  	case CLASS_not | CLASS_AZ:
-! 	    return extra_newl + NFA_NUPPER;
-      }
-      return FAIL;
-  }
---- 719,731 ----
-  	case CLASS_not | CLASS_az | CLASS_AZ:
-  	    return extra_newl + NFA_NALPHA;
-  	case CLASS_az:
-! 	   return extra_newl + NFA_LOWER_IC;
-  	case CLASS_not | CLASS_az:
-! 	    return extra_newl + NFA_NLOWER_IC;
-  	case CLASS_AZ:
-! 	    return extra_newl + NFA_UPPER_IC;
-  	case CLASS_not | CLASS_AZ:
-! 	    return extra_newl + NFA_NUPPER_IC;
-      }
-      return FAIL;
-  }
-***************
-*** 914,920 ****
-  		break;
-  	    }
-  
-! 	    extra = ADD_NL;
-  
-  	    /* "\_[" is collection plus newline */
-  	    if (c == '[')
---- 923,929 ----
-  		break;
-  	    }
-  
-! 	    extra = NFA_ADD_NL;
-  
-  	    /* "\_[" is collection plus newline */
-  	    if (c == '[')
-***************
-*** 970,976 ****
-  	    }
-  #endif
-  	    EMIT(nfa_classcodes[p - classchars]);
-! 	    if (extra == ADD_NL)
-  	    {
-  		EMIT(NFA_NEWL);
-  		EMIT(NFA_OR);
---- 979,985 ----
-  	    }
-  #endif
-  	    EMIT(nfa_classcodes[p - classchars]);
-! 	    if (extra == NFA_ADD_NL)
-  	    {
-  		EMIT(NFA_NEWL);
-  		EMIT(NFA_OR);
-***************
-*** 1240,1260 ****
-  	    {
-  		/*
-  		 * Try to reverse engineer character classes. For example,
-! 		 * recognize that [0-9] stands for  \d and [A-Za-z_] with \h,
-  		 * and perform the necessary substitutions in the NFA.
-  		 */
-  		result = nfa_recognize_char_class(regparse, endp,
-! 							    extra == ADD_NL);
-  		if (result != FAIL)
-  		{
-! 		    if (result >= NFA_DIGIT && result <= NFA_NUPPER)
-! 			EMIT(result);
-! 		    else	/* must be char class + newline */
-  		    {
-! 			EMIT(result - ADD_NL);
-  			EMIT(NFA_NEWL);
-  			EMIT(NFA_OR);
-  		    }
-  		    regparse = endp;
-  		    mb_ptr_adv(regparse);
-  		    return OK;
---- 1249,1269 ----
-  	    {
-  		/*
-  		 * Try to reverse engineer character classes. For example,
-! 		 * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
-  		 * and perform the necessary substitutions in the NFA.
-  		 */
-  		result = nfa_recognize_char_class(regparse, endp,
-! 							 extra == NFA_ADD_NL);
-  		if (result != FAIL)
-  		{
-! 		    if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
-  		    {
-! 			EMIT(result - NFA_ADD_NL);
-  			EMIT(NFA_NEWL);
-  			EMIT(NFA_OR);
-  		    }
-+ 		    else
-+ 			EMIT(result);
-  		    regparse = endp;
-  		    mb_ptr_adv(regparse);
-  		    return OK;
-***************
-*** 1504,1510 ****
-  			     * collection, add an OR below. But not for negated
-  			     * range. */
-  			    if (!negated)
-! 				extra = ADD_NL;
-  			}
-  			else
-  			{
---- 1513,1519 ----
-  			     * collection, add an OR below. But not for negated
-  			     * range. */
-  			    if (!negated)
-! 				extra = NFA_ADD_NL;
-  			}
-  			else
-  			{
-***************
-*** 1537,1543 ****
-  		    EMIT(NFA_END_COLL);
-  
-  		/* \_[] also matches \n but it's not negated */
-! 		if (extra == ADD_NL)
-  		{
-  		    EMIT(reg_string ? NL : NFA_NEWL);
-  		    EMIT(NFA_OR);
---- 1546,1552 ----
-  		    EMIT(NFA_END_COLL);
-  
-  		/* \_[] also matches \n but it's not negated */
-! 		if (extra == NFA_ADD_NL)
-  		{
-  		    EMIT(reg_string ? NL : NFA_NEWL);
-  		    EMIT(NFA_OR);
-***************
-*** 2011,2017 ****
-      if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
-      {
-  	addnl = TRUE;
-! 	c -= ADD_NL;
-      }
-  
-      STRCPY(code, "");
---- 2020,2026 ----
-      if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
-      {
-  	addnl = TRUE;
-! 	c -= NFA_ADD_NL;
-      }
-  
-      STRCPY(code, "");
-***************
-*** 2217,2222 ****
---- 2226,2235 ----
-  	case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
-  	case NFA_UPPER:	STRCPY(code, "NFA_UPPER"); break;
-  	case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
-+ 	case NFA_LOWER_IC:  STRCPY(code, "NFA_LOWER_IC"); break;
-+ 	case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
-+ 	case NFA_UPPER_IC:  STRCPY(code, "NFA_UPPER_IC"); break;
-+ 	case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
-  
-  	default:
-  	    STRCPY(code, "CHAR(x)");
-***************
-*** 2687,2692 ****
---- 2700,2709 ----
-  	    case NFA_NLOWER:
-  	    case NFA_UPPER:
-  	    case NFA_NUPPER:
-+ 	    case NFA_LOWER_IC:
-+ 	    case NFA_NLOWER_IC:
-+ 	    case NFA_UPPER_IC:
-+ 	    case NFA_NUPPER_IC:
-  		/* possibly non-ascii */
-  #ifdef FEAT_MBYTE
-  		if (has_mbyte)
-***************
-*** 3841,3846 ****
---- 3858,3867 ----
-  	    case NFA_NLOWER:
-  	    case NFA_UPPER:
-  	    case NFA_NUPPER:
-+ 	    case NFA_LOWER_IC:
-+ 	    case NFA_NLOWER_IC:
-+ 	    case NFA_UPPER_IC:
-+ 	    case NFA_NUPPER_IC:
-  	    case NFA_START_COLL:
-  	    case NFA_START_NEG_COLL:
-  	    case NFA_NEWL:
-***************
-*** 5872,5877 ****
---- 5893,5920 ----
-  		ADD_STATE_IF_MATCH(t->state);
-  		break;
-  
-+ 	    case NFA_LOWER_IC:	/* [a-z] */
-+ 		result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_NLOWER_IC:	/* [^a-z] */
-+ 		result = curc != NUL
-+ 			  && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_UPPER_IC:	/* [A-Z] */
-+ 		result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-+ 	    case NFA_NUPPER_IC:	/* ^[A-Z] */
-+ 		result = curc != NUL
-+ 			  && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
-+ 		ADD_STATE_IF_MATCH(t->state);
-+ 		break;
-+ 
-  	    case NFA_BACKREF1:
-  	    case NFA_BACKREF2:
-  	    case NFA_BACKREF3:
-*** ../vim-7.4.000/src/testdir/test64.in	2013-08-01 17:45:33.000000000 +0200
---- src/testdir/test64.in	2013-08-14 11:50:11.000000000 +0200
-***************
-*** 289,303 ****
-  :call add(tl, [2, '.a\%$', " a\n "])
-  :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
-  :"
-! :"""" Test recognition of some character classes
-! :call add(tl, [2, '[0-9]', '8', '8'])
-! :call add(tl, [2, '[^0-9]', '8'])
-! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
-! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
-! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
-! :call add(tl, [2, '[a-z]', 'a', 'a'])
-! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
-! :call add(tl, [2, '[A-Z]', 'a'])
-  :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
-  :"
-  :"""" Tests for \z features
---- 289,317 ----
-  :call add(tl, [2, '.a\%$', " a\n "])
-  :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
-  :"
-! :"""" Test recognition of character classes
-! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
-! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
-! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
-! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
-! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
-! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
-! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
-! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
-! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
-! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
-! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
-! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
-! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
-! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
-! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
-! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
-! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
-! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
-! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
-! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
-! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
-! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
-  :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
-  :"
-  :"""" Tests for \z features
-*** ../vim-7.4.000/src/testdir/test64.ok	2013-08-01 18:28:56.000000000 +0200
---- src/testdir/test64.ok	2013-08-14 11:50:37.000000000 +0200
-***************
-*** 650,679 ****
-  OK 0 - .a\%$
-  OK 1 - .a\%$
-  OK 2 - .a\%$
-! OK 0 - [0-9]
-! OK 1 - [0-9]
-! OK 2 - [0-9]
-! OK 0 - [^0-9]
-! OK 1 - [^0-9]
-! OK 2 - [^0-9]
-! OK 0 - [0-9a-fA-F]*
-! OK 1 - [0-9a-fA-F]*
-! OK 2 - [0-9a-fA-F]*
-  OK 0 - [^0-9A-Fa-f]\+
-  OK 1 - [^0-9A-Fa-f]\+
-  OK 2 - [^0-9A-Fa-f]\+
-  OK 0 - [a-z_A-Z0-9]\+
-  OK 1 - [a-z_A-Z0-9]\+
-  OK 2 - [a-z_A-Z0-9]\+
-! OK 0 - [a-z]
-! OK 1 - [a-z]
-! OK 2 - [a-z]
-! OK 0 - [a-zA-Z]
-! OK 1 - [a-zA-Z]
-! OK 2 - [a-zA-Z]
-! OK 0 - [A-Z]
-! OK 1 - [A-Z]
-! OK 2 - [A-Z]
-  OK 0 - \C[^A-Z]\+
-  OK 1 - \C[^A-Z]\+
-  OK 2 - \C[^A-Z]\+
---- 650,721 ----
-  OK 0 - .a\%$
-  OK 1 - .a\%$
-  OK 2 - .a\%$
-! OK 0 - [0-7]\+
-! OK 1 - [0-7]\+
-! OK 2 - [0-7]\+
-! OK 0 - [^0-7]\+
-! OK 1 - [^0-7]\+
-! OK 2 - [^0-7]\+
-! OK 0 - [0-9]\+
-! OK 1 - [0-9]\+
-! OK 2 - [0-9]\+
-! OK 0 - [^0-9]\+
-! OK 1 - [^0-9]\+
-! OK 2 - [^0-9]\+
-! OK 0 - [0-9a-fA-F]\+
-! OK 1 - [0-9a-fA-F]\+
-! OK 2 - [0-9a-fA-F]\+
-  OK 0 - [^0-9A-Fa-f]\+
-  OK 1 - [^0-9A-Fa-f]\+
-  OK 2 - [^0-9A-Fa-f]\+
-  OK 0 - [a-z_A-Z0-9]\+
-  OK 1 - [a-z_A-Z0-9]\+
-  OK 2 - [a-z_A-Z0-9]\+
-! OK 0 - [^a-z_A-Z0-9]\+
-! OK 1 - [^a-z_A-Z0-9]\+
-! OK 2 - [^a-z_A-Z0-9]\+
-! OK 0 - [a-z_A-Z]\+
-! OK 1 - [a-z_A-Z]\+
-! OK 2 - [a-z_A-Z]\+
-! OK 0 - [^a-z_A-Z]\+
-! OK 1 - [^a-z_A-Z]\+
-! OK 2 - [^a-z_A-Z]\+
-! OK 0 - [a-z]\+
-! OK 1 - [a-z]\+
-! OK 2 - [a-z]\+
-! OK 0 - [a-z]\+
-! OK 1 - [a-z]\+
-! OK 2 - [a-z]\+
-! OK 0 - [^a-z]\+
-! OK 1 - [^a-z]\+
-! OK 2 - [^a-z]\+
-! OK 0 - [^a-z]\+
-! OK 1 - [^a-z]\+
-! OK 2 - [^a-z]\+
-! OK 0 - [a-zA-Z]\+
-! OK 1 - [a-zA-Z]\+
-! OK 2 - [a-zA-Z]\+
-! OK 0 - [^a-zA-Z]\+
-! OK 1 - [^a-zA-Z]\+
-! OK 2 - [^a-zA-Z]\+
-! OK 0 - [A-Z]\+
-! OK 1 - [A-Z]\+
-! OK 2 - [A-Z]\+
-! OK 0 - [^A-Z]\+
-! OK 1 - [^A-Z]\+
-! OK 2 - [^A-Z]\+
-! OK 0 - [a-z]\+\c
-! OK 1 - [a-z]\+\c
-! OK 2 - [a-z]\+\c
-! OK 0 - [A-Z]\+\c
-! OK 1 - [A-Z]\+\c
-! OK 2 - [A-Z]\+\c
-! OK 0 - \c[^a-z]\+
-! OK 1 - \c[^a-z]\+
-! OK 2 - \c[^a-z]\+
-! OK 0 - \c[^A-Z]\+
-! OK 1 - \c[^A-Z]\+
-! OK 2 - \c[^A-Z]\+
-  OK 0 - \C[^A-Z]\+
-  OK 1 - \C[^A-Z]\+
-  OK 2 - \C[^A-Z]\+
-*** ../vim-7.4.000/src/version.c	2013-08-10 13:29:20.000000000 +0200
---- src/version.c	2013-08-14 11:54:57.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     1,
-  /**/
-
--- 
-How many light bulbs does it take to change a person?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.002 b/pkgs/applications/editors/vim/patches/7.4.002
deleted file mode 100644
index d92f4de6c2d7..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.002
+++ /dev/null
@@ -1,77 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.002
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4b.002
-Problem:    Pattern with two alternative look-behind matches does not match.
-	    (Amadeus Demarzi)
-Solution:   When comparing PIMs also compare their state ID to see if they are
-	    different.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.001/src/regexp_nfa.c	2013-08-14 12:05:54.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 13:12:09.000000000 +0200
-***************
-*** 3782,3787 ****
---- 3782,3790 ----
-      if (two_unused)
-  	/* one is used and two is not: not equal */
-  	return FALSE;
-+     /* compare the state id */
-+     if (one->state->id != two->state->id)
-+ 	return FALSE;
-      /* compare the position */
-      if (REG_MULTI)
-  	return one->end.pos.lnum == two->end.pos.lnum
-*** ../vim-7.4.001/src/testdir/test64.in	2013-08-14 12:05:54.000000000 +0200
---- src/testdir/test64.in	2013-08-14 12:58:38.000000000 +0200
-***************
-*** 421,426 ****
---- 421,429 ----
-  :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
-  :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
-  :"
-+ :" complicated look-behind match
-+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
-+ :"
-  :""""" \@>
-  :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
-  :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
-*** ../vim-7.4.001/src/testdir/test64.ok	2013-08-14 12:05:54.000000000 +0200
---- src/testdir/test64.ok	2013-08-14 13:14:09.000000000 +0200
-***************
-*** 974,979 ****
---- 974,982 ----
-  OK 0 - \(foo\)\@<=.*
-  OK 1 - \(foo\)\@<=.*
-  OK 2 - \(foo\)\@<=.*
-+ OK 0 - \(r\@<=\|\w\@<!\)\/
-+ OK 1 - \(r\@<=\|\w\@<!\)\/
-+ OK 2 - \(r\@<=\|\w\@<!\)\/
-  OK 0 - \(a*\)\@>a
-  OK 1 - \(a*\)\@>a
-  OK 2 - \(a*\)\@>a
-*** ../vim-7.4.001/src/version.c	2013-08-14 12:05:54.000000000 +0200
---- src/version.c	2013-08-14 13:13:45.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     2,
-  /**/
-
--- 
-From "know your smileys":
- :-)-O	Smiling doctor with stethoscope
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.003 b/pkgs/applications/editors/vim/patches/7.4.003
deleted file mode 100644
index 9aad3c8c8f1c..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.003
+++ /dev/null
@@ -1,100 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.003
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.003
-Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
-Solution:   Refresh stale pointer. (James McCoy)
-Files:	    src/regexp_nfa.c
-
-
-*** ../vim-7.4.002/src/regexp_nfa.c	2013-08-14 13:31:03.000000000 +0200
---- src/regexp_nfa.c	2013-08-14 14:02:06.000000000 +0200
-***************
-*** 4120,4126 ****
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZOPEN)
-  	    {
-  		subidx = state->c - NFA_ZOPEN;
-  		sub = &subs->synt;
---- 4120,4126 ----
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
-  	    {
-  		subidx = state->c - NFA_ZOPEN;
-  		sub = &subs->synt;
-***************
-*** 4189,4194 ****
---- 4189,4201 ----
-  	    }
-  
-  	    subs = addstate(l, state->out, subs, pim, off);
-+ 	    /* "subs" may have changed, need to set "sub" again */
-+ #ifdef FEAT_SYN_HL
-+ 	    if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
-+ 		sub = &subs->synt;
-+ 	    else
-+ #endif
-+ 		sub = &subs->norm;
-  
-  	    if (save_in_use == -1)
-  	    {
-***************
-*** 4237,4243 ****
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZCLOSE)
-  	    {
-  		subidx = state->c - NFA_ZCLOSE;
-  		sub = &subs->synt;
---- 4244,4250 ----
-  		sub = &subs->norm;
-  	    }
-  #ifdef FEAT_SYN_HL
-! 	    else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
-  	    {
-  		subidx = state->c - NFA_ZCLOSE;
-  		sub = &subs->synt;
-***************
-*** 4281,4286 ****
---- 4288,4300 ----
-  	    }
-  
-  	    subs = addstate(l, state->out, subs, pim, off);
-+ 	    /* "subs" may have changed, need to set "sub" again */
-+ #ifdef FEAT_SYN_HL
-+ 	    if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
-+ 		sub = &subs->synt;
-+ 	    else
-+ #endif
-+ 		sub = &subs->norm;
-  
-  	    if (REG_MULTI)
-  		sub->list.multi[subidx].end = save_lpos;
-*** ../vim-7.4.002/src/version.c	2013-08-14 13:31:03.000000000 +0200
---- src/version.c	2013-08-14 14:03:51.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     3,
-  /**/
-
--- 
-Where do you want to crash today?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.004 b/pkgs/applications/editors/vim/patches/7.4.004
deleted file mode 100644
index f629d673fb8a..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.004
+++ /dev/null
@@ -1,232 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.004
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.004
-Problem:    When closing a window fails ":bwipe" may hang.
-Solution:   Let win_close() return FAIL and break out of the loop.
-Files:	    src/window.c, src/proto/window.pro, src/buffer.c
-
-
-*** ../vim-7.4.003/src/window.c	2013-07-24 17:38:29.000000000 +0200
---- src/window.c	2013-08-14 16:52:44.000000000 +0200
-***************
-*** 2172,2179 ****
-   * If "free_buf" is TRUE related buffer may be unloaded.
-   *
-   * Called by :quit, :close, :xit, :wq and findtag().
-   */
-!     void
-  win_close(win, free_buf)
-      win_T	*win;
-      int		free_buf;
---- 2172,2180 ----
-   * If "free_buf" is TRUE related buffer may be unloaded.
-   *
-   * Called by :quit, :close, :xit, :wq and findtag().
-+  * Returns FAIL when the window was not closed.
-   */
-!     int
-  win_close(win, free_buf)
-      win_T	*win;
-      int		free_buf;
-***************
-*** 2190,2210 ****
-      if (last_window())
-      {
-  	EMSG(_("E444: Cannot close last window"));
-! 	return;
-      }
-  
-  #ifdef FEAT_AUTOCMD
-      if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
-! 	return; /* window is already being closed */
-      if (win == aucmd_win)
-      {
-  	EMSG(_("E813: Cannot close autocmd window"));
-! 	return;
-      }
-      if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
-      {
-  	EMSG(_("E814: Cannot close window, only autocmd window would remain"));
-! 	return;
-      }
-  #endif
-  
---- 2191,2211 ----
-      if (last_window())
-      {
-  	EMSG(_("E444: Cannot close last window"));
-! 	return FAIL;
-      }
-  
-  #ifdef FEAT_AUTOCMD
-      if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
-! 	return FAIL; /* window is already being closed */
-      if (win == aucmd_win)
-      {
-  	EMSG(_("E813: Cannot close autocmd window"));
-! 	return FAIL;
-      }
-      if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
-      {
-  	EMSG(_("E814: Cannot close window, only autocmd window would remain"));
-! 	return FAIL;
-      }
-  #endif
-  
-***************
-*** 2212,2218 ****
-       * and then close the window and the tab page to avoid that curwin and
-       * curtab are invalid while we are freeing memory. */
-      if (close_last_window_tabpage(win, free_buf, prev_curtab))
-!       return;
-  
-      /* When closing the help window, try restoring a snapshot after closing
-       * the window.  Otherwise clear the snapshot, it's now invalid. */
---- 2213,2219 ----
-       * and then close the window and the tab page to avoid that curwin and
-       * curtab are invalid while we are freeing memory. */
-      if (close_last_window_tabpage(win, free_buf, prev_curtab))
-!       return FAIL;
-  
-      /* When closing the help window, try restoring a snapshot after closing
-       * the window.  Otherwise clear the snapshot, it's now invalid. */
-***************
-*** 2240,2261 ****
-  	    win->w_closing = TRUE;
-  	    apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-  	    if (!win_valid(win))
-! 		return;
-  	    win->w_closing = FALSE;
-  	    if (last_window())
-! 		return;
-  	}
-  	win->w_closing = TRUE;
-  	apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-  	if (!win_valid(win))
-! 	    return;
-  	win->w_closing = FALSE;
-  	if (last_window())
-! 	    return;
-  # ifdef FEAT_EVAL
-  	/* autocmds may abort script processing */
-  	if (aborting())
-! 	    return;
-  # endif
-      }
-  #endif
---- 2241,2262 ----
-  	    win->w_closing = TRUE;
-  	    apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-  	    if (!win_valid(win))
-! 		return FAIL;
-  	    win->w_closing = FALSE;
-  	    if (last_window())
-! 		return FAIL;
-  	}
-  	win->w_closing = TRUE;
-  	apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-  	if (!win_valid(win))
-! 	    return FAIL;
-  	win->w_closing = FALSE;
-  	if (last_window())
-! 	    return FAIL;
-  # ifdef FEAT_EVAL
-  	/* autocmds may abort script processing */
-  	if (aborting())
-! 	    return FAIL;
-  # endif
-      }
-  #endif
-***************
-*** 2303,2309 ****
-       * other window or moved to another tab page. */
-      else if (!win_valid(win) || last_window() || curtab != prev_curtab
-  	    || close_last_window_tabpage(win, free_buf, prev_curtab))
-! 	return;
-  
-      /* Free the memory used for the window and get the window that received
-       * the screen space. */
---- 2304,2310 ----
-       * other window or moved to another tab page. */
-      else if (!win_valid(win) || last_window() || curtab != prev_curtab
-  	    || close_last_window_tabpage(win, free_buf, prev_curtab))
-! 	return FAIL;
-  
-      /* Free the memory used for the window and get the window that received
-       * the screen space. */
-***************
-*** 2383,2388 ****
---- 2384,2390 ----
-  #endif
-  
-      redraw_all_later(NOT_VALID);
-+     return OK;
-  }
-  
-  /*
-*** ../vim-7.4.003/src/proto/window.pro	2013-08-10 13:37:30.000000000 +0200
---- src/proto/window.pro	2013-08-14 16:52:50.000000000 +0200
-***************
-*** 9,15 ****
-  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-  void close_windows __ARGS((buf_T *buf, int keep_curwin));
-  int one_window __ARGS((void));
-! void win_close __ARGS((win_T *win, int free_buf));
-  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-  void win_free_all __ARGS((void));
-  win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
---- 9,15 ----
-  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-  void close_windows __ARGS((buf_T *buf, int keep_curwin));
-  int one_window __ARGS((void));
-! int win_close __ARGS((win_T *win, int free_buf));
-  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-  void win_free_all __ARGS((void));
-  win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
-*** ../vim-7.4.003/src/buffer.c	2013-07-17 16:39:00.000000000 +0200
---- src/buffer.c	2013-08-14 16:54:34.000000000 +0200
-***************
-*** 1186,1192 ****
-  		   && !(curwin->w_closing || curwin->w_buffer->b_closing)
-  # endif
-  		   && (firstwin != lastwin || first_tabpage->tp_next != NULL))
-! 	    win_close(curwin, FALSE);
-  #endif
-  
-  	/*
---- 1186,1195 ----
-  		   && !(curwin->w_closing || curwin->w_buffer->b_closing)
-  # endif
-  		   && (firstwin != lastwin || first_tabpage->tp_next != NULL))
-! 	{
-! 	    if (win_close(curwin, FALSE) == FAIL)
-! 		break;
-! 	}
-  #endif
-  
-  	/*
-*** ../vim-7.4.003/src/version.c	2013-08-14 14:18:37.000000000 +0200
---- src/version.c	2013-08-14 17:10:23.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     4,
-  /**/
-
--- 
-From "know your smileys":
- *<|:-)	Santa Claus (Ho Ho Ho)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.005 b/pkgs/applications/editors/vim/patches/7.4.005
deleted file mode 100644
index f85d1f0e3c81..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.005
+++ /dev/null
@@ -1,48 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.005
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.005
-Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
-	    (Dimitar Dimitrov)
-Solution:   Reset coladd when finding a match.
-Files:	    src/search.c
-
-
-*** ../vim-7.4.004/src/search.c	2013-07-17 19:20:47.000000000 +0200
---- src/search.c	2013-08-14 17:32:38.000000000 +0200
-***************
-*** 1760,1765 ****
---- 1760,1768 ----
-  #endif
-  
-      pos = curwin->w_cursor;
-+ #ifdef FEAT_VIRTUALEDIT
-+     pos.coladd = 0;
-+ #endif
-      linep = ml_get(pos.lnum);
-  
-      cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
-*** ../vim-7.4.004/src/version.c	2013-08-14 17:11:14.000000000 +0200
---- src/version.c	2013-08-14 17:38:05.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     5,
-  /**/
-
--- 
-You can't have everything.  Where would you put it?
-		-- Steven Wright
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.006 b/pkgs/applications/editors/vim/patches/7.4.006
deleted file mode 100644
index 55d3802c4d14..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.006
+++ /dev/null
@@ -1,66 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.006
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.006
-Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
-Solution:   Remove the trailing slash. (lcd)
-Files:	    src/eval.c
-
-
-*** ../vim-7.4.005/src/eval.c	2013-07-05 18:23:42.000000000 +0200
---- src/eval.c	2013-08-22 12:00:28.000000000 +0200
-***************
-*** 14292,14297 ****
---- 14292,14301 ----
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-+     if (*gettail(dir) == NUL)
-+ 	/* remove trailing slashes */
-+ 	*gettail_sep(dir) = NUL;
-+ 
-      if (argvars[1].v_type != VAR_UNKNOWN)
-      {
-  	if (argvars[2].v_type != VAR_UNKNOWN)
-***************
-*** 14299,14305 ****
-  	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-  	    mkdir_recurse(dir, prot);
-      }
-!     rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
-  }
-  #endif
-  
---- 14303,14309 ----
-  	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-  	    mkdir_recurse(dir, prot);
-      }
-!     rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-  }
-  #endif
-  
-*** ../vim-7.4.005/src/version.c	2013-08-14 17:45:25.000000000 +0200
---- src/version.c	2013-08-22 12:02:46.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     6,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-97. Your mother tells you to remember something, and you look for
-    a File/Save command.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.007 b/pkgs/applications/editors/vim/patches/7.4.007
deleted file mode 100644
index 5495ffbf9797..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.007
+++ /dev/null
@@ -1,95 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.007
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.007
-Problem:    Creating a preview window on startup leaves the screen layout in a
-	    messed up state. (Marius Gedminas)
-Solution:   Don't change firstwin. (Christian Brabandt)
-Files:	    src/main.c
-
-
-*** ../vim-7.4.006/src/main.c	2013-07-03 12:36:49.000000000 +0200
---- src/main.c	2013-08-22 14:02:39.000000000 +0200
-***************
-*** 2727,2732 ****
---- 2727,2733 ----
-      int		arg_idx;		/* index in argument list */
-      int		i;
-      int		advance = TRUE;
-+     win_T	*win;
-  
-  # ifdef FEAT_AUTOCMD
-      /*
-***************
-*** 2816,2839 ****
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_enter;
-  # endif
-  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-!     /*
-!      * Avoid making a preview window the current window.
-!      */
-!     if (firstwin->w_p_pvw)
-      {
-!        win_T   *win;
-! 
-!        for (win = firstwin; win != NULL; win = win->w_next)
-!            if (!win->w_p_pvw)
-!            {
-!                firstwin = win;
-!                break;
-!            }
-      }
-  #endif
-!     /* make the first window the current window */
-!     win_enter(firstwin, FALSE);
-  
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_leave;
---- 2817,2838 ----
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_enter;
-  # endif
-+ 
-+     /* make the first window the current window */
-+     win = firstwin;
-  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-!     /* Avoid making a preview window the current window. */
-!     while (win->w_p_pvw)
-      {
-! 	win = win->w_next;
-! 	if (win == NULL)
-! 	{
-! 	    win = firstwin;
-! 	    break;
-! 	}
-      }
-  #endif
-!     win_enter(win, FALSE);
-  
-  # ifdef FEAT_AUTOCMD
-      --autocmd_no_leave;
-*** ../vim-7.4.006/src/version.c	2013-08-22 12:06:50.000000000 +0200
---- src/version.c	2013-08-22 14:04:11.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     7,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-105. When someone asks you for your address, you tell them your URL.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.008 b/pkgs/applications/editors/vim/patches/7.4.008
deleted file mode 100644
index 6abd493f9145..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.008
+++ /dev/null
@@ -1,71 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.008
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.008
-Problem:    New regexp engine can't be interrupted.
-Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
-Files:	    src/regexp_nfa.c, src/regexp.c
-
-
-*** ../vim-7.4.007/src/regexp_nfa.c	2013-08-14 14:18:37.000000000 +0200
---- src/regexp_nfa.c	2013-08-25 16:55:56.000000000 +0200
-***************
-*** 5089,5094 ****
---- 5089,5100 ----
-  	return FALSE;
-      }
-  #endif
-+     /* Some patterns may take a long time to match, especially when using
-+      * recursive_regmatch(). Allow interrupting them with CTRL-C. */
-+     fast_breakcheck();
-+     if (got_int)
-+ 	return FALSE;
-+ 
-      nfa_match = FALSE;
-  
-      /* Allocate memory for the lists of nodes. */
-*** ../vim-7.4.007/src/regexp.c	2013-08-01 18:31:30.000000000 +0200
---- src/regexp.c	2013-08-25 16:57:35.000000000 +0200
-***************
-*** 4311,4318 ****
-     */
-    for (;;)
-    {
-!     /* Some patterns may cause a long time to match, even though they are not
-!      * illegal.  E.g., "\([a-z]\+\)\+Q".  Allow breaking them with CTRL-C. */
-      fast_breakcheck();
-  
-  #ifdef DEBUG
---- 4311,4318 ----
-     */
-    for (;;)
-    {
-!     /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
-!      * Allow interrupting them with CTRL-C. */
-      fast_breakcheck();
-  
-  #ifdef DEBUG
-*** ../vim-7.4.007/src/version.c	2013-08-22 14:14:23.000000000 +0200
---- src/version.c	2013-08-25 16:57:51.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     8,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-124. You begin conversations with, "Who is your internet service provider?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.009 b/pkgs/applications/editors/vim/patches/7.4.009
deleted file mode 100644
index f5e5fa609126..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.009
+++ /dev/null
@@ -1,64 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.009
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.009
-Problem:    When a file was not decrypted (yet), writing it may destroy the
-	    contents.
-Solution:   Mark the file as readonly until decryption was done. (Christian
-	    Brabandt)
-Files:	    src/fileio.c
-
-
-*** ../vim-7.4.008/src/fileio.c	2013-08-05 21:58:03.000000000 +0200
---- src/fileio.c	2013-08-25 17:45:27.000000000 +0200
-***************
-*** 2926,2934 ****
---- 2926,2939 ----
-      int		*did_ask;	/* flag: whether already asked for key */
-  {
-      int method = crypt_method_from_magic((char *)ptr, *sizep);
-+     int b_p_ro = curbuf->b_p_ro;
-  
-      if (method >= 0)
-      {
-+ 	/* Mark the buffer as read-only until the decryption has taken place.
-+ 	 * Avoids accidentally overwriting the file with garbage. */
-+ 	curbuf->b_p_ro = TRUE;
-+ 
-  	set_crypt_method(curbuf, method);
-  	if (method > 0)
-  	    (void)blowfish_self_test();
-***************
-*** 2977,2982 ****
---- 2982,2989 ----
-  	    *sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
-  	    mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
-  							      (size_t)*sizep);
-+ 	    /* Restore the read-only flag. */
-+ 	    curbuf->b_p_ro = b_p_ro;
-  	}
-      }
-      /* When starting to edit a new file which does not have encryption, clear
-*** ../vim-7.4.008/src/version.c	2013-08-25 17:01:36.000000000 +0200
---- src/version.c	2013-08-25 17:44:30.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     9,
-  /**/
-
--- 
-I have a watch cat! Just break in and she'll watch.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.010 b/pkgs/applications/editors/vim/patches/7.4.010
deleted file mode 100644
index fee6ba5b4a84..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.010
+++ /dev/null
@@ -1,79 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.010
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.010 (after 7.4.006)
-Problem:    Crash with invalid argument to mkdir().
-Solution:   Check for empty string. (lcd47)
-Files:	    src/eval.c
-
-
-*** ../vim-7.4.009/src/eval.c	2013-08-22 12:06:50.000000000 +0200
---- src/eval.c	2013-08-30 15:47:47.000000000 +0200
-***************
-*** 14292,14309 ****
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-!     if (*gettail(dir) == NUL)
-! 	/* remove trailing slashes */
-! 	*gettail_sep(dir) = NUL;
-! 
-!     if (argvars[1].v_type != VAR_UNKNOWN)
-      {
-! 	if (argvars[2].v_type != VAR_UNKNOWN)
-! 	    prot = get_tv_number_chk(&argvars[2], NULL);
-! 	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-! 	    mkdir_recurse(dir, prot);
-      }
--     rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-  }
-  #endif
-  
---- 14292,14314 ----
-  	return;
-  
-      dir = get_tv_string_buf(&argvars[0], buf);
-!     if (*dir == NUL)
-! 	rettv->vval.v_number = FAIL;
-!     else
-      {
-! 	if (*gettail(dir) == NUL)
-! 	    /* remove trailing slashes */
-! 	    *gettail_sep(dir) = NUL;
-! 
-! 	if (argvars[1].v_type != VAR_UNKNOWN)
-! 	{
-! 	    if (argvars[2].v_type != VAR_UNKNOWN)
-! 		prot = get_tv_number_chk(&argvars[2], NULL);
-! 	    if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
-! 		mkdir_recurse(dir, prot);
-! 	}
-! 	rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
-      }
-  }
-  #endif
-  
-*** ../vim-7.4.009/src/version.c	2013-08-25 17:46:05.000000000 +0200
---- src/version.c	2013-08-30 15:48:37.000000000 +0200
-***************
-*** 729,730 ****
---- 729,732 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     10,
-  /**/
-
--- 
-I wish there was a knob on the TV to turn up the intelligence.
-There's a knob called "brightness", but it doesn't seem to work. 
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.011 b/pkgs/applications/editors/vim/patches/7.4.011
deleted file mode 100644
index efff82c5eba9..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.011
+++ /dev/null
@@ -1,100 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.011
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.011
-Problem:    Cannot find out if "acl" and "xpm" features are supported.
-Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
-Files:	    src/eval.c, src/version.c
-
-
-*** ../vim-7.4.010/src/eval.c	2013-08-30 16:00:04.000000000 +0200
---- src/eval.c	2013-08-30 16:34:12.000000000 +0200
-***************
-*** 12135,12140 ****
---- 12135,12143 ----
-  #ifndef CASE_INSENSITIVE_FILENAME
-  	"fname_case",
-  #endif
-+ #ifdef HAVE_ACL
-+ 	"acl",
-+ #endif
-  #ifdef FEAT_ARABIC
-  	"arabic",
-  #endif
-***************
-*** 12538,12544 ****
-  	"xfontset",
-  #endif
-  #ifdef FEAT_XPM_W32
-! 	"xpm_w32",
-  #endif
-  #ifdef USE_XSMP
-  	"xsmp",
---- 12541,12552 ----
-  	"xfontset",
-  #endif
-  #ifdef FEAT_XPM_W32
-! 	"xpm",
-! 	"xpm_w32",	/* for backward compatibility */
-! #else
-! # if defined(HAVE_XPM)
-! 	"xpm",
-! # endif
-  #endif
-  #ifdef USE_XSMP
-  	"xsmp",
-*** ../vim-7.4.010/src/version.c	2013-08-30 16:00:04.000000000 +0200
---- src/version.c	2013-08-30 16:34:37.000000000 +0200
-***************
-*** 60,65 ****
---- 60,70 ----
-  
-  static char *(features[]) =
-  {
-+ #ifdef HAVE_ACL
-+ 	"+acl",
-+ #else
-+ 	"-acl",
-+ #endif
-  #ifdef AMIGA		/* only for Amiga systems */
-  # ifdef FEAT_ARP
-  	"+ARP",
-***************
-*** 721,726 ****
---- 726,737 ----
-  # else
-  	"-xpm_w32",
-  # endif
-+ #else
-+ # ifdef HAVE_XPM
-+ 	"+xpm",
-+ # else
-+ 	"-xpm",
-+ # endif
-  #endif
-  	NULL
-  };
-*** ../vim-7.4.010/src/version.c	2013-08-30 16:00:04.000000000 +0200
---- src/version.c	2013-08-30 16:34:37.000000000 +0200
-***************
-*** 729,730 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     11,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-141. You'd rather go to http://www.weather.com/ than look out your window.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.012 b/pkgs/applications/editors/vim/patches/7.4.012
deleted file mode 100644
index f831442ea569..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.012
+++ /dev/null
@@ -1,202 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.012
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.012
-Problem:    MS-Windows: resolving shortcut does not work properly with
-	    multi-byte characters.
-Solution:   Use wide system functions. (Ken Takata)
-Files:	    src/os_mswin.c
-
-
-*** ../vim-7.4.011/src/os_mswin.c	2013-06-16 16:41:11.000000000 +0200
---- src/os_mswin.c	2013-08-30 16:43:23.000000000 +0200
-***************
-*** 1761,1769 ****
-      IPersistFile	*ppf = NULL;
-      OLECHAR		wsz[MAX_PATH];
-      WIN32_FIND_DATA	ffd; // we get those free of charge
-!     TCHAR		buf[MAX_PATH]; // could have simply reused 'wsz'...
-      char_u		*rfname = NULL;
-      int			len;
-  
-      /* Check if the file name ends in ".lnk". Avoid calling
-       * CoCreateInstance(), it's quite slow. */
---- 1761,1773 ----
-      IPersistFile	*ppf = NULL;
-      OLECHAR		wsz[MAX_PATH];
-      WIN32_FIND_DATA	ffd; // we get those free of charge
-!     CHAR		buf[MAX_PATH]; // could have simply reused 'wsz'...
-      char_u		*rfname = NULL;
-      int			len;
-+ # ifdef FEAT_MBYTE
-+     IShellLinkW		*pslw = NULL;
-+     WIN32_FIND_DATAW	ffdw; // we get those free of charge
-+ # endif
-  
-      /* Check if the file name ends in ".lnk". Avoid calling
-       * CoCreateInstance(), it's quite slow. */
-***************
-*** 1775,1792 ****
-  
-      CoInitialize(NULL);
-  
-      // create a link manager object and request its interface
-      hr = CoCreateInstance(
-  	    &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-  	    &IID_IShellLink, (void**)&psl);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-  
-      // Get a pointer to the IPersistFile interface.
-      hr = psl->lpVtbl->QueryInterface(
-  	    psl, &IID_IPersistFile, (void**)&ppf);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-  
-      // full path string must be in Unicode.
-      MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
---- 1779,1840 ----
-  
-      CoInitialize(NULL);
-  
-+ # ifdef FEAT_MBYTE
-+     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+     {
-+ 	// create a link manager object and request its interface
-+ 	hr = CoCreateInstance(
-+ 		&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-+ 		&IID_IShellLinkW, (void**)&pslw);
-+ 	if (hr == S_OK)
-+ 	{
-+ 	    WCHAR	*p = enc_to_utf16(fname, NULL);
-+ 
-+ 	    if (p != NULL)
-+ 	    {
-+ 		// Get a pointer to the IPersistFile interface.
-+ 		hr = pslw->lpVtbl->QueryInterface(
-+ 			pslw, &IID_IPersistFile, (void**)&ppf);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ 
-+ 		// "load" the name and resolve the link
-+ 		hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ #  if 0  // This makes Vim wait a long time if the target does not exist.
-+ 		hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
-+ 		if (hr != S_OK)
-+ 		    goto shortcut_errorw;
-+ #  endif
-+ 
-+ 		// Get the path to the link target.
-+ 		ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
-+ 		hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
-+ 		if (hr == S_OK && wsz[0] != NUL)
-+ 		    rfname = utf16_to_enc(wsz, NULL);
-+ 
-+ shortcut_errorw:
-+ 		vim_free(p);
-+ 		if (hr == S_OK)
-+ 		    goto shortcut_end;
-+ 	    }
-+ 	}
-+ 	/* Retry with non-wide function (for Windows 98). */
-+     }
-+ # endif
-      // create a link manager object and request its interface
-      hr = CoCreateInstance(
-  	    &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-  	    &IID_IShellLink, (void**)&psl);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-  
-      // Get a pointer to the IPersistFile interface.
-      hr = psl->lpVtbl->QueryInterface(
-  	    psl, &IID_IPersistFile, (void**)&ppf);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-  
-      // full path string must be in Unicode.
-      MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
-***************
-*** 1794,1805 ****
-      // "load" the name and resolve the link
-      hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-! #if 0  // This makes Vim wait a long time if the target doesn't exist.
-      hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
-      if (hr != S_OK)
-! 	goto shortcut_error;
-! #endif
-  
-      // Get the path to the link target.
-      ZeroMemory(buf, MAX_PATH);
---- 1842,1853 ----
-      // "load" the name and resolve the link
-      hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-! # if 0  // This makes Vim wait a long time if the target doesn't exist.
-      hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
-      if (hr != S_OK)
-! 	goto shortcut_end;
-! # endif
-  
-      // Get the path to the link target.
-      ZeroMemory(buf, MAX_PATH);
-***************
-*** 1807,1818 ****
-      if (hr == S_OK && buf[0] != NUL)
-  	rfname = vim_strsave(buf);
-  
-! shortcut_error:
-      // Release all interface pointers (both belong to the same object)
-      if (ppf != NULL)
-  	ppf->lpVtbl->Release(ppf);
-      if (psl != NULL)
-  	psl->lpVtbl->Release(psl);
-  
-      CoUninitialize();
-      return rfname;
---- 1855,1870 ----
-      if (hr == S_OK && buf[0] != NUL)
-  	rfname = vim_strsave(buf);
-  
-! shortcut_end:
-      // Release all interface pointers (both belong to the same object)
-      if (ppf != NULL)
-  	ppf->lpVtbl->Release(ppf);
-      if (psl != NULL)
-  	psl->lpVtbl->Release(psl);
-+ # ifdef FEAT_MBYTE
-+     if (pslw != NULL)
-+ 	pslw->lpVtbl->Release(pslw);
-+ # endif
-  
-      CoUninitialize();
-      return rfname;
-*** ../vim-7.4.011/src/version.c	2013-08-30 16:35:41.000000000 +0200
---- src/version.c	2013-08-30 16:39:40.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     12,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-142. You dream about creating the world's greatest web site.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.013 b/pkgs/applications/editors/vim/patches/7.4.013
deleted file mode 100644
index dcbe0fb3e43d..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.013
+++ /dev/null
@@ -1,99 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.013
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.013
-Problem:    File name buffer too small for utf-8.
-Solution:   Use character count instead of byte count. (Ken Takata)
-Files:	    src/os_mswin.c
-
-
-*** ../vim-7.4.012/src/os_mswin.c	2013-08-30 16:44:15.000000000 +0200
---- src/os_mswin.c	2013-08-30 16:47:54.000000000 +0200
-***************
-*** 456,462 ****
---- 456,469 ----
-      int
-  mch_isFullName(char_u *fname)
-  {
-+ #ifdef FEAT_MBYTE
-+     /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
-+      * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
-+      * UTF-8. */
-+     char szName[_MAX_PATH * 3 + 1];
-+ #else
-      char szName[_MAX_PATH + 1];
-+ #endif
-  
-      /* A name like "d:/foo" and "//server/share" is absolute */
-      if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
-***************
-*** 464,470 ****
-  	return TRUE;
-  
-      /* A name that can't be made absolute probably isn't absolute. */
-!     if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
-  	return FALSE;
-  
-      return pathcmp(fname, szName, -1) == 0;
---- 471,477 ----
-  	return TRUE;
-  
-      /* A name that can't be made absolute probably isn't absolute. */
-!     if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
-  	return FALSE;
-  
-      return pathcmp(fname, szName, -1) == 0;
-***************
-*** 498,507 ****
-      int
-  vim_stat(const char *name, struct stat *stp)
-  {
-      char	buf[_MAX_PATH + 1];
-      char	*p;
-  
-!     vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
-      p = buf + strlen(buf);
-      if (p > buf)
-  	mb_ptr_back(buf, p);
---- 505,521 ----
-      int
-  vim_stat(const char *name, struct stat *stp)
-  {
-+ #ifdef FEAT_MBYTE
-+     /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
-+      * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
-+      * UTF-8. */
-+     char	buf[_MAX_PATH * 3 + 1];
-+ #else
-      char	buf[_MAX_PATH + 1];
-+ #endif
-      char	*p;
-  
-!     vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
-      p = buf + strlen(buf);
-      if (p > buf)
-  	mb_ptr_back(buf, p);
-*** ../vim-7.4.012/src/version.c	2013-08-30 16:44:15.000000000 +0200
---- src/version.c	2013-08-30 16:47:36.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     13,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-143. You dream in pallettes of 216 websafe colors.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.014 b/pkgs/applications/editors/vim/patches/7.4.014
deleted file mode 100644
index f6554337f27f..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.014
+++ /dev/null
@@ -1,102 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.014
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.014
-Problem:    MS-Windows: check for writing to device does not work.
-Solution:   Fix #ifdefs. (Ken Takata)
-Files:	    src/fileio.c
-
-
-*** ../vim-7.4.013/src/fileio.c	2013-08-25 17:46:05.000000000 +0200
---- src/fileio.c	2013-08-30 16:56:46.000000000 +0200
-***************
-*** 428,440 ****
-  	}
-      }
-  
-- #ifdef UNIX
--     /*
--      * On Unix it is possible to read a directory, so we have to
--      * check for it before the mch_open().
--      */
-      if (!read_stdin && !read_buffer)
-      {
-  	perm = mch_getperm(fname);
-  	if (perm >= 0 && !S_ISREG(perm)		    /* not a regular file ... */
-  # ifdef S_ISFIFO
---- 428,440 ----
-  	}
-      }
-  
-      if (!read_stdin && !read_buffer)
-      {
-+ #ifdef UNIX
-+ 	/*
-+ 	 * On Unix it is possible to read a directory, so we have to
-+ 	 * check for it before the mch_open().
-+ 	 */
-  	perm = mch_getperm(fname);
-  	if (perm >= 0 && !S_ISREG(perm)		    /* not a regular file ... */
-  # ifdef S_ISFIFO
-***************
-*** 457,464 ****
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-! 
-! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-  	/*
-  	 * MS-Windows allows opening a device, but we will probably get stuck
-  	 * trying to read it.
---- 457,464 ----
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-! #endif
-! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-  	/*
-  	 * MS-Windows allows opening a device, but we will probably get stuck
-  	 * trying to read it.
-***************
-*** 470,478 ****
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-- # endif
--     }
-  #endif
-  
-      /* Set default or forced 'fileformat' and 'binary'. */
-      set_file_options(set_options, eap);
---- 470,477 ----
-  	    msg_scroll = msg_save;
-  	    return FAIL;
-  	}
-  #endif
-+     }
-  
-      /* Set default or forced 'fileformat' and 'binary'. */
-      set_file_options(set_options, eap);
-*** ../vim-7.4.013/src/version.c	2013-08-30 16:51:15.000000000 +0200
---- src/version.c	2013-08-30 16:54:33.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     14,
-  /**/
-
--- 
-Drink wet cement and get really stoned.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.015 b/pkgs/applications/editors/vim/patches/7.4.015
deleted file mode 100644
index e8b284d12b37..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.015
+++ /dev/null
@@ -1,106 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.015
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.015
-Problem:    MS-Windows: Detecting node type does not work for multi-byte
-	    characters.
-Solution:   Use wide character function when needed. (Ken Takata)
-Files:	    src/os_win32.c
-
-
-*** ../vim-7.4.014/src/os_win32.c	2013-08-10 12:39:12.000000000 +0200
---- src/os_win32.c	2013-08-30 17:09:47.000000000 +0200
-***************
-*** 3107,3112 ****
---- 3107,3115 ----
-  {
-      HANDLE	hFile;
-      int		type;
-+ #ifdef FEAT_MBYTE
-+     WCHAR	*wn = NULL;
-+ #endif
-  
-      /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
-       * read from it later will cause Vim to hang.  Thus return NODE_WRITABLE
-***************
-*** 3114,3127 ****
-      if (STRNCMP(name, "\\\\.\\", 4) == 0)
-  	return NODE_WRITABLE;
-  
-!     hFile = CreateFile(name,		/* file name */
-! 		GENERIC_WRITE,		/* access mode */
-! 		0,			/* share mode */
-! 		NULL,			/* security descriptor */
-! 		OPEN_EXISTING,		/* creation disposition */
-! 		0,			/* file attributes */
-! 		NULL);			/* handle to template file */
-  
-      if (hFile == INVALID_HANDLE_VALUE)
-  	return NODE_NORMAL;
-  
---- 3117,3157 ----
-      if (STRNCMP(name, "\\\\.\\", 4) == 0)
-  	return NODE_WRITABLE;
-  
-! #ifdef FEAT_MBYTE
-!     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-!     {
-! 	wn = enc_to_utf16(name, NULL);
-! 	if (wn != NULL)
-! 	{
-! 	    hFile = CreateFileW(wn,	/* file name */
-! 			GENERIC_WRITE,	/* access mode */
-! 			0,		/* share mode */
-! 			NULL,		/* security descriptor */
-! 			OPEN_EXISTING,	/* creation disposition */
-! 			0,		/* file attributes */
-! 			NULL);		/* handle to template file */
-! 	    if (hFile == INVALID_HANDLE_VALUE
-! 			      && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
-! 	    {
-! 		/* Retry with non-wide function (for Windows 98). */
-! 		vim_free(wn);
-! 		wn = NULL;
-! 	    }
-! 	}
-!     }
-!     if (wn == NULL)
-! #endif
-! 	hFile = CreateFile(name,	/* file name */
-! 		    GENERIC_WRITE,	/* access mode */
-! 		    0,			/* share mode */
-! 		    NULL,		/* security descriptor */
-! 		    OPEN_EXISTING,	/* creation disposition */
-! 		    0,			/* file attributes */
-! 		    NULL);		/* handle to template file */
-  
-+ #ifdef FEAT_MBYTE
-+     vim_free(wn);
-+ #endif
-      if (hFile == INVALID_HANDLE_VALUE)
-  	return NODE_NORMAL;
-  
-*** ../vim-7.4.014/src/version.c	2013-08-30 17:06:56.000000000 +0200
---- src/version.c	2013-08-30 17:09:35.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     15,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-144. You eagerly await the update of the "Cool Site of the Day."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.016 b/pkgs/applications/editors/vim/patches/7.4.016
deleted file mode 100644
index c58c605f5c15..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.016
+++ /dev/null
@@ -1,221 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.016
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.016
-Problem:    MS-Windows: File name completion doesn't work properly with
-	    Chinese characters. (Yue Wu)
-Solution:   Add fname_casew(). (Ken Takata)
-Files:	    src/os_win32.c
-
-
-*** ../vim-7.4.015/src/os_win32.c	2013-08-30 17:11:29.000000000 +0200
---- src/os_win32.c	2013-08-30 17:28:30.000000000 +0200
-***************
-*** 2500,2508 ****
---- 2500,2624 ----
-  }
-  
-  
-+ #ifdef FEAT_MBYTE
-+ /*
-+  * fname_casew(): Wide version of fname_case().  Set the case of the file name,
-+  * if it already exists.  When "len" is > 0, also expand short to long
-+  * filenames.
-+  * Return FAIL if wide functions are not available, OK otherwise.
-+  * NOTE: much of this is identical to fname_case(), keep in sync!
-+  */
-+     static int
-+ fname_casew(
-+     WCHAR	*name,
-+     int		len)
-+ {
-+     WCHAR		szTrueName[_MAX_PATH + 2];
-+     WCHAR		szTrueNameTemp[_MAX_PATH + 2];
-+     WCHAR		*ptrue, *ptruePrev;
-+     WCHAR		*porig, *porigPrev;
-+     int			flen;
-+     WIN32_FIND_DATAW	fb;
-+     HANDLE		hFind;
-+     int			c;
-+     int			slen;
-+ 
-+     flen = (int)wcslen(name);
-+     if (flen > _MAX_PATH)
-+ 	return OK;
-+ 
-+     /* slash_adjust(name) not needed, already adjusted by fname_case(). */
-+ 
-+     /* Build the new name in szTrueName[] one component at a time. */
-+     porig = name;
-+     ptrue = szTrueName;
-+ 
-+     if (iswalpha(porig[0]) && porig[1] == L':')
-+     {
-+ 	/* copy leading drive letter */
-+ 	*ptrue++ = *porig++;
-+ 	*ptrue++ = *porig++;
-+ 	*ptrue = NUL;	    /* in case nothing follows */
-+     }
-+ 
-+     while (*porig != NUL)
-+     {
-+ 	/* copy \ characters */
-+ 	while (*porig == psepc)
-+ 	    *ptrue++ = *porig++;
-+ 
-+ 	ptruePrev = ptrue;
-+ 	porigPrev = porig;
-+ 	while (*porig != NUL && *porig != psepc)
-+ 	{
-+ 	    *ptrue++ = *porig++;
-+ 	}
-+ 	*ptrue = NUL;
-+ 
-+ 	/* To avoid a slow failure append "\*" when searching a directory,
-+ 	 * server or network share. */
-+ 	wcscpy(szTrueNameTemp, szTrueName);
-+ 	slen = (int)wcslen(szTrueNameTemp);
-+ 	if (*porig == psepc && slen + 2 < _MAX_PATH)
-+ 	    wcscpy(szTrueNameTemp + slen, L"\\*");
-+ 
-+ 	/* Skip "", "." and "..". */
-+ 	if (ptrue > ptruePrev
-+ 		&& (ptruePrev[0] != L'.'
-+ 		    || (ptruePrev[1] != NUL
-+ 			&& (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
-+ 		&& (hFind = FindFirstFileW(szTrueNameTemp, &fb))
-+ 						      != INVALID_HANDLE_VALUE)
-+ 	{
-+ 	    c = *porig;
-+ 	    *porig = NUL;
-+ 
-+ 	    /* Only use the match when it's the same name (ignoring case) or
-+ 	     * expansion is allowed and there is a match with the short name
-+ 	     * and there is enough room. */
-+ 	    if (_wcsicoll(porigPrev, fb.cFileName) == 0
-+ 		    || (len > 0
-+ 			&& (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
-+ 			    && (int)(ptruePrev - szTrueName)
-+ 					   + (int)wcslen(fb.cFileName) < len)))
-+ 	    {
-+ 		wcscpy(ptruePrev, fb.cFileName);
-+ 
-+ 		/* Look for exact match and prefer it if found.  Must be a
-+ 		 * long name, otherwise there would be only one match. */
-+ 		while (FindNextFileW(hFind, &fb))
-+ 		{
-+ 		    if (*fb.cAlternateFileName != NUL
-+ 			    && (wcscoll(porigPrev, fb.cFileName) == 0
-+ 				|| (len > 0
-+ 				    && (_wcsicoll(porigPrev,
-+ 						   fb.cAlternateFileName) == 0
-+ 				    && (int)(ptruePrev - szTrueName)
-+ 					 + (int)wcslen(fb.cFileName) < len))))
-+ 		    {
-+ 			wcscpy(ptruePrev, fb.cFileName);
-+ 			break;
-+ 		    }
-+ 		}
-+ 	    }
-+ 	    FindClose(hFind);
-+ 	    *porig = c;
-+ 	    ptrue = ptruePrev + wcslen(ptruePrev);
-+ 	}
-+ 	else if (hFind == INVALID_HANDLE_VALUE
-+ 		&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
-+ 	    return FAIL;
-+     }
-+ 
-+     wcscpy(name, szTrueName);
-+     return OK;
-+ }
-+ #endif
-+ 
-  /*
-   * fname_case(): Set the case of the file name, if it already exists.
-   * When "len" is > 0, also expand short to long filenames.
-+  * NOTE: much of this is identical to fname_casew(), keep in sync!
-   */
-      void
-  fname_case(
-***************
-*** 2520,2530 ****
-      int			slen;
-  
-      flen = (int)STRLEN(name);
-!     if (flen == 0 || flen > _MAX_PATH)
-  	return;
-  
-      slash_adjust(name);
-  
-      /* Build the new name in szTrueName[] one component at a time. */
-      porig = name;
-      ptrue = szTrueName;
---- 2636,2679 ----
-      int			slen;
-  
-      flen = (int)STRLEN(name);
-!     if (flen == 0)
-  	return;
-  
-      slash_adjust(name);
-  
-+ #ifdef FEAT_MBYTE
-+     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+     {
-+ 	WCHAR	*p = enc_to_utf16(name, NULL);
-+ 
-+ 	if (p != NULL)
-+ 	{
-+ 	    char_u	*q;
-+ 	    WCHAR	buf[_MAX_PATH + 2];
-+ 
-+ 	    wcscpy(buf, p);
-+ 	    vim_free(p);
-+ 
-+ 	    if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
-+ 	    {
-+ 		q = utf16_to_enc(buf, NULL);
-+ 		if (q != NULL)
-+ 		{
-+ 		    vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
-+ 		    vim_free(q);
-+ 		    return;
-+ 		}
-+ 	    }
-+ 	}
-+ 	/* Retry with non-wide function (for Windows 98). */
-+     }
-+ #endif
-+ 
-+     /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
-+      * So we should check this after calling wide function. */
-+     if (flen > _MAX_PATH)
-+ 	return;
-+ 
-      /* Build the new name in szTrueName[] one component at a time. */
-      porig = name;
-      ptrue = szTrueName;
-*** ../vim-7.4.015/src/version.c	2013-08-30 17:11:29.000000000 +0200
---- src/version.c	2013-08-30 17:15:06.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     16,
-  /**/
-
--- 
-Fingers not found - Pound head on keyboard to continue.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.017 b/pkgs/applications/editors/vim/patches/7.4.017
deleted file mode 100644
index 7d7fad83fe79..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.017
+++ /dev/null
@@ -1,78 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.017
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.017
-Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
-	    Fritz)
-Solution:   When reading the start of the tags file do parse lines that are
-	    not header lines.
-Files:	    src/tag.c
-
-
-*** ../vim-7.4.016/src/tag.c	2013-06-15 22:26:26.000000000 +0200
---- src/tag.c	2013-09-05 12:03:38.000000000 +0200
-***************
-*** 1797,1809 ****
-  	     */
-  	    if (state == TS_START)
-  	    {
-! 		/* The header ends when the line sorts below "!_TAG_".
-! 		 * There may be non-header items before the header though,
-! 		 * e.g. "!" itself. When case is folded lower case letters
-! 		 * sort before "_". */
-  		if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
-  				|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
-  		{
-  		    /*
-  		     * Read header line.
-  		     */
---- 1797,1812 ----
-  	     */
-  	    if (state == TS_START)
-  	    {
-! 		/* The header ends when the line sorts below "!_TAG_".  When
-! 		 * case is folded lower case letters sort before "_". */
-  		if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
-  				|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
-  		{
-+ 		    if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
-+ 			/* Non-header item before the header, e.g. "!" itself.
-+ 			 */
-+ 			goto parse_line;
-+ 
-  		    /*
-  		     * Read header line.
-  		     */
-***************
-*** 1898,1903 ****
---- 1901,1907 ----
-  #endif
-  	    }
-  
-+ parse_line:
-  	    /*
-  	     * Figure out where the different strings are in this line.
-  	     * For "normal" tags: Do a quick check if the tag matches.
-*** ../vim-7.4.016/src/version.c	2013-08-30 17:29:10.000000000 +0200
---- src/version.c	2013-09-05 12:02:01.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     17,
-  /**/
-
--- 
-An error has occurred.  Hit any user to continue.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.018 b/pkgs/applications/editors/vim/patches/7.4.018
deleted file mode 100644
index 2214c30b2b8a..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.018
+++ /dev/null
@@ -1,45 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.018
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.018
-Problem:    When completing item becomes unselected. (Shougo Matsu)
-Solution:   Revert patch 7.3.1269.
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.017/src/edit.c	2013-07-04 20:22:25.000000000 +0200
---- src/edit.c	2013-09-05 12:39:53.000000000 +0200
-***************
-*** 3467,3473 ****
-      }
-  
-      compl_enter_selects = !compl_used_match;
--     compl_shown_match = compl_curr_match = compl_first_match;
-  
-      /* Show the popup menu with a different set of matches. */
-      ins_compl_show_pum();
---- 3467,3472 ----
-*** ../vim-7.4.017/src/version.c	2013-09-05 12:06:26.000000000 +0200
---- src/version.c	2013-09-05 12:40:34.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     18,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-169. You hire a housekeeper for your home page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.019 b/pkgs/applications/editors/vim/patches/7.4.019
deleted file mode 100644
index b1532c19c81c..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.019
+++ /dev/null
@@ -1,61 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.019
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.019
-Problem:    MS-Windows: File name completion doesn't work properly with
-	    Chinese characters. (Yue Wu)
-Solution:   Take care of multi-byte characters when looking for the start of
-	    the file name. (Ken Takata)
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.018/src/edit.c	2013-09-05 12:49:48.000000000 +0200
---- src/edit.c	2013-09-05 13:45:27.000000000 +0200
-***************
-*** 5183,5190 ****
-  	}
-  	else if (ctrl_x_mode == CTRL_X_FILES)
-  	{
-! 	    while (--startcol >= 0 && vim_isfilec(line[startcol]))
-! 		;
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-  	    compl_pattern = addstar(line + compl_col, compl_length,
---- 5183,5196 ----
-  	}
-  	else if (ctrl_x_mode == CTRL_X_FILES)
-  	{
-! 	    char_u	*p = line + startcol;
-! 
-! 	    /* Go back to just before the first filename character. */
-! 	    mb_ptr_back(line, p);
-! 	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-! 		mb_ptr_back(line, p);
-! 	    startcol = p - line;
-! 
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-  	    compl_pattern = addstar(line + compl_col, compl_length,
-*** ../vim-7.4.018/src/version.c	2013-09-05 12:49:48.000000000 +0200
---- src/version.c	2013-09-05 13:41:47.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     19,
-  /**/
-
--- 
-        Very funny, Scotty.  Now beam down my clothes.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.020 b/pkgs/applications/editors/vim/patches/7.4.020
deleted file mode 100644
index 942d82fe2554..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.020
+++ /dev/null
@@ -1,82 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.020
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.020
-Problem:    NFA engine matches too much with \@>. (John McGowan)
-Solution:   When a whole pattern match is found stop searching.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.019/src/regexp_nfa.c	2013-08-25 17:01:36.000000000 +0200
---- src/regexp_nfa.c	2013-09-05 15:59:44.000000000 +0200
-***************
-*** 5322,5328 ****
-  		log_subsexpr(m);
-  #endif
-  		nfa_match = TRUE;
-! 		break;
-  
-  	    case NFA_START_INVISIBLE:
-  	    case NFA_START_INVISIBLE_FIRST:
---- 5322,5331 ----
-  		log_subsexpr(m);
-  #endif
-  		nfa_match = TRUE;
-! 		/* See comment above at "goto nextchar". */
-! 		if (nextlist->n == 0)
-! 		    clen = 0;
-! 		goto nextchar;
-  
-  	    case NFA_START_INVISIBLE:
-  	    case NFA_START_INVISIBLE_FIRST:
-*** ../vim-7.4.019/src/testdir/test64.in	2013-08-14 13:31:03.000000000 +0200
---- src/testdir/test64.in	2013-09-05 15:35:44.000000000 +0200
-***************
-*** 427,432 ****
---- 427,433 ----
-  :""""" \@>
-  :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
-  :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
-+ :call add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
-  :" TODO: BT engine does not restore submatch after failure
-  :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
-  :"
-*** ../vim-7.4.019/src/testdir/test64.ok	2013-08-14 13:31:03.000000000 +0200
---- src/testdir/test64.ok	2013-09-05 16:03:34.000000000 +0200
-***************
-*** 983,988 ****
---- 983,991 ----
-  OK 0 - \(a*\)\@>b
-  OK 1 - \(a*\)\@>b
-  OK 2 - \(a*\)\@>b
-+ OK 0 - ^\(.\{-}b\)\@>.
-+ OK 1 - ^\(.\{-}b\)\@>.
-+ OK 2 - ^\(.\{-}b\)\@>.
-  OK 0 - \(a*\)\@>a\|a\+
-  OK 2 - \(a*\)\@>a\|a\+
-  OK 0 - \_[^8-9]\+
-*** ../vim-7.4.019/src/version.c	2013-09-05 13:50:49.000000000 +0200
---- src/version.c	2013-09-05 16:04:32.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     20,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-173. You keep tracking down the email addresses of all your friends
-     (even childhood friends).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.021 b/pkgs/applications/editors/vim/patches/7.4.021
deleted file mode 100644
index 0936d9a194b6..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.021
+++ /dev/null
@@ -1,86 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.021
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.021
-Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
-	    end of another branch to be wrong. (William Fugh)
-Solution:   Set end position if it wasn't set yet.
-Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.4.020/src/regexp_nfa.c	2013-09-05 16:05:32.000000000 +0200
---- src/regexp_nfa.c	2013-09-05 20:56:25.000000000 +0200
-***************
-*** 4209,4218 ****
-  	    break;
-  
-  	case NFA_MCLOSE:
-! 	    if (nfa_has_zend)
-  	    {
-! 		/* Do not overwrite the position set by \ze. If no \ze
-! 		 * encountered end will be set in nfa_regtry(). */
-  		subs = addstate(l, state->out, subs, pim, off);
-  		break;
-  	    }
---- 4209,4219 ----
-  	    break;
-  
-  	case NFA_MCLOSE:
-! 	    if (nfa_has_zend && (REG_MULTI
-! 			? subs->norm.list.multi[0].end.lnum >= 0
-! 			: subs->norm.list.line[0].end != NULL))
-  	    {
-! 		/* Do not overwrite the position set by \ze. */
-  		subs = addstate(l, state->out, subs, pim, off);
-  		break;
-  	    }
-*** ../vim-7.4.020/src/testdir/test64.in	2013-09-05 16:05:32.000000000 +0200
---- src/testdir/test64.in	2013-09-05 20:55:18.000000000 +0200
-***************
-*** 328,333 ****
---- 328,334 ----
-  :call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
-  :call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
-  :call add(tl, [2, '\>\zs.', 'aword. ', '.'])
-+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
-  :"
-  :"""" Tests for \@= and \& features
-  :call add(tl, [2, 'abc\@=', 'abc', 'ab'])
-*** ../vim-7.4.020/src/testdir/test64.ok	2013-09-05 16:05:32.000000000 +0200
---- src/testdir/test64.ok	2013-09-05 21:09:56.000000000 +0200
-***************
-*** 752,757 ****
---- 752,760 ----
-  OK 0 - \>\zs.
-  OK 1 - \>\zs.
-  OK 2 - \>\zs.
-+ OK 0 - \s\+\ze\[/\|\s\zs\s\+
-+ OK 1 - \s\+\ze\[/\|\s\zs\s\+
-+ OK 2 - \s\+\ze\[/\|\s\zs\s\+
-  OK 0 - abc\@=
-  OK 1 - abc\@=
-  OK 2 - abc\@=
-*** ../vim-7.4.020/src/version.c	2013-09-05 16:05:32.000000000 +0200
---- src/version.c	2013-09-05 21:11:38.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     21,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-174. You know what a listserv is.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.022 b/pkgs/applications/editors/vim/patches/7.4.022
deleted file mode 100644
index 81a0901f5b55..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.022
+++ /dev/null
@@ -1,148 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.022
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.022
-Problem:    Deadlock while exiting, because of allocating memory.
-Solution:   Do not use gettext() in deathtrap(). (James McCoy)
-Files:	    src/os_unix.c, src/misc1.c
-
-
-*** ../vim-7.4.021/src/os_unix.c	2013-07-03 16:32:32.000000000 +0200
---- src/os_unix.c	2013-09-05 21:40:06.000000000 +0200
-***************
-*** 957,964 ****
-  
-  /*
-   * This function handles deadly signals.
-!  * It tries to preserve any swap file and exit properly.
-   * (partly from Elvis).
-   */
-      static RETSIGTYPE
-  deathtrap SIGDEFARG(sigarg)
---- 957,966 ----
-  
-  /*
-   * This function handles deadly signals.
-!  * It tries to preserve any swap files and exit properly.
-   * (partly from Elvis).
-+  * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
-+  * a deadlock.
-   */
-      static RETSIGTYPE
-  deathtrap SIGDEFARG(sigarg)
-***************
-*** 1090,1107 ****
-      }
-      if (entered == 2)
-      {
-! 	OUT_STR(_("Vim: Double signal, exiting\n"));
-  	out_flush();
-  	getout(1);
-      }
-  
-  #ifdef SIGHASARG
-!     sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
-  							 signal_info[i].name);
-  #else
-!     sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
-  #endif
-!     preserve_exit();		    /* preserve files and exit */
-  
-  #ifdef NBDEBUG
-      reset_signals();
---- 1092,1114 ----
-      }
-      if (entered == 2)
-      {
-! 	/* No translation, it may call malloc(). */
-! 	OUT_STR("Vim: Double signal, exiting\n");
-  	out_flush();
-  	getout(1);
-      }
-  
-+     /* No translation, it may call malloc(). */
-  #ifdef SIGHASARG
-!     sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
-  							 signal_info[i].name);
-  #else
-!     sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
-  #endif
-! 
-!     /* Preserve files and exit.  This sets the really_exiting flag to prevent
-!      * calling free(). */
-!     preserve_exit();
-  
-  #ifdef NBDEBUG
-      reset_signals();
-*** ../vim-7.4.021/src/misc1.c	2013-08-03 17:29:33.000000000 +0200
---- src/misc1.c	2013-09-05 21:34:04.000000000 +0200
-***************
-*** 9174,9179 ****
---- 9174,9181 ----
-  /*
-   * Preserve files and exit.
-   * When called IObuff must contain a message.
-+  * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
-+  * functions, such as allocating memory.
-   */
-      void
-  preserve_exit()
-***************
-*** 9196,9202 ****
-      {
-  	if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
-  	{
-! 	    OUT_STR(_("Vim: preserving files...\n"));
-  	    screen_start();	    /* don't know where cursor is now */
-  	    out_flush();
-  	    ml_sync_all(FALSE, FALSE);	/* preserve all swap files */
---- 9198,9204 ----
-      {
-  	if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
-  	{
-! 	    OUT_STR("Vim: preserving files...\n");
-  	    screen_start();	    /* don't know where cursor is now */
-  	    out_flush();
-  	    ml_sync_all(FALSE, FALSE);	/* preserve all swap files */
-***************
-*** 9206,9212 ****
-  
-      ml_close_all(FALSE);	    /* close all memfiles, without deleting */
-  
-!     OUT_STR(_("Vim: Finished.\n"));
-  
-      getout(1);
-  }
---- 9208,9214 ----
-  
-      ml_close_all(FALSE);	    /* close all memfiles, without deleting */
-  
-!     OUT_STR("Vim: Finished.\n");
-  
-      getout(1);
-  }
-*** ../vim-7.4.021/src/version.c	2013-09-05 21:15:38.000000000 +0200
---- src/version.c	2013-09-05 21:30:18.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     22,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-175. You send yourself e-mail before you go to bed to remind you
-     what to do when you wake up.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/editors/vim/patches/7.4.023 b/pkgs/applications/editors/vim/patches/7.4.023
deleted file mode 100644
index 03005213ea45..000000000000
--- a/pkgs/applications/editors/vim/patches/7.4.023
+++ /dev/null
@@ -1,53 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.4.023
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.4.023
-Problem:    Compiler warning on 64 bit windows.
-Solution:   Add type cast. (Mike Williams)
-Files:	    src/edit.c
-
-
-*** ../vim-7.4.022/src/edit.c	2013-09-05 13:50:49.000000000 +0200
---- src/edit.c	2013-09-06 17:32:55.000000000 +0200
-***************
-*** 5189,5195 ****
-  	    mb_ptr_back(line, p);
-  	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-  		mb_ptr_back(line, p);
-! 	    startcol = p - line;
-  
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
---- 5189,5195 ----
-  	    mb_ptr_back(line, p);
-  	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
-  		mb_ptr_back(line, p);
-! 	    startcol = (int)(p - line);
-  
-  	    compl_col += ++startcol;
-  	    compl_length = (int)curs_col - startcol;
-*** ../vim-7.4.022/src/version.c	2013-09-05 21:41:35.000000000 +0200
---- src/version.c	2013-09-06 17:33:41.000000000 +0200
-***************
-*** 740,741 ****
---- 740,743 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     23,
-  /**/
-
--- 
-Wizards had always known that the act of observation changed the thing that
-was observed, and sometimes forgot that it also changed the observer too.
-			Terry Pratchett  -  Interesting times
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\  an exciting new programming language -- http://www.Zimbu.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index 234249e85626..d1a084761e79 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -146,10 +146,9 @@ rec {
   gmic =
   let
     imagemagick = pkgs.imagemagickBig; # maybe the non big version is enough?
-    fftw = pkgs.fftw.override {pthreads = true;};
   in pluginDerivation rec {
       name = "gmic-1.5.7.2";
-      buildInputs = [imagemagick pkgconfig fftw gimp] ++ gimp.nativeBuildInputs;
+      buildInputs = [imagemagick pkgconfig pkgs.fftw gimp] ++ gimp.nativeBuildInputs;
       src = fetchurl {
         url = mirror://sourceforge/gmic/gmic_1.5.7.2.tar.gz;
         sha256 = "1cpbxb3p2c8bcv2cbr150whapzjc7w09i3jza0z9x3xj8c0vdyv1";
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index d34eeba207ce..a1238fe3dcd9 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, qt4, bison, flex, eigen, boost, mesa, glew, opencsg, cgal
-, mpfr, gmp }:
+, mpfr, gmp
+}:
 
 stdenv.mkDerivation rec {
   version = "2013.06";
diff --git a/pkgs/applications/graphics/sane/backends-git.nix b/pkgs/applications/graphics/sane/backends-git.nix
index 7ba6e1756ba0..67b733dda7ae 100644
--- a/pkgs/applications/graphics/sane/backends-git.nix
+++ b/pkgs/applications/graphics/sane/backends-git.nix
@@ -7,12 +7,12 @@ in
 assert hotplugSupport -> (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux");
 
 stdenv.mkDerivation {
-  name = "sane-backends-1.0.23.296-gf139120";
+  name = "sane-backends-1.0.24.73-g6c4f6bc";
 
   src = fetchgit {
-    url = "http://git.debian.org/git/sane/sane-backends.git";
-    rev = "f139120c72db6de98be95b52c206c2a4d8071e92";
-    sha256 = "1b2fv19c8ijh9l0jjilli3j70n17wvcgpqq1nxmiby3ai6nrzk8d";
+    url = "git://alioth.debian.org/git/sane/sane-backends.git";
+    rev = "6c4f6bc58615755dc734281703b594cea3ebf848";
+    sha256 = "0f7lbv1rnr53n4rpihcd8dkfm01xvwfnx9i1nqaadrzbpvgkjrfa";
   };
 
   udevSupport = hotplugSupport;
diff --git a/pkgs/applications/graphics/sane/backends.nix b/pkgs/applications/graphics/sane/backends.nix
index eaf1c3b725f0..3b5077a14e2a 100644
--- a/pkgs/applications/graphics/sane/backends.nix
+++ b/pkgs/applications/graphics/sane/backends.nix
@@ -8,12 +8,13 @@ let
   firmware = gt68xxFirmware { inherit fetchurl; };
 in
 stdenv.mkDerivation rec {
-  version = "1.0.23";
+  version = "1.0.24";
   name = "sane-backends-${version}";
 
   src = fetchurl {
-    url = "https://launchpad.net/ubuntu/+archive/primary/+files/sane-backends_${version}.orig.tar.gz";
-    sha256 = "4d4f5b2881615af7fc0ed75fdde7dc623a749e80e40f3f792fe4010163cbb029";
+    url = "https://alioth.debian.org/frs/download.php/file/3958/${name}.tar.gz";
+    curlOpts = "--insecure";
+    sha256 = "0ba68m6bzni54axjk15i51rya7hfsdliwvqyan5msl7iaid0iir7";
   };
 
   udevSupport = hotplugSupport;
diff --git a/pkgs/applications/ike/default.nix b/pkgs/applications/ike/default.nix
index 52330b57b8fa..7bba42152e8c 100644
--- a/pkgs/applications/ike/default.nix
+++ b/pkgs/applications/ike/default.nix
@@ -1,8 +1,12 @@
-{ stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper, gcc }:
+{ stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
+, gcc, nettools, iproute, linuxHeaders }:
 
 # NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
 # launch with "iked -f /etc/iked.conf"
 
+# NOTE: my testings reveal that kernels 3.11.10 and 3.12.6 won't let the traffic through the tunnel,
+# so I'm sticking with 3.4
+
 stdenv.mkDerivation rec {
   name = "ike-2.2.1";
 
@@ -11,11 +15,13 @@ stdenv.mkDerivation rec {
     sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y";
   };
 
-  buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper ];
+  buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper nettools iproute ];
 
   configurePhase = ''
     mkdir -p $out/{bin,sbin,lib}
-    cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out
+    cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin \
+          -DKRNINC="${linuxHeaders}/include/" -DTESTS=YES \
+          -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out
   '';
 
   buildPhase = ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 67031e207220..1e16e22c0fe6 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-1.15.0";
+  name = "calibre-1.17.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "0kisdrvsbdpfkirg0p8ifzcm7fjidx74xsw4bdb96gry2wmpjwf7";
+    sha256 = "1g0kwfr0v4hgwik7hpajdvg1ganyi7hlq6wvq4r5218yvdq5mkzn";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix
index 635775e75ac7..f2dadd2e5e8b 100644
--- a/pkgs/applications/misc/evtest/default.nix
+++ b/pkgs/applications/misc/evtest/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     description = "Simple tool for input event debugging";
     license = "GPLv2";
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/misc/gammu/bashcomp-dir.patch b/pkgs/applications/misc/gammu/bashcomp-dir.patch
new file mode 100644
index 000000000000..94cc2929c1ee
--- /dev/null
+++ b/pkgs/applications/misc/gammu/bashcomp-dir.patch
@@ -0,0 +1,12 @@
+diff -Naur gammu-1.33.0.orig/contrib/CMakeLists.txt gammu-1.33.0/contrib/CMakeLists.txt
+--- gammu-1.33.0.orig/contrib/CMakeLists.txt	2013-12-26 20:56:22.887772110 +0100
++++ gammu-1.33.0/contrib/CMakeLists.txt	2013-12-26 20:57:04.386276037 +0100
+@@ -85,7 +85,7 @@
+ if (INSTALL_BASH_COMPLETION)
+     install (
+         FILES bash-completion/gammu
+-        DESTINATION "/etc/bash_completion.d"
++        DESTINATION "${CMAKE_INSTALL_PREFIX}/etc/bash_completion.d"
+         COMPONENT "bash"
+         )
+ endif (INSTALL_BASH_COMPLETION)
diff --git a/pkgs/applications/misc/gammu/default.nix b/pkgs/applications/misc/gammu/default.nix
new file mode 100644
index 000000000000..56e45b11c706
--- /dev/null
+++ b/pkgs/applications/misc/gammu/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, python, pkgconfig, cmake, bluez, libusb1, curl
+, libiconv, gettext, sqlite }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "gammu-${version}";
+  version = "1.33.0";
+
+  src = fetchurl {
+    url = "http://sourceforge.net/projects/gammu/files/gammu/${version}/gammu-${version}.tar.xz";
+    sha256 = "18gplx1v9d70k1q86d5i4n4dfpx367g34pj3zscppx126vwhv112";
+  };
+
+  patches = [ ./bashcomp-dir.patch ];
+
+  buildInputs = [ python pkgconfig cmake bluez libusb1 curl libiconv
+    gettext sqlite ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://wammu.eu/gammu/";
+    description = "Command line utility and library to control mobil phones";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.coroa ];
+  };
+}
diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix
index 3c47e3bf8a82..08d2b29a92a8 100644
--- a/pkgs/applications/misc/gnuradio/default.nix
+++ b/pkgs/applications/misc/gnuradio/default.nix
@@ -18,7 +18,8 @@
 # gr-video-sdl: PAL and NTSC display
 , SDL
 , libusb1, orc, pyopengl
-, makeWrapper }:
+, makeWrapper
+}:
 
 stdenv.mkDerivation rec {
   name = "gnuradio-${version}";
diff --git a/pkgs/applications/misc/pitz/default.nix b/pkgs/applications/misc/pitz/default.nix
index 355ea9b2033d..e4f097469a49 100644
--- a/pkgs/applications/misc/pitz/default.nix
+++ b/pkgs/applications/misc/pitz/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, buildPythonPackage, tempita, jinja2, pyyaml, clepy, mock
-, nose, decorator, docutils }:
+, nose, decorator, docutils
+}:
 
 # TODO: pitz has a pitz-shell utility that depends on ipython, but it just
 # errors out and dies (it probably depends on an old ipython version):
@@ -28,6 +29,6 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     homepage = http://pitz.tplus1.com/;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/misc/slic3r/default.nix b/pkgs/applications/misc/slic3r/default.nix
index aa2ceb08e809..203ef7d84a7e 100644
--- a/pkgs/applications/misc/slic3r/default.nix
+++ b/pkgs/applications/misc/slic3r/default.nix
@@ -2,7 +2,8 @@
 # Perl modules:
 , EncodeLocale, MathClipper, ExtUtilsXSpp, BoostGeometryUtils
 , MathConvexHullMonotoneChain, MathGeometryVoronoi, MathPlanePath, Moo
-, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus }:
+, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus
+}:
 
 stdenv.mkDerivation rec {
   version = "0.9.10b";
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
new file mode 100644
index 000000000000..9eb3ed13af58
--- /dev/null
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, cmake, pango, cairo, glib, imlib2, libXinerama
+, libXrender, libXcomposite, libXdamage, libX11, libXrandr, gtk, libpthreadstubs
+, libXdmcp
+}:
+
+stdenv.mkDerivation rec {
+  name = "tint2-${version}";
+  version = "0.11";
+
+  src = fetchurl {
+    url = "http://tint2.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "07a74ag7lhc6706z34zvqj2ikyyl7wnzisfxpld67ljpc1m6w47y";
+  };
+        
+  buildInputs = [ pkgconfig cmake pango cairo glib imlib2 libXinerama
+    libXrender libXcomposite libXdamage libX11 libXrandr gtk libpthreadstubs
+    libXdmcp
+  ];
+
+  preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc";
+
+  cmakeFlags = [
+    "-DENABLE_TINT2CONF=0"
+  ];
+
+  meta = {
+    homepage = http://code.google.com/p/tint2;
+    license = stdenv.lib.licenses.gpl2;
+    description = "A simple panel/taskbar unintrusive and light (memory / cpu / aestetic)";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
index c35101bb874f..326774dc1fe0 100644
--- a/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
@@ -9,11 +9,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = with pythonPackages; 
     [
-      python twisted urwid beautifulsoup wxPython distribute pygobject
-      wokkel pythonDBus pyfeed wrapPython
+      python twisted urwid beautifulsoup wxPython pygobject
+      wokkel pythonDBus pyfeed wrapPython setuptools
     ];
 
   configurePhase = ''
+    sed -i "/use_setuptools/d" setup.py
     sed -e "s@sys.prefix@'$out'@g" -i setup.py
     sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${pythonPackages.twisted}/bin\"" -i src/sat.sh
     sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/lib/${python.libPrefix}/site-packages"" -i src/sat.sh
diff --git a/pkgs/applications/science/spyder/default.nix b/pkgs/applications/science/spyder/default.nix
index 600bd6bc4394..1079a153ca16 100644
--- a/pkgs/applications/science/spyder/default.nix
+++ b/pkgs/applications/science/spyder/default.nix
@@ -52,6 +52,6 @@ buildPythonPackage rec {
     homepage = https://code.google.com/p/spyderlib/;
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 1af54994fd14..67346ef8389b 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -1,37 +1,33 @@
 { bdbSupport ? false # build support for Berkeley DB repositories
 , httpServer ? false # build Apache DAV module
 , httpSupport ? false # client must support http
-, sslSupport ? false # client must support https
-, compressionSupport ? false # client must support http compression
 , pythonBindings ? false
 , perlBindings ? false
 , javahlBindings ? false
 , saslSupport ? false
-, stdenv, fetchurl, apr, aprutil, neon, zlib, sqlite
+, stdenv, fetchurl, apr, aprutil, zlib, sqlite
 , httpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
-, sasl ? null
+, sasl ? null, serf ? null
 }:
 
 assert bdbSupport -> aprutil.bdbSupport;
 assert httpServer -> httpd != null;
 assert pythonBindings -> swig != null && python != null;
 assert javahlBindings -> jdk != null && perl != null;
-assert sslSupport -> neon.sslSupport;
-assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.7.14";
+  version = "1.8.5";
 
   name = "subversion-${version}";
 
   src = fetchurl {
-    url = "mirror://apache/subversion//${name}.tar.bz2";
-    sha256 = "038jbcpwm083abp0rvk0fhnx65kp9mz1qvzs3f83ig8fxcvqzb64";
+    url = "mirror://apache/subversion/${name}.tar.bz2";
+    sha256 = "0r3mxrrlr1l9s2nh829bf0qmrfaafkq3di6ndr10j76sxkqjnlpx";
   };
 
   buildInputs = [ zlib apr aprutil sqlite ]
-    ++ stdenv.lib.optional httpSupport neon
+    ++ stdenv.lib.optional httpSupport serf
     ++ stdenv.lib.optional pythonBindings python
     ++ stdenv.lib.optional perlBindings perl
     ++ stdenv.lib.optional saslSupport sasl;
@@ -43,6 +39,7 @@ stdenv.mkDerivation rec {
     ${if javahlBindings then "--enable-javahl --with-jdk=${jdk}" else ""}
     ${if stdenv.isDarwin then "--enable-keychain" else "--disable-keychain"}
     ${if saslSupport then "--enable-sasl --with-sasl=${sasl}" else "--disable-sasl"}
+    ${if httpSupport then "--enable-serf --with-serf=${serf}" else "--disable-serf"}
     --with-zlib=${zlib}
     --with-sqlite=${sqlite}
   '';
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index f6ebc241bac2..d75cca14b3a0 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   name = "vlc-${version}";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
-    sha256 = "14mrcswz5mz976dmplbrdm3mkwjrksspvkignhbnbvrrp77r571k";
+    sha256 = "1i4fzjv2x8mzx0bg52mgh1rrlircmb81jr58z90blbmww4mq36r1";
   };
 
   buildInputs =
diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix
index 691b41dc6e30..e645bbcf2845 100644
--- a/pkgs/applications/video/xbmc/default.nix
+++ b/pkgs/applications/video/xbmc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, makeWrapper
 , pkgconfig, cmake, gnumake, yasm, pythonFull
-, boost, avahi, libdvdcss, lame
-, gettext, pcre, yajl, fribidi
+, boost, avahi, libdvdcss, lame, autoreconfHook
+, gettext, pcre, yajl, fribidi, which
 , openssl, gperf, tinyxml2, taglib, libssh, swig, jre
 , libX11, xproto, inputproto
 , libXt, libXmu, libXext, xextproto
@@ -34,20 +34,20 @@ assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
 assert pulseSupport -> pulseaudio != null;
 
 stdenv.mkDerivation rec {
-    name = "xbmc-12.2";
+    name = "xbmc-12.3";
 
     src = fetchurl {
       url = "http://mirrors.xbmc.org/releases/source/${name}.tar.gz";
-      sha256 = "077apkq9sx6wlwkwmiz63w5dcqbbrbjbn6qk9fj2fgaizhs0ccxj";
+      sha256 = "0wyy9rsl11px4mh0fyq75n29905ldiqp8yraz6jxxvrls1hcj59y";
     };
 
     buildInputs = [
       makeWrapper
       pkgconfig cmake gnumake yasm pythonFull
-      boost libmicrohttpd
+      boost libmicrohttpd autoreconfHook
       gettext pcre yajl fribidi
       openssl gperf tinyxml2 taglib libssh swig jre
-      libX11 xproto inputproto
+      libX11 xproto inputproto which
       libXt libXmu libXext xextproto
       libXinerama libXrandr randrproto
       libXtst libXfixes fixesproto
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
     preConfigure = ''
       substituteInPlace xbmc/linux/LinuxTimezone.cpp \
         --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+      ./bootstrap
     '';
 
     configureFlags = [
diff --git a/pkgs/applications/window-managers/compton/default.nix b/pkgs/applications/window-managers/compton/default.nix
index dc1622972ad1..efa820b0b6a2 100644
--- a/pkgs/applications/window-managers/compton/default.nix
+++ b/pkgs/applications/window-managers/compton/default.nix
@@ -1,17 +1,24 @@
-{ stdenv, fetchgit, pkgconfig, libXcomposite, libXfixes, libXdamage
-, libXrender, libXext }:
+{ stdenv, fetchurl, pkgconfig
+, dbus, libconfig, libdrm, libxml2, mesa, pcre
+, libXcomposite, libXfixes, libXdamage, libXinerama
+, libXrandr, libXrender, libXext }:
+
 stdenv.mkDerivation rec {
-  name = "compton-20120507";
-  src = fetchgit {
-    url = git://github.com/chjj/compton.git;
-    rev = "d52f7a06dbc55d92e061f976730952177edac739";
-    sha256 = "0f7600a841c4c77d181b54bc14cf7d90d0bad25aa5edbade320ca8b9946f14eb";
+
+  name = "compton-0.1_beta2";
+
+  src = fetchurl {
+    url = https://github.com/chjj/compton/releases/download/v0.1_beta2/compton-git-v0.1_beta2-2013-10-21.tar.xz;
+    sha256 = "1mpgn1d98dv66xs2j8gaxjiw26nzwl9a641lrday7h40g3k45g9v";
   };
-  buildInputs = [ pkgconfig libXcomposite libXfixes libXdamage libXrender libXext ];
+
+  buildInputs = [ pkgconfig dbus libconfig libdrm libxml2 mesa pcre
+    libXcomposite libXfixes libXdamage libXinerama libXrandr libXrender libXext ];
   buildFlagsArray = ["CFLAGS=-O3 -fomit-frame-pointer"];
   installFlags = "PREFIX=$(out)";
-  meta = {
-    homepage = http://www.x.org/;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/chjj/compton/;
     description = "A fork of XCompMgr, a sample compositing manager for X servers";
     longDescription = ''
       A fork of XCompMgr, which is a  sample compositing manager for X servers
@@ -19,7 +26,7 @@ stdenv.mkDerivation rec {
       basic eye-candy effects. This fork adds additional features, such as additional
       effects, and a fork at a well-defined and proper place.
     '';
-    license = "bsd";
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.mit;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index cfa6175744f5..6dc83963d19d 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -1,6 +1,7 @@
 # generic builder for Cabal packages
 
 { stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal, glibcLocales
+, gnugrep, coreutils
 , enableLibraryProfiling ? false
 , enableSharedLibraries ? false
 , enableSharedExecutables ? false
@@ -140,6 +141,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
             # and run any regression test suites the package might have
             doCheck = enableCheckPhase;
 
+            # abort the build if the configure phase detects that the package
+            # depends on multiple versions of the same build input
+            strictConfigurePhase = true;
+
             # pass the '--enable-library-vanilla' flag to cabal in the
             # configure stage to enable building shared libraries
             inherit enableStaticLibraries;
@@ -195,7 +200,15 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
               ''}
 
               echo "configure flags: $extraConfigureFlags $configureFlags"
-              ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' --libsubdir='$pkgid' $extraConfigureFlags $configureFlags
+              ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
+                --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \
+              ${optionalString self.strictConfigurePhase ''
+                | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
+                if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
+                  echo >&2 "*** abort because of serious configure-time warning from Cabal"
+                  exit 1
+                fi
+              ''}
 
               eval "$postConfigure"
             '';
diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh
index 68dce2cc585b..3ab6e730a51b 100644
--- a/pkgs/build-support/fetchsvn/builder.sh
+++ b/pkgs/build-support/fetchsvn/builder.sh
@@ -22,7 +22,7 @@ fi;
 # server's certificate.  This is perfectly safe: we don't care
 # whether the server is being spoofed --- only the cryptographic
 # hash of the output matters. Pass in extra p's to handle redirects.
-printf 'p\np\np\n' | svn export ${ignoreExternals:+--ignore-externals} \
+printf 'p\np\np\n' | svn export --trust-server-cert --non-interactive ${ignoreExternals:+--ignore-externals} \
     -r "$rev" "$url" "$out"
 
 stopNest
diff --git a/pkgs/data/misc/freepats/default.nix b/pkgs/data/misc/freepats/default.nix
index 21f34a607d4f..ac015c02b199 100644
--- a/pkgs/data/misc/freepats/default.nix
+++ b/pkgs/data/misc/freepats/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = http://freepats.zenvoid.org/;
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index cecd56ad4f27..c2e1c062e9e3 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -1,7 +1,5 @@
 { callPackage, self, stdenv, gettext, gvfs, libunique, overrides ? {} }:
-{
-  __overrides = overrides;
-
+let overridden = set // overrides; set = with overridden; {
   # Backward compatibility.
   gtkdoc = self.gtk_doc;
   startupnotification = self.startup_notification;
@@ -117,4 +115,4 @@
 
   libglademm = callPackage ./bindings/libglademm { };
 
-}
+}; in overridden
diff --git a/pkgs/development/compilers/elm/elm.nix b/pkgs/development/compilers/elm/elm.nix
index 6fc65bf368b3..0f3c4d2ef643 100644
--- a/pkgs/development/compilers/elm/elm.nix
+++ b/pkgs/development/compilers/elm/elm.nix
@@ -1,18 +1,18 @@
 { cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup
 , cmdargs, filepath, HTF, indents, languageEcmascript, mtl, pandoc
-, parsec, text, transformers, unionFind, uniplate
+, parsec, text, transformers, unionFind, unorderedContainers
 }:
 
 cabal.mkDerivation (self: {
   pname = "Elm";
-  version = "0.10.0.2";
-  sha256 = "08aqz9lf754ygdwvjf4bs5ivnjyjx9rd43vrbzp0p4d3if6w6avz";
+  version = "0.10.1";
+  sha256 = "1y533vanhrxc14x304ig6q8ch6zih8yqgpfgw4h5vk5fpdmn09a2";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath
     indents languageEcmascript mtl pandoc parsec text transformers
-    unionFind uniplate
+    unionFind unorderedContainers
   ];
   testDepends = [ HTF ];
   doCheck = false;
diff --git a/pkgs/development/compilers/jdk/jdk7-linux.nix b/pkgs/development/compilers/jdk/jdk7-linux.nix
index a7a5eccee9d5..7ef575ba807b 100644
--- a/pkgs/development/compilers/jdk/jdk7-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk7-linux.nix
@@ -29,10 +29,10 @@ let
       requireFile {
         name = "UnlimitedJCEPolicyJDK7.zip";
         url = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
-        sha256 = "0qljzfxbikm8br5k7rkamibp1vkyjrf6blbxpx6hn4k46f62bhnh";
+        sha256 = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
       }
     else
-      null;
+      "";
 in
 
 stdenv.mkDerivation {
@@ -93,12 +93,13 @@ stdenv.mkDerivation {
       jrePath=$out/jre
     fi
 
-    if test -n "$jce"; then
-      unzip $jce
-      cp -v jce/*.jar $jrePath/lib/security
+    if test -n "${jce}"; then
+      unzip ${jce}
+      cp -v UnlimitedJCEPolicy/*.jar $jrePath/lib/security
     fi
 
     rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/jli
+    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}
 
     # set all the dynamic linkers
     find $out -type f -perm +100 \
diff --git a/pkgs/development/compilers/nasm/default.nix b/pkgs/development/compilers/nasm/default.nix
index 61015a66d165..cbbb5608a461 100644
--- a/pkgs/development/compilers/nasm/default.nix
+++ b/pkgs/development/compilers/nasm/default.nix
@@ -11,5 +11,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.nasm.us/;
     description = "An 80x86 and x86-64 assembler designed for portability and modularity";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 34848795d4a5..0c653064eacf 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -4,11 +4,11 @@ let
   s= # Generated upstream information
   rec {
     baseName="sbcl";
-    version="1.1.13";
+    version="1.1.14";
     name="${baseName}-${version}";
-    hash="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
-    url="mirror://sourceforge/project/sbcl/sbcl/1.1.13/sbcl-1.1.13-source.tar.bz2";
-    sha256="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
+    hash="0vqsq6q4xvz7vn1akvjwxp406mysak4h955pp8x32dfqc6ina7k7";
+    url="mirror://sourceforge/project/sbcl/sbcl/1.1.14/sbcl-1.1.14-source.tar.bz2";
+    sha256="0vqsq6q4xvz7vn1akvjwxp406mysak4h955pp8x32dfqc6ina7k7";
   };
   buildInputs = with a; [
     clisp makeWrapper
diff --git a/pkgs/development/compilers/sbcl/newglibc.patch b/pkgs/development/compilers/sbcl/newglibc.patch
deleted file mode 100644
index dbc94b06d4c9..000000000000
--- a/pkgs/development/compilers/sbcl/newglibc.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Fixes for glibc 2.17.
-
-linux-os.c is just a missing header (for personality()).
-
-In x86-64-linux-os.c, __USE_GNU is a glibc-internal name that features.h
-defines; _GNU_SOURCE is what it should actually be using to get GNU extensions.
-
-diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/linux-os.c work/sbcl-1.1.2/src/runtime/linux-os.c
---- tmp/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-01 11:32:38.000000000 +0000
-+++ work/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-31 01:20:37.619000000 +0000
-@@ -46,6 +46,7 @@
- #include <sys/stat.h>
- #include <unistd.h>
- #include <linux/version.h>
-+#include <sys/personality.h>
- 
- #include "validate.h"
- #include "thread.h"
-diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c
---- tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-01 11:32:38.000000000 +0000
-+++ work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-31 01:20:25.450000000 +0000
-@@ -14,6 +14,9 @@
-  * files for more information.
-  */
- 
-+/* This is to get REG_RAX etc. from sys/ucontext.h. */
-+#define _GNU_SOURCE
-+
- #include <stdio.h>
- #include <stddef.h>
- #include <sys/param.h>
-@@ -21,11 +24,7 @@
- #include <sys/types.h>
- #include <unistd.h>
- #include <errno.h>
--
--#define __USE_GNU
- #include <sys/ucontext.h>
--#undef __USE_GNU
--
- 
- #include "./signal.h"
- #include "os.h"
diff --git a/pkgs/development/compilers/sdcc/default.nix b/pkgs/development/compilers/sdcc/default.nix
index 472930d047bf..1a51f087a28f 100644
--- a/pkgs/development/compilers/sdcc/default.nix
+++ b/pkgs/development/compilers/sdcc/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = http://sdcc.sourceforge.net/;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/compilers/yasm/default.nix b/pkgs/development/compilers/yasm/default.nix
index 02614106706c..9a803a6d5106 100644
--- a/pkgs/development/compilers/yasm/default.nix
+++ b/pkgs/development/compilers/yasm/default.nix
@@ -12,5 +12,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.tortall.net/projects/yasm/;
     description = "Complete rewrite of the NASM assembler";
     license = "BSD";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix
index 6bdf31bf6c96..5f1749f33c9e 100644
--- a/pkgs/development/interpreters/elixir/default.nix
+++ b/pkgs/development/interpreters/elixir/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }:
 
 let
-  version = "0.11.2";
+  version = "0.12.0";
 in
 stdenv.mkDerivation {
   name = "elixir-${version}";
 
   src = fetchurl {
     url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
-    sha256 = "0rgx33q013c5y2jjwd4l93pzd3v3fha8xdsrhpl9c9wb7yprjc5x";
+    sha256 = "0cir2y36zljwphiqyz8xmq7qq0f094jmfy3qwk3wdm05c05nqnc8";
   };
 
   buildInputs = [ erlang rebar makeWrapper ];
diff --git a/pkgs/development/interpreters/pypy/2.2/default.nix b/pkgs/development/interpreters/pypy/2.2/default.nix
index 80ad4c70a107..b870522f6297 100644
--- a/pkgs/development/interpreters/pypy/2.2/default.nix
+++ b/pkgs/development/interpreters/pypy/2.2/default.nix
@@ -26,7 +26,8 @@ let
 
     C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/include") buildInputs);
     LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
-    LD_LIBRARY_PATH = LIBRARY_PATH;
+    LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") 
+      (stdenv.lib.filter (x : x.outPath != stdenv.gcc.libc.outPath or "") buildInputs));
 
     preConfigure = ''
       substituteInPlace Makefile \
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index 509249b7f240..36cb8158506f 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -17,7 +17,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.3";
-  version = "${majorVersion}.2";
+  version = "${majorVersion}.3";
 
   buildInputs = filter (p: p != null) [
     zlib bzip2 gdbm sqlite db4 readline ncurses openssl tcl tk libX11 xproto
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "16myvina7nakyyg7r5gnjyydk8bzar988vmxsw2k485w5gz04wpp";
+    sha256 = "1jwd9pw7vx6xpjyi7iv5j3rwwkf3vzrwj36kcj1qh8zn2avfj9p5";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index 89c2c31ef7a9..e2d72fc7d6b0 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, apr, expat
+{ stdenv, fetchurl, makeWrapper, apr, expat, gnused
 , sslSupport ? true, openssl
 , bdbSupport ? false, db4
 , ldapSupport ? true, openldap
@@ -8,6 +8,10 @@ assert sslSupport -> openssl != null;
 assert bdbSupport -> db4 != null;
 assert ldapSupport -> openldap != null;
 
+let
+  optional = stdenv.lib.optional;
+in
+
 stdenv.mkDerivation rec {
   name = "apr-util-1.5.3";
 
@@ -24,7 +28,15 @@ stdenv.mkDerivation rec {
     ${stdenv.lib.optionalString ldapSupport "--with-ldap"}
   '';
 
-  propagatedBuildInputs = stdenv.lib.optional ldapSupport openldap;
+  propagatedBuildInputs = [ makeWrapper apr expat ]
+    ++ optional sslSupport openssl
+    ++ optional bdbSupport db4
+    ++ optional ldapSupport openldap;
+
+  # Give apr1 access to sed for runtime invocations
+  postInstall = ''
+    wrapProgram $out/bin/apu-1-config --prefix PATH : "${gnused}/bin"
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index e096c5fa94f3..97043f11f50f 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -1,30 +1,32 @@
-{fetchurl, stdenv, builderDefs, stringsWithDeps, singlePrecision ? false, pthreads ? false, float ? false}:
+{ fetchurl, stdenv, builderDefs, precision ? "double" }:
+
+assert stdenv.lib.elem precision [ "single" "double" "long-double" "quad-precision" ];
+
+with { inherit (stdenv.lib) optional; };
+
 let
-  version = "3.3.2";
-  localDefs = builderDefs.passthru.function { 
-  src = 
-    fetchurl {
-      url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
-      sha256 = "b1236a780ca6e66fc5f8eda6ef0665d680e8253d9f01d7bf211b714a50032d01";
-    };
-  buildInputs = [];
-  configureFlags = ["--enable-shared"]
-                        # some distros seem to be shipping both versions within the same package?
-                        # why does --enable-float still result in ..3f.so instead of ..3.so?
-                   ++ (if singlePrecision then [ "--enable-single" ] else [ ])
-                   ++ (if float then [ "--enable-float" ] else [ ])
-		   ++ (stdenv.lib.optional (!pthreads) "--enable-openmp")
-		   ++ (stdenv.lib.optional pthreads "--enable-threads")
-                        # I think all i686 has sse
-                   ++ (if (stdenv.isi686 || stdenv.isx86_64) && singlePrecision then [ "--enable-sse" ] else [ ])
-                        # I think all x86_64 has sse2
-                   ++ (if stdenv.isx86_64 && ! singlePrecision then [ "--enable-sse2" ] else [ ]);
-                
+  version = "3.3.3";
+  localDefs = builderDefs.passthru.function {
+    src =
+      fetchurl {
+        url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
+        sha256 = "1wwp9b2va7vkq3ay7a9jk22nr4x5q6m37rzqy2j8y3d11c5grkc5";
+      };
+    buildInputs = [];
+    configureFlags = [
+        "--enable-shared" "--disable-static"
+        "--enable-threads" "--enable-openmp" # very small wrappers
+      ]
+      ++ optional (precision != "double") "--enable-${precision}"
+      # all x86_64 have sse2
+      ++ optional stdenv.isx86_64 "--enable-sse2";
   };
+
 in with localDefs;
-stdenv.mkDerivation {
-  name = "fftw-3.3.2" + ( if singlePrecision then "-single" else "-double" );
-  builder = writeScript "fftw-3.3.2-builder"
+
+stdenv.mkDerivation rec {
+  name = "fftw-${precision}-${version}";
+  builder = writeScript "${name}-builder"
     (textClosure localDefs [doConfigure doMakeInstall doForceShare]);
   meta = {
     description = "Fastest Fourier Transform in the West library";
@@ -34,3 +36,4 @@ stdenv.mkDerivation {
     inherit src;
   };
 }
+
diff --git a/pkgs/development/libraries/fltk/fltk13.nix b/pkgs/development/libraries/fltk/fltk13.nix
index 3ab267ad6b4a..c6951db228b4 100644
--- a/pkgs/development/libraries/fltk/fltk13.nix
+++ b/pkgs/development/libraries/fltk/fltk13.nix
@@ -3,13 +3,13 @@
 
 let inherit (composableDerivation) edf; in
 
-let version = "1.3.0"; in
+let version = "1.3.2"; in
 composableDerivation.composableDerivation {} {
   name = "fltk-${version}";
 
   src = fetchurl {
-    url = "ftp://ftp.easysw.com/pub/fltk/${version}/fltk-${version}-source.tar.gz";
-    sha256 = "075j6ljx4dfg9rnkardn24y0f26ylpakm0yylg6a9kllha07c1lr";
+    url = "http://fltk.org/pub/fltk/${version}/fltk-${version}-source.tar.gz";
+    sha256 = "1974brlk723095vf8z72kazq1cbqr9a51kq6b0xda6zkjkgl8q0p";
   };
 
   propagatedBuildInputs = [ x11 inputproto libXi freeglut ];
diff --git a/pkgs/development/libraries/haskell/DRBG/default.nix b/pkgs/development/libraries/haskell/DRBG/default.nix
new file mode 100644
index 000000000000..0d479b815153
--- /dev/null
+++ b/pkgs/development/libraries/haskell/DRBG/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cereal, cipherAes128, cryptoApi, cryptohashCryptoapi
+, entropy, mtl, parallel, prettyclass, tagged
+}:
+
+cabal.mkDerivation (self: {
+  pname = "DRBG";
+  version = "0.5.1";
+  sha256 = "0mqgll5rf0h0yrdng1w9i8pis4yv9f4qffkh4c0g1ng5lxa9l747";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cereal cipherAes128 cryptoApi cryptohashCryptoapi entropy mtl
+    parallel prettyclass tagged
+  ];
+  meta = {
+    description = "Deterministic random bit generator (aka RNG, PRNG) based HMACs, Hashes, and Ciphers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HsOpenSSL/default.nix b/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
index d7736a5d9b9a..f7ebac247e5e 100644
--- a/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
+++ b/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HsOpenSSL";
-  version = "0.10.3.6";
-  sha256 = "0h2q9isbrfvsyr4yzcv7y0vd3gha8ym67l4sn7zlz39n376i2z10";
+  version = "0.10.4";
+  sha256 = "1vpidm3jfwlyf61r0g9fks445w4w0kxk3g37fw4slfb1q3xknq2r";
   buildDepends = [ network time ];
   extraLibraries = [ openssl ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/RSA/default.nix b/pkgs/development/libraries/haskell/RSA/default.nix
index c5257c5b2620..9ac3036ffb51 100644
--- a/pkgs/development/libraries/haskell/RSA/default.nix
+++ b/pkgs/development/libraries/haskell/RSA/default.nix
@@ -1,16 +1,19 @@
-{ cabal, binary, cryptoApi, cryptoPubkeyTypes, monadcryptorandom
-, pureMD5, SHA
+{ cabal, binary, cryptoApi, cryptoPubkeyTypes, DRBG
+, monadcryptorandom, pureMD5, QuickCheck, SHA, tagged
+, testFramework, testFrameworkQuickcheck2
 }:
 
 cabal.mkDerivation (self: {
   pname = "RSA";
-  version = "1.2.2.0";
-  sha256 = "0x4an1060slppyccf18isqrdl548ll33xzzqch3qxg285a0mm12m";
-  isLibrary = true;
-  isExecutable = true;
+  version = "2.0";
+  sha256 = "170bjcqd6q8q0c0idjpm9vgn02ifwxz1xvwp1l30qdf56293p4bq";
   buildDepends = [
     binary cryptoApi cryptoPubkeyTypes monadcryptorandom pureMD5 SHA
   ];
+  testDepends = [
+    binary cryptoApi cryptoPubkeyTypes DRBG pureMD5 QuickCheck SHA
+    tagged testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
index bfccdcffd746..51034652e1ee 100644
--- a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
+++ b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ansi-wl-pprint";
-  version = "0.6.6";
-  sha256 = "1zkbiv5cpdgjiyn2nrrha29r84al7jg6647flqmc8riz2nn91zqy";
+  version = "0.6.7.1";
+  sha256 = "1by11bg1bd7z18hqgayk0w76hy5n63kmdl14gainlvfgr9jw506r";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ ansiTerminal ];
diff --git a/pkgs/development/libraries/haskell/asn1-types/default.nix b/pkgs/development/libraries/haskell/asn1-types/default.nix
index dfa5ef4c8036..8b259e7aada1 100644
--- a/pkgs/development/libraries/haskell/asn1-types/default.nix
+++ b/pkgs/development/libraries/haskell/asn1-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "asn1-types";
-  version = "0.2.2";
-  sha256 = "0h3ww7iyf1xzl88mzmi03h6ws942953dr56v896vrkj3mj01hayx";
+  version = "0.2.3";
+  sha256 = "1cdzhj6zls6qmy82218cj2a25b7rkxsjbcqnx4zng3wp6s5pghw4";
   buildDepends = [ time ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-asn1-types";
diff --git a/pkgs/development/libraries/haskell/cipher-aes128/default.nix b/pkgs/development/libraries/haskell/cipher-aes128/default.nix
new file mode 100644
index 000000000000..c8be6bcb0dcf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cipher-aes128/default.nix
@@ -0,0 +1,14 @@
+{ cabal, cereal, cryptoApi, tagged }:
+
+cabal.mkDerivation (self: {
+  pname = "cipher-aes128";
+  version = "0.5";
+  sha256 = "14rwnz0nwmy1zch1ywjxf2fgfs1xj84l4n785rhb6npmx6k7rmqd";
+  buildDepends = [ cereal cryptoApi tagged ];
+  meta = {
+    homepage = "https://github.com/TomMD/cipher-aes128";
+    description = "AES128 using AES-NI when available";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index b6bf865d1839..af740197765f 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude-conduit";
-  version = "0.6.0";
-  sha256 = "122clkwrz1n009b5gxq96sbby7i8kb4dgvc90ydamd86bx3pvc84";
+  version = "0.7.0";
+  sha256 = "0njhfqbcbsy1rv61fc4xqzqlb68hzqg9cr31f8bs6h7pa12n38zq";
   buildDepends = [
     classyPrelude conduit monadControl resourcet systemFileio
     transformers void
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index f296ff21ced8..d2c0ccaf652e 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -1,16 +1,16 @@
 { cabal, async, basicPrelude, deepseq, hashable, hspec, liftedBase
 , monadControl, monoTraversable, QuickCheck, semigroups
-, systemFilepath, text, transformers, unorderedContainers, vector
-, vectorInstances
+, systemFilepath, text, time, transformers, unorderedContainers
+, vector, vectorInstances
 }:
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.6.0";
-  sha256 = "0wpymr2gl0hmbgpw0qd0h1ik1h42s8raykq7jsdjqnmcvsmww5j6";
+  version = "0.7.0";
+  sha256 = "19n2kzzskrdwyacq14y8gf1avcy7clp7gzqh36dhw7pypy3x0k9n";
   buildDepends = [
     async basicPrelude deepseq hashable liftedBase monadControl
-    monoTraversable semigroups systemFilepath text transformers
+    monoTraversable semigroups systemFilepath text time transformers
     unorderedContainers vector vectorInstances
   ];
   testDepends = [
diff --git a/pkgs/development/libraries/haskell/crypto-pubkey/default.nix b/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
index d3355f4c85c8..b321c231bb40 100644
--- a/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-pubkey";
-  version = "0.2.3";
-  sha256 = "198gpaxlcqkp6wa5cwwnlzdxnrs7j6h7zyizczd4imwbpl0gd2mk";
+  version = "0.2.4";
+  sha256 = "0mdjr6zma2q7r2z9qibp2bwf73bis6zrv7ss62i4pz42kndb9hh4";
   buildDepends = [
     byteable cryptohash cryptoNumbers cryptoPubkeyTypes cryptoRandom
   ];
diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
index c107c4c3c3c6..f979926a42a9 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-heist";
-  version = "0.8.3.1";
-  sha256 = "11hrp3j3pz1ljp4mh5770fn70bga90kxgwqrm1fl6ki10q2q6z2h";
+  version = "0.8.4.0";
+  sha256 = "15n8piiqys010in8xp5iszjqsa2ndgk52adqgk2h6q3m5q0jkdb3";
   buildDepends = [
     blazeBuilder digestiveFunctors heist mtl text xmlhtml
   ];
diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix
index 93dfd043c907..cec991fab3f4 100644
--- a/pkgs/development/libraries/haskell/either/default.nix
+++ b/pkgs/development/libraries/haskell/either/default.nix
@@ -1,12 +1,14 @@
-{ cabal, MonadRandom, mtl, semigroupoids, semigroups, transformers
+{ cabal, monadControl, MonadRandom, mtl, semigroupoids, semigroups
+, transformers, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "either";
-  version = "4.0";
-  sha256 = "07axaq43cqyglndr5az7ns4mvkjmybq6z8s32l1jxc5x7532scwr";
+  version = "4.1";
+  sha256 = "1wddidjqwk283zrydl6xwi0crrrlskayici0fhjyf2abd3lgnnkc";
   buildDepends = [
-    MonadRandom mtl semigroupoids semigroups transformers
+    monadControl MonadRandom mtl semigroupoids semigroups transformers
+    transformersBase
   ];
   meta = {
     homepage = "http://github.com/ekmett/either/";
diff --git a/pkgs/development/libraries/haskell/fast-logger/default.nix b/pkgs/development/libraries/haskell/fast-logger/default.nix
index ee51859404ce..77ecd7110592 100644
--- a/pkgs/development/libraries/haskell/fast-logger/default.nix
+++ b/pkgs/development/libraries/haskell/fast-logger/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fast-logger";
-  version = "2.0.0";
-  sha256 = "0a2pmdj2q1mlpkwjszlb4gp6xk2bn8540cqhwjya55arx6rj9vs7";
+  version = "2.1.0";
+  sha256 = "116xdk455vlgyj3ck3bpzyavbfwq9asj2hlyjazb8vb1f9byxxkf";
   buildDepends = [ blazeBuilder filepath text ];
   testDepends = [ hspec ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/fastcgi/default.nix b/pkgs/development/libraries/haskell/fastcgi/default.nix
new file mode 100644
index 000000000000..365be55c7bbc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fastcgi/default.nix
@@ -0,0 +1,15 @@
+{ cabal, cgi, fcgi }:
+
+cabal.mkDerivation (self: {
+  pname = "fastcgi";
+  version = "3001.0.2.4";
+  sha256 = "0lp17w098043xczwkah7h1x47wzrym7vv5adgla0aq9iybqay7xr";
+  buildDepends = [ cgi ];
+  extraLibraries = [ fcgi ];
+  meta = {
+    description = "A Haskell library for writing FastCGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.tomberek ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/fclabels/default.nix b/pkgs/development/libraries/haskell/fclabels/default.nix
index 67276b77c1dd..f9c7663e3214 100644
--- a/pkgs/development/libraries/haskell/fclabels/default.nix
+++ b/pkgs/development/libraries/haskell/fclabels/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fclabels";
-  version = "2.0.0.5";
-  sha256 = "1xg0bvk6m981v05j3jp35hyclfilnic1q83kla8zlbnmdpqljqdb";
+  version = "2.0.1";
+  sha256 = "0gx0vqdxx797zh69xy2s62kyfsp9m48dfpbjykllg4fsk0x60wav";
   buildDepends = [ mtl transformers ];
   meta = {
     homepage = "https://github.com/sebastiaanvisser/fclabels";
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index 50e70c27dd20..0112f6e419e6 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -15,7 +15,7 @@ cabal.mkDerivation (self: {
     transformers wlPprintText
   ];
   patchPhase = ''
-    sed -i -e 's|polyparse.*,|polyparse,|' -e 's|dlist ==.*|dlist|' graphviz.cabal
+    sed -i -e 's|polyparse.*,|polyparse,|' -e 's|dlist ==.*|dlist|' -e 's|temporary.*,|temporary,|' graphviz.cabal
   '';
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 89513e372ea2..ca6de3fecfe1 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "1.1.7.5";
-  sha256 = "1ph92n5l63qr5hpjcvl37j1w857dwwzzgsxn8mdadi2pz35lxm82";
+  version = "1.1.7.6";
+  sha256 = "1b0y7imdihm87nkz32bmh2gbalidy9rzp85x677lvxc99c1m9d1d";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
diff --git a/pkgs/development/libraries/haskell/heredoc/default.nix b/pkgs/development/libraries/haskell/heredoc/default.nix
new file mode 100644
index 000000000000..c488fdd153b1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/heredoc/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "heredoc";
+  version = "0.2.0.0";
+  sha256 = "0h0g2f7yscwl1ba1yn3jnz2drvd6ns9m910hwlmq3kdq3k39y3f9";
+  meta = {
+    homepage = "http://hackage.haskell.org/package/heredoc";
+    description = "multi-line string / here document using QuasiQuotes";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/lens-aeson/default.nix b/pkgs/development/libraries/haskell/lens-aeson/default.nix
new file mode 100644
index 000000000000..7ea890a5eb35
--- /dev/null
+++ b/pkgs/development/libraries/haskell/lens-aeson/default.nix
@@ -0,0 +1,23 @@
+{ cabal, aeson, attoparsec, doctest, filepath, genericDeriving
+, lens, semigroups, simpleReflect, text, unorderedContainers
+, utf8String, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "lens-aeson";
+  version = "0.1.2";
+  sha256 = "1h0w8p227r8gzvgqjl210i0z7xxv3435vwyi3j7vkm7a05cdk03l";
+  buildDepends = [
+    aeson attoparsec lens text unorderedContainers utf8String vector
+  ];
+  testDepends = [
+    doctest filepath genericDeriving semigroups simpleReflect
+  ];
+  meta = {
+    homepage = "http://github.com/lens/lens-aeson/";
+    description = "Law-abiding lenses for aeson";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix
index fff7f1cc5830..704ec8db48e0 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "lens";
-  version = "3.10.0.1";
-  sha256 = "0ar19ls0w1x1cnl6aj5qvrlyhfk51v8czahq4k861666rzglqd28";
+  version = "3.10.1";
+  sha256 = "0xjjld1ra1a0a739ia8swgbpw7r72hv0bs9akbqr9wyw8qdzibnh";
   buildDepends = [
     bifunctors comonad contravariant distributive filepath
     genericDeriving hashable MonadCatchIOTransformers mtl parallel
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
index afd968227103..a66ad0faf01f 100644
--- a/pkgs/development/libraries/haskell/monad-logger/default.nix
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -1,15 +1,15 @@
-{ cabal, conduit, fastLogger, liftedBase, monadControl, monadLoops
-, mtl, resourcet, stm, stmChans, text, transformers
-, transformersBase
+{ cabal, blazeBuilder, conduit, fastLogger, liftedBase
+, monadControl, monadLoops, mtl, resourcet, stm, stmChans, text
+, transformers, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "monad-logger";
-  version = "0.3.3.2";
-  sha256 = "0s75q974q6jwp89xj5kkqziy4crm9484dqvrpgd8ms7rw613jjz6";
+  version = "0.3.4.0";
+  sha256 = "16nrzms87klbs26rbaw4j8xal5k7glpbhg7r2x1m3gxbdhsp696n";
   buildDepends = [
-    conduit fastLogger liftedBase monadControl monadLoops mtl resourcet
-    stm stmChans text transformers transformersBase
+    blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
+    mtl resourcet stm stmChans text transformers transformersBase
   ];
   meta = {
     homepage = "https://github.com/kazu-yamamoto/logger";
diff --git a/pkgs/development/libraries/haskell/mono-traversable/default.nix b/pkgs/development/libraries/haskell/mono-traversable/default.nix
index 42cfee3412b3..ed88e24ffa94 100644
--- a/pkgs/development/libraries/haskell/mono-traversable/default.nix
+++ b/pkgs/development/libraries/haskell/mono-traversable/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mono-traversable";
-  version = "0.1.0.0";
-  sha256 = "1pkg8lagfiixgq2xb4ficgcqv1hhmxy2r49lq9szar7knh0gcjn1";
+  version = "0.2.0.0";
+  sha256 = "1wg0yzim3ql73w5rsxjnglwlg8r2hqliddmdk8vwsbvg02kgwxvz";
   buildDepends = [
     comonad hashable semigroupoids semigroups text transformers
     unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
index 0db0a816eeac..c4dc0be2a43f 100644
--- a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-postgresql";
-  version = "1.2.1.3";
-  sha256 = "0chr8bs0823rkpf9cfx56ghjf29s9xaw23qx5a8g27x7dw5xvc12";
+  version = "1.3.0";
+  sha256 = "1mayfq1z9i46nqgiajkhxx4z3hfy3gl5nzx8d5xlp7s1mliz3qjv";
   buildDepends = [
     aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
     postgresqlSimple text time transformers
diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
index e4a3bc77600f..33cb2e0340a1 100644
--- a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-sqlite";
-  version = "1.2.1";
-  sha256 = "1lbb8s6p3xixlkgwx30p473b438qjnw9s41bcm1q38vkklpa75y0";
+  version = "1.3.0";
+  sha256 = "04h0k3zf1jpa8y37naqjmh38jx32y61mg22rsmqjjpz1b0m0pwgb";
   buildDepends = [
     aeson conduit monadControl monadLogger persistent text transformers
   ];
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index 9dc42ea5e39c..b004a18af154 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -1,13 +1,14 @@
 { cabal, aeson, hspec, monadControl, monadLogger, persistent
-, QuickCheck, text, transformers
+, QuickCheck, text, transformers, unorderedContainers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.2.0.6";
-  sha256 = "1vkrxf2dabk9z0igfbvb2ib2bxcxi5af2vpxllv74cbjz9r6ip3s";
+  version = "1.3.0";
+  sha256 = "0amg5xncxgpc19yhj3gi7ldw126dy725pxj7kp43lbgggap0yfv9";
   buildDepends = [
     aeson monadControl monadLogger persistent text transformers
+    unorderedContainers
   ];
   testDepends = [ aeson hspec persistent QuickCheck text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 8ca5a919f5c1..ade655a634a6 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.2.3.2";
-  sha256 = "18kail3v524k10gjx2j6yh462bvf89lq49gya0hiwxkmqsbx9fdn";
+  version = "1.3.0";
+  sha256 = "03m2knmjkm25n48shqc7i7mjr0npwdq2dva8ygv9imzjdcb1146m";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
     liftedBase monadControl monadLogger pathPieces poolConduit
diff --git a/pkgs/development/libraries/haskell/prettyclass/default.nix b/pkgs/development/libraries/haskell/prettyclass/default.nix
new file mode 100644
index 000000000000..af4e4d7beaa0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/prettyclass/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "prettyclass";
+  version = "1.0.0.0";
+  sha256 = "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5";
+  meta = {
+    description = "Pretty printing class similar to Show";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/profunctors/default.nix b/pkgs/development/libraries/haskell/profunctors/default.nix
index 83d06b10ca66..41e4fc6eeb05 100644
--- a/pkgs/development/libraries/haskell/profunctors/default.nix
+++ b/pkgs/development/libraries/haskell/profunctors/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "profunctors";
-  version = "4.0.1";
-  sha256 = "13yr3n7jkhxbk4gk6nd1j8p1a7g5ir8g9xprcy3s1x39cqf4m986";
+  version = "4.0.2";
+  sha256 = "1p98pczrxvhk1imwics25b5ac59qzixblns83a1k9zszvz42kmix";
   buildDepends = [ comonad semigroupoids tagged transformers ];
   meta = {
     homepage = "http://github.com/ekmett/profunctors/";
diff --git a/pkgs/development/libraries/haskell/rethinkdb/default.nix b/pkgs/development/libraries/haskell/rethinkdb/default.nix
index 4a299e9f556e..f262663205ab 100644
--- a/pkgs/development/libraries/haskell/rethinkdb/default.nix
+++ b/pkgs/development/libraries/haskell/rethinkdb/default.nix
@@ -14,7 +14,7 @@ cabal.mkDerivation (self: {
   ];
   meta = {
     homepage = "http://github.com/atnnn/haskell-rethinkdb";
-    description = "RethinkDB is a distributed document store with a powerful query language";
+    description = "RethinkDB driver for Haskell";
     license = self.stdenv.lib.licenses.asl20;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/robots-txt/default.nix b/pkgs/development/libraries/haskell/robots-txt/default.nix
new file mode 100644
index 000000000000..a325c9e86647
--- /dev/null
+++ b/pkgs/development/libraries/haskell/robots-txt/default.nix
@@ -0,0 +1,15 @@
+{ cabal, attoparsec, heredoc, hspec, QuickCheck, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "robots-txt";
+  version = "0.4.0.0";
+  sha256 = "1z0bn4v6fx0nx1hr4bbxi5k2c8bv6x3d4pywpav67m5pswxb2yp7";
+  buildDepends = [ attoparsec ];
+  testDepends = [ attoparsec heredoc hspec QuickCheck transformers ];
+  meta = {
+    homepage = "http://github.com/meanpath/robots";
+    description = "Parser for robots.txt";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index f3891e554dd2..444eae235600 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
-  version = "1.2.0.3";
-  sha256 = "1mhycaw8qa4j7q5jing3hbx5vwwa0h4iv41fsx6xibz3y7lpqgmz";
+  version = "1.2.0.4";
+  sha256 = "0pgh4sxy5plhmm55mqbcmicn28vlplk4pasgfnyy5wjaz28n6z97";
   buildDepends = [ parsec systemFileio systemFilepath text time ];
   testDepends = [
     hspec parsec systemFileio systemFilepath text time
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index 6c677f85890e..518d22ee1d46 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "statistics";
-  version = "0.10.5.1";
-  sha256 = "1ld7cf83asia8dbq7kbn2s6f7la01scafk2wra2c85pmkql77kvc";
+  version = "0.10.5.2";
+  sha256 = "13wbxz83ci78k41c6swyiwi82rikm9i9vwjwj3d3w327xs59bvvy";
   buildDepends = [
     binary deepseq erf mathFunctions monadPar mwcRandom primitive
     vector vectorAlgorithms vectorBinaryInstances
diff --git a/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix b/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
index 4d90d51fceb9..c77ee5f3a3a0 100644
--- a/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tasty-ant-xml";
-  version = "1.0.0.4";
-  sha256 = "09qgakwqaqgppplxybkgyhyryxrw1pwlgkiqpixrqqhjans3z0hn";
+  version = "1.0.0.5";
+  sha256 = "00nlp627r5rgahs8zqjxjm68ijf4yvxd18fq67z2fr68alg4rl4j";
   buildDepends = [
     genericDeriving mtl reducers stm tagged tasty transformers xml
   ];
diff --git a/pkgs/development/libraries/haskell/tasty-golden/default.nix b/pkgs/development/libraries/haskell/tasty-golden/default.nix
index 14c642239399..0b13bb0dcff6 100644
--- a/pkgs/development/libraries/haskell/tasty-golden/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-golden/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tasty-golden";
-  version = "2.2.0.1";
-  sha256 = "0zr8ikg1j1nc29b6i23wb7zwbq0kmvjry7a1a6ldnz4p13m05q6d";
+  version = "2.2.0.2";
+  sha256 = "0wy29ybb31g34gjyx95an3azh111crvrrdhbbihjj064xvf6ddmy";
   buildDepends = [
     filepath mtl optparseApplicative tagged tasty temporary
   ];
diff --git a/pkgs/development/libraries/haskell/tasty/default.nix b/pkgs/development/libraries/haskell/tasty/default.nix
index c88e3c268d2e..2cf62b7cefd7 100644
--- a/pkgs/development/libraries/haskell/tasty/default.nix
+++ b/pkgs/development/libraries/haskell/tasty/default.nix
@@ -1,13 +1,13 @@
 { cabal, ansiTerminal, deepseq, either, mtl, optparseApplicative
-, regexPosix, stm, tagged
+, regexTdfa, stm, tagged
 }:
 
 cabal.mkDerivation (self: {
   pname = "tasty";
-  version = "0.6";
-  sha256 = "00mf8pxwingzywnzgh7dypask1spp18kpiwqjbf1y11dqbs6ib6w";
+  version = "0.7";
+  sha256 = "0nwhbbm70v2drv6kzdz65wws7gn8ph6583xpb6dw8g4j9aa1shxd";
   buildDepends = [
-    ansiTerminal deepseq either mtl optparseApplicative regexPosix stm
+    ansiTerminal deepseq either mtl optparseApplicative regexTdfa stm
     tagged
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/temporary/default.nix b/pkgs/development/libraries/haskell/temporary/default.nix
index df93cae198a0..5bb668e86a87 100644
--- a/pkgs/development/libraries/haskell/temporary/default.nix
+++ b/pkgs/development/libraries/haskell/temporary/default.nix
@@ -1,10 +1,10 @@
-{ cabal, filepath }:
+{ cabal, exceptions, filepath, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "temporary";
-  version = "1.1.2.4";
-  sha256 = "1j8kc22rz2wqg90n5wcxb06ylqv3lnz764077kvwhrw7mhmbp7jz";
-  buildDepends = [ filepath ];
+  version = "1.2.0.1";
+  sha256 = "12z8qnqn1fg9ymaav5ds7gk067lmj0bv1lhhxcnvmvjcpk1l5b54";
+  buildDepends = [ exceptions filepath transformers ];
   meta = {
     homepage = "http://www.github.com/batterseapower/temporary";
     description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal";
diff --git a/pkgs/development/libraries/haskell/trifecta/1.1.nix b/pkgs/development/libraries/haskell/trifecta/1.1.nix
index ac6cfdd43ae1..98772476fc04 100644
--- a/pkgs/development/libraries/haskell/trifecta/1.1.nix
+++ b/pkgs/development/libraries/haskell/trifecta/1.1.nix
@@ -19,7 +19,8 @@ cabal.mkDerivation (self: {
       --replace "blaze-html           >= 0.5     && < 0.6," "blaze-html           >= 0.5     && < 0.7," \
       --replace "hashable             >= 1.2     && < 1.3," "hashable             >= 1.1     && < 1.3," \
       --replace "fingertree           >= 0.0.1   && < 0.1," "fingertree           >= 0.0.1   && < 0.2," \
-      --replace "comonad              == 3.*,"              "comonad              >= 3       && < 5,"
+      --replace "comonad              == 3.*,"              "comonad              >= 3       && < 5," \
+      --replace "comonad              >= 3       && < 4,"   "comonad              >= 3       && < 5,"
   '';
   meta = {
     homepage = "http://github.com/ekmett/trifecta/";
diff --git a/pkgs/development/libraries/haskell/trifecta/1.2.nix b/pkgs/development/libraries/haskell/trifecta/1.2.nix
index de876fa7f67a..8181c445a5a1 100644
--- a/pkgs/development/libraries/haskell/trifecta/1.2.nix
+++ b/pkgs/development/libraries/haskell/trifecta/1.2.nix
@@ -19,6 +19,7 @@ cabal.mkDerivation (self: {
       --replace "blaze-html           >= 0.5     && < 0.6," "blaze-html           >= 0.5     && < 0.7," \
       --replace "hashable             >= 1.2     && < 1.3," "hashable             >= 1.1     && < 1.3," \
       --replace "fingertree           >= 0.0.1   && < 0.1," "fingertree           >= 0.0.1   && < 0.2," \
+      --replace "comonad              == 3.*,"              "comonad              >= 3       && < 5," \
       --replace "comonad              >= 3       && < 4,"   "comonad              >= 3       && < 5,"
   '';
   meta = {
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index c6f8752f8b00..24dbac655812 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "2.0.1";
-  sha256 = "0asjd7v1zdbs1rixqanwwn4n5b417gj48nv2qva6pfj09hs5dzhh";
+  version = "2.0.1.2";
+  sha256 = "1afwmahi4cfbpid8vlqdh4xadsv7bz4n6js5a3fmzlf6sv8v1qg2";
   buildDepends = [
     ansiTerminal base64Bytestring blazeBuilder blazeBuilderConduit
     caseInsensitive conduit dataDefault fastLogger httpTypes liftedBase
@@ -19,6 +19,7 @@ cabal.mkDerivation (self: {
     blazeBuilder conduit dataDefault fastLogger hspec httpTypes HUnit
     resourcet text transformers wai waiTest zlib zlibBindings
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/yesodweb/wai";
     description = "Provides some basic WAI handlers and middleware";
diff --git a/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix b/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix
new file mode 100644
index 000000000000..feb186209b7b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix
@@ -0,0 +1,15 @@
+{ cabal, wai, waiExtra, fcgi }:
+
+cabal.mkDerivation (self: {
+  pname = "wai-handler-fastcgi";
+  version = "2.0.0";
+  sha256 = "1pqiqx1wq2iv705f8bd4sxmjmmkkxiw4g6a9dpwnawwb5n0d88nl";
+  buildDepends = [
+    wai waiExtra fcgi
+  ];
+  meta = {
+    description = "A WAI handler that out to the libfcgi C library";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai-logger/default.nix b/pkgs/development/libraries/haskell/wai-logger/default.nix
index 98b0cdee39c4..895856d17b55 100644
--- a/pkgs/development/libraries/haskell/wai-logger/default.nix
+++ b/pkgs/development/libraries/haskell/wai-logger/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-logger";
-  version = "2.0.1";
-  sha256 = "1v8n7m314a12421gn10i8vz3nk9sak635dq4nq389sij8w1ihjkw";
+  version = "2.1.0";
+  sha256 = "1vb2nih78qw7ha1v67hsyyplarxxg5zh82pmh85sdbdykp5cwz0c";
   buildDepends = [
     blazeBuilder byteorder caseInsensitive fastLogger httpTypes network
     unixTime wai
diff --git a/pkgs/development/libraries/haskell/warp-tls/default.nix b/pkgs/development/libraries/haskell/warp-tls/default.nix
index b99c5214120b..29a38d2d35b6 100644
--- a/pkgs/development/libraries/haskell/warp-tls/default.nix
+++ b/pkgs/development/libraries/haskell/warp-tls/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "warp-tls";
-  version = "2.0.0";
-  sha256 = "1dfwid6h7yl4v66as166ppbivzafh5wkkrbsvaaar6l3xd9kg211";
+  version = "2.0.0.1";
+  sha256 = "1hwzwlqmq1nkxmp3zjplnkrh80v0awbrb2fwzd4ndyla8akgia1p";
   buildDepends = [
     certificate conduit cprngAes cryptocipher cryptoRandomApi network
     networkConduit pem tls tlsExtra transformers wai warp
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
index d75f68818ef9..058c7f717793 100644
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xss-sanitize";
-  version = "0.3.4";
-  sha256 = "0xal75mk90a2hj70ipgcj95n6yw8hiki1r1vzad918aq2ihjqa53";
+  version = "0.3.4.1";
+  sha256 = "11s7vkp8c7gdfv9vaq81p954jsc319xrfi9vv6wgfb3pqjf800mh";
   buildDepends = [
     attoparsec cssText network tagsoup text utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
index 9de464d8ae34..b261d22ace6e 100644
--- a/pkgs/development/libraries/haskell/yesod-auth/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-auth";
-  version = "1.2.5.1";
-  sha256 = "163snl6165zkndcmr3iy48yl04rs7cp67kq77yxglxm420y8391h";
+  version = "1.2.5.2";
+  sha256 = "13gvcwgpq4l3d50h855qdcn0k93a8cy918jg577ch3fqhwk70q8g";
   buildDepends = [
     aeson authenticate blazeHtml blazeMarkup dataDefault emailValidate
     fileEmbed hamlet httpConduit httpTypes liftedBase mimeMail network
diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix
index 851d152eac56..186aaf00f121 100644
--- a/pkgs/development/libraries/haskell/yesod-bin/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-bin";
-  version = "1.2.5.2";
-  sha256 = "00n957gbq03qrbwxa29hpqkmyfnbr7n4bah4185rpjdvnywq3l8x";
+  version = "1.2.5.5";
+  sha256 = "1dgbrdvfr5n4nxrm86sp2njf0kjnv0rapf28wy76j9qkisvn905k";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 3a8bbb2cdf73..f0a7e5467488 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.2.6.2";
-  sha256 = "11q70zc837d0sdwgh8c60pv1x4zki2klamcr5vw5zsjj0qsb9pby";
+  version = "1.2.6.4";
+  sha256 = "0s5lc3drm1ayd7mikpn4gkn7c7c9zspgsl5087ia2jlkayzj5n14";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
     caseInsensitive cereal clientsession conduit cookie dataDefault
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index 936c4ab741b6..66b2117ee829 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "1.3.4.1";
-  sha256 = "01h9k7qwp26i57akbm9236r8gbil4mh2317caa4bcva7m1dclvpj";
+  version = "1.3.4.2";
+  sha256 = "06qw2hx0iv46xdmkbbw1sgwzvyr82h0v267dxfw19235s9yfzbfg";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeHtml blazeMarkup cryptoApi
     dataDefault emailValidate hamlet network persistent resourcet
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index a3740629150a..42b55bcee6a6 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "1.2.2";
-  sha256 = "0pi7r6mf8ikd76cwdpjzb1lf73jc3f0ji3xximmg25q8lwcjygq5";
+  version = "1.2.2.1";
+  sha256 = "0vihd94yh4xipvz193p2fd1sqlbwdj0619l21gpdy307sng50kjn";
   buildDepends = [
     blazeBuilder conduit liftedBase persistent persistentTemplate
     poolConduit resourcet transformers yesodCore
diff --git a/pkgs/development/libraries/haskell/yesod-platform/default.nix b/pkgs/development/libraries/haskell/yesod-platform/default.nix
index e17ed799c0e1..929dd698b7dd 100644
--- a/pkgs/development/libraries/haskell/yesod-platform/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-platform/default.nix
@@ -31,8 +31,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-platform";
-  version = "1.2.5.2";
-  sha256 = "0pvdaz860zlgizdrsjm4v1vsx0bvcmilz0si0skrx980gysxd0nn";
+  version = "1.2.5.3";
+  sha256 = "0k9srgsnz9cgpxhdk04qz27lqp1xm97bprxjv93j1sxny92v6122";
   buildDepends = [
     aeson ansiTerminal asn1Data asn1Types attoparsec attoparsecConduit
     authenticate base64Bytestring baseUnicodeSymbols blazeBuilder
diff --git a/pkgs/development/libraries/haskell/yesod-routes/default.nix b/pkgs/development/libraries/haskell/yesod-routes/default.nix
index 1c2922fe069c..252bc3bcf7a8 100644
--- a/pkgs/development/libraries/haskell/yesod-routes/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-routes/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-routes";
-  version = "1.2.0.4";
-  sha256 = "1c3fpfvcdx8ijvjxxfjwld5zl6x4xl2587a8gdj2qmsr94f8lgb9";
+  version = "1.2.0.5";
+  sha256 = "0150plfdd9x70sc6zzy66lv9vbla7p9bx06yi6vlqkfvzsrx2cx7";
   buildDepends = [ pathPieces text vector ];
   testDepends = [ hspec HUnit pathPieces text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index c29cbe759749..757367b73935 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-static";
-  version = "1.2.2";
-  sha256 = "06abyfmqzv6aap0ww7vkw4j6xv6dkivn0g7wx59j2l54dfqrjifr";
+  version = "1.2.2.1";
+  sha256 = "1dsr3gv6hf42islw2018y4yajvkd9j627fkdlz45309cyjns55jg";
   buildDepends = [
     base64Bytestring cereal conduit cryptoConduit cryptohashCryptoapi
     dataDefault fileEmbed filepath hjsmin httpTypes mimeTypes
diff --git a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
index 5644eb527c48..419978a10117 100644
--- a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
+++ b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake automoc4 pkgconfig ];
 
+  cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
+
   meta = {
     homepage = http://phonon.kde.org/;
     description = "GStreamer backend for Phonon";
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
new file mode 100644
index 000000000000..8a7592547c20
--- /dev/null
+++ b/pkgs/development/libraries/serf/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="serf";
+    version="1.3.3";
+    name="${baseName}-${version}";
+    hash="0axdz1bbdrgvrsqmy1j0kx54y1hhhs6xmc1j7jz4fqr9fr0y1sh2";
+    url="https://serf.googlecode.com/files/serf-1.3.3.tar.bz2";
+    sha256="0axdz1bbdrgvrsqmy1j0kx54y1hhhs6xmc1j7jz4fqr9fr0y1sh2";
+  };
+  buildInputs = [
+    apr scons openssl aprutil zlib krb5 pkgconfig
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+
+  configurePhase = ''
+    sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"PATH":os.environ["PATH"]})' -i SConstruct
+    sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_CFLAGS_COMPILE":os.environ["NIX_CFLAGS_COMPILE"]})' -i SConstruct
+    sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_LDFLAGS":os.environ["NIX_LDFLAGS"]})' -i SConstruct
+  '';
+
+  buildPhase = ''
+    scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr}"/bin/*-config)" \
+        APU="$(echo "${aprutil}"/bin/*-config)" GSSAPI="${krb5}" CC="${stdenv.gcc}/bin/gcc" 
+  '';
+
+  installPhase = ''
+    scons install
+  '';
+
+  meta = {
+    inherit (s) version;
+    description = "HTTP client library based on APR";
+    license = stdenv.lib.licenses.asl20 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/serf/default.upstream b/pkgs/development/libraries/serf/default.upstream
new file mode 100644
index 000000000000..a081905759e2
--- /dev/null
+++ b/pkgs/development/libraries/serf/default.upstream
@@ -0,0 +1,3 @@
+url https://code.google.com/p/serf/downloads/list
+version_link '[.]tar[.][a-z0-9]+$'
+process 'code[.]google[.]com//' ''
diff --git a/pkgs/development/libraries/sparsehash/default.nix b/pkgs/development/libraries/sparsehash/default.nix
new file mode 100644
index 000000000000..1f9bbcbd18da
--- /dev/null
+++ b/pkgs/development/libraries/sparsehash/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "sparsehash-2.0.2";
+
+  src = fetchurl {
+    url = http://sparsehash.googlecode.com/files/sparsehash-2.0.2.tar.gz;
+    sha256 = "0z5qa1sbp6xx5qpdvrdjh185k5kj53sgb6h2qabw01sn2nkkkmif";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "http://code.google.com/p/sparsehash/";
+    description = "An extremely memory-efficient hash_map implementation";
+    platforms = platforms.all;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/vxl/default.nix b/pkgs/development/libraries/vxl/default.nix
index 2f169f3f25dd..e181ade4d6c4 100644
--- a/pkgs/development/libraries/vxl/default.nix
+++ b/pkgs/development/libraries/vxl/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchurl, unzip, cmake, libtiff, expat, zlib, libpng, libjpeg }:
 stdenv.mkDerivation {
-  name = "vxl-1.13.0";
+  name = "vxl-1.17.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/vxl/vxl-1.13.0.zip;
-    sha256 = "05xk9dfkqsznp1dic8rcsdhgdp12bikwx1zpci0w3s20fs8q8nn1";
+    url = mirror://sourceforge/vxl/vxl-1.17.0.zip;
+    sha256 = "1qg7i8h201pa8jljg7vph4rlxk6n5cj9f9gd1hkkmbw6fh44lsxh";
   };
 
   buildInputs = [ cmake unzip libtiff expat zlib libpng libjpeg ];
 
   # BUILD_OUL wants old linux headers for videodev.h, not available
   # in stdenv linux headers
-  cmakeFlags = "-DBUILD_TESTING=OFF -DBUILD_OUL=OFF "
+  # BUILD_BRL fails to find open()
+  cmakeFlags = "-DBUILD_TESTING=OFF -DBUILD_OUL=OFF -DBUILD_BRL=OFF -DBUILD_CONTRIB=OFF "
     + (if stdenv.system == "x86_64-linux" then
       "-DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC"
     else
diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix
index 85e5726f8636..eb55d1d60f41 100644
--- a/pkgs/development/libraries/wildmidi/default.nix
+++ b/pkgs/development/libraries/wildmidi/default.nix
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
     # The library is LGPLv3, the wildmidi executable is GPLv3
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/libraries/wxGTK-3.0/default.nix b/pkgs/development/libraries/wxGTK-3.0/default.nix
new file mode 100644
index 000000000000..33f42854c2c3
--- /dev/null
+++ b/pkgs/development/libraries/wxGTK-3.0/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
+, gstreamer, gst_plugins_base, GConf, setfile
+, withMesa ? true, mesa ? null, compat24 ? false, compat26 ? true, unicode ? true,
+}:
+
+assert withMesa -> mesa != null;
+
+with stdenv.lib;
+
+let
+  version = "3.0.0";
+in
+stdenv.mkDerivation {
+  name = "wxwidgets-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2";
+    sha256 = "11dz8pn1nm79i054l05rzyk4vqxw7v0x6j78pj6mvr5nphwhad7z";
+  };
+
+  buildInputs =
+    [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
+      gst_plugins_base GConf ]
+    ++ optional withMesa mesa
+    ++ optional stdenv.isDarwin setfile;
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  configureFlags =
+    [ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
+      (if compat24 then "--enable-compat24" else "--disable-compat24")
+      (if compat26 then "--enable-compat26" else "--disable-compat26") ]
+    ++ optional unicode "--enable-unicode"
+    ++ optional withMesa "--with-opengl"
+    ++ optionals stdenv.isDarwin
+      # allow building on 64-bit
+      [ "--with-cocoa" "--enable-universal-binaries" ];
+
+  SEARCH_LIB = optionalString withMesa "${mesa}/lib";
+
+  preConfigure = "
+    substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
+    substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
+    substituteInPlace configure --replace /usr /no-such-path
+  " + optionalString stdenv.isDarwin ''
+    substituteInPlace configure --replace \
+      'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \
+      'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"'
+  '';
+
+  postInstall = "
+    (cd $out/include && ln -s wx-*/* .)
+  ";
+
+  passthru = {inherit gtk compat24 compat26 unicode;};
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index bd1cb756f27e..952cbe1ff4d6 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -4,18 +4,13 @@ stdenv.mkDerivation rec {
   shortName = "setuptools-${version}";
   name = "${python.executable}-${shortName}";
 
-  version = "0.9.8";
+  version = "2.0.2";
 
   src = fetchurl {
     url = "http://pypi.python.org/packages/source/s/setuptools/${shortName}.tar.gz";
-    sha256 = "037b8x3fdhx8s6xafqndi3yr8x2vr42n1kzs7jxk6j9s9fd65gs2";
+    sha256 = "09nv5x45y8fgc0kjmmw4gig3hr0is9xlc5rq053vnbmkxr5q5xmi";
   };
 
-  patches = [
-    # https://bitbucket.org/pypa/setuptools/issue/55/1-failure-lc_all-c-python33m-setuppy-test
-    ./distribute-skip-sdist_with_utf8_encoded_filename.patch
-  ];
-
   buildInputs = [ python wrapPython ];
 
   buildPhase = "${python}/bin/${python.executable} setup.py build --build-base $out";
@@ -29,8 +24,7 @@ stdenv.mkDerivation rec {
       wrapPythonPrograms
     '';
 
-  # tests fail on darwin, see http://bitbucket.org/pypa/setuptools/issue/55/1-failure-lc_all-c-python33m-setuppy-test 
-  doCheck = (!stdenv.isDarwin);
+  doCheck = true;
 
   checkPhase = ''
     ${python}/bin/${python.executable} setup.py test
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index ed9890150a37..b5c0b0a03dae 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
     homepage = http://martine.github.io/ninja/;
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index ddd8927a9a4c..8139d6e28c78 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -2,7 +2,7 @@
 
 let
   name = "scons";
-  version = "2.1.0";
+  version = "2.3.0";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/scons/${name}-${version}.tar.gz";
-    sha256 = "4139ed14f60dd2ebcd47c59984d14705636180eb27b3d1b2949489e514b1921d";
+    sha256 = "0jrv8v5dpdp231n1gsfmirqy27f7qas6m255jjm2qjygk6chchll";
   };
 
   buildInputs = [python makeWrapper];
diff --git a/pkgs/development/tools/build-managers/scons/default.upstream b/pkgs/development/tools/build-managers/scons/default.upstream
new file mode 100644
index 000000000000..f9dae2818c84
--- /dev/null
+++ b/pkgs/development/tools/build-managers/scons/default.upstream
@@ -0,0 +1,10 @@
+url http://sourceforge.net/projects/scons/files/scons/
+SF_version_dir
+version_link '[.]tar[.]gz/download$'
+SF_redirect
+ensure_hash
+
+do_overwrite() {
+  set_var_value version "$CURRENT_VERSION"
+  set_var_value sha256 "$CURRENT_HASH"
+}
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index fba8729ebbf1..5081b9352676 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -3,12 +3,13 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.56";
-  sha256 = "0sppg4ab62ql5hdd9cdhff4f5zy74si9h5rn3sqils0hwmxl86f8";
+  version = "1.57";
+  sha256 = "0mwd3qh4ncbbwmaspnxl0hmirjclkqm8zhvchc55fgnskrfbidhq";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];
   testDepends = [ doctest ];
+  doCheck = self.stdenv.lib.versionOlder "7.6" self.ghc.version;
   meta = {
     homepage = "http://github.com/NixOS/cabal2nix";
     description = "Convert Cabal files into Nix build instructions";
diff --git a/pkgs/development/tools/misc/openocd/default.nix b/pkgs/development/tools/misc/openocd/default.nix
index e0da284887cc..c625f1474006 100644
--- a/pkgs/development/tools/misc/openocd/default.nix
+++ b/pkgs/development/tools/misc/openocd/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libftdi, libusb1 }:
+{ stdenv, fetchurl, libftdi, libusb1 }:
 
 stdenv.mkDerivation rec {
   name = "openocd-${version}";
diff --git a/pkgs/development/tools/misc/premake/default.nix b/pkgs/development/tools/misc/premake/default.nix
index 8dce23aa9593..770c80710953 100644
--- a/pkgs/development/tools/misc/premake/default.nix
+++ b/pkgs/development/tools/misc/premake/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip}:
+{ stdenv, fetchurl, unzip }:
 
 let baseName = "premake";
   version  = "4.3";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn";
   };
 
-  buildInputs = [unzip];
+  buildInputs = [ unzip ];
 
   buildPhase = ''
     make -C build/gmake.unix/
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
     description = "A simple build configuration and project generation tool using lua";
     license = stdenv.lib.licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/misc/stlink/default.nix b/pkgs/development/tools/misc/stlink/default.nix
index c4dfa99becdc..13796453eba2 100644
--- a/pkgs/development/tools/misc/stlink/default.nix
+++ b/pkgs/development/tools/misc/stlink/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation {
     description = "In-circuit debug and programming for ST-Link devices";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/misc/tcptrack/default.nix b/pkgs/development/tools/misc/tcptrack/default.nix
index 43ff8df70d27..645bd0611777 100644
--- a/pkgs/development/tools/misc/tcptrack/default.nix
+++ b/pkgs/development/tools/misc/tcptrack/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.rhythm.cx/~steve/devel/tcptrack/; # dead link
     license = licenses.lgpl21;
     platforms = platforms.linux;
-    maintainers = [maintainers.bjornfor];
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix
index f045d786896b..86c8b923cca5 100644
--- a/pkgs/development/tools/slimerjs/default.nix
+++ b/pkgs/development/tools/slimerjs/default.nix
@@ -3,12 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="slimerjs";
-    version="git-2013-11-25";
+    version="0.9.0";
     name="${baseName}-${version}";
-    hash="8c9c518085760a681e3d112ef638473861c1ab2abf9d31043fe365c5d96d3c40";
-    url="https://github.com/laurentj/slimerjs";
-    rev="fab60f799eb24a8ba1cad42841d4148181acb72e";
-    sha256="8c9c518085760a681e3d112ef638473861c1ab2abf9d31043fe365c5d96d3c40";
+    hash="1b4c299gk20mqb91929jan9ldhwy3jska75wvil9vdmgjrr8496m";
+    url="http://download.slimerjs.org/v0.9/0.9.0/slimerjs-0.9.0.zip";
+    sha256="1b4c299gk20mqb91929jan9ldhwy3jska75wvil9vdmgjrr8496m";
   };
   buildInputs = [
     unzip zip
@@ -17,12 +16,12 @@ in
 stdenv.mkDerivation {
   inherit (s) name version;
   inherit buildInputs;
-  # src = fetchurl {
-  #   inherit (s) url sha256;
-  # };
-  src = fetchgit {
-    inherit (s) url sha256 rev;
-  };
+   src = fetchurl {
+     inherit (s) url sha256;
+   };
+  #src = fetchgit {
+  #  inherit (s) url sha256 rev;
+  #};
   preConfigure = ''
     test -d src && cd src
     test -f omni.ja || zip omni.ja -r */
diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix
new file mode 100644
index 000000000000..e40dec3c23fc
--- /dev/null
+++ b/pkgs/games/nexuiz/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchurl
+, # required for both
+  unzip, zlib, curl, libjpeg, libpng, libvorbis, libtheora
+, libogg, libmodplug
+, # glx
+  libX11, mesa, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib
+, # sdl
+  SDL
+}:
+
+let
+  version = "2.5.2";
+
+  version_short = stdenv.lib.replaceChars [ "." ] [ "" ] "${version}";
+in stdenv.mkDerivation {
+  name = "nexuiz-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nexuiz/nexuiz-${version_short}.zip";
+    sha256 = "0010jrxc68qqinkvdh1qn2b8z3sa5v1kcd8d1m4llp3pr6y7xqm5";
+  };
+
+  buildInputs = [
+    # required for both
+    unzip
+    # glx
+    libX11 mesa libXpm libXext libXxf86vm libXxf86dga alsaLib
+    # sdl
+    SDL
+  ];
+
+  postUnpack = ''
+    cd Nexuiz/sources/
+    unzip enginesource*.zip
+    cd ../../
+  '';
+
+  NIX_LDFLAGS = ''
+    -rpath ${zlib}/lib
+    -rpath ${curl}/lib
+    -rpath ${libjpeg}/lib
+    -rpath ${libpng}/lib
+    -rpath ${libvorbis}/lib
+    -rpath ${libtheora}/lib
+    -rpath ${libogg}/lib
+    -rpath ${libmodplug}/lib
+  '';
+
+  buildPhase = ''
+    cd sources/darkplaces/
+    DP_FS_BASEDIR="$out/share/nexuiz"
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR cl-release
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sdl-release
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sv-release
+    cd ../../
+  '';
+
+  installPhase = ''
+    mkdir -pv "$out/bin/"
+    cp -v sources/darkplaces/darkplaces-glx "$out/bin/nexuiz-glx"
+    cp -v sources/darkplaces/darkplaces-sdl "$out/bin/nexuiz-sdl"
+    cp -v sources/darkplaces/darkplaces-dedicated "$out/bin/nexuiz-dedicated"
+    mkdir -pv "$out/share/nexuiz/"
+    cp -rv data/ "$out/share/nexuiz/"
+    ln -s "$out/bin/nexuiz-sdl" "$out/bin/nexuiz"
+  '';
+
+  dontPatchELF = true;
+
+  meta = {
+    description = "A free fast-paced first-person shooter";
+    homepage = "http://www.alientrap.org/games/nexuiz";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 137429cdc838..9db82d722d27 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, fetchurl, unzip, SDL, libjpeg, zlib, libvorbis, curl }:
+{ stdenv, fetchurl
+, # required for both
+  unzip, libjpeg, zlib, libvorbis, curl
+, # glx
+  libX11, mesa, libXpm, libXext, libXxf86vm, alsaLib
+, # sdl
+  SDL
+}:
 
 stdenv.mkDerivation rec {
   name = "xonotic-0.7.0";
@@ -8,9 +15,14 @@ stdenv.mkDerivation rec {
     sha256 = "21a5fb5493c269cd3843789cb8598f952d4196e8bc71804b9bd5808b646542c6";
   };
 
-  # Commented out things needed to build cl-release because of errors.
-  #buildInputs = [ libX11 libXpm libXext xf86dgaproto libXxf86dga libXxf86vm mesa ];
-  buildInputs = [ unzip SDL libjpeg ];
+  buildInputs = [
+    # required for both
+    unzip libjpeg
+    # glx
+    libX11 mesa libXpm libXext libXxf86vm alsaLib
+    # sdl
+    SDL
+  ];
 
   sourceRoot = "Xonotic/source/darkplaces";
 
@@ -27,7 +39,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     DP_FS_BASEDIR="$out/share/xonotic"
-    #make DP_FS_BASEDIR=$DP_FS_BASEDIR cl-release
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR cl-release
     make DP_FS_BASEDIR=$DP_FS_BASEDIR sdl-release
     make DP_FS_BASEDIR=$DP_FS_BASEDIR sv-release
   '';
@@ -36,9 +48,13 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/bin"
     cp darkplaces-dedicated "$out/bin/xonotic-dedicated"
     cp darkplaces-sdl "$out/bin/xonotic-sdl"
+    cp darkplaces-glx "$out/bin/xonotic-glx"
     cd ../..
     mkdir -p "$out/share/xonotic"
     mv data "$out/share/xonotic"
+
+    # default to sdl
+    ln -s "$out/bin/xonotic-sdl" "$out/bin/xonotic"
   '';
 
   dontPatchELF = true;
diff --git a/pkgs/misc/emulators/wine/unstable.nix b/pkgs/misc/emulators/wine/unstable.nix
index 0cb81a8185a4..f19ef0fcc7f3 100644
--- a/pkgs/misc/emulators/wine/unstable.nix
+++ b/pkgs/misc/emulators/wine/unstable.nix
@@ -7,12 +7,12 @@ assert stdenv.isLinux;
 assert stdenv.gcc.gcc != null;
 
 let 
-    version = "1.7.8";
+    version = "1.7.10";
     name = "wine-${version}";
 
     src = fetchurl {
       url = "mirror://sourceforge/wine/${name}.tar.bz2";
-      sha256 = "010qa6xn0b0161kcmm43yr0bp39iddb6d5i27mpl229shrgpzq9h";
+      sha256 = "1nybsp4pga0jhx6rm6ngpa2ixsbj75p8w22r9d70x4zgjx5hw9s4";
     };
 
     gecko = fetchurl {
diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix
index e3fe48ec8a3c..f47902cd0bf1 100644
--- a/pkgs/misc/emulators/wine/winetricks.nix
+++ b/pkgs/misc/emulators/wine/winetricks.nix
@@ -2,13 +2,13 @@
 , cabextract, unzip, p7zip, gnused, gnugrep, bash } :
 
 stdenv.mkDerivation rec {
-  rev = "1078";
+  rev = "1083";
   name = "winetricks-${rev}";
 
   src = fetchsvn {
     url = "http://winetricks.googlecode.com/svn/trunk";
     inherit rev;
-    sha256 = "0ipvld0r5h6x2pgqkqa82q0w9flx6fn9aha8fd7axf5ji2gzmidm";
+    sha256 = "0zakwn7g2ni6xw92i1y3pngyaxsr93714s4jy11adf7rxdkj0a32";
   };
 
   buildInputs = [ perl which ];
diff --git a/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
index a2896e70d174..6ee57e0cddfe 100644
--- a/pkgs/misc/emulators/zsnes/default.nix
+++ b/pkgs/misc/emulators/zsnes/default.nix
@@ -15,11 +15,29 @@ stdenv.mkDerivation {
     patch -p0 < ${./zsnes-1.51-libpng15.patch}
   '';
 
+  buildInputs = [ nasm SDL zlib libpng ncurses mesa ];
+
   preConfigure = ''
     cd src
-  '';
 
-  buildInputs = [ nasm SDL zlib libpng ncurses mesa ];
+    sed -i "/^STRIP/d" configure
+    
+    # Fix for undefined strncasecmp()
+    echo '#include <strings.h>' > tmp.cpp 
+    cat tmp.cpp tools/strutil.h > tools/strutil.h.new
+    mv tools/strutil.h.new tools/strutil.h
+    
+    # Fix for undefined system()
+    echo '#include <stdlib.h>' > tmp.cpp
+    cat tmp.cpp tools/depbuild.cpp > tools/depbuild.cpp.new
+    mv tools/depbuild.cpp.new tools/depbuild.cpp
+    
+    # Fix for lots of undefined strcmp, strncmp etc.
+    echo '#include <string.h>' > tmp.cpp 
+    cat tmp.cpp parsegen.cpp > parsegen.cpp.new
+    mv parsegen.cpp.new parsegen.cpp
+  '';
+  
 
   configureFlags = "--enable-release";
 
@@ -29,4 +47,4 @@ stdenv.mkDerivation {
     maintainers = [ stdenv.lib.maintainers.sander ];
     homepage = http://www.zsnes.com;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/misc/themes/qtcurve/default.nix b/pkgs/misc/themes/qtcurve/default.nix
new file mode 100644
index 000000000000..017a47349a9c
--- /dev/null
+++ b/pkgs/misc/themes/qtcurve/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, cmake, gettext, gtk2, kde_workspace, kdelibs, libpthreadstubs, libXdmcp
+, libxcb, pkgconfig, xlibs }:
+
+stdenv.mkDerivation {
+  name = "qtcurve-1.8.17";
+  src = fetchurl {
+    url = "https://github.com/QtCurve/qtcurve/archive/1.8.17.tar.gz";
+    sha256 = "1ixgill9lfhmcfsk5csk6ww3ljzbvb4x48m73apprv949xgr4wyn";
+  };
+
+  buildInputs = [
+    cmake
+    gettext
+    gtk2
+    kde_workspace
+    kdelibs
+    libpthreadstubs
+    libXdmcp
+    libxcb
+    pkgconfig
+    xlibs.xcbutilimage
+  ];
+
+  patches = [ ./qtcurve-1.8.17-install-paths.patch ];
+
+  cmakeFlags = ''
+    -DENABLE_QT5=OFF
+    -DQTC_QT4_ENABLE_KWIN=ON
+  '';
+
+  meta = {
+    homepage = https://github.com/QtCurve/qtcurve;
+    description = "Widget styles for Qt4/KDE4 and gtk2";
+    platforms = stdenv.lib.platforms.linux;
+    license = "LGPLv2.1+";
+  };
+}
diff --git a/pkgs/misc/themes/qtcurve/qtcurve-1.8.17-install-paths.patch b/pkgs/misc/themes/qtcurve/qtcurve-1.8.17-install-paths.patch
new file mode 100644
index 000000000000..bb8fd185c77a
--- /dev/null
+++ b/pkgs/misc/themes/qtcurve/qtcurve-1.8.17-install-paths.patch
@@ -0,0 +1,25 @@
+diff -ur qtcurve-1.8.17-a/CMakeLists.txt qtcurve-1.8.17-b/CMakeLists.txt
+--- qtcurve-1.8.17-a/CMakeLists.txt	2013-10-18 07:35:20.000000000 -0500
++++ qtcurve-1.8.17-b/CMakeLists.txt	2013-12-30 10:58:43.303808246 -0600
+@@ -135,8 +135,9 @@
+ if(ENABLE_GTK2)
+   find_package(PkgConfig REQUIRED)
+   pkg_check_modules(GTK2 REQUIRED gtk+-2.0)
++  set(GTK2_THEME_PREFIX "${CMAKE_INSTALL_PREFIX}")
+   if(GTK2_THEME_PREFIX)
+-    set(GTK2_PREIX "${GTK2_THEME_PREFIX}")
++    set(GTK2_PREFIX "${GTK2_THEME_PREFIX}")
+   elseif(NOT GTK2_PREFIX)
+     set(GTK2_PREFIX "${CMAKE_INSTALL_PREFIX}")
+   endif()
+diff -ur qtcurve-1.8.17-a/gtk2/style/CMakeLists.txt qtcurve-1.8.17-b/gtk2/style/CMakeLists.txt
+--- qtcurve-1.8.17-a/gtk2/style/CMakeLists.txt	2013-10-18 07:35:20.000000000 -0500
++++ qtcurve-1.8.17-b/gtk2/style/CMakeLists.txt	2013-12-30 11:23:41.370548328 -0600
+@@ -88,6 +88,6 @@
+   m ${QTC_X11_LIBRARIES} qtcurve-utils)
+ 
+ install(TARGETS qtcurve-gtk2 LIBRARY DESTINATION
+-  ${GTK2_LIBDIR}/gtk-2.0/${GTK2_BIN_VERSION}/engines)
++  lib/gtk-2.0/${GTK2_BIN_VERSION}/engines)
+ install(FILES gtkrc icons3 icons4 map_kde_icons.pl kdeglobals
+   DESTINATION ${GTK2_THEME_DIR}/gtk-2.0)
diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix
index 51430f6e4eb4..64c35b5ab267 100644
--- a/pkgs/os-specific/linux/ati-drivers/default.nix
+++ b/pkgs/os-specific/linux/ati-drivers/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = http://www2.ati.com/drivers/linux/amd-driver-installer-catalyst-13-4-linux-x86.x86_64.zip;
     sha256 = "1914ikdich0kg047bqh89ai5z4dyryj5mlw5i46n90fsfiaxa532";
+    curlOpts = "--referer http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64";
   };
 
   patchPhase = "patch -p0 < ${./gentoo-patches.patch}";
diff --git a/pkgs/os-specific/linux/ifenslave/default.nix b/pkgs/os-specific/linux/ifenslave/default.nix
new file mode 100644
index 000000000000..d8985003b41a
--- /dev/null
+++ b/pkgs/os-specific/linux/ifenslave/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "ifenslave-${version}";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/i/ifenslave-2.6/ifenslave-2.6_${version}.orig.tar.gz";
+    sha256 = "0h9hrmy19zdksl7ys250r158b943ihbgkb95n8p4k8l0vqsby5vr";
+  };
+
+  buildPhase = ''
+    gcc -o ifenslave ifenslave.c
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a ifenslave $out/bin
+  '';
+
+  meta = {
+    description = "Utility for enslaving networking interfaces under a bond";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index 84d3f64cf2c0..4cb600b5238e 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.18";
+  version = "3.10.25";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0nkiy2hxwam91707vccprmap28wiwxar2v2ishj1bb2xzkbnxwpd";
+    sha256 = "1kf75br35i35p231i3z3blf90zv1xns26bcd0gwhlkxgvs46vi56";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.11.nix b/pkgs/os-specific/linux/kernel/linux-3.11.nix
index 5167a4263101..2ef1eb98365b 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.11.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.11.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.11.8";
+  version = "3.11.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0g2c7zzgsrwg6y6j8rn3sn7nx464857i7w0575b1lz24493cgdna";
+    sha256 = "00g4rbkjsmyzzm9zmdll8qqs1mffa0pybwjpn9jnli2kgh9inzyb";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 98917f943f51..95f482a82305 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nasm, perl, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "syslinux-4.06";
+  name = "syslinux-4.07";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/boot/syslinux/4.xx/${name}.tar.bz2";
-    sha256 = "09md61npd5z64rv5s3knl4qsn2bqsn57irm5izk6snf46r77gdyv";
+    sha256 = "0nm0lx45h4c5nxnsr538bvryzvqvj1p1p4vqxzd8nlcv47ja8h0j";
   };
 
   patches = [ ./perl-deps.patch ];
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 2bbe9798de46..c6d0b3ad73b0 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     --with-pcre=${pcre}
     --disable-maintainer-mode
     --disable-debugger-mode
+    --enable-mpm=event
     --enable-mods-shared=all
     --enable-mpms-shared=all
     --enable-cern-meta
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 4f16ab35527b..6c8f1fd7a9f0 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, makeWrapper, which, coreutils, rrdtool, perl, perlPackages
-, python, ruby, openjdk, nettools }:
+, python, ruby, openjdk, nettools
+}:
 
 stdenv.mkDerivation rec {
   version = "2.0.17";
diff --git a/pkgs/servers/sql/postgresql/8.3.x.nix b/pkgs/servers/sql/postgresql/8.3.x.nix
deleted file mode 100644
index b7f2d7d2a502..000000000000
--- a/pkgs/servers/sql/postgresql/8.3.x.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, zlib, ncurses, readline }:
-
-let version = "8.3.23"; in
-
-stdenv.mkDerivation rec {
-  name = "postgresql-${version}";
-
-  src = fetchurl {
-    url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "1n8qj1bvyx83jsn2x2l8xzk53c014gkz8hwvswvnzcdyvlbnd90p";
-  };
-
-  buildInputs = [ zlib ncurses readline ];
-
-  LC_ALL = "en_US";
-
-  passthru = { inherit readline; };
-
-  meta = {
-    homepage = http://www.postgresql.org/;
-    description = "A powerful, open source object-relational database system";
-    license = "bsd";
-  };
-}
diff --git a/pkgs/servers/sql/postgresql/8.4.x.nix b/pkgs/servers/sql/postgresql/8.4.x.nix
index a99d7536a8a2..b027d0093e88 100644
--- a/pkgs/servers/sql/postgresql/8.4.x.nix
+++ b/pkgs/servers/sql/postgresql/8.4.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, ncurses, readline }:
 
-let version = "8.4.18"; in
+let version = "8.4.19"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
 
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "c08e5e93dac9d484019a07ff91db9f224350b90ef4be1543e33282cc20daf872";
+    sha256 = "f744d04a5d9feeea516fa57fea92be5568527bab03a84cf660a06ce90f90dcea";
   };
 
   buildInputs = [ zlib ncurses readline ];
diff --git a/pkgs/servers/sql/postgresql/9.0.x.nix b/pkgs/servers/sql/postgresql/9.0.x.nix
index 3810eeba72c5..40878fc6e783 100644
--- a/pkgs/servers/sql/postgresql/9.0.x.nix
+++ b/pkgs/servers/sql/postgresql/9.0.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, readline }:
 
-let version = "9.0.14"; in
+let version = "9.0.15"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
 
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "de42b669cb891fc9b925406e71d1669ed5c856aae6d552ac6f14bf6dec0b79f1";
+    sha256 = "a45acd27d546e425911ecd371247066be5dafd96304e50e0708c84b918c28f9d";
   };
 
   buildInputs = [ zlib readline ];
diff --git a/pkgs/servers/sql/postgresql/9.1.x.nix b/pkgs/servers/sql/postgresql/9.1.x.nix
index 65a969b4db0e..9eefe708798f 100644
--- a/pkgs/servers/sql/postgresql/9.1.x.nix
+++ b/pkgs/servers/sql/postgresql/9.1.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, readline }:
 
-let version = "9.1.10"; in
+let version = "9.1.11"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
 
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "8329bcd160fcb76ee8c79676f6c979a94069ca5c108449fbb365e1ea98f92b77";
+    sha256 = "ccbc35aae1490ee5878b97a6aea48dad7465cdad296b380542e4303b68cc6f74";
   };
 
   buildInputs = [ zlib readline ];
diff --git a/pkgs/servers/sql/postgresql/9.2.x.nix b/pkgs/servers/sql/postgresql/9.2.x.nix
index eb6a2714eb2c..8f78dffb4ba3 100644
--- a/pkgs/servers/sql/postgresql/9.2.x.nix
+++ b/pkgs/servers/sql/postgresql/9.2.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, readline }:
 
-let version = "9.2.5"; in
+let version = "9.2.6"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
 
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "22c1edfd6a404bb15fba655863e94f09a10716ded1910a8bc98ee85f413007a4";
+    sha256 = "4ba98053a66e5678af93dbc2956e8b04623f759e174f48940c41f4251cf0f886";
   };
 
   buildInputs = [ zlib readline ];
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index 596c950b1f30..b2dedf4688d3 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -10,8 +10,8 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  # Release version = "1.2.0";
-  revision = 5005;
+  # Release version = "1.3.0";
+  revision = 5129;
   version = "r${toString revision}";
   name = "tigervnc-${version}";
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     # Release url = "mirror://sourceforge/tigervnc/${version}/${name}.tar.gz";
     url = "https://tigervnc.svn.sourceforge.net/svnroot/tigervnc/trunk";
     rev = revision;
-    sha256 = "2401e0ede9a2d50a37caeb094e5e832d24878749239578f44ae2acd42de01b43";
+    sha256 = "1qszlqr8z16iqkm05gbs0knj4fxc3bb6gjayky1abmf8pjazi0j8";
   };
 
   inherit fontDirectories;
@@ -52,12 +52,12 @@ stdenv.mkDerivation rec {
     tar xf ${xorgserver.src}
     cp -R xorg*/* unix/xserver
     pushd unix/xserver
-    for a in $xorgPatches
+    for a in $xorgPatches ../xserver114.patch
     do
       patch -p1 < $a
     done
     autoreconf -vfi
-    ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out"
+    ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out" --disable-unit-tests
     make TIGERVNC_SRCDIR=`pwd`/../..
     popd
   '';
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 3159bae1826f..ccfea341771f 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="zpaq";
-    version="642";
+    version="643";
     name="${baseName}-${version}";
-    hash="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
-    url="http://mattmahoney.net/dc/zpaq642.zip";
-    sha256="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
+    hash="1sgrhvvzrjb9gm9lffs1ai602v8p1mav0kc2sa7wlcx7kj1d3hxr";
+    url="http://mattmahoney.net/dc/zpaq643.zip";
+    sha256="1sgrhvvzrjb9gm9lffs1ai602v8p1mav0kc2sa7wlcx7kj1d3hxr";
   };
   buildInputs = [
     unzip
diff --git a/pkgs/tools/backup/chunksync/default.nix b/pkgs/tools/backup/chunksync/default.nix
new file mode 100644
index 000000000000..e51d6d6acea1
--- /dev/null
+++ b/pkgs/tools/backup/chunksync/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, openssl, perl }:
+
+stdenv.mkDerivation rec {
+  version = "0.3";
+  name = "chunksync-${version}";
+
+  src = fetchurl {
+    url = "http://chunksync.florz.de/chunksync_${version}.tar.gz";
+    sha256 = "e0c27f925c5cf811798466312a56772864b633728c433fb2fcce23c8712b52fc";
+  };
+
+  buildInputs = [openssl perl];
+
+  NIX_LDFLAGS = "-lgcc_s";
+
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "PREFIX="
+  ];
+
+  preInstall = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+  '';
+
+  meta = {
+    description = "Space-efficient incremental backups of large files or block devices";
+    homepage = "http://chunksync.florz.de/";
+    license = "GPLv2";
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/backup/duply/default.nix b/pkgs/tools/backup/duply/default.nix
index 5e95ede695cd..b184dff11cd2 100644
--- a/pkgs/tools/backup/duply/default.nix
+++ b/pkgs/tools/backup/duply/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, coreutils, python, duplicity, gawk, gnupg1, bash
-, gnugrep, txt2man, makeWrapper }:
+, gnugrep, txt2man, makeWrapper
+}:
 
 stdenv.mkDerivation {
   name = "duply-1.5.11";
diff --git a/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c b/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c
deleted file mode 100644
index 483ec5f84155..000000000000
--- a/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-btrfs receive currently mandates that incremental receives can only be performed on a parent subvolume
-that was also received. This means you cannot apply it to (snapshotted) subvolumes you still have on disk, 
-as they were not received themselves.
-
-This small utility allows you to set the received_uuid of a subvolume, tricking btrfs receive into using it.
-
-found on btrfs mailing list
-read the discussion here: http://comments.gmane.org/gmane.comp.file-systems.btrfs/21922
-*/
-
-#define _GNU_SOURCE
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <uuid/uuid.h>
-#include <sys/ioctl.h>
-
-#include "ctree.h"
-#include "ioctl.h"
-#include "send-utils.h"
-
-#define CLEAR(var) memset(&var, 0, sizeof(var))
-
-
-int main(int argc, char **argv) {
-	int ret, fd;
-	struct subvol_uuid_search sus;
-	struct btrfs_ioctl_received_subvol_args rs_args;
-	struct subvol_info *si;
-	char uuidbuf[37], parent_uuidbuf[37], received_uuidbuf[37];
-
-
-	if (argc != 3 && argc != 4) {
-		printf("usage: btrfs-set-received-uuid btrfs-mountpoint src-subvolume-path-relative-to-mountpoint [dest-absolute-subvolume-path]\n");
-		exit(1);
-	}
-
-	printf("opening srcmnt %s\n", argv[1]);
-	fd = open(argv[1], O_RDONLY | O_NOATIME);
-	if (fd < 0) {
-		printf("failed to open srcmnt %s! %s\n", argv[1], strerror(errno));
-		exit(2);
-	}
-
-	puts("initializing sub search");
-	CLEAR(sus);
-	ret = subvol_uuid_search_init(fd, &sus);
-	if (ret < 0) {
-		printf("failed to initialize sub search! %s\n", strerror(-ret));
-		exit(3);
-	}
-	
-	printf("searching srcsub %s\n", argv[2]);
-	si = subvol_uuid_search(&sus, 0, NULL, 0, argv[2], subvol_search_by_path);
-	if (!si) {
-		puts("srcsub not found!");
-		exit(4);
-	}
-
-	uuid_unparse(si->uuid,                   uuidbuf);
-	uuid_unparse(si->parent_uuid,     parent_uuidbuf);
-	uuid_unparse(si->received_uuid, received_uuidbuf);
-
-	printf("\nsrcsub found:\n"
-	       "         uuid=%s\n"
-	       "  parent_uuid=%s\n"
-	       "received_uuid=%s\n"
-	       "ctransid=%Lu otransid=%Lu stransid=%Lu rtransid=%Lu\n\n",
-	       uuidbuf, parent_uuidbuf, received_uuidbuf,
-	       (unsigned long long)(si->ctransid),
-	       (unsigned long long)(si->otransid),
-	       (unsigned long long)(si->stransid),
-	       (unsigned long long)(si->rtransid));
-
-	if (argc == 3)
-		goto done;
-
-	printf("opening dst subvol %s\n", argv[3]);
-	fd = open(argv[3], O_RDONLY | O_NOATIME);
-	if (fd < 0) {
-		printf("failed to open dst subvol %s. %s\n", argv[3], strerror(errno));
-		exit(5);
-	}
-
-	printf("\nhere we go with BTRFS_IOC_SET_RECEIVED_SUBVOL:\n"
-	       "dstsub.received_uuid = srcsub.uuid == %s\n"
-	       "dstsub.stransid = srcsub.ctransid == %Lu\n\n",
-	       uuidbuf, (unsigned long long)(si->ctransid));
-
-	CLEAR(rs_args);
-	memcpy(rs_args.uuid, si->uuid, BTRFS_UUID_SIZE);
-	rs_args.stransid = si->ctransid;
-
-	ret = ioctl(fd, BTRFS_IOC_SET_RECEIVED_SUBVOL, &rs_args);
-	if (ret < 0) {
-		printf("BTRFS_IOC_SET_RECEIVED_SUBVOL failed: %s", strerror(-ret));
-		exit(6);
-	}
-
-done:
-	printf("done.\n");
-	exit(0);
-}
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 0661755d2e17..16c5b58c38da 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -1,35 +1,20 @@
-{ stdenv, fetchgit, zlib, libuuid, acl, attr, e2fsprogs, lzo }:
+{ stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo }:
 
-let version = "0.20pre20130705"; in
+let version = "3.12"; in
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
 
-  src = fetchgit {
-    url = "git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git";
-    rev = "194aa4a1bd6447bb545286d0bcb0b0be8204d79f";
-    sha256 = "07c6762c9873cdcc1b9b3be0b412ba14b83457d8f5608d3dd945953b5e06f0f2";
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/people/mason/btrfs-progs/btrfs-progs-v${version}.tar.xz";
+    sha256 = "1pwcjf9jqdiy8445r1xkazqa07xmapnn0ylyz7yzphci3ib66zh9";
   };
 
-  buildInputs = [ zlib libuuid acl attr e2fsprogs lzo ];
+  buildInputs = [ attr acl zlib libuuid e2fsprogs lzo ];
 
   # for btrfs to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_CFLAGS_LINK = "-lgcc_s";
 
-  postPatch = ''
-    cp ${./btrfs-set-received-uuid.c} btrfs-set-received-uuid.c
-  '';
-
-  postBuild = ''
-    gcc -Wall -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DBTRFS_FLAT_INCLUDES \
-        -fPIC -g -O1 -luuid -o btrfs-set-received-uuid rbtree.o send-utils.o btrfs-list.o \
-        btrfs-set-received-uuid.c
-  '';
-
-  postInstall = ''
-    cp btrfs-set-received-uuid $out/bin
-  '';
-
   makeFlags = "prefix=$(out)";
 
   meta = {
diff --git a/pkgs/tools/filesystems/chunkfs/default.nix b/pkgs/tools/filesystems/chunkfs/default.nix
new file mode 100644
index 000000000000..c51837eef181
--- /dev/null
+++ b/pkgs/tools/filesystems/chunkfs/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, perl, fuse }:
+
+stdenv.mkDerivation rec {
+  version = "0.7";
+  name = "chunkfs-${version}";
+
+  src = fetchurl {
+    url = "http://chunkfs.florz.de/chunkfs_${version}.tar.gz";
+    sha256 = "4c168fc2b265a6ba34afc565707ea738f34375325763c0596f2cfa1c9b8d40f1";
+  };
+
+  buildInputs = [perl fuse];
+
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "PREFIX="
+  ];
+
+  preInstall = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+  '';
+
+  meta = {
+    description = "(Un)ChunkFS is a pair of FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa.";
+    homepage = "http://chunkfs.florz.de/";
+    license = "GPLv2";
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index 7b5f16c502d1..2abc84e78e41 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpng }:
 
 stdenv.mkDerivation rec {
-  name = "pngcrush-1.7.69";
+  name = "pngcrush-1.7.70";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmt/${name}-nolib.tar.xz";
-    sha256 = "0j9nis6513hxd6klcv5559rwnfg7kawp2vqd4qgc1ax6wyvga4mw";
+    sha256 = "04zgnqdfq7mcsgml719wb552v8cfg52d8knbhqv55kwgw7y822jh";
   };
 
   configurePhase = ''
diff --git a/pkgs/tools/misc/dvtm/default.nix b/pkgs/tools/misc/dvtm/default.nix
new file mode 100644
index 000000000000..9cefa11ce69f
--- /dev/null
+++ b/pkgs/tools/misc/dvtm/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "dvtm-0.10";
+
+  meta = {
+    description = "Dynamic virtual terminal manager";
+    homepage = "http://www.brain-dump.org/projects/dvtm";
+    license = stdenv.lib.licenses.mit;
+    platfroms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/${name}.tar.gz";
+    sha256 = "0lb6p06jfaz1z07k0v2gipzx67swf7rijz17g5ndhng2g0jqfl3p";
+  };
+
+  buildInputs = [ ncurses ];
+
+  prePatch = ''
+    substituteInPlace Makefile \
+      --replace /usr/share/terminfo $out/share/terminfo
+  '';
+
+  installPhase = ''
+    make PREFIX=$out install
+  '';
+}
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 01b45cd6d8b7..48baa8bff018 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "ethtool-3.11";
diff --git a/pkgs/tools/misc/kde-gtk-config/default.nix b/pkgs/tools/misc/kde-gtk-config/default.nix
new file mode 100644
index 000000000000..e9f0af2815a9
--- /dev/null
+++ b/pkgs/tools/misc/kde-gtk-config/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, cmake, gettext, gtk2, gtk3, kdelibs
+, libxcb, libpthreadstubs, libXdmcp, pkgconfig, glib, gdk_pixbuf }:
+
+stdenv.mkDerivation {
+  name = "kde-gtk-config-2.2.1";
+  src = fetchurl {
+    url = "mirror://kde/stable/kde-gtk-config/2.2.1/src/kde-gtk-config-2.2.1.tar.xz";
+    sha256 = "11aw86jcjcg3ywnzrxy9x8dvd73my18k0if52fnvyvmb75z0v2cw";
+  };
+
+  buildInputs = [
+    cmake
+    gdk_pixbuf
+    gettext
+    glib
+    gtk2
+    gtk3
+    kdelibs
+    libxcb
+    libpthreadstubs
+    libXdmcp
+    pkgconfig
+  ];
+
+  patches = [ ./kde-gtk-config-2.2.1-install-paths.patch ];
+
+  cmakeFlags = ''
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DKDE4_LIBEXEC_INSTALL_DIR=lib/kde4/libexec
+  '';
+
+  meta = {
+    homepage = https://projects.kde.org/projects/extragear/base/kde-gtk-config;
+    description = "GTK configuration module for KDE System Settings";
+    longDescription = ''
+      Configuration dialog to adapt GTK applications appearance to your taste under KDE.
+      Among its many features, it lets you:
+      - Choose which theme is used for GTK2 and GTK3 applications.
+      - Tweak some GTK applications behaviour.
+      - Select what icon theme to use in GTK applications.
+      - Select GTK applications default fonts.
+      - Easily browse and install new GTK2 and GTK3 themes.
+    '';
+    platforms = stdenv.lib.platforms.linux;
+    license = "GPLv3";
+  };
+}
diff --git a/pkgs/tools/misc/kde-gtk-config/kde-gtk-config-2.2.1-install-paths.patch b/pkgs/tools/misc/kde-gtk-config/kde-gtk-config-2.2.1-install-paths.patch
new file mode 100644
index 000000000000..e6596ef0dcc7
--- /dev/null
+++ b/pkgs/tools/misc/kde-gtk-config/kde-gtk-config-2.2.1-install-paths.patch
@@ -0,0 +1,28 @@
+diff -ur kde-gtk-config-2.2.1-a/gtk3proxies/CMakeLists.txt kde-gtk-config-2.2.1-b/gtk3proxies/CMakeLists.txt
+--- kde-gtk-config-2.2.1-a/gtk3proxies/CMakeLists.txt	2013-03-18 06:02:39.000000000 -0500
++++ kde-gtk-config-2.2.1-b/gtk3proxies/CMakeLists.txt	2013-12-24 18:57:59.854264894 -0600
+@@ -6,4 +6,4 @@
+ 
+ add_executable(gtk3_preview preview3.c)
+ target_link_libraries(gtk3_preview ${GTK3_LIBRARY} ${GOBJECT2_LIBRARY} ${GLIB2_LIBRARY})
+-install(TARGETS gtk3_preview  RUNTIME DESTINATION "${KDE4_LIBEXEC_INSTALL_DIR}")
++install(TARGETS gtk3_preview  RUNTIME DESTINATION bin)
+diff -ur kde-gtk-config-2.2.1-a/gtkproxies/CMakeLists.txt kde-gtk-config-2.2.1-b/gtkproxies/CMakeLists.txt
+--- kde-gtk-config-2.2.1-a/gtkproxies/CMakeLists.txt	2013-03-18 06:02:39.000000000 -0500
++++ kde-gtk-config-2.2.1-b/gtkproxies/CMakeLists.txt	2013-12-24 18:57:40.967781611 -0600
+@@ -4,13 +4,13 @@
+ 
+ add_executable(reload_gtk_apps reload.c)
+ target_link_libraries(reload_gtk_apps ${GTK2_LIBRARIES})
+-install(TARGETS reload_gtk_apps RUNTIME DESTINATION "${KDE4_LIBEXEC_INSTALL_DIR}")
++install(TARGETS reload_gtk_apps RUNTIME DESTINATION bin)
+ 
+ add_definitions("-DDATA_DIR=\\\"${DATA_INSTALL_DIR}/kcm-gtk-module/\\\"")
+ 
+ add_executable(gtk_preview preview.c)
+ target_link_libraries(gtk_preview ${GTK2_LIBRARIES} ${GTK2_GIOMM_LIBRARY})
+-install(TARGETS gtk_preview RUNTIME DESTINATION "${KDE4_LIBEXEC_INSTALL_DIR}")
++install(TARGETS gtk_preview RUNTIME DESTINATION bin)
+ 
+ # preview file used for the gtk3 version too
+ install(FILES preview.ui
diff --git a/pkgs/tools/networking/ncftp/default.nix b/pkgs/tools/networking/ncftp/default.nix
index 515ea5edf88c..2dcfd09bb777 100644
--- a/pkgs/tools/networking/ncftp/default.nix
+++ b/pkgs/tools/networking/ncftp/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ncurses, coreutils}:
+{ stdenv, fetchurl, ncurses, coreutils }:
 
 let version = "3.2.5"; in
 stdenv.mkDerivation {
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 4f72c0e294f2..0c2d02a5e775 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pn}/${major}/${name}.tar.xz";
-    sha256 = "130rdin3wh9vlwhscbgh3lsssi89p5n4maws4y3l9ja720llk27n";
+    sha256 = "1sx97cp9nb5p82kg2dl6dmqri7wichpjqchhx7bk77limngby7jq";
   };
 
   buildInputs = [
@@ -33,9 +33,6 @@ stdenv.mkDerivation rec {
     ''CFLAGS=-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile_broadband_provider_info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''
   ];
 
-  preFixup = ''
-    rm $out/share/glib-2.0/schemas/gschemas.compiled'';
-
   postInstall = ''
     mkdir -p $out/etc/NetworkManager/VPN
     ln -s ${networkmanager_openvpn}/etc/NetworkManager/VPN/nm-openvpn-service.name $out/etc/NetworkManager/VPN/nm-openvpn-service.name
@@ -62,5 +59,9 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom urkud rickynils ];
     platforms = platforms.linux;
+
+    # resolve collision between evince and nm-applet for
+    # gschemas.compiled
+    priority = 6;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 25494d75f0dc..217397600946 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus_glib, xz
 , udev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
-, libgcrypt, dnsmasq, avahi, bind, perl, substituteAll }:
+, libgcrypt, dnsmasq, avahi, bind, perl, bluez5, substituteAll }:
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "0.9.8.4";
+  version = "0.9.8.8";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
-    sha256 = "168dv290mc19szgv1l108i8gyha47wmyr41jlzwqvvibynmg17sc";
+    sha256 = "0mbsl6x3aavdnam8i87p0zz8fvvgi96g199s35wgg5r8rplks2la";
   };
 
   preConfigure = ''
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     "--with-kernel-firmware-dir=/run/current-system/firmware"
     "--with-session-tracking=systemd" ];
 
-  buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz ];
+  buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz bluez5 ];
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ];
 
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     homepage = http://projects.gnome.org/NetworkManager/;
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom urkud rickynils ];
+    maintainers = with maintainers; [ phreedom urkud rickynils iElectric ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect.nix
index fc9a964004e5..94224fc63bd6 100644
--- a/pkgs/tools/networking/network-manager/openconnect.nix
+++ b/pkgs/tools/networking/network-manager/openconnect.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-openconnect";
-  version = networkmanager.version;
+  version = "0.9.8.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index b72312a1af2d..821e72d49085 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-openvpn";
-  version = networkmanager.version;
+  version = "0.9.8.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index dc2c800e7971..d0a92b78309d 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-pptp";
-  version = networkmanager.version;
+  version = "0.9.8.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "7f46ea61376d13d03685eca3f26a26e0022f6e92e6f1fc356034ca9717eb6daa";
+    sha256 = "1s6wmznd6azvg028x8y3syniqy9j7nmx5j71w2wc6mk0f9pqzflp";
   };
 
   buildInputs = [ networkmanager pptp ppp ]
diff --git a/pkgs/tools/networking/ngrep/default.nix b/pkgs/tools/networking/ngrep/default.nix
new file mode 100644
index 000000000000..361d44eaca75
--- /dev/null
+++ b/pkgs/tools/networking/ngrep/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, libpcap }:
+
+stdenv.mkDerivation rec {
+  name = "ngrep-1.45";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ngrep/${name}.tar.bz2";
+    sha256 = "19rg8339z5wscw877mz0422wbsadds3mnfsvqx3ihy58glrxv9mf";
+  };
+
+  buildInputs = [ libpcap ];
+
+  preConfigure = ''
+    # Fix broken test for BPF header file
+    sed -i "s|BPF=.*|BPF=${libpcap}/include/pcap/bpf.h|" configure
+
+    configureFlags="$configureFlags --with-pcap-includes=${libpcap}/include"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Network packet analyzer";
+    longDescription = ''
+      ngrep strives to provide most of GNU grep's common features, applying
+      them to the network layer. ngrep is a pcap-aware tool that will allow you
+      to specify extended regular or hexadecimal expressions to match against
+      data payloads of packets. It currently recognizes IPv4/6, TCP, UDP,
+      ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and
+      null interfaces, and understands BPF filter logic in the same fashion as
+      more common packet sniffing tools, such as tcpdump and snoop.
+    '';
+    homepage = http://ngrep.sourceforge.net/;
+    # <ngrep>/doc/README.txt says that ngrep itself is licensed under a
+    # 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
+    # GPLv2.
+    license = "BSD-like";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/tools/networking/ntopng/default.nix b/pkgs/tools/networking/ntopng/default.nix
index 78d44b7768dc..3c33da1b6619 100644
--- a/pkgs/tools/networking/ntopng/default.nix
+++ b/pkgs/tools/networking/ntopng/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, libpcap, gnutls, libgcrypt, libxml2, glib, geoip, sqlite
-, which }:
+, which
+}:
 
 # ntopng includes LuaJIT, mongoose, rrdtool and zeromq in its third-party/
 # directory.
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 7d2ae9c5bb4b..1f785fdf730b 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -10,18 +10,18 @@ assert withKerberos -> kerberos != null;
 let
 
   hpnSrc = fetchurl {
-    url = http://tarballs.nixos.org/openssh-6.1p1-hpn13v14.diff.gz;
-    sha256 = "14das6lim6fxxnx887ssw76ywsbvx3s4q3n43afgh5rgvs4xmnnq";
+    url = mirror://sourceforge/hpnssh/openssh-6.3p1-hpnssh14v2.diff.gz;
+    sha256 = "1jldqjwry9qpxxzb3mikfmmmv90mfb7xkmcfdbvwqac6nl3r7bi3";
   };
 
 in
 
 stdenv.mkDerivation rec {
-  name = "openssh-6.2p2";
+  name = "openssh-6.4p1";
 
   src = fetchurl {
     url = "ftp://ftp.nl.uu.net/pub/OpenBSD/OpenSSH/portable/${name}.tar.gz";
-    sha1 = "c2b4909eba6f5ec6f9f75866c202db47f3b501ba";
+    sha256 = "1lkmi7v83qvpcc04qrrqk4k7mafnmwxkfk1ccsisw51va4bgcc2m";
   };
 
   prePatch = stdenv.lib.optionalString hpnSupport
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
       export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
     '';
 
-  patches = [ ./locale_archive.patch ./gcmrekey.patch ];
+  patches = [ ./locale_archive.patch ];
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ] ++
     (if withKerberos then [ kerberos ] else [])
diff --git a/pkgs/tools/networking/openssh/gcmrekey.patch b/pkgs/tools/networking/openssh/gcmrekey.patch
deleted file mode 100644
index ddb694af1ddb..000000000000
--- a/pkgs/tools/networking/openssh/gcmrekey.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-http://www.openssh.com/txt/gcmrekey.adv
-
-Index: monitor_wrap.c
-===================================================================
-RCS file: /cvs/src/usr.bin/ssh/monitor_wrap.c,v
-retrieving revision 1.76
-diff -u -p -u -r1.76 monitor_wrap.c
---- a/monitor_wrap.c	17 May 2013 00:13:13 -0000	1.76
-+++ b/monitor_wrap.c	6 Nov 2013 16:31:26 -0000
-@@ -469,7 +469,7 @@ mm_newkeys_from_blob(u_char *blob, int b
- 	buffer_init(&b);
- 	buffer_append(&b, blob, blen);
- 
--	newkey = xmalloc(sizeof(*newkey));
-+	newkey = xcalloc(1, sizeof(*newkey));
- 	enc = &newkey->enc;
- 	mac = &newkey->mac;
- 	comp = &newkey->comp;
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 2b9c6d066372..47421185d8ac 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -15,6 +15,8 @@ rec {
     sha256 = "003rj7pv38lgmggya2nbzcyfdx5d4wa7h1h4xh7iivsxja7z4m1d";
   };
 
+  passthru = { inherit texmfSrc langTexmfSrc; };
+
   setupHook = ./setup-hook.sh;
 
   doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
@@ -100,8 +102,8 @@ rec {
   patchShebangsInterimShareTexmfDist = doPatchShebangs ''$out/share/texmf-dist/scripts/'';
   patchShebangsInterimTexmfDist = doPatchShebangs ''$out/texmf-dist/scripts/'';
 
-  patchShebangsInterim = fullDepEntry ("") ["patchShebangsInterimBin" 
-    "patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist" 
+  patchShebangsInterim = fullDepEntry ("") ["patchShebangsInterimBin"
+    "patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist"
     "patchShebangsInterimShareTexmfDist"];
 
   buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11 libICE xproto
@@ -112,7 +114,7 @@ rec {
 
   configureFlags = [ "--with-x11" "--enable-ipc" "--with-mktexfmt"
     "--enable-shared" "--disable-native-texlive-build" "--with-system-zziplib"
-    "--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2" 
+    "--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2"
     "--with-system-freetype=no" "--disable-ttf2pk" "--enable-ttf2pk2"
     ]
     ++ ( if stdenv.isDarwin
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 12aa3a611f4e..f0fd79465605 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -129,19 +129,17 @@ let
 
 
   # The package compositions.  Yes, this isn't properly indented.
-  pkgsFun = pkgs: __overrides:
+  pkgsFun = pkgs: overrides:
     with helperFunctions;
-    let defaultScope = pkgs // pkgs.xorg; in
-    helperFunctions // rec {
-
-  # `__overrides' is a magic attribute that causes the attributes in
-  # its value to be added to the surrounding `rec'.  We'll remove this
-  # eventually.
-  inherit __overrides pkgs;
+    let defaultScope = pkgs // pkgs.xorg; self = self_ // overrides;
+    self_ = with self; helperFunctions // {
 
   # Make some arguments passed to all-packages.nix available
   inherit system stdenvType platform;
 
+  # Allow callPackage to fill in the pkgs argument
+  inherit pkgs;
+
 
   # We use `callPackage' to be able to omit function arguments that
   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
@@ -658,10 +656,16 @@ let
 
   chrony = callPackage ../tools/networking/chrony { };
 
+  chunkfs = callPackage ../tools/filesystems/chunkfs { };
+
+  chunksync = callPackage ../tools/backup/chunksync { };
+
   cjdns = callPackage ../tools/networking/cjdns { };
 
   cksfv = callPackage ../tools/networking/cksfv { };
 
+  clementine = callPackage ../applications/audio/clementine { };
+
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
 
   colord = callPackage ../tools/misc/colord { };
@@ -821,6 +825,8 @@ let
 
   dvgrab = callPackage ../tools/video/dvgrab { };
 
+  dvtm = callPackage ../tools/misc/dvtm { };
+
   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
 
   easyrsa = callPackage ../tools/networking/easyrsa { };
@@ -1434,6 +1440,8 @@ let
 
   newsbeuter-dev = callPackage ../applications/networking/feedreaders/newsbeuter/dev.nix { };
 
+  ngrep = callPackage ../tools/networking/ngrep { };
+
   ngrok = callPackage ../tools/misc/ngrok { };
 
   mpack = callPackage ../tools/networking/mpack { };
@@ -1514,6 +1522,9 @@ let
       etcDir = "/etc/ssh";
       pam = if stdenv.isLinux then pam else null;
     };
+
+  openssh_hpn = lowPrio (pkgs.appendToName "hpn" (openssh.override { hpnSupport = true; }));
+
   openssh_with_kerberos = lowPrio (pkgs.appendToName "with-kerberos" (openssh.override { withKerberos = true; }));
 
   opensp = callPackage ../tools/text/sgml/opensp { };
@@ -1822,6 +1833,8 @@ let
     inherit (pkgsi686Linux.xlibs) libX11;
   };
 
+  sparsehash = callPackage ../development/libraries/sparsehash { };
+
   stardict = callPackage ../applications/misc/stardict/stardict.nix {
     inherit (gnome) libgnomeui scrollkeeper;
   };
@@ -2838,6 +2851,8 @@ let
 
   oraclejre = lowPrio (pkgs.jdkdistro false false);
 
+  oraclejre7 = lowPrio (pkgs.oraclejdk7distro false false);
+
   jrePlugin = lowPrio (pkgs.jdkdistro false true);
 
   supportsJDK =
@@ -2858,8 +2873,6 @@ let
 
   julia = callPackage ../development/compilers/julia {
     liblapack = liblapack.override {shared = true;};
-    fftw = fftw.override {pthreads = true;};
-    fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
   };
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
@@ -3067,7 +3080,8 @@ let
   # rust = pkgsi686Linux.callPackage ../development/compilers/rust {};
 
   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
-    inherit makeWrapper clisp;
+    inherit makeWrapper;
+    clisp = clisp_2_44_1;
   };
 
   scala_2_9 = callPackage ../development/compilers/scala/2.9.nix { };
@@ -4151,17 +4165,9 @@ let
 
   ffms = callPackage ../development/libraries/ffms { };
 
-  fftw = callPackage ../development/libraries/fftw {
-    singlePrecision = false;
-  };
-
-  fftwFloat = callPackage ../development/libraries/fftw {
-    float = true;
-  };
-
-  fftwSinglePrec = callPackage ../development/libraries/fftw {
-    singlePrecision = true;
-  };
+  fftw = callPackage ../development/libraries/fftw { };
+  fftwSinglePrec = fftw.override { precision = "single"; };
+  fftwFloat = fftwSinglePrec; # the configure option is just an alias
 
   flann = callPackage ../development/libraries/flann { };
 
@@ -5629,6 +5635,8 @@ let
   SDL2_gfx = callPackage ../development/libraries/SDL2_gfx { };
 
   serd = callPackage ../development/libraries/serd {};
+  
+  serf = callPackage ../development/libraries/serf {};
 
   silgraphite = callPackage ../development/libraries/silgraphite {};
   graphite2 = callPackage ../development/libraries/silgraphite/graphite2.nix {};
@@ -5857,6 +5865,16 @@ let
       else stdenv;
   };
 
+  wxGTK30 = callPackage ../development/libraries/wxGTK-3.0/default.nix {
+    inherit (gnome) GConf;
+    withMesa = lib.elem system lib.platforms.mesaPlatforms;
+
+    # use for Objective-C++ compiler
+    stdenv = if stdenv.isDarwin
+      then clangStdenv
+      else stdenv;
+  };
+
   wtk = callPackage ../development/libraries/wtk { };
 
   x264 = callPackage ../development/libraries/x264 { };
@@ -6017,7 +6035,7 @@ let
 
   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
     inherit pkgs;
-    __overrides = (config.perlPackageOverrides or (p: {})) pkgs;
+    overrides = (config.perlPackageOverrides or (p: {})) pkgs;
   });
 
   perl510Packages = import ./perl-packages.nix {
@@ -6025,7 +6043,7 @@ let
       perl = perl510;
       buildPerlPackage = import ../development/perl-modules/generic perl510;
     };
-    __overrides = (config.perl510PackageOverrides or (p: {})) pkgs;
+    overrides = (config.perl510PackageOverrides or (p: {})) pkgs;
   };
 
   perl514Packages = import ./perl-packages.nix {
@@ -6033,7 +6051,7 @@ let
       perl = perl514;
       buildPerlPackage = import ../development/perl-modules/generic perl514;
     };
-    __overrides = (config.perl514PackageOverrides or (p: {})) pkgs;
+    overrides = (config.perl514PackageOverrides or (p: {})) pkgs;
   };
 
   perlXMLParser = perlPackages.XMLParser;
@@ -6161,7 +6179,7 @@ let
 
   rPackages = recurseIntoAttrs (import ./r-packages.nix {
     inherit pkgs;
-    __overrides = (config.rPackageOverrides or (p: {})) pkgs;
+    overrides = (config.rPackageOverrides or (p: {})) pkgs;
   });
 
   ### SERVERS
@@ -6342,8 +6360,6 @@ let
 
   postgresql = postgresql92;
 
-  postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
-
   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
 
   postgresql90 = callPackage ../servers/sql/postgresql/9.0.x.nix { };
@@ -8203,6 +8219,8 @@ let
 
   id3v2 = callPackage ../applications/audio/id3v2 { };
 
+  ifenslave = callPackage ../os-specific/linux/ifenslave { };
+
   ii = callPackage ../applications/networking/irc/ii { };
 
   ike = callPackage ../applications/ike { };
@@ -8720,7 +8738,7 @@ let
   ratpoison = callPackage ../applications/window-managers/ratpoison { };
 
   rawtherapee = callPackage ../applications/graphics/rawtherapee {
-    fftw = fftw.override {float = true;};
+    fftw = fftwSinglePrec;
   };
 
   rcs = callPackage ../applications/version-management/rcs { };
@@ -8812,9 +8830,7 @@ let
     libpng = libpng12;
   };
 
-  smartdeblur = callPackage ../applications/graphics/smartdeblur {
-    fftw = fftw.override {pthreads = true;};
-  };
+  smartdeblur = callPackage ../applications/graphics/smartdeblur { };
 
   sndBase = lowPrio (builderDefsPackage (import ../applications/audio/snd) {
     inherit fetchurl stdenv stringsWithDeps lib fftw;
@@ -8859,12 +8875,10 @@ let
     bdbSupport = true;
     httpServer = false;
     httpSupport = true;
-    sslSupport = true;
     pythonBindings = false;
     perlBindings = false;
     javahlBindings = false;
     saslSupport = false;
-    compressionSupport = true;
     httpd = apacheHttpd;
     sasl = cyrus_sasl;
   };
@@ -8940,6 +8954,8 @@ let
 
   timidity = callPackage ../tools/misc/timidity { };
 
+  tint2 = callPackage ../applications/misc/tint2 { };
+
   tkcvs = callPackage ../applications/version-management/tkcvs { };
 
   tla = callPackage ../applications/version-management/arch { };
@@ -9016,7 +9032,7 @@ let
   vimHugeX = vim_configurable;
 
   vim_configurable = callPackage ../applications/editors/vim/configurable.nix {
-    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext
+    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
       libICE;
@@ -9420,6 +9436,8 @@ let
 
   naev = callPackage ../games/naev { };
 
+  nexuiz = callPackage ../games/nexuiz { };
+
   njam = callPackage ../games/njam { };
 
   oilrush = callPackage ../games/oilrush { };
@@ -9699,6 +9717,8 @@ let
 
       kbibtex = callPackage ../applications/office/kbibtex { };
 
+      kde_gtk_config = callPackage ../tools/misc/kde-gtk-config { };
+
       kde_wacomtablet = callPackage ../applications/misc/kde-wacomtablet { };
 
       kdenlive = callPackage ../applications/video/kdenlive { };
@@ -9749,6 +9769,10 @@ let
 
       psi = callPackage ../applications/networking/instant-messengers/psi { };
 
+      qtcurve = callPackage ../misc/themes/qtcurve {
+        stdenv = overrideGCC stdenv gcc47;
+      };
+
       quassel = callPackage ../applications/networking/irc/quassel { };
 
       quasselDaemon = (self.quassel.override {
@@ -10117,6 +10141,8 @@ let
 
   gajim = callPackage ../applications/networking/instant-messengers/gajim { };
 
+  gammu = callPackage ../applications/misc/gammu { };
+
   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
 
   ghostscript = callPackage ../misc/ghostscript {
@@ -10453,4 +10479,4 @@ let
   adobeReader = adobe-reader;
 
 
-}; in pkgs
+}; in self; in pkgs
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 2dd5b0ca3df1..fb326796f1f7 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -33,22 +33,33 @@
     self : self.haskellPlatformArgs_2012_4_0_0 self // {
       haskellPlatform = self.haskellPlatform_2012_4_0_0;
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; };
-      bmp = self.bmp_1_2_2_1;
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
     };
 
   ghc741Prefs =
     self : self.haskellPlatformArgs_2012_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2012_2_0_0;
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; };
-      bmp = self.bmp_1_2_2_1;
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
     };
 
   ghc722Prefs =
     self : self.haskellPlatformArgs_2012_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2012_2_0_0;
-      deepseq = self.deepseq_1_3_0_1;
+      deepseq = self.deepseq_1_3_0_2;
+      cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; };
-      bmp = self.bmp_1_2_2_1;
+      cabalInstall = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
+      binary = self.binary_0_6_0_0;
+      prettyShow = self.prettyShow_1_2;
+      quickcheckIo = self.quickcheckIo.override {
+        HUnit = self.HUnit_1_2_5_2;
+        QuickCheck = self.QuickCheck2;
+      };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc721Prefs = ghc722Prefs;
@@ -60,13 +71,17 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
       prettyShow = self.prettyShow_1_2;
-      bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
       Cabal_1_18_1_2 = self.Cabal_1_18_1_2.override { deepseq = self.deepseq_1_3_0_2; };
       quickcheckIo = self.quickcheckIo.override {
         HUnit = self.HUnit_1_2_5_2;
         QuickCheck = self.QuickCheck2;
       };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc703Prefs =
@@ -76,13 +91,17 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
       prettyShow = self.prettyShow_1_2;
-      bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
       Cabal_1_18_1_2 = self.Cabal_1_18_1_2.override { deepseq = self.deepseq_1_3_0_2; };
       quickcheckIo = self.quickcheckIo.override {
         HUnit = self.HUnit_1_2_5_2;
         QuickCheck = self.QuickCheck2;
       };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc702Prefs = ghc701Prefs;
@@ -94,13 +113,17 @@
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
+      cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
       prettyShow = self.prettyShow_1_2;
-      bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
       Cabal_1_18_1_2 = self.Cabal_1_18_1_2.override { deepseq = self.deepseq_1_3_0_2; };
       quickcheckIo = self.quickcheckIo.override {
         HUnit = self.HUnit_1_2_5_2;
         QuickCheck = self.QuickCheck2;
       };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc6123Prefs = ghc6122Prefs;
@@ -114,7 +137,7 @@
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
       cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
-      bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
         Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3;
         mtl = self.mtl_2_1_2;
@@ -124,6 +147,9 @@
         HUnit = self.HUnit_1_2_5_2;
         QuickCheck = self.QuickCheck2;
       };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc6121Prefs =
@@ -136,7 +162,7 @@
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
       cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
-      bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
         Cabal = self.Cabal_1_16_0_3;
         zlib = self.zlib_0_5_3_3;
@@ -147,6 +173,9 @@
         HUnit = self.HUnit_1_2_5_2;
         QuickCheck = self.QuickCheck2;
       };
+      hspecExpectations = self.hspecExpectations.override {
+        HUnit = self.HUnit_1_2_5_2;
+      };
     };
 
   ghc6104Prefs =
@@ -160,7 +189,6 @@
       monadPar = self.monadPar_0_1_0_3;
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
-      bmp = self.bmp_1_2_2_1;
       binary = self.binary_0_6_0_0;
       cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
         Cabal = self.Cabal_1_16_0_3;
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 4f42f9912554..47350533aeab 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -602,7 +602,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   binary_0_6_0_0 = callPackage ../development/libraries/haskell/binary/0.6.0.0.nix {};
   binary_0_7_1_0 = callPackage ../development/libraries/haskell/binary/0.7.1.0.nix {};
-  binary = self.binary_0_7_1_0;
+  binary = null;                # core package starting with GHC 7.4.x
 
   binaryConduit = callPackage ../development/libraries/haskell/binary-conduit {};
 
@@ -642,13 +642,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   bmp_1_2_2_1 = callPackage ../development/libraries/haskell/bmp/1.2.2.1.nix {};
   bmp_1_2_5_2 = callPackage ../development/libraries/haskell/bmp/1.2.5.2.nix {};
-  bmp = self.bmp_1_2_5_2;
+  bmp = self.bmp_1_2_2_1;       # the latest version needs a very recent 'binary' library
 
   Boolean = callPackage ../development/libraries/haskell/Boolean {};
 
   brainfuck = callPackage ../development/libraries/haskell/brainfuck {};
 
-  bson = callPackage ../development/libraries/haskell/bson {};
+  bson = callPackage ../development/libraries/haskell/bson {
+    binary = self.binary_0_7_1_0;
+    dataBinaryIeee754 = self.dataBinaryIeee754.override { binary = self.binary_0_7_1_0; };
+  };
 
   boomerang = callPackage ../development/libraries/haskell/boomerang {};
 
@@ -722,6 +725,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   cipherAes = callPackage ../development/libraries/haskell/cipher-aes {};
 
+  cipherAes128 = callPackage ../development/libraries/haskell/cipher-aes128 {};
+
   cipherBlowfish = callPackage ../development/libraries/haskell/cipher-blowfish {};
 
   cipherCamellia = callPackage ../development/libraries/haskell/cipher-camellia {};
@@ -935,6 +940,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   downloadCurl = callPackage ../development/libraries/haskell/download-curl {};
 
+  DRBG = callPackage ../development/libraries/haskell/DRBG {};
+
   DSH = callPackage ../development/libraries/haskell/DSH {};
 
   dstring = callPackage ../development/libraries/haskell/dstring {};
@@ -1012,6 +1019,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   failure = callPackage ../development/libraries/haskell/failure {};
 
+  fastcgi = callPackage ../development/libraries/haskell/fastcgi {};
+
   fastLogger = callPackage ../development/libraries/haskell/fast-logger {};
 
   fclabels = callPackage ../development/libraries/haskell/fclabels {};
@@ -1211,6 +1220,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   hastache = callPackage ../development/libraries/haskell/hastache {};
 
+  heredoc = callPackage ../development/libraries/haskell/heredoc {};
+
   hexpat = callPackage ../development/libraries/haskell/hexpat {};
 
   hseCpp = callPackage ../development/libraries/haskell/hse-cpp {};
@@ -1450,6 +1461,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   lens = callPackage ../development/libraries/haskell/lens {};
 
+  lensAeson = callPackage ../development/libraries/haskell/lens-aeson {};
+
   lensDatetime = callPackage ../development/libraries/haskell/lens-datetime {};
 
   lenses = callPackage ../development/libraries/haskell/lenses {};
@@ -1516,7 +1529,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   minimorph = callPackage ../development/libraries/haskell/minimorph {};
 
-  miniutter = callPackage ../development/libraries/haskell/miniutter {};
+  miniutter = callPackage ../development/libraries/haskell/miniutter {
+    binary = self.binary_0_7_1_0;
+  };
 
   mimeMail = callPackage ../development/libraries/haskell/mime-mail {};
 
@@ -1680,6 +1695,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   OpenGL_2_8_0_0 = callPackage ../development/libraries/haskell/OpenGL/2.8.0.0.nix {};
   OpenGL_2_9_1_0 = callPackage ../development/libraries/haskell/OpenGL/2.9.1.0.nix {
     OpenGLRaw = self.OpenGLRaw_1_4_0_0;
+    GLURaw = self.GLURaw_1_4_0_0.override { OpenGLRaw = self.OpenGLRaw_1_4_0_0; };
   };
   OpenGL = self.OpenGL_2_9_1_0;
 
@@ -1791,6 +1807,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   ppm = callPackage ../development/libraries/haskell/ppm {};
 
+  prettyclass = callPackage ../development/libraries/haskell/prettyclass {};
+
   prettyShow_1_2 = callPackage ../development/libraries/haskell/pretty-show/1.2.nix {};
   prettyShow_1_6_3 = callPackage ../development/libraries/haskell/pretty-show/1.6.3.nix {
     happy = self.happy_1_19_2;
@@ -1943,6 +1961,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   rfc5051 = callPackage ../development/libraries/haskell/rfc5051 {};
 
+  robotsTxt = callPackage ../development/libraries/haskell/robots-txt {};
+
   rosezipper = callPackage ../development/libraries/haskell/rosezipper {};
 
   RSA = callPackage ../development/libraries/haskell/RSA {};
@@ -2009,7 +2029,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   StateVar = callPackage ../development/libraries/haskell/StateVar {};
 
-  statistics = callPackage ../development/libraries/haskell/statistics {};
+  statistics = callPackage ../development/libraries/haskell/statistics {
+    binary = self.binary_0_7_1_0;
+    vectorBinaryInstances = self.vectorBinaryInstances.override { binary = self.binary_0_7_1_0; };
+  };
 
   statvfs = callPackage ../development/libraries/haskell/statvfs {};
 
@@ -2329,6 +2352,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   waiHandlerLaunch = callPackage ../development/libraries/haskell/wai-handler-launch {};
 
+  waiHandlerFastcgi = callPackage ../development/libraries/haskell/wai-handler-fastcgi { inherit (pkgs) fcgi; };
+
   waiLogger = callPackage ../development/libraries/haskell/wai-logger {};
 
   waiTest = callPackage ../development/libraries/haskell/wai-test {};
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index c96f8c2c28bf..671ea62785c3 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -22,6 +22,8 @@
     ];
     passthru.names = [ "CSSselect" ];
   };
+  by-spec."CSSselect"."~0.4.0" =
+    self.by-version."CSSselect"."0.4.0";
   by-spec."CSSwhat"."0.4" =
     self.by-version."CSSwhat"."0.4.1";
   by-version."CSSwhat"."0.4.1" = lib.makeOverridable self.buildNodePackage {
@@ -481,14 +483,14 @@
     passthru.names = [ "asn1" ];
   };
   by-spec."assert"."*" =
-    self.by-version."assert"."1.0.3";
-  by-version."assert"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "assert-1.0.3";
+    self.by-version."assert"."1.1.0";
+  by-version."assert"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "assert-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/assert/-/assert-1.0.3.tgz";
-        name = "assert-1.0.3.tgz";
-        sha1 = "b4876fe43cd32fa93679f49e082e5c47e0e42db1";
+        url = "http://registry.npmjs.org/assert/-/assert-1.1.0.tgz";
+        name = "assert-1.1.0.tgz";
+        sha1 = "851f832b880525bb9f6c1bb1dfd93ea028247f23";
       })
     ];
     buildInputs =
@@ -500,7 +502,7 @@
     ];
     passthru.names = [ "assert" ];
   };
-  "assert" = self.by-version."assert"."1.0.3";
+  "assert" = self.by-version."assert"."1.1.0";
   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 {
@@ -614,14 +616,14 @@
   by-spec."async"."~0.2.9" =
     self.by-version."async"."0.2.9";
   by-spec."aws-sdk"."*" =
-    self.by-version."aws-sdk"."2.0.0-rc4";
-  by-version."aws-sdk"."2.0.0-rc4" = lib.makeOverridable self.buildNodePackage {
-    name = "aws-sdk-2.0.0-rc4";
+    self.by-version."aws-sdk"."2.0.0-rc5";
+  by-version."aws-sdk"."2.0.0-rc5" = lib.makeOverridable self.buildNodePackage {
+    name = "aws-sdk-2.0.0-rc5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.0-rc4.tgz";
-        name = "aws-sdk-2.0.0-rc4.tgz";
-        sha1 = "21c23ef7c162f7ec8eed36cef57e3425b0814e8d";
+        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.0-rc5.tgz";
+        name = "aws-sdk-2.0.0-rc5.tgz";
+        sha1 = "488d4c5f28dae9cde8705d40f63f6f3ca91b351e";
       })
     ];
     buildInputs =
@@ -634,16 +636,16 @@
     ];
     passthru.names = [ "aws-sdk" ];
   };
-  "aws-sdk" = self.by-version."aws-sdk"."2.0.0-rc4";
+  "aws-sdk" = self.by-version."aws-sdk"."2.0.0-rc5";
   by-spec."aws-sdk".">=1.2.0 <2" =
-    self.by-version."aws-sdk"."1.16.0";
-  by-version."aws-sdk"."1.16.0" = lib.makeOverridable self.buildNodePackage {
-    name = "aws-sdk-1.16.0";
+    self.by-version."aws-sdk"."1.17.0";
+  by-version."aws-sdk"."1.17.0" = lib.makeOverridable self.buildNodePackage {
+    name = "aws-sdk-1.17.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-1.16.0.tgz";
-        name = "aws-sdk-1.16.0.tgz";
-        sha1 = "07a150d6009c2681d67b10faf9b356ddb70da952";
+        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-1.17.0.tgz";
+        name = "aws-sdk-1.17.0.tgz";
+        sha1 = "766bbe426cd573ce339196a5b2fa431fea6130f5";
       })
     ];
     buildInputs =
@@ -1012,6 +1014,8 @@
   "bower" = self.by-version."bower"."1.2.8";
   by-spec."bower".">=0.9.0" =
     self.by-version."bower"."1.2.8";
+  by-spec."bower".">=1.2.8 <2" =
+    self.by-version."bower"."1.2.8";
   by-spec."bower"."~1.2.0" =
     self.by-version."bower"."1.2.8";
   by-spec."bower-config"."~0.4.3" =
@@ -1060,7 +1064,7 @@
     ];
     passthru.names = [ "bower-config" ];
   };
-  by-spec."bower-endpoint-parser"."~0.2.0" =
+  by-spec."bower-endpoint-parser"."0.2.1" =
     self.by-version."bower-endpoint-parser"."0.2.1";
   by-version."bower-endpoint-parser"."0.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "bower-endpoint-parser-0.2.1";
@@ -1079,7 +1083,9 @@
     ];
     passthru.names = [ "bower-endpoint-parser" ];
   };
-  by-spec."bower-json"."~0.4.0" =
+  by-spec."bower-endpoint-parser"."~0.2.0" =
+    self.by-version."bower-endpoint-parser"."0.2.1";
+  by-spec."bower-json"."0.4.0" =
     self.by-version."bower-json"."0.4.0";
   by-version."bower-json"."0.4.0" = lib.makeOverridable self.buildNodePackage {
     name = "bower-json-0.4.0";
@@ -1101,7 +1107,9 @@
     ];
     passthru.names = [ "bower-json" ];
   };
-  by-spec."bower-logger"."~0.2.1" =
+  by-spec."bower-json"."~0.4.0" =
+    self.by-version."bower-json"."0.4.0";
+  by-spec."bower-logger"."0.2.1" =
     self.by-version."bower-logger"."0.2.1";
   by-version."bower-logger"."0.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "bower-logger-0.2.1";
@@ -1120,6 +1128,8 @@
     ];
     passthru.names = [ "bower-logger" ];
   };
+  by-spec."bower-logger"."~0.2.1" =
+    self.by-version."bower-logger"."0.2.1";
   by-spec."bower-registry-client"."~0.1.4" =
     self.by-version."bower-registry-client"."0.1.6";
   by-version."bower-registry-client"."0.1.6" = lib.makeOverridable self.buildNodePackage {
@@ -1147,6 +1157,35 @@
     ];
     passthru.names = [ "bower-registry-client" ];
   };
+  by-spec."bower2nix"."*" =
+    self.by-version."bower2nix"."1.0.1";
+  by-version."bower2nix"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "bower2nix-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bower2nix/-/bower2nix-1.0.1.tgz";
+        name = "bower2nix-1.0.1.tgz";
+        sha1 = "104417d000e525d5e4beb58ee5220e0e07cf378f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bower2nix" or []);
+    deps = [
+      self.by-version."temp"."0.6.0"
+      self.by-version."fs.extra"."1.2.1"
+      self.by-version."bower-json"."0.4.0"
+      self.by-version."bower-endpoint-parser"."0.2.1"
+      self.by-version."bower-logger"."0.2.1"
+      self.by-version."bower"."1.2.8"
+      self.by-version."argparse"."0.1.15"
+      self.by-version."clone"."0.1.11"
+      self.by-version."semver"."2.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bower2nix" ];
+  };
+  "bower2nix" = self.by-version."bower2nix"."1.0.1";
   by-spec."broadway"."0.2.9" =
     self.by-version."broadway"."0.2.9";
   by-version."broadway"."0.2.9" = lib.makeOverridable self.buildNodePackage {
@@ -1392,15 +1431,15 @@
     ];
     passthru.names = [ "bunyan" ];
   };
-  by-spec."bytebuffer".">=2.1 && <3" =
-    self.by-version."bytebuffer"."2.1.0";
-  by-version."bytebuffer"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "bytebuffer-2.1.0";
+  by-spec."bytebuffer".">=2.2 <3" =
+    self.by-version."bytebuffer"."2.3.1";
+  by-version."bytebuffer"."2.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "bytebuffer-2.3.1";
     src = [
       (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/bytebuffer/-/bytebuffer-2.1.0.tgz";
-        name = "bytebuffer-2.1.0.tgz";
-        sha1 = "931ae9a46fcb3868614ad3368a569dc7ce4e9ab9";
+        url = "http://registry.npmjs.org/bytebuffer/-/bytebuffer-2.3.1.tgz";
+        name = "bytebuffer-2.3.1.tgz";
+        sha1 = "17c2c290bfed534b06aadd6513aa5a0096ca2639";
       })
     ];
     buildInputs =
@@ -1548,7 +1587,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.1"
+      self.by-version."has-color"."0.1.2"
       self.by-version."ansi-styles"."0.1.2"
     ];
     peerDependencies = [
@@ -1569,7 +1608,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.1"
+      self.by-version."has-color"."0.1.2"
       self.by-version."ansi-styles"."0.2.0"
     ];
     peerDependencies = [
@@ -1592,7 +1631,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.1"
+      self.by-version."has-color"."0.1.2"
       self.by-version."ansi-styles"."0.2.0"
     ];
     peerDependencies = [
@@ -1613,7 +1652,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.1"
+      self.by-version."has-color"."0.1.2"
       self.by-version."ansi-styles"."1.0.0"
       self.by-version."strip-ansi"."0.1.1"
     ];
@@ -1665,6 +1704,29 @@
   };
   by-spec."cheerio"."~0.12.1" =
     self.by-version."cheerio"."0.12.4";
+  by-spec."cheerio"."~0.13.0" =
+    self.by-version."cheerio"."0.13.0";
+  by-version."cheerio"."0.13.0" = lib.makeOverridable self.buildNodePackage {
+    name = "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.3.0"
+      self.by-version."CSSselect"."0.4.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cheerio" ];
+  };
   by-spec."cheerio-select"."*" =
     self.by-version."cheerio-select"."0.0.3";
   by-version."cheerio-select"."0.0.3" = lib.makeOverridable self.buildNodePackage {
@@ -1761,15 +1823,35 @@
     ];
     passthru.names = [ "chownr" ];
   };
+  by-spec."class-extend"."~0.1.0" =
+    self.by-version."class-extend"."0.1.1";
+  by-version."class-extend"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "class-extend-0.1.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/class-extend/-/class-extend-0.1.1.tgz";
+        name = "class-extend-0.1.1.tgz";
+        sha1 = "0feb1e59f4ace7bc163b509745f3282c4c7e528a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."class-extend" or []);
+    deps = [
+      self.by-version."lodash"."2.4.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "class-extend" ];
+  };
   by-spec."clean-css"."2.0.x" =
-    self.by-version."clean-css"."2.0.4";
-  by-version."clean-css"."2.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "clean-css-2.0.4";
+    self.by-version."clean-css"."2.0.5";
+  by-version."clean-css"."2.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "clean-css-2.0.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.0.4.tgz";
-        name = "clean-css-2.0.4.tgz";
-        sha1 = "1447e54e14d4bd0fa801f507bb32938cebe77627";
+        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.0.5.tgz";
+        name = "clean-css-2.0.5.tgz";
+        sha1 = "e693ca07bdbc69883665db6f8444d1af0442bbe3";
       })
     ];
     buildInputs =
@@ -1782,7 +1864,7 @@
     passthru.names = [ "clean-css" ];
   };
   by-spec."clean-css"."~2.0.0" =
-    self.by-version."clean-css"."2.0.4";
+    self.by-version."clean-css"."2.0.5";
   by-spec."cli"."0.4.x" =
     self.by-version."cli"."0.4.5";
   by-version."cli"."0.4.5" = lib.makeOverridable self.buildNodePackage {
@@ -1846,6 +1928,25 @@
     ];
     passthru.names = [ "cliff" ];
   };
+  by-spec."clone"."0.1.11" =
+    self.by-version."clone"."0.1.11";
+  by-version."clone"."0.1.11" = lib.makeOverridable self.buildNodePackage {
+    name = "clone-0.1.11";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/clone/-/clone-0.1.11.tgz";
+        name = "clone-0.1.11.tgz";
+        sha1 = "408b7d1773eb0dfbf2ddb156c1c47170c17e3a96";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."clone" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "clone" ];
+  };
   by-spec."clone"."0.1.5" =
     self.by-version."clone"."0.1.5";
   by-version."clone"."0.1.5" = lib.makeOverridable self.buildNodePackage {
@@ -2052,25 +2153,6 @@
     ];
     passthru.names = [ "colors" ];
   };
-  by-spec."colors"."0.6.0-1" =
-    self.by-version."colors"."0.6.0-1";
-  by-version."colors"."0.6.0-1" = lib.makeOverridable self.buildNodePackage {
-    name = "colors-0.6.0-1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/colors/-/colors-0.6.0-1.tgz";
-        name = "colors-0.6.0-1.tgz";
-        sha1 = "6dbb68ceb8bc60f2b313dcc5ce1599f06d19e67a";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."colors" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "colors" ];
-  };
   by-spec."colors"."0.6.x" =
     self.by-version."colors"."0.6.2";
   by-version."colors"."0.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -2461,37 +2543,8 @@
   };
   by-spec."connect"."~2" =
     self.by-version."connect"."2.12.0";
-  by-spec."connect"."~2.8.4" =
-    self.by-version."connect"."2.8.8";
-  by-version."connect"."2.8.8" = lib.makeOverridable self.buildNodePackage {
-    name = "connect-2.8.8";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-2.8.8.tgz";
-        name = "connect-2.8.8.tgz";
-        sha1 = "b9abf8caf0bd9773cb3dea29344119872582446d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."0.6.5"
-      self.by-version."formidable"."1.0.14"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."send"."0.1.4"
-      self.by-version."bytes"."0.2.0"
-      self.by-version."fresh"."0.2.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."uid2"."0.0.2"
-      self.by-version."debug"."0.7.4"
-      self.by-version."methods"."0.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "connect" ];
-  };
+  by-spec."connect"."~2.12.0" =
+    self.by-version."connect"."2.12.0";
   by-spec."connect-flash"."*" =
     self.by-version."connect-flash"."0.1.1";
   by-version."connect-flash"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -2545,7 +2598,7 @@
     buildInputs =
       (self.nativeDeps."connect-jade-static" or []);
     deps = [
-      self.by-version."jade"."1.0.0"
+      self.by-version."jade"."1.0.2"
     ];
     peerDependencies = [
     ];
@@ -3550,6 +3603,26 @@
     ];
     passthru.names = [ "domhandler" ];
   };
+  by-spec."domhandler"."2.2" =
+    self.by-version."domhandler"."2.2.0";
+  by-version."domhandler"."2.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "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.1" =
     self.by-version."domutils"."1.1.6";
   by-version."domutils"."1.1.6" = lib.makeOverridable self.buildNodePackage {
@@ -3870,6 +3943,8 @@
     ];
     passthru.names = [ "escodegen" ];
   };
+  by-spec."escodegen"."1.0.x" =
+    self.by-version."escodegen"."1.0.1";
   by-spec."esprima"."1.0.x" =
     self.by-version."esprima"."1.0.4";
   by-version."esprima"."1.0.4" = lib.makeOverridable self.buildNodePackage {
@@ -4073,7 +4148,7 @@
       self.by-version."request"."2.9.203"
       self.by-version."connect"."2.3.9"
       self.by-version."openid"."0.5.5"
-      self.by-version."xml2js"."0.4.0"
+      self.by-version."xml2js"."0.4.1"
       self.by-version."node-swt"."0.1.1"
       self.by-version."node-wsfederation"."0.1.1"
       self.by-version."debug"."0.5.0"
@@ -4396,26 +4471,26 @@
   by-spec."eyes".">=0.1.6" =
     self.by-version."eyes"."0.1.8";
   by-spec."faye-websocket"."*" =
-    self.by-version."faye-websocket"."0.7.1";
-  by-version."faye-websocket"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "faye-websocket-0.7.1";
+    self.by-version."faye-websocket"."0.7.2";
+  by-version."faye-websocket"."0.7.2" = lib.makeOverridable self.buildNodePackage {
+    name = "faye-websocket-0.7.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.1.tgz";
-        name = "faye-websocket-0.7.1.tgz";
-        sha1 = "72fe630d122333e0f36ac453f593ed70e1cb6baa";
+        url = "http://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.2.tgz";
+        name = "faye-websocket-0.7.2.tgz";
+        sha1 = "799970386f87105592397434b02abfa4f07bdf70";
       })
     ];
     buildInputs =
       (self.nativeDeps."faye-websocket" or []);
     deps = [
-      self.by-version."websocket-driver"."0.3.1"
+      self.by-version."websocket-driver"."0.3.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "faye-websocket" ];
   };
-  "faye-websocket" = self.by-version."faye-websocket"."0.7.1";
+  "faye-websocket" = self.by-version."faye-websocket"."0.7.2";
   by-spec."faye-websocket"."0.7.0" =
     self.by-version."faye-websocket"."0.7.0";
   by-version."faye-websocket"."0.7.0" = lib.makeOverridable self.buildNodePackage {
@@ -4430,7 +4505,7 @@
     buildInputs =
       (self.nativeDeps."faye-websocket" or []);
     deps = [
-      self.by-version."websocket-driver"."0.3.1"
+      self.by-version."websocket-driver"."0.3.2"
     ];
     peerDependencies = [
     ];
@@ -5002,6 +5077,8 @@
     ];
     passthru.names = [ "fs.extra" ];
   };
+  by-spec."fs.extra".">=1.2.1 <2" =
+    self.by-version."fs.extra"."1.2.1";
   by-spec."fstream"."0" =
     self.by-version."fstream"."0.1.25";
   by-version."fstream"."0.1.25" = lib.makeOverridable self.buildNodePackage {
@@ -5098,7 +5175,7 @@
     ];
     peerDependencies = [
       self.by-version."generator-karma"."0.6.0"
-      self.by-version."yo"."1.0.7-pre.2"
+      self.by-version."yo"."1.1.0"
     ];
     passthru.names = [ "generator-angular" ];
   };
@@ -5120,7 +5197,7 @@
       self.by-version."yeoman-generator"."0.13.4"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.0.7-pre.2"
+      self.by-version."yo"."1.1.0"
     ];
     passthru.names = [ "generator-karma" ];
   };
@@ -5141,7 +5218,7 @@
       self.by-version."yeoman-generator"."0.14.2"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.0.7-pre.2"
+      self.by-version."yo"."1.1.0"
     ];
     passthru.names = [ "generator-mocha" ];
   };
@@ -5163,7 +5240,7 @@
       self.by-version."cheerio"."0.12.4"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.0.7-pre.2"
+      self.by-version."yo"."1.1.0"
       self.by-version."generator-mocha"."0.1.3"
     ];
     passthru.names = [ "generator-webapp" ];
@@ -5384,8 +5461,6 @@
   };
   by-spec."graceful-fs"."~1.2.0" =
     self.by-version."graceful-fs"."1.2.3";
-  by-spec."graceful-fs"."~1.2.1" =
-    self.by-version."graceful-fs"."1.2.3";
   by-spec."graceful-fs"."~2" =
     self.by-version."graceful-fs"."2.0.1";
   by-spec."graceful-fs"."~2.0.0" =
@@ -5539,7 +5614,7 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-cssmin" or []);
     deps = [
-      self.by-version."clean-css"."2.0.4"
+      self.by-version."clean-css"."2.0.5"
       self.by-version."grunt-lib-contrib"."0.6.1"
     ];
     peerDependencies = [
@@ -5656,7 +5731,7 @@
     ];
     peerDependencies = [
       self.by-version."grunt"."0.4.2"
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
     ];
     passthru.names = [ "grunt-karma" ];
   };
@@ -5720,9 +5795,9 @@
       (self.nativeDeps."guifi-earth" or []);
     deps = [
       self.by-version."coffee-script"."1.6.3"
-      self.by-version."jade"."1.0.0"
+      self.by-version."jade"."1.0.2"
       self.by-version."q"."0.9.7"
-      self.by-version."xml2js"."0.4.0"
+      self.by-version."xml2js"."0.4.1"
       self.by-version."msgpack"."0.2.1"
     ];
     peerDependencies = [
@@ -5772,17 +5847,38 @@
     ];
     passthru.names = [ "handlebars" ];
   };
+  by-spec."handlebars"."1.2.x" =
+    self.by-version."handlebars"."1.2.1";
+  by-version."handlebars"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "handlebars-1.2.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/handlebars/-/handlebars-1.2.1.tgz";
+        name = "handlebars-1.2.1.tgz";
+        sha1 = "0a9016379064f8957779bdc2812869120aba9d98";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."handlebars" or []);
+    deps = [
+      self.by-version."optimist"."0.3.7"
+      self.by-version."uglify-js"."2.3.6"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "handlebars" ];
+  };
   by-spec."handlebars"."~1.0.11" =
     self.by-version."handlebars"."1.0.12";
   by-spec."has-color"."~0.1.0" =
-    self.by-version."has-color"."0.1.1";
-  by-version."has-color"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "has-color-0.1.1";
+    self.by-version."has-color"."0.1.2";
+  by-version."has-color"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "has-color-0.1.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/has-color/-/has-color-0.1.1.tgz";
-        name = "has-color-0.1.1.tgz";
-        sha1 = "28cc90127bc5448f99e76096dc97470a94a66720";
+        url = "http://registry.npmjs.org/has-color/-/has-color-0.1.2.tgz";
+        name = "has-color-0.1.2.tgz";
+        sha1 = "c4a523038912451262c745e0a663c38d948098b4";
       })
     ];
     buildInputs =
@@ -6129,6 +6225,29 @@
     ];
     passthru.names = [ "htmlparser2" ];
   };
+  by-spec."htmlparser2"."~3.4.0" =
+    self.by-version."htmlparser2"."3.4.0";
+  by-version."htmlparser2"."3.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "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.9"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "htmlparser2" ];
+  };
   by-spec."http-auth"."2.0.7" =
     self.by-version."http-auth"."2.0.7";
   by-version."http-auth"."2.0.7" = lib.makeOverridable self.buildNodePackage {
@@ -6174,7 +6293,28 @@
     passthru.names = [ "http-proxy" ];
   };
   by-spec."http-proxy"."~0.10" =
-    self.by-version."http-proxy"."0.10.3";
+    self.by-version."http-proxy"."0.10.4";
+  by-version."http-proxy"."0.10.4" = lib.makeOverridable self.buildNodePackage {
+    name = "http-proxy-0.10.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/http-proxy/-/http-proxy-0.10.4.tgz";
+        name = "http-proxy-0.10.4.tgz";
+        sha1 = "14ba0ceaa2197f89fa30dea9e7b09e19cd93c22f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."http-proxy" or []);
+    deps = [
+      self.by-version."colors"."0.6.2"
+      self.by-version."optimist"."0.6.0"
+      self.by-version."pkginfo"."0.3.0"
+      self.by-version."utile"."0.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "http-proxy" ];
+  };
   by-spec."http-signature"."0.9.11" =
     self.by-version."http-signature"."0.9.11";
   by-version."http-signature"."0.9.11" = lib.makeOverridable self.buildNodePackage {
@@ -6276,7 +6416,7 @@
       (self.nativeDeps."ibrik" or []);
     deps = [
       self.by-version."coffee-script-redux"."2.0.0-beta4"
-      self.by-version."istanbul"."0.2.1"
+      self.by-version."istanbul"."0.2.3"
       self.by-version."optimist"."0.6.0"
       self.by-version."escodegen"."1.0.1"
       self.by-version."mkdirp"."0.3.5"
@@ -6410,7 +6550,7 @@
     buildInputs =
       (self.nativeDeps."init-package-json" or []);
     deps = [
-      self.by-version."promzard"."0.2.0"
+      self.by-version."promzard"."0.2.1"
       self.by-version."read"."1.0.5"
       self.by-version."read-package-json"."1.1.4"
       self.by-version."semver"."2.2.1"
@@ -6468,6 +6608,30 @@
   };
   by-spec."inquirer"."~0.3.1" =
     self.by-version."inquirer"."0.3.5";
+  by-spec."inquirer"."~0.4.0" =
+    self.by-version."inquirer"."0.4.0";
+  by-version."inquirer"."0.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "inquirer-0.4.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/inquirer/-/inquirer-0.4.0.tgz";
+        name = "inquirer-0.4.0.tgz";
+        sha1 = "62782d60c8a71d6328d8b4e9a5a71933cfda8f33";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."inquirer" or []);
+    deps = [
+      self.by-version."lodash"."2.4.1"
+      self.by-version."async"."0.2.9"
+      self.by-version."cli-color"."0.2.3"
+      self.by-version."mute-stream"."0.0.4"
+      self.by-version."through"."2.3.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "inquirer" ];
+  };
   by-spec."insight"."~0.3.0" =
     self.by-version."insight"."0.3.0";
   by-version."insight"."0.3.0" = lib.makeOverridable self.buildNodePackage {
@@ -6532,8 +6696,8 @@
       self.by-version."fs-walk"."0.0.1"
       self.by-version."async"."0.2.9"
       self.by-version."express"."3.4.7"
-      self.by-version."jade"."1.0.0"
-      self.by-version."passport"."0.1.17"
+      self.by-version."jade"."1.0.2"
+      self.by-version."passport"."0.1.18"
       self.by-version."passport-http"."0.2.2"
       self.by-version."js-yaml"."3.0.1"
       self.by-version."mongoose"."3.8.3"
@@ -6549,14 +6713,14 @@
   };
   "ironhorse" = self.by-version."ironhorse"."0.0.9";
   by-spec."is"."~0.2.6" =
-    self.by-version."is"."0.2.6";
-  by-version."is"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "is-0.2.6";
+    self.by-version."is"."0.2.7";
+  by-version."is"."0.2.7" = lib.makeOverridable self.buildNodePackage {
+    name = "is-0.2.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/is/-/is-0.2.6.tgz";
-        name = "is-0.2.6.tgz";
-        sha1 = "36681b7c4328a75a6dd4b6d8f7131e4f81de55c0";
+        url = "http://registry.npmjs.org/is/-/is-0.2.7.tgz";
+        name = "is-0.2.7.tgz";
+        sha1 = "3b34a2c48f359972f35042849193ae7264b63562";
       })
     ];
     buildInputs =
@@ -6646,22 +6810,22 @@
     passthru.names = [ "isbinaryfile" ];
   };
   by-spec."istanbul"."*" =
-    self.by-version."istanbul"."0.2.1";
-  by-version."istanbul"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "istanbul-0.2.1";
+    self.by-version."istanbul"."0.2.3";
+  by-version."istanbul"."0.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "istanbul-0.2.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.1.tgz";
-        name = "istanbul-0.2.1.tgz";
-        sha1 = "21755f7ff0d7627a0747e571ffcea7f2ee9627d8";
+        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.3.tgz";
+        name = "istanbul-0.2.3.tgz";
+        sha1 = "bbce67c1d540610e7021becda51d7cbbbecc68cc";
       })
     ];
     buildInputs =
       (self.nativeDeps."istanbul" or []);
     deps = [
       self.by-version."esprima"."1.0.4"
-      self.by-version."escodegen"."0.0.23"
-      self.by-version."handlebars"."1.0.12"
+      self.by-version."escodegen"."1.0.1"
+      self.by-version."handlebars"."1.2.1"
       self.by-version."mkdirp"."0.3.5"
       self.by-version."nopt"."2.1.2"
       self.by-version."fileset"."0.1.5"
@@ -6669,13 +6833,14 @@
       self.by-version."async"."0.2.9"
       self.by-version."abbrev"."1.0.4"
       self.by-version."wordwrap"."0.0.2"
-      self.by-version."resolve"."0.5.1"
+      self.by-version."resolve"."0.6.1"
+      self.by-version."js-yaml"."3.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "istanbul" ];
   };
-  "istanbul" = self.by-version."istanbul"."0.2.1";
+  "istanbul" = self.by-version."istanbul"."0.2.3";
   by-spec."istanbul"."~0.1.45" =
     self.by-version."istanbul"."0.1.46";
   by-version."istanbul"."0.1.46" = lib.makeOverridable self.buildNodePackage {
@@ -6707,14 +6872,14 @@
     passthru.names = [ "istanbul" ];
   };
   by-spec."jade"."*" =
-    self.by-version."jade"."1.0.0";
-  by-version."jade"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "jade-1.0.0";
+    self.by-version."jade"."1.0.2";
+  by-version."jade"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "jade-1.0.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jade/-/jade-1.0.0.tgz";
-        name = "jade-1.0.0.tgz";
-        sha1 = "388fab59603843eb4836211a3684f5206cb93b66";
+        url = "http://registry.npmjs.org/jade/-/jade-1.0.2.tgz";
+        name = "jade-1.0.2.tgz";
+        sha1 = "86fed5d02d703f0309f06ddefa04a69fee00a2b1";
       })
     ];
     buildInputs =
@@ -6732,7 +6897,7 @@
     ];
     passthru.names = [ "jade" ];
   };
-  "jade" = self.by-version."jade"."1.0.0";
+  "jade" = self.by-version."jade"."1.0.2";
   by-spec."jade"."0.26.3" =
     self.by-version."jade"."0.26.3";
   by-version."jade"."0.26.3" = lib.makeOverridable self.buildNodePackage {
@@ -6776,16 +6941,16 @@
     passthru.names = [ "jade" ];
   };
   by-spec."jade".">= 0.0.1" =
-    self.by-version."jade"."1.0.0";
+    self.by-version."jade"."1.0.2";
   by-spec."jayschema"."*" =
-    self.by-version."jayschema"."0.2.1";
-  by-version."jayschema"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "jayschema-0.2.1";
+    self.by-version."jayschema"."0.2.2";
+  by-version."jayschema"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "jayschema-0.2.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.1.tgz";
-        name = "jayschema-0.2.1.tgz";
-        sha1 = "b951c66c9cf48c510d5b920198c2755590f3b691";
+        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.2.tgz";
+        name = "jayschema-0.2.2.tgz";
+        sha1 = "7bbe15c7756cca8c527427c4e424259df7b151c9";
       })
     ];
     buildInputs =
@@ -6797,7 +6962,7 @@
     ];
     passthru.names = [ "jayschema" ];
   };
-  "jayschema" = self.by-version."jayschema"."0.2.1";
+  "jayschema" = self.by-version."jayschema"."0.2.2";
   by-spec."jedediah"."~0.1.0" =
     self.by-version."jedediah"."0.1.1";
   by-version."jedediah"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -6879,6 +7044,8 @@
     ];
     passthru.names = [ "js-yaml" ];
   };
+  by-spec."js-yaml"."3.x" =
+    self.by-version."js-yaml"."3.0.1";
   by-spec."js-yaml"."~2.0.5" =
     self.by-version."js-yaml"."2.0.5";
   by-version."js-yaml"."2.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -7127,14 +7294,14 @@
     passthru.names = [ "junk" ];
   };
   by-spec."karma"."*" =
-    self.by-version."karma"."0.11.11";
-  by-version."karma"."0.11.11" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-0.11.11";
+    self.by-version."karma"."0.11.12";
+  by-version."karma"."0.11.12" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-0.11.12";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma/-/karma-0.11.11.tgz";
-        name = "karma-0.11.11.tgz";
-        sha1 = "c5e0fa2220dfee7bb08a3bb085895b40e82197a8";
+        url = "http://registry.npmjs.org/karma/-/karma-0.11.12.tgz";
+        name = "karma-0.11.12.tgz";
+        sha1 = "a3474cb3b5e305c7182729a5d98f259c09d2af77";
       })
     ];
     buildInputs =
@@ -7143,34 +7310,35 @@
       self.by-version."di"."0.0.1"
       self.by-version."socket.io"."0.9.16"
       self.by-version."chokidar"."0.8.1"
-      self.by-version."glob"."3.1.21"
+      self.by-version."glob"."3.2.7"
       self.by-version."minimatch"."0.2.14"
-      self.by-version."http-proxy"."0.10.3"
-      self.by-version."optimist"."0.3.7"
+      self.by-version."http-proxy"."0.10.4"
+      self.by-version."optimist"."0.6.0"
       self.by-version."coffee-script"."1.6.3"
-      self.by-version."rimraf"."2.1.4"
+      self.by-version."rimraf"."2.2.5"
       self.by-version."q"."0.9.7"
-      self.by-version."colors"."0.6.0-1"
-      self.by-version."lodash"."1.1.1"
+      self.by-version."colors"."0.6.2"
+      self.by-version."lodash"."2.4.1"
       self.by-version."mime"."1.2.11"
       self.by-version."log4js"."0.6.9"
       self.by-version."useragent"."2.0.7"
-      self.by-version."graceful-fs"."1.2.3"
-      self.by-version."connect"."2.8.8"
+      self.by-version."graceful-fs"."2.0.1"
+      self.by-version."connect"."2.12.0"
+      self.by-version."source-map"."0.1.31"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "karma" ];
   };
-  "karma" = self.by-version."karma"."0.11.11";
+  "karma" = self.by-version."karma"."0.11.12";
   by-spec."karma".">=0.11.11" =
-    self.by-version."karma"."0.11.11";
+    self.by-version."karma"."0.11.12";
   by-spec."karma".">=0.9" =
-    self.by-version."karma"."0.11.11";
+    self.by-version."karma"."0.11.12";
   by-spec."karma".">=0.9.3" =
-    self.by-version."karma"."0.11.11";
+    self.by-version."karma"."0.11.12";
   by-spec."karma"."~0.11.0" =
-    self.by-version."karma"."0.11.11";
+    self.by-version."karma"."0.11.12";
   by-spec."karma-chrome-launcher"."*" =
     self.by-version."karma-chrome-launcher"."0.1.2";
   by-version."karma-chrome-launcher"."0.1.2" = lib.makeOverridable self.buildNodePackage {
@@ -7187,7 +7355,7 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
     ];
     passthru.names = [ "karma-chrome-launcher" ];
   };
@@ -7211,7 +7379,7 @@
       self.by-version."dateformat"."1.0.7-1.2.3"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
     ];
     passthru.names = [ "karma-coverage" ];
   };
@@ -7233,7 +7401,7 @@
       self.by-version."xmlbuilder"."0.4.2"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
     ];
     passthru.names = [ "karma-junit-reporter" ];
   };
@@ -7254,7 +7422,7 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
       self.by-version."mocha"."1.16.2"
     ];
     passthru.names = [ "karma-mocha" ];
@@ -7276,7 +7444,7 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
       self.by-version."requirejs"."2.1.9"
     ];
     passthru.names = [ "karma-requirejs" ];
@@ -7302,7 +7470,7 @@
       self.by-version."saucelabs"."0.1.1"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.11"
+      self.by-version."karma"."0.11.12"
     ];
     passthru.names = [ "karma-sauce-launcher" ];
   };
@@ -7530,7 +7698,7 @@
       self.by-version."mime"."1.2.11"
       self.by-version."request"."2.30.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."clean-css"."2.0.4"
+      self.by-version."clean-css"."2.0.5"
       self.by-version."source-map"."0.1.31"
     ];
     peerDependencies = [
@@ -7653,25 +7821,6 @@
     ];
     passthru.names = [ "lodash" ];
   };
-  by-spec."lodash"."~1.1" =
-    self.by-version."lodash"."1.1.1";
-  by-version."lodash"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "lodash-1.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz";
-        name = "lodash-1.1.1.tgz";
-        sha1 = "41a2b2e9a00e64d6d1999f143ff6b0755f6bbb24";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash" ];
-  };
   by-spec."lodash"."~1.2.1" =
     self.by-version."lodash"."1.2.1";
   by-version."lodash"."1.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -7965,14 +8114,14 @@
   by-spec."lru-cache"."~2.5.0" =
     self.by-version."lru-cache"."2.5.0";
   by-spec."mailcomposer".">= 0.1.27" =
-    self.by-version."mailcomposer"."0.2.6";
-  by-version."mailcomposer"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "mailcomposer-0.2.6";
+    self.by-version."mailcomposer"."0.2.7";
+  by-version."mailcomposer"."0.2.7" = lib.makeOverridable self.buildNodePackage {
+    name = "mailcomposer-0.2.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.6.tgz";
-        name = "mailcomposer-0.2.6.tgz";
-        sha1 = "fa785ae7505daeb7a11f7cecf2b374d7801d1b87";
+        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.7.tgz";
+        name = "mailcomposer-0.2.7.tgz";
+        sha1 = "173ba58e9bca0e4c43ca25f44f2dfecf16ef98aa";
       })
     ];
     buildInputs =
@@ -7982,6 +8131,7 @@
       self.by-version."mime"."1.2.9"
       self.by-version."he"."0.3.6"
       self.by-version."punycode"."1.2.3"
+      self.by-version."follow-redirects"."0.0.3"
       self.by-version."dkim-signer"."0.1.0"
     ];
     peerDependencies = [
@@ -8192,8 +8342,6 @@
     self.by-version."mime"."1.2.11";
   by-spec."mime".">= 0.0.1" =
     self.by-version."mime"."1.2.11";
-  by-spec."mime"."~1.2" =
-    self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.11" =
     self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.2" =
@@ -8947,7 +9095,7 @@
     ];
     passthru.names = [ "mute-stream" ];
   };
-  by-spec."mute-stream"."~0.0.4" =
+  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 = "mute-stream-0.0.4";
@@ -8966,6 +9114,8 @@
     ];
     passthru.names = [ "mute-stream" ];
   };
+  by-spec."mute-stream"."~0.0.4" =
+    self.by-version."mute-stream"."0.0.4";
   by-spec."mv"."0.0.5" =
     self.by-version."mv"."0.0.5";
   by-version."mv"."0.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -9501,7 +9651,7 @@
     buildInputs =
       (self.nativeDeps."node-wsfederation" or []);
     deps = [
-      self.by-version."xml2js"."0.4.0"
+      self.by-version."xml2js"."0.4.1"
     ];
     peerDependencies = [
     ];
@@ -9540,7 +9690,7 @@
     buildInputs =
       (self.nativeDeps."nodemailer" or []);
     deps = [
-      self.by-version."mailcomposer"."0.2.6"
+      self.by-version."mailcomposer"."0.2.7"
       self.by-version."simplesmtp"."0.3.16"
       self.by-version."optimist"."0.6.0"
     ];
@@ -9549,14 +9699,14 @@
     passthru.names = [ "nodemailer" ];
   };
   by-spec."nodemon"."*" =
-    self.by-version."nodemon"."0.9.17";
-  by-version."nodemon"."0.9.17" = lib.makeOverridable self.buildNodePackage {
-    name = "nodemon-0.9.17";
+    self.by-version."nodemon"."1.0.2";
+  by-version."nodemon"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "nodemon-1.0.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nodemon/-/nodemon-0.9.17.tgz";
-        name = "nodemon-0.9.17.tgz";
-        sha1 = "31fbc65cbda162ebff4d9ff5f774fdd3006bb50b";
+        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.2.tgz";
+        name = "nodemon-1.0.2.tgz";
+        sha1 = "f934df2f87a1b4718c283615d1f4f985b852e28e";
       })
     ];
     buildInputs =
@@ -9568,7 +9718,7 @@
     ];
     passthru.names = [ "nodemon" ];
   };
-  "nodemon" = self.by-version."nodemon"."0.9.17";
+  "nodemon" = self.by-version."nodemon"."1.0.2";
   by-spec."nomnom"."1.6.x" =
     self.by-version."nomnom"."1.6.2";
   by-version."nomnom"."1.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -9638,9 +9788,9 @@
     name = "nopt-1.0.10";
     src = [
       (fetchurl {
-        url = "https://github.com/Filirom1/nopt/tarball/master#pull-request-in-progress";
+        url = "http://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
         name = "nopt-1.0.10.tgz";
-        sha256 = "94daa53a0ab7668be12931b7b551c924c913d1efef7f2a05e60704c9b90a7bad";
+        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
       })
     ];
     buildInputs =
@@ -9681,14 +9831,14 @@
     passthru.names = [ "normalize-package-data" ];
   };
   by-spec."npm"."*" =
-    self.by-version."npm"."1.3.22";
-  by-version."npm"."1.3.22" = lib.makeOverridable self.buildNodePackage {
-    name = "npm-1.3.22";
+    self.by-version."npm"."1.3.23";
+  by-version."npm"."1.3.23" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-1.3.23";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm/-/npm-1.3.22.tgz";
-        name = "npm-1.3.22.tgz";
-        sha1 = "6ebc09f97f83ed3fd524b85faea5e30574e08c99";
+        url = "http://registry.npmjs.org/npm/-/npm-1.3.23.tgz";
+        name = "npm-1.3.23.tgz";
+        sha1 = "8463ddbc060169b48890d639c4be9c839b8a0f3d";
       })
     ];
     buildInputs =
@@ -9745,9 +9895,9 @@
     ];
     passthru.names = [ "npm" ];
   };
-  "npm" = self.by-version."npm"."1.3.22";
+  "npm" = self.by-version."npm"."1.3.23";
   by-spec."npm"."~1.3.14" =
-    self.by-version."npm"."1.3.22";
+    self.by-version."npm"."1.3.23";
   by-spec."npm-registry-client"."0.2.27" =
     self.by-version."npm-registry-client"."0.2.27";
   by-version."npm-registry-client"."0.2.27" = lib.makeOverridable self.buildNodePackage {
@@ -10073,7 +10223,7 @@
     deps = [
       self.by-version."foreach"."2.0.4"
       self.by-version."indexof"."0.0.1"
-      self.by-version."is"."0.2.6"
+      self.by-version."is"."0.2.7"
     ];
     peerDependencies = [
     ];
@@ -10261,6 +10411,8 @@
   };
   by-spec."optimist"."0.6.0" =
     self.by-version."optimist"."0.6.0";
+  by-spec."optimist"."0.6.x" =
+    self.by-version."optimist"."0.6.0";
   by-spec."optimist"."~0.3" =
     self.by-version."optimist"."0.3.7";
   by-spec."optimist"."~0.3.4" =
@@ -10393,6 +10545,28 @@
     passthru.names = [ "p-throttler" ];
   };
   by-spec."passport"."*" =
+    self.by-version."passport"."0.1.18";
+  by-version."passport"."0.1.18" = lib.makeOverridable self.buildNodePackage {
+    name = "passport-0.1.18";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/passport/-/passport-0.1.18.tgz";
+        name = "passport-0.1.18.tgz";
+        sha1 = "c8264479dcb6414cadbb66752d12b37e0b6525a1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."passport" or []);
+    deps = [
+      self.by-version."pkginfo"."0.2.3"
+      self.by-version."pause"."0.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "passport" ];
+  };
+  "passport" = self.by-version."passport"."0.1.18";
+  by-spec."passport"."0.1.17" =
     self.by-version."passport"."0.1.17";
   by-version."passport"."0.1.17" = lib.makeOverridable self.buildNodePackage {
     name = "passport-0.1.17";
@@ -10413,13 +10587,10 @@
     ];
     passthru.names = [ "passport" ];
   };
-  "passport" = self.by-version."passport"."0.1.17";
-  by-spec."passport"."0.1.17" =
-    self.by-version."passport"."0.1.17";
   by-spec."passport"."~0.1.1" =
-    self.by-version."passport"."0.1.17";
+    self.by-version."passport"."0.1.18";
   by-spec."passport"."~0.1.3" =
-    self.by-version."passport"."0.1.17";
+    self.by-version."passport"."0.1.18";
   by-spec."passport-http"."*" =
     self.by-version."passport-http"."0.2.2";
   by-version."passport-http"."0.2.2" = lib.makeOverridable self.buildNodePackage {
@@ -10435,7 +10606,7 @@
       (self.nativeDeps."passport-http" or []);
     deps = [
       self.by-version."pkginfo"."0.2.3"
-      self.by-version."passport"."0.1.17"
+      self.by-version."passport"."0.1.18"
     ];
     peerDependencies = [
     ];
@@ -10457,7 +10628,7 @@
       (self.nativeDeps."passport-local" or []);
     deps = [
       self.by-version."pkginfo"."0.2.3"
-      self.by-version."passport"."0.1.17"
+      self.by-version."passport"."0.1.18"
     ];
     peerDependencies = [
     ];
@@ -10716,14 +10887,14 @@
     passthru.names = [ "promptly" ];
   };
   by-spec."promzard"."~0.2.0" =
-    self.by-version."promzard"."0.2.0";
-  by-version."promzard"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "promzard-0.2.0";
+    self.by-version."promzard"."0.2.1";
+  by-version."promzard"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "promzard-0.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/promzard/-/promzard-0.2.0.tgz";
-        name = "promzard-0.2.0.tgz";
-        sha1 = "766f33807faadeeecacf8057024fe5f753cfa3c1";
+        url = "http://registry.npmjs.org/promzard/-/promzard-0.2.1.tgz";
+        name = "promzard-0.2.1.tgz";
+        sha1 = "c4c7cbe5182465c13b43540be9daf47098b4e75b";
       })
     ];
     buildInputs =
@@ -10755,20 +10926,20 @@
     passthru.names = [ "proto-list" ];
   };
   by-spec."protobufjs".">= 1.1.4" =
-    self.by-version."protobufjs"."2.0.1";
-  by-version."protobufjs"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "protobufjs-2.0.1";
+    self.by-version."protobufjs"."2.0.3";
+  by-version."protobufjs"."2.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "protobufjs-2.0.3";
     src = [
       (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/protobufjs/-/protobufjs-2.0.1.tgz";
-        name = "protobufjs-2.0.1.tgz";
-        sha1 = "636e8c4a9e0488fbc9c8898c044d844884f8fd96";
+        url = "http://registry.npmjs.org/protobufjs/-/protobufjs-2.0.3.tgz";
+        name = "protobufjs-2.0.3.tgz";
+        sha1 = "a33bfa95cee12b182ef08c6f3e0a0b296167a67f";
       })
     ];
     buildInputs =
       (self.nativeDeps."protobufjs" or []);
     deps = [
-      self.by-version."bytebuffer"."2.1.0"
+      self.by-version."bytebuffer"."2.3.1"
       self.by-version."ascli"."0.3.0"
     ];
     peerDependencies = [
@@ -10835,8 +11006,6 @@
     ];
     passthru.names = [ "q" ];
   };
-  by-spec."q"."~0.9" =
-    self.by-version."q"."0.9.7";
   by-spec."q"."~0.9.2" =
     self.by-version."q"."0.9.7";
   by-spec."q"."~0.9.6" =
@@ -11282,9 +11451,7 @@
     ];
     passthru.names = [ "readable-stream" ];
   };
-  by-spec."readable-stream"."~1.0.2" =
-    self.by-version."readable-stream"."1.0.17";
-  by-spec."readable-stream"."~1.1.8" =
+  by-spec."readable-stream"."1.1" =
     self.by-version."readable-stream"."1.1.9";
   by-version."readable-stream"."1.1.9" = lib.makeOverridable self.buildNodePackage {
     name = "readable-stream-1.1.9";
@@ -11305,6 +11472,10 @@
     ];
     passthru.names = [ "readable-stream" ];
   };
+  by-spec."readable-stream"."~1.0.2" =
+    self.by-version."readable-stream"."1.0.17";
+  by-spec."readable-stream"."~1.1.8" =
+    self.by-version."readable-stream"."1.1.9";
   by-spec."readable-stream"."~1.1.9" =
     self.by-version."readable-stream"."1.1.9";
   by-spec."readdirp"."~0.2.3" =
@@ -11719,37 +11890,6 @@
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request"."~2.29.0" =
-    self.by-version."request"."2.29.0";
-  by-version."request"."2.29.0" = lib.makeOverridable self.buildNodePackage {
-    name = "request-2.29.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.29.0.tgz";
-        name = "request-2.29.0.tgz";
-        sha1 = "0d4b8de70d26a9911a8344af9a0e8edab81ff1c3";
-      })
-    ];
-    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.0"
-      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.2"
-      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" ];
-  };
   by-spec."request"."~2.30.0" =
     self.by-version."request"."2.30.0";
   by-spec."request-progress"."~0.3.0" =
@@ -11832,6 +11972,25 @@
     ];
     passthru.names = [ "resolve" ];
   };
+  by-spec."resolve"."0.6.x" =
+    self.by-version."resolve"."0.6.1";
+  by-version."resolve"."0.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "resolve-0.6.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/resolve/-/resolve-0.6.1.tgz";
+        name = "resolve-0.6.1.tgz";
+        sha1 = "b7fc874a8fe240b44de2c92b7f885a2e8598b652";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."resolve" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "resolve" ];
+  };
   by-spec."resolve"."~0.3.1" =
     self.by-version."resolve"."0.3.1";
   by-version."resolve"."0.3.1" = lib.makeOverridable self.buildNodePackage {
@@ -11901,7 +12060,7 @@
     buildInputs =
       (self.nativeDeps."rethinkdb" or []);
     deps = [
-      self.by-version."protobufjs"."2.0.1"
+      self.by-version."protobufjs"."2.0.3"
     ];
     peerDependencies = [
     ];
@@ -12012,7 +12171,7 @@
   };
   by-spec."rimraf"."~2.0.3" =
     self.by-version."rimraf"."2.0.3";
-  by-spec."rimraf"."~2.1" =
+  by-spec."rimraf"."~2.1.4" =
     self.by-version."rimraf"."2.1.4";
   by-version."rimraf"."2.1.4" = lib.makeOverridable self.buildNodePackage {
     name = "rimraf-2.1.4";
@@ -12032,8 +12191,6 @@
     ];
     passthru.names = [ "rimraf" ];
   };
-  by-spec."rimraf"."~2.1.4" =
-    self.by-version."rimraf"."2.1.4";
   by-spec."rimraf"."~2.2.0" =
     self.by-version."rimraf"."2.2.5";
   by-spec."rimraf"."~2.2.2" =
@@ -12041,20 +12198,20 @@
   by-spec."rimraf"."~2.2.5" =
     self.by-version."rimraf"."2.2.5";
   by-spec."s3http"."*" =
-    self.by-version."s3http"."0.0.3";
-  by-version."s3http"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "s3http-0.0.3";
+    self.by-version."s3http"."0.0.4";
+  by-version."s3http"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "s3http-0.0.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/s3http/-/s3http-0.0.3.tgz";
-        name = "s3http-0.0.3.tgz";
-        sha1 = "4d8965ae1c62c7fc2bbdc3fb6b95067429aac87a";
+        url = "http://registry.npmjs.org/s3http/-/s3http-0.0.4.tgz";
+        name = "s3http-0.0.4.tgz";
+        sha1 = "e7cc4b7e9f9bacaa7ee3a5af81917fd0ca8ce8da";
       })
     ];
     buildInputs =
       (self.nativeDeps."s3http" or []);
     deps = [
-      self.by-version."aws-sdk"."1.16.0"
+      self.by-version."aws-sdk"."1.17.0"
       self.by-version."commander"."2.0.0"
       self.by-version."http-auth"."2.0.7"
       self.by-version."express"."3.4.4"
@@ -12067,7 +12224,7 @@
     ];
     passthru.names = [ "s3http" ];
   };
-  "s3http" = self.by-version."s3http"."0.0.3";
+  "s3http" = self.by-version."s3http"."0.0.4";
   by-spec."sauce-connect-launcher"."~0.2.2" =
     self.by-version."sauce-connect-launcher"."0.2.2";
   by-version."sauce-connect-launcher"."0.2.2" = lib.makeOverridable self.buildNodePackage {
@@ -12129,7 +12286,24 @@
     passthru.names = [ "sax" ];
   };
   by-spec."sax".">=0.4.2" =
-    self.by-version."sax"."0.5.8";
+    self.by-version."sax"."0.6.0";
+  by-version."sax"."0.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "sax-0.6.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sax/-/sax-0.6.0.tgz";
+        name = "sax-0.6.0.tgz";
+        sha1 = "7a155519b712e3ec56f102ab984f15e15d3859f0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sax" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sax" ];
+  };
   by-spec."selenium-webdriver"."*" =
     self.by-version."selenium-webdriver"."2.39.0";
   by-version."selenium-webdriver"."2.39.0" = lib.makeOverridable self.buildNodePackage {
@@ -12214,6 +12388,8 @@
     self.by-version."semver"."2.2.1";
   by-spec."semver".">=2.0.10 <3.0.0" =
     self.by-version."semver"."2.2.1";
+  by-spec."semver".">=2.2.1 <3" =
+    self.by-version."semver"."2.2.1";
   by-spec."semver"."^2.2.1" =
     self.by-version."semver"."2.2.1";
   by-spec."semver"."~1.1.0" =
@@ -12829,6 +13005,8 @@
     self.by-version."source-map"."0.1.31";
   by-spec."source-map"."~0.1.30" =
     self.by-version."source-map"."0.1.31";
+  by-spec."source-map"."~0.1.31" =
+    self.by-version."source-map"."0.1.31";
   by-spec."source-map"."~0.1.7" =
     self.by-version."source-map"."0.1.31";
   by-spec."spdy"."1.7.1" =
@@ -12872,14 +13050,14 @@
     passthru.names = [ "ssh-agent" ];
   };
   by-spec."ssh2"."~0.2.14" =
-    self.by-version."ssh2"."0.2.14";
-  by-version."ssh2"."0.2.14" = lib.makeOverridable self.buildNodePackage {
-    name = "ssh2-0.2.14";
+    self.by-version."ssh2"."0.2.15";
+  by-version."ssh2"."0.2.15" = lib.makeOverridable self.buildNodePackage {
+    name = "ssh2-0.2.15";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ssh2/-/ssh2-0.2.14.tgz";
-        name = "ssh2-0.2.14.tgz";
-        sha1 = "6f93df62f1475cbe5b45924da568643b9ac7388a";
+        url = "http://registry.npmjs.org/ssh2/-/ssh2-0.2.15.tgz";
+        name = "ssh2-0.2.15.tgz";
+        sha1 = "4bdd245a6764ec3cf9689c08aa8467bdedfb3cb0";
       })
     ];
     buildInputs =
@@ -13451,6 +13629,25 @@
     ];
     passthru.names = [ "throttleit" ];
   };
+  by-spec."through"."~2.3.4" =
+    self.by-version."through"."2.3.4";
+  by-version."through"."2.3.4" = lib.makeOverridable self.buildNodePackage {
+    name = "through-2.3.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/through/-/through-2.3.4.tgz";
+        name = "through-2.3.4.tgz";
+        sha1 = "495e40e8d8a8eaebc7c275ea88c2b8fc14c56455";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."through" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "through" ];
+  };
   by-spec."through2"."~0.1.0" =
     self.by-version."through2"."0.1.0";
   by-version."through2"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -13890,25 +14087,6 @@
     ];
     passthru.names = [ "uid-number" ];
   };
-  by-spec."uid2"."0.0.2" =
-    self.by-version."uid2"."0.0.2";
-  by-version."uid2"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "uid2-0.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz";
-        name = "uid2-0.0.2.tgz";
-        sha1 = "107fb155c82c1136620797ed4c88cf2b08f6aab8";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."uid2" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "uid2" ];
-  };
   by-spec."uid2"."0.0.3" =
     self.by-version."uid2"."0.0.3";
   by-version."uid2"."0.0.3" = lib.makeOverridable self.buildNodePackage {
@@ -14064,13 +14242,13 @@
       self.by-version."socket.io"."0.9.16"
       self.by-version."moment"."2.4.0"
       self.by-version."async"."0.2.9"
-      self.by-version."ssh2"."0.2.14"
+      self.by-version."ssh2"."0.2.15"
       self.by-version."rc"."0.3.2"
       self.by-version."uuid"."1.4.1"
       self.by-version."winston"."0.7.2"
       self.by-version."passport"."0.1.17"
       self.by-version."passport-local"."0.1.6"
-      self.by-version."npm"."1.3.22"
+      self.by-version."npm"."1.3.23"
       self.by-version."semver"."2.2.1"
       self.by-version."forever-monitor"."1.1.0"
       self.by-version."open"."0.0.4"
@@ -14113,7 +14291,7 @@
     ];
     passthru.names = [ "update-notifier" ];
   };
-  by-spec."update-notifier"."~0.1.5" =
+  by-spec."update-notifier"."~0.1.7" =
     self.by-version."update-notifier"."0.1.7";
   by-spec."useragent"."~2.0.4" =
     self.by-version."useragent"."2.0.7";
@@ -14370,14 +14548,14 @@
     passthru.names = [ "verror" ];
   };
   by-spec."view-helpers"."*" =
-    self.by-version."view-helpers"."0.1.3";
-  by-version."view-helpers"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "view-helpers-0.1.3";
+    self.by-version."view-helpers"."0.1.4";
+  by-version."view-helpers"."0.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "view-helpers-0.1.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/view-helpers/-/view-helpers-0.1.3.tgz";
-        name = "view-helpers-0.1.3.tgz";
-        sha1 = "97b061548a753eff5b432e6c1598cb10417bff02";
+        url = "http://registry.npmjs.org/view-helpers/-/view-helpers-0.1.4.tgz";
+        name = "view-helpers-0.1.4.tgz";
+        sha1 = "aeadfbcc2c21343d2b0ef4d4f20f805764286cee";
       })
     ];
     buildInputs =
@@ -14388,7 +14566,7 @@
     ];
     passthru.names = [ "view-helpers" ];
   };
-  "view-helpers" = self.by-version."view-helpers"."0.1.3";
+  "view-helpers" = self.by-version."view-helpers"."0.1.4";
   by-spec."vows".">=0.5.13" =
     self.by-version."vows"."0.7.0";
   by-version."vows"."0.7.0" = lib.makeOverridable self.buildNodePackage {
@@ -14525,14 +14703,14 @@
   };
   "webdrvr" = self.by-version."webdrvr"."2.38.0-0";
   by-spec."websocket-driver".">=0.3.0" =
-    self.by-version."websocket-driver"."0.3.1";
-  by-version."websocket-driver"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "websocket-driver-0.3.1";
+    self.by-version."websocket-driver"."0.3.2";
+  by-version."websocket-driver"."0.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "websocket-driver-0.3.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/websocket-driver/-/websocket-driver-0.3.1.tgz";
-        name = "websocket-driver-0.3.1.tgz";
-        sha1 = "25f86b4e7ca9d8f8136cd225ffcee71a3d2869cf";
+        url = "http://registry.npmjs.org/websocket-driver/-/websocket-driver-0.3.2.tgz";
+        name = "websocket-driver-0.3.2.tgz";
+        sha1 = "f177ef6611390e2401ae47f35e8386dda987daca";
       })
     ];
     buildInputs =
@@ -14544,7 +14722,7 @@
     passthru.names = [ "websocket-driver" ];
   };
   by-spec."websocket-driver".">=0.3.1" =
-    self.by-version."websocket-driver"."0.3.1";
+    self.by-version."websocket-driver"."0.3.2";
   by-spec."when"."~2.2.1" =
     self.by-version."when"."2.2.1";
   by-version."when"."2.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -14796,14 +14974,14 @@
   };
   "wu" = self.by-version."wu"."0.1.8";
   by-spec."x509"."*" =
-    self.by-version."x509"."0.0.6";
-  by-version."x509"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "x509-0.0.6";
+    self.by-version."x509"."0.0.7";
+  by-version."x509"."0.0.7" = lib.makeOverridable self.buildNodePackage {
+    name = "x509-0.0.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/x509/-/x509-0.0.6.tgz";
-        name = "x509-0.0.6.tgz";
-        sha1 = "b58747854ff33df7ff8f1653756bff6a32a8c838";
+        url = "http://registry.npmjs.org/x509/-/x509-0.0.7.tgz";
+        name = "x509-0.0.7.tgz";
+        sha1 = "198a57a9691649b030a383e0e5f89e635d6e99e7";
       })
     ];
     buildInputs =
@@ -14814,7 +14992,7 @@
     ];
     passthru.names = [ "x509" ];
   };
-  "x509" = self.by-version."x509"."0.0.6";
+  "x509" = self.by-version."x509"."0.0.7";
   by-spec."xml2js"."0.2.4" =
     self.by-version."xml2js"."0.2.4";
   by-version."xml2js"."0.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -14829,7 +15007,7 @@
     buildInputs =
       (self.nativeDeps."xml2js" or []);
     deps = [
-      self.by-version."sax"."0.5.8"
+      self.by-version."sax"."0.6.0"
     ];
     peerDependencies = [
     ];
@@ -14856,28 +15034,28 @@
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">= 0.0.1" =
-    self.by-version."xml2js"."0.4.0";
-  by-version."xml2js"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "xml2js-0.4.0";
+    self.by-version."xml2js"."0.4.1";
+  by-version."xml2js"."0.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "xml2js-0.4.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.0.tgz";
-        name = "xml2js-0.4.0.tgz";
-        sha1 = "124fc4114b4129c810800ecb2ac86cf25462cb9a";
+        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.1.tgz";
+        name = "xml2js-0.4.1.tgz";
+        sha1 = "dee0630173a5c6ea62797f848615fd55c6bc6992";
       })
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
     deps = [
       self.by-version."sax"."0.5.8"
-      self.by-version."xmlbuilder"."2.0.1"
+      self.by-version."xmlbuilder"."2.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">=0.1.7" =
-    self.by-version."xml2js"."0.4.0";
+    self.by-version."xml2js"."0.4.1";
   by-spec."xmlbuilder"."0.4.2" =
     self.by-version."xmlbuilder"."0.4.2";
   by-version."xmlbuilder"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -14898,14 +15076,14 @@
     passthru.names = [ "xmlbuilder" ];
   };
   by-spec."xmlbuilder".">=0.4.2" =
-    self.by-version."xmlbuilder"."2.0.1";
-  by-version."xmlbuilder"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "xmlbuilder-2.0.1";
+    self.by-version."xmlbuilder"."2.1.0";
+  by-version."xmlbuilder"."2.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "xmlbuilder-2.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.0.1.tgz";
-        name = "xmlbuilder-2.0.1.tgz";
-        sha1 = "b0f9b16bd2a260e734f5f8e30d9bf1db217fe79b";
+        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.1.0.tgz";
+        name = "xmlbuilder-2.1.0.tgz";
+        sha1 = "6ddae31683b6df12100b29fc8a0d4f46349abbed";
       })
     ];
     buildInputs =
@@ -15075,20 +15253,20 @@
     passthru.names = [ "yeoman-generator" ];
   };
   by-spec."yeoman-generator"."~0.15.0" =
-    self.by-version."yeoman-generator"."0.15.0-pre.3";
-  by-version."yeoman-generator"."0.15.0-pre.3" = lib.makeOverridable self.buildNodePackage {
-    name = "yeoman-generator-0.15.0-pre.3";
+    self.by-version."yeoman-generator"."0.15.0";
+  by-version."yeoman-generator"."0.15.0" = lib.makeOverridable self.buildNodePackage {
+    name = "yeoman-generator-0.15.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.15.0-pre.3.tgz";
-        name = "yeoman-generator-0.15.0-pre.3.tgz";
-        sha1 = "49ded1ed00a2f27fe101ec11f2bf797c6ba9d81f";
+        url = "http://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.15.0.tgz";
+        name = "yeoman-generator-0.15.0.tgz";
+        sha1 = "938eb791307cf9233bff3fd403302b5bc9cfe06a";
       })
     ];
     buildInputs =
       (self.nativeDeps."yeoman-generator" or []);
     deps = [
-      self.by-version."cheerio"."0.12.4"
+      self.by-version."cheerio"."0.13.0"
       self.by-version."rimraf"."2.2.5"
       self.by-version."diff"."1.0.8"
       self.by-version."mime"."1.2.11"
@@ -15100,35 +15278,36 @@
       self.by-version."isbinaryfile"."2.0.0"
       self.by-version."dargs"."0.1.0"
       self.by-version."async"."0.2.9"
-      self.by-version."inquirer"."0.3.5"
+      self.by-version."inquirer"."0.4.0"
       self.by-version."iconv-lite"."0.2.11"
       self.by-version."shelljs"."0.2.6"
       self.by-version."findup-sync"."0.1.2"
-      self.by-version."chalk"."0.3.0"
+      self.by-version."chalk"."0.4.0"
       self.by-version."text-table"."0.2.0"
       self.by-version."download"."0.1.7"
-      self.by-version."request"."2.29.0"
+      self.by-version."request"."2.30.0"
       self.by-version."file-utils"."0.1.5"
+      self.by-version."class-extend"."0.1.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "yeoman-generator" ];
   };
   by-spec."yo"."*" =
-    self.by-version."yo"."1.0.7-pre.2";
-  by-version."yo"."1.0.7-pre.2" = lib.makeOverridable self.buildNodePackage {
-    name = "yo-1.0.7-pre.2";
+    self.by-version."yo"."1.1.0";
+  by-version."yo"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "yo-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yo/-/yo-1.0.7-pre.2.tgz";
-        name = "yo-1.0.7-pre.2.tgz";
-        sha1 = "0301500c8b92e81409a7a68459501e8dece0609f";
+        url = "http://registry.npmjs.org/yo/-/yo-1.1.0.tgz";
+        name = "yo-1.1.0.tgz";
+        sha1 = "4bc08291932442d1a3ad1e531702b1a76cdf2a16";
       })
     ];
     buildInputs =
       (self.nativeDeps."yo" or []);
     deps = [
-      self.by-version."yeoman-generator"."0.15.0-pre.3"
+      self.by-version."yeoman-generator"."0.15.0"
       self.by-version."nopt"."2.1.2"
       self.by-version."lodash"."2.4.1"
       self.by-version."update-notifier"."0.1.7"
@@ -15138,6 +15317,7 @@
       self.by-version."open"."0.0.4"
       self.by-version."chalk"."0.4.0"
       self.by-version."findup"."0.1.3"
+      self.by-version."shelljs"."0.2.6"
     ];
     peerDependencies = [
       self.by-version."grunt-cli"."0.1.11"
@@ -15145,11 +15325,11 @@
     ];
     passthru.names = [ "yo" ];
   };
-  "yo" = self.by-version."yo"."1.0.7-pre.2";
+  "yo" = self.by-version."yo"."1.1.0";
   by-spec."yo".">=1.0.0" =
-    self.by-version."yo"."1.0.7-pre.2";
+    self.by-version."yo"."1.1.0";
   by-spec."yo".">=1.0.0-rc.1.1" =
-    self.by-version."yo"."1.0.7-pre.2";
+    self.by-version."yo"."1.1.0";
   by-spec."zeparser"."0.0.5" =
     self.by-version."zeparser"."0.0.5";
   by-version."zeparser"."0.0.5" = lib.makeOverridable self.buildNodePackage {
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index c11b7ee360ed..1d1abbc9ba28 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -112,4 +112,5 @@
 , "posix"
 , "node-protobuf"
 , "rethinkdb"
+, "bower2nix"
 ]
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 99571397ee51..fa8df33edf3b 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -5,16 +5,14 @@
    for each package in a separate file: the call to the function would
    be almost as must code as the function itself. */
 
-{pkgs, __overrides}:
+{pkgs, overrides}:
 
-rec {
+let self = _self // overrides; _self = with self; {
 
   inherit (pkgs) buildPerlPackage fetchurl stdenv perl fetchsvn gnused;
 
   inherit (stdenv.lib) maintainers;
 
-  inherit __overrides;
-
   # Helper functions for packages that use Module::Build to build.
   buildPerlModule = { buildInputs ? [], ... } @ args:
     buildPerlPackage (args // {
@@ -9369,4 +9367,4 @@ rec {
     };
   };
 
-}
+}; in self
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 74eef17950f2..ee19aa850d39 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -922,7 +922,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       md5 = "5f39727415b837abd02651eeb2721749";
     };
 
-    propagatedBuildInputs = [ pythonPackages.stompclient pythonPackages.distribute ];
+    propagatedBuildInputs = [ pythonPackages.stompclient ];
+
+    preConfigure = ''
+      sed -i '/distribute/d' setup.py
+    '';
 
     buildInputs = [ pythonPackages.coverage pythonPackages.sqlalchemy ];
 
@@ -1273,11 +1277,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   dateutil = buildPythonPackage (rec {
-    name = "dateutil-2.1";
+    name = "dateutil-2.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
-      sha256 = "1vlx0lpsxjxz64pz87csx800cwfqznjyr2y7nk3vhmzhkwzyqi2c";
+      sha256 = "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f";
     };
 
     propagatedBuildInputs = [ pythonPackages.six ];
@@ -1309,11 +1313,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   decorator = buildPythonPackage rec {
-    name = "decorator-3.3.1";
+    name = "decorator-3.4.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz";
-      md5 = "a8fc62acd705f487a71bc406e19e0cc6";
+      md5 = "1e8756f719d746e2fc0dd28b41251356";
     };
 
     meta = {
@@ -1705,11 +1709,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyramid_jinja2 = buildPythonPackage rec {
-    name = "pyramid_jinja2-1.6";
+    name = "pyramid_jinja2-1.9";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_jinja2/${name}.zip";
-      md5 = "b7df1ab97f90f39529d27ba6da1f6b1c";
+      md5 = "a6728117cad24749ddb39d2827cd9033";
     };
 
     buildInputs = [ pkgs.unzip webtest ];
@@ -1722,6 +1726,32 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  pyramid_debugtoolbar = buildPythonPackage rec {
+    name = "pyramid_debugtoolbar-1.0.9";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyramid_debugtoolbar/${name}.tar.gz";
+      sha256 = "1vnzg1qnnyisv7znxg7pasayfyr3nz7rrs5nqr4fmdgwj9q2pyv0";
+    };
+
+    buildInputs = [ ];
+    propagatedBuildInputs = [ pyramid pyramid_mako ];
+  };
+
+
+  pyramid_mako = buildPythonPackage rec {
+    name = "pyramid_mako-0.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyramid_mako/${name}.tar.gz";
+      sha256 = "00811djmsc4rz20kpy2paam05fbx6dmrv2i5jf90f6xp6zw4isy6";
+    };
+
+    buildInputs = [ webtest ];
+    propagatedBuildInputs = [ pyramid Mako ];
+  };
+
+
   pyramid_exclog = buildPythonPackage rec {
     name = "pyramid_exclog-0.7";
 
@@ -2071,46 +2101,6 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-
-  distribute = stdenv.mkDerivation rec {
-    name = "distribute-0.6.34";
-
-    src = fetchurl {
-      url = "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz";
-      md5 = "4576ab843a6db5100fb22a72deadf56d";
-    };
-
-    buildInputs = [ python wrapPython offlineDistutils ];
-
-    pythonPath = [ recursivePthLoader ];
-
-    installPhase=''
-      dst="$out/lib/${python.libPrefix}/site-packages"
-      mkdir -p $dst
-      PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-      export PYTHONPATH="$dst:$PYTHONPATH"
-
-      ${python}/bin/${python.executable} setup.py install --prefix="$out"
-
-      eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
-      if [ -e "$eapth" ]; then
-          # move colliding easy_install.pth to specifically named one
-          mv "$eapth" $(dirname "$eapth")/${name}.pth
-      fi
-
-      rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
-
-      wrapPythonPrograms
-    '';
-
-    meta = {
-      description = "Easily download, build, install, upgrade, and uninstall Python packages";
-      homepage = http://packages.python.org/distribute;
-      license = "PSF or ZPL";
-    };
-  };
-
-
   distutils_extra = buildPythonPackage rec {
     name = "distutils-extra-2.26";
 
@@ -2357,11 +2347,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   docutils = buildPythonPackage rec {
-    name = "docutils-0.8.1";
+    name = "docutils-0.11";
 
     src = fetchurl {
       url = "mirror://sourceforge/docutils/${name}.tar.gz";
-      sha256 = "0wfz4nxl95jcr2f2mc5gijgighavcghg33plzbz5jyi531jpffss";
+      sha256 = "1jbybs5a396nrjy9m13pgvsxdwaj7jw7nsawkhl4fi1nvxm1dx4s";
     };
 
     # error: invalid command 'test'
@@ -2857,6 +2847,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z";
     };
 
+    preConfigure = ''
+      sed -i '/distribute/d' setup.py
+    '';
+
     meta = with stdenv.lib; {
       description = "Search your google contacts from the command-line or mutt.";
       homepage    = "https://pypi.python.org/pypi/goobook";
@@ -2865,7 +2859,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       platforms   = platforms.unix;
     };
 
-    propagatedBuildInputs = [ distribute gdata hcs_utils keyring simplejson ];
+    propagatedBuildInputs = [ gdata hcs_utils keyring simplejson ];
   };
 
   greenlet = buildPythonPackage rec {
@@ -3113,11 +3107,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
   jinja2 = buildPythonPackage rec {
-    name = "Jinja2-2.7";
+    name = "Jinja2-2.7.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/J/Jinja2/${name}.tar.gz";
-      sha256 = "0kgsd7h27jl2jpqa1ks88h93z50bsg0yr7qkicqpxbl9s4c1aks7";
+      sha256 = "12scn3zmmj76rzyc0axjzf6dsazyj9xgp0l46q41rjhxm23s1h2w";
     };
 
     propagatedBuildInputs = [ pythonPackages.markupsafe ];
@@ -3374,11 +3368,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   Mako = buildPythonPackage rec {
-    name = "Mako-0.8.1";
+    name = "Mako-0.9.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/M/Mako/${name}.tar.gz";
-      md5 = "96d962464ce6316004af0cc48495d73e";
+      md5 = "fe3f394ef714776d09ec6133923736a7";
     };
 
     buildInputs = [ markupsafe nose ];
@@ -3445,32 +3439,19 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
-  # not sure if this is the best way to accomplish this -- needed to provide
-  # objective-c compiler on darwin
-  matplotlibStdenv = if stdenv.isDarwin
-    then pkgs.clangStdenv
-    else pkgs.stdenv;
-
-  matplotlib = matplotlibStdenv.mkDerivation (rec {
-    name = "matplotlib-1.2.1";
+  matplotlib = buildPythonPackage rec {
+    name = "matplotlib-1.3.1";
 
     src = fetchurl {
-      url = "http://downloads.sourceforge.net/matplotlib/${name}.tar.gz";
-      sha256 = "16x2ksdxx5p92v98qngh29hdz1bnqy77fhggbjq30pyqmrr8kqaj";
+      url = "mirror://sourceforge/matplotlib/${name}.tar.gz";
+      sha256 = "0smgpn7lwbn02nbyhawyn0n6r3pb65zk501f21bjgavnjjfnf5pa";
     };
 
-    # error: invalid command 'test'
-    doCheck = false;
-
-    buildInputs = [ python pkgs.which pkgs.ghostscript ];
+    buildInputs = [ python pkgs.which pkgs.ghostscript ] ++
+        (if stdenv.isDarwin then [ pkgs.clangStdenv ] else [ pkgs.stdenv ]);
 
     propagatedBuildInputs =
-      [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl
-        pkgs.tk pkgs.xlibs.libX11 ];
-
-    buildPhase = "python setup.py build";
-
-    installPhase = "python setup.py install --prefix=$out";
+      [ dateutil nose numpy pyparsing tornado pkgs.freetype pkgs.libpng pkgs.pkgconfig ];
 
     meta = with stdenv.lib; {
       description = "python plotting library, making publication quality plots";
@@ -3478,7 +3459,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       maintainers = with maintainers; [ lovek323 ];
       platforms   = platforms.unix;
     };
-  });
+  };
 
 
   mccabe = buildPythonPackage (rec {
@@ -3941,6 +3922,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     checkPhase = if python.is_py3k or false then ''
       ${python}/bin/${python.executable} setup.py build_tests
     '' else "" + ''
+      rm functional_tests/test_multiprocessing/test_concurrent_shared.py # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
       ${python}/bin/${python.executable} selftest.py
     '';
 
@@ -3949,6 +3931,24 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
+  nose-selecttests = buildPythonPackage rec {
+    version = "0.4";
+    name = "nose-selecttests-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/n/nose-selecttests/${name}.zip";
+      sha256 = "0lgrfgp3sq8xi8d9grrg0z8jsyk0wl8a3rxw31hb7vdncin5b7n5";
+    };
+
+    buildInputs = [ pkgs.unzip ];
+    propagatedBuildInputs = [ nose ];
+
+    meta = {
+      description = "Simple nose plugin that enables developers to run subset of collected tests to spare some waiting time for better things";
+    };
+  };
+
+
   nose2 = if isPy26 then null else (buildPythonPackage rec {
     name = "nose2-0.4.5";
     src = fetchurl {
@@ -4636,10 +4636,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   py = buildPythonPackage rec {
-    name = "py-1.4.13";
+    name = "py-1.4.19";
 
     src = fetchurl {
-      url = "https://pypi.python.org/packages/source/p/py/py-1.4.13.tar.gz";
+      url = "https://pypi.python.org/packages/source/p/py/${name}.tar.gz";
       md5 = "3857dc8309d5f284669b81184253c2bb";
     };
   };
@@ -5023,11 +5023,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pyparsing = buildPythonPackage rec {
-    name = "pyparsing-1.5.6";
+    name = "pyparsing-2.0.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
-      md5 = "1e41cb219dae9fc353bd4cd47636b283";
+      sha256 = "1r742rjbagf2i166k2w0r192adfw7l9lnsqz7wh4mflf00zws1q0";
     };
 
     # error: invalid command 'test'
@@ -5709,6 +5709,51 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   };
 
 
+  robotframework-selenium2library = buildPythonPackage rec {
+    version = "1.4.0";
+    name = "robotframework-selenium2library-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotframework-selenium2library/${name}.tar.gz";
+      sha256 = "1rgzjxrciy74lp9mvdqxiixkma569mc0l0kizpi7lg1zkbr2k1q2";
+    };
+
+    # error: invalid command 'test'
+    #doCheck = false;
+
+    propagatedBuildInputs = [ robotframework selenium docutils decorator ];
+
+    meta = with stdenv.lib; {
+      description = "";
+      homepage = http://robotframework.org/;
+      license = licenses.asl20;
+    };
+  };
+
+
+  robotsuite = buildPythonPackage rec {
+    version = "1.4.2";
+    name = "robotsuite-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotsuite/${name}.zip";
+      sha256 = "0sw09vrvwv3gzqb6jvhbrz09l6nzzj3i9av34qjddqfwq7cr1bla";
+    };
+
+    # error: invalid command 'test'
+    #doCheck = false;
+
+    buildInputs = [ unittest2 pkgs.unzip ];
+    propagatedBuildInputs = [ robotframework lxml ];
+
+    meta = with stdenv.lib; {
+      description = "Python unittest test suite for Robot Framework";
+      homepage = http://github.com/collective/robotsuite/;
+      license = licenses.gpl3;
+    };
+  };
+
+
   robotframework-ride = buildPythonPackage rec {
     version = "1.2.2";
     name = "robotframework-ride-${version}";
@@ -5908,37 +5953,36 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     };
   };
 
-  selenium =
-    buildPythonPackage rec {
-      name = "selenium-2.35.0";
-      src = pkgs.fetchurl {
-        url = "http://pypi.python.org/packages/source/s/selenium/${name}.tar.gz";
-        sha256 = "0c8apd538ji8kmryvcdiz0dndf33mnf8wzpp9k8zmkpmfdfcwnk0";
-      };
+  selenium = buildPythonPackage rec {
+    name = "selenium-2.39.0";
+    src = pkgs.fetchurl {
+      url = "http://pypi.python.org/packages/source/s/selenium/${name}.tar.gz";
+      sha256 = "1kisndzl9s0vs0a5paqx35hxq28id3xyi1gfsjaixsi6rs0ibhhh";
+    };
 
-      buildInputs = [pkgs.xlibs.libX11];
+    buildInputs = [pkgs.xlibs.libX11];
 
-      # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
-      # absolute paths. Replaced by relative path so it is found when used in nix.
-      x_ignore_nofocus =
-        pkgs.fetchsvn {
-          url = http://selenium.googlecode.com/svn/tags/selenium-2.25.0/cpp/linux-specific;
-          rev = 17641;
-          sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
-        };
+    # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
+    # absolute paths. Replaced by relative path so it is found when used in nix.
+    x_ignore_nofocus =
+      pkgs.fetchsvn {
+        url = http://selenium.googlecode.com/svn/tags/selenium-2.25.0/cpp/linux-specific;
+        rev = 17641;
+        sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
+      };
 
-      preInstall = ''
-        cp "${x_ignore_nofocus}/"* .
-        sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
-        gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
-        gcc -shared \
-          -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
-          -o x_ignore_nofocus.so \
-          x_ignore_nofocus.o \
-          ${if stdenv.isDarwin then "-lx11" else ""}
-        cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
-      '';
-    };
+    preInstall = ''
+      cp "${x_ignore_nofocus}/"* .
+      sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
+      gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
+      gcc -shared \
+        -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
+        -o x_ignore_nofocus.so \
+        x_ignore_nofocus.o \
+        ${if stdenv.isDarwin then "-lx11" else ""}
+      cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
+    '';
+  };
 
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
@@ -6273,11 +6317,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   sphinx = buildPythonPackage (rec {
-    name = "Sphinx-1.1.3";
+    name = "Sphinx-1.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/S/Sphinx/${name}.tar.gz";
-      md5 = "8f55a6d4f87fc6d528120c5d1f983e98";
+      md5 = "8516046aad73fe46dedece4e8e434328";
     };
 
     propagatedBuildInputs = [docutils jinja2 pygments];
@@ -6467,11 +6511,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   subunit = buildPythonPackage rec {
     name = "subunit-${version}";
-    version = "0.0.13";
+    version = "0.0.16";
 
     src = fetchurl {
       url = "https://launchpad.net/subunit/trunk/${version}/+download/python-${name}.tar.gz";
-      sha256 = "0f3xni4z1hbmg4dqxak85ibpf9pajxn6qzw1xj79gwnr8xxb66zj";
+      sha256 = "1ylla1wlmv29vdr76r5kgr7y21bz4ahi3v26mxsys42w90rfkahi";
     };
 
     propagatedBuildInputs = [ testtools ];
@@ -6567,14 +6611,14 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   testtools = buildPythonPackage rec {
     name = "testtools-${version}";
-    version = "0.9.32";
+    version = "0.9.34";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/t/testtools/${name}.tar.gz";
-      sha256 = "1smgk3y7xfzh5xk5wydb6n5lx4g5i6y4w8ajrdnskx1jqr67wyyq";
+      sha256 = "0s6sn9h26dif2c9sayf875x622kq8jb2f4qbc6if7gwh2sssgicn";
     };
 
-    propagatedBuildInputs = [ pythonPackages.python_mimeparse pythonPackages.extras ];
+    propagatedBuildInputs = [ pythonPackages.python_mimeparse pythonPackages.extras lxml ];
 
     meta = {
       description = "A set of extensions to the Python standard library's unit testing framework";
@@ -6786,6 +6830,10 @@ pythonPackages = modules // import ./python-packages-generated.nix {
            md5 = "a0af5cac92bbbfa0c3b0e99571390e0f";
          };
 
+    preConfigure = ''
+      sed -i 's/unittest2py3k/unittest2/' setup.py
+    '';
+
     meta = {
       description = "A backport of the new features added to the unittest testing framework in Python 2.7";
       homepage = http://pypi.python.org/pypi/unittest2;
@@ -6956,26 +7004,25 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   webtest = buildPythonPackage rec {
-    version = "2.0.3";
+    version = "2.0.11";
     name = "webtest-${version}";
-
+  
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
-      md5 = "a1266d4db421963fd3deb172c6689e4b";
+      md5 = "e51da21da8815cef07f543d8688effea";
     };
 
-    buildInputs = [ pkgs.unzip ] ++ optionals isPy26 [ pythonPackages.ordereddict ];
-
     # XXX: skipping two tests fails in python2.6
     doCheck = ! isPy26;
 
+    buildInputs = [ pkgs.unzip ] ++ optionals isPy26 [ pythonPackages.ordereddict unittest2 ];
+
     propagatedBuildInputs = [
       nose
       webob
       six
       beautifulsoup4
       waitress
-      unittest2
       mock
       pyquery
       wsgiproxy2
@@ -6985,7 +7032,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     meta = {
       description = "Helper to test WSGI applications";
-      homepage = http://pythonpaste.org/webtest/;
+      homepage = http://webtest.readthedocs.org/en/latest/;
       platforms = stdenv.lib.platforms.all;
     };
   };
@@ -7118,11 +7165,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   zconfig = buildPythonPackage rec {
     name = "zconfig-${version}";
-    version = "2.9.3";
+    version = "3.0.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZConfig/ZConfig-${version}.tar.gz";
-      md5 = "2c5f73c216140a705be3d9c44b988722";
+      md5 = "60a107c5857c3877368dfe5930559804";
     };
 
     propagatedBuildInputs = [ zope_testrunner ];
@@ -7611,7 +7658,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
     buildInputs = [ pkgs.unzip ];
 
-    propagatedBuildInputs = [ subunit zope_interface zope_exceptions zope_testing six ];
+    propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
 
     meta = {
       description = "A flexible test runner with layer support";
@@ -7700,11 +7747,13 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   tornado = buildPythonPackage rec {
-    name = "tornado-2.4";
+    name = "tornado-3.1.1";
+
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/t/tornado/tornado-2.4.tar.gz";
-      md5 = "c738af97c31dd70f41f6726cf0968941";
+      url = "http://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
+      sha256 = "1ipx23ix8hyd88rywmwr7bfdgkvkdac87xq3f9l5vkm0wjzh8n9l";
     };
+
     doCheck = false;
   };
 
diff --git a/pkgs/top-level/r-packages.nix b/pkgs/top-level/r-packages.nix
index 8280b6c2d53c..f3759c14baac 100644
--- a/pkgs/top-level/r-packages.nix
+++ b/pkgs/top-level/r-packages.nix
@@ -1,15 +1,13 @@
 /* This file defines the composition for CRAN (R) packages. */
 
-{pkgs, __overrides}:
+{pkgs, overrides}:
 
-rec {
+let self = _self // overrides; _self = with self; {
 
   inherit (pkgs) buildRPackage fetchurl stdenv R;
 
   inherit (stdenv.lib) maintainers;
 
-  inherit __overrides;
-
   abind = buildRPackage rec {
     name = "abind-1.4-0";
     src = fetchurl {
@@ -243,4 +241,4 @@ rec {
     };
     propagatedBuildInputs = [ DBI gsubfn proto chron RSQLite RSQLiteExtfuns ];
   };
-}
+}; in self
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index ee64a6638d61..5ccdb6985f9c 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -371,6 +371,10 @@ let
         ghc = ghcSupported;
       };
 
+      haskellPackages_ghc722 = {
+        ghc = ghcSupported;
+      };
+
       haskellPackages_ghc742 = {
         ghc = ghcSupported;
       };