summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/puredata/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix25
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix6
-rw-r--r--pkgs/applications/misc/tut/default.nix4
-rw-r--r--pkgs/applications/misc/tut/deps.nix69
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/heptio-ark/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kompose/default.nix7
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/openshift/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix15
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix22
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix17
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix13
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix12
-rw-r--r--pkgs/applications/version-management/git-lfs/1.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/data.json10
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock2
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile2
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock16
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix16
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py11
-rw-r--r--pkgs/applications/virtualization/runc/default.nix2
-rw-r--r--pkgs/build-support/src-only/default.nix29
-rw-r--r--pkgs/data/themes/arc/default.nix12
-rw-r--r--pkgs/development/go-packages/generic/default.nix6
-rw-r--r--pkgs/development/libraries/dqlite/default.nix21
-rw-r--r--pkgs/development/libraries/raft-canonical/default.nix4
-rw-r--r--pkgs/development/node-packages/node-packages-v10.json1
-rw-r--r--pkgs/development/node-packages/node-packages-v10.nix18
-rw-r--r--pkgs/development/ocaml-modules/bigstring/default.nix24
-rw-r--r--pkgs/development/tools/cloudfoundry-cli/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/kind/default.nix7
-rw-r--r--pkgs/development/web/cypress/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix161
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix6
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/servers/blockbook/default.nix5
-rw-r--r--pkgs/servers/etcd/default.nix41
-rw-r--r--pkgs/servers/hashi-ui/default.nix25
-rw-r--r--pkgs/servers/monitoring/prometheus/alertmanager.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/mail-exporter.nix8
-rw-r--r--pkgs/servers/sql/cockroachdb/default.nix5
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix6
-rw-r--r--pkgs/tools/backup/restic/default.nix26
-rw-r--r--pkgs/tools/misc/aptly/default.nix7
-rw-r--r--pkgs/tools/misc/tmux/default.nix4
-rw-r--r--pkgs/tools/security/gopass/default.nix15
-rw-r--r--pkgs/tools/security/vault/default.nix8
-rw-r--r--pkgs/top-level/all-packages.nix11
-rw-r--r--pkgs/top-level/emacs-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
60 files changed, 516 insertions, 321 deletions
diff --git a/pkgs/applications/audio/puredata/default.nix b/pkgs/applications/audio/puredata/default.nix
index 9880a65d0ca..4b221cd1a76 100644
--- a/pkgs/applications/audio/puredata/default.nix
+++ b/pkgs/applications/audio/puredata/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation  rec {
   pname = "puredata";
-  version = "0.49-0";
+  version = "0.50-2";
 
   src = fetchurl {
     url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz";
-    sha256 = "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j";
+    sha256 = "0dz6r6jy0zfs1xy1xspnrxxks8kddi9c7pxz4vpg2ygwv83ghpg5";
   };
 
   nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 39148c8fc6e..fb6a4268299 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -105,6 +105,11 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
             (attrs.nativeBuildInputs or []) ++ [ external.git ];
         });
 
+        eopengrok = super.eopengrok.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         ess-R-data-view = super.ess-R-data-view.override {
           inherit (self.melpaPackages) ess ctable popup;
         };
@@ -436,8 +441,28 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
             (attrs.nativeBuildInputs or []) ++ [ external.git ];
         });
 
+        gerrit = super.gerrit.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        gerrit-download = super.gerrit-download.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         helm-rtags = fix-rtags super.helm-rtags;
 
+        jist = super.jist.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         mandoku = super.mandoku.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 13ae1f1ba7d..9784e24187b 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -5,15 +5,15 @@ let
     if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
       name = "rescuetime-installer.deb";
       url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
-      sha256 = "0mw8dh9z7pqan0yrhycmv39h5c1sc4mbw5l02cfnn17cy75xdiay";
+      sha256 = "1yzbs2lg04bq0clkr6gfkx3j6wrahpnxqfiq4askk9k76y4ncd4m";
     } else fetchurl {
       name = "rescuetime-installer.deb";
       url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
-      sha256 = "1a6pc8vi2ab721kzyhvg6bmw24dr85dgmx2m9j9vbf3jyr85fv10";
+      sha256 = "1njxsh601d0p6n0hxv44gcg8gd43xwym83xwqba26vj6xw82bknv";
     };
 in mkDerivation {
   # https://www.rescuetime.com/updates/linux_release_notes.html
-  name = "rescuetime-2.14.5.2";
+  name = "rescuetime-2.15.0.1";
   inherit src;
   nativeBuildInputs = [ dpkg ];
   # avoid https://github.com/NixOS/patchelf/issues/99
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 586766e5456..e9b09d68da6 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tut";
-  version = "0.0.2";
+  version = "0.0.7";
 
   goPackagePath = "github.com/RasmusLindroth/tut";
   goDeps = ./deps.nix;
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "RasmusLindroth";
     repo = pname;
     rev = version;
-    sha256 = "0c44mgkmjnfpf06cj63i6mscxcsm5cipm0l4n6pjxhc7k3qhgsfw";
+    sha256 = "1v1cvdsrxz1yj2vibx3iapw17ngfihjkr62zhxsn1msb77xyd7lb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/tut/deps.nix b/pkgs/applications/misc/tut/deps.nix
index 89453f121a9..9264153e503 100644
--- a/pkgs/applications/misc/tut/deps.nix
+++ b/pkgs/applications/misc/tut/deps.nix
@@ -73,6 +73,15 @@
     };
   }
   {
+    goPackagePath = "github.com/gopherjs/gopherjs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gopherjs/gopherjs";
+      rev = "0766667cb4d1";
+      sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
+    };
+  }
+  {
     goPackagePath = "github.com/gorilla/websocket";
     fetch = {
       type = "git";
@@ -82,6 +91,15 @@
     };
   }
   {
+    goPackagePath = "github.com/jtolds/gls";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jtolds/gls";
+      rev = "v4.20.0";
+      sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
+    };
+  }
+  {
     goPackagePath = "github.com/kyoh86/xdg";
     fetch = {
       type = "git";
@@ -158,8 +176,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pelletier/go-toml";
-      rev = "v1.6.0";
-      sha256 = "0l2830pi64fg0bdsyd5afkbw0p7879pppzdqqk3c7vjrjfmi5xbq";
+      rev = "v1.7.0";
+      sha256 = "0sqrwldjj2qxrgjz1diw1ffviya4ma7mz7nhdgydbisi2h55lqla";
     };
   }
   {
@@ -167,8 +185,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/rivo/tview";
-      rev = "cd38d7432498";
-      sha256 = "1rs048gf1jip0p20qir99vy5k0f3m54h7bh56l1sh8lxij5qj406";
+      rev = "ca37f83cb2e7";
+      sha256 = "05nifgrxv6aib8f20mhs9m0grdfdyyg5vyhk6zgwsxjlwbzaj021";
     };
   }
   {
@@ -181,6 +199,24 @@
     };
   }
   {
+    goPackagePath = "github.com/smartystreets/assertions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/smartystreets/assertions";
+      rev = "b2de0cb4f26d";
+      sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
+    };
+  }
+  {
+    goPackagePath = "github.com/smartystreets/goconvey";
+    fetch = {
+      type = "git";
+      url = "https://github.com/smartystreets/goconvey";
+      rev = "v1.6.4";
+      sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m";
+    };
+  }
+  {
     goPackagePath = "github.com/tomnomnom/linkheader";
     fetch = {
       type = "git";
@@ -212,8 +248,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "118fecf932d8";
-      sha256 = "1rwrqfwh2yhnnhy7x0mbmlmk0rg1mi2jjad476y45i259a0c2ym6";
+      rev = "d3edc9973b7e";
+      sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7";
     };
   }
   {
@@ -230,8 +266,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "12a6c2dcc1e4";
-      sha256 = "0z1g49d36kh459dz0xhnss2f88vw7n5b3l3637v46f7daddvln67";
+      rev = "85ca7c5b95cd";
+      sha256 = "1504qkgbhhm4f0bhk77v2r1lj6x171ay5m79alkg78wjb5cign5l";
     };
   }
   {
@@ -248,8 +284,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/tools";
-      rev = "90fa682c2a6e";
-      sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
+      rev = "ab21143f2384";
+      sha256 = "15fk0psk53pplpyghz55bhay0kvsv5rikmn5hwgjnnyxq9vfy178";
     };
   }
   {
@@ -262,12 +298,21 @@
     };
   }
   {
+    goPackagePath = "gopkg.in/ini.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/ini.v1";
+      rev = "v1.55.0";
+      sha256 = "1b7wsfal3b3pl5pv5n2qix09b3imh0zhirrphlsg5p2rb8fk0d0j";
+    };
+  }
+  {
     goPackagePath = "gopkg.in/yaml.v2";
     fetch = {
       type = "git";
       url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.4";
-      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
+      rev = "v2.2.8";
+      sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
     };
   }
 ]
diff --git a/pkgs/applications/networking/cluster/docker-machine/default.nix b/pkgs/applications/networking/cluster/docker-machine/default.nix
index 32108426032..a801a122374 100644
--- a/pkgs/applications/networking/cluster/docker-machine/default.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/default.nix
@@ -1,5 +1,5 @@
 # This file was generated by go2nix.
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "machine";
@@ -14,13 +14,13 @@ buildGoPackage rec {
     sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy";
   };
 
-  postInstall = ''
-    mkdir -p \
-      $bin/share/bash-completion/completions/ \
-      $bin/share/zsh/site-functions/
+  nativeBuildInputs = [ installShellFiles ];
 
-    cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/
-    cp go/src/github.com/docker/machine/contrib/completion/zsh/* $bin/share/zsh/site-functions/
+  postInstall = ''
+    pushd go/src/${goPackagePath}/contrib/completion
+    installShellCompletion --bash bash/*
+    installShellCompletion --zsh zsh/*
+    popd
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 0eac175a170..deb6d75f12c 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.1.3";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "1j6pr1a9ff32bnjq9rncllmfpraip5r2fj3zsljw5jq68x5wamdc";
+    sha256 = "1x05xnc3czk7vpn9qnfdavdjy5agv800nh7jyqczpiw125l9jfyd";
   };
-  modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";
+  modSha256 = "000knqwsajlqika4abp3fh721mn1vykcsnv3c1qw0mzffkmzwsqd";
 
   subPackages = [ "cmd/helm" ];
   buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
diff --git a/pkgs/applications/networking/cluster/heptio-ark/default.nix b/pkgs/applications/networking/cluster/heptio-ark/default.nix
index 21f4011f070..aa86dcbeb24 100644
--- a/pkgs/applications/networking/cluster/heptio-ark/default.nix
+++ b/pkgs/applications/networking/cluster/heptio-ark/default.nix
@@ -13,7 +13,7 @@ buildGoPackage rec {
     sha256 = "18h9hvp95va0hyl268gnzciwy1dqmc57bpifbj885870rdfp0ffv";
   };
 
-  postInstall = "rm $bin/bin/issue-template-gen";
+  excludedPackages = [ "issue-template-gen" ];
 
   meta = with stdenv.lib; {
     description = "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes";
diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix
index 09a69f4b80e..2467ed93b32 100644
--- a/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/pkgs/applications/networking/cluster/kompose/default.nix
@@ -15,9 +15,10 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
-    $bin/bin/kompose completion bash > kompose.bash
-    $bin/bin/kompose completion zsh > kompose.zsh
-    installShellCompletion kompose.{bash,zsh}
+    for shell in bash zsh; do
+      $bin/bin/kompose completion $shell > kompose.$shell
+      installShellCompletion kompose.$shell
+    done
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index a5f1806e577..3e1f63531bb 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }:
 
 let
   goPackagePath = "k8s.io/kops";
@@ -18,7 +18,7 @@ let
           inherit sha256;
         };
 
-        nativeBuildInputs = [ go-bindata ];
+        nativeBuildInputs = [ go-bindata installShellFiles ];
         subPackages = [ "cmd/kops" ];
 
         buildFlagsArray = ''
@@ -33,10 +33,10 @@ let
         '';
 
         postInstall = ''
-          mkdir -p $bin/share/bash-completion/completions
-          mkdir -p $bin/share/zsh/site-functions
-          $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops
-          $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops
+          for shell in bash zsh; do
+            $bin/bin/kops completion $shell > kops.$shell
+            installShellCompletion kops.$shell
+          done
         '';
 
         meta = with stdenv.lib; {
@@ -51,28 +51,13 @@ in rec {
 
   mkKops = generic;
 
-  kops_1_12 = mkKops {
-    version = "1.12.3";
-    sha256 = "0rpbaz54l5v1z7ab5kpxcb4jyakkl5ysgz1sxajqmw2d6dvf7xly";
-  };
-
-  kops_1_13 = mkKops {
-    version = "1.13.2";
-    sha256 = "0lkkg34vn020r62ga8vg5d3a8jwvq00xlv3p1s01nkz33f6salng";
-  };
-
-  kops_1_14 = mkKops {
-    version = "1.14.1";
-    sha256 = "0ikd8qwrjh8s1sc95g18sm0q6p33swz2m1rjd8zw34mb2w9jv76n";
-  };
-
   kops_1_15 = mkKops {
     version = "1.15.2";
     sha256 = "1sjfd7pfi81ccq1dkgkh9xx6y94bqzlp727pvyf7l01x3d14z2b3";
   };
 
   kops_1_16 = mkKops {
-    version = "1.16.0";
-    sha256 = "1b2lzf6b29rs5imbpqp8gnp3b511lk7jrm2f62y32gmx0gyjws6a";
+    version = "1.16.1";
+    sha256 = "08vy57ln0qar961sf9vbrh29f04qj5siqsfim1kqwvj5xrvwa39i";
   };
 }
diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix
index a9b0ed3fcb5..bcd259b138f 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
+, coreutils, kerberos, clang, installShellFiles
 , components ? [
   "cmd/oc"
   "cmd/openshift"
@@ -35,7 +35,7 @@ in buildGoPackage rec {
 
   buildInputs = [ kerberos ];
 
-  nativeBuildInputs = [ which rsync go-bindata clang ];
+  nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
 
   patchPhase = ''
     patchShebangs ./hack
@@ -74,8 +74,8 @@ in buildGoPackage rec {
   installPhase = ''
     mkdir -p $bin/bin
     cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$bin/bin/"
-    install -D -t "$bin/etc/bash_completion.d" contrib/completions/bash/*
-    install -D -t "$bin/share/zsh/site-functions" contrib/completions/zsh/*
+    installShellCompletion --bash contrib/completions/bash/*
+    installShellCompletion --zsh contrib/completions/zsh/*
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index 144d46043ff..95ad965c346 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub }:
+{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in
 
@@ -17,13 +17,15 @@ buildGoPackage rec {
 
   goDeps = ./deps.nix;
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postInstall =
     let stern = if isCrossBuild then buildPackages.stern else "$bin"; in
     ''
-      mkdir -p $bin/share/bash-completion/completions
-      ${stern}/bin/stern --completion bash > $bin/share/bash-completion/completions/stern
-      mkdir -p $bin/share/zsh/site-functions
-      ${stern}/bin/stern --completion zsh > $bin/share/zsh/site-functions/_stern
+      for shell in bash zsh; do
+        ${stern}/bin/stern --completion $shell > stern.$shell
+        installShellCompletion stern.$shell
+      done
     '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index e9a795b59cd..9cf436ff18f 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -40,8 +40,13 @@ let
   throwSystem = throw "Unsupported system: ${system}";
 
   sha256 = {
-    x86_64-darwin = "05xsbiviikrwfayjr6rvvfkm70681x2an6mgcg1cxw1fsi4sr6fd";
-    x86_64-linux = "0h2rfgx92yq9a6dqsv9a0r8a6m5xfrywkljjk5w9snw49b0r1p12";
+    x86_64-darwin = "0z731q00bwljlcmbjwqphyys7skqms1vg87pyi4nsvjmc7kjx7qg";
+    x86_64-linux = "0wrs0i2bqv21ivy8s88khbww28b3gsw4abbbbjc76mqma9b0bajs";
+  }.${system} or throwSystem;
+
+  version = {
+    x86_64-darwin = "4.4.2";
+    x86_64-linux = "4.4.2";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -53,8 +58,7 @@ let
   };
 
   linux = stdenv.mkDerivation rec {
-    inherit pname meta;
-    version = "4.4.0";
+    inherit pname meta version;
     src = fetchurl {
       url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
       inherit sha256;
@@ -140,8 +144,7 @@ let
   };
 
   darwin = stdenv.mkDerivation rec {
-    inherit pname meta;
-    version = "4.4.1";
+    inherit pname meta version;
 
     phases = [ "installPhase" ];
 
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 63d922ab299..6b5acd8344a 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -52,6 +52,28 @@ stdenv.mkDerivation rec {
     ln -s $out/opt/teams/teams $out/bin/
   '';
 
+  dontAutoPatchelf = true;
+
+  # Includes runtimeDependencies in the RPATH of the included Node modules
+  # so that dynamic loading works. We cannot use directly runtimeDependencies
+  # here, since the libraries from runtimeDependencies are not propagated 
+  # to the dynamically loadable node modules because of a condition in
+  # autoPatchElfHook since *.node modules have Type: DYN (Shared object file) 
+  # instead of EXEC or INTERP it expects.
+  # Fixes: https://github.com/NixOS/nixpkgs/issues/85449
+  postFixup = ''
+    autoPatchelf "$out"
+
+    runtime_rpath="${lib.makeLibraryPath runtimeDependencies}"
+
+    for mod in $(find "$out/opt/teams" -name '*.node'); do
+      mod_rpath="$(patchelf --print-rpath "$mod")"
+
+      echo "Adding runtime dependencies to RPATH of Node module $mod"
+      patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
+    done;
+  '';
+
   meta = with stdenv.lib; {
     description = "Microsoft Teams";
     homepage = "https://teams.microsoft.com";
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 612af14b87f..73aef9d17c7 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,29 +1,20 @@
 { stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
 , ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite, zlib
-, fetchpatch
+, glibcLocales
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200417";
+  version = "20200424";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "0s7943r2s14kavyjf7i70vca252l626539i09a9vk0i9sfi35vx5";
+    sha256 = "055hxlfrpn5a50vnh31faskcdkcjyzzr02gj5x2dizpf7vd67162";
   };
 
-  patches = [
-    # Remove on next release. Fixes the `change-folder`
-    # macro (https://github.com/neomutt/neomutt/issues/2268)
-    (fetchpatch {
-      url = "https://github.com/neomutt/neomutt/commit/9e7537caddb9c6adc720bb3322a7512cf51ab025.patch";
-      sha256 = "1vmlvgnhx1ra3rnyjkpkv6lrqw8xfh2kkmqp43fqn9lnk3pkjxvv";
-    })
-  ];
-
   buildInputs = [
     cyrus_sasl gss gpgme kerberos libidn ncurses
     notmuch openssl perl lmdb
@@ -95,8 +86,10 @@ stdenv.mkDerivation rec {
     (cd test-files && ./setup.sh)
 
     export NEOMUTT_TEST_DIR=$(pwd)/test-files
+    export LC_ALL="en_US.UTF-8"
   '';
 
+  checkInputs = [ glibcLocales ];
   checkTarget = "test";
   postCheck = "unset NEOMUTT_TEST_DIR";
 
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 2f484467450..57925a3292d 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages }:
+{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages, installShellFiles }:
 
 buildGoPackage rec {
   pname = "rclone";
@@ -17,6 +17,8 @@ buildGoPackage rec {
 
   outputs = [ "bin" "out" "man" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postInstall =
     let
       rcloneBin =
@@ -25,10 +27,11 @@ buildGoPackage rec {
         else stdenv.lib.getBin buildPackages.rclone;
     in
       ''
-        install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1
-        mkdir -p $bin/share/zsh/site-functions $bin/share/bash-completion/completions/
-        ${rcloneBin}/bin/rclone genautocomplete zsh $bin/share/zsh/site-functions/_rclone
-        ${rcloneBin}/bin/rclone genautocomplete bash $bin/share/bash-completion/completions/rclone.bash
+        installManPage $src/rclone.1
+        for shell in bash zsh; do
+          ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
+          installShellCompletion rclone.$shell
+        done
       '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 26b736b8b6f..eab382386ef 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "gitstatus";
-  version = "unstable-2020-03-15";
+  version = "unstable-2020-04-21";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
-    rev = "c07996bc3ea1912652f52a816b830a5a3ee9b49c";
-    sha256 = "07s8hwx3i5mnafi2xfim44z3q2nsvlcibfdxj17w8mkjhfpywi00";
+    rev = "3494f25b0b3b2eac241cf669d1fea2b49ea42fb3";
+    sha256 = "0b4g14dkkgih6zps2w1krl9xf44ysj02617zj1k51z127v2lpm1f";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index 8890cd5eb23..9dbb497c8c9 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, groff, utillinux }:
+{ stdenv, buildGoPackage, fetchFromGitHub, groff, installShellFiles, utillinux }:
 
 buildGoPackage rec {
   pname = "hub";
@@ -16,7 +16,7 @@ buildGoPackage rec {
     sha256 = "1qjab3dpia1jdlszz3xxix76lqrm4zbmqzd9ymld7h06awzsg2vh";
   };
 
-  nativeBuildInputs = [ groff utillinux ];
+  nativeBuildInputs = [ groff installShellFiles utillinux ];
 
   postPatch = ''
     patchShebangs .
@@ -24,13 +24,13 @@ buildGoPackage rec {
 
   postInstall = ''
     cd go/src/${goPackagePath}
-    install -D etc/hub.zsh_completion "$bin/share/zsh/site-functions/_hub"
-    install -D etc/hub.bash_completion.sh "$bin/share/bash-completion/completions/hub"
-    install -D etc/hub.fish_completion  "$bin/share/fish/vendor_completions.d/hub.fish"
+    installShellCompletion --zsh --name _hub etc/hub.zsh_completion
+    installShellCompletion --bash --name hub etc/hub.bash_completion.sh
+    installShellCompletion --fish --name hub.fish etc/hub.fish_completion
 
     LC_ALL=C.UTF8 \
     make man-pages
-    cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/
+    installManPage share/man/man[1-9]/*.[1-9]
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-lfs/1.nix b/pkgs/applications/version-management/git-lfs/1.nix
index 0e0d75b0919..5b2a9906a4f 100644
--- a/pkgs/applications/version-management/git-lfs/1.nix
+++ b/pkgs/applications/version-management/git-lfs/1.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "git-lfs";
   version = "1.5.6";
   rev = "0d02fb7d9a1c599bbf8c55e146e2845a908e04e0";
-  
+
   goPackagePath = "github.com/git-lfs/git-lfs";
 
   src = fetchFromGitHub {
@@ -14,8 +14,7 @@ buildGoPackage rec {
     sha256 = "0wddry1lqjccf4522fvhx6grx8h57xsz17lkaf5aybnrgw677w3d";
   };
 
-  # Tests fail with 'lfstest-gitserver.go:46: main redeclared in this block'
-  excludedPackages = [ "test" ];
+  subPackages = [ "." ];
 
   preBuild = ''
     pushd go/src/github.com/git-lfs/git-lfs
@@ -23,9 +22,6 @@ buildGoPackage rec {
     popd
   '';
 
-  postInstall = ''
-    rm -v $bin/bin/{man,script}
-  '';
   meta = with stdenv.lib; {
     description = "Git extension for versioning large files";
     homepage    = "https://git-lfs.github.com/";
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 8da56229a02..c651e8bab92 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "12.8.8",
-  "repo_hash": "1y8flmssz8bp07v7x9gxazqn5889hvkxk0k6py773gdnna5fd5fb",
+  "version": "12.8.9",
+  "repo_hash": "07vayjy3020hapbdx2wiv91g9xrfmvngbyj05hs2p0p3gwj6g2a4",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v12.8.8-ee",
+  "rev": "v12.8.9-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "12.8.8",
+    "GITALY_SERVER_VERSION": "12.8.9",
     "GITLAB_PAGES_VERSION": "1.16.0",
     "GITLAB_SHELL_VERSION": "11.0.0",
-    "GITLAB_WORKHORSE_VERSION": "8.21.1"
+    "GITLAB_WORKHORSE_VERSION": "8.21.2"
   }
 }
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index b41c78f3a3d..e3f7865226a 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -242,4 +242,4 @@ DEPENDENCIES
   webmock (~> 3.4.0)
 
 BUNDLED WITH
-   2.1.4
+   1.17.3
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 45e7db5be8e..968b26632c7 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -28,14 +28,14 @@ let
     };
   });
 in buildGoPackage rec {
-  version = "12.8.8";
+  version = "12.8.9";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "182jqglzbzq8jnlq6l634125jkvi67pfr1xck68n4k09gyzqllxv";
+    sha256 = "06q1km2pigpl4yxl8pkzdy2yxzvsfm6n5r3kmd8h19j3sc6imbmh";
   };
 
   # Fix a check which assumes that hook files are writeable by their
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 491dd868dd9..dda67833567 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -3,13 +3,13 @@
 buildGoPackage rec {
   pname = "gitlab-workhorse";
 
-  version = "8.21.1";
+  version = "8.21.2";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-workhorse";
     rev = "v${version}";
-    sha256 = "1d384xw7hfrph4i61z9z315sik7ja9hgrvmhljirwxrch1fyx3m4";
+    sha256 = "065yy8zfxahpybk3mbvc492by1lvssqcbqm8i4yp09m669rk239w";
   };
 
   goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 20c713e8c39..e8a58a6d59b 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -163,7 +163,7 @@ gem 'diffy', '~> 3.1.0'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
-gem 'rack', '~> 2.0.7'
+gem 'rack', '~> 2.0.9'
 
 group :unicorn do
   gem 'unicorn', '~> 5.4.1'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index a808e85e433..4d7b3d32a6b 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -173,7 +173,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.5)
+    concurrent-ruby (1.1.6)
     connection_pool (2.2.2)
     contracts (0.11.0)
     cork (0.3.0)
@@ -783,7 +783,7 @@ GEM
     public_suffix (4.0.3)
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
-    rack (2.0.7)
+    rack (2.0.9)
     rack-accept (0.4.5)
       rack (>= 0.4)
     rack-attack (6.2.0)
@@ -854,17 +854,17 @@ GEM
       json
     recursive-open-struct (1.1.0)
     redis (4.1.3)
-    redis-actionpack (5.1.0)
-      actionpack (>= 4.0, < 7)
-      redis-rack (>= 1, < 3)
+    redis-actionpack (5.2.0)
+      actionpack (>= 5, < 7)
+      redis-rack (>= 2.1.0, < 3)
       redis-store (>= 1.1.0, < 2)
     redis-activesupport (5.2.0)
       activesupport (>= 3, < 7)
       redis-store (>= 1.3, < 2)
     redis-namespace (1.6.0)
       redis (>= 3.0.4)
-    redis-rack (2.0.6)
-      rack (>= 1.5, < 3)
+    redis-rack (2.1.2)
+      rack (>= 2.0.8, < 3)
       redis-store (>= 1.2, < 2)
     redis-rails (5.0.2)
       redis-actionpack (>= 5.0, < 6)
@@ -1325,7 +1325,7 @@ DEPENDENCIES
   prometheus-client-mmap (~> 0.10.0)
   pry-byebug (~> 3.5.1)
   pry-rails (~> 0.3.9)
-  rack (~> 2.0.7)
+  rack (~> 2.0.9)
   rack-attack (~> 6.2.0)
   rack-cors (~> 1.0.6)
   rack-oauth2 (~> 1.9.3)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index f92b72361df..dec89c43a82 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -763,10 +763,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.6";
   };
   connection_pool = {
     groups = ["default"];
@@ -3501,10 +3501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z90vflxbgjy2n84r7mbyax3i2vyvvrxxrf86ljzn5rw65jgnn2i";
+      sha256 = "1mxzk12xylrz6d4n9jj5jasfscbf1pbk4idrb0nlf327lx9rwfkk";
       type = "gem";
     };
-    version = "2.0.7";
+    version = "2.0.9";
   };
   rack-accept = {
     dependencies = ["rack"];
@@ -3803,10 +3803,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hvai5ygkyii9wq8h98wim8shgrm7vkv0js62zpm85vdl1xzvphz";
+      sha256 = "0c2276zzc0044zh37a8frx1v7hnra7z7k126154ps7njbqngfdv3";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.2.0";
   };
   redis-activesupport = {
     dependencies = ["activesupport" "redis-store"];
@@ -3836,10 +3836,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pa19ydbk0l6wilwbxcjn6knfs4ffgj0rhaaldrlhf76pjgkaiqb";
+      sha256 = "0ldw5sxyd80pv0gr89kvn6ziszlbs8lv1a573fkm6d0f11fps413";
       type = "gem";
     };
-    version = "2.0.6";
+    version = "2.1.2";
   };
   redis-rails = {
     dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index a2a3a6d05b7..a128fd5bc40 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix yarn2nix
+#! nix-shell -i python3 -p bundix bundler common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix yarn2nix
 
 import click
 import click_log
@@ -100,7 +100,7 @@ def cli():
 
 
 @cli.command('update-data')
-@click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag')
+@click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
 def update_data(rev: str):
     """Update data.nix"""
     repo = GitLabRepo()
@@ -135,6 +135,7 @@ def update_rubyenv():
         with open(rubyenv_dir / fn, 'w') as f:
             f.write(repo.get_file(fn, rev))
 
+    subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
 
 
@@ -174,6 +175,7 @@ def update_gitaly():
         with open(gitaly_dir / fn, 'w') as f:
             f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
 
+    subprocess.check_output(['bundle', 'lock'], cwd=gitaly_dir)
     subprocess.check_output(['bundix'], cwd=gitaly_dir)
 
     os.environ['GOROOT'] = ""
@@ -227,10 +229,11 @@ def update_gitlab_workhorse():
         os.unlink(gitlab_workhorse_dir / fn)
 
 @cli.command('update-all')
+@click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
 @click.pass_context
-def update_all(ctx):
+def update_all(ctx, rev: str):
     """Update all gitlab components to the latest stable release"""
-    ctx.invoke(update_data, rev='latest')
+    ctx.invoke(update_data, rev=rev)
     ctx.invoke(update_rubyenv)
     ctx.invoke(update_yarnpkgs)
     ctx.invoke(update_gitaly)
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 39a1f6faeac..87385024967 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -24,8 +24,6 @@ buildGoPackage rec {
   goPackagePath = "github.com/opencontainers/runc";
   outputs = [ "bin" "out" "man" ];
 
-  hardeningDisable = [ "fortify" ];
-
   nativeBuildInputs = [ go-md2man installShellFiles pkg-config which ];
   buildInputs = [ libseccomp libapparmor apparmor-parser ];
 
diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix
index a93b3648090..c721fdf40c6 100644
--- a/pkgs/build-support/src-only/default.nix
+++ b/pkgs/build-support/src-only/default.nix
@@ -1,6 +1,31 @@
-{stdenv, name, src, patches ? [], buildInputs ? [], ...}: 
+{ stdenv }@orig:
+# srcOnly is a utility builder that only fetches and unpacks the given `src`,
+# maybe pathings it in the process with the optional `patches` and
+# `buildInputs` attributes.
+#
+# It can be invoked directly, or be used to wrap an existing derivation. Eg:
+#
+# > srcOnly pkgs.hello
+#
+{ name
+, src
+, stdenv ? orig.stdenv
+, patches ? []
+, # deprecated, use the nativeBuildInputs
+  buildInputs ? []
+, # used to pass extra unpackers
+  nativeBuildInputs ? []
+, # needed when passing an existing derivation
+  ...
+}:
 stdenv.mkDerivation {
-  inherit src buildInputs patches name;
+  inherit
+    buildInputs
+    name
+    nativeBuildInputs
+    patches
+    src
+    ;
   installPhase = "cp -r . $out";
   phases = ["unpackPhase" "patchPhase" "installPhase"];
 }
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index 53e81b323dc..14e1b248261 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20190917";
+  version = "20200416";
 
   src = fetchFromGitHub {
-    owner  = "arc-design";
+    owner  = "jnsh";
     repo   = pname;
-    rev    = version;
-    sha256 = "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa";
+    rev    = "0779e1ca84141d8b443cf3e60b85307a145169b6";
+    sha256 = "1ddyi8g4rkd4mxadjvl66wc0lxpa4qdr98nbbhm5abaqfs2yldd4";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-gnome-shell" # 3.36 not supported
+    "--disable-cinnamon" # not equipped to test
     "--disable-unity"
   ];
 
@@ -44,10 +45,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
-    homepage    = "https://github.com/arc-design/arc-theme";
+    homepage    = "https://github.com/jnsh/arc-theme";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ simonvandel romildo ];
     platforms   = platforms.linux;
-    broken = true; # since libsass 3.6.3
   };
 }
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 388280a905f..b4ec8bd1706 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -242,11 +242,7 @@ let
       # Add default meta information
       homepage = "https://${goPackagePath}";
       platforms = go.meta.platforms or lib.platforms.all;
-    } // meta // {
-      # add an extra maintainer to every package
-      maintainers = (meta.maintainers or []) ++
-                    [ lib.maintainers.lethalman ];
-    };
+    } // meta;
   });
 in if disabled then
   throw "${package.name} not supported for go ${go.meta.branch}"
diff --git a/pkgs/development/libraries/dqlite/default.nix b/pkgs/development/libraries/dqlite/default.nix
index 131c22fccfb..aed7dc59bcb 100644
--- a/pkgs/development/libraries/dqlite/default.nix
+++ b/pkgs/development/libraries/dqlite/default.nix
@@ -5,24 +5,25 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "dqlite";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = pname;
     rev = "v${version}";
-    sha256 = "19snm6cicxagcw9ys2jmjf6fchzs6pwm7h4jmyr0pn6zks2yjf1i";
+    sha256 = "04h3wbfv6bkzzmcwaja33x2qkj3czn0p6fgbdgqd1xli8sx2c2k4";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
-  buildInputs = [ libco-canonical.dev libuv raft-canonical.dev 
-                  sqlite-replication ];
+  buildInputs = [
+    libco-canonical.dev
+    libuv
+    raft-canonical.dev
+    sqlite-replication
+  ];
 
-  preConfigure= ''
-    substituteInPlace configure --replace /usr/bin/ " "
-  '';
-
-  doCheck = true;
+  # tests hang for ever on x86_64-linux
+  doCheck = false;
 
   outputs = [ "dev" "out" ];
 
@@ -34,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/CanonicalLtd/dqlite/";
     license = licenses.asl20;
     maintainers = with maintainers; [ joko wucke13 ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/raft-canonical/default.nix b/pkgs/development/libraries/raft-canonical/default.nix
index 201c332dfdd..ed3d7ae9e70 100644
--- a/pkgs/development/libraries/raft-canonical/default.nix
+++ b/pkgs/development/libraries/raft-canonical/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "raft-canonical";
-  version = "0.9.17";
+  version = "0.9.18";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "raft";
     rev = "v${version}";
-    sha256 = "0q444wd6wz85g4zjkdsrf8z7chkjq9rxzq8l6fh37mgf7c23hv09";
+    sha256 = "0f613aiyxqskz9d10f7r37ar9ngqsf9qsyk3jjf7s5l14wh6vl5k";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
diff --git a/pkgs/development/node-packages/node-packages-v10.json b/pkgs/development/node-packages/node-packages-v10.json
index 177b7fdf12d..9ea5b2ec15d 100644
--- a/pkgs/development/node-packages/node-packages-v10.json
+++ b/pkgs/development/node-packages/node-packages-v10.json
@@ -35,6 +35,7 @@
 , "coc-python"
 , "coc-r-lsp"
 , "coc-rls"
+, "coc-rust-analyzer"
 , "coc-smartf"
 , "coc-snippets"
 , "coc-solargraph"
diff --git a/pkgs/development/node-packages/node-packages-v10.nix b/pkgs/development/node-packages/node-packages-v10.nix
index 434cc707bab..95edbef44e3 100644
--- a/pkgs/development/node-packages/node-packages-v10.nix
+++ b/pkgs/development/node-packages/node-packages-v10.nix
@@ -54491,6 +54491,24 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-rust-analyzer = nodeEnv.buildNodePackage {
+    name = "coc-rust-analyzer";
+    packageName = "coc-rust-analyzer";
+    version = "0.5.5";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.5.5.tgz";
+      sha512 = "l44UBTzSWkEL/uHb5GCR5m6HnheJmuJFbYqqJ+5n6Q+PJIpKSyzyNgMiC3nmsOWCT6W3Js83s1i6zTAu8Zy8LA==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "rust-analyzer for Vim/Neovim, works as an extension with coc.nvim";
+      homepage = "https://github.com/fannheyward/coc-rust-analyzer#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-smartf = nodeEnv.buildNodePackage {
     name = "coc-smartf";
     packageName = "coc-smartf";
diff --git a/pkgs/development/ocaml-modules/bigstring/default.nix b/pkgs/development/ocaml-modules/bigstring/default.nix
new file mode 100644
index 00000000000..c74676e4a1e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bigstring/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "bigstring";
+  version = "0.2";
+
+  minimumOCamlVersion = "4.03";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = "ocaml-bigstring";
+    rev = version;
+    sha256 = "0ypdf29cmwmjm3djr5ygz8ls81dl41a4iz1xx5gbcdpbrdiapb77";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://github.com/c-cube/ocaml-bigstring;
+    description = "Bigstring built on top of bigarrays, and convenient functions";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/pkgs/development/tools/cloudfoundry-cli/default.nix b/pkgs/development/tools/cloudfoundry-cli/default.nix
index ab746c9c530..55d9854d792 100644
--- a/pkgs/development/tools/cloudfoundry-cli/default.nix
+++ b/pkgs/development/tools/cloudfoundry-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "cloudfoundry-cli";
@@ -15,6 +15,8 @@ buildGoPackage rec {
     sha256 = "0dqrkimwhw016icgyf4cyipzy6vdz5jgickm33xxd9018dh3ibwq";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   makeTarget = let hps = stdenv.hostPlatform.system; in
     if hps == "x86_64-darwin" then
       "out/cf-cli_osx"
@@ -33,7 +35,7 @@ buildGoPackage rec {
 
   installPhase = ''
     install -Dm555 out/cf "$bin/bin/cf"
-    install -Dm444 -t "$bin/share/bash-completion/completions/" "$src/ci/installers/completion/cf"
+    installShellCompletion --bash "$src/ci/installers/completion/cf"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index b18bea0c907..7c7862dbe3b 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "12.10.0";
+  version = "12.10.1";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "1a2cfr72b15h3ymxf69a0inb4amfxivdhfaj711wgyvcf5ymnbsv";
+    sha256 = "0xs0cnkqzmkbj8488s9kyc0m00g3n8vq9wplb99wrax86zs8dyw9";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "18if2xbkldpn0bwfyk6bgbdl9rdg4rjxc0im6lclwcgpbmslwx5r";
+    sha256 = "1mcz9a44pa8wx8hk2x7rgp5brbw7a71dqilfrfchnjkg2c9q7x1q";
   };
 in
 buildGoPackage rec {
@@ -29,7 +29,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0bsd3dk2fi21klqwzw8c181gv61qxbd32lj6mhkj9liz4flarhmv";
+    sha256 = "1xvkr3zhn085mz7k3xbz7y5q9yjbmgp1h1sp3a2w27jmpmhl32zm";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/kind/default.nix b/pkgs/development/tools/kind/default.nix
index f86bc489837..6436c83ee21 100644
--- a/pkgs/development/tools/kind/default.nix
+++ b/pkgs/development/tools/kind/default.nix
@@ -19,9 +19,10 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
-    $bin/bin/kind completion bash > kind.bash
-    $bin/bin/kind completion zsh > kind.zsh
-    installShellCompletion kind.{bash,zsh}
+    for shell in bash zsh; do
+      $bin/bin/kind completion $shell > kind.$shell
+      installShellCompletion kind.$shell
+    done
   '';
 
   meta = {
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index b70fa053a1d..3cb5b96d588 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec{
   pname = "cypress";
-  version = "4.3.0";
+  version = "4.4.1";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "0lrjha3zrsclpk8bhmv14vy1y5liahjkvcd87zm6cik1rnscaspw";
+    sha256 = "0da1y90a6i3fjhyrzwwn3pavzbqin9v5v7hx8halz6i7cf1halfi";
   };
 
   # don't remove runtime deps
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 1099ca84af5..f0d93572de5 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -473,12 +473,12 @@ let
 
   coc-java = buildVimPluginFrom2Nix {
     pname = "coc-java";
-    version = "2020-04-10";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-java";
-      rev = "e4dd6b744f7eb356afa8db7b958bdf5910b5ec6f";
-      sha256 = "0fndkbmi84qgqfj6ny04wm05mnrvrg36bb04vk7zj90k8a51xrrr";
+      rev = "3c914c2b9e154889361d2631cd2188cf7e5fa020";
+      sha256 = "0q7q2z7k2sxqgi6nyj669iq2p4h3962i8hv3gzg2mpi0p73xs98k";
     };
     meta.homepage = "https://github.com/neoclide/coc-java/";
   };
@@ -521,12 +521,12 @@ let
 
   coc-metals = buildVimPluginFrom2Nix {
     pname = "coc-metals";
-    version = "2020-04-21";
+    version = "2020-04-22";
     src = fetchFromGitHub {
       owner = "ckipp01";
       repo = "coc-metals";
-      rev = "fdddbbdbe04cdb077b7a2006c295d7a95343c4bb";
-      sha256 = "0g0zqxmakwmjr9ii0v5rxiyvv3k909lzvkxkw0hyhpdkbpmzjkxl";
+      rev = "b35bb16122d8771c9936f1203d0c712d45017f13";
+      sha256 = "1w9vgxai421j3qbzbm42hq3fyzwf2a9n89y10vj9vhir0q0j8az0";
     };
     meta.homepage = "https://github.com/ckipp01/coc-metals/";
   };
@@ -569,12 +569,12 @@ let
 
   coc-python = buildVimPluginFrom2Nix {
     pname = "coc-python";
-    version = "2020-02-21";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-python";
-      rev = "6a5104d18ae5ebf7d9b84af7c4a34c6ced62aee8";
-      sha256 = "0l8zrb2bhv1apx2vp8gswqh7v64dxfd8124cggxfkkzdqyxr10w0";
+      rev = "968aec39f74c6f80e6c9c3c0fed51b6113a1a35a";
+      sha256 = "135z48idr8r7604ymiqdsml9z6d3swaja89697znszigpy05nz11";
     };
     meta.homepage = "https://github.com/neoclide/coc-python/";
   };
@@ -593,16 +593,27 @@ let
 
   coc-rls = buildVimPluginFrom2Nix {
     pname = "coc-rls";
-    version = "2019-12-07";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-rls";
-      rev = "c899418e8fae4a8c3eb15fee48513ae050b11d60";
-      sha256 = "0sipvs8r8i239l2334k4qnhwpaijwd524q598rp4ma34ry42c2xl";
+      rev = "142353e2f71cb6c1b235db0cf430ca53e211613b";
+      sha256 = "07gkspvh5l25vyny5waiw0y3fm5a8qbrml13r7llgp4lqzzh96bd";
     };
     meta.homepage = "https://github.com/neoclide/coc-rls/";
   };
 
+  coc-rust-analyzer = buildVimPluginFrom2Nix {
+    pname = "coc-rust-analyzer";
+    version = "2020-04-24";
+    src = fetchFromGitHub {
+      owner = "fannheyward";
+      repo = "coc-rust-analyzer";
+      rev = "1dcdf6768520bff29921c50ef904478cbdfe0fb8";
+      sha256 = "1p6hyixx9bjpyy42g2w4bnxwv9hafs5ppsx1fq8gndnq3nsjcyl3";
+    };
+  };
+
   coc-smartf = buildVimPluginFrom2Nix {
     pname = "coc-smartf";
     version = "2019-07-26";
@@ -617,12 +628,12 @@ let
 
   coc-snippets = buildVimPluginFrom2Nix {
     pname = "coc-snippets";
-    version = "2020-04-16";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-snippets";
-      rev = "21f65e0de83936f8db27ce1bc4a93251adfeef5a";
-      sha256 = "1ahh143yq6hb8f3xv5kvj3dy2017yzl9vn31gfabswvdmdjm37in";
+      rev = "cad80795d4abcbbd2aa6da462af1087e9134b4eb";
+      sha256 = "04wk7x148dcw3rx4fh3c7c80qillq0bf9vfdkc9l8xaglk0xh73h";
     };
     meta.homepage = "https://github.com/neoclide/coc-snippets/";
   };
@@ -773,12 +784,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-04-21";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "1cedc9a852cc7e246665ca1d662bd8978ac5405c";
-      sha256 = "1vqm9s68148715gb5x5xrhl5ajwi881d86hq7906lp7b8gk5d6is";
+      rev = "0d4f02555e5aaecbd8efef47a70ba2f2c6412d1f";
+      sha256 = "0129gr3hsagr1lzngvbgs4bnvj92izxavval0zyxgh68w3vlak42";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -1038,12 +1049,12 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-04-20";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "6d2174645f3a7ab790546940b02024d72296e4c1";
-      sha256 = "0dnnnwr01c4jgjyjnk4hivj4hiyar4j60fy2jc3l91aqd4m845vl";
+      rev = "609c85797a5f6acc2e2357cf56e7f6c78c561145";
+      sha256 = "0rx0nvsyzj1wl7p30g769cidspkq3xpvzpdhz94qfsczdm68yhi0";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
@@ -1692,12 +1703,12 @@ let
 
   iceberg-vim = buildVimPluginFrom2Nix {
     pname = "iceberg-vim";
-    version = "2020-03-06";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "1740235846c92666fe521e550a27fa47ebe5f5a3";
-      sha256 = "13zf899kgwjhrksznz2212ywml7nnqwq2dyam39nzywf8msg8va6";
+      rev = "acf6696e14fd8cfa2ed338076a7c3a68fad42486";
+      sha256 = "1hy9n37nkkax6qdcg23a522bz26r8b23w9kj570qml9v3ck4ihqm";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -1873,12 +1884,12 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2020-04-17";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "34c24ee0f8476dfc573e22f9f6a6fe4eec466225";
-      sha256 = "0yy50yb28md5z2yzcaq45cchd8c44q12xvwcb2yh3r9nhgqhll2h";
+      rev = "c97e5cfb6ef20b725f859af694bec9c6a3a44145";
+      sha256 = "1349v5lhc4dg7ir42jj157jyf29bm7pj73h64n2501ddqdkb1zqd";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -2269,12 +2280,12 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2020-03-20";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "d02b169e70bd6d2b2365bf6cda721967616a30bf";
-      sha256 = "1cya26wfqc7l7dqy854m4kwrq3w66knmn2cgviqh9cnsjzhwxs0d";
+      rev = "7af08e5a80c095a836d3f6762b991c6f9c4f2f2f";
+      sha256 = "17llh2jh2igkbjmnbii54g4x9g57y6xflh8d40wim980pb3jr57s";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
@@ -2353,12 +2364,12 @@ let
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-04-20";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "e3ece229fc0f26cb114f629faa2dc979e16e8e8a";
-      sha256 = "1g823p6qvxvxv5l9f3lb0dyf9pzrr7i3qw8n1rqfs2w0xipj6arl";
+      rev = "48900bd6a008120aeb33e3807f1d2c18985ad210";
+      sha256 = "1x788nrrxaa12cqsdi2gdx2haxji3v4rahpxjq309kd5s40m9z2j";
     };
     meta.homepage = "https://github.com/kassio/neoterm/";
   };
@@ -2521,12 +2532,12 @@ let
 
   nvim-lsp = buildVimPluginFrom2Nix {
     pname = "nvim-lsp";
-    version = "2020-04-21";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lsp";
-      rev = "39b743b9b36be26a5e58278d7608fe456a0ad3f8";
-      sha256 = "15q7d0qxdvvn79rwy87aiynilxn8vcnym2w252x1p3s4wqsx1psi";
+      rev = "d1507239df1d9f2758f1ad75634046c4d024cfd8";
+      sha256 = "00smhjk73xwzmxqjwqi1srmfbirl065gii65gj1lhfi6vha7h9k1";
     };
     meta.homepage = "https://github.com/neovim/nvim-lsp/";
   };
@@ -3229,12 +3240,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-01-23";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "679a9d9ac9579bd18225409d85ed4870fb6c9c62";
-      sha256 = "1s4736104vfaj7rfcdzcnmgbnxxi0ngs07km0p2fi1m2zc68602l";
+      rev = "1e50ea85361b7144acad459eb091973089b780f6";
+      sha256 = "09w7vwzacny6kbf9s2ihan8k682qljp8zad1dh5ds0738a3nwxpl";
     };
     meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
@@ -3277,12 +3288,12 @@ let
 
   tender-vim = buildVimPluginFrom2Nix {
     pname = "tender-vim";
-    version = "2020-02-18";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "jacoborus";
       repo = "tender.vim";
-      rev = "f93b2f373cc21826524c94fbd1f3b3a4c55173d2";
-      sha256 = "0bfns5vsbyh1s01s295hbf8h04n21cfkfp8b2r3cfr8mcvazpmpq";
+      rev = "44d04bc9ecb0188e7b1a3e6b6715b9a63dc8f3e1";
+      sha256 = "059my5q6gqjdkaf7qn842h92c6y7lp5z8wpwsi2ww6anzy85506z";
     };
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
@@ -3506,12 +3517,12 @@ let
 
   vim = buildVimPluginFrom2Nix {
     pname = "vim";
-    version = "2020-04-18";
+    version = "2020-04-22";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "6a8cd0f825c3d7b071ebd0dce81a7707ec0be652";
-      sha256 = "1qyqc7j8sdq3xnp871hgxdgxypkm8v5mfri2r89b0ydchrd15b2l";
+      rev = "043518d3a9c48049bc0ae0af72dcbb239bf1d36d";
+      sha256 = "0v25yk0d4488yn1yvzkpcqh8ldx51q4hbfn678vkr9ga5i0nkkwp";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
@@ -3758,12 +3769,12 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-04-20";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "eff4828b37d7f631aaec0465a315d627651b9037";
-      sha256 = "1rm8kd90sf00sdgr8pqcansyrmrwsqd4v1fkyy7zl9x2jgrxkbrh";
+      rev = "ff3f66ed30fbab70af1f37c8532327bd9617f7c7";
+      sha256 = "1gppy9lk9vyxrqyb9lxvvl8nl31ha5mjwvhlang8g69j2vqpxikr";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -4502,12 +4513,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-04-12";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "85e2c73830b6bb01ce7fc3a926d2b25836a253eb";
-      sha256 = "1zbw8cnjl9m59grr65kfkgi8p4850rjp24f1plp4jhidjmsfhv7x";
+      rev = "05bbfcd0dc24088f302e7221c7ec000d0ee62982";
+      sha256 = "1yrfci26yr02s2728jlk4bd29g1abh8dwps8q9l1pk93rzlchisc";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -4562,12 +4573,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-04-18";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "2b62481d388c5e0e1dd11e74377523fdb98b6ac4";
-      sha256 = "1x6x6wp1ggn2whrm5mi7wyz5b88syc4yvncgs8bjhbrc636psqhq";
+      rev = "6b46098b2a83becda06586d7c430ffdc4a27db88";
+      sha256 = "0q8yvjgxvfjd40f3pspv2kzdcz45q242jfpl948mw74arl0121g8";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -4598,12 +4609,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-04-19";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "07869cdfb066dcb287673eee3effb30021a970b8";
-      sha256 = "1gmfvlysy7s0rh3lwpq9fym59nfwm64grcfrrhf2d9gzvwip9326";
+      rev = "b7edb21cc518a5404b16997df056d560b6ae067f";
+      sha256 = "1acwh0kqk7vy0p5vinmm42c4map4qara0590yd6mzc3ym0zyjvi0";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -4898,12 +4909,12 @@ let
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
     pname = "vim-javacomplete2";
-    version = "2019-12-17";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "artur-shaik";
       repo = "vim-javacomplete2";
-      rev = "dc7951895a98c49c39622f65cdd7b39374c348bc";
-      sha256 = "1d8xiiwfg5wz57jyy7ahbi2bl5sjkhkpkqm2qbhsn7cd9vk36sxy";
+      rev = "3ebc63c4b79eec08eb81bdddc8f4c7cfe9cb702f";
+      sha256 = "0dwgqnjcnnyvmrplbxkzmfyrm0rgd4z5kgx5989c528gp0dwhaja";
     };
     meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
@@ -5979,12 +5990,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-04-20";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "dbfffb971b46bfb9bc90763d4ccad97e3277cd7b";
-      sha256 = "0rmpf1lrrq57pai2vn0q9qig73kdq7l54iar1qk46f7wxy3wi1dw";
+      rev = "ad4407f31bf170b0813fb9b03f851cf79b5f65ca";
+      sha256 = "0nr7xq5kz94fm578ds84pd3ydbhfbxs6r4fc5250anmazip2h2cw";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6075,12 +6086,12 @@ let
 
   vim-subversive = buildVimPluginFrom2Nix {
     pname = "vim-subversive";
-    version = "2020-04-10";
+    version = "2020-04-22";
     src = fetchFromGitHub {
       owner = "svermeulen";
       repo = "vim-subversive";
-      rev = "4a2020248c8a09950b7e1a2cd864ffb88826572c";
-      sha256 = "0pqrb3hz1hjl42khn4691s3ajlswk6nms43hdbglj679y28bkzfi";
+      rev = "9db5f782be230368a3a81a21d3eb93678f7523ae";
+      sha256 = "0igv2yf1h1ajnv9c0z02pvgqciighwc1y53c9ahfqwxd58kpi5fj";
     };
     meta.homepage = "https://github.com/svermeulen/vim-subversive/";
   };
@@ -6291,12 +6302,12 @@ let
 
   vim-tmux-navigator = buildVimPluginFrom2Nix {
     pname = "vim-tmux-navigator";
-    version = "2019-12-10";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "8fdf78292bb3aed1c9de880be7e03efdbf23d306";
-      sha256 = "0y92na4dcfcsj5zbs3m7y6csl3sd46a9968id78cdn9cgg8iwzac";
+      rev = "44ba6fbe45895cd541ebfc87606add5c76e3829b";
+      sha256 = "075cncr53w9xc1kqm50zl8yl18aspn3zdr6qjqyslf7gkw8yk38d";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -6651,12 +6662,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-04-20";
+    version = "2020-04-23";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "f029f673b259206bb04ca71b97e68d9635b1c4ee";
-      sha256 = "16m7ab5sy0gb900bf6ydynm1bhi11w60qmscqc66cmmb2hjz0iq2";
+      rev = "3e2bf3f27ad7253767eefe0b4c4e551c602d5d77";
+      sha256 = "1pxkim0mh691lb8clv1828nhs4cqzf8s3vkmynq7164mzvrf77sh";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -6699,12 +6710,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-04-19";
+    version = "2020-04-24";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "02b128dd37a63f82732c3a0a9db9b24430ad56af";
-      sha256 = "1zmf9yrpxynbvajkv52z3njgzh89j4qx6w8ppnl7bkf4r85k09hl";
+      rev = "48631457714b6a611b96ad4785ec16a98b639515";
+      sha256 = "05zabbnrxbgnymp6iyc6gmfj3sk752679kvyzk5jiraksi32djiw";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 66e956a0f16..4d5b532216d 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -229,6 +229,12 @@ self: super: {
     src = "${nodePackages.coc-rls}/lib/node_modules/coc-rls";
   };
 
+  coc-rust-analyzer = buildVimPluginFrom2Nix {
+    pname = "coc-rust-analyzer";
+    version = nodePackages.coc-rust-analyzer.version;
+    src = "${nodePackages.coc-rust-analyzer}/lib/node_modules/coc-rust-analyzer";
+  };
+
   coc-smartf = buildVimPluginFrom2Nix {
     pname = "coc-smartf";
     version = nodePackages.coc-smartf.version;
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 9a854d58b08..4af22bd833e 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -97,6 +97,7 @@ enomsg/vim-haskellConcealPlus
 ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
+fannheyward/coc-rust-analyzer
 farmergreg/vim-lastplace
 fatih/vim-go
 FelikZ/ctrlp-py-matcher
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 6edbb1aa4d7..8c3f489753d 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert stdenv.lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20200413";
+  version = "1.0.20200426";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "11dpw1inszbc3qjcfnap74kgjxkyyrx90vxv6wmsgkbp8lsl4p66";
+    sha256 = "0j343xk9qgmzn0j6kgvydfqjqslf2rv6r4ikfc59982xxny6f6l5";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/servers/blockbook/default.nix b/pkgs/servers/blockbook/default.nix
index b931e8cfcb2..b6a1887bf80 100644
--- a/pkgs/servers/blockbook/default.nix
+++ b/pkgs/servers/blockbook/default.nix
@@ -39,9 +39,7 @@ buildGoPackage rec {
     packr clean && packr
   '';
 
-  postInstall = ''
-    rm $bin/bin/{scripts,templates,trezor-common}
-  '';
+  subPackages = [ "." ];
 
   meta = with lib; {
     description = "Trezor address/account balance backend";
@@ -51,4 +49,3 @@ buildGoPackage rec {
     platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
index a5083a20cb7..9a2bf7ce590 100644
--- a/pkgs/servers/etcd/default.nix
+++ b/pkgs/servers/etcd/default.nix
@@ -1,33 +1,40 @@
-{ lib, libpcap, buildGoPackage, fetchFromGitHub }:
-
-with lib;
+{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "etcd";
-  version = "3.3.13"; # After updating check that nixos tests pass
-  rev = "v${version}";
+  version = "3.3.20";
 
+  # change to "go.etcd.io/etcd" for >= 3.4
   goPackagePath = "github.com/coreos/etcd";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "coreos";
+    owner = "etcd-io";
     repo = "etcd";
-    sha256 = "1kac4qfr83f2hdz35403f1ald05wc85vvhw79vxb431n61jvyaqy";
+    rev = "v${version}";
+    sha256 = "1iqq12kkky3cl28k7fabqqyx1i0a2wmbkq0bs8yhiwywp076k08w";
   };
 
-  subPackages = [
-    "cmd/etcd"
-    "cmd/etcdctl"
-  ];
+  buildPhase = ''
+    cd go/src/${goPackagePath}
+    patchShebangs .
+    ./build
+    ./functional/build
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/* bin/functional/cmd/* -t $bin/bin
+  '';
 
-  buildInputs = [ libpcap ];
+  passthru.tests = with nixosTests; {
+    etcd = etcd;
+    etcd-cluster = etcd-cluster;
+  };
 
-  meta = {
+  meta = with lib; {
     description = "Distributed reliable key-value store for the most critical data of a distributed system";
     license = licenses.asl20;
-    homepage = "https://coreos.com/etcd/";
-    maintainers = with maintainers; [offline];
-    platforms = with platforms; linux;
+    homepage = "https://etcd.io/";
+    maintainers = with maintainers; [ offline ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/hashi-ui/default.nix b/pkgs/servers/hashi-ui/default.nix
new file mode 100644
index 00000000000..019a8dca3b6
--- /dev/null
+++ b/pkgs/servers/hashi-ui/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "hashi-ui";
+  version = "1.3.8";
+
+  src = fetchurl {
+    url = "https://github.com/jippi/hashi-ui/releases/download/v${version}/hashi-ui-linux-amd64";
+    sha256 = "999a34b6e99657ffc7e6c98a15b8ea744c28420e891a8802c7d99b737752dfb6";
+  };
+
+  dontUnpack = true;
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -m755 -D $src $out/bin/hashi-ui
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jippi/hashi-ui";
+    description = "A modern user interface for hashicorp Consul & Nomad";
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ numkem ];
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/alertmanager.nix b/pkgs/servers/monitoring/prometheus/alertmanager.nix
index de6d834c4d6..9074c19e109 100644
--- a/pkgs/servers/monitoring/prometheus/alertmanager.nix
+++ b/pkgs/servers/monitoring/prometheus/alertmanager.nix
@@ -1,4 +1,4 @@
-{ stdenv, go, buildGoPackage, fetchFromGitHub }:
+{ stdenv, go, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "alertmanager";
@@ -24,9 +24,11 @@ buildGoPackage rec {
        -X ${t}.GoVersion=${stdenv.lib.getVersion go}
   '';
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postInstall = ''
-    mkdir -p $bin/etc/bash_completion.d
-    $NIX_BUILD_TOP/go/bin/amtool --completion-script-bash > $bin/etc/bash_completion.d/amtool_completion.sh
+    $bin/bin/amtool --completion-script-bash > amtool.bash
+    installShellCompletion amtool.bash
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
index 1e29eefba2b..f845a6ef256 100644
--- a/pkgs/servers/monitoring/prometheus/mail-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage {
   pname = "mailexporter";
@@ -15,9 +15,11 @@ buildGoPackage {
 
   goDeps = ./mail-exporter_deps.nix;
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postInstall = ''
-    install -D -m 0444 -t $bin/share/man/man1 $src/man/mailexporter.1
-    install -D -m 0444 -t $bin/share/man/man5 $src/man/mailexporter.conf.5
+    installManPage $src/man/mailexporter.1
+    installManPage $src/man/mailexporter.conf.5
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/sql/cockroachdb/default.nix b/pkgs/servers/sql/cockroachdb/default.nix
index 8f3d2a7b285..fb62ee58474 100644
--- a/pkgs/servers/sql/cockroachdb/default.nix
+++ b/pkgs/servers/sql/cockroachdb/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildGoPackage, fetchurl
 , cmake, xz, which, autoconf
 , ncurses6, libedit, libunwind
+, installShellFiles
 }:
 
 let
@@ -8,7 +9,7 @@ let
   linuxDeps  = [ ncurses6 ];
 
   buildInputs = if stdenv.isDarwin then darwinDeps else linuxDeps;
-  nativeBuildInputs = [ cmake xz which autoconf ];
+  nativeBuildInputs = [ installShellFiles cmake xz which autoconf ];
 
 in
 buildGoPackage rec {
@@ -42,7 +43,7 @@ buildGoPackage rec {
     runHook preInstall
 
     install -D cockroachoss $bin/bin/cockroach
-    install -D cockroach.bash $bin/share/bash-completion/completions/cockroach.bash
+    installShellCompletion cockroach.bash
 
     mkdir -p $man/share/man
     cp -r man $man/share/man
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 7fac0fb8ab8..3b117d4a1ab 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.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "0r8vccgfy85ryswaigzgwmvhvrhlap7nrg7bi66w63877znqlksj";
+    sha256 = "1v6lwjlc4qrxfv1yjy31xh59ayf7jprm3y87l75d08pzj1v4lsj5";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 19fbff747fc..6051c16e91e 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -5,6 +5,7 @@
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
 , criu
 , bash
+, installShellFiles
 }:
 
 buildGoPackage rec {
@@ -39,11 +40,10 @@ buildGoPackage rec {
       '')
     ]}
 
-    mkdir -p "$bin/share/bash-completion/completions/"
-    cp -av go/src/github.com/lxc/lxd/scripts/bash/lxd-client "$bin/share/bash-completion/completions/lxc"
+    installShellCompletion --bash go/src/github.com/lxc/lxd/scripts/bash/lxd-client
   '';
 
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
+  nativeBuildInputs = [ installShellFiles pkgconfig makeWrapper ];
   buildInputs = [ lxc acl libcap libco-canonical.dev dqlite.dev
                   raft-canonical.dev sqlite-replication udev.dev ];
 
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index f8dbeadff09..df9d613ee44 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, nixosTests}:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, installShellFiles, nixosTests}:
 
 buildGoPackage rec {
   pname = "restic";
@@ -13,23 +13,19 @@ buildGoPackage rec {
     sha256 = "0lydll93n1lcn1fl669b9cikmzz9d6vfpc8ky3ng5fi8kj3v1dz7";
   };
 
+  subPackages = [ "cmd/restic" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
   passthru.tests.restic = nixosTests.restic;
 
-  # Use a custom install phase here as by default the
-  # build-release-binaries and prepare-releases binaries are
-  # installed.
-  installPhase = ''
-    mkdir -p "$bin/bin"
-    cp go/bin/restic "$bin/bin"
-  '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
-    mkdir -p \
-      $bin/etc/bash_completion.d \
-      $bin/share/zsh/vendor-completions \
-      $bin/share/man/man1
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     $bin/bin/restic generate \
-      --bash-completion $bin/etc/bash_completion.d/restic.sh \
-      --zsh-completion $bin/share/zsh/vendor-completions/_restic \
-      --man $bin/share/man/man1
+      --bash-completion restic.bash \
+      --zsh-completion restic.zsh \
+      --man .
+    installShellCompletion restic.{bash,zsh}
+    installManPage *.1
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/aptly/default.nix b/pkgs/tools/misc/aptly/default.nix
index c163fdad3a1..792b12688aa 100644
--- a/pkgs/tools/misc/aptly/default.nix
+++ b/pkgs/tools/misc/aptly/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, gnupg, bzip2, xz, graphviz }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles, makeWrapper, gnupg, bzip2, xz, graphviz }:
 
 let
 
@@ -29,11 +29,10 @@ buildGoPackage {
 
   goPackagePath = "github.com/aptly-dev/aptly";
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postInstall = ''
-    mkdir -p $bin/share/bash-completion/completions
-    ln -s ${aptlyCompletionSrc}/aptly $bin/share/bash-completion/completions
+    installShellCompletion --bash ${aptlyCompletionSrc}/aptly
     wrapProgram "$bin/bin/aptly" \
       --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg bzip2 xz graphviz ]}"
   '';
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 1aa221bd59e..c8b7dadf44d 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -21,7 +21,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tmux";
-  version = "3.0a";
+  version = "3.1";
 
   outputs = [ "out" "man" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "tmux";
     repo = "tmux";
     rev = version;
-    sha256 = "0y9lv1yr0x50v3k70vzkc8hfr7yijlsi30p7dr7i8akp3lwmmc7h";
+    sha256 = "1jgxal6jzzannh7hb3617r6g5p9yczl6a78m4kjnf3cxxm4jdaxz";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index 8af24bf7ab5..cb640fb1639 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, git, gnupg, xclip, wl-clipboard, makeWrapper }:
+{ stdenv, buildGoPackage, fetchFromGitHub, git, gnupg, xclip, wl-clipboard, installShellFiles, makeWrapper }:
 
 buildGoPackage rec {
   pname = "gopass";
@@ -6,7 +6,7 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/gopasspw/gopass";
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   src = fetchFromGitHub {
     owner = "gopasspw";
@@ -22,13 +22,10 @@ buildGoPackage rec {
   ] ++ stdenv.lib.optional stdenv.isLinux wl-clipboard);
 
   postInstall = ''
-    mkdir -p \
-      $bin/share/bash-completion/completions \
-      $bin/share/zsh/site-functions \
-      $bin/share/fish/vendor_completions.d
-    $bin/bin/gopass completion bash > $bin/share/bash-completion/completions/_gopass
-    $bin/bin/gopass completion zsh  > $bin/share/zsh/site-functions/_gopass
-    $bin/bin/gopass completion fish > $bin/share/fish/vendor_completions.d/gopass.fish
+    for shell in bash fish zsh; do
+      $bin/bin/gopass completion $shell > gopass.$shell
+      installShellCompletion gopass.$shell
+    done
   '';
 
   postFixup = ''
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 54be477cfe2..ae46bbae40a 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoPackage, installShellFiles }:
 
 buildGoPackage rec {
   pname = "vault";
@@ -15,14 +15,16 @@ buildGoPackage rec {
 
   subPackages = [ "." ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildFlagsArray = [
     "-tags='vault'"
     "-ldflags=\"-X github.com/hashicorp/vault/sdk/version.GitCommit='v${version}'\""
   ];
 
   postInstall = ''
-    mkdir -p $bin/share/bash-completion/completions
-    echo "complete -C $bin/bin/vault vault" > $bin/share/bash-completion/completions/vault
+    echo "complete -C $bin/bin/vault vault" > vault.bash
+    installShellCompletion vault.bash
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5143acd10dd..49ab4d06c10 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -450,7 +450,7 @@ in
 
   singularity-tools = callPackage ../build-support/singularity-tools { };
 
-  srcOnly = args: callPackage ../build-support/src-only args;
+  srcOnly = callPackage ../build-support/src-only { };
 
   substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };
 
@@ -15558,6 +15558,8 @@ in
 
   haka = callPackage ../tools/security/haka { };
 
+  hashi-ui = callPackage ../servers/hashi-ui {};
+
   heapster = callPackage ../servers/monitoring/heapster { };
 
   hbase = callPackage ../servers/hbase {};
@@ -25436,11 +25438,12 @@ in
 
   kontemplate = callPackage ../applications/networking/cluster/kontemplate { };
 
+  # In general we only want keep the last three minor versions around that
+  # correspond to the last three supported kubernetes versions:
+  # https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions
+  # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
   inherit (callPackage ../applications/networking/cluster/kops {})
     mkKops
-    kops_1_12
-    kops_1_13
-    kops_1_14
     kops_1_15
     kops_1_16
     ;
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index 1853c7eb8ac..d044ed80048 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -78,7 +78,7 @@ in lib.makeScope newScope (self: lib.makeOverridable ({
   // melpaStablePackages // { inherit melpaStablePackages; }
   // melpaPackages // { inherit melpaPackages; }
   // orgPackages // { inherit orgPackages; }
-  // manualPackages
+  // manualPackages // { inherit manualPackages; }
   // {
     inherit emacs melpaBuild trivialBuild;
     emacsWithPackages = emacsWithPackages self;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index cef4e913026..14664fbedd7 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -75,6 +75,8 @@ let
 
     bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { };
 
+    bigstring = callPackage ../development/ocaml-modules/bigstring { };
+
     biocaml = callPackage ../development/ocaml-modules/biocaml { };
 
     bistro = callPackage ../development/ocaml-modules/bistro { };