about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-06-22 13:20:37 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2018-06-22 13:20:37 +0200
commit48110c12956cdccc9aab638a489d2c96511fc41a (patch)
tree74e47861fc508c9f3ec7012c3fe5268572d5f6f2
parent93a277ca60c024453982a0393f227e35f1374faf (diff)
parentdb0da282c374e0cf7ec9309cbb36bf7b5b5d8e54 (diff)
downloadnixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar.gz
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar.bz2
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar.lz
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar.xz
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.tar.zst
nixlib-48110c12956cdccc9aab638a489d2c96511fc41a.zip
Merge staging into master
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md1
-rw-r--r--nixos/modules/programs/thefuck.nix4
-rw-r--r--nixos/tests/installer.nix4
-rw-r--r--nixos/tests/plasma5.nix18
-rw-r--r--pkgs/applications/networking/flent/default.nix7
-rw-r--r--pkgs/applications/networking/flent/http-getter.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix39
-rw-r--r--pkgs/applications/virtualization/rancher-compose/default.nix44
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix4
-rw-r--r--pkgs/applications/window-managers/yabar/default.nix14
-rw-r--r--pkgs/desktops/mate/marco/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-media/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-polkit/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-power-manager/default.nix4
-rw-r--r--pkgs/development/compilers/ghc/7.10.3-binary.nix5
-rw-r--r--pkgs/development/compilers/ghc/7.10.3.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.0.2.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.2.1-binary.nix5
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix3
-rw-r--r--pkgs/development/compilers/ghc/8.4.3.nix3
-rw-r--r--pkgs/development/compilers/ghc/head.nix1
-rw-r--r--pkgs/development/compilers/ghcjs-ng/default.nix3
-rw-r--r--pkgs/development/compilers/ghcjs/base.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
-rw-r--r--pkgs/development/haskell-modules/hoogle.nix16
-rw-r--r--pkgs/development/interpreters/erlang/R21.nix10
-rw-r--r--pkgs/development/libraries/gmp/6.x.nix4
-rw-r--r--pkgs/development/libraries/gsl/default.nix4
-rw-r--r--pkgs/development/libraries/libpfm/default.nix6
-rw-r--r--pkgs/development/libraries/libsixel/default.nix4
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix14
-rw-r--r--pkgs/development/mobile/androidenv/build-gradle-app.nix104
-rw-r--r--pkgs/development/mobile/androidenv/default.nix23
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/os-specific/darwin/xcode/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.16.nix4
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix4
-rw-r--r--pkgs/servers/monitoring/telegraf/deps-1.7.0.nix (renamed from pkgs/servers/monitoring/telegraf/deps-1.6.1.nix)209
-rw-r--r--pkgs/tools/misc/fwup/default.nix4
-rw-r--r--pkgs/tools/misc/jdupes/default.nix13
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix8
-rw-r--r--pkgs/top-level/beam-packages.nix10
-rw-r--r--pkgs/top-level/darwin-packages.nix3
48 files changed, 511 insertions, 152 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index e7a9b1ba25fd..ab1a50865f09 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -13,6 +13,7 @@
 - [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
 - [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run "nox-review wip"`
 - [ ] Tested execution of all binary files (usually in `./result/bin/`)
+- [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after)
 - [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
 
 ---
diff --git a/nixos/modules/programs/thefuck.nix b/nixos/modules/programs/thefuck.nix
index eb913477cf05..f4ae52934760 100644
--- a/nixos/modules/programs/thefuck.nix
+++ b/nixos/modules/programs/thefuck.nix
@@ -31,8 +31,8 @@ in
       environment.systemPackages = with pkgs; [ thefuck ];
       environment.shellInit = initScript;
 
-      programs.zsh.shellInit = mkIf prg.zsh.enable initScript;
-      programs.fish.shellInit = mkIf prg.fish.enable ''
+      programs.zsh.interactiveShellInit = mkIf prg.zsh.enable initScript;
+      programs.fish.interactiveShellInit = mkIf prg.fish.enable ''
         ${pkgs.thefuck}/bin/thefuck --alias | source
       '';
     };
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 7da02d9c204a..92f400937b97 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -51,6 +51,8 @@ let
 
         hardware.enableAllFirmware = lib.mkForce false;
 
+        services.udisks2.enable = lib.mkDefault false;
+
         ${replaceChars ["\n"] ["\n  "] extraConfig}
       }
     '';
@@ -250,6 +252,8 @@ let
               ++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
               ++ optionals (bootLoader == "grub" && grubVersion == 2) [ pkgs.grub2 pkgs.grub2_efi ];
 
+            services.udisks2.enable = mkDefault false;
+
             nix.binaryCaches = mkForce [ ];
             nix.extraOptions =
               ''
diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix
index f3bd4c5915b0..14ab2e30cabf 100644
--- a/nixos/tests/plasma5.nix
+++ b/nixos/tests/plasma5.nix
@@ -6,13 +6,28 @@ import ./make-test.nix ({ pkgs, ...} :
     maintainers = [ ttuegel ];
   };
 
-  machine = { lib, ... }: {
+  machine = { lib, ... }:
+  let
+    sddm_theme = pkgs.stdenv.mkDerivation {
+      name = "breeze-ocr-theme";
+      phases = "buildPhase";
+      buildCommand = ''
+        mkdir -p $out/share/sddm/themes/
+        cp -r ${pkgs.plasma-workspace}/share/sddm/themes/breeze $out/share/sddm/themes/breeze-ocr-theme
+        chmod -R +w $out/share/sddm/themes/breeze-ocr-theme
+        printf "[General]\ntype=color\ncolor=#1d99f3\nbackground=\n" > $out/share/sddm/themes/breeze-ocr-theme/theme.conf
+      '';
+    };
+  in
+  {
     imports = [ ./common/user-account.nix ];
     services.xserver.enable = true;
     services.xserver.displayManager.sddm.enable = true;
+    services.xserver.displayManager.sddm.theme = "breeze-ocr-theme";
     services.xserver.desktopManager.plasma5.enable = true;
     services.xserver.desktopManager.default = "plasma5";
     virtualisation.memorySize = 1024;
+    environment.systemPackages = [ sddm_theme ];
 
     # fontconfig-penultimate-0.3.3 -> 0.3.4 broke OCR apparently, but no idea why.
     nixpkgs.config.packageOverrides = superPkgs: {
@@ -30,7 +45,6 @@ import ./make-test.nix ({ pkgs, ...} :
     xdo = "${pkgs.xdotool}/bin/xdotool";
   in ''
     startAll;
-
     # Wait for display manager to start
     $machine->waitForText(qr/${user.description}/);
     $machine->screenshot("sddm");
diff --git a/pkgs/applications/networking/flent/default.nix b/pkgs/applications/networking/flent/default.nix
index 90ff868d6bec..2f97b39da60f 100644
--- a/pkgs/applications/networking/flent/default.nix
+++ b/pkgs/applications/networking/flent/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, matplotlib, netperf, procps, pyqt5 }:
+{ stdenv, buildPythonApplication, fetchFromGitHub, matplotlib, procps, pyqt5
+, sphinx
+}:
 
 buildPythonApplication rec {
   pname = "flent";
@@ -10,7 +12,8 @@ buildPythonApplication rec {
     sha256 = "1llcdakk0nk9xlpjjz7mv4a80yq4sjnbqhaqvyj9m6lbcxgssh2r";
   };
 
-  buildInputs = [ netperf ];
+  buildInputs = [ sphinx ];
+
   propagatedBuildInputs = [
     matplotlib
     procps
diff --git a/pkgs/applications/networking/flent/http-getter.nix b/pkgs/applications/networking/flent/http-getter.nix
new file mode 100644
index 000000000000..20557c18c52c
--- /dev/null
+++ b/pkgs/applications/networking/flent/http-getter.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake
+, curl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "http-getter";
+  version = "20180606";
+
+  src = fetchFromGitHub {
+    owner = "tohojo";
+    repo = "http-getter";
+    rev = "79bcccce721825a745f089d0c347bbaf2e6e12f4";
+    sha256 = "1zxk52s1h5qx62idil237zdpj8agrry0w1xwkfx05wvv9sw4ld35";
+  };
+
+  buildInputs = [ cmake pkgconfig curl ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/tohojo/http-getter;
+    description = "Simple getter for HTTP URLs using cURL";
+    platforms = platforms.unix;
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 92a59fb31f10..89a3005b1279 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -40,11 +40,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "signal-desktop-${version}";
-  version = "1.12.1";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1p85hpk8kzzgncfm033bzpwm7hk6rrq8zdpwqlk5z2biarwjdqfx";
+    sha256 = "1iapkkfqssbjcksgic7i8x0cwp6gwcbbrfxlw7vp6k1cfvjwv9pf";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index ceec9f1e75b6..4e9b7d2428de 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation {
   preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/bin
     cp -a $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin
+    rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
   '';
 
   postInstall =
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index 1a6e8bc56f40..c9f666390b55 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -1,38 +1,35 @@
-{ stdenv, fetchgit, go, ronn, groff, utillinux, Security }:
+{ stdenv, buildGoPackage, fetchFromGitHub, go, ronn, ruby, groff, Security, utillinux }:
 
-stdenv.mkDerivation rec {
+buildGoPackage rec {
   name = "hub-${version}";
   version = "2.4.0";
 
-  src = fetchgit {
-    url = https://github.com/github/hub.git;
-    rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/github/hub";
+
+  src = fetchFromGitHub {
+    owner = "github";
+    repo = "hub";
+    rev = "v${version}";
     sha256 = "1lr6vg0zhg2air9bnzcl811g97jraxq05l3cs46wqqflwy57xpz2";
   };
 
+  buildInputs = [ groff ronn ruby utillinux ] ++
+    stdenv.lib.optional stdenv.isDarwin Security;
 
-  buildInputs = [ go ronn groff utillinux ]
-    ++ stdenv.lib.optional stdenv.isDarwin Security;
-
-  buildPhase = ''
+  postPatch = ''
     mkdir bin
     ln -s ${ronn}/bin/ronn bin/ronn
-
     patchShebangs .
-    make all man-pages
   '';
 
-  installPhase = ''
-    prefix=$out sh -x < script/install.sh
-
-    mkdir -p "$out/share/zsh/site-functions"
-    cp "etc/hub.zsh_completion" "$out/share/zsh/site-functions/_hub"
-
-    mkdir -p "$out/etc/bash_completion.d"
-    cp "etc/hub.bash_completion.sh" "$out/etc/bash_completion.d/"
+  postInstall = ''
+    cd go/src/${goPackagePath}
+    install -D etc/hub.zsh_completion "$bin/share/zsh/site-functions/_hub"
+    install -D etc/hub.bash_completion.sh "$bin/etc/bash_completion.d/hub.bash_completion.sh"
+    install -D etc/hub.fish_completion  "$bin/share/fish/vendor_completions.d/hub.fish"
 
-    # Should we also install provided git-hooks?
-    # And fish completion?
+    make man-pages
+    cp -r share/man $bin/share/man
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/virtualization/rancher-compose/default.nix b/pkgs/applications/virtualization/rancher-compose/default.nix
deleted file mode 100644
index 57aa6809d6c1..000000000000
--- a/pkgs/applications/virtualization/rancher-compose/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-let
-  generic = { version, sha256 }: buildGoPackage rec {
-    name = "rancher-compose-${version}";
-
-    goPackagePath = "github.com/rancher/rancher-compose";
-
-    src = fetchFromGitHub {
-      owner = "rancher";
-      repo = "rancher-compose";
-      rev = "v${version}";
-      inherit sha256;
-    };
-
-    buildFlagsArray = ''
-      -ldflags=
-          -X github.com/rancher/rancher-compose/version.VERSION=${version}
-    '';
-
-    excludedPackages = "scripts";
-
-    meta = with lib; {
-      description = "Docker compose compatible client to deploy to Rancher";
-      homepage = https://docs.rancher.com/rancher/rancher-compose/;
-      license = licenses.asl20;
-      platforms = platforms.unix;
-      maintainers = [maintainers.mic92];
-    };
-  };
-in {
-  # should point to a version compatible
-  # with the latest stable release of rancher
-  rancher-compose = generic {
-    version = "0.9.2";
-    sha256 = "1wlsdjaa4j2b3c034hb6zci5h900b1msimmshz5h4g5hiaqb3khq";
-  };
-
-  # for rancher v1.2.0-pre3+
-  rancher-compose_0_10 = generic {
-    version = "0.10.0";
-    sha256 = "17f3ya4qq0dzk4wvhgxp0lh9p8c87kpq7hmh3g21ashzqwmcflxl";
-  };
-}
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index a5d02093e3f6..6fc1797dd251 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, cairo, gdk_pixbuf, libconfig, pango, pkgconfig
 , xcbutilwm, alsaLib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl
 , configFile ? null, lib
-, rev, sha256, version
+, rev, sha256, version, patches ? []
 }:
 
 stdenv.mkDerivation {
@@ -14,6 +14,8 @@ stdenv.mkDerivation {
     repo  = "yabar";
   };
 
+  inherit patches;
+
   hardeningDisable = [ "format" ];
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/window-managers/yabar/default.nix b/pkgs/applications/window-managers/yabar/default.nix
index 4d42e3082f35..a33a75676ee9 100644
--- a/pkgs/applications/window-managers/yabar/default.nix
+++ b/pkgs/applications/window-managers/yabar/default.nix
@@ -1,10 +1,18 @@
-{ callPackage, attrs ? {} }:
+{ callPackage, attrs ? {}, fetchpatch }:
 
 let
-  overrides = {
+  overrides = rec {
     version = "0.4.0";
 
-    rev = "746387f0112f9b7aa2e2e27b3d69cb2892d8c63b";
+    rev = version;
     sha256 = "1nw9dar1caqln5fr0dqk7dg6naazbpfwwzxwlkxz42shsc3w30a6";
+
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/geommer/yabar/commit/9779a5e04bd6e8cdc1c9fcf5d7ac31416af85a53.patch";
+        sha256 = "1szhr3k1kq6ixgnp74wnzgfvgxm6r4zpc3ny2x2wzy6lh2czc07s";
+      })
+    ];
+
   } // attrs;
 in callPackage ./build.nix overrides
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index 42c74aa1173d..c1c6d96688ba 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "marco-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1qnx47aibvl00qaf1jik457cwncxb71pf5pd1m3gdg7ky61ljkm4";
+    sha256 = "1fn0yfqjp44gr4kly96qjsd73x06z1xyw6bpyhh09kdqwd80rgiy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-media/default.nix b/pkgs/desktops/mate/mate-media/default.nix
index 514da3a11724..efc9a3d2c39f 100644
--- a/pkgs/desktops/mate/mate-media/default.nix
+++ b/pkgs/desktops/mate/mate-media/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-media-${version}";
-  version = "1.20.0";
+  version = "1.20.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "09vbw7nc91ljnxm5sbrch0w7zzn2i6qjb1b50q402niwr5b0zicr";
+    sha256 = "1db47m80qfb1xyrg1qxwvmkc53qp97yhvh86fgwjv00x96c3j9s9";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/mate/mate-polkit/default.nix b/pkgs/desktops/mate/mate-polkit/default.nix
index 3db773af9fc5..a65077872cfb 100644
--- a/pkgs/desktops/mate/mate-polkit/default.nix
+++ b/pkgs/desktops/mate/mate-polkit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-polkit-${version}";
-  version = "1.20.0";
+  version = "1.20.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "00c1rmi31gv1a3lk7smjp489kd3wrj0d6npagnb8p1rz0g88ha94";
+    sha256 = "05g6k5z903p9p0dbi0y61z5chip52gqrhy5zrjn6xjxv1ad29lsk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix
index c056b1f62fbd..e2b50127b89b 100644
--- a/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mate-power-manager-${version}";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
-    sha256 = "1s46jvjcrai6xb2k0dy7i121b9ihfl5h3y5809fg9fzrbvw6bafn";
+    sha256 = "1z754jxnwashwxxfg3cxb9ifbqyjxgavzzwy2mjnzl6z7k95hvjh";
   };
 
   buildInputs = [
diff --git a/pkgs/development/compilers/ghc/7.10.3-binary.nix b/pkgs/development/compilers/ghc/7.10.3-binary.nix
index 48e2ca0a585c..53693ff50521 100644
--- a/pkgs/development/compilers/ghc/7.10.3-binary.nix
+++ b/pkgs/development/compilers/ghc/7.10.3-binary.nix
@@ -153,7 +153,10 @@ stdenv.mkDerivation rec {
     [ $(./main) == "yes" ]
   '';
 
-  passthru = { targetPrefix = ""; };
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+  };
 
   meta.license = stdenv.lib.licenses.bsd3;
   meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux"];
diff --git a/pkgs/development/compilers/ghc/7.10.3.nix b/pkgs/development/compilers/ghc/7.10.3.nix
index 3dd320e02572..2a906d918aa3 100644
--- a/pkgs/development/compilers/ghc/7.10.3.nix
+++ b/pkgs/development/compilers/ghc/7.10.3.nix
@@ -177,6 +177,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-7.10.3";
diff --git a/pkgs/development/compilers/ghc/8.0.2.nix b/pkgs/development/compilers/ghc/8.0.2.nix
index 53c5a218cb13..8062e93df549 100644
--- a/pkgs/development/compilers/ghc/8.0.2.nix
+++ b/pkgs/development/compilers/ghc/8.0.2.nix
@@ -183,6 +183,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.0.2";
diff --git a/pkgs/development/compilers/ghc/8.2.1-binary.nix b/pkgs/development/compilers/ghc/8.2.1-binary.nix
index c88d2a8685a6..9bd7dfcb9fc1 100644
--- a/pkgs/development/compilers/ghc/8.2.1-binary.nix
+++ b/pkgs/development/compilers/ghc/8.2.1-binary.nix
@@ -155,7 +155,10 @@ stdenv.mkDerivation rec {
     [ $(./main) == "yes" ]
   '';
 
-  passthru = { targetPrefix = ""; };
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+  };
 
   meta.license = stdenv.lib.licenses.bsd3;
   # AArch64 should work in theory but eventually some builds start segfaulting
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index bec68db47fc8..2d49742c6510 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -59,6 +59,8 @@ let
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    EXTRA_CC_OPTS += -std=gnu99
   '';
 
   # Splicer will pull out correct variations
@@ -222,6 +224,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.2.2";
diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix
index c57058a63520..ac3578927bd5 100644
--- a/pkgs/development/compilers/ghc/8.4.3.nix
+++ b/pkgs/development/compilers/ghc/8.4.3.nix
@@ -121,6 +121,8 @@ stdenv.mkDerivation rec {
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     export NIX_LDFLAGS+=" -no_dtrace_dof"
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
   '';
 
   # TODO(@Ericson2314): Always pass "--target" and always prefix.
@@ -193,6 +195,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.4.3";
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index c128891ec382..8ccd72ef55a2 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -191,6 +191,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.5";
diff --git a/pkgs/development/compilers/ghcjs-ng/default.nix b/pkgs/development/compilers/ghcjs-ng/default.nix
index affed7e2d071..65b43f712ae2 100644
--- a/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -42,6 +42,8 @@ let
     inherit (bootGhcjs) version;
     isGhcjs = true;
 
+    enableShared = true;
+
     socket-io = nodePackages."socket.io";
 
     # Relics of the old GHCJS build system
@@ -96,4 +98,3 @@ in stdenv.mkDerivation {
 
     meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
   }
-
diff --git a/pkgs/development/compilers/ghcjs/base.nix b/pkgs/development/compilers/ghcjs/base.nix
index 98eb58e6aae7..f09a577110b7 100644
--- a/pkgs/development/compilers/ghcjs/base.nix
+++ b/pkgs/development/compilers/ghcjs/base.nix
@@ -179,6 +179,8 @@ in mkDerivation (rec {
     # let us assume ghcjs is never actually cross compiled
     targetPrefix = "";
 
+    enableShared = true;
+
     inherit stage1Packages;
     mkStage2 = stage2 {
       inherit ghcjsBoot;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index eb55be69188d..69d98f761bdd 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1051,6 +1051,8 @@ self: super: {
     strictDeps = true;
   });
 
+  # dhall-json requires a very particular dhall version
+  dhall-json_1_2_0 = super.dhall-json_1_2_0.override { dhall = self.dhall_1_14_0; };
 }
 
 //
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 52128d3fc5d1..3dd023f34302 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -30,7 +30,7 @@ in
 , profilingDetail ? "all-functions"
 # TODO enable shared libs for cross-compiling
 , enableSharedExecutables ? false
-, enableSharedLibraries ? ((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version)
+, enableSharedLibraries ? (ghc.enableShared or false)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
 , enableStaticLibraries ? !hostPlatform.isWindows
 , enableHsc2hsViaAsm ? hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"
diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix
index 38e8dfd24c4e..803ff2b20d11 100644
--- a/pkgs/development/haskell-modules/hoogle.nix
+++ b/pkgs/development/haskell-modules/hoogle.nix
@@ -52,10 +52,13 @@ let
       This index includes documentation for many Haskell modules.
     '';
 
+  # Packages like base and bytestring are null. These must be removed
+  # to prevent eval errors.
+  nonNullPackages = builtins.filter (p: p != null) packages;
   # TODO: closePropagation is deprecated; replace
   docPackages = lib.closePropagation
     # we grab the doc outputs
-    (map (lib.getOutput "doc") packages);
+    (map (lib.getOutput "doc") nonNullPackages);
 
 in
 stdenv.mkDerivation {
@@ -67,10 +70,10 @@ stdenv.mkDerivation {
   inherit docPackages;
 
   buildPhase = ''
-    ${lib.optionalString (packages != [] -> docPackages == [])
+    ${lib.optionalString (nonNullPackages != [] -> docPackages == [])
        ("echo WARNING: localHoogle package list empty, even though"
        + " the following were specified: "
-       + lib.concatMapStringsSep ", " (p: p.name) packages)}
+       + lib.concatMapStringsSep ", " (p: p.name) nonNullPackages)}
     mkdir -p $out/share/doc/hoogle
 
     echo importing builtin packages
@@ -86,10 +89,9 @@ stdenv.mkDerivation {
     ${lib.concatMapStringsSep "\n" (el: ''
         ln -sfn ${el.haddockDir} "$out/share/doc/hoogle/${el.name}"
       '')
-      (lib.filter (el: el.haddockDir != null)
-        (builtins.map (p: { haddockDir = if p ? haddockDir then p.haddockDir p else null;
-                            name = p.pname; })
-          docPackages))}
+      (builtins.map (p: { haddockDir = if p ? haddockDir then p.haddockDir p else null;
+                          name = p.pname; })
+        docPackages)}
 
     echo building hoogle database
     hoogle generate --database $out/share/doc/hoogle/default.hoo --local=$out/share/doc/hoogle
diff --git a/pkgs/development/interpreters/erlang/R21.nix b/pkgs/development/interpreters/erlang/R21.nix
new file mode 100644
index 000000000000..de00ebdf2cb0
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/R21.nix
@@ -0,0 +1,10 @@
+{ mkDerivation, fetchurl }:
+
+mkDerivation rec {
+  version = "21.0";
+  sha256 = "0khprgawmbdpn9b8jw2kksmvs6b45mibpjralsc0ggxym1397vm8";
+
+  prePatch = ''
+    substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10'
+  '';
+}
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index cb2c3f15da82..f62883529fc9 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, m4, cxx ? true
-, buildPackages
+{ stdenv, fetchurl, m4, cxx ? !hostPlatform.useAndroidPrebuilt
+, buildPackages, hostPlatform
 , withStatic ? false }:
 
 let inherit (stdenv.lib) optional optionalString; in
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index f1eed726eb2b..4f952359f711 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, fetchpatch, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "gsl-2.4";
+  name = "gsl-2.5";
 
   src = fetchurl {
     url = "mirror://gnu/gsl/${name}.tar.gz";
-    sha256 = "16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd";
+    sha256 = "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libpfm/default.nix b/pkgs/development/libraries/libpfm/default.nix
index a74d838e2eb6..593bb567df7d 100644
--- a/pkgs/development/libraries/libpfm/default.nix
+++ b/pkgs/development/libraries/libpfm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "4.9.0";
+  version = "4.10.0";
   name = "libpfm-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/perfmon2/libpfm4/${name}.tar.gz";
-    sha256 = "1qp4g4n6dw42p2w5rkwzdb7ynk8h7g5vg01ybpmvxncgwa7bw3yv";
+    sha256 = "0bldxhcrpav04hi256fmf907gxhyck24j1p998v48zbhm6aykw94";
   };
 
   installFlags = "DESTDIR=\${out} PREFIX= LDCONFIG=true";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     maintainers = [ maintainers.pierron ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libsixel/default.nix b/pkgs/development/libraries/libsixel/default.nix
index 9d4b62eb97ab..bad5e7c59622 100644
--- a/pkgs/development/libraries/libsixel/default.nix
+++ b/pkgs/development/libraries/libsixel/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchFromGitHub}:
 stdenv.mkDerivation rec {
-  version = "1.7.3";
+  version = "1.8.1";
   name = "libsixel-${version}";
 
   src = fetchFromGitHub {
     repo = "libsixel";
     rev = "v${version}";
     owner = "saitoha";
-    sha256 = "1hzmypzzigmxl07vgc52wp4dgxkhya3gfk4yzaaxc8s630r6ixs8";
+    sha256 = "0cbhvd1yk0q08nxva5bga7bpp8yxjfdfnqicvip4l6k28mzz7pmf";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index 699af16cf041..a90c9f8476e3 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -1,4 +1,4 @@
-{ stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper
+{ stdenv, stdenv_32bit, fetchurl, fetchzip, unzip, makeWrapper
 , platformTools, buildTools, support, supportRepository, platforms, sysimages, addons, sources
 , libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, libGLU_combined, alsaLib
 , freetype, fontconfig, glib, gtk2, atk, file, jdk, coreutils, libpulseaudio, dbus
@@ -8,7 +8,15 @@
 { platformVersions, abiVersions, useGoogleAPIs, useExtraSupportLibs ? false
 , useGooglePlayServices ? false, useInstantApps ? false }:
 
-let inherit (stdenv.lib) makeLibraryPath; in
+let inherit (stdenv.lib) makeLibraryPath;
+
+    googleRepository = let version = "gms_v9_rc41_wear_2_0_rc6";
+      in fetchzip rec {
+        url = "https://dl-ssl.google.com/android/repository/google_m2repository_${version}.zip";
+        sha256 = "0k99xmynv0k62d301zx5jnjkddflr51i5lb02l9incg7m5cn8kzx";
+      };
+
+in
 
 stdenv.mkDerivation rec {
   name = "android-sdk-${version}";
@@ -168,6 +176,8 @@ stdenv.mkDerivation rec {
     ${stdenv.lib.optionalString useInstantApps
        "ln -s ${addons.instant_apps}/whsdk instantapps"}
 
+    ln -s ${googleRepository} m2repository
+
     cd ../..
 
     # Symlink required sources
diff --git a/pkgs/development/mobile/androidenv/build-gradle-app.nix b/pkgs/development/mobile/androidenv/build-gradle-app.nix
new file mode 100644
index 000000000000..1ca51fae1c29
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/build-gradle-app.nix
@@ -0,0 +1,104 @@
+{ stdenv, androidsdk, jdk, androidndk, gnumake, gawk, file
+, which, gradle, fetchurl, buildEnv, runCommand }:
+
+args@{ name, src, platformVersions ? [ "8" ], useGoogleAPIs ? false
+     , useExtraSupportLibs ? false, useGooglePlayServices ? false
+     , release ? false, keyStore ? null, keyAlias ? null
+     , keyStorePassword ? null, keyAliasPassword ? null
+     , useNDK ? false, buildInputs ? [], mavenDeps, gradleTask
+     , buildDirectory ? "./.", acceptAndroidSdkLicenses ? false }:
+
+assert release -> keyStore != null;
+assert release -> keyAlias != null;
+assert release -> keyStorePassword != null;
+assert release -> keyAliasPassword != null;
+assert acceptAndroidSdkLicenses;
+
+let
+  inherit (stdenv.lib) optionalString;
+
+  m2install = { repo, version, artifactId, groupId
+              , jarSha256, pomSha256, aarSha256, suffix ? "" }:
+    let m2Name = "${artifactId}-${version}";
+        m2Path = "${builtins.replaceStrings ["."] ["/"] groupId}/${artifactId}/${version}";
+    in runCommand m2Name {} (''
+         mkdir -p $out/m2/${m2Path}
+       '' + optionalString (jarSha256 != null) ''
+         install -D ${fetchurl {
+                        url = "${repo}${m2Path}/${m2Name}${suffix}.jar";
+                        sha256 = jarSha256;
+                      }} $out/m2/${m2Path}/${m2Name}${suffix}.jar
+       '' + optionalString (pomSha256 != null) ''
+         install -D ${fetchurl {
+                        url = "${repo}${m2Path}/${m2Name}${suffix}.pom";
+                        sha256 = pomSha256;
+                      }} $out/m2/${m2Path}/${m2Name}${suffix}.pom
+       '' + optionalString (aarSha256 != null) ''
+         install -D ${fetchurl {
+                        url = "${repo}${m2Path}/${m2Name}${suffix}.aar";
+                        sha256 = aarSha256;
+                      }} $out/m2/${m2Path}/${m2Name}${suffix}.aar
+       '');
+
+  androidsdkComposition = androidsdk {
+    inherit platformVersions useGoogleAPIs
+            useExtraSupportLibs useGooglePlayServices;
+    abiVersions = [ "armeabi-v7a" ];
+  };
+in
+stdenv.mkDerivation ({
+  name = stdenv.lib.replaceChars [" "] [""] name;
+
+  ANDROID_HOME = "${androidsdkComposition}/libexec";
+  ANDROID_NDK_HOME = "${androidndk}/libexec/${androidndk.name}";
+
+  buildInputs = [ jdk gradle ] ++
+    stdenv.lib.optional useNDK [ androidndk gnumake gawk file which ] ++
+      buildInputs;
+
+  DEPENDENCIES = buildEnv { name = "${name}-maven-deps";
+                            paths = map m2install mavenDeps;
+                          };
+
+  buildPhase = ''
+    ${optionalString release ''
+      # Provide key signing attributes
+      ( echo "RELEASE_STORE_FILE=${keyStore}"
+        echo "RELEASE_KEY_ALIAS=${keyAlias}"
+        echo "RELEASE_STORE_PASSWORD=${keyStorePassword}"
+        echo "RELEASE_KEY_PASSWORD=${keyAliasPassword}"
+      ) >> gradle.properties
+    ''}
+    buildDir=`pwd`
+    cp -r $ANDROID_HOME $buildDir/local_sdk
+    chmod -R 755 local_sdk
+    export ANDROID_HOME=$buildDir/local_sdk
+    # Key files cannot be stored in the user's home directory. This
+    # overrides it.
+    export ANDROID_SDK_HOME=`pwd`
+
+    mkdir -p "$ANDROID_HOME/licenses"
+    echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
+    echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
+
+    export APP_HOME=`pwd`
+
+    mkdir -p .m2/repository
+    if [ -d "$DEPENDENCIES/m2" ] ; then
+      cp -RL "$DEPENDENCIES"/m2/* .m2/repository/
+    fi
+    chmod -R 755 .m2
+    mkdir -p .m2/repository/com/android/support
+    cp -RL local_sdk/extras/android/m2repository/com/android/support/* .m2/repository/com/android/support/
+    cp -RL local_sdk/extras/google/m2repository/* .m2/repository/
+    gradle ${gradleTask} --offline --no-daemon -g ./tmp -Dmaven.repo.local=`pwd`/.m2/repository
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    mv ${buildDirectory}/build/outputs/apk/*.apk $out
+
+    mkdir -p $out/nix-support
+    echo "file binary-dist \"$(echo $out/*.apk)\"" > $out/nix-support/hydra-build-products
+  '';
+} // builtins.removeAttrs args ["name" "mavenDeps"])
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index 5846e4fb6de0..d6d6b8a0cadc 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -2,6 +2,8 @@
 , includeSources ? true
 }:
 
+# TODO: use callPackage instead of import to avoid so many inherits
+
 rec {
   platformTools = import ./platform-tools.nix {
     inherit buildPackages pkgs;
@@ -46,11 +48,16 @@ rec {
   };
 
   androidsdk = import ./androidsdk.nix {
-    inherit (pkgs) stdenv fetchurl unzip makeWrapper;
-    inherit (pkgs) zlib glxinfo freetype fontconfig glib gtk2 atk libGLU_combined file alsaLib jdk coreutils libpulseaudio dbus;
-    inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst xkeyboardconfig;
+    inherit (pkgs) stdenv fetchurl unzip makeWrapper zlib
+                   glxinfo freetype fontconfig glib gtk2 atk
+                   libGLU_combined file alsaLib jdk coreutils
+                   libpulseaudio dbus fetchzip;
+    inherit (pkgs.xorg) libX11 libXext libXrender
+                        libxcb libXau libXdmcp libXtst xkeyboardconfig;
 
-    inherit platformTools buildTools support supportRepository platforms sysimages addons sources includeSources;
+    inherit platformTools buildTools support
+            supportRepository platforms sysimages
+            addons sources includeSources;
 
     stdenv_32bit = pkgs_i686.stdenv;
   };
@@ -215,6 +222,8 @@ rec {
     useInstantApps = true;
   };
 
+  androidsdk_latest = androidsdk_8_0;
+
   androidndk_10e = import ./androidndk.nix {
     inherit (buildPackages)
       p7zip makeWrapper;
@@ -296,4 +305,10 @@ rec {
     androidndk = androidndk_10e;
     targetAndroidndkPkgs = targetPackages.androidenv.androidndkPkgs_10e;
   };
+
+  buildGradleApp = import ./build-gradle-app.nix {
+    inherit (pkgs) stdenv jdk gnumake gawk file runCommand
+                   which gradle fetchurl buildEnv;
+    inherit androidsdk androidndk;
+  };
 }
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index 07f8e3b60002..8997dbda7284 100644
--- a/pkgs/development/web/nodejs/v10.nix
+++ b/pkgs/development/web/nodejs/v10.nix
@@ -5,7 +5,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.4.1";
-    sha256 = "0i40mn8g71z7wildhnjp64j7fnlld32dibyq677bd4pra95migx5";
+    version = "10.5.0";
+    sha256 = "1g1kdcrhahdsrkazfl9wj25abgjvkncgwwcm2ppgj3avfi1wam3v";
     patches = lib.optionals stdenv.isDarwin [ ./no-xcode-v7.patch ./no-xcodebuild.patch ];
   }
diff --git a/pkgs/os-specific/darwin/xcode/default.nix b/pkgs/os-specific/darwin/xcode/default.nix
index 46f6f03b90a7..d153ef16c14e 100644
--- a/pkgs/os-specific/darwin/xcode/default.nix
+++ b/pkgs/os-specific/darwin/xcode/default.nix
@@ -40,9 +40,11 @@ let requireXcode = version: sha256:
 
   in app.overrideAttrs ( oldAttrs: oldAttrs // { inherit meta; });
 
-in {
+in rec {
   xcode_8_1 = requireXcode "8.1" "18xjvfipwzia66gm3r9p770xdd4r375vak7chw5vgqnv9yyjiq2n";
   xcode_8_2 = requireXcode "8.2" "13nd1zsfqcp9hwp15hndr0rsbb8rgprrz7zr2ablj4697qca06m2";
   xcode_9_1 = requireXcode "9.1" "0ab1403wy84ys3yn26fj78cazhpnslmh3nzzp1wxib3mr1afjvic";
   xcode_9_2 = requireXcode "9.2" "1bgfgdp266cbbqf2axcflz92frzvhi0qw0jdkcw6r85kdpc8dj4c";
+  xcode_9_4 = requireXcode "9.4" "6731381785075602a52489f7ea47ece8f6daf225007ba3ffae1fd59b1c0b5f01";
+  xcode = xcode_9_4;
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index d469867ecb49..4f0308d14922 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.50";
+  version = "4.14.51";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1b529qp5cixvp47h8jhincnc40n7l27qawkgjf6l5p157c0qsfkh";
+    sha256 = "0awpvyigj28j8ibjm5362xnlcaiqcn7lwd9wkf7k8i14m8ml1cns";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.16.nix b/pkgs/os-specific/linux/kernel/linux-4.16.nix
index 120639814da1..61eb394f6ee0 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.16.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.16.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.16.16";
+  version = "4.16.17";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0wcinqf5m1zzj747k86yxvm3acpa50vbzbjhd4hikl1jfidss31h";
+    sha256 = "1302pjxrwpdvmnpisgsgv41brj52y3ppkwi0cyd4c1q8mc5qsgf9";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index b7879cc763aa..031ba423cc40 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "telegraf-${version}";
-  version = "1.6.1";
+  version = "1.7.0";
 
   goPackagePath = "github.com/influxdata/telegraf";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "${version}";
-    sha256 = "0zc3bgs1ad392lqv72rkppxmk33b404b8jfx3wbzll7fklwxa8g2";
+    sha256 = "1jinvncbn1srfmclhys6khvaczawy243vgmj2gsgm9szrnrf7klv";
   };
 
   buildFlagsArray = [ ''-ldflags=
diff --git a/pkgs/servers/monitoring/telegraf/deps-1.6.1.nix b/pkgs/servers/monitoring/telegraf/deps-1.7.0.nix
index fb98b8686cc2..57a5ffd21b00 100644
--- a/pkgs/servers/monitoring/telegraf/deps-1.6.1.nix
+++ b/pkgs/servers/monitoring/telegraf/deps-1.7.0.nix
@@ -1,6 +1,15 @@
 # This file was generated by https://github.com/kamilchm/go2nix v1.2.1
 [
   {
+    goPackagePath = "code.cloudfoundry.org/clock";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cloudfoundry/clock";
+      rev = "e9dc86bbf0e5bbe6bf7ff5a6f71e048959b61f71";
+      sha256 = "1mwckqpg9qi5macfbx7lpc5frbd0dz8bzq78dl570j9j2aqp9hkf";
+    };
+  }
+  {
     goPackagePath = "collectd.org";
     fetch = {
       type = "git";
@@ -10,6 +19,15 @@
     };
   }
   {
+    goPackagePath = "github.com/Microsoft/ApplicationInsights-Go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Microsoft/ApplicationInsights-Go";
+      rev = "3612f58550c1de70f1a110c78c830e55f29aa65d";
+      sha256 = "11znwr0787171yv80r5jmdks6i0i3rwa03ir1kapm0ycwr8h4nvy";
+    };
+  }
+  {
     goPackagePath = "github.com/Shopify/sarama";
     fetch = {
       type = "git";
@@ -55,6 +73,15 @@
     };
   }
   {
+    goPackagePath = "github.com/armon/go-metrics";
+    fetch = {
+      type = "git";
+      url = "https://github.com/armon/go-metrics";
+      rev = "783273d703149aaeb9897cf58613d5af48861c25";
+      sha256 = "1ci4kh35zdh5gyjhci5gi324iqcq04nb3qh89h9w6spwqb91w0ln";
+    };
+  }
+  {
     goPackagePath = "github.com/aws/aws-sdk-go";
     fetch = {
       type = "git";
@@ -136,6 +163,15 @@
     };
   }
   {
+    goPackagePath = "github.com/docker/distribution";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/distribution";
+      rev = "749f6afb4572201e3c37325d0ffedb6f32be8950";
+      sha256 = "05jn2wvikyw0pbmi74w5axr0zgxn5y3ynn9rhsq87rmwqj7raxhd";
+    };
+  }
+  {
     goPackagePath = "github.com/docker/docker";
     fetch = {
       type = "git";
@@ -154,6 +190,15 @@
     };
   }
   {
+    goPackagePath = "github.com/docker/go-units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/go-units";
+      rev = "47565b4f722fb6ceae66b95f853feed578a4a51c";
+      sha256 = "0npxsb3pp89slwf4a73fxm20hykad8xggij6i6hcd5jy19bjrd93";
+    };
+  }
+  {
     goPackagePath = "github.com/eapache/go-resiliency";
     fetch = {
       type = "git";
@@ -190,6 +235,15 @@
     };
   }
   {
+    goPackagePath = "github.com/go-ini/ini";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev = "9144852efba7c4daf409943ee90767da62d55438";
+      sha256 = "08jvki9id1wdca0j6kqb4fmipwvgmakg9yfavnbpyn3vsbx9vpbp";
+    };
+  }
+  {
     goPackagePath = "github.com/go-redis/redis";
     fetch = {
       type = "git";
@@ -239,8 +293,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gorilla/mux";
-      rev = "392c28fe23e1c45ddba891b0320b3b5df220beea";
-      sha256 = "0dmihkq34ls23by08r8p92qpf77imibjd9m9qvw344j4r2z7bd4d";
+      rev = "53c1911da2b537f792e7cafcb446b05ffe33b996";
+      sha256 = "10cvljpjgvkq1zqj82hr46dnddfcpmm18wabbv4pkxjrmvb9xkf7";
     };
   }
   {
@@ -257,8 +311,62 @@
     fetch = {
       type = "git";
       url = "https://github.com/hashicorp/consul";
-      rev = "63d2fc68239b996096a1c55a0d4b400ea4c2583f";
-      sha256 = "0vx7jpi2a9374mlhn37b33780n7g950zh482z2sd4lsf29n4c580";
+      rev = "5174058f0d2bda63fa5198ab96c33d9a909c58ed";
+      sha256 = "0xm3gl8i7pgsbsc2397bwh9hp2dwnk4cmw5y05acqn3zpyp84sbv";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-cleanhttp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-cleanhttp";
+      rev = "d5fe4b57a186c716b0e00b8c301cbd9b4182694d";
+      sha256 = "1m20y90syky4xr81sm3980jpil81nnpzmi6kv0vjr6p584gl1hn8";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-immutable-radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-immutable-radix";
+      rev = "7f3cd4390caab3250a57f30efdb2a65dd7649ecf";
+      sha256 = "13nv1dac6i2mjdy8vsd4vwawwja78vggdjcnj1xfykg2k8jbkphv";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-rootcerts";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-rootcerts";
+      rev = "6bb64b370b90e7ef1fa532be9e591a81c3493e00";
+      sha256 = "1a81fcm1i0ji2iva0dcimiichgwpbcb7lx0vyaks87zj5wf04qy9";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3";
+      sha256 = "0vg4yn3088ym4sj1d34kr13lp4v5gya7r2nxshp2bz70n46fsqn2";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/serf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/serf";
+      rev = "984a73625de3138f44deb38d00878fab39eb6447";
+      sha256 = "1sk9sw7q9knp7yi4r5kcr8cgyi9jzvgb0kzbwa38p8h3w394izkk";
+    };
+  }
+  {
+    goPackagePath = "github.com/influxdata/go-syslog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/go-syslog";
+      rev = "eecd51df3ad85464a2bab9b7d3a45bc1e299059e";
+      sha256 = "0zw8wswr3afb48mi510mql58gz818dp0mzq3vllqqhrz3x8w580r";
     };
   }
   {
@@ -275,8 +383,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/influxdata/toml";
-      rev = "5d1d907f22ead1cd47adde17ceec5bda9cacaf8f";
-      sha256 = "1faf51s89sk1z41qfsazmddgwll7jq9xna67k3h3vry86c4vs2j4";
+      rev = "2a2e3012f7cfbef64091cc79776311e65dfa211b";
+      sha256 = "1dyzsg79rgl5bcvq7i7cnwhxr7racyhfhmqdq2701zgv77v3rab3";
     };
   }
   {
@@ -298,6 +406,15 @@
     };
   }
   {
+    goPackagePath = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev = "bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d";
+      sha256 = "1kgzwiyqn24ba9kgpjxlq1h746gnyby0psbjj9mp2yx0h1i0kc4z";
+    };
+  }
+  {
     goPackagePath = "github.com/kardianos/osext";
     fetch = {
       type = "git";
@@ -388,15 +505,6 @@
     };
   }
   {
-    goPackagePath = "github.com/nats-io/nats";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nats-io/nats";
-      rev = "ea9585611a4ab58a205b9b125ebd74c389a6b898";
-      sha256 = "0i2whh6c8grzi9slrk2clh3dhykxzid4zn395wgysg6gfjrbd5i5";
-    };
-  }
-  {
     goPackagePath = "github.com/nats-io/nuid";
     fetch = {
       type = "git";
@@ -415,6 +523,15 @@
     };
   }
   {
+    goPackagePath = "github.com/opencontainers/go-digest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/opencontainers/go-digest";
+      rev = "c9281466c8b2f606084ac71339773efd177436e7";
+      sha256 = "1djdazssy27xn91pjhx3dgb0f11bnlzzbwkh7f8zwnpz011anasi";
+    };
+  }
+  {
     goPackagePath = "github.com/opencontainers/runc";
     fetch = {
       type = "git";
@@ -460,6 +577,15 @@
     };
   }
   {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
     goPackagePath = "github.com/prometheus/client_golang";
     fetch = {
       type = "git";
@@ -527,8 +653,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/shirou/gopsutil";
-      rev = "a5c2888e464b14fa882c2a059e0f95716bd45cf1";
-      sha256 = "1czzl00lxcyhmf6x7wmw3dxmnyqij8lcahn5mv325csgyym4vm4w";
+      rev = "c95755e4bcd7a62bb8bd33f3a597a7c7f35e2cf3";
+      sha256 = "0rzfwhvwh58w1isr6jxq222xih578dsscdsfbh6bg1bxgbkz0x1m";
     };
   }
   {
@@ -550,6 +676,15 @@
     };
   }
   {
+    goPackagePath = "github.com/stretchr/objx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/objx";
+      rev = "facf9a85c22f48d2f52f2380e4efce1768749a89";
+      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
+    };
+  }
+  {
     goPackagePath = "github.com/stretchr/testify";
     fetch = {
       type = "git";
@@ -635,8 +770,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "f2499483f923065a842d38eb4c7f1927e6fc6e6d";
-      sha256 = "0q1ps8igfczfafk39hkp8gs57s6qxjvf2c48hiq00p873agz0x7s";
+      rev = "a337091b0525af65de94df2eb7e98bd9962dcbe2";
+      sha256 = "11a6a3ah1f3jj6530q4hjqf79bv9fy62s5wgxpp28g8b3vlxxsyp";
     };
   }
   {
@@ -658,6 +793,24 @@
     };
   }
   {
+    goPackagePath = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-genproto";
+      rev = "11c7f9e547da6db876260ce49ea7536985904c9b";
+      sha256 = "1qdda2b31qhli71xc2rscm7hf219gr2mals3n24kgv9svmw1cxkq";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev = "de2209a968d48e8970546c8a710189f7461370f7";
+      sha256 = "0jby05p1qhm4gik0ya9n14vhf9x83mxysd917k53x59jrwrkh9gr";
+    };
+  }
+  {
     goPackagePath = "gopkg.in/asn1-ber.v1";
     fetch = {
       type = "git";
@@ -676,6 +829,15 @@
     };
   }
   {
+    goPackagePath = "gopkg.in/fsnotify.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/fsnotify.v1";
+      rev = "a8a77c9133d2d6fd8334f3260d06f60e8d80a5fb";
+      sha256 = "0912q06l6mrrrc7jj7hlrsbglklxyp67z1vnmvmcm04ck6hx8dlm";
+    };
+  }
+  {
     goPackagePath = "gopkg.in/gorethink/gorethink.v3";
     fetch = {
       type = "git";
@@ -712,6 +874,15 @@
     };
   }
   {
+    goPackagePath = "gopkg.in/tomb.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/tomb.v1";
+      rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8";
+      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+    };
+  }
+  {
     goPackagePath = "gopkg.in/yaml.v2";
     fetch = {
       type = "git";
diff --git a/pkgs/tools/misc/fwup/default.nix b/pkgs/tools/misc/fwup/default.nix
index 3903fde3302e..77ec5bcb86bb 100644
--- a/pkgs/tools/misc/fwup/default.nix
+++ b/pkgs/tools/misc/fwup/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "fwup-${version}";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "fhunleth";
     repo = "fwup";
     rev = "v${version}";
-    sha256 = "1jhl50yj5h6wl3fx1hcqi4vb7633srmbbcpsgajprc5fxscjgapm";
+    sha256 = "14a3bd84bnnxdrf1x80w860mhm3x4cy9jp9sf9643svq4bky4i41";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 4410d1e3cd4e..acd58c9bcbd5 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "jdupes-${version}";
-  version = "1.9";
+  version = "1.10.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "0z6hb4jva0pnk5fb1p59qwyglgrpxgpnz4djq3g00y5yxv3sj9z9";
+    sha256 = "0msp68h1gaipwpvdylpwd6w9al5gcmawj9cmvi7nw8ihh184g3m7";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
@@ -17,6 +17,13 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "PREFIX=$(out)" ] ++ stdenv.lib.optional stdenv.isLinux "ENABLE_BTRFS=1";
 
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    install -Dm644 -t $out/share/doc/jdupes CHANGES LICENSE README
+
+  '';
+
   meta = with stdenv.lib; {
     description = "A powerful duplicate file finder and an enhanced fork of 'fdupes'";
     longDescription = ''
@@ -26,7 +33,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = https://github.com/jbruchon/jdupes;
     license = licenses.mit;
+    maintainers = with maintainers; [ romildo ];
     platforms = platforms.all;
-    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 75be4efe7d1b..b884a23ca7bc 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20180522";
+  name = "parallel-20180622";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "1khcz9pm7rjnq4gw8pn30k1d40x337a204dxj4y4qijpx8m7w0gb";
+    sha256 = "1n91dnnl8d8pman20hr03l9qrpc9wm5hw32ph45xjs0bgp1nmk7j";
   };
 
   nativeBuildInputs = [ makeWrapper perl ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c1c73cd8d999..5d63580c89c1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3030,6 +3030,8 @@ with pkgs;
 
   http-prompt = callPackage ../tools/networking/http-prompt { };
 
+  http-getter = callPackage ../applications/networking/flent/http-getter.nix { };
+
   httpie = callPackage ../tools/networking/httpie { };
 
   httping = callPackage ../tools/networking/httping {};
@@ -7175,7 +7177,7 @@ with pkgs;
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlangR18 erlangR19 erlangR20
+    erlang erlangR18 erlangR19 erlangR20 erlangR21
     erlang_odbc erlang_javac erlang_odbc_javac erlang_nox erlang_basho_R16B02
     elixir elixir_1_6 elixir_1_5 elixir_1_4 elixir_1_3
     lfe lfe_1_2;
@@ -17786,10 +17788,6 @@ with pkgs;
     fltk = fltk13;
   };
 
-  inherit (callPackage ../applications/virtualization/rancher-compose {})
-    rancher-compose
-    rancher-compose_0_10;
-
   renoise = callPackage ../applications/audio/renoise {};
 
   radiotray-ng = callPackage ../applications/audio/radiotray-ng {
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index 765f69c1b14a..8f8caf755edf 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -41,6 +41,15 @@ rec {
       javacSupport = true; odbcSupport = true;
     };
     erlangR20_nox = erlangR20.override { wxSupport = false; };
+    erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
+      wxGTK = wxGTK30;
+    };
+    erlangR21_odbc = erlangR21.override { odbcSupport = true; };
+    erlangR21_javac = erlangR21.override { javacSupport = true; };
+    erlangR21_odbc_javac = erlangR21.override {
+      javacSupport = true; odbcSupport = true;
+    };
+    erlangR21_nox = erlangR21.override { wxSupport = false; };
 
     # Basho fork, using custom builder.
     erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
@@ -69,6 +78,7 @@ rec {
     erlangR18 = packagesWith interpreters.erlangR18;
     erlangR19 = packagesWith interpreters.erlangR19;
     erlangR20 = packagesWith interpreters.erlangR20;
+    erlangR21 = packagesWith interpreters.erlangR21;
 
   };
 }
diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix
index c6be00b0288f..a1d5772fe6da 100644
--- a/pkgs/top-level/darwin-packages.nix
+++ b/pkgs/top-level/darwin-packages.nix
@@ -71,7 +71,8 @@ in
 
   usr-include = callPackage ../os-specific/darwin/usr-include { };
 
-  inherit (callPackages ../os-specific/darwin/xcode { } ) xcode_8_1 xcode_8_2 xcode_9_1 xcode_9_2;
+  inherit (callPackages ../os-specific/darwin/xcode { } )
+          xcode_8_1 xcode_8_2 xcode_9_1 xcode_9_2 xcode_9_4 xcode;
 
   CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };