summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-03-18 13:35:59 +0100
committerJan Tojnar <jtojnar@gmail.com>2021-03-18 13:35:59 +0100
commit0136206b12cdcee87d34ccdfd1864c0bb6541aec (patch)
treeeb6597b5dc6da16585f5e9a8d1649f44ea3f51b3 /pkgs/development
parentc31077a6020c4d365496a618ba07121b9331bc52 (diff)
parentde4012ac80df34f1b77f07c70e935e4908729e71 (diff)
downloadnixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.gz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.bz2
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.lz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.xz
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.tar.zst
nixpkgs-0136206b12cdcee87d34ccdfd1864c0bb6541aec.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/clean/default.nix7
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/default.nix4
-rw-r--r--pkgs/development/compilers/go/binary.nix4
-rw-r--r--pkgs/development/compilers/xa/dxa.nix5
-rw-r--r--pkgs/development/compilers/xa/xa.nix9
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix3
-rw-r--r--pkgs/development/interpreters/elixir/1.11.nix4
-rw-r--r--pkgs/development/libraries/concurrencykit/default.nix24
-rw-r--r--pkgs/development/libraries/ftgl/default.nix59
-rw-r--r--pkgs/development/libraries/glpng/default.nix38
-rw-r--r--pkgs/development/libraries/kerberos/heimdal.nix4
-rw-r--r--pkgs/development/libraries/libayatana-appindicator/default.nix4
-rw-r--r--pkgs/development/libraries/libck/default.nix2
-rw-r--r--pkgs/development/libraries/libhttpseverywhere/default.nix4
-rw-r--r--pkgs/development/libraries/libressl/default.nix9
-rw-r--r--pkgs/development/libraries/md4c/default.nix59
-rw-r--r--pkgs/development/libraries/physics/fastnlo/default.nix51
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix14
-rw-r--r--pkgs/development/libraries/science/math/libtorch/bin.nix10
-rw-r--r--pkgs/development/libraries/science/math/libtorch/binary-hashes.nix4
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix2
-rw-r--r--pkgs/development/lisp-modules/shell.nix2
-rw-r--r--pkgs/development/mobile/androidenv/emulator.nix20
-rw-r--r--pkgs/development/mobile/androidenv/tools/26.nix4
-rw-r--r--pkgs/development/node-packages/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/encore/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lru/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/ocaml-lsp/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/tcpip/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/tcpip/no-opam-pkg-config-path.patch21
-rw-r--r--pkgs/development/python-modules/aiolyric/default.nix4
-rw-r--r--pkgs/development/python-modules/aiorun/default.nix15
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix9
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix2
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/datasets/default.nix12
-rw-r--r--pkgs/development/python-modules/deprecated/default.nix4
-rw-r--r--pkgs/development/python-modules/ftputil/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/googlemaps/default.nix20
-rw-r--r--pkgs/development/python-modules/gradient-utils/default.nix41
-rw-r--r--pkgs/development/python-modules/gradient/default.nix5
-rw-r--r--pkgs/development/python-modules/h3/default.nix4
-rw-r--r--pkgs/development/python-modules/httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix39
-rw-r--r--pkgs/development/python-modules/hwi/default.nix15
-rw-r--r--pkgs/development/python-modules/ijson/default.nix4
-rw-r--r--pkgs/development/python-modules/inflect/default.nix4
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--pkgs/development/python-modules/msldap/default.nix4
-rw-r--r--pkgs/development/python-modules/notify/default.nix2
-rw-r--r--pkgs/development/python-modules/openwrt-luci-rpc/default.nix40
-rw-r--r--pkgs/development/python-modules/pillow/generic.nix3
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix31
-rw-r--r--pkgs/development/python-modules/pycdio/default.nix2
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/pyparted/default.nix2
-rw-r--r--pkgs/development/python-modules/pypoppler/default.nix2
-rw-r--r--pkgs/development/python-modules/pyshark/default.nix6
-rw-r--r--pkgs/development/python-modules/sane/default.nix4
-rw-r--r--pkgs/development/python-modules/snapcast/default.nix16
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/yapf/default.nix43
-rw-r--r--pkgs/development/r-modules/default.nix2
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix4
-rw-r--r--pkgs/development/tools/castxml/default.nix65
-rw-r--r--pkgs/development/tools/coursier/default.nix4
-rw-r--r--pkgs/development/tools/ginkgo/default.nix6
-rw-r--r--pkgs/development/tools/misc/dialog/default.nix4
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix6
-rw-r--r--pkgs/development/tools/operator-sdk/default.nix6
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--pkgs/development/web/deno/default.nix63
-rw-r--r--pkgs/development/web/deno/deps.nix12
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix21
-rw-r--r--pkgs/development/web/deno/update/common.ts34
-rw-r--r--pkgs/development/web/deno/update/deps.ts79
-rw-r--r--pkgs/development/web/deno/update/librusty_v8.ts92
-rw-r--r--pkgs/development/web/deno/update/src.ts10
-rwxr-xr-xpkgs/development/web/deno/update/update.ts17
-rw-r--r--pkgs/development/web/nodejs/v15.nix4
90 files changed, 766 insertions, 469 deletions
diff --git a/pkgs/development/compilers/clean/default.nix b/pkgs/development/compilers/clean/default.nix
index f8121958e29..e360bb05f40 100644
--- a/pkgs/development/compilers/clean/default.nix
+++ b/pkgs/development/compilers/clean/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "clean-3.0";
+  pname = "clean";
+  version = "3.0";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then (fetchurl {
@@ -45,8 +46,8 @@ stdenv.mkDerivation {
     '';
 
     homepage = "http://wiki.clean.cs.ru.nl/Clean";
-    license = lib.licenses.lgpl21;
-    maintainers = [ lib.maintainers.kkallio ];
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.erin ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/compilers/gnu-smalltalk/default.nix b/pkgs/development/compilers/gnu-smalltalk/default.nix
index cd33baad993..e608a25462c 100644
--- a/pkgs/development/compilers/gnu-smalltalk/default.nix
+++ b/pkgs/development/compilers/gnu-smalltalk/default.nix
@@ -1,6 +1,6 @@
 { config, lib, stdenv, fetchurl, pkg-config, libtool
 , zip, libffi, libsigsegv, readline, gmp
-, gnutls, gnome2, cairo, SDL, sqlite
+, gnutls, gtk2, cairo, SDL, sqlite
 , emacsSupport ? config.emacsSupport or false, emacs ? null }:
 
 assert emacsSupport -> (emacs != null);
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
   # http://smalltalk.gnu.org/download
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    libtool zip libffi libsigsegv-shared readline gmp gnutls gnome2.gtk
+    libtool zip libffi libsigsegv-shared readline gmp gnutls gtk2
     cairo SDL sqlite
   ]
   ++ lib.optional emacsSupport emacs;
diff --git a/pkgs/development/compilers/go/binary.nix b/pkgs/development/compilers/go/binary.nix
index 9a0dc343546..7eb8f8f7b98 100644
--- a/pkgs/development/compilers/go/binary.nix
+++ b/pkgs/development/compilers/go/binary.nix
@@ -8,8 +8,8 @@ let
     "i686" = "386";
     "x86_64" = "amd64";
     "aarch64" = "arm64";
-    "armv6l" = "arm";
-    "armv7l" = "arm";
+    "armv6l" = "armv6l";
+    "armv7l" = "armv6l";
     "powerpc64le" = "ppc64le";
   }.${platform.parsed.cpu.name} or (throw "Unsupported CPU ${platform.parsed.cpu.name}");
 
diff --git a/pkgs/development/compilers/xa/dxa.nix b/pkgs/development/compilers/xa/dxa.nix
index e0ff060de8d..03f2d054cc8 100644
--- a/pkgs/development/compilers/xa/dxa.nix
+++ b/pkgs/development/compilers/xa/dxa.nix
@@ -18,9 +18,8 @@ stdenv.mkDerivation rec {
   dontConfigure = true;
 
   postPatch = ''
-    substituteInPlace \
-      --replace "CC = gcc" "CC = cc' \
-        Makefile
+    substituteInPlace Makefile \
+      --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc"
   '';
 
   installPhase = ''
diff --git a/pkgs/development/compilers/xa/xa.nix b/pkgs/development/compilers/xa/xa.nix
index 163b0bba513..c445940f5cd 100644
--- a/pkgs/development/compilers/xa/xa.nix
+++ b/pkgs/development/compilers/xa/xa.nix
@@ -15,13 +15,12 @@ stdenv.mkDerivation rec {
   dontConfigure = true;
 
   postPatch = ''
-    substitueInPlace \
+    substituteInPlace Makefile \
       --replace "DESTDIR" "PREFIX" \
-      --replace "CC = gcc" "CC = cc" \
-      --replace "LDD = gcc" "LDD = ld" \
+      --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc" \
+      --replace "LDD = gcc" "LDD = ${stdenv.cc.targetPrefix}cc" \
       --replace "CFLAGS = -O2" "CFLAGS ?=" \
-      --replace "LDFLAGS = -lc" "LDFLAGS ?= -lc" \
-      Makefile
+      --replace "LDFLAGS = -lc" "LDFLAGS ?= -lc"
   '';
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index b57671d8637..2a6bfc7ad36 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -12,10 +12,11 @@ in mkCoqDerivation {
   owner = "LPCIC";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
-    { case = "8.13"; out = "1.9.3"; }
+    { case = "8.13"; out = "1.9.4"; }
     { case = "8.12"; out = "1.8.0"; }
     { case = "8.11"; out = "1.6.0_8.11"; }
   ] null;
+  release."1.9.4".sha256      = "0nii7238mya74f9g6147qmpg6gv6ic9b54x5v85nb6q60d9jh0jq";
   release."1.9.3".sha256      = "198irm800fx3n8n56vx1c6f626cizp1d7jfkrc6ba4iqhb62ma0z";
   release."1.9.2".sha256      = "1rr2fr8vjkc0is7vh1461aidz2iwkigdkp6bqss4hhv0c3ijnn07";
   release."1.8.1".sha256      = "1fbbdccdmr8g4wwpihzp4r2xacynjznf817lhijw6kqfav75zd0r";
diff --git a/pkgs/development/interpreters/elixir/1.11.nix b/pkgs/development/interpreters/elixir/1.11.nix
index 4e50c737e39..6e5a30a9dd7 100644
--- a/pkgs/development/interpreters/elixir/1.11.nix
+++ b/pkgs/development/interpreters/elixir/1.11.nix
@@ -3,7 +3,7 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.11.3";
-  sha256 = "sha256-DqmKpMLxrXn23fsX/hrjDsYCmhD5jbVtvOX8EwKBakc=";
+  version = "1.11.4";
+  sha256 = "sha256-qCX6hRWUbW+E5xaUhcYxRAnhnvncASUJck8lESlcDvk=";
   minimumOTPVersion = "21";
 }
diff --git a/pkgs/development/libraries/concurrencykit/default.nix b/pkgs/development/libraries/concurrencykit/default.nix
deleted file mode 100644
index 968c395d701..00000000000
--- a/pkgs/development/libraries/concurrencykit/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "concurrencykit";
-  version = "0.6.0";
-
-  src = fetchurl {
-    url    = "http://concurrencykit.org/releases/ck-${version}.tar.gz";
-    sha256 = "1pv21p7sjwwmbs2xblpy1lqk53r2i212yrqyjlr5dr3rlv87vqnp";
-  };
-
-  #Deleting this line causes "Unknown option --disable-static"
-  configurePhase = "./configure --prefix=$out";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "A library of safe, high-performance concurrent data structures";
-    homepage    = "http://concurrencykit.org";
-    license     = licenses.bsd2;
-    platforms   = platforms.unix;
-    maintainers = [ maintainers.thoughtpolice ];
-  };
-}
diff --git a/pkgs/development/libraries/ftgl/default.nix b/pkgs/development/libraries/ftgl/default.nix
index c3fd6ffb940..5588e27356f 100644
--- a/pkgs/development/libraries/ftgl/default.nix
+++ b/pkgs/development/libraries/ftgl/default.nix
@@ -1,40 +1,47 @@
-{ lib, stdenv, fetchurl, freetype, libGL, libGLU, OpenGL }:
-
-let
-  name = "ftgl-2.1.3-rc5";
-in
-stdenv.mkDerivation {
-  inherit name;
+{ lib
+, stdenv
+, fetchurl
+, freetype
+, libGL
+, libGLU
+, OpenGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ftgl";
+  version = "2.1.3-rc5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/ftgl/${name}.tar.gz";
-    sha256 = "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l";
+    url = "mirror://sourceforge/${pname}-${version}.tar.gz";
+    hash = "sha256-VFjWISJFSGlXLTn4qoV0X8BdVRgAG876Y71su40mVls=";
   };
 
-  buildInputs = [ freetype ]
-    ++ (if stdenv.isDarwin then
-      [ OpenGL ]
-    else
-      [ libGL libGLU ])
-    ;
+  buildInputs = [
+    freetype
+  ] ++ (if stdenv.isDarwin then [
+    OpenGL
+  ] else [
+    libGL
+    libGLU
+  ]);
 
-  configureFlags = [ "--with-ft-prefix=${lib.getDev freetype}" ];
+  configureFlags = [
+    "--with-ft-prefix=${lib.getDev freetype}"
+  ];
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with lib; {
     homepage = "https://sourceforge.net/apps/mediawiki/ftgl/";
     description = "Font rendering library for OpenGL applications";
-    license = lib.licenses.gpl3Plus;
-
     longDescription = ''
-      FTGL is a free cross-platform Open Source C++ library that uses
-      Freetype2 to simplify rendering fonts in OpenGL applications. FTGL
-      supports bitmaps, pixmaps, texture maps, outlines, polygon mesh,
-      and extruded polygon rendering modes.
+      FTGL is a free cross-platform Open Source C++ library that uses Freetype2
+      to simplify rendering fonts in OpenGL applications. FTGL supports bitmaps,
+      pixmaps, texture maps, outlines, polygon mesh, and extruded polygon
+      rendering modes.
     '';
-
-    platforms = lib.platforms.unix;
-    maintainers = [];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/glpng/default.nix b/pkgs/development/libraries/glpng/default.nix
new file mode 100644
index 00000000000..1194d988c07
--- /dev/null
+++ b/pkgs/development/libraries/glpng/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromRepoOrCz
+, cmake
+, libGL
+, libpng
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "glpng";
+  version = "1.46";
+
+  src = fetchFromRepoOrCz {
+    repo = "glpng";
+    rev = "v${version}";
+    hash = "sha256-C7EHaBN0PE/HJB6zcIaYU63+o7/MEz4WU1xr/kIOanM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    libGL
+    libpng
+    zlib
+  ];
+
+  meta = with lib; {
+    homepage = "https://repo.or.cz/glpng.git/blob_plain/HEAD:/glpng.htm";
+    description = "PNG loader for OpenGL";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix
index 804749bbdb5..3e81b45362f 100644
--- a/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/pkgs/development/libraries/kerberos/heimdal.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python2, perl, yacc, flex
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python3, perl, yacc, flex
 , texinfo, perlPackages
 , openldap, libcap_ng, sqlite, openssl, db, libedit, pam
 , CoreFoundation, Security, SystemConfiguration
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./heimdal-make-missing-headers.patch ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config python2 perl yacc flex texinfo ]
+  nativeBuildInputs = [ autoreconfHook pkg-config python3 perl yacc flex texinfo ]
     ++ (with perlPackages; [ JSON ]);
   buildInputs = optionals (stdenv.isLinux) [ libcap_ng ]
     ++ [ db sqlite openssl libedit openldap pam]
diff --git a/pkgs/development/libraries/libayatana-appindicator/default.nix b/pkgs/development/libraries/libayatana-appindicator/default.nix
index c7d48468336..53b0dca0912 100644
--- a/pkgs/development/libraries/libayatana-appindicator/default.nix
+++ b/pkgs/development/libraries/libayatana-appindicator/default.nix
@@ -4,7 +4,7 @@
 , gtkVersion ? "3"
 , gtk2, libayatana-indicator-gtk2, libdbusmenu-gtk2
 , gtk3, libayatana-indicator-gtk3, libdbusmenu-gtk3
-, dbus-glib, python2, python2Packages
+, dbus-glib,
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sba0w455rdkadkhxrx4fr63m0d9blsbb1q1hcshxw1k1z2nh1gk";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc gobject-introspection python2 python2Packages.pygtk dbus-glib ];
+  nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc gobject-introspection dbus-glib ];
 
   buildInputs =
     lib.lists.optional (gtkVersion == "2") libayatana-indicator-gtk2
diff --git a/pkgs/development/libraries/libck/default.nix b/pkgs/development/libraries/libck/default.nix
index accb6556011..a46a7b33900 100644
--- a/pkgs/development/libraries/libck/default.nix
+++ b/pkgs/development/libraries/libck/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ asl20 bsd2 ];
     homepage = "http://concurrencykit.org/";
     platforms = platforms.unix;
-    maintainers = with maintainers; [ chessai ];
+    maintainers = with maintainers; [ chessai thoughtpolice ];
   };
 }
diff --git a/pkgs/development/libraries/libhttpseverywhere/default.nix b/pkgs/development/libraries/libhttpseverywhere/default.nix
index f54929c5378..648eb89a514 100644
--- a/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, meson, ninja, makeFontsConf, vala, fetchpatch
-, gnome3, glib, json-glib, libarchive, libsoup, gobject-introspection }:
+, gnome3, libgee, glib, json-glib, libarchive, libsoup, gobject-introspection }:
 
 let
   pname = "libhttpseverywhere";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ vala gobject-introspection meson ninja pkg-config ];
-  buildInputs = [ glib gnome3.libgee json-glib libsoup libarchive ];
+  buildInputs = [ glib libgee json-glib libsoup libarchive ];
 
   # Fixes build with vala >=0.42
   patches = [
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index b7724d27a06..3dffccf5f41 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -64,7 +64,12 @@ let
 
 in {
   libressl_3_1 = generic {
-    version = "3.1.4";
-    sha256 = "1dnbbnr43jashxivnafmh9gnn57c7ayva788ba03z633k6f18k21";
+    version = "3.1.5";
+    sha256 = "1504a1sf43frw43j14pij0q1f48rm5q86ggrlxxhw708qp7ds4rc";
+  };
+
+  libressl_3_2 = generic {
+    version = "3.2.5";
+    sha256 = "1zkwrs3b19s1ybz4q9hrb7pqsbsi8vxcs44qanfy11fkc7ynb2kr";
   };
 }
diff --git a/pkgs/development/libraries/md4c/default.nix b/pkgs/development/libraries/md4c/default.nix
new file mode 100644
index 00000000000..a711ecb7c76
--- /dev/null
+++ b/pkgs/development/libraries/md4c/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "md4c";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "mity";
+    repo = pname;
+    rev = "release-${version}";
+    hash = "sha256-nfMXUP1wu3ifn1QVTO/+XcfFRsThG8PlmYRv+b8AYlQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mity/md4c";
+    description = "Markdown parser made in C";
+    longDescription = ''
+      MD4C is Markdown parser implementation in C, with the following features:
+
+      - Compliance: Generally, MD4C aims to be compliant to the latest version
+        of CommonMark specification. Currently, we are fully compliant to
+        CommonMark 0.29.
+      - Extensions: MD4C supports some commonly requested and accepted
+        extensions. See below.
+      - Performance: MD4C is very fast.
+      - Compactness: MD4C parser is implemented in one source file and one
+        header file. There are no dependencies other than standard C library.
+      - Embedding: MD4C parser is easy to reuse in other projects, its API is
+        very straightforward: There is actually just one function, md_parse().
+      - Push model: MD4C parses the complete document and calls few callback
+        functions provided by the application to inform it about a start/end of
+        every block, a start/end of every span, and with any textual contents.
+      - Portability: MD4C builds and works on Windows and POSIX-compliant
+        OSes. (It should be simple to make it run also on most other platforms,
+        at least as long as the platform provides C standard library, including
+        a heap memory management.)
+      - Encoding: MD4C by default expects UTF-8 encoding of the input
+        document. But it can be compiled to recognize ASCII-only control
+        characters (i.e. to disable all Unicode-specific code), or (on Windows)
+        to expect UTF-16 (i.e. what is on Windows commonly called just
+        "Unicode"). See more details below.
+      - Permissive license: MD4C is available under the MIT license.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
+# TODO: enable tests (needs Python)
diff --git a/pkgs/development/libraries/physics/fastnlo/default.nix b/pkgs/development/libraries/physics/fastnlo/default.nix
index 916303f00ce..87e2ae9631c 100644
--- a/pkgs/development/libraries/physics/fastnlo/default.nix
+++ b/pkgs/development/libraries/physics/fastnlo/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchurl, boost, fastjet, gfortran, lhapdf, python2, root, yoda, zlib }:
+{ lib
+, stdenv
+, fetchurl
+, boost
+, fastjet
+, gfortran
+, lhapdf
+, python2
+, root
+, yoda
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "fastnlo_toolkit";
@@ -9,8 +20,19 @@ stdenv.mkDerivation rec {
     sha256 = "1h41xnqcz401x3zbs8i2dsb4xlhbv8i5ps0561p6y7gcyridgcbl";
   };
 
-  buildInputs = [ boost fastjet gfortran gfortran.cc.lib lhapdf python2 root yoda ];
-  propagatedBuildInputs = [ zlib ];
+  buildInputs = [
+    boost
+    fastjet
+    gfortran
+    gfortran.cc.lib
+    lhapdf
+    python2
+    root
+    yoda
+  ];
+  propagatedBuildInputs = [
+    zlib
+  ];
 
   preConfigure = ''
     substituteInPlace ./fastnlotoolkit/Makefile.in \
@@ -23,11 +45,22 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
-    description = "A computer code to create and evaluate fast interpolation tables of pre-computed coefficients in perturbation theory for observables in hadron-induced processes";
-    license      = lib.licenses.gpl3;
-    homepage     = "http://fastnlo.hepforge.org";
-    platforms    = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ veprbl ];
+  meta = with lib; {
+    homepage = "http://fastnlo.hepforge.org";
+    description = "Fast pQCD calculations for hadron-induced processes";
+    longDescription = ''
+      The fastNLO project provides computer code to create and evaluate fast
+      interpolation tables of pre-computed coefficients in perturbation theory
+      for observables in hadron-induced processes.
+
+      This allows fast theory predictions of these observables for arbitrary
+      parton distribution functions (of regular shape), renormalization or
+      factorization scale choices, and/or values of alpha_s(Mz) as e.g. needed
+      in PDF fits or in systematic studies. Very time consuming complete
+      recalculations are thus avoided.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 7a9818bce97..0d7483d3c2e 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, zlib, perl, pkg-config, python, openssl }:
+{ lib, stdenv, fetchFromGitHub, zlib, pkg-config, python3, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-EoNzxwuLiYi6sMhyqD/x+ku6BKA+i5og4XsUy2JBN0U=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config python3 ];
 
-  buildInputs = [ zlib perl python openssl ];
+  buildInputs = [ zlib openssl ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
 
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index 566a17c6147..d9c19e6790c 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -8,6 +8,14 @@
 , cudatoolkit
 , fetchurl
 , addOpenGLRunpath
+, # The distributed version of CUDNN includes both dynamically liked .so files,
+  # as well as statically linked .a files.  However, CUDNN is quite large
+  # (multiple gigabytes), so you can save some space in your nix store by
+  # removing the statically linked libraries if you are not using them.
+  #
+  # Setting this to true removes the statically linked .a files.
+  # Setting this to false keeps these statically linked .a files.
+  removeStatic ? false
 }:
 
 stdenv.mkDerivation {
@@ -23,6 +31,8 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ addOpenGLRunpath ];
 
   installPhase = ''
+    runHook preInstall
+
     function fixRunPath {
       p=$(patchelf --print-rpath $1)
       patchelf --set-rpath "''${p:+$p:}${lib.makeLibraryPath [ stdenv.cc.cc ]}:\$ORIGIN/" $1
@@ -35,6 +45,10 @@ stdenv.mkDerivation {
     mkdir -p $out
     cp -a include $out/include
     cp -a lib64 $out/lib64
+  '' + lib.optionalString removeStatic ''
+    rm -f $out/lib64/*.a
+  '' + ''
+    runHook postInstall
   '';
 
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix
index 241eb5a3721..481836a4e11 100644
--- a/pkgs/development/libraries/science/math/libtorch/bin.nix
+++ b/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -8,8 +8,8 @@
 , fixDarwinDylibNames
 
 , cudaSupport
-, cudatoolkit_10_2
-, cudnn_cudatoolkit_10_2
+, cudatoolkit_11_1
+, cudnn_cudatoolkit_11_1
 }:
 
 let
@@ -38,7 +38,7 @@ in stdenv.mkDerivation {
 
   installPhase = ''
     # Copy headers and CMake files.
-    install -Dm755 -t $dev/lib lib/*.a
+    mkdir -p $dev
     cp -r include $dev
     cp -r share $dev
 
@@ -109,8 +109,8 @@ in stdenv.mkDerivation {
 
   passthru.tests.cmake = callPackage ./test {
     inherit cudaSupport;
-    cudatoolkit = cudatoolkit_10_2;
-    cudnn = cudnn_cudatoolkit_10_2;
+    cudatoolkit = cudatoolkit_11_1;
+    cudnn = cudnn_cudatoolkit_11_1;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
index bfb708531df..208e0b7adab 100644
--- a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
+++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -8,7 +8,7 @@ version: {
     hash = "sha256-xBaNyI7eiQnSArHMITonrQQLZnZCZK/SWKOTWnxzdpc=";
   };
   x86_64-linux-cuda = {
-    url = "https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-${version}.zip";
-    hash = "sha256-rNEyE4+jfeX7cU0aNYd5b0pZGYT0PNPnDnS1PIsrMeM=";
+    url = "https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcu111.zip";
+    hash = "sha256-uQ7ptOuzowJ0JSPIvJHyNotBfpsqAnxpMDLq7Vl6L00=";
   };
 }
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index 412fd4b8dee..79a799f76fb 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -225,7 +225,7 @@ $out/lib/common-lisp/query-fs"
       x.deps;
   };
   cl-cffi-gtk-glib = addNativeLibs [pkgs.glib];
-  cl-cffi-gtk-gdk-pixbuf = addNativeLibs [pkgs.gdk_pixbuf];
+  cl-cffi-gtk-gdk-pixbuf = addNativeLibs [pkgs.gdk-pixbuf];
   cl-cffi-gtk-cairo = addNativeLibs [pkgs.cairo];
   cl-cffi-gtk-pango = addNativeLibs [pkgs.pango];
   cl-cffi-gtk-gdk = addNativeLibs [pkgs.gtk3];
diff --git a/pkgs/development/lisp-modules/shell.nix b/pkgs/development/lisp-modules/shell.nix
index 0201491f4cc..a8ed246e6f8 100644
--- a/pkgs/development/lisp-modules/shell.nix
+++ b/pkgs/development/lisp-modules/shell.nix
@@ -11,6 +11,6 @@ self = rec {
     lispPackages.quicklisp-to-nix lispPackages.quicklisp-to-nix-system-info
   ];
   CPATH = "${libfixposix}/include";
-  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk_pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib";
+  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk-pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib";
 };
 in stdenv.mkDerivation self
diff --git a/pkgs/development/mobile/androidenv/emulator.nix b/pkgs/development/mobile/androidenv/emulator.nix
index e08078ea672..c8fce166aa7 100644
--- a/pkgs/development/mobile/androidenv/emulator.nix
+++ b/pkgs/development/mobile/androidenv/emulator.nix
@@ -5,16 +5,16 @@ deployAndroidPackage {
   buildInputs = [ autoPatchelfHook makeWrapper ]
   ++ lib.optional (os == "linux") [
     pkgs.glibc
-    pkgs.xlibs.libX11
-    pkgs.xlibs.libXext
-    pkgs.xlibs.libXdamage
-    pkgs.xlibs.libXfixes
-    pkgs.xlibs.libxcb
-    pkgs.xlibs.libXcomposite
-    pkgs.xlibs.libXcursor
-    pkgs.xlibs.libXi
-    pkgs.xlibs.libXrender
-    pkgs.xlibs.libXtst
+    pkgs.xorg.libX11
+    pkgs.xorg.libXext
+    pkgs.xorg.libXdamage
+    pkgs.xorg.libXfixes
+    pkgs.xorg.libxcb
+    pkgs.xorg.libXcomposite
+    pkgs.xorg.libXcursor
+    pkgs.xorg.libXi
+    pkgs.xorg.libXrender
+    pkgs.xorg.libXtst
     pkgs.libcxx
     pkgs.libGL
     pkgs.libpulseaudio
diff --git a/pkgs/development/mobile/androidenv/tools/26.nix b/pkgs/development/mobile/androidenv/tools/26.nix
index 0234c9f3d04..a768a120547 100644
--- a/pkgs/development/mobile/androidenv/tools/26.nix
+++ b/pkgs/development/mobile/androidenv/tools/26.nix
@@ -4,7 +4,7 @@ deployAndroidPackage {
   name = "androidsdk";
   inherit os package;
   buildInputs = [ autoPatchelfHook makeWrapper ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXrender pkgs.xlibs.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.xlibs.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
+    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xorg.libX11 pkgs.xorg.libXrender pkgs.xorg.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xorg.libX11 pkgs_i686.xorg.libXrender pkgs_i686.xorg.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
 
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
@@ -27,7 +27,7 @@ deployAndroidPackage {
     # Wrap monitor script
     wrapProgram $PWD/monitor \
       --prefix PATH : ${pkgs.jdk8}/bin \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xorg.libX11 pkgs.xorg.libXtst ]}
 
     # Patch all script shebangs
     patchShebangs .
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 240f287003b..2023cbfbfa0 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -107,7 +107,7 @@ let
     mirakurun = super.mirakurun.override rec {
       nativeBuildInputs = with pkgs; [ makeWrapper ];
       postInstall = let
-        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l_utils ]);
+        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l-utils ]);
       in
       ''
         substituteInPlace $out/lib/node_modules/mirakurun/processes.json \
diff --git a/pkgs/development/ocaml-modules/encore/default.nix b/pkgs/development/ocaml-modules/encore/default.nix
index 95eb75ee7ca..5924845c4f4 100644
--- a/pkgs/development/ocaml-modules/encore/default.nix
+++ b/pkgs/development/ocaml-modules/encore/default.nix
@@ -3,13 +3,13 @@
 
 buildDunePackage rec {
   pname = "encore";
-  version = "0.7";
+  version = "0.8";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/encore/releases/download/v${version}/encore-v${version}.tbz";
-    sha256 = "0cwmhkj5jmk3z5y0agmkf5ygpgxynjkq2d7d50jgzmnqs7f6g7nh";
+    sha256 = "a406bc9863b04bb424692045939d6c170a2bb65a98521ae5608d25b0559344f6";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/lru/default.nix b/pkgs/development/ocaml-modules/lru/default.nix
index e5c7937b27a..035d612cfe2 100644
--- a/pkgs/development/ocaml-modules/lru/default.nix
+++ b/pkgs/development/ocaml-modules/lru/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchurl, buildDunePackage, psq }:
+{ lib, fetchurl, buildDunePackage, ocaml, psq, qcheck-alcotest }:
 
 buildDunePackage rec {
   pname = "lru";
   version = "0.3.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/pqwy/lru/releases/download/v${version}/lru-v${version}.tbz";
     sha256 = "1ab9rd7cq15ml8x0wjl44wy99h5z7x4g9vkkz4i2d7n84ghy7vw4";
@@ -11,6 +13,9 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ psq ];
 
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+  checkInputs = [ qcheck-alcotest ];
+
   meta = {
     homepage = "https://github.com/pqwy/lru";
     description = "Scalable LRU caches for OCaml";
diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
index 0391498c37a..46c84d8d70d 100644
--- a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
@@ -14,10 +14,10 @@
 , lib
 }:
 let
-  version = "1.4.0";
+  version = "1.4.1";
   src = fetchzip {
     url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/jsonrpc-${version}.tbz";
-    sha256 = "16vvwq3d9xmr91r6yv5i2gyqcdliji7asyq4g6iygi617233fa33";
+    sha256 = "0hzpw17qfhb0cxgwah1fv4k300r363dy1kv0977anl44dlanx1v5";
   };
 
   # unvendor some (not all) dependencies.
@@ -73,6 +73,6 @@ buildDunePackage {
     description = "OCaml Language Server Protocol implementation";
     license = lib.licenses.isc;
     platforms = platforms.unix;
-    maintainers = [ maintainers.symphorien ];
+    maintainers = [ maintainers.symphorien maintainers.marsam ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/tcpip/default.nix b/pkgs/development/ocaml-modules/tcpip/default.nix
index 80fa01066f1..6e639f984cb 100644
--- a/pkgs/development/ocaml-modules/tcpip/default.nix
+++ b/pkgs/development/ocaml-modules/tcpip/default.nix
@@ -1,5 +1,5 @@
 { lib, buildDunePackage, fetchurl
-, bisect_ppx, ppx_cstruct
+, bisect_ppx, ppx_cstruct, pkg-config
 , rresult, cstruct, cstruct-lwt, mirage-net, mirage-clock
 , mirage-random, mirage-stack, mirage-protocols, mirage-time
 , ipaddr, macaddr, macaddr-cstruct, mirage-profile, fmt
@@ -11,18 +11,23 @@
 
 buildDunePackage rec {
   pname = "tcpip";
-  version = "6.0.0";
+  version = "6.1.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "0wbrs8jz1vw3zdrqmqcwawxh4yhc2gy30rw7gz4w116cblkvnb8s";
+    sha256 = "e81c98a6e80e05f9fa4e5fbee50e6c247f6011254c7b1d9a0e58bae318c1f0c8";
   };
 
+  patches = [
+    ./no-opam-pkg-config-path.patch
+  ];
+
   nativeBuildInputs = [
     bisect_ppx
     ppx_cstruct
+    pkg-config
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/tcpip/no-opam-pkg-config-path.patch b/pkgs/development/ocaml-modules/tcpip/no-opam-pkg-config-path.patch
new file mode 100644
index 00000000000..a7e9155ce5a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/tcpip/no-opam-pkg-config-path.patch
@@ -0,0 +1,21 @@
+diff --git a/freestanding/Makefile b/freestanding/Makefile
+index f22d220d..4bb3ac57 100644
+--- a/freestanding/Makefile
++++ b/freestanding/Makefile
+@@ -1,6 +1,4 @@
+-PKG_CONFIG_PATH := $(shell opam config var prefix)/lib/pkgconfig
+-
+-EXISTS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --exists ocaml-freestanding; echo $$?)
++EXISTS := $(shell pkg-config --exists ocaml-freestanding; echo $$?)
+ 
+ .PHONY: all clean
+ all: libtcpip_freestanding_stubs.a
+@@ -10,7 +8,7 @@ libtcpip_freestanding_stubs.a:
+ 	touch $@
+ else
+ CC ?= cc
+-FREESTANDING_CFLAGS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --cflags ocaml-freestanding)
++FREESTANDING_CFLAGS := $(shell pkg-config --cflags ocaml-freestanding)
+ CFLAGS := $(FREESTANDING_CFLAGS)
+ 
+ OBJS=checksum_stubs.o
diff --git a/pkgs/development/python-modules/aiolyric/default.nix b/pkgs/development/python-modules/aiolyric/default.nix
index 0f1a297e6ac..0dc576fca49 100644
--- a/pkgs/development/python-modules/aiolyric/default.nix
+++ b/pkgs/development/python-modules/aiolyric/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "aiolyric";
-  version = "1.0.5";
+  version = "1.0.6";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "timmo001";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00kq3dsjcfhjzn585phb3g168dbg53wrqq7g8a4gljs49c2mf5qx";
+    sha256 = "1lnzsdw6kvgk0762f3vyw4xfzn7qkvsff16q61gm0ryjqg9j8whx";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/aiorun/default.nix b/pkgs/development/python-modules/aiorun/default.nix
index 9c677650555..414f8a6d9a6 100644
--- a/pkgs/development/python-modules/aiorun/default.nix
+++ b/pkgs/development/python-modules/aiorun/default.nix
@@ -1,25 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
+, pythonOlder
 , pygments
 , pytestCheckHook
-, pytestcov
+, pytest-cov
 , uvloop
 }:
 
 buildPythonPackage rec {
   pname = "aiorun";
-  version = "2020.6.1";
+  version = "2020.12.1";
   format = "flit";
-
-  disabled = isPy27;
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "cjrh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00mq5ylhhdfdqrh7zdqabf3wy85jrkqvgfb1421ll46fsjim2d14";
+    sha256 = "sha256-ktc2cmoPNYcsVyKCWs+ivhV5onywFIrdDRBiBKrdiF4=";
   };
 
   propagatedBuildInputs = [
@@ -28,7 +27,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
-    pytestcov
+    pytest-cov
     uvloop
   ];
 
@@ -43,6 +42,6 @@ buildPythonPackage rec {
     description = "Boilerplate for asyncio applications";
     homepage = "https://github.com/cjrh/aiorun";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 7ce389f984d..fe055d7f197 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "0.3.0";
+  version = "0.3.1";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pogzyb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1514fz942yix7fh4yg982mxjp8c0qb6a0i4fw5wsc3xx4g86zcdg";
+    sha256 = "1wp6pwnc1inzzn9nhkwq9m9ab1aylw0hzq94w6p2dsm2njfqma8h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index 91f420f11ae..8454d4463f4 100644
--- a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d4f3984eca74b1e3691467aadc09626e578ed1fc5ef410872d474f3e7653916a";
+    sha256 = "433ad8e83bd8df4abc5af47a0e3a7a4515f79931db4036f2bccd65b5a9e88bfb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 7c412836ad0..ac5247921a5 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.27"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.17.29"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+kGYf59xNoATdnMG2VIrYnlGoBtIQ5OKJvsZzIrbBsA=";
+    sha256 = "sha256-MTlvyv/fwPRltN524eyuU4lOuGmwAP+lSqFpOpjbOjw=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index bdb15199e36..d48b9eded89 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.27"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.29"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RHeAPwdkn02AsX0FSCDnoJuyyweS0N7MKBIQi8N1nEo=";
+    sha256 = "sha256-GEt9JrBmn9ZayBk2YjdtEmfYAOAFtpQStXzILF/76TU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index ea4910712ce..3946170c78c 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -3,7 +3,7 @@
   sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
   txrequests, pypugjs, boto3, moto, mock, python-lz4, setuptoolsTrial,
   isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins,
-  parameterized, git, openssh, glibcLocales, nixosTests }:
+  parameterized, git, openssh, glibcLocales, ldap3, nixosTests }:
 
 let
   withPlugins = plugins: buildPythonPackage {
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "3.0.0";
+    version = "3.0.2";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0li47fpm398dk69q6g2zjaxx46w00g3n0jszz88kf57sakri553y";
+      sha256 = "0iywcvq1sx9z5f37pw7g9qqm19fr3bymzawb0i2afm737hxr2xfp";
     };
 
     propagatedBuildInputs = [
@@ -67,6 +67,9 @@ let
       git
       openssh
       glibcLocales
+      # optional dependency that was accidentally made required for tests
+      # https://github.com/buildbot/buildbot/pull/5857
+      ldap3
     ];
 
     patches = [
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index 71da12049e9..98666faee43 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ihcxdkbm1lq79fdjmcrj316zh6sjlc3162yynww8nggv2mlnz6v";
+    sha256 = "1vraxisvgnl9q2rgsmfdh1ywja125s97xqicrdx9mbmrwaka2a40";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index a9a9538f5b9..b2d7cc38bed 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0pk7h5wwvmdn74ngj5rspz7z9y80ryzgqd2z2qy7kf9chpz7qczk";
+      sha256 = "0lzlghgsb247w0aw0x7vqw4f980kfbbbvjw48fcq9951qcqkr1sf";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1y9dpxi7r5r2ya5y0i28b4g5fvla6wrbjz9rffqaqldf4h316jx2";
+      sha256 = "1sqmmxxi0npjcha3xfyy4ldqaks8hmlhilnyvzsfi56n9s96z1cj";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0vhnqqxl693b2d14ayifpjz8zlg3dngl127svr08amzmbad7irh1";
+      sha256 = "1w4mf8gi71ycf0m93cv1qqly36xnnrmpangzv0pvx23czs96lcms";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1dgs33z3sjr3s8ymqyxjkx2g6iah3p91ng9hxllmyyp4xpxaxyhk";
+      sha256 = "1a9ssl0plzrs150n958h7aasm0h64whixckfl1y2y3750qy3vrd2";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "06j6f2k0r8nyh8swh689cy4zq50lmy5glx0pa3zdpnk02k4x3q72";
+      sha256 = "1wcli3vymsqc720jj23ir86lirshb3p8szp7m21lz13g9mpj0idl";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 7feb409a26d..d9dea034eab 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zrd9h9i7fnmh81zvscxzq3rspyvjvidzbgcziq2m0z522krs8qq";
+    sha256 = "1xvn0m8vijzfrm5sdls3n4ca8iyrnxsprl6dj15f7zy9rms4m47p";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 6d86ccb9543..6057a770e0a 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "0.18.3";
+  version = "0.18.4";
 
   disabled = isPy27;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "1wbwccwizndiww9a3x1jhixzpcg2qmqlxidk2rqnrzvp04lb8b0q";
+    sha256 = "16yhl1xgrgkyqnmbw9in3y7ypcxvvy21h32v50cd73a3iw4x27d0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index fc349cdc277..cc06297c4ea 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , dill
 , filelock
+, fsspec
+, huggingface-hub
 , multiprocess
 , numpy
 , pandas
@@ -14,18 +16,20 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "1.1.2";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = version;
-    hash = "sha256-upXZ2rOfmjnJbDo6RMGeHv/fe10RQAf/zwDWWKdt6SA=";
+    hash = "sha256-is8TS84varARWyfeDTbQH0pcYFTk0PcEyK183emB4GE=";
   };
 
   propagatedBuildInputs = [
     dill
     filelock
+    fsspec
+    huggingface-hub
     multiprocess
     numpy
     pandas
@@ -36,7 +40,9 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.py --replace '"tqdm>=4.27,<4.50.0"' '"tqdm>=4.27"'
+    substituteInPlace setup.py \
+      --replace '"tqdm>=4.27,<4.50.0"' '"tqdm>=4.27"' \
+      --replace "huggingface_hub==0.0.2" "huggingface_hub>=0.0.2"
   '';
 
   # Tests require pervasive internet access.
diff --git a/pkgs/development/python-modules/deprecated/default.nix b/pkgs/development/python-modules/deprecated/default.nix
index 0374bebe4f9..c6e30933528 100644
--- a/pkgs/development/python-modules/deprecated/default.nix
+++ b/pkgs/development/python-modules/deprecated/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Deprecated";
-  version = "1.2.11";
+  version = "1.2.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "471ec32b2755172046e28102cd46c481f21c6036a0ec027521eba8521aa4ef35";
+    sha256 = "6d2de2de7931a968874481ef30208fd4e08da39177d61d3d4ebdf4366e7dbca1";
   };
 
   propagatedBuildInputs = [ wrapt ];
diff --git a/pkgs/development/python-modules/ftputil/default.nix b/pkgs/development/python-modules/ftputil/default.nix
index 883ff69c6d6..ed677466580 100644
--- a/pkgs/development/python-modules/ftputil/default.nix
+++ b/pkgs/development/python-modules/ftputil/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, freezegun }:
 
 buildPythonPackage rec {
-  version = "4.0.0";
+  version = "5.0.0";
   pname = "ftputil";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d494c47f24fd3f8fbe92d40d90e0902c0e04288f200688af2b16d6b46fe441e1";
+    sha256 = "0dc82fa0a8ea385e8222b72bedb1ec31caac07822b6a1a9139adc98b0b051d06";
   };
 
   checkInputs = [ pytest freezegun ];
diff --git a/pkgs/development/python-modules/google-cloud-logging/default.nix b/pkgs/development/python-modules/google-cloud-logging/default.nix
index ab31a8ee4ed..c266d3e7921 100644
--- a/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8932ac382eee6af85cd08400a77586dd3139fbf40b61db757c4c492490899741";
+    sha256 = "b5675ce159db4e9c1d755003b76190460766f426a7c3c1519014cdd5ce66e890";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index a143a418c22..2a50fd5fb60 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97a46d2318f00c1c6ae1a4ab587e338677c5cc1651d7c6304982d74fa364dd9d";
+    sha256 = "4df4b7e3f83bc12d6bd29e69608172586b6ddfc7586dd2a2fd70cc4f18ed05c7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/googlemaps/default.nix b/pkgs/development/python-modules/googlemaps/default.nix
index 007d4eb2cea..938a472eddf 100644
--- a/pkgs/development/python-modules/googlemaps/default.nix
+++ b/pkgs/development/python-modules/googlemaps/default.nix
@@ -1,28 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
 , requests
 , responses
-, pytestCheckHook
-, pytestcov
-, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "googlemaps";
-  version = "4.4.2";
-  disabled = isPy27;
+  version = "4.4.5";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "googlemaps";
     repo = "google-maps-services-python";
     rev = "v${version}";
-    sha256 = "DYhW1OGce/0gY7Jmwq6iM45PxLyXIYo4Cfg2u6Xuyg4=";
+    sha256 = "sha256-Rdfp98UqTMbqcOpkzh0Dz8fNSSbuvCnCztCkxiBgaAA=";
   };
 
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ pytestCheckHook responses pytestcov ];
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+    responses
+  ];
 
   disabledTests = [
     # touches network
@@ -30,6 +34,8 @@ buildPythonPackage rec {
     "test_transit_without_time"
   ];
 
+  pythonImportsCheck = [ "googlemaps" ];
+
   meta = with lib; {
     homepage = "https://github.com/googlemaps/google-maps-services-python";
     description = "Python client library for Google Maps API Web Services";
diff --git a/pkgs/development/python-modules/gradient-utils/default.nix b/pkgs/development/python-modules/gradient-utils/default.nix
index cf0ffb6bb41..49fff6f6cee 100644
--- a/pkgs/development/python-modules/gradient-utils/default.nix
+++ b/pkgs/development/python-modules/gradient-utils/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
 , hyperopt
-, lib
 , mock
 , numpy
-, poetry
+, poetry-core
 , prometheus_client
 , pytestCheckHook
+, requests
 }:
 
 buildPythonPackage rec {
@@ -24,23 +25,39 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'numpy = "1.18.5"' 'numpy = "^1.18.5"' \
-      --replace 'hyperopt = "0.1.2"' 'hyperopt = ">=0.1.2"'
+      --replace 'hyperopt = "0.1.2"' 'hyperopt = ">=0.1.2"' \
+      --replace 'wheel = "^0.35.1"' 'wheel = "^0.36"'
   '';
 
-  nativeBuildInputs = [ poetry ];
-  checkInputs = [ mock pytestCheckHook ];
-  propagatedBuildInputs = [ hyperopt prometheus_client numpy ];
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    hyperopt
+    prometheus_client
+    numpy
+  ];
+
+  checkInputs = [
+    mock
+    requests
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOSTNAME=myhost-experimentId
+  '';
 
-  preCheck = "export HOSTNAME=myhost-experimentId";
   disabledTests = [
     "test_add_metrics_pushes_metrics" # requires a working prometheus push gateway
   ];
 
+  pythonImportsCheck = [ "gradient_utils" ];
+
   meta = with lib; {
-    description = "Gradient ML SDK";
-    homepage    = "https://github.com/Paperspace/gradient-utils";
-    license     = licenses.mit;
-    platforms   = platforms.unix;
+    description = "Python utils and helpers library for Gradient";
+    homepage = "https://github.com/Paperspace/gradient-utils";
+    license = licenses.mit;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ freezeboy ];
   };
 }
diff --git a/pkgs/development/python-modules/gradient/default.nix b/pkgs/development/python-modules/gradient/default.nix
index c4c6e3b356c..05a590e52fe 100644
--- a/pkgs/development/python-modules/gradient/default.nix
+++ b/pkgs/development/python-modules/gradient/default.nix
@@ -19,8 +19,9 @@ buildPythonPackage rec {
       --replace 'attrs<=' 'attrs>=' \
       --replace 'colorama==' 'colorama>=' \
       --replace 'PyYAML==' 'PyYAML>=' \
-      --replace 'marshmallow<' 'marshmallow>='
-  '';
+      --replace 'marshmallow<' 'marshmallow>=' \
+      --replace 'websocket-client==' 'websocket-client>='
+   '';
 
   propagatedBuildInputs = [ attrs boto3 requests gradient_statsd terminaltables
     click-completion click-didyoumean click-help-colors requests_toolbelt
diff --git a/pkgs/development/python-modules/h3/default.nix b/pkgs/development/python-modules/h3/default.nix
index e66a3f5e9fc..3552b6922fc 100644
--- a/pkgs/development/python-modules/h3/default.nix
+++ b/pkgs/development/python-modules/h3/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.7.1";
+  version = "3.7.2";
 
   # pypi version does not include tests
   src = fetchFromGitHub {
     owner = "uber";
     repo = "h3-py";
     rev = "v${version}";
-    sha256 = "sha256-MIVV3kZGsIsaJ/ccJOK3+j1VwkUsZGHS5d1sGOBa1Ec=";
+    sha256 = "00yi5ncfhi2wpakwm9visi1jlnnaaha66y90fjcsfyvi4hkm8xv2";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 9fe636c3591..2aba203ea01 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.17.0";
+  version = "0.17.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-pRdhPAxKZOVbRhOm4881Dn+IRtpX5T3oFuYdtWp3cgY=";
+    sha256 = "sha256-P4Uki+vlAgVECBUz9UGvv1ip49jmf0kYbyU2/mkWE3U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
new file mode 100644
index 00000000000..0fce65f2b8b
--- /dev/null
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, filelock
+, importlib-metadata
+, requests
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "huggingface-hub";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = "huggingface_hub";
+    rev = "v${version}";
+    hash = "sha256-0DSgWmodeRmvGq2v3n86BzRx5Xdb8fIQh+G/2O2d+yo=";
+  };
+
+  propagatedBuildInputs = [
+    filelock
+    requests
+    tqdm
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+
+  # Tests require network access.
+  doCheck = false;
+  pythonImportsCheck = [ "huggingface_hub" ];
+
+   meta = with lib; {
+    homepage = "https://github.com/huggingface/huggingface_hub";
+    description = "Download and publish models and other files on the huggingface.co hub";
+    changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index 7c34235a190..0b52402ed44 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -7,28 +7,20 @@
 , libusb1
 , mnemonic
 , pyaes
-, pythonAtLeast
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "1.2.1";
-  disabled = pythonAtLeast "3.9";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = version;
-    sha256 = "0fs3152lw7y5l9ssr5as8gd739m9lb7wxpv1vc5m77k5nw7l8ax5";
+    sha256 = "0m8maxhjpfxnkry2l0x8143m1gmds8mbwyd9flnkfipxz0r0xwbr";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'ecdsa>=0.13.0,<0.14.0'" "'ecdsa'" \
-      --replace "'hidapi>=0.7.99,<0.8.0'" "'hidapi'" \
-      --replace "'mnemonic>=0.18.0,<0.19.0'" "'mnemonic'"
-  '';
-
   propagatedBuildInputs = [
     bitbox02
     ecdsa
@@ -36,6 +28,7 @@ buildPythonPackage rec {
     libusb1
     mnemonic
     pyaes
+    typing-extensions
   ];
 
   # tests require to clone quite a few firmwares
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index 8ccc7eb4e0c..3f65b9291ae 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ijson";
-  version = "3.1.3";
+  version = "3.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d29977f7235b5bf83c372825c6abd8640ba0e3a8e031d3ffc3b63deaf6ae1487";
+    sha256 = "1d1003ae3c6115ec9b587d29dd136860a81a23c7626b682e2b5b12c9fd30e4ea";
   };
 
   doCheck = false; # something about yajl
diff --git a/pkgs/development/python-modules/inflect/default.nix b/pkgs/development/python-modules/inflect/default.nix
index 130b6a49bda..b8ebce462dc 100644
--- a/pkgs/development/python-modules/inflect/default.nix
+++ b/pkgs/development/python-modules/inflect/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "5.2.0";
+  version = "5.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "30e9d9d372e693739beaae1345dc53c48871ca70c5c7060edd3e7e77802bf945";
+    sha256 = "41a23f6788962e9775e40e2ecfb1d6455d02de315022afeedd3c5dc070019d73";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
index 56436cdd0eb..82153f4b3d9 100644
--- a/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.14.0";
+  version = "1.15.0";
 
   disabled = pythonOlder "3.6"; # requires python version >=3.6
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "1qq727gwz5migr3xlqxj57qxv1y52g7xpkdgggz2wz739w5czffd";
+    sha256 = "1b2xh78v965rgafyj7cdbjm2p96d74f7ifsqllc7242n9wv3k53q";
   };
 
   # makes test not reproducible
diff --git a/pkgs/development/python-modules/msldap/default.nix b/pkgs/development/python-modules/msldap/default.nix
index 826a4fddae0..e9790db9f5e 100644
--- a/pkgs/development/python-modules/msldap/default.nix
+++ b/pkgs/development/python-modules/msldap/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "msldap";
-  version = "0.3.27";
+  version = "0.3.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-tAMl1Xkb04Vfh18uS30eKX/IfeXhwER3J1lHXHxHlXY=";
+    sha256 = "sha256-0sMi5PpwMWf/W+Hu0akQVF/1ZkbanfOzYDC3R6lZrSE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/notify/default.nix b/pkgs/development/python-modules/notify/default.nix
index 1a60cf70d2d..8aa70b43e66 100644
--- a/pkgs/development/python-modules/notify/default.nix
+++ b/pkgs/development/python-modules/notify/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
       configure
   '';
 
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   buildInputs = [ python pygobject2 pygtk pkgs.libnotify pkgs.glib pkgs.gtk2 pkgs.dbus-glib ];
 
   postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
diff --git a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index 2e7666d3ab0..7661295ba23 100644
--- a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -1,33 +1,39 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{ lib
+, buildPythonPackage
 , click
-, requests
+, fetchPypi
 , packaging
+, pytestCheckHook
+, requests
 }:
 
-with lib;
-
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.7";
+  version = "1.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8074c1ed24cdd1fadc5a99bd63d9313a0a44703714473ed781ed11e7fb45c96f";
+    sha256 = "sha256-bo9HLT0q0yiLJI7i5v/36G82FHbGCtnAI50iGniyKSU=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "requests==2.21.0" "requests"
-    substituteInPlace setup.py --replace "packaging==19.1" "packaging"
-  '';
+  propagatedBuildInputs = [
+    click
+    requests
+    packaging
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  propagatedBuildInputs = [ click requests packaging ];
+  pythonImportsCheck = [ "openwrt_luci_rpc" ];
 
-  meta = {
-    description = ''
-      Python3 module for interacting with the OpenWrt Luci RPC interface.
-      Supports 15.X & 17.X & 18.X or newer releases of OpenWrt.
+  meta = with lib; {
+    description = "Python module for interacting with the OpenWrt Luci RPC interface";
+    longDescription = ''
+      This module allows you to use the Luci RPC interface to fetch connected devices
+      on your OpenWrt based router. Supports 15.X & 17.X & 18.X or newer releases of
+      OpenWrt.
     '';
     homepage = "https://github.com/fbradyirl/openwrt-luci-rpc";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pillow/generic.nix b/pkgs/development/python-modules/pillow/generic.nix
index dbf27febeb9..64ae9189559 100644
--- a/pkgs/development/python-modules/pillow/generic.nix
+++ b/pkgs/development/python-modules/pillow/generic.nix
@@ -26,6 +26,9 @@ buildPythonPackage rec {
     # pillow-simd
     "test_roundtrip"
     "test_basic"
+  ] ++ lib.optionals (lib.versions.major version == "6") [
+    # RuntimeError: Error setting from dictionary
+    "test_custom_metadata"
   ];
 
   propagatedBuildInputs = [ olefile ];
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index 2fca74b33aa..ddf2c9695a4 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -1,55 +1,58 @@
-{ lib, buildPythonPackage
+{ lib
+, buildPythonPackage
 , aiohttp
 , aiozeroconf
-, asynctest
 , cryptography
 , deepdiff
+, fetchFromGitHub
 , netifaces
 , protobuf
-, pytest
 , pytest-aiohttp
 , pytest-asyncio
-, pytestrunner
+, pytest-runner
+, pytest-timeout
+, pytestCheckHook
 , srptools
 , zeroconf
-, fetchFromGitHub
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.7.6";
+  version = "0.7.7";
+
   src = fetchFromGitHub {
     owner = "postlund";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lahv6f97fizgh5b2w5yz9455l8ygn99rslhiygkgjywi2flx3p3";
+    sha256 = "sha256-dPnh8XZN7ZVR2rYNnj7GSYXW5I2GNQwD/KRDTgs2AtI=";
   };
 
-  nativeBuildInputs = [ pytestrunner];
+  nativeBuildInputs = [ pytest-runner];
 
   propagatedBuildInputs = [
-    aiozeroconf
-    srptools
     aiohttp
-    protobuf
+    aiozeroconf
     cryptography
     netifaces
+    protobuf
+    srptools
     zeroconf
   ];
 
   checkInputs = [
     deepdiff
-    pytest
     pytest-aiohttp
     pytest-asyncio
+    pytest-timeout
     pytestCheckHook
   ];
 
   __darwinAllowLocalNetworking = true;
 
+  pythonImportsCheck = [ "pyatv" ];
+
   meta = with lib; {
-    description = "A python client library for the Apple TV";
+    description = "Python client library for the Apple TV";
     homepage = "https://github.com/postlund/pyatv";
     license = licenses.mit;
     maintainers = with maintainers; [ elseym ];
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
index 712029b692c..7e06b18e32b 100644
--- a/pkgs/development/python-modules/pycdio/default.nix
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     patchShebangs .
   '';
 
-  nativeBuildInputs = [ nose pkgs.pkgconfig pkgs.swig ];
+  nativeBuildInputs = [ nose pkgs.pkg-config pkgs.swig ];
   buildInputs = [ setuptools pkgs.libcdio ]
     ++ lib.optional stdenv.isDarwin pkgs.libiconv;
 
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index 145b405922d..8b390ac12fa 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.0.9";
+  version = "0.0.10";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15kygabjlxmy3g5kj48ixqdwaz8qrfzxj8ii27cidsp2fq8ph165";
+    sha256 = "sha256-sJj4RkVaELNitcz1H8YitNgIx4f35WeQf7M5miYD5yI=";
   };
 
   propagatedBuildInputs = [ aiohttp pycryptodome ];
diff --git a/pkgs/development/python-modules/pyparted/default.nix b/pkgs/development/python-modules/pyparted/default.nix
index f46a5d2db82..16a894546e4 100644
--- a/pkgs/development/python-modules/pyparted/default.nix
+++ b/pkgs/development/python-modules/pyparted/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     PATH="${pkgs.parted}/sbin:$PATH"
   '';
 
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   checkInputs = [ six ];
   propagatedBuildInputs = [ pkgs.parted ];
 
diff --git a/pkgs/development/python-modules/pypoppler/default.nix b/pkgs/development/python-modules/pypoppler/default.nix
index 348f9171502..d325c170dc6 100644
--- a/pkgs/development/python-modules/pypoppler/default.nix
+++ b/pkgs/development/python-modules/pypoppler/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   NIX_CFLAGS_COMPILE="-I${pkgs.poppler.dev}/include/poppler/";
-  nativeBuildInputs = [ pkgs.pkgconfig ];
+  nativeBuildInputs = [ pkgs.pkg-config ];
   buildInputs = [ pkgs.poppler.dev ];
   propagatedBuildInputs = [ pycairo pygobject2 ];
 
diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix
index 206e3671f47..1bb91953983 100644
--- a/pkgs/development/python-modules/pyshark/default.nix
+++ b/pkgs/development/python-modules/pyshark/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyshark";
-  version = "0.4.2.11";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "KimiNewt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07dkhkf85cplcj1h3k8mmqzsn4zdkxzr0zg3gvf8yc8p5g5azx9q";
+    sha256 = "sha256-cveiFkkSplfQPgUEVWyV40KKHCtKJZsfvdV8JmEUmE4=";
   };
 
   propagatedBuildInputs = [
@@ -29,6 +29,8 @@ buildPythonPackage rec {
     wireshark-cli
   ];
 
+  pythonImportsCheck = [ "pyshark" ];
+
   meta = with lib; {
     description = "Python wrapper for tshark, allowing python packet parsing using wireshark dissectors";
     homepage = "https://github.com/KimiNewt/pyshark/";
diff --git a/pkgs/development/python-modules/sane/default.nix b/pkgs/development/python-modules/sane/default.nix
index d45c736d8d0..b02feb9e219 100644
--- a/pkgs/development/python-modules/sane/default.nix
+++ b/pkgs/development/python-modules/sane/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, saneBackends
+, sane-backends
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [
-    saneBackends
+    sane-backends
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix
index c5df9f7d991..702b0e3e365 100644
--- a/pkgs/development/python-modules/snapcast/default.nix
+++ b/pkgs/development/python-modules/snapcast/default.nix
@@ -1,23 +1,25 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, pytest
-, construct }:
+{ lib
+, buildPythonPackage
+, construct
+, fetchPypi
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.1.1";
-
+  version = "2.1.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c3ecd63d997fbcf6e5322dc47c1f02615f1d9611cba01ec18e9c9f8c14ed824b";
+    sha256 = "sha256-ILBleqxEO7wTxAw/fvDW+4O4H4XWV5m5WWtaNeRBr4g=";
   };
 
-  checkInputs = [ pytest ];
-
   propagatedBuildInputs = [ construct ];
 
   # no checks from Pypi - https://github.com/happyleavesaoc/python-snapcast/issues/23
   doCheck = false;
+  pythonImportsCheck = [ "snapcast" ];
 
   meta = with lib; {
     description = "Control Snapcast, a multi-room synchronous audio solution";
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index 3ec4246cd02..a6dd6e41dc5 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.5";
+  version = "3.6";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-i9SnT+DcQOcujV25bD/SNV1uRA2IgfiSWhEWlQC5TiA=";
+    sha256 = "sha256-WCqbz0tssy7i76Sg2PeexjDollypPGnOqqfUJOHAFWA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index 9c0e9d35399..9c759f3a2b7 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -1,19 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427";
+    hash = "sha256-QI+5orJUwwL0nbg8WfmqC0sP0OwlvjpcURgTJ5Iv9j0=";
   };
 
+  checkInputs = [
+    nose
+  ];
+
   meta = with lib; {
-    description = "A formatter for Python code.";
-    homepage    = "https://github.com/google/yapf";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ siddharthist ];
-  };
+    homepage = "https://github.com/google/yapf";
+    description = "Yet Another Python Formatter";
+    longDescription = ''
+      Most of the current formatters for Python --- e.g., autopep8, and pep8ify
+      --- are made to remove lint errors from code. This has some obvious
+      limitations. For instance, code that conforms to the PEP 8 guidelines may
+      not be reformatted. But it doesn't mean that the code looks good.
 
+      YAPF takes a different approach. It's based off of 'clang-format',
+      developed by Daniel Jasper. In essence, the algorithm takes the code and
+      reformats it to the best formatting that conforms to the style guide, even
+      if the original code didn't violate the style guide. The idea is also
+      similar to the 'gofmt' tool for the Go programming language: end all holy
+      wars about formatting - if the whole codebase of a project is simply piped
+      through YAPF whenever modifications are made, the style remains consistent
+      throughout the project and there's no point arguing about style in every
+      code review.
+
+      The ultimate goal is that the code YAPF produces is as good as the code
+      that a programmer would write if they were following the style guide. It
+      takes away some of the drudgery of maintaining your code.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres siddharthist ];
+  };
 }
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index fe823c17d93..24f6e7ccfc4 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -231,7 +231,7 @@ let
   };
 
   packagesWithNativeBuildInputs = {
-    arrow = [ pkgs.pkgconfig pkgs.arrow-cpp ];
+    arrow = [ pkgs.pkg-config pkgs.arrow-cpp ];
     adimpro = [ pkgs.imagemagick ];
     animation = [ pkgs.which ];
     audio = [ pkgs.portaudio ];
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 09a77d0f935..c3c3d2dd2bc 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.39.6";
+  version = "0.39.8";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2P+/y3iP/eMGGc0W1lHWWxO+uMy5gvlvjKzZ/8maJ9o=";
+    sha256 = "sha256-7LC7QT92Ecva/uQPwYEfbLQUpIesxa8pXrauMxIwZ98=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix
index ff47bd0e9f3..f3d9b74181a 100644
--- a/pkgs/development/tools/castxml/default.nix
+++ b/pkgs/development/tools/castxml/default.nix
@@ -1,52 +1,69 @@
-{ lib, stdenv, fetchFromGitHub
-, python3Packages
+{ lib
+, stdenv
+, fetchFromGitHub
+, clang-unwrapped
 , cmake
-, llvmPackages
-, libffi, libxml2, zlib
-, withMan ? true
+, libclang
+, libffi
+, libxml2
+, llvm
+, sphinx
+, zlib
+, withManual ? true
+, withHTML ? true
 }:
-stdenv.mkDerivation rec {
 
-  pname   = "CastXML";
-  version = "0.3.4";
+stdenv.mkDerivation rec {
+  pname = "CastXML";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0ypj67xrgj228myp7l1gsjw1ja97q68nmj98dsd33srmiayqraj4";
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MschwCEkZrZmNgr8a1ocdukjXzHbXl2gmkPmygJaA6k=";
   };
 
-  nativeBuildInputs = [ cmake ] ++ lib.optionals withMan [ python3Packages.sphinx ];
-
-  clangVersion = lib.getVersion llvmPackages.clang;
+  nativeBuildInputs = [
+    cmake
+    llvm
+  ] ++ lib.optionals (withManual || withHTML) [
+    sphinx
+  ];
 
   cmakeFlags = [
-    "-DCLANG_RESOURCE_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${clangVersion}/"
-    "-DSPHINX_MAN=${if withMan then "ON" else "OFF"}"
+    "-DCLANG_RESOURCE_DIR=${clang-unwrapped}/lib/clang/${lib.getVersion clang-unwrapped}/"
+    "-DSPHINX_HTML=${if withHTML then "ON" else "OFF"}"
+    "-DSPHINX_MAN=${if withManual then "ON" else "OFF"}"
   ];
 
   buildInputs = [
-    llvmPackages.clang-unwrapped
-    llvmPackages.llvm
-    libffi libxml2 zlib
+    clang-unwrapped
+    libffi
+    libxml2
+    zlib
   ];
 
-  propagatedBuildInputs = [ llvmPackages.libclang ];
+  propagatedBuildInputs = [
+    libclang
+  ];
 
   # 97% tests passed, 97 tests failed out of 2881
   # mostly because it checks command line and nix append -isystem and all
   doCheck = false;
+  # -E exclude 4 tests based on names
+  # see https://github.com/CastXML/CastXML/issues/90
   checkPhase = ''
-    # -E exclude 4 tests based on names
-    # see https://github.com/CastXML/CastXML/issues/90
+    runHook preCheck
     ctest -E 'cmd.cc-(gnu|msvc)-((c-src-c)|(src-cxx))-cmd'
+    runHook postCheck
   '';
 
   meta = with lib; {
     homepage = "https://github.com/CastXML/CastXML";
+    description = "C-family Abstract Syntax Tree XML Output";
     license = licenses.asl20;
-    description = "Abstract syntax tree XML output tool";
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index daa6d08cd4a..bb5f8a4c9cd 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -2,7 +2,7 @@
 , coreutils, git, gnused, nix, nixfmt }:
 
 let
-  version = "2.0.13";
+  version = "2.0.14";
 
   zshCompletion = fetchurl {
     url =
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "sha256-3FdvoSH/6MZK6KEImXsFteaCoTLO0unK6dp7t+snVt4=";
+    sha256 = "sha256-mGVOg+I42O3VYj7RStEOfZajS9RZo9hLWKap6UdjJCE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index fbbb773519a..437013e1af2 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "1.15.1";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-w2eP8mDGHHZGYQUU7lOe7gp3tdr9VO/NP5fFBWOWt/A=";
+    sha256 = "sha256-lZ2PIfZSvBxVIAEpRgsLvTWPFRsh2ZpXkame6pk0Cio=";
   };
-  vendorSha256 = "sha256-fB9/cf2VOMXWLHnnHJZDmOutIUvPleWBGCirJrypCts=";
+  vendorSha256 = "sha256:1nqam6y2dar8320yb5fg9chsvswq8fb1rrvr5kbcaf4mzmqpy7vw";
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix
index ac5fb4118be..dca8d9666af 100644
--- a/pkgs/development/tools/misc/dialog/default.nix
+++ b/pkgs/development/tools/misc/dialog/default.nix
@@ -12,11 +12,11 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "dialog";
-  version = "1.3-20210117";
+  version = "1.3-20210306";
 
   src = fetchurl {
     url = "ftp://ftp.invisible-island.net/dialog/${pname}-${version}.tgz";
-    sha256 = "PB7Qj0S89vFZ8qpv3nZduU6Jl7Pu+0nYtMhmkWk8Q+E=";
+    hash = "sha256-pz57YHtjX2PAICuzMTEG5wD5H+Sp9NJspwA/brK5yw8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 82b2d2af7cd..b9341609493 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "editorconfig-checker";
-  version = "2.3.3";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = version;
-    sha256 = "sha256-u3gTzsAoV4fgQjsnONIIGFE/Y02bKbCTg30O9FTI2/w=";
+    sha256 = "sha256-aTHY9RFFkpTQKv+Erczu5joqvE7L05Ev2GOSiXNxLj8=";
   };
 
-  vendorSha256 = "sha256-0Eznh9xXuYf4mVZipyE99fKwkGYeSAorhBLamupGkvw=";
+  vendorSha256 = "sha256-y+wQ6XzX4vmKzesUcF9jgfrKPj5EsCuw/aKizVX/ogI=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/operator-sdk/default.nix b/pkgs/development/tools/operator-sdk/default.nix
index 764041b6ad4..0df831b579e 100644
--- a/pkgs/development/tools/operator-sdk/default.nix
+++ b/pkgs/development/tools/operator-sdk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "operator-sdk";
-  version = "1.4.2";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "operator-framework";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wGlxi9X8RrAtvevDfufY1t3en6QgHy5XoSh0K/M/ve4=";
+    sha256 = "sha256-95fTfUKoknGBIoc/ALd5w9X89Tl9DBxapl9EgWENsa0=";
   };
 
-  vendorSha256 = "sha256-GRw0u6zox2gseQhrx7n0M3WVu4+yCKZ7D/QHVcBRb30=";
+  vendorSha256 = "sha256-Sp0ml5tnsbnuyk3NkA80dmFj6IOiL/NeYYbEbr7EPRY=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index 88783e4f380..aa58864fed7 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -313,7 +313,7 @@ self: super:
           nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
           buildInputs =
             (old.buildInputs or [ ])
-            ++ [ pkgs.hdf5 self.pkgconfig self.cython ]
+            ++ [ pkgs.hdf5 self.pkg-config self.cython ]
             ++ lib.optional mpiSupport mpi
           ;
           propagatedBuildInputs =
@@ -453,7 +453,7 @@ self: super:
   );
 
   jsonslicer = super.jsonslicer.overridePythonAttrs (old: {
-    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig ];
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
     buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.yajl ];
   });
 
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index 7cb366c5502..934976f7386 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FWXSEGjTr2DewZ8NidzPdc6jhfNAUdV9qKyR7ZciWio=";
+    sha256 = "sha256-6FjFG4RYvmsV/W7OMxj1ZWvruwUeP9Nvsdiv8toZmTk=";
   };
 
-  cargoSha256 = "sha256-uvTxOZPMTCd+3WQJeVfSC5mlJ487hJKs/0Dd2C8cpcM=";
+  cargoSha256 = "sha256-1+A+n5VQS8zJULiR8IWLGo+RnFuVjg6ist8G3eCsXJM=";
 
   meta = with lib; {
     description =
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 013b365bce8..17a3ae58f2a 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -1,52 +1,49 @@
-{ lib, stdenv
-, fetchurl
+{ stdenv
+, lib
+, callPackage
 , fetchFromGitHub
 , rust
 , rustPlatform
 , installShellFiles
+, libobjc
 , Security
 , CoreServices
+, Metal
+, Foundation
+, librusty_v8 ? callPackage ./librusty_v8.nix { }
 }:
-let
-  deps = import ./deps.nix { };
-  arch = rust.toRustTarget stdenv.hostPlatform;
-  rustyV8Lib = with deps.rustyV8Lib; fetchurl {
-    url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
-    sha256 = sha256s."${stdenv.hostPlatform.system}";
-    meta = { inherit version; };
-  };
-in
+
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.6.3";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wmkx458fpsfw57ysawxc0ghxag8v051hiyswm7nnb7gckrm6j8z";
-    fetchSubmodules = true;
+    sha256 = "sha256-tyqZ/vjQ9gjLoK+Juj30It3H6+2sT9Fj/s0kEv0HRwI=";
   };
-  cargoSha256 = "08vzsp53019gmxkn8lpa6l84w3fvbrnr11lzrfgf99nmii6l2hq5";
+  cargoSha256 = "sha256-LpBQztMqw7IbgTJkfiD+6Fcy5XXmN58HO/zhVen3oCI=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security CoreServices ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libobjc Security CoreServices Metal Foundation ];
 
   # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
   # To avoid this we pre-download the file and place it in the locations it will require it in advance
-  preBuild = ''
-    _rusty_v8_setup() {
-      for v in "$@"; do
-        dir="target/$v/gn_out/obj"
-        mkdir -p "$dir" && cp "${rustyV8Lib}" "$dir/librusty_v8.a"
-      done
-    }
+  preBuild =
+    let arch = rust.toRustTarget stdenv.hostPlatform; in
+    ''
+      _librusty_v8_setup() {
+        for v in "$@"; do
+          install -D ${librusty_v8} "target/$v/gn_out/obj/librusty_v8.a"
+        done
+      }
 
-    # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
-    _rusty_v8_setup "debug" "release" "${arch}/release"
-  '';
+      # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
+      _librusty_v8_setup "debug" "release" "${arch}/release"
+    '';
 
   # Tests have some inconsistencies between runs with output integration tests
   # Skipping until resolved
@@ -54,7 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     # remove test plugin and test server
-    rm -rf $out/lib $out/bin/test_server
+    rm -r $out/lib $out/bin/test_server $out/bin/denort
 
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
@@ -62,11 +59,19 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/deno completions zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/deno --help
+    $out/bin/deno --version | grep "deno ${version}"
+    runHook postInstallCheck
+  '';
+
   passthru.updateScript = ./update/update.ts;
 
   meta = with lib; {
     homepage = "https://deno.land/";
-    changelog = "${src.meta.homepage}/releases/tag/v${version}";
+    changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
     description = "A secure runtime for JavaScript and TypeScript";
     longDescription = ''
       Deno aims to be a productive and secure scripting environment for the modern programmer.
@@ -79,6 +84,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
deleted file mode 100644
index 4426c600df7..00000000000
--- a/pkgs/development/web/deno/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# auto-generated file -- DO NOT EDIT!
-{}:
-rec {
-  rustyV8Lib = {
-    version = "0.15.0";
-    sha256s = {
-      x86_64-linux = "1j789pvqh44vsffzl5wg3pp3awrlixjrhbnjx2klsml7jv0lp0mq";
-      aarch64-linux = "13srja4vc275ygm806hcsr8mxjnd9qkzaqs58lxnp0702qs5xls6";
-      x86_64-darwin = "0aij9yb5i1r3pz0pyl51qdbgfspfdngwbk1qgkp4gxzl3cbnysx1";
-    };
-  };
-}
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
new file mode 100644
index 00000000000..31dbce08922
--- /dev/null
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -0,0 +1,21 @@
+# auto-generated file -- DO NOT EDIT!
+{ rust, stdenv, fetchurl }:
+
+let
+  arch = rust.toRustTarget stdenv.hostPlatform;
+  fetch_librusty_v8 = args: fetchurl {
+    name = "librusty_v8-${args.version}";
+    url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${arch}.a";
+    sha256 = args.shas.${stdenv.hostPlatform.system};
+    meta = { inherit (args) version; };
+  };
+in
+fetch_librusty_v8 {
+  version = "0.20.0";
+  shas = {
+    x86_64-linux = "sha256-pTWNYQzChyYJh+afn1AMw/MxUE+Cv4k2FnM3+KDYCvg=";
+    aarch64-linux = "sha256-SPRtQO0tnuEf49GuSsuo403QO0Y6ioRkOp4cjohXRhw=";
+    x86_64-darwin = "sha256-k0kS5NiITqW/WEFWe/Bnt7Z9HZp2YN19L7DvVlptrj4=";
+    aarch64-darwin = "sha256-CDGxSv7fPR+5kF3+5NVTOH8ugLaM07Kv5mjoEW6/g/8=";
+  };
+}
diff --git a/pkgs/development/web/deno/update/common.ts b/pkgs/development/web/deno/update/common.ts
index d8956b21d16..1b4e3509ea7 100644
--- a/pkgs/development/web/deno/update/common.ts
+++ b/pkgs/development/web/deno/update/common.ts
@@ -3,12 +3,15 @@ interface GHRelease {
 }
 
 const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
-const run = async (command: string, args: string[]) => {
-  const cmd = Deno.run(
-    { cmd: [command, ...args], stdout: "piped", stderr: "piped" },
-  );
+const decodeTrim = (b: Uint8Array) => decode(b).trimEnd();
+export const run = async (command: string, args: string[]) => {
+  const cmd = Deno.run({
+    cmd: [command, ...args],
+    stdout: "piped",
+    stderr: "piped",
+  });
   if (!(await cmd.status()).success) {
-    const error = await cmd.stderrOutput().then((b) => decode(b).trimEnd());
+    const error = await cmd.stderrOutput().then(decodeTrim);
     // Known error we can ignore
     if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
       // Extract the target sha256 out of the error
@@ -23,26 +26,16 @@ const run = async (command: string, args: string[]) => {
     }
     throw new Error(error);
   }
-  return cmd.output().then((b) => decode(b).trimEnd());
+  return cmd.output().then(decodeTrim);
 };
 
 // Exports
 export const versionRegExp = /\d+\.\d+\.\d+/;
-export const sha256RegExp = /[a-z0-9]{52}/;
-
-export async function commit(
-  name: string,
-  oldVer: string,
-  newVer: string,
-  files: string[],
-) {
-  await run("git", ["add", ...files]);
-  await run("git", ["commit", "-m", `${name}: ${oldVer} -> ${newVer}`]);
-}
+export const sha256RegExp = /[a-z0-9]{52}|sha256-.{44}/;
 
 export const getExistingVersion = async (filePath: string) =>
-  read(filePath).then((s) =>
-    s.match(genValueRegExp("version", versionRegExp))?.shift() || ""
+  read(filePath).then(
+    (s) => s.match(genValueRegExp("version", versionRegExp))?.shift() || "",
   );
 
 export const getLatestVersion = (owner: string, repo: string) =>
@@ -58,8 +51,5 @@ export const genValueRegExp = (key: string, regex: RegExp) =>
 export const logger = (name: string) =>
   (...a: any) => console.log(`[${name}]`, ...a);
 
-export const nixPrefetch = (args: string[]) => run("nix-prefetch", args);
-export const nixPrefetchURL = (args: string[]) => run("nix-prefetch-url", args);
-
 export const read = Deno.readTextFile;
 export const write = Deno.writeTextFile;
diff --git a/pkgs/development/web/deno/update/deps.ts b/pkgs/development/web/deno/update/deps.ts
deleted file mode 100644
index beedeade3a8..00000000000
--- a/pkgs/development/web/deno/update/deps.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import {
-  getExistingVersion,
-  genValueRegExp,
-  logger,
-  nixPrefetchURL,
-  versionRegExp,
-  write,
-} from "./common.ts";
-
-const log = logger("deps");
-
-export interface Architecture {
-  nix: string;
-  rust: string;
-}
-interface PrefetchResult {
-  arch: Architecture;
-  sha256: string;
-}
-
-const getRustyV8Version = async (
-  owner: string,
-  repo: string,
-  version: string,
-) =>
-  fetch(
-    `https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`,
-  )
-    .then((res) => res.text())
-    .then((txt) =>
-      txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
-    );
-
-const archShaTasks = (version: string, arches: Architecture[]) =>
-  arches.map(async (arch: Architecture): Promise<PrefetchResult> => {
-    log("Fetching:", arch.nix);
-    const sha256 = await nixPrefetchURL(
-      [`https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a`],
-    );
-    log("Done:    ", arch.nix);
-    return { arch, sha256 };
-  });
-
-const templateDeps = (version: string, deps: PrefetchResult[]) =>
-  `# auto-generated file -- DO NOT EDIT!
-{}:
-rec {
-  rustyV8Lib = {
-    version = "${version}";
-    sha256s = {
-${deps.map((d) => `      ${d.arch.nix} = "${d.sha256}";`).join("\n")}
-    };
-  };
-}
-`;
-
-export async function updateDeps(
-  filePath: string,
-  owner: string,
-  repo: string,
-  denoVersion: string,
-  arches: Architecture[],
-) {
-  log("Starting deps update");
-  // 0.0.0
-  const version = await getRustyV8Version(owner, repo, denoVersion);
-  if (typeof version !== "string") {
-    throw "no rusty_v8 version";
-  }
-  log("rusty_v8 version:", version);
-  const existingVersion = await getExistingVersion(filePath);
-  if (version === existingVersion) {
-    log("Version already matches latest, skipping...");
-    return;
-  }
-  const archShaResults = await Promise.all(archShaTasks(version, arches));
-  await write(filePath, templateDeps(version, archShaResults));
-  log("Finished deps update");
-}
diff --git a/pkgs/development/web/deno/update/librusty_v8.ts b/pkgs/development/web/deno/update/librusty_v8.ts
new file mode 100644
index 00000000000..dee3277c581
--- /dev/null
+++ b/pkgs/development/web/deno/update/librusty_v8.ts
@@ -0,0 +1,92 @@
+import {
+  genValueRegExp,
+  getExistingVersion,
+  logger,
+  run,
+  versionRegExp,
+  write,
+} from "./common.ts";
+
+const log = logger("librusty_v8");
+
+export interface Architecture {
+  nix: string;
+  rust: string;
+}
+interface PrefetchResult {
+  arch: Architecture;
+  sha256: string;
+}
+
+const getLibrustyV8Version = async (
+  owner: string,
+  repo: string,
+  version: string,
+) =>
+  fetch(`https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`)
+    .then((res) => res.text())
+    .then((txt) =>
+      txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
+    );
+
+const fetchArchShaTasks = (version: string, arches: Architecture[]) =>
+  arches.map(
+    async (arch: Architecture): Promise<PrefetchResult> => {
+      log("Fetching:", arch.nix);
+      const sha256 = await run("nix-prefetch", [
+        `
+{ fetchurl }:
+fetchurl {
+  url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a";
+}
+`,
+      ]);
+      log("Done:    ", arch.nix);
+      return { arch, sha256 };
+    },
+  );
+
+const templateDeps = (version: string, deps: PrefetchResult[]) =>
+  `# auto-generated file -- DO NOT EDIT!
+{ rust, stdenv, fetchurl }:
+
+let
+  arch = rust.toRustTarget stdenv.hostPlatform;
+  fetch_librusty_v8 = args: fetchurl {
+    name = "librusty_v8-\${args.version}";
+    url = "https://github.com/denoland/rusty_v8/releases/download/v\${args.version}/librusty_v8_release_\${arch}.a";
+    sha256 = args.shas.\${stdenv.hostPlatform.system};
+    meta = { inherit (args) version; };
+  };
+in
+fetch_librusty_v8 {
+  version = "${version}";
+  shas = {
+${deps.map(({ arch, sha256 }) => `    ${arch.nix} = "${sha256}";`).join("\n")}
+  };
+}
+`;
+
+export async function updateLibrustyV8(
+  filePath: string,
+  owner: string,
+  repo: string,
+  denoVersion: string,
+  arches: Architecture[],
+) {
+  log("Starting librusty_v8 update");
+  // 0.0.0
+  const version = await getLibrustyV8Version(owner, repo, denoVersion);
+  if (typeof version !== "string") {
+    throw "no librusty_v8 version";
+  }
+  log("librusty_v8 version:", version);
+  const existingVersion = await getExistingVersion(filePath);
+  if (version === existingVersion) {
+    log("Version already matches latest, skipping...");
+    return;
+  }
+  const archShaResults = await Promise.all(fetchArchShaTasks(version, arches));
+  await write(filePath, templateDeps(version, archShaResults));
+  log("Finished deps update");
+}
diff --git a/pkgs/development/web/deno/update/src.ts b/pkgs/development/web/deno/update/src.ts
index fae15acd0d2..3bfae27c21c 100644
--- a/pkgs/development/web/deno/update/src.ts
+++ b/pkgs/development/web/deno/update/src.ts
@@ -1,8 +1,8 @@
 import {
   genValueRegExp,
   logger,
-  nixPrefetch,
   read,
+  run,
   sha256RegExp,
   versionRegExp,
   write,
@@ -16,10 +16,11 @@ interface Replacer {
 const log = logger("src");
 
 const prefetchSha256 = (nixpkgs: string, version: string) =>
-  nixPrefetch(["-f", nixpkgs, "deno.src", "--rev", version]);
+  run("nix-prefetch", ["-f", nixpkgs, "deno.src", "--rev", version]);
 const prefetchCargoSha256 = (nixpkgs: string) =>
-  nixPrefetch(
-    [`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { outputHash = sha256; })`],
+  run(
+    "nix-prefetch",
+    [`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { inherit sha256; })`],
   );
 
 const replace = (str: string, replacers: Replacer[]) =>
@@ -53,7 +54,6 @@ export async function updateSrc(
     [
       genVerReplacer("version", trimVersion),
       genShaReplacer("sha256", sha256),
-      genShaReplacer("cargoSha256", ""), // Empty ready for prefetchCargoSha256
     ],
   );
   log("Fetching cargoSha256 for:", sha256);
diff --git a/pkgs/development/web/deno/update/update.ts b/pkgs/development/web/deno/update/update.ts
index 18d45148013..27e1d86ee86 100755
--- a/pkgs/development/web/deno/update/update.ts
+++ b/pkgs/development/web/deno/update/update.ts
@@ -2,13 +2,8 @@
 /*
 #!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nix-prefetch
 */
-import {
-  commit,
-  getExistingVersion,
-  getLatestVersion,
-  logger,
-} from "./common.ts";
-import { Architecture, updateDeps } from "./deps.ts";
+import { getExistingVersion, getLatestVersion, logger } from "./common.ts";
+import { Architecture, updateLibrustyV8 } from "./librusty_v8.ts";
 import { updateSrc } from "./src.ts";
 
 const log = logger("update");
@@ -19,11 +14,12 @@ const owner = "denoland";
 const repo = "deno";
 const denoDir = `${nixpkgs}/pkgs/development/web/${repo}`;
 const src = `${denoDir}/default.nix`;
-const deps = `${denoDir}/deps.nix`;
+const librusty_v8 = `${denoDir}/librusty_v8.nix`;
 const architectures: Architecture[] = [
   { nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
   { nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
   { nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
+  { nix: "aarch64-darwin", rust: "aarch64-apple-darwin" },
 ];
 
 log("Updating deno");
@@ -41,10 +37,7 @@ if (trimVersion === existingVersion) {
 
 const tasks = [
   updateSrc(src, nixpkgs, version),
-  updateDeps(deps, owner, repo, version, architectures),
+  updateLibrustyV8(librusty_v8, owner, repo, version, architectures),
 ];
 await Promise.all(tasks);
 log("Updating deno complete");
-log("Commiting");
-await commit(repo, existingVersion, trimVersion, [src, deps]);
-log("Done");
diff --git a/pkgs/development/web/nodejs/v15.nix b/pkgs/development/web/nodejs/v15.nix
index f564d5bcccb..194bb25cb02 100644
--- a/pkgs/development/web/nodejs/v15.nix
+++ b/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.11.0";
-    sha256 = "1lfjm0jgzbr0a874c04pddbjnvjcdyx5vyaakdhp0fa222i92w0s";
+    version = "15.12.0";
+    sha256 = "0c8smzc7gbr7yg4y4z68976wk5741bspggag9h9laykq4i8bxfsy";
   }