about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/tests/maintainers.nix11
-rw-r--r--lib/tests/release.nix15
-rw-r--r--maintainers/team-list.nix12
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml5
-rw-r--r--nixos/modules/config/nsswitch.nix140
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/fish.nix4
-rw-r--r--nixos/modules/rename.nix4
-rw-r--r--nixos/modules/security/acme.nix2
-rw-r--r--nixos/modules/security/pam.nix12
-rw-r--r--nixos/modules/security/prey.nix51
-rw-r--r--nixos/modules/services/misc/pykms.nix1
-rw-r--r--nixos/modules/services/misc/sssd.nix5
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.xml2
-rw-r--r--nixos/release-combined.nix1
-rw-r--r--nixos/release.nix6
-rw-r--r--nixos/tests/acme.nix5
-rw-r--r--pkgs/applications/blockchains/lnd.nix8
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix4
-rw-r--r--pkgs/applications/blockchains/monero/default.nix4
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan4/default.nix6
-rw-r--r--pkgs/applications/graphics/sane/frontends.nix4
-rw-r--r--pkgs/applications/graphics/sane/xsane.nix4
-rw-r--r--pkgs/applications/kde/kate.nix10
-rw-r--r--pkgs/applications/kde/konqueror.nix10
-rw-r--r--pkgs/applications/kde/okular.nix9
-rw-r--r--pkgs/applications/misc/digitalbitbox/default.nix4
-rw-r--r--pkgs/applications/misc/garmin-plugin/default.nix4
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix10
-rw-r--r--pkgs/applications/misc/lutris/chrootenv.nix2
-rw-r--r--pkgs/applications/misc/nut/default.nix6
-rw-r--r--pkgs/applications/misc/perkeep/default.nix6
-rw-r--r--pkgs/applications/misc/qlandkartegt/garmindev.nix4
-rw-r--r--pkgs/applications/misc/qlcplus/default.nix4
-rw-r--r--pkgs/applications/misc/subsurface/default.nix4
-rw-r--r--pkgs/applications/misc/wtf/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/openshift/default.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix10
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--pkgs/applications/radio/soapysdr/default.nix4
-rw-r--r--pkgs/applications/radio/welle-io/default.nix4
-rw-r--r--pkgs/applications/science/machine-learning/fasttext/default.nix4
-rw-r--r--pkgs/applications/science/math/cemu/default.nix4
-rw-r--r--pkgs/applications/science/misc/foldingathome/client.nix4
-rw-r--r--pkgs/applications/science/misc/foldingathome/control.nix4
-rw-r--r--pkgs/applications/science/misc/foldingathome/viewer.nix4
-rw-r--r--pkgs/applications/science/robotics/gazebo/default.nix4
-rw-r--r--pkgs/applications/video/kodi/default.nix6
-rw-r--r--pkgs/applications/video/qstopmotion/default.nix55
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix14
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix4
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix8
-rw-r--r--pkgs/development/compilers/dotnet/buildDotnet.nix14
-rw-r--r--pkgs/development/compilers/dotnet/default.nix54
-rw-r--r--pkgs/development/compilers/go/1.12.nix247
-rw-r--r--pkgs/development/compilers/go/remove-test-pie.patch24
-rw-r--r--pkgs/development/compilers/go/ssl-cert-file-1.12.1.patch59
-rw-r--r--pkgs/development/compilers/open-watcom-bin/default.nix67
-rw-r--r--pkgs/development/compilers/unison/default.nix6
-rw-r--r--pkgs/development/coq-modules/gappalib/default.nix8
-rw-r--r--pkgs/development/interpreters/dart/default.nix26
-rw-r--r--pkgs/development/libraries/garmintools/default.nix4
-rw-r--r--pkgs/development/libraries/hamlib/default.nix4
-rw-r--r--pkgs/development/libraries/kinetic-cpp-client/build-fix.patch224
-rw-r--r--pkgs/development/libraries/kinetic-cpp-client/default.nix58
-rw-r--r--pkgs/development/libraries/libftdi/default.nix6
-rw-r--r--pkgs/development/libraries/libmicrodns/default.nix10
-rw-r--r--pkgs/development/libraries/libnfc/default.nix4
-rw-r--r--pkgs/development/libraries/libusb-compat/0.1.nix (renamed from pkgs/development/libraries/libusb/default.nix)0
-rw-r--r--pkgs/development/libraries/lirc/default.nix4
-rw-r--r--pkgs/development/libraries/openct/default.nix4
-rw-r--r--pkgs/development/libraries/openldap/default.nix4
-rw-r--r--pkgs/development/libraries/packr/default.nix43
-rw-r--r--pkgs/development/libraries/scmccid/default.nix4
-rw-r--r--pkgs/development/libraries/unicap/default.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix4
-rw-r--r--pkgs/development/misc/amdadl-sdk/default.nix50
-rw-r--r--pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch10
-rw-r--r--pkgs/development/misc/amdapp-sdk/default.nix108
-rw-r--r--pkgs/development/misc/amdapp-sdk/gcc-5.patch11
-rw-r--r--pkgs/development/misc/msp430/mspdebug.nix4
-rw-r--r--pkgs/development/mobile/webos/novacomd.nix4
-rw-r--r--pkgs/development/mobile/xpwn/default.nix4
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix31
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix20
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix36
-rw-r--r--pkgs/development/python-modules/fasttext/default.nix14
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix15
-rw-r--r--pkgs/development/python-modules/pylibftdi/default.nix38
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix4
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix24
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/misc/avrdude/default.nix4
-rw-r--r--pkgs/development/tools/misc/blackmagic/default.nix4
-rw-r--r--pkgs/development/tools/misc/dfu-programmer/default.nix4
-rw-r--r--pkgs/development/tools/misc/micronucleus/default.nix4
-rw-r--r--pkgs/development/tools/misc/teensy-loader-cli/default.nix4
-rw-r--r--pkgs/development/tools/misc/wishbone-tool/default.nix4
-rw-r--r--pkgs/development/tools/misc/xc3sprog/default.nix4
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.36/default.nix6
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.37.nix6
-rw-r--r--pkgs/misc/cups/drivers/samsung/4.01.17.nix4
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix4
-rw-r--r--pkgs/misc/drivers/gutenprint/default.nix4
-rw-r--r--pkgs/os-specific/linux/g15daemon/default.nix4
-rw-r--r--pkgs/os-specific/linux/guvcview/default.nix73
-rw-r--r--pkgs/os-specific/linux/libfabric/default.nix29
-rw-r--r--pkgs/os-specific/linux/v4l2loopback/default.nix4
-rw-r--r--pkgs/servers/consul/default.nix30
-rw-r--r--pkgs/servers/monitoring/lcdproc/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/varnish-exporter.nix8
-rw-r--r--pkgs/shells/fish/default.nix142
-rw-r--r--pkgs/shells/fish/dont-codesign-on-mac.diff12
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/tools/admin/lego/default.nix2
-rw-r--r--pkgs/tools/admin/pebble/default.nix2
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix4
-rw-r--r--pkgs/tools/bluetooth/obex-data-server/default.nix4
-rw-r--r--pkgs/tools/bluetooth/openobex/default.nix4
-rw-r--r--pkgs/tools/misc/gnokii/default.nix4
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix4
-rw-r--r--pkgs/tools/misc/grub/trusted.nix4
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix6
-rw-r--r--pkgs/tools/misc/sixpair/default.nix4
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/urjtag/default.nix4
-rw-r--r--pkgs/tools/misc/xburst-tools/default.nix4
-rw-r--r--pkgs/tools/networking/pykms/default.nix8
-rw-r--r--pkgs/tools/networking/pykms/log-to-current-directory-by-default.patch20
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix2
-rw-r--r--pkgs/tools/security/gnupg/20.nix4
-rw-r--r--pkgs/tools/security/libacr38u/default.nix4
-rw-r--r--pkgs/tools/security/pcsc-scm-scl011/default.nix4
-rw-r--r--pkgs/tools/security/prey/default.nix48
-rw-r--r--pkgs/top-level/aliases.nix5
-rw-r--r--pkgs/top-level/all-packages.nix144
-rw-r--r--pkgs/top-level/python-packages.nix8
144 files changed, 1036 insertions, 1457 deletions
diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix
index 60d296eecae6..d3ed398c80a1 100644
--- a/lib/tests/maintainers.nix
+++ b/lib/tests/maintainers.nix
@@ -1,10 +1,11 @@
-# to run these tests:
-# nix-build nixpkgs/lib/tests/maintainers.nix
-# If nothing is output, all tests passed
-{ pkgs ? import ../.. {} }:
+# to run these tests (and the others)
+# nix-build nixpkgs/lib/tests/release.nix
+{ # The pkgs used for dependencies for the testing itself
+  pkgs
+, lib
+}:
 
 let
-  inherit (pkgs) lib;
   inherit (lib) types;
 
   maintainerModule = { config, ... }: {
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index ec0f9c32d3f7..eebee1b49bc8 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -1,8 +1,17 @@
-{ pkgs ? import ../.. {} }:
+{ # The pkgs used for dependencies for the testing itself
+  # Don't test properties of pkgs.lib, but rather the lib in the parent directory
+  pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; }
+}:
 
 pkgs.runCommandNoCC "nixpkgs-lib-tests" {
-  buildInputs = [ pkgs.nix (import ./check-eval.nix) (import ./maintainers.nix { inherit pkgs; }) ];
-  NIX_PATH = "nixpkgs=${toString pkgs.path}";
+  buildInputs = [
+    pkgs.nix
+    (import ./check-eval.nix)
+    (import ./maintainers.nix {
+      inherit pkgs;
+      lib = import ../.;
+    })
+  ];
 } ''
     datadir="${pkgs.nix}/share"
     export TEST_ROOT=$(pwd)/test-tmp
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 55482b00a3de..9fe952e54158 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -17,6 +17,18 @@
 
 { lib }:
 with lib.maintainers; {
+  acme = {
+    members = [
+      aanderse
+      andrew-d
+      arianvp
+      emily
+      flokli
+      m1cr0man
+    ];
+    scope = "Maintain ACME-related packages and modules.";
+  };
+
   freedesktop = {
     members = [ jtojnar worldofpeace ];
     scope = "Maintain Freedesktop.org packages for graphical desktop.";
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index 65cea9ca1c48..b57e11a1855d 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -28,6 +28,11 @@
    </listitem>
    <listitem>
     <para>
+     We now distribute a GNOME ISO.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      PHP now defaults to PHP 7.4, updated from 7.3.
     </para>
    </listitem>
diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix
index 13277fe56e42..0acd8900e7b1 100644
--- a/nixos/modules/config/nsswitch.nix
+++ b/nixos/modules/config/nsswitch.nix
@@ -10,35 +10,36 @@ let
   canLoadExternalModules = config.services.nscd.enable;
   myhostname = canLoadExternalModules;
   mymachines = canLoadExternalModules;
+  # XXX Move these to their respective modules
   nssmdns = canLoadExternalModules && config.services.avahi.nssmdns;
   nsswins = canLoadExternalModules && config.services.samba.nsswins;
   ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch);
-  sssd = canLoadExternalModules && config.services.sssd.enable;
   resolved = canLoadExternalModules && config.services.resolved.enable;
   googleOsLogin = canLoadExternalModules && config.security.googleOsLogin.enable;
 
-  hostArray = [ "files" ]
-    ++ optional mymachines "mymachines"
-    ++ optional nssmdns "mdns_minimal [NOTFOUND=return]"
-    ++ optional nsswins "wins"
-    ++ optional resolved "resolve [!UNAVAIL=return]"
-    ++ [ "dns" ]
-    ++ optional nssmdns "mdns"
-    ++ optional myhostname "myhostname";
-
-  passwdArray = [ "files" ]
-    ++ optional sssd "sss"
-    ++ optional ldap "ldap"
-    ++ optional mymachines "mymachines"
-    ++ optional googleOsLogin "cache_oslogin oslogin"
-    ++ [ "systemd" ];
-
-  shadowArray = [ "files" ]
-    ++ optional sssd "sss"
-    ++ optional ldap "ldap";
-
-  servicesArray = [ "files" ]
-    ++ optional sssd "sss";
+  hostArray = mkMerge [
+    (mkBefore [ "files" ])
+    (mkIf mymachines [ "mymachines" ])
+    (mkIf nssmdns [ "mdns_minimal [NOTFOUND=return]" ])
+    (mkIf nsswins [ "wins" ])
+    (mkIf resolved [ "resolve [!UNAVAIL=return]" ])
+    (mkAfter [ "dns" ])
+    (mkIf nssmdns (mkOrder 1501 [ "mdns" ])) # 1501 to ensure it's after dns
+    (mkIf myhostname (mkOrder 1600 [ "myhostname" ])) # 1600 to ensure it's always the last
+  ];
+
+  passwdArray = mkMerge [
+    (mkBefore [ "files" ])
+    (mkIf ldap [ "ldap" ])
+    (mkIf mymachines [ "mymachines" ])
+    (mkIf googleOsLogin [ "cache_oslogin oslogin" ])
+    (mkIf canLoadExternalModules (mkAfter [ "systemd" ]))
+  ];
+
+  shadowArray = mkMerge [
+    (mkBefore [ "files" ])
+    (mkIf ldap [ "ldap" ])
+  ];
 
 in {
   options = {
@@ -61,17 +62,73 @@ in {
         };
     };
 
-    system.nssHosts = mkOption {
-      type = types.listOf types.str;
-      default = [];
-      example = [ "mdns" ];
-      description = ''
-        List of host entries to configure in <filename>/etc/nsswitch.conf</filename>.
-      '';
-    };
+    system.nssDatabases = {
+      passwd = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          List of passwd entries to configure in <filename>/etc/nsswitch.conf</filename>.
+
+          Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
+
+          This option only takes effect if nscd is enabled.
+        '';
+        default = [];
+      };
+
+      group = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          List of group entries to configure in <filename>/etc/nsswitch.conf</filename>.
+
+          Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
+
+          This option only takes effect if nscd is enabled.
+        '';
+        default = [];
+      };
+
+      shadow = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          List of shadow entries to configure in <filename>/etc/nsswitch.conf</filename>.
 
+          Note that "files" is always prepended.
+
+          This option only takes effect if nscd is enabled.
+        '';
+        default = [];
+      };
+
+      hosts = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          List of hosts entries to configure in <filename>/etc/nsswitch.conf</filename>.
+
+          Note that "files" is always prepended, and "dns" and "myhostname" are always appended.
+
+          This option only takes effect if nscd is enabled.
+        '';
+        default = [];
+      };
+
+      services = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          List of services entries to configure in <filename>/etc/nsswitch.conf</filename>.
+
+          Note that "files" is always prepended.
+
+          This option only takes effect if nscd is enabled.
+        '';
+        default = [];
+      };
+    };
   };
 
+  imports = [
+    (mkRenamedOptionModule [ "system" "nssHosts" ] [ "system" "nssDatabases" "hosts" ])
+  ];
+
   config = {
     assertions = [
       {
@@ -87,23 +144,28 @@ in {
     ];
 
     # Name Service Switch configuration file.  Required by the C
-    # library.  !!! Factor out the mdns stuff.  The avahi module
-    # should define an option used by this module.
+    # library.
     environment.etc."nsswitch.conf".text = ''
-      passwd:    ${concatStringsSep " " passwdArray}
-      group:     ${concatStringsSep " " passwdArray}
-      shadow:    ${concatStringsSep " " shadowArray}
+      passwd:    ${concatStringsSep " " config.system.nssDatabases.passwd}
+      group:     ${concatStringsSep " " config.system.nssDatabases.group}
+      shadow:    ${concatStringsSep " " config.system.nssDatabases.shadow}
 
-      hosts:     ${concatStringsSep " " config.system.nssHosts}
+      hosts:     ${concatStringsSep " " config.system.nssDatabases.hosts}
       networks:  files
 
       ethers:    files
-      services:  ${concatStringsSep " " servicesArray}
+      services:  ${concatStringsSep " " config.system.nssDatabases.services}
       protocols: files
       rpc:       files
     '';
 
-    system.nssHosts = hostArray;
+    system.nssDatabases = {
+      passwd = passwdArray;
+      group = passwdArray;
+      shadow = shadowArray;
+      hosts = hostArray;
+      services = mkBefore [ "files" ];
+    };
 
     # Systemd provides nss-myhostname to ensure that our hostname
     # always resolves to a valid IP address.  It returns all locally
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 7244a7e0a894..0cd17775e516 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -196,7 +196,6 @@
   ./security/pam_usb.nix
   ./security/pam_mount.nix
   ./security/polkit.nix
-  ./security/prey.nix
   ./security/rngd.nix
   ./security/rtkit.nix
   ./security/wrappers/default.nix
diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix
index 87f6816e4ac0..48b324a0fe83 100644
--- a/nixos/modules/programs/fish.nix
+++ b/nixos/modules/programs/fish.nix
@@ -178,6 +178,10 @@ in
         set -l post (string join0 $fish_complete_path | string match --regex "[^\x00]*generated_completions.*" | string split0 | string match -er ".")
         set fish_complete_path $prev "/etc/fish/generated_completions" $post
       end
+      # prevent fish from generating completions on first run
+      if not test -d $__fish_user_data_dir/generated_completions
+        ${pkgs.coreutils}/bin/mkdir $__fish_user_data_dir/generated_completions
+      end
     '';
 
     environment.etc."fish/generated_completions".source =
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 410db8fd84e7..a946268494ed 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -49,6 +49,10 @@ with lib;
       simply add the brightnessctl package to environment.systemPackages.
     '')
 
+    (mkRemovedOptionModule ["services" "prey" ] ''
+      prey-bash-client is deprecated upstream
+    '')
+
     # Do NOT add any option renames here, see top of the file
   ];
 }
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index 39976380e3b4..36f91529265e 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -458,7 +458,7 @@ in
   ];
 
   meta = {
-    maintainers = with lib.maintainers; [ abbradar fpletz globin m1cr0man ];
+    maintainers = lib.teams.acme.members;
     doc = ./acme.xml;
   };
 }
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index aeb8629767bc..b99316803f35 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -219,6 +219,14 @@ let
         '';
       };
 
+      nodelay = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Wheather the delay after typing a wrong password should be disabled.
+        '';
+      };
+
       requireWheel = mkOption {
         default = false;
         type = types.bool;
@@ -366,7 +374,7 @@ let
             || cfg.enableGnomeKeyring
             || cfg.googleAuthenticator.enable
             || cfg.duoSecurity.enable)) ''
-              auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth
+              auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth
               ${optionalString config.security.pam.enableEcryptfs
                 "auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
               ${optionalString cfg.pamMount
@@ -382,7 +390,7 @@ let
                 "auth required ${pkgs.duo-unix}/lib/security/pam_duo.so"}
             '') + ''
           ${optionalString cfg.unixAuth
-              "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
+              "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth try_first_pass"}
           ${optionalString cfg.otpwAuth
               "auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
           ${optionalString use_ldap
diff --git a/nixos/modules/security/prey.nix b/nixos/modules/security/prey.nix
deleted file mode 100644
index b899ccb6c3e2..000000000000
--- a/nixos/modules/security/prey.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.prey;
-  myPrey = pkgs.prey-bash-client.override {
-    apiKey = cfg.apiKey;
-    deviceKey = cfg.deviceKey;
-  };
-in {
-  options = {
-
-    services.prey = {
-      enable = mkOption {
-        default = false;
-        type = types.bool;
-        description = ''
-          Enables the <link xlink:href="http://preyproject.com/" />
-          shell client. Be sure to specify both API and device keys.
-          Once enabled, a <command>cron</command> job will run every 15
-          minutes to report status information.
-        '';
-      };
-
-      deviceKey = mkOption {
-        type = types.str;
-        description = ''
-          <literal>Device key</literal> obtained by visiting
-          <link xlink:href="https://panel.preyproject.com/devices" />
-          and clicking on your device.
-        '';
-      };
-
-      apiKey = mkOption {
-        type = types.str;
-        description = ''
-          <literal>API key</literal> obtained from
-          <link xlink:href="https://panel.preyproject.com/profile" />.
-        '';
-      };
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-      environment.systemPackages = [ myPrey ];
-      services.cron.systemCronJobs = [ "*/15 * * * * root ${myPrey}/prey.sh" ];
-  };
-
-}
diff --git a/nixos/modules/services/misc/pykms.nix b/nixos/modules/services/misc/pykms.nix
index 25aa27ae7673..d6aeae48ccb6 100644
--- a/nixos/modules/services/misc/pykms.nix
+++ b/nixos/modules/services/misc/pykms.nix
@@ -82,6 +82,7 @@ in {
         ]);
         ProtectHome = "tmpfs";
         WorkingDirectory = libDir;
+        SyslogIdentifier = "pykms";
         Restart = "on-failure";
         MemoryLimit = cfg.memoryLimit;
       };
diff --git a/nixos/modules/services/misc/sssd.nix b/nixos/modules/services/misc/sssd.nix
index 36008d257410..77f6ccfe64f0 100644
--- a/nixos/modules/services/misc/sssd.nix
+++ b/nixos/modules/services/misc/sssd.nix
@@ -75,6 +75,11 @@ in {
       };
 
       system.nssModules = optional cfg.enable pkgs.sssd;
+      system.nssDatabases = {
+        passwd = [ "sss" ];
+        shadow = [ "sss" ];
+        services = [ "sss" ];
+      };
       services.dbus.packages = [ pkgs.sssd ];
     })
 
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.xml b/nixos/modules/services/x11/desktop-managers/pantheon.xml
index 9541f2cfd4ee..7905ceebd9aa 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.xml
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.xml
@@ -1,7 +1,7 @@
 <chapter xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xml:id="chap-pantheon">
- <title>Pantheon Destkop</title>
+ <title>Pantheon Desktop</title>
  <para>
   Pantheon is the desktop environment created for the elementary OS distribution. It is written from scratch in Vala, utilizing GNOME technologies with GTK 3 and Granite.
  </para>
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 2f5dd28e8bb5..2753fd6d6389 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -50,6 +50,7 @@ in rec {
         (onFullSupported "nixos.dummy")
         (onAllSupported "nixos.iso_minimal")
         (onSystems ["x86_64-linux"] "nixos.iso_plasma5")
+        (onSystems ["x86_64-linux"] "nixos.iso_gnome")
         (onFullSupported "nixos.manual")
         (onSystems ["x86_64-linux"] "nixos.ova")
         (onSystems ["aarch64-linux"] "nixos.sd_image")
diff --git a/nixos/release.nix b/nixos/release.nix
index 6107f3529715..d31fbd11e5cf 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -155,6 +155,12 @@ in rec {
     inherit system;
   });
 
+  iso_gnome = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
+    module = ./modules/installer/cd-dvd/installation-cd-graphical-gnome.nix;
+    type = "gnome";
+    inherit system;
+  });
+
   # A variant with a more recent (but possibly less stable) kernel
   # that might support more hardware.
   iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso {
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index 693f02962f45..fc41dc1eb5ff 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -12,8 +12,9 @@ let
     fi
   '';
 
-in import ./make-test-python.nix {
+in import ./make-test-python.nix ({ lib, ... }: {
   name = "acme";
+  meta.maintainers = lib.teams.acme.members;
 
   nodes = rec {
     acme = { nodes, lib, ... }: {
@@ -207,4 +208,4 @@ in import ./make-test-python.nix {
               "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'"
           )
     '';
-}
+})
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index dd45746c8df5..0aa087e20afc 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.9.0-beta";
+  version = "0.9.2-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "1hq105s9ykp6nsn4iicjnl3mwspqkbfsswkx7sgzv3jggg08fkq9";
+    sha256 = "0gm33z89fiqv231ks2mkpsblskcsijipq8fcmip6m6jy8g06b1gb";
   };
 
-  modSha256 = "1pvcvpiz6ck8xkgpypchrq9kgkik0jxd7f3jhihbgldsh4zaqiaq";
+  modSha256 = "1khxplvyaqgaddrx1nna1fw0nb1xz9bmqpxpfifif4f5nmx90gbr";
+
+  subPackages = ["cmd/lncli" "cmd/lnd"];
 
   meta = with lib; {
     description = "Lightning Network Daemon";
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 48a6d81b6ba1..cfd3998ee368 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -5,7 +5,7 @@
 , qtquickcontrols, qtquickcontrols2
 , monero, unbound, readline, boost, libunwind
 , libsodium, pcsclite, zeromq, cppzmq
-, hidapi, libusb, protobuf, randomx
+, hidapi, libusb-compat-0_1, protobuf, randomx
 }:
 
 with stdenv.lib;
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     qtxmlpatterns
     monero unbound readline
     boost libunwind libsodium pcsclite zeromq
-    cppzmq hidapi libusb protobuf randomx
+    cppzmq hidapi libusb-compat-0_1 protobuf randomx
   ];
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=format-security" ];
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index 2a04beb93796..d1abd3956570 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -2,7 +2,7 @@
 , cmake, pkgconfig
 , boost, miniupnpc, openssl, unbound, cppzmq
 , zeromq, pcsclite, readline, libsodium, hidapi
-, pythonProtobuf, randomx, rapidjson, libusb
+, pythonProtobuf, randomx, rapidjson, libusb-compat-0_1
 , CoreData, IOKit, PCSC
 }:
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     boost miniupnpc openssl unbound
     cppzmq zeromq pcsclite readline
     libsodium hidapi randomx rapidjson
-    pythonProtobuf libusb
+    pythonProtobuf libusb-compat-0_1
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
index 22e8a2ca5360..2ada41ac98a1 100644
--- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb }:
+{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb-compat-0_1 }:
 
 let
   myPatchElf = file: with stdenv.lib; ''
@@ -30,13 +30,13 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ makeWrapper patchelf coreutils udevRules ];
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
   dontBuild = true;
 
   patchPhase = ''
     ${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"}
 
-    RPATH=${libusb.out}/lib
+    RPATH=${libusb-compat-0_1.out}/lib
     for a in usr/lib64/sane/*.so*; do
       if ! test -L $a; then
         patchelf --set-rpath $RPATH $a
diff --git a/pkgs/applications/graphics/sane/frontends.nix b/pkgs/applications/graphics/sane/frontends.nix
index 188431bda6c6..885dff311b8f 100644
--- a/pkgs/applications/graphics/sane/frontends.nix
+++ b/pkgs/applications/graphics/sane/frontends.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb ? null }:
+{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb-compat-0_1 ? null }:
 
 stdenv.mkDerivation rec {
   pname = "sane-frontends";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ sane-backends libX11 gtk2 ]
-    ++ stdenv.lib.optional (libusb != null) libusb;
+    ++ stdenv.lib.optional (libusb-compat-0_1 != null) libusb-compat-0_1;
   nativeBuildInputs = [ pkgconfig ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/sane/xsane.nix b/pkgs/applications/graphics/sane/xsane.nix
index 22a8f4dc3bda..04d19dee8a8e 100644
--- a/pkgs/applications/graphics/sane/xsane.nix
+++ b/pkgs/applications/graphics/sane/xsane.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, sane-backends, sane-frontends, libX11, gtk2, pkgconfig, libpng
-, libusb ? null
+, libusb-compat-0_1 ? null
 , gimpSupport ? false, gimp ? null
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ]
-    ++ (if libusb != null then [libusb] else [])
+    ++ (if libusb-compat-0_1 != null then [libusb-compat-0_1] else [])
     ++ stdenv.lib.optional gimpSupport gimp;
 
   meta = {
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index f01a57a55d4d..e0d0273efde1 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -14,6 +14,16 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
 
+  # InitialPreference values are too high and end up making kate &
+  # kwrite defaults for anything considered text/plain. Resetting to
+  # 1, which is the default.
+  postPatch = ''
+    substituteInPlace kate/data/org.kde.kate.desktop \
+      --replace InitialPreference=9 InitialPreference=1
+    substituteInPlace kwrite/data/org.kde.kwrite.desktop \
+      --replace InitialPreference=8 InitialPreference=1
+  '';
+
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     libgit2
diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix
index e6442fea2f9d..62ed3db063ea 100644
--- a/pkgs/applications/kde/konqueror.nix
+++ b/pkgs/applications/kde/konqueror.nix
@@ -12,9 +12,17 @@ mkDerivation {
     kdelibs4support kcmutils khtml kdesu
     qtwebkit qtwebengine qtx11extras qtscript qtwayland
   ];
+
+  # InitialPreference values are too high and any text/html ends up
+  # opening konqueror, even if firefox or chromium are also available.
+  # Resetting to 1, which is the default.
+  postPatch = ''
+    substituteInPlace kfmclient_html.desktop \
+      --replace InitialPreference=9 InitialPreference=1
+  '';
+
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
   };
 }
-
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index f07df73a2556..3bcdb9ca8424 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -18,6 +18,15 @@ mkDerivation {
     kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
     qtdeclarative qtsvg threadweaver kcrash
   ] ++ lib.optional (!stdenv.isAarch64) chmlib;
+
+  # InitialPreference values are too high and end up making okular
+  # default for anything considered text/plain. Resetting to 1, which
+  # is the default.
+  postPatch = ''
+    substituteInPlace generators/txt/okularApplication_txt.desktop \
+      --replace InitialPreference=3 InitialPreference=1
+  '';
+
   meta = with lib; {
     homepage = "http://www.kde.org";
     license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix
index a6ae45306552..95159d1927ab 100644
--- a/pkgs/applications/misc/digitalbitbox/default.nix
+++ b/pkgs/applications/misc/digitalbitbox/default.nix
@@ -7,7 +7,7 @@
 , libtool
 , qrencode
 , udev
-, libusb
+, libusb-compat-0_1
 , makeWrapper
 , pkgconfig
 , qtbase
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
     libevent
     libtool
     udev
-    libusb
+    libusb-compat-0_1
     qrencode
 
     qtbase
diff --git a/pkgs/applications/misc/garmin-plugin/default.nix b/pkgs/applications/misc/garmin-plugin/default.nix
index ba6868b62f6f..95cbdd9c19b5 100644
--- a/pkgs/applications/misc/garmin-plugin/default.nix
+++ b/pkgs/applications/misc/garmin-plugin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, garmintools, libgcrypt, libusb, pkgconfig, tinyxml, zlib }:
+{ stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkgconfig, tinyxml, zlib }:
 stdenv.mkDerivation {
   name = "garmin-plugin-0.3.26";
   src = fetchurl {
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
   };
   sourceRoot = "GarminPlugin-0.3.26/src";
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ garmintools libusb libgcrypt tinyxml zlib ];
+  buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ];
   configureFlags = [
     "--with-libgcrypt-prefix=${libgcrypt.dev}"
     "--with-garmintools-incdir=${garmintools}/include"
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index 3dffc5c77c2a..761d05e5f9f8 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, mkDerivation
 , qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
-, qtconnectivity, qtcharts, libusb
+, qtconnectivity, qtcharts, libusb-compat-0_1
 , yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
 }:
 
@@ -27,7 +27,7 @@ in mkDerivation rec {
 
   buildInputs = [
     qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
-    qtconnectivity qtcharts libusb
+    qtconnectivity qtcharts libusb-compat-0_1
   ];
   nativeBuildInputs = [ flex makeWrapper qmake yacc ];
 
@@ -39,9 +39,9 @@ in mkDerivation rec {
     cp src/gcconfig.pri.in src/gcconfig.pri
     cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
     echo 'QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease' >> src/gcconfig.pri
-    echo 'LIBUSB_INSTALL = ${libusb}' >> src/gcconfig.pri
-    echo 'LIBUSB_INCLUDE = ${libusb.dev}/include' >> src/gcconfig.pri
-    echo 'LIBUSB_LIBS = -L${libusb}/lib -lusb' >> src/gcconfig.pri
+    echo 'LIBUSB_INSTALL = ${libusb-compat-0_1}' >> src/gcconfig.pri
+    echo 'LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include' >> src/gcconfig.pri
+    echo 'LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb' >> src/gcconfig.pri
     sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
 
     # Use qtwebengine instead of qtwebkit
diff --git a/pkgs/applications/misc/lutris/chrootenv.nix b/pkgs/applications/misc/lutris/chrootenv.nix
index 84246f4ba124..4505432b236d 100644
--- a/pkgs/applications/misc/lutris/chrootenv.nix
+++ b/pkgs/applications/misc/lutris/chrootenv.nix
@@ -92,7 +92,7 @@ in buildFHSUserEnv {
   multiPkgs = pkgs: with pkgs; [
     # Common
     libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio
-    libao libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l
+    libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l
     libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio
     libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
     alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index ce80ae14f233..8f188818d4f7 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
+{ stdenv, fetchurl, pkgconfig, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi
 , libtool, makeWrapper, autoreconfHook, fetchpatch
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ neon libusb openssl udev avahi freeipmi ];
+  buildInputs = [ neon libusb-compat-0_1 openssl udev avahi freeipmi ];
 
   nativeBuildInputs = [ autoreconfHook libtool pkgconfig makeWrapper ];
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
-      "$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"
+      "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/perkeep/default.nix b/pkgs/applications/misc/perkeep/default.nix
index 87a6bdf5e53d..5a1e5ba65ded 100644
--- a/pkgs/applications/misc/perkeep/default.nix
+++ b/pkgs/applications/misc/perkeep/default.nix
@@ -13,13 +13,13 @@ let
 
 in buildGoPackage rec {
   name = "perkeep-${version}";
-  version = "unstable-2019-07-29";
+  version = "unstable-2020-03-23";
 
   src = fetchFromGitHub {
     owner = "perkeep";
     repo = "perkeep";
-    rev = "c9f78d02adf9740f3b8d403a1418554293cc9f41";
-    sha256 = "11rin94pjzg0kvizrq9ss42fjw7wfwx3g1pk8zdlhyfkiwwh2rmg";
+    rev = "c2e31370ddefd86b6112a5d891100ea3382a4254";
+    sha256 = "0jf02k20ms7h60wglcq6dj3vqi9rlfww7db5iplgwznbij70c1i4";
   };
 
   goPackagePath = "perkeep.org";
diff --git a/pkgs/applications/misc/qlandkartegt/garmindev.nix b/pkgs/applications/misc/qlandkartegt/garmindev.nix
index 213780842143..8705abd92596 100644
--- a/pkgs/applications/misc/qlandkartegt/garmindev.nix
+++ b/pkgs/applications/misc/qlandkartegt/garmindev.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, libusb }:
+{ stdenv, fetchurl, cmake, libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
   pname = "garmindev";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index c0b844d121af..77a24413bdd6 100644
--- a/pkgs/applications/misc/qlcplus/default.nix
+++ b/pkgs/applications/misc/qlcplus/default.nix
@@ -1,5 +1,5 @@
 { stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, udev
-, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb
+, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1
 , libsndfile, libmad
 }:
 
@@ -16,7 +16,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ qmake pkgconfig ];
   buildInputs = [
-    udev qtmultimedia qtscript alsaLib ola libftdi1 libusb libsndfile libmad
+    udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad
   ];
 
   qmakeFlags = [ "INSTALLROOT=$(out)" ];
diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix
index d262fb74c4b5..e189351022b9 100644
--- a/pkgs/applications/misc/subsurface/default.nix
+++ b/pkgs/applications/misc/subsurface/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkgconfig, qmake
-, curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib
+, curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib
 , qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
 }:
 
@@ -83,7 +83,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     libdc googlemaps
-    curl grantlee libgit2 libssh2 libusb libxml2 libxslt libzip
+    curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
     qtbase qtconnectivity qtsvg qttools qtwebkit
   ];
 
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index 12780ca73a1a..e557c5081c81 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pybj2h844x9vncwdcaymihyd1mwdnxxpnzpq0p29ra0cwmsxcgr";
+    sha256 = "0v6yafpz3sycq6yb7w4dyxqclszvdgwbyhqs5ii8ckynqcf6ifn7";
    };
 
-  modSha256 = "00xvhajag25kfkizi2spv4ady3h06as43rnbjzfbv7z1mln844y4";
+  modSha256 = "0csxc5q7i2iq8z71ysfan2kwf4mghi89i5zja5g1a4cvmcabiq1g";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index 829ea1000f06..da668b9589af 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "nomad";
-  version = "0.11.0";
+  version = "0.11.1";
   rev = "v${version}";
 
   goPackagePath = "github.com/hashicorp/nomad";
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "0jg7h52wlgd2aslx13fs97j3b8g5xfgil3p2jsc4j95l7lmqn7bv";
+    sha256 = "1pcn1bk7sqhhsrm3izqljwyrwdz6bdlplrajvjzka39l3k6f9hgc";
   };
 
   # ui:
diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix
index 67845c066958..b547434d8da1 100644
--- a/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/pkgs/applications/networking/cluster/openshift/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, utillinux
-, coreutils, kerberos, clang, installShellFiles
+, coreutils, kerberos, ncurses, clang, installShellFiles
 , components ? [
   "cmd/oc"
   "cmd/openshift"
@@ -9,12 +9,12 @@
 with lib;
 
 let
-  version = "3.11.0";
+  version = "4.1.0";
   ver = stdenv.lib.elemAt (stdenv.lib.splitVersion version);
   versionMajor = ver 0;
   versionMinor = ver 1;
   versionPatch = ver 2;
-  gitCommit = "0cbc58b";
+  gitCommit = "b4261e0";
   # version is in vendor/k8s.io/kubernetes/pkg/version/base.go
   k8sversion = "v1.11.1";
   k8sgitcommit = "b1b2997";
@@ -28,29 +28,17 @@ in buildGoPackage rec {
     owner = "openshift";
     repo = "origin";
     rev = "v${version}";
-    sha256 = "06q4v2a1mm6c659ab0rzkqz6b66vx4avqfg0s9xckwhq420lzgka";
+    sha256 = "16bc6ljm418kxz92gz8ldm82491mvlqamrvigyr6ff72rf7ml7ba";
   };
 
   goPackagePath = "github.com/openshift/origin";
 
-  buildInputs = [ kerberos ];
+  buildInputs = [ kerberos ncurses ];
 
   nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
 
   patchPhase = ''
     patchShebangs ./hack
-
-    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
-      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt findmnt' \
-      'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/findmnt'
-
-    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
-      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mount' \
-      'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount'
-
-    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
-      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mkdir' \
-      'nsenter --mount=/rootfs/proc/1/ns/mnt ${coreutils}/bin/mkdir'
   '';
 
   buildPhase = ''
@@ -58,6 +46,7 @@ in buildGoPackage rec {
     # Openshift build require this variables to be set
     # unless there is a .git folder which is not the case with fetchFromGitHub
     echo "OS_GIT_VERSION=v${version}" >> os-version-defs
+    echo "OS_GIT_TREE_STATE=clean" >> os-version-defs
     echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs
     echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs
     echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 2c781d7dd49e..4a751bac4ac7 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook
+{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
@@ -121,6 +121,9 @@ in stdenv.mkDerivation rec {
     autoPatchelf --no-recurse -- $out/lib/Signal/
   '';
 
+  # Tests if the application launches and waits for "Link your phone to Signal Desktop":
+  passthru.tests.application-launch = nixosTests.signal-desktop;
+
   meta = {
     description = "Private, simple, and secure messenger";
     longDescription = ''
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index ef06f26522d6..84f334be06fb 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "3.5.385850.0413";
+  version = "5.0.398100.0427";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "049kxgkyaxknxpk0hf1a7bxn0c08dk250z3q2ba9pc1xkrn5kdnw";
+      sha256 = "0b9jdicr783wagp2j79106bbk68974j3v8zg8nvky5fydl6ngjvi";
     };
   };
 
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index 02a2c63b4397..4c67105dafc2 100644
--- a/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -1,21 +1,21 @@
-{stdenv, fetchFromGitHub, openssl, libX11, libgssglue, pkgconfig, autoreconfHook
+{stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1, nettle, gnutls, pkgconfig, autoreconfHook
 , enableCredssp ? (!stdenv.isDarwin)
 } :
 
 stdenv.mkDerivation (rec {
   pname = "rdesktop";
-  version = "1.8.6";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "02sbhnqbasa54c75c86qw9w9h9sxxbnldj7bjv2gvn18lmq5rm20";
+    sha256 = "1s6k1jwd28y38ymk3lfv76ch4arpfwrbdhpkbnwwy3fc4617gb78";
   };
 
   nativeBuildInputs = [pkgconfig autoreconfHook];
-  buildInputs = [openssl libX11]
-    ++ stdenv.lib.optional enableCredssp libgssglue;
+  buildInputs = [openssl libX11 libXcursor libtasn1 nettle gnutls]
+    ++ stdenv.lib.optional enableCredssp krb5;
 
   configureFlags = [
     "--with-ipv6"
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 7cb64f92f3f4..6d0a19334dec 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -13,7 +13,7 @@ libav,
 libiio,
 libopus,
 libpulseaudio,
-libusb,
+libusb-compat-0_1,
 limesuite,
 mkDerivation,
 ocl-icd,
@@ -51,7 +51,7 @@ in mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
-    glew opencv3 libusb boost libopus limesuite libav libiio libpulseaudio
+    glew opencv3 libusb-compat-0_1 boost libopus limesuite libav libiio libpulseaudio
     qtbase qtwebsockets qtmultimedia rtl-sdr airspy hackrf
     fftwFloat codec2' cm256cc serialdv
   ];
diff --git a/pkgs/applications/radio/soapysdr/default.nix b/pkgs/applications/radio/soapysdr/default.nix
index 36df6ad19d31..676f7d3c839e 100644
--- a/pkgs/applications/radio/soapysdr/default.nix
+++ b/pkgs/applications/radio/soapysdr/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, lndir, makeWrapper
 , fetchFromGitHub, cmake
-, libusb, pkgconfig
+, libusb-compat-0_1, pkgconfig
 , usePython ? false
 , python, ncurses, swig2
 , extraPackages ? []
@@ -25,7 +25,7 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
-  buildInputs = [ libusb ncurses ]
+  buildInputs = [ libusb-compat-0_1 ncurses ]
     ++ lib.optionals usePython [ python swig2 ];
 
   propagatedBuildInputs = lib.optional usePython python.pkgs.numpy;
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index 971399c4a229..05187440899b 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
 , qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2
-, faad2, rtl-sdr, soapysdr-with-plugins, libusb, fftwSinglePrec, lame, mpg123 }:
+, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
 let
 
   version = "2.1";
@@ -23,7 +23,7 @@ in mkDerivation {
     faad2
     fftwSinglePrec
     lame
-    libusb
+    libusb-compat-0_1
     mpg123
     qtbase
     qtcharts
diff --git a/pkgs/applications/science/machine-learning/fasttext/default.nix b/pkgs/applications/science/machine-learning/fasttext/default.nix
index 2ae5e0eeddcd..64124594e1e2 100644
--- a/pkgs/applications/science/machine-learning/fasttext/default.nix
+++ b/pkgs/applications/science/machine-learning/fasttext/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fasttext";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "facebookresearch";
     repo = "fastText";
     rev = "v${version}";
-    sha256 = "1cbzz98qn8aypp4r5kwwwc9wiq5bwzv51kcsb15xjfs9lz8h3rii";
+    sha256 = "07cz2ghfq6amcljaxpdr5chbd64ph513y8zqmibfx2xwfp74xkhn";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/math/cemu/default.nix b/pkgs/applications/science/math/cemu/default.nix
index f91e5be51700..b41135229dd7 100644
--- a/pkgs/applications/science/math/cemu/default.nix
+++ b/pkgs/applications/science/math/cemu/default.nix
@@ -4,7 +4,7 @@
 , SDL2
 , libGL
 , libarchive
-, libusb
+, libusb-compat-0_1
 , qtbase
 , qmake
 , git
@@ -33,7 +33,7 @@ mkDerivation rec {
     SDL2
     libGL
     libarchive
-    libusb
+    libusb-compat-0_1
     qtbase
     libpng_apng
   ];
diff --git a/pkgs/applications/science/misc/foldingathome/client.nix b/pkgs/applications/science/misc/foldingathome/client.nix
index 9a29fde0a438..74a53902ee09 100644
--- a/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/pkgs/applications/science/misc/foldingathome/client.nix
@@ -10,7 +10,7 @@
 }:
 let
   majMin = stdenv.lib.versions.majorMinor version;
-  version = "7.5.1";
+  version = "7.6.9";
 
   fahclient = stdenv.mkDerivation rec {
     inherit version;
@@ -18,7 +18,7 @@ let
 
     src = fetchurl {
       url = "https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v${majMin}/fahclient_${version}_amd64.deb";
-      hash = "sha256-7+RwYdMoZnJZwYFbmLxsN9ozk2P7jpOGZz9qlvTTfSY=";
+      sha256 = "1v4yijjjdq9qx1fp60flp9ya6ywl9qdsgkzwmzjzp8sd5gfvhyr6";
     };
 
     nativeBuildInputs = [
diff --git a/pkgs/applications/science/misc/foldingathome/control.nix b/pkgs/applications/science/misc/foldingathome/control.nix
index e8eba4c2ab2f..72217689ff18 100644
--- a/pkgs/applications/science/misc/foldingathome/control.nix
+++ b/pkgs/applications/science/misc/foldingathome/control.nix
@@ -8,7 +8,7 @@
 }:
 let
   majMin = stdenv.lib.versions.majorMinor version;
-  version = "7.5.1";
+  version = "7.6.9";
 
   python = python2.withPackages
     (
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v${majMin}/fahcontrol_${version}-1_all.deb";
-    hash = "sha256-ydN4I6vmZpI9kD+/TXxgWc+AQqIIlUvABEycWmY1tNg=";
+    sha256 = "1fh7ybbp3qlqzh18c4gva3aaymv7d31mqchrv235a1axldha1s9s";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/misc/foldingathome/viewer.nix b/pkgs/applications/science/misc/foldingathome/viewer.nix
index 03fa54cd7338..a35df650300b 100644
--- a/pkgs/applications/science/misc/foldingathome/viewer.nix
+++ b/pkgs/applications/science/misc/foldingathome/viewer.nix
@@ -11,7 +11,7 @@
 }:
 let
   majMin = stdenv.lib.versions.majorMinor version;
-  version = "7.5.1";
+  version = "7.6.9";
 in
 stdenv.mkDerivation rec {
   inherit version;
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.foldingathome.org/releases/public/release/fahviewer/debian-stable-64bit/v${majMin}/fahviewer_${version}_amd64.deb";
-    hash = "sha256-yH0zGjX8aNBEJ5lq7wWydcpp2rO+9Ah++q9eJ+ldeyk=";
+    sha256 = "04wr86g11wpmsczzwzak4gvalcihb47rn3zp6qriawhxyac9nf93";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/robotics/gazebo/default.nix b/pkgs/applications/science/robotics/gazebo/default.nix
index aea298b65485..86572e73c756 100644
--- a/pkgs/applications/science/robotics/gazebo/default.nix
+++ b/pkgs/applications/science/robotics/gazebo/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, cmake, pkgconfig, boost, protobuf, freeimage
   , boost-build, boost_process
   , xorg_sys_opengl, tbb, ogre, tinyxml-2
-  , libtar, glxinfo,  libusb, libxslt, ignition
+  , libtar, glxinfo,  libusb-compat-0_1, libxslt, ignition
   , pythonPackages, utillinux
 
   # these deps are hidden; cmake doesn't catch them
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     tinyxml-2
     libtar
     glxinfo
-    libusb
+    libusb-compat-0_1
     libxslt
     ignition.math2
     sdformat
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index c83705ac4160..e4da20c84879 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -25,7 +25,7 @@
 , rtmpSupport ? true, rtmpdump ? null
 , sambaSupport ? true, samba ? null
 , udevSupport ? true, udev ? null
-, usbSupport  ? false, libusb ? null
+, usbSupport  ? false, libusb-compat-0_1 ? null
 , vdpauSupport ? true, libvdpau ? null
 , useWayland ? false, wayland ? null, wayland-protocols ? null
 , waylandpp ?  null, libxkbcommon ? null
@@ -39,7 +39,7 @@ assert pulseSupport -> libpulseaudio != null;
 assert rtmpSupport  -> rtmpdump != null;
 assert sambaSupport -> samba != null;
 assert udevSupport  -> udev != null;
-assert usbSupport   -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable
+assert usbSupport   -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
 assert vdpauSupport -> libvdpau != null;
 assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
 
@@ -189,7 +189,7 @@ in stdenv.mkDerivation {
     ++ lib.optional  rtmpSupport     rtmpdump
     ++ lib.optional  sambaSupport    samba
     ++ lib.optional  udevSupport     udev
-    ++ lib.optional  usbSupport      libusb
+    ++ lib.optional  usbSupport      libusb-compat-0_1
     ++ lib.optional  vdpauSupport    libvdpau
     ++ lib.optionals useWayland [
       wayland 
diff --git a/pkgs/applications/video/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index 4a6d2a05a670..98af60c49379 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -1,6 +1,26 @@
-{ mkDerivation, stdenv, fetchurl, qt5, ffmpeg, guvcview, cmake, ninja, libxml2
-, gettext, pkgconfig, libgphoto2, gphoto2, v4l-utils, libv4l, pcre
-, qwt, extra-cmake-modules }:
+{ stdenv
+, mkDerivation
+, fetchurl
+, qtbase
+, qtmultimedia
+, qtquickcontrols
+, qtimageformats
+, qtxmlpatterns
+, ffmpeg
+, guvcview
+, cmake
+, ninja
+, libxml2
+, gettext
+, pkgconfig
+, libgphoto2
+, gphoto2
+, v4l-utils
+, libv4l
+, pcre
+, qwt
+, extra-cmake-modules
+}:
 
 mkDerivation rec {
   pname = "qstopmotion";
@@ -11,11 +31,31 @@ mkDerivation rec {
     sha256 = "03r6jxyq0bak2vsy2b78nk27m7fm96hnl8cx11l3l17704j4iglh";
   };
 
-  buildInputs = with qt5; [ v4l-utils libv4l pcre qtbase qtmultimedia ffmpeg guvcview
-                            qwt qtquickcontrols qtimageformats qtxmlpatterns ];
+  buildInputs = [
+    qtbase
+    qtmultimedia
+    qtquickcontrols
+    qtimageformats
+    qtxmlpatterns
+    v4l-utils
+    libv4l
+    pcre
+    ffmpeg
+    guvcview
+    qwt
+  ];
 
-  nativeBuildInputs = [ pkgconfig cmake extra-cmake-modules ninja
-                        gettext libgphoto2 gphoto2 libxml2 libv4l ];
+  nativeBuildInputs = [
+    pkgconfig
+    cmake
+    extra-cmake-modules
+    ninja
+    gettext
+    libgphoto2
+    gphoto2
+    libxml2
+    libv4l
+  ];
 
   patchPhase = ''
     substituteInPlace CMakeLists.txt \
@@ -36,6 +76,7 @@ mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ maintainers.leenaars ];
+    broken = stdenv.isAarch64;
     platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index dacc404b3a8c..2fd3a0b39dd6 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -16,11 +16,9 @@
 , which
 }:
 
-let
-  buildTags = "apparmor seccomp selinux containers_image_ostree_stub";
-in buildGoPackage rec {
+buildGoPackage rec {
   project = "cri-o";
-  version = "1.17.3";
+  version = "1.18.0";
   name = "${project}-${version}${flavor}";
 
   goPackagePath = "github.com/${project}/${project}";
@@ -29,7 +27,7 @@ in buildGoPackage rec {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "1cy2lqasfn5n20vlm3ckb6myci8ya6qv08dw8fq7z4ycnm39r1a6";
+    sha256 = "142flmv54pj48rjqkd26fbxrcbx2cv6pdmrc33jgyvn6r99zliah";
   };
 
   nativeBuildInputs = [ git pkgconfig which ];
@@ -37,13 +35,11 @@ in buildGoPackage rec {
                  libseccomp libselinux lvm2 ]
                 ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
 
+  BUILDTAGS = "apparmor seccomp selinux containers_image_ostree_stub";
   buildPhase = ''
     pushd go/src/${goPackagePath}
 
-    make BUILDTAGS='${buildTags}' \
-      bin/crio \
-      bin/crio-status \
-      bin/pinns
+    make binaries BUILDTAGS="$BUILDTAGS"
   '';
   installPhase = ''
     install -Dm755 bin/crio $out/bin/crio${flavor}
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index b8f8459796ac..feed5cadce3f 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -14,13 +14,13 @@
 
 buildGoPackage rec {
   pname = "podman";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "libpod";
     rev = "v${version}";
-    sha256 = "19y48lpf7pvw5f5pzpknn92rq9xwbrpvi8mj7mc4dby6skqadrk4";
+    sha256 = "0dr5vd52fnjwx3zn2nj2nlvkbvh5bg579nf3qw8swrn8i1jwxd6j";
   };
 
   goPackagePath = "github.com/containers/libpod";
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index df7b81a43c8a..7b7929d9f1d6 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -3,6 +3,9 @@
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43
 , alsaLib, curl, libvpx, nettools, dbus, substituteAll, fetchpatch
+# If open-watcom-bin is not passed, VirtualBox will fall back to use
+# the shipped alternative sources (assembly).
+, open-watcom-bin ? null
 , makeself, perl
 , javaBindings ? true, jdk ? null # Almost doesn't affect closure size
 , pythonBindings ? false, python3 ? null
@@ -148,6 +151,7 @@ in stdenv.mkDerivation {
       ${optionalString (!pulseSupport) "--disable-pulse"} \
       ${optionalString (!enableHardening) "--disable-hardening"} \
       ${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
+      ${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
       --disable-kmods
     sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
         -i AutoConfig.kmk
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 9db8baa4e94d..9b370847fc84 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02g6x190lylng8d07pwx2bqcc71rq48f0dxh30mgndfii6k21qgs";
+    sha256 = "03cq9ihgjasnv1n4v3dn1m3ypzj26k2ybd5b1a7yrbprb35zbrs4";
   };
 
   passthru = {
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index aa472512d148..3512dcbd2bcf 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, fetchurl, jdk, ant
-, libusb, libusb1, unzip, zlib, ncurses, readline
+, libusb-compat-0_1, libusb1, unzip, zlib, ncurses, readline
 , withGui ? false, gtk2 ? null, withTeensyduino ? false
   /* Packages needed for Teensyduino */
 , upx, fontconfig, xorg, gcc
@@ -42,7 +42,7 @@ let
     glib
     gtk2
     libpng12
-    libusb
+    libusb-compat-0_1
     pango
     udev
     xorg.libSM
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
   };
 
 
-  buildInputs = [ jdk ant libusb libusb1 unzip zlib ncurses5 readline
+  buildInputs = [ jdk ant libusb-compat-0_1 libusb1 unzip zlib ncurses5 readline
   ] ++ stdenv.lib.optionals withTeensyduino [ upx ];
   downloadSrcList = builtins.attrValues externalDownloads;
   downloadDstList = builtins.attrNames externalDownloads;
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
   javaPath = lib.makeBinPath [jdk];
 
   # Everything else will be patched into rpath
-  rpath = (lib.makeLibraryPath [zlib libusb libusb1 readline ncurses5 stdenv.cc.cc]);
+  rpath = (lib.makeLibraryPath [zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc]);
 
   installPhase = ''
     mkdir -p $out/share/arduino
diff --git a/pkgs/development/compilers/dotnet/buildDotnet.nix b/pkgs/development/compilers/dotnet/buildDotnet.nix
index 1017c8b4975c..6f4237d2dce1 100644
--- a/pkgs/development/compilers/dotnet/buildDotnet.nix
+++ b/pkgs/development/compilers/dotnet/buildDotnet.nix
@@ -13,10 +13,14 @@ assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
 , curl
 }: 
 let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk";
+    suffix = {
+      x86_64-linux  = "x64";
+      aarch64-linux = "arm64";
+    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
     urls = {
-        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
-        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
-        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz";
+        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-${suffix}.tar.gz";
+        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-${suffix}.tar.gz";
+        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-${suffix}.tar.gz";
     };
     descriptions = {
         aspnetcore = "ASP .NET Core runtime ${version}";
@@ -30,7 +34,7 @@ in stdenv.mkDerivation rec {
 
     src = fetchurl {
         url = builtins.getAttr type urls;
-        inherit sha512;
+        sha512 = sha512."${stdenv.hostPlatform.system}"  or (throw "Missing hash for host system: ${stdenv.hostPlatform.system}");
     };
 
     sourceRoot = ".";
@@ -61,7 +65,7 @@ in stdenv.mkDerivation rec {
     meta = with stdenv.lib; {
         homepage = "https://dotnet.github.io/";
         description = builtins.getAttr type descriptions;
-        platforms = [ "x86_64-linux" ];
+        platforms = [ "x86_64-linux" "aarch64-linux" ];
         maintainers = with maintainers; [ kuznero ];
         license = licenses.mit;
     };
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 7b7a564ba374..6497e8bdf965 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -5,27 +5,37 @@ dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_
 { callPackage }:
 let
   buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {};
-  buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; } );
-  buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; } );
-  buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; } );
-in rec {
+  buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
+  buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; });
+  buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
+in
+rec {
   combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {};
 
   # v2.1.15 (LTS)
 
   aspnetcore_2_1 = buildAspNetCore {
     version = "2.1.16";
-    sha512 = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
+    sha512 = {
+      x86_64-linux = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
+      aarch64-linux = null; # no aarch64 version of this package is available
+    };
   };
 
   netcore_2_1 = buildNetCore {
     version = "2.1.16";
-    sha512 = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
+    sha512 = {
+      x86_64-linux = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
+      aarch64-linux = "27ab982vz9rn2vzpq68dqfzhryfixq3s0apx7vi0cwiray3scgfmf45fm7qj63k9mvaqnk5g69i339109yasw3q5vpvpyjc1ykbi710";
+    };
   };
 
   sdk_2_1 = buildNetCoreSdk {
     version = "2.1.804";
-    sha512 = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
+    sha512 = {
+      x86_64-linux = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
+      aarch64-linux = "2d97xvhxnkdgghqlichkwdxxh641dzkd9hq5xgffgvbqv1qsh31k9yib2q1nsarpnbx0d758bdn2jm2wvsj7nx0gpxlb3nab0b3hc2g";
+    };
   };
 
   # v2.2
@@ -36,33 +46,51 @@ in rec {
 
   aspnetcore_3_0 = buildAspNetCore {
     version = "3.0.3";
-    sha512 = "342v6kxxbxky09d1c392vvr9rm30lf75wccka1bk2h4advlcga5nlgv93g7vrq48bsyxfi5gc36r3b0dlwl1g409g5mlk1042n6d0yq";
+    sha512 = {
+      x86_64-linux = "342v6kxxbxky09d1c392vvr9rm30lf75wccka1bk2h4advlcga5nlgv93g7vrq48bsyxfi5gc36r3b0dlwl1g409g5mlk1042n6d0yq";
+      aarch64-linux = "2xkg4q88q5jw6jdz6cxj8vsjr475nd0fcvifkv1shdm2j9dsjy233hwpxbr140m5n5ggyh6z99238z9j4kp2az977y8y8irz8m8ppvf";
+    };
   };
 
   netcore_3_0 = buildNetCore {
     version = "3.0.3";
-    sha512 = "32ykpcw2xx708r2lxcwcbxnmy4sk159rlfjfvkw990qh7n79pm3lm2qwa3zhqcslznmpg18kwxz8qb5fgsa0h49g843xx4kyai0n7rx";
+    sha512 = {
+      x86_64-linux = "32ykpcw2xx708r2lxcwcbxnmy4sk159rlfjfvkw990qh7n79pm3lm2qwa3zhqcslznmpg18kwxz8qb5fgsa0h49g843xx4kyai0n7rx";
+      aarch64-linux = "1lp8din7d5jv5fkyq1a7m01i1xg9jwpiljvam1kcyzsnwzvi0cb4ji336cfx4lqrn95gvc75gkzi6q8b4fz0h21gvk6z6kmlcr63nyg";
+    };
   };
 
   sdk_3_0 = buildNetCoreSdk {
     version = "3.0.103";
-    sha512 = "2diiplgxs92fkb6ym68b02d79z4qn63x5qlky5lvr757c1zkh0vfpk3khawdg94kdn4qkn6dmyqr0msxqgmiqyhp63cadzqq4vx7b12";
+    sha512 = {
+      x86_64-linux = "2diiplgxs92fkb6ym68b02d79z4qn63x5qlky5lvr757c1zkh0vfpk3khawdg94kdn4qkn6dmyqr0msxqgmiqyhp63cadzqq4vx7b12";
+      aarch64-linux = "32843q2lj7dgciq62g9v1q31vwfjyv5vaxrz712d942mcg5lyzjygwri106bv4naq3a22131ldzwnsifbdn2vq1iz60raqdb7ss9vnf";
+    };
   };
 
   # v3.1.1 (LTS)
 
   aspnetcore_3_1 = buildAspNetCore {
     version = "3.1.2";
-    sha512 = "27708bk5liz8r39p4dzs41clgq298d49g8ipzdj56pz613vkfyv7bp91666ydz36aazm265j2g9ji3sk1f9kbgv6024zwrly5w9vqrm";
+    sha512 = {
+      x86_64-linux = "27708bk5liz8r39p4dzs41clgq298d49g8ipzdj56pz613vkfyv7bp91666ydz36aazm265j2g9ji3sk1f9kbgv6024zwrly5w9vqrm";
+      aarch64-linux = "2sm5yf376w5dm0za3gbcj251kc909fmlasmlyn70zhqp2jiii075vcqh40racjlwlhsfydx32cw7kgnv238lad5mw5jxy143zql5xl3";
+    };
   };
 
   netcore_3_1 = buildNetCore {
     version = "3.1.2";
-    sha512 = "3zwg1anrcni9kagmjxn485bpjvb146hkm7irmikq3v879gjhd2fgpscg226ds83l4pxll3r7lwris6ij952xmy8lsqraapd9111ba14";
+    sha512 = {
+      x86_64-linux = "3zwg1anrcni9kagmjxn485bpjvb146hkm7irmikq3v879gjhd2fgpscg226ds83l4pxll3r7lwris6ij952xmy8lsqraapd9111ba14";
+      aarch64-linux = "3hf61d5adlfffy51627ypp36qc5r55g9xwgfxqd0c7vj9bqmpiph673bvqqpr189df9shxr21p94cwrc5n36z72a37vw4ic8ks2yayx";
+    };
   };
 
   sdk_3_1 = buildNetCoreSdk {
     version = "3.1.102";
-    sha512 = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
+    sha512 = {
+      x86_64-linux = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
+      aarch64-linux = "34k6cm69gxm7vcd9m6bp47sdx96j32z6lfhb2vjcdznc6xgs2wy8zcang3b1mjm5919dq7v6iysm6ffcpgjhhphy7prlnaqa69q5mks";
+    };
   };
 }
diff --git a/pkgs/development/compilers/go/1.12.nix b/pkgs/development/compilers/go/1.12.nix
deleted file mode 100644
index 65e97d4e929e..000000000000
--- a/pkgs/development/compilers/go/1.12.nix
+++ /dev/null
@@ -1,247 +0,0 @@
-{ stdenv, fetchurl, tzdata, iana-etc, runCommand
-, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
-, mailcap, runtimeShell
-, buildPackages, pkgsTargetTarget
-}:
-
-let
-
-  inherit (stdenv.lib) optionals optionalString;
-
-  goBootstrap = runCommand "go-bootstrap" {} ''
-    mkdir $out
-    cp -rf ${buildPackages.go_bootstrap}/* $out/
-    chmod -R u+w $out
-    find $out -name "*.c" -delete
-    cp -rf $out/bin/* $out/share/go/bin/
-  '';
-
-  goarch = platform: {
-    i686 = "386";
-    x86_64 = "amd64";
-    aarch64 = "arm64";
-    arm = "arm";
-    armv5tel = "arm";
-    armv6l = "arm";
-    armv7l = "arm";
-  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
-
-in
-
-stdenv.mkDerivation rec {
-  pname = "go";
-  version = "1.12.17";
-
-  src = fetchurl {
-    url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "09cbl90maxry713wd18jdqrms3ivbvcm472csnxc78rsqhc851yy";
-  };
-
-  # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkgconfig patch procps ];
-  buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
-
-  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
-
-  hardeningDisable = [ "all" ];
-
-  prePatch = ''
-    patchShebangs ./ # replace /bin/bash
-
-    # This source produces shell script at run time,
-    # and thus it is not corrected by patchShebangs.
-    substituteInPlace misc/cgo/testcarchive/carchive_test.go \
-      --replace '#!/usr/bin/env bash' '#!${runtimeShell}'
-
-    # Patch the mimetype database location which is missing on NixOS.
-    substituteInPlace src/mime/type_unix.go \
-      --replace '/etc/mime.types' '${mailcap}/etc/mime.types'
-
-    # Disabling the 'os/http/net' tests (they want files not available in
-    # chroot builds)
-    rm src/net/{listen,parse}_test.go
-    rm src/syscall/exec_linux_test.go
-
-    # !!! substituteInPlace does not seems to be effective.
-    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
-    sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
-    sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
-    # Disable the unix socket test
-    sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
-    # Disable the hostname test
-    sed -i '/TestHostname/areturn' src/os/os_test.go
-    # ParseInLocation fails the test
-    sed -i '/TestParseInSydney/areturn' src/time/format_test.go
-    # Remove the api check as it never worked
-    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
-    # Remove the coverage test as we have removed this utility
-    sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
-    # Remove the timezone naming test
-    sed -i '/TestLoadFixed/areturn' src/time/time_test.go
-    # Remove disable setgid test
-    sed -i '/TestRespectSetgidDir/areturn' src/cmd/go/internal/work/build_test.go
-    # Remove cert tests that conflict with NixOS's cert resolution
-    sed -i '/TestEnvVars/areturn' src/crypto/x509/root_unix_test.go
-    # TestWritevError hangs sometimes
-    sed -i '/TestWritevError/areturn' src/net/writev_test.go
-    # TestVariousDeadlines fails sometimes
-    sed -i '/TestVariousDeadlines/areturn' src/net/timeout_test.go
-
-    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
-    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
-
-    # Disable cgo lookup tests not works, they depend on resolver
-    rm src/net/cgo_unix_test.go
-
-    # Disable TestGcSys because it's flakey in our tests, but the failure is not
-    # reproducible by multiple people in other environments.
-    # See https://github.com/NixOS/nixpkgs/issues/68361#issuecomment-537849272 and following
-    # NOTE: Try re-enabling for releases newer than 1.12.9
-    sed -i '/TestGcSys/areturn' src/runtime/gc_test.go
-
-  '' + optionalString stdenv.isLinux ''
-    sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
-  '' + optionalString stdenv.isAarch32 ''
-    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + optionalString stdenv.isDarwin ''
-    substituteInPlace src/race.bash --replace \
-      "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
-    sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
-    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
-    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
-
-    sed -i '/TestChdirAndGetwd/areturn' src/os/os_test.go
-    sed -i '/TestCredentialNoSetGroups/areturn' src/os/exec/exec_posix_test.go
-    sed -i '/TestRead0/areturn' src/os/os_test.go
-    sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
-
-    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/areturn' src/cmd/go/go_test.go
-    sed -i '/TestBuildDashIInstallsDependencies/areturn' src/cmd/go/go_test.go
-
-    sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go
-
-    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
-
-    # TestCurrent fails because Current is not implemented on Darwin
-    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
-    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
-
-    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
-  '';
-
-  patches = [
-    ./remove-tools-1.11.patch
-    ./ssl-cert-file-1.12.1.patch
-    ./remove-test-pie.patch
-    ./creds-test.patch
-    ./go-1.9-skip-flaky-19608.patch
-    ./go-1.9-skip-flaky-20072.patch
-    ./skip-external-network-tests.patch
-    ./skip-nohup-tests.patch
-  ] ++ [
-    # breaks under load: https://github.com/golang/go/issues/25628
-    (if stdenv.isAarch32
-    then ./skip-test-extra-files-on-aarch32.patch
-    else ./skip-test-extra-files-on-386.patch)
-  ];
-
-  postPatch = ''
-    find . -name '*.orig' -exec rm {} ';'
-  '';
-
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
-  GOARCH = goarch stdenv.targetPlatform;
-  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
-  # Go will nevertheless build a for host system that we will copy over in
-  # the install phase.
-  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
-  GOHOSTARCH = goarch stdenv.buildPlatform;
-
-  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
-  # to be different from CC/CXX
-  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
-      "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"
-    else
-      null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
-      "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"
-    else
-      null;
-
-  GOARM = toString (stdenv.lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
-  GO386 = 387; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
-  # Hopefully avoids test timeouts on Hydra
-  GO_TEST_TIMEOUT_SCALE = 3;
-
-  # Indicate that we are running on build infrastructure
-  # Some tests assume things like home directories and users exists
-  GO_BUILDER_NAME = "nix";
-
-  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
-
-  postConfigure = ''
-    export GOCACHE=$TMPDIR/go-cache
-    # this is compiled into the binary
-    export GOROOT_FINAL=$out/share/go
-
-    export PATH=$(pwd)/bin:$PATH
-
-    # Independent from host/target, CC should produce code for the building system.
-    export CC=${buildPackages.stdenv.cc}/bin/cc
-    ulimit -a
-  '';
-
-  postBuild = ''
-    (cd src && ./make.bash)
-  '';
-
-  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
-
-  checkPhase = ''
-    runHook preCheck
-    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
-    runHook postCheck
-  '';
-
-  preInstall = ''
-    rm -r pkg/{bootstrap,obj}
-    # Contains the wrong perl shebang when cross compiling,
-    # since it is not used for anything we can deleted as well.
-    rm src/regexp/syntax/make_perl_groups.pl
-  '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
-    mv bin/*_*/* bin
-    rmdir bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
-      rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
-    ''}
-  '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
-    rm -rf bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
-      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
-    ''}
-  '' else "");
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $GOROOT_FINAL
-    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
-    ln -s $GOROOT_FINAL/bin $out/bin
-    runHook postInstall
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  disallowedReferences = [ goBootstrap ];
-
-  meta = with stdenv.lib; {
-    branch = "1.12";
-    homepage = "http://golang.org/";
-    description = "The Go Programming language";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ cstrahan orivej mic92 rvolosatovs Frostman ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/compilers/go/remove-test-pie.patch b/pkgs/development/compilers/go/remove-test-pie.patch
deleted file mode 100644
index fb8e116af76f..000000000000
--- a/pkgs/development/compilers/go/remove-test-pie.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- source.org/src/cmd/dist/test.go	2018-02-22 10:40:40.089632339 +0000
-+++ source/src/cmd/dist/test.go	2018-02-22 10:56:53.075193788 +0000
-@@ -526,21 +526,6 @@
- 		})
- 	}
- 
--	// Test internal linking of PIE binaries where it is supported.
--	if goos == "linux" && goarch == "amd64" && !isAlpineLinux() {
--		// Issue 18243: We don't have a way to set the default
--		// dynamic linker used in internal linking mode. So
--		// this test is skipped on Alpine.
--		t.tests = append(t.tests, distTest{
--			name:    "pie_internal",
--			heading: "internal linking of -buildmode=pie",
--			fn: func(dt *distTest) error {
--				t.addCmd(dt, "src", t.goTest(), "reflect", "-buildmode=pie", "-ldflags=-linkmode=internal", t.timeout(60))
--				return nil
--			},
--		})
--	}
--
- 	// sync tests
- 	t.tests = append(t.tests, distTest{
- 		name:    "sync_cpu",
diff --git a/pkgs/development/compilers/go/ssl-cert-file-1.12.1.patch b/pkgs/development/compilers/go/ssl-cert-file-1.12.1.patch
deleted file mode 100644
index aa3116d76c12..000000000000
--- a/pkgs/development/compilers/go/ssl-cert-file-1.12.1.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff -Naur a/src/crypto/x509/root_cgo_darwin.go b/src/crypto/x509/root_cgo_darwin.go
---- a/src/crypto/x509/root_cgo_darwin.go	2019-03-15 11:33:55.920232337 -0700
-+++ b/src/crypto/x509/root_cgo_darwin.go	2019-03-15 11:34:53.323180897 -0700
-@@ -270,11 +270,20 @@
- import "C"
- import (
-	"errors"
-+	"io/ioutil"
-+	"os"
-	"unsafe"
- )
-
- func loadSystemRoots() (*CertPool, error) {
-	roots := NewCertPool()
-+	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
-+		data, err := ioutil.ReadFile(file)
-+		if err == nil {
-+			roots.AppendCertsFromPEM(data)
-+			return roots, nil
-+		}
-+	}
-
-	var data C.CFDataRef = 0
-	var untrustedData C.CFDataRef = 0
-diff -Naur a/src/crypto/x509/root_darwin.go b/src/crypto/x509/root_darwin.go
---- a/src/crypto/x509/root_darwin.go	2019-03-15 11:33:55.920232337 -0700
-+++ b/src/crypto/x509/root_darwin.go	2019-03-15 11:36:21.205123541 -0700
-@@ -92,6 +92,14 @@
-		verifyCh    = make(chan rootCandidate)
-	)
-
-+	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
-+		data, err := ioutil.ReadFile(file)
-+		if err == nil {
-+			roots.AppendCertsFromPEM(data)
-+			return roots, nil
-+		}
-+	}
-+
-	// Using 4 goroutines to pipe into verify-cert seems to be
-	// about the best we can do. The verify-cert binary seems to
-	// just RPC to another server with coarse locking anyway, so
-diff -Naur a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
---- a/src/crypto/x509/root_unix.go	2019-03-15 11:33:55.920232337 -0700
-+++ b/src/crypto/x509/root_unix.go	2019-03-15 11:37:15.737326340 -0700
-@@ -38,6 +38,13 @@
-
- func loadSystemRoots() (*CertPool, error) {
-	roots := NewCertPool()
-+	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
-+		data, err := ioutil.ReadFile(file)
-+		if err == nil {
-+			roots.AppendCertsFromPEM(data)
-+			return roots, nil
-+		}
-+	}
-
-	files := certFiles
-	if f := os.Getenv(certFileEnv); f != "" {
diff --git a/pkgs/development/compilers/open-watcom-bin/default.nix b/pkgs/development/compilers/open-watcom-bin/default.nix
new file mode 100644
index 000000000000..0cd80b6e1df3
--- /dev/null
+++ b/pkgs/development/compilers/open-watcom-bin/default.nix
@@ -0,0 +1,67 @@
+{ stdenvNoCC, fetchurl, qemu, expect, writeScript, ncurses }:
+
+let
+
+  # We execute the installer in qemu-user, because otherwise the
+  # installer fails to open itself due to a failed stat() call. This
+  # seems like an incompatibility of new Linux kernels to run this
+  # ancient binary.
+  performInstall = writeScript "perform-ow-install" ''
+    #!${expect}/bin/expect -f
+
+    spawn env TERMINFO=${ncurses}/share/terminfo TERM=vt100 ${qemu}/bin/qemu-i386 [lindex $argv 0]
+
+    # Wait for button saying "I agree" with escape sequences.
+    expect "gree"
+
+    # Navigate to "I Agree!" and hit enter.
+    send "\t\t\n"
+
+    expect "Install Open Watcom"
+
+    # Where do we want to install to.
+    send "$env(out)\n"
+
+    expect "will be installed"
+
+    # Select Full Installation, Next
+    send "fn"
+
+    expect "Setup will now copy"
+
+    # Next
+    send "n"
+
+    expect "completed successfully"
+    send "\n"
+  '';
+
+in
+stdenvNoCC.mkDerivation rec {
+  pname = "open-watcom-bin";
+  version = "1.9";
+
+  src = fetchurl {
+    url = "http://ftp.openwatcom.org/install/open-watcom-c-linux-${version}";
+    sha256 = "1wzkvc6ija0cjj5mcyjng5b7hnnc5axidz030c0jh05pgvi4nj7p";
+  };
+
+  dontUnpack = true;
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    cp ${src} install-bin
+    chmod +x install-bin
+
+    ${performInstall} install-bin
+  '';
+
+  meta = with stdenvNoCC.lib; {
+    description = "A C/C++ Compiler (binary distribution)";
+    homepage = "http://www.openwatcom.org/";
+    license = licenses.watcom;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = [ maintainers.blitz ];
+  };
+}
diff --git a/pkgs/development/compilers/unison/default.nix b/pkgs/development/compilers/unison/default.nix
index c2cbc03ca0fb..c17f85b4936a 100644
--- a/pkgs/development/compilers/unison/default.nix
+++ b/pkgs/development/compilers/unison/default.nix
@@ -4,18 +4,18 @@
 
 stdenv.mkDerivation rec {
   pname = "unison-code-manager";
-  milestone_id = "M1j";
+  milestone_id = "M1l";
   version = "1.0.${milestone_id}-alpha";
 
   src = if (stdenv.isDarwin) then
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/unison-osx.tar.gz";
-      sha256 = "1pvdjmasgl22inbr8nlizsg8s5zagn8bzwhaxqmwafkpsskz0hsg";
+      sha256 = "0qbxakrp3p3k3k8a1m2g24ivs3c8j5rj7ij84i7k548505rva9qr";
     }
   else
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/unison-linux64.tar.gz";
-      sha256 = "1xpblx405cp3mv0vrhcqwjlxvrhgmc77mxbvcy93srxja3qai1af";
+      sha256 = "152yzv7j4nyp228ngzbhki9fid1xdqrjvl1rwxc05wq30jwwqx0x";
     };
 
   # The tarball is just the prebuilt binary, in the archive root.
diff --git a/pkgs/development/coq-modules/gappalib/default.nix b/pkgs/development/coq-modules/gappalib/default.nix
index c432d2175ece..eb431b9faf25 100644
--- a/pkgs/development/coq-modules/gappalib/default.nix
+++ b/pkgs/development/coq-modules/gappalib/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, which, coq, flocq }:
 
 stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-gappalib-1.4.1";
+  name = "coq${coq.coq-version}-gappalib-1.4.3";
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/37917/gappalib-coq-1.4.1.tar.gz";
-    sha256 = "0d3f23a871haglg8hq1jgxz3y5nryiwy12b5xfnfjn279jfqqjw4";
+    url = "https://gforge.inria.fr/frs/download.php/file/38302/gappalib-coq-1.4.3.tar.gz";
+    sha256 = "108k9dks04wbcqz38pf0zz11hz5imbzimpnkgjrk5gp1hifih370";
   };
 
   nativeBuildInputs = [ which ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.7" "8.8" "8.9" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.8" "8.9" "8.10" "8.11" ];
   };
 
 }
diff --git a/pkgs/development/interpreters/dart/default.nix b/pkgs/development/interpreters/dart/default.nix
index eda8e450bbaf..050e7f14979c 100644
--- a/pkgs/development/interpreters/dart/default.nix
+++ b/pkgs/development/interpreters/dart/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, version ? "2.7.1" }:
+{ stdenv, fetchurl, unzip, version ? "2.7.2" }:
 
 let
 
@@ -24,29 +24,29 @@ let
       url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip";
       sha256 = "1p5bn04gr91chcszgmw5ng8mlzgwsrdr2v7k7ppwr1slkx97fsrh";
     };
-    "2.7.1-x86_64-linux" = fetchurl {
+    "2.7.2-x86_64-linux" = fetchurl {
       url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip";
-      sha256 = "1zjd9hxxg1dsyzkzgqjvl933kprf8h143z5qi4mj1iczxv7zp27a";
+      sha256 = "0vvsgda1smqdjn35yiq9pxx8f5haxb4hqnspcsfs6sn5c36k854v";
     };
-    "2.7.1-i686-linux" = fetchurl {
+    "2.7.2-i686-linux" = fetchurl {
       url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${i686}-release.zip";
-      sha256 = "0cggr1jbhzahmazlhba0vw2chz9zxd98jgk6zxvxdnw5hvkx8si1";
+      sha256 = "0dj01d2wwrp3cc5x73vs6fzhs6db60gkbjlrw3w9j04wcx69i38m";
     };
-    "2.7.1-aarch64-linux" = fetchurl {
+    "2.7.2-aarch64-linux" = fetchurl {
       url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip";
-      sha256 = "0m4qlc3zy87habr61npykvpclggn5k4hadl59v2b0ymvxa4h5zfh";
+      sha256 = "1p66fkdh1kv0ypmadmg67c3y3li3aaf1lahqh2g6r6qrzbh5da2p";
     };
-    "2.8.0-dev.10.0-x86_64-linux" = fetchurl {
+    "2.9.0-4.0.dev-x86_64-linux" = fetchurl {
       url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip";
-      sha256 = "17x0q94zampm99dd2sn6q1644lfwcl0ig2rdlmfzd9i4llj2ddbl";
+      sha256 = "16d9842fb3qbc0hy0zmimav9zndfkq96glgykj20xssc88qpjk2r";
     };
-    "2.8.0-dev.10.0-i686-linux" = fetchurl {
+    "2.9.0-4.0.dev-i686-linux" = fetchurl {
       url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${i686}-release.zip";
-      sha256 = "0hmkg4jrffzh8x2mxn8nbf7dl7k0v2vacbmxgpsl382vw9wwj96j";
+      sha256 = "105wgyxmi491c7qw0z3zhn4lv52h80ngyz4ch9dyj0sq8nndz2rc";
     };
-    "2.8.0-dev.10.0-aarch64-linux" = fetchurl {
+    "2.9.0-4.0.dev-aarch64-linux" = fetchurl {
       url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip";
-      sha256 = "185ipcmr9h76g44kzlj5pyj99cljlap82rhd1c2larfklyj5ryvv";
+      sha256 = "1x6mlmc4hccmx42k7srhma18faxpxvghjwqahna80508rdpljwgc";
     };
   };
 
diff --git a/pkgs/development/libraries/garmintools/default.nix b/pkgs/development/libraries/garmintools/default.nix
index a086648c9124..aa6ebfd33959 100644
--- a/pkgs/development/libraries/garmintools/default.nix
+++ b/pkgs/development/libraries/garmintools/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, libusb }:
+{ stdenv, fetchurl, libusb-compat-0_1 }:
 stdenv.mkDerivation {
   name = "garmintools-0.10";
   src = fetchurl {
     url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/garmintools/garmintools-0.10.tar.gz";
     sha256 = "1vjc8h0z4kx2h52yc3chxn3wh1krn234fg12sggbia9zjrzhpmgz";
   };
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
   meta = {
     description = "Provides the ability to communicate with the Garmin Forerunner 305 via the USB interface";
     homepage = "https://code.google.com/archive/p/garmintools/"; # community clone at https://github.com/ianmartin/garmintools
diff --git a/pkgs/development/libraries/hamlib/default.nix b/pkgs/development/libraries/hamlib/default.nix
index 8a359314dee4..8ef8b55be522 100644
--- a/pkgs/development/libraries/hamlib/default.nix
+++ b/pkgs/development/libraries/hamlib/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, python2, swig, gd, libxml2, tcl, libusb, pkgconfig,
+{stdenv, fetchurl, perl, python2, swig, gd, libxml2, tcl, libusb-compat-0_1, pkgconfig,
  boost, libtool, perlPackages }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ perl perlPackages.ExtUtilsMakeMaker python2 swig gd libxml2
-                  tcl libusb pkgconfig boost libtool ];
+                  tcl libusb-compat-0_1 pkgconfig boost libtool ];
 
   configureFlags = [ "--with-perl-binding" "--with-python-binding"
                      "--with-tcl-binding" "--with-rigmatrix" ];
diff --git a/pkgs/development/libraries/kinetic-cpp-client/build-fix.patch b/pkgs/development/libraries/kinetic-cpp-client/build-fix.patch
deleted file mode 100644
index 49edbf63a546..000000000000
--- a/pkgs/development/libraries/kinetic-cpp-client/build-fix.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8217cba..a6c1d70 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -32,7 +32,7 @@ else(APPLE)
-   endif(${BUILD_FOR_ARM})
- endif(APPLE)
- 
--set(CMAKE_CXX_FLAGS "--std=c++0x -Wall -Wextra -Werror -Wno-unknown-warning-option -Wno-unused-parameter -Wno-null-dereference -Wno-unused-local-typedefs -DGTEST_USE_OWN_TR1_TUPLE=1 ${BUILD_PIC_COMPILER_FLAGS}")
-+set(CMAKE_CXX_FLAGS "--std=c++11 -DGTEST_USE_OWN_TR1_TUPLE=1 ${BUILD_PIC_COMPILER_FLAGS}")
- 
- set(TEST_BINARY "kinetic_client_test")
- set(TEST_BINARY_PATH ${kinetic_cpp_client_BINARY_DIR}/${TEST_BINARY})
-@@ -50,103 +50,16 @@ set(GENERATED_SOURCES_PATH ${kinetic_cpp_client_SOURCE_DIR}/src/main/generated)
- set(PREFIX "${CMAKE_BINARY_DIR}/vendor")
- set(EXTERNAL_PREFIX "${kinetic_cpp_client_BINARY_DIR}/vendor")
- 
--include(ExternalProject)
--
--set(KINETIC_PROTO_VERSION "3.0.0")
--set(KINETIC_PROTO_MD5 "85ca027b870811a297c1f6d792498934")
--
--ExternalProject_add(
--    kinetic-proto
--    PREFIX ${PREFIX}
--    DOWNLOAD_COMMAND curl -L https://github.com/Seagate/kinetic-protocol/archive/${KINETIC_PROTO_VERSION}.tar.gz -o kinetic-proto.tar.gz && openssl md5 kinetic-proto.tar.gz | grep -q ${KINETIC_PROTO_MD5} && rm -rf kinetic-proto && mkdir -p kinetic-proto && tar -xz --strip-components 1 -C kinetic-proto -f kinetic-proto.tar.gz
--    BUILD_IN_SOURCE 1
--    CONFIGURE_COMMAND ""
--    BUILD_COMMAND ""
--    INSTALL_COMMAND ""
--)
--
--ExternalProject_add(
--    gflags
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/gflags-2.0-no-svn-files.tar.gz"
--    URL_MD5 "9084829124e02a7e6be0f0f824523423"
--    CONFIGURE_COMMAND ../gflags/configure --prefix=${EXTERNAL_PREFIX} --enable-static ${CONFIG_HOST_FLAG} ${CHILD_MAKE_FLAGS} ${PIC_MAKE_FLAGS}
--)
--
--ExternalProject_add(
--    glog
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/glog-0.3.3.tar.gz"
--    URL_MD5 "a6fd2c22f8996846e34c763422717c18"
--    PATCH_COMMAND sh ${kinetic_cpp_client_SOURCE_DIR}/patches/apply-glog-patches.sh ${kinetic_cpp_client_SOURCE_DIR}
--    CONFIGURE_COMMAND ../glog/configure --prefix=${EXTERNAL_PREFIX} --with-gflags=${EXTERNAL_PREFIX} --enable-static ${CONFIG_HOST_FLAG} ${CHILD_MAKE_FLAGS} ${PIC_MAKE_FLAGS}
--    DEPENDS gflags
--)
--
--ExternalProject_add(
--    gtest
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/gtest-1.6.0.zip"
--    URL_MD5 "4577b49f2973c90bf9ba69aa8166b786"
--    BUILD_IN_SOURCE 1
--    CONFIGURE_COMMAND ""
--    BUILD_COMMAND ${CMAKE_CXX_COMPILER} -DGTEST_USE_OWN_TR1_TUPLE=1 -I../gtest -I../gtest/include -c ../gtest/src/gtest-all.cc && ar -rv libgtest.a gtest-all.o && ranlib libgtest.a
--    INSTALL_COMMAND ""
--)
--
--ExternalProject_add(
--    gmock
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/gmock-1.6.0.zip"
--    URL_MD5 "f547f47321ca88d3965ca2efdcc2a3c1"
--    BUILD_IN_SOURCE 1
--    CONFIGURE_COMMAND ""
--    BUILD_COMMAND ${CMAKE_CXX_COMPILER} -DGTEST_USE_OWN_TR1_TUPLE=1 -I../gmock -I../gmock/include -I../gtest -I../gtest/include -c ../gmock/src/gmock-all.cc && ar -rv libgmock.a gmock-all.o && ranlib libgmock.a
--    INSTALL_COMMAND ""
--    DEPENDS gtest
--)
--
--ExternalProject_add(
--    openssl
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/openssl-1.0.1g.tar.gz"
--    URL_MD5 "de62b43dfcd858e66a74bee1c834e959"
--    BUILD_IN_SOURCE 1
--    CONFIGURE_COMMAND ${OPENSSL_CONFIGURE_COMMAND} --prefix=${EXTERNAL_PREFIX} ${BUILD_PIC_COMPILER_FLAG}
--    BUILD_COMMAND touch apps/openssl && touch openssl.pc && make ${CHILD_MAKE_FLAGS} build_libs libssl.pc libcrypto.pc
--    INSTALL_COMMAND make install_sw
--)
--
--# The protobuf build requires the existence of a protoc binary that can be
--# executed on the host machine. To handle cross compilation, we always build
--# protobuf once for the host so that we have a suitable copy of protoc.
--ExternalProject_add(
--    protoc
--    PREFIX ${EXTERNAL_PREFIX}/host
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/protobuf-2.5.0.tar.bz2"
--    URL_MD5 "a72001a9067a4c2c4e0e836d0f92ece4"
--    CONFIGURE_COMMAND ../protoc/configure --prefix=${EXTERNAL_PREFIX}/host --enable-static
--)
--
- # Protobuf code generation rules
--set(PROTOC_PATH "${PREFIX}/host/bin/protoc")
--set(PROTO_DIR "${CMAKE_BINARY_DIR}/vendor/src/kinetic-proto")
-+set(PROTOC_PATH "protoc")
-+set(PROTO_DIR "${CMAKE_BINARY_DIR}/kinetic-proto")
- set(PROTO_ORIG_PATH "${PROTO_DIR}/kinetic.proto")
- set(PROTO_MODIFIED_PATH "${PROTO_DIR}/kinetic_client.proto")
--ExternalProject_add(
--    protobuf
--    PREFIX ${EXTERNAL_PREFIX}
--    URL "${kinetic_cpp_client_SOURCE_DIR}/tarballs/protobuf-2.5.0.tar.bz2"
--    URL_MD5 "a72001a9067a4c2c4e0e836d0f92ece4"
--    CONFIGURE_COMMAND ../protobuf/configure --prefix=${EXTERNAL_PREFIX} --enable-static --with-protoc=${PROTOC_PATH} ${CONFIG_HOST_FLAG} ${CHILD_MAKE_FLAGS} ${PIC_MAKE_FLAGS}
--    DEPENDS protoc
--)
- 
- add_custom_command(
-     COMMENT "Compiling protobuf"
-     OUTPUT ${GENERATED_SOURCES_PATH}/kinetic_client.pb.h ${GENERATED_SOURCES_PATH}/kinetic_client.pb.cc
-     COMMAND mkdir -p ${GENERATED_SOURCES_PATH} && sed 's/com\\.seagate\\.kinetic\\.proto/com.seagate.kinetic.client.proto/' ${PROTO_ORIG_PATH} > ${PROTO_MODIFIED_PATH} && ${PROTOC_PATH} -I=${PROTO_DIR} --cpp_out=${GENERATED_SOURCES_PATH} ${PROTO_MODIFIED_PATH}
--    DEPENDS kinetic-proto protoc protobuf
- )
- set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${GENERATED_SOURCES_PATH})
- 
-@@ -157,21 +70,10 @@ include_directories(
- 
-     src/test/mock
-     src/test
--
--    ${EXTERNAL_PREFIX}/include
--    ${EXTERNAL_PREFIX}/src/gmock/include
--    ${EXTERNAL_PREFIX}/src/gtest/include
- )
- 
- set(LIBRARY_DEPENDENCIES
-     kinetic_client
--    ${CMAKE_BINARY_DIR}/vendor/lib/libglog.a
--    ${CMAKE_BINARY_DIR}/vendor/lib/libgflags.a
--    ${CMAKE_BINARY_DIR}/vendor/lib/libssl.a
--    ${CMAKE_BINARY_DIR}/vendor/lib/libcrypto.a
--    ${CMAKE_BINARY_DIR}/vendor/lib/libprotobuf.a
--    ${CMAKE_BINARY_DIR}/vendor/src/gtest/libgtest.a
--    ${CMAKE_BINARY_DIR}/vendor/src/gmock/libgmock.a
-     ${CMAKE_THREAD_LIBS_INIT}
-     dl
- )
-@@ -180,12 +82,68 @@ set(LIBRARY_DEPENDENCIES
- # Otherwise glog uses the standard glibc unwinder and there is no dependency.
- find_library(LIBUNWIND "unwind")
- if(LIBUNWIND)
--    set(LIBRARY_DEPENDENCIES 
--        ${LIBRARY_DEPENDENCIES} 
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-         ${LIBUNWIND}
-     )
- endif()
- 
-+find_library(LIBSSL "ssl")
-+if(LIBSSL)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBSSL}
-+    )
-+endif()
-+
-+find_library(LIBCRYPTO "crypto")
-+if(LIBCRYPTO)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBCRYPTO}
-+    )
-+endif()
-+
-+find_library(LIBPROTOBUF "protobuf")
-+if(LIBPROTOBUF)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBPROTOBUF}
-+    )
-+endif()
-+
-+find_library(LIBGLOG "glog")
-+if(LIBGLOG)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBGLOG}
-+    )
-+endif()
-+
-+find_library(LIBGFLAGS "gflags")
-+if(LIBGFLAGS)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBGFLAGS}
-+    )
-+endif()
-+
-+find_library(LIBGMOCK "gmock")
-+if(LIBGMOCK)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBGMOCK}
-+    )
-+endif()
-+
-+find_library(LIBGTEST "gtest")
-+if(LIBGTEST)
-+    set(LIBRARY_DEPENDENCIES
-+        ${LIBRARY_DEPENDENCIES}
-+		${LIBGTEST}
-+    )
-+endif()
-+
- add_library(kinetic_client
-     src/main/generated/kinetic_client.pb.cc
-     src/main/hmac_provider.cc
-diff --git a/src/test/kinetic_cpp_client_test.cc b/src/test/kinetic_cpp_client_test.cc
-index 2079fab..c5004a2 100644
---- a/src/test/kinetic_cpp_client_test.cc
-+++ b/src/test/kinetic_cpp_client_test.cc
-@@ -22,6 +22,7 @@
- 
- #include <iostream>
- 
-+#include "gflags/gflags.h"
- #include "gtest/gtest.h"
- #include "glog/logging.h"
- 
diff --git a/pkgs/development/libraries/kinetic-cpp-client/default.nix b/pkgs/development/libraries/kinetic-cpp-client/default.nix
deleted file mode 100644
index e2b81d77640f..000000000000
--- a/pkgs/development/libraries/kinetic-cpp-client/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, fetchgit, fetchurl, cmake, protobuf, libunwind, openssl, glog
-, gflags, gmock, gtest
-}:
-
-let
-  protoTar = fetchurl {
-    url = "https://github.com/Seagate/kinetic-protocol/archive/3.0.0.tar.gz";
-    sha256 = "0406pp0sdf0rg6s5g18r2d8si2rin7p6qbzp7c6pma5hyzsygz48";
-  };
-in
-stdenv.mkDerivation {
-  name = "kinetic-cpp-client-2015-04-14";
-
-  src = fetchgit {
-    url = "git://github.com/Seagate/kinetic-cpp-client.git";
-    rev = "015085a5c89db0398f80923053f36b9e0611e107";
-    sha256 = "0gm34sl6lyidnxgg1lrhkxkxqj8z1y2cqn7zhzz2f1k50pigi5da";
-  };
-
-  patches = [ ./build-fix.patch ];
-
-  postPatch = ''
-    mkdir -p build/kinetic-proto
-    tar -x --strip-components 1 -C build/kinetic-proto -f ${protoTar}
-  '';
-
-  nativeBuildInputs = [ cmake protobuf ];
-  buildInputs = [ libunwind glog gflags gmock gtest ];
-
-  # The headers and library include from these and there is no provided pc file
-  propagatedBuildInputs = [ protobuf openssl ];
-
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=true"
-  ];
-
-  preCheck = ''
-    # The checks cannot find libkinetic_client.so otherwise
-    export LD_LIBRARY_PATH="$(pwd)"
-  '';
-
-  installPhase = ''
-    # There is no included install script so do our best
-    mkdir -p $out/lib
-    cp libkinetic_client.so $out/lib
-    cp -r ../include $out
-    cp ../src/main/generated/kinetic_client.pb.h $out/include
-  '';
-
-  doCheck = true;
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/Seagate/kinetic-cpp-client";
-    description = "Code for producing C and C++ kinetic clients";
-    license = licenses.lgpl21;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/libftdi/default.nix b/pkgs/development/libraries/libftdi/default.nix
index d483cc16f083..88c848397de3 100644
--- a/pkgs/development/libraries/libftdi/default.nix
+++ b/pkgs/development/libraries/libftdi/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libusb}:
+{stdenv, fetchurl, libusb-compat-0_1}:
 
 with stdenv; mkDerivation rec {
   name = "libftdi-0.20";
@@ -8,9 +8,9 @@ with stdenv; mkDerivation rec {
     sha256 = "13l39f6k6gff30hsgh0wa2z422g9pyl91rh8a8zz6f34k2sxaxii";
   };
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
-  propagatedBuildInputs = [ libusb ];
+  propagatedBuildInputs = [ libusb-compat-0_1 ];
 
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" '';
diff --git a/pkgs/development/libraries/libmicrodns/default.nix b/pkgs/development/libraries/libmicrodns/default.nix
index 51bd69c0eddf..0728dddcb4df 100644
--- a/pkgs/development/libraries/libmicrodns/default.nix
+++ b/pkgs/development/libraries/libmicrodns/default.nix
@@ -1,22 +1,24 @@
 { stdenv
 , fetchFromGitHub
-, autoreconfHook
+, meson
+, ninja
 , pkgconfig
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.1.0";
+  version = "0.1.2";
   pname = "libmicrodns";
 
   src = fetchFromGitHub {
     owner = "videolabs";
     repo = pname;
     rev = version;
-    sha256 = "1pmf461zn35spbpbls1ih68ki7f8g8xjwhzr2csy63nnyq2k9jji";
+    sha256 = "1yb0j0acidp494d28wqhzhrfski2qjb2a5mp5bq5qrpcg38zyz6i";
   };
 
   nativeBuildInputs = [
-    autoreconfHook
+    meson
+    ninja
     pkgconfig
   ];
 
diff --git a/pkgs/development/libraries/libnfc/default.nix b/pkgs/development/libraries/libnfc/default.nix
index c3661a233afd..ed7412d66110 100644
--- a/pkgs/development/libraries/libnfc/default.nix
+++ b/pkgs/development/libraries/libnfc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libusb, readline }:
+{ stdenv, fetchurl, libusb-compat-0_1, readline }:
 
 stdenv.mkDerivation {
   pname = "libnfc";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0wj0iwwcpmpalyk61aa7yc6i4p9hgdajkrgnlswgk0vnwbc78pll";
   };
 
-  buildInputs = [ libusb readline ];
+  buildInputs = [ libusb-compat-0_1 readline ];
 
   meta = with stdenv.lib; {
     description = "Open source library libnfc for Near Field Communication";
diff --git a/pkgs/development/libraries/libusb/default.nix b/pkgs/development/libraries/libusb-compat/0.1.nix
index 2830ef284587..2830ef284587 100644
--- a/pkgs/development/libraries/libusb/default.nix
+++ b/pkgs/development/libraries/libusb-compat/0.1.nix
diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix
index 1aaba1599c0a..97079be09623 100644
--- a/pkgs/development/libraries/lirc/default.nix
+++ b/pkgs/development/libraries/lirc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, autoreconfHook, pkgconfig, help2man, python3,
-  alsaLib, xlibsWrapper, libxslt, systemd, libusb, libftdi1 }:
+  alsaLib, xlibsWrapper, libxslt, systemd, libusb-compat-0_1, libftdi1 }:
 
 stdenv.mkDerivation rec {
   name = "lirc-0.10.1";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkgconfig help2man
     (python3.withPackages (p: with p; [ pyyaml setuptools ])) ];
 
-  buildInputs = [ alsaLib xlibsWrapper libxslt systemd libusb libftdi1 ];
+  buildInputs = [ alsaLib xlibsWrapper libxslt systemd libusb-compat-0_1 libftdi1 ];
 
   configureFlags = [
     "--sysconfdir=/etc"
diff --git a/pkgs/development/libraries/openct/default.nix b/pkgs/development/libraries/openct/default.nix
index f8977c1b59c2..27a832daf475 100644
--- a/pkgs/development/libraries/openct/default.nix
+++ b/pkgs/development/libraries/openct/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, pcsclite, libusb
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, pcsclite, libusb-compat-0_1
 , doxygen, libxslt
 }:
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ pcsclite libusb doxygen libxslt ];
+  buildInputs = [ pcsclite libusb-compat-0_1 doxygen libxslt ];
 
   preInstall = ''
     mkdir -p $out/etc
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index cc9e44d990dd..b5adc78c7ce0 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, cyrus_sasl, db, groff, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "openldap-2.4.49";
+  name = "openldap-2.4.50";
 
   src = fetchurl {
     url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${name}.tgz";
-    sha256 = "0vp524rsngdcykf6ki7vprsyg7gj8z7hszg8xwxz50219fa1gcg3";
+    sha256 = "1f46nlfwmys110j36sifm7ah8m8f3s10c3vaiikmmigmifapvdaw";
   };
 
   # TODO: separate "out" and "bin"
diff --git a/pkgs/development/libraries/packr/default.nix b/pkgs/development/libraries/packr/default.nix
index 4482a9cd312d..6a53743a10ea 100644
--- a/pkgs/development/libraries/packr/default.nix
+++ b/pkgs/development/libraries/packr/default.nix
@@ -1,22 +1,46 @@
 { buildGoModule
 , fetchFromGitHub
 , lib
+, stdenv
+, symlinkJoin
 }:
 
-buildGoModule rec {
-  pname = "packr";
-  version = "2.7.1";
+let p2 = buildGoModule rec {
+  pname = "packr2";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "gobuffalo";
-    repo = pname;
+    repo = "packr";
     rev = "v${version}";
-    sha256 = "0m5kl2fq8gf1v4vllgag2xl8fd382sdgqrcdb8f5alsnrdn08kb9";
+    sha256 = "1x78yq2yg0r82h7a67078llni85gk9nbd2ismlbqgppap7fcpyai";
+  }+"/v2";
+
+  subPackages = [ "packr2" ];
+
+  modSha256 = "1xxqyn78074jna0iri7sks6b2l4sdnn5sg57n09vrrf6kh39h2y9";
+
+  meta = with stdenv.lib; {
+    description = "The simple and easy way to embed static files into Go binaries";
+    homepage = "https://github.com/gobuffalo/packr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmahut ];
+  };
+};
+p1 = buildGoModule rec {
+  pname = "packr1";
+  version = "2.8.0";
+
+  src = fetchFromGitHub {
+    owner = "gobuffalo";
+    repo = "packr";
+    rev = "v${version}";
+    sha256 = "1x78yq2yg0r82h7a67078llni85gk9nbd2ismlbqgppap7fcpyai";
   };
 
-  subPackages = [ "packr" "v2/packr2" ];
+  subPackages = [ "packr" ];
 
-  modSha256 = "0afhkvivma16bi8rz3kwcsz9mhmcn4zm6rrymxkvazx6b844hcdv";
+  modSha256 = "045qfdi82yhpghjd0cimxhas4nkj7g30n9qyvkrl9ck01sahx76f";
 
   meta = with lib; {
     description = "The simple and easy way to embed static files into Go binaries";
@@ -24,4 +48,9 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
   };
+};
+in
+symlinkJoin{
+    name = "packr";
+    paths = [p1 p2];
 }
diff --git a/pkgs/development/libraries/scmccid/default.nix b/pkgs/development/libraries/scmccid/default.nix
index 5b07482507c2..0d980d9d1a2b 100644
--- a/pkgs/development/libraries/scmccid/default.nix
+++ b/pkgs/development/libraries/scmccid/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, patchelf, libusb}:
+{stdenv, fetchurl, patchelf, libusb-compat-0_1}:
 
 assert stdenv ? cc && stdenv.cc.libc != null;
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ patchelf ];
 
   installPhase = ''
-    RPATH=${libusb.out}/lib:${stdenv.cc.libc.out}/lib
+    RPATH=${libusb-compat-0_1.out}/lib:${stdenv.cc.libc.out}/lib
 
     for a in proprietary/*/Contents/Linux/*.so*; do
         if ! test -L $a; then
diff --git a/pkgs/development/libraries/unicap/default.nix b/pkgs/development/libraries/unicap/default.nix
index 2c2b814b68df..87ca28fee983 100644
--- a/pkgs/development/libraries/unicap/default.nix
+++ b/pkgs/development/libraries/unicap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libusb, libraw1394, dcraw, intltool, perl, v4l-utils }:
+{ stdenv, fetchurl, libusb-compat-0_1, libraw1394, dcraw, intltool, perl, v4l-utils }:
 
 stdenv.mkDerivation rec {
   pname = "libunicap";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "05zcnnm4dfc6idihfi0fq5xka6x86zi89wip2ca19yz768sd33s9";
   };
 
-  buildInputs = [ libusb libraw1394 dcraw intltool perl v4l-utils ];
+  buildInputs = [ libusb-compat-0_1 libraw1394 dcraw intltool perl v4l-utils ];
 
   patches = [
     # Debian has a patch that fixes the build.
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index f1a5ddfd4a0a..84ffd2cd8130 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -61,13 +61,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.28.1";
+  version = "2.28.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "rLwmo+1cE/OeRodc9EepwFQbbPsX+eeIQyNDHLMn89g=";
+    sha256 = "udI1Jc/Y0iw3tdlkqf6ajOdYMEKi+NOSLnHmu8aMML0=";
   };
 
   patches = optionals stdenv.isLinux [
diff --git a/pkgs/development/misc/amdadl-sdk/default.nix b/pkgs/development/misc/amdadl-sdk/default.nix
deleted file mode 100644
index 236480598b90..000000000000
--- a/pkgs/development/misc/amdadl-sdk/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ requireFile, stdenv, unzip }:
-
-stdenv.mkDerivation {
-  version = "6.0";
-  pname = "amdadl-sdk";
-
-  src = requireFile {
-    name = "ADL_SDK_6.0.zip";
-    url = "http://developer.amd.com/tools-and-sdks/graphics-development/display-library-adl-sdk/";
-    sha256 = "429f4fd1edebb030d6366f4e0a877cf105e4383f7dd2ccf54e5aef8f2e4242c9";
-  };
-
-  buildInputs = [ unzip ];
-
-  doCheck = false;
-
-  unpackPhase = ''
-    unzip $src
-  '';
-
-  patchPhase = ''
-    sed -i -e '/include/a \#include <wchar.h>' include/adl_structures.h || die
-  '';
-
-  buildPhase = ''
-    #Build adlutil
-    cd adlutil
-    gcc main.c -o adlutil -DLINUX -ldl -I ../include/ 
-    cd ..
-  '';
-
-  installPhase = ''
-    #Install SDK
-    mkdir -p $out/bin
-    cp -r include "$out/"
-    cp "adlutil/adlutil" "$out/bin/adlutil"
-
-    #Fix modes
-    chmod -R 755 "$out/bin/"
-  '';
-
-  meta = with stdenv.lib; {
-    description = "API to access display driver functionality for ATI graphics cards";
-    homepage = "https://developer.amd.com/tools/graphics-development/display-library-adl-sdk/";
-    license = licenses.unfree;
-    maintainers = [ maintainers.offline ];
-    platforms = stdenv.lib.platforms.linux;
-    hydraPlatforms = [];
-  };
-}
diff --git a/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch b/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
deleted file mode 100644
index f474f76f01e4..000000000000
--- a/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- samples/Makefile	2012-11-29 05:58:48.000000000 +0100
-+++ samples/Makefile	2012-12-30 20:13:30.926576277 +0100
-@@ -3,7 +3,6 @@
- include $(DEPTH)/make/openclsdkdefs.mk 
- 
- SUBDIRS = opencl 
--SUBDIRS += aparapi 
- ifneq ($(OS), lnx)
- SUBDIRS += C++Amp
- ifeq ($(BITS), 64)
diff --git a/pkgs/development/misc/amdapp-sdk/default.nix b/pkgs/development/misc/amdapp-sdk/default.nix
deleted file mode 100644
index 68109e05e61e..000000000000
--- a/pkgs/development/misc/amdapp-sdk/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, perl, libGLU, libGL, xorg,
-  version? "2.8", # What version
-  samples? false # Should samples be installed
-}:
-
-let
-
-  bits = if stdenv.hostPlatform.system == "x86_64-linux" then "64"
-         else "32";
-
-  arch = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64"
-         else "x86";
-
-  src_info = {
-    "2.6" = {
-      url = "http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.6-lnx${bits}.tgz";
-      x86 = "03vyvqp44f96036zsyy8n21ymbzy2bx09hlbd6ci3ikj8g7ic1dm";
-      x86_64 = "1fj55358s4blxq9bp77k07gqi22n5nfkzwjkbdc62gmy1zxxlhih";
-   };
-
-    "2.7" = {
-      url = "http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.7-lnx${bits}.tgz";
-      x86 = "1v26n7g1xvlg5ralbfk3qiy34gj8fascpnjzm3120b6sgykfp16b";
-      x86_64 = "08bi43bgnsxb47vbirh09qy02w7zxymqlqr8iikk9aavfxjlmch1";
-      patches = [ ./gcc-5.patch];
-    };
-
-    "2.8" = {
-      url = "https://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v2.8-lnx${bits}.tgz";
-      x86 = "99610737f21b2f035e0eac4c9e776446cc4378a614c7667de03a82904ab2d356";
-      x86_64 = "d9c120367225bb1cd21abbcf77cb0a69cfb4bb6932d0572990104c566aab9681";
-
-      # TODO: Add support for aparapi, java parallel api
-      patches = [ ./01-remove-aparapi-samples.patch ./gcc-5.patch];
-    };
-  };
-
-in stdenv.mkDerivation {
-  pname = "amdapp-sdk";
-  inherit version;
-
-  src = fetchurl {
-    url = stdenv.lib.getAttrFromPath [version "url"] src_info;
-    sha256 = stdenv.lib.getAttrFromPath [version arch] src_info;
-  };
-
-  patches = stdenv.lib.attrByPath [version "patches"] [] src_info;
-
-  patchFlags = [ "-p0" ];
-  buildInputs = [ makeWrapper perl libGLU libGL xorg.libX11 xorg.libXext xorg.libXaw xorg.libXi xorg.libXxf86vm ];
-  propagatedBuildInputs = [ stdenv.cc ];
-  NIX_LDFLAGS = "-lX11 -lXext -lXmu -lXi -lXxf86vm";
-  doCheck = false;
-
-  unpackPhase = ''
-    tar xvzf $src
-    tar xf AMD-APP-SDK-v${version}-*-lnx${bits}.tgz
-    cd AMD-APP-SDK-v${version}-*-lnx${bits}
-  '';
-
-  buildPhase = if !samples then ''echo "nothing to build"'' else null;
-
-  installPhase = ''
-    # Install SDK
-    mkdir -p $out
-    cp -r {docs,include} "$out/"
-    mkdir -p "$out/"{bin,lib,samples/opencl/bin}
-    cp -r "./bin/${arch}/clinfo" "$out/bin/clinfo"
-    cp -r "./lib/${arch}/"* "$out/lib/"
-
-    # Register ICD
-    mkdir -p "$out/etc/OpenCL/vendors"
-    echo "$out/lib/libamdocl${bits}.so" > "$out/etc/OpenCL/vendors/amd.icd"
-    # The OpenCL ICD specifications: http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt
-
-    # Install includes
-    mkdir -p "$out/usr/include/"{CAL,OpenVideo}
-    install -m644 './include/OpenVideo/'{OVDecode.h,OVDecodeTypes.h} "$out/usr/include/OpenVideo/"
-
-    ${ if samples then ''
-      # Install samples
-      find ./samples/opencl/ -mindepth 1 -maxdepth 1 -type d -not -name bin -exec cp -r {} "$out/samples/opencl" \;
-      cp -r "./samples/opencl/bin/${arch}/"* "$out/samples/opencl/bin"
-      for f in $(find "$out/samples/opencl/bin/" -type f -not -name "*.*");
-      do
-        wrapProgram "$f" --prefix PATH ":" "${stdenv.cc}/bin"
-      done'' else ""
-    }
-
-    # Create wrappers
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/clinfo
-    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib $out/bin/clinfo
-
-    # Fix modes
-    find "$out/" -type f -exec chmod 644 {} \;
-    chmod -R 755 "$out/bin/"
-    find "$out/samples/opencl/bin/" -type f -name ".*" -exec chmod 755 {} \;
-    find "$out/samples/opencl/bin/" -type f -not -name "*.*" -exec chmod 755 {} \;
-  '';
-
-  meta = with stdenv.lib; {
-    description = "AMD Accelerated Parallel Processing (APP) SDK, with OpenCL 1.2 support";
-    homepage = "https://developer.amd.com/amd-accelerated-parallel-processing-app-sdk/";
-    license = licenses.amd;
-    maintainers = [ maintainers.offline ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
- };
-}
diff --git a/pkgs/development/misc/amdapp-sdk/gcc-5.patch b/pkgs/development/misc/amdapp-sdk/gcc-5.patch
deleted file mode 100644
index dc8538db4c1f..000000000000
--- a/pkgs/development/misc/amdapp-sdk/gcc-5.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- include/CL/cl.hpp
-+++ include/CL/cl.hpp
-@@ -201,7 +201,7 @@
- #include <functional>
- #define __CL_FUNCTION_TYPE typename std::function
- #define CL_USE_CPP_FUNCTORS
--#elif (__GNUC__ == 4 && __GNUC_MINOR__ >= 1 && !defined(STLPORT)) || defined(__APPLE__) || defined(__MACOSX)
-+#elif (((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ >= 5)) && !defined(STLPORT)) || defined(__APPLE__) || defined(__MACOSX)
- #include <tr1/functional>
- #define __CL_FUNCTION_TYPE typename std::tr1::function
- #define CL_USE_CPP_FUNCTORS
diff --git a/pkgs/development/misc/msp430/mspdebug.nix b/pkgs/development/misc/msp430/mspdebug.nix
index 6bb6b683f55e..3c7ff00151a4 100644
--- a/pkgs/development/misc/msp430/mspdebug.nix
+++ b/pkgs/development/misc/msp430/mspdebug.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libusb, readline ? null }:
+{ stdenv, fetchFromGitHub, libusb-compat-0_1, readline ? null }:
 
 let
   version = "0.25";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
     sha256 = "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c";
   };
 
-  buildInputs = [ libusb readline ];
+  buildInputs = [ libusb-compat-0_1 readline ];
   makeFlags = [ "PREFIX=$(out)" "INSTALL=install" ] ++
     (if readline == null then [ "WITHOUT_READLINE=1" ] else []);
 
diff --git a/pkgs/development/mobile/webos/novacomd.nix b/pkgs/development/mobile/webos/novacomd.nix
index 4d62dd305d3a..932ec0e59d64 100644
--- a/pkgs/development/mobile/webos/novacomd.nix
+++ b/pkgs/development/mobile/webos/novacomd.nix
@@ -1,7 +1,7 @@
 { stdenv,
 fetchFromGitHub, fetchpatch,
 webos, cmake, pkgconfig,
-libusb }:
+libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
   pname = "novacomd";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig webos.cmake-modules ];
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   cmakeFlags = [ "-DWEBOS_TARGET_MACHINE_IMPL=host" ];
 
diff --git a/pkgs/development/mobile/xpwn/default.nix b/pkgs/development/mobile/xpwn/default.nix
index 9ec5977d5947..0c49a29b3222 100644
--- a/pkgs/development/mobile/xpwn/default.nix
+++ b/pkgs/development/mobile/xpwn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb, openssl }:
+{ stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb-compat-0_1, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "xpwn";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ zlib libpng bzip2 libusb openssl ];
+  buildInputs = [ zlib libpng bzip2 libusb-compat-0_1 openssl ];
 
   meta = with stdenv.lib; {
     homepage    = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
new file mode 100644
index 000000000000..7e2b09cca684
--- /dev/null
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "auth0-python";
+  version = "3.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c2fdc3ff230638a2776d2b3761e787ca93dc33a26f841504fc260f947256f453";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    mock
+  ];
+
+  meta = with lib; {
+    description = "Auth0 Python SDK";
+    homepage = "https://github.com/auth0/auth0-python";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/batchgenerators/default.nix b/pkgs/development/python-modules/batchgenerators/default.nix
index 001c3cc19a5e..63aa7883e3a9 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -1,30 +1,36 @@
 { lib
 , buildPythonPackage
 , isPy27
-, fetchPypi
+, fetchFromGitHub
 , pytest
 , unittest2
 , future
 , numpy
+, pillow
 , scipy
 , scikitlearn
 , scikitimage
 , threadpoolctl
 }:
 
-
 buildPythonPackage rec {
   pname = "batchgenerators";
-  version = "0.19.7";
+  version = "0.20.0";
 
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0qqzwqf5r0q6jh8avz4f9kf8x96crvdnkznhf24pbm0faf8yk67q";
+  src = fetchFromGitHub {
+    owner = "MIC-DKFZ";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0cc3i4wznqb7lk8n6jkprvkpsby6r7khkxqwn75k8f01mxgjfpvf";
+    
   };
 
-  propagatedBuildInputs = [ future numpy scipy scikitlearn scikitimage threadpoolctl ];
+  propagatedBuildInputs = [
+    future numpy pillow scipy scikitlearn scikitimage threadpoolctl
+  ];
+
   checkInputs = [ pytest unittest2 ];
 
   checkPhase = "pytest tests";
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
new file mode 100644
index 000000000000..02454b74efa9
--- /dev/null
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, future
+, pyyaml
+, jsonlines
+}:
+
+buildPythonPackage rec {
+  pname = "cloudflare";
+  version = "2.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4463d5f2927338384169315f34c2a8ac0840075b59489f8d1d773b91caba6c39";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    future
+    pyyaml
+    jsonlines
+  ];
+
+  # no tests associated with package
+  doCheck = false;
+  pythonImportsCheck = [ "CloudFlare" ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Cloudflare v4 API";
+    homepage = "https://github.com/cloudflare/python-cloudflare";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/fasttext/default.nix b/pkgs/development/python-modules/fasttext/default.nix
index 050b3873a00e..42e6446e8643 100644
--- a/pkgs/development/python-modules/fasttext/default.nix
+++ b/pkgs/development/python-modules/fasttext/default.nix
@@ -1,18 +1,12 @@
-{stdenv, buildPythonPackage, fetchFromGitHub, numpy, pybind11}:
+{stdenv, buildPythonPackage, fetchFromGitHub, numpy, pkgs, pybind11 }:
 
 buildPythonPackage rec {
-  pname = "fasttext";
-  version = "0.9.1";
-
-  src = fetchFromGitHub {
-    owner = "facebookresearch";
-    repo = "fastText";
-    rev = "v${version}";
-    sha256 = "1cbzz98qn8aypp4r5kwwwc9wiq5bwzv51kcsb15xjfs9lz8h3rii";
-  };
+  inherit (pkgs.fasttext) pname version src;
 
   buildInputs = [ pybind11 ];
 
+  pythonImportsCheck = [ "fasttext" ];
+
   propagatedBuildInputs = [ numpy ];
 
   preBuild = ''
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 4608d3f93e6f..5850d7e67b03 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -1,22 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, protobuf3_6 }:
+{ lib, buildPythonPackage, fetchFromGitHub, python }:
 
 let
-  py = python.override {
-    packageOverrides = self: super: {
-      protobuf = super.protobuf.override {
-        protobuf = protobuf3_6;
-      };
-    };
-  };
+  py = python;
 in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.19";
+  version = "8.0.20";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "1jscmc5s7mwx43gvxjlqc30ylp5jjpmkqx7s3b9nllbh926p3ixg";
+    sha256 = "1pm98mjbkhwawhni98cjhp0gg3mim75i0sdby77vzrlcrxajxkbw";
   };
 
   propagatedBuildInputs = with py.pkgs; [ protobuf dnspython ];
@@ -33,6 +27,7 @@ in buildPythonPackage rec {
       implements the DB API v2.0 specification.
     '';
     homepage = "https://github.com/mysql/mysql-connector-python";
+    changelog = "https://raw.githubusercontent.com/mysql/mysql-connector-python/${version}/CHANGES.txt";
     license = [ lib.licenses.gpl2 ];
     maintainers = with lib.maintainers; [ primeos ];
   };
diff --git a/pkgs/development/python-modules/pylibftdi/default.nix b/pkgs/development/python-modules/pylibftdi/default.nix
new file mode 100644
index 000000000000..9e8f96665d0b
--- /dev/null
+++ b/pkgs/development/python-modules/pylibftdi/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, httpserver
+, libftdi1
+, libusb1
+}:
+
+buildPythonPackage rec {
+  pname = "pylibftdi";
+  version = "0.18.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17c5h4xz1grynbpffngjflk3dlw2g2zbhkwb7h5v4n9rjdv41l5x";
+  };
+
+  propagatedBuildInputs = [
+    httpserver
+    libftdi1
+    libusb1
+  ];
+
+  postPatch = ''
+    substituteInPlace pylibftdi/driver.py \
+      --replace "self._load_library('libusb')" "cdll.LoadLibrary('${libusb1.out}/lib/libusb1.so')" \
+      --replace "self._load_library('libftdi')" "cdll.LoadLibrary('${libftdi1.out}/lib/libftdi1.so')"
+  '';
+
+  pythonImportsCheck = [ "pylibftdi" ];
+
+  meta = with lib; {
+    homepage = "https://bitbucket.org/codedstructure/pylibftdi/src/default/";
+    description = "Minimal pythonic wrapper to Intra2net's libftdi driver for FTDI's USB devices";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 37dc9e51beab..48a1f20cfd96 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchFromGitHub
 , buildPackages
 , pkgconfig
-, libusb, readline, libewf, perl, zlib, openssl
+, libusb-compat-0_1, readline, libewf, perl, zlib, openssl
 , libuv, file, libzip, xxHash
 , gtk2 ? null, vte ? null, gtkdialog ? null
 , python3 ? null
@@ -84,7 +84,7 @@ let
       depsBuildBuild = [ buildPackages.stdenv.cc ];
 
       nativeBuildInputs = [ pkgconfig ];
-      buildInputs = [ file readline libusb libewf perl zlib openssl libuv ]
+      buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
         ++ optional useX11 [ gtkdialog vte gtk2 ]
         ++ optional rubyBindings [ ruby ]
         ++ optional pythonBindings [ python3 ]
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
index 27c72b351e73..9cdd72eeaaf4 100644
--- a/pkgs/development/tools/bazel-watcher/default.nix
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -5,35 +5,29 @@
 , go
 , python
 , stdenv
+, iana-etc
+, mailcap
+, tzdata
 }:
 
 let
   patches = [
     ./use-go-in-path.patch
-
-    # update rules_go to fix the build. Remove these when updating past 0.10.3
-    (fetchpatch {
-      url = "https://github.com/bazelbuild/bazel-watcher/commit/686130f50cea274f7453f6abc8c5249654047462.patch";
-      sha256 = "0rzs01sfiinl5d3dq9sx1bhl8kkzppdwh964fr7bzafqcxv5llmb";
-    })
-    (fetchpatch {
-      url = "https://github.com/bazelbuild/bazel-watcher/commit/18bdb44832ccc533e0ab3923ef80060eeb24582d.patch";
-      sha256 = "0k5hvlxlg4n092d53cbfxqqhzc6f1jv4licdhhi1dhckkhb4sdk6";
-    })
   ];
 in
 buildBazelPackage rec {
   name = "bazel-watcher-${version}";
-  version = "0.10.3";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "bazel-watcher";
     rev = "v${version}";
-    sha256 = "17z4nqqsdrainbh8fmhf6sgrxwf7aknadmn94z1yqpxa7kb9x33v";
+    sha256 = "1fc3sp79znbbq1yjap56lham72n7cap8yfghpzrzmpl5brybjkvm";
   };
 
   nativeBuildInputs = [ go git python ];
+  removeRulesCC = false;
 
   bazelTarget = "//ibazel";
 
@@ -55,6 +49,10 @@ buildBazelPackage rec {
       rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
       sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
 
+      # Retains go build input markers
+      chmod -R 755 $bazelOut/external/{bazel_gazelle_go_repository_cache,@\bazel_gazelle_go_repository_cache.marker}
+      rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,@\bazel_gazelle_go_repository_cache.marker}
+
       # Remove the gazelle tools, they contain go binaries that are built
       # non-deterministically. As long as the gazelle version matches the tools
       # should be equivalent.
@@ -62,7 +60,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "0cmj186n2y1g9kkdhcivmh2qvigvpnbp03m575b7hgsxi1cp3ssj";
+    sha256 = "0wj573dcirssr2cmq90b4yl57mv3gsxaj1s26afvkz1dvyxmq7sz";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 6baa91f44c91..c40572a4f2aa 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.222.1";
+  version = "2.222.3";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0glmx8xi99mbfr84hi4sn36qkxw00rfn8wlz5n674ygbdj1vnv2s";
+    sha256 = "1087rih5cb4ici538rcgkrfhcqckbs9i2mpzd59zcx4yw91dca8m";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/misc/avrdude/default.nix b/pkgs/development/tools/misc/avrdude/default.nix
index bca091d63095..bb0520cf28ef 100644
--- a/pkgs/development/tools/misc/avrdude/default.nix
+++ b/pkgs/development/tools/misc/avrdude/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, yacc, flex, libusb, libelf, libftdi1, readline
+{ stdenv, fetchurl, yacc, flex, libusb-compat-0_1, libelf, libftdi1, readline
 # docSupport is a big dependency, disabled by default
 , docSupport ? false, texLive ? null, texinfo ? null, texi2html ? null
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optionals docSupport "--enable-doc";
 
-  buildInputs = [ yacc flex libusb libelf libftdi1 readline ]
+  buildInputs = [ yacc flex libusb-compat-0_1 libelf libftdi1 readline ]
     ++ stdenv.lib.optionals docSupport [ texLive texinfo texi2html ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/blackmagic/default.nix b/pkgs/development/tools/misc/blackmagic/default.nix
index 224cf16d7632..6e733cfe28ab 100644
--- a/pkgs/development/tools/misc/blackmagic/default.nix
+++ b/pkgs/development/tools/misc/blackmagic/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub
-, gcc-arm-embedded, libftdi1, libusb, pkgconfig
+, gcc-arm-embedded, libftdi1, libusb-compat-0_1, pkgconfig
 , python, pythonPackages
 }:
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libftdi1
-    libusb
+    libusb-compat-0_1
     python
     pythonPackages.intelhex
   ];
diff --git a/pkgs/development/tools/misc/dfu-programmer/default.nix b/pkgs/development/tools/misc/dfu-programmer/default.nix
index 10e6dc0d8b82..a474ccc7e594 100644
--- a/pkgs/development/tools/misc/dfu-programmer/default.nix
+++ b/pkgs/development/tools/misc/dfu-programmer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libusb }:
+{ stdenv, fetchurl, libusb-compat-0_1 }:
 let
   version = "0.7.2";
 in
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   pname = "dfu-programmer";
   inherit version;
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   src = fetchurl {
     url = "mirror://sourceforge/dfu-programmer/${pname}-${version}.tar.gz";
diff --git a/pkgs/development/tools/misc/micronucleus/default.nix b/pkgs/development/tools/misc/micronucleus/default.nix
index 9fbafebb10c5..890439adc6e9 100644
--- a/pkgs/development/tools/misc/micronucleus/default.nix
+++ b/pkgs/development/tools/misc/micronucleus/default.nix
@@ -1,7 +1,7 @@
 {
   pkgs
 , stdenv
-, libusb
+, libusb-compat-0_1
 , fetchFromGitHub
 , lib
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
      sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in";
    };
 
-   buildInputs = [ libusb ];
+   buildInputs = [ libusb-compat-0_1 ];
    makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "CC=cc" ];
 
    installPhase = ''
diff --git a/pkgs/development/tools/misc/teensy-loader-cli/default.nix b/pkgs/development/tools/misc/teensy-loader-cli/default.nix
index e03320f84295..62c480707cdd 100644
--- a/pkgs/development/tools/misc/teensy-loader-cli/default.nix
+++ b/pkgs/development/tools/misc/teensy-loader-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, go-md2man, installShellFiles, libusb }:
+{ stdenv, fetchFromGitHub, go-md2man, installShellFiles, libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
   pname = "teensy-loader-cli";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1yx8vsh6b29pqr4zb6sx47429i9x51hj9psn8zksfz75j5ivfd5i";
   };
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   nativeBuildInputs = [ go-md2man installShellFiles ];
 
diff --git a/pkgs/development/tools/misc/wishbone-tool/default.nix b/pkgs/development/tools/misc/wishbone-tool/default.nix
index 8c2e27d64507..d900d14e33c2 100644
--- a/pkgs/development/tools/misc/wishbone-tool/default.nix
+++ b/pkgs/development/tools/misc/wishbone-tool/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform, libusb }:
+{ lib, fetchFromGitHub, rustPlatform, libusb-compat-0_1 }:
 
 let
   version = "0.6.9";
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage {
   '';
   cargoSha256 = "0d5kcwy0cgxqfxf2xysw65ng84q4knhp4fgvh6dwqhf0nsca9gvs";
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   meta = with lib; {
     description = "Manipulate a Wishbone device over some sort of bridge";
diff --git a/pkgs/development/tools/misc/xc3sprog/default.nix b/pkgs/development/tools/misc/xc3sprog/default.nix
index b39e9028afda..1ccd6c2ec4f2 100644
--- a/pkgs/development/tools/misc/xc3sprog/default.nix
+++ b/pkgs/development/tools/misc/xc3sprog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, cmake, libusb, libftdi }:
+{ stdenv, fetchsvn, cmake, libusb-compat-0_1, libftdi }:
 
 # The xc3sprog project doesn't seem to make proper releases, they only put out
 # prebuilt binary subversion snapshots on sourceforge.
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     rev = version;
   };
 
-  buildInputs = [ cmake libusb libftdi ];
+  buildInputs = [ cmake libusb-compat-0_1 libftdi ];
 
   meta = with stdenv.lib; {
     description = "Command-line tools for programming FPGAs, microcontrollers and PROMs via JTAG";
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 14b64094efa3..af8595b5641d 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.16.2";
-    sha256 = "0y5yd6h13fr34byi7h5xdjaivgcxiz0ykcmpk9nm5ra01b54fp2m";
+    version = "12.16.3";
+    sha256 = "18srfcv9zi39960szdnd4rgfj9w295z1agjvpw8arwn75449nmgh";
   }
diff --git a/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix b/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
index 308be5337d09..4088ce700de2 100644
--- a/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cups, libusb, libxml2, perl }:
+{ stdenv, fetchurl, cups, libusb-compat-0_1, libxml2, perl }:
 
 let
 
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     cups
-    libusb
+    libusb-compat-0_1
     libxml2
     perl
   ];
@@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
     done
 
     patchelf --set-rpath "$out/lib:${stdenv.lib.getLib cups}/lib" "$out/lib/libscmssc.so"
-    patchelf --set-rpath "$out/lib:${libxml2.out}/lib:${libusb.out}/lib" "$out/lib/sane/libsane-smfp.so.1.0.1"
+    patchelf --set-rpath "$out/lib:${libxml2.out}/lib:${libusb-compat-0_1.out}/lib" "$out/lib/sane/libsane-smfp.so.1.0.1"
 
     ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
   '';
diff --git a/pkgs/misc/cups/drivers/samsung/1.00.37.nix b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
index b7e75c2a16a9..c205560706f6 100644
--- a/pkgs/misc/cups/drivers/samsung/1.00.37.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cups, libusb, libxml2 }:
+{ stdenv, fetchurl, cups, libusb-compat-0_1, libxml2 }:
 
 let
 
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     cups
-    libusb
+    libusb-compat-0_1
     libxml2
   ];
 
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
     done
 
     patchelf --set-rpath "$out/lib:${stdenv.lib.getLib cups}/lib" "$out/lib/libscmssc.so"
-    patchelf --set-rpath "$out/lib:${libxml2.out}/lib:${libusb.out}/lib" "$out/lib/sane/libsane-smfp.so.1.0.1"
+    patchelf --set-rpath "$out/lib:${libxml2.out}/lib:${libusb-compat-0_1.out}/lib" "$out/lib/sane/libsane-smfp.so.1.0.1"
 
     ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
   '';
diff --git a/pkgs/misc/cups/drivers/samsung/4.01.17.nix b/pkgs/misc/cups/drivers/samsung/4.01.17.nix
index 755003e4d300..5de93b20cb80 100644
--- a/pkgs/misc/cups/drivers/samsung/4.01.17.nix
+++ b/pkgs/misc/cups/drivers/samsung/4.01.17.nix
@@ -11,14 +11,14 @@
 # }
 # (This advice was tested on the 1st November 2016.)
 
-{ stdenv, fetchurl, cups, libusb }:
+{ stdenv, fetchurl, cups, libusb-compat-0_1 }:
 
 # Do not bump lightly! Visit <http://www.bchemnet.com/suldr/supported.html>
 # to see what will break when upgrading. Consider a new versioned attribute.
 let
   installationPath = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "i386";
   appendPath = if stdenv.hostPlatform.system == "x86_64-linux" then "64" else "";
-  libPath = stdenv.lib.makeLibraryPath [ cups libusb ] + ":$out/lib:${stdenv.cc.cc.lib}/lib${appendPath}";
+  libPath = stdenv.lib.makeLibraryPath [ cups libusb-compat-0_1 ] + ":$out/lib:${stdenv.cc.cc.lib}/lib${appendPath}";
 in stdenv.mkDerivation rec {
   pname = "samsung-UnifiedLinuxDriver";
   version = "4.01.17";
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index ecf79a953fe3..9724e68a04df 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -3,7 +3,7 @@ pkgconfig, libtool,
 gtk2,
 libxml2,
 libxslt,
-libusb,
+libusb-compat-0_1,
 sane-backends,
 rpm, cpio,
 getopt,
@@ -263,7 +263,7 @@ stdenv.mkDerivation rec {
     gtk2
     libxml2
     libtool
-    libusb
+    libusb-compat-0_1
     sane-backends
     makeWrapper
   ];
diff --git a/pkgs/misc/drivers/gutenprint/default.nix b/pkgs/misc/drivers/gutenprint/default.nix
index 96c0968882d3..9946f499329c 100644
--- a/pkgs/misc/drivers/gutenprint/default.nix
+++ b/pkgs/misc/drivers/gutenprint/default.nix
@@ -2,7 +2,7 @@
 { stdenv, lib, fetchurl, makeWrapper, pkgconfig
 , ijs, zlib
 , gimp2Support ? false, gimp
-, cupsSupport ? true, cups, libusb, perl
+, cupsSupport ? true, cups, libusb-compat-0_1, perl
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ ijs zlib ]
     ++ lib.optionals gimp2Support [ gimp.gtk gimp ]
-    ++ lib.optionals cupsSupport [ cups libusb perl ];
+    ++ lib.optionals cupsSupport [ cups libusb-compat-0_1 perl ];
 
   configureFlags = lib.optionals cupsSupport [
     "--disable-static-genppd" # should be harmless on NixOS
diff --git a/pkgs/os-specific/linux/g15daemon/default.nix b/pkgs/os-specific/linux/g15daemon/default.nix
index d00bf2f74335..c670fc86d13b 100644
--- a/pkgs/os-specific/linux/g15daemon/default.nix
+++ b/pkgs/os-specific/linux/g15daemon/default.nix
@@ -5,7 +5,7 @@
 , fetchpatch
 , patchelf
 , freetype
-, libusb
+, libusb-compat-0_1
 }:
 let
   license = lib.licenses.gpl2;
@@ -25,7 +25,7 @@ let
       sha256 = "1mkrf622n0cmz57lj8w9q82a9dcr1lmyyxbnrghrxzb6gvifnbqk";
     };
 
-    buildInputs = [ libusb ];
+    buildInputs = [ libusb-compat-0_1 ];
 
     enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/guvcview/default.nix b/pkgs/os-specific/linux/guvcview/default.nix
index e87768a9ff13..d780cade7865 100644
--- a/pkgs/os-specific/linux/guvcview/default.nix
+++ b/pkgs/os-specific/linux/guvcview/default.nix
@@ -1,6 +1,28 @@
-{ config, stdenv, fetchurl, intltool, pkgconfig
-, gtk3, portaudio, SDL2, ffmpeg, udev, libusb1, libv4l, alsaLib, gsl
-, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null }:
+{ config
+, stdenv
+, fetchurl
+, intltool
+, pkgconfig
+, portaudio
+, SDL2
+, ffmpeg
+, udev
+, libusb1
+, libv4l
+, alsaLib
+, gsl
+, libpng
+, sfml
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
+, libpulseaudio ? null
+, useQt ? false
+, qtbase ? null
+, wrapQtAppsHook ? null
+# can be turned off if used as a library
+, useGtk ? true
+, gtk3 ? null
+, wrapGAppsHook ? null
+}:
 
 assert pulseaudioSupport -> libpulseaudio != null;
 
@@ -13,19 +35,38 @@ stdenv.mkDerivation rec {
     sha256 = "11byyfpkcik7wvf2qic77zjamfr2rhji97dpj1gy2fg1bvpiqf4m";
   };
 
-  buildInputs =
-    [ SDL2
-      alsaLib
-      ffmpeg
-      gtk3
-      intltool
-      libusb1
-      libv4l
-      pkgconfig
-      portaudio
-      udev
-      gsl
-    ] ++ stdenv.lib.optional pulseaudioSupport libpulseaudio;
+  nativeBuildInputs = [
+    intltool
+    pkgconfig
+  ]
+    ++ stdenv.lib.optionals (useGtk) [ wrapGAppsHook ]
+    ++ stdenv.lib.optionals (useQt) [ wrapQtAppsHook ]
+  ;
+
+  buildInputs = [
+    SDL2
+    alsaLib
+    ffmpeg
+    libusb1
+    libv4l
+    portaudio
+    udev
+    gsl
+    libpng
+    sfml
+  ] 
+    ++ stdenv.lib.optionals (pulseaudioSupport) [ libpulseaudio ]
+    ++ stdenv.lib.optionals (useGtk) [ gtk3 ]
+    ++ stdenv.lib.optionals (useQt) [
+      qtbase
+    ]
+  ;
+  configureFlags = [
+    "--enable-sfml"
+  ]
+    ++ stdenv.lib.optionals (useGtk) [ "--enable-gtk3" ]
+    ++ stdenv.lib.optionals (useQt) [ "--enable-qt5" ]
+  ;
 
   meta = with stdenv.lib; {
     description = "A simple interface for devices supported by the linux UVC driver";
diff --git a/pkgs/os-specific/linux/libfabric/default.nix b/pkgs/os-specific/linux/libfabric/default.nix
new file mode 100644
index 000000000000..6383832a7e73
--- /dev/null
+++ b/pkgs/os-specific/linux/libfabric/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, libpsm2 }:
+
+stdenv.mkDerivation rec {
+  pname = "libfabric";
+  version = "1.10.0";
+
+  enableParallelBuilding = true;
+
+  src = fetchFromGitHub {
+    owner = "ofiwg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0amgc5w7qg96r9a21jl92m6jzn4z2j3iyk7jf7kwyzfi4jhlkv89";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ] ;
+
+  buildInputs = [ libpsm2 ] ;
+
+  configureFlags = [ "--enable-psm2=${libpsm2}" ] ;
+
+  meta = with stdenv.lib; {
+    homepage = "http://libfabric.org/";
+    description = "Open Fabric Interfaces";
+    license = with licenses; [ gpl2 bsd2 ];
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.bzizou ];
+  };
+}
diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix
index db384c71d748..32ae45fbb0ea 100644
--- a/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "v4l2loopback-${version}-${kernel.version}";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "umlaeute";
     repo = "v4l2loopback";
     rev = "v${version}";
-    sha256 = "0sp7n6hprgf1z7vzwshs5gyyn6syn4pw5xx7xqrfcwkx6cja6sys";
+    sha256 = "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn";
   };
 
   hardeningDisable = [ "format" "pic" ];
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index 8703e76cb713..299ad0bdbcb7 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "consul";
   version = "1.7.2";
   rev = "v${version}";
 
-  goPackagePath = "github.com/hashicorp/consul";
-
-  # Note: Currently only release tags are supported, because they have the Consul UI
-  # vendored. See
-  #   https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834
-  # If you want to use a non-release commit as `src`, you probably want to improve
-  # this derivation so that it can build the UI's JavaScript from source.
-  # See https://github.com/NixOS/nixpkgs/pull/49082 for something like that.
-  # Or, if you want to patch something that doesn't touch the UI, you may want
+  # Note: Currently only release tags are supported, because they have the Consul UI	
+  # vendored. See	
+  #   https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834	
+  # If you want to use a non-release commit as `src`, you probably want to improve	
+  # this derivation so that it can build the UI's JavaScript from source.	
+  # See https://github.com/NixOS/nixpkgs/pull/49082 for something like that.	
+  # Or, if you want to patch something that doesn't touch the UI, you may want	
   # to apply your changes as patches on top of a release commit.
   src = fetchFromGitHub {
     owner = "hashicorp";
@@ -22,8 +20,14 @@ buildGoPackage rec {
     sha256 = "1q587d8aqfkwg4fymr56fnf038vkxbdqz5yilz96dzny27dhspj4";
   };
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-X github.com/hashicorp/consul/version.GitDescribe=v${version} -X github.com/hashicorp/consul/version.Version=${version} -X github.com/hashicorp/consul/version.VersionPrerelease=")
+  # This corresponds to paths with package main - normally unneeded but consul
+  # has a split module structure in one repo
+  subPackages = ["." "connect/certgen"];
+
+  modSha256 = "164834gr8a7qvp72ccjpkbbg4h8idrcxvcp1fl7yi59iqsswfr7b";
+
+  preBuild = ''	
+  buildFlagsArray+=("-ldflags" "-X github.com/hashicorp/consul/version.GitDescribe=v${version} -X github.com/hashicorp/consul/version.Version=${version} -X github.com/hashicorp/consul/version.VersionPrerelease=")	
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/lcdproc/default.nix b/pkgs/servers/monitoring/lcdproc/default.nix
index 927c7945b916..e469ee6b4082 100644
--- a/pkgs/servers/monitoring/lcdproc/default.nix
+++ b/pkgs/servers/monitoring/lcdproc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, makeWrapper, pkgconfig
-, doxygen, freetype, libX11, libftdi, libusb, libusb1, ncurses, perl }:
+, doxygen, freetype, libX11, libftdi, libusb-compat-0_1, libusb1, ncurses, perl }:
 
 stdenv.mkDerivation rec {
   pname = "lcdproc";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     "--with-pidfile-dir=/run"
   ];
 
-  buildInputs = [ freetype libX11 libftdi libusb libusb1 ncurses ];
+  buildInputs = [ freetype libX11 libftdi libusb-compat-0_1 libusb1 ncurses ];
   nativeBuildInputs = [ autoreconfHook doxygen makeWrapper pkgconfig ];
 
   # In 0.5.9: gcc: error: libbignum.a: No such file or directory
diff --git a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index d77675671950..03656470b92e 100644
--- a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "prometheus_varnish_exporter";
-  version = "1.5.2";
+  version = "unstable-2020-03-26";
 
   src = fetchFromGitHub {
     owner = "jonnenauha";
     repo = "prometheus_varnish_exporter";
-    rev = version;
-    sha256 = "0rpabw6a6paavv62f0gzhax9brzcgkly27rhkf0ihw8736gkw8ar";
+    rev = "f0f90fc69723de8b716cda16cb419e8a025130ff";
+    sha256 = "1viiiyvhpr7cnf8ykaaq4fzgg9xvn4hnlhv7cagy3jkjlmz60947";
   };
 
-  modSha256 = "0w1zg9jc2466srx9pdckw7rzn7ma4pbd0617b1h98v364wjzgj72";
+  modSha256 = "1vb720axjziiqcba4bdi528r6mc97ci0pfsk0ny50isrkh0s3jzz";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index bea56bd8c5a5..0f18eb79d2d8 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -1,20 +1,27 @@
-{ stdenv, fetchurl, coreutils, utillinux,
-  which, gnused, gnugrep,
-  groff, man-db, getent, libiconv, pcre2,
-  gettext, ncurses, python3,
-  cmake
-  , fetchpatch
-
-  , writeText
-  , nixosTests
-  , useOperatingSystemEtc ? true
-
+{ stdenv
+, lib
+, fetchurl
+, coreutils
+, utillinux
+, which
+, gnused
+, gnugrep
+, groff
+, man-db
+, getent
+, libiconv
+, pcre2
+, gettext
+, ncurses
+, python3
+, cmake
+
+, writeText
+, nixosTests
+, useOperatingSystemEtc ? true
 }:
-
-with stdenv.lib;
-
 let
-  etcConfigAppendixText = ''
+  etcConfigAppendix = writeText "config.fish.appendix" ''
     ############### ↓ Nix hook for sourcing /etc/fish/config.fish ↓ ###############
     #                                                                             #
     # Origin:
@@ -46,7 +53,7 @@ let
     ############### ↑ Nix hook for sourcing /etc/fish/config.fish ↑ ###############
   '';
 
-  fishPreInitHooks = ''
+  fishPreInitHooks = writeText "__fish_build_paths_suffix.fish" ''
     # source nixos environment
     # note that this is required:
     #   1. For all shells, not just login shells (mosh needs this as do some other command-line utilities)
@@ -90,40 +97,49 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.1.0";
-
-    etcConfigAppendix = builtins.toFile "etc-config.appendix.fish" etcConfigAppendixText;
+    version = "3.1.2";
 
     src = fetchurl {
-      # There are differences between the release tarball and the tarball github packages from the tag
-      # Hence we cannot use fetchFromGithub
+      # There are differences between the release tarball and the tarball GitHub
+      # packages from the tag. Specifically, it comes with a file containing its
+      # version, which is used in `build_tools/git_version_gen.sh` to determine
+      # the shell's actual version (and what it displays when running `fish
+      # --version`), as well as the local documentation for all builtins (and
+      # maybe other things).
       url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.gz";
-      sha256 = "0s2356mlx7fp9kgqgw91lm5ds2i9iq9hq071fbqmcp3875l1xnz5";
+      sha256 = "1vblmb3x2k2cb0db5jdyflppnlqsm7i6jjaidyhmvaaw7ch2gffm";
     };
 
-    nativeBuildInputs = [ cmake ];
-    buildInputs = [ ncurses libiconv pcre2 ];
+    # We don't have access to the codesign executable, so we patch this out.
+    # For more information, see: https://github.com/fish-shell/fish-shell/issues/6952
+    patches = lib.optional stdenv.isDarwin ./dont-codesign-on-mac.diff;
+
+    nativeBuildInputs = [
+      cmake
+    ];
+
+    buildInputs = [
+      ncurses
+      libiconv
+      pcre2
+    ];
 
     preConfigure = ''
       patchShebangs ./build_tools/git_version_gen.sh
     '';
 
-    patches = [
-      # Fixes compilation on old Apple SDKs
-      (fetchpatch {
-        url = "https://github.com/fish-shell/fish-shell/commit/10385d422b3e2a823faebfdaf13edd0e7f48a27f.patch";
-        sha256 = "0hj13kyjf5wr9j5afd4mfylcr7mz68ilbncbcf307drk1lv1lvrn";
-      })
-    ];
-
     # Required binaries during execution
     # Python: Autocompletion generated from manpages and config editing
     propagatedBuildInputs = [
-      coreutils gnugrep gnused
-      python3 groff gettext
-    ] ++ optional (!stdenv.isDarwin) man-db;
-
-    postInstall = ''
+      coreutils
+      gnugrep
+      gnused
+      python3
+      groff
+      gettext
+    ] ++ lib.optional (!stdenv.isDarwin) man-db;
+
+    postInstall = with lib; ''
       sed -r "s|command grep|command ${gnugrep}/bin/grep|" \
           -i "$out/share/fish/functions/grep.fish"
       sed -i "s|which |${which}/bin/which |"               \
@@ -148,6 +164,13 @@ let
       sed -i "s|/usr/local/sbin /sbin /usr/sbin||"         \
              $out/share/fish/completions/{sudo.fish,doas.fish}
 
+      cat > $out/share/fish/functions/__fish_anypython.fish <<EOF
+      function __fish_anypython
+          echo ${python3.interpreter}
+          return 0
+      end
+      EOF
+
     '' + optionalString stdenv.isLinux ''
       sed -e "s| ul| ${utillinux}/bin/ul|" \
           -i "$out/share/fish/functions/__fish_print_help.fish"
@@ -162,19 +185,19 @@ let
       sed -i "s|command manpath|command ${man-db}/bin/manpath|"     \
               "$out/share/fish/functions/man.fish"
     '' + optionalString useOperatingSystemEtc ''
-      tee -a $out/etc/fish/config.fish < ${(writeText "config.fish.appendix" etcConfigAppendixText)}
+      tee -a $out/etc/fish/config.fish < ${etcConfigAppendix}
     '' + ''
-      tee -a $out/share/fish/__fish_build_paths.fish < ${(writeText "__fish_build_paths_suffix.fish" fishPreInitHooks)}
+      tee -a $out/share/fish/__fish_build_paths.fish < ${fishPreInitHooks}
     '';
 
     enableParallelBuilding = true;
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Smart and user-friendly command line shell";
       homepage = "http://fishshell.com/";
       license = licenses.gpl2;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ ocharles ];
+      maintainers = with maintainers; [ ocharles cole-h ];
     };
 
     passthru = {
@@ -188,21 +211,22 @@ let
     # Test the fish_config tool by checking the generated splash page.
     # Since the webserver requires a port to run, it is not started.
     fishConfig =
-      let fishScript = writeText "test.fish" ''
-        set -x __fish_bin_dir ${fish}/bin
-        echo $__fish_bin_dir
-        cp -r ${fish}/share/fish/tools/web_config/* .
-        chmod -R +w *
-        # we delete everything after the fileurl is assigned
-        sed -e '/fileurl =/q' -i webconfig.py
-        echo "print(fileurl)" >> webconfig.py
-        # and check whether the message appears on the page
-        cat (${python3}/bin/python ./webconfig.py \
-          | tail -n1 | sed -ne 's|.*\(/tmp/.*\)|\1|p' \
-        ) | grep 'a href="http://localhost.*Start the Fish Web config'
-
-        # cannot test the http server because it needs a localhost port
-      '';
+      let
+        fishScript = writeText "test.fish" ''
+          set -x __fish_bin_dir ${fish}/bin
+          echo $__fish_bin_dir
+          cp -r ${fish}/share/fish/tools/web_config/* .
+          chmod -R +w *
+          # we delete everything after the fileurl is assigned
+          sed -e '/fileurl =/q' -i webconfig.py
+          echo "print(fileurl)" >> webconfig.py
+          # and check whether the message appears on the page
+          cat (${python3}/bin/python ./webconfig.py \
+            | tail -n1 | sed -ne 's|.*\(/tmp/.*\)|\1|p' \
+          ) | grep 'a href="http://localhost.*Start the Fish Web config'
+
+          # cannot test the http server because it needs a localhost port
+        '';
       in ''
         HOME=$(mktemp -d)
         ${fish}/bin/fish ${fishScript}
@@ -210,6 +234,6 @@ let
   };
 
   # FIXME(Profpatsch) replace withTests stub
-  withTests = flip const;
-
-in withTests tests fish
+  withTests = with lib; flip const;
+in
+withTests tests fish
diff --git a/pkgs/shells/fish/dont-codesign-on-mac.diff b/pkgs/shells/fish/dont-codesign-on-mac.diff
new file mode 100644
index 000000000000..c61350b0549f
--- /dev/null
+++ b/pkgs/shells/fish/dont-codesign-on-mac.diff
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7d220a032..786b60e6e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -183,7 +183,6 @@ ENDFUNCTION(CODESIGN_ON_MAC target)
+ # Define a function to link dependencies.
+ FUNCTION(FISH_LINK_DEPS_AND_SIGN target)
+   TARGET_LINK_LIBRARIES(${target} fishlib)
+-  CODESIGN_ON_MAC(${target})
+ ENDFUNCTION(FISH_LINK_DEPS_AND_SIGN)
+ 
+ # Define libfish.a.
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index f11ef6a6cd9f..f6c3425f2857 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2020-04-10";
+  version = "2020-04-26";
   pname = "oh-my-zsh";
-  rev = "d53355ab38763c6f637008d019c8e8b98f19b714";
+  rev = "c686aa3dbb30704b2f8f52bf1aae19a7e41c23c1";
 
   src = fetchgit { inherit rev;
     url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "1rf086f26plqsyx4h19acqacwyr99amavhn1lk0g13kk58kcq9v6";
+    sha256 = "022ddr8p0kjin2374z5icvcrbw9q77gm5jxqvvgkrhqg8lp6n14l";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 3b117d4a1ab8..60e58bbcfb9d 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "1v6lwjlc4qrxfv1yjy31xh59ayf7jprm3y87l75d08pzj1v4lsj5";
+    sha256 = "1hlad5rf6piillmc83bkf03bbw78ylhhfxpxlkdc30ai9y5dpfvv";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index 72c61ceecaf2..ce250d33e946 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -22,6 +22,6 @@ buildGoModule rec {
     description = "Let's Encrypt client and ACME library written in Go";
     license = licenses.mit;
     homepage = "https://go-acme.github.io/lego/";
-    maintainers = with maintainers; [ andrew-d ];
+    maintainers = teams.acme.members;
   };
 }
diff --git a/pkgs/tools/admin/pebble/default.nix b/pkgs/tools/admin/pebble/default.nix
index efd9bfe05964..4813f86ea641 100644
--- a/pkgs/tools/admin/pebble/default.nix
+++ b/pkgs/tools/admin/pebble/default.nix
@@ -21,6 +21,6 @@ in buildGoPackage {
     homepage = "https://github.com/letsencrypt/pebble";
     description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA";
     license = [ lib.licenses.mpl20 ];
-    maintainers = with lib.maintainers; [ emily ];
+    maintainers = lib.teams.acme.members;
   };
 }
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index 68c20493d195..f9b608ebc4c6 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec{
   pname = "scaleway-cli";
-  version = "1.17";
+  version = "1.20";
 
   goPackagePath = "github.com/scaleway/scaleway-cli";
 
@@ -10,7 +10,7 @@ buildGoPackage rec{
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "0v50wk6q8537880whi6w83dia9y934v0s2xr1z52cn3mrsjghsnd";
+    sha256 = "14likzp3hl04nq9nmpmh9m5zqjyspy5cyk20dkh03c1nhkd4vcnx";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/bluetooth/obex-data-server/default.nix b/pkgs/tools/bluetooth/obex-data-server/default.nix
index 15661d6e360d..f95869e789cb 100644
--- a/pkgs/tools/bluetooth/obex-data-server/default.nix
+++ b/pkgs/tools/bluetooth/obex-data-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libusb, glib, dbus-glib, bluez, openobex, dbus }:
+{ stdenv, fetchurl, pkgconfig, libusb-compat-0_1, glib, dbus-glib, bluez, openobex, dbus }:
 
 stdenv.mkDerivation rec {
   name = "obex-data-server-0.4.6";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libusb glib dbus-glib bluez openobex dbus ];
+  buildInputs = [ libusb-compat-0_1 glib dbus-glib bluez openobex dbus ];
 
   patches = [ ./obex-data-server-0.4.6-build-fixes-1.patch ];
 
diff --git a/pkgs/tools/bluetooth/openobex/default.nix b/pkgs/tools/bluetooth/openobex/default.nix
index ccf2eee1bb13..7ac0234852c1 100644
--- a/pkgs/tools/bluetooth/openobex/default.nix
+++ b/pkgs/tools/bluetooth/openobex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, bluez, libusb, cmake }:
+{ stdenv, fetchurl, pkgconfig, bluez, libusb-compat-0_1, cmake }:
    
 stdenv.mkDerivation rec {
   name = "openobex-1.7.2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ bluez libusb ];
+  buildInputs = [ bluez libusb-compat-0_1 ];
 
   configureFlags = [ "--enable-apps" ];
 
diff --git a/pkgs/tools/misc/gnokii/default.nix b/pkgs/tools/misc/gnokii/default.nix
index c0e516a15ad3..25c316661917 100644
--- a/pkgs/tools/misc/gnokii/default.nix
+++ b/pkgs/tools/misc/gnokii/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, perl, gettext, libusb, pkgconfig, bluez
+{ stdenv, fetchurl, intltool, perl, gettext, libusb-compat-0_1, pkgconfig, bluez
 , readline, pcsclite, libical, gtk2, glib, libXpm }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    perl intltool gettext libusb
+    perl intltool gettext libusb-compat-0_1
     glib gtk2 pkgconfig bluez readline
     libXpm pcsclite libical
   ];
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index a64df8669812..4e00a4ddd49c 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, flex, bison, python, autoconf, automake, gnulib, libtool
-, gettext, ncurses, libusb, freetype, qemu, lvm2, unifont, pkgconfig
+, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkgconfig
 , fuse # only needed for grub-mount
 , zfs ? null
 , efiSupport ? false
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ bison flex python pkgconfig autoconf automake ];
-  buildInputs = [ ncurses libusb freetype gettext lvm2 fuse libtool ]
+  buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
diff --git a/pkgs/tools/misc/grub/trusted.nix b/pkgs/tools/misc/grub/trusted.nix
index 27676c4745b6..f14758a3ae75 100644
--- a/pkgs/tools/misc/grub/trusted.nix
+++ b/pkgs/tools/misc/grub/trusted.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchgit, autogen, flex, bison, python, autoconf, automake
-, gettext, ncurses, libusb, freetype, qemu, lvm2
+, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2
 , for_HP_laptop ? false
 }:
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
         };
 
   nativeBuildInputs = [ autogen flex bison python autoconf automake ];
-  buildInputs = [ ncurses libusb freetype gettext lvm2 ]
+  buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 ]
     ++ optional doCheck qemu;
 
   hardeningDisable = [ "stackprotector" "pic" ];
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index 97628da67f76..8c7e5b8bcf22 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libusb, makeWrapper}:
+{stdenv, fetchurl, libusb-compat-0_1, makeWrapper}:
 
 stdenv.mkDerivation {
   name = "pk2cmd-1.20";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1yjpi2qshnqfpan4w3ggakkr3znfrx5cxkny92ka7v9na3g2fc4h";
   };
 
-  makeFlags = [ "LIBUSB=${libusb.dev}" "linux" ];
+  makeFlags = [ "LIBUSB=${libusb-compat-0_1.dev}" "linux" ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/pk2
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/pk2cmd --prefix PATH : $out/share/pk2
   '';
 
-  buildInputs = [ libusb makeWrapper ];
+  buildInputs = [ libusb-compat-0_1 makeWrapper ];
 
   meta = {
     homepage = "https://www.microchip.com/pickit2";
diff --git a/pkgs/tools/misc/sixpair/default.nix b/pkgs/tools/misc/sixpair/default.nix
index fafee99db5af..f738ed71ec7a 100644
--- a/pkgs/tools/misc/sixpair/default.nix
+++ b/pkgs/tools/misc/sixpair/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libusb }:
+{ stdenv, fetchurl, libusb-compat-0_1 }:
 stdenv.mkDerivation {
   name = "sixpair-2007-04-18";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   # hcitool is depricated
   patches = [ ./hcitool.patch ];
 
-  buildInputs = [ libusb ];
+  buildInputs = [ libusb-compat-0_1 ];
 
   unpackPhase = ''
     cp $src sixpair.c
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 5503c8ecc563..6e720bf1034c 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -3,13 +3,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.40.1";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jnm586wx5by1b6v78v78a84qzg05n1ha1hlmnjfyzhgjkbkayp1";
+    sha256 = "1m5pi49g3pj2qr5slyasda5xp9lz3xhz3qb9k0pa6fvcn9581r9q";
   };
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
-  cargoSha256 = "1jrlzihcq543z6hb1gq8zq6hqvgralzsknj3xnb6gia1n49b3zxz";
+  cargoSha256 = "18z1p8xj1v9w6amc52gc2vcn5f4z8k71ig20zmj005v24si9pfwf";
   checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/urjtag/default.nix b/pkgs/tools/misc/urjtag/default.nix
index 67b25eaca82f..2056fb9d0a5a 100644
--- a/pkgs/tools/misc/urjtag/default.nix
+++ b/pkgs/tools/misc/urjtag/default.nix
@@ -1,5 +1,5 @@
 { stdenv, autoconf, automake, pkgconfig, gettext, libtool, bison
-, flex, which, subversion, fetchsvn, makeWrapper, libftdi, libusb, readline
+, flex, which, subversion, fetchsvn, makeWrapper, libftdi, libusb-compat-0_1, readline
 , python3
 , svfSupport ? true
 , bsdlSupport ? true
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gettext autoconf automake libtool bison flex which
-    subversion makeWrapper readline libftdi libusb python3 ];
+    subversion makeWrapper readline libftdi libusb-compat-0_1 python3 ];
 
   configureFlags = [
     (stdenv.lib.enableFeature svfSupport   "svf")
diff --git a/pkgs/tools/misc/xburst-tools/default.nix b/pkgs/tools/misc/xburst-tools/default.nix
index 48045999329a..12acbcfbe1c8 100644
--- a/pkgs/tools/misc/xburst-tools/default.nix
+++ b/pkgs/tools/misc/xburst-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, libusb, libusb1, autoconf, automake, libconfuse, pkgconfig
+{ stdenv, fetchgit, libusb-compat-0_1, libusb1, autoconf, automake, libconfuse, pkgconfig
 , gccCross ? null
 }:
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   dontCrossStrip = true;
 
   nativeBuildInputs = [ autoconf automake pkgconfig ];
-  buildInputs = [ libusb libusb1 libconfuse ] ++
+  buildInputs = [ libusb-compat-0_1 libusb1 libconfuse ] ++
     stdenv.lib.optional (gccCross != null) gccCross;
 
   meta = {
diff --git a/pkgs/tools/networking/pykms/default.nix b/pkgs/tools/networking/pykms/default.nix
index e1a13b73120e..345999c00bcd 100644
--- a/pkgs/tools/networking/pykms/default.nix
+++ b/pkgs/tools/networking/pykms/default.nix
@@ -44,16 +44,14 @@ in buildPythonApplication rec {
 
   propagatedBuildInputs = [ systemd pytz tzlocal ];
 
+  # Fix https://github.com/SystemRage/py-kms/issues/64 :
+  patches = [ ./log-to-current-directory-by-default.patch ];
+
   postPatch = ''
     siteDir=$out/${python3.sitePackages}
 
     substituteInPlace pykms_DB2Dict.py \
       --replace "'KmsDataBase.xml'" "'$siteDir/KmsDataBase.xml'"
-
-    # we are logging to journal
-    sed -i pykms_Misc.py \
-      -e '6ifrom systemd import journal' \
-      -e 's/log_obj.addHandler(log_handler)/log_obj.addHandler(journal.JournalHandler())/'
   '';
 
   format = "other";
diff --git a/pkgs/tools/networking/pykms/log-to-current-directory-by-default.patch b/pkgs/tools/networking/pykms/log-to-current-directory-by-default.patch
new file mode 100644
index 000000000000..7c8c65b63a2a
--- /dev/null
+++ b/pkgs/tools/networking/pykms/log-to-current-directory-by-default.patch
@@ -0,0 +1,20 @@
+# By default, create log files in current directory, instead of the script directory.
+--- ../original/py-kms/pykms_Client.py
++++ py-kms/pykms_Client.py
+@@ -48,5 +48,5 @@
+                     'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]},
+         'lfile' : {'help' : 'Use this option to set an output log file. The default is \"pykms_logclient.log\" or type \"STDOUT\" to view log info on stdout.',
+-                   'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logclient.log", 'des' : "logfile"},
++                   'def' : "pykms_logclient.log", 'des' : "logfile"},
+         'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"},
+         }
+--- ../original/py-kms/pykms_Server.py
++++ py-kms/pykms_Server.py
+@@ -85,5 +85,5 @@
+                     'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]},
+         'lfile' : {'help' : 'Use this option to set or not an output log file. The default is \"pykms_logserver.log\" or type \"STDOUT\" to view log info on stdout.',
+-                   'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logserver.log", 'des' : "logfile"},
++                   'def' : "pykms_logserver.log", 'des' : "logfile"},
+         'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"},
+         }
+    '');
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index fa1394242d29..417962733af6 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "1a6svl89dcdb5fpvs2i32i6agyhl0sx7kkkw70rqr17fyzl5psai";
 
   doCheck = true;
-  checkInputs = [ graphviz ];
+  checkInputs = [ nix graphviz ];
 
   buildInputs = [
     boost
diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix
index ea9001607526..f5b693fed35a 100644
--- a/pkgs/tools/security/gnupg/20.nix
+++ b/pkgs/tools/security/gnupg/20.nix
@@ -4,7 +4,7 @@
 # Each of the dependencies below are optional.
 # Gnupg can be built without them at the cost of reduced functionality.
 , pinentry ? null, guiSupport ? false
-, openldap ? null, bzip2 ? null, libusb ? null, curl ? null
+, openldap ? null, bzip2 ? null, libusb-compat-0_1 ? null, curl ? null
 }:
 
 with stdenv.lib;
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs
     = [ readline zlib libgpgerror libgcrypt libassuan libksba pth
-        openldap bzip2 libusb curl libiconv ];
+        openldap bzip2 libusb-compat-0_1 curl libiconv ];
 
   patches = [ ./gpgkey2ssh-20.patch ];
 
diff --git a/pkgs/tools/security/libacr38u/default.nix b/pkgs/tools/security/libacr38u/default.nix
index 45d0279099fd..b56c15af3d62 100644
--- a/pkgs/tools/security/libacr38u/default.nix
+++ b/pkgs/tools/security/libacr38u/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, pcsclite , libusb }:
+{ stdenv, fetchurl, pkgconfig, pcsclite , libusb-compat-0_1 }:
 
 stdenv.mkDerivation {
   version = "1.7.11";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ pcsclite libusb ];
+  buildInputs = [ pcsclite libusb-compat-0_1 ];
 
   preBuild = ''
     makeFlagsArray=(usbdropdir="$out/pcsc/drivers");
diff --git a/pkgs/tools/security/pcsc-scm-scl011/default.nix b/pkgs/tools/security/pcsc-scm-scl011/default.nix
index b400d628fd77..62f4c3e85564 100644
--- a/pkgs/tools/security/pcsc-scm-scl011/default.nix
+++ b/pkgs/tools/security/pcsc-scm-scl011/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, libusb }:
+{ stdenv, fetchurl, unzip, libusb-compat-0_1 }:
 
 let
   arch = if stdenv.hostPlatform.system == "i686-linux" then "32"
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     cp -r proprietary/*.bundle $out/pcsc/drivers
   '';
 
-  libPath = stdenv.lib.makeLibraryPath [ libusb ];
+  libPath = stdenv.lib.makeLibraryPath [ libusb-compat-0_1 ];
 
   fixupPhase = ''
     patchelf --set-rpath $libPath \
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
deleted file mode 100644
index c66756012311..000000000000
--- a/pkgs/tools/security/prey/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ stdenv, fetchurl, fetchgit, curl, scrot, imagemagick, xawtv, inetutils, makeWrapper, coreutils
-, apiKey ? ""
-, deviceKey ? "" }:
-
-# TODO: this should assert keys are set, somehow if set through .override assertion fails
-#assert apiKey != "";
-#assert deviceKey != "";
-
-let
-  modulesSrc = fetchgit {
-    url = "git://github.com/prey/prey-bash-client-modules.git";
-    rev = "aba260ef110834cb2e92923a31f50c15970639ee";
-    sha256 = "9cb1ad813d052a0a3e3bbdd329a8711ae3272e340379489511f7dd578d911e30";
-  };
-in stdenv.mkDerivation rec {
-  pname = "prey-bash-client";
-  version = "0.6.0";
-
-  src = fetchurl {
-    url = "https://github.com/prey/prey-bash-client/archive/v${version}.tar.gz";
-    sha256 = "09cb15jh4jdwvix9nx048ajkw2r5jaflk68y3rkha541n8n0qwh0";
-  };
-
-  buildInputs = [ curl scrot imagemagick xawtv makeWrapper ];
-
-  phases = "unpackPhase installPhase";
-
-  installPhase = ''
-    substituteInPlace config --replace api_key=\'\' "api_key='${apiKey}'"
-    substituteInPlace config --replace device_key=\'\' "device_key='${deviceKey}'"
-
-    substituteInPlace prey.sh --replace /bin/bash $(type -Pp bash)
-    mkdir -p $out/modules
-    cp -R . $out
-    cp -R ${modulesSrc}/* $out/modules/
-    wrapProgram "$out/prey.sh" \
-      --prefix PATH ":" "${stdenv.lib.makeBinPath [ xawtv imagemagick curl scrot inetutils coreutils ]}" \
-      --set CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://preyproject.com";
-    description = "Proven tracking software that helps you find, lock and recover your devices when stolen or missing";
-    maintainers = with maintainers; [ domenkozar ];
-    license = licenses.gpl3;
-    platforms = with platforms; linux;
-  };
-}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 5b26ecb2da6e..5248e8d75de6 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -60,6 +60,8 @@ mapAliases ({
   bittorrentSync14 = throw "bittorrentSync14 has been deprecated by resilio-sync."; # added 2019-06-03
   bittorrentSync20 = throw "bittorrentSync20 has been deprecated by resilio-sync."; # added 2019-06-03
   buildPerlPackage = perlPackages.buildPerlPackage; # added 2018-10-12
+  buildGo112Package = throw "buildGo112Package has been removed"; # added 2020-04-26
+  buildGo112Module = throw "buildGo112Module has been removed"; # added 2020-04-26
   bundler_HEAD = bundler; # added 2015-11-15
   cantarell_fonts = cantarell-fonts; # added 2018-03-03
   catfish = xfce.catfish; # added 2019-12-22
@@ -166,6 +168,7 @@ mapAliases ({
   gnuradio-rds = gr-rds; # added 2019-05-27
   gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27
   gnustep-make = gnustep.make; # added 2016-7-6
+  go_1_12 = throw "go_1_12 has been removed"; # added 2020-04-26
   go-pup = pup; # added 2017-12-19
   gobjectIntrospection = gobject-introspection; # added 2018-12-02
   goimports = gotools; # added 2018-09-16
@@ -212,6 +215,7 @@ mapAliases ({
   keepassx-reboot = keepassx-community; # added 2017-02-01
   keepassx2-http = keepassx-reboot; # added 2016-10-17
   keybase-go = keybase;  # added 2016-08-24
+  kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned."; # 2020-04-28
   kicad-with-packages3d = kicad; # added 2019-11-25
   krename-qt5 = krename; # added 2017-02-18
   keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10
@@ -249,6 +253,7 @@ mapAliases ({
   libtxc_dxtn = throw "removed 2020-03-16, now integrated in Mesa";
   libtxc_dxtn_s2tc = throw "removed 2020-03-16, now integrated in Mesa";
   libudev = udev; # added 2018-04-25
+  libusb = libusb1; # added 2020-04-28
   libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10
   libqmatrixclient = throw "libqmatrixclient was renamed to libquotient"; # added 2020-04-09
   links = links2; # added 2016-01-31
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ba33311a39e1..416aa09ec52f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -292,11 +292,7 @@ in
 
   packer = callPackage ../development/tools/packer { };
 
-  packr = callPackage ../development/libraries/packr {
-    # Version 2.6.0 fails to build with go 1.13 due to nested modules:
-    #   go: directory v2/packr2 is outside main module
-    buildGoModule = buildGo112Module;
-  };
+  packr = callPackage ../development/libraries/packr { };
 
   pet = callPackage ../development/tools/pet { };
 
@@ -1497,11 +1493,7 @@ in
 
   compactor = callPackage ../applications/networking/compactor { };
 
-  consul = callPackage ../servers/consul {
-    # Version 1.6.0 fails to build with go 1.13 due to broken dependency:
-    #   go/src/github.com/hashicorp/consul/vendor/github.com/envoyproxy/go-control-plane/envoy/type/http_status.pb.go:11:2: code in directory /build/go/src/github.com/hashicorp/consul/vendor/github.com/envoyproxy/protoc-gen-validate/validate expects import "github.com/lyft/protoc-gen-validate/validate"
-    buildGoPackage = buildGo112Package;
-  };
+  consul = callPackage ../servers/consul { };
 
   consul-alerts = callPackage ../servers/monitoring/consul-alerts { };
 
@@ -2772,11 +2764,7 @@ in
 
   curl_unix_socket = callPackage ../tools/networking/curl-unix-socket { };
 
-  curlie = callPackage ../tools/networking/curlie {
-    # Version 1.2.0 fails to build with go 1.13 due to:
-    #    verifying golang.org/x/crypto@v0.0.0-20180524125353-159ae71589f3: golang.org/x/crypto@v0.0.0-20180524125353-159ae71589f3: Get https://sum.golang.org/lookup/golang.org/x/crypto@v0.0.0-20180524125353-159ae71589f3: dial tcp: lookup sum.golang.org on [::1]:53: read udp [::1]:49088->[::1]:53: read: connection refused
-    buildGoModule = buildGo112Module;
-  };
+  curlie = callPackage ../tools/networking/curlie { };
 
   cunit = callPackage ../tools/misc/cunit { };
   bcunit = callPackage ../tools/misc/bcunit { };
@@ -3900,9 +3888,7 @@ in
 
   grpcurl = callPackage ../tools/networking/grpcurl { };
 
-  grpcui = callPackage ../tools/networking/grpcui {
-    buildGoModule = buildGo112Module;
-  };
+  grpcui = callPackage ../tools/networking/grpcui { };
 
   grub = pkgsi686Linux.callPackage ../tools/misc/grub ({
     stdenv = overrideCC stdenv buildPackages.pkgsi686Linux.gcc6;
@@ -4325,12 +4311,7 @@ in
   iperf3 = callPackage ../tools/networking/iperf/3.nix { };
   iperf = iperf3;
 
-  ipfs = callPackage ../applications/networking/ipfs {
-    # Version 0.4.22 fails to build with go 1.13 due to version validation:
-    #    go: github.com/go-critic/go-critic@v0.0.0-20181204210945-ee9bf5809ead: invalid pseudo-version: does not match version-control timestamp (2019-02-10T22:04:43Z)
-    # This is fixed in master, but release containing the fix does not exist yet.
-    buildGoModule = buildGo112Module;
-  };
+  ipfs = callPackage ../applications/networking/ipfs { };
   ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
   ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
 
@@ -5431,7 +5412,7 @@ in
 
   noip = callPackage ../tools/networking/noip { };
 
- nomad = callPackage ../applications/networking/cluster/nomad { };
+  nomad = callPackage ../applications/networking/cluster/nomad { };
 
   notable = callPackage ../applications/misc/notable { };
 
@@ -6024,8 +6005,6 @@ in
 
   prettyping = callPackage ../tools/networking/prettyping { };
 
-  prey-bash-client = callPackage ../tools/security/prey { };
-
   profile-cleaner = callPackage ../tools/misc/profile-cleaner { };
 
   profile-sync-daemon = callPackage ../tools/misc/profile-sync-daemon { };
@@ -8570,13 +8549,6 @@ in
       inherit (darwin.apple_sdk.frameworks) Security;
     };
 
-  go_1_12 = callPackage ../development/compilers/go/1.12.nix ({
-    inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs stdenv.isAarch64 {
-    stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
-  });
-
   go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   } // lib.optionalAttrs stdenv.isAarch64 {
@@ -8981,6 +8953,8 @@ in
     inherit (ocaml-ng.ocamlPackages_4_05) ocaml;
   };
 
+  open-watcom-bin = callPackage ../development/compilers/open-watcom-bin { };
+
   pforth = callPackage ../development/compilers/pforth {};
 
   picat = callPackage ../development/compilers/picat { };
@@ -9694,26 +9668,6 @@ in
 
   ### DEVELOPMENT / MISC
 
-  amdadlsdk = callPackage ../development/misc/amdadl-sdk { };
-
-  amdappsdk26 = amdappsdk.override {
-    version = "2.6";
-  };
-
-  amdappsdk27 = amdappsdk.override {
-    version = "2.7";
-  };
-
-  amdappsdk28 = amdappsdk.override {
-    version = "2.8";
-  };
-
-  amdappsdk = callPackage ../development/misc/amdapp-sdk { };
-
-  amdappsdkFull = amdappsdk.override {
-    samples = true;
-  };
-
   h3 = callPackage ../development/misc/h3 { };
 
   amtk = callPackage ../development/libraries/amtk { };
@@ -9948,9 +9902,7 @@ in
 
   bazel-remote = callPackage ../development/tools/build-managers/bazel/bazel-remote { };
 
-  bazel-watcher = callPackage ../development/tools/bazel-watcher {
-    go = go_1_12;
-  };
+  bazel-watcher = callPackage ../development/tools/bazel-watcher { };
 
   bazel-gazelle = callPackage ../development/tools/bazel-gazelle { };
 
@@ -12359,10 +12311,6 @@ in
 
   kf5gpgmepp = libsForQt5.callPackage ../development/libraries/kf5gpgmepp { };
 
-  kinetic-cpp-client = callPackage ../development/libraries/kinetic-cpp-client {
-    openssl = openssl_1_0_2;
-  };
-
   krb5 = callPackage ../development/libraries/kerberos/krb5.nix {
     inherit (buildPackages.darwin) bootstrap_cmds;
   };
@@ -12801,6 +12749,8 @@ in
 
   libf2c = callPackage ../development/libraries/libf2c {};
 
+  libfabric = callPackage ../os-specific/linux/libfabric {};
+
   libfive = callPackage ../development/libraries/libfive { };
 
   libfixposix = callPackage ../development/libraries/libfixposix {};
@@ -13355,7 +13305,7 @@ in
 
   liburcu = callPackage ../development/libraries/liburcu { };
 
-  libusb = callPackage ../development/libraries/libusb {};
+  libusb-compat-0_1 = callPackage ../development/libraries/libusb-compat/0.1.nix {};
 
   libusb1 = callPackage ../development/libraries/libusb1 {
     inherit (darwin) libobjc;
@@ -15203,18 +15153,12 @@ in
 
   ### DEVELOPMENT / GO MODULES
 
-  buildGo112Package = callPackage ../development/go-packages/generic {
-    go = buildPackages.go_1_12;
-  };
   buildGo114Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_14;
   };
 
   buildGoPackage = buildGo114Package;
 
-  buildGo112Module = callPackage ../development/go-modules/generic {
-    go = buildPackages.go_1_12;
-  };
   buildGo114Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_14;
   };
@@ -15533,9 +15477,7 @@ in
 
   grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
 
-  gobetween = callPackage ../servers/gobetween {
-    buildGoModule = buildGo112Module;
-  };
+  gobetween = callPackage ../servers/gobetween { };
 
   h2o = callPackage ../servers/http/h2o { };
 
@@ -15993,11 +15935,7 @@ in
   prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
   prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
   prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
-  prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix {
-    # Version 1.5.1 fails to build with go 1.13 due to test failure
-    #  FAIL       github.com/jonnenauha/prometheus_varnish_exporter       0.041s
-    buildGoModule = buildGo112Module;
-  };
+  prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { };
   prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix {  };
   prometheus-wireguard-exporter = callPackage ../servers/monitoring/prometheus/wireguard-exporter.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -16393,9 +16331,7 @@ in
 
   cpustat = callPackage ../os-specific/linux/cpustat { };
 
-  cockroachdb = callPackage ../servers/sql/cockroachdb {
-    buildGoPackage = buildGo112Package;
-  };
+  cockroachdb = callPackage ../servers/sql/cockroachdb { };
 
   conky = callPackage ../os-specific/linux/conky ({
     lua = lua5_3_compat;
@@ -17249,11 +17185,7 @@ in
 
   gotests = callPackage ../development/tools/gotests { };
 
-  gotestsum = callPackage ../development/tools/gotestsum {
-    # Version 0.3.5 fails to build with go 1.13:
-    #    build ./testjson/internal/badmain: cannot find module for path ./testjson/internal/badmain
-    buildGoModule = buildGo112Module;
-  };
+  gotestsum = callPackage ../development/tools/gotestsum { };
 
   impl = callPackage ../development/tools/impl { };
 
@@ -18738,11 +18670,7 @@ in
     poppler = poppler_0_61;
   };
 
-  perkeep = callPackage ../applications/misc/perkeep {
-    # Revision c9f78d02adf9740f3b8d403a1418554293cc9f41 fails to build with go 1.13 due to a dependency:
-    #   go: bazil.org/fuse@v0.0.0-20160811212531-371fbbdaa898: Get https://proxy.golang.org/bazil.org/fuse/@v/v0.0.0-20160811212531-371fbbdaa898.mod: dial tcp: lookup proxy.golang.org on [::1]:53: read udp [::1]:36526->[::1]:53: read: connection refused
-    buildGoPackage = buildGo112Package;
-  };
+  perkeep = callPackage ../applications/misc/perkeep { };
 
   canto-curses = callPackage ../applications/networking/feedreaders/canto-curses { };
 
@@ -19820,7 +19748,7 @@ in
 
   gvisor-containerd-shim = callPackage ../applications/virtualization/gvisor/containerd-shim.nix { };
 
-  guvcview = callPackage ../os-specific/linux/guvcview { };
+  guvcview = libsForQt5.callPackage ../os-specific/linux/guvcview { };
 
   gxmessage = callPackage ../applications/misc/gxmessage { };
 
@@ -20557,10 +20485,7 @@ in
 
   marp = callPackage ../applications/office/marp { };
 
-  magnetico = callPackage ../applications/networking/p2p/magnetico {
-    # Version 2019-08-14 fails to build with go 1.13 due to missing go.sum
-    buildGoModule = buildGo112Module;
-  };
+  magnetico = callPackage ../applications/networking/p2p/magnetico { };
 
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
@@ -20848,9 +20773,7 @@ in
 
   open-policy-agent = callPackage ../development/tools/open-policy-agent { };
 
-  openshift = callPackage ../applications/networking/cluster/openshift {
-    buildGoPackage = buildGo112Package;
-  };
+  openshift = callPackage ../applications/networking/cluster/openshift { };
 
   oroborus = callPackage ../applications/window-managers/oroborus {};
 
@@ -21474,7 +21397,12 @@ in
 
   qsyncthingtray = libsForQt5.callPackage ../applications/misc/qsyncthingtray { };
 
-  qstopmotion = libsForQt5.callPackage ../applications/video/qstopmotion { };
+  qstopmotion = libsForQt5.callPackage ../applications/video/qstopmotion {
+    guvcview = guvcview.override {
+      useQt = true;
+      useGtk = false;
+    };
+  };
 
   qsynth = libsForQt5.callPackage ../applications/audio/qsynth { };
 
@@ -22080,9 +22008,7 @@ in
 
   teleprompter = callPackage ../applications/misc/teleprompter {};
 
-  tendermint = callPackage ../tools/networking/tendermint {
-    buildGoModule = buildGo112Module;
-  };
+  tendermint = callPackage ../tools/networking/tendermint { };
 
   termdown = (newScope pythonPackages) ../applications/misc/termdown { };
 
@@ -23126,9 +23052,7 @@ in
   };
   litecoind = litecoin.override { withGui = false; };
 
-  lnd = callPackage ../applications/blockchains/lnd.nix {
-    buildGoModule = buildGo112Module;
-  };
+  lnd = callPackage ../applications/blockchains/lnd.nix { };
 
   monero = callPackage ../applications/blockchains/monero {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
@@ -23296,9 +23220,7 @@ in
 
   crispyDoom = callPackage ../games/crispy-doom { };
 
-  cri-o = callPackage ../applications/virtualization/cri-o {
-    buildGoPackage = buildGo112Package;
-  };
+  cri-o = callPackage ../applications/virtualization/cri-o { };
 
   ckan = callPackage ../games/ckan { };
 
@@ -23795,9 +23717,7 @@ in
 
   sauerbraten = callPackage ../games/sauerbraten {};
 
-  scaleway-cli = callPackage ../tools/admin/scaleway-cli {
-    buildGoPackage = buildGo112Package;
-  };
+  scaleway-cli = callPackage ../tools/admin/scaleway-cli { };
 
   scid = callPackage ../games/scid {
     tcl = tcl-8_5;
@@ -26241,8 +26161,8 @@ in
 
   dart = callPackage ../development/interpreters/dart { };
   dart_old = dart.override    { version = "1.24.3"; };
-  dart_stable = dart.override { version = "2.7.1"; };
-  dart_dev = dart.override    { version = "2.8.0-dev.10.0"; };
+  dart_stable = dart.override { version = "2.7.2"; };
+  dart_dev = dart.override    { version = "2.9.0-4.0.dev"; };
 
   httrack = callPackage ../tools/backup/httrack { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 45cf2f3c05b9..755c724e275e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -248,6 +248,8 @@ in {
 
   authres = callPackage ../development/python-modules/authres { };
 
+  auth0-python = callPackage ../development/python-modules/auth0-python { };
+
   autograd = callPackage ../development/python-modules/autograd { };
 
   autologging = callPackage ../development/python-modules/autologging { };
@@ -1220,6 +1222,10 @@ in {
 
   pylev = callPackage ../development/python-modules/pylev { };
 
+  pylibftdi = callPackage ../development/python-modules/pylibftdi {
+    inherit (pkgs) libusb1;
+  };
+
   pymatgen = callPackage ../development/python-modules/pymatgen { };
 
   pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
@@ -2218,6 +2224,8 @@ in {
 
   closure-linter = callPackage ../development/python-modules/closure-linter { };
 
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
+
   cloudpickle = callPackage ../development/python-modules/cloudpickle { };
 
   cmdline = callPackage ../development/python-modules/cmdline { };