summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-11-28 18:19:34 +0100
committerVladimír Čunát <vcunat@gmail.com>2017-11-28 18:19:34 +0100
commitaddd20e6f9c682e37abdce93badfadfb92c327c2 (patch)
treea7df536a7b8a53c9f670c2b5234ee69b5861d1c7
parentd70d5c9ddb90a65d3d482b84119d54e540d6690e (diff)
parent2e55aec9d790cd744074fe56651f094a09695f66 (diff)
downloadnixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar.gz
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar.bz2
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar.lz
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar.xz
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.tar.zst
nixlib-addd20e6f9c682e37abdce93badfadfb92c327c2.zip
Merge branch 'master' into staging
-rw-r--r--doc/languages-frameworks/haskell.md2
-rw-r--r--nixos/modules/services/monitoring/grafana.nix2
-rw-r--r--nixos/modules/services/security/clamav.nix9
-rw-r--r--pkgs/applications/altcoins/zcash/default.nix4
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/misc/jgmenu/default.nix4
-rw-r--r--pkgs/applications/misc/mupdf/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix21
-rw-r--r--pkgs/applications/science/logic/acgtk/default.nix4
-rw-r--r--pkgs/applications/version-management/gource/default.nix5
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix28
-rw-r--r--pkgs/data/fonts/tlwg/default.nix27
-rw-r--r--pkgs/desktops/enlightenment/efl.nix4
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix4
-rw-r--r--pkgs/development/compilers/llvm/4/llvm.nix7
-rw-r--r--pkgs/development/compilers/llvm/5/llvm.nix7
-rw-r--r--pkgs/development/compilers/obliv-c/default.nix2
-rw-r--r--pkgs/development/compilers/obliv-c/ignore-complex-float128.patch37
-rw-r--r--pkgs/development/interpreters/luajit/default.nix4
-rw-r--r--pkgs/development/libraries/SDL2_image/default.nix9
-rw-r--r--pkgs/development/libraries/ftgl/2.1.2.nix44
-rw-r--r--pkgs/development/libraries/ftgl/default.nix6
-rw-r--r--pkgs/development/libraries/ftgl/gcc.patch13
-rw-r--r--pkgs/development/libraries/glew/default.nix5
-rw-r--r--pkgs/development/libraries/libao/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/cstruct/1.9.0.nix36
-rw-r--r--pkgs/development/ocaml-modules/cstruct/default.nix50
-rw-r--r--pkgs/development/ocaml-modules/cstruct/lwt.nix12
-rw-r--r--pkgs/development/ocaml-modules/cstruct/ppx.nix13
-rw-r--r--pkgs/development/ocaml-modules/cstruct/unix.nix12
-rw-r--r--pkgs/development/ocaml-modules/nocrypto/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/otr/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tls/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix32
-rw-r--r--pkgs/development/python-modules/zope_testrunner/default.nix10
-rw-r--r--pkgs/development/python-modules/zope_testrunner/test-selection.patch5
-rw-r--r--pkgs/development/tools/chefdk/Gemfile.lock251
-rw-r--r--pkgs/development/tools/chefdk/default.nix8
-rw-r--r--pkgs/development/tools/chefdk/gemset.nix430
-rw-r--r--pkgs/development/tools/haskell/ihaskell/wrapper.nix6
-rw-r--r--pkgs/development/tools/misc/d-feet/default.nix23
-rw-r--r--pkgs/games/solarus/default.nix8
-rw-r--r--pkgs/misc/emulators/higan/default.nix6
-rw-r--r--pkgs/os-specific/linux/criu/criu-2.12.1-glibc-2.26.patch13
-rw-r--r--pkgs/os-specific/linux/criu/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix9
-rw-r--r--pkgs/servers/dict/default.nix6
-rw-r--r--pkgs/servers/rpcbind/default.nix7
-rw-r--r--pkgs/shells/dgsh/default.nix4
-rw-r--r--pkgs/shells/dgsh/glibc-2.26.patch12
-rw-r--r--pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix18
-rw-r--r--pkgs/top-level/ocaml-packages.nix15
-rw-r--r--pkgs/top-level/python-packages.nix3
56 files changed, 782 insertions, 540 deletions
diff --git a/doc/languages-frameworks/haskell.md b/doc/languages-frameworks/haskell.md
index da3fd770ce72..afcba13488be 100644
--- a/doc/languages-frameworks/haskell.md
+++ b/doc/languages-frameworks/haskell.md
@@ -48,7 +48,7 @@ trouble with packages like `3dmodels` and `4Blocks`, because these names are
 invalid identifiers in the Nix language. The issue of how to deal with these
 rare corner cases is currently unresolved.)
 
-Haskell packages who's Nix name (second column) begins with a `haskell-` prefix
+Haskell packages whose Nix name (second column) begins with a `haskell-` prefix
 are packages that provide a library whereas packages without that prefix
 provide just executables. Libraries may provide executables too, though: the
 package `haskell-pandoc`, for example, installs both a library and an
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 4fbacef788f9..d48b78ae6d02 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -111,7 +111,7 @@ in {
       type = mkOption {
         description = "Database type.";
         default = "sqlite3";
-        type = types.enum ["mysql" "sqlite3" "postgresql"];
+        type = types.enum ["mysql" "sqlite3" "postgres"];
       };
 
       host = mkOption {
diff --git a/nixos/modules/services/security/clamav.nix b/nixos/modules/services/security/clamav.nix
index f71f30fee97a..7de2d121e76c 100644
--- a/nixos/modules/services/security/clamav.nix
+++ b/nixos/modules/services/security/clamav.nix
@@ -76,8 +76,9 @@ in
     };
   };
 
-  config = mkIf cfg.updater.enable or cfg.daemon.enable {
+  config = mkIf (cfg.updater.enable || cfg.daemon.enable) {
     environment.systemPackages = [ pkg ];
+
     users.extraUsers = singleton {
       name = clamavUser;
       uid = config.ids.uids.clamav;
@@ -94,7 +95,7 @@ in
     environment.etc."clamav/freshclam.conf".source = freshclamConfigFile;
     environment.etc."clamav/clamd.conf".source = clamdConfigFile;
 
-    systemd.services.clamav-daemon = mkIf cfg.daemon.enable {
+    systemd.services.clamav-daemon = optionalAttrs cfg.daemon.enable {
       description = "ClamAV daemon (clamd)";
       after = mkIf cfg.updater.enable [ "clamav-freshclam.service" ];
       requires = mkIf cfg.updater.enable [ "clamav-freshclam.service" ];
@@ -115,7 +116,7 @@ in
       };
     };
 
-    systemd.timers.clamav-freshclam = mkIf cfg.updater.enable {
+    systemd.timers.clamav-freshclam = optionalAttrs cfg.updater.enable {
       description = "Timer for ClamAV virus database updater (freshclam)";
       wantedBy = [ "timers.target" ];
       timerConfig = {
@@ -124,7 +125,7 @@ in
       };
     };
 
-    systemd.services.clamav-freshclam = mkIf cfg.updater.enable {
+    systemd.services.clamav-freshclam = optionalAttrs cfg.updater.enable {
       description = "ClamAV virus database updater (freshclam)";
       restartTriggers = [ freshclamConfigFile ];
 
diff --git a/pkgs/applications/altcoins/zcash/default.nix b/pkgs/applications/altcoins/zcash/default.nix
index c1aad8e570c3..e9236544ee7f 100644
--- a/pkgs/applications/altcoins/zcash/default.nix
+++ b/pkgs/applications/altcoins/zcash/default.nix
@@ -18,7 +18,9 @@ stdenv.mkDerivation rec {
     sha256 = "19bxhdnkvgncgl9x6nbaf5nwgrdfw99icvdbi9adfh646pd5z64s";
   };
 
-  enableParallelBuilding = true;
+  # Dependencies are underspecified: "make -C src gtest/zcash_gtest-test_merkletree.o"
+  # fails with "fatal error: test/data/merkle_roots.json.h: No such file or directory"
+  enableParallelBuilding = false;
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ gtest gmock gmp libsnark openssl wget db62 boost zlib
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index 0663cca53b9f..35396b96ea75 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nano-${version}";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${name}.tar.xz";
-    sha256 = "17hjgvig59a2ha2b0494bprrci3d33sayjqvxjhsnlzgr8whrlyj";
+    sha256 = "0z5sxji8jh8sh0g3inbzndhsrbm4qyqlvjrxl5wkxbr61lnxa5k3";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 54a383c31c28..1beff54ba3e7 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "jgmenu-${version}";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = "jgmenu";
     rev = "v${version}";
-    sha256 = "0vim7balxrxhbgq4jvf80lbh57xbw3qmhapy7n2iyv443ih4a7hi";
+    sha256 = "1gml2g711pr6wakznlxjrlmz8kylkv0ydpvv0jx2y5qczp3rwk3a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index ca6093644599..9dcba11b3faf 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -64,6 +64,12 @@ in stdenv.mkDerivation rec {
       url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=82df2631d7d0446b206ea6b434ea609b6c28b0e8";
       sha256 = "04kfww7y0wazg6372g44fa2k5kiiigq4616ihkvmp18rz86903n9";
     })
+
+    (fetchurl {
+      name = "mupdf-1.11-CVE-2017-15369.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=c2663e51238ec8256da7fc61ad580db891d9fe9a";
+      sha256 = "0xx2mrbjcymi3gh0l3cq81m6bygp9dv79v1kyrbcvpl5z6wgl71y";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index bfccc4bfcb6c..b92bf50b315b 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, dpkg, makeWrapper
-, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib, glibc, gnome2, libsecret
-, libnotify, nspr, nss, systemd, xorg, libv4l, libstdcxx5 }:
+, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib, glibc, gnome2
+, libnotify, libpulseaudio, libsecret, libstdcxx5, libv4l, nspr, nss, systemd, xorg }:
 
 let
 
-  version = "5.5.0.1";
+  version = "8.11.0.4";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -17,9 +17,8 @@ let
     fontconfig
     freetype
     glib
-    libsecret
     glibc
-    libstdcxx5
+    libsecret
 
     gnome2.GConf
     gnome2.gdk_pixbuf
@@ -29,10 +28,12 @@ let
     gnome2.gnome_keyring
 
     libnotify
+    libpulseaudio
     nspr
     nss
     stdenv.cc.cc
     systemd
+    libstdcxx5
     libv4l
 
     xorg.libxkbfile
@@ -54,7 +55,7 @@ let
     if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb";
-        sha256 = "1r65qlsjwp0n0fmlhvbp71h03b3x73r26jk9f4q687sjqnzmkvcr";
+        sha256 = "1dq7k4zlqqsx7786phialia5xbpc3cp1wrjhqrvga09yg4dl505c";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.system}";
@@ -82,8 +83,8 @@ in stdenv.mkDerivation {
 
   postFixup = ''
     for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do
-                patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
-                patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+      patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true
     done
 
     ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux"
@@ -92,15 +93,13 @@ in stdenv.mkDerivation {
     substituteInPlace $out/share/applications/skypeforlinux.desktop \
       --replace /usr/bin/ $out/bin/ \
       --replace /usr/share/ $out/share/
-
   '';
 
   meta = with stdenv.lib; {
     description = "Linux client for skype";
     homepage = https://www.skype.com;
     license = licenses.unfree;
-    maintainers = with stdenv.lib.maintainers; [ panaeon ];
+    maintainers = with stdenv.lib.maintainers; [ panaeon jraygauthier ];
     platforms = [ "x86_64-linux" ];
   };
 }
-
diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix
index bd4ccea231b3..e76689992296 100644
--- a/pkgs/applications/science/logic/acgtk/default.nix
+++ b/pkgs/applications/science/logic/acgtk/default.nix
@@ -27,9 +27,11 @@ stdenv.mkDerivation {
   patches = [ ./install-emacs-to-site-lisp.patch
               ./use-nix-ocaml-byteflags.patch ];
 
-  postPatch = stdenv.lib.optionalString (camlp4 != null) ''
+  postPatch = optionalString (camlp4 != null) ''
     substituteInPlace src/Makefile.master.in \
       --replace "+camlp4" "${camlp4}/lib/ocaml/${ocaml.version}/site-lib/camlp4/"
+  '' + optionalString (versionAtLeast (stdenv.lib.getVersion ocamlPackages.yojson) "1.4") ''
+    substituteInPlace src/scripting/Makefile.in --replace yojson.cmo yojson.cma
   '';
 
   # The bytecode executable is dependent on the dynamic library provided by
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 25a85f4b92d7..13852261e863 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -19,8 +19,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
 
-  NIX_CFLAGS_COMPILE = "-fpermissive " + # fix build with newer gcc versions
-                       "-std=c++11"; # fix build with glm >= 0.9.6.0
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = http://gource.io/;
@@ -36,7 +35,7 @@ stdenv.mkDerivation rec {
       Mercurial and Bazaar and SVN. Gource can also parse logs produced
       by several third party tools for CVS repositories.
     '';
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
new file mode 100644
index 000000000000..3ac8bd339a08
--- /dev/null
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.13.3";
+in fetchzip rec {
+  name = "iosevka-bin-${version}";
+
+  url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/iosevka-pack-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
+  '';
+
+  sha256 = "0103rjxcp2sis42xp7fh7g8i03h5snvs8n78lgsf79g8ssw0p9d4";
+
+  meta = with stdenv.lib; {
+    homepage = https://be5invis.github.io/Iosevka/;
+    downloadPage = "https://github.com/be5invis/Iosevka/releases";
+    description = ''
+      Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
+      Pro, M+ and PF DIN Mono, designed to be the ideal font for programming.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.cstrahan ];
+  };
+}
diff --git a/pkgs/data/fonts/tlwg/default.nix b/pkgs/data/fonts/tlwg/default.nix
new file mode 100644
index 000000000000..90f1b1da908a
--- /dev/null
+++ b/pkgs/data/fonts/tlwg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+
+stdenv.mkDerivation rec {
+  name = "tlwg-${version}";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "tlwg";
+    repo = "fonts-tlwg";
+    rev = "v${version}";
+    sha256 = "13bx98ygyyizb15ybdv3856lkxhx1fss8f7aiqmp0lk9zgw4mqyk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ fontforge ];
+
+  preAutoreconf = "echo ${version} > VERSION";
+
+  meta = with stdenv.lib; {
+    description = "A collection of Thai scalable fonts available under free licenses";
+    homepage = https://linux.thai.net/projects/fonts-tlwg;
+    license = with licenses; [ gpl2 publicDomain lppl13c free ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.yrashk ];
+  };
+}
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
index be648bf66998..fac97e72a6c3 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   name = "efl-${version}";
-  version = "1.20.5";
+  version = "1.20.6";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz";
-    sha256 = "07624c71l9d1jx1zvdhwkr1bgb1n7i0i5hyg6579zdwl3jw6jpns";
+    sha256 = "1h9jkb1pkp2g6ld7ra9mxgblx3x5id4162ja697klx9mfjkpxijn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index b1bd4e6b2f32..cb479f062d62 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "enlightenment-${version}";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz";
-    sha256 = "0xmrvryr35idd7fyqgshfhvy2053bs3vwrxbx681pi6rgpdvjghv";
+    sha256 = "1q57fz57d0b26z06m1wiq7c1sniwh885b0vs02mk4jgwva46nyr0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix
index 0559a7aee232..1fe79d9300ab 100644
--- a/pkgs/development/compilers/llvm/4/llvm.nix
+++ b/pkgs/development/compilers/llvm/4/llvm.nix
@@ -24,6 +24,11 @@
 let
   src = fetch "llvm" "0l9bf7kdwhlj0kq1hawpyxhna1062z3h7qcz2y8nfl9dz2qksy6s";
 
+  aarch64Patch = fetchpatch {
+    url = https://reviews.llvm.org/file/data/2oqw5rhhklsapbjrhlpd/PHID-FILE-lvo4fcs6hjvkxb5wneg2/D40423.diff;
+    sha256 = "0b0h7n7lxw33pn2j061hm9050zn263gmiig937g5cmcvjimxlybb";
+  };
+
   # Used when creating a version-suffixed symlink of libLLVM.dylib
   shortVersion = with stdenv.lib;
     concatStringsSep "." (take 2 (splitString "." release_version));
@@ -81,6 +86,8 @@ in stdenv.mkDerivation rec {
       substituteInPlace lib/esan/esan_sideline_linux.cpp \
         --replace 'struct sigaltstack' 'stack_t'
     )
+  '' + stdenv.lib.optionalString stdenv.isAarch64 ''
+    patch -p0 < ${aarch64Patch}
   '';
 
   # hacky fix: created binaries need to be run before installation
diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix
index 520e42c33604..20b0f4b20c63 100644
--- a/pkgs/development/compilers/llvm/5/llvm.nix
+++ b/pkgs/development/compilers/llvm/5/llvm.nix
@@ -24,6 +24,11 @@
 let
   src = fetch "llvm" "1nin64vz21hyng6jr19knxipvggaqlkl2l9jpd5czbc4c2pcnpg3";
 
+  aarch64Patch = fetchpatch {
+    url = https://reviews.llvm.org/file/data/2oqw5rhhklsapbjrhlpd/PHID-FILE-lvo4fcs6hjvkxb5wneg2/D40423.diff;
+    sha256 = "0b0h7n7lxw33pn2j061hm9050zn263gmiig937g5cmcvjimxlybb";
+  };
+
   # Used when creating a version-suffixed symlink of libLLVM.dylib
   shortVersion = with stdenv.lib;
     concatStringsSep "." (take 2 (splitString "." release_version));
@@ -75,6 +80,8 @@ in stdenv.mkDerivation rec {
 
     # Revert compiler-rt commit that makes codesign mandatory
     patch -p1 -i ${./compiler-rt-codesign.patch} -d projects/compiler-rt
+  '' + stdenv.lib.optionalString stdenv.isAarch64 ''
+    patch -p0 < ${aarch64Patch}
   '';
 
   # hacky fix: created binaries need to be run before installation
diff --git a/pkgs/development/compilers/obliv-c/default.nix b/pkgs/development/compilers/obliv-c/default.nix
index f5bc00118a61..774cefb79404 100644
--- a/pkgs/development/compilers/obliv-c/default.nix
+++ b/pkgs/development/compilers/obliv-c/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "0jz2ayadx62zv2b5ji947bkvw63axl4a2q70lwli86zgmcl390gf";
   };
 
+  patches = [ ./ignore-complex-float128.patch ];
+
   preBuild = ''
     patchShebangs .
   '';
diff --git a/pkgs/development/compilers/obliv-c/ignore-complex-float128.patch b/pkgs/development/compilers/obliv-c/ignore-complex-float128.patch
new file mode 100644
index 000000000000..e3a5b74a9cb2
--- /dev/null
+++ b/pkgs/development/compilers/obliv-c/ignore-complex-float128.patch
@@ -0,0 +1,37 @@
+--- a/src/frontc/clexer.mll
++++ b/src/frontc/clexer.mll
+@@ -134,9 +134,11 @@ let init_lexicon _ =
+       (* WW: see /usr/include/sys/cdefs.h for why __signed and __volatile
+        * are accepted GCC-isms *)
+       ("_Bool", fun loc -> BOOL loc);
++      ("_Complex", fun loc -> COMPLEX loc);
+       ("char", fun loc -> CHAR loc);
+       ("int", fun loc -> INT loc);
+       ("float", fun loc -> FLOAT loc);
++      ("__float128", fun loc -> FLOAT128 loc);
+       ("double", fun loc -> DOUBLE loc);
+       ("void", fun loc -> VOID loc);
+       ("enum", fun loc -> ENUM loc);
+--- a/src/frontc/cparser.mly
++++ b/src/frontc/cparser.mly
+@@ -269,6 +269,8 @@ let oblivState (s:statement): statement =
+ %token<Cabs.cabsloc> VOLATILE EXTERN STATIC CONST RESTRICT AUTO REGISTER FROZEN
+ %token<Cabs.cabsloc> THREAD
+ 
++%token<Cabs.cabsloc> COMPLEX FLOAT128
++
+ %token<Cabs.cabsloc> SIZEOF ALIGNOF
+ 
+ %token EQ PLUS_EQ MINUS_EQ STAR_EQ SLASH_EQ PERCENT_EQ
+@@ -1002,7 +1004,11 @@ type_spec:   /* ISO 6.7.2 */
+ |   LONG            { Tlong, $1 }
+ |   INT64           { Tint64, $1 }
+ |   FLOAT           { Tfloat, $1 }
++|   FLOAT128        { Tfloat, $1 }
+ |   DOUBLE          { Tdouble, $1 }
++|   COMPLEX FLOAT   { Tfloat, $2 }
++|   COMPLEX FLOAT128{ Tfloat, $2 }
++|   COMPLEX DOUBLE  { Tdouble, $2 }
+ |   SIGNED          { Tsigned, $1 }
+ |   UNSIGNED        { Tunsigned, $1 }
+ |   STRUCT                 id_or_typename
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index ae6ff5985468..59394d3ccc88 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -62,9 +62,7 @@ rec {
 
       installPhase   = ''
         make install PREFIX="$out"
-        for file in "$out"/include/luajit-*/*.h; do
-          ln -s $file  "$out"/include/.
-        done
+        ( cd "$out/include"; ln -s luajit-*/* . )
         ln -s "$out"/bin/luajit-* "$out"/bin/lua
       ''
         + stdenv.lib.optionalString (!isStable)
diff --git a/pkgs/development/libraries/SDL2_image/default.nix b/pkgs/development/libraries/SDL2_image/default.nix
index 548f8e686ba8..91b4a563da0f 100644
--- a/pkgs/development/libraries/SDL2_image/default.nix
+++ b/pkgs/development/libraries/SDL2_image/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL2, libpng, libjpeg, libtiff, libungif, libXpm, zlib }:
+{ stdenv, fetchurl, SDL2, libpng, libjpeg, libtiff, libungif, libXpm, zlib, Foundation }:
 
 stdenv.mkDerivation rec {
   name = "SDL2_image-${version}";
@@ -9,12 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "1s3ciydixrgv34vlf45ak5syq5nlfaqf19wf162lbz4ixxd0gpvj";
   };
 
-  buildInputs = [ SDL2 libpng libjpeg libtiff libungif libXpm zlib ];
+  buildInputs = [ SDL2 libpng libjpeg libtiff libungif libXpm zlib ]
+    ++ stdenv.lib.optional stdenv.isDarwin Foundation;
+
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     description = "SDL image library";
     homepage = http://www.libsdl.org/projects/SDL_image/;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.zlib;
   };
 }
diff --git a/pkgs/development/libraries/ftgl/2.1.2.nix b/pkgs/development/libraries/ftgl/2.1.2.nix
deleted file mode 100644
index d4afc7ad481a..000000000000
--- a/pkgs/development/libraries/ftgl/2.1.2.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{stdenv, fetchurl, freetype, mesa}:
-
-let
-  name = "ftgl-2.1.2";
-in
-stdenv.mkDerivation {
-  inherit name;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/ftgl/${name}.tar.gz";
-    sha256 = "0xa00fnn6wd3rnkrkcs1wpv21lxdsb83r4hjn3l33dn0zbawnn97";
-  };
-
-  buildInputs = [freetype mesa];
-
-  NIX_LDFLAGS = "-lGLU -lGL";
-
-  patches = [ ./gcc.patch ];
-
-  configureFlags = "--enable-shared";
-
-  preConfigure = ''
-    cd unix
-    cd docs
-    tar vxf ../../docs/html.tar.gz
-    cd ..
-  '';
-
-  meta = {
-    homepage = https://sourceforge.net/apps/mediawiki/ftgl/;
-    description = "Font rendering library for OpenGL applications";
-    license = stdenv.lib.licenses.gpl3Plus;
-
-    longDescription = ''
-      FTGL is a free cross-platform Open Source C++ library that uses
-      Freetype2 to simplify rendering fonts in OpenGL applications. FTGL
-      supports bitmaps, pixmaps, texture maps, outlines, polygon mesh,
-      and extruded polygon rendering modes.
-    '';
-
-    platforms = stdenv.lib.platforms.gnu;
-    maintainers = [];
-  };
-}
diff --git a/pkgs/development/libraries/ftgl/default.nix b/pkgs/development/libraries/ftgl/default.nix
index 5e94618376ba..432f51823451 100644
--- a/pkgs/development/libraries/ftgl/default.nix
+++ b/pkgs/development/libraries/ftgl/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation {
     sha256 = "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l";
   };
 
-  buildInputs = [freetype mesa];
+  buildInputs = [ freetype mesa ];
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = https://sourceforge.net/apps/mediawiki/ftgl/;
@@ -25,7 +27,7 @@ stdenv.mkDerivation {
       and extruded polygon rendering modes.
     '';
 
-    platforms = stdenv.lib.platforms.gnu;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = [];
   };
 }
diff --git a/pkgs/development/libraries/ftgl/gcc.patch b/pkgs/development/libraries/ftgl/gcc.patch
deleted file mode 100644
index 6e9871476c81..000000000000
--- a/pkgs/development/libraries/ftgl/gcc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/include/FTTextureGlyph.h b/include/FTTextureGlyph.h
-index c263f72..8959cb3 100755
---- a/include/FTTextureGlyph.h
-+++ b/include/FTTextureGlyph.h
-@@ -52,7 +52,7 @@ class FTGL_EXPORT FTTextureGlyph : public FTGlyph
-          * Reset the currently active texture to zero to get into a known state before
-          * drawing a string. This is to get round possible threading issues.
-          */
--        static void FTTextureGlyph::ResetActiveTexture(){ activeTextureID = 0;}
-+        static void ResetActiveTexture(){ activeTextureID = 0;}
-         
-     private:
-         /**
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 57bb4cb631d4..38b303bde856 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -19,8 +19,9 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     sed -i 's|lib64|lib|' config/Makefile.linux
+    substituteInPlace config/Makefile.darwin --replace /usr/local "$out"
     ${optionalString (hostPlatform != buildPlatform) ''
-    sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile
+      sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile
     ''}
   '';
 
@@ -43,6 +44,8 @@ stdenv.mkDerivation rec {
     "SYSTEM=${if hostPlatform.isMinGW then "mingw" else hostPlatform.parsed.kernel.name}"
   ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "An OpenGL extension loading library for C(++)";
     homepage = http://glew.sourceforge.net/;
diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix
index 3a1c89384050..826f72b1f5fb 100644
--- a/pkgs/development/libraries/libao/default.nix
+++ b/pkgs/development/libraries/libao/default.nix
@@ -1,33 +1,42 @@
-{ lib, stdenv, fetchurl, pkgconfig, libpulseaudio, alsaLib, libcap
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig, libpulseaudio, alsaLib, libcap
 , CoreAudio, CoreServices, AudioUnit
 , usePulseAudio }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.0";
+  version = "1.2.2";
   name = "libao-${version}";
-  src = fetchurl {
-    url = "http://downloads.xiph.org/releases/ao/${name}.tar.gz";
-    sha256 = "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83";
+
+  # the github mirror is more up to date than downloads.xiph.org
+  src = fetchFromGitHub {
+    owner  = "xiph";
+    repo   = "libao";
+    rev    = "${version}";
+    sha256 = "0svgk4sc9kdhcsfyvbvgm5vpbg3sfr6z5rliflrw49v3x2i4vxq5";
   };
 
+  configureFlags = [
+    "--disable-broken-oss"
+    "--enable-alsa-mmap"
+  ];
+
   outputs = [ "out" "dev" "man" "doc" ];
 
-  buildInputs =
-    [ pkgconfig ] ++
-    lib.optional usePulseAudio libpulseaudio ++
-    lib.optional stdenv.isLinux alsaLib ++
-    lib.optional stdenv.isLinux libcap ++
+  buildInputs = [ ] ++
+    lib.optional  usePulseAudio   libpulseaudio ++
+    lib.optionals stdenv.isLinux  [ alsaLib libcap ] ++
     lib.optionals stdenv.isDarwin [ CoreAudio CoreServices AudioUnit ];
 
-  meta = {
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  meta = with stdenv.lib; {
     longDescription = ''
       Libao is Xiph.org's cross-platform audio library that allows
       programs to output audio using a simple API on a wide variety of
       platforms.
     '';
     homepage = https://xiph.org/ao/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
-    platforms = with stdenv.lib.platforms; unix;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ fuuzetsu ];
+    platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/ocaml-modules/cstruct/1.9.0.nix b/pkgs/development/ocaml-modules/cstruct/1.9.0.nix
new file mode 100644
index 000000000000..25f84826ec18
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cstruct/1.9.0.nix
@@ -0,0 +1,36 @@
+{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools
+, async ? null, lwt ? null
+}:
+
+assert stdenv.lib.versionAtLeast ocaml.version "4.01";
+
+let version = "1.9.0"; in
+
+let opt = b: "--${if b != null then "en" else "dis"}able"; in
+
+stdenv.mkDerivation {
+  name = "ocaml${ocaml.version}-cstruct-${version}";
+
+  src = fetchFromGitHub {
+    owner = "mirage";
+    repo = "ocaml-cstruct";
+    rev = "v${version}";
+    sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy";
+  };
+
+  configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ];
+
+  buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ];
+  propagatedBuildInputs = [ ocplib-endian sexplib ];
+
+  createFindlibDestdir = true;
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mirage/ocaml-cstruct;
+    description = "Map OCaml arrays onto C-like structs";
+    license = stdenv.lib.licenses.isc;
+    maintainers = [ maintainers.vbgl maintainers.ericbmerritt ];
+    platforms = ocaml.meta.platforms or [];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix
index 0278b0f26558..976ff697c98f 100644
--- a/pkgs/development/ocaml-modules/cstruct/default.nix
+++ b/pkgs/development/ocaml-modules/cstruct/default.nix
@@ -1,40 +1,28 @@
-{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools
-, async ? null, lwt ? null
-}:
-
-assert stdenv.lib.versionAtLeast ocaml.version "4.01";
-
-let param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.02"
-  then { version = "2.3.2"; sha256 = "1fykack86hvvqhwngddyxxqlwm3xjljfaszsjbdrvjlrd1nlg079"; }
-  else { version = "1.9.0"; sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy"; };
-in
-
-let opt = b: "--${if b != null then "en" else "dis"}able"; in
+{ stdenv, fetchurl, ocaml, jbuilder, findlib, sexplib, ocplib-endian }:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-cstruct-${version}";
+  version = "3.0.2";
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-cstruct/releases/download/v${version}/cstruct-${version}.tbz";
+    sha256 = "03caxcyzfjmbnnwa15zy9s1ckkl4sc834d1qkgi4jcs3zqchvd8z";
+  };
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-cstruct-${param.version}";
+  unpackCmd = "tar -xjf $curSrc";
 
-  src = fetchFromGitHub {
-    owner = "mirage";
-    repo = "ocaml-cstruct";
-    rev = "v${param.version}";
-    inherit (param) sha256;
-  };
+  buildInputs = [ ocaml jbuilder findlib ];
 
-  configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ];
+  propagatedBuildInputs = [ sexplib ocplib-endian ];
 
-  buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ];
-  propagatedBuildInputs = [ ocplib-endian sexplib ];
+  buildPhase = "jbuilder build -p cstruct";
 
-  createFindlibDestdir = true;
-  dontStrip = true;
+  inherit (jbuilder) installPhase;
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mirage/ocaml-cstruct;
-    description = "Map OCaml arrays onto C-like structs";
+  meta = {
+    description = "Access C-like structures directly from OCaml";
     license = stdenv.lib.licenses.isc;
-    maintainers = [ maintainers.vbgl maintainers.ericbmerritt ];
-    platforms = ocaml.meta.platforms or [];
+    homepage = "https://github.com/mirage/ocaml-cstruct";
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/cstruct/lwt.nix b/pkgs/development/ocaml-modules/cstruct/lwt.nix
new file mode 100644
index 000000000000..065716e68529
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cstruct/lwt.nix
@@ -0,0 +1,12 @@
+{ stdenv, ocaml, cstruct, lwt }:
+
+assert stdenv.lib.versionAtLeast ocaml.version "4.02";
+
+stdenv.mkDerivation rec {
+	name = "ocaml${ocaml.version}-cstruct-lwt-${version}";
+	inherit (cstruct) version src unpackCmd buildInputs installPhase meta;
+
+	propagatedBuildInputs = [ cstruct lwt ];
+
+	buildPhase = "${cstruct.buildPhase}-lwt";
+}
diff --git a/pkgs/development/ocaml-modules/cstruct/ppx.nix b/pkgs/development/ocaml-modules/cstruct/ppx.nix
new file mode 100644
index 000000000000..9d19e1751e23
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cstruct/ppx.nix
@@ -0,0 +1,13 @@
+{ stdenv, ocaml, cstruct, ppx_tools_versioned }:
+
+assert stdenv.lib.versionAtLeast ocaml.version "4.02";
+
+stdenv.mkDerivation rec {
+	name = "ocaml${ocaml.version}-ppx_cstruct-${version}";
+	inherit (cstruct) version src unpackCmd installPhase meta;
+
+	buildInputs = cstruct.buildInputs ++ [ ppx_tools_versioned ];
+	propagatedBuildInputs = [ cstruct ];
+
+	buildPhase = "jbuilder build -p ppx_cstruct";
+}
diff --git a/pkgs/development/ocaml-modules/cstruct/unix.nix b/pkgs/development/ocaml-modules/cstruct/unix.nix
new file mode 100644
index 000000000000..2a614579fccc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cstruct/unix.nix
@@ -0,0 +1,12 @@
+{ stdenv, ocaml, cstruct }:
+
+assert stdenv.lib.versionAtLeast ocaml.version "4.02";
+
+stdenv.mkDerivation rec {
+	name = "ocaml${ocaml.version}-cstruct-unix-${version}";
+	inherit (cstruct) version src unpackCmd buildInputs installPhase meta;
+
+	propagatedBuildInputs = [ cstruct ];
+
+	buildPhase = "${cstruct.buildPhase}-unix";
+}
diff --git a/pkgs/development/ocaml-modules/nocrypto/default.nix b/pkgs/development/ocaml-modules/nocrypto/default.nix
index c68584957c66..a7fa59e14469 100644
--- a/pkgs/development/ocaml-modules/nocrypto/default.nix
+++ b/pkgs/development/ocaml-modules/nocrypto/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, opam, topkg
 , cpuid, ocb-stubblr
 , cstruct, zarith, ppx_sexp_conv, sexplib
-, lwt ? null
+, cstruct-lwt ? null
 }:
 
 with stdenv.lib;
-let withLwt = lwt != null; in
+let withLwt = cstruct-lwt != null; in
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-nocrypto-${version}";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ocaml findlib ocamlbuild topkg opam cpuid ocb-stubblr
     ppx_sexp_conv ];
-  propagatedBuildInputs = [ cstruct zarith sexplib ] ++ optional withLwt lwt;
+  propagatedBuildInputs = [ cstruct zarith sexplib ] ++ optional withLwt cstruct-lwt;
 
   buildPhase = ''
     LD_LIBRARY_PATH=${cpuid}/lib/ocaml/${ocaml.version}/site-lib/stubslibs/ \
diff --git a/pkgs/development/ocaml-modules/otr/default.nix b/pkgs/development/ocaml-modules/otr/default.nix
index dfee365cd750..39e7ce754d27 100644
--- a/pkgs/development/ocaml-modules/otr/default.nix
+++ b/pkgs/development/ocaml-modules/otr/default.nix
@@ -1,5 +1,5 @@
 {stdenv, buildOcaml, fetchFromGitHub, ocamlbuild, findlib, topkg, ocaml, opam,
- ppx_tools, ppx_sexp_conv, cstruct, sexplib, result, nocrypto, astring}:
+ ppx_tools, ppx_sexp_conv, cstruct, ppx_cstruct, sexplib, result, nocrypto, astring}:
 
 let ocamlFlags = "-I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/"; in
 
@@ -16,7 +16,7 @@ buildOcaml rec {
     sha256 = "07zzix5mfsasqpqdx811m0x04gp8mq1ayf4b64998k98027v01rr";
   };
 
-  buildInputs = [ ocamlbuild findlib topkg ppx_tools ppx_sexp_conv opam ];
+  buildInputs = [ ocamlbuild findlib topkg ppx_tools ppx_sexp_conv opam ppx_cstruct ];
   propagatedBuildInputs = [ cstruct sexplib result nocrypto astring ];
 
   buildPhase = ''
diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix
index b38138c55731..8c146102ad1b 100644
--- a/pkgs/development/ocaml-modules/tls/default.nix
+++ b/pkgs/development/ocaml-modules/tls/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildOcaml, fetchFromGitHub, findlib, ocamlbuild, ocaml_oasis
-, ppx_tools, ppx_sexp_conv, result, x509, nocrypto, cstruct, ounit
+, ppx_tools, ppx_sexp_conv, result, x509, nocrypto, cstruct, ppx_cstruct, cstruct-unix, ounit
 , lwt     ? null}:
 
 with stdenv.lib;
@@ -19,7 +19,7 @@ buildOcaml rec {
     sha256 = "19q2hzxiasz9pzczgb63kikg0mc9mw98dfvch5falf2rincycj24";
   };
 
-  buildInputs = [ ocamlbuild findlib ocaml_oasis ppx_sexp_conv ounit ];
+  buildInputs = [ ocamlbuild findlib ocaml_oasis ppx_sexp_conv ounit ppx_cstruct cstruct-unix ];
   propagatedBuildInputs = [ cstruct nocrypto result x509 ] ++
                           optional withLwt lwt;
 
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index ab82f6abdcbb..316035b40543 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -1,4 +1,6 @@
-{stdenv, buildOcaml, fetchFromGitHub, ocaml, findlib, asn1-combinators, nocrypto, ounit, ocaml_oasis, ppx_sexp_conv}:
+{ stdenv, buildOcaml, fetchFromGitHub, ocaml, findlib, asn1-combinators, nocrypto
+, ounit, ocaml_oasis, ppx_sexp_conv, cstruct-unix
+}:
 
 buildOcaml rec {
   name = "x509";
@@ -13,7 +15,7 @@ buildOcaml rec {
     sha256 = "07cc3z6h87460z3f4vz8nlczw5jkc4vjhix413z9x6nral876rn7";
   };
 
-  buildInputs = [ ocaml ocaml_oasis findlib ounit ppx_sexp_conv ];
+  buildInputs = [ ocaml ocaml_oasis findlib ounit ppx_sexp_conv cstruct-unix ];
   propagatedBuildInputs = [ asn1-combinators nocrypto ];
 
   configureFlags = "--enable-tests";
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index 2ce2faa7e8d6..5d751d3dc997 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,16 +1,26 @@
-{ stdenv, fetchzip, ocaml, findlib, cppo, easy-format, biniou }:
+{ stdenv, fetchzip, ocaml, findlib, jbuilder, cppo, easy-format, biniou }:
 let
   pname = "yojson";
   param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.01" then {
-    version = "1.3.3";
-    sha256 = "02l11facbr6bxrxq95vrcp1dxapp02kv7g4gq8rm62pb3dj5c6g7";
+  if stdenv.lib.versionAtLeast ocaml.version "4.02" then {
+    version = "1.4.0";
+    sha256 = "0rzn4yihfi0psd2qmgrx5fvwpby87sqx4zws3ijf49f7wbpycccv";
+    buildInputs = [ jbuilder ];
+    extra = { inherit (jbuilder) installPhase; };
   } else {
     version = "1.2.3";
     sha256 = "10dvkndgwanvw4agbjln7kgb1n9s6lii7jw82kwxczl5rd1sgmvl";
+    buildInputs = [];
+    extra = {
+      createFindlibDestdir = true;
+
+      makeFlags = "PREFIX=$(out)";
+
+      preBuild = "mkdir $out/bin";
+    };
   };
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation ({
 
   name = "ocaml${ocaml.version}-${pname}-${param.version}";
 
@@ -19,18 +29,10 @@ stdenv.mkDerivation {
     inherit (param) sha256;
   };
 
-  buildInputs = [ ocaml findlib ];
+  buildInputs = [ ocaml findlib ] ++ param.buildInputs;
 
   propagatedBuildInputs = [ cppo easy-format biniou ];
 
-  createFindlibDestdir = true;
-
-  makeFlags = "PREFIX=$(out)";
-
-  preBuild = ''
-    mkdir $out/bin
-  '';
-
   meta = with stdenv.lib; {
     description = "An optimized parsing and printing library for the JSON format";
     homepage = "http://mjambon.com/${pname}.html";
@@ -38,4 +40,4 @@ stdenv.mkDerivation {
     maintainers = [ maintainers.vbgl ];
     platforms = ocaml.meta.platforms or [];
   };
-}
+} // param.extra)
diff --git a/pkgs/development/python-modules/zope_testrunner/default.nix b/pkgs/development/python-modules/zope_testrunner/default.nix
index 8358c861cba3..e2bf3a569d04 100644
--- a/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, isPy3k
+, fetchpatch
 , zope_interface
 , zope_exceptions
 , zope_testing
@@ -11,15 +11,15 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "4.7.0";
-  name = "${pname}-${version}";
+  version = "4.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ffcb4989829544a83d27e42b2eeb28f8fc134bd847d71ce8dca54f710526ef0";
-    extension = "zip";
+    sha256 = "039z9q5i1r6fqzlm224nmaxn896k4a9sb1237dv406ncdldd7jaz";
   };
 
+  patches = [ ./test-selection.patch ];
+
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/zope_testrunner/test-selection.patch b/pkgs/development/python-modules/zope_testrunner/test-selection.patch
new file mode 100644
index 000000000000..89dd7773885c
--- /dev/null
+++ b/pkgs/development/python-modules/zope_testrunner/test-selection.patch
@@ -0,0 +1,5 @@
+--- a/src/zope/testrunner/tests/testrunner-test-selection.txt
++++ b/src/zope/testrunner/tests/testrunner-test-selection.txt
+@@ -235 +235 @@ and by test within the module using the --test (-t) option:
+-    >>> sys.argv = 'test -u  -vv -ssample1 -m_one -mtest1 -tx0 -ty0'.split()
++    >>> sys.argv = 'test -u  -vv -ssample1 -m_one -mtest1 -t_x0 -t_y0'.split()
diff --git a/pkgs/development/tools/chefdk/Gemfile.lock b/pkgs/development/tools/chefdk/Gemfile.lock
index c397758aaac1..94ee9feb78db 100644
--- a/pkgs/development/tools/chefdk/Gemfile.lock
+++ b/pkgs/development/tools/chefdk/Gemfile.lock
@@ -1,33 +1,27 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.5.1)
-      public_suffix (~> 2.0, >= 2.0.2)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
     app_conf (0.4.2)
-    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, < 4.0)
+    backports (3.10.3)
+    berkshelf (6.3.1)
       buff-config (~> 2.0)
       buff-extensions (~> 2.0)
-      buff-shell_out (~> 1.0)
+      chef (>= 12.7.2)
       cleanroom (~> 1.0)
+      concurrent-ruby (~> 1.0)
       faraday (~> 0.9)
       httpclient (~> 2.7)
       minitar (~> 0.5, >= 0.5.4)
       mixlib-archive (~> 0.4)
+      mixlib-shellout (~> 2.0)
       octokit (~> 4.0)
       retryable (~> 2.0)
       ridley (~> 5.0)
-      solve (> 2.0, < 4.0)
+      solve (~> 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)
@@ -42,16 +36,17 @@ GEM
     celluloid-io (0.16.2)
       celluloid (>= 0.16.0)
       nio4r (>= 1.1.0)
-    chef (12.19.36)
+    chef (13.6.4)
       addressable
       bundler (>= 1.10)
-      chef-config (= 12.19.36)
-      chef-zero (>= 4.8)
+      chef-config (= 13.6.4)
+      chef-zero (>= 13.0)
       diff-lcs (~> 1.2, >= 1.2.4)
       erubis (~> 2.7)
       ffi-yajl (~> 2.2)
       highline (~> 1.6, >= 1.6.9)
       iniparse (~> 1.4)
+      iso8601 (~> 0.9.1)
       mixlib-archive (~> 0.4)
       mixlib-authentication (~> 1.4)
       mixlib-cli (~> 1.7)
@@ -60,7 +55,7 @@ GEM
       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)
+      ohai (~> 13.0)
       plist (~> 3.2)
       proxifier (~> 1.0)
       rspec-core (~> 3.5)
@@ -71,14 +66,14 @@ GEM
       specinfra (~> 2.10)
       syslog-logger (~> 1.6)
       uuidtools (~> 2.1.5)
-    chef-config (12.19.36)
+    chef-config (13.6.4)
       addressable
       fuzzyurl
       mixlib-config (~> 2.0)
       mixlib-shellout (~> 2.0)
-    chef-dk (1.3.40)
+    chef-dk (2.3.4)
       addressable (>= 2.3.5, < 2.6)
-      chef (~> 12.5)
+      chef (~> 13.0)
       chef-provisioning (~> 2.0)
       cookbook-omnifetch (~> 0.5)
       diff-lcs (~> 1.0)
@@ -87,147 +82,153 @@ GEM
       mixlib-cli (~> 1.7)
       mixlib-shellout (~> 2.0)
       paint (~> 1.0)
-      solve (> 2.0, < 4.0)
-    chef-provisioning (2.2.1)
-      cheffish (>= 4.0, < 6.0)
+      solve (> 2.0, < 5.0)
+    chef-provisioning (2.6.0)
+      cheffish (>= 4.0, < 14.0)
       inifile (>= 2.0.2)
-      mixlib-install (>= 1.0, < 3.0)
+      mixlib-install (>= 1.0)
       net-scp (~> 1.0)
       net-ssh (>= 2.9, < 5.0)
-      net-ssh-gateway (~> 1.2)
+      net-ssh-gateway (> 1.2, < 3.0)
       winrm (~> 2.0)
       winrm-elevated (~> 1.0)
       winrm-fs (~> 1.0)
-    chef-vault (2.9.1)
-    chef-zero (5.3.2)
+    chef-vault (3.3.0)
+    chef-zero (13.1.0)
       ffi-yajl (~> 2.2)
       hashie (>= 2.0, < 4.0)
       mixlib-log (~> 1.3)
       rack (~> 2.0)
       uuidtools (~> 2.1)
-    cheffish (5.0.1)
-      chef-zero (~> 5.0)
+    cheffish (13.1.0)
+      chef-zero (~> 13.0)
       net-ssh
-    chefspec (6.2.0)
-      chef (>= 12.0)
-      fauxhai (>= 3.6, < 5)
+    chefspec (7.1.0)
+      chef (>= 12.14.89)
+      fauxhai (>= 4, < 6)
       rspec (~> 3.0)
     cleanroom (1.0.0)
-    coderay (1.1.1)
-    cookbook-omnifetch (0.5.1)
+    coderay (1.1.2)
+    concurrent-ruby (1.0.5)
+    cookbook-omnifetch (0.8.0)
       mixlib-archive (~> 0.4)
-    cucumber-core (2.0.0)
-      backports (~> 3.6)
-      gherkin (~> 4.0)
+    cucumber-core (3.0.0)
+      backports (>= 3.8.0)
+      cucumber-tag_expressions (>= 1.0.1)
+      gherkin (>= 4.1.3)
+    cucumber-tag_expressions (1.0.1)
     diff-lcs (1.3)
     diffy (3.2.0)
-    docker-api (1.33.3)
-      excon (>= 0.38.0)
-      json
+    docker-api (1.34.0)
+      excon (>= 0.47.0)
+      multi_json
     erubis (2.7.0)
-    excon (0.55.0)
-    faraday (0.9.2)
+    excon (0.59.0)
+    faraday (0.13.1)
       multipart-post (>= 1.2, < 3)
-    fauxhai (4.1.0)
+    fauxhai (5.5.0)
       net-ssh
     ffi (1.9.18)
-    ffi-yajl (2.3.0)
+    ffi-yajl (2.3.1)
       libyajl2 (~> 1.2)
-    foodcritic (10.2.2)
+    foodcritic (12.2.1)
       cucumber-core (>= 1.3)
       erubis
+      ffi-yajl (~> 2.0)
       nokogiri (>= 1.5, < 2.0)
       rake
       rufus-lru (~> 1.0)
       treetop (~> 1.4)
-      yajl-ruby (~> 1.1)
     fuzzyurl (0.9.0)
-    gherkin (4.1.1)
+    gherkin (5.0.0)
     git (1.3.0)
     gssapi (1.2.0)
       ffi (>= 1.0.1)
     gyoku (1.3.1)
       builder (>= 2.1.2)
-    hashie (3.5.5)
-    highline (1.7.8)
-    hitimes (1.2.4)
+    hashie (3.5.6)
+    highline (1.7.10)
+    hitimes (1.2.6)
+    htmlentities (4.3.4)
     httpclient (2.8.3)
     inifile (3.0.0)
-    iniparse (1.4.2)
-    inspec (1.19.2)
+    iniparse (1.4.4)
+    inspec (1.45.13)
       addressable (~> 2.4)
       faraday (>= 0.9.0)
       hashie (~> 3.4)
+      htmlentities
       json (>= 1.8, < 3.0)
       method_source (~> 0.8)
       mixlib-log
       parallel (~> 1.9)
+      parslet (~> 1.5)
       pry (~> 0)
       rainbow (~> 2)
       rspec (~> 3)
       rspec-its (~> 1.2)
       rubyzip (~> 1.1)
-      sslshake (~> 1)
+      semverse
+      sslshake (~> 1.2)
       thor (~> 0.19)
-      toml (~> 0.1)
-      train (>= 0.22.0, < 1.0)
+      tomlrb (~> 1.2)
+      train (~> 0.29, >= 0.29.2)
     ipaddress (0.8.3)
-    json (2.0.3)
-    kitchen-inspec (0.17.0)
+    iso8601 (0.9.1)
+    json (2.1.0)
+    kitchen-inspec (0.20.0)
       hashie (~> 3.4)
       inspec (>= 0.34.0, < 2.0.0)
       test-kitchen (~> 1.6)
-    kitchen-vagrant (1.1.0)
+    kitchen-vagrant (1.2.1)
       test-kitchen (~> 1.4)
-    knife-spork (1.6.3)
+    knife-spork (1.7.1)
       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.2.0)
+    logging (2.2.2)
       little-plugger (~> 1.1)
       multi_json (~> 1.10)
-    method_source (0.8.2)
-    mini_portile2 (2.1.0)
+    method_source (0.9.0)
+    mini_portile2 (2.3.0)
     minitar (0.5.4)
     mixlib-archive (0.4.1)
       mixlib-log
-    mixlib-authentication (1.4.1)
-      mixlib-log
+    mixlib-authentication (1.4.2)
     mixlib-cli (1.7.0)
     mixlib-config (2.2.4)
-    mixlib-install (2.1.12)
-      artifactory
+    mixlib-install (3.8.0)
       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)
+    mixlib-shellout (2.3.2)
+    mixlib-versioning (1.2.2)
+    molinillo (0.6.4)
+    multi_json (1.12.2)
     multipart-post (2.0.0)
     net-scp (1.2.1)
       net-ssh (>= 2.6.5)
     net-sftp (2.1.2)
       net-ssh (>= 2.6.5)
-    net-ssh (4.1.0)
+    net-ssh (4.2.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 (2.0.0)
-    nokogiri (1.7.1)
-      mini_portile2 (~> 2.1.0)
+    nio4r (2.1.0)
+    nokogiri (1.8.1)
+      mini_portile2 (~> 2.3.0)
     nori (2.6.0)
     octokit (4.7.0)
       sawyer (~> 0.8.0, >= 0.5.3)
-    ohai (8.23.0)
-      chef-config (>= 12.5.0.alpha.1, < 13)
+    ohai (13.6.0)
+      chef-config (>= 12.5.0.alpha.1, < 14)
       ffi (~> 1.9)
       ffi-yajl (~> 2.2)
       ipaddress
@@ -239,25 +240,24 @@ GEM
       systemu (~> 2.6.4)
       wmi-lite (~> 1.0)
     paint (1.0.1)
-    parallel (1.11.1)
-    parser (2.4.0.0)
-      ast (~> 2.2)
-    parslet (1.5.0)
-      blankslate (~> 2.0)
-    plist (3.2.0)
+    parallel (1.12.0)
+    parser (2.4.0.2)
+      ast (~> 2.3)
+    parslet (1.8.1)
+    plist (3.3.0)
     polyglot (0.3.5)
     powerpack (0.1.1)
     proxifier (1.0.3)
-    pry (0.10.4)
+    pry (0.11.3)
       coderay (~> 1.1.0)
-      method_source (~> 0.8.1)
-      slop (~> 3.4)
-    public_suffix (2.0.5)
-    rack (2.0.1)
-    rainbow (2.2.1)
-    rake (12.0.0)
+      method_source (~> 0.9.0)
+    public_suffix (3.0.1)
+    rack (2.0.3)
+    rainbow (2.2.2)
+      rake
+    rake (12.3.0)
     retryable (2.0.4)
-    ridley (5.1.0)
+    ridley (5.1.1)
       addressable
       buff-config (~> 2.0)
       buff-extensions (~> 2.0)
@@ -267,7 +267,7 @@ GEM
       celluloid-io (~> 0.16.1)
       chef-config (>= 12.5.0)
       erubis
-      faraday (~> 0.9.0)
+      faraday (~> 0.9)
       hashie (>= 2.0.2, < 4.0.0)
       httpclient (~> 2.7)
       json (>= 1.7.7)
@@ -275,33 +275,34 @@ GEM
       retryable (~> 2.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)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.0)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.5.0)
+      rspec-support (~> 3.7.0)
     rspec-its (1.2.0)
       rspec-core (>= 3.0.0)
       rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.5.0)
+    rspec-mocks (3.7.0)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.5.0)
-    rspec-support (3.5.0)
+      rspec-support (~> 3.7.0)
+    rspec-support (3.7.0)
     rspec_junit_formatter (0.2.3)
       builder (< 4)
       rspec-core (>= 2, < 4, != 2.12.0)
-    rubocop (0.48.1)
+    rubocop (0.51.0)
+      parallel (~> 1.10)
       parser (>= 2.3.3.1, < 3.0)
       powerpack (~> 0.1)
-      rainbow (>= 1.99.1, < 3.0)
+      rainbow (>= 2.2.2, < 3.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
-    ruby-progressbar (1.8.1)
-    rubyntlm (0.6.1)
+    ruby-progressbar (1.9.0)
+    rubyntlm (0.6.2)
     rubyzip (1.2.1)
     rufus-lru (1.1.0)
     safe_yaml (1.0.4)
@@ -309,38 +310,39 @@ GEM
       addressable (>= 2.3.5, < 2.6)
       faraday (~> 0.8, < 1.0)
     semverse (2.0.0)
-    serverspec (2.38.0)
+    serverspec (2.41.3)
       multi_json
       rspec (~> 3.0)
       rspec-its
-      specinfra (~> 2.53)
+      specinfra (~> 2.72)
     sfl (2.3)
-    slop (3.6.0)
-    solve (3.1.0)
-      molinillo (>= 0.5)
+    solve (4.0.0)
+      molinillo (~> 0.6)
       semverse (>= 1.1, < 3.0)
-    specinfra (2.67.7)
+    specinfra (2.72.1)
       net-scp
       net-ssh (>= 2.7, < 5.0)
       net-telnet
       sfl
-    sslshake (1.1.0)
+    sslshake (1.2.0)
     syslog-logger (1.6.8)
     systemu (2.6.5)
-    test-kitchen (1.16.0)
-      mixlib-install (>= 1.2, < 3.0)
+    test-kitchen (1.19.1)
+      mixlib-install (~> 3.6)
       mixlib-shellout (>= 1.2, < 3.0)
       net-scp (~> 1.1)
       net-ssh (>= 2.9, < 5.0)
       net-ssh-gateway (~> 1.2)
       safe_yaml (~> 1.0)
       thor (~> 0.19, < 0.19.2)
+      winrm (~> 2.0)
+      winrm-elevated (~> 1.0)
+      winrm-fs (~> 1.0.2)
     thor (0.19.1)
     timers (4.0.4)
       hitimes
-    toml (0.1.2)
-      parslet (~> 1.5.0)
-    train (0.23.0)
+    tomlrb (1.2.6)
+    train (0.29.2)
       docker-api (~> 1.26)
       json (>= 1.8, < 3.0)
       mixlib-shellout (~> 2.0)
@@ -348,14 +350,14 @@ GEM
       net-ssh (>= 2.9, < 5.0)
       winrm (~> 2.0)
       winrm-fs (~> 1.0)
-    treetop (1.6.8)
+    treetop (1.6.9)
       polyglot (~> 0.3)
-    unicode-display_width (1.1.3)
+    unicode-display_width (1.3.0)
     uuidtools (2.1.5)
     varia_model (0.6.0)
       buff-extensions (~> 2.0)
       hashie (>= 2.0.2, < 4.0.0)
-    winrm (2.2.1)
+    winrm (2.2.3)
       builder (>= 2.1.2)
       erubis (~> 2.7)
       gssapi (~> 1.2)
@@ -367,13 +369,12 @@ GEM
     winrm-elevated (1.1.0)
       winrm (~> 2.0)
       winrm-fs (~> 1.0)
-    winrm-fs (1.0.1)
+    winrm-fs (1.0.2)
       erubis (~> 2.7)
       logging (>= 1.6.1, < 3.0)
       rubyzip (~> 1.1)
       winrm (~> 2.0)
     wmi-lite (1.0.0)
-    yajl-ruby (1.3.0)
 
 PLATFORMS
   ruby
@@ -396,4 +397,4 @@ DEPENDENCIES
   test-kitchen
 
 BUNDLED WITH
-   1.14.4
+   1.14.6
diff --git a/pkgs/development/tools/chefdk/default.nix b/pkgs/development/tools/chefdk/default.nix
index b453b0ca5044..794f88316c11 100644
--- a/pkgs/development/tools/chefdk/default.nix
+++ b/pkgs/development/tools/chefdk/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, lib, bundlerEnv, ruby, perl, autoconf }:
+{ stdenv, lib, bundlerEnv, ruby_2_4, perl, autoconf }:
 
 bundlerEnv {
-  name = "chefdk-1.3.40";
+  # Last updated via:
+  # nix-shell -p bundix -p gcc -p libxml2 -p zlib --run "bundix -mdl"
+  name = "chefdk-2.3.4";
 
-  inherit ruby;
+  ruby = ruby_2_4;
   gemdir = ./.;
 
   buildInputs = [ perl autoconf ];
diff --git a/pkgs/development/tools/chefdk/gemset.nix b/pkgs/development/tools/chefdk/gemset.nix
index 18e430a3dec7..8680741ff635 100644
--- a/pkgs/development/tools/chefdk/gemset.nix
+++ b/pkgs/development/tools/chefdk/gemset.nix
@@ -1,11 +1,12 @@
 {
   addressable = {
+    dependencies = ["public_suffix"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i8q32a4gr0zghxylpyy7jfqwxvwrivsxflg9mks6kx92frh75mh";
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
       type = "gem";
     };
-    version = "2.5.1";
+    version = "2.5.2";
   };
   app_conf = {
     source = {
@@ -15,14 +16,6 @@
     };
     version = "0.4.2";
   };
-  artifactory = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0zaxa5fxrfal6vi90w725n8cd57fxw1jf99h38vn8d4vimvan2cc";
-      type = "gem";
-    };
-    version = "2.8.1";
-  };
   ast = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -34,36 +27,22 @@
   backports = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qlaq999znlbjw9wb0kwbjvidrbcimnd4v59y682kvm5c09mfn0l";
+      sha256 = "1agsk23kfr194s690jnrpijh9pf3hq4a9yy66j1wzzj2x19ss9y0";
       type = "gem";
     };
-    version = "3.7.0";
+    version = "3.10.3";
   };
   berkshelf = {
+    dependencies = ["buff-config" "buff-extensions" "chef" "cleanroom" "concurrent-ruby" "faraday" "httpclient" "minitar" "mixlib-archive" "mixlib-shellout" "octokit" "retryable" "ridley" "solve" "thor"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1aajjag7l55gi7k67n27dr6pscbdlzjaj751r2zhaggrczhh6yyq";
+      sha256 = "03rwq5njxh3d3fcr3ap0wivqlavfcm1ywxj50m4arfndsdvvjih1";
       type = "gem";
     };
-    version = "5.6.4";
-  };
-  berkshelf-api-client = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1n9bmrqmyy8cqm9vakscf5s1k2chks43x7dr201zp4bv2i6g3ih2";
-      type = "gem";
-    };
-    version = "3.0.0";
-  };
-  blankslate = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0jnnq5q5dwy2rbfcl769vd9bk1yn0242f6yjlb9mnqdm9627cdcx";
-      type = "gem";
-    };
-    version = "2.1.2.4";
+    version = "6.3.1";
   };
   buff-config = {
+    dependencies = ["buff-extensions" "varia_model"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "06zx175sww4grk1rwyn1g3b1j2y324jf1506wl4xx96iss8spa4r";
@@ -96,6 +75,7 @@
     version = "1.0.0";
   };
   buff-shell_out = {
+    dependencies = ["buff-ruby_engine"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0zg1li17759whsi2yhb08wvbbqn5cy6i5v51384yjk2a29vs9lck";
@@ -112,6 +92,7 @@
     version = "3.2.3";
   };
   celluloid = {
+    dependencies = ["timers"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "044xk0y7i1xjafzv7blzj5r56s7zr8nzb619arkrl390mf19jxv3";
@@ -120,6 +101,7 @@
     version = "0.16.0";
   };
   celluloid-io = {
+    dependencies = ["celluloid" "nio4r"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1l1x0p6daa5vskywrvaxdlanwib3k5pps16axwyy4p8d49pn9rnx";
@@ -128,68 +110,75 @@
     version = "0.16.2";
   };
   chef = {
+    dependencies = ["addressable" "chef-config" "chef-zero" "diff-lcs" "erubis" "ffi-yajl" "highline" "iniparse" "iso8601" "mixlib-archive" "mixlib-authentication" "mixlib-cli" "mixlib-log" "mixlib-shellout" "net-sftp" "net-ssh" "net-ssh-multi" "ohai" "plist" "proxifier" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec_junit_formatter" "serverspec" "specinfra" "syslog-logger" "uuidtools"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "057m3c7h3fz3682r7wxmm7dm3n90rv56lc7svrk1hmf4c3g4b99v";
+      sha256 = "1whvkx1a3877vnpv6q84bp9sb4aq5p5hgv9frln90l61f5nrx1gb";
       type = "gem";
     };
-    version = "12.19.36";
+    version = "13.6.4";
   };
   chef-config = {
+    dependencies = ["addressable" "fuzzyurl" "mixlib-config" "mixlib-shellout"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j4m13zzhd4w7j09a2cnj9sinxd9669i5qanbb1cvj90my0raxa2";
+      sha256 = "0r5bd2901bwcr8zffhvri1ypkqfmqinbg78aj0xnndg6lkbr9rd5";
       type = "gem";
     };
-    version = "12.19.36";
+    version = "13.6.4";
   };
   chef-dk = {
+    dependencies = ["addressable" "chef" "chef-provisioning" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wvdv3hmxnp7ydcwji1w4x0g48dy4qq1ik8zd6n43mqcfgkjq0cb";
+      sha256 = "06dnzlvwpkp9a2lrm3vn600i7j9328872nx4269hvbqnb9ix2cdk";
       type = "gem";
     };
-    version = "1.3.40";
+    version = "2.3.4";
   };
   chef-provisioning = {
+    dependencies = ["cheffish" "inifile" "mixlib-install" "net-scp" "net-ssh" "net-ssh-gateway" "winrm" "winrm-elevated" "winrm-fs"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z5334zp76fswj7ygs5gzf8vsc13ixvyxywpyd5sif75dqsays48";
+      sha256 = "0mxax73kblcbsz5bzqc655igbjwqjpl5f7vz478afr6amh3lsxsw";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.6.0";
   };
   chef-vault = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pqxmraiai9jrld53fyfsglaqcw14xwmy4f3rjfwbrsmparsxjc2";
+      sha256 = "0ks248hqd3s9w0nq8pnpp6and3522b128f2avg63cx5gq6889hwh";
       type = "gem";
     };
-    version = "2.9.1";
+    version = "3.3.0";
   };
   chef-zero = {
+    dependencies = ["ffi-yajl" "hashie" "mixlib-log" "rack" "uuidtools"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qmpn8wq2wns8m28pcn8ljgwz0v2ksninzc4wn5nq66gvksmpjig";
+      sha256 = "1nzmc0fzi73k692j09zipm3gqx1fkrw4r4r4g2b3i1zvasaxbi7x";
       type = "gem";
     };
-    version = "5.3.2";
+    version = "13.1.0";
   };
   cheffish = {
+    dependencies = ["chef-zero" "net-ssh"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19hn46s3qm2ncnfzggm0lcdrsagspdxg699k97a4hbl18k1n6lb1";
+      sha256 = "0mpyf9bhnxil5mwy8cffcfl5l9alxhdnjzsmpzcdwihbz401qrn3";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "13.1.0";
   };
   chefspec = {
+    dependencies = ["chef" "fauxhai" "rspec"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18xkzcxglrr3bfy5k0c1cjk5a3ka49xg3xirldb5yhv395svgg1r";
+      sha256 = "181378d6qf8rxbaan5q8nrv71iy90zljd558n9nys7h5vmqws0qg";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "7.1.0";
   };
   cleanroom = {
     source = {
@@ -202,26 +191,44 @@
   coderay = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r";
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.1.2";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
+      type = "gem";
+    };
+    version = "1.0.5";
   };
   cookbook-omnifetch = {
+    dependencies = ["mixlib-archive"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qkzlkszq9f74i71vz72skvmrw24zvdpzfl2029x6vyxrwn83hwf";
+      sha256 = "0dm93zjr2a9pappkncnw4hlrn7dl9vwmrx5xly4128rnzbcgn41p";
       type = "gem";
     };
-    version = "0.5.1";
+    version = "0.8.0";
   };
   cucumber-core = {
+    dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136hnvqv444qyxzcgy1k60y4i6cn3sn9lbqr4wan9dzz1yzllqbm";
+      sha256 = "17qvnxa6ybbxqm22aji41vsappwnrdb56aiggy2swnphx1b7b1ql";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.0.0";
+  };
+  cucumber-tag_expressions = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q5096vag8s4azj4rmmb3ws7l316gr0jj8jhgr2fmhi05ppbqcf";
+      type = "gem";
+    };
+    version = "1.0.1";
   };
   diff-lcs = {
     source = {
@@ -240,12 +247,13 @@
     version = "3.2.0";
   };
   docker-api = {
+    dependencies = ["excon" "multi_json"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xg2iw6rffyd6zahm6rc80m10dghqmvjg8s83zjm6bqsqdg5h2dk";
+      sha256 = "09wsm6ims9gndfkh1ndhq3mps581g0slmvlvcdmsjfjb3qgm6fj5";
       type = "gem";
     };
-    version = "1.33.3";
+    version = "1.34.0";
   };
   erubis = {
     source = {
@@ -258,26 +266,28 @@
   excon = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "149grwcry52hi3f1xkbbx74jw5m3qcmiib13wxrk3rw5rz200kmx";
+      sha256 = "0mnc9lqlzwqj5ayp0lh7impisqm55mdg3mw5q4gi9yjic5sidc40";
       type = "gem";
     };
-    version = "0.55.0";
+    version = "0.59.0";
   };
   faraday = {
+    dependencies = ["multipart-post"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6";
+      sha256 = "1gyqsj7vlqynwvivf9485zwmcj04v1z7gq362z0b8zw2zf4ag0hw";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "0.13.1";
   };
   fauxhai = {
+    dependencies = ["net-ssh"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yk8cspxgs7y29hgzv248albld4d0y5z498xmgh7kqxav6vxpigj";
+      sha256 = "0145yfn48qh64wbr55lzs1xjd6fi0z9000ix1z086dziks508c2v";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.5.0";
   };
   ffi = {
     source = {
@@ -288,23 +298,22 @@
     version = "1.9.18";
   };
   ffi-yajl = {
+    dependencies = ["libyajl2"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dlfzbs1amvqv9lrl87h614xz7319zcwn29qjl1mhnbclny98hqz";
+      sha256 = "0mv7h8bjzgv96kpbmgkmg43rwy96w54kg39vldcdwym6kpqyfgr5";
       type = "gem";
     };
-    version = "2.3.0";
-    dependencies = [
-      "libyajl2"
-    ];
+    version = "2.3.1";
   };
   foodcritic = {
+    dependencies = ["cucumber-core" "erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0js522pp3q1xx929mpbzska2i87ydkax1dnyczpll4c46dkc2ivx";
+      sha256 = "0snnfv95zwv3rc9ilkzvw1pjch8cykkxq5q42ckx9zr9yd4bzmhz";
       type = "gem";
     };
-    version = "10.2.2";
+    version = "12.2.1";
   };
   fuzzyurl = {
     source = {
@@ -317,10 +326,10 @@
   gherkin = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2ibsl5vi3961cci677zjb03wg4wh5hcci5g87i416333qq69xx";
+      sha256 = "0arfhyjcsf5bv1anj4ysqhgl621nwl9qfcs7gg20y3sapcjwl2y7";
       type = "gem";
     };
-    version = "4.1.1";
+    version = "5.0.0";
   };
   git = {
     source = {
@@ -331,6 +340,7 @@
     version = "1.3.0";
   };
   gssapi = {
+    dependencies = ["ffi"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
@@ -339,6 +349,7 @@
     version = "1.2.0";
   };
   gyoku = {
+    dependencies = ["builder"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
@@ -349,26 +360,34 @@
   hashie = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lfmbh98ng141m7yc8s4v56v49ppam416pzvd2d7pg85wmm44ljw";
+      sha256 = "120mkd2hkwhcfj7avi1dphb0lm7wx364d1cjm9yr4fibqpvsgqi7";
       type = "gem";
     };
-    version = "3.5.5";
+    version = "3.5.6";
   };
   highline = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr";
+      sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
       type = "gem";
     };
-    version = "1.7.8";
+    version = "1.7.10";
   };
   hitimes = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a4yfhj7vp5gx20y99z45skynyn57wzxwwjp9mjm0b6dgiv6l0lz";
+      sha256 = "06222h9236jw9jgmdlpi0q7psac1shvxqxqx905qkvabmxdxlfar";
+      type = "gem";
+    };
+    version = "1.2.6";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
       type = "gem";
     };
-    version = "1.2.4";
+    version = "4.3.4";
   };
   httpclient = {
     source = {
@@ -389,18 +408,19 @@
   iniparse = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pj4r636swr6j7zisgs6xjws1hkkj8wxdbbknpzydcmaridk880r";
+      sha256 = "1xbik6838gfh5yq9ahh1m7dzszxlk0g7x5lvhb8amk60mafkrgws";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.4";
   };
   inspec = {
+    dependencies = ["addressable" "faraday" "hashie" "htmlentities" "json" "method_source" "mixlib-log" "parallel" "parslet" "pry" "rainbow" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "thor" "tomlrb" "train"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03c1xxp13yv601b5fdbjbqy0sq84ymn5bx4d7k34h553lgc0124f";
+      sha256 = "0i1kb0lanx9wzvlr83981528s5b8l4gqx0911ymh04pz2qy16c5x";
       type = "gem";
     };
-    version = "1.19.2";
+    version = "1.45.13";
   };
   ipaddress = {
     source = {
@@ -410,41 +430,51 @@
     };
     version = "0.8.3";
   };
+  iso8601 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0diaqrf9lxmjamasydmd8mbc9p1lh01mb2d9y66kd1mmi7ml85yp";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
   json = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cpw154il64w6q20rrnsbjx1cdfz1yrzz1lgdbpn59lcwc6mprql";
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.1.0";
   };
   kitchen-inspec = {
+    dependencies = ["hashie" "inspec" "test-kitchen"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zpkb9hy6hbdk58xs2lf8rcdbm9l02m607bzdramwfm7czzh08rs";
+      sha256 = "0giqlpwhc7d91245pa9wkjad6ag6wd0q1757kwxmpgz4rh59xwnz";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "0.20.0";
   };
   kitchen-vagrant = {
+    dependencies = ["test-kitchen"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qanaqs769lvp3bw0bp2jivjs7n0y1y71x99j0cnx3qag9nbjca5";
+      sha256 = "0nd09fwk6ncb6rflhl8pwfnq8iyhfzrfqdx4pyhjqq18n5pp3nk6";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.1";
   };
   knife-spork = {
+    dependencies = ["app_conf" "chef" "diffy" "git"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k2lmcz9ym6n7a5xn3jvlmfls10lbk7h6phqpc7ah1dz6dk4qw8d";
+      sha256 = "0h9ifjwlqhav04j40psmz22vdz1s3xvq35kzqyc22ir3w6s9nrlj";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.7.1";
   };
   libyajl2 = {
     source = {
-  #    remotes = ["https://rubygems.org"];
       sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
       type = "gem";
     };
@@ -459,28 +489,29 @@
     version = "1.1.4";
   };
   logging = {
+    dependencies = ["little-plugger" "multi_json"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ddy1dh8sshbfaz3magaww1frlk0p3dpishmakpq0c2skp988wl2";
+      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.2";
   };
   method_source = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2";
+      sha256 = "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn";
       type = "gem";
     };
-    version = "0.8.2";
+    version = "0.9.0";
   };
   mini_portile2 = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb";
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.3.0";
   };
   minitar = {
     source = {
@@ -491,6 +522,7 @@
     version = "0.5.4";
   };
   mixlib-archive = {
+    dependencies = ["mixlib-log"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1b56iprv8cdhxjpzb8ck0mc54cl0kmyzlkn6bzzdqws4gxvdf6gk";
@@ -501,10 +533,10 @@
   mixlib-authentication = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v2r5klw6c8b67yw906slp8a7wi4v2gmhhi9b1slmm4sg2v0pgah";
+      sha256 = "1lh8vrkq2nnf0rx69mlyiqkx664baxbp32imb7l517lbcw5xspgb";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.4.2";
   };
   mixlib-cli = {
     source = {
@@ -523,12 +555,13 @@
     version = "2.2.4";
   };
   mixlib-install = {
+    dependencies = ["mixlib-shellout" "mixlib-versioning" "thor"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08fmrc9qaagj3i85n37l50d9qpjsv0lkdppmx3y69r3d0xcgfv3p";
+      sha256 = "0rsi3f3rcg3vky3biy59rvllk3wvx8xnyfch0d4h74r6sxcgbf79";
       type = "gem";
     };
-    version = "2.1.12";
+    version = "3.8.0";
   };
   mixlib-log = {
     source = {
@@ -541,34 +574,34 @@
   mixlib-shellout = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c6zhas6jfr4zd7f6s7sq7qi34ljs7qmdr4zj3ighpcsawm16zg9";
+      sha256 = "1aszrg8b6nrsb3avdm2x04f2n0xx81rdip0waxibkqpslcmb8zx5";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.2";
   };
   mixlib-versioning = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07an7gxrw6gda98bg9zbfk55b2d58hwpms8wx8sd2x2lv8qs670s";
+      sha256 = "04ayjzsqqgi0ax8c657wwnmclxh53jvn82mnsf7jb2h7fzlb59v3";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.2";
   };
   molinillo = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19h1nks0x2ljwyijs2rd1f9sh05j8xqvjaqk1rslp5nyy6h4a758";
+      sha256 = "0hiy8qvk7hsy5bl5x5b19zf3v3qbmcpa0a9w1kywhvd9051a9vnr";
       type = "gem";
     };
-    version = "0.5.7";
+    version = "0.6.4";
   };
   multi_json = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk";
+      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
       type = "gem";
     };
-    version = "1.12.1";
+    version = "1.12.2";
   };
   multipart-post = {
     source = {
@@ -579,6 +612,7 @@
     version = "2.0.0";
   };
   net-scp = {
+    dependencies = ["net-ssh"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
@@ -587,6 +621,7 @@
     version = "1.2.1";
   };
   net-sftp = {
+    dependencies = ["net-ssh"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
@@ -597,12 +632,13 @@
   net-ssh = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q";
+      sha256 = "07c4v97zl1daabmri9zlbzs6yvkl56z1q14bw74d53jdj0c17nhx";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "4.2.0";
   };
   net-ssh-gateway = {
+    dependencies = ["net-ssh"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "04ws9bvf3ppvcj9vrnwyabcwv4lz1m66ni443z2cf4wvvqssifsa";
@@ -611,6 +647,7 @@
     version = "1.3.0";
   };
   net-ssh-multi = {
+    dependencies = ["net-ssh" "net-ssh-gateway"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "13kxz9b6kgr9mcds44zpavbndxyi6pvyzyda6bhk1kfmb5c10m71";
@@ -629,18 +666,19 @@
   nio4r = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ka4923544ckvc9bxd75van9y901cjxmsiq9h5is9j743bz71k1f";
+      sha256 = "1n7csawahihc4z0d1888l2c9hlxxd06m093c58gkp1mcbj9bvyb0";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.0";
   };
   nokogiri = {
+    dependencies = ["mini_portile2"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fhmgciw6pfckqgc0aq9kqpbvnakxwh1xf351c9x4xqcj9xjgn0y";
+      sha256 = "105xh2zkr8nsyfaj2izaisarpnkrrl9000y3nyflg9cbzrfxv021";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.8.1";
   };
   nori = {
     source = {
@@ -651,6 +689,7 @@
     version = "2.6.0";
   };
   octokit = {
+    dependencies = ["sawyer"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0h6cm7bi0y7ysjgwws3paaipqdld6c0m0niazrjahhpz88qqq1g4";
@@ -659,12 +698,13 @@
     version = "4.7.0";
   };
   ohai = {
+    dependencies = ["chef-config" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "systemu" "wmi-lite"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18bxqa2rh6y6v3pvimy9ffjzrqh7q1my4vd0l7bnsczv07d5gxns";
+      sha256 = "0li307m47jin82y9k9xsh1xd9fh5gapvrl3dy997w9i199jgp1hx";
       type = "gem";
     };
-    version = "8.23.0";
+    version = "13.6.0";
   };
   paint = {
     source = {
@@ -677,34 +717,35 @@
   parallel = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iyiyd6s2dy42mhqfnvq2f64h78w0jjwgnyha1kz7dnxavncdb7i";
+      sha256 = "0qv2yj4sxr36ga6xdxvbq9h05hn10bwcbkqv6j6q1fiixhsdnnzd";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.12.0";
   };
   parser = {
+    dependencies = ["ast"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "130rfk8a2ws2fyq52hmi1n0xakylw39wv4x1qhai4z17x2b0k9cq";
+      sha256 = "0bqc29xx4zwlshvi6krrd0sl82d7xjfhcrxvgf38wvdqcl3b7ck3";
       type = "gem";
     };
-    version = "2.4.0.0";
+    version = "2.4.0.2";
   };
   parslet = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qp1m8n3m6k6g22nn1ivcfkvccq5jmbkw53vvcjw5xssq179l9z3";
+      sha256 = "15ls4zgarhic522r767nbsfn7hddrhd7zv8hvlx5flas8b2ybirf";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.8.1";
   };
   plist = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1abhg9bcdk2v4liyf10mnww3ngvkmr7flbzzajwsg2z1pmax8g8b";
+      sha256 = "0k0pyqrjcz9kn1b3ahsfs9aqym7s7yzz0vavya0zn0mca3jw2zqc";
       type = "gem";
     };
-    version = "3.2.0";
+    version = "3.3.0";
   };
   polyglot = {
     source = {
@@ -731,47 +772,46 @@
     version = "1.0.3";
   };
   pry = {
+    dependencies = ["coderay" "method_source"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar";
+      sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
       type = "gem";
     };
-    version = "0.10.4";
+    version = "0.11.3";
   };
   public_suffix = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
+      sha256 = "0mvzd9ycjw8ydb9qy3daq3kdzqs2vpqvac4dqss6ckk4rfcjc637";
       type = "gem";
     };
-    version = "2.0.5";
+    version = "3.0.1";
   };
   rack = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "053bqbrxr5gjw5k3rrmh6i35s83kgdycxv292lid072vpwrq1xv1";
+      sha256 = "1kczgp2zwcrvp257dl8j4y3mnyqflxr7rn4vl9w1rwblznx9n74c";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.3";
   };
   rainbow = {
+    dependencies = ["rake"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0frz90gyi5k26jx3ham1x661hpkxf82rkxb85nakcz70dna7i8ri";
+      sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w";
       type = "gem";
     };
-    version = "2.2.1";
-    dependencies = [
-      "rake"
-    ];
+    version = "2.2.2";
   };
   rake = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
+      sha256 = "190p7cs8zdn07mjj6xwwsdna3g0r98zs4crz7jh2j2q5b0nbxgjf";
       type = "gem";
     };
-    version = "12.0.0";
+    version = "12.3.0";
   };
   retryable = {
     source = {
@@ -782,38 +822,43 @@
     version = "2.0.4";
   };
   ridley = {
+    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"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y6dcbxmn74qg5psdjk9i751zryfwypf56rb458dkq6b7mwfxxwb";
+      sha256 = "0n2ykdnr1cn9fk8ns2dh3qf7g5dywl8p8kw4zbw4amb4v5xlkwjh";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.1.1";
   };
   rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16g3mmih999f0b6vcz2c3qsc7ks5zy4lj1rzjh8hf6wk531nvc6s";
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.7.0";
   };
   rspec-core = {
+    dependencies = ["rspec-support"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nacs062qbr98fx6czf1vwppn1js956nv2c8vfwj6i65axdfs46i";
+      sha256 = "15c4mgivvs9hpi0i1a8gypdl1f0hg6xknsbizgpm3khc95lqd9r9";
       type = "gem";
     };
-    version = "3.5.4";
+    version = "3.7.0";
   };
   rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bbqfrb1x8gmwf8x2xhhwvvlhwbbafq4isbvlibxi6jk602f09gs";
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.7.0";
   };
   rspec-its = {
+    dependencies = ["rspec-core" "rspec-expectations"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3";
@@ -822,22 +867,24 @@
     version = "1.2.0";
   };
   rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nl3ksivh9wwrjjd47z5dggrwx40v6gpb3a0gzbp1gs06a5dmk24";
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.7.0";
   };
   rspec-support = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vf3k3d472y573mag2kzfsfrf6rv355s13kadnpryk8d36yq5r0";
+      sha256 = "0hvpqpkh7j5rbwkkc0qwicwpgn0xlnpq935ikmx8n1wxxf553v3p";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.7.0";
   };
   rspec_junit_formatter = {
+    dependencies = ["builder" "rspec-core"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai";
@@ -846,28 +893,29 @@
     version = "0.2.3";
   };
   rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mzv23i11hqwpxh4srvhm8dpzvnk90y46xdfd1fc1g9s054nnbq0";
+      sha256 = "0cy2plq67b47ql06ypx3svbnnjmr2q616scwyhfd6330cg0aacf1";
       type = "gem";
     };
-    version = "0.48.1";
+    version = "0.51.0";
   };
   ruby-progressbar = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzc7s7r21bd7ah06kskajc2bjzkr9y0v5q48y0xwh2l55axgplm";
+      sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.9.0";
   };
   rubyntlm = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nfl35b2lgc4p3bgl6vmhsisap8h7p0rrb4b20gahji7s4m93bbk";
+      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.6.2";
   };
   rubyzip = {
     source = {
@@ -894,6 +942,7 @@
     version = "1.0.4";
   };
   sawyer = {
+    dependencies = ["addressable" "faraday"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
@@ -910,12 +959,13 @@
     version = "2.0.0";
   };
   serverspec = {
+    dependencies = ["multi_json" "rspec" "rspec-its" "specinfra"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j8fvjzmkcri83p0hiyfdypgbc616w2r0nr6rsi1696cd4nppknp";
+      sha256 = "1zsi7nb7mn6jsxbs6gbbkavmbnpdpk9xn2rsd5hbayzmqnb7qk43";
       type = "gem";
     };
-    version = "2.38.0";
+    version = "2.41.3";
   };
   sfl = {
     source = {
@@ -925,37 +975,31 @@
     };
     version = "2.3";
   };
-  slop = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
-      type = "gem";
-    };
-    version = "3.6.0";
-  };
   solve = {
+    dependencies = ["molinillo" "semverse"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bbzny2bl94mv1xwcfrxbi3fjhxxawlz6la7mip2wwz9kkaf376h";
+      sha256 = "08jywdc6wgfb57ncjnsdjb694fzq8aqw0iv289nijpw5hccd32g4";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "4.0.0";
   };
   specinfra = {
+    dependencies = ["net-scp" "net-ssh" "net-telnet" "sfl"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdbkqr82p7s0aq0sixsahapijccs8qswssfmsb76hi40xb2s3sg";
+      sha256 = "1dh4ydl4rr6dc8dw9nqns9z3d4f5inmpjnspnvgppvy9hk9lnx9h";
       type = "gem";
     };
-    version = "2.67.7";
+    version = "2.72.1";
   };
   sslshake = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sm0vxh9ryywsl9iqj8kkwpykh8xrr2fmlv5ysm9jjgwmdpslfvl";
+      sha256 = "19j8q4mnjvjnhlbzs9r0pn608bv5a4cihf6lswv36l3lc35gp9zl";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   syslog-logger = {
     source = {
@@ -974,12 +1018,13 @@
     version = "2.6.5";
   };
   test-kitchen = {
+    dependencies = ["mixlib-install" "mixlib-shellout" "net-scp" "net-ssh" "net-ssh-gateway" "safe_yaml" "thor" "winrm" "winrm-elevated" "winrm-fs"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mg13w1xi36r7vsbdwf7cb06s2j1p2hig144r0hzqwi599w5l9hr";
+      sha256 = "19f2wck79wr56pf2vdq9bk98ksry4w22qpyyandljif7icgsmkmb";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.19.1";
   };
   thor = {
     source = {
@@ -990,6 +1035,7 @@
     version = "0.19.1";
   };
   timers = {
+    dependencies = ["hitimes"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1jx4wb0x182gmbcs90vz0wzfyp8afi1mpl9w5ippfncyk4kffvrz";
@@ -997,37 +1043,39 @@
     };
     version = "4.0.4";
   };
-  toml = {
+  tomlrb = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wnvi1g8id1sg6776fvzf98lhfbscchgiy1fp5pvd58a8ds2fq9v";
+      sha256 = "09gh67v8s1pr7c37490sjp782gi4wf9k9cadp4l926h1sp27bcgz";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "1.2.6";
   };
   train = {
+    dependencies = ["docker-api" "json" "mixlib-shellout" "net-scp" "net-ssh" "winrm" "winrm-fs"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dglwr6kirqn9k7am4gszvgkpndvyqydlfgmwjwikvpsvf8rxgrl";
+      sha256 = "0nxv3gb665a05nhik3w44j5bvkyqfl8jz1aj4a69jvsf0jj406sw";
       type = "gem";
     };
-    version = "0.23.0";
+    version = "0.29.2";
   };
   treetop = {
+    dependencies = ["polyglot"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kx3qqdbdk5sy44cyinfx2jxr4w9z3qb17f7wicqa2kshbrvnp1q";
+      sha256 = "0sdkd1v2h8dhj9ncsnpywmqv7w1mdwsyc5jwyxlxwriacv8qz8bd";
       type = "gem";
     };
-    version = "1.6.8";
+    version = "1.6.9";
   };
   unicode-display_width = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r28mxyi0zwby24wyn1szj5hcnv67066wkv14wyzsc94bf04fqhx";
+      sha256 = "12pi0gwqdnbx1lv5136v3vyr0img9wr0kxcn4wn54ipq4y41zxq8";
       type = "gem";
     };
-    version = "1.1.3";
+    version = "1.3.0";
   };
   uuidtools = {
     source = {
@@ -1038,6 +1086,7 @@
     version = "2.1.5";
   };
   varia_model = {
+    dependencies = ["buff-extensions" "hashie"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0kgj37rc3yia4pr5pma0psgar6xjk064qdfii3nwr6dj1v73cyxz";
@@ -1046,14 +1095,16 @@
     version = "0.6.0";
   };
   winrm = {
+    dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xf36sf2cgangij9maphprzhznv4w50arnwrik5jdnmfxc8lqfmh";
+      sha256 = "02lzbixdbjvhmb0byqx9rl9x4xx9pqc8jwm7y6mmp7w7mri72zh6";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.2.3";
   };
   winrm-elevated = {
+    dependencies = ["winrm" "winrm-fs"];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "04krbwnj4cw7jy42w3n2y5kp2fbcp3v9mbf59pdhfk1py18bswcr";
@@ -1062,12 +1113,13 @@
     version = "1.1.0";
   };
   winrm-fs = {
+    dependencies = ["erubis" "logging" "rubyzip" "winrm"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p9kv5hj57krlrh20ykq8pz4i911r30mbl57n6mc6hfba2zfl7j8";
+      sha256 = "1ib5ggy0wfnpiyyynibvcixgipysgffh2jb6d8c4qddkzzbpy1dm";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.0.2";
   };
   wmi-lite = {
     source = {
@@ -1077,12 +1129,4 @@
     };
     version = "1.0.0";
   };
-  yajl-ruby = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0sah2lpvpsh555dcnhgcqylinjj5544md9dh1a0a13da0qv1p57i";
-      type = "gem";
-    };
-    version = "1.3.0";
-  };
-}
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/pkgs/development/tools/haskell/ihaskell/wrapper.nix
index 75ad33e72f63..73050280f17e 100644
--- a/pkgs/development/tools/haskell/ihaskell/wrapper.nix
+++ b/pkgs/development/tools/haskell/ihaskell/wrapper.nix
@@ -1,4 +1,4 @@
-{ stdenv, writeScriptBin, makeWrapper, buildEnv, haskell, ghcWithPackages, ihaskell, jupyter, packages }:
+{ stdenv, writeScriptBin, makeWrapper, buildEnv, haskell, ghcWithPackages, jupyter, packages }:
 let
   ihaskellEnv = ghcWithPackages (self: [
     self.ihaskell
@@ -9,8 +9,8 @@ let
   ihaskellSh = writeScriptBin "ihaskell-notebook" ''
     #! ${stdenv.shell}
     export GHC_PACKAGE_PATH="$(echo ${ihaskellEnv}/lib/*/package.conf.d| tr ' ' ':'):$GHC_PACKAGE_PATH"
-    export PATH="${stdenv.lib.makeBinPath ([ ihaskell ihaskellEnv jupyter ])}"
-    ${ihaskell}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
+    export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}"
+    ${ihaskellEnv}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
   '';
 in
 buildEnv {
diff --git a/pkgs/development/tools/misc/d-feet/default.nix b/pkgs/development/tools/misc/d-feet/default.nix
index 14a52f4e08a6..6006c83c0cd9 100644
--- a/pkgs/development/tools/misc/d-feet/default.nix
+++ b/pkgs/development/tools/misc/d-feet/default.nix
@@ -1,31 +1,22 @@
 { stdenv, pkgconfig, fetchurl, itstool, intltool, libxml2, glib, gtk3
-, pythonPackages, makeWrapper, gnome3, libwnck3 }:
+, python3Packages, wrapGAppsHook, gnome3, libwnck3 }:
 
 let
-  version = "${major}.12";
+  version = "${major}.13";
   major = "0.3";
-in pythonPackages.buildPythonApplication rec {
+in python3Packages.buildPythonApplication rec {
   name = "d-feet-${version}";
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/d-feet/${major}/d-feet-${version}.tar.xz";
-    sha256 = "054hl56rii9ff7rzl42h7993ywjbxmhlcd7bk8fi1c2bx98c6s68";
+    sha256 = "1md3lzs55sg04ds69dbginpxqvgg3qnf1lfx3vmsxph6bbd2y6ll";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 itstool intltool glib gtk3
-    gnome3.defaultIconTheme makeWrapper libwnck3
-  ];
+  nativeBuildInputs = [ pkgconfig itstool intltool wrapGAppsHook libxml2 ];
+  buildInputs = [ glib gtk3 gnome3.defaultIconTheme libwnck3 ];
 
-  propagatedBuildInputs = with pythonPackages; [ pygobject3 pep8 ];
-
-  preFixup =
-    ''
-      wrapProgram $out/bin/d-feet \
-        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share"
-    '';
+  propagatedBuildInputs = with python3Packages; [ pygobject3 pep8 ];
 
   meta = {
     description = "D-Feet is an easy to use D-Bus debugger";
diff --git a/pkgs/games/solarus/default.nix b/pkgs/games/solarus/default.nix
index 32142a2834e3..6f7876e48723 100644
--- a/pkgs/games/solarus/default.nix
+++ b/pkgs/games/solarus/default.nix
@@ -5,18 +5,20 @@
 stdenv.mkDerivation rec {
   name = "solarus-${version}";
   version = "1.4.5";
-    
+
   src = fetchFromGitHub {
     owner = "christopho";
     repo = "solarus";
     rev = "d9fdb9fdb4e1b9fc384730a9279d134ae9f2c70e";
     sha256 = "0xjx789d6crm322wmkqyq9r288vddsha59yavhy78c4r01gs1p5v";
   };
-  
+
   buildInputs = [ cmake luajit SDL2
     SDL2_image SDL2_ttf physfs
     openal libmodplug libvorbis ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A Zelda-like ARPG game engine";
     longDescription = ''
@@ -28,5 +30,5 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.Nate-Devv ];
     platforms = platforms.linux;
   };
-  
+
 }
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index 75331e0e09a2..87e619358c8c 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -10,12 +10,12 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   name = "higan-${version}";
-  version = "105";
+  version = "106";
   sourceName = "higan_v${version}-source";
 
   src = fetchurl {
     urls = [ "http://download.byuu.org/${sourceName}.7z" ];
-    sha256 = "1lpj345vlnwcywhzq1fzxwl08zc2x4d103rgyyp7yw8m0f8f9sdl";
+    sha256 = "063dzp9wrdnbvagraxi31xg0154y2gf67rrd0mnc8h104cgzjr35";
     curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick...
   };
 
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
           Game Boy, Game Boy Color, Game Boy Advance;
         - Sega's Master System, Game Gear, Mega Drive;
         - NEC's PC Engine, SuperGrafx;
-        - Bandai' WonderSwan, WonderSwan Color.
+        - Bandai's WonderSwan, WonderSwan Color.
     '';
     homepage = https://byuu.org/higan/;
     license = licenses.gpl3Plus;
diff --git a/pkgs/os-specific/linux/criu/criu-2.12.1-glibc-2.26.patch b/pkgs/os-specific/linux/criu/criu-2.12.1-glibc-2.26.patch
new file mode 100644
index 000000000000..916161e35a49
--- /dev/null
+++ b/pkgs/os-specific/linux/criu/criu-2.12.1-glibc-2.26.patch
@@ -0,0 +1,13 @@
+--- a/criu/cr-restore.c
++++ b/criu/cr-restore.c
+@@ -650,3 +650,2 @@ static void zombie_prepare_signals(void)
+ 		(1 << SIGSYS)	|\
+-		(1 << SIGUNUSED)|\
+ 		(1 << SIGSTKFLT)|\
+--- a/test/zdtm/static/pthread01.c
++++ b/test/zdtm/static/pthread01.c
+@@ -45,3 +45,3 @@ static char *decode_signal(const sigset_t *s, char *buf)
+ 	COLLECT(SIGXFSZ); COLLECT(SIGVTALRM); COLLECT(SIGPROF); COLLECT(SIGWINCH); COLLECT(SIGIO);
+-	COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS); COLLECT(SIGUNUSED);
++	COLLECT(SIGPOLL); COLLECT(SIGPWR); COLLECT(SIGSYS);
+ #undef COLLECT
diff --git a/pkgs/os-specific/linux/criu/default.nix b/pkgs/os-specific/linux/criu/default.nix
index 23d1c4821b87..4ceb397d9f82 100644
--- a/pkgs/os-specific/linux/criu/default.nix
+++ b/pkgs/os-specific/linux/criu/default.nix
@@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "18m0sjgcfvzc86w49fd3kxw145nmrsvc5w7zf42nxdiklmszbr1k";
   };
 
+  patches = [ ./criu-2.12.1-glibc-2.26.patch ];
+
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig docbook_xsl ];
   buildInputs = [ protobuf protobufc asciidoc xmlto libpaper libnl libcap libnet python ];
 
-  patchPhase = ''
+  postPatch = ''
     chmod +w ./scripts/gen-offsets.sh
     substituteInPlace ./scripts/gen-offsets.sh --replace hexdump ${utillinux}/bin/hexdump
     substituteInPlace ./Documentation/Makefile --replace "2>/dev/null" ""
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 54e37e721303..3fe9ff8e2870 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
-{ stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
+{ stdenv, hostPlatform, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.14-rc8";
-  modDirVersion = "4.14.0-rc8";
-  extraMeta.branch = "4.14";
+  version = "4.15-rc1";
+  modDirVersion = "4.15.0-rc1";
+  extraMeta.branch = "4.15";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "0ir2ggflm1xjnn1kvv2c99m5zni5kg0ygzlpm588wnhkzd93nqjh";
+    sha256 = "1l7c132qb5qjd80hga03ivssfq65brqyd95sb4rd065dqrixp20n";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index b0735e94619d..b4ee23079d93 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -1,4 +1,6 @@
 { runCommand, nettools, bc, perl, gmp, libmpc, mpfr, kmod, openssl
+, libelf ? null
+, utillinux ? null
 , writeTextFile, ubootTools
 , hostPlatform
 }:
@@ -230,13 +232,18 @@ let
     };
 in
 
+assert stdenv.lib.versionAtLeast version "4.15" -> libelf != null;
+assert stdenv.lib.versionAtLeast version "4.15" -> utillinux != null;
 stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKernelPatches) configfile) // {
   name = "linux-${version}";
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ perl bc nettools openssl gmp libmpc mpfr ]
-    ++ optional (stdenv.platform.kernelTarget == "uImage") ubootTools;
+      ++ optional (stdenv.platform.kernelTarget == "uImage") ubootTools
+      ++ optional (stdenv.lib.versionAtLeast version "4.15") libelf
+      ++ optional (stdenv.lib.versionAtLeast version "4.15") utillinux
+      ;
 
   hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" ];
 
diff --git a/pkgs/servers/dict/default.nix b/pkgs/servers/dict/default.nix
index 0e6c39ec9245..2093d54b0656 100644
--- a/pkgs/servers/dict/default.nix
+++ b/pkgs/servers/dict/default.nix
@@ -13,7 +13,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ bison flex libtool which ];
 
-  enableParallelBuilding = true;
+  # Makefile(.in) contains "clientparse.c clientparse.h: clientparse.y" which
+  # causes bison to run twice, and break the build when this happens in
+  # parallel.  Test with "make -j clientparse.c clientparse.h".  The error
+  # message may be "mv: cannot move 'y.tab.c' to 'clientparse.c'".
+  enableParallelBuilding = false;
 
   patchPhase = "patch -p0 < ${./buildfix.diff}";
   configureFlags = [
diff --git a/pkgs/servers/rpcbind/default.nix b/pkgs/servers/rpcbind/default.nix
index 9e211b8df740..6b3d60bcaea1 100644
--- a/pkgs/servers/rpcbind/default.nix
+++ b/pkgs/servers/rpcbind/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pkgconfig, libnsl, libtirpc
+{ fetchurl, stdenv, pkgconfig, libnsl, libtirpc, fetchpatch
 , useSystemd ? true, systemd }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./sunrpc.patch
+    (fetchpatch {
+      name = "CVE-2017-8779.patch";
+      url = "https://raw.githubusercontent.com/guidovranken/rpcbomb/e6da9e489aa8ad000b0ad5ac9abc5b4eefc3a769/rpcbind_patch.txt";
+      sha256 = "0w231w8fxihgrn526np078j3vbj3ylvjvxjmfpjvqhga5zg821ab";
+    })
   ];
 
   buildInputs = [ libnsl libtirpc ]
diff --git a/pkgs/shells/dgsh/default.nix b/pkgs/shells/dgsh/default.nix
index 51319aef90aa..c3c2da329a9b 100644
--- a/pkgs/shells/dgsh/default.nix
+++ b/pkgs/shells/dgsh/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [ ./glibc-2.26.patch ];
+
   nativeBuildInputs = [ autoconf automake pkgconfig libtool check
     bison git gettext gperf perl texinfo help2man ncurses
   ];
@@ -31,6 +33,8 @@ stdenv.mkDerivation rec {
     make PREFIX=$out config
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "The Directed Graph Shell";
     homepage = http://www.dmst.aueb.gr/dds/sw/dgsh;
diff --git a/pkgs/shells/dgsh/glibc-2.26.patch b/pkgs/shells/dgsh/glibc-2.26.patch
new file mode 100644
index 000000000000..c66768151316
--- /dev/null
+++ b/pkgs/shells/dgsh/glibc-2.26.patch
@@ -0,0 +1,12 @@
+diff --git a/core-tools/src/dgsh-httpval.c b/core-tools/src/dgsh-httpval.c
+index 8b5dce3..7b43c3d 100644
+--- a/core-tools/src/dgsh-httpval.c
++++ b/core-tools/src/dgsh-httpval.c
+@@ -40,6 +40,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <ctype.h>
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 89019986bca2..77409f6fc3e9 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "strongswan-${version}";
-  version = "5.6.0";
+  version = "5.6.1";
 
   src = fetchurl {
     url = "http://download.strongswan.org/${name}.tar.bz2";
-    sha256 = "04vvha2zgsg1cq05cnn6sf7a4hq9ndnsfxpw1drm5v9l4vcw0kd1";
+    sha256 = "0lxbyiary8iapx3ysw40czrmxf983fhfzs5mvz2hk1j1mpc85hp0";
   };
 
   dontPatchELF = true;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a5e12d497503..fd8dd198b494 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2164,8 +2164,6 @@ with pkgs;
 
   ftgl = callPackage ../development/libraries/ftgl { };
 
-  ftgl212 = callPackage ../development/libraries/ftgl/2.1.2.nix { };
-
   ftop = callPackage ../os-specific/linux/ftop { };
 
   fsfs = callPackage ../tools/filesystems/fsfs { };
@@ -2729,7 +2727,7 @@ with pkgs;
 
 
   ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
-    inherit (haskellPackages) ihaskell ghcWithPackages;
+    inherit (haskellPackages) ghcWithPackages;
 
     jupyter = python3.withPackages (ps: [ ps.jupyter ps.notebook ]);
 
@@ -7078,9 +7076,7 @@ with pkgs;
 
   cheat = callPackage ../applications/misc/cheat { };
 
-  chefdk = callPackage ../development/tools/chefdk {
-    ruby = ruby_2_0;
-  };
+  chefdk = callPackage ../development/tools/chefdk { };
 
   matter-compiler = callPackage ../development/compilers/matter-compiler {};
 
@@ -10086,7 +10082,7 @@ with pkgs;
 
   olm = callPackage ../development/libraries/olm { };
 
-  oneko = callPackage ../applications/misc/oneko { };   
+  oneko = callPackage ../applications/misc/oneko { };
 
   oniguruma = callPackage ../development/libraries/oniguruma { };
 
@@ -10668,7 +10664,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL;
   };
 
-  SDL2_image = callPackage ../development/libraries/SDL2_image { };
+  SDL2_image = callPackage ../development/libraries/SDL2_image {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   SDL2_mixer = callPackage ../development/libraries/SDL2_mixer { };
 
@@ -12597,7 +12595,6 @@ with pkgs;
   linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
-      kernelPatches.p9_fixes
       kernelPatches.modinst_arg_list_too_long
     ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [
       kernelPatches.mips_fpureg_emu
@@ -13449,6 +13446,7 @@ with pkgs;
   iosevka = callPackage ../data/fonts/iosevka {
     nodejs = nodejs-8_x;
   };
+  iosevka-bin = callPackage ../data/fonts/iosevka/bin.nix {};
 
   ipafont = callPackage ../data/fonts/ipafont {};
   ipaexfont = callPackage ../data/fonts/ipaexfont {};
@@ -20038,4 +20036,6 @@ with pkgs;
   };
 
   wal-g = callPackage ../tools/backup/wal-g {};
+
+  tlwg = callPackage ../data/fonts/tlwg { };
 }
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 36c2669d29cb..04e7b16e56b3 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -176,10 +176,17 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
-    cstruct = callPackage ../development/ocaml-modules/cstruct {
+    cstruct =
+      if lib.versionAtLeast ocaml.version "4.2"
+      then callPackage ../development/ocaml-modules/cstruct {}
+      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; };
+
+    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix {
       lwt = ocaml_lwt;
     };
 
+    cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {};
+
     csv =
       if lib.versionAtLeast ocaml.version "4.2"
       then callPackage ../development/ocaml-modules/csv { }
@@ -380,9 +387,7 @@ let
 
     mtime =  callPackage ../development/ocaml-modules/mtime { };
 
-    nocrypto =  callPackage ../development/ocaml-modules/nocrypto {
-      lwt = ocaml_lwt;
-    };
+    nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
     notty = callPackage ../development/ocaml-modules/notty {
       lwt = ocaml_lwt;
@@ -570,6 +575,8 @@ let
       then callPackage ../development/ocaml-modules/ppx_blob {}
       else null;
 
+    ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {};
+
     ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {};
 
     ppx_deriving =
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 90d8c177b1e7..7f565a73672a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -21477,6 +21477,8 @@ EOF
     name = "carbon-${version}";
     version = graphiteVersion;
 
+    disabled = isPy3k;
+
     src = pkgs.fetchurl {
       url = "mirror://pypi/c/carbon/${name}.tar.gz";
       sha256 = "142smpmgbnjinvfb6s4ijazish4vfgzyd8zcmdkh55y051fkixkn";
@@ -21488,6 +21490,7 @@ EOF
       homepage = http://graphite.wikidot.com/;
       description = "Backend data caching and persistence daemon for Graphite";
       maintainers = with maintainers; [ rickynils offline ];
+      license = licenses.asl20;
     };
   };