summary refs log tree commit diff
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2017-04-10 01:41:49 +0300
committerTuomas Tynkkynen <tuomas@tuxera.com>2017-04-10 01:41:49 +0300
commita05959e191c8bef969fd84a8dce0343ef6dcd7e0 (patch)
treec5072c7729c7e259580862dee26e0b8b7dcb4bb5
parentc595d5ed3dd05e278c12e740d32bcb3650b6f069 (diff)
parentb64163a90d395c9b0edc2c38c12875802968c191 (diff)
downloadnixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar.gz
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar.bz2
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar.lz
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar.xz
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.tar.zst
nixlib-a05959e191c8bef969fd84a8dce0343ef6dcd7e0.zip
Merge remote-tracking branch 'upstream/master' into staging
-rw-r--r--lib/maintainers.nix4
-rw-r--r--nixos/modules/config/fonts/fontconfig-ultimate.nix10
-rw-r--r--nixos/modules/config/fonts/fonts.nix1
-rw-r--r--nixos/modules/config/shells-environment.nix3
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/ssmtp.nix45
-rw-r--r--nixos/modules/services/audio/slimserver.nix69
-rw-r--r--nixos/modules/services/misc/autorandr.nix43
-rw-r--r--nixos/modules/services/networking/avahi-daemon.nix26
-rw-r--r--nixos/modules/services/networking/networkmanager.nix6
-rw-r--r--nixos/modules/services/x11/compton.nix4
-rw-r--r--nixos/modules/system/boot/readonly-mountpoint.c20
-rw-r--r--nixos/modules/system/boot/stage-2-init.sh68
-rw-r--r--nixos/modules/system/boot/stage-2.nix19
-rw-r--r--pkgs/applications/audio/yasr/default.nix10
-rw-r--r--pkgs/applications/editors/textadept/default.nix21
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix3
-rw-r--r--pkgs/applications/misc/buku/default.nix11
-rw-r--r--pkgs/applications/misc/robomongo/default.nix86
-rw-r--r--pkgs/applications/misc/robomongo/robomongo.patch61
-rw-r--r--pkgs/applications/misc/verbiste/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix19
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix5
-rw-r--r--pkgs/applications/networking/dropbox/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/astroid/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/astroid/propagate-environment.patch13
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix1
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/default.nix2
-rw-r--r--pkgs/applications/window-managers/spectrwm/default.nix5
-rw-r--r--pkgs/data/fonts/fontconfig-penultimate/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.22/core/gnome-settings-daemon/default.nix12
-rwxr-xr-xpkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix98
-rwxr-xr-xpkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch49
-rwxr-xr-xpkgs/development/compilers/arm-frc-linux-gnueabi-gcc/no-nested-deprecated-warnings.patch22
-rw-r--r--pkgs/development/compilers/dtc/default.nix4
-rw-r--r--pkgs/development/compilers/ghcjs/base.nix3
-rw-r--r--pkgs/development/compilers/ghcjs/head.nix2
-rw-r--r--pkgs/development/compilers/ghcjs/head_stage2.nix1
-rw-r--r--pkgs/development/compilers/ghcjs/stage2.nix1
-rw-r--r--pkgs/development/compilers/glslang/default.nix11
-rw-r--r--pkgs/development/compilers/glslang/install-headers.patch35
-rw-r--r--pkgs/development/compilers/ponyc/default.nix4
-rw-r--r--pkgs/development/compilers/scala/2.11.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix40
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix12
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix13
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix10
-rw-r--r--pkgs/development/haskell-modules/lib.nix6
-rw-r--r--pkgs/development/interpreters/hy/default.nix7
-rw-r--r--pkgs/development/interpreters/octave/default.nix8
-rw-r--r--pkgs/development/interpreters/octave/hg.nix75
-rwxr-xr-xpkgs/development/libraries/arm-frc-linux-gnueabi-eglibc/default.nix65
-rwxr-xr-xpkgs/development/libraries/arm-frc-linux-gnueabi-linux-api-headers/default.nix43
-rw-r--r--pkgs/development/libraries/ffmpeg-full/default.nix8
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix3
-rw-r--r--pkgs/development/libraries/hidapi/default.nix8
-rw-r--r--pkgs/development/libraries/libx86emu/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix2
-rw-r--r--pkgs/development/libraries/neardal/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.8/default.nix8
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtbase/default.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtdeclarative/default.nix16
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtmacextras.nix10
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtmultimedia.nix11
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtsensors.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtserialport/default.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qttools/default.nix21
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtwebengine/default.nix29
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtwebkit/0004-icucore-darwin.patch11
-rw-r--r--pkgs/development/libraries/qt-5/5.8/qtwebkit/default.nix14
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix8
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix7
-rw-r--r--pkgs/development/libraries/vulkan-loader/fallback-paths.patch52
-rw-r--r--pkgs/development/libraries/vulkan-loader/use-xdg-paths.patch322
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix4
-rw-r--r--pkgs/development/libraries/xbase/default.nix2
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix5
-rw-r--r--pkgs/development/pure-modules/octave/default.nix4
-rw-r--r--pkgs/development/python-modules/django/1_10.nix4
-rw-r--r--pkgs/development/tools/analysis/lcov/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/chefdk/Gemfile.lock386
-rw-r--r--pkgs/development/tools/chefdk/default.nix2
-rw-r--r--pkgs/development/tools/chefdk/gemset.nix1254
-rw-r--r--pkgs/development/tools/coursier/default.nix12
-rwxr-xr-xpkgs/development/tools/misc/arm-frc-linux-gnueabi-binutils/default.nix50
-rw-r--r--pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--pkgs/development/tools/rq/default.nix49
-rw-r--r--pkgs/development/tools/skopeo/default.nix9
-rw-r--r--pkgs/development/tools/skopeo/path.patch25
-rw-r--r--pkgs/development/tools/spirv-tools/default.nix13
-rw-r--r--pkgs/misc/screensavers/xautolock/default.nix2
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix8
-rw-r--r--pkgs/os-specific/linux/firejail/default.upstream2
-rw-r--r--pkgs/os-specific/linux/i2c-tools/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl3
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix3
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/tcp-wrappers/default.nix2
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/slimserver/default.nix97
-rw-r--r--pkgs/servers/sonarr/default.nix4
-rw-r--r--pkgs/shells/rssh/default.nix2
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix2
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix8
-rw-r--r--pkgs/tools/backup/bup/default.nix6
-rw-r--r--pkgs/tools/compression/advancecomp/default.nix2
-rw-r--r--pkgs/tools/filesystems/bonnie/default.nix8
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix2
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix4
-rw-r--r--pkgs/tools/graphics/epstool/default.nix25
-rw-r--r--pkgs/tools/graphics/epstool/gcc43.patch20
-rw-r--r--pkgs/tools/misc/autorandr/default.nix42
-rw-r--r--pkgs/tools/misc/keychain/default.nix6
-rw-r--r--pkgs/tools/misc/less/default.nix4
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix18
-rw-r--r--pkgs/tools/misc/picocom/default.nix4
-rw-r--r--pkgs/tools/misc/scanmem/default.nix2
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--pkgs/tools/networking/iperf/3.nix4
-rw-r--r--pkgs/tools/networking/ssmtp/default.nix9
-rw-r--r--pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch69
-rw-r--r--pkgs/tools/package-management/nix/default.nix12
-rw-r--r--pkgs/tools/system/fio/default.nix4
-rw-r--r--pkgs/tools/system/hwinfo/default.nix2
-rw-r--r--pkgs/tools/system/safecopy/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix58
-rw-r--r--pkgs/top-level/perl-packages.nix175
-rw-r--r--pkgs/top-level/platforms.nix26
-rw-r--r--pkgs/top-level/pure-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix8
-rw-r--r--pkgs/top-level/rust-packages.nix6
139 files changed, 2405 insertions, 1807 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index c3ab790e7c7d..231574b7bb51 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -60,6 +60,7 @@
   bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
   badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
   balajisivaraman = "Balaji Sivaraman<sivaraman.balaji@gmail.com>";
+  basvandijk = "Bas van Dijk <v.dijk.bas@gmail.com>";
   Baughn = "Svein Ove Aas <sveina@gmail.com>";
   bcarrell = "Brandon Carrell <brandoncarrell@gmail.com>";
   bcdarwin = "Ben Darwin <bcdarwin@gmail.com>";
@@ -105,6 +106,7 @@
   codsl = "codsl <codsl@riseup.net>";
   codyopel = "Cody Opel <codyopel@gmail.com>";
   colemickens = "Cole Mickens <cole.mickens@gmail.com>";
+  colescott = "Cole Scott <colescottsf@gmail.com>";
   copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
   corngood = "David McFarland <corngood@gmail.com>";
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
@@ -160,6 +162,7 @@
   eleanor = "Dejan Lukan <dejan@proteansec.com>";
   elitak = "Eric Litak <elitak@gmail.com>";
   ellis = "Ellis Whitehead <nixos@ellisw.net>";
+  eperuffo = "Emanuele Peruffo <info@emanueleperuffo.com>";
   epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
   ericbmerritt = "Eric Merritt <eric@afiniate.com>";
   ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
@@ -217,6 +220,7 @@
   ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
   igsha = "Igor Sharonov <igor.sharonov@gmail.com>";
   ikervagyok = "Balázs Lengyel <ikervagyok@gmail.com>";
+  infinisil = "Silvan Mosberger <infinisil@icloud.com";
   ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>";
   j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
   jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
diff --git a/nixos/modules/config/fonts/fontconfig-ultimate.nix b/nixos/modules/config/fonts/fontconfig-ultimate.nix
index e412146a0394..1bf9fdb19845 100644
--- a/nixos/modules/config/fonts/fontconfig-ultimate.nix
+++ b/nixos/modules/config/fonts/fontconfig-ultimate.nix
@@ -63,6 +63,15 @@ in
               <literal>none</literal> disables the substitutions.
             '';
           };
+
+          preset = mkOption {
+            type = types.enum ["ultimate1" "ultimate2" "ultimate3" "ultimate4" "ultimate5" "osx" "windowsxp"];
+            default = "ultimate3";
+            description = ''
+              FreeType rendering settings preset. Any of the presets may be
+              customized by setting environment variables.
+            '';
+          };
         };
       };
     };
@@ -72,6 +81,7 @@ in
   config = mkIf (config.fonts.fontconfig.enable && cfg.enable) {
 
     fonts.fontconfig.confPackages = [ confPkg ];
+    environment.variables."INFINALITY_FT" = cfg.preset;
 
   };
 
diff --git a/nixos/modules/config/fonts/fonts.nix b/nixos/modules/config/fonts/fonts.nix
index af3d93fc1bc4..0dd01df9da74 100644
--- a/nixos/modules/config/fonts/fonts.nix
+++ b/nixos/modules/config/fonts/fonts.nix
@@ -37,6 +37,7 @@ with lib;
         pkgs.xorg.fontbhlucidatypewriter75dpi
         pkgs.dejavu_fonts
         pkgs.freefont_ttf
+        pkgs.gyre-fonts # TrueType substitutes for standard PostScript fonts
         pkgs.liberation_ttf
         pkgs.xorg.fontbh100dpi
         pkgs.xorg.fontmiscmisc
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index 8a7b3ea0bfd2..152493151fd3 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -168,9 +168,6 @@ in
 
          ${cfg.extraInit}
 
-         # The setuid/setcap wrappers override other bin directories.
-         export PATH="${config.security.wrapperDir}:$PATH"
-
          # ~/bin if it exists overrides other bin directories.
          export PATH="$HOME/bin:$PATH"
        '';
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 23a1878ba302..f7608a57d714 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -130,6 +130,7 @@
   ./services/audio/liquidsoap.nix
   ./services/audio/mpd.nix
   ./services/audio/mopidy.nix
+  ./services/audio/slimserver.nix
   ./services/audio/squeezelite.nix
   ./services/audio/ympd.nix
   ./services/backup/almir.nix
@@ -247,6 +248,7 @@
   ./services/mail/rmilter.nix
   ./services/misc/apache-kafka.nix
   ./services/misc/autofs.nix
+  ./services/misc/autorandr.nix
   ./services/misc/bepasty.nix
   ./services/misc/canto-daemon.nix
   ./services/misc/calibre-server.nix
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix
index 7d0cb3320995..44756171b74c 100644
--- a/nixos/modules/programs/ssmtp.nix
+++ b/nixos/modules/programs/ssmtp.nix
@@ -39,7 +39,8 @@ in
         example = "mail.example.org";
         description = ''
           The host name of the default mail server to use to deliver
-          e-mail.
+          e-mail. Can also contain a port number (ex: mail.example.org:587),
+          defaults to port 25 if no port is given.
         '';
       };
 
@@ -95,9 +96,28 @@ in
         example = "correctHorseBatteryStaple";
         description = ''
           Password used for SMTP auth. (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE)
+
+          It's recommended to use <option>authPassFile</option>
+          which takes precedence over <option>authPass</option>.
+        '';
+      };
+
+      authPassFile = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "/run/keys/ssmtp-authpass";
+        description = ''
+          Path to a file that contains the password used for SMTP auth. The file
+          should not contain a trailing newline, if the password does not contain one.
+          This file should be readable by the users that need to execute ssmtp.
+
+          <option>authPassFile</option> takes precedence over <option>authPass</option>.
+
+          Warning: when <option>authPass</option> is non-empty <option>authPassFile</option>
+          defaults to a file in the WORLD-READABLE Nix store containing that password.
         '';
       };
-      
+
       setSendmail = mkOption {
         type = types.bool;
         default = true;
@@ -111,21 +131,28 @@ in
 
   config = mkIf cfg.directDelivery {
 
+    networking.defaultMailServer.authPassFile = mkIf (cfg.authPass != "")
+      (mkDefault (toString (pkgs.writeTextFile {
+        name = "ssmtp-authpass";
+        text = cfg.authPass;
+      })));
+
     environment.etc."ssmtp/ssmtp.conf".text =
+      let yesNo = yes : if yes then "YES" else "NO"; in
       ''
         MailHub=${cfg.hostName}
         FromLineOverride=YES
-        ${if cfg.root != "" then "root=${cfg.root}" else ""}
-        ${if cfg.domain != "" then "rewriteDomain=${cfg.domain}" else ""}
-        UseTLS=${if cfg.useTLS then "YES" else "NO"}
-        UseSTARTTLS=${if cfg.useSTARTTLS then "YES" else "NO"}
+        ${optionalString (cfg.root   != "") "root=${cfg.root}"}
+        ${optionalString (cfg.domain != "") "rewriteDomain=${cfg.domain}"}
+        UseTLS=${yesNo cfg.useTLS}
+        UseSTARTTLS=${yesNo cfg.useSTARTTLS}
         #Debug=YES
-        ${if cfg.authUser != "" then "AuthUser=${cfg.authUser}" else ""}
-        ${if cfg.authPass != "" then "AuthPass=${cfg.authPass}" else ""}
+        ${optionalString (cfg.authUser != "")       "AuthUser=${cfg.authUser}"}
+        ${optionalString (!isNull cfg.authPassFile) "AuthPassFile=${cfg.authPassFile}"}
       '';
 
     environment.systemPackages = [pkgs.ssmtp];
-    
+
     services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
       program = "sendmail";
       source = "${pkgs.ssmtp}/bin/sendmail";
diff --git a/nixos/modules/services/audio/slimserver.nix b/nixos/modules/services/audio/slimserver.nix
new file mode 100644
index 000000000000..7d661dd60408
--- /dev/null
+++ b/nixos/modules/services/audio/slimserver.nix
@@ -0,0 +1,69 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.slimserver;
+
+in {
+  options = {
+
+    services.slimserver = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable slimserver.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.slimserver;
+        defaultText = "pkgs.slimserver";
+        description = "Slimserver package to use.";
+      };
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/slimserver";
+        description = ''
+          The directory where slimserver stores its state, tag cache,
+          playlists etc.
+        '';
+      };
+    };
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    systemd.services.slimserver = {
+      after = [ "network.target" ];
+      description = "Slim Server for Logitech Squeezebox Players";
+      wantedBy = [ "multi-user.target" ];
+
+      preStart = "mkdir -p ${cfg.dataDir} && chown -R slimserver:slimserver ${cfg.dataDir}";
+      serviceConfig = {
+        User = "slimserver";
+        PermissionsStartOnly = true;
+        ExecStart = "${cfg.package}/slimserver.pl --logdir ${cfg.dataDir}/logs --prefsdir ${cfg.dataDir}/prefs --cachedir ${cfg.dataDir}/cache";
+      };
+    };
+
+    users = {
+      users.slimserver = {
+        description = "Slimserver daemon user";
+        home = cfg.dataDir;
+        group = "slimserver";
+      };
+      groups.slimserver = {};
+    };
+  };
+
+}
+
diff --git a/nixos/modules/services/misc/autorandr.nix b/nixos/modules/services/misc/autorandr.nix
new file mode 100644
index 000000000000..6746f3fec698
--- /dev/null
+++ b/nixos/modules/services/misc/autorandr.nix
@@ -0,0 +1,43 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.autorandr;
+
+in {
+
+  options = {
+
+    services.autorandr = {
+      enable = mkEnableOption "handling of hotplug and sleep events by autorandr";
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    services.udev.packages = [ pkgs.autorandr ];
+
+    environment.systemPackages = [ pkgs.autorandr ];
+
+    # systemd.unitPackages = [ pkgs.autorandr ];
+    systemd.services.autorandr = {
+      unitConfig = {
+        Description = "autorandr execution hook";
+        After = [ "sleep.target" ];
+        StartLimitInterval = "5";
+        StartLimitBurst = "1";
+      };
+      serviceConfig = {
+        ExecStart = "${pkgs.autorandr}/bin/autorandr --batch --change --default default";
+        Type = "oneshot";
+        RemainAfterExit = false;
+      };
+      wantedBy = [ "sleep.target" ];
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/networking/avahi-daemon.nix b/nixos/modules/services/networking/avahi-daemon.nix
index e7ef68c90b2a..3985f8561d35 100644
--- a/nixos/modules/services/networking/avahi-daemon.nix
+++ b/nixos/modules/services/networking/avahi-daemon.nix
@@ -7,32 +7,32 @@ let
 
   cfg = config.services.avahi;
 
+  yesNo = yes : if yes then "yes" else "no";
+
   avahiDaemonConf = with cfg; pkgs.writeText "avahi-daemon.conf" ''
     [server]
     ${# Users can set `networking.hostName' to the empty string, when getting
       # a host name from DHCP.  In that case, let Avahi take whatever the
       # current host name is; setting `host-name' to the empty string in
       # `avahi-daemon.conf' would be invalid.
-      if hostName != ""
-      then "host-name=${hostName}"
-      else ""}
+      optionalString (hostName != "") "host-name=${hostName}"}
     browse-domains=${concatStringsSep ", " browseDomains}
-    use-ipv4=${if ipv4 then "yes" else "no"}
-    use-ipv6=${if ipv6 then "yes" else "no"}
+    use-ipv4=${yesNo ipv4}
+    use-ipv6=${yesNo ipv6}
     ${optionalString (interfaces!=null) "allow-interfaces=${concatStringsSep "," interfaces}"}
     ${optionalString (domainName!=null) "domain-name=${domainName}"}
-    allow-point-to-point=${if allowPointToPoint then "yes" else "no"}
+    allow-point-to-point=${yesNo allowPointToPoint}
 
     [wide-area]
-    enable-wide-area=${if wideArea then "yes" else "no"}
+    enable-wide-area=${yesNo wideArea}
 
     [publish]
-    disable-publishing=${if publish.enable then "no" else "yes"}
-    disable-user-service-publishing=${if publish.userServices then "no" else "yes"}
-    publish-addresses=${if publish.userServices || publish.addresses then "yes" else "no"}
-    publish-hinfo=${if publish.hinfo then "yes" else "no"}
-    publish-workstation=${if publish.workstation then "yes" else "no"}
-    publish-domain=${if publish.domain then "yes" else "no"}
+    disable-publishing=${yesNo (!publish.enable)}
+    disable-user-service-publishing=${yesNo (!publish.userServices)}
+    publish-addresses=${yesNo (publish.userServices || publish.addresses)}
+    publish-hinfo=${yesNo publish.hinfo}
+    publish-workstation=${yesNo publish.workstation}
+    publish-domain=${yesNo publish.domain}
   '';
 
 in
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 7255ffc5af4b..7fb2be786980 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -162,9 +162,9 @@ in {
         type = types.listOf (types.submodule {
           options = {
             source = mkOption {
-              type = types.str;
+              type = types.path;
               description = ''
-                A script source.
+                A script.
               '';
             };
 
@@ -224,7 +224,7 @@ in {
              target = "NetworkManager/dispatcher.d/02overridedns";
            }
       ++ lib.imap (i: s: {
-        text = s.source;
+        inherit (s) source;
         target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
       }) cfg.dispatcherScripts;
 
diff --git a/nixos/modules/services/x11/compton.nix b/nixos/modules/services/x11/compton.nix
index d1f7f164e641..d75d24830f8d 100644
--- a/nixos/modules/services/x11/compton.nix
+++ b/nixos/modules/services/x11/compton.nix
@@ -83,7 +83,7 @@ in {
         "focused = 1" 
       ];
       description = ''
-        List of condition of windows that should have no shadow.
+        List of conditions of windows that should not be faded.
         See <literal>compton(1)</literal> man page for more examples.
       '';
     };
@@ -123,7 +123,7 @@ in {
         "focused = 1" 
       ];
       description = ''
-        List of condition of windows that should have no shadow.
+        List of conditions of windows that should have no shadow.
         See <literal>compton(1)</literal> man page for more examples.
       '';
     };
diff --git a/nixos/modules/system/boot/readonly-mountpoint.c b/nixos/modules/system/boot/readonly-mountpoint.c
deleted file mode 100644
index 27b666873821..000000000000
--- a/nixos/modules/system/boot/readonly-mountpoint.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <sys/statvfs.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main(int argc, char ** argv) {
-	struct statvfs stat;
-	if (argc != 2) {
-		fprintf(stderr, "Usage: %s PATH", argv[0]);
-		exit(2);
-	}
-	if (statvfs(argv[1], &stat) != 0) {
-		perror("statvfs");
-		exit(3);
-	}
-	if (stat.f_flag & ST_RDONLY)
-		exit(0);
-	else
-		exit(1);
-}
-
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index f827e530f877..46aed44bf10f 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -2,7 +2,22 @@
 
 systemConfig=@systemConfig@
 
-export HOME=/root
+export HOME=/root PATH="@path@"
+
+
+# Process the kernel command line.
+for o in $(</proc/cmdline); do
+    case $o in
+        boot.debugtrace)
+            # Show each command.
+            set -x
+            ;;
+        resume=*)
+            set -- $(IFS==; echo $o)
+            resumeDevice=$2
+            ;;
+    esac
+done
 
 
 # Print a greeting.
@@ -11,21 +26,6 @@ echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
 echo
 
 
-# Set the PATH.
-setPath() {
-    local dirs="$1"
-    export PATH=/empty
-    for i in $dirs; do
-        PATH=$PATH:$i/bin
-        if test -e $i/sbin; then
-            PATH=$PATH:$i/sbin
-        fi
-    done
-}
-
-setPath "@path@"
-
-
 # Normally, stage 1 mounts the root filesystem read/writable.
 # However, in some environments, stage 2 is executed directly, and the
 # root is read-only.  So make it writable here.
@@ -61,7 +61,9 @@ echo "booting system configuration $systemConfig" > /dev/kmsg
 chown -f 0:30000 /nix/store
 chmod -f 1775 /nix/store
 if [ -n "@readOnlyStore@" ]; then
-    if ! readonly-mountpoint /nix/store; then
+    if ! [[ "$(findmnt --noheadings --output OPTIONS /nix/store)" =~ ro(,|$) ]]; then
+        # FIXME when linux < 4.5 is EOL, switch to atomic bind mounts
+        #mount /nix/store /nix/store -o bind,remount,ro
         mount --bind /nix/store /nix/store
         mount -o remount,ro,bind /nix/store
     fi
@@ -75,31 +77,12 @@ rm -f /etc/mtab* # not that we care about stale locks
 ln -s /proc/mounts /etc/mtab
 
 
-# Process the kernel command line.
-for o in $(cat /proc/cmdline); do
-    case $o in
-        boot.debugtrace)
-            # Show each command.
-            set -x
-            ;;
-        resume=*)
-            set -- $(IFS==; echo $o)
-            resumeDevice=$2
-            ;;
-    esac
-done
-
-
 # More special file systems, initialise required directories.
 [ -e /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb # UML doesn't have USB by default
 mkdir -m 01777 -p /tmp
-mkdir -m 0755 -p /var /var/log /var/lib /var/db
-mkdir -m 0755 -p /nix/var
-mkdir -m 0700 -p /root
-chmod 0700 /root
-mkdir -m 0755 -p /bin # for the /bin/sh symlink
-mkdir -m 0755 -p /home
-mkdir -m 0755 -p /etc/nixos
+mkdir -m 0755 -p /var/{log,lib,db} /nix/var /etc/nixos/ \
+    /run/lock /home /bin # for the /bin/sh symlink
+install -m 0700 -d /root
 
 
 # Miscellaneous boot time cleanup.
@@ -111,9 +94,6 @@ rm -f /etc/{group,passwd,shadow}.lock
 rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
 
 
-mkdir -m 0755 -p /run/lock
-
-
 # For backwards compatibility, symlink /var/run to /run, and /var/lock
 # to /run/lock.
 ln -s /run /var/run
@@ -127,8 +107,8 @@ fi
 
 
 # Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
-if [ -n "@useHostResolvConf@" -a -e /etc/resolv.conf ]; then
-    cat /etc/resolv.conf | resolvconf -m 1000 -a host
+if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
+    resolvconf -m 1000 -a host </etc/resolv.conf
 fi
 
 # Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
diff --git a/nixos/modules/system/boot/stage-2.nix b/nixos/modules/system/boot/stage-2.nix
index 7e4ec2a4a670..8db6d2d2f734 100644
--- a/nixos/modules/system/boot/stage-2.nix
+++ b/nixos/modules/system/boot/stage-2.nix
@@ -7,15 +7,6 @@ let
   kernel = config.boot.kernelPackages.kernel;
   activateConfiguration = config.system.activationScripts.script;
 
-  readonlyMountpoint = pkgs.stdenv.mkDerivation {
-    name = "readonly-mountpoint";
-    unpackPhase = "true";
-    installPhase = ''
-      mkdir -p $out/bin
-      cc -O3 ${./readonly-mountpoint.c} -o $out/bin/readonly-mountpoint
-    '';
-  };
-
   bootStage2 = pkgs.substituteAll {
     src = ./stage-2-init.sh;
     shellDebug = "${pkgs.bashInteractive}/bin/bash";
@@ -23,11 +14,11 @@ let
     inherit (config.nix) readOnlyStore;
     inherit (config.networking) useHostResolvConf;
     inherit (config.system.build) earlyMountScript;
-    path =
-      [ pkgs.coreutils
-        pkgs.utillinux
-        pkgs.openresolv
-      ] ++ optional config.nix.readOnlyStore readonlyMountpoint;
+    path = lib.makeBinPath [
+      pkgs.coreutils
+      pkgs.utillinux
+      pkgs.openresolv
+    ];
     postBootCommands = pkgs.writeText "local-cmds"
       ''
         ${config.boot.postBootCommands}
diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix
index b700cc0bd83d..1008d3e8e983 100644
--- a/pkgs/applications/audio/yasr/default.nix
+++ b/pkgs/applications/audio/yasr/default.nix
@@ -2,26 +2,26 @@
 
 stdenv.mkDerivation rec {
   name = "yasr-${version}";
-  
+
   version = "0.6.9";
-  
+
   src = fetchurl {
     url = "https://sourceforge.net/projects/yasr/files/yasr/${version}/${name}.tar.gz";
     sha256 = "1prv9r9y6jb5ga5578ldiw507fa414m60xhlvjl29278p3x7rwa1";
   };
-  
+
   patches = [
     ./10_fix_openpty_forkpty_declarations
     ./20_maxpathlen
     ./30_conf
     ./40_dectalk_extended_chars
   ]; # taken from the debian yasr package
-  
+
   meta = {
     homepage = "http://yasr.sourceforge.net";
     description = "A general-purpose console screen reader";
     longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems.";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ jhhuh ];
   };
diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix
index 1e24054b9960..d1fa03c54796 100644
--- a/pkgs/applications/editors/textadept/default.nix
+++ b/pkgs/applications/editors/textadept/default.nix
@@ -43,11 +43,11 @@ let
 
 
   # These lists are taken from the Makefile.
-  scintilla_tgz  = "scintilla367.tgz";
+  scintilla_tgz  = "scintilla373.tgz";
   tre_zip        = "cdce45e8dd7a3b36954022b4a4d3570e1ac5a4f8.zip";
   scinterm_zip   = "scinterm_1.8.zip";
-  scintillua_zip = "scintillua_3.6.7-1.zip";
-  lua_tgz        = "lua-5.3.3.tar.gz";
+  scintillua_zip = "33298b6cbce3.zip";
+  lua_tgz        = "lua-5.3.4.tar.gz";
   lpeg_tgz       = "lpeg-1.0.0.tar.gz";
   lfs_zip        = "v_1_6_3.zip";
   lspawn_zip     = "lspawn_1.5.zip";
@@ -60,7 +60,8 @@ let
 
   scinterm_url   = "http://foicica.com/scinterm/download/" + scinterm_zip;
   tre_url        = "https://github.com/laurikari/tre/archive/" + tre_zip;
-  scintillua_url = "http://foicica.com/scintillua/download/" + scintillua_zip;
+  #scintillua_url = "http://foicica.com/scintillua/download/" + scintillua_zip;
+  scintillua_url = "http://foicica.com/hg/scintillua/archive/" + scintillua_zip;
   gtdialog_url   = "http://foicica.com/gtdialog/download/" + gtdialog_zip;
   lspawn_url     = "http://foicica.com/lspawn/download/" + lspawn_zip;
 
@@ -75,11 +76,11 @@ let
   termkey_url    = "http://www.leonerd.org.uk/code/libtermkey/" + termkey_tgz;
 
 
-  get_scintilla   = get_url scintilla_url   "0rh1xgd06qcnj4l0vi8g4i94vi63s76366b8hhqky3iqdjgwsxpi";
+  get_scintilla   = get_url scintilla_url   "0rkczxzj6bqxks4jcbxbyrarjhfjh95nwxxiqprfid1kaamgkfm2";
   get_tre         = get_url tre_url         "0mw8npwk5nnhc33352j4akannhpx77kqvfam8jdq1n4yf8js1gi7";
   get_scinterm    = get_url scinterm_url    "02ax6cjpxylfz7iqp1cjmsl323in066a38yklmsyzdl3w7761nxi";
-  get_scintillua  = get_url scintillua_url  "0fhyjrkfj2cvxnql65687nx1d0sfyg5lbrxmylyzhnfh4s4jnwmq";
-  get_lua         = get_url lua_url         "18mcfbbmjyp8f2l9yy7n6dzk066nq6man0kpwly4bppphilc04si";
+  get_scintillua  = get_url scintillua_url  "1kx113dpjby1p9jcsqlnlzwj01z94f9szw4b38077qav3bj4lk6g";
+  get_lua         = get_url lua_url         "0320a8dg3aci4hxla380dx1ifkw8gj4gbw5c4dz41g1kh98sm0gn";
   get_lpeg        = get_url lpeg_url        "13mz18s359wlkwm9d9iqlyyrrwjc6iqfpa99ai0icam2b3khl68h";
   get_lfs         = get_url_zip lfs_url     "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri";
   get_lspawn      = get_url lspawn_url      "09c6v9irblay2kv1n7i59pyj9g4xb43c6rfa7ba5m353lymcwwqi";
@@ -87,7 +88,7 @@ let
   get_libluajit   = get_url libluajit_url   "1nhvcdjpqrhd5qbihdm3bxpw84irfvnw2vmfqnsy253ay3dxzrgy";
   get_gtdialog    = get_url gtdialog_url    "0nvcldyhj8abr8jny9pbyfjwg8qfp9f2h508vjmrvr5c5fqdbbm0";
   get_cdk         = get_url cdk_url         "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
-  get_bombay      = get_url_zip bombay_url  "05fnh1imxdb4sb076fzqywqszp31whdbkzmpkqxc8q2r1m5vj3hg"
+  get_bombay      = get_url_zip bombay_url  "0illabngrrxidkprgz268wgjqknrds34nhm6hav95xc1nmsdr6jj"
     + "mv tip.zip bombay.zip\n";
   get_termkey     = get_url termkey_url     "12gkrv1ldwk945qbpprnyawh0jz7rmqh18fyndbxiajyxmj97538";
 
@@ -108,7 +109,7 @@ let
     + get_termkey;
 in
 stdenv.mkDerivation rec {
-  version = "9.0";
+  version = "9.3";
   name = "textadept-${version}";
 
   buildInputs = [
@@ -118,7 +119,7 @@ stdenv.mkDerivation rec {
   src = fetchhg {
     url = http://foicica.com/hg/textadept;
     rev = "textadept_${version}";
-    sha256 = "1fkxblf2db4i0kbfww94xwps7nbn88qc4fwghrm4dcszcq32jlfi";
+    sha256 = "18x79pazm86agn1khdxfnf87la6kli3xasi7dcjx7l6yyz19y14d";
   };
 
   preConfigure = ''
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 2ab918e99b6a..bee1f71a061c 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -44,6 +44,9 @@ stdenv.mkDerivation rec {
   postInstall = ''
     # Make sure PyXML modules can be found at run-time.
     rm "$out/share/icons/hicolor/icon-theme.cache"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkscape
+    install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkview
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index 85d8180983e8..1ee68b55aa73 100644
--- a/pkgs/applications/misc/buku/default.nix
+++ b/pkgs/applications/misc/buku/default.nix
@@ -2,21 +2,22 @@
 }:
 
 with pythonPackages; buildPythonApplication rec {
-  version = "2.8";
+  version = "2.9";
   name = "buku-${version}";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "buku";
     rev = "v${version}";
-    sha256 = "1gazvij0072lca0jh84i8mhnaxiwg56hcxmrmk2clxd2x213zyjm";
+    sha256 = "0ylq0j5w8jvzys4bj9m08bfr1sgf8h2b4fiax6hs6lcwn2882jbr";
   };
 
-  buildInputs = [
+  propagatedBuildInputs = [
     cryptography
     beautifulsoup4
+    requests2
+    urllib3
   ];
-  propagatedBuildInputs = [ beautifulsoup4 ];
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
@@ -31,7 +32,7 @@ with pythonPackages; buildPythonApplication rec {
     homepage = https://github.com/jarun/Buku;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ matthiasbeyer ];
+    maintainers = with maintainers; [ matthiasbeyer infinisil ];
   };
 }
 
diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix
index 41de15bca518..1516e827c5e1 100644
--- a/pkgs/applications/misc/robomongo/default.nix
+++ b/pkgs/applications/misc/robomongo/default.nix
@@ -1,29 +1,73 @@
-{ stdenv, fetchurl, qtbase, openssl, boost, cmake, scons, python, pcre, bzip2 }:
+{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
+  freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
 
-stdenv.mkDerivation {
-  name = "robomongo-0.8.4";
+let
+  ldLibraryPath = stdenv.lib.makeLibraryPath [
+    stdenv.cc.cc
+    zlib
+    glib
+    xorg.libXi
+    xorg.libxcb
+    xorg.libXrender
+    xorg.libX11
+    xorg.libSM
+    xorg.libICE
+    xorg.libXext
+    dbus
+    fontconfig
+    freetype
+  ];
 
-  src = fetchurl {
-    url = https://github.com/paralect/robomongo/archive/v0.8.4.tar.gz;
-    sha256 = "199fb08701wrw3ky7gcqyvb3z4027qjcqdnzrx5y7yi3rb4gvkzc";
+  icon = fetchurl {
+    url = "https://github.com/Studio3T/robomongo/raw/v0.9.0/trash/install/linux/robomongo.png";
+    sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2";
   };
+in
+  stdenv.mkDerivation {
+    name = "robomongo-0.9.0";
 
-  patches = [ ./robomongo.patch ];
+    src = fetchurl {
+      url = "https://download.robomongo.org/0.9.0/linux/robomongo-0.9.0-linux-x86_64-0786489.tar.gz";
+      sha256 = "1q8ahdz3afcw002p8dl2pybzkq4srk6bnikrz216yx1gswivdcad";
+    };
 
-  postPatch = ''
-    rm ./cmake/FindOpenSSL.cmake # remove outdated bundled CMake file
-  '';
+    desktopItem = makeDesktopItem {
+      name = "robomongo";
+      exec = "robomongo";
+      icon = icon;
+      comment = "Query GUI for mongodb";
+      desktopName = "Robomongo";
+      genericName = "MongoDB management tool";
+      categories = "Development;IDE;mongodb;";
+    };
 
-  NIX_CFLAGS_COMPILE = "-fno-stack-protector";
+    buildInputs = [makeWrapper];
 
-  buildInputs = [ cmake boost scons qtbase openssl python pcre bzip2 ];
+    installPhase = ''
+      mkdir -p $out/bin
+      cp bin/* $out/bin
 
-  meta = {
-    homepage = "http://robomongo.org/";
-    description = "Query GUI for mongodb";
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.amorsillo ];
-    broken = true;
-  };
-}
+      mkdir -p $out/lib
+      cp -r lib/* $out/lib
+
+      mkdir -p $out/share/applications
+      cp $desktopItem/share/applications/* $out/share/applications
+
+      mkdir -p $out/share/icons
+      cp ${icon} $out/share/icons/robomongo.png
+
+      patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/robomongo
+
+      wrapProgram $out/bin/robomongo \
+        --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
+        --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
+    '';
+
+    meta = {
+      homepage = "https://robomongo.org/";
+      description = "Query GUI for mongodb";
+      platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64;
+      license = stdenv.lib.licenses.gpl3;
+      maintainers = [ stdenv.lib.maintainers.eperuffo ];
+    };
+  }
diff --git a/pkgs/applications/misc/robomongo/robomongo.patch b/pkgs/applications/misc/robomongo/robomongo.patch
deleted file mode 100644
index 3de6e940d9f9..000000000000
--- a/pkgs/applications/misc/robomongo/robomongo.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Remove check for QT_NO_STYLE_GTK to avoid building with QCleanlooksStyle which results in error due to missing QCleanlooksStyle
-Ensure environment is preserved for scons build -- scons clears the env but we want to keep the nix build environment
-Fix typo in cmakelists
-Add stdint.h include to mongo driver src
-diff -rupN robomongo-0.8.3/CMakeLists.txt robomongo-0.8.3-patched/CMakeLists.txt
---- robomongo-0.8.3/CMakeLists.txt	2013-10-01 10:55:00.000000000 -0400
-+++ robomongo-0.8.3-patched/CMakeLists.txt	2013-12-06 12:22:06.070659856 -0500
-@@ -133,7 +133,7 @@ ELSE()
- ENDIF()
- 
- ##################################DEFAULT VALUES##########################################
--IF(NOT CMAKE_INSTALL_PREFIX})
-+IF(NOT CMAKE_INSTALL_PREFIX)
-     SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
- ENDIF()
- 
-diff -rupN robomongo-0.8.3/src/robomongo/gui/AppStyle.h robomongo-0.8.3-patched/src/robomongo/gui/AppStyle.h
---- robomongo-0.8.3/src/robomongo/gui/AppStyle.h	2013-10-01 10:55:00.000000000 -0400
-+++ robomongo-0.8.3-patched/src/robomongo/gui/AppStyle.h	2013-12-06 12:20:57.417297186 -0500
-@@ -8,13 +8,8 @@
-     #include <QProxyStyle>
-     typedef QProxyStyle OsStyle;
- #elif defined OS_LINUX
--    #if !defined(QT_NO_STYLE_GTK)
--        #include <QProxyStyle>
--        typedef QProxyStyle OsStyle;
--    #else
--        #include <QCleanlooksStyle>
--        typedef QCleanlooksStyle OsStyle;
--    #endif
-+    #include <QProxyStyle>
-+    typedef QProxyStyle OsStyle;
- #endif
- 
- namespace Robomongo
-
-diff -rupN robomongo-0.8.3/src/third-party/mongodb/SConstruct robomongo-0.8.3-patched/src/third-party/mongodb/SConstruct
---- robomongo-0.8.3/src/third-party/mongodb/SConstruct	2013-10-01 10:55:00.000000000 -0400
-+++ robomongo-0.8.3-patched/src/third-party/mongodb/SConstruct	2013-12-06 12:21:45.705255731 -0500
-@@ -283,7 +283,8 @@ usePCH = has_option( "usePCH" )
- 
- justClientLib = (COMMAND_LINE_TARGETS == ['mongoclient'])
- 
--env = Environment( BUILD_DIR=variantDir,
-+env = Environment( ENV=os.environ,
-+                   BUILD_DIR=variantDir,
-                    CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
-                    CLIENT_DIST_BASENAME=get_option('client-dist-basename'),
-                    CLIENT_LICENSE='#distsrc/client/LICENSE.txt',
-
-diff -rupN robomongo-0.8.4/src/third-party/mongodb/src/mongo/pch.h robomongo-0.8.4-patched/src/third-party/mongodb/src/mongo/pch.h
---- robomongo-0.8.4/src/third-party/mongodb/src/mongo/pch.h	2013-12-13 12:56:35.000000000 -0500
-+++ robomongo-0.8.4-patched/src/third-party/mongodb/src/mongo/pch.h	2014-08-20 18:16:31.788396489 -0400
-@@ -39,6 +39,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <signal.h>
-+#include <stdint.h>
- 
- #include "time.h"
- #include "string.h"
diff --git a/pkgs/applications/misc/verbiste/default.nix b/pkgs/applications/misc/verbiste/default.nix
new file mode 100644
index 000000000000..3d4c35559e35
--- /dev/null
+++ b/pkgs/applications/misc/verbiste/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, libgnomeui, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "verbiste-${version}";
+
+  version = "0.1.44";
+
+  src = fetchurl {
+    url = "http://perso.b2b2c.ca/~sarrazip/dev/${name}.tar.gz";
+    sha256 = "0vmjr8w3qc64y312a0sj0ask309mmmlmyxp2fsii0ji35ls7m9sw";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ libgnomeui libxml2 ];
+
+  meta = with stdenv.lib; {
+    homepage = http://sarrazip.com/dev/verbiste.html;
+    description = "French and Italian verb conjugator";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 19fe89ea4491..9d17443ac889 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -10,22 +10,19 @@ let
   # (presumably because we don't have some static system libraries it wants), and cross-compiling cgo on Darwin is a nightmare.
   #
   # Note that minikube can download (and cache) versions of localkube it needs on demand. Unfortunately, minikube's knowledge
-  # of where it can download versions of localkube seems to rely on a json file that doesn't get updated as often as we'd like,
-  # so for example it doesn't know about v1.5.3 even though there's a perfectly good version of localkube hosted there. So
+  # of where it can download versions of localkube seems to rely on a json file that doesn't get updated as often as we'd like. So
   # instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is
-  # currently https://storage.googleapis.com/minikube/k8s_releases.json. Note that we can't use 1.5.3 with minikube 0.17.1
-  # expects to be able to pass it a command-line argument that it doesn't understand. v1.5.4 and higher should be fine. There
-  # doesn't seem to ae any official release of localkube for 1.5.4 yet so I'm temporarily grabbing a version built from the
-  # minikube CI server.
+  # currently https://storage.googleapis.com/minikube/k8s_releases.json
+
+  localkube-version = "1.6.0";
   localkube-binary = fetchurl {
-    url    = "https://storage.googleapis.com/minikube-builds/1216/localkube";
-    # url    = "https://storage.googleapis.com/minikube/k8sReleases/v${kubernetes.version}/localkube-linux-amd64";
-    sha256 = "1vqrsak7n045ci6af3rpgs2qwjnrqk8k7c3ax6wzli4m8vhsiv57";
+    url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64";
+    sha256 = "0zx0c9fwairvga1g1112l5g5pspm2m9wxb42qgfxfgyidywvirha";
   };
 in buildGoPackage rec {
   pname   = "minikube";
   name    = "${pname}-${version}";
-  version = "0.17.1";
+  version = "0.18.0";
 
   goPackagePath = "k8s.io/minikube";
 
@@ -33,7 +30,7 @@ in buildGoPackage rec {
     owner  = "kubernetes";
     repo   = "minikube";
     rev    = "v${version}";
-    sha256 = "1m61yipn0p3cfavjddhrg1rcmr0hv6k3zxvqqd9fisl79g0sdfsr";
+    sha256 = "0r8184xfsw7vvvmzhc18si582q41cnzka4ry151hwy56gmp2jyiw";
   };
 
   # kubernetes is here only to shut up a loud warning when generating the completions below. minikube checks very eagerly
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 93a9894ba6b8..aad5d1a80326 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -64,6 +64,11 @@ in {
       })
     ];
 
+    postPatch = ''
+      rm builtin/providers/dns/data_dns_cname_record_set_test.go
+      rm builtin/providers/vsphere/resource_vsphere_file_test.go
+    '';
+
     doCheck = true;
   };
 }
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 097ff84a7046..44caf615205c 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -23,11 +23,11 @@
 let
   # NOTE: When updating, please also update in current stable,
   # as older versions stop working
-  version = "22.4.24";
+  version = "23.4.17";
   sha256 =
     {
-      "x86_64-linux" = "1353mwk8hjqfc9a87zrp12klsc4anrxr7ccai4cffnq0yw2pnbfp";
-      "i686-linux"   = "07gpdxq61qkj3c4aywh61zwj34w7j24gcv5y2xf2qgcwn8bykks2";
+      "x86_64-linux" = "047i6afghb2nphwwc8sd6dxcbfi9cdyb1w4ssvwfkmbf3mznpfrh";
+      "i686-linux"   = "186z540iv4gq2gmis3mjly070y09lsfwvk9ygmjrh6y7pd9dqa5n";
     }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
 
   arch =
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
index 30e4992ff36c..6e96719fd896 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
@@ -10,13 +10,13 @@ let
   };
 
 in stdenv.mkDerivation rec {
-  name = "purple-facebook-0.9.0";
+  name = "purple-facebook-0.9.3";
 
   src = fetchFromGitHub {
     owner = "dequis";
     repo = "purple-facebook";
-    rev = "v0.9.0-c9b74a765767";
-    sha256 = "1f7jhmaj15p3c9s4xmfygrpav9c8wq0vilbi5cj4jysb7xgndlqv";
+    rev = "v0.9.3-c9b74a765767";
+    sha256 = "10ncvg0arcxnd3cpb0nxry1plbws0mw9vhzjrhb40sv2i563dywb";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/mailreaders/astroid/default.nix b/pkgs/applications/networking/mailreaders/astroid/default.nix
index 96b1b7d285eb..668044f5efb8 100644
--- a/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -3,25 +3,23 @@
 
 stdenv.mkDerivation rec {
   name = "astroid-${version}";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchFromGitHub {
     owner = "astroidmail";
     repo = "astroid";
     rev = "v${version}";
-    sha256 = "0r3hqwwr68bjhqaa1r3l9brbmvdp11pf8vhsjlvm5zv520z5y1rf";
+    sha256 = "1gjrdls1mz8y8bca7s8l965l0m7s2sb6g7a90gy848admjsyav7h";
   };
 
-  patches = [ ./propagate-environment.patch ];
-
   nativeBuildInputs = [ scons pkgconfig wrapGAppsHook ];
 
   buildInputs = [ gnome3.gtkmm gmime webkitgtk24x libsass gnome3.libpeas
                   notmuch boost gnome3.gsettings_desktop_schemas
                   gnome3.adwaita-icon-theme ];
 
-  buildPhase = "scons --prefix=$out build";
-  installPhase = "scons --prefix=$out install";
+  buildPhase = "scons --propagate-environment --prefix=$out build";
+  installPhase = "scons --propagate-environment --prefix=$out install";
 
   meta = {
     homepage = "https://astroidmail.github.io/";
diff --git a/pkgs/applications/networking/mailreaders/astroid/propagate-environment.patch b/pkgs/applications/networking/mailreaders/astroid/propagate-environment.patch
deleted file mode 100644
index db536ea721f2..000000000000
--- a/pkgs/applications/networking/mailreaders/astroid/propagate-environment.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/SConstruct b/SConstruct
-index a80bca3..ed2cd6d 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -5,7 +5,7 @@ from subprocess import *
- def getGitDesc():
-   return Popen('git describe --abbrev=8 --tags --always', stdout=PIPE, shell=True).stdout.read ().strip ()
- 
--env = Environment ()
-+env = Environment(ENV = os.environ)
- 
- AddOption ("--release", action="store", dest="release", default="git", help="Make a release (default: git describe output)")
- AddOption ("--enable-debug", action="store", dest="debug", default=None, help="Enable the -g flag for debugging (default: true when release is git)")
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index e5cb54723d3e..92d1a3446c0d 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
     (enableFeature withSidebar  "sidebar")
     "--enable-smtp"
     "--enable-pop"
-    "--enable-imap"
     "--with-mailpath="
 
     # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 0f696d788552..81c459ff15a3 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, go, pkgs, removeReferencesTo }:
 
 stdenv.mkDerivation rec {
-  version = "0.14.25";
+  version = "0.14.26";
   name = "syncthing-${version}";
 
   src = fetchFromGitHub {
     owner  = "syncthing";
     repo   = "syncthing";
     rev    = "v${version}";
-    sha256 = "1if92y32h1wp5sz2lnlw5fqibzbik7bklq850j9wcxfvr6ahck0w";
+    sha256 = "1ny41fj8gg555awqcsyvsjs1zghjlwciwhyxjh5ly16hzaixn499";
   };
 
   buildInputs = [ go removeReferencesTo ];
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 076a78bd5b6e..b02da41f9d62 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -9,11 +9,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "gitkraken-${version}";
-  version = "2.3.1";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://release.gitkraken.com/linux/v${version}.deb";
-    sha256 = "ddb9eec34232e830646633c43bc9adc61afa0eee79500af29918b62780093b2a";
+    sha256 = "a6e235ab1a4c1da755af8218ad819fcac6bc89b1a324aa2c0e430f3805cb1a16";
   };
 
   libPath = makeLibraryPath [
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index b6de07bff8ad..fded295b0ef1 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -58,6 +58,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  separateDebugInfo = true;
+
   meta = with stdenv.lib; {
     description = "A tiling window manager";
     homepage    = "http://i3wm.org";
diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix
index 39825e37f30f..1a3c976f77de 100644
--- a/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/pkgs/applications/window-managers/spectrwm/default.nix
@@ -36,7 +36,10 @@ stdenv.mkDerivation rec {
     xcbutilwm
   ];
 
-  sourceRoot = "spectrwm-SPECTRWM_2_7_2/linux";
+  sourceRoot = let
+    subdir = if stdenv.isDarwin then "osx" else "linux";
+  in "spectrwm-SPECTRWM_2_7_2/${subdir}";
+
   makeFlags="PREFIX=$(out)";
   installPhase = "PREFIX=$out make install";
 
diff --git a/pkgs/data/fonts/fontconfig-penultimate/default.nix b/pkgs/data/fonts/fontconfig-penultimate/default.nix
index a42e5d9109b6..148cbb2f8c1d 100644
--- a/pkgs/data/fonts/fontconfig-penultimate/default.nix
+++ b/pkgs/data/fonts/fontconfig-penultimate/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub }:
 
-let version = "0.3.2"; in
+let version = "0.3.3"; in
 stdenv.mkDerivation {
   name = "fontconfig-penultimate-${version}";
 
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     owner = "ttuegel";
     repo = "fontconfig-penultimate";
     rev = version;
-    sha256 = "01cgqdmgpqahkg71lnvr3yzsmka9q1kgkbiz6w5ds1fhrpcswj7p";
+    sha256 = "0392lw31jps652dcjazln77ihb6bl7gk201gb7wb9i223avp86w9";
   };
 
   installPhase = ''
diff --git a/pkgs/desktops/gnome-3/3.22/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.22/core/gnome-settings-daemon/default.nix
index 00999353c2fb..ff5670935bd9 100644
--- a/pkgs/desktops/gnome-3/3.22/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/3.22/core/gnome-settings-daemon/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst
 , libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit
 , geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libtool, networkmanager
-, docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }:
+, docbook_xsl, docbook_xsl_ns, wrapGAppsHook, ibus, xkeyboard_config }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -14,15 +14,7 @@ stdenv.mkDerivation rec {
       libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio
       libcanberra_gtk3 upower colord libgweather xkeyboard_config
       polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom libxslt
-      libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ];
-
-  # FIXME: glib binaries shouldn't be in .dev!
-  preFixup = ''
-    wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix PATH : "${glib.dev}/bin" \
-      --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
-  '';
+      libtool docbook_xsl docbook_xsl_ns wrapGAppsHook gnome_themes_standard ];
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix
new file mode 100755
index 000000000000..6fa25df5e033
--- /dev/null
+++ b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix
@@ -0,0 +1,98 @@
+{stdenv, fetchurl
+, arm-frc-linux-gnueabi-binutils, arm-frc-linux-gnueabi-eglibc, arm-frc-linux-gnueabi-linux-api-headers
+, elfutils
+, libmpc, gmp, mpfr, zlib, isl_0_15, cloog}:
+
+stdenv.mkDerivation rec {
+  _target = "arm-frc-linux-gnueabi";
+
+  version = "4.9.4";
+  name = "${_target}-gcc-${version}";
+
+  src = fetchurl {
+    url = "ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/gcc-${version}.tar.bz2";
+    sha256 = "6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092";
+  };
+
+  patches = [
+    ./minorSOname.patch
+    ./no-nested-deprecated-warnings.patch
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  buildInputs = [
+    arm-frc-linux-gnueabi-binutils
+    arm-frc-linux-gnueabi-eglibc
+    arm-frc-linux-gnueabi-linux-api-headers
+    elfutils
+    libmpc
+    gmp
+    mpfr
+    zlib
+    isl_0_15
+    cloog
+  ];
+
+
+  configurePhase = ''
+    mkdir gcc-build
+    cd gcc-build
+    ../configure \
+      --prefix=$out \
+      --host=$CHOST \
+      --build=$CHOST \
+      --program-prefix=${_target}- \
+      --target=${_target} \
+      --enable-shared \
+      --disable-nls \
+      --enable-threads=posix \
+      --enable-languages=c,c++ \
+      --disable-multilib \
+      --disable-multiarch \
+      --with-sysroot=${arm-frc-linux-gnueabi-eglibc}/${_target} \
+      --with-build-sysroot=${arm-frc-linux-gnueabi-eglibc}/${_target} \
+      --with-as=${arm-frc-linux-gnueabi-binutils}/${_target}/bin/as \
+      --with-ld=${arm-frc-linux-gnueabi-binutils}/${_target}/bin/ld \
+      --with-cpu=cortex-a9 \
+      --with-float=softfp \
+      --with-fpu=vfp \
+      --with-specs='%{save-temps:-fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' \
+      --enable-lto \
+      --with-pkgversion='GCC-for-FRC' \
+      --with-cloog \
+      --enable-poison-system-directories \
+      --enable-plugin \
+      --with-system-zlib \
+      --disable-libmudflap \
+      --disable-libsanitizer
+  '';
+
+  makeFlags = [
+    "all-gcc"
+    "all-target-libgcc"
+    "all-target-libstdc++-v3"
+  ];
+
+  installPhase = ''
+    make install-gcc install-target-libgcc install-target-libstdc++-v3
+  '';
+
+  postInstall = ''
+    rm -rf $out/share/{man/man7,info}/ "$out/share/gcc-${version}/python"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "FRC cross compiler";
+    longDescription = ''
+      arm-frc-linux-gnueabi-gcc is a cross compiler for building
+      code for FIRST Robotics Competition. Used as a cross compiler
+      for the NI RoboRio.
+    '';
+    license = licenses.gpl2;
+    maintainers = [ maintainers.colescott ];
+    platforms = platforms.linux;
+
+    priority = 4;
+  };
+}
diff --git a/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch
new file mode 100755
index 000000000000..d97d12bc629a
--- /dev/null
+++ b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch
@@ -0,0 +1,49 @@
+Description: Make the default SONAME include minor numbers (c++)

+ This patch adds .0.20 to the end of the SONAME for libstdc++ to support

+ independent side-by-side usage of .17 and .20.

+ .

+ gcc-armel (4.9.1-0frc2) trusty; urgency=low

+ .

+   * Fixing dependency ambiguity yet again...

+Author: Patrick Plenefisch <phplenefisch@wpi.edu>

+

+---

+

+--- gcc-armel-4.9.1.orig/libstdc++-v3/configure

++++ gcc-armel-4.9.1/libstdc++-v3/configure

+@@ -10698,7 +10698,7 @@ gnu*)

+   need_lib_prefix=no

+   need_version=no

+   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'

+-  soname_spec='${libname}${release}${shared_ext}$major'

++  soname_spec='${libname}${release}${shared_ext}$versuffix'

+   shlibpath_var=LD_LIBRARY_PATH

+   hardcode_into_libs=yes

+   ;;

+@@ -10824,7 +10824,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)

+   need_lib_prefix=no

+   need_version=no

+   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'

+-  soname_spec='${libname}${release}${shared_ext}$major'

++  soname_spec='${libname}${release}${shared_ext}$versuffix'

+   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'

+   shlibpath_var=LD_LIBRARY_PATH

+   shlibpath_overrides_runpath=no

+@@ -14382,7 +14382,7 @@ gnu*)

+   need_lib_prefix=no

+   need_version=no

+   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'

+-  soname_spec='${libname}${release}${shared_ext}$major'

++  soname_spec='${libname}${release}${shared_ext}$versuffix'

+   shlibpath_var=LD_LIBRARY_PATH

+   hardcode_into_libs=yes

+   ;;

+@@ -14508,7 +14508,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)

+   need_lib_prefix=no

+   need_version=no

+   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'

+-  soname_spec='${libname}${release}${shared_ext}$major'

++  soname_spec='${libname}${release}${shared_ext}$versuffix'

+   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'

+   shlibpath_var=LD_LIBRARY_PATH

+   shlibpath_overrides_runpath=no

diff --git a/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/no-nested-deprecated-warnings.patch b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/no-nested-deprecated-warnings.patch
new file mode 100755
index 000000000000..050a63e92fd6
--- /dev/null
+++ b/pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/no-nested-deprecated-warnings.patch
@@ -0,0 +1,22 @@
+Description: Get rid of recursive deprecated warnings.

+ As is, gcc gives warnings when a function with the

+ deprecated attribute calls another function with

+ the deprecated attribute.

+ See http://stackoverflow.com/questions/13459602/how-can-i-get-rid-of-deprecated-warnings-in-deprecated-functions-in-gcc

+

+Author: James Kuszmaul <jbkuszmaul@wpi.edu>

+

+--

+

+--- gcc-armel-4.9.1.orig/gcc/tree.c

++++ gcc-armel-4.9.1/gcc/tree.c

+@@ -12063,6 +12063,9 @@ warn_deprecated_use (tree node, tree attr)

+   if (node == 0 || !warn_deprecated_decl)

+     return;

+

++  if (current_function_decl && TREE_DEPRECATED(current_function_decl))

++    return;

++

+   if (!attr)

+     {

+       if (DECL_P (node))

diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index ac7a275d66ae..e8c36dc7a037 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "dtc-${version}";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git";
     rev = "refs/tags/v${version}";
-    sha256 = "0pwhbw930pnksrmkimqqwp4nqj9mmh06bs5b8p5l2cnhnh8lxn3j";
+    sha256 = "1pxp7700b3za7q4fnsnxx6i8v66rnr8p6lyi7jf684y1hq5ynlnf";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/development/compilers/ghcjs/base.nix b/pkgs/development/compilers/ghcjs/base.nix
index ac9419d662ec..ab68a8fe3b50 100644
--- a/pkgs/development/compilers/ghcjs/base.nix
+++ b/pkgs/development/compilers/ghcjs/base.nix
@@ -19,7 +19,6 @@
 , executable-path
 , transformers-compat
 , haddock-api
-, ghcjs-prim
 , regex-posix
 , callPackage
 
@@ -122,7 +121,7 @@ in mkDerivation (rec {
     alex happy git gnumake autoconf automake libtool patch gmp
     base16-bytestring cryptohash executable-path haddock-api
     transformers-compat QuickCheck haddock hspec xhtml
-    ghcjs-prim regex-posix libiconv
+    regex-posix libiconv
   ];
   buildTools = [ nodejs git ];
   testDepends = [
diff --git a/pkgs/development/compilers/ghcjs/head.nix b/pkgs/development/compilers/ghcjs/head.nix
index e045dc67a507..591660f5c347 100644
--- a/pkgs/development/compilers/ghcjs/head.nix
+++ b/pkgs/development/compilers/ghcjs/head.nix
@@ -3,8 +3,6 @@
 bootPkgs.callPackage ./base.nix {
   version = "0.2.020170323";
 
-  # deprecated on HEAD, directly included in the distribution
-  ghcjs-prim = null;
   inherit bootPkgs;
 
   ghcjsSrc = fetchFromGitHub {
diff --git a/pkgs/development/compilers/ghcjs/head_stage2.nix b/pkgs/development/compilers/ghcjs/head_stage2.nix
index 5808891d4303..d4247f51b3e3 100644
--- a/pkgs/development/compilers/ghcjs/head_stage2.nix
+++ b/pkgs/development/compilers/ghcjs/head_stage2.nix
@@ -382,7 +382,6 @@
         version = "1.24.0.0";
         src = "${ghcjsBoot}/boot/cabal/Cabal";
         doCheck = false;
-        hyperlinkSource = false;
         libraryHaskellDepends = [
           array base binary bytestring containers deepseq directory filepath
           pretty process time unix
diff --git a/pkgs/development/compilers/ghcjs/stage2.nix b/pkgs/development/compilers/ghcjs/stage2.nix
index b88051113b55..8c68b6f15a67 100644
--- a/pkgs/development/compilers/ghcjs/stage2.nix
+++ b/pkgs/development/compilers/ghcjs/stage2.nix
@@ -327,7 +327,6 @@
         version = "1.22.8.0";
         src = "${ghcjsBoot}/boot/cabal/Cabal";
         doCheck = false;
-        hyperlinkSource = false;
         libraryHaskellDepends = [
           array base binary bytestring containers deepseq directory filepath
           pretty process time unix
diff --git a/pkgs/development/compilers/glslang/default.nix b/pkgs/development/compilers/glslang/default.nix
index d2384598456d..20e156a72e43 100644
--- a/pkgs/development/compilers/glslang/default.nix
+++ b/pkgs/development/compilers/glslang/default.nix
@@ -2,19 +2,17 @@
 
 stdenv.mkDerivation rec {
   name = "glslang-git-${version}";
-  version = "2016-12-21";
+  version = "2017-03-29";
 
   # `vulkan-loader` requires a specific version of `glslang` as specified in
-  # `<vulkan-loader-repo>/glslang_revision`.
+  # `<vulkan-loader-repo>/external_revisions/glslang_revision`.
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "glslang";
-    rev = "807a0d9e2f4e176f75d62ac3c179c81800ec2608";
-    sha256 = "02jckgihqhagm73glipb4c6ri5fr3pnbxb5vrznn2vppyfdfghbj";
+    rev = "714e58b2fc5a45714596e6aa2f6ac8f64260365c";
+    sha256 = "0ihnd0c4mr6ppbv9g7z1abrn8vx66simfzx5q48nqcpnywn35jxv";
   };
 
-  patches = [ ./install-headers.patch ];
-
   buildInputs = [ cmake bison ];
   enableParallelBuilding = true;
 
@@ -23,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "Khronos reference front-end for GLSL and ESSL";
     license = licenses.asl20;
     platforms = platforms.linux;
+    maintainers = [ maintainers.ralith ];
   };
 }
diff --git a/pkgs/development/compilers/glslang/install-headers.patch b/pkgs/development/compilers/glslang/install-headers.patch
deleted file mode 100644
index 75f271309780..000000000000
--- a/pkgs/development/compilers/glslang/install-headers.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
-index c538e84..6ece1ab 100755
---- a/SPIRV/CMakeLists.txt
-+++ b/SPIRV/CMakeLists.txt
-@@ -34,8 +34,9 @@ if(ENABLE_AMD_EXTENSIONS)
- endif(ENABLE_AMD_EXTENSIONS)
- 
- if(ENABLE_NV_EXTENSIONS)
--    set(HEADERS
--        GLSL.ext.NV.h)
-+    list(APPEND
-+         HEADERS
-+         GLSL.ext.NV.h)
- endif(ENABLE_NV_EXTENSIONS)
- 
- add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
-@@ -51,3 +52,5 @@ endif(WIN32)
- 
- install(TARGETS SPIRV SPVRemapper
-         ARCHIVE DESTINATION lib)
-+
-+install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION include/SPIRV/)
-diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
-index 95d4bdd..e7fda90 100644
---- a/glslang/CMakeLists.txt
-+++ b/glslang/CMakeLists.txt
-@@ -93,3 +93,8 @@ endif(WIN32)
- 
- install(TARGETS glslang 
-         ARCHIVE DESTINATION lib)
-+
-+foreach(file ${HEADERS})
-+    get_filename_component(dir ${file} DIRECTORY)
-+    install(FILES ${file} DESTINATION include/glslang/${dir})
-+endforeach()
diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index 6cd407374db6..5655cf61a0b6 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation ( rec {
   name = "ponyc-${version}";
-  version = "0.12.2";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = "ponyc";
     rev = version;
-    sha256 = "1gp92fwfq9ic43c525p0idap99jq5fkjbijf0s8bxif3kng7rxbp";
+    sha256 = "1agb7aiii7pl8zsh3h0lfzghmm1ajj15gx1j48xjyvplxixdgn9j";
   };
 
   buildInputs = [ llvm makeWrapper which ];
diff --git a/pkgs/development/compilers/scala/2.11.nix b/pkgs/development/compilers/scala/2.11.nix
index 9af3431b8c60..404c469b86dd 100644
--- a/pkgs/development/compilers/scala/2.11.nix
+++ b/pkgs/development/compilers/scala/2.11.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, makeWrapper, jre, gnugrep, coreutils }:
 
 stdenv.mkDerivation rec {
-  name = "scala-2.11.9";
+  name = "scala-2.11.10";
 
   src = fetchurl {
     url = "http://www.scala-lang.org/files/archive/${name}.tgz";
-    sha256 = "02rpx0pzr98vla2mgkgf6s8blccnrji5bxw05z36m1iwqmpryx5r";
+    sha256 = "10rs8ak3qyxggw24ga3gjcpl3x8r1b3ykrdfrym1n154b1rrs904";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index d84db5279519..643940797bc6 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -171,7 +171,13 @@ self: super: {
     else dontCheck super.fsnotify;
 
   double-conversion = if !pkgs.stdenv.isDarwin
-    then addExtraLibrary super.double-conversion pkgs.stdenv.cc.cc.lib
+    then addExtraLibrary
+           # https://github.com/bos/double-conversion/pull/17
+           (appendPatch super.double-conversion (pkgs.fetchpatch {
+              url = "https://github.com/basvandijk/double-conversion/commit/0927e347d53dbd96d1949930e728cc2471dd4b14.patch";
+              sha256 = "042yqbq5p6nc9nymmbz9hgp51dlc5asaj9bf91kw5fph6dw2hwg9";
+           }))
+           pkgs.stdenv.cc.cc.lib
     else addExtraLibrary (overrideCabal super.double-conversion (drv:
       {
         postPatch = ''
@@ -869,4 +875,34 @@ self: super: {
 
   # https://github.com/danidiaz/tailfile-hinotify/issues/2
   tailfile-hinotify = dontCheck super.tailfile-hinotify;
-}
+} // (let scope' = self: super: {
+            haskell-tools-ast = super.haskell-tools-ast_0_6_0_0;
+            haskell-tools-backend-ghc = super.haskell-tools-backend-ghc_0_6_0_0;
+            haskell-tools-cli = super.haskell-tools-cli_0_6_0_0;
+            haskell-tools-daemon = super.haskell-tools-daemon_0_6_0_0;
+            haskell-tools-debug = super.haskell-tools-debug_0_6_0_0;
+            haskell-tools-demo = super.haskell-tools-demo_0_6_0_0;
+            haskell-tools-prettyprint = super.haskell-tools-prettyprint_0_6_0_0;
+            haskell-tools-refactor = super.haskell-tools-refactor_0_6_0_0;
+            haskell-tools-rewrite = super.haskell-tools-rewrite_0_6_0_0;
+          };
+      in {
+        haskell-tools-ast_0_6_0_0 =
+          super.haskell-tools-ast_0_6_0_0.overrideScope scope';
+        haskell-tools-backend-ghc_0_6_0_0 =
+          super.haskell-tools-backend-ghc_0_6_0_0.overrideScope scope';
+        haskell-tools-cli_0_6_0_0 =
+          dontCheck (super.haskell-tools-cli_0_6_0_0.overrideScope scope');
+        haskell-tools-daemon_0_6_0_0 =
+          dontCheck (super.haskell-tools-daemon_0_6_0_0.overrideScope scope');
+        haskell-tools-debug_0_6_0_0 =
+          super.haskell-tools-debug_0_6_0_0.overrideScope scope';
+        haskell-tools-demo_0_6_0_0 =
+          super.haskell-tools-demo_0_6_0_0.overrideScope scope';
+        haskell-tools-prettyprint_0_6_0_0 =
+          super.haskell-tools-prettyprint_0_6_0_0.overrideScope scope';
+        haskell-tools-refactor_0_6_0_0 =
+          super.haskell-tools-refactor_0_6_0_0.overrideScope scope';
+        haskell-tools-rewrite_0_6_0_0 =
+          super.haskell-tools-rewrite_0_6_0_0.overrideScope scope';
+     })
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
index ee62cf64fec6..7f561133b64e 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
@@ -95,18 +95,6 @@ self: super: {
   # https://github.com/kazu-yamamoto/unix-time/issues/30
   unix-time = dontCheck super.unix-time;
 
-  ghcjs-prim = self.callPackage ({ mkDerivation, fetchgit, primitive }: mkDerivation {
-    pname = "ghcjs-prim";
-    version = "0.1.0.0";
-    src = fetchgit {
-      url = git://github.com/ghcjs/ghcjs-prim.git;
-      rev = "dfeaab2aafdfefe46bf12960d069f28d2e5f1454"; # ghc-7.10 branch
-      sha256 = "19kyb26nv1hdpp0kc2gaxkq5drw5ib4za0641py5i4bbf1g58yvy";
-    };
-    buildDepends = [ primitive ];
-    license = pkgs.stdenv.lib.licenses.bsd3;
-  }) {};
-
   # diagrams/monoid-extras#19
   monoid-extras = overrideCabal super.monoid-extras (drv: {
     prePatch = "sed -i 's|4\.8|4.9|' monoid-extras.cabal";
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
index 78c3823a0f95..8eb87279c79e 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
@@ -41,19 +41,6 @@ self: super: {
   # jailbreak-cabal can use the native Cabal library.
   jailbreak-cabal = super.jailbreak-cabal.override { Cabal = null; };
 
-  ghcjs-prim = self.callPackage ({ mkDerivation, fetchgit, primitive }: mkDerivation {
-    pname = "ghcjs-prim";
-    version = "0.1.0.0";
-    src = fetchgit {
-      url = git://github.com/ghcjs/ghcjs-prim.git;
-      rev = "dfeaab2aafdfefe46bf12960d069f28d2e5f1454"; # ghc-7.10 branch
-      sha256 = "19kyb26nv1hdpp0kc2gaxkq5drw5ib4za0641py5i4bbf1g58yvy";
-    };
-    buildDepends = [ primitive ];
-    license = pkgs.stdenv.lib.licenses.bsd3;
-    broken = true;   # needs template-haskell >=2.9 && <2.11
-  }) {};
-
   # https://github.com/bmillwood/applicative-quoters/issues/6
   applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch {
     url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch";
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index d6d7277cc9d9..fd7f15008d26 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -58,9 +58,13 @@ self: super:
   # Almost all packages require Cabal to build their Setup.hs,
   # but usually they don't declare it explicitly as they don't need to for normal GHC.
   # To account for that we add Cabal by default.
-  mkDerivation = args:
-    if args.pname == "Cabal" then super.mkDerivation args else super.mkDerivation (args //
-      { setupHaskellDepends = (args.setupHaskellDepends or []) ++ [ self.Cabal ]; });
+  mkDerivation = args: super.mkDerivation (args // {
+    setupHaskellDepends = (args.setupHaskellDepends or []) ++
+      (if args.pname == "Cabal" then [ ]
+      # Break the dependency cycle between Cabal and hscolour
+      else if args.pname == "hscolour" then [ (dontHyperlinkSource self.Cabal) ]
+      else [ self.Cabal ]);
+  });
 
 ## OTHER PACKAGES
 
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 912d26c806c7..0aed2211448f 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -79,6 +79,9 @@ rec {
     fixupPhase = ":";
   });
 
+  linkWithGold = drv : appendConfigureFlag drv
+    "--ghc-option=-optl-fuse-ld=gold --ld-option=-fuse-ld=gold --with-ld=ld.gold";
+
   # link executables statically against haskell libs to reduce closure size
   justStaticExecutables = drv: overrideCabal drv (drv: {
     enableSharedExecutables = false;
@@ -101,4 +104,7 @@ rec {
 
   triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; });
 
+  overrideSrc = drv: { src, version ? drv.version }:
+    overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
+
 }
diff --git a/pkgs/development/interpreters/hy/default.nix b/pkgs/development/interpreters/hy/default.nix
index e1ce01b59068..3cafd956277a 100644
--- a/pkgs/development/interpreters/hy/default.nix
+++ b/pkgs/development/interpreters/hy/default.nix
@@ -2,15 +2,14 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "hy-${version}";
-  version = "0.11.1";
+  version = "0.12.1";
 
   src = fetchurl {
     url = "mirror://pypi/h/hy/${name}.tar.gz";
-    sha256 = "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs";
+    sha256 = "1fjip998k336r26i1gpri18syvfjg7z46wng1n58dmc238wm53sx";
   };
 
-  buildInputs = [ pythonPackages.appdirs ];
-  propagatedBuildInputs = [ pythonPackages.clint pythonPackages.astor pythonPackages.rply ];
+  propagatedBuildInputs = with pythonPackages; [ appdirs clint astor rply ];
 
   meta = {
     description = "A LISP dialect embedded in Python";
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 3233baea8f40..ab1dc4b5fe1d 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -41,9 +41,15 @@ stdenv.mkDerivation rec {
     ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ mesa libX11 ])
     ;
 
+  # makeinfo is required by Octave at runtime to display help
+  prePatch = ''
+    substituteInPlace libinterp/corefcn/help.cc \
+      --replace 'Vmakeinfo_program = "makeinfo"' \
+                'Vmakeinfo_program = "${texinfo}/bin/makeinfo"'
+  ''
   # REMOVE ON VERSION BUMP
   # Needed for Octave-4.2.1 on darwin. See https://savannah.gnu.org/bugs/?50234
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  + stdenv.lib.optionalString stdenv.isDarwin ''
     sed 's/inline file_stat::~file_stat () { }/file_stat::~file_stat () { }/' -i ./liboctave/system/file-stat.cc
   '';
 
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix
new file mode 100644
index 000000000000..a34834af48cb
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hg.nix
@@ -0,0 +1,75 @@
+args@{ stdenv, openblas, ghostscript ? null, texinfo
+
+     , # These are arguments that shouldn't be passed to the
+       # octave package.
+       texlive, tex ? texlive.combined.scheme-small
+     , epstool, pstoedit, transfig
+     , lib, fetchhg, callPackage
+     , autoconf, automake, libtool
+     , bison, librsvg, icoutils, gperf
+
+     , # These are options that can be passed in addition to the ones
+       # octave usually takes.
+       # - rev is the HG revision.  Use "tip" for the bleeding edge.
+       # - docs can be set to false to skip building documentation.
+       rev ? "23269", docs ? true
+
+     , # All remaining arguments will be passed to the octave package.
+       ...
+     }:
+
+with stdenv.lib;
+let
+  octaveArgs = removeAttrs args
+    [ "texlive" "tex"
+      "epstool" "pstoedit" "transfig"
+      "lib" "fetchhg" "callPackage"
+      "autoconf" "automake" "libtool"
+      "bison" "librsvg" "icoutils" "gperf"
+      "rev" "docs"
+    ];
+  octave = callPackage ./default.nix octaveArgs;
+
+  # List of hashes for known HG revisions.
+  sha256s = {
+    "23269" = "87f560e873ad1454fdbcdd8aca65f9f0b1e605bdc00aebbdc4f9d862ca72ff1d";
+  };
+
+in lib.overrideDerivation octave (attrs: rec {
+  version = "4.3.0pre${rev}";
+  name = "octave-${version}";
+
+  src = fetchhg {
+    url = http://www.octave.org/hg/octave;
+    inherit rev;
+
+    sha256 =
+      if builtins.hasAttr rev sha256s
+      then builtins.getAttr rev sha256s
+      else null;
+
+    fetchSubrepos = true;
+  };
+
+  # Octave's test for including this flag seems to be broken in 4.3.
+  F77_INTEGER_8_FLAG = optional openblas.blas64 "-fdefault-integer-8";
+
+  # This enables texinfo to find the files it needs.
+  TEXINPUTS = ".:build-aux:${texinfo}/texmf-dist/tex/generic/epsf:";
+
+  disableDocs = !docs || ghostscript == null;
+
+  nativeBuildInputs = attrs.nativeBuildInputs
+    ++ [ autoconf automake libtool bison librsvg icoutils gperf ]
+    ++ optionals (!disableDocs) [ tex epstool pstoedit transfig ];
+
+  # Run bootstrap before any other patches, as other patches may refer
+  # to files that are generated by the bootstrap.
+  prePatch = ''
+    patchShebangs bootstrap
+    ./bootstrap
+  '' + attrs.prePatch;
+
+  configureFlags = attrs.configureFlags ++
+    optional disableDocs "--disable-docs";
+})
diff --git a/pkgs/development/libraries/arm-frc-linux-gnueabi-eglibc/default.nix b/pkgs/development/libraries/arm-frc-linux-gnueabi-eglibc/default.nix
new file mode 100755
index 000000000000..8adbef8f5764
--- /dev/null
+++ b/pkgs/development/libraries/arm-frc-linux-gnueabi-eglibc/default.nix
@@ -0,0 +1,65 @@
+{stdenv, fetchurl, arm-frc-linux-gnueabi-linux-api-headers}:
+
+let
+  _target = "arm-frc-linux-gnueabi";
+  _basever = "2.21-r0.83";
+  srcs = [
+    (fetchurl {
+      url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/libc6_${_basever}_cortexa9-vfpv3.ipk";
+      sha256 = "117058215440e258027bb9ff18db63c078d55288787dbedfcd5730c06c7a1ae9";
+    })
+    (fetchurl {
+      url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/libc6-dev_${_basever}_cortexa9-vfpv3.ipk";
+      sha256 = "e28b05d498c1160949f51539270035e12c5bb9d75d68df1f5f111a8fc087f3a6";
+    })
+    (fetchurl {
+      url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/libcidn1_${_basever}_cortexa9-vfpv3.ipk";
+      sha256 = "0f7372590abf69da54a9b7db8f944cf6c48d9ac8a091218ee60f84fdd9de2398";
+    })
+    (fetchurl {
+      url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/libc6-thread-db_${_basever}_cortexa9-vfpv3.ipk";
+      sha256 = "5a839498507a0b63165cb7a78234d7eb2ee2bb6a046bff586090f2e70e0e2bfb";
+    })
+    (fetchurl {
+      url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/libc6-extra-nss_${_basever}_cortexa9-vfpv3.ipk";
+      sha256 = "d765d43c8ec95a4c64fa38eddf8cee848fd090d9cc5b9fcda6d2c9b03d2635c5";
+    })
+  ];
+in
+stdenv.mkDerivation rec {
+  version = "2.21";
+  name = "${_target}-eglibc-${version}";
+
+  sourceRoot = ".";
+  inherit srcs;
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  unpackCmd = ''
+      ar x $curSrc
+      tar xf data.tar.gz
+  '';
+
+  installPhase = ''
+    mkdir -p $out/${_target}
+    rm -rf lib/eglibc
+    find . \( -name .install -o -name ..install.cmd \) -delete
+    cp -r lib $out/${_target}
+    cp -r usr $out/${_target}
+
+    cp -r ${arm-frc-linux-gnueabi-linux-api-headers}/* $out
+  '';
+
+  meta = {
+    description = "FRC standard C lib";
+    longDescription = ''
+      eglibc library for the NI RoboRio to be used in compiling frc user
+      programs.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.colescott ];
+    platforms = stdenv.lib.platforms.linux;
+
+    priority = 2;
+  };
+}
diff --git a/pkgs/development/libraries/arm-frc-linux-gnueabi-linux-api-headers/default.nix b/pkgs/development/libraries/arm-frc-linux-gnueabi-linux-api-headers/default.nix
new file mode 100755
index 000000000000..29e349e0a820
--- /dev/null
+++ b/pkgs/development/libraries/arm-frc-linux-gnueabi-linux-api-headers/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl}:
+
+let
+  _target = "arm-frc-linux-gnueabi";
+  _basever = "3.19-r0.36";
+  src = fetchurl {
+    url = "http://download.ni.com/ni-linux-rt/feeds/2016/arm/ipk/cortexa9-vfpv3/linux-libc-headers-dev_${_basever}_cortexa9-vfpv3.ipk";
+    sha256 = "10066ddb9a19bf764a9a67919a7976478041e98c44c19308f076c78ecb07408c";
+  };
+in
+stdenv.mkDerivation rec {
+  version = "3.19";
+  name = "${_target}-linux-api-headers-${version}";
+
+  sourceRoot = ".";
+  inherit src;
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  unpackCmd = ''
+    ar x $curSrc
+    tar xf data.tar.gz
+  '';
+
+  installPhase = ''
+    mkdir -p $out/${_target}
+    find . \( -name .install -o -name ..install.cmd \) -delete
+    cp -r usr/ $out/${_target}
+  '';
+
+  meta = {
+    description = "FRC linux api headers";
+    longDescription = ''
+      All linux api headers required to compile the arm-frc-linux-gnuaebi-gcc
+      cross compiler and all user programs.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.colescott ];
+    platforms = stdenv.lib.platforms.linux;
+
+    priority = 1;
+  };
+}
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index 47fcd76240b2..9a5c228ac82f 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -110,7 +110,7 @@
 #, libquvi ? null # Quvi input support
 , samba ? null # Samba protocol
 #, schroedinger ? null # Dirac de/encoder
-, SDL ? null
+, SDL2 ? null
 #, shine ? null # Fixed-point MP3 encoder
 , soxr ? null # Resampling via soxr
 , speex ? null # Speex de/encoder
@@ -199,7 +199,7 @@ assert ffplayProgram -> avcodecLibrary
                      && avformatLibrary
                      && swscaleLibrary
                      && swresampleLibrary
-                     && SDL != null;
+                     && SDL2 != null;
 assert ffprobeProgram -> avcodecLibrary && avformatLibrary;
 assert ffserverProgram -> avformatLibrary;
 /*
@@ -368,7 +368,7 @@ stdenv.mkDerivation rec {
     #(enableFeature (schroedinger != null) "libschroedinger")
     #(enableFeature (shine != null) "libshine")
     (enableFeature (samba != null && gplLicensing && version3Licensing) "libsmbclient")
-    (enableFeature (SDL != null) "sdl") # Only configurable since 2.5, auto detected before then
+    (enableFeature (SDL2 != null) "sdl2")
     (enableFeature (soxr != null) "libsoxr")
     (enableFeature (speex != null) "libspeex")
     #(enableFeature (twolame != null) "libtwolame")
@@ -401,7 +401,7 @@ stdenv.mkDerivation rec {
     libjack2 ladspaH lame libass libbluray libbs2b libcaca libdc1394 libmodplug
     libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
     libxcb libXext libXfixes libXv lzma openal openjpeg_1 libpulseaudio rtmpdump
-    samba SDL soxr speex vid-stab wavpack x264 x265 xavs xvidcore zeromq4 zlib
+    samba SDL2 soxr speex vid-stab wavpack x264 x265 xavs xvidcore zeromq4 zlib
   ] ++ optional openglExtlib mesa
     ++ optionals x11grabExtlib [ libXext libXfixes ]
     ++ optionals nonfreeLicensing [ fdk_aac openssl ]
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index feb769229c02..1500718c737d 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, mesa, libXrandr, libXi, libXxf86vm, libXfixes, xlibsWrapper
 , libXinerama, libXcursor
+, darwin
 }:
 
 stdenv.mkDerivation rec {
@@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cmake mesa libXrandr libXi libXxf86vm libXfixes xlibsWrapper
     libXinerama libXcursor
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa Kernel ]);
 
   cmakeFlags = "-DBUILD_SHARED_LIBS=ON";
 
diff --git a/pkgs/development/libraries/hidapi/default.nix b/pkgs/development/libraries/hidapi/default.nix
index 07534ed63d71..80085759a76a 100644
--- a/pkgs/development/libraries/hidapi/default.nix
+++ b/pkgs/development/libraries/hidapi/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, udev, libusb }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, udev, libusb
+, darwin }:
 
 stdenv.mkDerivation rec {
   name = "hidapi-0.8.0-rc1";
@@ -10,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "13d5jkmh9nh4c2kjch8k8amslnxapa9vkqzrk1z6rqmw8qgvzbkj";
   };
 
-  buildInputs = [ autoreconfHook pkgconfig udev libusb ];
+  buildInputs = [ autoreconfHook pkgconfig ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ udev libusb ];
+
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ IOKit Cocoa ]);
 
   meta = with stdenv.lib; {
     homepage = https://github.com/signal11/hidapi;
diff --git a/pkgs/development/libraries/libx86emu/default.nix b/pkgs/development/libraries/libx86emu/default.nix
index a1471766516a..ee32d9418dd9 100644
--- a/pkgs/development/libraries/libx86emu/default.nix
+++ b/pkgs/development/libraries/libx86emu/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sed -i 's|/usr/|/|g' Makefile
   '';
 
-  makeFlags = "shared";
+  makeFlags = [ "shared" ];
 
   installPhase = ''
     make install DESTDIR=$out/ LIBDIR=lib
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     homepage = https://github.com/wfeldt/libx86emu;
     maintainers = with maintainers; [ bobvanderlinden ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 5fbd6552b4c4..b7a5f1a5c904 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -187,7 +187,7 @@ stdenv.mkDerivation {
 
     # set the default search path for DRI drivers; used e.g. by X server
     substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
-  '' + optionalString (builtins.elem "intel" vulkanDrivers) ''
+  '' + optionalString (vulkanDrivers != []) ''
     # move share/vulkan/icd.d/
     mv $out/share/ $drivers/
     # Update search path used by Vulkan (it's pointing to $out but
diff --git a/pkgs/development/libraries/neardal/default.nix b/pkgs/development/libraries/neardal/default.nix
index 23bc7f883d43..9f46305c1b54 100644
--- a/pkgs/development/libraries/neardal/default.nix
+++ b/pkgs/development/libraries/neardal/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     homepage = https://01.org/linux-nfc;
     maintainers = with maintainers; [ tstrobel ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/qt-5/5.8/default.nix b/pkgs/development/libraries/qt-5/5.8/default.nix
index eb26f88f7258..2865a879f47d 100644
--- a/pkgs/development/libraries/qt-5/5.8/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/default.nix
@@ -76,6 +76,7 @@ let
       qtgraphicaleffects = callPackage ./qtgraphicaleffects.nix {};
       qtimageformats = callPackage ./qtimageformats.nix {};
       qtlocation = callPackage ./qtlocation.nix {};
+      qtmacextras = callPackage ./qtmacextras.nix {};
       qtmultimedia = callPackage ./qtmultimedia.nix {
         inherit gstreamer gst-plugins-base;
       };
@@ -97,12 +98,13 @@ let
       qtxmlpatterns = callPackage ./qtxmlpatterns.nix {};
 
       env = callPackage ../qt-env.nix {};
-      full = env "qt-${qtbase.version}" [
+      full = env "qt-${qtbase.version}" ([
         qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
         qtimageformats qtlocation qtmultimedia qtquickcontrols qtscript
-        qtsensors qtserialport qtsvg qttools qttranslations qtwayland
+        qtsensors qtserialport qtsvg qttools qttranslations
         qtwebsockets qtx11extras qtxmlpatterns
-      ];
+      ] ++ optional (!stdenv.isDarwin) qtwayland
+        ++ optional (stdenv.isDarwin) qtmacextras);
 
       makeQtWrapper =
         makeSetupHook
diff --git a/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
index 9642b6136770..0af6ed8b594b 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtbase/default.nix
@@ -211,8 +211,10 @@ stdenv.mkDerivation {
     libX11 libXcomposite libXext libXi libXrender libxcb libxkbcommon xcbutil
     xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm
   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-    ApplicationServices Foundation CoreServices AppKit Carbon OpenGL AGL Cocoa
-    DiskArbitration darwin.cf-private libiconv
+    AGL AppKit ApplicationServices Carbon Cocoa
+    CoreAudio CoreBluetooth CoreLocation CoreServices
+    DiskArbitration Foundation OpenGL
+    darwin.cf-private darwin.apple_sdk.sdk darwin.libobjc libiconv
   ]);
 
   buildInputs = [ ]
diff --git a/pkgs/development/libraries/qt-5/5.8/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.8/qtdeclarative/default.nix
index 9b6a6c46176c..acddbd9e3657 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtdeclarative/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtdeclarative/default.nix
@@ -1,8 +1,18 @@
-{ qtSubmodule, lib, copyPathsToStore, python2, qtbase, qtsvg, qtxmlpatterns }:
+{ stdenv, qtSubmodule, makeQtWrapper, copyPathsToStore, python2, qtbase, qtsvg, qtxmlpatterns }:
+
+with stdenv.lib;
 
 qtSubmodule {
   name = "qtdeclarative";
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = copyPathsToStore (readPathsFromFile ./. ./series);
   qtInputs = [ qtbase qtsvg qtxmlpatterns ];
-  nativeBuildInputs = [ python2 ];
+  nativeBuildInputs = [ python2 makeQtWrapper ];
+
+  postInstall = ''
+    wrapQtProgram $out/bin/qmleasing
+    wrapQtProgram $out/bin/qmlscene
+    wrapQtProgram $out/bin/qmltestrunner
+  '' + optionalString (stdenv.isDarwin) ''
+    wrapQtProgram $out/bin/qml.app/Contents/MacOS/qml
+  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.8/qtmacextras.nix b/pkgs/development/libraries/qt-5/5.8/qtmacextras.nix
new file mode 100644
index 000000000000..582294cc7f76
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.8/qtmacextras.nix
@@ -0,0 +1,10 @@
+{ qtSubmodule, qtbase, lib }:
+
+qtSubmodule {
+  name = "qtmacextras";
+  qtInputs = [ qtbase ];
+  meta = with lib; {
+    maintainers = with maintainers; [ periklis ];
+    platforms = platforms.darwin;
+  };
+}
diff --git a/pkgs/development/libraries/qt-5/5.8/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.8/qtmultimedia.nix
index 7c1cc5da07e3..1c2dcc90d41a 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtmultimedia.nix
@@ -1,12 +1,15 @@
-{ qtSubmodule, qtbase, qtdeclarative, pkgconfig
+{ stdenv, qtSubmodule, qtbase, qtdeclarative, pkgconfig
 , alsaLib, gstreamer, gst-plugins-base, libpulseaudio
+, darwin
 }:
 
+with stdenv.lib;
+
 qtSubmodule {
   name = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
-  buildInputs = [
-    pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio
-  ];
+  buildInputs = [ pkgconfig gstreamer gst-plugins-base libpulseaudio]
+    ++ optional (stdenv.isLinux) alsaLib;
   qmakeFlags = [ "GST_VERSION=1.0" ];
+  NIX_LDFLAGS = optionalString (stdenv.isDarwin) "-lobjc";
 }
diff --git a/pkgs/development/libraries/qt-5/5.8/qtsensors.nix b/pkgs/development/libraries/qt-5/5.8/qtsensors.nix
index 61e64dc47e4d..7bb18f56fe2e 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtsensors.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtsensors.nix
@@ -1,4 +1,6 @@
-{ qtSubmodule, qtbase, qtdeclarative }:
+{ stdenv, qtSubmodule, qtbase, qtdeclarative }:
+
+with stdenv.lib;
 
 qtSubmodule {
   name = "qtsensors";
diff --git a/pkgs/development/libraries/qt-5/5.8/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.8/qtserialport/default.nix
index 2bffd0a2bd61..1fde2c2bd18e 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtserialport/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtserialport/default.nix
@@ -1,9 +1,11 @@
-{ qtSubmodule, qtbase, substituteAll, systemd }:
+{ stdenv, qtSubmodule, qtbase, substituteAll, systemd }:
+
+with stdenv.lib;
 
 qtSubmodule {
   name = "qtserialport";
   qtInputs = [ qtbase ];
-  patches = [
+  patches = optionals (stdenv.isLinux) [
     (substituteAll {
       src = ./0001-dlopen-serialport-udev.patch;
       libudev = systemd.lib;
diff --git a/pkgs/development/libraries/qt-5/5.8/qttools/default.nix b/pkgs/development/libraries/qt-5/5.8/qttools/default.nix
index d72d7b6c64cb..6b97c2d85cd2 100644
--- a/pkgs/development/libraries/qt-5/5.8/qttools/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qttools/default.nix
@@ -1,11 +1,28 @@
-{ qtSubmodule, lib, copyPathsToStore, qtbase }:
+{ stdenv, qtSubmodule, makeQtWrapper, copyPathsToStore, qtbase }:
+
+with stdenv.lib;
 
 qtSubmodule {
   name = "qttools";
   qtInputs = [ qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ makeQtWrapper ];
+
+  patches = copyPathsToStore (readPathsFromFile ./. ./series);
   postFixup = ''
     moveToOutput "bin/qdbus" "$out"
     moveToOutput "bin/qtpaths" "$out"
   '';
+
+  postInstall =   ''
+    wrapQtProgram $out/bin/qcollectiongenerator
+    wrapQtProgram $out/bin/qhelpconverter
+    wrapQtProgram $out/bin/qhelpgenerator
+    wrapQtProgram $out/bin/qtdiag
+  '' + optionalString (stdenv.isDarwin) ''
+    wrapQtProgram $out/bin/Assistant.app/Contents/MacOS/Assistant
+    wrapQtProgram $out/bin/Designer.app/Contents/MacOS/Designer
+    wrapQtProgram $out/bin/Linguist.app/Contents/MacOS/Linguist
+    wrapQtProgram $out/bin/pixeltool.app/Contents/MacOS/pixeltool
+    wrapQtProgram $out/bin/qdbusviewer.app/Contents/MacOS/qdbusviewer
+  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.8/qtwebengine/default.nix b/pkgs/development/libraries/qt-5/5.8/qtwebengine/default.nix
index 1edb0846029e..37f12eed758c 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtwebengine/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtwebengine/default.nix
@@ -17,6 +17,8 @@
 , lib, stdenv # lib.optional, needsPax
 }:
 
+with stdenv.lib;
+
 qtSubmodule {
   name = "qtwebengine";
   qtInputs = [ qtquickcontrols qtlocation qtwebchannel ];
@@ -41,7 +43,7 @@ qtSubmodule {
       -e "s,QLibraryInfo::location(QLibraryInfo::TranslationsPath),QLatin1String(\"$out/translations\"),g" \
       -e "s,QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath),QLatin1String(\"$out/libexec\"),g" \
       src/core/web_engine_library_info.cpp
-
+ '' + optionalString (!stdenv.isDarwin) ''
     sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
       src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
 
@@ -49,11 +51,9 @@ qtSubmodule {
       src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
   '';
 
-  qmakeFlags = lib.optional enableProprietaryCodecs "WEBENGINE_CONFIG+=use_proprietary_codecs";
+  qmakeFlags = optional enableProprietaryCodecs "WEBENGINE_CONFIG+=use_proprietary_codecs";
 
   propagatedBuildInputs = [
-    dbus zlib minizip alsaLib snappy nss protobuf jsoncpp libevent
-
     # Image formats
     libjpeg libpng libtiff libwebp
 
@@ -61,19 +61,28 @@ qtSubmodule {
     srtp libvpx
 
     # Audio formats
-    alsaLib libopus
+    libopus
 
     # Text rendering
-    fontconfig freetype harfbuzz icu
+    harfbuzz icu
+  ]
+  ++ optionals (!stdenv.isDarwin) [
+    dbus zlib minizip snappy nss protobuf jsoncpp libevent
 
-    # X11 libs
-    xlibs.xrandr libXScrnSaver libXcursor libXrandr xlibs.libpciaccess libXtst
-    xlibs.libXcomposite
+    # Audio formats
+    alsaLib
+
+    # Text rendering
+    fontconfig freetype
 
     libcap
     pciutils
+
+    # X11 libs
+    xlibs.xrandr libXScrnSaver libXcursor libXrandr xlibs.libpciaccess libXtst
+    xlibs.libXcomposite
   ];
-  patches = lib.optional stdenv.needsPax ./qtwebengine-paxmark-mksnapshot.patch;
+  patches = optional stdenv.needsPax ./qtwebengine-paxmark-mksnapshot.patch;
   postInstall = ''
     cat > $out/libexec/qt.conf <<EOF
     [Paths]
diff --git a/pkgs/development/libraries/qt-5/5.8/qtwebkit/0004-icucore-darwin.patch b/pkgs/development/libraries/qt-5/5.8/qtwebkit/0004-icucore-darwin.patch
new file mode 100644
index 000000000000..a1cc1892288b
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.8/qtwebkit/0004-icucore-darwin.patch
@@ -0,0 +1,11 @@
+--- qtwebkit-opensource-src-5.8.0.orig/Source/WTF/WTF.pri
++++ qtwebkit-opensource-src-5.8.0/Source/WTF/WTF.pri
+@@ -12,7 +12,7 @@
+     # Mac OS does ship libicu but not the associated header files.
+     # Therefore WebKit provides adequate header files.
+     INCLUDEPATH = $${ROOT_WEBKIT_DIR}/Source/WTF/icu $$INCLUDEPATH
+-    LIBS += -licucore
++    LIBS += /usr/lib/libicucore.dylib
+ } else:!use?(wchar_unicode): {
+     win32 {
+         CONFIG(static, static|shared) {
diff --git a/pkgs/development/libraries/qt-5/5.8/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.8/qtwebkit/default.nix
index 915a6bcae8a8..881acb442e8b 100644
--- a/pkgs/development/libraries/qt-5/5.8/qtwebkit/default.nix
+++ b/pkgs/development/libraries/qt-5/5.8/qtwebkit/default.nix
@@ -2,6 +2,7 @@
 , fontconfig, gdk_pixbuf, gtk2, libwebp, libxml2, libxslt
 , sqlite, systemd, glib, gst_all_1
 , bison2, flex, gdb, gperf, perl, pkgconfig, python2, ruby
+, darwin
 , substituteAll
 , flashplayerFix ? false
 }:
@@ -11,10 +12,16 @@ with stdenv.lib;
 qtSubmodule {
   name = "qtwebkit";
   qtInputs = [ qtdeclarative qtlocation qtsensors ];
-  buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base ];
+  buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base ]
+    ++ optionals (stdenv.isDarwin) (with darwin.apple_sdk.frameworks; [ OpenGL ]);
   nativeBuildInputs = [
     bison2 flex gdb gperf perl pkgconfig python2 ruby
   ];
+
+  __impureHostDeps = optionals (stdenv.isDarwin) [
+    "/usr/lib/libicucore.dylib"
+  ];
+
   patches =
     let dlopen-webkit-nsplugin = substituteAll {
           src = ./0001-dlopen-webkit-nsplugin.patch;
@@ -30,6 +37,7 @@ qtSubmodule {
           libudev = systemd.lib;
         };
     in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
-    ++ [ dlopen-webkit-udev ];
-  meta.maintainers = with stdenv.lib.maintainers; [ abbradar ];
+    ++ optionals (!stdenv.isDarwin) [ dlopen-webkit-udev ]
+    ++ optionals (stdenv.isDarwin) [ ./0004-icucore-darwin.patch ];
+  meta.maintainers = with stdenv.lib.maintainers; [ abbradar periklis ];
 }
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index 10fc7bf10ac7..7712a2890f1b 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -40,9 +40,9 @@ stdenv.mkDerivation {
         -e 's|^[[:space:]]*\(CUDART_LIB    =\)|CUDART_LIB = $(CUDA_ROOT)/lib64/libcudart.so|' \
         -e 's|^[[:space:]]*\(CUBLAS_LIB    =\)|CUBLAS_LIB = $(CUDA_ROOT)/lib64/libcublas.so|' \
         -e 's|^[[:space:]]*\(CUDA_INC_PATH =\)|CUDA_INC_PATH = $(CUDA_ROOT)/include/|' \
-        -e 's|^[[:space:]]*\(NV_20         =\)|NV_20 = -arch=sm_20 -Xcompiler -fPIC|' \
-        -e 's|^[[:space:]]*\(NV_30         =\)|NV_30 = -arch=sm_30 -Xcompiler -fPIC|' \
-        -e 's|^[[:space:]]*\(NV_35         =\)|NV_35 = -arch=sm_35 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NV20          =\)|NV20 = -arch=sm_20 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NV30          =\)|NV30 = -arch=sm_30 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NV35          =\)|NV35 = -arch=sm_35 -Xcompiler -fPIC|' \
         -e 's|^[[:space:]]*\(NVCC          =\) echo|NVCC = $(CUDA_ROOT)/bin/nvcc|' \
         -e 's|^[[:space:]]*\(NVCCFLAGS     =\)|NVCCFLAGS = $(NV20) -O3 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_60,code=sm_60|'
   '';
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
         for i in "$out"/lib/lib*.a; do
           ar -x $i
         done
-        ''${CC} *.o ${if stdenv.isDarwin then "-dynamiclib" else "--shared"} -o "$out/lib/libsuitesparse.${SHLIB_EXT}" -lopenblas
+        ${if enableCuda then cudatoolkit else stdenv.cc.outPath}/bin/${if enableCuda then "nvcc" else "cc"} *.o ${if stdenv.isDarwin then "-dynamiclib" else "--shared"} -o "$out/lib/libsuitesparse.${SHLIB_EXT}" -lopenblas ${stdenv.lib.optionalString enableCuda "-lcublas"}
     )
     for i in umfpack cholmod amd camd colamd spqr; do
       ln -s libsuitesparse.${SHLIB_EXT} "$out"/lib/lib$i.${SHLIB_EXT}
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index a1b9ee03f23a..4432c22bcd8c 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -3,12 +3,12 @@
   libXext, wayland, mesa_noglu }:
 
 let
-  version = "1.0.39.1";
+  version = "1.0.42.2";
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-LoaderAndValidationLayers";
     rev = "sdk-${version}";
-    sha256 = "0y9zzrnjjjza2kkf5jfsdqhn98md6rsq0hb7jg62z2dipzky7zdp";
+    sha256 = "0na1ax2cgv6w29213mby56mndfsj3iizj3n5pbpy4s4p7ij9kdgn";
   };
 in
 
@@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
     "-DFALLBACK_DATA_DIRS=${mesa_noglu.driverLink}/share:/usr/local/share:/usr/share"
   ];
 
-  patches = [ ./use-xdg-paths.patch ./fallback-paths.patch ];
-
   outputs = [ "out" "dev" "demos" ];
 
   preConfigure = ''
@@ -59,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage    = "http://www.lunarg.com";
     platforms   = platforms.linux;
     license     = licenses.asl20;
+    maintainers = [ maintainers.ralith ];
   };
 }
diff --git a/pkgs/development/libraries/vulkan-loader/fallback-paths.patch b/pkgs/development/libraries/vulkan-loader/fallback-paths.patch
deleted file mode 100644
index d8d9fdd3f5f1..000000000000
--- a/pkgs/development/libraries/vulkan-loader/fallback-paths.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-commit a59b141559a8c1813da438b97e5f79eeb6cc7642
-Author: Benjamin Saunders <ben.e.saunders@gmail.com>
-Date:   Sun Feb 19 11:14:24 2017 -0800
-
-    loader: Configurable fallback search paths
-    
-    This makes it easier for non-FHS distributions to behave well when the loader
-    is used by a SUID process or in an otherwise unusual environment.
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a43d264..d28b3f5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -16,6 +16,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- find_package(PythonInterp 3 REQUIRED)
- 
- if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-+    set(FALLBACK_CONFIG_DIRS "/etc/xdg" CACHE STRING
-+        "Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant.")
-+    set(FALLBACK_DATA_DIRS "/usr/local/share:/usr/share" CACHE STRING
-+        "Search path to use when XDG_DATA_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant.")
-+
-     include(FindPkgConfig)
-     option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
-     option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
-@@ -285,7 +290,10 @@ run_vk_xml_generate(dispatch_table_generator.py vk_dispatch_table_helper.h)
- if(NOT WIN32)
-     include(GNUInstallDirs)
- 
-+    add_definitions(-DFALLBACK_CONFIG_DIRS="${FALLBACK_CONFIG_DIRS}")
-+    add_definitions(-DFALLBACK_DATA_DIRS="${FALLBACK_DATA_DIRS}")
-     add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
-+
-     # Make sure /etc is searched by the loader
-     if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
-         add_definitions(-DEXTRASYSCONFDIR="/etc")
-diff --git a/loader/loader.c b/loader/loader.c
-index 81c37c4..83378eb 100644
---- a/loader/loader.c
-+++ b/loader/loader.c
-@@ -2644,9 +2644,9 @@ static VkResult loader_get_manifest_files(const struct loader_instance *inst, co
-         const char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
-         const char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
-         if (xdgconfdirs == NULL || xdgconfdirs[0] == '\0')
--            xdgconfdirs = "/etc/xdg";
-+            xdgconfdirs = FALLBACK_CONFIG_DIRS;
-         if (xdgdatadirs == NULL || xdgdatadirs[0] == '\0')
--            xdgdatadirs = "/usr/local/share:/usr/share";
-+            xdgdatadirs = FALLBACK_DATA_DIRS;
-         const size_t rel_size = strlen(relative_location);
-         // Leave space for trailing separators
-         loc_size += strlen(xdgconfdirs) + strlen(xdgdatadirs) + 2*rel_size + 2;
diff --git a/pkgs/development/libraries/vulkan-loader/use-xdg-paths.patch b/pkgs/development/libraries/vulkan-loader/use-xdg-paths.patch
deleted file mode 100644
index eb7869cd73c0..000000000000
--- a/pkgs/development/libraries/vulkan-loader/use-xdg-paths.patch
+++ /dev/null
@@ -1,322 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 27ab6e5..e59256e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -256,17 +256,10 @@ if(NOT WIN32)
-     include(GNUInstallDirs)
- 
-     add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
--    add_definitions(-DDATADIR="${CMAKE_INSTALL_FULL_DATADIR}")
--
-     # Make sure /etc is searched by the loader
--    if (NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
-+    if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
-         add_definitions(-DEXTRASYSCONFDIR="/etc")
-     endif()
--
--    # Make sure /usr/share is searched by the loader
--    if (NOT (CMAKE_INSTALL_FULL_DATADIR STREQUAL "/usr/share"))
--        add_definitions(-DEXTRADATADIR="/usr/share")
--    endif()
- endif()
- 
- if(UNIX)
-diff --git a/loader/loader.c b/loader/loader.c
-index 24758f4..af7cc85 100644
---- a/loader/loader.c
-+++ b/loader/loader.c
-@@ -2909,7 +2909,7 @@ static VkResult
- loader_get_manifest_files(const struct loader_instance *inst,
-                           const char *env_override, const char *source_override,
-                           bool is_layer, bool warn_if_not_present,
--                          const char *location, const char *home_location,
-+                          const char *location, const char *relative_location,
-                           struct loader_manifest_files *out_files) {
-     const char * override = NULL;
-     char *override_getenv = NULL;
-@@ -2941,9 +2941,9 @@ loader_get_manifest_files(const struct loader_instance *inst,
-     }
- 
- #if !defined(_WIN32)
--    if (location == NULL && home_location == NULL) {
-+    if (location == NULL && relative_location == NULL) {
- #else
--    home_location = NULL;
-+    relative_location = NULL;
-     if (location == NULL) {
- #endif
-         loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
-@@ -2962,16 +2962,89 @@ loader_get_manifest_files(const struct loader_instance *inst,
-     // Make a copy of the input we are using so it is not modified
-     // Also handle getting the location(s) from registry on Windows
-     if (override == NULL) {
--        loc = loader_stack_alloc(strlen(location) + 1);
-+        size_t loc_size = strlen(location) + 1;
-+#if !defined(_WIN32)
-+        const char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
-+        const char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
-+        if (xdgconfdirs == NULL || xdgconfdirs[0] == '\0')
-+            xdgconfdirs = "/etc/xdg";
-+        if (xdgdatadirs == NULL || xdgdatadirs[0] == '\0')
-+            xdgdatadirs = "/usr/local/share:/usr/share";
-+        const size_t rel_size = strlen(relative_location);
-+        // Leave space for trailing separators
-+        loc_size += strlen(xdgconfdirs) + strlen(xdgdatadirs) + 2*rel_size + 2;
-+        for (const char *x = xdgconfdirs; *x; ++x)
-+            if (*x == PATH_SEPARATOR) loc_size += rel_size;
-+        for (const char *x = xdgdatadirs; *x; ++x)
-+            if (*x == PATH_SEPARATOR) loc_size += rel_size;
-+        loc_size += strlen(SYSCONFDIR) + rel_size + 1;
-+#ifdef EXTRASYSCONFDIR
-+        loc_size += strlen(EXTRASYSCONFDIR) + rel_size + 1;
-+#endif
-+#endif
-+        loc = loader_stack_alloc(loc_size);
-         if (loc == NULL) {
-             loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
-                        "loader_get_manifest_files: Failed to allocate "
-                        "%d bytes for manifest file location.",
--                       strlen(location));
-+                       loc_size);
-             res = VK_ERROR_OUT_OF_HOST_MEMORY;
-             goto out;
-         }
--        strcpy(loc, location);
-+        char *loc_write = loc;
-+#if !defined(_WIN32)
-+        const char *loc_read;
-+
-+        loc_read = &xdgconfdirs[0];
-+        for (const char *x = loc_read;; ++x) {
-+            if (*x == PATH_SEPARATOR || *x == '\0') {
-+                const size_t s = x - loc_read;
-+                memcpy(loc_write, loc_read, s);
-+                loc_write += s;
-+                memcpy(loc_write, relative_location, rel_size);
-+                loc_write += rel_size;
-+                *loc_write++ = PATH_SEPARATOR;
-+                if (*x == 0)
-+                    break;
-+                loc_read = ++x;
-+            }
-+        }
-+
-+        memcpy(loc_write, SYSCONFDIR, strlen(SYSCONFDIR));
-+        loc_write += strlen(SYSCONFDIR);
-+        memcpy(loc_write, relative_location, rel_size);
-+        loc_write += rel_size;
-+        *loc_write++ = PATH_SEPARATOR;
-+
-+#ifdef EXTRASYSCONFDIR
-+        memcpy(loc_write, EXTRASYSCONFDIR, strlen(EXTRASYSCONFDIR));
-+        loc_write += strlen(EXTRASYSCONFDIR);
-+        memcpy(loc_write, relative_location, rel_size);
-+        loc_write += rel_size;
-+        *loc_write++ = PATH_SEPARATOR;
-+#endif
-+
-+        loc_read = &xdgdatadirs[0];
-+        for (const char *x = loc_read;; ++x) {
-+            if (*x == PATH_SEPARATOR || *x == '\0') {
-+                const size_t s = x - loc_read;
-+                memcpy(loc_write, loc_read, s);
-+                loc_write += s;
-+                memcpy(loc_write, relative_location, rel_size);
-+                loc_write += rel_size;
-+                *loc_write++ = PATH_SEPARATOR;
-+                if (*x == 0)
-+                    break;
-+                loc_read = ++x;
-+            }
-+        }
-+        --loc_write;
-+        *loc_write = '\0';
-+#else
-+        memcpy(loc_write, location, loc_size);
-+        loc[loc_size-1] = '\0';
-+#endif
-+
- #if defined(_WIN32)
-         VkResult reg_result = loaderGetRegistryFiles(inst, loc, &reg);
-         if (VK_SUCCESS != reg_result || NULL == reg) {
-@@ -3122,14 +3195,14 @@ loader_get_manifest_files(const struct loader_instance *inst,
-         }
-         file = next_file;
- #if !defined(_WIN32)
--        if (home_location != NULL &&
-+        if (relative_location != NULL &&
-             (next_file == NULL || *next_file == '\0') && override == NULL) {
-             char *xdgdatahome = secure_getenv("XDG_DATA_HOME");
-             size_t len;
-             if (xdgdatahome != NULL) {
- 
-                 char *home_loc = loader_stack_alloc(strlen(xdgdatahome) + 2 +
--                                                    strlen(home_location));
-+                                                    strlen(relative_location));
-                 if (home_loc == NULL) {
-                     loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
-                                "loader_get_manifest_files: Failed to allocate "
-@@ -3139,15 +3212,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
-                 }
-                 strcpy(home_loc, xdgdatahome);
-                 // Add directory separator if needed
--                if (home_location[0] != DIRECTORY_SYMBOL) {
-+                if (relative_location[0] != DIRECTORY_SYMBOL) {
-                     len = strlen(home_loc);
-                     home_loc[len] = DIRECTORY_SYMBOL;
-                     home_loc[len + 1] = '\0';
-                 }
--                strcat(home_loc, home_location);
-+                strcat(home_loc, relative_location);
-                 file = home_loc;
-                 next_file = loader_get_next_path(file);
--                home_location = NULL;
-+                relative_location = NULL;
- 
-                 loader_log(
-                     inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
-@@ -3160,7 +3233,7 @@ loader_get_manifest_files(const struct loader_instance *inst,
-                 char *home = secure_getenv("HOME");
-                 if (home != NULL) {
-                     char *home_loc = loader_stack_alloc(strlen(home) + 16 +
--                                                        strlen(home_location));
-+                                                        strlen(relative_location));
-                     if (home_loc == NULL) {
-                         loader_log(
-                             inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
-@@ -3178,15 +3251,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
-                     }
-                     strcat(home_loc, ".local/share");
- 
--                    if (home_location[0] != DIRECTORY_SYMBOL) {
-+                    if (relative_location[0] != DIRECTORY_SYMBOL) {
-                         len = strlen(home_loc);
-                         home_loc[len] = DIRECTORY_SYMBOL;
-                         home_loc[len + 1] = '\0';
-                     }
--                    strcat(home_loc, home_location);
-+                    strcat(home_loc, relative_location);
-                     file = home_loc;
-                     next_file = loader_get_next_path(file);
--                    home_location = NULL;
-+                    relative_location = NULL;
- 
-                     loader_log(
-                         inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
-@@ -3263,7 +3336,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst,
-     // Get a list of manifest files for ICDs
-     res = loader_get_manifest_files(inst, "VK_ICD_FILENAMES", NULL, false, true,
-                                     DEFAULT_VK_DRIVERS_INFO,
--                                    HOME_VK_DRIVERS_INFO, &manifest_files);
-+                                    RELATIVE_VK_DRIVERS_INFO, &manifest_files);
-     if (VK_SUCCESS != res || manifest_files.count == 0) {
-         goto out;
-     }
-@@ -3490,7 +3563,7 @@ void loader_layer_scan(const struct loader_instance *inst,
-     if (VK_SUCCESS !=
-         loader_get_manifest_files(inst, LAYERS_PATH_ENV, LAYERS_SOURCE_PATH,
-                                   true, true, DEFAULT_VK_ELAYERS_INFO,
--                                  HOME_VK_ELAYERS_INFO, &manifest_files[0])) {
-+                                  RELATIVE_VK_ELAYERS_INFO, &manifest_files[0])) {
-         goto out;
-     }
- 
-@@ -3499,7 +3572,7 @@ void loader_layer_scan(const struct loader_instance *inst,
-     // overridden by LAYERS_PATH_ENV
-     if (VK_SUCCESS != loader_get_manifest_files(inst, NULL, NULL, true, false,
-                                                 DEFAULT_VK_ILAYERS_INFO,
--                                                HOME_VK_ILAYERS_INFO,
-+                                                RELATIVE_VK_ILAYERS_INFO,
-                                                 &manifest_files[1])) {
-         goto out;
-     }
-@@ -3569,7 +3642,7 @@ void loader_implicit_layer_scan(const struct loader_instance *inst,
-     // overridden by LAYERS_PATH_ENV
-     VkResult res = loader_get_manifest_files(
-         inst, NULL, NULL, true, false, DEFAULT_VK_ILAYERS_INFO,
--        HOME_VK_ILAYERS_INFO, &manifest_files);
-+        RELATIVE_VK_ILAYERS_INFO, &manifest_files);
-     if (VK_SUCCESS != res || manifest_files.count == 0) {
-         return;
-     }
-diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h
-index dc4ac10..50a7966 100644
---- a/loader/vk_loader_platform.h
-+++ b/loader/vk_loader_platform.h
-@@ -57,47 +57,9 @@
- #define VULKAN_ILAYERCONF_DIR "implicit_layer.d"
- #define VULKAN_LAYER_DIR      "layer"
- 
--#if defined(EXTRASYSCONFDIR)
--#define EXTRA_DRIVERS_SYSCONFDIR_INFO ":"                                      \
--    EXTRASYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR
--#define EXTRA_ELAYERS_SYSCONFDIR_INFO ":"                                      \
--    EXTRASYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
--#define EXTRA_ILAYERS_SYSCONFDIR_INFO ":"                                      \
--    EXTRASYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
--#else
--#define EXTRA_DRIVERS_SYSCONFDIR_INFO
--#define EXTRA_ELAYERS_SYSCONFDIR_INFO
--#define EXTRA_ILAYERS_SYSCONFDIR_INFO
--#endif
--
--#if defined(EXTRADATADIR)
--#define EXTRA_DRIVERS_DATADIR_INFO ":"                                         \
--    EXTRADATADIR VULKAN_DIR VULKAN_ICDCONF_DIR
--#define EXTRA_ELAYERS_DATADIR_INFO ":"                                         \
--    EXTRADATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
--#define EXTRA_ILAYERS_DATADIR_INFO ":"                                         \
--    EXTRADATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
--#else
--#define EXTRA_DRIVERS_DATADIR_INFO
--#define EXTRA_ELAYERS_DATADIR_INFO
--#define EXTRA_ILAYERS_DATADIR_INFO
--#endif
--
--#define DEFAULT_VK_DRIVERS_INFO                                                \
--    SYSCONFDIR   VULKAN_DIR VULKAN_ICDCONF_DIR ":"                             \
--    DATADIR      VULKAN_DIR VULKAN_ICDCONF_DIR                                 \
--    EXTRA_DRIVERS_SYSCONFDIR_INFO                                              \
--    EXTRA_DRIVERS_DATADIR_INFO
--#define DEFAULT_VK_ELAYERS_INFO                                                \
--    SYSCONFDIR   VULKAN_DIR VULKAN_ELAYERCONF_DIR ":"                          \
--    DATADIR      VULKAN_DIR VULKAN_ELAYERCONF_DIR                              \
--    EXTRA_ELAYERS_SYSCONFDIR_INFO                                              \
--    EXTRA_ELAYERS_DATADIR_INFO
--#define DEFAULT_VK_ILAYERS_INFO                                                \
--    SYSCONFDIR   VULKAN_DIR VULKAN_ILAYERCONF_DIR ":"                          \
--    DATADIR      VULKAN_DIR VULKAN_ILAYERCONF_DIR                              \
--    EXTRA_ILAYERS_SYSCONFDIR_INFO                                              \
--    EXTRA_ILAYERS_DATADIR_INFO
-+#define DEFAULT_VK_DRIVERS_INFO ""
-+#define DEFAULT_VK_ELAYERS_INFO ""
-+#define DEFAULT_VK_ILAYERS_INFO ""
- 
- #define DEFAULT_VK_DRIVERS_PATH ""
- #if !defined(DEFAULT_VK_LAYERS_PATH)
-@@ -109,9 +71,9 @@
- #endif
- #define LAYERS_PATH_ENV "VK_LAYER_PATH"
- 
--#define HOME_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
--#define HOME_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
--#define HOME_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
-+#define RELATIVE_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
-+#define RELATIVE_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
-+#define RELATIVE_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
- 
- // C99:
- #define PRINTF_SIZE_T_SPECIFIER "%zu"
-@@ -251,9 +213,9 @@ loader_platform_thread_cond_broadcast(loader_platform_thread_cond *pCond) {
- #define LAYERS_SOURCE_PATH NULL
- #endif
- #define LAYERS_PATH_ENV "VK_LAYER_PATH"
--#define HOME_VK_DRIVERS_INFO ""
--#define HOME_VK_ELAYERS_INFO ""
--#define HOME_VK_ILAYERS_INFO ""
-+#define RELATIVE_VK_DRIVERS_INFO ""
-+#define RELATIVE_VK_ELAYERS_INFO ""
-+#define RELATIVE_VK_ILAYERS_INFO ""
- #define PRINTF_SIZE_T_SPECIFIER "%Iu"
- 
- // File IO
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index cbfdf876dbaf..e263708c18e9 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -62,8 +62,8 @@ stdenv.mkDerivation rec {
   };
 
   enableParallelBuilding = true;
-  
+
   meta = {
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/xbase/default.nix b/pkgs/development/libraries/xbase/default.nix
index 931d40644000..45d7d6f8301c 100644
--- a/pkgs/development/libraries/xbase/default.nix
+++ b/pkgs/development/libraries/xbase/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://linux.techass.com/projects/xdb/;
     description = "C++ class library formerly known as XDB";
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index 6228f9c5fec0..ea7e790ccaed 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -32,7 +32,10 @@ in
     };
   };
   hunchentoot = addNativeLibs [pkgs.openssl];
-  iolib = addNativeLibs [pkgs.libfixposix pkgs.gcc];
+  iolib = x: {
+    propagatedBuildInputs = (x.propagatedBuildInputs or []) ++ [pkgs.libfixposix pkgs.gcc];
+    testSystems = (x.testSystems or ["iolib"]) ++ ["iolib/os" "iolib/zstreams"];
+  };
   cl-unicode = addDeps (with qlnp; [cl-ppcre flexi-streams]);
   clack =  addDeps (with qlnp;[lack bordeaux-threads prove]);
   clack-v1-compat =  addDeps (with qlnp;[
diff --git a/pkgs/development/pure-modules/octave/default.nix b/pkgs/development/pure-modules/octave/default.nix
index 61bc7a4d5c15..f1a54eb50aed 100644
--- a/pkgs/development/pure-modules/octave/default.nix
+++ b/pkgs/development/pure-modules/octave/default.nix
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
     description = "An Octave module for the Pure programming language";
     homepage = http://puredocs.bitbucket.org/pure-octave.html;
     license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.linux;
+    # This is set to none for now because it does not work with the
+    # current stable version of Octave.
+    platforms = stdenv.lib.platforms.none;
     maintainers = with stdenv.lib.maintainers; [ asppsa ];
   };
 }
diff --git a/pkgs/development/python-modules/django/1_10.nix b/pkgs/development/python-modules/django/1_10.nix
index 271f8a5467ba..6cc3af8c2700 100644
--- a/pkgs/development/python-modules/django/1_10.nix
+++ b/pkgs/development/python-modules/django/1_10.nix
@@ -4,12 +4,12 @@
 }:
 buildPythonPackage rec {
   name = "Django-${version}";
-  version = "1.10.6";
+  version = "1.10.7";
   disabled = pythonOlder "2.7";
 
   src = fetchurl {
     url = "http://www.djangoproject.com/m/releases/1.10/${name}.tar.gz";
-    sha256 = "0q9c7hx720vc0jzq4xlxwhnxmmm8kh0qsqj3l46m29mi98jvwvks";
+    sha256 = "1f5hnn2dzfr5szk4yc47bs4kk2nmrayjcvgpqi2s4l13pjfpfgar";
   };
 
   patches = [
diff --git a/pkgs/development/tools/analysis/lcov/default.nix b/pkgs/development/tools/analysis/lcov/default.nix
index daefafa9e6af..ad887baf23e9 100644
--- a/pkgs/development/tools/analysis/lcov/default.nix
+++ b/pkgs/development/tools/analysis/lcov/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, perl}:
 
 stdenv.mkDerivation rec {
-  name = "lcov-1.12";
+  name = "lcov-1.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/ltp/${name}.tar.gz";
-    sha256 = "19wfifdpxxivhq9adbphanjfga9bg9spms9v7c3589wndjff8x5l";
+    sha256 = "08wabnb0gcjqk0qc65a6cgbbmz6b8lvam3p7byh0dk42hj3jr5s4";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index e6006e948817..309a6e13606a 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "0.13.13";
+  version = "0.13.14";
 
   src = fetchurl {
     url = "https://dl.bintray.com/sbt/native-packages/sbt/${version}/${name}.tgz";
-    sha256 = "0ygrz92qkzasj6fps1bjg7wlgl69867jjjc37yjadib0l8hkvl20";
+    sha256 = "1q4jnrva21s0rhcn561ayfp5yhd6rpxidgx6f4i5n3dla3p9zkr9";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/chefdk/Gemfile.lock b/pkgs/development/tools/chefdk/Gemfile.lock
index ddbb1f5f1ddf..c397758aaac1 100644
--- a/pkgs/development/tools/chefdk/Gemfile.lock
+++ b/pkgs/development/tools/chefdk/Gemfile.lock
@@ -1,244 +1,268 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.4.0)
+    addressable (2.5.1)
+      public_suffix (~> 2.0, >= 2.0.2)
     app_conf (0.4.2)
-    ast (2.2.0)
-    berkshelf (4.3.0)
+    artifactory (2.8.1)
+    ast (2.3.0)
+    backports (3.7.0)
+    berkshelf (5.6.4)
       addressable (~> 2.3, >= 2.3.4)
-      berkshelf-api-client (~> 2.0, >= 2.0.2)
-      buff-config (~> 1.0)
-      buff-extensions (~> 1.0)
-      buff-shell_out (~> 0.1)
-      celluloid (= 0.16.0)
-      celluloid-io (~> 0.16.1)
+      berkshelf-api-client (>= 2.0.2, < 4.0)
+      buff-config (~> 2.0)
+      buff-extensions (~> 2.0)
+      buff-shell_out (~> 1.0)
       cleanroom (~> 1.0)
       faraday (~> 0.9)
       httpclient (~> 2.7)
       minitar (~> 0.5, >= 0.5.4)
+      mixlib-archive (~> 0.4)
       octokit (~> 4.0)
       retryable (~> 2.0)
-      ridley (~> 4.5)
-      solve (~> 2.0)
-      thor (~> 0.19)
-    berkshelf-api-client (2.0.2)
-      faraday (~> 0.9.1)
-      httpclient (~> 2.7.0)
-      ridley (~> 4.5)
-    buff-config (1.0.1)
-      buff-extensions (~> 1.0)
-      varia_model (~> 0.4)
-    buff-extensions (1.0.0)
-    buff-ignore (1.1.1)
-    buff-ruby_engine (0.1.0)
-    buff-shell_out (0.2.0)
-      buff-ruby_engine (~> 0.1.0)
-    builder (3.2.2)
+      ridley (~> 5.0)
+      solve (> 2.0, < 4.0)
+      thor (~> 0.19, < 0.19.2)
+    berkshelf-api-client (3.0.0)
+      faraday (~> 0.9)
+      httpclient (~> 2.7)
+      ridley (>= 4.5, < 6.0)
+    blankslate (2.1.2.4)
+    buff-config (2.0.0)
+      buff-extensions (~> 2.0)
+      varia_model (~> 0.6)
+    buff-extensions (2.0.0)
+    buff-ignore (1.2.0)
+    buff-ruby_engine (1.0.0)
+    buff-shell_out (1.1.0)
+      buff-ruby_engine (~> 1.0)
+    builder (3.2.3)
     celluloid (0.16.0)
       timers (~> 4.0.0)
     celluloid-io (0.16.2)
       celluloid (>= 0.16.0)
       nio4r (>= 1.1.0)
-    chef (12.8.1)
+    chef (12.19.36)
+      addressable
       bundler (>= 1.10)
-      chef-config (= 12.8.1)
-      chef-zero (~> 4.5)
+      chef-config (= 12.19.36)
+      chef-zero (>= 4.8)
       diff-lcs (~> 1.2, >= 1.2.4)
       erubis (~> 2.7)
       ffi-yajl (~> 2.2)
       highline (~> 1.6, >= 1.6.9)
+      iniparse (~> 1.4)
+      mixlib-archive (~> 0.4)
       mixlib-authentication (~> 1.4)
-      mixlib-cli (~> 1.4)
+      mixlib-cli (~> 1.7)
       mixlib-log (~> 1.3)
       mixlib-shellout (~> 2.0)
-      net-ssh (>= 2.9, < 4.0)
-      net-ssh-multi (~> 1.1)
-      ohai (>= 8.6.0.alpha.1, < 9)
-      plist (~> 3.1.0)
+      net-sftp (~> 2.1, >= 2.1.2)
+      net-ssh (>= 2.9, < 5.0)
+      net-ssh-multi (~> 1.2, >= 1.2.1)
+      ohai (>= 8.6.0.alpha.1, < 13)
+      plist (~> 3.2)
       proxifier (~> 1.0)
-      rspec-core (~> 3.4)
-      rspec-expectations (~> 3.4)
-      rspec-mocks (~> 3.4)
+      rspec-core (~> 3.5)
+      rspec-expectations (~> 3.5)
+      rspec-mocks (~> 3.5)
       rspec_junit_formatter (~> 0.2.0)
       serverspec (~> 2.7)
       specinfra (~> 2.10)
       syslog-logger (~> 1.6)
       uuidtools (~> 2.1.5)
-    chef-config (12.8.1)
+    chef-config (12.19.36)
+      addressable
+      fuzzyurl
       mixlib-config (~> 2.0)
       mixlib-shellout (~> 2.0)
-    chef-dk (0.11.2)
+    chef-dk (1.3.40)
+      addressable (>= 2.3.5, < 2.6)
       chef (~> 12.5)
-      chef-provisioning (~> 1.2)
-      cookbook-omnifetch (~> 0.2, >= 0.2.2)
+      chef-provisioning (~> 2.0)
+      cookbook-omnifetch (~> 0.5)
       diff-lcs (~> 1.0)
       ffi-yajl (>= 1.0, < 3.0)
       minitar (~> 0.5.4)
-      mixlib-cli (~> 1.5)
+      mixlib-cli (~> 1.7)
       mixlib-shellout (~> 2.0)
       paint (~> 1.0)
-      solve (~> 2.0, >= 2.0.1)
-    chef-provisioning (1.6.0)
-      cheffish (>= 1.3.1, < 3.0)
-      inifile (~> 2.0)
-      mixlib-install (~> 0.7.0)
+      solve (> 2.0, < 4.0)
+    chef-provisioning (2.2.1)
+      cheffish (>= 4.0, < 6.0)
+      inifile (>= 2.0.2)
+      mixlib-install (>= 1.0, < 3.0)
       net-scp (~> 1.0)
-      net-ssh (>= 2.9, < 4.0)
-      net-ssh-gateway (~> 1.2.0)
-      winrm (~> 1.3)
-    chef-vault (2.8.0)
-    chef-zero (4.5.0)
+      net-ssh (>= 2.9, < 5.0)
+      net-ssh-gateway (~> 1.2)
+      winrm (~> 2.0)
+      winrm-elevated (~> 1.0)
+      winrm-fs (~> 1.0)
+    chef-vault (2.9.1)
+    chef-zero (5.3.2)
       ffi-yajl (~> 2.2)
       hashie (>= 2.0, < 4.0)
       mixlib-log (~> 1.3)
-      rack
+      rack (~> 2.0)
       uuidtools (~> 2.1)
-    cheffish (2.0.2)
-      chef-zero (~> 4.3)
-      compat_resource
-    chefspec (4.6.0)
-      chef (>= 11.14)
-      fauxhai (~> 3.0, >= 3.0.1)
+    cheffish (5.0.1)
+      chef-zero (~> 5.0)
+      net-ssh
+    chefspec (6.2.0)
+      chef (>= 12.0)
+      fauxhai (>= 3.6, < 5)
       rspec (~> 3.0)
     cleanroom (1.0.0)
     coderay (1.1.1)
-    compat_resource (12.8.0)
-    cookbook-omnifetch (0.2.2)
-      minitar (~> 0.5.4)
-    diff-lcs (1.2.5)
-    diffy (3.1.0)
-    docker-api (1.26.2)
+    cookbook-omnifetch (0.5.1)
+      mixlib-archive (~> 0.4)
+    cucumber-core (2.0.0)
+      backports (~> 3.6)
+      gherkin (~> 4.0)
+    diff-lcs (1.3)
+    diffy (3.2.0)
+    docker-api (1.33.3)
       excon (>= 0.38.0)
       json
     erubis (2.7.0)
-    excon (0.48.0)
+    excon (0.55.0)
     faraday (0.9.2)
       multipart-post (>= 1.2, < 3)
-    fauxhai (3.1.0)
+    fauxhai (4.1.0)
       net-ssh
-    ffi (1.9.10)
-    ffi-yajl (2.2.3)
+    ffi (1.9.18)
+    ffi-yajl (2.3.0)
       libyajl2 (~> 1.2)
-    foodcritic (6.0.1)
+    foodcritic (10.2.2)
+      cucumber-core (>= 1.3)
       erubis
-      gherkin (~> 2.11)
       nokogiri (>= 1.5, < 2.0)
       rake
       rufus-lru (~> 1.0)
       treetop (~> 1.4)
       yajl-ruby (~> 1.1)
-    gherkin (2.12.2)
-      multi_json (~> 1.3)
+    fuzzyurl (0.9.0)
+    gherkin (4.1.1)
     git (1.3.0)
     gssapi (1.2.0)
       ffi (>= 1.0.1)
     gyoku (1.3.1)
       builder (>= 2.1.2)
-    hashie (3.4.3)
+    hashie (3.5.5)
     highline (1.7.8)
-    hitimes (1.2.3)
-    httpclient (2.7.1)
-    inifile (2.0.2)
-    inspec (0.14.8)
-      json (~> 1.8)
+    hitimes (1.2.4)
+    httpclient (2.8.3)
+    inifile (3.0.0)
+    iniparse (1.4.2)
+    inspec (1.19.2)
+      addressable (~> 2.4)
+      faraday (>= 0.9.0)
+      hashie (~> 3.4)
+      json (>= 1.8, < 3.0)
       method_source (~> 0.8)
+      mixlib-log
+      parallel (~> 1.9)
       pry (~> 0)
-      r-train (~> 0.10.1)
       rainbow (~> 2)
-      rspec (~> 3.3)
+      rspec (~> 3)
       rspec-its (~> 1.2)
       rubyzip (~> 1.1)
+      sslshake (~> 1)
       thor (~> 0.19)
+      toml (~> 0.1)
+      train (>= 0.22.0, < 1.0)
     ipaddress (0.8.3)
-    json (1.8.3)
-    kitchen-inspec (0.12.3)
-      inspec (~> 0.14.1)
+    json (2.0.3)
+    kitchen-inspec (0.17.0)
+      hashie (~> 3.4)
+      inspec (>= 0.34.0, < 2.0.0)
       test-kitchen (~> 1.6)
-    kitchen-vagrant (0.19.0)
+    kitchen-vagrant (1.1.0)
       test-kitchen (~> 1.4)
-    knife-spork (1.6.1)
+    knife-spork (1.6.3)
       app_conf (>= 0.4.0)
       chef (>= 11.0.0)
       diffy (>= 3.0.1)
       git (>= 1.2.5)
     libyajl2 (1.2.0)
     little-plugger (1.1.4)
-    logging (2.0.0)
+    logging (2.2.0)
       little-plugger (~> 1.1)
       multi_json (~> 1.10)
     method_source (0.8.2)
-    mini_portile2 (2.0.0)
+    mini_portile2 (2.1.0)
     minitar (0.5.4)
-    mixlib-authentication (1.4.0)
+    mixlib-archive (0.4.1)
+      mixlib-log
+    mixlib-authentication (1.4.1)
       mixlib-log
-      rspec-core (~> 3.2)
-      rspec-expectations (~> 3.2)
-      rspec-mocks (~> 3.2)
-    mixlib-cli (1.5.0)
-    mixlib-config (2.2.1)
-    mixlib-install (0.7.1)
-    mixlib-log (1.6.0)
-    mixlib-shellout (2.2.6)
-    molinillo (0.2.3)
-    multi_json (1.11.2)
+    mixlib-cli (1.7.0)
+    mixlib-config (2.2.4)
+    mixlib-install (2.1.12)
+      artifactory
+      mixlib-shellout
+      mixlib-versioning
+      thor
+    mixlib-log (1.7.1)
+    mixlib-shellout (2.2.7)
+    mixlib-versioning (1.1.0)
+    molinillo (0.5.7)
+    multi_json (1.12.1)
     multipart-post (2.0.0)
     net-scp (1.2.1)
       net-ssh (>= 2.6.5)
-    net-ssh (3.0.2)
-    net-ssh-gateway (1.2.0)
+    net-sftp (2.1.2)
+      net-ssh (>= 2.6.5)
+    net-ssh (4.1.0)
+    net-ssh-gateway (1.3.0)
       net-ssh (>= 2.6.5)
     net-ssh-multi (1.2.1)
       net-ssh (>= 2.6.5)
       net-ssh-gateway (>= 1.2.0)
     net-telnet (0.1.1)
-    nio4r (1.2.1)
-    nokogiri (1.6.7.2)
-      mini_portile2 (~> 2.0.0.rc2)
+    nio4r (2.0.0)
+    nokogiri (1.7.1)
+      mini_portile2 (~> 2.1.0)
     nori (2.6.0)
-    octokit (4.3.0)
-      sawyer (~> 0.7.0, >= 0.5.3)
-    ohai (8.12.0)
+    octokit (4.7.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    ohai (8.23.0)
       chef-config (>= 12.5.0.alpha.1, < 13)
       ffi (~> 1.9)
       ffi-yajl (~> 2.2)
       ipaddress
       mixlib-cli
       mixlib-config (~> 2.0)
-      mixlib-log
+      mixlib-log (>= 1.7.1, < 2.0)
       mixlib-shellout (~> 2.0)
-      plist
-      rake (~> 10.1)
+      plist (~> 3.1)
       systemu (~> 2.6.4)
       wmi-lite (~> 1.0)
     paint (1.0.1)
-    parser (2.3.0.6)
+    parallel (1.11.1)
+    parser (2.4.0.0)
       ast (~> 2.2)
-    plist (3.1.0)
+    parslet (1.5.0)
+      blankslate (~> 2.0)
+    plist (3.2.0)
     polyglot (0.3.5)
     powerpack (0.1.1)
     proxifier (1.0.3)
-    pry (0.10.3)
+    pry (0.10.4)
       coderay (~> 1.1.0)
       method_source (~> 0.8.1)
       slop (~> 3.4)
-    r-train (0.10.3)
-      docker-api (~> 1.26.2)
-      json (~> 1.8)
-      mixlib-shellout (~> 2.1)
-      net-scp (~> 1.2)
-      net-ssh (>= 2.9, < 4.0)
-      winrm (~> 1.6)
-      winrm-fs (~> 0.3)
-    rack (1.6.4)
-    rainbow (2.1.0)
-    rake (10.5.0)
-    retryable (2.0.3)
-    ridley (4.5.0)
+    public_suffix (2.0.5)
+    rack (2.0.1)
+    rainbow (2.2.1)
+    rake (12.0.0)
+    retryable (2.0.4)
+    ridley (5.1.0)
       addressable
-      buff-config (~> 1.0)
-      buff-extensions (~> 1.0)
-      buff-ignore (~> 1.1)
-      buff-shell_out (~> 0.1)
+      buff-config (~> 2.0)
+      buff-extensions (~> 2.0)
+      buff-ignore (~> 1.2)
+      buff-shell_out (~> 1.0)
       celluloid (~> 0.16.0)
       celluloid-io (~> 0.16.1)
       chef-config (>= 12.5.0)
@@ -249,91 +273,107 @@ GEM
       json (>= 1.7.7)
       mixlib-authentication (>= 1.3.0)
       retryable (~> 2.0)
-      semverse (~> 1.1)
-      varia_model (~> 0.4.0)
-    rspec (3.4.0)
-      rspec-core (~> 3.4.0)
-      rspec-expectations (~> 3.4.0)
-      rspec-mocks (~> 3.4.0)
-    rspec-core (3.4.4)
-      rspec-support (~> 3.4.0)
-    rspec-expectations (3.4.0)
+      semverse (~> 2.0)
+      varia_model (~> 0.6)
+    rspec (3.5.0)
+      rspec-core (~> 3.5.0)
+      rspec-expectations (~> 3.5.0)
+      rspec-mocks (~> 3.5.0)
+    rspec-core (3.5.4)
+      rspec-support (~> 3.5.0)
+    rspec-expectations (3.5.0)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.4.0)
+      rspec-support (~> 3.5.0)
     rspec-its (1.2.0)
       rspec-core (>= 3.0.0)
       rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.4.1)
+    rspec-mocks (3.5.0)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.4.0)
-    rspec-support (3.4.1)
+      rspec-support (~> 3.5.0)
+    rspec-support (3.5.0)
     rspec_junit_formatter (0.2.3)
       builder (< 4)
       rspec-core (>= 2, < 4, != 2.12.0)
-    rubocop (0.38.0)
-      parser (>= 2.3.0.6, < 3.0)
+    rubocop (0.48.1)
+      parser (>= 2.3.3.1, < 3.0)
       powerpack (~> 0.1)
       rainbow (>= 1.99.1, < 3.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
-    ruby-progressbar (1.7.5)
-    rubyntlm (0.6.0)
-    rubyzip (1.2.0)
-    rufus-lru (1.0.5)
+    ruby-progressbar (1.8.1)
+    rubyntlm (0.6.1)
+    rubyzip (1.2.1)
+    rufus-lru (1.1.0)
     safe_yaml (1.0.4)
-    sawyer (0.7.0)
-      addressable (>= 2.3.5, < 2.5)
-      faraday (~> 0.8, < 0.10)
-    semverse (1.2.1)
-    serverspec (2.31.0)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    semverse (2.0.0)
+    serverspec (2.38.0)
       multi_json
       rspec (~> 3.0)
       rspec-its
       specinfra (~> 2.53)
-    sfl (2.2)
+    sfl (2.3)
     slop (3.6.0)
-    solve (2.0.2)
-      molinillo (~> 0.2.3)
-      semverse (~> 1.1)
-    specinfra (2.53.1)
+    solve (3.1.0)
+      molinillo (>= 0.5)
+      semverse (>= 1.1, < 3.0)
+    specinfra (2.67.7)
       net-scp
-      net-ssh (>= 2.7, < 3.1)
+      net-ssh (>= 2.7, < 5.0)
       net-telnet
       sfl
+    sslshake (1.1.0)
     syslog-logger (1.6.8)
     systemu (2.6.5)
-    test-kitchen (1.6.0)
-      mixlib-install (~> 0.7)
+    test-kitchen (1.16.0)
+      mixlib-install (>= 1.2, < 3.0)
       mixlib-shellout (>= 1.2, < 3.0)
       net-scp (~> 1.1)
-      net-ssh (>= 2.9, < 4.0)
+      net-ssh (>= 2.9, < 5.0)
+      net-ssh-gateway (~> 1.2)
       safe_yaml (~> 1.0)
-      thor (~> 0.18)
+      thor (~> 0.19, < 0.19.2)
     thor (0.19.1)
     timers (4.0.4)
       hitimes
-    treetop (1.6.5)
+    toml (0.1.2)
+      parslet (~> 1.5.0)
+    train (0.23.0)
+      docker-api (~> 1.26)
+      json (>= 1.8, < 3.0)
+      mixlib-shellout (~> 2.0)
+      net-scp (~> 1.2)
+      net-ssh (>= 2.9, < 5.0)
+      winrm (~> 2.0)
+      winrm-fs (~> 1.0)
+    treetop (1.6.8)
       polyglot (~> 0.3)
-    unicode-display_width (1.0.2)
+    unicode-display_width (1.1.3)
     uuidtools (2.1.5)
-    varia_model (0.4.1)
-      buff-extensions (~> 1.0)
+    varia_model (0.6.0)
+      buff-extensions (~> 2.0)
       hashie (>= 2.0.2, < 4.0.0)
-    winrm (1.7.2)
+    winrm (2.2.1)
       builder (>= 2.1.2)
+      erubis (~> 2.7)
       gssapi (~> 1.2)
       gyoku (~> 1.0)
       httpclient (~> 2.2, >= 2.2.0.2)
       logging (>= 1.6.1, < 3.0)
       nori (~> 2.0)
-      rubyntlm (~> 0.6.0)
-    winrm-fs (0.3.2)
+      rubyntlm (~> 0.6.0, >= 0.6.1)
+    winrm-elevated (1.1.0)
+      winrm (~> 2.0)
+      winrm-fs (~> 1.0)
+    winrm-fs (1.0.1)
       erubis (~> 2.7)
       logging (>= 1.6.1, < 3.0)
       rubyzip (~> 1.1)
-      winrm (~> 1.5)
+      winrm (~> 2.0)
     wmi-lite (1.0.0)
-    yajl-ruby (1.2.1)
+    yajl-ruby (1.3.0)
 
 PLATFORMS
   ruby
@@ -356,4 +396,4 @@ DEPENDENCIES
   test-kitchen
 
 BUNDLED WITH
-   1.10.5
+   1.14.4
diff --git a/pkgs/development/tools/chefdk/default.nix b/pkgs/development/tools/chefdk/default.nix
index 880d0ddcc743..b453b0ca5044 100644
--- a/pkgs/development/tools/chefdk/default.nix
+++ b/pkgs/development/tools/chefdk/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, bundlerEnv, ruby, perl, autoconf }:
 
 bundlerEnv {
-  name = "chefdk-0.11.2";
+  name = "chefdk-1.3.40";
 
   inherit ruby;
   gemdir = ./.;
diff --git a/pkgs/development/tools/chefdk/gemset.nix b/pkgs/development/tools/chefdk/gemset.nix
index 87faa3105ad6..18e430a3dec7 100644
--- a/pkgs/development/tools/chefdk/gemset.nix
+++ b/pkgs/development/tools/chefdk/gemset.nix
@@ -1,1170 +1,1088 @@
 {
-  "addressable" = {
-    version = "2.4.0";
+  addressable = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i8q32a4gr0zghxylpyy7jfqwxvwrivsxflg9mks6kx92frh75mh";
       type = "gem";
-      sha256 = "0mpn7sbjl477h56gmxsjqb89r5s3w7vx5af994ssgc3iamvgzgvs";
     };
+    version = "2.5.1";
   };
-  "app_conf" = {
+  app_conf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yqwhr7d9i0cgavqkkq0b4pfqpn213dbhj5ayygr293wplm0jh57";
+      type = "gem";
+    };
     version = "0.4.2";
+  };
+  artifactory = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zaxa5fxrfal6vi90w725n8cd57fxw1jf99h38vn8d4vimvan2cc";
       type = "gem";
-      sha256 = "1yqwhr7d9i0cgavqkkq0b4pfqpn213dbhj5ayygr293wplm0jh57";
     };
+    version = "2.8.1";
   };
-  "ast" = {
-    version = "2.2.0";
+  ast = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pp82blr5fakdk27d1d21xq9zchzb6vmyb1zcsl520s3ygvprn8m";
       type = "gem";
-      sha256 = "14md08f8f1mmr2v7lczqnf1n1v8bal73gvg6ldhvkds1bmbnkrlb";
     };
+    version = "2.3.0";
   };
-  "berkshelf" = {
-    version = "4.3.0";
+  backports = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qlaq999znlbjw9wb0kwbjvidrbcimnd4v59y682kvm5c09mfn0l";
       type = "gem";
-      sha256 = "1dsbyq3749b9133rmnzjak7rsysyps1ryalc2r4rxyihflmxhix9";
     };
-    dependencies = [
-      "addressable"
-      "berkshelf-api-client"
-      "buff-config"
-      "buff-extensions"
-      "buff-shell_out"
-      "celluloid"
-      "celluloid-io"
-      "cleanroom"
-      "faraday"
-      "httpclient"
-      "minitar"
-      "octokit"
-      "retryable"
-      "ridley"
-      "solve"
-      "thor"
-    ];
+    version = "3.7.0";
   };
-  "berkshelf-api-client" = {
-    version = "2.0.2";
+  berkshelf = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aajjag7l55gi7k67n27dr6pscbdlzjaj751r2zhaggrczhh6yyq";
       type = "gem";
-      sha256 = "0xbn8q2xi09x5a7ma6wqs13gkpzj4ly21vls7m7ffv3sw8x29cyc";
     };
-    dependencies = [
-      "faraday"
-      "httpclient"
-      "ridley"
-    ];
+    version = "5.6.4";
   };
-  "buff-config" = {
-    version = "1.0.1";
+  berkshelf-api-client = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n9bmrqmyy8cqm9vakscf5s1k2chks43x7dr201zp4bv2i6g3ih2";
       type = "gem";
-      sha256 = "0r3h3mk1dj7pc4zymz450bdqp23faqprx363ji4zfdg8z6r31jfh";
     };
-    dependencies = [
-      "buff-extensions"
-      "varia_model"
-    ];
+    version = "3.0.0";
   };
-  "buff-extensions" = {
-    version = "1.0.0";
+  blankslate = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jnnq5q5dwy2rbfcl769vd9bk1yn0242f6yjlb9mnqdm9627cdcx";
       type = "gem";
-      sha256 = "1jqb5sn38qgx66lc4km6rljzz05myijjw12hznz1fk0k4qfw6yzk";
     };
+    version = "2.1.2.4";
   };
-  "buff-ignore" = {
-    version = "1.1.1";
+  buff-config = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06zx175sww4grk1rwyn1g3b1j2y324jf1506wl4xx96iss8spa4r";
       type = "gem";
-      sha256 = "1ghzhkgbq7f5fc7xilw0c9gspxpdhqhq3ygi1ybjm6r0dxlmvdb4";
     };
+    version = "2.0.0";
   };
-  "buff-ruby_engine" = {
-    version = "0.1.0";
+  buff-extensions = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qjyx97b9gavrk1r77bif1wv7z2mwlqy0v42q0vb7jd609n7vgcg";
       type = "gem";
-      sha256 = "1llpwpmzkakbgz9fc3vr1298cx1n9zv1g25fwj80xnnr7428aj8p";
     };
+    version = "2.0.0";
   };
-  "buff-shell_out" = {
-    version = "0.2.0";
+  buff-ignore = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vn0jh4l8np1xlyvsrrhlzhapcwvrjfni92jmg1an5qdw1qlgxmh";
       type = "gem";
-      sha256 = "0sphb69vxm346ys2laiz174k5jx628vfwz9ch8g2w9plc4xkxf3p";
     };
-    dependencies = [
-      "buff-ruby_engine"
-    ];
+    version = "1.2.0";
   };
-  "builder" = {
-    version = "3.2.2";
+  buff-ruby_engine = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1njpndvhvq7idfrwfw3p0hs5ch6nygwscjmksh23dz49dsirk7a9";
       type = "gem";
-      sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2";
     };
+    version = "1.0.0";
   };
-  "celluloid" = {
-    version = "0.16.0";
+  buff-shell_out = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zg1li17759whsi2yhb08wvbbqn5cy6i5v51384yjk2a29vs9lck";
       type = "gem";
-      sha256 = "044xk0y7i1xjafzv7blzj5r56s7zr8nzb619arkrl390mf19jxv3";
     };
-    dependencies = [
-      "timers"
-    ];
+    version = "1.1.0";
   };
-  "celluloid-io" = {
-    version = "0.16.2";
+  builder = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
       type = "gem";
-      sha256 = "1l1x0p6daa5vskywrvaxdlanwib3k5pps16axwyy4p8d49pn9rnx";
     };
-    dependencies = [
-      "celluloid"
-      "nio4r"
-    ];
+    version = "3.2.3";
   };
-  "chef" = {
-    version = "12.8.1";
+  celluloid = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "044xk0y7i1xjafzv7blzj5r56s7zr8nzb619arkrl390mf19jxv3";
       type = "gem";
-      sha256 = "16wb3ymnl7rbayy8qp35fp0947cnq2y9bac7xzhc1njp5j2p6lhg";
     };
-    dependencies = [
-      "chef-config"
-      "chef-zero"
-      "diff-lcs"
-      "erubis"
-      "ffi-yajl"
-      "highline"
-      "mixlib-authentication"
-      "mixlib-cli"
-      "mixlib-log"
-      "mixlib-shellout"
-      "net-ssh"
-      "net-ssh-multi"
-      "ohai"
-      "plist"
-      "proxifier"
-      "rspec-core"
-      "rspec-expectations"
-      "rspec-mocks"
-      "rspec_junit_formatter"
-      "serverspec"
-      "specinfra"
-      "syslog-logger"
-      "uuidtools"
-    ];
+    version = "0.16.0";
   };
-  "chef-config" = {
-    version = "12.8.1";
+  celluloid-io = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l1x0p6daa5vskywrvaxdlanwib3k5pps16axwyy4p8d49pn9rnx";
       type = "gem";
-      sha256 = "0chgbdv9c1xfkhzx3kmpr8lj0wjdbziixgln2y3ryn84x4fg84ic";
     };
-    dependencies = [
-      "mixlib-config"
-      "mixlib-shellout"
-    ];
+    version = "0.16.2";
   };
-  "chef-dk" = {
-    version = "0.11.2";
+  chef = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "057m3c7h3fz3682r7wxmm7dm3n90rv56lc7svrk1hmf4c3g4b99v";
       type = "gem";
-      sha256 = "1qfx5qclvh3kwjgfs18iwdn0knpgka5py7mwi4r0mz2sw14wq5wk";
     };
-    dependencies = [
-      "chef"
-      "chef-provisioning"
-      "cookbook-omnifetch"
-      "diff-lcs"
-      "ffi-yajl"
-      "minitar"
-      "mixlib-cli"
-      "mixlib-shellout"
-      "paint"
-      "solve"
-    ];
+    version = "12.19.36";
   };
-  "chef-provisioning" = {
-    version = "1.6.0";
+  chef-config = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4m13zzhd4w7j09a2cnj9sinxd9669i5qanbb1cvj90my0raxa2";
       type = "gem";
-      sha256 = "1nxgia4zyhyqbrz65q7lgjwx8ba5iyzxdxa181y0s4aqqpv0j45g";
     };
-    dependencies = [
-      "cheffish"
-      "inifile"
-      "mixlib-install"
-      "net-scp"
-      "net-ssh"
-      "net-ssh-gateway"
-      "winrm"
-    ];
+    version = "12.19.36";
   };
-  "chef-vault" = {
-    version = "2.8.0";
+  chef-dk = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wvdv3hmxnp7ydcwji1w4x0g48dy4qq1ik8zd6n43mqcfgkjq0cb";
       type = "gem";
-      sha256 = "0dbvawlrfx9mqjyh8q71jjfh987xqqv3f6c0pmcjp6qxs95l1dqq";
     };
+    version = "1.3.40";
   };
-  "chef-zero" = {
-    version = "4.5.0";
+  chef-provisioning = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z5334zp76fswj7ygs5gzf8vsc13ixvyxywpyd5sif75dqsays48";
       type = "gem";
-      sha256 = "1lqvmgjniviahrhim8k67qddnwh5p7wzw33r1wga4z136pfka1zx";
     };
-    dependencies = [
-      "ffi-yajl"
-      "hashie"
-      "mixlib-log"
-      "rack"
-      "uuidtools"
-    ];
+    version = "2.2.1";
   };
-  "cheffish" = {
-    version = "2.0.2";
+  chef-vault = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pqxmraiai9jrld53fyfsglaqcw14xwmy4f3rjfwbrsmparsxjc2";
       type = "gem";
-      sha256 = "0mvp7kybgp3nm2sdcmlx8bv147hcdjx745a8k97bx1m47isv97ax";
     };
-    dependencies = [
-      "chef-zero"
-      "compat_resource"
-    ];
+    version = "2.9.1";
   };
-  "chefspec" = {
-    version = "4.6.0";
+  chef-zero = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qmpn8wq2wns8m28pcn8ljgwz0v2ksninzc4wn5nq66gvksmpjig";
       type = "gem";
-      sha256 = "1ikn8k6xdqixdjga50jmkqajz2z2z71dg4j3dsmd31hv1mdbp7wz";
     };
-    dependencies = [
-      "chef"
-      "fauxhai"
-      "rspec"
-    ];
+    version = "5.3.2";
   };
-  "cleanroom" = {
-    version = "1.0.0";
+  cheffish = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19hn46s3qm2ncnfzggm0lcdrsagspdxg699k97a4hbl18k1n6lb1";
       type = "gem";
-      sha256 = "1r6qa4b248jasv34vh7rw91pm61gzf8g5dvwx2gxrshjs7vbhfml";
     };
+    version = "5.0.1";
   };
-  "coderay" = {
-    version = "1.1.1";
+  chefspec = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18xkzcxglrr3bfy5k0c1cjk5a3ka49xg3xirldb5yhv395svgg1r";
       type = "gem";
-      sha256 = "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r";
     };
+    version = "6.2.0";
   };
-  "compat_resource" = {
-    version = "12.8.0";
+  cleanroom = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r6qa4b248jasv34vh7rw91pm61gzf8g5dvwx2gxrshjs7vbhfml";
       type = "gem";
-      sha256 = "0zp1dd1wkbgxbazvs7acqyk1xjls0wq1pd5ilhj6zi63lpychgy5";
     };
+    version = "1.0.0";
   };
-  "cookbook-omnifetch" = {
-    version = "0.2.2";
+  coderay = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r";
       type = "gem";
-      sha256 = "1ml25xc69nsgbvp9a6w9yi376rav7b659cvyr8qhfb4jaj4l1yd6";
     };
-    dependencies = [
-      "minitar"
-    ];
+    version = "1.1.1";
   };
-  "diff-lcs" = {
-    version = "1.2.5";
+  cookbook-omnifetch = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qkzlkszq9f74i71vz72skvmrw24zvdpzfl2029x6vyxrwn83hwf";
       type = "gem";
-      sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
     };
+    version = "0.5.1";
   };
-  "diffy" = {
-    version = "3.1.0";
+  cucumber-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "136hnvqv444qyxzcgy1k60y4i6cn3sn9lbqr4wan9dzz1yzllqbm";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  diff-lcs = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
       type = "gem";
-      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
     };
+    version = "1.3";
   };
-  "docker-api" = {
-    version = "1.26.2";
+  diffy = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "015nn9zaciqj43mfpjlw619r5dvnfkrjcka8nsa6j260v6qya941";
       type = "gem";
-      sha256 = "0sg2xazcga21pmlb9yy1z5f3yyzqa2ly5b2h2cxfhyfda6k748wk";
     };
-    dependencies = [
-      "excon"
-      "json"
-    ];
+    version = "3.2.0";
   };
-  "erubis" = {
-    version = "2.7.0";
+  docker-api = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xg2iw6rffyd6zahm6rc80m10dghqmvjg8s83zjm6bqsqdg5h2dk";
       type = "gem";
-      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
     };
+    version = "1.33.3";
   };
-  "excon" = {
-    version = "0.48.0";
+  erubis = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
       type = "gem";
-      sha256 = "0hjfd2p2mhklavhy8gy1ygm390iz3imx71065dcr9r28s3wk63gf";
     };
+    version = "2.7.0";
   };
-  "faraday" = {
-    version = "0.9.2";
+  excon = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "149grwcry52hi3f1xkbbx74jw5m3qcmiib13wxrk3rw5rz200kmx";
       type = "gem";
+    };
+    version = "0.55.0";
+  };
+  faraday = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6";
+      type = "gem";
     };
-    dependencies = [
-      "multipart-post"
-    ];
+    version = "0.9.2";
   };
-  "fauxhai" = {
-    version = "3.1.0";
+  fauxhai = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yk8cspxgs7y29hgzv248albld4d0y5z498xmgh7kqxav6vxpigj";
       type = "gem";
-      sha256 = "0ff8wappc4n4v7v6969zm64c36qiadfw3igl8cyqrpp36fnqm04d";
     };
-    dependencies = [
-      "net-ssh"
-    ];
+    version = "4.1.0";
   };
-  "ffi" = {
-    version = "1.9.10";
+  ffi = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0";
       type = "gem";
-      sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj";
     };
+    version = "1.9.18";
   };
-  "ffi-yajl" = {
-    version = "2.2.3";
+  ffi-yajl = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dlfzbs1amvqv9lrl87h614xz7319zcwn29qjl1mhnbclny98hqz";
       type = "gem";
-      sha256 = "14wgy2isc5yir4zdkk0l3hzh1s1ycwblqb1hllbv4g9svb9naqbz";
     };
+    version = "2.3.0";
     dependencies = [
       "libyajl2"
     ];
   };
-  "foodcritic" = {
-    version = "6.0.1";
+  foodcritic = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0js522pp3q1xx929mpbzska2i87ydkax1dnyczpll4c46dkc2ivx";
       type = "gem";
-      sha256 = "06pi4984g6vwfzqvsf73zpw4h1p63bl7yn2sjb9mqd896bb3v6cn";
     };
-    dependencies = [
-      "erubis"
-      "gherkin"
-      "nokogiri"
-      "rake"
-      "rufus-lru"
-      "treetop"
-      "yajl-ruby"
-    ];
+    version = "10.2.2";
   };
-  "gherkin" = {
-    version = "2.12.2";
+  fuzzyurl = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03qchs33vfwbsv5awxg3acfmlcrf5xbhnbrc83fdpamwya0glbjl";
       type = "gem";
-      sha256 = "1mxfgw15pii1jmq00xxbyp77v71mh3bp99ndgwzfwkxvbcisha25";
     };
-    dependencies = [
-      "multi_json"
-    ];
+    version = "0.9.0";
   };
-  "git" = {
-    version = "1.3.0";
+  gherkin = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s2ibsl5vi3961cci677zjb03wg4wh5hcci5g87i416333qq69xx";
       type = "gem";
-      sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3";
     };
+    version = "4.1.1";
   };
-  "gssapi" = {
-    version = "1.2.0";
+  git = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3";
       type = "gem";
-      sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
     };
-    dependencies = [
-      "ffi"
-    ];
+    version = "1.3.0";
   };
-  "gyoku" = {
-    version = "1.3.1";
+  gssapi = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
       type = "gem";
-      sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
     };
-    dependencies = [
-      "builder"
-    ];
+    version = "1.2.0";
   };
-  "hashie" = {
-    version = "3.4.3";
+  gyoku = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
       type = "gem";
-      sha256 = "1iv5hd0zcryprx9lbcm615r3afc0d6rhc27clywmhhgpx68k8899";
     };
+    version = "1.3.1";
   };
-  "highline" = {
-    version = "1.7.8";
+  hashie = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lfmbh98ng141m7yc8s4v56v49ppam416pzvd2d7pg85wmm44ljw";
       type = "gem";
+    };
+    version = "3.5.5";
+  };
+  highline = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr";
+      type = "gem";
     };
+    version = "1.7.8";
   };
-  "hitimes" = {
-    version = "1.2.3";
+  hitimes = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a4yfhj7vp5gx20y99z45skynyn57wzxwwjp9mjm0b6dgiv6l0lz";
       type = "gem";
-      sha256 = "1fr9raz7652bnnx09dllyjdlnwdxsnl0ig5hq9s4s8vackvmckv4";
     };
+    version = "1.2.4";
   };
-  "httpclient" = {
-    version = "2.7.1";
+  httpclient = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
       type = "gem";
-      sha256 = "1y01wgmvwz8r4ycr87d12niglpk0nlh2hkpgy9bnmm8as7kgs428";
     };
+    version = "2.8.3";
   };
-  "inifile" = {
-    version = "2.0.2";
+  inifile = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c5zmk7ia63yw5l2k14qhfdydxwi1sah1ppjdiicr4zcalvfn0xi";
       type = "gem";
-      sha256 = "03rpacxnrnisjhd2zhc7629ica958bkdbakicl5kipw1wbprck25";
     };
+    version = "3.0.0";
   };
-  "inspec" = {
-    version = "0.14.8";
+  iniparse = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pj4r636swr6j7zisgs6xjws1hkkj8wxdbbknpzydcmaridk880r";
       type = "gem";
-      sha256 = "0whd57f82ml0awn7wgfi8gj3mwl7njww22hn2ciabxafqld9xrri";
     };
-    dependencies = [
-      "json"
-      "method_source"
-      "pry"
-      "r-train"
-      "rainbow"
-      "rspec"
-      "rspec-its"
-      "rubyzip"
-      "thor"
-    ];
+    version = "1.4.2";
   };
-  "ipaddress" = {
-    version = "0.8.3";
+  inspec = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03c1xxp13yv601b5fdbjbqy0sq84ymn5bx4d7k34h553lgc0124f";
       type = "gem";
-      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
     };
+    version = "1.19.2";
   };
-  "json" = {
-    version = "1.8.3";
+  ipaddress = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
       type = "gem";
-      sha256 = "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc";
     };
+    version = "0.8.3";
   };
-  "kitchen-inspec" = {
-    version = "0.12.3";
+  json = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cpw154il64w6q20rrnsbjx1cdfz1yrzz1lgdbpn59lcwc6mprql";
       type = "gem";
-      sha256 = "1vjb9pxb4ga9ppr35k6vsqh053k35b4fxamzg99g17y1rijp6dbj";
     };
-    dependencies = [
-      "inspec"
-      "test-kitchen"
-    ];
+    version = "2.0.3";
   };
-  "kitchen-vagrant" = {
-    version = "0.19.0";
+  kitchen-inspec = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zpkb9hy6hbdk58xs2lf8rcdbm9l02m607bzdramwfm7czzh08rs";
       type = "gem";
-      sha256 = "0sydjihhvnr40vqnj7bg65zxf00crwvwdli1av03ghhggrp5scla";
     };
-    dependencies = [
-      "test-kitchen"
-    ];
+    version = "0.17.0";
   };
-  "knife-spork" = {
-    version = "1.6.1";
+  kitchen-vagrant = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qanaqs769lvp3bw0bp2jivjs7n0y1y71x99j0cnx3qag9nbjca5";
       type = "gem";
-      sha256 = "104f3xq4gfy7rszc8zbfakg9wlnwnf8k9zij9ahdq4id3sdf1ylb";
     };
-    dependencies = [
-      "app_conf"
-      "chef"
-      "diffy"
-      "git"
-    ];
+    version = "1.1.0";
   };
-  "libyajl2" = {
-    version = "1.2.0";
+  knife-spork = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2lmcz9ym6n7a5xn3jvlmfls10lbk7h6phqpc7ah1dz6dk4qw8d";
       type = "gem";
-      sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
     };
+    version = "1.6.3";
   };
-  "little-plugger" = {
-    version = "1.1.4";
+  libyajl2 = {
     source = {
+  #    remotes = ["https://rubygems.org"];
+      sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
       type = "gem";
-      sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
     };
+    version = "1.2.0";
   };
-  "logging" = {
-    version = "2.0.0";
+  little-plugger = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
       type = "gem";
-      sha256 = "0ka5q88qvc2w7yr9z338jwxcyj1kifmbr9is5hps2f37asismqvb";
     };
-    dependencies = [
-      "little-plugger"
-      "multi_json"
-    ];
+    version = "1.1.4";
   };
-  "method_source" = {
-    version = "0.8.2";
+  logging = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ddy1dh8sshbfaz3magaww1frlk0p3dpishmakpq0c2skp988wl2";
       type = "gem";
+    };
+    version = "2.2.0";
+  };
+  method_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2";
+      type = "gem";
     };
+    version = "0.8.2";
   };
-  "mini_portile2" = {
-    version = "2.0.0";
+  mini_portile2 = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb";
       type = "gem";
-      sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l";
     };
+    version = "2.1.0";
   };
-  "minitar" = {
+  minitar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka";
+      type = "gem";
+    };
     version = "0.5.4";
+  };
+  mixlib-archive = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b56iprv8cdhxjpzb8ck0mc54cl0kmyzlkn6bzzdqws4gxvdf6gk";
       type = "gem";
-      sha256 = "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka";
     };
+    version = "0.4.1";
   };
-  "mixlib-authentication" = {
-    version = "1.4.0";
+  mixlib-authentication = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v2r5klw6c8b67yw906slp8a7wi4v2gmhhi9b1slmm4sg2v0pgah";
       type = "gem";
-      sha256 = "0qk6mln2bkp6jgkz3sh5r69lzipzjs4dqdixqq12wzvwapmgc0zj";
     };
-    dependencies = [
-      "mixlib-log"
-      "rspec-core"
-      "rspec-expectations"
-      "rspec-mocks"
-    ];
+    version = "1.4.1";
   };
-  "mixlib-cli" = {
-    version = "1.5.0";
+  mixlib-cli = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp";
       type = "gem";
-      sha256 = "0im6jngj76azrz0nv69hgpy1af4smcgpfvmmwh5iwsqwa46zx0k0";
     };
+    version = "1.7.0";
   };
-  "mixlib-config" = {
-    version = "2.2.1";
+  mixlib-config = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s2ag6jz59r1gn8rbhf5c1g2mpbkc5jmz2fxh3n7hzv80dfzk42w";
       type = "gem";
-      sha256 = "0smhnyhw1va94vrd7zapxplbavbs4dc78h9yd1yfv52fzxx16zk3";
     };
+    version = "2.2.4";
   };
-  "mixlib-install" = {
-    version = "0.7.1";
+  mixlib-install = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08fmrc9qaagj3i85n37l50d9qpjsv0lkdppmx3y69r3d0xcgfv3p";
       type = "gem";
-      sha256 = "1ws2syfimnqzlff2fp6yj5v7zgnzmi3pj9kbkg7xlmd9fhnkb0n7";
     };
+    version = "2.1.12";
   };
-  "mixlib-log" = {
-    version = "1.6.0";
+  mixlib-log = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14sknyi9r7rg28m21c8ixzyndhbmi0d6vk02y4hf42dd60hmdbgp";
       type = "gem";
-      sha256 = "1xblfxby3psh4n5cgc6j6xnvmmssyr8qjy0l76f92nr4b9yvv9m2";
     };
+    version = "1.7.1";
   };
-  "mixlib-shellout" = {
-    version = "2.2.6";
+  mixlib-shellout = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c6zhas6jfr4zd7f6s7sq7qi34ljs7qmdr4zj3ighpcsawm16zg9";
       type = "gem";
-      sha256 = "1xfs7yp533qx3nsd4x2q2r125awyxcizgdc4dwgdlxsa1n1pj0pd";
     };
+    version = "2.2.7";
   };
-  "molinillo" = {
-    version = "0.2.3";
+  mixlib-versioning = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07an7gxrw6gda98bg9zbfk55b2d58hwpms8wx8sd2x2lv8qs670s";
       type = "gem";
-      sha256 = "1ylvnpdn20nna488mkzpq3iy6gr866gmkiv090c7g5h88x1qws0b";
     };
+    version = "1.1.0";
   };
-  "multi_json" = {
-    version = "1.11.2";
+  molinillo = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19h1nks0x2ljwyijs2rd1f9sh05j8xqvjaqk1rslp5nyy6h4a758";
       type = "gem";
-      sha256 = "1rf3l4j3i11lybqzgq2jhszq7fh7gpmafjzd14ymp9cjfxqg596r";
     };
+    version = "0.5.7";
   };
-  "multipart-post" = {
-    version = "2.0.0";
+  multi_json = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk";
       type = "gem";
-      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
     };
+    version = "1.12.1";
   };
-  "net-scp" = {
-    version = "1.2.1";
+  multipart-post = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
       type = "gem";
-      sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
     };
-    dependencies = [
-      "net-ssh"
-    ];
+    version = "2.0.0";
   };
-  "net-ssh" = {
-    version = "3.0.2";
+  net-scp = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
       type = "gem";
-      sha256 = "1k3hrgr899dlhkn53c4hnn5qzbhc7lwks0vaqgw95gg74hn1ivqw";
     };
+    version = "1.2.1";
   };
-  "net-ssh-gateway" = {
-    version = "1.2.0";
+  net-sftp = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
       type = "gem";
-      sha256 = "1nqkj4wnj26r81rp3g4jqk7bkd2nqzjil3c9xqwchi0fsbwv2niy";
     };
-    dependencies = [
-      "net-ssh"
-    ];
+    version = "2.1.2";
   };
-  "net-ssh-multi" = {
-    version = "1.2.1";
+  net-ssh = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q";
       type = "gem";
-      sha256 = "13kxz9b6kgr9mcds44zpavbndxyi6pvyzyda6bhk1kfmb5c10m71";
     };
-    dependencies = [
-      "net-ssh"
-      "net-ssh-gateway"
-    ];
+    version = "4.1.0";
   };
-  "net-telnet" = {
-    version = "0.1.1";
+  net-ssh-gateway = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04ws9bvf3ppvcj9vrnwyabcwv4lz1m66ni443z2cf4wvvqssifsa";
       type = "gem";
-      sha256 = "13qxznpwmc3hs51b76wqx2w29r158gzzh8719kv2gpi56844c8fx";
     };
+    version = "1.3.0";
   };
-  "nio4r" = {
+  net-ssh-multi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13kxz9b6kgr9mcds44zpavbndxyi6pvyzyda6bhk1kfmb5c10m71";
+      type = "gem";
+    };
     version = "1.2.1";
+  };
+  net-telnet = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13qxznpwmc3hs51b76wqx2w29r158gzzh8719kv2gpi56844c8fx";
       type = "gem";
-      sha256 = "1adnm77xfxck0mrvid5d7lwng783gh580rh3y18nq4bwdikr6nha";
     };
+    version = "0.1.1";
   };
-  "nokogiri" = {
-    version = "1.6.7.2";
+  nio4r = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ka4923544ckvc9bxd75van9y901cjxmsiq9h5is9j743bz71k1f";
       type = "gem";
-      sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv";
     };
-    dependencies = [
-      "mini_portile2"
-    ];
+    version = "2.0.0";
   };
-  "nori" = {
-    version = "2.6.0";
+  nokogiri = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fhmgciw6pfckqgc0aq9kqpbvnakxwh1xf351c9x4xqcj9xjgn0y";
       type = "gem";
+    };
+    version = "1.7.1";
+  };
+  nori = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn";
+      type = "gem";
     };
+    version = "2.6.0";
   };
-  "octokit" = {
-    version = "4.3.0";
+  octokit = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6cm7bi0y7ysjgwws3paaipqdld6c0m0niazrjahhpz88qqq1g4";
       type = "gem";
-      sha256 = "1hq47ck0z03vr3rzblyszihn7x2m81gv35chwwx0vrhf17nd27np";
     };
-    dependencies = [
-      "sawyer"
-    ];
+    version = "4.7.0";
   };
-  "ohai" = {
-    version = "8.12.0";
+  ohai = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18bxqa2rh6y6v3pvimy9ffjzrqh7q1my4vd0l7bnsczv07d5gxns";
       type = "gem";
-      sha256 = "0l7vdfnfm4plla6q4qkngwpmy0ah53pnymlwfzc7iy6jn2n9ibpm";
     };
-    dependencies = [
-      "chef-config"
-      "ffi"
-      "ffi-yajl"
-      "ipaddress"
-      "mixlib-cli"
-      "mixlib-config"
-      "mixlib-log"
-      "mixlib-shellout"
-      "plist"
-      "rake"
-      "systemu"
-      "wmi-lite"
-    ];
+    version = "8.23.0";
   };
-  "paint" = {
+  paint = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1fqyyc2jiv6yabv467h652cxr2lmxl5gqqg7p14y28kdqf0nhj";
+      type = "gem";
+    };
     version = "1.0.1";
+  };
+  parallel = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iyiyd6s2dy42mhqfnvq2f64h78w0jjwgnyha1kz7dnxavncdb7i";
       type = "gem";
-      sha256 = "1z1fqyyc2jiv6yabv467h652cxr2lmxl5gqqg7p14y28kdqf0nhj";
     };
+    version = "1.11.1";
   };
-  "parser" = {
-    version = "2.3.0.6";
+  parser = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "130rfk8a2ws2fyq52hmi1n0xakylw39wv4x1qhai4z17x2b0k9cq";
       type = "gem";
-      sha256 = "1r14k5jlsc5ivxjm1kljhk9sqp50rnd71n0mzx18hz135nvw1hbz";
     };
-    dependencies = [
-      "ast"
-    ];
+    version = "2.4.0.0";
   };
-  "plist" = {
-    version = "3.1.0";
+  parslet = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qp1m8n3m6k6g22nn1ivcfkvccq5jmbkw53vvcjw5xssq179l9z3";
       type = "gem";
-      sha256 = "0rh8nddwdya888j1f4wix3dfan1rlana3mc7mwrvafxir88a1qcs";
     };
+    version = "1.5.0";
   };
-  "polyglot" = {
-    version = "0.3.5";
+  plist = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1abhg9bcdk2v4liyf10mnww3ngvkmr7flbzzajwsg2z1pmax8g8b";
       type = "gem";
-      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
     };
+    version = "3.2.0";
   };
-  "powerpack" = {
-    version = "0.1.1";
+  polyglot = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
       type = "gem";
+    };
+    version = "0.3.5";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      type = "gem";
     };
+    version = "0.1.1";
   };
-  "proxifier" = {
+  proxifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1abzlg39cfji1nx3i8kmb5k3anr2rd392yg2icms24wkqz9g9zj0";
+      type = "gem";
+    };
     version = "1.0.3";
+  };
+  pry = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar";
       type = "gem";
-      sha256 = "1abzlg39cfji1nx3i8kmb5k3anr2rd392yg2icms24wkqz9g9zj0";
     };
+    version = "0.10.4";
   };
-  "pry" = {
-    version = "0.10.3";
+  public_suffix = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
       type = "gem";
-      sha256 = "1x78rvp69ws37kwig18a8hr79qn36vh8g1fn75p485y3b3yiqszg";
     };
-    dependencies = [
-      "coderay"
-      "method_source"
-      "slop"
-    ];
+    version = "2.0.5";
   };
-  "r-train" = {
-    version = "0.10.3";
+  rack = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "053bqbrxr5gjw5k3rrmh6i35s83kgdycxv292lid072vpwrq1xv1";
       type = "gem";
-      sha256 = "1hn0aap2lq15p97mb91h32yfsw8rh4imhyjlbs4jx9x52h2q6nam";
     };
+    version = "2.0.1";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0frz90gyi5k26jx3ham1x661hpkxf82rkxb85nakcz70dna7i8ri";
+      type = "gem";
+    };
+    version = "2.2.1";
     dependencies = [
-      "docker-api"
-      "json"
-      "mixlib-shellout"
-      "net-scp"
-      "net-ssh"
-      "winrm"
-      "winrm-fs"
+      "rake"
     ];
   };
-  "rack" = {
-    version = "1.6.4";
+  rake = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
       type = "gem";
-      sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5";
     };
+    version = "12.0.0";
   };
-  "rainbow" = {
-    version = "2.1.0";
+  retryable = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pxv5xgr08s9gv5npj7h3raxibywznrv2wcrb85ibhlhzgzcxggf";
       type = "gem";
-      sha256 = "11licivacvfqbjx2rwppi8z89qff2cgs67d4wyx42pc5fg7g9f00";
     };
+    version = "2.0.4";
   };
-  "rake" = {
-    version = "10.5.0";
+  ridley = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y6dcbxmn74qg5psdjk9i751zryfwypf56rb458dkq6b7mwfxxwb";
       type = "gem";
-      sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
     };
+    version = "5.1.0";
   };
-  "retryable" = {
-    version = "2.0.3";
+  rspec = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16g3mmih999f0b6vcz2c3qsc7ks5zy4lj1rzjh8hf6wk531nvc6s";
       type = "gem";
-      sha256 = "0lr3wasxwdyzr0bag179003hs2ycn9w86m450pazc81v19j4x1dq";
     };
+    version = "3.5.0";
   };
-  "ridley" = {
-    version = "4.5.0";
+  rspec-core = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nacs062qbr98fx6czf1vwppn1js956nv2c8vfwj6i65axdfs46i";
       type = "gem";
-      sha256 = "0y0p45y3xp37gg8ab132x4i0iggl3p907wfklhr5gb7r5yj6sj4r";
     };
-    dependencies = [
-      "addressable"
-      "buff-config"
-      "buff-extensions"
-      "buff-ignore"
-      "buff-shell_out"
-      "celluloid"
-      "celluloid-io"
-      "chef-config"
-      "erubis"
-      "faraday"
-      "hashie"
-      "httpclient"
-      "json"
-      "mixlib-authentication"
-      "retryable"
-      "semverse"
-      "varia_model"
-    ];
+    version = "3.5.4";
   };
-  "rspec" = {
-    version = "3.4.0";
+  rspec-expectations = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bbqfrb1x8gmwf8x2xhhwvvlhwbbafq4isbvlibxi6jk602f09gs";
       type = "gem";
-      sha256 = "12axhz2nj2m0dy350lxym76m36m1hq48hc59mf00z9dajbpnj78s";
     };
-    dependencies = [
-      "rspec-core"
-      "rspec-expectations"
-      "rspec-mocks"
-    ];
+    version = "3.5.0";
   };
-  "rspec-core" = {
-    version = "3.4.4";
+  rspec-its = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3";
       type = "gem";
-      sha256 = "1z2zmy3xaq00v20ykamqvnynzv2qrrnbixc6dn0jw1c5q9mqq9fp";
     };
-    dependencies = [
-      "rspec-support"
-    ];
+    version = "1.2.0";
   };
-  "rspec-expectations" = {
-    version = "3.4.0";
+  rspec-mocks = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nl3ksivh9wwrjjd47z5dggrwx40v6gpb3a0gzbp1gs06a5dmk24";
       type = "gem";
-      sha256 = "07pz570glwg87zpyagxxal0daa1jrnjkiksnn410s6846884fk8h";
     };
-    dependencies = [
-      "diff-lcs"
-      "rspec-support"
-    ];
+    version = "3.5.0";
   };
-  "rspec-its" = {
-    version = "1.2.0";
+  rspec-support = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10vf3k3d472y573mag2kzfsfrf6rv355s13kadnpryk8d36yq5r0";
       type = "gem";
-      sha256 = "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3";
     };
-    dependencies = [
-      "rspec-core"
-      "rspec-expectations"
-    ];
+    version = "3.5.0";
   };
-  "rspec-mocks" = {
-    version = "3.4.1";
+  rspec_junit_formatter = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai";
       type = "gem";
-      sha256 = "0sk8ijq5d6bwhvjq94gfm02fssxkm99bgpasqazsmmll5m1cn7vr";
     };
-    dependencies = [
-      "diff-lcs"
-      "rspec-support"
-    ];
+    version = "0.2.3";
   };
-  "rspec-support" = {
-    version = "3.4.1";
+  rubocop = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mzv23i11hqwpxh4srvhm8dpzvnk90y46xdfd1fc1g9s054nnbq0";
       type = "gem";
-      sha256 = "0l6zzlf22hn3pcwnxswsjsiwhqjg7a8mhvm680k5vq98307bkikr";
     };
+    version = "0.48.1";
   };
-  "rspec_junit_formatter" = {
-    version = "0.2.3";
+  ruby-progressbar = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qzc7s7r21bd7ah06kskajc2bjzkr9y0v5q48y0xwh2l55axgplm";
       type = "gem";
-      sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai";
     };
-    dependencies = [
-      "builder"
-      "rspec-core"
-    ];
+    version = "1.8.1";
   };
-  "rubocop" = {
-    version = "0.38.0";
+  rubyntlm = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nfl35b2lgc4p3bgl6vmhsisap8h7p0rrb4b20gahji7s4m93bbk";
       type = "gem";
-      sha256 = "0qgwq558n41z2id7nwc3bh7z8h9yh7c9zdasqn8p30p0p72f5520";
     };
-    dependencies = [
-      "parser"
-      "powerpack"
-      "rainbow"
-      "ruby-progressbar"
-      "unicode-display_width"
-    ];
+    version = "0.6.1";
   };
-  "ruby-progressbar" = {
-    version = "1.7.5";
+  rubyzip = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz";
       type = "gem";
-      sha256 = "0hynaavnqzld17qdx9r7hfw00y16ybldwq730zrqfszjwgi59ivi";
     };
+    version = "1.2.1";
   };
-  "rubyntlm" = {
-    version = "0.6.0";
+  rufus-lru = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sp7ymz054md75fnn2hx5d2axmhrh0abbn8c2p759j4g4lxn11ip";
       type = "gem";
-      sha256 = "00k1cll10mcyg6qpdzyrazm5pjbpj7wq54ki2y8vxz86842vbsgp";
     };
+    version = "1.1.0";
   };
-  "rubyzip" = {
-    version = "1.2.0";
+  safe_yaml = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
       type = "gem";
-      sha256 = "10a9p1m68lpn8pwqp972lv61140flvahm3g9yzbxzjks2z3qlb2s";
     };
+    version = "1.0.4";
   };
-  "rufus-lru" = {
-    version = "1.0.5";
+  sawyer = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
       type = "gem";
-      sha256 = "1vrsbvcsl7yspzb761p2gbl7dwz0d1j82msbjsksf8hi4cv970s5";
     };
+    version = "0.8.1";
   };
-  "safe_yaml" = {
-    version = "1.0.4";
+  semverse = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cf6iv5wgwb7b8jf7il751223k9yahz9aym06s9r0prda5mwddyy";
       type = "gem";
-      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
     };
+    version = "2.0.0";
   };
-  "sawyer" = {
-    version = "0.7.0";
+  serverspec = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j8fvjzmkcri83p0hiyfdypgbc616w2r0nr6rsi1696cd4nppknp";
       type = "gem";
-      sha256 = "1cn48ql00mf1ag9icmfpj7g7swh7mdn7992ggynjqbw1gh15bs3j";
     };
-    dependencies = [
-      "addressable"
-      "faraday"
-    ];
+    version = "2.38.0";
   };
-  "semverse" = {
-    version = "1.2.1";
+  sfl = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qm4hvhq9pszi9zs1cl9qgwx1n4wxq0af0hq9sbf6qihqd8rwwwr";
       type = "gem";
-      sha256 = "0s47lprqwmlhnxm3anrhvd3559g51hgrcqn3mq0fy696zkv8vfd8";
     };
+    version = "2.3";
   };
-  "serverspec" = {
-    version = "2.31.0";
+  slop = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
       type = "gem";
-      sha256 = "169mh6s4drxy9qs7f01gqcaq1qfkvy9hdc1ny3lnk0aiwfcm2s1p";
     };
-    dependencies = [
-      "multi_json"
-      "rspec"
-      "rspec-its"
-      "specinfra"
-    ];
+    version = "3.6.0";
   };
-  "sfl" = {
-    version = "2.2";
+  solve = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bbzny2bl94mv1xwcfrxbi3fjhxxawlz6la7mip2wwz9kkaf376h";
       type = "gem";
-      sha256 = "0aq7ykbyvx8mx4szkcgp09zs094fg60l2pzxscmxqrgqk9yvyg1j";
     };
+    version = "3.1.0";
   };
-  "slop" = {
-    version = "3.6.0";
+  specinfra = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gdbkqr82p7s0aq0sixsahapijccs8qswssfmsb76hi40xb2s3sg";
       type = "gem";
-      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
     };
+    version = "2.67.7";
   };
-  "solve" = {
-    version = "2.0.2";
+  sslshake = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sm0vxh9ryywsl9iqj8kkwpykh8xrr2fmlv5ysm9jjgwmdpslfvl";
       type = "gem";
-      sha256 = "0mwdd6z3vbzna9vphnkgdghy40xawn0yiwhamvb6spfk6n2c80kb";
     };
-    dependencies = [
-      "molinillo"
-      "semverse"
-    ];
+    version = "1.1.0";
   };
-  "specinfra" = {
-    version = "2.53.1";
+  syslog-logger = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14y20phq1khdla4z9wvf98k7j3x6n0rjgs4f7vb0xlf7h53g6hbm";
       type = "gem";
-      sha256 = "17jbrn7nm6c72qy1nw064c0yi9cimd295s7j6x9bm878cbyq9i6i";
     };
-    dependencies = [
-      "net-scp"
-      "net-ssh"
-      "net-telnet"
-      "sfl"
-    ];
-  };
-  "syslog-logger" = {
     version = "1.6.8";
+  };
+  systemu = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1";
       type = "gem";
-      sha256 = "14y20phq1khdla4z9wvf98k7j3x6n0rjgs4f7vb0xlf7h53g6hbm";
     };
-  };
-  "systemu" = {
     version = "2.6.5";
+  };
+  test-kitchen = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mg13w1xi36r7vsbdwf7cb06s2j1p2hig144r0hzqwi599w5l9hr";
       type = "gem";
-      sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1";
     };
+    version = "1.16.0";
   };
-  "test-kitchen" = {
-    version = "1.6.0";
+  thor = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
       type = "gem";
-      sha256 = "1glmvjm24fmlbhm8q4lzi1ynds77ip3s4s5q6fdjlhdanh6jrgwz";
     };
-    dependencies = [
-      "mixlib-install"
-      "mixlib-shellout"
-      "net-scp"
-      "net-ssh"
-      "safe_yaml"
-      "thor"
-    ];
-  };
-  "thor" = {
     version = "0.19.1";
+  };
+  timers = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jx4wb0x182gmbcs90vz0wzfyp8afi1mpl9w5ippfncyk4kffvrz";
       type = "gem";
-      sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
     };
-  };
-  "timers" = {
     version = "4.0.4";
+  };
+  toml = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnvi1g8id1sg6776fvzf98lhfbscchgiy1fp5pvd58a8ds2fq9v";
       type = "gem";
-      sha256 = "1jx4wb0x182gmbcs90vz0wzfyp8afi1mpl9w5ippfncyk4kffvrz";
     };
-    dependencies = [
-      "hitimes"
-    ];
+    version = "0.1.2";
   };
-  "treetop" = {
-    version = "1.6.5";
+  train = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dglwr6kirqn9k7am4gszvgkpndvyqydlfgmwjwikvpsvf8rxgrl";
       type = "gem";
-      sha256 = "1lg7j8xf8yxmnz1v8zkwhs4l6j30kq2pxvvrvpah2frlaqz077dh";
     };
-    dependencies = [
-      "polyglot"
-    ];
+    version = "0.23.0";
   };
-  "unicode-display_width" = {
-    version = "1.0.2";
+  treetop = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kx3qqdbdk5sy44cyinfx2jxr4w9z3qb17f7wicqa2kshbrvnp1q";
       type = "gem";
-      sha256 = "1cffs73zrn788dyd1vv91p0mcxgx2g1sis6552ggmfib3f148gbi";
     };
+    version = "1.6.8";
   };
-  "uuidtools" = {
-    version = "2.1.5";
+  unicode-display_width = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r28mxyi0zwby24wyn1szj5hcnv67066wkv14wyzsc94bf04fqhx";
       type = "gem";
+    };
+    version = "1.1.3";
+  };
+  uuidtools = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "0zjvq1jrrnzj69ylmz1xcr30skf9ymmvjmdwbvscncd7zkr8av5g";
+      type = "gem";
     };
+    version = "2.1.5";
   };
-  "varia_model" = {
-    version = "0.4.1";
+  varia_model = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kgj37rc3yia4pr5pma0psgar6xjk064qdfii3nwr6dj1v73cyxz";
       type = "gem";
-      sha256 = "1qm9fhizfry055yras9g1129lfd48fxg4lh0hck8h8cvjdjz1i62";
     };
-    dependencies = [
-      "buff-extensions"
-      "hashie"
-    ];
+    version = "0.6.0";
   };
-  "winrm" = {
-    version = "1.7.2";
+  winrm = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xf36sf2cgangij9maphprzhznv4w50arnwrik5jdnmfxc8lqfmh";
       type = "gem";
-      sha256 = "1as865gd6f0g0hppw8plki1i4afpn6lcx89sgi52v1mlgwxfifff";
     };
-    dependencies = [
-      "builder"
-      "gssapi"
-      "gyoku"
-      "httpclient"
-      "logging"
-      "nori"
-      "rubyntlm"
-    ];
+    version = "2.2.1";
   };
-  "winrm-fs" = {
-    version = "0.3.2";
+  winrm-elevated = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04krbwnj4cw7jy42w3n2y5kp2fbcp3v9mbf59pdhfk1py18bswcr";
       type = "gem";
-      sha256 = "08j2ip9wx1vcx45kd9ws6lb6znfq9gib1n2j7shzs10rxwgs1bj8";
     };
-    dependencies = [
-      "erubis"
-      "logging"
-      "rubyzip"
-      "winrm"
-    ];
+    version = "1.1.0";
   };
-  "wmi-lite" = {
-    version = "1.0.0";
+  winrm-fs = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p9kv5hj57krlrh20ykq8pz4i911r30mbl57n6mc6hfba2zfl7j8";
       type = "gem";
+    };
+    version = "1.0.1";
+  };
+  wmi-lite = {
+    source = {
+      remotes = ["https://rubygems.org"];
       sha256 = "06pm7jr2gcnphhhswha2kqw0vhxy91i68942s7gqriadbc8pq9z3";
+      type = "gem";
     };
+    version = "1.0.0";
   };
-  "yajl-ruby" = {
-    version = "1.2.1";
+  yajl-ruby = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sah2lpvpsh555dcnhgcqylinjj5544md9dh1a0a13da0qv1p57i";
       type = "gem";
-      sha256 = "0zvvb7i1bl98k3zkdrnx9vasq0rp2cyy5n7p9804dqs4fz9xh9vf";
     };
+    version = "1.3.0";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index 7a2b3e8e1d97..483905f5f2e4 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name    = "coursier-${version}";
-  version = "1.0.0-M15-5";
+  name = "coursier-${version}";
+  version = "1.0.0-RC1";
 
   src = fetchurl {
-    url    = "https://github.com/coursier/coursier/raw/v${version}/coursier";
-    sha256 = "610c5fc08d0137c5270cefd14623120ab10cd81b9f48e43093893ac8d00484c9";
+    url = "https://github.com/coursier/coursier/raw/v${version}/coursier";
+    sha256 = "0dxwhqp7m7nmal8wn4chlmyvhdh6v3ja0nfz9x952kacf2vpnqw3";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage    = http://get-coursier.io/;
+    homepage = http://get-coursier.io/;
     description = "A Scala library to fetch dependencies from Maven / Ivy repositories";
-    license     = licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ adelbertc nequissimus ];
   };
 }
diff --git a/pkgs/development/tools/misc/arm-frc-linux-gnueabi-binutils/default.nix b/pkgs/development/tools/misc/arm-frc-linux-gnueabi-binutils/default.nix
new file mode 100755
index 000000000000..4e3ad7ab8b08
--- /dev/null
+++ b/pkgs/development/tools/misc/arm-frc-linux-gnueabi-binutils/default.nix
@@ -0,0 +1,50 @@
+{stdenv, fetchurl, glibc, bison, arm-frc-linux-gnueabi-eglibc}:
+
+stdenv.mkDerivation rec {
+  _target = "arm-frc-linux-gnueabi";
+
+  version = "2.28";
+  name = "${_target}-binutils-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.gnu.org/gnu/binutils/binutils-${version}.tar.bz2";
+    sha256 = "369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88";
+  };
+
+  nativeBuildInputs = [ bison arm-frc-linux-gnueabi-eglibc ];
+  buildInputs = [ glibc ];
+
+  configureFlags = ''
+    --target=${_target}
+    --with-pkgversion='GNU-Binutils-for-FRC'
+    --with-sysroot=$out/${_target}
+    --with-build-sysroot=/$out/${_target}
+    --disable-multilib
+    --disable-nls
+    --enable-lto
+    --disable-libiberty-install
+    --enable-ld
+    --enable-gold=default
+    --enable-plugins
+  '';
+
+  postConfigure = ''
+    make configure-host
+  '';
+
+  postInstall = ''
+    rm -rf $out/share/info
+  '';
+
+  meta = {
+    description = "FRC binutils";
+    longDescription = ''
+      binutils used to build arm-frc-linux-gnueabi and user programs.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.colescott ];
+    platforms = stdenv.lib.platforms.linux;
+
+    priority = 3;
+  };
+}
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index d0e05dd35f8d..ab5934ed58c5 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "strace-${version}";
-  version = "4.15";
+  version = "4.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/strace/${name}.tar.xz";
-    sha256 = "1a9wb2nzfqgwazd0yrlbk48awlfn898n1bdayvdxj7qlssac1kf0";
+    sha256 = "1vzhmpcy989i4k12q4cc438yal2ghhm6x7ychscjbhcf2yspqj4q";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix
index b383812d321d..eef8b660c41d 100644
--- a/pkgs/development/tools/rq/default.nix
+++ b/pkgs/development/tools/rq/default.nix
@@ -4,59 +4,16 @@ with rustPlatform;
 
 buildRustPackage rec {
   name = "rq-${version}";
-  version = "0.9.2";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "dflemstr";
     repo = "rq";
     rev = "v${version}";
-    sha256 = "051k7ls2mbjf584crayd654wm8m7gk3b7s73j97f9l8sbppdhpcq";
+    sha256 = "066f6sdy0vrp113wlg18q9p0clyrg9iqbj17ly0yn8dxr5iar002";
   };
 
-  serde_json = fetchFromGitHub {
-    owner = "serde-rs";
-    repo = "json";
-    rev = "0c05059e4533368020bd356bd708c38286810a7d";
-    sha256 = "0924ngqbsif2vmmpgn8l2gg4bzms0z0i7yng0zx6sdv0x836lw43";
-  };
-
-  v8_rs = fetchFromGitHub {
-    owner = "dflemstr";
-    repo = "v8-rs";
-    rev = "0772be5b2e84842a2d434963702bc2995aeda90b";
-    sha256 = "0h2n431rp6nqpip7dy7xpckkvcr19aq7l1f3x3wlrj02xi4c8mad";
-  };
-
-  cargoDepsHook = ''
-    # use non-git dependencies
-    (cd $sourceRoot && patch -p1 <<EOF)
-    diff -u a/Cargo.toml b/Cargo.toml
-    --- a/Cargo.toml	2016-12-03 21:29:31.615019030 +0100
-    +++ b/Cargo.toml	2016-12-03 21:30:12.188170359 +0100
-    @@ -40,15 +40,16 @@
-     version = "*"
-     
-     [dependencies.serde_json]
-    -branch = "v0.9.0"
-    -git = "https://github.com/serde-rs/json.git"
-    +path = "${serde_json}/json"
-    +version = "*"
-     
-     [dependencies.toml]
-     features = ["serde"]
-     version = "*"
-     
-     [dependencies.v8]
-    -git = "https://github.com/dflemstr/v8-rs.git"
-    +path = "${v8_rs}"
-    +version = "*"
-     
-     [features]
-     shared = ["v8/shared"]
-    EOF
-  '';
-
-  depsSha256 = "1pci9iwf4y574q32b05gbc490iqw5i7shvqgb1gblchrihvlkddq";
+  depsSha256 = "138h0q2a2gghfjpwfi11zw4rkipvmglb7srqz56ibbw2xliid2wl";
 
   buildInputs = [ llvmPackages.clang-unwrapped v8 ];
 
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 6a5faa68ced0..d1ea6a2e12b5 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -19,11 +19,20 @@ buildGoPackage rec {
     sha256 = "13k29i5hx909hvddl2xkyw4qzxq2q20ay9bkal3xi063s6l0sh0z";
   };
 
+  patches = [
+    ./path.patch
+  ];
+
   preBuild = ''
     export CGO_CFLAGS="-I${getDev gpgme}/include -I${getDev libgpgerror}/include -I${getDev devicemapper}/include -I${getDev btrfs-progs}/include"
     export CGO_LDFLAGS="-L${getLib gpgme}/lib -L${getLib libgpgerror}/lib -L${getLib devicemapper}/lib"
   '';
 
+  postInstall = ''
+    mkdir $bin/etc
+    cp -v ./go/src/github.com/projectatomic/skopeo/default-policy.json $bin/etc/default-policy.json
+  '';
+
   meta = {
     description = "A command line utility for various operations on container images and image repositories";
     homepage = "https://github.com/projectatomic/skopeo";
diff --git a/pkgs/development/tools/skopeo/path.patch b/pkgs/development/tools/skopeo/path.patch
new file mode 100644
index 000000000000..deb63b27945f
--- /dev/null
+++ b/pkgs/development/tools/skopeo/path.patch
@@ -0,0 +1,25 @@
+diff --git a/cmd/skopeo/main.go b/cmd/skopeo/main.go
+index 51f918d..6681d73 100644
+--- a/cmd/skopeo/main.go
++++ b/cmd/skopeo/main.go
+@@ -3,6 +3,7 @@ package main
+ import (
+ 	"fmt"
+ 	"os"
++  "path/filepath"
+
+ 	"github.com/Sirupsen/logrus"
+ 	"github.com/containers/image/signature"
+@@ -84,6 +85,12 @@ func getPolicyContext(c *cli.Context) (*signature.PolicyContext, error) {
+ 	policyPath := c.GlobalString("policy")
+ 	var policy *signature.Policy // This could be cached across calls, if we had an application context.
+ 	var err error
++  var dir string
++  if policyPath == "" {
++    dir, err = filepath.Abs(filepath.Dir(os.Args[0]))
++    policyPath = dir + "/../etc/default-policy.json"
++  }
++
+ 	if policyPath == "" {
+ 		policy, err = signature.DefaultPolicy(nil)
+ 	} else {
diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix
index 9bc9bf9c0e41..bfd4b7370e0a 100644
--- a/pkgs/development/tools/spirv-tools/default.nix
+++ b/pkgs/development/tools/spirv-tools/default.nix
@@ -4,18 +4,18 @@ let
 
 spirv_sources = {
   # `vulkan-loader` requires a specific version of `spirv-tools` and `spirv-headers` as specified in
-  # `<vulkan-loader-repo>/spirv-tools_revision`.
+  # `<vulkan-loader-repo>/external_revisions/spirv-tools_revision`.
   tools = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Tools";
-    rev = "37422e9dba1a3a8cb8028b779dd546d43add6ef8";
-    sha256 = "0sp2p4wg902clq0fr94vj19vyv43cq333jjxr0mjzay8dw2h4yzk";
+    rev = "7fe8a57a5bd72094e91f9f93e51dac2f2461dcb4";
+    sha256 = "0rh25y1k3m3f1nqs032lh3mng5qfw9kqn6xv9yzzm47i1i0b6hmr";
   };
   headers = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Headers";
-    rev = "c470b68225a04965bf87d35e143ae92f831e8110";
-    sha256 = "18jgcpmm0ixp6314r5w144l3wayxjkmwqgx8dk5jgyw36dammkwd";
+    rev = "6c08995e6e7b94129e6086c78198c77111f2f262";
+    sha256 = "07m12wm9prib7hldj7pbc8vwnj0x6llgx4shzgy8x4xbhbafawws";
   };
 };
 
@@ -23,7 +23,7 @@ in
 
 stdenv.mkDerivation rec {
   name = "spirv-tools-${version}";
-  version = "2016-12-19";
+  version = "2017-03-23";
 
   src = spirv_sources.tools;
   patchPhase = ''ln -sv ${spirv_sources.headers} external/spirv-headers'';
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
     license = licenses.asl20;
     platforms = platforms.linux;
+    maintainers = [ maintainers.ralith ];
   };
 }
diff --git a/pkgs/misc/screensavers/xautolock/default.nix b/pkgs/misc/screensavers/xautolock/default.nix
index c65c7ef121cb..02cdcf7b4d1c 100644
--- a/pkgs/misc/screensavers/xautolock/default.nix
+++ b/pkgs/misc/screensavers/xautolock/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "A program that launches a given program when your X session has been idle for a given time.";
     homepage = http://www.ibiblio.org/pub/linux/X11/screensavers;
     maintainers = with maintainers; [ garbas ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index 27acc8f1c283..cf7fe8fc8418 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="firejail";
-    version="0.9.44.8";
+    version="0.9.44.10";
     name="${baseName}-${version}";
-    hash="0w87n5qzvylbjipaf45sw65gg4rpqcbi32zw9cs1jbfvf4bikzmr";
-    url="https://netix.dl.sourceforge.net/project/firejail/firejail/firejail-0.9.44.8.tar.xz";
-    sha256="0w87n5qzvylbjipaf45sw65gg4rpqcbi32zw9cs1jbfvf4bikzmr";
+    hash="19wln3h54wcscqgcmkm8sprdh7vrn5k91rr0hagv055y1i52c7mj";
+    url="https://netix.dl.sourceforge.net/project/firejail/firejail/firejail-0.9.44.10.tar.xz";
+    sha256="19wln3h54wcscqgcmkm8sprdh7vrn5k91rr0hagv055y1i52c7mj";
   };
   buildInputs = [
     which
diff --git a/pkgs/os-specific/linux/firejail/default.upstream b/pkgs/os-specific/linux/firejail/default.upstream
index 4a0037e8aa4b..186dd4408b74 100644
--- a/pkgs/os-specific/linux/firejail/default.upstream
+++ b/pkgs/os-specific/linux/firejail/default.upstream
@@ -1,3 +1,3 @@
 url http://sourceforge.net/projects/firejail/files/firejail/
-version_link '[.]tar[.][a-z0-9]+/download$'
+version_link '[-][0-9.]+[.]tar[.][a-z0-9]+/download$'
 SF_redirect
diff --git a/pkgs/os-specific/linux/i2c-tools/default.nix b/pkgs/os-specific/linux/i2c-tools/default.nix
index 7d2a5f795d91..1f67743af0d4 100644
--- a/pkgs/os-specific/linux/i2c-tools/default.nix
+++ b/pkgs/os-specific/linux/i2c-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "i2c-tools-${version}";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "http://http.debian.net/debian/pool/main/i/i2c-tools/i2c-tools_${version}.orig.tar.bz2";
-    sha256 = "000pvg995qy1b15ks59gd0klri55hb33kqpg5czy84hw1pbdgm0l";
+    sha256 = "0hd4c1w8lnwc3j95h3vpd125170l1d4myspyrlpamqx6wbr6jpnv";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 09e4d9e1ecdc..39c19ceeff7d 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -100,6 +100,10 @@ with stdenv.lib;
   # Disable some expensive (?) features.
   PM_TRACE_RTC n
 
+  # Enable initrd support.
+  BLK_DEV_RAM y
+  BLK_DEV_INITRD y
+
   # Enable various subsystems.
   ACCESSIBILITY y # Accessibility support
   AUXDISPLAY y # Auxiliary Display support
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index 5574cc937af7..5bce3af94293 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -17,6 +17,7 @@ my $wd = getcwd;
 
 my $debug = $ENV{'DEBUG'};
 my $autoModules = $ENV{'AUTO_MODULES'};
+my $preferBuiltin = $ENV{'PREFER_BUILTIN'};
     
 $SIG{PIPE} = 'IGNORE';
 
@@ -73,7 +74,7 @@ sub runConfig {
                 my $question = $1; my $name = $2; my $alts = $3;
                 my $answer = "";
                 # Build everything as a module if possible.
-                $answer = "m" if $autoModules && $alts =~ /\/m/;
+                $answer = "m" if $autoModules && $alts =~ /\/m/ && !($preferBuiltin && $alts =~ /Y/);
                 $answer = $answers{$name} if defined $answers{$name};
                 print STDERR "QUESTION: $question, NAME: $name, ALTS: $alts, ANSWER: $answer\n" if $debug;
                 print OUT "$answer\n";
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index af14434b08f2..16b35e9aa3e2 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -55,6 +55,7 @@ let
     kernelBaseConfig = stdenv.platform.kernelBaseConfig;
     kernelTarget = stdenv.platform.kernelTarget;
     autoModules = stdenv.platform.kernelAutoModules;
+    preferBuiltin = stdenv.platform.kernelPreferBuiltin or false;
     arch = stdenv.platform.kernelArch;
 
     crossAttrs = let
@@ -92,7 +93,7 @@ let
       echo "generating kernel configuration..."
       echo "$kernelConfig" > kernel-config
       DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config AUTO_MODULES=$autoModules \
-           SRC=../$sourceRoot perl -w $generateConfig
+           PREFER_BUILTIN=$preferBuiltin SRC=../$sourceRoot perl -w $generateConfig
     '';
 
     installPhase = "mv .config $out";
diff --git a/pkgs/os-specific/linux/kernel/linux-4.10.nix b/pkgs/os-specific/linux/kernel/linux-4.10.nix
index a4fa8f65c391..252eb2498cc8 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.10.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.10.8";
+  version = "4.10.9";
   extraMeta.branch = "4.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "12wf3nzhs0hbl87ckwc15b492z50lg4c7rxwqw50px3zhh5mvf8a";
+    sha256 = "1y8cpwhkcb8lsryiyqqr1w58snw26x3x6c4f9v1xnh9grz0s4j6h";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index da633753e705..718c76b8dfa1 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.4.59";
+  version = "4.4.60";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1jlnm6msxdhm7l6all91rd1rkqsqpd0rblbdl68z7nkz9hy55sb4";
+    sha256 = "18r0m991q62gy5i7gkkpyhz65h2d9z4x9qpys5f2i78smq2yk67f";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index e8facc96ebce..6e36ab81aa53 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.9.20";
+  version = "4.9.21";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0h8km3z5c3qyhwq24dvh00j2jzfcyqdjjcjrrz5qvyrjvl30hrj8";
+    sha256 = "093cbrzdpj9f3ddxh2p1n05lrrs8yc6hh9jibbjv75vrpx4kfl4p";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/tcp-wrappers/default.nix b/pkgs/os-specific/linux/tcp-wrappers/default.nix
index 850fbe9f4495..526b1a86db1e 100644
--- a/pkgs/os-specific/linux/tcp-wrappers/default.nix
+++ b/pkgs/os-specific/linux/tcp-wrappers/default.nix
@@ -57,6 +57,6 @@ in stdenv.mkDerivation rec {
 
     homepage = ftp://ftp.porcupine.org/pub/security/index.html;
     license = "BSD-style";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index 89845fff9c6a..e69b25c5b94d 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -13,11 +13,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nsd-4.1.14";
+  name = "nsd-4.1.15";
 
   src = fetchurl {
     url = "http://www.nlnetlabs.nl/downloads/nsd/${name}.tar.gz";
-    sha256 = "bdfc61c5f3bf11febd8f4776eef1d4f2d95ed70f12f11d4eeee943c186ffd802";
+    sha256 = "494a862cfcd26a525a4bf06306eb7ab0387b34678ac6d37767507438e3a23a4b";
   };
 
   buildInputs = [ libevent openssl ];
diff --git a/pkgs/servers/slimserver/default.nix b/pkgs/servers/slimserver/default.nix
new file mode 100644
index 000000000000..18dbed4d1f30
--- /dev/null
+++ b/pkgs/servers/slimserver/default.nix
@@ -0,0 +1,97 @@
+{ stdenv, buildPerlPackage, fetchurl
+, perl, perlPackages }:
+
+buildPerlPackage rec {
+  name = "slimserver-${version}";
+  version = "7.9.0";
+
+  src = fetchurl {
+    url = "https://github.com/Logitech/slimserver/archive/${version}.tar.gz";
+    sha256 = "07rhqipg7m28x0nqdd83nyzi88dp9cf8rr2pamdyrfcwyp1h1b44";
+  };
+
+  buildInputs = [
+    perl
+    perlPackages.AnyEvent
+    perlPackages.AudioScan
+    perlPackages.CarpClan
+    perlPackages.CGI
+    perlPackages.ClassXSAccessor
+    perlPackages.DataDump
+    perlPackages.DataURIEncode
+    perlPackages.DBDSQLite
+    perlPackages.DBI
+    perlPackages.DBIxClass
+    perlPackages.DigestSHA1
+    perlPackages.EV
+    perlPackages.ExporterLite
+    perlPackages.FileBOM
+    perlPackages.FileCopyRecursive
+    perlPackages.FileNext
+    perlPackages.FileReadBackwards
+    perlPackages.FileSlurp
+    perlPackages.FileWhich
+    perlPackages.HTMLParser
+    perlPackages.HTTPCookies
+    perlPackages.HTTPDaemon
+    perlPackages.HTTPMessage
+    perlPackages.ImageScale
+    perlPackages.IOSocketSSL
+    perlPackages.IOString
+    perlPackages.JSONXSVersionOneAndTwo
+    perlPackages.Log4Perl
+    perlPackages.LWPUserAgent
+    perlPackages.NetHTTP
+    perlPackages.ProcBackground
+    perlPackages.SubName
+    perlPackages.TemplateToolkit
+    perlPackages.TextUnidecode
+    perlPackages.TieCacheLRU
+    perlPackages.TieCacheLRUExpires
+    perlPackages.TieRegexpHash
+    perlPackages.TimeDate
+    perlPackages.URI
+    perlPackages.URIFind
+    perlPackages.UUIDTiny
+    perlPackages.XMLParser
+    perlPackages.XMLSimple
+    perlPackages.YAMLLibYAML
+  ];
+
+
+  prePatch = ''
+    mkdir CPAN_used
+    # slimserver doesn't work with current DBIx/SQL versions, use bundled copies
+    mv CPAN/DBIx CPAN/SQL CPAN_used
+    rm -rf CPAN
+    rm -rf Bin
+    touch Makefile.PL
+    '';
+
+  preConfigurePhase = "";
+
+  buildPhase = "
+    mv lib tmp
+    mkdir -p lib/perl5/site_perl
+    mv CPAN_used/* lib/perl5/site_perl
+    cp -rf tmp/* lib/perl5/site_perl
+  ";
+
+  doCheck = false;
+
+  installPhase = ''
+    cp -r . $out
+  '';
+
+  outputs = [ "out" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Logitech/slimserver;
+    description = "Server for Logitech Squeezebox players. This server is also called Logitech Media Server";
+    # the firmware is not under a free license!
+    # https://github.com/Logitech/slimserver/blob/public/7.9/License.txt
+    license = licenses.unfree;
+    maintainers = [ maintainers.phile314 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index af0b17bfb3a4..de147e31da76 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sonarr-${version}";
-  version = "2.0.0.4645";
+  version = "2.0.0.4689";
 
   src = fetchurl {
     url = "http://download.sonarr.tv/v2/master/mono/NzbDrone.master.${version}.mono.tar.gz";
-    sha256 = "13a1ly2rm0ha355h4q2x8v699d43arcq3iyn7nm921rkswajvvb8";
+    sha256 = "056ndn98byn6gkiq46vn8pl0s715ni7wklxnmid2hk5xwyjy7bwk";
   };
 
   buildInputs = [
diff --git a/pkgs/shells/rssh/default.nix b/pkgs/shells/rssh/default.nix
index f1fb4d03121d..b84f5f26685b 100644
--- a/pkgs/shells/rssh/default.nix
+++ b/pkgs/shells/rssh/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.pizzashack.org/rssh/";
     license = licenses.bsd2;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ arobyn ];
   };
 
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 85e4dabbbded..4f651575d6aa 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -3,7 +3,7 @@
 with import pkgspath { inherit system; };
 
 let
-  llvmPackages = llvmPackages_37;
+  llvmPackages = llvmPackages_4;
 in rec {
   coreutils_ = coreutils.override (args: {
     # We want coreutils without ACL support.
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 6e6fbed2dbff..7c410a1a4f4f 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -7,23 +7,23 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" || stden
 
 stdenv.mkDerivation rec {
   name = "google-cloud-sdk-${version}";
-  version = "148.0.1";
+  version = "150.0.0";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86.tar.gz";
-        sha256 = "17az8nah6s33c790kkqcpmcsc8cydhndmq7dblpwgizd86hg245g";
+        sha256 = "0zg6jnn93dq53glds4cghksyghb4d4z0i2h38na0r88mr8hzmx1l";
       }
     else if stdenv.system == "x86_64-darwin" then
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-darwin-x86_64.tar.gz";
-        sha256 = "1p5076cqk02y8zc3pkdlmrgh3mx2w1pddb2r5c9h3krfcaim2yj8";
+        sha256 = "1vbc360z2da3blwx51asw7jh0v0v6wsrv20z36yq0hccmljlh24w";
       }
     else
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86_64.tar.gz";
-        sha256 = "0fr07vcksy0vrg7inmyddz9jlbqx0yg933s45zzkpp3a0m5hz6ll";
+        sha256 = "1q66aap3qidfsa8gm13jff3dprx8qarhjkx5ib65439fy4zj0bca";
       };
 
   buildInputs = [python27 makeWrapper];
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index baf9e4f4e394..0d60930b1fb4 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchFromGitHub, fetchurl, makeWrapper
 , perl, pandoc, python2Packages, git
-, par2cmdline ? null, par2Support ? false
+, par2cmdline ? null, par2Support ? true
 }:
 
 assert par2Support -> par2cmdline != null;
 
-let version = "0.29"; in
+let version = "0.29.1"; in
 
 with stdenv.lib;
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "1cc9kpq9bpln89m4ni6wqzh4c8zwxmgnhaibdxxfs5pk2mpl3ds5";
+    sha256 = "0wdr399jf64zzzsdvldhrwvnh5xpbghjvslr1j2cwr5y4i36znxf";
   };
 
   buildInputs = [ git python2Packages.python ];
diff --git a/pkgs/tools/compression/advancecomp/default.nix b/pkgs/tools/compression/advancecomp/default.nix
index 2f4b56ffcaf9..23acf7446b17 100644
--- a/pkgs/tools/compression/advancecomp/default.nix
+++ b/pkgs/tools/compression/advancecomp/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = ''A set of tools to optimize deflate-compressed files'';
-    license = licenses.gpl2 ;
+    license = licenses.gpl3 ;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     homepage = https://github.com/amadvance/advancecomp;
diff --git a/pkgs/tools/filesystems/bonnie/default.nix b/pkgs/tools/filesystems/bonnie/default.nix
index fb25446d2e31..65a722c74084 100644
--- a/pkgs/tools/filesystems/bonnie/default.nix
+++ b/pkgs/tools/filesystems/bonnie/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "bonnie++-1.97";
+stdenv.mkDerivation rec {
+  name = "bonnie++-1.97.3";
   src = fetchurl {
-    url = http://www.coker.com.au/bonnie++/experimental/bonnie++-1.97.tgz;
-    sha256 = "10jrqgvacvblyqv38pg5jb9jspyisxaladcrp8k6b2k46xcs1xa4";
+    url = "http://www.coker.com.au/bonnie++/experimental/${name}.tgz";
+    sha256 = "0vkl42rsrsy95fc1ykc6g8rsdbnpxayvdaihnnkly1fww1m3hyz2";
   };
 
   patches = stdenv.lib.optional stdenv.isDarwin ./bonnie-homebrew.patch;
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 06190a8f03da..086f0e0f790c 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -14,9 +14,9 @@ buildGoPackage rec {
     sha256 = "1lj9czippsgkhr8y3r7vwxgc8i952v76v1shdv10p43gsxwyyi9a";
   };
 
-  # TODO: add metadata https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes
   meta = {
     license = lib.licenses.asl20;
+    platforms = lib.platforms.linux;
     maintainers = [];
     homepage = https://cloud.google.com/storage/docs/gcs-fuse;
     description =
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 2f49d630c151..4689207e835a 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -6,10 +6,10 @@ let
   s =
   rec {
     baseName="glusterfs";
-    version = "3.10.0";
+    version = "3.10.1";
     name="${baseName}-${version}";
-    url="http://download.gluster.org/pub/gluster/glusterfs/3.10/3.10.0/glusterfs-3.10.0.tar.gz";
-    sha256 = "1svysq55z4sd6bxcdpkxljwis4cnzkknag22ngyr7sgb4bs19c97";
+    url="http://download.gluster.org/pub/gluster/glusterfs/3.10/${version}/glusterfs-${version}.tar.gz";
+    sha256 = "05qmn85lg3d1gz0fhn1v2z7nwl2qwbflvjc8nvkfyr4r57rkvhnk";
   };
   buildInputs = [
     fuse bison flex_2_5_35 openssl python2 ncurses readline
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
index a5c858ecbae5..a96612c28041 100644
--- a/pkgs/tools/filesystems/ntfs-3g/default.nix
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ntfs-3g";
-  version = "2016.2.22";
+  version = "2017.3.23";
   name = "${pname}-${version}";
 
   buildInputs = [ libuuid ] ++ stdenv.lib.optionals crypto [ gnutls libgcrypt ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${version}.tgz";
-    sha256 = "180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp";
+    sha256 = "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy";
   };
 
   patches = [
diff --git a/pkgs/tools/graphics/epstool/default.nix b/pkgs/tools/graphics/epstool/default.nix
new file mode 100644
index 000000000000..9735adca53dc
--- /dev/null
+++ b/pkgs/tools/graphics/epstool/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.08";
+  name = "epstool-${version}";
+
+  src = fetchurl {
+    url = "http://ftp.de.debian.org/debian/pool/main/e/epstool/epstool_${version}+repack.orig.tar.gz";
+    sha256 = "1pfgqbipwk36clhma2k365jkpvyy75ahswn8jczzys382jalpwgk";
+  };
+
+  installPhase = ''
+    make EPSTOOL_ROOT=$out install
+  '';
+
+  patches = [ ./gcc43.patch ];
+
+  meta = with stdenv.lib; {
+    description = "A utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps";
+    homepage = http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.asppsa ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/graphics/epstool/gcc43.patch b/pkgs/tools/graphics/epstool/gcc43.patch
new file mode 100644
index 000000000000..398ce08c5182
--- /dev/null
+++ b/pkgs/tools/graphics/epstool/gcc43.patch
@@ -0,0 +1,20 @@
+--- epstool-3.08.orig/src/epstool.c	2005-06-10 04:41:00.000000000 -0500
++++ epstool-3.08/src/epstool.c	2009-02-16 20:55:43.186140029 -0600
+@@ -2824,7 +2824,7 @@
+ 		code = -1;
+ 	}
+ 	if ((code==0) && stdout_name && (hChildStdoutWr == -1)) {
+-	    handle = open(stdout_name, O_WRONLY | O_CREAT);
++	    handle = open(stdout_name, O_WRONLY | O_CREAT, 0644);
+ 	    hChildStdoutWr = dup2(handle, 1);
+ 	    if (handle != -1)
+ 		close(handle);
+@@ -2832,7 +2832,7 @@
+ 		code = -1;
+ 	}
+ 	if ((code==0) && stderr_name && (hChildStderrWr == -1)) {
+-	    handle = open(stderr_name, O_WRONLY | O_CREAT);
++	    handle = open(stderr_name, O_WRONLY | O_CREAT, 0644);
+ 	    hChildStderrWr = dup2(handle, 2);
+ 	    if (handle != -1)
+ 		close(handle);
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index da9a599714cb..d63819ade215 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -1,12 +1,12 @@
-{ fetchgit
-, stdenv
+{ stdenv
 , python3Packages
-, fetchFromGitHub }:
+, fetchFromGitHub
+, systemd }:
 
 let
   python = python3Packages.python;
   wrapPython = python3Packages.wrapPython;
-  date = "2016-11-23";
+  date = "2017-01-22";
 in
   stdenv.mkDerivation {
     name = "autorandr-unstable-${date}";
@@ -16,20 +16,38 @@ in
     phases = [ "unpackPhase" "installPhase" ];
 
     installPhase = ''
-      # install bash completions
-      mkdir -p $out/bin $out/libexec $out/etc/bash_completion.d
-      cp -v contrib/bash_completion/autorandr $out/etc/bash_completion.d
-
-      # install autorandr bin
-      cp autorandr.py $out/bin/autorandr
+      make install TARGETS='autorandr' PREFIX=$out
       wrapPythonProgramsIn $out/bin/autorandr $out
+
+      make install TARGETS='bash_completion' DESTDIR=$out
+
+      make install TARGETS='autostart_config' PREFIX=$out DESTDIR=$out
+
+      ${if false then ''
+        # breaks systemd-udev-settle during boot so disabled
+        make install TARGETS='systemd udev' PREFIX=$out DESTDIR=$out \
+          SYSTEMD_UNIT_DIR=/lib/systemd/system \
+          UDEV_RULES_DIR=/etc/udev/rules.d
+        substituteInPlace $out/etc/udev/rules.d/40-monitor-hotplug.rules \
+          --replace /bin "${systemd}/bin"
+      '' else if systemd != null then ''
+        make install TARGETS='systemd' PREFIX=$out DESTDIR=$out \
+          SYSTEMD_UNIT_DIR=/lib/systemd/system
+        make install TARGETS='udev' PREFIX=$out DESTDIR=$out \
+          UDEV_RULES_DIR=/etc/udev/rules.d
+      '' else ''
+        make install TARGETS='pmutils' DESTDIR=$out \
+          PM_SLEEPHOOKS_DIR=/lib/pm-utils/sleep.d
+        make install TARGETS='udev' PREFIX=$out DESTDIR=$out \
+          UDEV_RULES_DIR=/etc/udev/rules.d
+      ''}
     '';
 
     src = fetchFromGitHub {
       owner = "phillipberndt";
       repo = "autorandr";
-      rev = "53d29f99275aebf14240ea95f2d7022b305738d5";
-      sha256 = "0pza4wfkzv7mmg2m4pf3n8wk0p7cy6bfqknn8ywz51r8ja16cqfj";
+      rev = "855c18b7f2cfd364d6f085d4301b5b98ba6e572a";
+      sha256 = "1yp1gns3lwa8796cb7par9czkc9i7paap2fkzf7wj6zqlkgjdvv0";
     };
 
     meta = {
diff --git a/pkgs/tools/misc/keychain/default.nix b/pkgs/tools/misc/keychain/default.nix
index 6ffd36312a3e..d32ed0b0d837 100644
--- a/pkgs/tools/misc/keychain/default.nix
+++ b/pkgs/tools/misc/keychain/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "keychain-${version}";
-  version = "2.8.0";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "funtoo";
     repo = "keychain";
-    rev = "1c8eaba53a7788d12d086b66ac3929810510f73a";
-    sha256 = "0ajas58cv8mp5wb6hn1zhsqiwfxvx69p4f91a5j2as299rxgrxlp";
+    rev = "${version}";
+    sha256 = "0za2fi4g7ixzj3izgwlv71b3cviz3qhz43y4bhdkglg16x5cnzcb";
   };
 
   buildInputs = [ makeWrapper perl ];
diff --git a/pkgs/tools/misc/less/default.nix b/pkgs/tools/misc/less/default.nix
index 9693556862bd..b3370a3cab1f 100644
--- a/pkgs/tools/misc/less/default.nix
+++ b/pkgs/tools/misc/less/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses, lessSecure ? false }:
 
 stdenv.mkDerivation rec {
-  name = "less-481";
+  name = "less-487";
 
   src = fetchurl {
     url = "http://www.greenwoodsoftware.com/less/${name}.tar.gz";
-    sha256 = "19fxj0h10y5bhr3a1xa7kqvnwl44db3sdypz8jxl1q79yln8z8rz";
+    sha256 = "01i7n6jaxwmww3pasy3hg38zc6x7jw0w05mqqvh6caqbrdaq9p7k";
   };
 
   configureFlags = [ "--sysconfdir=/etc" ] # Look for ‘sysless’ in /etc.
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index c62bd45fef8d..0e1d3b8f49f3 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -1,11 +1,14 @@
-{stdenv, fetchurl, openssl}:
+{stdenv, fetchFromGitHub, openssl}:
 
-stdenv.mkDerivation {
-  name = "mktorrent-1.0";
+stdenv.mkDerivation rec {
+  name = "mktorrent-${version}";
+  version = "1.1";
 
-  src = fetchurl {
-    url = mirror://sourceforge/mktorrent/mktorrent-1.0.tar.gz;
-    sha256 = "17qi3nfky240pq6qcmf5qg324mxm83vk9r3nvsdhsvinyqm5d3kg";
+  src = fetchFromGitHub {
+    owner = "Rudde";
+    repo = "mktorrent";
+    rev = "v${version}";
+    sha256 = "17pdc5mandl739f8q26n5is8ga56s83aqcrwhlnnplbxwx2inidr";
   };
 
   makeFlags = "USE_PTHREADS=1 USE_OPENSSL=1 USE_LONG_OPTIONS=1"
@@ -22,7 +25,6 @@ stdenv.mkDerivation {
     homepage = http://mktorrent.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2Plus;
     description = "Command line utility to create BitTorrent metainfo files";
-    platforms = with stdenv.lib.platforms; unix;
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [viric profpatsch];
   };
 }
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index f287e39e7b23..bfafe0151a0a 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "picocom-${version}";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "npat-efault";
     repo = "picocom";
     rev = version;
-    sha256 = "1ac3xdfiw5bd24lw4l9hxc75rcagw0y182x7svhkqp2gwsvzkbjv";
+    sha256 = "06b2ic34dnxc73cprc5imi3iamlhsv623sbg9vj5h5rvs586dwjx";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/scanmem/default.nix b/pkgs/tools/misc/scanmem/default.nix
index 03c1273a7d32..38b313111376 100644
--- a/pkgs/tools/misc/scanmem/default.nix
+++ b/pkgs/tools/misc/scanmem/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/scanmem/scanmem";
     description = "Memory scanner for finding and poking addresses in executing processes";
     maintainers = [ maintainers.chattered  ];
-    platforms = with platforms; linux ++ darwin;
+    platforms = platforms.linux;
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index a7f2d445bca5..600b2c497580 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "yle-dl-${version}";
-  version = "2.11";
+  version = "2.15";
 
   src = fetchFromGitHub {
     owner = "aajanki";
     repo = "yle-dl";
     rev = version;
-    sha256 = "1fa2a25j3wwk3m6q1alilklwhqf337ch8rj6bwricc5zqb58qivc";
+    sha256 = "1mvgw8ppv33j04mjsyb5rxg358v3i2zfgazwm7nc3ysc5yl091j5";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 7dc418cba574..0d1e3194bd87 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "iperf-3.1.3";
+  name = "iperf-3.1.7";
 
   src = fetchurl {
     url = "http://downloads.es.net/pub/iperf/${name}.tar.gz";
-    sha256 = "1gwmhm29zlp5grrpglmqj7vgx19s6xy33hk6hpbn8jnpn5lxpn30";
+    sha256 = "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4";
   };
 
   postInstall = ''
diff --git a/pkgs/tools/networking/ssmtp/default.nix b/pkgs/tools/networking/ssmtp/default.nix
index 7c47f2762dd6..ceac5a58800c 100644
--- a/pkgs/tools/networking/ssmtp/default.nix
+++ b/pkgs/tools/networking/ssmtp/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation {
     sha256 = "0dps8s87ag4g3jr6dk88hs9zl46h3790marc5c2qw7l71k4pvhr2";
   };
 
+  # A request has been made to merge this patch into ssmtp.
+  # See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858781
+  patches = [ ./ssmtp_support_AuthPassFile_parameter.patch ];
+
   configureFlags = "--sysconfdir=/etc ${if tlsSupport then "--enable-ssl" else ""}";
 
   postConfigure =
@@ -27,7 +31,8 @@ stdenv.mkDerivation {
   
   buildInputs = stdenv.lib.optional tlsSupport openssl;
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ basvandijk ];
   };
 }
diff --git a/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch b/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch
new file mode 100644
index 000000000000..371c0f6de2b3
--- /dev/null
+++ b/pkgs/tools/networking/ssmtp/ssmtp_support_AuthPassFile_parameter.patch
@@ -0,0 +1,69 @@
+diff -Naurb a/ssmtp.c b/ssmtp.c
+--- a/ssmtp.c	2009-11-23 10:55:11.000000000 +0100
++++ b/ssmtp.c	2017-03-25 03:00:26.508283016 +0100
+@@ -57,6 +57,7 @@
+ char arpadate[ARPADATE_LENGTH];
+ char *auth_user = (char)NULL;
+ char *auth_pass = (char)NULL;
++char *auth_passfile = (char)NULL;
+ char *auth_method = (char)NULL;		/* Mechanism for SMTP authentication */
+ char *mail_domain = (char)NULL;
+ char *from = (char)NULL;		/* Use this as the From: address */
+@@ -1053,6 +1054,15 @@
+ 					log_event(LOG_INFO, "Set AuthPass=\"%s\"\n", auth_pass);
+ 				}
+ 			}
++			else if(strcasecmp(p, "AuthPassFile") == 0 && !auth_passfile) {
++				if((auth_passfile = strdup(q)) == (char *)NULL) {
++					die("parse_config() -- strdup() failed");
++				}
++
++				if(log_level > 0) {
++					log_event(LOG_INFO, "Set AuthPassFile=\"%s\"\n", auth_passfile);
++				}
++			}
+ 			else if(strcasecmp(p, "AuthMethod") == 0 && !auth_method) {
+ 				if((auth_method = strdup(q)) == (char *)NULL) {
+ 					die("parse_config() -- strdup() failed");
+@@ -1415,6 +1425,8 @@
+ 	struct passwd *pw;
+ 	int i, sock;
+ 	uid_t uid;
++	FILE *fp;
++	char pass_buf[BUF_SZ+1];
+ 	bool_t minus_v_save, leadingdot, linestart = True;
+ 	int timeout = 0;
+ 	int bufsize = sizeof(b)-1;
+@@ -1433,6 +1445,17 @@
+ 		log_event(LOG_INFO, "%s not found", config_file);
+ 	}
+ 
++	if(auth_passfile != (char *)NULL) {
++		if((fp = fopen(auth_passfile, "r")) == (FILE *)NULL) {
++			  die("Could not open the AuthPassFile %s", auth_passfile);
++		}
++		if (fgets(pass_buf, BUF_SZ, fp) == NULL) {
++			die("Error while reading a line from the AuthPassFile %s, or it is empty", auth_passfile);
++		}
++		fclose(fp);
++		auth_pass = strdup(pass_buf);
++	}
++
+ 	if((p = strtok(pw->pw_gecos, ";,"))) {
+ 		if((gecos = strdup(p)) == (char *)NULL) {
+ 			die("ssmtp() -- strdup() failed");
+diff -Naurb a/ssmtp.conf.5 b/ssmtp.conf.5
+--- a/ssmtp.conf.5	2008-02-29 03:50:15.000000000 +0100
++++ b/ssmtp.conf.5	2017-03-25 01:45:52.890165426 +0100
+@@ -61,6 +61,11 @@
+ .Pp
+ .It Cm AuthPass
+ The password to use for SMTP AUTH.
++It is recommended to use AuthPassFile which also takes precedence over AuthPass.
++.Pp
++.It Cm AuthPassFile
++A file that should contain the password to use for SMTP AUTH.
++This takes precedence over AuthPass.
+ .Pp
+ .It Cm AuthMethod
+ The authorization method to use.
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index dbd6a3521329..93463509b791 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -7,8 +7,8 @@
 
 let
 
-  common = { name, suffix ? "", src, fromGit ? false }: stdenv.mkDerivation rec {
-    inherit name src;
+  common = { name, suffix ? "", src, patchPhase ? "", fromGit ? false }: stdenv.mkDerivation rec {
+    inherit name src patchPhase;
     version = lib.getVersion name;
 
     VERSION_SUFFIX = lib.optionalString fromGit suffix;
@@ -109,6 +109,14 @@ in rec {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
       sha256 = "69e0f398affec2a14c47b46fec712906429c85312d5483be43e4c34da4f63f67";
     };
+
+    # 1.11.8 doesn't yet have the patch to work on LLVM 4, so we patch it for now. Take this out once
+    # we move to a higher version. I'd pull the specific patch from upstream but it doesn't apply cleanly.
+    patchPhase = ''
+      substituteInPlace src/libexpr/json-to-value.cc \
+        --replace 'std::less<Symbol>, gc_allocator<Value *>' \
+                  'std::less<Symbol>, gc_allocator<std::pair<const Symbol, Value *> >'
+    '';
   };
 
   nixUnstable = lib.lowPrio (common rec {
diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix
index 0398ffc180a5..50c8862bc346 100644
--- a/pkgs/tools/system/fio/default.nix
+++ b/pkgs/tools/system/fio/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, libaio, python, zlib }:
 
 let
-  version = "2.17";
-  sha256 = "17fygcy3flsp64mfmwpc66byy95cidby34s6grm3zgsjb7mcypr0";
+  version = "2.19";
+  sha256 = "1rfnisb8hqwx76rjmgaagvs3k0808z27ll9i3w5ifzysi1c1l6r9";
 in
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index 8dd95a8b4dec..09dfb6e47a57 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     homepage = https://github.com/openSUSE/hwinfo;
     maintainers = with maintainers; [ bobvanderlinden ndowens ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/safecopy/default.nix b/pkgs/tools/system/safecopy/default.nix
index 5e7ec51bf107..ce0779c0999c 100644
--- a/pkgs/tools/system/safecopy/default.nix
+++ b/pkgs/tools/system/safecopy/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
 
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 86320f815ac3..3de941891586 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -444,6 +444,14 @@ with pkgs;
 
   argyllcms = callPackage ../tools/graphics/argyllcms {};
 
+  arm-frc-linux-gnueabi-eglibc = callPackage ../development/libraries/arm-frc-linux-gnueabi-eglibc {};
+
+  arm-frc-linux-gnueabi-linux-api-headers = callPackage ../development/libraries/arm-frc-linux-gnueabi-linux-api-headers {};
+
+  arm-frc-linux-gnueabi-binutils = callPackage ../development/tools/misc/arm-frc-linux-gnueabi-binutils {};
+
+  arm-frc-linux-gnueabi-gcc = callPackage ../development/compilers/arm-frc-linux-gnueabi-gcc {};
+
   arp-scan = callPackage ../tools/misc/arp-scan { };
 
   artyFX = callPackage ../applications/audio/artyFX {};
@@ -1118,9 +1126,7 @@ with pkgs;
     inherit (pythonPackages) gyp;
   };
 
-  bup = callPackage ../tools/backup/bup {
-    par2Support = config.bup.par2Support or false;
-  };
+  bup = callPackage ../tools/backup/bup { };
 
   burp_1_3 = callPackage ../tools/backup/burp/1.3.48.nix { };
 
@@ -1668,6 +1674,8 @@ with pkgs;
 
   eplot = callPackage ../tools/graphics/eplot { };
 
+  epstool = callPackage ../tools/graphics/epstool { };
+
   ethtool = callPackage ../tools/misc/ethtool { };
 
   ettercap = callPackage ../applications/networking/sniffers/ettercap { };
@@ -4428,6 +4436,8 @@ with pkgs;
 
   time = callPackage ../tools/misc/time { };
 
+  tweet-hs = haskell.lib.justStaticExecutables haskellPackages.tweet-hs;
+
   qfsm = callPackage ../applications/science/electronics/qfsm { };
 
   tkgate = callPackage ../applications/science/electronics/tkgate/1.x.nix { };
@@ -5933,17 +5943,29 @@ with pkgs;
     git = gitMinimal;
   };
 
-  octave = callPackage ../development/interpreters/octave {
-    qt = null;
-    ghostscript = null;
-    graphicsmagick = null;
-    llvm = null;
-    hdf5 = null;
-    glpk = null;
-    suitesparse = null;
-    jdk = null;
-    openblas = if stdenv.isDarwin then openblasCompat else openblas;
-  };
+  inherit (
+    let
+      defaultOctaveOptions = {
+        qt = null;
+        ghostscript = null;
+        graphicsmagick = null;
+        llvm = null;
+        hdf5 = null;
+        glpk = null;
+        suitesparse = null;
+        jdk = null;
+        openblas = if stdenv.isDarwin then openblasCompat else openblas;
+      };
+
+      hgOctaveOptions =
+        (removeAttrs defaultOctaveOptions ["ghostscript"]) // {
+          overridePlatforms = stdenv.lib.platforms.none;
+        };
+    in {
+      octave = callPackage ../development/interpreters/octave defaultOctaveOptions;
+      octaveHg = lowPrio (callPackage ../development/interpreters/octave/hg.nix hgOctaveOptions);
+  }) octave octaveHg;
+
   octaveFull = (lowPrio (callPackage ../development/interpreters/octave {
     qt = qt4;
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
@@ -11046,6 +11068,8 @@ with pkgs;
 
   sipwitch = callPackage ../servers/sip/sipwitch { };
 
+  slimserver = callPackage ../servers/slimserver { };
+
   smcroute = callPackage ../servers/smcroute { };
 
   spawn_fcgi = callPackage ../servers/http/spawn-fcgi { };
@@ -15799,6 +15823,10 @@ with pkgs;
 
   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
 
+  verbiste = callPackage ../applications/misc/verbiste {
+    inherit (gnome2) libgnomeui;
+  };
+
   vim = callPackage ../applications/editors/vim {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   };
@@ -18018,7 +18046,7 @@ with pkgs;
 
   redis-desktop-manager = libsForQt56.callPackage ../applications/misc/redis-desktop-manager { };
 
-  robomongo = libsForQt5.callPackage ../applications/misc/robomongo { };
+  robomongo = callPackage ../applications/misc/robomongo { };
 
   rucksack = callPackage ../development/tools/rucksack { };
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index f0414b1b1ae3..0e9efde834db 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -459,6 +459,22 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  AudioScan = buildPerlPackage rec {
+    name = "Audio-Scan-0.93";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
+      sha256 = "03nwcm234y76jb1p20rlcky6vzv68i46s9mjfr7kzp65w3yg94js";
+    };
+    buildInputs = [ pkgs.zlib ModuleBuild ModuleBuildPluggablePPPort ];
+    propagatedBuildInputs = [ TestWarn ];
+    NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
+    meta = {
+      description = "Fast C metadata and tag reader for all common audio file formats";
+      license = stdenv.lib.licenses.gpl2;
+    };
+  };
+
   AuthenDecHpwd = buildPerlPackage rec {
     name = "Authen-DecHpwd-2.006";
     src = fetchurl {
@@ -865,6 +881,17 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestMore ];
   };
 
+  CanaryStability = buildPerlPackage rec {
+    name = "Canary-Stability-2012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
+      sha256 = "fd240b111d834dbae9630c59b42fae2145ca35addc1965ea311edf0d07817107";
+    };
+    meta = {
+      license = stdenv.lib.licenses.gpl1Plus;
+    };
+  };
+
   CaptchaReCAPTCHA = buildPerlPackage rec {
     name = "Captcha-reCAPTCHA-0.97";
     src = fetchurl {
@@ -2040,6 +2067,20 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ ClassInspector ];
   };
 
+  ClassVirtual = buildPerlPackage rec {
+    name = "Class-Virtual-0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/${name}.tar.gz";
+      sha256 = "c6499b42d3b4e5c6488a5e82fbc28698e6c9860165072dddfa6749355a9cfbb2";
+    };
+    propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ];
+    meta = {
+      homepage = https://metacpan.org/release/Class-Virtual;
+      description = "Base class for virtual base classes";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ClassXSAccessor = buildPerlPackage {
     name = "Class-XSAccessor-1.19";
     src = fetchurl {
@@ -3050,6 +3091,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DataURIEncode = buildPerlPackage rec {
+    name = "Data-URIEncode-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHANDOM/${name}.tar.gz";
+      sha256 = "51c9efbf8423853616eaa24841e4d1996b2db0036900617fb1dbc76c75a1f360";
+    };
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   DataUUID = buildPerlPackage rec {
     name = "Data-UUID-1.220";
     src = fetchurl {
@@ -4614,6 +4666,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  enum = buildPerlPackage rec {
+    name = "enum-1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/${name}.tar.gz";
+      sha256 = "d2f36b5015f1e35f640159867b60bf5d5cd66b56cd5e42d33f531be68e5eee35";
+    };
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Env = buildPerlPackage {
     name = "Env-1.04";
     src = fetchurl {
@@ -4647,6 +4710,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  EV = buildPerlPackage rec {
+    name = "EV-4.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
+      sha256 = "2ae7f8734e2e4945510252152c3bea4be35f4aa58aad3db0504c38844b08a991";
+    };
+    buildInputs = [ CanaryStability ];
+    propagatedBuildInputs = [ CommonSense ];
+    meta = {
+      license = stdenv.lib.licenses.gpl1Plus;
+    };
+  };
+
   EvalClosure = buildPerlPackage {
     name = "Eval-Closure-0.11";
     src = fetchurl {
@@ -5073,6 +5149,20 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ ModuleBuild ];
   };
 
+  FileBOM = buildPerlPackage rec {
+    name = "File-BOM-0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTLAW/${name}.tar.gz";
+      sha256 = "431c8b39397fd5ad5b1a1100d3647a06e9f94304d46db44ffc0a0e5c5c06a1c1";
+    };
+    buildInputs = [ ModuleBuild TestException ];
+    propagatedBuildInputs = [ Readonly ];
+    meta = {
+      description = "Utilities for handling Byte Order Marks";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   FileCheckTree = buildPerlPackage {
     name = "File-CheckTree-4.42";
     src = fetchurl {
@@ -6569,6 +6659,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ImageScale = buildPerlPackage rec {
+    name = "Image-Scale-0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
+      sha256 = "5b2c92dc2dd635b488879461760cd251aa2b1feef41b64f17914a6e4bbe3e442";
+    };
+    buildInputs = [ pkgs.libpng pkgs.libjpeg ];
+    propagatedBuildInputs = [ TestNoWarnings pkgs.zlib ];
+    makeMakerFlags = "--with-jpeg-includes=${pkgs.libjpeg.dev}/include --with-jpeg-libs=${pkgs.libjpeg.out}/lib --with-png-includes=${pkgs.libpng.dev}/include --with-png-libs=${pkgs.libpng.out}/lib";
+    meta = {
+      description = "Fast, high-quality fixed-point image resizing";
+      license = stdenv.lib.licenses.gpl2Plus;
+    };
+  };
+
   ImageSize = buildPerlPackage rec {
     name = "Image-Size-3.232";
     src = fetchurl {
@@ -7123,6 +7228,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  JSONXSVersionOneAndTwo = buildPerlPackage rec {
+    name = "JSON-XS-VersionOneAndTwo-0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LB/LBROCARD/${name}.tar.gz";
+      sha256 = "e6092c4d961fae777acf7fe99fb3cd6e5b710fec85765a6b90417480e4c94a34";
+    };
+    propagatedBuildInputs = [ JSONXS ];
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Later = buildPerlPackage rec {
     version = "0.19";
     name = "Object-Realize-Later-${version}";
@@ -10616,6 +10733,16 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ProcBackground = buildPerlPackage rec {
+    name = "Proc-Background-1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BZ/BZAJAC/${name}.tar.gz";
+      sha256 = "1ce0dd78c0bb8393a2431b385a27b99fcc623a41ebec57b3cc09cc38cdb708ee";
+    };
+    meta = {
+    };
+  };
+
   ProcProcessTable = buildPerlPackage {
     name = "Proc-ProcessTable-0.51";
     src = fetchurl {
@@ -14194,6 +14321,31 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TieCacheLRU = buildPerlPackage rec {
+    name = "Tie-Cache-LRU-20150301";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/${name}.tar.gz";
+      sha256 = "1bf740450d3a6d7c12b48c25f7da5964e44e7cc38b28572cfb76ff22464f4469";
+    };
+    propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassVirtual enum ];
+    meta = {
+      description = "A Least-Recently Used cache";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieCacheLRUExpires = buildPerlPackage rec {
+    name = "Tie-Cache-LRU-Expires-0.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OE/OESTERHOL/${name}.tar.gz";
+      sha256 = "b316d849acd25f24346d55a9950d281fee0746398767c601234122159573eb9a";
+    };
+    propagatedBuildInputs = [ TieCacheLRU ];
+    meta = {
+      license = stdenv.lib.licenses.artistic1;
+    };
+  };
+
   TieCycle = buildPerlPackage rec {
     name = "Tie-Cycle-1.21";
     src = fetchurl {
@@ -14249,6 +14401,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TieRegexpHash = buildPerlPackage rec {
+    name = "Tie-RegexpHash-0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALTREUS/${name}.tar.gz";
+      sha256 = "0c207850e77efb16618e0aa015507926a3425b34aad5aa6e3e40d83989a085a3";
+    };
+    meta = {
+      license = stdenv.lib.licenses.artistic1;
+    };
+  };
+
   TieToObject = buildPerlPackage {
     name = "Tie-ToObject-0.03";
     src = fetchurl {
@@ -14644,6 +14807,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  UUIDTiny = buildPerlPackage rec {
+    name = "UUID-Tiny-1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/${name}.tar.gz";
+      sha256 = "6dcd92604d64e96cc6c188194ae16a9d3a46556224f77b6f3d1d1312b68f9a3d";
+    };
+    meta = {
+      description = "Pure Perl UUID Support With Functional Interface";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   VariableMagic = buildPerlPackage rec {
     name = "Variable-Magic-0.58";
     src = fetchurl {
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index e26bc9e66ae1..19cb0da58d91 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -413,9 +413,18 @@ rec {
     kernelBaseConfig = "multi_v7_defconfig";
     kernelArch = "arm";
     kernelDTB = true;
-    kernelAutoModules = false;
+    kernelAutoModules = true;
+    kernelPreferBuiltin = true;
     uboot = null;
     kernelTarget = "zImage";
+    kernelExtraConfig =
+      ''
+        # Fix broken sunxi-sid nvmem driver.
+        TI_CPTS y
+
+        # Hangs ODROID-XU4
+        ARM_BIG_LITTLE_CPUIDLE n
+      '';
     gcc = {
       # Some table about fpu flags:
       # http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
@@ -447,32 +456,21 @@ rec {
     kernelBaseConfig = "defconfig";
     kernelArch = "arm64";
     kernelDTB = true;
-    kernelAutoModules = false;
+    kernelAutoModules = true;
+    kernelPreferBuiltin = true;
     kernelExtraConfig = ''
       # Raspberry Pi 3 stuff. Not needed for kernels >= 4.10.
       ARCH_BCM2835 y
       BCM2835_MBOX y
       BCM2835_WDT y
-      BRCMFMAC m
-      DMA_BCM2835 m
-      DRM_VC4 m
-      I2C_BCM2835 m
-      PWM_BCM2835 m
       RASPBERRYPI_FIRMWARE y
       RASPBERRYPI_POWER y
       SERIAL_8250_BCM2835AUX y
       SERIAL_8250_EXTENDED y
       SERIAL_8250_SHARE_IRQ y
-      SND_BCM2835_SOC_I2S m
-      SPI_BCM2835AUX m
-      SPI_BCM2835 m
 
       # Cavium ThunderX stuff.
       PCI_HOST_THUNDER_ECAM y
-      THUNDER_NIC_RGX y
-      THUNDER_NIC_BGX y
-      THUNDER_NIC_PF y
-      THUNDER_NIC_VF y
     '';
     uboot = null;
     kernelTarget = "Image";
diff --git a/pkgs/top-level/pure-packages.nix b/pkgs/top-level/pure-packages.nix
index 005e09cc003e..a16008880328 100644
--- a/pkgs/top-level/pure-packages.nix
+++ b/pkgs/top-level/pure-packages.nix
@@ -1,4 +1,4 @@
-{ callPackage }:
+{ callPackage, octaveHg }:
 
 rec {
   audio = callPackage ../development/pure-modules/audio { };
@@ -19,7 +19,7 @@ rec {
   lv2 = callPackage ../development/pure-modules/lv2 { };
   midi = callPackage ../development/pure-modules/midi { };
   mpfr = callPackage ../development/pure-modules/mpfr { };
-  octave = callPackage ../development/pure-modules/octave { };
+  octave = callPackage ../development/pure-modules/octave { octave = octaveHg; };
   odbc = callPackage ../development/pure-modules/odbc { };
   pandoc = callPackage ../development/pure-modules/pandoc { };
   rational = callPackage ../development/pure-modules/rational { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 22a3f56a6d46..74b00ad6ff2c 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -10335,12 +10335,12 @@ in {
 
   django_1_9 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.9.12";
+    version = "1.9.13";
     disabled = pythonOlder "2.7";
 
     src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.9/${name}.tar.gz";
-      sha256 = "0daaz2rp1rwwpzm5l29wcgg1gbw9yqzcv9x2dsjfz29n806q685x";
+      sha256 = "079zspfsvfnv9wf6qvg8xmz1m23d0723p2nqyk8gfqb012jxn1y0";
     };
 
     # patch only $out/bin to avoid problems with starter templates (see #3134)
@@ -10359,12 +10359,12 @@ in {
 
   django_1_8 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.8.17";
+    version = "1.8.18";
     disabled = pythonOlder "2.7";
 
     src = pkgs.fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.8/${name}.tar.gz";
-      sha256 = "01zb2l0gcdb2wgxmvvrhjj9ccdj1mfhn6zhqcdq04m7lzi4dc6q2";
+      sha256 = "1ishvbihr9pain0486qafb18dnb7v2ppq34nnx1s8f95bvfiqqf7";
     };
 
     # too complicated to setup
diff --git a/pkgs/top-level/rust-packages.nix b/pkgs/top-level/rust-packages.nix
index 1bebf222ac5e..ce8605a27e83 100644
--- a/pkgs/top-level/rust-packages.nix
+++ b/pkgs/top-level/rust-packages.nix
@@ -7,9 +7,9 @@
 { runCommand, fetchFromGitHub, git }:
 
 let
-  version = "2017-04-03";
-  rev = "24cb86b25f4d4758b775e78c03673378ed28120d";
-  sha256 = "07nzdrrghbpikh0mgvi1mv66mxisd47lcwk6v3szbsy5pgj6dxnq";
+  version = "2017-04-08";
+  rev = "9876afbb35a2fe28748990f76d91eaae827e2aae";
+  sha256 = "14wk74s0mqhxzmgaq07y75y8v4jkffzhs981y9cz806asdcxlrwh";
 
   src = fetchFromGitHub {
       inherit rev;