about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-07-17 10:04:59 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2018-07-17 10:04:59 +0200
commit1ae2f10642ea00a423354dd3176c55e47dbf3f6e (patch)
tree7f94ddd06e808ad8fafd657badc27ec1d82d354b
parentbac995cd9f07f526d66b571331cd17b8eb7c0f62 (diff)
parent9d0336a2bbe933c1a8e6ea7c7b39eb7ff071ef66 (diff)
downloadnixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar.gz
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar.bz2
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar.lz
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar.xz
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.tar.zst
nixlib-1ae2f10642ea00a423354dd3176c55e47dbf3f6e.zip
Merge staging-next into master
-rw-r--r--nixos/modules/services/hardware/pcscd.nix4
-rw-r--r--pkgs/applications/audio/gpodder/default.nix1
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix2
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix2
-rw-r--r--pkgs/applications/office/moneyplex/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix16
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch13
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git2
-rw-r--r--pkgs/desktops/gnome-3/misc/california/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/orage.nix13
-rw-r--r--pkgs/desktops/xfce4-13/orage/default.nix11
-rw-r--r--pkgs/development/compilers/ispc/default.nix9
-rw-r--r--pkgs/development/compilers/lessc/default.nix29
-rw-r--r--pkgs/development/compilers/llvm/5/llvm.nix9
-rw-r--r--pkgs/development/compilers/llvm/6/clang/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/compiler-rt.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/6/libc++/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/libc++abi.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/lld.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/lldb.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/llvm.nix14
-rw-r--r--pkgs/development/compilers/llvm/6/openmp.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/sanitizers-nongnu.patch120
-rw-r--r--pkgs/development/interpreters/perl/default.nix12
-rw-r--r--pkgs/development/interpreters/python/cpython/3.6/default.nix9
-rw-r--r--pkgs/development/interpreters/python/cpython/3.7/default.nix14
-rw-r--r--pkgs/development/libraries/gdbm/default.nix4
-rw-r--r--pkgs/development/libraries/libical/default.nix36
-rw-r--r--pkgs/development/libraries/libical/respect-env-tzdir.patch10
-rw-r--r--pkgs/development/libraries/libiconv/default.nix7
-rw-r--r--pkgs/development/libraries/libuv/default.nix38
-rw-r--r--pkgs/development/libraries/mesa/default.nix11
-rw-r--r--pkgs/development/libraries/pcre2/default.nix30
-rw-r--r--pkgs/development/libraries/volume-key/default.nix7
-rw-r--r--pkgs/development/python-modules/aiodns/default.nix8
-rw-r--r--pkgs/development/python-modules/future/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix6
-rw-r--r--pkgs/development/python-modules/pelican/default.nix3
-rw-r--r--pkgs/development/python-modules/pyscard/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest/default.nix5
-rw-r--r--pkgs/development/python-modules/trollius/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix7
-rw-r--r--pkgs/development/tools/hexio/default.nix2
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix2
-rw-r--r--pkgs/development/tools/misc/automake/fix-perl-5.26.patch10
-rw-r--r--pkgs/development/tools/parsing/bison/2.x.nix8
-rw-r--r--pkgs/development/tools/parsing/bison/darwin-vasnprintf.patch12
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/frameworks.nix1
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libsecurity_generic/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libsecurityd/default.nix6
-rw-r--r--pkgs/os-specific/darwin/security-tool/default.nix5
-rw-r--r--pkgs/os-specific/linux/audit/default.nix4
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/os-specific/linux/checkpolicy/default.nix8
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix28
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix18
-rw-r--r--pkgs/os-specific/linux/selinux-python/default.nix2
-rw-r--r--pkgs/os-specific/linux/setools/default.nix2
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix4
-rw-r--r--pkgs/tools/compression/brotli/default.nix4
-rw-r--r--pkgs/tools/graphics/luxcorerender/default.nix1
-rw-r--r--pkgs/tools/misc/parted/default.nix5
-rw-r--r--pkgs/tools/misc/xxd/default.nix16
-rw-r--r--pkgs/tools/networking/curl/default.nix4
-rw-r--r--pkgs/tools/security/gnupg/20.nix2
-rw-r--r--pkgs/tools/security/gnupg/22.nix2
-rw-r--r--pkgs/tools/security/open-ecard/default.nix2
-rw-r--r--pkgs/tools/security/opensc/default.nix2
-rw-r--r--pkgs/tools/security/pcsclite/default.nix7
-rw-r--r--pkgs/top-level/all-packages.nix14
-rw-r--r--pkgs/top-level/perl-packages.nix189
-rw-r--r--pkgs/top-level/python-packages.nix62
-rw-r--r--pkgs/top-level/unix-tools.nix9
77 files changed, 497 insertions, 454 deletions
diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix
index fa97e8bf746b..f3fc4c3cc79e 100644
--- a/nixos/modules/services/hardware/pcscd.nix
+++ b/nixos/modules/services/hardware/pcscd.nix
@@ -61,8 +61,8 @@ in {
       description = "PCSC-Lite daemon";
       environment.PCSCLITE_HP_DROPDIR = pluginEnv;
       serviceConfig = {
-        ExecStart = "${pkgs.pcsclite}/sbin/pcscd -f -x -c ${cfgFile}";
-        ExecReload = "${pkgs.pcsclite}/sbin/pcscd -H";
+        ExecStart = "${getBin pkgs.pcsclite}/sbin/pcscd -f -x -c ${cfgFile}";
+        ExecReload = "${getBin pkgs.pcsclite}/sbin/pcscd -H";
       };
     };
   };
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 571f0a925adb..1ada45e62925 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -6,7 +6,6 @@
 python3Packages.buildPythonApplication rec {
   pname = "gpodder";
   version = "3.10.3";
-
   format = "other";
 
   src = fetchFromGitHub {
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index 300281761a4d..06fa8d2bd0dd 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -18,7 +18,7 @@ python27Packages.buildPythonApplication rec {
 
     # Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
     # support that the yubicommon library uses to load libykpers
-    makeWrapperArgs = ''--prefix LD_LIBRARY_PATH : "${pcsclite}/lib:${yubikey-personalization}/lib" --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so"'';
+    makeWrapperArgs = ''--prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so"'';
 
     postInstall = ''
       mkdir -p $out/share/applications
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 872d9b018ff7..ad4a8849fac3 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
       --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
   '' + lib.optionalString (pcsclite != null) ''
     substituteInPlace "winpr/libwinpr/smartcard/smartcard_pcsc.c" \
-      --replace "libpcsclite.so" "${pcsclite}/lib/libpcsclite.so"
+      --replace "libpcsclite.so" "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so"
   '';
 
   buildInputs = with lib; [
diff --git a/pkgs/applications/office/moneyplex/default.nix b/pkgs/applications/office/moneyplex/default.nix
index 4530305ee12e..31de4db76f1a 100644
--- a/pkgs/applications/office/moneyplex/default.nix
+++ b/pkgs/applications/office/moneyplex/default.nix
@@ -62,14 +62,14 @@ stdenv.mkDerivation rec {
     if [ ! -d "\$MDIR/pcsc" ]; then
         ${coreutils}/bin/mkdir -p \$MDIR/pcsc
     fi
-    if [ ! -e "\$MDIR/pcsc/libpcsclite.so.1" ] || [ ! \`${coreutils}/bin/readlink -f "\$MDIR/pcsc/libpcsclite.so.1"\` -ef "${pcsclite}/lib/libpcsclite.so.1" ]; then
-        ${coreutils}/bin/ln -sf "${pcsclite}/lib/libpcsclite.so.1" "\$MDIR/pcsc/libpcsclite.so.1"
+    if [ ! -e "\$MDIR/pcsc/libpcsclite.so.1" ] || [ ! \`${coreutils}/bin/readlink -f "\$MDIR/pcsc/libpcsclite.so.1"\` -ef "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1" ]; then
+        ${coreutils}/bin/ln -sf "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1" "\$MDIR/pcsc/libpcsclite.so.1"
     fi
 
 
     if [ -e "\$MDIR/rup/rupremote.lst" ]; then
       for i in \`${coreutils}/bin/cat "\$MDIR/rup/rupremote.lst"\`; do
-        ${coreutils}/bin/mv "\$MDIR/rup/"\`${coreutils}/bin/basename \$i\` "\$MDIR/\$i" 
+        ${coreutils}/bin/mv "\$MDIR/rup/"\`${coreutils}/bin/basename \$i\` "\$MDIR/\$i"
       done
       rm -r "\$MDIR/rup/rupremote.lst"
     fi
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 4e9b7d2428de..522a6fcd6a12 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -18,7 +18,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.17.1";
+  version = "2.18.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 in
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "0pm6bdnrrm165k3krnazxcxadifk2gqi30awlbcf9fism1x6w4vr";
+    sha256 = "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b";
   };
 
   outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
@@ -40,7 +40,6 @@ stdenv.mkDerivation {
 
   patches = [
     ./docbook2texi.patch
-    ./symlinks-in-bin.patch
     ./git-sh-i18n.patch
     ./ssh-path.patch
     ./git-send-email-honor-PATH.patch
@@ -277,10 +276,21 @@ EOF
 
     # XXX: I failed to understand why this one fails.
     # Could someone try to re-enable it on the next release ?
+    # Tested to fail: 2.18.0
     disable_test t1700-split-index "null sha1"
+
+    # Tested to fail: 2.18.0
+    disable_test t7005-editor "editor with a space"
+    disable_test t7005-editor "core.editor with a space"
+
+    # Tested to fail: 2.18.0
+    disable_test t9902-completion "sourcing the completion script clears cached --options"
   '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
     # Test fails (as of 2.17.0, musl 1.1.19)
     disable_test t3900-i18n-commit
+    # Fails largely due to assumptions about BOM
+    # Tested to fail: 2.18.0
+    disable_test t0028-working-tree-encoding
   '';
 
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch b/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch
deleted file mode 100644
index 0a581a61d46d..000000000000
--- a/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile b/Makefile
---- a/Makefile
-+++ b/Makefile
-@@ -2609,8 +2609,7 @@
- 	{ test "$$bindir/" = "$$execdir/" || \
- 	  for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
- 		$(RM) "$$execdir/$$p" && \
--		test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
--		ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
-+		ln -s "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
- 		cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
- 	  done; \
- 	} && \
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 3cf4ecc280fe..34dfe67df4bd 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -185,7 +185,7 @@ init_submodules(){
 
         # checkout each submodule
         hash=$(echo "$l" | awk '{print $1}' | tr -d '-')
-        dir=$(echo "$l" | sed -n 's/^ \{0,1\}[^ ]* \(.*\) ([^ ]*)$/\1/p')
+        dir=$(echo "$l" | sed -n 's/^.[0-9a-f]\+ \(.*[^)]*\)\( (.*)\)\?$/\1/p')
         name=$(
             git config -f .gitmodules --get-regexp submodule\..*\.path |
             sed -n "s,^\(.*\)\.path $dir\$,\\1,p")
diff --git a/pkgs/desktops/gnome-3/misc/california/default.nix b/pkgs/desktops/gnome-3/misc/california/default.nix
index c81238d24986..91aeb7ca00a8 100644
--- a/pkgs/desktops/gnome-3/misc/california/default.nix
+++ b/pkgs/desktops/gnome-3/misc/california/default.nix
@@ -23,6 +23,11 @@ in stdenv.mkDerivation rec {
       url = https://src.fedoraproject.org/rpms/california/raw/c00bf9924d8fa8cb0a9ec06564d1a1b00c9055af/f/0002-Build-with-evolution-data-server-3.13.90.patch;
       sha256 = "0g9923n329p32gzr1q52ad30f8vyz8vrri4rih0w8klmf02ga4pm";
     })
+    # Apply Fedora patch to build with libical > 3.0
+    (fetchurl {
+      url = https://src.fedoraproject.org/rpms/california/raw/2af9a6a1b67b53f3fca1472c5350dc11a1acf28f/f/california-0.4.0-libical-3.0.patch;
+      sha256 = "0cxycfaql0bsiz9hzanns33pwdqpb5n44znfcfa66i1bin34r4n6";
+    })
   ];
 
   passthru = {
diff --git a/pkgs/desktops/xfce/applications/orage.nix b/pkgs/desktops/xfce/applications/orage.nix
index 812630e17d06..9b347715c45e 100644
--- a/pkgs/desktops/xfce/applications/orage.nix
+++ b/pkgs/desktops/xfce/applications/orage.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, bison, flex, intltool, gtk, libical, dbus-glib
+{ stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, intltool, gtk, libical, dbus-glib
 , libnotify, popt, xfce
 }:
 
@@ -13,8 +13,17 @@ stdenv.mkDerivation rec {
     sha256 = "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w";
   };
 
+  patches = [
+    # Fix build with libical 3.0
+    (fetchpatch {
+      name = "fix-libical3.patch";
+      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f;
+      sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig intltool bison flex ];
-  
+
   buildInputs = [ gtk libical dbus-glib libnotify popt xfce.libxfce4util
     xfce.xfce4-panel ];
 
diff --git a/pkgs/desktops/xfce4-13/orage/default.nix b/pkgs/desktops/xfce4-13/orage/default.nix
index 6a2f37cbef67..3857846ea82d 100644
--- a/pkgs/desktops/xfce4-13/orage/default.nix
+++ b/pkgs/desktops/xfce4-13/orage/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkXfceDerivation, dbus_glib ? null, gtk2, libical, libnotify ? null
+{ lib, fetchpatch, mkXfceDerivation, dbus_glib ? null, gtk2, libical, libnotify ? null
 , popt ? null, libxfce4ui ? null, xfce4-panel ? null, withPanelPlugin ? true }:
 
 assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null;
@@ -15,4 +15,13 @@ mkXfceDerivation rec {
   sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m";
   buildInputs = [ dbus_glib gtk2 libical libnotify popt ]
     ++ optionals withPanelPlugin [ libxfce4ui xfce4-panel ];
+
+  patches = [
+    # Fix build with libical 3.0
+    (fetchpatch {
+      name = "fix-libical3.patch";
+      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f;
+      sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf";
+    })
+  ];
 }
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index 0fe9c8d3765f..7aedf191abee 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages,
+{stdenv, fetchFromGitHub, fetchpatch, bash, which, m4, python, bison, flex, llvmPackages,
 testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
 }:
 
@@ -32,6 +32,13 @@ stdenv.mkDerivation rec {
     llvmPackages.clang-unwrapped # we need to link against libclang, so we need the unwrapped
   ];
 
+  patches = [
+    (fetchpatch {
+      url = https://github.com/ispc/ispc/commit/d504641f5af9d5992e7c8f0ed42c1063a39ede5b.patch;
+      sha256 = "192q3gyvam79469bmlwf0jpfi2y4f8hl2vgcvjngsqhvscwira0s";
+    })
+  ];
+
   postPatch = "sed -i -e 's/\\/bin\\///g' -e 's/-lcurses/-lncurses/g' Makefile";
 
   # TODO: this correctly catches errors early, but also some things that are just weird and don't seem to be real
diff --git a/pkgs/development/compilers/lessc/default.nix b/pkgs/development/compilers/lessc/default.nix
deleted file mode 100644
index 5caef5b3b66f..000000000000
--- a/pkgs/development/compilers/lessc/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchgit, nodejs }:
-
-stdenv.mkDerivation rec {
-  name = "lessc-${version}";
-  version = "1.7.5"; # Upgrade to > 2.x breaks twitter-bootstrap
-
-  src = fetchgit {
-    url = https://github.com/less/less.js.git;
-    rev = "refs/tags/v${version}";
-    sha256 = "1af1xbh1pjpfsx0jp69syji6w9750nigk652yk46jrja3z1scb4s";
-  };
-
-  phases = [ "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/lib
-    cp -r $src/bin/* $out/bin/
-    cp -r $src/lib/* $out/lib/
-    substituteInPlace $out/bin/lessc --replace "/usr/bin/env node" ${nodejs}/bin/node
-  '';
-
-  meta = with stdenv.lib; {
-    description = "LESS to CSS compiler";
-    homepage = http://lesscss.org/;
-    license = licenses.asl20;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ pSub ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix
index 8809859b5905..31750e2d0da8 100644
--- a/pkgs/development/compilers/llvm/5/llvm.nix
+++ b/pkgs/development/compilers/llvm/5/llvm.nix
@@ -80,6 +80,10 @@ in stdenv.mkDerivation (rec {
     "-DLLVM_BUILD_TESTS=ON"
     "-DLLVM_ENABLE_FFI=ON"
     "-DLLVM_ENABLE_RTTI=ON"
+
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
+    "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
   ]
   ++ stdenv.lib.optional enableSharedLibraries
     "-DLLVM_LINK_LLVM_DYLIB=ON"
@@ -95,11 +99,6 @@ in stdenv.mkDerivation (rec {
   ++ stdenv.lib.optionals (isDarwin) [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ]
-  ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [
-    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
-    "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
   ];
 
   postBuild = ''
diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix
index d7842bdea992..882144184064 100644
--- a/pkgs/development/compilers/llvm/6/clang/default.nix
+++ b/pkgs/development/compilers/llvm/6/clang/default.nix
@@ -9,7 +9,7 @@ let
     name = "clang-${version}";
 
     unpackPhase = ''
-      unpackFile ${fetch "cfe" "0cnznvfyl3hgbg8gj58pmwf0pvd2sv5k3ccbivy6q6ggv7c6szg0"}
+      unpackFile ${fetch "cfe" "0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w"}
       mv cfe-${version}* clang
       sourceRoot=$PWD/clang
       unpackFile ${clang-tools-extra_src}
diff --git a/pkgs/development/compilers/llvm/6/compiler-rt.nix b/pkgs/development/compilers/llvm/6/compiler-rt.nix
index 88bccca36476..be18a315f12a 100644
--- a/pkgs/development/compilers/llvm/6/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/6/compiler-rt.nix
@@ -3,7 +3,7 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "compiler-rt-${version}";
   inherit version;
-  src = fetch "compiler-rt" "16m7rvh3w6vq10iwkjrr1nn293djld3xm62l5zasisaprx117k6h";
+  src = fetch "compiler-rt" "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl";
 
   nativeBuildInputs = [ cmake python llvm ];
   buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
index 40d602e222ed..66f0facc952c 100644
--- a/pkgs/development/compilers/llvm/6/default.nix
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  release_version = "6.0.0";
+  release_version = "6.0.1";
   version = release_version; # differentiating these is important for rc's
 
   fetch = name: sha256: fetchurl {
@@ -14,7 +14,7 @@ let
     inherit sha256;
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "1ll9v6r29xfdiywbn9iss49ad39ah3fk91wiv0sr6k6k9i544fq5";
+  clang-tools-extra_src = fetch "clang-tools-extra" "1w8ml7fyn4vyxmy59n2qm4r1k1kgwgwkaldp6m45fdv4g0kkfbhd";
 
   # Add man output without introducing extra dependencies.
   overrideManOutput = drv:
diff --git a/pkgs/development/compilers/llvm/6/libc++/default.nix b/pkgs/development/compilers/llvm/6/libc++/default.nix
index 27d8cd18b666..c1f0b9f61294 100644
--- a/pkgs/development/compilers/llvm/6/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/6/libc++/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libc++-${version}";
 
-  src = fetch "libcxx" "1n8d0iadkk9fdpplvxkdgrgh2szc6msrx1mpdjpmilz9pn3im4vh";
+  src = fetch "libcxx" "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
diff --git a/pkgs/development/compilers/llvm/6/libc++abi.nix b/pkgs/development/compilers/llvm/6/libc++abi.nix
index 05fab16c25cd..425b00c689ef 100644
--- a/pkgs/development/compilers/llvm/6/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/6/libc++abi.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "libc++abi-${version}";
 
-  src = fetch "libcxxabi" "06v4dnqh6q0r3p5h2jznlgb69lg79126lzb2s0lcw1k38b2xkili";
+  src = fetch "libcxxabi" "0prqvdj317qrc8nddaq1hh2ag9algkd9wbkj3y4mr5588k12x7r0";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
diff --git a/pkgs/development/compilers/llvm/6/lld.nix b/pkgs/development/compilers/llvm/6/lld.nix
index 4997f0a7c94e..818ad47a335a 100644
--- a/pkgs/development/compilers/llvm/6/lld.nix
+++ b/pkgs/development/compilers/llvm/6/lld.nix
@@ -10,7 +10,7 @@
 stdenv.mkDerivation {
   name = "lld-${version}";
 
-  src = fetch "lld" "02qfkjkjq0snmf8dw9c255xkh8dg06ndny1x470300pk7j1lm33b";
+  src = fetch "lld" "04afcfq2h7ysyqxxhyhb7ig4p0vdw7mi63kh8mffl74j0rc781p7";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ llvm libxml2 ];
diff --git a/pkgs/development/compilers/llvm/6/lldb.nix b/pkgs/development/compilers/llvm/6/lldb.nix
index eb565a93ef60..9571e7ab5a63 100644
--- a/pkgs/development/compilers/llvm/6/lldb.nix
+++ b/pkgs/development/compilers/llvm/6/lldb.nix
@@ -17,7 +17,7 @@
 stdenv.mkDerivation {
   name = "lldb-${version}";
 
-  src = fetch "lldb" "0m6l2ks4banfmdh7xy7l77ri85kmzavgfy81gkc4gl6wg8flrxa6";
+  src = fetch "lldb" "05178zkyh84x32n91md6wm22lkzzrrfwa5cpmgzn0yrg3y2771bb";
 
   postPatch = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix
index 9cae65ef1030..6fc448574f43 100644
--- a/pkgs/development/compilers/llvm/6/llvm.nix
+++ b/pkgs/development/compilers/llvm/6/llvm.nix
@@ -19,7 +19,7 @@
 }:
 
 let
-  src = fetch "llvm" "0224xvfg6h40y5lrbnb9qaq3grmdc5rg00xq03s1wxjfbf8krx8z";
+  src = fetch "llvm" "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn";
 
   # Used when creating a version-suffixed symlink of libLLVM.dylib
   shortVersion = with stdenv.lib;
@@ -76,6 +76,12 @@ in stdenv.mkDerivation (rec {
     "-DLLVM_BUILD_TESTS=ON"
     "-DLLVM_ENABLE_FFI=ON"
     "-DLLVM_ENABLE_RTTI=ON"
+
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
+    "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
+
+    "-DLLVM_ENABLE_DUMP=ON"
   ]
   ++ stdenv.lib.optional enableSharedLibraries
     "-DLLVM_LINK_LLVM_DYLIB=ON"
@@ -92,11 +98,7 @@ in stdenv.mkDerivation (rec {
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
   ]
-  ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [
-    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
-    "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
-  ] ++ stdenv.lib.optional enableWasm
+  ++ stdenv.lib.optional enableWasm
    "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
   ;
 
diff --git a/pkgs/development/compilers/llvm/6/openmp.nix b/pkgs/development/compilers/llvm/6/openmp.nix
index 091e378af2a1..16093758e826 100644
--- a/pkgs/development/compilers/llvm/6/openmp.nix
+++ b/pkgs/development/compilers/llvm/6/openmp.nix
@@ -10,7 +10,7 @@
 stdenv.mkDerivation {
   name = "openmp-${version}";
 
-  src = fetch "openmp" "1z1qghx6drdvnlp406q1cp3mgikxxmwymcwzaxbv18vxbw6ha3kw";
+  src = fetch "openmp" "0nhwfba9c351r16zgyjyfwdayr98nairky3c2f0b2lc360mwmbv6";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ llvm ];
diff --git a/pkgs/development/compilers/llvm/6/sanitizers-nongnu.patch b/pkgs/development/compilers/llvm/6/sanitizers-nongnu.patch
index 39a9bbbd207a..6266eb1958d1 100644
--- a/pkgs/development/compilers/llvm/6/sanitizers-nongnu.patch
+++ b/pkgs/development/compilers/llvm/6/sanitizers-nongnu.patch
@@ -1,6 +1,6 @@
-From 8c74f8274369f527f2ada3772f4a0b406cb481ec Mon Sep 17 00:00:00 2001
-From: "Jory A. Pratt" <anarchy@gentoo.org>
-Date: Sat, 9 Sep 2017 08:31:15 -0500
+From 7b4b3333a2718628b1d510ec1d8438ad67308299 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Fri, 29 Jun 2018 09:48:59 -0500
 Subject: [PATCH] Ported to 6.0, taken from gentoo-musl project.
 
 ------
@@ -11,18 +11,20 @@ Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>
 
 Taken from gentoo-musl project, with a few additional minor fixes.
 ---
- lib/asan/asan_linux.cc                             |  4 +--
- lib/interception/interception_linux.cc             |  2 +-
- lib/interception/interception_linux.h              |  3 +-
- lib/msan/msan_linux.cc                             |  2 +-
- .../sanitizer_common_interceptors_ioctl.inc        |  4 +--
- lib/sanitizer_common/sanitizer_common_syscalls.inc |  2 +-
- lib/sanitizer_common/sanitizer_linux_libcdep.cc    | 10 +++---
- lib/sanitizer_common/sanitizer_platform.h          |  6 ++++
- .../sanitizer_platform_interceptors.h              |  4 +--
- .../sanitizer_platform_limits_posix.cc             | 40 +++++++++++++---------
- lib/tsan/rtl/tsan_platform_linux.cc                |  2 +-
- 11 files changed, 46 insertions(+), 33 deletions(-)
+ lib/asan/asan_linux.cc                        |  4 +-
+ lib/interception/interception_linux.cc        |  2 +-
+ lib/interception/interception_linux.h         |  3 +-
+ lib/msan/msan_linux.cc                        |  2 +-
+ lib/sanitizer_common/sanitizer_allocator.cc   |  2 +-
+ .../sanitizer_common_interceptors_ioctl.inc   |  4 +-
+ .../sanitizer_common_syscalls.inc             |  2 +-
+ lib/sanitizer_common/sanitizer_linux.cc       |  8 +++-
+ .../sanitizer_linux_libcdep.cc                | 10 ++---
+ lib/sanitizer_common/sanitizer_platform.h     |  6 +++
+ .../sanitizer_platform_interceptors.h         |  4 +-
+ .../sanitizer_platform_limits_posix.cc        | 37 +++++++++++--------
+ lib/tsan/rtl/tsan_platform_linux.cc           |  2 +-
+ 13 files changed, 51 insertions(+), 35 deletions(-)
 
 diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc
 index 625f32d40..73cf77aca 100644
@@ -86,6 +88,19 @@ index 4e6321fcb..4d50feb82 100644
  
  #include "msan.h"
  #include "msan_thread.h"
+diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
+index fc4f7a75a..76cf4f769 100644
+--- a/lib/sanitizer_common/sanitizer_allocator.cc
++++ b/lib/sanitizer_common/sanitizer_allocator.cc
+@@ -23,7 +23,7 @@ namespace __sanitizer {
+ 
+ // ThreadSanitizer for Go uses libc malloc/free.
+ #if SANITIZER_GO || defined(SANITIZER_USE_MALLOC)
+-# if SANITIZER_LINUX && !SANITIZER_ANDROID
++# if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ extern "C" void *__libc_malloc(uptr size);
+ #  if !SANITIZER_GO
+ extern "C" void *__libc_memalign(uptr alignment, uptr size);
 diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
 index 24e7548a5..20259b1d6 100644
 --- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
@@ -121,6 +136,37 @@ index 469c8eb7e..24f87867d 100644
  PRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
                         void *old_rlim) {
    if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
+diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
+index 6c83e8db4..542c4fe64 100644
+--- a/lib/sanitizer_common/sanitizer_linux.cc
++++ b/lib/sanitizer_common/sanitizer_linux.cc
+@@ -522,13 +522,13 @@ const char *GetEnv(const char *name) {
+ #endif
+ }
+ 
+-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_NONGNU
+ extern "C" {
+   SANITIZER_WEAK_ATTRIBUTE extern void *__libc_stack_end;
+ }
+ #endif
+ 
+-#if !SANITIZER_GO && !SANITIZER_FREEBSD && !SANITIZER_NETBSD
++#if (!SANITIZER_GO || SANITIZER_NONGNU) && !SANITIZER_FREEBSD && !SANITIZER_NETBSD
+ static void ReadNullSepFileToArray(const char *path, char ***arr,
+                                    int arr_size) {
+   char *buff;
+@@ -569,6 +569,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) {
+ #elif SANITIZER_NETBSD
+   *argv = __ps_strings->ps_argvstr;
+   *argv = __ps_strings->ps_envstr;
++#elif SANITIZER_NONGNU
++    static const int kMaxArgv = 2000, kMaxEnvp = 2000;
++    ReadNullSepFileToArray("/proc/self/cmdline", argv, kMaxArgv);
++    ReadNullSepFileToArray("/proc/self/environ", envp, kMaxEnvp);
+ #else
+ #if !SANITIZER_GO
+   if (&__libc_stack_end) {
 diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
 index 56fdfc870..a932d5db1 100644
 --- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc
@@ -210,7 +256,7 @@ index b99ac4480..628d226a1 100644
  #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
  #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_POSIX
 diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
-index f12e8206a..8880197b0 100644
+index feb7bad6f..4e89ab2a6 100644
 --- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
 +++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
 @@ -14,6 +14,9 @@
@@ -243,26 +289,16 @@ index f12e8206a..8880197b0 100644
  #if HAVE_RPC_XDR_H
  # include <rpc/xdr.h>
  #elif HAVE_TIRPC_RPC_XDR_H
-@@ -159,7 +164,8 @@ typedef struct user_fpregs elf_fpregset_t;
- # include <sys/procfs.h>
- #endif
- #include <sys/user.h>
--#include <sys/ustat.h>
-+// #include <sys/ustat.h>
-+#include <sys/statfs.h>
- #include <linux/cyclades.h>
- #include <linux/if_eql.h>
- #include <linux/if_plip.h>
-@@ -252,7 +258,7 @@ namespace __sanitizer {
+@@ -251,7 +256,7 @@ namespace __sanitizer {
    unsigned struct_itimerspec_sz = sizeof(struct itimerspec);
  #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
  
 -#if SANITIZER_LINUX && !SANITIZER_ANDROID
 +#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
-   unsigned struct_ustat_sz = sizeof(struct ustat);
-   unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
-   unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
-@@ -311,7 +317,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(ElfW(Phdr));
+   // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
+   // has been removed from glibc 2.28.
+ #if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
+@@ -322,7 +327,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(ElfW(Phdr));
  unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
  #endif
  
@@ -271,7 +307,7 @@ index f12e8206a..8880197b0 100644
    int glob_nomatch = GLOB_NOMATCH;
    int glob_altdirfunc = GLOB_ALTDIRFUNC;
  #endif
-@@ -405,7 +411,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+@@ -416,7 +421,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
    unsigned struct_termios_sz = sizeof(struct termios);
    unsigned struct_winsize_sz = sizeof(struct winsize);
  
@@ -280,7 +316,7 @@ index f12e8206a..8880197b0 100644
    unsigned struct_arpreq_sz = sizeof(struct arpreq);
    unsigned struct_cdrom_msf_sz = sizeof(struct cdrom_msf);
    unsigned struct_cdrom_multisession_sz = sizeof(struct cdrom_multisession);
-@@ -455,7 +461,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+@@ -466,7 +471,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
    unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
  #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
  
@@ -289,7 +325,7 @@ index f12e8206a..8880197b0 100644
    unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
    unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
  #if EV_VERSION > (0x010000)
-@@ -823,7 +829,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+@@ -834,7 +839,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
    unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE;
  #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
  
@@ -298,7 +334,7 @@ index f12e8206a..8880197b0 100644
    unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
    unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
    unsigned IOCTL_CYGETMON = CYGETMON;
-@@ -978,7 +984,7 @@ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
+@@ -989,7 +994,7 @@ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
  CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum);
  #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
  
@@ -307,7 +343,7 @@ index f12e8206a..8880197b0 100644
  CHECK_TYPE_SIZE(glob_t);
  CHECK_SIZE_AND_OFFSET(glob_t, gl_pathc);
  CHECK_SIZE_AND_OFFSET(glob_t, gl_pathv);
-@@ -1012,6 +1018,7 @@ CHECK_TYPE_SIZE(iovec);
+@@ -1023,6 +1028,7 @@ CHECK_TYPE_SIZE(iovec);
  CHECK_SIZE_AND_OFFSET(iovec, iov_base);
  CHECK_SIZE_AND_OFFSET(iovec, iov_len);
  
@@ -315,7 +351,7 @@ index f12e8206a..8880197b0 100644
  CHECK_TYPE_SIZE(msghdr);
  CHECK_SIZE_AND_OFFSET(msghdr, msg_name);
  CHECK_SIZE_AND_OFFSET(msghdr, msg_namelen);
-@@ -1025,6 +1032,7 @@ CHECK_TYPE_SIZE(cmsghdr);
+@@ -1036,6 +1042,7 @@ CHECK_TYPE_SIZE(cmsghdr);
  CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len);
  CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level);
  CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type);
@@ -323,7 +359,7 @@ index f12e8206a..8880197b0 100644
  
  COMPILER_CHECK(sizeof(__sanitizer_dirent) <= sizeof(dirent));
  CHECK_SIZE_AND_OFFSET(dirent, d_ino);
-@@ -1127,7 +1135,7 @@ CHECK_SIZE_AND_OFFSET(mntent, mnt_passno);
+@@ -1138,7 +1145,7 @@ CHECK_SIZE_AND_OFFSET(mntent, mnt_passno);
  
  CHECK_TYPE_SIZE(ether_addr);
  
@@ -332,7 +368,7 @@ index f12e8206a..8880197b0 100644
  CHECK_TYPE_SIZE(ipc_perm);
  # if SANITIZER_FREEBSD
  CHECK_SIZE_AND_OFFSET(ipc_perm, key);
-@@ -1188,7 +1196,7 @@ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr);
+@@ -1199,7 +1206,7 @@ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr);
  CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_data);
  #endif
  
@@ -341,7 +377,7 @@ index f12e8206a..8880197b0 100644
  COMPILER_CHECK(sizeof(__sanitizer_mallinfo) == sizeof(struct mallinfo));
  #endif
  
-@@ -1238,7 +1246,7 @@ COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE);
+@@ -1249,7 +1256,7 @@ COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE);
  COMPILER_CHECK(__sanitizer_XDR_FREE == XDR_FREE);
  #endif
  
@@ -350,7 +386,7 @@ index f12e8206a..8880197b0 100644
  COMPILER_CHECK(sizeof(__sanitizer_FILE) <= sizeof(FILE));
  CHECK_SIZE_AND_OFFSET(FILE, _flags);
  CHECK_SIZE_AND_OFFSET(FILE, _IO_read_ptr);
-@@ -1257,7 +1265,7 @@ CHECK_SIZE_AND_OFFSET(FILE, _chain);
+@@ -1268,7 +1275,7 @@ CHECK_SIZE_AND_OFFSET(FILE, _chain);
  CHECK_SIZE_AND_OFFSET(FILE, _fileno);
  #endif
  
@@ -373,5 +409,5 @@ index e14d5f575..389a3bc88 100644
    struct __res_state *statp = (struct __res_state*)state;
    for (int i = 0; i < MAXNS && cnt < nfd; i++) {
 -- 
-2.16.2
+2.18.0
 
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 08612ad28494..4deadefcc4bc 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -23,6 +23,8 @@ let
   libcLib = lib.getLib libc;
   crossCompiling = stdenv.buildPlatform != stdenv.hostPlatform;
   common = { version, sha256 }: stdenv.mkDerivation (rec {
+    inherit version;
+
     name = "perl-${version}";
 
     src = fetchurlBoot {
@@ -179,8 +181,6 @@ let
 
     configurePlatforms = [ "build" "host" "target" ];
 
-    inherit version;
-
     # TODO merge setup hooks
     setupHook = ./setup-hook-cross.sh;
   });
@@ -191,13 +191,13 @@ in rec {
   };
 
   perl524 = common {
-    version = "5.24.3";
-    sha256 = "1m2px85kq2fyp2d4rx3bw9kg3car67qfqwrs5vlv96dx0x8rl06b";
+    version = "5.24.4";
+    sha256 = "0w0r6v5k5hw5q1k3p4c7krcxidkj2qzsj5dlrlrxhm01n7fksbxz";
   };
 
   perl526 = common {
-    version = "5.26.1";
-    sha256 = "1p81wwvr5jb81m41d07kfywk5gvbk0axdrnvhc2aghcdbr4alqz7";
+    version = "5.26.2";
+    sha256 = "03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp";
   };
 
   perl528 = common {
diff --git a/pkgs/development/interpreters/python/cpython/3.6/default.nix b/pkgs/development/interpreters/python/cpython/3.6/default.nix
index fc68aae1c045..9ea0876b1ce6 100644
--- a/pkgs/development/interpreters/python/cpython/3.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.6/default.nix
@@ -27,7 +27,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.6";
-  minorVersion = "5";
+  minorVersion = "6";
   minorVersionSuffix = "";
   pythonVersion = majorVersion;
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "19l7inxm056jjw33zz97z0m02hsi7jnnx5kyb76abj5ml4xhad7l";
+    sha256 = "0vz1wqg50zq6g15givdx1s2rq5752y5g2f1978bs6wvf8mfw36yp";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
@@ -85,9 +85,8 @@ in stdenv.mkDerivation {
     # only works for GCC and Apple Clang. This makes distutils to call C++
     # compiler when needed.
     (fetchpatch {
-      url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
-      sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
-      extraPrefix = "";
+      url = "https://bugs.python.org/file47669/python-3.8-distutils-C++.patch";
+      sha256 = "0s801d7ww9yrk6ys053jvdhl0wicbznx08idy36f1nrrxsghb3ii";
     })
   ];
 
diff --git a/pkgs/development/interpreters/python/cpython/3.7/default.nix b/pkgs/development/interpreters/python/cpython/3.7/default.nix
index 4c84727d3cbc..ad88895fa67d 100644
--- a/pkgs/development/interpreters/python/cpython/3.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.7/default.nix
@@ -39,6 +39,8 @@ let
     ++ optionals x11Support [ tcl tk libX11 xproto ]
     ++ optionals stdenv.isDarwin [ CF configd ];
 
+  hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
+
 in stdenv.mkDerivation {
   name = "python3-${version}";
   pythonVersion = majorVersion;
@@ -63,12 +65,20 @@ in stdenv.mkDerivation {
 
   patches = [
     ./no-ldconfig.patch
-
     # Fix darwin build https://bugs.python.org/issue34027
     (fetchpatch {
       url = https://bugs.python.org/file47666/darwin-libutil.patch;
       sha256 = "0242gihnw3wfskl4fydp2xanpl8k5q7fj4dp7dbbqf46a4iwdzpa";
     })
+  ] ++ optionals hasDistutilsCxxPatch [
+    # Fix for http://bugs.python.org/issue1222585
+    # Upstream distutils is calling C compiler to compile C++ code, which
+    # only works for GCC and Apple Clang. This makes distutils to call C++
+    # compiler when needed.
+    (fetchpatch {
+      url = "https://bugs.python.org/file47669/python-3.8-distutils-C++.patch";
+      sha256 = "0s801d7ww9yrk6ys053jvdhl0wicbznx08idy36f1nrrxsghb3ii";
+    })
   ];
 
   postPatch = ''
@@ -153,7 +163,7 @@ in stdenv.mkDerivation {
   passthru = let
     pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
   in rec {
-    inherit libPrefix sitePackages x11Support;
+    inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
     executable = "${libPrefix}m";
     buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
     withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
diff --git a/pkgs/development/libraries/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index 3fd0bb082440..a1980d62490a 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, lib, buildPlatform, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "gdbm-1.14.1";
+  name = "gdbm-1.15";
 
   src = fetchurl {
     url = "mirror://gnu/gdbm/${name}.tar.gz";
-    sha256 = "0pxwz3jlwvglq2mrbxvrjgr8pa0aj73p3v9sxmdlj570zw0gzknd";
+    sha256 = "03nwsbixdp3nx3fzn3gjy0n7rcppmkkxb2nxbmd8mvb7gwhf7zgr";
   };
 
   doCheck = true; # not cross;
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index fd9c8dc9a5e3..1efc16b2bf5c 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -1,29 +1,53 @@
-{ stdenv, fetchFromGitHub, perl, cmake }:
+{ stdenv, fetchFromGitHub, perl, pkgconfig, cmake, ninja, vala, gobjectIntrospection
+, python3, tzdata, gtk-doc, docbook_xsl, docbook_xml_dtd_43, glib, libxml2, icu }:
 
 stdenv.mkDerivation rec {
   name = "libical-${version}";
-  version = "2.0.0";
+  version = "3.0.3";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "libical";
     repo = "libical";
     rev = "v${version}";
-    sha256 = "0xsvqy1hzmwxn783wrb2k8p751544pzv39v9ynr9pj4yzkwjzsvb";
+    sha256 = "0dhlfn6n136di4fbqd74gdaibyh5zz1vac5x8ii3bjc2d5h7hw8h";
   };
 
-  nativeBuildInputs = [ perl cmake ];
+  nativeBuildInputs = [
+    perl pkgconfig cmake ninja vala gobjectIntrospection
+    (python3.withPackages (pkgs: with pkgs; [ pygobject3 ])) # running libical-glib tests
+    gtk-doc docbook_xsl docbook_xml_dtd_43 # docs
+  ];
+  buildInputs = [ glib libxml2 icu ];
+
+  cmakeFlags = [
+    "-DGOBJECT_INTROSPECTION=True"
+    "-DICAL_GLIB_VAPI=True"
+  ];
 
   patches = [
     # TODO: upstream this patch
+    # https://github.com/libical/libical/issues/350
     ./respect-env-tzdir.patch
   ];
 
-  doCheck = false; # fails all the tests (ctest)
+  # Using install check so we do not have to manually set
+  # LD_LIBRARY_PATH and GI_TYPELIB_PATH variables
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    export TZDIR=${tzdata}/share/zoneinfo
+    ctest --output-on-failure
+
+    runHook postInstallCheck
+  '';
 
   meta = with stdenv.lib; {
     homepage = https://github.com/libical/libical;
     description = "An Open Source implementation of the iCalendar protocols";
-    license = licenses.mpl10;
+    license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ wkennington ];
   };
diff --git a/pkgs/development/libraries/libical/respect-env-tzdir.patch b/pkgs/development/libraries/libical/respect-env-tzdir.patch
index 715ba1fa8426..59d23e490e5a 100644
--- a/pkgs/development/libraries/libical/respect-env-tzdir.patch
+++ b/pkgs/development/libraries/libical/respect-env-tzdir.patch
@@ -1,9 +1,9 @@
 --- a/src/libical/icaltz-util.c
 +++ b/src/libical/icaltz-util.c
-@@ -96,9 +96,9 @@ typedef struct
- static char *zdir = NULL;
+@@ -94,9 +94,9 @@
+ static const char *zdir = NULL;
  
- static char *search_paths[] = {
+ static const char *search_paths[] = {
 +    "/etc/zoneinfo",
      "/usr/share/zoneinfo",
      "/usr/lib/zoneinfo",
@@ -11,13 +11,13 @@
      "/usr/share/lib/zoneinfo"
  };
  
-@@ -179,6 +179,15 @@ static void set_zonedir(void)
+@@ -178,6 +178,15 @@
      const char *fname = ZONES_TAB_SYSTEM_FILENAME;
      size_t i, num_search_paths;
  
 +   const char *env_tzdir = getenv ("TZDIR");
 +   if (env_tzdir) {
-+       snprintf(file_path, MAXPATHLEN, "%s/%s", env_tzdir, fname);
++       sprintf (file_path, "%s/%s", env_tzdir, fname);
 +       if (!access (file_path, F_OK|R_OK)) {
 +           zdir = env_tzdir;
 +           return;
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index 0e900ca9db64..24dd4f2465c6 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -29,9 +29,10 @@ stdenv.mkDerivation rec {
       sed -i -e '/preload/d' Makefile.in
     '';
 
-  configureFlags = lib.optional stdenv.isFreeBSD "--with-pic"
-    ++ lib.optional enableStatic "--enable-static"
-    ++ lib.optional (!enableShared) "--disable-shared";
+  configureFlags = [
+    (lib.enableFeature enableStatic "static")
+    (lib.enableFeature enableShared "shared")
+  ] ++ lib.optional stdenv.isFreeBSD "--with-pic";
 
   meta = {
     description = "An iconv(3) implementation";
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 4dc601745a42..c902a8b216a8 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig
-, ApplicationServices, CoreServices }:
+{ stdenv, lib, fetchpatch, fetchFromGitHub, autoconf, automake, libtool, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.20.3";
+  version = "1.21.0";
   name = "libuv-${version}";
 
   src = fetchFromGitHub {
     owner = "libuv";
     repo = "libuv";
     rev = "v${version}";
-    sha256 = "1a8a679wni560z7x6w5i431vh2g0f34cznflcn52klx1vwcggrg7";
+    sha256 = "1jjg34ppnlrnb634q9mla7whl7rm9xmjgnzckrznqcycwzir074b";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/libuv/libuv/pull/1909.patch";
+      sha256 = "1s2692h4dvqnzwwicrkpj0zph1i2bhv39w31z5vh7ssgvykaradj";
+    })
+  ];
+
   postPatch = let
     toDisable = [
       "getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent
@@ -19,15 +25,28 @@ stdenv.mkDerivation rec {
       "getaddrinfo_fail" "getaddrinfo_fail_sync"
       "threadpool_multiple_event_loops" # times out on slow machines
     ]
-      # sometimes: timeout (no output), failed uv_listen
-      ++ stdenv.lib.optionals stdenv.isDarwin [ "process_title" "emfile" ];
+      # Sometimes: timeout (no output), failed uv_listen. Someone
+      # should report these failures to libuv team. There tests should
+      # be much more robust.
+      ++ stdenv.lib.optionals stdenv.isDarwin [
+        "process_title" "emfile" "poll_duplex" "poll_unidirectional"
+        "ipc_listen_before_write" "ipc_listen_after_write" "ipc_tcp_connection"
+        "tcp_alloc_cb_fail" "tcp_ping_pong" "tcp_ref3" "tcp_ref4"
+        "tcp_bind6_error_inval" "tcp_bind6_error_addrinuse" "tcp_read_stop"
+        "tcp_unexpected_read" "tcp_write_to_half_open_connection"
+        "tcp_oob" "tcp_close_accept" "tcp_create_early_accept"
+        "tcp_create_early" "tcp_close" "tcp_bind_error_inval"
+        "tcp_bind_error_addrinuse" "tcp_shutdown_after_write"
+        "tcp_open" "tcp_write_queue_order" "tcp_try_write" "tcp_writealot"
+        "multiple_listen" "delayed_accept"
+        "shutdown_close_tcp" "shutdown_eof" "shutdown_twice" "callback_stack"
+      ];
     tdRegexp = lib.concatStringsSep "\\|" toDisable;
     in lib.optionalString doCheck ''
       sed '/${tdRegexp}/d' -i test/test-list.h
     '';
 
   nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ];
 
   preConfigure = ''
     LIBTOOLIZE=libtoolize ./autogen.sh
@@ -35,10 +54,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  # These should be turned back on, but see https://github.com/NixOS/nixpkgs/issues/23651
-  # For now the tests are just breaking large swaths of the nixpkgs binary cache for Darwin,
-  # and I'd rather have everything else work at all than have stronger assurance here.
-  doCheck = !stdenv.isDarwin;
+  doCheck = true;
 
   meta = with lib; {
     description = "A multi-platform support library with a focus on asynchronous I/O";
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index f8152bea2cc1..9c0bf29d4908 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -67,7 +67,7 @@ let
 in
 
 let
-  version = "18.0.3";
+  version = "18.1.4";
   branch  = head (splitString "." version);
 in
 
@@ -81,7 +81,7 @@ let self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
       "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz"
     ];
-    sha256 = "0c4yskqwmh5k0wavjrkfcldafvnpcx8gjcx584bscxks69krd789";
+    sha256 = "12zm9hc3v4wnzhqyrvf2kfnz55idzdn82hs3ry940l45bn5lhq9h";
   };
 
   prePatch = "patchShebangs .";
@@ -154,7 +154,7 @@ let self = stdenv.mkDerivation {
     libX11 libXext libxcb libXt libXfixes libxshmfence
     libffi wayland wayland-protocols libvdpau libelf libXvMC
     libomxil-bellagio libva-minimal libpthreadstubs openssl/*or another sha1 provider*/
-    valgrind-light python2
+    valgrind-light python2 python2.pkgs.Mako
   ];
 
   enableParallelBuilding = true;
@@ -205,6 +205,11 @@ let self = stdenv.mkDerivation {
     for js in $drivers/share/glvnd/egl_vendor.d/*.json; do
       substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_"
     done
+
+    # Update search path used by pkg-config
+    for pc in $dev/lib/pkgconfig/{d3d,dri,xatracker}.pc; do
+      substituteInPlace "$pc" --replace $out $drivers
+    done
   '' + optionalString (vulkanDrivers != []) ''
     # Update search path used by Vulkan (it's pointing to $out but
     # drivers are in $drivers)
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index 2e1ed060acac..73e7fd42cdba 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "pcre2-${version}";
-  version = "10.23";
+  version = "10.31";
   src = fetchurl {
     url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "0vn5g0mkkp99mmzpissa06hpyj6pk9s4mlwbjqrjvw3ihy8rpiyz";
+    sha256 = "1b389pzw91k1hzydsh4smdsxyppwz4pv74m3nrvy8rda0j3m6zg0";
   };
 
   configureFlags = [
@@ -14,34 +14,8 @@ stdenv.mkDerivation rec {
     "--enable-jit"
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2017-7186-part1.patch";
-      url = "https://vcs.pcre.org/pcre2/code/trunk/src/pcre2_ucd.c?view=patch&r1=316&r2=670&sortby=date";
-      sha256 = "10yzglvbn7h06hg7zffr5zh378i5jihvx7d5gggkynws79vgwvfr";
-      stripLen = 2;
-      extraPrefix = "";
-    })
-    (fetchpatch {
-      name = "CVE-2017-7186-part2.patch";
-      url = "https://vcs.pcre.org/pcre2/code/trunk/src/pcre2_internal.h?view=patch&r1=600&r2=670&sortby=date";
-      sha256 = "1bggk7vd5hg0bjg96lj4h1lacmr6grq68dm6iz1n7vg3zf7virjn";
-      stripLen = 2;
-      extraPrefix = "";
-    })
-    (fetchpatch {
-      name = "CVE-2017-8786.patch";
-      url = "https://vcs.pcre.org/pcre2/code/trunk/src/pcre2test.c?r1=692&r2=697&view=patch";
-      sha256 = "1c629nzrk4il2rfclwyc1a373q58m4q9ys9wr91zhl4skfk7x19b";
-      stripLen = 2;
-      extraPrefix = "";
-    })
-  ];
-
   outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
 
-  doCheck = false; # fails 1 of 3 tests
-
   postFixup = ''
     moveToOutput bin/pcre2-config "$dev"
   '';
diff --git a/pkgs/development/libraries/volume-key/default.nix b/pkgs/development/libraries/volume-key/default.nix
index 53faf07623e9..4dd01f664d19 100644
--- a/pkgs/development/libraries/volume-key/default.nix
+++ b/pkgs/development/libraries/volume-key/default.nix
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
     sha256 = "16qdi5s6ycsh0iyc362gly7ggrwamky8i0zgbd4ajp3ymk9vqdva";
   };
 
-  outputs = [ "out" "man" "dev" ];
+  outputs = [ "out" "man" "dev" "py" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig gettext python2 swig ];
 
@@ -28,6 +28,11 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  makeFlags = [
+    "pyexecdir=$(py)/${python2.sitePackages}"
+    "pythondir=$(py)/${python2.sitePackages}"
+  ];
+
   meta = with stdenv.lib; {
     description = "A library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
     homepage = https://pagure.io/volume_key/;
diff --git a/pkgs/development/python-modules/aiodns/default.nix b/pkgs/development/python-modules/aiodns/default.nix
index 50e70d87f9f5..204f7bfc0dfb 100644
--- a/pkgs/development/python-modules/aiodns/default.nix
+++ b/pkgs/development/python-modules/aiodns/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi
-, isPy33, isPy26, isPy27, isPyPy, python, pycares, asyncio, trollius }:
+, isPy33, isPy27, isPyPy, python, pycares, asyncio, trollius }:
 
 buildPythonPackage rec {
   pname = "aiodns";
@@ -10,9 +10,9 @@ buildPythonPackage rec {
     sha256 = "d8677adc679ce8d0ef706c14d9c3d2f27a0e0cc11d59730cdbaf218ad52dd9ea";
   };
 
-  propagatedBuildInputs = with stdenv.lib; [ pycares ] 
-    ++ optional isPy33 asyncio 
-    ++ optional (isPy26 || isPy27 || isPyPy) trollius;
+  propagatedBuildInputs = with stdenv.lib; [ pycares ]
+    ++ optional isPy33 asyncio
+    ++ optional (isPy27 || isPyPy) trollius;
 
   checkPhase = ''
     ${python.interpreter} tests.py
diff --git a/pkgs/development/python-modules/future/default.nix b/pkgs/development/python-modules/future/default.nix
index ba84d80dd0be..535fe05b4388 100644
--- a/pkgs/development/python-modules/future/default.nix
+++ b/pkgs/development/python-modules/future/default.nix
@@ -1,9 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy26
-, importlib
-, argparse
 }:
 
 buildPythonPackage rec {
@@ -15,7 +12,6 @@ buildPythonPackage rec {
     sha256 = "1nzy1k4m9966sikp0qka7lirh8sqrsyainyf8rk97db7nwdfv773";
   };
 
-  propagatedBuildInputs = lib.optionals isPy26 [ importlib argparse ];
   doCheck = false;
 
   meta = {
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index e53989bcbcfd..1846c7bcd896 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi, lib
-, six, protobuf, enum34, futures, isPy26, isPy27, isPy34 }:
+, six, protobuf, enum34, futures, isPy27, isPy34 }:
 
 buildPythonPackage rec {
   pname = "grpcio";
@@ -11,8 +11,8 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ six protobuf ]
-                        ++ lib.optionals (isPy26 || isPy27 || isPy34) [ enum34 ]
-                        ++ lib.optionals (isPy26 || isPy27) [ futures ];
+                        ++ lib.optionals (isPy27 || isPy34) [ enum34 ]
+                        ++ lib.optionals (isPy27) [ futures ];
 
   meta = with stdenv.lib; {
     description = "HTTP/2-based RPC framework";
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index 3b15e7a30279..2d1f707a8ebd 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy26
+{ stdenv, buildPythonPackage, fetchFromGitHub
 , glibcLocales, pandoc, git
 , mock, nose, markdown, lxml, typogrify
 , jinja2, pygments, docutils, pytz, unidecode, six, dateutil, feedgenerator
@@ -7,7 +7,6 @@
 buildPythonPackage rec {
   pname = "pelican";
   version = "3.7.1";
-  disabled = isPy26;
 
   src = fetchFromGitHub {
     owner = "getpelican";
diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix
index 3290fb74fa18..4784e46ffb21 100644
--- a/pkgs/development/python-modules/pyscard/default.nix
+++ b/pkgs/development/python-modules/pyscard/default.nix
@@ -10,11 +10,11 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    sed -e 's!"libpcsclite\.so\.1"!"${pcsclite}/lib/libpcsclite.so.1"!' \
+    sed -e 's!"libpcsclite\.so\.1"!"${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1"!' \
         -i smartcard/scard/winscarddll.c
   '';
 
-  NIX_CFLAGS_COMPILE = "-isystem ${pcsclite}/include/PCSC/";
+  NIX_CFLAGS_COMPILE = "-isystem ${stdenv.lib.getDev pcsclite}/include/PCSC/";
 
   propagatedBuildInputs = [ pcsclite ];
   buildInputs = [ swig ] ++ stdenv.lib.optional stdenv.isDarwin PCSC;
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index d8d22ced974e..b5a8cc252b97 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy26, argparse, attrs, hypothesis, py
+{ stdenv, buildPythonPackage, fetchPypi, attrs, hypothesis, py
 , setuptools_scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
 , atomicwrites, mock
 }:
@@ -19,8 +19,7 @@ buildPythonPackage rec {
   checkInputs = [ hypothesis mock ];
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites]
-    ++ (stdenv.lib.optional (!isPy3k) funcsigs)
-    ++ (stdenv.lib.optional isPy26 argparse);
+    ++ (stdenv.lib.optional (!isPy3k) funcsigs);
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/trollius/default.nix b/pkgs/development/python-modules/trollius/default.nix
index 7b61633a7fc7..6d43aa8da869 100644
--- a/pkgs/development/python-modules/trollius/default.nix
+++ b/pkgs/development/python-modules/trollius/default.nix
@@ -1,17 +1,14 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, isPy26, isPyPy, mock, futures  }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, isPyPy, mock, futures  }:
 buildPythonPackage rec {
   pname = "trollius";
   version = "1.0.4";
-  name  = "${pname}-${version}";
-
-  disabled = isPy26;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0xny8y12x3wrflmyn6xi8a7n3m3ac80fgmgzphx5jbbaxkjcm148";
   };
 
-  buildInputs = [ mock ];
+  checkInputs = [ mock ];
 
   propagatedBuildInputs = lib.optionals (isPy27 || isPyPy) [ futures ];
 
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 438aa81a9d0a..ed0928febe29 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, fetchpatch, pkgconfig
 , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
 , majorVersion ? "3.11"
 # darwin attributes
@@ -57,6 +57,11 @@ stdenv.mkDerivation rec {
 
   # Don't search in non-Nix locations such as /usr, but do search in our libc.
   patches = [ ./search-path-3.9.patch ]
+    ++ optional (versionOlder version "3.12") (fetchpatch {
+      name = "cmake-3.11-libuv-1.21.patch";
+      url = https://gitlab.kitware.com/cmake/cmake/commit/889033b5c6847cf1f7bd789384405d59dc333bf6.patch;
+      sha256 = "0683zbyb3bicaxqzrj4wgdan6x08k30m20kkmpjvw30nr6a8r6xq";
+    })
     # Don't depend on frameworks.
     ++ optional (useSharedLibraries && majorVersion == "3.11") ./application-services.patch  # TODO: remove conditional
     ++ optional stdenv.isCygwin ./3.2.2-cygwin.patch;
diff --git a/pkgs/development/tools/hexio/default.nix b/pkgs/development/tools/hexio/default.nix
index 7078e2a37271..6511bdd20102 100644
--- a/pkgs/development/tools/hexio/default.nix
+++ b/pkgs/development/tools/hexio/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     substituteInPlace Makefile \
-      --replace '-I/usr/local/include/PCSC/' '-I${pcsclite}/include/PCSC/' \
+      --replace '-I/usr/local/include/PCSC/' '-I${stdenv.lib.getDev pcsclite}/include/PCSC/' \
       --replace '-L/usr/local/lib/pth' '-I${pth}/lib/'
     '';
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
index 9b4864e92fe5..0a3316005236 100644
--- a/pkgs/development/tools/misc/automake/automake-1.11.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5";
   };
 
-  patches = [ ./fix-test-autoconf-2.69.patch ];
+  patches = [ ./fix-test-autoconf-2.69.patch ./fix-perl-5.26.patch ];
 
   buildInputs = [perl autoconf makeWrapper];
 
diff --git a/pkgs/development/tools/misc/automake/fix-perl-5.26.patch b/pkgs/development/tools/misc/automake/fix-perl-5.26.patch
new file mode 100644
index 000000000000..fb2d08de6d81
--- /dev/null
+++ b/pkgs/development/tools/misc/automake/fix-perl-5.26.patch
@@ -0,0 +1,10 @@
+--- automake-1.11.2/automake.in
++++ automake-1.11.2/automake.in
+@@ -4156,7 +4156,7 @@ sub substitute_ac_subst_variables_worker($)
+ sub substitute_ac_subst_variables ($)
+ {
+   my ($text) = @_;
+-  $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
++  $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+   return $text;
+ }
diff --git a/pkgs/development/tools/parsing/bison/2.x.nix b/pkgs/development/tools/parsing/bison/2.x.nix
index d760cec62a04..071ad9332914 100644
--- a/pkgs/development/tools/parsing/bison/2.x.nix
+++ b/pkgs/development/tools/parsing/bison/2.x.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchurl, m4, perl }:
+{ stdenv, lib, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "bison-2.7";
+  name = "bison-2.7.1";
 
   src = fetchurl {
     url = "mirror://gnu/bison/${name}.tar.gz";
-    sha256 = "0cd8s2g7zjshya7kwjc9rh3drsssl4hiq4sccnkgf0nn9wvygfqr";
+    sha256 = "0c9li3iaslzzr3zig6m3zlmb4r8i0wfvkcrvdyiqxasb09mjkqh8";
   };
 
   nativeBuildInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
   propagatedBuildInputs = [ m4 ];
 
+  patches = lib.optional stdenv.isDarwin ./darwin-vasnprintf.patch;
+
   doCheck = true;
   # M4 = "${m4}/bin/m4";
 
diff --git a/pkgs/development/tools/parsing/bison/darwin-vasnprintf.patch b/pkgs/development/tools/parsing/bison/darwin-vasnprintf.patch
new file mode 100644
index 000000000000..84b0e6d39d87
--- /dev/null
+++ b/pkgs/development/tools/parsing/bison/darwin-vasnprintf.patch
@@ -0,0 +1,12 @@
+diff -ur bison-2.7-pristine/lib/vasnprintf.c bison-2.7/lib/vasnprintf.c
+--- bison-2.7-pristine/lib/vasnprintf.c	2012-11-30 20:48:23.000000000 +0900
++++ bison-2.7/lib/vasnprintf.c	2018-06-28 16:55:31.000000000 +0900
+@@ -4870,7 +4870,7 @@
+ #endif
+                   *fbp = dp->conversion;
+ #if USE_SNPRINTF
+-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
++# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || (defined __APPLE__ && defined __MACH__))
+                 fbp[1] = '%';
+                 fbp[2] = 'n';
+                 fbp[3] = '\0';
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index 8997dbda7284..979b64ae23b2 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.5.0";
-    sha256 = "1g1kdcrhahdsrkazfl9wj25abgjvkncgwwcm2ppgj3avfi1wam3v";
+    version = "10.6.0";
+    sha256 = "13vyzh53j2c4mv3q3yb0hkdpl1mag5705k7kmb8nmcvdhcm78q0r";
     patches = lib.optionals stdenv.isDarwin [ ./no-xcode-v7.patch ./no-xcodebuild.patch ];
   }
diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix
index a62182f1d347..c23a2148143a 100644
--- a/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -71,6 +71,8 @@ let
     # because we copy files from the system
     preferLocalBuild = true;
 
+    disallowedRequisites = [ sdk ];
+
     installPhase = ''
       linkFramework() {
         local path="$1"
@@ -160,8 +162,8 @@ in rec {
       installPhase = ''
         mkdir -p $out/include
         pushd $out/include >/dev/null
-        ln -s "${lib.getDev sdk}/include/xpc"
-        ln -s "${lib.getDev sdk}/include/launch.h"
+        cp -r "${lib.getDev sdk}/include/xpc" $out/include/xpc
+        cp "${lib.getDev sdk}/include/launch.h" $out/include/launch.h
         popd >/dev/null
       '';
     };
diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
index f8c424089f09..9e47b8d02fdf 100644
--- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
@@ -86,7 +86,6 @@ with frameworks; with libs; {
   QTKit                   = [ CoreMediaIO CoreMedia MediaToolbox QuickTime VideoToolbox ];
   QuickLook               = [ ApplicationServices CF ];
   QuickTime               = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ];
-  Ruby                    = [];
   SceneKit                = [];
   ScreenSaver             = [];
   Scripting               = [];
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
index 369556fd5a1c..d325e38b272e 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
@@ -10,8 +10,10 @@ appleDerivation {
     sed -i 's/darwin\*/ios\*/g' configure libcharset/configure
   '';
 
-  configureFlags = lib.optional enableStatic "--enable-static"
-                ++ lib.optional (!enableShared) "--disable-shared";
+  configureFlags = [
+    (lib.enableFeature enableStatic "static")
+    (lib.enableFeature enableShared "shared")
+  ];
 
   postInstall = lib.optionalString (!enableStatic) ''
     mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libsecurity_generic/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libsecurity_generic/default.nix
index 6730e2424be4..7986706cb647 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libsecurity_generic/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libsecurity_generic/default.nix
@@ -26,8 +26,9 @@ name: version: sha256: args: let
       '';
       preBuild = ''
         ln -s lib ${n}
-        makeFlagsArray=(-j''$NIX_BUILD_CORES)
+        makeFlagsArray=(-j$NIX_BUILD_CORES)
       '';
+      outputs = [ "out" "dev" ];
       buildInputs = [
         pkgs.gnustep.make
         pkgs.darwin.apple_sdk.frameworks.AppKit
@@ -51,6 +52,7 @@ name: version: sha256: args: let
         "-iframework ${pkgs.darwin.Security}/Library/Frameworks"
         "-I."
         "-Wno-deprecated-declarations"
+        "-DNDEBUG"
       ];
       NIX_LDFLAGS = with pkgs.darwin; with apple_sdk.frameworks; [
         "-L${libobjc}/lib"
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libsecurityd/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libsecurityd/default.nix
index 48bb80eb7511..fb3441f70507 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libsecurityd/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libsecurityd/default.nix
@@ -9,7 +9,7 @@ appleDerivation {
     unpackFile ${libsecurity_cdsa_client.src}
     mv libsecurity_cdsa_client*/lib security_cdsa_client
     ln -s lib securityd_client
-    
+
     patch -p1 < ${./xdr-arity.patch}
   '';
   preBuild = ''
@@ -17,7 +17,7 @@ appleDerivation {
     cp derived_src/* lib
     rm lib/ucspClientC.c
   '';
-  postInstall = ''
-    ln -s ''$out/include/securityd ''$out/include/securityd_client
+  postFixup = ''
+    ln -s $dev/include/securityd $dev/include/securityd_client
   '';
 }
diff --git a/pkgs/os-specific/darwin/security-tool/default.nix b/pkgs/os-specific/darwin/security-tool/default.nix
index e6846aef7507..4566d82835f7 100644
--- a/pkgs/os-specific/darwin/security-tool/default.nix
+++ b/pkgs/os-specific/darwin/security-tool/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
     sha256 = "0apcz4vy2z5645jhrs60wj3w27mncjjqv42h5lln36g6qs2n9113";
   };
 
+  disallowedRequisites = [ apple_sdk.sdk  ];
+
   patchPhase = ''
     # copied from libsecurity_generic
     cp -R ${osx_private_sdk}/include/SecurityPrivateHeaders Security
@@ -34,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   preBuild = ''
-    makeFlagsArray=(-j''$NIX_BUILD_CORES)
+    makeFlagsArray=(-j$NIX_BUILD_CORES)
   '';
 
   NIX_LDFLAGS = "-no_dtrace_dof";
@@ -97,4 +99,3 @@ stdenv.mkDerivation rec {
     license = licenses.apsl20;
   };
 }
-
diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix
index b7928e38fc98..ad21a6a4dcd6 100644
--- a/pkgs/os-specific/linux/audit/default.nix
+++ b/pkgs/os-specific/linux/audit/default.nix
@@ -6,11 +6,11 @@
 assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
-  name = "audit-2.8.3";
+  name = "audit-2.8.4";
 
   src = fetchurl {
     url = "https://people.redhat.com/sgrubb/audit/${name}.tar.gz";
-    sha256 = "06lacv9zjn0sf076dydwmvjhdmik3xzhdjvyrkq75917xv54ajbl";
+    sha256 = "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454";
   };
 
   outputs = [ "bin" "dev" "out" "man" ];
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 1a8f7f768626..06a2d4301596 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -33,14 +33,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "busybox-1.28.4";
+  name = "busybox-1.29.0";
 
   # Note to whoever is updating busybox: please verify that:
   # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test
   # still builds after the update.
   src = fetchurl {
     url = "https://busybox.net/downloads/${name}.tar.bz2";
-    sha256 = "0smfn8hlds6nx8war62kyaykg3n7mxbjjfcpsgz84znwk4v4mhg3";
+    sha256 = "10hccqprhr1mwkqc9i3kny44mb6sdmv9hl63wx20cr5yy095c4f8";
   };
 
   hardeningDisable = [ "format" ] ++ lib.optionals enableStatic [ "fortify" ];
diff --git a/pkgs/os-specific/linux/checkpolicy/default.nix b/pkgs/os-specific/linux/checkpolicy/default.nix
index 6ea73c9ac6c3..ac4bc83c51de 100644
--- a/pkgs/os-specific/linux/checkpolicy/default.nix
+++ b/pkgs/os-specific/linux/checkpolicy/default.nix
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ bison flex ];
   buildInputs = [ libsepol ];
 
-  preBuild = ''
-    makeFlagsArray+=("LIBDIR=${libsepol}/lib")
-    makeFlagsArray+=("PREFIX=$out")
-  '';
+  makeFlags = [
+    "PREFIX=$(out)"
+    "LIBSEPOLA=${stdenv.lib.getLib libsepol}/lib/libsepol.a"
+  ];
 
   meta = libsepol.meta // {
     description = "SELinux policy compiler";
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index a172e45e7faa..a464e7cbf715 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   version = "2.7";
   inherit (libsepol) se_release se_url;
 
+  outputs = [ "bin" "out" "dev" "man" "py" ];
+
   src = fetchurl {
     url = "${se_url}/${se_release}/libselinux-${version}.tar.gz";
     sha256 = "0mwcq78v6ngbq06xmb9dvilpg0jnl2vs9fgrpakhmmiskdvc1znh";
@@ -27,19 +29,19 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
 
-  postPatch = optionalString enablePython ''
-    sed -i -e 's|\$(LIBDIR)/libsepol.a|${libsepol}/lib/libsepol.a|' src/Makefile
-  '';
-
-  # fix install locations
-  preBuild = ''
-    makeFlagsArray+=("PREFIX=$out")
-    makeFlagsArray+=("DESTDIR=$out")
-    makeFlagsArray+=("MAN3DIR=$out/share/man/man3")
-    makeFlagsArray+=("MAN5DIR=$out/share/man/man5")
-    makeFlagsArray+=("MAN8DIR=$out/share/man/man8")
-    makeFlagsArray+=("PYSITEDIR=$out/lib/${python.libPrefix}/site-packages")
-  '';
+  makeFlags = [
+    "PREFIX=$(out)"
+    "INCDIR=$(dev)/include/selinux"
+    "INCLUDEDIR=$(dev)/include"
+    "MAN3DIR=$(man)/share/man/man3"
+    "MAN5DIR=$(man)/share/man/man5"
+    "MAN8DIR=$(man)/share/man/man8"
+    "PYSITEDIR=$(py)/${python.sitePackages}"
+    "SBINDIR=$(bin)/sbin"
+    "SHLIBDIR=$(out)/lib"
+
+    "LIBSEPOLA=${stdenv.lib.getLib libsepol}/lib/libsepol.a"
+  ];
 
   installTargets = [ "install" ] ++ optional enablePython "install-pywrap";
 
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index 40872f7c1ac8..f16c241a0a1f 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -6,6 +6,8 @@ stdenv.mkDerivation rec {
   se_release = "20170804";
   se_url = "https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases";
 
+  outputs = [ "bin" "out" "dev" "man" ];
+
   src = fetchurl {
     url = "${se_url}/${se_release}/libsepol-${version}.tar.gz";
     sha256 = "1rzr90d3f1g5wy1b8sh6fgnqb9migys2zgpjmpakn6lhxkc3p7fn";
@@ -13,18 +15,22 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ flex ];
 
-  preBuild = ''
-    makeFlagsArray+=("PREFIX=$out")
-    makeFlagsArray+=("DESTDIR=$out")
-    makeFlagsArray+=("MAN8DIR=$out/share/man/man8")
-    makeFlagsArray+=("MAN3DIR=$out/share/man/man3")
-  '';
+  makeFlags = [
+    "PREFIX=$(out)"
+    "BINDIR=$(bin)/bin"
+    "INCDIR=$(dev)/include/sepol"
+    "INCLUDEDIR=$(dev)/include"
+    "MAN3DIR=$(man)/share/man/man3"
+    "MAN8DIR=$(man)/share/man/man8"
+    "SHLIBDIR=$(out)/lib"
+  ];
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
 
   passthru = { inherit se_release se_url; };
 
   meta = with stdenv.lib; {
+    description = "SELinux binary policy manipulation library";
     homepage = http://userspace.selinuxproject.org;
     platforms = platforms.linux;
     maintainers = [ maintainers.phreedom ];
diff --git a/pkgs/os-specific/linux/selinux-python/default.nix b/pkgs/os-specific/linux/selinux-python/default.nix
index 8ac207d64214..527c94de46b3 100644
--- a/pkgs/os-specific/linux/selinux-python/default.nix
+++ b/pkgs/os-specific/linux/selinux-python/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     makeFlagsArray+=("PREFIX=$out")
     makeFlagsArray+=("DESTDIR=$out")
     makeFlagsArray+=("LOCALEDIR=$out/share/locale")
-    makeFlagsArray+=("LIBSEPOLA=${libsepol}/lib/libsepol.a")
+    makeFlagsArray+=("LIBSEPOLA=${stdenv.lib.getLib libsepol}/lib/libsepol.a")
     makeFlagsArray+=("BASHCOMPLETIONDIR=$out/share/bash-completion/completions")
     makeFlagsArray+=("PYTHON=${python3}/bin/python")
     makeFlagsArray+=("PYTHONLIBDIR=lib/${python3.libPrefix}/site-packages")
diff --git a/pkgs/os-specific/linux/setools/default.nix b/pkgs/os-specific/linux/setools/default.nix
index 9cb5785ca98f..89375563ae67 100644
--- a/pkgs/os-specific/linux/setools/default.nix
+++ b/pkgs/os-specific/linux/setools/default.nix
@@ -30,7 +30,7 @@ buildPythonApplication rec {
   setupPyBuildFlags = [ "-i" ];
 
   preBuild = ''
-    export SEPOL="${libsepol}/lib/libsepol.a"
+    export SEPOL="${stdenv.lib.getLib libsepol}/lib/libsepol.a"
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index c2c05a6b99ed..3dce750d255e 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -70,8 +70,8 @@ stdenv.mkDerivation rec {
     cat -n .config
     substituteInPlace Makefile --replace /usr/local $out
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE \
-      -I$(echo "${libnl.dev}"/include/libnl*/) \
-      -I${pcsclite}/include/PCSC/"
+      -I$(echo "${stdenv.lib.getDev libnl}"/include/libnl*/) \
+      -I${stdenv.lib.getDev pcsclite}/include/PCSC/"
   '';
 
   buildInputs = [ openssl libnl dbus_libs readline pcsclite ];
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index 1a42ba03d464..a63721466dbc 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "brotli-${version}";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "brotli";
     rev = "v" + version;
-    sha256 = "0n5snycxgwqj2v8sgxiqxq4zqh5ydx70dr7qa4ygizs02ms69n1i";
+    sha256 = "0ssj7mnhpdpk7qnwr49qfd4gxhkmvbli5mhs274pz55cx1xp7xja";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/graphics/luxcorerender/default.nix b/pkgs/tools/graphics/luxcorerender/default.nix
index 08d5ff851407..0492164dfa36 100644
--- a/pkgs/tools/graphics/luxcorerender/default.nix
+++ b/pkgs/tools/graphics/luxcorerender/default.nix
@@ -10,6 +10,7 @@
 let boost_static = boost165.override {
       python = python35;
       enableStatic = true;
+      enablePython = true;
     };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index 0a0cece4fce6..3395e0286343 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -16,6 +16,11 @@ stdenv.mkDerivation rec {
     (fetchpatch {
       url = "https://git.alpinelinux.org/cgit/aports/plain/main/parted/fix-includes.patch?id=9c5cd3c329a40ba4559cc1d8c7d17a9bf95c237b";
       sha256 = "117ypyiwvzym6pi8xmy16wa5z3sbpx7gh6haabs6kfb1x2894z7q";
+    })
+    ++ stdenv.lib.optional (devicemapper == null)
+    (fetchpatch {
+      url = https://git.savannah.gnu.org/cgit/parted.git/patch/?id=7e87ca3c531228d35e13e802d2622006138b104c;
+      sha256 = "0i29lfg8cwj342q5s7qwqhncz2bkifj5rjc7cx6jd4zqb6ykkndj";
     });
 
   postPatch = stdenv.lib.optionalString doCheck ''
diff --git a/pkgs/tools/misc/xxd/default.nix b/pkgs/tools/misc/xxd/default.nix
deleted file mode 100644
index a4cfd4321ba0..000000000000
--- a/pkgs/tools/misc/xxd/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, vim }:
-
-stdenv.mkDerivation rec {
-  name = "xxd-${version}";
-  inherit (vim) version;
-  phases = [ "installPhase" ];
-  installPhase = ''
-    mkdir -p $out/{bin,share/man/man1}
-    install -m755 ${stdenv.lib.getBin vim}/bin/xxd $out/bin/xxd
-    install -m644 ${stdenv.lib.getBin vim}/share/man/man1/xxd.1.gz $out/share/man/man1/xxd.1.gz
-  '';
-  meta = with stdenv.lib; {
-    description = "Make a hexdump or do the reverse.";
-    inherit (vim.meta) homepage license maintainers platforms;
-  };
-}
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index ab293a869d05..2ebae0b0c17f 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -63,6 +63,10 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
+      # Disable default CA bundle, use NIX_SSL_CERT_FILE or fallback
+      # to nss-cacert from the default profile.
+      "--without-ca-bundle"
+      "--without-ca-path"
       "--with-ca-fallback"
       "--disable-manual"
       ( if sslSupport then "--with-ssl=${openssl.dev}" else "--without-ssl" )
diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix
index fdef447193d8..9404cb1d0655 100644
--- a/pkgs/tools/security/gnupg/20.nix
+++ b/pkgs/tools/security/gnupg/20.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   prePatch = ''
     find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
   '' + stdenv.lib.optionalString stdenv.isLinux ''
-    sed -i 's,"libpcsclite\.so[^"]*","${pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
+    sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
   '' + ''
diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix
index f28d57fa62bd..b0381b32bcfe 100644
--- a/pkgs/tools/security/gnupg/22.nix
+++ b/pkgs/tools/security/gnupg/22.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     ./fix-libusb-include-path.patch
   ];
   postPatch = stdenv.lib.optionalString stdenv.isLinux ''
-    sed -i 's,"libpcsclite\.so[^"]*","${pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
+    sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
   ''; #" fix Emacs syntax highlighting :-(
 
   pinentryBinaryPath = pinentry.binaryPath or "bin/pinentry";
diff --git a/pkgs/tools/security/open-ecard/default.nix b/pkgs/tools/security/open-ecard/default.nix
index a0af51186edf..98f2e56e7497 100644
--- a/pkgs/tools/security/open-ecard/default.nix
+++ b/pkgs/tools/security/open-ecard/default.nix
@@ -50,7 +50,7 @@ in stdenv.mkDerivation rec {
     makeWrapper ${jre}/bin/java $out/bin/${appName} \
       --add-flags "-cp $out/share/java/cifs-${version}.jar" \
       --add-flags "-jar $out/share/java/richclient-${version}.jar" \
-      --suffix LD_LIBRARY_PATH ':' ${pcsclite}/lib
+      --suffix LD_LIBRARY_PATH ':' ${stdenv.lib.getLib pcsclite}/lib
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/opensc/default.nix b/pkgs/tools/security/opensc/default.nix
index 819c01a0893f..7624e6cfa39e 100644
--- a/pkgs/tools/security/opensc/default.nix
+++ b/pkgs/tools/security/opensc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--with-xsl-stylesheetsdir=${docbook_xsl}/xml/xsl/docbook"
-    "--with-pcsc-provider=${pcsclite}/lib/libpcsclite.so"
+    "--with-pcsc-provider=${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so"
   ];
 
   installFlags = [
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index bf5856aec357..f46e3f22ecd1 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -5,6 +5,8 @@ stdenv.mkDerivation rec {
   name = "pcsclite-${version}";
   version = "1.8.23";
 
+  outputs = [ "bin" "out" "dev" "doc" "man" ];
+
   src = fetchurl {
     url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
     sha256 = "1jc9ws5ra6v3plwraqixin0w0wfxj64drahrbkyrrwzghqjjc9ss";
@@ -28,6 +30,11 @@ stdenv.mkDerivation rec {
     }' config.h
   '';
 
+  postInstall = ''
+    # pcsc-spy is a debugging utility and it drags python into the closure
+    moveToOutput bin/pcsc-spy "$dev"
+  '';
+
   nativeBuildInputs = [ pkgconfig perl python2 ];
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ udev dbus_libs ]
              ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c0e956379740..e276ebc706a3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6797,7 +6797,7 @@ with pkgs;
     fpc = fpc;
   };
 
-  lessc = callPackage ../development/compilers/lessc { };
+  lessc = nodePackages.less;
 
   liquibase = callPackage ../development/tools/database/liquibase { };
 
@@ -9758,8 +9758,8 @@ with pkgs;
   isocodes = callPackage ../development/libraries/iso-codes { };
 
   ispc = callPackage ../development/compilers/ispc {
-    llvmPackages = llvmPackages_4;
-    stdenv = llvmPackages_4.stdenv;
+    llvmPackages = llvmPackages_6;
+    stdenv = llvmPackages_6.stdenv;
   };
 
   isso = callPackage ../servers/isso { };
@@ -10736,9 +10736,7 @@ with pkgs;
     then darwin.libunwind
     else callPackage ../development/libraries/libunwind { };
 
-  libuv = callPackage ../development/libraries/libuv {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  };
+  libuv = callPackage ../development/libraries/libuv { };
 
   libv4l = lowPrio (v4l_utils.override {
     withUtils = false;
@@ -18686,8 +18684,6 @@ with pkgs;
     flags = [ "python" "X11" ]; # only flag "X11" by now
   });
 
-  xxd = callPackage ../tools/misc/xxd { };
-
   vimNox = lowPrio (vim_configurable.override {
     source = "vim-nox";
     lua = pkgs.lua5_1; # vimNox source is from 2012, requires older lua
@@ -21945,7 +21941,7 @@ with pkgs;
   unixtools = recurseIntoAttrs (callPackages ./unix-tools.nix { });
   inherit (unixtools) hexdump ps logger eject umount
                       mount wall hostname more sysctl getconf
-                      getent locale killall;
+                      getent locale killall xxd;
 
   fts = if hostPlatform.isMusl then netbsd.fts else null;
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 39eec1493022..27e2686858c5 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -5,11 +5,13 @@
    for each package in a separate file: the call to the function would
    be almost as much code as the function itself. */
 
-{pkgs, overrides}:
+{config, pkgs, fetchurl, fetchFromGitHub, stdenv, fetchsvn, gnused, perl, overrides}:
 
 let self = _self // overrides; _self = with self; {
 
-  inherit (pkgs) buildPerlPackage fetchurl fetchFromGitHub stdenv perl fetchsvn gnused;
+  inherit perl;
+
+  inherit (pkgs) buildPerlPackage;
 
   inherit (stdenv.lib) maintainers;
 
@@ -637,8 +639,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ IPCSystemSimple TestFatal ];
   };
 
-  Autobox = self.autobox;
-
   Autodia = buildPerlPackage rec {
     name = "Autodia-2.14";
     src = fetchurl {
@@ -670,10 +670,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DBI ];
   };
 
-  autodie = null; # part of Perl
-
-  AutoLoader = null; # part of Perl 5.22
-
   autovivification = buildPerlPackage rec {
     name = "autovivification-0.18";
     src = fetchurl {
@@ -696,10 +692,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   BC = buildPerlPackage rec {
-    name = "B-C-1.54";
+    name = "B-C-1.55";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RU/RURBAN/${name}.tar.gz";
-      sha256 = "d07e5af5fb798fcd3f4eda5e40744a14c1b3ef9e585a7dca55b5db31cb1d28d3";
+      sha256 = "001bc3mxv1zkg1ynqpv3fbn1v3h3bqihg0pp19z4gfvrsrkns8q9";
     };
     propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
     meta = {
@@ -1458,8 +1454,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  CatalystPluginUnicodeEncoding = CatalystRuntime;
-
   CatalystPluginHTMLWidget = buildPerlPackage rec {
     name = "Catalyst-Plugin-HTML-Widget-1.1";
     src = fetchurl {
@@ -1867,6 +1861,10 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/J/JS/JSWARTZ/${name}.tar.gz";
       sha256 = "c7f1a2b3570a8fede484e933f89ba1729e0abd05935791d146c522dd120ee851";
     };
+    preConfigure = stdenv.lib.optionalString (stdenv.lib.versionAtLeast perl.version "5.26") ''
+      # fix error 'Unescaped left brace in regex is illegal here in regex'
+      substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{'
+    '';
     buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ];
     propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ];
     meta = {
@@ -1909,8 +1907,6 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ ClassAccessor ];
   };
 
-  ClassAccessorFast = ClassAccessor;
-
   ClassAccessorGrouped = buildPerlPackage {
     name = "Class-Accessor-Grouped-0.10012";
     src = fetchurl {
@@ -2105,6 +2101,10 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/E/EV/EVO/${name}.tar.gz";
       sha256 = "0ricb0mn0i06ngfhq5y035yx8i7ahlx83yyqwixqmv6hg4p79b5c";
     };
+    preConfigure = stdenv.lib.optionalString (stdenv.lib.versionAtLeast perl.version "5.26") ''
+      # fix error 'Unescaped left brace in regex is illegal here in regex'
+      substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g'
+    '';
   };
 
   ClassMethodMaker = buildPerlPackage rec {
@@ -2148,8 +2148,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ClassMOP = Moose;
-
   ClassReturnValue = buildPerlPackage rec {
     name = "Class-ReturnValue-0.55";
     src = fetchurl {
@@ -2363,9 +2361,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  # For backwards compatibility.
-  CommonSense = self.commonsense;
-
   commonsense = buildPerlPackage rec {
     name = "common-sense-3.74";
     src = fetchurl {
@@ -2415,8 +2410,6 @@ let self = _self // overrides; _self = with self; {
     inherit (pkgs) zlib;
   };
 
-  CompressZlib = IOCompress;
-
   CompressUnLZMA = buildPerlPackage rec {
     name = "Compress-unLZMA-0.05";
     src = fetchurl {
@@ -2665,8 +2658,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  constant = null; # part of Perl 5.22
-
   constantboolean = buildPerlModule {
     name = "constant-boolean-0.02";
     src = fetchurl {
@@ -2692,8 +2683,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  constantdefer = pkgs.perlPackages.constant-defer;
-
   constant-defer = buildPerlPackage rec {
     name = "constant-defer-6";
     src = fetchurl {
@@ -4028,8 +4017,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  DevelSelfStubber = null; # part of Perl 5.22
-
   DevelSizeMe = buildPerlPackage {
     name = "Devel-SizeMe-0.19";
     src = fetchurl {
@@ -4473,8 +4460,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Digest = null; # part of Perl 5.22
-
   DigestCRC = buildPerlPackage rec {
     name = "Digest-CRC-0.22.2";
     src = fetchurl {
@@ -4500,7 +4485,6 @@ let self = _self // overrides; _self = with self; {
   };
 
   DigestHMAC_SHA1 = DigestHMAC;
-
   DigestJHash = buildPerlPackage rec {
     name = "Digest-JHash-0.10";
     src = fetchurl {
@@ -4560,8 +4544,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  DigestSHA = null;
-
   DigestSHA1 = buildPerlPackage {
     name = "Digest-SHA1-2.13";
     src = fetchurl {
@@ -4650,8 +4632,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestMojibake ];
   };
 
-  DistZillaPluginNoTabsTests = DistZillaPluginTestNoTabs;
-
   DistZillaPluginPodWeaver = buildPerlPackage {
     name = "Dist-Zilla-Plugin-PodWeaver-4.008";
     src = fetchurl {
@@ -5078,8 +5058,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  EmailMIMEModifier = EmailMIME;
-
   EmailSend = buildPerlPackage rec {
     name = "Email-Send-2.201";
     src = fetchurl {
@@ -5422,8 +5400,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ExtUtilsCommand = ExtUtilsMakeMaker;
-
   Expect = buildPerlPackage {
     name = "Expect-1.35";
     src = fetchurl {
@@ -5437,8 +5413,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Exporter = null; # part of Perl 5.22
-
   ExtUtilsCBuilder = buildPerlPackage rec {
     name = "ExtUtils-CBuilder-0.280230";
     src = fetchurl {
@@ -6207,8 +6181,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  FileTemp = null;
-
   FileTouch = buildPerlPackage rec {
     name = "File-Touch-0.11";
     src = fetchurl {
@@ -7533,8 +7505,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  I18NCollate = null; # part of Perl 5.22
-
   iCalParser = buildPerlPackage rec {
     name = "iCal-Parser-1.21";
     src = fetchurl {
@@ -7547,11 +7517,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  "if" = null;
-
-  # For backwards compatibility.
-  if_ = self."if";
-
   ImageInfo = buildPerlPackage rec {
     name = "Image-Info-1.41";
     src = fetchurl {
@@ -7846,8 +7811,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  IOstringy = pkgs.perlPackages.IOStringy;
-
   IOStringy = buildPerlPackage rec {
     name = "IO-stringy-2.111";
     src = fetchurl {
@@ -8223,8 +8186,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  lib_ = null; # part of Perl 5.22
-
   libapreq2 = buildPerlPackage {
     name = "libapreq2-2.13";
     src = fetchurl {
@@ -8255,8 +8216,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  libintlperl = pkgs.perlPackages.libintl_perl;
-
   libintl_perl = buildPerlPackage rec {
     name = "libintl-perl-1.29";
     src = fetchurl {
@@ -8677,8 +8636,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LocaleMaketextSimple = null; # part of Perl 5.22
-
   LocaleMsgfmt = buildPerlPackage {
     name = "Locale-Msgfmt-0.15";
     src = fetchurl {
@@ -8918,9 +8875,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  # For backwards compatibility.
-  Log4Perl = self.LogLog4perl;
-
   LogDispatchArray = buildPerlPackage {
     name = "Log-Dispatch-Array-1.003";
     src = fetchurl {
@@ -9004,8 +8958,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LWPProtocolconnect = pkgs.perlPackages.LWPProtocolConnect;
-
   LWPProtocolConnect = buildPerlPackage {
     name = "LWP-Protocol-connect-6.09";
     src = fetchurl {
@@ -9020,8 +8972,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LWPProtocolhttps = pkgs.perlPackages.LWPProtocolHttps;
-
   LWPProtocolHttps = buildPerlPackage rec {
     name = "LWP-Protocol-https-6.07";
     src = fetchurl {
@@ -9052,8 +9002,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  LWPUserAgent = LWP;
-
   LWPUserAgentDetermined = buildPerlPackage {
     name = "LWP-UserAgent-Determined-1.07";
     src = fetchurl {
@@ -9353,8 +9301,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ];
   };
 
-  MathComplex = null; # part of Perl 5.22
-
   MathConvexHullMonotoneChain = buildPerlPackage rec {
     name = "Math-ConvexHull-MonotoneChain-0.01";
     src = fetchurl {
@@ -9516,8 +9462,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  MIMEBase64 = null; # part of Perl 5.22
-
   MIMECharset = buildPerlPackage {
     name = "MIME-Charset-1.012.2";
     src = fetchurl {
@@ -9554,8 +9498,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  MIMEtools = MIMETools;
-
   MIMETools = buildPerlPackage rec {
     name = "MIME-tools-5.509";
     src = fetchurl {
@@ -10432,8 +10374,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  MouseXGetOpt = self.MouseXGetopt;
-
   MouseXGetopt = buildPerlModule rec {
     name = "MouseX-Getopt-0.37";
     src = fetchurl {
@@ -11086,12 +11026,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  # Deprecated.
-  NamespaceAutoclean = self.namespaceautoclean;
-
-  # Deprecated.
-  NamespaceClean = self.namespaceclean;
-
   NetIdent = buildPerlPackage rec {
     name = "Net-Ident-1.24";
     src = fetchurl {
@@ -11375,8 +11309,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  NetLDAP = perlldap;
-
   NetOAuth = buildPerlModule {
     name = "Net-OAuth-0.28";
     src = fetchurl {
@@ -11453,8 +11385,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  NetSMTP = libnet;
-
   NetSMTPSSL = buildPerlPackage {
     name = "Net-SMTP-SSL-1.04";
     src = fetchurl {
@@ -11636,9 +11566,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  # For backwards compatibility. Please use OLEStorage_Lite instead.
-  OLEStorageLight = OLEStorage_Lite;
-
   OLEStorage_Lite = buildPerlPackage rec {
     name = "OLE-Storage_Lite-0.19";
     src = fetchurl {
@@ -11952,8 +11879,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ParseCPANMeta = CPANMeta;
-
   ParseDebControl = buildPerlPackage rec {
     name = "Parse-DebControl-2.005";
     src = fetchurl {
@@ -12082,7 +12007,7 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ pkgs.pcsclite ];
     nativeBuildInputs = [ pkgs.pkgconfig ];
-    NIX_CFLAGS_LINK = "-L${pkgs.pcsclite}/lib -lpcsclite";
+    NIX_CFLAGS_LINK = "-L${stdenv.lib.getLib pkgs.pcsclite}/lib -lpcsclite";
     # tests fail; look unfinished
     doCheck = false;
     meta = {
@@ -12206,8 +12131,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  PerlIOviaQuotedPrint = null; # part of Perl 5.22
-
   PerlIOviasymlink = buildPerlPackage {
     name = "PerlIO-via-symlink-0.05";
     src = fetchurl {
@@ -12862,8 +12785,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  PodEscapes = null; # part of Perl 5.22
-
   PodEventual = buildPerlPackage {
     name = "Pod-Eventual-0.094001";
     src = fetchurl {
@@ -13363,8 +13284,6 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ];
   };
 
-  Safe = null; # part of Perl 5.22
-
   SafeIsa = buildPerlPackage {
     name = "Safe-Isa-1.000010";
     src = fetchurl {
@@ -13432,8 +13351,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  SearchDict = null; # part of Perl 5.22
-
   SelfLoader = buildPerlPackage {
     name = "SelfLoader-1.24";
     src = fetchurl {
@@ -14128,7 +14045,7 @@ let self = _self // overrides; _self = with self; {
       license = licenses.gpl3;
       platforms = platforms.all;
       maintainers = with maintainers; [ pSub ];
-      meta.broken = true;
+      broken = true;
     };
   };
 
@@ -14190,7 +14107,6 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubExporterUtil = SubExporter;
-
   SubIdentify = buildPerlPackage rec {
     name = "Sub-Identify-0.14";
     src = fetchurl {
@@ -14865,8 +14781,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Test = null; # part of Perl 5.22
-
   Test2PluginNoWarnings = buildPerlPackage rec {
      name = "Test2-Plugin-NoWarnings-0.06";
      src = fetchurl {
@@ -15450,8 +15364,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  TestMoose = Moose;
-
   TestMockTime = buildPerlPackage rec {
     name = "Test-MockTime-0.17";
     src = fetchurl {
@@ -15499,8 +15411,6 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
-  TestMore = TestSimple;
-
   TestMost = buildPerlPackage {
     name = "Test-Most-0.35";
     src = fetchurl {
@@ -15871,8 +15781,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  TestSimple = null;
-
   TestSimple13 = buildPerlPackage rec {
     name = "Test-Simple-1.302136";
     src = fetchurl {
@@ -15961,8 +15869,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestSharedFork ];
   };
 
-  TestTester = TestSimple;
-
   TestTime = buildPerlPackage rec {
     name = "Test-Time-0.05";
     src = fetchurl {
@@ -16014,8 +15920,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Testuseok = TestSimple;
-
   TestWarn = buildPerlPackage {
     name = "Test-Warn-0.35";
     src = fetchurl {
@@ -16139,8 +16043,6 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestBase ];
   };
 
-  TextAbbrev = null; # part of Perl 5.22
-
   TextAligner = buildPerlModule rec {
     name = "Text-Aligner-0.13";
     src = fetchurl {
@@ -16534,8 +16436,6 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  TextTabsWrap = null; # part of Perl 5.22
-
   TextTabularDisplay = buildPerlPackage rec {
     name = "Text-TabularDisplay-1.38";
     src = fetchurl {
@@ -18009,4 +17909,61 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+} // stdenv.lib.optionalAttrs (config.skipAliases or false == false) {
+  autodie = null; # part of Perl
+  AutoLoader = null; # part of Perl 5.22
+  constant = null; # part of Perl 5.22
+  DevelSelfStubber = null; # part of Perl 5.22
+  Digest = null; # part of Perl 5.22
+  Exporter = null; # part of Perl 5.22
+  I18NCollate = null; # part of Perl 5.22
+  lib_ = null; # part of Perl 5.22
+  LocaleMaketextSimple = null; # part of Perl 5.22
+  MathComplex = null; # part of Perl 5.22
+  MIMEBase64 = null; # part of Perl 5.22
+  PerlIOviaQuotedPrint = null; # part of Perl 5.22
+  PodEscapes = null; # part of Perl 5.22
+  Safe = null; # part of Perl 5.22
+  SearchDict = null; # part of Perl 5.22
+  Test = null; # part of Perl 5.22
+  TextAbbrev = null; # part of Perl 5.22
+  TextTabsWrap = null; # part of Perl 5.22
+  DigestSHA = null;
+  FileTemp = null;
+  "if" = null;
+  TestSimple = null;
+
+  ArchiveZip_1_53 = self.ArchiveZip;
+  Autobox = self.autobox;
+  CommonSense = self.commonsense; # For backwards compatibility.
+  if_ = self."if"; # For backwards compatibility.
+  Log4Perl = self.LogLog4perl; # For backwards compatibility.
+  MouseXGetOpt = self.MouseXGetopt;
+  NamespaceAutoclean = self.namespaceautoclean; # Deprecated.
+  NamespaceClean = self.namespaceclean; # Deprecated.
+  CatalystPluginUnicodeEncoding = self.CatalystRuntime;
+  ClassAccessorFast = self.ClassAccessor;
+  ClassMOP = self.Moose;
+  CompressZlib = self.IOCompress;
+  constantdefer = self.constant-defer;
+  DigestHMAC_SHA1 = self.DigestHMAC;
+  DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs;
+  EmailMIMEModifier = self.EmailMIME;
+  ExtUtilsCommand = self.ExtUtilsMakeMaker;
+  IOstringy = self.IOStringy;
+  libintlperl = self.libintl_perl;
+  LWPProtocolconnect = self.LWPProtocolConnect;
+  LWPProtocolhttps = self.LWPProtocolHttps;
+  LWPUserAgent = self.LWP;
+  MIMEtools = self.MIMETools;
+  NetLDAP = self.perlldap;
+  NetSMTP = self.libnet;
+  OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead.
+  ParseCPANMeta = self.CPANMeta;
+  TestMoose = self.Moose;
+  TestMore = self.TestSimple;
+  TestTester = self.TestSimple;
+  Testuseok = self.TestSimple;
+  SubExporterUtil = self.SubExporter;
+
 }; in self
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 253796324cbb..b7cac08d8e42 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -20,7 +20,6 @@ let
 let
   pythonAtLeast = versionAtLeast python.pythonVersion;
   pythonOlder = versionOlder python.pythonVersion;
-  isPy26 = python.pythonVersion == "2.6";
   isPy27 = python.pythonVersion == "2.7";
   isPy33 = python.pythonVersion == "3.3";
   isPy34 = python.pythonVersion == "3.4";
@@ -133,7 +132,7 @@ let
 
 in {
 
-  inherit python bootstrapped-pip pythonAtLeast pythonOlder isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPy37 isPyPy isPy3k buildPythonPackage buildPythonApplication;
+  inherit python bootstrapped-pip pythonAtLeast pythonOlder isPy27 isPy33 isPy34 isPy35 isPy36 isPy37 isPyPy isPy3k buildPythonPackage buildPythonApplication;
   inherit fetchPypi callPackage;
   inherit hasPythonModule requiredPythonModules makePythonPath disabledIf;
   inherit toPythonModule toPythonApplication;
@@ -985,7 +984,7 @@ in {
     name = "${pname}-${version}";
     version = "0.2.2";
     pname = "basiciw";
-    disabled = isPy26 || isPy27 || isPyPy;
+    disabled = isPy27 || isPyPy;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/b/${pname}/${name}.tar.gz";
@@ -1031,7 +1030,7 @@ in {
     propagatedBuildInputs = [
       self.sqlalchemy
       self.pycrypto
-    ] ++ optionals (isPy26 || isPy27) [
+    ] ++ optionals (isPy27) [
       self.funcsigs
       self.pycryptopp
     ];
@@ -1960,7 +1959,7 @@ in {
   };
 
   # Needed for celery
-  pytest_32 = self.pytest_36.overrideAttrs( oldAttrs: rec {
+  pytest_32 = self.pytest_36.overridePythonAttrs( oldAttrs: rec {
     version = "3.2.5";
     src = oldAttrs.src.override {
       inherit version;
@@ -2931,8 +2930,6 @@ in {
     name = "gtimelog-${version}";
     version = "0.9.1";
 
-    disabled = isPy26;
-
     src = pkgs.fetchurl {
       url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
       sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
@@ -3171,7 +3168,7 @@ in {
   ipfsapi = buildPythonPackage rec {
     name = "ipfsapi-${version}";
     version = "0.4.2.post1";
-    disabled = isPy26 || isPy27;
+    disabled = isPy27;
 
     src = pkgs.fetchFromGitHub {
       owner = "ipfs";
@@ -4099,7 +4096,7 @@ in {
       virtualenv
       webtest
       zope_component
-    ] ++ optional isPy26 unittest2;
+    ];
 
     propagatedBuildInputs = with self; [
       hupper
@@ -4632,11 +4629,8 @@ in {
       sha256 = "0va95cml7wfjpvgj3dc9xdn8psyjh3zbk6v51b0hcqv2fzh409vb";
     } ;
 
-    buildInputs = with self; [] ++ optionals isPy26 [ ordereddict unittest2 ];
-
     meta = {
-       maintainers = with maintainers; [ garbas domenkozar ];
-      platforms = platforms.all;
+      maintainers = with maintainers; [ garbas domenkozar ];
     };
   };
 
@@ -5241,7 +5235,6 @@ in {
       sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1";
     };
 
-    buildInputs = optional isPy26 self.ordereddict;
     checkPhase = ''
       ${python.interpreter} -m unittest discover
     '';
@@ -5594,7 +5587,7 @@ in {
     # This is fixed in master I believe but not yet in 2.1;
     doCheck = false;
 
-    propagatedBuildInputs = with self; ([ Babel ] ++ (optionals isPy26 [ ordereddict ]));
+    propagatedBuildInputs = with self; [ Babel ];
 
     meta = {
       homepage = https://github.com/wtforms/wtforms;
@@ -6040,7 +6033,7 @@ in {
       sha256 = "c77d007cc32cdff836ecf8df6192371767976c108a75b055e057bb6f4a09cd42";
     };
 
-    buildInputs = with self; [ setuptools ] ++ (optional isPy26 argparse);
+    buildInputs = with self; [ setuptools ];
 
     meta = {
       description = "Automatically generated zsh completion function for Python's option parser modules";
@@ -6055,7 +6048,7 @@ in {
 
   gipc = buildPythonPackage rec {
     name = "gipc-0.5.0";
-    disabled = !isPy26 && !isPy27;
+    disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/g/gipc/${name}.zip";
@@ -6574,7 +6567,7 @@ in {
   importlib = buildPythonPackage rec {
     name = "importlib-1.0.2";
 
-    disabled = (!isPy26) || isPyPy;
+    disabled = isPyPy;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/i/importlib/importlib-1.0.2.tar.gz";
@@ -6789,7 +6782,7 @@ in {
       sha256 = "0y3w1x9935qzx8w6m2r6g4ghyjmxn33wryiif6xb56q7cj9w1433";
     };
 
-    disabled = ! (isPy26 || isPy27);
+    disabled = !isPy27;
 
     buildInputs = [ self.nose ];
 
@@ -7379,8 +7372,6 @@ in {
       sha256 = "0xzz7j8xskj5y6as178mjmm0i2xbhd4q4mwmdnvghpd2aqq3qx1c";
     };
 
-    disabled = isPy26;
-
     buildInputs = with self; [ pexpect ];
 
     prePatch = ''
@@ -8552,7 +8543,7 @@ in {
 
   nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  nose2 = if isPy26 then null else (buildPythonPackage rec {
+  nose2 = buildPythonPackage rec {
     name = "nose2-0.5.0";
     src = pkgs.fetchurl {
       url = "mirror://pypi/n/nose2/${name}.tar.gz";
@@ -8564,7 +8555,7 @@ in {
     propagatedBuildInputs = with self; [ six ];
     # AttributeError: 'module' object has no attribute 'collector'
     doCheck = false;
-  });
+  };
 
   nose-cover3 = buildPythonPackage rec {
     name = "nose-cover3-${version}";
@@ -8840,7 +8831,6 @@ in {
     buildInputs = [ pkgs.makeWrapper ];
 
     propagatedBuildInputs = with self; [ pkgs.rtmpdump pycrypto requests ]
-      ++ optionals isPy26 [ singledispatch futures argparse ]
       ++ optionals isPy27 [ singledispatch futures ]
       ++ optionals isPy33 [ singledispatch ];
 
@@ -9410,7 +9400,7 @@ in {
     name = "paho-mqtt-${version}";
     version = "1.1";
 
-    disabled = isPyPy || isPy26;
+    disabled = isPyPy;
 
     src = pkgs.fetchurl {
         url = "mirror://pypi/p/paho-mqtt/${name}.tar.gz";
@@ -11684,7 +11674,7 @@ in {
   python-wifi = buildPythonPackage rec {
     name = "python-wifi-${version}";
     version = "0.6.1";
-    disabled = ! (isPy26 || isPy27 );
+    disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/p/python-wifi/${name}.tar.bz2";
@@ -12020,7 +12010,6 @@ in {
 
   repocheck = buildPythonPackage rec {
     name = "repocheck-2015-08-05";
-    disabled = isPy26 || isPy27;
 
     src = pkgs.fetchFromGitHub {
       sha256 = "1jc4v5zy7z7xlfmbfzvyzkyz893f5x2k6kvb3ni3rn2df7jqhc81";
@@ -12610,8 +12599,6 @@ in {
     name = "shortuuid-${version}";
     version = "0.4.3";
 
-    disabled = isPy26;
-
     src = pkgs.fetchurl {
       url = "mirror://pypi/s/shortuuid/${name}.tar.gz";
       sha256 = "4606dbb19124d98109c00e2cafae2df8117aec02115623e18fb2abe3f766d293";
@@ -12846,7 +12833,7 @@ in {
     buildInputs = with self; [ pytest ];
     propagatedBuildInputs = with self; [ praw xmltodict pytz pyenchant pygeoip ];
 
-    disabled = isPyPy || isPy26 || isPy27;
+    disabled = isPyPy || isPy27;
 
     checkPhase = ''
     ${python.interpreter} test/*.py                                         #*/
@@ -14036,7 +14023,7 @@ in {
     src = py;
     format = "other";
 
-    disabled = isPy26 || isPyPy;
+    disabled = isPyPy;
 
     installPhase = ''
       # Move the tkinter module
@@ -14819,11 +14806,6 @@ EOF
       substituteInPlace setup.py --replace "nose<1.3.0" "nose"
     '';
 
-    # XXX: skipping two tests fails in python2.6
-    doCheck = ! isPy26;
-
-    buildInputs = with self; optionals isPy26 [ ordereddict unittest2 ];
-
     propagatedBuildInputs = with self; [
       nose
       webob
@@ -15265,7 +15247,7 @@ EOF
       sha256 = "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank";
     };
 
-    propagatedBuildInputs = with self; [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
+    propagatedBuildInputs = with self; [ zope_location zope_event zope_interface zope_testing ];
 
     # ImportError: No module named 'zope.event'
     # even though zope_event has been included.
@@ -16869,7 +16851,7 @@ EOF
 
   jenkins-job-builder = buildPythonPackage rec {
     name = "jenkins-job-builder-2.0.0.0b2";
-    disabled = ! (isPy26 || isPy27);
+    disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/j/jenkins-job-builder/${name}.tar.gz";
@@ -16891,10 +16873,6 @@ EOF
       pyyaml
       six
       stevedore
-    ] ++ optionals isPy26 [
-      ordereddict
-      argparse
-      ordereddict
     ];
 
     meta = {
diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix
index a46d2897f4ed..cc6a8e0592a8 100644
--- a/pkgs/top-level/unix-tools.nix
+++ b/pkgs/top-level/unix-tools.nix
@@ -16,6 +16,7 @@ let
 
   singleBinary = cmd: providers: let
       provider = "${lib.getBin providers.${hostPlatform.parsed.kernel.name}}/bin/${cmd}";
+      manpage = "${lib.getOutput "man" providers.${hostPlatform.parsed.kernel.name}}/share/man/man1/${cmd}.1.gz";
     in runCommand "${cmd}-${version}" {
       meta.platforms = map (n: { kernel.name = n; }) (pkgs.lib.attrNames providers);
     } ''
@@ -25,6 +26,10 @@ let
       fi
 
       install -D "${provider}" "$out/bin/${cmd}"
+
+      if [ -f "${manpage}" ]; then
+        install -D "${manpage}" $out/share/man/man1/${cmd}.1.gz
+      fi
     '';
 
   # more is unavailable in darwin
@@ -147,6 +152,10 @@ let
       linux = pkgs.utillinux;
       darwin = pkgs.darwin.basic_cmds;
     };
+    xxd = {
+      linux = pkgs.vim;
+      darwin = pkgs.vim;
+    };
   };
 
   makeCompat = name': value: buildEnv {