summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/eval-config.nix4
-rw-r--r--nixos/modules/module-list.nix5
-rw-r--r--nixos/modules/services/databases/postgresql.nix9
-rw-r--r--nixos/modules/services/hardware/udev.nix11
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix4
-rw-r--r--nixos/modules/system/activation/top-level.nix27
-rw-r--r--nixos/modules/system/boot/kernel.nix2
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix2
-rw-r--r--nixos/modules/system/boot/modprobe.nix2
-rw-r--r--nixos/modules/system/boot/stage-1.nix2
-rw-r--r--nixos/modules/system/boot/systemd.nix7
-rw-r--r--nixos/modules/virtualisation/containers.nix137
-rw-r--r--nixos/modules/virtualisation/libvirtd.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix47
-rw-r--r--pkgs/data/fonts/dejavu-fonts/default.nix8
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix404
-rw-r--r--pkgs/development/interpreters/ruby/patches.nix9
-rw-r--r--pkgs/development/libraries/ffmpeg/1.x.nix6
-rw-r--r--pkgs/development/libraries/glibc/2.17/locales.nix2
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix6
-rw-r--r--pkgs/development/libraries/haskell/codec-image-devil/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix1
-rw-r--r--pkgs/development/libraries/haskell/foldl/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/indexed-free/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/indexed/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/stringsearch/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-logger/default.nix7
-rw-r--r--pkgs/os-specific/linux/acpi/default.nix4
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix6
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix7
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix6
-rw-r--r--pkgs/os-specific/linux/cifs-utils/find-systemd-ask-password-via-path.patch22
-rw-r--r--pkgs/os-specific/linux/consoletools/default.nix11
-rw-r--r--pkgs/os-specific/linux/cpufrequtils/default.nix4
-rw-r--r--pkgs/os-specific/linux/cryptodev/default.nix4
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix4
-rw-r--r--pkgs/os-specific/linux/dmidecode/default.nix4
-rw-r--r--pkgs/os-specific/linux/drbd/default.nix4
-rw-r--r--pkgs/os-specific/linux/iptables/default.nix19
-rw-r--r--pkgs/os-specific/linux/iw/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix6
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix4
-rw-r--r--pkgs/os-specific/linux/mdadm/default.nix9
-rw-r--r--pkgs/os-specific/linux/mdadm/udev.patch20
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix10
-rw-r--r--pkgs/tools/misc/ldapvi/default.nix30
-rw-r--r--pkgs/tools/networking/ddclient/default.nix2
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/haskell-packages.nix8
-rw-r--r--pkgs/top-level/node-packages-generated.nix231
-rw-r--r--pkgs/top-level/node-packages.json1
53 files changed, 918 insertions, 287 deletions
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 5e1ce69158fd..4b8c7354a7ec 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -8,6 +8,7 @@
 , extraArgs ? {}
 , modules
 , check ? true
+, prefix ? []
 }:
 
 let extraArgs_ = extraArgs; pkgs_ = pkgs; system_ = system; in
@@ -17,6 +18,7 @@ rec {
   # Merge the option definitions in all modules, forming the full
   # system configuration.
   inherit (pkgs.lib.evalModules {
+    inherit prefix;
     modules = modules ++ baseModules;
     args = extraArgs;
     check = check && options.environment.checkConfigurationOptions.value;
@@ -48,7 +50,7 @@ rec {
       let
         system = if nixpkgsOptions.system != "" then nixpkgsOptions.system else system_;
         nixpkgsOptions = (import ./eval-config.nix {
-          inherit system extraArgs modules;
+          inherit system extraArgs modules prefix;
           # For efficiency, leave out most NixOS modules; they don't
           # define nixpkgs.config, so it's pointless to evaluate them.
           baseModules = [ ../modules/misc/nixpkgs.nix ];
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 2189d0358dab..078ea225e167 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -247,11 +247,11 @@
   ./system/boot/kexec.nix
   ./system/boot/loader/efi.nix
   ./system/boot/loader/generations-dir/generations-dir.nix
-  ./system/boot/loader/gummiboot/gummiboot.nix
-  ./system/boot/loader/raspberrypi/raspberrypi.nix
   ./system/boot/loader/grub/grub.nix
   ./system/boot/loader/grub/memtest.nix
+  ./system/boot/loader/gummiboot/gummiboot.nix
   ./system/boot/loader/init-script/init-script.nix
+  ./system/boot/loader/raspberrypi/raspberrypi.nix
   ./system/boot/luksroot.nix
   ./system/boot/modprobe.nix
   ./system/boot/shutdown.nix
@@ -276,6 +276,7 @@
   ./tasks/scsi-link-power-management.nix
   ./tasks/swraid.nix
   ./testing/service-runner.nix
+  ./virtualisation/containers.nix
   ./virtualisation/libvirtd.nix
   #./virtualisation/nova.nix
   ./virtualisation/virtualbox-guest.nix
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index a1ab1c92b8f9..d99ad2c9c7c2 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -30,6 +30,7 @@ let
       hba_file = '${pkgs.writeText "pg_hba.conf" cfg.authentication}'
       ident_file = '${pkgs.writeText "pg_ident.conf" cfg.identMap}'
       log_destination = 'stderr'
+      port = ${toString cfg.port}
       ${cfg.extraConfig}
     '';
 
@@ -63,9 +64,9 @@ in
 
       port = mkOption {
         type = types.int;
-        default = "5432";
+        default = 5432;
         description = ''
-          Port for PostgreSQL.
+          The port on which PostgreSQL listens.
         '';
       };
 
@@ -105,7 +106,9 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to run PostgreSQL with -i flag to enable TCP/IP connections.
+          Whether PostgreSQL should listen on all network interfaces.
+          If disabled, the database can only be accessed via its Unix
+          domain socket or via TCP connections to localhost.
         '';
       };
 
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index 516569c02808..52b3ad435797 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -209,7 +209,7 @@ in
 
   ###### implementation
 
-  config = {
+  config = mkIf (!config.boot.isContainer) {
 
     services.udev.extraRules = nixosRules;
 
@@ -231,9 +231,16 @@ in
 
     boot.extraModprobeConfig = "options firmware_class path=${config.hardware.firmware}";
 
-    system.activationScripts.clearHotplug =
+    system.activationScripts.udevd =
       ''
         echo "" > /proc/sys/kernel/hotplug
+
+        # Regenerate the hardware database /var/lib/udev/hwdb.bin
+        # whenever systemd changes.
+        if [ ! -e /var/lib/udev/prev-systemd -o "$(readlink /var/lib/udev/prev-systemd)" != ${config.systemd.package} ]; then
+          echo "regenerating udev hardware database..."
+          ${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd
+        fi
       '';
 
   };
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 1aefe75931b1..cca42aa11009 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -334,10 +334,8 @@ in
       ''
         # Set up secure multi-user builds: non-root users build through the
         # Nix daemon.
-        if test "$USER" != root; then
+        if [ "$USER" != root -o ! -w /nix/var/nix/db ]; then
             export NIX_REMOTE=daemon
-        else
-            export NIX_REMOTE=
         fi
       '';
 
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index ada961316755..4146cd8394a5 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -34,16 +34,24 @@ let
     in ''
       mkdir $out
 
-      if [ ! -f ${kernelPath} ]; then
-        echo "The bootloader cannot find the proper kernel image."
-        echo "(Expecting ${kernelPath})"
-        false
-      fi
+      # Containers don't have their own kernel or initrd.  They boot
+      # directly into stage 2.
+      ${optionalString (!config.boot.isContainer) ''
+        if [ ! -f ${kernelPath} ]; then
+          echo "The bootloader cannot find the proper kernel image."
+          echo "(Expecting ${kernelPath})"
+          false
+        fi
 
-      ln -s ${kernelPath} $out/kernel
-      ln -s ${config.system.modulesTree} $out/kernel-modules
+        ln -s ${kernelPath} $out/kernel
+        ln -s ${config.system.modulesTree} $out/kernel-modules
 
-      ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd
+        echo -n "$kernelParams" > $out/kernel-params
+
+        ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd
+
+        ln -s ${config.hardware.firmware} $out/firmware
+      ''}
 
       echo "$activationScript" > $out/activate
       substituteInPlace $out/activate --subst-var out
@@ -56,9 +64,7 @@ let
       ln -s ${config.system.build.etc}/etc $out/etc
       ln -s ${config.system.path} $out/sw
       ln -s "$systemd" $out/systemd
-      ln -s ${config.hardware.firmware} $out/firmware
 
-      echo -n "$kernelParams" > $out/kernel-params
       echo -n "$configurationName" > $out/configuration-name
       echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version
       echo -n "$nixosVersion" > $out/nixos-version
@@ -92,7 +98,6 @@ let
     systemd = config.systemd.package;
 
     inherit children;
-    kernelParams = config.boot.kernelParams;
     installBootLoader =
       config.system.build.installBootLoader
       or "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index c3c38b186bdd..ee2f5e9b4f61 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -145,7 +145,7 @@ in
 
   ###### implementation
 
-  config = {
+  config = mkIf (!config.boot.isContainer) {
 
     system.build = { inherit kernel; };
 
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index 8b3923e30a05..ef6ff71ed778 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -44,7 +44,7 @@ in
     boot.loader.grub = {
 
       enable = mkOption {
-        default = true;
+        default = !config.boot.isContainer;
         type = types.bool;
         description = ''
           Whether to enable the GNU GRUB boot loader.
diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix
index 39928da8d190..027a7ac99d51 100644
--- a/nixos/modules/system/boot/modprobe.nix
+++ b/nixos/modules/system/boot/modprobe.nix
@@ -66,7 +66,7 @@ with pkgs.lib;
 
   ###### implementation
 
-  config = {
+  config = mkIf (!config.boot.isContainer) {
 
     environment.etc = singleton
       { source = pkgs.writeText "modprobe.conf"
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 7f7184b1e453..8ed3aecb6911 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -328,7 +328,7 @@ in
 
   };
 
-  config = {
+  config = mkIf (!config.boot.isContainer) {
 
     assertions = singleton
       { assertion = any (fs: fs.mountPoint == "/") (attrValues config.fileSystems);
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 143f923813da..9f5a7678c855 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -604,13 +604,6 @@ in
         mkdir -p /var/log/journal
         chmod 0755 /var/log/journal
 
-        # Regenerate the hardware database /var/lib/udev/hwdb.bin
-        # whenever systemd changes.
-        if [ ! -e /var/lib/udev/prev-systemd -o "$(readlink /var/lib/udev/prev-systemd)" != ${systemd} ]; then
-          echo "regenerating udev hardware database..."
-          ${systemd}/bin/udevadm hwdb --update && ln -sfn ${systemd} /var/lib/udev/prev-systemd
-        fi
-
         # Make all journals readable to users in the wheel and adm
         # groups, in addition to those in the systemd-journal group.
         # Users can always read their own journals.
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
new file mode 100644
index 000000000000..bcbfaacd703f
--- /dev/null
+++ b/nixos/modules/virtualisation/containers.nix
@@ -0,0 +1,137 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+{
+  options = {
+
+    boot.isContainer = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether this NixOS machine is a lightweight container running
+        in another NixOS system.
+      '';
+    };
+
+    systemd.containers = mkOption {
+      type = types.attrsOf (types.submodule (
+        { config, options, name, ... }:
+        {
+          options = {
+
+            root = mkOption {
+              type = types.path;
+              description = ''
+                The root directory of the container.
+              '';
+            };
+
+            config = mkOption {
+              description = ''
+                A specification of the desired configuration of this
+                container, as a NixOS module.
+              '';
+            };
+
+            path = mkOption {
+              type = types.path;
+              example = "/nix/var/nix/profiles/containers/webserver";
+              description = ''
+                As an alternative to specifying
+                <option>config</option>, you can specify the path to
+                the evaluated NixOS system configuration, typically a
+                symlink to a system profile.
+              '';
+            };
+
+          };
+
+          config = mkMerge
+            [ { root = mkDefault "/var/lib/containers/${name}";
+              }
+              (mkIf options.config.isDefined {
+                path = (import ../../lib/eval-config.nix {
+                  modules =
+                    let extraConfig =
+                      { boot.isContainer = true;
+                        security.initialRootPassword = "!";
+                        networking.hostName = mkDefault name;
+                      };
+                    in [ extraConfig config.config ];
+                  prefix = [ "systemd" "containers" name ];
+                }).config.system.build.toplevel;
+              })
+            ];
+        }));
+
+      default = {};
+      example = literalExample
+        ''
+          { webserver =
+              { root = "/containers/webserver";
+                path = "/nix/var/nix/profiles/webserver";
+              };
+            database =
+              { root = "/containers/database";
+                config =
+                  { config, pkgs, ... }:
+                  { services.postgresql.enable = true;
+                    services.postgresql.package = pkgs.postgresql92;
+                  };
+              };
+          }
+        '';
+      description = ''
+        A set of NixOS system configurations to be run as lightweight
+        containers.  Each container appears as a service
+        <literal>container-<replaceable>name</replaceable></literal>
+        on the host system, allowing it to be started and stopped via
+        <command>systemctl</command> .
+      '';
+    };
+
+  };
+
+
+  config = {
+
+    systemd.services = mapAttrs' (name: container: nameValuePair "container-${name}"
+      { description = "Container '${name}'";
+
+        wantedBy = [ "multi-user.target" ];
+
+        unitConfig.RequiresMountsFor = [ container.root ];
+
+        preStart =
+          ''
+            mkdir -p -m 0755 ${container.root}/etc
+            if ! [ -e ${container.root}/etc/os-release ]; then
+              touch ${container.root}/etc/os-release
+            fi
+          '';
+
+        serviceConfig.ExecStart =
+          "${config.systemd.package}/bin/systemd-nspawn -M ${name} -D ${container.root} --bind-ro=/nix ${container.path}/init";
+
+        preStop =
+          ''
+            pid="$(cat /sys/fs/cgroup/systemd/machine/${name}.nspawn/system/tasks 2> /dev/null)"
+            if [ -n "$pid" ]; then
+              # Send the RTMIN+3 signal, which causes the container
+              # systemd to start halt.target.
+              echo "killing container systemd, PID = $pid"
+              kill -RTMIN+3 $pid
+              # Wait for the container to exit.  We can't let systemd
+              # do this because it will send a signal to the entire
+              # cgroup.
+              for ((n = 0; n < 180; n++)); do
+                if ! kill -0 $pid 2> /dev/null; then break; fi
+                sleep 1
+              done
+            fi
+          '';
+      }) config.systemd.containers;
+
+  };
+}
\ No newline at end of file
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 552441f6a62d..d8668eb16072 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -101,6 +101,19 @@ in
                 mkdir -p /etc/$(dirname $i) -m 755
                 cp -fpd ${pkgs.libvirt}/etc/$i /etc/$i
             done
+
+            # libvirtd puts the full path of the emulator binary in the machine
+            # config file. But this path can unfortunately be garbage collected
+            # while still being used by the virtual machine. So update the
+            # emulator path on each startup to something valid (re-scan $PATH).
+            for file in /etc/libvirt/qemu/*.xml; do
+                # get (old) emulator path from config file
+                emulator=$(grep "^[[:space:]]*<emulator>" "$file" | sed 's,^[[:space:]]*<emulator>\(.*\)</emulator>.*,\1,')
+                # get a (definitely) working emulator path by re-scanning $PATH
+                new_emulator=$(command -v $(basename "$emulator"))
+                # write back
+                sed -i "s,^[[:space:]]*<emulator>.*,    <emulator>$new_emulator</emulator> <!-- WARNING: emulator dirname is auto-updated by the nixos libvirtd module -->," "$file"
+            done
           ''; # */
 
         serviceConfig.ExecStart = ''@${pkgs.libvirt}/sbin/libvirtd libvirtd --config "${configFile}" --daemon --verbose'';
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 108e549d01f6..f3a88dee2cf4 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -1,23 +1,34 @@
-{ stdenv, fetchurl, zlib, glib, libpng, freetype, xorg, fontconfig, alsaLib }:
+{ stdenv, fetchurl, zlib, glib, libpng, freetype, xorg, fontconfig, alsaLib,
+  qt4, pulseaudio ? null }:
 
 let
 
+  version = "3.0.13.1";
+
+  arch = if stdenv.is64bit then "amd64" else "x86";
+ 
   libDir = if stdenv.is64bit then "lib64" else "lib";
 
   deps =
     [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender
       xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
-      fontconfig xorg.libXext xorg.libX11 alsaLib
+      fontconfig xorg.libXext xorg.libX11 alsaLib qt4 pulseaudio
     ];
 
 in
 
 stdenv.mkDerivation {
-  name = "teamspeak-client-3.0.0-beta35";
+  name = "teamspeak-client-${version}";
 
   src = fetchurl {
-    url = http://ftp.4players.de/pub/hosted/ts3/releases/beta-35/TeamSpeak3-Client-linux_amd64-3.0.0-beta35.run;
-    sha256 = "0vygsvjs11lr5lv4x7awv7hvkycvmm9qs2vklfjs91w3f434cmrx";
+    urls = [
+       "http://dl.4players.de/ts/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
+      "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
+      "http://files.teamspeak-services.com/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
+    ];
+    sha256 = if stdenv.is64bit 
+		then "0mj8vpsnv906n3wgjwhiby5gk26jr5jbd94swmsf0s9kqwhsj6i1"
+                else "1hlw7lc0nl1mrsyd052s6ws64q5aabnw6qpv8mrdxb3hyp7g2qh1";
   };
 
   unpackPhase =
@@ -28,22 +39,27 @@ stdenv.mkDerivation {
 
   buildPhase =
     ''
-      ls -l
-      for i in ts3client_linux_*; do
-        echo "patching $i..."
-        patchelf \
-          --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
-          --set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_GCC/nix-support/orig-gcc)/${libDir} \
-          --force-rpath \
-          $i
-      done
+      mv ts3client_linux_${arch} ts3client
+      echo "patching ts3client..."
+      patchelf \
+        --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+        --set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_GCC/nix-support/orig-gcc)/${libDir} \
+        --force-rpath \
+        ts3client
     '';
-    
 
   installPhase =
     ''
+      # Delete unecessary libraries - these are provided by nixos.
+      rm *.so.*
+
+      # Install files.
       mkdir -p $out/lib/teamspeak
       mv * $out/lib/teamspeak/
+
+      # Make a symlink to the binary from bin.
+      mkdir -p $out/bin/
+      ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client
     '';
 
   dontStrip = true;
@@ -53,6 +69,7 @@ stdenv.mkDerivation {
     description = "The TeamSpeak voice communication tool";
     homepage = http://teamspeak.com/;
     license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
 
diff --git a/pkgs/data/fonts/dejavu-fonts/default.nix b/pkgs/data/fonts/dejavu-fonts/default.nix
index eb0451195d41..88596bb4fd9b 100644
--- a/pkgs/data/fonts/dejavu-fonts/default.nix
+++ b/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -1,6 +1,6 @@
 {fetchurl, stdenv, fontforge, perl, fontconfig, FontTTF}:
 
-let version = "2.33" ; in
+let version = "2.34" ; in
 
 stdenv.mkDerivation rec {
   name = "dejavu-fonts-${version}";
@@ -8,17 +8,17 @@ stdenv.mkDerivation rec {
   buildInputs = [fontforge perl FontTTF];
 
   unicodeData = fetchurl {
-    url = http://www.unicode.org/Public/6.1.0/ucd/UnicodeData.txt ; 
+    url = http://www.unicode.org/Public/6.1.0/ucd/UnicodeData.txt ;
     sha256 = "1bd6zkzvxfnifrn5nh171ywk7q56sgk8gdvdn43z9i53hljjcrih";
   };
   blocks = fetchurl {
-    url = http://www.unicode.org/Public/6.1.0/ucd/Blocks.txt; 
+    url = http://www.unicode.org/Public/6.1.0/ucd/Blocks.txt;
     sha256 = "0w0vkb09nrlc6mrhqyl9npszdi828afgvhvlb1vs5smjv3h8y3dz";
   };
 
   src = fetchurl {
     url = "mirror://sourceforge/dejavu/dejavu-fonts-${version}.tar.bz2";
-    sha256 = "10m0rds36yyaznfqaa9msayv6f0v1h50zbikja6qdy5dwwxi8q5w";
+    sha256 = "09wh9c9kk82i4kwy73fcqa0779bvf0ncikciqw2gxa9m2rkrxjmm";
   };
   buildFlags = "full-ttf";
   preBuild = ''
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
index 761aeb921cc3..84492e093861 100644
--- a/pkgs/development/interpreters/ruby/generated.nix
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -21,12 +21,16 @@ g: # Get dependencies from patched gems
     builder = g.builder_3_2_2;
     buildr = g.buildr_1_4_12;
     bundler = g.bundler_1_3_5;
+    celluloid = g.celluloid_0_15_2;
     childprocess = g.childprocess_0_3_9;
     chronic = g.chronic_0_10_1;
+    classifier = g.classifier_1_3_3;
     coderay = g.coderay_1_0_9;
     coffee_rails = g.coffee_rails_4_0_1;
     coffee_script = g.coffee_script_2_2_0;
     coffee_script_source = g.coffee_script_source_1_6_3;
+    colorator = g.colorator_0_1;
+    commander = g.commander_4_1_5;
     cucumber = g.cucumber_1_3_8;
     daemons = g.daemons_1_1_9;
     diff_lcs = g.diff_lcs_1_1_3;
@@ -38,31 +42,40 @@ g: # Get dependencies from patched gems
     ethon = g.ethon_0_6_1;
     eventmachine = g.eventmachine_1_0_3;
     eventmachine_tail = g.eventmachine_tail_0_6_4;
+    excon = g.excon_0_25_3;
     execjs = g.execjs_2_0_2;
     fakes3 = g.fakes3_0_1_5;
     faraday = g.faraday_0_8_8;
     faraday_middleware = g.faraday_middleware_0_9_0;
+    fast_stemmer = g.fast_stemmer_1_0_2;
     ffi = g.ffi_1_9_0;
     file_tail = g.file_tail_1_0_12;
     foreman = g.foreman_0_63_0;
+    formatador = g.formatador_0_2_4;
     gettext = g.gettext_3_0_0;
     gh = g.gh_0_12_0;
     gherkin = g.gherkin_2_12_1;
+    guard = g.guard_2_2_4;
     highline = g.highline_1_6_19;
     hike = g.hike_1_2_3;
     hoe = g.hoe_3_1_0;
     http_cookie = g.http_cookie_1_0_1;
     i18n = g.i18n_0_6_5;
     iconv = g.iconv_1_0_3;
+    jekyll = g.jekyll_1_3_0;
     jquery_rails = g.jquery_rails_3_0_4;
     jruby_pageant = g.jruby_pageant_1_1_1;
     jsduck = g.jsduck_5_1_0;
     json = g.json_1_8_0;
     json_pure = g.json_pure_1_8_0;
     launchy = g.launchy_2_3_0;
+    liquid = g.liquid_2_5_4;
+    listen = g.listen_2_2_0;
     locale = g.locale_2_0_8;
     lockfile = g.lockfile_2_1_0;
+    lumberjack = g.lumberjack_1_0_4;
     macaddr = g.macaddr_1_6_1;
+    maruku = g.maruku_0_6_1;
     mail = g.mail_2_5_4;
     mechanize = g.mechanize_2_7_2;
     method_source = g.method_source_0_8_2;
@@ -87,6 +100,7 @@ g: # Get dependencies from patched gems
     papertrail_cli = g.papertrail_cli_0_9_3;
     parallel = g.parallel_0_7_1;
     polyglot = g.polyglot_0_3_3;
+    posix_spawn = g.posix_spawn_0_3_6;
     pry = g.pry_0_9_12_2;
     pusher_client = g.pusher_client_0_3_1;
     rack = g.rack_1_5_2;
@@ -95,16 +109,21 @@ g: # Get dependencies from patched gems
     railties = g.railties_4_0_0;
     rake = g.rake_10_1_0;
     rb_fsevent = g.rb_fsevent_0_9_3;
+    rb_inotify = g.rb_inotify_0_9_2;
+    rb_kqueue = g.rb_kqueue_0_2_0;
     rdiscount = g.rdiscount_2_1_6;
+    redcarpet = g.redcarpet_2_3_0;
     redis = g.redis_3_0_5;
     redis_namespace = g.redis_namespace_1_3_1;
     remote_syslog = g.remote_syslog_1_6_14;
     resque = g.resque_1_25_1;
     resque_web = g.resque_web_0_0_3;
+    rest_client = g.rest_client_1_6_7;
     right_aws = g.right_aws_3_1_0;
     right_http_connection = g.right_http_connection_1_4_0;
     rjb = g.rjb_1_4_8;
     rkelly_remix = g.rkelly_remix_0_0_4;
+    rmagick = g.rmagick_2_13_2;
     rmail = g.rmail_1_0_0;
     rmail_sup = g.rmail_sup_1_0_1;
     rspec = g.rspec_2_11_0;
@@ -114,6 +133,7 @@ g: # Get dependencies from patched gems
     ruby_hmac = g.ruby_hmac_0_4_0;
     rubyforge = g.rubyforge_2_0_4;
     rubyzip = g.rubyzip_0_9_9;
+    safe_yaml = g.safe_yaml_0_9_7;
     sass = g.sass_3_2_12;
     sass_rails = g.sass_rails_4_0_1;
     selenium_webdriver = g.selenium_webdriver_2_35_1;
@@ -122,6 +142,7 @@ g: # Get dependencies from patched gems
     slop = g.slop_3_4_6;
     sprockets = g.sprockets_2_10_0;
     sprockets_rails = g.sprockets_rails_2_0_1;
+    syntax = g.syntax_1_0_0;
     syslog_protocol = g.syslog_protocol_0_9_2;
     systemu = g.systemu_2_5_2;
     taskjuggler = g.taskjuggler_3_5_0;
@@ -132,6 +153,7 @@ g: # Get dependencies from patched gems
     thor = g.thor_0_18_1;
     thread_safe = g.thread_safe_0_1_3;
     tilt = g.tilt_1_4_1;
+    timers = g.timers_1_1_0;
     tins = g.tins_0_9_0;
     travis = g.travis_1_5_3;
     treetop = g.treetop_1_4_15;
@@ -447,6 +469,17 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''1r7zx8qfwzr3pbgrjbsml7z5qgscwyyv33x2jzhz6adqyx3r1f08'';
     };
+    celluloid_0_15_2 = {
+      basename = ''celluloid'';
+      meta = {
+        description = ''Actor-based concurrent object framework for Ruby'';
+        homepage = ''https://github.com/celluloid/celluloid'';
+        longDescription = ''Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects'';
+      };
+      name = ''celluloid-0.15.2'';
+      requiredGems = [ g.timers_1_1_0 ];
+      sha256 = ''0lpa97m7f4p5hgzaaa47y1d5c78n8pp4xd8qb0sn5llqd0klkd9b'';
+    };
     childprocess_0_3_9 = {
       basename = ''childprocess'';
       meta = {
@@ -469,6 +502,18 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk'';
     };
+    classifier_1_3_3 = {
+      basename = ''classifier'';
+      meta = {
+        description = ''A general classifier module to allow Bayesian and other types of classifications.'';
+        homepage = ''http://classifier.rufy.com/'';
+        longDescription = ''   A general classifier module to allow Bayesian and other types of classifications.
+'';
+      };
+      name = ''classifier-1.3.3'';
+      requiredGems = [ g.fast_stemmer_1_0_2 ];
+      sha256 = ''1kq1cd8fq6wvyxbjy3r6ya3d3sk3rcp1b560xlqvflpsirm47r9g'';
+    };
     chronic_0_10_1 = {
       basename = ''chronic'';
       meta = {
@@ -491,6 +536,17 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''1pbjsvd6r2daxd6aicp19fnb1j5z7fxadflsm1h0r33cy3vi7iy8'';
     };
+    coderay_1_1_0 = {
+      basename = ''coderay'';
+      meta = {
+        description = ''Fast syntax highlighting for selected languages.'';
+        homepage = ''http://coderay.rubychan.de'';
+        longDescription = ''Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.'';
+      };
+      name = ''coderay-1.1.0'';
+      requiredGems = [  ];
+      sha256 = ''059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s'';
+    };
     coffee_rails_4_0_1 = {
       basename = ''coffee_rails'';
       meta = {
@@ -530,6 +586,28 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''0p33h0rdj1n8xhm2d5hzqbb8br6wn4rx0gk4hyhc6rxkaxsy79b4'';
     };
+    colorator_0_1 = {
+      basename = ''colorator'';
+      meta = {
+        description = ''String core extensions for terminal coloring.'';
+        homepage = ''https://github.com/octopress/colorator'';
+        longDescription = ''Colorize your text in the terminal.'';
+      };
+      name = ''colorator-0.1'';
+      requiredGems = [  ];
+      sha256 = ''09zp15hyd9wlbgf1kmrf4rnry8cpvh1h9fj7afarlqcy4hrfdpvs'';
+    };
+    commander_4_1_5 = {
+      basename = ''commander'';
+      meta = {
+        description = ''The complete solution for Ruby command-line executables'';
+        homepage = ''http://visionmedia.github.com/commander'';
+        longDescription = ''The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.'';
+      };
+      name = ''commander-4.1.5'';
+      requiredGems = [ g.highline_1_6_20 ];
+      sha256 = ''040x2gjpl55g64kh5f9nby0870hnzx8cd7clxg771z0wjs7nzalc'';
+    };
     cucumber_1_3_8 = {
       basename = ''cucumber'';
       meta = {
@@ -711,6 +789,17 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.eventmachine_1_0_3 ];
       sha256 = ''1pvlb34vdzd81kf9f3xyibb4f55xjqm7lqqy28dgyci5cyv50y61'';
     };
+    excon_0_25_3 = {
+      basename = ''excon'';
+      meta = {
+        description = ''speed, persistence, http(s)'';
+        homepage = ''https://github.com/geemus/excon'';
+        longDescription = ''EXtended http(s) CONnections'';
+      };
+      name = ''excon-0.25.3'';
+      requiredGems = [  ];
+      sha256 = ''1d552jhvrpmnzrg3di88397l07ngrz04s2al17klpam6crxqw2b2'';
+    };
     execjs_2_0_2 = {
       basename = ''execjs'';
       meta = {
@@ -764,6 +853,17 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.faraday_0_8_8 ];
       sha256 = ''1kwvi2sdxd6j764a7q5iir73dw2v6816zx3l8cgfv0wr2m47icq2'';
     };
+    fast_stemmer_1_0_2 = {
+      basename = ''fast_stemmer'';
+      meta = {
+        description = ''Fast Porter stemmer based on a C version of algorithm'';
+        homepage = ''http://github.com/romanbsd/fast-stemmer'';
+        longDescription = ''Fast Porter stemmer based on a C version of algorithm'';
+      };
+      name = ''fast-stemmer-1.0.2'';
+      requiredGems = [  ];
+      sha256 = ''0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh'';
+    };
     ffi_1_9_0 = {
       basename = ''ffi'';
       meta = {
@@ -775,6 +875,17 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [  ];
       sha256 = ''0rnh9yyfzcpdmi8m7giyd21lgqj00afgxvgbx41hsi2ls1ghfwvy'';
     };
+    ffi_1_9_3 = {
+      basename = ''ffi'';
+      meta = {
+        description = ''Ruby FFI'';
+        homepage = ''http://wiki.github.com/ffi/ffi'';
+        longDescription = ''Ruby FFI library'';
+      };
+      name = ''ffi-1.9.3'';
+      requiredGems = [  ];
+      sha256 = ''0873h6jp3v65mll7av9bxlzp9m9l1cc66j0krg0llchwbh4pv5sp'';
+    };
     file_tail_1_0_12 = {
       basename = ''file_tail'';
       meta = {
@@ -797,6 +908,17 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.thor_0_18_1 g.dotenv_0_9_0 ];
       sha256 = ''0yqyjix9jm4iwyc4f3wc32vxr28rpjcw1c9ni5brs4s2a24inzlk'';
     };
+    formatador_0_2_4 = {
+      basename = ''formatador'';
+      meta = {
+        description = ''Ruby STDOUT text formatting'';
+        homepage = ''http://github.com/geemus/formatador'';
+        longDescription = ''STDOUT text formatting'';
+      };
+      name = ''formatador-0.2.4'';
+      requiredGems = [  ];
+      sha256 = ''0pgmk1h6i6m3cslnfyjqld06a4c2xbbvmngxg2axddf39xwz6f12'';
+    };
     gettext_3_0_0 = {
       basename = ''gettext'';
       meta = {
@@ -833,6 +955,17 @@ So you can use GNU gettext tools for maintaining.
       requiredGems = [ g.multi_json_1_7_9 ];
       sha256 = ''07nzchdvkkd35m9k7d9k8j72jm3imv56ccn734mxa5klv1xx2d45'';
     };
+    guard_2_2_4 = {
+      basename = ''guard'';
+      meta = {
+        description = ''Guard keeps an eye on your file modifications'';
+        homepage = ''http://guardgem.org'';
+        longDescription = ''Guard is a command line tool to easily handle events on file system modifications.'';
+      };
+      name = ''guard-2.2.4'';
+      requiredGems = [ g.thor_0_18_1 g.listen_2_2_0 g.pry_0_9_12_3 g.lumberjack_1_0_4 g.formatador_0_2_4 ];
+      sha256 = ''0z427rkcpzy82g21cgq7i5sn1vxn8hm8j4d78kj9vlaqgilcybhq'';
+    };
     highline_1_6_19 = {
       basename = ''highline'';
       meta = {
@@ -848,6 +981,21 @@ minutes of work.
       requiredGems = [  ];
       sha256 = ''0gylnz2cdaswgszgl8x2qx0c87md4246r1i0blgm3nqvgd4hlsxd'';
     };
+    highline_1_6_20 = {
+      basename = ''highline'';
+      meta = {
+        description = ''HighLine is a high-level command-line IO library.'';
+        homepage = ''http://highline.rubyforge.org'';
+        longDescription = ''A high-level IO library that provides validation, type conversion, and more for
+command-line interfaces. HighLine also includes a complete menu system that can
+crank out anything from simple list selection to complete shells with just
+minutes of work.
+'';
+      };
+      name = ''highline-1.6.20'';
+      requiredGems = [  ];
+      sha256 = ''0gk7mpw2r5lv60vr4hb0090wbnqh0fsbyrrcvxiqk7hyhxdz08iv'';
+    };
     highline_1_6_2 = {
       basename = ''highline'';
       meta = {
@@ -927,6 +1075,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [  ];
       sha256 = ''1nhjn07h2fqivdj6xqzi2x2kzh28vigx8z3q5fv2cqn9aqmbdacl'';
     };
+    jekyll_1_3_0 = {
+      basename = ''jekyll'';
+      meta = {
+        description = ''A simple, blog aware, static site generator.'';
+        homepage = ''http://github.com/mojombo/jekyll'';
+        longDescription = ''Jekyll is a simple, blog aware, static site generator.'';
+      };
+      name = ''jekyll-1.3.0'';
+      requiredGems = [ g.liquid_2_5_4 g.classifier_1_3_3 g.listen_1_3_1 g.maruku_0_6_1 g.pygments_rb_0_5_4 g.commander_4_1_5 g.safe_yaml_0_9_7 g.colorator_0_1 g.redcarpet_2_3_0 ];
+      sha256 = ''0hq9sdyivfifba0d4d7g113jbd3jwm8jpdc9i09mv0nfhdcbc3k4'';
+    };
     jquery_rails_3_0_4 = {
       basename = ''jquery_rails'';
       meta = {
@@ -1004,6 +1163,49 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [ g.addressable_2_3_5 ];
       sha256 = ''0ckvs40f29ancs0ki12pqb94k380cz41b4gbjplm85ly6kd57sph'';
     };
+    launchy_2_4_0 = {
+      basename = ''launchy'';
+      meta = {
+        description = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner.'';
+        homepage = ''http://github.com/copiousfreetime/launchy'';
+        longDescription = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external application from within ruby programs.'';
+      };
+      name = ''launchy-2.4.0'';
+      requiredGems = [ g.addressable_2_3_5 ];
+      sha256 = ''0vxc3m4sjxyjjzw2rmsginf9nbxfyv7hhxshmn6kxkvcpjxx5di0'';
+    };
+    liquid_2_5_4 = {
+      basename = ''liquid'';
+      meta = {
+        description = ''A secure, non-evaling end user template engine with aesthetic markup.'';
+        homepage = ''http://www.liquidmarkup.org'';
+      };
+      name = ''liquid-2.5.4'';
+      requiredGems = [  ];
+      sha256 = ''0adb1fz20jwcyx1ia133426i59mrrz9iq9lpcmzq6jx0dlaa4amv'';
+    };
+    listen_1_3_1 = {
+      basename = ''listen'';
+      meta = {
+        description = ''Listen to file modifications'';
+        homepage = ''https://github.com/guard/listen'';
+        longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
+      };
+      name = ''listen-1.3.1'';
+      requiredGems = [ g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 g.rb_kqueue_0_2_0 ];
+      sha256 = ''1p1rqz26ixx0fzc0hy3psq2bb3pwkv9awixv76zkaaqj1czabzbs'';
+    };
+    listen_2_2_0 = {
+      basename = ''listen'';
+      meta = {
+        description = ''Listen to file modifications'';
+        homepage = ''https://github.com/guard/listen'';
+        longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
+      };
+      name = ''listen-2.2.0'';
+      requiredGems = [ g.celluloid_0_15_2 g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 ];
+      sha256 = ''1fm6cp5d4xbd5wdd0d804m3p2cc5rjrr5yzqzzh1ndzgbs94sv5c'';
+    };
     locale_2_0_8 = {
       basename = ''locale'';
       meta = {
@@ -1027,6 +1229,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [  ];
       sha256 = ''1yfpz9k0crb7q7y5bcaavf2jzbc170dj84hqz13qp75rj7bl3qhf'';
     };
+    lumberjack_1_0_4 = {
+      basename = ''lumberjack'';
+      meta = {
+        description = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger.'';
+        homepage = ''http://github.com/bdurand/lumberjack'';
+        longDescription = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file.'';
+      };
+      name = ''lumberjack-1.0.4'';
+      requiredGems = [  ];
+      sha256 = ''1mj6m12hnmkvzl4w2yh04ak3z45pwksj6ra7v30za8snw9kg919d'';
+    };
     macaddr_1_6_1 = {
       basename = ''macaddr'';
       meta = {
@@ -1049,6 +1262,20 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [ g.mime_types_1_25 g.treetop_1_4_15 ];
       sha256 = ''0z15ksb8blcppchv03g34844f7xgf36ckp484qjj2886ig1qara4'';
     };
+    maruku_0_6_1 = {
+      basename = ''maruku'';
+      meta = {
+        description = ''Maruku is a Markdown-superset interpreter written in Ruby.'';
+        homepage = ''http://github.com/bhollis/maruku'';
+        longDescription = ''Maruku is a Markdown interpreter in Ruby.
+	It features native export to HTML and PDF (via Latex). The
+	output is really beautiful!
+	'';
+      };
+      name = ''maruku-0.6.1'';
+      requiredGems = [ g.syntax_1_0_0 ];
+      sha256 = ''01xc4l480k79jbicr0j37d9bmd4dsnrjh5hwdrh2djvy06l77ngz'';
+    };
     mechanize_2_7_2 = {
       basename = ''mechanize'';
       meta = {
@@ -1132,6 +1359,43 @@ and added by the users of MIME::Types.'';
       requiredGems = [  ];
       sha256 = ''0hd6hpl05jyx3siznk70z46bmrzwmcyrr24yfaqg6nar35zw8bgf'';
     };
+    mime_types_2_0 = {
+      basename = ''mime_types'';
+      meta = {
+        description = ''The mime-types library provides a library and registry for information about MIME content type definitions'';
+        homepage = ''http://mime-types.rubyforge.org/'';
+        longDescription = ''The mime-types library provides a library and registry for information about
+MIME content type definitions. It can be used to determine defined filename
+extensions for MIME types, or to use filename extensions to look up the likely
+MIME type definitions.
+
+MIME content types are used in MIME-compliant communications, as in e-mail or
+HTTP traffic, to indicate the type of content which is transmitted. The
+mime-types library provides the ability for detailed information about MIME
+entities (provided as an enumerable collection of MIME::Type objects) to be
+determined and used programmatically. There are many types defined by RFCs and
+vendors, so the list is long but by definition incomplete; don't hesitate to to
+add additional type definitions (see Contributing.rdoc). The primary sources
+for MIME type definitions found in mime-types is the IANA collection of
+registrations (see below for the link), RFCs, and W3C recommendations.
+
+The mime-types library uses semantic versioning. This is release 2.0; there are
+incompatible changes in the API provided by mime-types, mostly around registry
+initialization (see History.rdoc for full details), and the removal of support
+for Ruby 1.8 interpreters.
+
+mime-types (previously called MIME::Types for Ruby) was originally based on
+MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. It is built to
+conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA
+registry}[http://www.iana.org/assignments/media-types/]
+({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
+added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp]
+and added by the users of mime-types.'';
+      };
+      name = ''mime-types-2.0'';
+      requiredGems = [  ];
+      sha256 = ''1q1s22l3mm0am2f7n9qjqp8zl0smr9zlqr2ywwyfjkid2sj3prfk'';
+    };
     mini_portile_0_5_1 = {
       basename = ''mini_portile'';
       meta = {
@@ -1464,6 +1728,17 @@ augments 'require' to find and load matching files.'';
       requiredGems = [  ];
       sha256 = ''082zmail2h3cxd9z1wnibhk6aj4sb1f3zzwra6kg9bp51kx2c00v'';
     };
+    posix_spawn_0_3_6 = {
+      basename = ''posix_spawn'';
+      meta = {
+        description = ''posix_spawnp(2) for ruby'';
+        homepage = ''http://github.com/rtomayko/posix-spawn'';
+        longDescription = ''posix-spawn uses posix_spawnp(2) for faster process spawning'';
+      };
+      name = ''posix-spawn-0.3.6'';
+      requiredGems = [  ];
+      sha256 = ''0f2mqka8024yz55iw8wbihvmakwqnbrdr4a1ffl3x2zi104yvb43'';
+    };
     pry_0_9_12_2 = {
       basename = ''pry'';
       meta = {
@@ -1475,6 +1750,17 @@ augments 'require' to find and load matching files.'';
       requiredGems = [ g.coderay_1_0_9 g.slop_3_4_6 g.method_source_0_8_2 ];
       sha256 = ''141slzb62zfzdhrygqjmrzh68s3vzrb4mwyipy2lhps5q4b46y9s'';
     };
+    pry_0_9_12_3 = {
+      basename = ''pry'';
+      meta = {
+        description = ''An IRB alternative and runtime developer console'';
+        homepage = ''http://pry.github.com'';
+        longDescription = ''An IRB alternative and runtime developer console'';
+      };
+      name = ''pry-0.9.12.3'';
+      requiredGems = [ g.coderay_1_1_0 g.slop_3_4_7 g.method_source_0_8_2 ];
+      sha256 = ''1dn80vnyq1l6192sg3p29d0yz6rswnsl8rn3lkf75c86a2qqxpy3'';
+    };
     pusher_client_0_3_1 = {
       basename = ''pusher_client'';
       meta = {
@@ -1486,6 +1772,17 @@ augments 'require' to find and load matching files.'';
       requiredGems = [ g.websocket_1_0_7 g.ruby_hmac_0_4_0 ];
       sha256 = ''1mxqy960iln065fypk1ww3xgv7q396fpl6v0rp7ipls6aj86j970'';
     };
+    pygments_rb_0_5_4 = {
+      basename = ''pygments_rb'';
+      meta = {
+        description = ''pygments wrapper for ruby'';
+        homepage = ''http://github.com/tmm1/pygments.rb'';
+        longDescription = ''pygments.rb exposes the pygments syntax highlighter to Ruby'';
+      };
+      name = ''pygments.rb-0.5.4'';
+      requiredGems = [ g.yajl_ruby_1_1_0 g.posix_spawn_0_3_6 ];
+      sha256 = ''0ryl0f0zp0rffaggd978cmrkzsmf83x452fcinw6p705xdk4zbvl'';
+    };
     rack_1_5_2 = {
       basename = ''rack'';
       meta = {
@@ -1606,6 +1903,28 @@ request helpers feature.'';
       requiredGems = [  ];
       sha256 = ''0bdnxwdxj4r1kdxfi5nszbsb126njrr81p912g64xxs2bgxd1bp1'';
     };
+    rb_inotify_0_9_2 = {
+      basename = ''rb_inotify'';
+      meta = {
+        description = ''A Ruby wrapper for Linux's inotify, using FFI'';
+        homepage = ''http://github.com/nex3/rb-inotify'';
+        longDescription = ''A Ruby wrapper for Linux's inotify, using FFI'';
+      };
+      name = ''rb-inotify-0.9.2'';
+      requiredGems = [ g.ffi_1_9_3 ];
+      sha256 = ''0752fhgfrx370b2jnhxzs8sjv2l8yrnwqj337kx9v100igd1c7iv'';
+    };
+    rb_kqueue_0_2_0 = {
+      basename = ''rb_kqueue'';
+      meta = {
+        description = ''A Ruby wrapper for BSD's kqueue, using FFI'';
+        homepage = ''http://github.com/mat813/rb-kqueue'';
+        longDescription = ''A Ruby wrapper for BSD's kqueue, using FFI'';
+      };
+      name = ''rb-kqueue-0.2.0'';
+      requiredGems = [ g.ffi_1_9_3 ];
+      sha256 = ''1f2wimhq93a1zy2fbyj7iyh7hvzmzwn3pzhkwb3npy4mj1df83n3'';
+    };
     rdiscount_2_1_6 = {
       basename = ''rdiscount'';
       meta = {
@@ -1616,6 +1935,17 @@ request helpers feature.'';
       requiredGems = [  ];
       sha256 = ''180ln9gwxn0cyflg0i1viv7jyalmjqvqr34cb65xsmmsz1nz55q2'';
     };
+    redcarpet_2_3_0 = {
+      basename = ''redcarpet'';
+      meta = {
+        description = ''Markdown that smells nice'';
+        homepage = ''http://github.com/vmg/redcarpet'';
+        longDescription = ''A fast, safe and extensible Markdown to (X)HTML parser'';
+      };
+      name = ''redcarpet-2.3.0'';
+      requiredGems = [  ];
+      sha256 = ''1fghh7n9kz6n6bdhgix5s8lyj5sw6q44zizf4mdgz5xsgwqcr6sw'';
+    };
     redis_3_0_5 = {
       basename = ''redis'';
       meta = {
@@ -1691,6 +2021,17 @@ multiple, different applications.
       requiredGems = [ g.resque_1_25_1 g.twitter_bootstrap_rails_2_2_8 g.jquery_rails_3_0_4 g.sass_rails_4_0_1 g.coffee_rails_4_0_1 ];
       sha256 = ''1v4g0zrlq9n0pkhdiwxqcmis5p8hpxm475vchldk63mi1vy4fvr2'';
     };
+    rest_client_1_6_7 = {
+      basename = ''rest_client'';
+      meta = {
+        description = ''Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.'';
+        homepage = ''http://github.com/archiloque/rest-client'';
+        longDescription = ''A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.'';
+      };
+      name = ''rest-client-1.6.7'';
+      requiredGems = [ g.mime_types_2_0 ];
+      sha256 = ''0nn7zalgidz2yj0iqh3xvzh626krm2al79dfiij19jdhp0rk8853'';
+    };
     right_aws_3_1_0 = {
       basename = ''right_aws'';
       meta = {
@@ -1795,6 +2136,17 @@ in JSDuck.
       requiredGems = [  ];
       sha256 = ''1w6yr5n3b8yd0rsba9q3zyxr0n2hbpkz4v2k1qx6j1ywvl9rc2c1'';
     };
+    rmagick_2_13_2 = {
+      basename = ''rmagick'';
+      meta = {
+        description = ''Ruby binding to ImageMagick'';
+        homepage = ''http://rubyforge.org/projects/rmagick'';
+        longDescription = ''RMagick is an interface between Ruby and ImageMagick.'';
+      };
+      name = ''rmagick-2.13.2'';
+      requiredGems = [  ];
+      sha256 = ''1fw5rs5yqi5ayh44d18gjq68chiz14byx01h33c8jvkdxz3b9wz4'';
+    };
     rmail_1_0_0 = {
       basename = ''rmail'';
       meta = {
@@ -1905,6 +2257,27 @@ Originally written by Daiki Ueno. Converted to a RubyGem by Geoffrey Grosenbach'
       requiredGems = [  ];
       sha256 = ''1khf6d903agnwd8965f5f8b353rzmfvygxp53z1199rqzw8h46q2'';
     };
+    rubyzip_1_1_0 = {
+      basename = ''rubyzip'';
+      meta = {
+        description = ''rubyzip is a ruby module for reading and writing zip files'';
+        homepage = ''http://github.com/rubyzip/rubyzip'';
+      };
+      name = ''rubyzip-1.1.0'';
+      requiredGems = [  ];
+      sha256 = ''0kxpcs047fb52lz0imp6vl3hr5khqpk0jfbr2knfbp612ynzyzcl'';
+    };
+    safe_yaml_0_9_7 = {
+      basename = ''safe_yaml'';
+      meta = {
+        description = ''SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.'';
+        homepage = ''http://dtao.github.com/safe_yaml/'';
+        longDescription = ''Parse YAML safely, without that pesky arbitrary object deserialization vulnerability'';
+      };
+      name = ''safe_yaml-0.9.7'';
+      requiredGems = [  ];
+      sha256 = ''0y34vpak8gim18rq02rgd144jsvk5is4xni16wm3shbhivzqb4hk'';
+    };
     sass_3_2_10 = {
       basename = ''sass'';
       meta = {
@@ -2004,6 +2377,17 @@ interpreters.'';
       requiredGems = [  ];
       sha256 = ''0fdp3nkljjs2d5yhgjzcqi0f6xq67byfbrayg5aj7r76rsw0hmal'';
     };
+    slop_3_4_7 = {
+      basename = ''slop'';
+      meta = {
+        description = ''Simple Lightweight Option Parsing'';
+        homepage = ''http://github.com/leejarvis/slop'';
+        longDescription = ''A simple DSL for gathering options and parsing the command line'';
+      };
+      name = ''slop-3.4.7'';
+      requiredGems = [  ];
+      sha256 = ''1x3dwljqvkzj314rwn2bxgim9xvgwnfipzg5g0kwwxfn90fpv2sn'';
+    };
     sprockets_2_10_0 = {
       basename = ''sprockets'';
       meta = {
@@ -2035,6 +2419,15 @@ interpreters.'';
       requiredGems = [ g.sprockets_2_10_0 g.actionpack_4_0_0 g.activesupport_4_0_0 ];
       sha256 = ''170llk1qsvzhhslmasqk4hp5lrv9ibwy44q32yg6kn9s7sh0c1wy'';
     };
+    syntax_1_0_0 = {
+      basename = ''syntax'';
+      meta = {
+        description = ''Syntax is Ruby library for performing simple syntax highlighting.'';
+      };
+      name = ''syntax-1.0.0'';
+      requiredGems = [  ];
+      sha256 = ''1z93kkhdq55vq3fg9wljhm591cj59qis58dk97l09b8bfxi2ypk0'';
+    };
     syslog_protocol_0_9_2 = {
       basename = ''syslog_protocol'';
       meta = {
@@ -2164,6 +2557,17 @@ management.
       requiredGems = [  ];
       sha256 = ''00sr3yy7sbqaq7cb2d2kpycajxqf1b1wr1yy33z4bnzmqii0b0ir'';
     };
+    timers_1_1_0 = {
+      basename = ''timers'';
+      meta = {
+        description = ''Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout'';
+        homepage = ''https://github.com/tarcieri/timers'';
+        longDescription = ''Pure Ruby one-shot and periodic timers'';
+      };
+      name = ''timers-1.1.0'';
+      requiredGems = [  ];
+      sha256 = ''0x3vnkxy3bg9f6v1nhkfqkajr19glrzkmqd5a1wy8hrylx8rdfrv'';
+    };
     tins_0_9_0 = {
       basename = ''tins'';
       meta = {
diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix
index 7c80cdfe0653..c5ab0f5e5e20 100644
--- a/pkgs/development/interpreters/ruby/patches.nix
+++ b/pkgs/development/interpreters/ruby/patches.nix
@@ -1,5 +1,6 @@
 { fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi
-, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty }:
+, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick
+, pkgconfig }:
 
 let
 
@@ -76,6 +77,12 @@ in
     NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
   };
 
+  rmagick = {
+    buildInputs = [ imagemagick pkgconfig ];
+
+    NIX_CFLAGS_COMPILE = "-I${imagemagick}/include/ImageMagick-6";
+  };
+
   xrefresh_server =
     let
       patch = fetchurl {
diff --git a/pkgs/development/libraries/ffmpeg/1.x.nix b/pkgs/development/libraries/ffmpeg/1.x.nix
index 8d1092e9c048..a2e01fdd41f8 100644
--- a/pkgs/development/libraries/ffmpeg/1.x.nix
+++ b/pkgs/development/libraries/ffmpeg/1.x.nix
@@ -13,7 +13,7 @@
 , dc1394Support ? false, libdc1394 ? null
 , x11grabSupport ? false, libXext ? null, libXfixes ? null
 , playSupport ? true, SDL ? null
-, freetypeSupport ? true, freetype ? null
+, freetypeSupport ? true, freetype ? null, fontconfig ? null
 }:
 
 assert speexSupport -> speex != null;
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
     ++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
     ++ stdenv.lib.optional playSupport "--enable-ffplay"
-    ++ stdenv.lib.optional freetypeSupport "--enable-libfreetype";
+    ++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig";
 
   buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib texinfo perl ]
     ++ stdenv.lib.optional mp3Support lame
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional dc1394Support libdc1394
     ++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
     ++ stdenv.lib.optional playSupport SDL
-    ++ stdenv.lib.optional freetypeSupport freetype;
+    ++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/glibc/2.17/locales.nix b/pkgs/development/libraries/glibc/2.17/locales.nix
index 680a1ced3dee..e818b84bc628 100644
--- a/pkgs/development/libraries/glibc/2.17/locales.nix
+++ b/pkgs/development/libraries/glibc/2.17/locales.nix
@@ -40,7 +40,7 @@ in
     installPhase =
       ''
         mkdir -p "$out/lib/locale"
-        cp -v $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale/locale-archive" "$out/lib/locale"
+        cp -v "$TMPDIR/$NIX_STORE/"*"/lib/locale/locale-archive" "$out/lib/locale"
       '';
 
     meta.description = "Locale information for the GNU C Library";
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
index 50994384c966..ae08eb8940b1 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-odbc.nix
@@ -8,11 +8,15 @@ cabal.mkDerivation (self: {
   isExecutable = true;
   buildDepends = [ HDBC mtl time utf8String ];
   extraLibraries = [ odbc ];
+  noHaddock = true; # Haddocks currently fail to build
   meta = {
     homepage = "https://github.com/hdbc/hdbc-odbc";
     description = "ODBC driver for HDBC";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.ocharles
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/codec-image-devil/default.nix b/pkgs/development/libraries/haskell/codec-image-devil/default.nix
new file mode 100644
index 000000000000..fc8631f07a6e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/codec-image-devil/default.nix
@@ -0,0 +1,14 @@
+{ cabal, libdevil }:
+
+cabal.mkDerivation (self: {
+  pname = "Codec-Image-DevIL";
+  version = "0.2.3";
+  sha256 = "1kv3hns9f0bhfb723nj9szyz3zfqpvy02azzsiymzjz4ajhqmrsz";
+  buildDepends = [ libdevil ];
+  meta = {
+    homepage = "http://hackage.haskell.org/package/Codec-Image-DevIL";
+    description = "Simple FFI interface to the DevIL image library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index c446d5de4d8c..24b880303166 100644
--- a/pkgs/development/libraries/haskell/diagrams/contrib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/contrib.nix
@@ -18,6 +18,7 @@ cabal.mkDerivation (self: {
     diagramsLib HUnit QuickCheck testFramework testFrameworkHunit
     testFrameworkQuickcheck2
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams/";
     description = "Collection of user contributions to diagrams EDSL";
diff --git a/pkgs/development/libraries/haskell/foldl/default.nix b/pkgs/development/libraries/haskell/foldl/default.nix
new file mode 100644
index 000000000000..44312abb35be
--- /dev/null
+++ b/pkgs/development/libraries/haskell/foldl/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "foldl";
+  version = "1.0.0";
+  sha256 = "0r9lkyw33231nfl9ly25hk2i7k3c8ssmng473xvk76zkcrksj131";
+  meta = {
+    description = "Composable, streaming, and efficient left folds";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/indexed-free/default.nix b/pkgs/development/libraries/haskell/indexed-free/default.nix
new file mode 100644
index 000000000000..557154d391ac
--- /dev/null
+++ b/pkgs/development/libraries/haskell/indexed-free/default.nix
@@ -0,0 +1,15 @@
+{ cabal, indexed }:
+
+cabal.mkDerivation (self: {
+  pname = "indexed-free";
+  version = "0.3.1";
+  sha256 = "1172vxhyzyf061mnlb8dndnvycjk3shxhiqd8hdz42ipv223admx";
+  buildDepends = [ indexed ];
+  meta = {
+    homepage = "https://github.com/fumieval/indexed-free";
+    description = "indexed monads for free";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/indexed/default.nix b/pkgs/development/libraries/haskell/indexed/default.nix
new file mode 100644
index 000000000000..c31fa6691d8f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/indexed/default.nix
@@ -0,0 +1,14 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "indexed";
+  version = "0.1";
+  sha256 = "1dx5pyi5psjd2l26hc3wfsapnywdl0kqpw98b3jwc0xq4406ax12";
+  meta = {
+    homepage = "https://github.com/reinerp/indexed";
+    description = "Haskell98 indexed functors, monads, comonads";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index 16e6eb60fcf6..f1bc7259b799 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.11";
-  sha256 = "0w81ap41j28pbppqs33hz7b9n5ghyj2hnny0kgxgcg8iv2qg9czy";
+  version = "0.12";
+  sha256 = "0wk8hxak4dl8nbdif4f8z9gvr5bqm95inrvrcrb6ryaxichrn432";
   buildDepends = [ hashable nats text unorderedContainers ];
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
diff --git a/pkgs/development/libraries/haskell/stringsearch/default.nix b/pkgs/development/libraries/haskell/stringsearch/default.nix
index f8032f8cde41..12f19c836f3d 100644
--- a/pkgs/development/libraries/haskell/stringsearch/default.nix
+++ b/pkgs/development/libraries/haskell/stringsearch/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "stringsearch";
-  version = "0.3.6.4";
-  sha256 = "16g0x0n8x3bg3mij7w3r5m3h2i2dn3bd298n14iccdwhfnlzm91b";
+  version = "0.3.6.5";
+  sha256 = "1mjvb1qr4fkxv5qvq4jfswa3dcj3dwzvwx7dbp2wqw8zand41lsq";
   meta = {
     homepage = "https://bitbucket.org/dafis/stringsearch";
     description = "Fast searching, splitting and replacing of ByteStrings";
diff --git a/pkgs/development/libraries/haskell/wai-logger/default.nix b/pkgs/development/libraries/haskell/wai-logger/default.nix
index f6035269112e..fc958c2576b9 100644
--- a/pkgs/development/libraries/haskell/wai-logger/default.nix
+++ b/pkgs/development/libraries/haskell/wai-logger/default.nix
@@ -1,15 +1,16 @@
 { cabal, blazeBuilder, byteorder, caseInsensitive, dateCache
-, fastLogger, httpTypes, network, wai
+, doctest, fastLogger, httpTypes, network, wai, waiTest
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-logger";
-  version = "0.3.1";
-  sha256 = "0x1d67fcfpjrgyjr7hipifqrzk13x8z8xmlj7h999r8mswijhgii";
+  version = "0.3.2";
+  sha256 = "0las9jb8cxdsyh1mnrhx48yfbjw5f2x4hhmivhmhzb6qgxnbvma9";
   buildDepends = [
     blazeBuilder byteorder caseInsensitive dateCache fastLogger
     httpTypes network wai
   ];
+  testDepends = [ doctest waiTest ];
   meta = {
     description = "A logging system for WAI";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/os-specific/linux/acpi/default.nix b/pkgs/os-specific/linux/acpi/default.nix
index d694a9e5ed24..2a774949530d 100644
--- a/pkgs/os-specific/linux/acpi/default.nix
+++ b/pkgs/os-specific/linux/acpi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "acpi-${version}";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/acpiclient/${version}/${name}.tar.gz";
-    sha256 = "0cawznhkzb51yxa599d1xkw05nklmjrrmd79vmjkkzf4002d4qgd";
+    sha256 = "01ahldvf0gc29dmbd5zi4rrnrw2i1ajnf30sx2vyaski3jv099fp";
   };
 
   meta = {
diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix
index 7f3440d8f59e..c1f92476b879 100644
--- a/pkgs/os-specific/linux/acpid/default.nix
+++ b/pkgs/os-specific/linux/acpid/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "acpid-2.0.17";
+  name = "acpid-2.0.20";
 
   src = fetchurl {
-    url = "http://tedfelix.com/linux/${name}.tar.xz";
-    sha256 = "0gksl6z3sb6yyk7bdmldxsrncvprd3rny0i8ggl4m95nvv3x5drn";
+    url = "mirror://sourceforge/acpid2/${name}.tar.xz";
+    sha256 = "0l7pzjcpf1935bn44kzgc16h00clbx73cjm2dlyhzvvb5ksvl7ka";
   };
 
   preBuild = ''
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index a24e0fd2307b..fd1e83100ed5 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -37,16 +37,13 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "busybox-1.20.2";
+  name = "busybox-1.21.1";
 
   src = fetchurl {
     url = "http://busybox.net/downloads/${name}.tar.bz2";
-    sha256 = "10k8kgrprll9hxfm9gc3jl7kkq79g6l2pygn5snqwqg5v80zy4zb";
+    sha256 = "00qk938q90jv14mxmadm8pgs3jymkknc6xicw4512mn85s8y0nyd";
   };
 
-  # Remove this patch after the next busybox update.
-  patches = [ ./include-missing-sys-resource-header.patch ];
-
   configurePhase = ''
     make defconfig
     ${configParser}
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index 0f8801ef58eb..bef8de495ad3 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,15 +1,13 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cifs-utils-5.6";
+  name = "cifs-utils-6.2";
 
   src = fetchurl {
     url = "ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/${name}.tar.bz2";
-    sha256 = "0f619nw1163bcmfc83mmqj31qdkl68wfm81vynx3d8q0m0k1ll7i";
+    sha256 = "0cydya7l7xwxk2j1g1659kbvb4jzql11ivb6cldwwfg19qvnwrrl";
   };
 
-  patches = [ ./find-systemd-ask-password-via-path.patch ];
-
   makeFlags = "root_sbindir=$(out)/sbin";
 
   meta = {
diff --git a/pkgs/os-specific/linux/cifs-utils/find-systemd-ask-password-via-path.patch b/pkgs/os-specific/linux/cifs-utils/find-systemd-ask-password-via-path.patch
deleted file mode 100644
index 428cb75edadf..000000000000
--- a/pkgs/os-specific/linux/cifs-utils/find-systemd-ask-password-via-path.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ubr cifs-utils-5.9-orig/mount.cifs.c cifs-utils-5.9/mount.cifs.c
---- cifs-utils-5.9-orig/mount.cifs.c	2013-03-05 10:53:19.375464790 +0100
-+++ cifs-utils-5.9/mount.cifs.c	2013-03-05 11:41:40.704946110 +0100
-@@ -1634,7 +1634,7 @@
- }
- 
- /*
-- * If systemd is running and /bin/systemd-ask-password --
-+ * If systemd is running and systemd-ask-password --
-  * is available, then use that else fallback on getpass(..)
-  *
-  * Returns: @input or NULL on error
-@@ -1657,7 +1657,7 @@
- 		FILE *ask_pass_fp = NULL;
- 
- 		cmd = ret = NULL;
--		if (asprintf(&cmd, "/bin/systemd-ask-password \"%s\"", prompt) >= 0) {
-+		if (asprintf(&cmd, "/run/current-system/sw/bin/systemd-ask-password \"%s\"", prompt) >= 0) {
- 			ask_pass_fp = popen (cmd, "re");
- 			free (cmd);
- 		}
-Only in cifs-utils-5.9/: mount.cifs.c.orig
diff --git a/pkgs/os-specific/linux/consoletools/default.nix b/pkgs/os-specific/linux/consoletools/default.nix
index 537cc386402b..f8be37edfe2e 100644
--- a/pkgs/os-specific/linux/consoletools/default.nix
+++ b/pkgs/os-specific/linux/consoletools/default.nix
@@ -1,13 +1,12 @@
-{ stdenv, fetchgit, SDL }:
+{ stdenv, fetchurl, SDL }:
 
 stdenv.mkDerivation rec {
   name = "linuxconsoletools-${version}";
-  version = "1.4.3";
+  version = "1.4.6";
 
-  src = fetchgit {
-    url = "git://linuxconsole.git.sourceforge.net/gitroot/linuxconsole/linuxconsole";
-    rev = "dac2cae0e5795ddc27b76a92767dd9e07a10621e";
-    sha256 = "350b008e614923dbd548fcaaf2842b39433acdcf595e2ce8aaf1599f076d331d";
+  src = fetchurl {
+    url = "mirror://sourceforge/linuxconsole/${name}.tar.bz2";
+    sha256 = "0035yhjbjdis5wqmbdz67xq61065x7vrx5mb7kb1rhrx3ag43wcf";
   };
 
   buildInputs = [ SDL ];
diff --git a/pkgs/os-specific/linux/cpufrequtils/default.nix b/pkgs/os-specific/linux/cpufrequtils/default.nix
index 85907ff0212a..e9fe99011155 100644
--- a/pkgs/os-specific/linux/cpufrequtils/default.nix
+++ b/pkgs/os-specific/linux/cpufrequtils/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation {
   name = "cpufrequtils-008";
 
   src = fetchurl {
-    url = http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils-008.tar.gz;
-    md5 = "52d3e09e47ffef634833f7fab168eccf";
+    url = "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/${name}.tar.gz";
+    sha256 = "127i38d4w1hv2dzdy756gmbhq25q3k34nqb2s0xlhsfhhdqs0lq0";
   };
 
   patchPhase = ''
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
index e80256f7299f..7a818530ca2d 100644
--- a/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, stdenv, kernelDev, onlyHeaders ? false }:
 
 stdenv.mkDerivation rec {
-  pname = "cryptodev-linux-1.5";
+  pname = "cryptodev-linux-1.6";
   name = "${pname}-${kernelDev.version}";
 
   src = fetchurl {
     url = "http://download.gna.org/cryptodev-linux/${pname}.tar.gz";
-    sha256 = "13hybl5p0ck0vgi2gxmiwa2810gcfk78kdy17ai8nczj8il15mn0";
+    sha256 = "0bryzdb4xz3fp2q00a0mlqkj629md825lnlh4gjwmy51irf45wbm";
   };
 
   buildPhase = if !onlyHeaders then ''
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 0eb4be302841..93f62ab7e0a9 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -5,11 +5,11 @@
 assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-1.5.1";
+  name = "cryptsetup-1.6.2";
 
   src = fetchurl {
     url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "0dib3nw6ifd7d7hr9k4iyaha3hz0pkzairqa38l3fndkr9w3zlhn";
+    sha256 = "16hh7v8bsqy0i1wlaj03kwqjv3liffkvg06lk75lng9hk00kywhm";
   };
 
   configureFlags = [ "--enable-cryptsetup-reencrypt" ]
diff --git a/pkgs/os-specific/linux/dmidecode/default.nix b/pkgs/os-specific/linux/dmidecode/default.nix
index e6b5035bd8ed..40564f9f95a7 100644
--- a/pkgs/os-specific/linux/dmidecode/default.nix
+++ b/pkgs/os-specific/linux/dmidecode/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dmidecode-2.11";
+  name = "dmidecode-2.12";
 
   src = fetchurl {
     url = "mirror://savannah/dmidecode/${name}.tar.bz2";
-    sha256 = "0l9v8985piykc98hmbg1cq5r4xwvp0jjl4li3avr3ddkg4s699bd";
+    sha256 = "122hgaw8mpqdfra159lfl6pyk3837giqx6vq42j64fjnbl2z6gwi";
   };
 
   makeFlags = "prefix=$(out)";
diff --git a/pkgs/os-specific/linux/drbd/default.nix b/pkgs/os-specific/linux/drbd/default.nix
index 7129b685eb90..068e49d01905 100644
--- a/pkgs/os-specific/linux/drbd/default.nix
+++ b/pkgs/os-specific/linux/drbd/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "drbd-8.4.0";
+  name = "drbd-8.4.4";
 
   src = fetchurl {
     url = "http://oss.linbit.com/drbd/8.4/${name}.tar.gz";
-    sha256 = "096njwxjpwvnl259gxq6cr6n0r6ba0h5aryvgk05hqi95jx927vg";
+    sha256 = "0hm1cnd7vsccyc22sg85f9aj48nijl2f1kgbvl5crv414ihv5giq";
   };
 
   patches = [ ./pass-force.patch ];
diff --git a/pkgs/os-specific/linux/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix
index 78d8ee52fb18..0e022e0c4a11 100644
--- a/pkgs/os-specific/linux/iptables/default.nix
+++ b/pkgs/os-specific/linux/iptables/default.nix
@@ -1,24 +1,17 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "iptables-1.4.16.2";
+  name = "iptables-1.4.21";
 
   src = fetchurl {
     url = "http://www.netfilter.org/projects/iptables/files/${name}.tar.bz2";
-    md5 = "57220bb26866a713073e5614f88071fc";
+    sha256 = "1q6kg7sf0pgpq0qhab6sywl23cngxxfzc9zdzscsba8x09l4q02j";
   };
 
-  # Install header files required by miniupnpd.
-  postInstall =
-    ''
-      cp include/iptables.h $out/include
-      cp include/libiptc/libiptc.h include/libiptc/ipt_kernel_headers.h $out/include/libiptc
-      mkdir $out/include/iptables
-      cp include/iptables/internal.h $out/include/iptables
-      mkdir $out/include/net
-      cp -prd include/net/netfilter $out/include/net/netfilter
-      mkdir $out/include/linux
-    '';
+  configureFlags = ''
+    --enable-devel
+    --enable-shared
+  '';
 
   meta = {
     description = "A program to configure the Linux IP packet filtering ruleset";
diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/os-specific/linux/iw/default.nix
index ac8d4824c62d..2609e1880b42 100644
--- a/pkgs/os-specific/linux/iw/default.nix
+++ b/pkgs/os-specific/linux/iw/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libnl, pkgconfig}:
 
 stdenv.mkDerivation rec {
-  name = "iw-3.10";
+  name = "iw-3.11";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/iw/${name}.tar.xz";
-    sha256 = "1sagsrl2s0d3ar3q2yc5qxk2d47zgn551akwcs9f4a5prw9f4vj5";
+    sha256 = "1zrh0pjcy0kg6n8wlr34cg3bmi3nj28rhqn5pad23a1170r2f0z9";
   };
 
   buildInputs = [ libnl pkgconfig ];
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index dd61d8242642..d6581a9978be 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix
@@ -1,13 +1,11 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.12";
-
-  modDirVersion = "3.12.0";
+  version = "3.12.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "00jshh7abn8fj6zsbmfaxxfpg83033413k5nqqfsb7z1zp3hw4if";
+    sha256 = "0r3smv7dgpimp7fabfll413byibhmscnnsd9npawpqa4q6bzapwx";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 53127e4458ce..bd748dadf616 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
 
 let
-  v = "2.02.100";
+  v = "2.02.104";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
-    md5 = "9629cf5728544d7e637cafde1f73d777";
+    sha256 = "1xa7hvp8bsx96nncgksxrqxaqcgipfmmpr8aysayb8aisyjvas0d";
   };
 
   configureFlags =
diff --git a/pkgs/os-specific/linux/mdadm/default.nix b/pkgs/os-specific/linux/mdadm/default.nix
index 1653c018ce14..48e1c1784900 100644
--- a/pkgs/os-specific/linux/mdadm/default.nix
+++ b/pkgs/os-specific/linux/mdadm/default.nix
@@ -1,16 +1,13 @@
 { stdenv, fetchurl, groff }:
 
 stdenv.mkDerivation rec {
-  name = "mdadm-3.1.2";
+  name = "mdadm-3.3";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/raid/mdadm/${name}.tar.bz2";
-    sha256 = "0s2d2a01j8cizxqvbgd0sn5bpa1j46q8976078b3jq1q7i1ir0zz";
+    sha256 = "0igdqflihiq1dp5qlypzw0xfl44f4n3bckl7r2x2wfgkplcfa1ww";
   };
 
-  # Enable incremental activation of swraid arrays from udev.
-  patches = [ ./udev.patch ];
-
   nativeBuildInputs = [ groff ];
 
   preConfigure = "sed -e 's@/lib/udev@\${out}/lib/udev@' -e 's@ -Werror @ @' -i Makefile";
@@ -19,7 +16,7 @@ stdenv.mkDerivation rec {
   # /dev/.mdadm/map as a fallback).
   preBuild =
     ''
-      makeFlagsArray=(INSTALL=install BINDIR=$out/sbin MANDIR=$out/share/man VAR_RUN=/var/run/mdadm ALT_RUN=/dev/.mdadm)
+      makeFlagsArray=(INSTALL=install BINDIR=$out/sbin MANDIR=$out/share/man RUN_DIR=/dev/.mdadm)
       if [[ -n "$crossConfig" ]]; then
         makeFlagsArray+=(CROSS_COMPILE=$crossConfig-)
       fi
diff --git a/pkgs/os-specific/linux/mdadm/udev.patch b/pkgs/os-specific/linux/mdadm/udev.patch
deleted file mode 100644
index 5eb35f0c584c..000000000000
--- a/pkgs/os-specific/linux/mdadm/udev.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --exclude '*~' -rc mdadm-3.1.2-orig/udev-md-raid.rules mdadm-3.1.2/udev-md-raid.rules
-*** mdadm-3.1.2-orig/udev-md-raid.rules	2010-02-22 21:14:58.000000000 +0100
---- mdadm-3.1.2/udev-md-raid.rules	2010-05-16 20:45:22.000000000 +0200
-***************
-*** 5,11 ****
-  ACTION=="change", GOTO="md_no_incr"
-  
-  # import data from a raid member and activate it
-! #ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}"
-  # import data from a raid set
-  LABEL="md_no_incr"
-  KERNEL!="md*", GOTO="md_end"
---- 5,11 ----
-  ACTION=="change", GOTO="md_no_incr"
-  
-  # import data from a raid member and activate it
-! ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}"
-  # import data from a raid set
-  LABEL="md_no_incr"
-  KERNEL!="md*", GOTO="md_end"
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index d42424e6fc86..3f676d37dd87 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,11 +1,13 @@
 { stdenv, fetchurl, zlib, ncurses ? null, perl ? null, pam }:
-
+let
+  ver = "2.24";
+in
 stdenv.mkDerivation rec {
-  name = "util-linux-2.22.2";
+  name = "util-linux-${ver}";
 
   src = fetchurl {
-    url = "http://www.kernel.org/pub/linux/utils/util-linux/v2.22/${name}.tar.bz2";
-    sha256 = "0vf3ifb45gr4cd27pmmxk8y5b3r0920mv16fv0vfwz5705xa2qvl";
+    url = "http://www.kernel.org/pub/linux/utils/util-linux/v${ver}/${name}.tar.bz2";
+    sha256 = "1nfnymj03rdcxjb677a9qq1zirppr8csh32cb85qm23x5xndi6v3";
   };
 
   crossAttrs = {
diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix
new file mode 100644
index 000000000000..28d9b4863d4b
--- /dev/null
+++ b/pkgs/tools/misc/ldapvi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, openldap, openssl, popt, glib, ncurses, readline, pkgconfig, cyrus_sasl, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+  name = "ldapvi-${version}";
+  version = "0lz1sb5r0y9ypy8d7hm0l2wfa8l69f8ll0i5c78c0apz40nyjqkg";
+
+  # use latest git, it includes some important patches since 2007 release
+  src = fetchgit {
+    url = "http://www.lichteblau.com/git/ldapvi.git";
+    sha256 = "3ef3103030ecb04d7fe80180e3fd490377cf81fb2af96782323fddabc3225030";
+  };
+
+  buildInputs = [ openldap openssl popt glib ncurses readline pkgconfig cyrus_sasl autoconf automake ];
+
+  setSourceRoot = ''
+    sourceRoot=git-export/ldapvi
+  '';
+ 
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ldapvi is an interactive LDAP client for Unix terminals. Using it, you can update LDAP entries with a text editor";
+    homepage = http://www.lichteblau.com/ldapvi/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ iElectric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/ddclient/default.nix b/pkgs/tools/networking/ddclient/default.nix
index 22539657b1f1..0d50b1b2c0f3 100644
--- a/pkgs/tools/networking/ddclient/default.nix
+++ b/pkgs/tools/networking/ddclient/default.nix
@@ -8,7 +8,7 @@ buildPerlPackage {
     sha256 = "f22ac7b0ec78e310d7b88a1cf636e5c00360b2ed9c087f231b3522ef3e6295f2";
   };
 
-  buildInputs = [ perlPackages.IOSocketSSL ];
+  buildInputs = [ perlPackages.IOSocketSSL perlPackages.DigestSHA1 ];
 
   patches = [ ./ddclient-foreground.patch ];
 
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 20964213d539..7217d9871864 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.63";
+  name = "dnsmasq-2.67";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.gz";
-    sha256 = "043p8qjd1zx8bklcli9qnk3vzfz7j2kvl82abvipcg56qsyf71px";
+    sha256 = "0jkbn5j3jc96mw7w3nf9zfkl9l3183r4ls4ryi6mnd94c5xlrv4j";
   };
 
   makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fe4f83ccb04f..55d82790b8cd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1214,6 +1214,8 @@ let
     self = pkgs.nodePackages;
   });
 
+  ldapvi = callPackage ../tools/misc/ldapvi { };
+
   ldns = callPackage ../development/libraries/ldns { };
 
   lftp = callPackage ../tools/networking/lftp { };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 371cbb7a8801..daba9950319c 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -742,6 +742,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   cmdtheline = callPackage ../development/libraries/haskell/cmdtheline {};
 
+  CodecImageDevIL = callPackage ../development/libraries/haskell/codec-image-devil {};
+
   colorizeHaskell = callPackage ../development/libraries/haskell/colorize-haskell {};
 
   colour = callPackage ../development/libraries/haskell/colour {};
@@ -1029,6 +1031,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   fingertree = callPackage ../development/libraries/haskell/fingertree {};
 
+  foldl = callPackage ../development/libraries/haskell/foldl {};
+
   forceLayout = callPackage ../development/libraries/haskell/force-layout {};
 
   free = callPackage ../development/libraries/haskell/free {};
@@ -1352,6 +1356,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   ieee754 = callPackage ../development/libraries/haskell/ieee754 {};
 
   indents = callPackage ../development/libraries/haskell/indents {};
+  
+  indexed = callPackage ../development/libraries/haskell/indexed {};
+
+  indexedFree = callPackage ../development/libraries/haskell/indexed-free {};
 
   instantGenerics = callPackage ../development/libraries/haskell/instant-generics {};
 
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index e90418b16cfe..33827fed3c09 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -505,7 +505,7 @@
       (self.nativeDeps."aws-sdk" or []);
     deps = [
       self.by-version."xml2js"."0.2.4"
-      self.by-version."xmlbuilder"."0.4.3"
+      self.by-version."xmlbuilder"."1.0.2"
     ];
     peerDependencies = [
     ];
@@ -2246,7 +2246,7 @@
     buildInputs =
       (self.nativeDeps."constantinople" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.3"
+      self.by-version."uglify-js"."2.4.4"
     ];
     peerDependencies = [
     ];
@@ -2397,13 +2397,13 @@
     passthru.names = [ "cookiejar" ];
   };
   by-spec."cookies".">= 0.2.2" =
-    self.by-version."cookies"."0.3.7";
-  by-version."cookies"."0.3.7" = lib.makeOverridable self.buildNodePackage {
-    name = "cookies-0.3.7";
+    self.by-version."cookies"."0.3.8";
+  by-version."cookies"."0.3.8" = lib.makeOverridable self.buildNodePackage {
+    name = "cookies-0.3.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cookies/-/cookies-0.3.7.tgz";
-        sha1 = "89ff5ecd74a2d4e1224bdb775db83c407fb6774f";
+        url = "http://registry.npmjs.org/cookies/-/cookies-0.3.8.tgz";
+        sha1 = "92fe50918f3d55aec4ae9d978bcddda2ada28ce9";
       })
     ];
     buildInputs =
@@ -3443,13 +3443,13 @@
     passthru.names = [ "everyauth" ];
   };
   by-spec."exit"."~0.1.1" =
-    self.by-version."exit"."0.1.1";
-  by-version."exit"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "exit-0.1.1";
+    self.by-version."exit"."0.1.2";
+  by-version."exit"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "exit-0.1.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/exit/-/exit-0.1.1.tgz";
-        sha1 = "8bf4af1e41fdb092476006764db9f750dfcddc4e";
+        url = "http://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
+        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
       })
     ];
     buildInputs =
@@ -4670,7 +4670,7 @@
       self.by-version."underscore.string"."2.2.1"
       self.by-version."which"."1.0.5"
       self.by-version."js-yaml"."2.0.5"
-      self.by-version."exit"."0.1.1"
+      self.by-version."exit"."0.1.2"
       self.by-version."getobject"."0.1.0"
     ];
     peerDependencies = [
@@ -4831,7 +4831,7 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-uglify" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.3"
+      self.by-version."uglify-js"."2.4.4"
       self.by-version."grunt-lib-contrib"."0.6.1"
     ];
     peerDependencies = [
@@ -4857,7 +4857,7 @@
     ];
     peerDependencies = [
       self.by-version."grunt"."0.4.2"
-      self.by-version."karma"."0.10.5"
+      self.by-version."karma"."0.10.6"
     ];
     passthru.names = [ "grunt-karma" ];
   };
@@ -5389,7 +5389,7 @@
     buildInputs =
       (self.nativeDeps."i18next" or []);
     deps = [
-      self.by-version."cookies"."0.3.7"
+      self.by-version."cookies"."0.3.8"
     ];
     peerDependencies = [
     ];
@@ -6063,13 +6063,13 @@
   by-spec."karma".">=0.9.3" =
     self.by-version."karma"."0.11.5";
   by-spec."karma"."~0.10.0" =
-    self.by-version."karma"."0.10.5";
-  by-version."karma"."0.10.5" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-0.10.5";
+    self.by-version."karma"."0.10.6";
+  by-version."karma"."0.10.6" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-0.10.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma/-/karma-0.10.5.tgz";
-        sha1 = "0ff8a68ef8bbcd26a64737e9c0e580468879a23e";
+        url = "http://registry.npmjs.org/karma/-/karma-0.10.6.tgz";
+        sha1 = "6a1bcaa3317ae240564606ba6b9b22077fb50135";
       })
     ];
     buildInputs =
@@ -6096,20 +6096,20 @@
     peerDependencies = [
       self.by-version."karma-jasmine"."0.1.3"
       self.by-version."karma-requirejs"."0.2.0"
-      self.by-version."karma-coffee-preprocessor"."0.1.0"
+      self.by-version."karma-coffee-preprocessor"."0.1.1"
       self.by-version."karma-html2js-preprocessor"."0.1.0"
-      self.by-version."karma-chrome-launcher"."0.1.0"
-      self.by-version."karma-firefox-launcher"."0.1.0"
-      self.by-version."karma-phantomjs-launcher"."0.1.0"
+      self.by-version."karma-chrome-launcher"."0.1.1"
+      self.by-version."karma-firefox-launcher"."0.1.1"
+      self.by-version."karma-phantomjs-launcher"."0.1.1"
       self.by-version."karma-script-launcher"."0.1.0"
     ];
     passthru.names = [ "karma" ];
   };
   by-spec."karma-chrome-launcher"."*" =
-    self.by-version."karma-chrome-launcher"."0.1.0";
-  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.0";
+    self.by-version."karma-chrome-launcher"."0.1.1";
+  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.1";
   by-spec."karma-coffee-preprocessor"."*" =
-    self.by-version."karma-coffee-preprocessor"."0.1.0";
+    self.by-version."karma-coffee-preprocessor"."0.1.1";
   by-spec."karma-coverage"."*" =
     self.by-version."karma-coverage"."0.1.2";
   by-version."karma-coverage"."0.1.2" = lib.makeOverridable self.buildNodePackage {
@@ -6133,18 +6133,18 @@
   };
   "karma-coverage" = self.by-version."karma-coverage"."0.1.2";
   by-spec."karma-firefox-launcher"."*" =
-    self.by-version."karma-firefox-launcher"."0.1.0";
+    self.by-version."karma-firefox-launcher"."0.1.1";
   by-spec."karma-html2js-preprocessor"."*" =
     self.by-version."karma-html2js-preprocessor"."0.1.0";
   by-spec."karma-jasmine"."*" =
     self.by-version."karma-jasmine"."0.1.3";
   by-version."karma"."0.11.5" = self.by-version."karma-jasmine"."0.1.3";
   by-version."karma-requirejs"."0.2.0" = self.by-version."karma-jasmine"."0.1.3";
-  by-version."karma-coffee-preprocessor"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
+  by-version."karma-coffee-preprocessor"."0.1.1" = self.by-version."karma-jasmine"."0.1.3";
   by-version."karma-html2js-preprocessor"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
-  by-version."karma-chrome-launcher"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
-  by-version."karma-firefox-launcher"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
-  by-version."karma-phantomjs-launcher"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
+  by-version."karma-chrome-launcher"."0.1.1" = self.by-version."karma-jasmine"."0.1.3";
+  by-version."karma-firefox-launcher"."0.1.1" = self.by-version."karma-jasmine"."0.1.3";
+  by-version."karma-phantomjs-launcher"."0.1.1" = self.by-version."karma-jasmine"."0.1.3";
   by-version."karma-script-launcher"."0.1.0" = self.by-version."karma-jasmine"."0.1.3";
   by-version."karma-jasmine"."0.1.3" = lib.makeOverridable self.buildNodePackage {
     name = "karma-jasmine-0.1.3";
@@ -6162,24 +6162,24 @@
         sha1 = "62facf19e1f4be956b90b67c4bebba7bb84fb054";
       })
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-coffee-preprocessor/-/karma-coffee-preprocessor-0.1.0.tgz";
-        sha1 = "713affc9990707e43eb6f64afdaf312072b73aab";
+        url = "http://registry.npmjs.org/karma-coffee-preprocessor/-/karma-coffee-preprocessor-0.1.1.tgz";
+        sha1 = "32285f28a5f6c97ceeeae3b8a48e0d087c1a952a";
       })
       (fetchurl {
         url = "http://registry.npmjs.org/karma-html2js-preprocessor/-/karma-html2js-preprocessor-0.1.0.tgz";
         sha1 = "2f7cf881f54a5d0b72154cc6ee1241c44292c7fe";
       })
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.0.tgz";
-        sha1 = "d29f42911358a640ba4a13f1d2110819ae2e5cea";
+        url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.1.tgz";
+        sha1 = "9fc3410063cefc88e06043d233f839651a16a98c";
       })
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-0.1.0.tgz";
-        sha1 = "e5517590eea029d10d500b5f82ae423aafe069d4";
+        url = "http://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-0.1.1.tgz";
+        sha1 = "fa6a9a87279b85c7fe48cda3717cafefb7b9fb4d";
       })
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-0.1.0.tgz";
-        sha1 = "9ef8243751524e32e67b97e3f8a321ee68a3fa2f";
+        url = "http://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-0.1.1.tgz";
+        sha1 = "e3c9511177f45f9dfe65b404be0ddd7190887c95";
       })
       (fetchurl {
         url = "http://registry.npmjs.org/karma-script-launcher/-/karma-script-launcher-0.1.0.tgz";
@@ -6222,13 +6222,13 @@
     passthru.names = [ "karma-jasmine" "karma" "karma-requirejs" "karma-coffee-preprocessor" "karma-html2js-preprocessor" "karma-chrome-launcher" "karma-firefox-launcher" "karma-phantomjs-launcher" "karma-script-launcher" ];
   };
   by-spec."karma-junit-reporter"."*" =
-    self.by-version."karma-junit-reporter"."0.1.0";
-  by-version."karma-junit-reporter"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-junit-reporter-0.1.0";
+    self.by-version."karma-junit-reporter"."0.2.1";
+  by-version."karma-junit-reporter"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-junit-reporter-0.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-0.1.0.tgz";
-        sha1 = "7af72b64d7e9f192d1a40f4ef063ffbcf9e7bba5";
+        url = "http://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-0.2.1.tgz";
+        sha1 = "ae125962683a0d1286dc7768fbf66a8f02e448fc";
       })
     ];
     buildInputs =
@@ -6241,15 +6241,15 @@
     ];
     passthru.names = [ "karma-junit-reporter" ];
   };
-  "karma-junit-reporter" = self.by-version."karma-junit-reporter"."0.1.0";
+  "karma-junit-reporter" = self.by-version."karma-junit-reporter"."0.2.1";
   by-spec."karma-mocha"."*" =
-    self.by-version."karma-mocha"."0.1.0";
-  by-version."karma-mocha"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-mocha-0.1.0";
+    self.by-version."karma-mocha"."0.1.1";
+  by-version."karma-mocha"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-mocha-0.1.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.0.tgz";
-        sha1 = "451cfef48c51850e45db9d119927502e6a2feb40";
+        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.1.tgz";
+        sha1 = "5edddb3e2d2c6fd47e9ad26f0af1595fe852c756";
       })
     ];
     buildInputs =
@@ -6262,20 +6262,20 @@
     ];
     passthru.names = [ "karma-mocha" ];
   };
-  "karma-mocha" = self.by-version."karma-mocha"."0.1.0";
+  "karma-mocha" = self.by-version."karma-mocha"."0.1.1";
   by-spec."karma-phantomjs-launcher"."*" =
-    self.by-version."karma-phantomjs-launcher"."0.1.0";
+    self.by-version."karma-phantomjs-launcher"."0.1.1";
   by-spec."karma-requirejs"."*" =
     self.by-version."karma-requirejs"."0.2.0";
   "karma-requirejs" = self.by-version."karma-requirejs"."0.2.0";
   by-spec."karma-sauce-launcher"."*" =
-    self.by-version."karma-sauce-launcher"."0.1.1";
-  by-version."karma-sauce-launcher"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-sauce-launcher-0.1.1";
+    self.by-version."karma-sauce-launcher"."0.1.2";
+  by-version."karma-sauce-launcher"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-sauce-launcher-0.1.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.1.1.tgz";
-        sha1 = "34b82b8cb285c239b0fede1a8363488cc02f429b";
+        url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.1.2.tgz";
+        sha1 = "ee5949489ef42f4da60d3c1101d9b727465b8612";
       })
     ];
     buildInputs =
@@ -6290,7 +6290,7 @@
     ];
     passthru.names = [ "karma-sauce-launcher" ];
   };
-  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."0.1.1";
+  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."0.1.2";
   by-spec."karma-script-launcher"."*" =
     self.by-version."karma-script-launcher"."0.1.0";
   by-spec."keen.io"."0.0.3" =
@@ -8422,7 +8422,7 @@
       self.by-version."ansi"."0.2.1"
       self.by-version."npm-registry-client"."0.2.30"
       self.by-version."read-package-json"."1.1.4"
-      self.by-version."read-installed"."0.2.4"
+      self.by-version."read-installed"."0.2.5"
       self.by-version."glob"."3.2.7"
       self.by-version."init-package-json"."0.0.13"
       self.by-version."osenv"."0.0.3"
@@ -9254,6 +9254,25 @@
     ];
     passthru.names = [ "policyfile" ];
   };
+  by-spec."posix"."*" =
+    self.by-version."posix"."1.0.3";
+  by-version."posix"."1.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "posix-1.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/posix/-/posix-1.0.3.tgz";
+        sha1 = "f0efae90d59c56c4509c8f0ed222b421caa8188a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."posix" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "posix" ];
+  };
+  "posix" = self.by-version."posix"."1.0.3";
   by-spec."posix-getopt"."1.0.0" =
     self.by-version."posix-getopt"."1.0.0";
   by-version."posix-getopt"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -9778,13 +9797,13 @@
     passthru.names = [ "read-installed" ];
   };
   by-spec."read-installed"."~0.2.2" =
-    self.by-version."read-installed"."0.2.4";
-  by-version."read-installed"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "read-installed-0.2.4";
+    self.by-version."read-installed"."0.2.5";
+  by-version."read-installed"."0.2.5" = lib.makeOverridable self.buildNodePackage {
+    name = "read-installed-0.2.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-installed/-/read-installed-0.2.4.tgz";
-        sha1 = "9a45ca0a8ae1ecdb05972f362b63bc59450b572d";
+        url = "http://registry.npmjs.org/read-installed/-/read-installed-0.2.5.tgz";
+        sha1 = "134df8b326d8b54b11e18f7dd8c81bf5e976ef86";
       })
     ];
     buildInputs =
@@ -11517,26 +11536,27 @@
     ];
     passthru.names = [ "sudo-block" ];
   };
-  by-spec."superagent"."0.15.1" =
-    self.by-version."superagent"."0.15.1";
-  by-version."superagent"."0.15.1" = lib.makeOverridable self.buildNodePackage {
-    name = "superagent-0.15.1";
+  by-spec."superagent"."0.15.7" =
+    self.by-version."superagent"."0.15.7";
+  by-version."superagent"."0.15.7" = lib.makeOverridable self.buildNodePackage {
+    name = "superagent-0.15.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/superagent/-/superagent-0.15.1.tgz";
-        sha1 = "f0df9954c2b90f29e4ae54ad308e4a2b432cc56a";
+        url = "http://registry.npmjs.org/superagent/-/superagent-0.15.7.tgz";
+        sha1 = "095c70b8afffbc072f1458f39684d4854d6333a3";
       })
     ];
     buildInputs =
       (self.nativeDeps."superagent" or []);
     deps = [
       self.by-version."qs"."0.6.5"
-      self.by-version."formidable"."1.0.9"
+      self.by-version."formidable"."1.0.14"
       self.by-version."mime"."1.2.5"
       self.by-version."emitter-component"."1.0.0"
       self.by-version."methods"."0.0.1"
       self.by-version."cookiejar"."1.3.0"
       self.by-version."debug"."0.7.4"
+      self.by-version."reduce-component"."1.0.1"
     ];
     peerDependencies = [
     ];
@@ -11568,51 +11588,27 @@
   };
   by-spec."superagent"."~0.15.7" =
     self.by-version."superagent"."0.15.7";
-  by-version."superagent"."0.15.7" = lib.makeOverridable self.buildNodePackage {
-    name = "superagent-0.15.7";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/superagent/-/superagent-0.15.7.tgz";
-        sha1 = "095c70b8afffbc072f1458f39684d4854d6333a3";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."superagent" or []);
-    deps = [
-      self.by-version."qs"."0.6.5"
-      self.by-version."formidable"."1.0.14"
-      self.by-version."mime"."1.2.5"
-      self.by-version."emitter-component"."1.0.0"
-      self.by-version."methods"."0.0.1"
-      self.by-version."cookiejar"."1.3.0"
-      self.by-version."debug"."0.7.4"
-      self.by-version."reduce-component"."1.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "superagent" ];
-  };
   by-spec."supertest"."*" =
-    self.by-version."supertest"."0.8.1";
-  by-version."supertest"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "supertest-0.8.1";
+    self.by-version."supertest"."0.8.2";
+  by-version."supertest"."0.8.2" = lib.makeOverridable self.buildNodePackage {
+    name = "supertest-0.8.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/supertest/-/supertest-0.8.1.tgz";
-        sha1 = "be792b92481d8e33a4ebe8907495c5192387d101";
+        url = "http://registry.npmjs.org/supertest/-/supertest-0.8.2.tgz";
+        sha1 = "2da3519f7c9dcfa8759e2de9c794f1d4acc0333b";
       })
     ];
     buildInputs =
       (self.nativeDeps."supertest" or []);
     deps = [
-      self.by-version."superagent"."0.15.1"
+      self.by-version."superagent"."0.15.7"
       self.by-version."methods"."0.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "supertest" ];
   };
-  "supertest" = self.by-version."supertest"."0.8.1";
+  "supertest" = self.by-version."supertest"."0.8.2";
   by-spec."swig"."0.14.x" =
     self.by-version."swig"."0.14.0";
   by-version."swig"."0.14.0" = lib.makeOverridable self.buildNodePackage {
@@ -12063,13 +12059,13 @@
     passthru.names = [ "uglify-js" ];
   };
   by-spec."uglify-js"."~2.4.0" =
-    self.by-version."uglify-js"."2.4.3";
-  by-version."uglify-js"."2.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "uglify-js-2.4.3";
+    self.by-version."uglify-js"."2.4.4";
+  by-version."uglify-js"."2.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "uglify-js-2.4.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.3.tgz";
-        sha1 = "6883cd4b837a4d004191c9ea05394cfa596c3748";
+        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.4.tgz";
+        sha1 = "f629e1e46bbe0bf4cf7232c7919e66b25a8fc529";
       })
     ];
     buildInputs =
@@ -12197,6 +12193,8 @@
     self.by-version."underscore"."1.5.2";
   by-spec."underscore".">=1.4.3" =
     self.by-version."underscore"."1.5.2";
+  by-spec."underscore".">=1.5.x" =
+    self.by-version."underscore"."1.5.2";
   by-spec."underscore"."~1.4" =
     self.by-version."underscore"."1.4.4";
   by-spec."underscore"."~1.4.3" =
@@ -13050,7 +13048,7 @@
       (self.nativeDeps."xml2js" or []);
     deps = [
       self.by-version."sax"."0.5.5"
-      self.by-version."xmlbuilder"."0.4.3"
+      self.by-version."xmlbuilder"."1.0.2"
     ];
     peerDependencies = [
     ];
@@ -13059,18 +13057,19 @@
   by-spec."xml2js".">=0.1.7" =
     self.by-version."xml2js"."0.4.0";
   by-spec."xmlbuilder"."*" =
-    self.by-version."xmlbuilder"."0.4.3";
-  by-version."xmlbuilder"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "xmlbuilder-0.4.3";
+    self.by-version."xmlbuilder"."1.0.2";
+  by-version."xmlbuilder"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "xmlbuilder-1.0.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz";
-        sha1 = "c4614ba74e0ad196e609c9272cd9e1ddb28a8a58";
+        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-1.0.2.tgz";
+        sha1 = "f3939d049e91c8c8af6165411944380798ed8e82";
       })
     ];
     buildInputs =
       (self.nativeDeps."xmlbuilder" or []);
     deps = [
+      self.by-version."underscore"."1.5.2"
     ];
     peerDependencies = [
     ];
@@ -13095,7 +13094,7 @@
     passthru.names = [ "xmlbuilder" ];
   };
   by-spec."xmlbuilder".">=0.4.2" =
-    self.by-version."xmlbuilder"."0.4.3";
+    self.by-version."xmlbuilder"."1.0.2";
   by-spec."xmlhttprequest"."1.4.2" =
     self.by-version."xmlhttprequest"."1.4.2";
   by-version."xmlhttprequest"."1.4.2" = lib.makeOverridable self.buildNodePackage {
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index dbbc28469524..6e525d7bd4f5 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -109,4 +109,5 @@
 , "owl-deepcopy"
 , "meat"
 , "hipache"
+, "posix"
 ]