about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE.md2
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md2
-rw-r--r--maintainers/maintainer-list.nix15
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix17
-rw-r--r--nixos/modules/services/x11/xserver.nix4
-rw-r--r--nixos/tests/nginx.nix20
-rw-r--r--pkgs/applications/blockchains/pivx.nix4
-rw-r--r--pkgs/applications/editors/texmaker/default.nix4
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix6
-rw-r--r--pkgs/applications/kde/default.nix1
-rw-r--r--pkgs/applications/kde/ksudoku.nix18
-rw-r--r--pkgs/applications/misc/vym/default.nix4
-rw-r--r--pkgs/applications/networking/flexget/default.nix83
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/default.nix39
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch12
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix4
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/radio/soapysdr/default.nix11
-rw-r--r--pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-bug/default.nix6
-rw-r--r--pkgs/applications/video/obs-studio/default.nix4
-rw-r--r--pkgs/applications/video/shotcut/default.nix24
-rw-r--r--pkgs/desktops/xfce/applications/catfish/default.nix4
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix6
-rw-r--r--pkgs/development/libraries/ffmpeg-full/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/2.8.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/4.nix4
-rw-r--r--pkgs/development/libraries/libmad/default.nix2
-rw-r--r--pkgs/development/libraries/mlt/default.nix9
-rw-r--r--pkgs/development/libraries/mlt/qt-5.nix4
-rw-r--r--pkgs/development/libraries/ntl/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/clmagma/default.nix75
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix37
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix4
-rw-r--r--pkgs/development/libraries/unicorn-emu/default.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-identity/default.nix53
-rw-r--r--pkgs/development/python-modules/azure-keyvault-nspkg/default.nix35
-rw-r--r--pkgs/development/python-modules/bandit/default.nix44
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix1
-rw-r--r--pkgs/development/python-modules/django-ranged-response/default.nix23
-rw-r--r--pkgs/development/python-modules/django-simple-captcha/default.nix39
-rw-r--r--pkgs/development/python-modules/fints/default.nix9
-rw-r--r--pkgs/development/python-modules/flask-swagger-ui/default.nix24
-rw-r--r--pkgs/development/python-modules/graph-tool/2.x.x.nix24
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix2
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix26
-rw-r--r--pkgs/development/python-modules/loguru/default.nix12
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix35
-rw-r--r--pkgs/development/python-modules/msal/default.nix36
-rw-r--r--pkgs/development/python-modules/nagiosplugin/default.nix32
-rw-r--r--pkgs/development/python-modules/names/default.nix36
-rw-r--r--pkgs/development/python-modules/notedown/default.nix37
-rw-r--r--pkgs/development/python-modules/oyaml/default.nix41
-rw-r--r--pkgs/development/python-modules/pandoc-attributes/default.nix29
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix5
-rw-r--r--pkgs/development/python-modules/pyjks/default.nix37
-rw-r--r--pkgs/development/python-modules/pysmb/default.nix36
-rw-r--r--pkgs/development/python-modules/requirements-detector/default.nix38
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix3
-rw-r--r--pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch13
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch22
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/default.nix38
-rw-r--r--pkgs/development/python-modules/twofish/default.nix33
-rw-r--r--pkgs/development/python-modules/unicorn/default.nix22
-rw-r--r--pkgs/development/python-modules/viewstate/default.nix36
-rw-r--r--pkgs/development/tools/build-managers/qbs/default.nix4
-rw-r--r--pkgs/development/tools/diesel-cli/default.nix2
-rw-r--r--pkgs/development/tools/metals/default.nix57
-rw-r--r--pkgs/development/tools/ocaml/cppo/default.nix6
-rw-r--r--pkgs/development/tools/parsing/byacc/default.nix4
-rw-r--r--pkgs/development/tools/poetry/default.nix10
-rw-r--r--pkgs/development/tools/rust/racer/default.nix8
-rw-r--r--pkgs/games/gweled/default.nix30
-rw-r--r--pkgs/misc/vim-plugins/generated.nix35
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix16
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/misc/vim-plugins/vim-terraform-fix-event.patch23
-rw-r--r--pkgs/os-specific/linux/ddcci/default.nix42
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix2
-rw-r--r--pkgs/os-specific/linux/odp-dpdk/default.nix2
-rw-r--r--pkgs/os-specific/linux/smemstat/default.nix4
-rw-r--r--pkgs/servers/http/nginx/modules.nix9
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/pynagsystemd.nix22
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/tools/filesystems/moosefs/default.nix4
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix12
-rw-r--r--pkgs/tools/misc/ckb-next/default.nix7
-rw-r--r--pkgs/tools/misc/ckb-next/install-dirs.patch37
-rw-r--r--pkgs/tools/misc/ckb-next/modprobe.patch36
-rw-r--r--pkgs/tools/misc/ckb-next/systemd-service.patch45
-rw-r--r--pkgs/tools/misc/fzf/default.nix6
-rw-r--r--pkgs/tools/misc/heimdall/default.nix3
-rw-r--r--pkgs/tools/misc/onefetch/default.nix14
-rw-r--r--pkgs/tools/misc/tmux-xpanes/default.nix33
-rw-r--r--pkgs/tools/networking/openssh/default.nix12
-rw-r--r--pkgs/tools/networking/wireguard-go/0001-Fix-darwin-build.patch26
-rw-r--r--pkgs/tools/networking/wireguard-go/default.nix2
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix15
-rw-r--r--pkgs/tools/package-management/nix/default.nix14
-rw-r--r--pkgs/tools/package-management/reuse/default.nix4
-rw-r--r--pkgs/tools/security/aws-okta/default.nix4
-rw-r--r--pkgs/tools/system/uefitool/common.nix39
-rw-r--r--pkgs/tools/system/uefitool/variants.nix15
-rw-r--r--pkgs/tools/video/rav1e/default.nix17
-rw-r--r--pkgs/top-level/all-packages.nix30
-rw-r--r--pkgs/top-level/python-packages.nix88
-rw-r--r--pkgs/top-level/static.nix9
118 files changed, 1627 insertions, 446 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index d7463385ae587..1913e321a8c8a 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -8,4 +8,4 @@
 
 ## Technical details
 
-Please run `nix run nixpkgs.nix-info -c nix-info -m` and paste the result.
+Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 8cc9a80758d33..07c93f84fe0a2 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -26,7 +26,7 @@ If applicable, add screenshots to help explain your problem.
 Add any other context about the problem here.
 
 **Metadata**
-Please run `nix run nixpkgs.nix-info -c nix-info -m` and paste the result.
+Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
 
 Maintainer information:
 ```yaml
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 2bcf0cccb3a72..f8962501ebdcb 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3560,6 +3560,16 @@
     githubId = 87115;
     name = "Wael Nasreddine";
   };
+  kamadorueda = {
+    name = "Kevin Amado";
+    email = "kamadorueda@gmail.com";
+    github = "kamadorueda";
+    githubId = 47480384;
+    keys = [{
+      longkeyid = "rsa4096/0x04D0CEAF916A9A40";
+      fingerprint = "2BE3 BAFD 793E A349 ED1F  F00F 04D0 CEAF 916A 9A40";
+    }];
+  };
   kamilchm = {
     email = "kamil.chm@gmail.com";
     github = "kamilchm";
@@ -7280,6 +7290,11 @@
     githubId = 797581;
     name = "Vincent Bernardoff";
   };
+  vcanadi = {
+    email = "vito.canadi@gmail.com";
+    github = "vcanadi";
+    name = "Vitomir ÄŒanadi";
+  };
   vcunat = {
     name = "Vladimír Čunát";
     email = "v@cunat.cz"; # vcunat@gmail.com predominated in commits before 2019/03
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index d7149b35d4c0c..c2f2578733baf 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/6chjfy4j6hjwj5f8zcbbdg02i21x1qsi-nix-2.3.1";
-  i686-linux = "/nix/store/xa8z7fwszjjm4kiwrxfc8xv9c1pzzm7a-nix-2.3.1";
-  aarch64-linux = "/nix/store/8cac1ivcnchlpzmdjby2f71l1fwpnymr-nix-2.3.1";
-  x86_64-darwin = "/nix/store/6639l9815ggdnb4aka22qcjy7p8w4hb9-nix-2.3.1";
+  x86_64-linux = "/nix/store/0q5qnh10m2sfrriszc1ysmggw659q6qm-nix-2.3.2";
+  i686-linux = "/nix/store/i7ad7r5d8a5b3l22hg4a1im2qq05y6vd-nix-2.3.2";
+  aarch64-linux = "/nix/store/bv06pavfw0dbqzr8w3l7s71nx27gnxa0-nix-2.3.2";
+  x86_64-darwin = "/nix/store/x6mnl1nij7y4v5ihlplr4k937ayr403r-nix-2.3.2";
 }
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index ada7a25604c40..60a5b503def9c 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -178,6 +178,8 @@ let
     then "/etc/nginx/nginx.conf"
     else configFile;
 
+  execCommand = "${cfg.package}/bin/nginx -c '${configPath}' -p '${cfg.stateDir}'";
+
   vhosts = concatStringsSep "\n" (mapAttrsToList (vhostName: vhost:
     let
         onlySSL = vhost.onlySSL || vhost.enableSSL;
@@ -682,10 +684,10 @@ in
       stopIfChanged = false;
       preStart = ''
         ${cfg.preStart}
-        ${cfg.package}/bin/nginx -c '${configPath}' -p '${cfg.stateDir}' -t
+        ${execCommand} -t
       '';
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/nginx -c '${configPath}' -p '${cfg.stateDir}'";
+        ExecStart = execCommand;
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         Restart = "always";
         RestartSec = "10s";
@@ -706,11 +708,18 @@ in
     };
 
     systemd.services.nginx-config-reload = mkIf cfg.enableReload {
-      wantedBy = [ "nginx.service" ];
+      wants = [ "nginx.service" ];
+      wantedBy = [ "multi-user.target" ];
       restartTriggers = [ configFile ];
+      # commented, because can cause extra delays during activate for this config:
+      #      services.nginx.virtualHosts."_".locations."/".proxyPass = "http://blabla:3000";
+      # stopIfChanged = false;
+      serviceConfig.Type = "oneshot";
+      serviceConfig.TimeoutSec = 60;
       script = ''
         if ${pkgs.systemd}/bin/systemctl -q is-active nginx.service ; then
-          ${pkgs.systemd}/bin/systemctl reload nginx.service
+          ${execCommand} -t && \
+            ${pkgs.systemd}/bin/systemctl reload nginx.service
         fi
       '';
       serviceConfig.RemainAfterExit = true;
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 1f6ee7cfffda7..3a9b70c067350 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -331,9 +331,9 @@ in
       };
 
       xkbOptions = mkOption {
-        type = types.str;
+        type = types.commas;
         default = "terminate:ctrl_alt_bksp";
-        example = "grp:caps_toggle, grp_led:scroll";
+        example = "grp:caps_toggle,grp_led:scroll";
         description = ''
           X keyboard options; layout switching goes here.
         '';
diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix
index 55d2c9309084a..7358800a67633 100644
--- a/nixos/tests/nginx.nix
+++ b/nixos/tests/nginx.nix
@@ -7,7 +7,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "nginx";
   meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ mbbx6spp ];
+    maintainers = [ mbbx6spp danbst ];
   };
 
   nodes = {
@@ -59,6 +59,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         {
           services.nginx.package = pkgs.nginxUnstable;
         }
+
+        {
+          services.nginx.package = pkgs.nginxUnstable;
+          services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
+        }
       ];
     };
 
@@ -68,6 +73,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
     justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
     reloadRestartSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-3";
+    reloadWithErrorsSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-4";
   in ''
     url = "http://localhost/index.html"
 
@@ -110,5 +116,17 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         )
         webserver.wait_for_unit("nginx")
         webserver.succeed("journalctl -u nginx | grep -q -i stopped")
+
+    with subtest("nixos-rebuild --switch should fail when there are configuration errors"):
+        webserver.fail(
+            "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2"
+        )
+        webserver.succeed("[[ $(systemctl is-failed nginx-config-reload) == failed ]]")
+        webserver.succeed("[[ $(systemctl is-failed nginx) == active ]]")
+        # just to make sure operation is idempotent. During development I had a situation
+        # when first time it shows error, but stops showing it on subsequent rebuilds
+        webserver.fail(
+            "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2"
+        )
   '';
 })
diff --git a/pkgs/applications/blockchains/pivx.nix b/pkgs/applications/blockchains/pivx.nix
index 22fdc7f51c5c4..cda342290a2ca 100644
--- a/pkgs/applications/blockchains/pivx.nix
+++ b/pkgs/applications/blockchains/pivx.nix
@@ -10,13 +10,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "pivx-${version}";
-  version = "3.4.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "PIVX-Project";
     repo= "PIVX";
     rev = "v${version}";
-    sha256 = "1fqccdqhbwyvix0ihhbgg2w048i6bhfmazr36h2cn4j65n1fgmi2";
+    sha256 = "0m85nc7c8cppdysqz4m12rgmzacrcbwnvf7wy90wzfvfr3xkbapd";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix
index 71043cb78fe13..c45025dd80cc1 100644
--- a/pkgs/applications/editors/texmaker/default.nix
+++ b/pkgs/applications/editors/texmaker/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "texmaker";
-  version = "5.0.3";
+  version = "5.0.4";
 
   src = fetchurl {
     url = "http://www.xm1math.net/texmaker/${pname}-${version}.tar.bz2";
-    sha256 = "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30";
+    sha256 = "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx";
   };
 
   buildInputs = [ qtbase qtscript poppler zlib ];
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index 8dd9ef1cb2545..f31506ce73398 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13i9hz7gg82s17ky715a6czpisn4fpx2xjbmydq7j81b44x7m3vc";
+    sha256 = "0a7d36hzcvj68apzc726r2vqsjyrkcynxif5laarxapm6p67g3z4";
   };
 
-  modSha256 = "1nagb3k2ghfw27g4vcmn7v8s5flg387jpf1l18gw6c44a1xjcivs";
+  modSha256 = "0ak34wr5cbcvblndslsxdd24vfj3h02xqjqnj5amkll5iqn5mzi1";
 
   subPackages = [ "cmd/pdfcpu" ];
 
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 40e69f8c9bcb4..0bfa850cb26e0 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -146,6 +146,7 @@ let
       krdc = callPackage ./krdc.nix {};
       krfb = callPackage ./krfb.nix {};
       kruler = callPackage ./kruler.nix {};
+      ksudoku = callPackage ./ksudoku.nix {};
       ksystemlog = callPackage ./ksystemlog.nix {};
       ktnef = callPackage ./ktnef.nix {};
       ktouch = callPackage ./ktouch.nix {};
diff --git a/pkgs/applications/kde/ksudoku.nix b/pkgs/applications/kde/ksudoku.nix
new file mode 100644
index 0000000000000..3641c1b333237
--- /dev/null
+++ b/pkgs/applications/kde/ksudoku.nix
@@ -0,0 +1,18 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, libGLU
+, kdoctools
+, kdeclarative
+, libkdegames
+}:
+
+mkDerivation {
+  name = "ksudoku";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ libGLU kdeclarative libkdegames ];
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ genesis ];
+  };
+}
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index a5024cb7f36b8..3c6c4a87f98f2 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "vym";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/vym/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1rnrfqlff7wv6yni8bvff8n90pmn82k82zd4sn1jsx9r1n3qsfkh";
+    sha256 = "0lyf0m4y5kn5s47z4sg10215f3jsn3k1bl389jfbh2f5v4srav4g";
   };
 
   # Hardcoded paths scattered about all have form share/vym
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index d735c06a53196..98d37fae9114d 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -1,34 +1,12 @@
-{ lib, python3 }:
+{ lib, python3Packages }:
 
-# Flexget have been a trouble maker in the past,
-# if you see flexget breaking when updating packages, don't worry.
-# The current state is that we have no active maintainers for this package.
-# -- Mic92
-
-let
-  python' = python3.override { inherit packageOverrides; };
-
-  packageOverrides = self: super: {
-    guessit = super.guessit.overridePythonAttrs (old: rec {
-      version = "3.0.3";
-      src = old.src.override {
-        inherit version;
-        sha256 = "1q06b3k31bfb8cxjimpf1rkcrwnc596a9cppjw15minvdangl32r";
-      };
-    });
-  };
-
-in
-
-with python'.pkgs;
-
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "2.21.25";
+  version = "3.0.31";
 
-  src = fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0l77fgg0w5dca1bwk4fcc1yz1g7njb0x07yx4bazyg821gl15rc9";
+    sha256 = "b9edd905556c77b40046b5d7a27151b76a1c9a8c43a4e4153279ad42a784844e";
   };
 
   postPatch = ''
@@ -43,29 +21,42 @@ buildPythonApplication rec {
   # ~400 failures
   doCheck = false;
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3Packages; [
     # See https://github.com/Flexget/Flexget/blob/master/requirements.in
-    feedparser sqlalchemy pyyaml
-    beautifulsoup4 html5lib
-    PyRSS2Gen pynzb rpyc jinja2
-    requests dateutil jsonschema
-    pathpy guessit rebulk APScheduler
-    terminaltables colorclass
-    cherrypy flask flask-restful
-    flask-restplus flask-compress
-    flask_login flask-cors
-    pyparsing zxcvbn future
+    APScheduler
+    beautifulsoup4
+    cherrypy
+    colorclass
+    feedparser
+    flask-compress
+    flask-cors
+    flask_login
+    flask-restful
+    flask-restplus
+    flask
+    guessit
+    html5lib
+    jinja2
+    jsonschema
+    loguru
     progressbar
-    # Optional requirements
-    deluge-client
-    # Plugins
-    transmissionrpc
-  ] ++ lib.optional (pythonOlder "3.4") pathlib;
+    pynzb
+    pyparsing
+    PyRSS2Gen
+    dateutil
+    pyyaml
+    rebulk
+    requests
+    rpyc
+    sqlalchemy
+    terminaltables
+    zxcvbn
+  ];
 
   meta = with lib; {
-    homepage    = https://flexget.com/;
-    description = "Multipurpose automation tool for content like torrents";
+    homepage    = "https://flexget.com/";
+    description = "Multipurpose automation tool for all of your media";
     license     = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ marsam ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/psi/default.nix b/pkgs/applications/networking/instant-messengers/psi/default.nix
index e895b3cc00d1a..19438c4d037b6 100644
--- a/pkgs/applications/networking/instant-messengers/psi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -1,27 +1,26 @@
-{ stdenv, fetchurl, enchant, qt4, zlib, sox, libX11, xorgproto, libSM
-, libICE, qca2, pkgconfig, which, glib
-, libXScrnSaver
+{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook
+, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
+, libidn, qca2-qt5, libXScrnSaver, hunspell
 }:
-
 stdenv.mkDerivation rec {
-  name = "psi-0.15";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/psi/${name}.tar.bz2";
-    sha256 = "593b5ddd7934af69c245afb0e7290047fd7dedcfd8765baca5a3a024c569c7e6";
+  pname = "psi";
+  version = "1.4";
+  src = fetchFromGitHub {
+    owner = "psi-im";
+    repo = pname;
+    rev = version;
+    sha256 = "09c7cg96vgxzgbpypgcw7yv73gvzppbi1lm4svbpfn2cfxy059d4";
+    fetchSubmodules = true;
   };
-
-  buildInputs =
-    [ enchant qt4 zlib sox libX11 xorgproto libSM libICE
-      qca2 pkgconfig which glib libXScrnSaver
-    ];
-
-  NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto";
-
-  NIX_LDFLAGS="-lqca";
-
+  patches = [
+    ./fix-cmake-hunspell-1.7.patch
+  ];
+  nativeBuildInputs = [ cmake wrapQtAppsHook ];
+  buildInputs = [
+    qtbase qtmultimedia qtx11extras qttools qtwebengine
+    libidn qca2-qt5 libXScrnSaver hunspell
+  ];
   enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Psi, an XMPP (Jabber) client";
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch b/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch
new file mode 100644
index 0000000000000..7d5711a6f2bcc
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch
@@ -0,0 +1,12 @@
+diff --git a/cmake/modules/FindHunspell.cmake b/cmake/modules/FindHunspell.cmake
+index a2d180b3..3a5aef3a 100644
+--- a/cmake/modules/FindHunspell.cmake
++++ b/cmake/modules/FindHunspell.cmake
+@@ -64,6 +64,7 @@ set(HUNSPELL_NAMES
+ 	hunspell-1.4
+ 	hunspell-1.5
+ 	hunspell-1.6
++	hunspell-1.7
+ 	libhunspell${d}
+ )
+ find_library(
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index f11aaa2737016..72003f417210b 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.64";
+  version = "2.66";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "0xz2b2vasfc39wqv9lak2wdli7pr5b1vcm1lgpqx6kz7j5ba6jqp";
+    sha256 = "1qwmxfkgc5q7v6ickxr29khil6mh9crv5mwdm72bp6k64w0akbs7";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index a585e7f948bbd..7acf821dfcf4e 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,7 +2,7 @@
 , libsecret, libGL, libpulseaudio, glib, wrapQtAppsHook, mkDerivation }:
 
 let
-  version = "1.2.2-1";
+  version = "1.2.3-1";
 
   description = ''
     An application that runs on your computer in the background and seamlessly encrypts
@@ -16,7 +16,7 @@ in mkDerivation {
 
   src = fetchurl {
     url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
-    sha256 = "16hfa07wdqcns79395wjdglg2cjyblqgz1hx8rl15qm7n5f24ckl";
+    sha256 = "032ggk9fvd19fbsqkzwzwh0hpyg8gpkrin71di7zsx6ias5innw1";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index b646d0fc93f7f..30569512129b5 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "19.11.14";
+  version = "19.12.15";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Can grab official version like so:
     # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-19.1.8.tar.xz.sha256
-    sha256 = "8faa67720443fc9a116feae3e7d641922a08814b9af4d973d348ff8a0ee0e35d";
+    sha256 = "11i3cn1j365nwinaksfpi1hn7j6bqgjzhawkl6c294lzahngba9w";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/radio/soapysdr/default.nix b/pkgs/applications/radio/soapysdr/default.nix
index 5e4a78cfbd22f..c4879f01e6065 100644
--- a/pkgs/applications/radio/soapysdr/default.nix
+++ b/pkgs/applications/radio/soapysdr/default.nix
@@ -1,7 +1,8 @@
 { stdenv, lib, lndir, makeWrapper
 , fetchFromGitHub, cmake
 , libusb, pkgconfig
-, python, swig2, numpy, ncurses
+, usePython ? false
+, python, ncurses, swig2
 , extraPackages ? []
 } :
 
@@ -24,12 +25,14 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
-  buildInputs = [ libusb ncurses numpy python swig2 ];
+  buildInputs = [ libusb ncurses ]
+    ++ lib.optionals usePython [ python swig2 ];
+
+  propagatedBuildInputs = lib.optional usePython python.pkgs.numpy;
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
-    "-DUSE_PYTHON_CONFIG=ON"
-  ];
+  ] ++ lib.optional usePython "-DUSE_PYTHON_CONFIG=ON";
 
   postFixup = lib.optionalString (lib.length extraPackages != 0) ''
     # Join all plugins via symlinking
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index 8b7da71c80ffc..c3395a851487b 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "19.23.0";
+  version = "19.27.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "1m28jki2qan6gdzs544y1v72ybp4vyj66ri5sy44jqi94xg1mb5f";
+    sha256 = "10pzprr43pklf4yl14m9q921ynalsil1dsfbl6lx8r1jmyjgl3w7";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
index edc5f9d7bfb0a..fa3970c4b1581 100644
--- a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -2,15 +2,15 @@
 
 buildGoPackage rec {
   pname = "git-bug";
-  version = "0.5.0";
-  rev = "8d7a2c076a38c89085fd3191a2998efb659650c2";
+  version = "0.6.0";
+  rev = "fc568209f073b9d775a09e0dbb8289cf9e5749bf";
   goPackagePath = "github.com/MichaelMure/git-bug";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "MichaelMure";
     repo = "git-bug";
-    sha256 = "1l86m0y360lmpmpw2id0k7zc2nyq1irr26k2ik06lxhzvpbyajz6";
+    sha256 = "1s18lzip52qpf52ad6m20j306mr16vnwhz9f7rirsa6b7srmcgli";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 82462f4e2c28c..0c103f997b2cf 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -37,13 +37,13 @@ let
   inherit (stdenv.lib) optional optionals;
 in mkDerivation rec {
   pname = "obs-studio";
-  version = "24.0.4";
+  version = "24.0.6";
 
   src = fetchFromGitHub {
     owner = "jp9000";
     repo = "obs-studio";
     rev = version;
-    sha256 = "0m15ch2ix9qrdf1a9mj7wcpl72z3h13zx60c9q72sb1435id2g1q";
+    sha256 = "07grnab5v4fd4lw25adhnlifs5c5phc3rsz7h80m663nbszy7abh";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 4636ce48b1a5b..33ce5c18028fa 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -3,34 +3,20 @@
 , qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
 }:
 
-assert stdenv.lib.versionAtLeast libmlt.version "6.8.0";
-assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
-
-let
-  # https://github.com/mltframework/shotcut/issues/771
-  fixVaapiRendering1 = fetchpatch {
-    url = "https://github.com/peti/shotcut/commit/038f6839298fc1e9e80ddf84fe168a78118bc625.patch";
-    sha256 = "153z1g6criszd6gdkw4f5zk0gmh0jar6l2g8fzwjhhcvkdz30vbp";
-  };
-  fixVaapiRendering2 = fetchpatch {
-    url = "https://github.com/peti/shotcut/commit/653c485f92d2847fdac517e3f797c9254826ffab.patch";
-    sha256 = "1qd0zgyahda72xh3avlg7lg0jq94wq5847154qlrgzj8b4n7vizw";
-  };
-in
+assert stdenv.lib.versionAtLeast libmlt.version "6.18.0";
+assert stdenv.lib.versionAtLeast mlt.version "6.18.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "19.09.14";
+  version = "19.12.31";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn";
+    sha256 = "1vwgah8pp2kbd0iaz952d3bwxphk06yxqc0pi4hk1mklkh87qzm9";
   };
 
-  patches = [ fixVaapiRendering1 fixVaapiRendering2 ];
-
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
@@ -74,7 +60,7 @@ mkDerivation rec {
     '';
     homepage = https://shotcut.org;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ goibhniu woffs ];
+    maintainers = with maintainers; [ goibhniu woffs peti ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/catfish/default.nix b/pkgs/desktops/xfce/applications/catfish/default.nix
index 3c0fbafc78424..736e89a4f4444 100644
--- a/pkgs/desktops/xfce/applications/catfish/default.nix
+++ b/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -5,11 +5,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "catfish";
-  version = "1.4.11";
+  version = "1.4.12";
 
   src = fetchurl {
     url = "https://archive.xfce.org/src/apps/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "11fdzz3l5mydscs4a398siphxwr6xf3cfyimr0hgpkg3169syyv1";
+    sha256 = "0jhk4x97vip6h7rsw8hbwzfjmz55w6dpcj9v96m54xr15gh31yy3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index ea742c3e2594f..ccd570427caee 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -96472,7 +96472,7 @@ self: {
 
   "git-annex" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, aws, base, blaze-builder
-     , bloomfilter, bup, byteable, bytestring, Cabal, case-insensitive
+     , bloomfilter, byteable, bytestring, Cabal, case-insensitive
      , clientsession, concurrent-output, conduit, connection, containers
      , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
      , directory, disk-free-space, dlist, edit-distance, exceptions
@@ -96524,7 +96524,7 @@ self: {
          wai-extra warp warp-tls yesod yesod-core yesod-form yesod-static
        ];
        executableSystemDepends = [
-         bup curl git gnupg lsof openssh perl rsync wget which
+         curl git gnupg lsof openssh perl rsync wget which
        ];
        preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
        postBuild = ''
@@ -96537,7 +96537,7 @@ self: {
        description = "manage files with git, without checking their contents into git";
        license = stdenv.lib.licenses.agpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
-     }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
+     }) {inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
          inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
          inherit (pkgs) which;};
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index afdc6c0f5e894..214da206f5625 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -239,11 +239,11 @@ assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
 
 stdenv.mkDerivation rec {
   pname = "ffmpeg-full";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchurl {
     url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz";
-    sha256 = "1m5nkc61ihgcf0b2wabm0zyqa8sj3c0w8fi6kr879lb0kdzciiyf";
+    sha256 = "176jn1lcdf0gk7sa5l2mv0faqp5dsqdhx1gqcrgymqhfmdal4xfb";
   };
 
   patches = [ ./prefer-libdav1d-over-libaom.patch ];
diff --git a/pkgs/development/libraries/ffmpeg/2.8.nix b/pkgs/development/libraries/ffmpeg/2.8.nix
index 98ada9a3f09f0..3b3fc900edea8 100644
--- a/pkgs/development/libraries/ffmpeg/2.8.nix
+++ b/pkgs/development/libraries/ffmpeg/2.8.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (rec {
-  version = "${branch}.14";
+  version = "${branch}.15";
   branch = "2.8";
-  sha256 = "1g6x3lyjl1zlfksizj1ys61kj97yg0xf4dlr6sr5acpbja3a26yn";
+  sha256 = "08gf493a1ici1rn6gda6bxkcsk3fqbs6pdr0phcifjkd3xn7yr1m";
 } // args)
diff --git a/pkgs/development/libraries/ffmpeg/4.nix b/pkgs/development/libraries/ffmpeg/4.nix
index 387069d16189c..31cb0477c21a7 100644
--- a/pkgs/development/libraries/ffmpeg/4.nix
+++ b/pkgs/development/libraries/ffmpeg/4.nix
@@ -5,8 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "4.2.1";
+  version = "4.2.2";
   branch = "4.2";
-  sha256 = "090naa6rj46pzkgh03bf51hbqdz356qqckr2pw6pykc6ysiryak8";
+  sha256 = "0p0f024rxrpk8pgmrprhfywq10rvdhrs0422wwcwlxkgqa3x285n";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/pkgs/development/libraries/libmad/default.nix b/pkgs/development/libraries/libmad/default.nix
index 9d935daddadb1..24de4aa2e4a00 100644
--- a/pkgs/development/libraries/libmad/default.nix
+++ b/pkgs/development/libraries/libmad/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ++ stdenv.lib.optionals stdenv.cc.isClang [
     (fetchpatch {
       url = "https://github.com/KaOSx/main/raw/1270b8080f37fb6cca562829a521991800b0a497/libmad/optimize.diff";
-      sha256 = "1wp60ywzk6nmxc3kq3v6i8b7s4cibvf5cjir859zv10y5aa1d0pk";
+      sha256 = "0hcxzz9ql1fizyqbsgdchdwi7bvchfr72172j43hpyj53p0yabc6";
     })
   ];
 
diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index 5099991c117f3..b56e33e402410 100644
--- a/pkgs/development/libraries/mlt/default.nix
+++ b/pkgs/development/libraries/mlt/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlt";
-  version = "6.16.0";
+  version = "6.18.0";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "mlt";
     rev = "v${version}";
-    sha256 = "1362fv63p34kza9v4b71b6wakgvsa2vdx9y0g28x3yh4cp4k97kx";
+    sha256 = "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx";
   };
 
   buildInputs = [
@@ -24,8 +24,7 @@ stdenv.mkDerivation rec {
   # Mostly taken from:
   # http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/installing-source/installing-mlt-rendering-engine
   configureFlags = [
-    "--avformat-swscale" "--enable-gpl" "--enable-gpl" "--enable-gpl3"
-    "--enable-opengl"
+    "--avformat-swscale" "--enable-gpl" "--enable-gpl3" "--enable-opengl"
   ];
 
   enableParallelBuilding = true;
@@ -43,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Open source multimedia framework, designed for television broadcasting";
     homepage = https://www.mltframework.org;
     license = licenses.gpl3;
-    maintainers = [ maintainers.tohl ];
+    maintainers = with maintainers; [ tohl peti ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/mlt/qt-5.nix b/pkgs/development/libraries/mlt/qt-5.nix
index 0e3750df415af..4d7ecd92e6185 100644
--- a/pkgs/development/libraries/mlt/qt-5.nix
+++ b/pkgs/development/libraries/mlt/qt-5.nix
@@ -7,13 +7,13 @@ let inherit (stdenv.lib) getDev; in
 
 stdenv.mkDerivation rec {
   pname = "mlt";
-  version = "6.16.0";
+  version = "6.18.0";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "mlt";
     rev = "v${version}";
-    sha256 = "1362fv63p34kza9v4b71b6wakgvsa2vdx9y0g28x3yh4cp4k97kx";
+    sha256 = "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/ntl/default.nix b/pkgs/development/libraries/ntl/default.nix
index 699931b686b42..a4d1e275a0a81 100644
--- a/pkgs/development/libraries/ntl/default.nix
+++ b/pkgs/development/libraries/ntl/default.nix
@@ -14,11 +14,11 @@ assert withGf2x -> gf2x != null;
 
 stdenv.mkDerivation rec {
   pname = "ntl";
-  version = "11.4.2";
+  version = "11.4.3";
 
   src = fetchurl {
     url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
-    sha256 = "11r3f37psdbjw926kf6bn5bp69aj88f5cchvv1xh2bhrcjdp4r1b";
+    sha256 = "1lisp3064rch3jaa2wrhy1s9kll7i3ka3d0y6lj6l3l4ckfcrhdp";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/science/math/clmagma/default.nix b/pkgs/development/libraries/science/math/clmagma/default.nix
new file mode 100644
index 0000000000000..b5c59a83277dd
--- /dev/null
+++ b/pkgs/development/libraries/science/math/clmagma/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, gfortran, opencl-headers, clblas, ocl-icd, mkl, intel-ocl }:
+
+with stdenv.lib;
+
+let 
+  version = "1.3.0";
+  incfile = builtins.toFile "make.inc.custom" ''
+    CC        = g++
+    FORT      = gfortran
+    
+    ARCH      = ar
+    ARCHFLAGS = cr
+    RANLIB    = ranlib
+
+    OPTS      = -fPIC -O3 -DADD_ -Wall
+    FOPTS     = -fPIC -O3 -DADD_ -Wall -x f95-cpp-input
+    F77OPTS   = -fPIC -O3 -DADD_ -Wall
+    LDOPTS    = -fPIC
+   
+    -include make.check-mkl
+    -include make.check-clblas
+    
+    # Gnu mkl is not available I guess?
+    #LIB       = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread -lm -fopenmp
+    LIB        = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm -fopenmp
+    LIB       += -lclBLAS -lOpenCL
+    
+    LIBDIR    = -L$(MKLROOT)/lib/intel64 \
+                -L$(MKLROOT)/../compiler/lib/intel64 \
+                -L$(clBLAS)/lib64
+    
+    INC       = -I$(clBLAS)/include 
+               #-I$(AMDAPP)/include
+  '';  
+in stdenv.mkDerivation {
+  name = "clmagma-${version}";
+  src = fetchurl {
+    url = "http://icl.cs.utk.edu/projectsfiles/magma/cl/clmagma-${version}.tar.gz";
+    sha256 = "1n27ny0xhwirw2ydn46pfcwy53gzia9zbam4irx44fd4d7f9ydv7";
+    name = "clmagma-${version}.tar.gz";
+  };
+
+  buildInputs = [ 
+    gfortran 
+    clblas 
+    opencl-headers 
+    ocl-icd  
+    mkl
+    intel-ocl
+  ];
+
+  enableParallelBuilding=true;
+
+  MKLROOT   = "${mkl}";
+  clBLAS    = "${clblas}";
+
+  # Otherwise build looks for it in /run/opengl-driver/etc/OpenCL/vendors, 
+  # which is not available.
+  OPENCL_VENDOR_PATH="${intel-ocl}/etc/OpenCL/vendors";
+
+  preBuild = ''  
+    # By default it tries to use GPU, and thus fails for CPUs
+    sed -i "s/CL_DEVICE_TYPE_GPU/CL_DEVICE_TYPE_DEFAULT/" interface_opencl/clmagma_runtime.cpp   
+    sed -i "s%/usr/local/clmagma%/$out%" Makefile.internal
+    cp ${incfile} make.inc
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Matrix Algebra on GPU and Multicore Architectures, OpenCL port";
+    license = licenses.bsd3;
+    homepage = http://icl.cs.utk.edu/magma/index.html;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ volhovm ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 382d2c303e3c9..604413c96d8a2 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchurl, rpmextract, undmg, darwin }:
+{ stdenvNoCC, fetchurl, rpmextract, undmg, darwin, enableStatic ? false }:
 /*
   For details on using mkl as a blas provider for python packages such as numpy,
   numexpr, scipy, etc., see the Python section of the NixPkgs manual.
@@ -46,12 +46,28 @@ in stdenvNoCC.mkDerivation {
       tar xzvf $f
     done
   '' else ''
-    rpmextract rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
+    # Common stuff
     rpmextract rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
+    rpmextract rpm/intel-mkl-common-f-${rpm-ver}.noarch.rpm
+
+    # Dynamic libraries
+    rpmextract rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm
     rpmextract rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-gnu-f-rt-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-gnu-rt-${rpm-ver}.x86_64.rpm
+
+    # Intel OpenMP runtime
     rpmextract rpm/intel-openmp-${openmp-ver}.x86_64.rpm
-  '';
+  '' + (if enableStatic then ''
+    # Static libraries
+    rpmextract rpm/intel-mkl-cluster-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-gnu-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-gnu-f-${rpm-ver}.x86_64.rpm
+  '' else ''
+    # Take care of installing dynamic-only PkgConfig files during the installPhase
+  ''
+  );
 
   installPhase = ''
     for f in $(find . -name 'mkl*.pc') ; do
@@ -80,16 +96,21 @@ in stdenvNoCC.mkDerivation {
       cp -r compilers_and_libraries_${version}/mac/mkl/bin/pkgconfig/* $out/lib/pkgconfig
   '' else ''
       mkdir -p $out/lib
+      cp license.txt $out/lib/
 
       cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/
 
+      mkdir -p $out/lib/pkgconfig
+  '') +
+    (if enableStatic then ''
       cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/* $out/lib/
       cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/
-      cp license.txt $out/lib/
-
-      mkdir -p $out/lib/pkgconfig
       cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/* $out/lib/pkgconfig
-  '');
+    '' else ''
+      cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/*.so* $out/lib/
+      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/*.so* $out/lib/
+      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/*dynamic*.pc $out/lib/pkgconfig
+    '');
 
   # fixDarwinDylibName fails for libmkl_cdft_core.dylib because the
   # larger updated load commands do not fit. Use install_name_tool
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index 9365ee006d144..d187187246b2a 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -4,13 +4,13 @@ assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "sqlcipher";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    sha256 = "1wpymql2ps4k2qkfa5mdifihb1n815xlz7imcd8ri1gn2qla8q8i";
+    sha256 = "0s1aiwl61nl3b4ym4v050wlbbx0iypknqsj3ar12dw5hljlzx6f8";
   };
 
   buildInputs = [ readline ncurses openssl tcl ];
diff --git a/pkgs/development/libraries/unicorn-emu/default.nix b/pkgs/development/libraries/unicorn-emu/default.nix
index 96f318ff0ef50..7917b69540648 100644
--- a/pkgs/development/libraries/unicorn-emu/default.nix
+++ b/pkgs/development/libraries/unicorn-emu/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   configurePhase = '' patchShebangs make.sh '';
-  buildPhase = '' ./make.sh '';
+  buildPhase = '' ./make.sh '' + stdenv.lib.optionalString stdenv.isDarwin "macos-universal-no";
   installPhase = '' env PREFIX=$out ./make.sh install '';
 
   nativeBuildInputs = [ pkgconfig python ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Lightweight multi-platform CPU emulator library";
     homepage    = "http://www.unicorn-engine.org";
     license     = stdenv.lib.licenses.bsd3;
-    platforms   = stdenv.lib.platforms.linux;
+    platforms   = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
 }
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 1bad9c5eb2a67..438b40d914047 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "16s7jx2brgii6jbpmr30ggkc7rrf388jl26g357sm7ggwliiwask";
+    sha256 = "1gd613k4qh9yhl0d8yh0flqn2cvm9qb5pp2p0khk31b1fh1p4vin";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index bfddc8d1c662d..05a1861280403 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "csv";
-	version = "2.2";
+	version = "2.4";
 
 	src = fetchurl {
 		url = "https://github.com/Chris00/ocaml-${pname}/releases/download/${version}/csv-${version}.tbz";
-		sha256 = "1llwjdi14vvfy4966crapibq0djii71x47b0yxhjcl5jw4xnsaha";
+		sha256 = "13m9n8mdss6jfbiw7d5bybxn4n85vmg4zw7dc968qrgjfy0w9zhk";
 	};
 
 	meta = {
diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix
new file mode 100644
index 0000000000000..e4b894eca64b2
--- /dev/null
+++ b/pkgs/development/python-modules/azure-identity/default.nix
@@ -0,0 +1,53 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy38
+, lib
+
+# pythonPackages
+, azure-common
+, azure-core
+, azure-nspkg
+, cryptography
+, mock
+, msal
+, msal-extensions
+, msrest
+, msrestazure
+}:
+
+buildPythonPackage rec {
+  pname = "azure-identity";
+  version = "1.1.0";
+  disabled = isPy38;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1xn4nwi4vly8n3mmphv0wbdg9k55gsgmk3fdwma8rm3m3c7593hc";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    azure-nspkg
+    cryptography
+    mock
+    msal
+    msal-extensions
+    msrest
+    msrestazure
+  ];
+
+  # Requires checkout from mono-repo and a mock account:
+  #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/tests.yml
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Identity Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
new file mode 100644
index 0000000000000..fd3f3c0284f97
--- /dev/null
+++ b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, azure-nspkg
+}:
+
+buildPythonPackage rec {
+  pname = "azure-keyvault-nspkg";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0hdnd6124hx7s16z1pssmq5m5mqqqz8s38ixl9aayv4wmf5bhs5c";
+  };
+
+  propagatedBuildInputs = [
+    azure-nspkg
+  ];
+
+  # Just a namespace package, no tests exist:
+  #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/keyvault/tests.yml
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Key Vault Namespace Package [Internal]";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
new file mode 100644
index 0000000000000..64ef8ec53fa5f
--- /dev/null
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, isPy3k
+
+# pythonPackages
+, GitPython
+, pbr
+, pyyaml
+, six
+, stevedore
+}:
+
+buildPythonPackage rec {
+  pname = "bandit";
+  version = "1.6.2";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1";
+  };
+
+  propagatedBuildInputs = [
+    GitPython
+    pbr
+    pyyaml
+    six
+    stevedore
+  ];
+
+  # Framework is Tox, tox performs 'pip install' inside the virtual-env
+  #   and this requires Network Connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Security oriented static analyser for python code";
+    homepage = "https://bandit.readthedocs.io/en/latest/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index dabd5cee60e97..30f0d9132bb17 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -3,7 +3,6 @@
 buildPythonPackage rec {
   pname = "cachetools";
   version = "4.0.0";
-  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/django-ranged-response/default.nix b/pkgs/development/python-modules/django-ranged-response/default.nix
new file mode 100644
index 0000000000000..29b2baf89cdce
--- /dev/null
+++ b/pkgs/development/python-modules/django-ranged-response/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, fetchPypi, buildPythonPackage, django }:
+
+buildPythonPackage rec {
+  pname = "django-ranged-response";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11gr3jpmb5rvg3scv026kjwwkmnxwivgq5ypxadnnc9p58szy7zp";
+  };
+
+  # tests not included in PyPi package, github source is not up to date with 0.2.0
+  doCheck = false;
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "A modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
+    homepage = "https://github.com/wearespindle/django-ranged-fileresponse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrmebelman ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-simple-captcha/default.nix b/pkgs/development/python-modules/django-simple-captcha/default.nix
new file mode 100644
index 0000000000000..67977caf9ec3e
--- /dev/null
+++ b/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+, six
+, testfixtures
+, django
+, django-ranged-response
+, pillow
+, withTTS ? true
+, flite
+}:
+
+buildPythonPackage rec {
+  pname = "django-simple-captcha";
+  version = "0.5.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256:1g92sdgcb81r3il34pg0z210cz6wm14k00b558nshai8br1g09gw";
+    extension = "zip";
+  };
+
+  checkInputs = [ testfixtures ];
+  checkPhase = ''
+    cd testproject
+    ${python.interpreter} manage.py test captcha
+  '';
+
+  propagatedBuildInputs = [ django django-ranged-response six pillow ]
+  ++ lib.optional withTTS flite;
+
+  meta = with lib; {
+    description = "An extremely simple, yet highly customizable Django application to add captcha images to any Django form";
+    homepage = "https://github.com/mbi/django-simple-captcha";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrmebelman schmittlauch ];
+  };
+}
diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix
index f780c76fd6d5b..d3f796ab9501c 100644
--- a/pkgs/development/python-modules/fints/default.nix
+++ b/pkgs/development/python-modules/fints/default.nix
@@ -7,7 +7,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.2.0";
+  version = "3.0.0";
   pname = "fints";
   disabled = isPy27;
 
@@ -15,14 +15,9 @@ buildPythonPackage rec {
     owner = "raphaelm";
     repo = "python-fints";
     rev = "v${version}";
-    sha256 = "1gx173dzdprf3jsc7dss0xax8s6l2hr02qg9m5c4rksb3dl5fl8w";
+    sha256 = "00fqgnmv7z6d792ga4cyzn9lrfjf79jplkssm2jbyb0akfggfj7h";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'sepaxml==2.0.*' 'sepaxml~=2.0'
-  '';
-
   propagatedBuildInputs = [ requests mt-940 sepaxml bleach ];
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/flask-swagger-ui/default.nix b/pkgs/development/python-modules/flask-swagger-ui/default.nix
new file mode 100644
index 0000000000000..a281864117bce
--- /dev/null
+++ b/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, flask }:
+
+buildPythonPackage rec {
+  pname = "flask-swagger-ui";
+  version = "3.20.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3282c770764c8053360f33b2fc120e1d169ecca2138537d0e6e1135b1f9d4ff2";
+  };
+
+  doCheck = false;  # there are no tests
+
+  propagatedBuildInputs = [
+    flask
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sveint/flask-swagger-ui";
+    license = licenses.mit;
+    description = "Swagger UI blueprint for Flask";
+    maintainers = with maintainers; [ vanschelven ];
+  };
+}
diff --git a/pkgs/development/python-modules/graph-tool/2.x.x.nix b/pkgs/development/python-modules/graph-tool/2.x.x.nix
index 4b0e665de0984..e069c8f8c7b6b 100644
--- a/pkgs/development/python-modules/graph-tool/2.x.x.nix
+++ b/pkgs/development/python-modules/graph-tool/2.x.x.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, python, cairomm, sparsehash, pycairo, autoreconfHook
-, pkgconfig, boost, expat, scipy, cgal, gmp, mpfr
+, pkg-config, boost, expat, scipy, cgal, gmp, mpfr
 , gobject-introspection, pygobject3, gtk3, matplotlib, ncurses
 , buildPythonPackage
 , fetchpatch
@@ -10,7 +10,7 @@
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.27";
+  version = "2.29";
 
   meta = with stdenv.lib; {
     description = "Python module for manipulation and statistical analysis of graphs";
@@ -21,25 +21,9 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    sha256 = "04s31qwlfcl7bwsggnic8gqcqmx2wsrmfw77nf7vzgnz42bwch27";
+    sha256 = "0ykzcnqc5bhqb4xlf9ahpp807vj5868xdrmcj6fggqnnpqv4633c";
   };
 
-  patches = [
-    # fix build with cgal 4.13 (https://git.skewed.de/count0/graph-tool/issues/509)
-    (fetchpatch {
-      name = "cgal-4.13.patch";
-      url = "https://git.skewed.de/count0/graph-tool/commit/aa39e4a6b42d43fac30c841d176c75aff92cc01a.patch";
-      sha256 = "1578inb4jqwq2fhhwscn5z95nzmaxvmvk30nzs5wirr26iznap4m";
-    })
-  ] ++ (lib.optionals (pythonAtLeast "3.7") [
-    # # python 3.7 compatibility (`async` is now reserved)
-    (fetchpatch {
-      name = "async-reserved.patch";
-      url = "https://git.skewed.de/count0/graph-tool/commit/0407f41a35b6be7c670927fb5dc578cbd0e88be4.patch";
-      sha256 = "1fklznhmfvbb3ykwzyf8p2hiczby6y7r0xnkkjl2jkxlvr24000q";
-    })
-  ]);
-
   configureFlags = [
     "--with-python-module-path=$(out)/${python.sitePackages}"
     "--with-boost-libdir=${boost}/lib"
@@ -48,7 +32,7 @@ buildPythonPackage rec {
     "--enable-openmp"
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ ncurses ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index f4e7a10907451..5202483ab326f 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     })
   ];
 
-  checkInputs = [ pytestCheckHook nose ];
+  checkInputs = [ pytestCheckHook nose flaky ];
   dontUseSetuptoolsCheck = true;
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
new file mode 100644
index 0000000000000..54656e1ea993c
--- /dev/null
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "javaobj-py3";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0j9532i7bnjd0v4a8c36mjj9rsdnbmckk65dh9sbmvnhy3j6jx55";
+  };
+
+  # Tests assume network connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Module for serializing and de-serializing Java objects";
+    homepage = "https://github.com/tcalmant/python-javaobj";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index ed2c8992b7d22..ceb9f841a4616 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, colorama }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "loguru";
@@ -10,12 +10,12 @@ buildPythonPackage rec {
     sha256 = "d5ddf363b7e0e562652f283f74a89bf35601baf16b70f2cd2736a2f8c6638748";
   };
 
-  checkInputs = [ pytest colorama ];
-  checkPhase = ''
-    pytest -k 'not test_time_rotation_reopening'
-  '';
+  checkInputs = [ pytestCheckHook colorama ];
 
-  meta = with lib; {
+  disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" ];
+
+  meta = with stdenv.lib; {
     homepage = https://github.com/Delgan/loguru;
     description = "Python logging made (stupidly) simple";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
new file mode 100644
index 0000000000000..c866382b10337
--- /dev/null
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, msal
+, portalocker
+}:
+
+buildPythonPackage rec {
+  pname = "msal-extensions";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+  };
+
+  propagatedBuildInputs = [
+    msal
+    portalocker
+  ];
+
+  # No tests found
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
+    homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
new file mode 100644
index 0000000000000..6f2566c2c1c06
--- /dev/null
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyjwt
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "msal";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h33wayvakggr684spdyhiqvrwraavcbk3phmcbavb3zqxd3zgpc";
+  };
+
+  propagatedBuildInputs = [
+    pyjwt
+    requests
+  ];
+
+  # Tests assume Network Connectivity:
+  #   https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/e2958961e8ec16d0af4199f60c36c3f913497e48/tests/test_authority.py#L73
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect";
+    homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/nagiosplugin/default.nix b/pkgs/development/python-modules/nagiosplugin/default.nix
new file mode 100644
index 0000000000000..ef46e7ccafd45
--- /dev/null
+++ b/pkgs/development/python-modules/nagiosplugin/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, twine
+, numpy
+, pytest
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "nagiosplugin";
+  version = "1.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vr3zy0zfvbrqc4nf81zxv4gs2q82sv5sjamdm4573ld529mk2nv";
+  };
+
+  nativeBuildInputs = [ twine ];
+  checkInputs = [ pytest numpy ];
+
+  checkPhase = ''
+    # this test relies on who, which does not work in the sandbox
+    pytest -k "not test_check_users" tests/
+  '';
+
+  meta = with lib; {
+    description = "A Python class library which helps with writing Nagios (Icinga) compatible plugins";
+    homepage =  https://github.com/mpounsett/nagiosplugin;
+    license = licenses.zpl21;
+    maintainers = with maintainers; [ symphorien ];
+  };
+}
diff --git a/pkgs/development/python-modules/names/default.nix b/pkgs/development/python-modules/names/default.nix
new file mode 100644
index 0000000000000..b65bb463475bc
--- /dev/null
+++ b/pkgs/development/python-modules/names/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+
+# pythonPackages
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "names";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "treyhunner";
+    repo = pname;
+    rev = version;
+    sha256 = "0jfn11bl05k3qkqw0f4vi2i2lhllxdrbb1732qiisdy9fbvv8611";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = "Generate random names";
+    homepage = "https://github.com/treyhunner/names";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/notedown/default.nix b/pkgs/development/python-modules/notedown/default.nix
new file mode 100644
index 0000000000000..c1dacc84da0c7
--- /dev/null
+++ b/pkgs/development/python-modules/notedown/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, nbconvert
+, nbformat
+, notebook
+, pandoc-attributes
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "notedown";
+  version = "1.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "36e033ebbbe5aca0fab031ffaf3611d5bc5c50237df68ff81bb95f8be353a1ee";
+  };
+
+  propagatedBuildInputs = [
+    notebook
+    nbconvert
+    nbformat
+    pandoc-attributes
+    six
+  ];
+
+  # No tests in pypi source
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/aaren/notedown;
+    description = "Convert IPython Notebooks to markdown (and back)";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ vcanadi ];
+  };
+}
diff --git a/pkgs/development/python-modules/oyaml/default.nix b/pkgs/development/python-modules/oyaml/default.nix
new file mode 100644
index 0000000000000..e445086d0c76f
--- /dev/null
+++ b/pkgs/development/python-modules/oyaml/default.nix
@@ -0,0 +1,41 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+
+# pythonPackages
+, pytest
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "oyaml";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "wimglenn";
+    repo = "oyaml";
+    rev = "v${version}";
+    sha256 = "13xjdym0p0jh9bvyjsbhi4yznlp68bamy3xi4w5wpcrzlcq6cfh9";
+  };
+
+  propagatedBuildInputs = [
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest test_oyaml.py
+  '';
+
+  meta = {
+    description = "Ordered YAML: drop-in replacement for PyYAML which preserves dict ordering";
+    homepage = "https://github.com/wimglenn/oyaml";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pandoc-attributes/default.nix b/pkgs/development/python-modules/pandoc-attributes/default.nix
new file mode 100644
index 0000000000000..8b5652bfb5441
--- /dev/null
+++ b/pkgs/development/python-modules/pandoc-attributes/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+, pandocfilters
+}:
+
+buildPythonPackage rec {
+  pname = "pandoc-attributes";
+  version = "0.1.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "69221502dac74f5df1317011ce62c85a83eef5da3b71c63b1908e98224304a8c";
+  };
+
+  propagatedBuildInputs = [
+    pandocfilters
+  ];
+
+  # No tests in pypi source
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/aaren/pandoc-attributes;
+    description = "An Attribute class to be used with pandocfilters";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ vcanadi ];
+  };
+}
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 76e60fda86a87..a8c66a49fb8ce 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
@@ -28,7 +29,7 @@ buildPythonPackage rec {
 
   cmakeFlags = [
     "-DEIGEN3_INCLUDE_DIR=${eigen}/include/eigen3"
-  ] ++ lib.optionals (python.isPy3k) [
+  ] ++ lib.optionals (python.isPy3k && !stdenv.cc.isClang) [
   # Enable some tests only on Python 3. The "test_string_view" test
   # 'testTypeError: string_view16_chars(): incompatible function arguments'
   # fails on Python 2.
diff --git a/pkgs/development/python-modules/pyjks/default.nix b/pkgs/development/python-modules/pyjks/default.nix
new file mode 100644
index 0000000000000..d9e2074fb28a0
--- /dev/null
+++ b/pkgs/development/python-modules/pyjks/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyasn1-modules
+, pycryptodomex
+, twofish
+}:
+
+buildPythonPackage rec {
+  pname = "pyjks";
+  version = "19.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06h1cybsdj2wi0jf7igbr722xfm87crqn4g7m3bgrpxwi41b9rcw";
+  };
+
+  propagatedBuildInputs = [
+    pyasn1-modules
+    pycryptodomex
+    twofish
+  ];
+
+  # Tests assume network connectivity
+  doCheck = false;
+
+  meta = {
+    description = "Pure-Python Java Keystore (JKS) library";
+    homepage = "https://github.com/kurtbrose/pyjks";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysmb/default.nix b/pkgs/development/python-modules/pysmb/default.nix
new file mode 100644
index 0000000000000..07de522f79621
--- /dev/null
+++ b/pkgs/development/python-modules/pysmb/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, pyasn1
+}:
+
+buildPythonPackage rec {
+  pname = "pysmb";
+  version = "1.1.28";
+
+  src = fetchPypi {
+    inherit pname version;
+    format = "setuptools";
+    extension = "zip";
+    sha256 = "0x44yq440c1j3xnl7qigz2fpfzhx68n9mbj7ps7rd0kj0plcmr2q";
+  };
+
+  propagatedBuildInputs = [
+    pyasn1
+  ];
+
+  # Tests require Network Connectivity and a server up and running
+  #   https://github.com/miketeo/pysmb/blob/master/python3/tests/README_1st.txt
+  doCheck = false;
+
+  meta = {
+    description = "Experimental SMB/CIFS library written in Python to support file sharing between Windows and Linux machines";
+    homepage = "https://miketeo.net/wp/index.php/projects/pysmb";
+    license = lib.licenses.zlib;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
new file mode 100644
index 0000000000000..a0f312389f1a8
--- /dev/null
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -0,0 +1,38 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, lib
+
+# pythonPackages
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "requirements-detector";
+  version = "0.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "yuvadm";
+    repo = pname;
+    rev = version;
+    sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = "Python tool to find and list requirements of a Python project";
+    homepage = "https://github.com/landscapeio/requirements-detector";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix
index 5132d32bfbad1..8d459e2498481 100644
--- a/pkgs/development/python-modules/scikit-build/default.nix
+++ b/pkgs/development/python-modules/scikit-build/default.nix
@@ -12,9 +12,6 @@ buildPythonPackage rec {
     sha256 = "7342017cc82dd6178e3b19377389b8a8d1f8b429d9cdb315cfb1094e34a0f526";
   };
 
-  # Fixes incorrect specified requirement (part of next release)
-  patches = [ ./fix_pytestrunner_req.patch ];
-
   propagatedBuildInputs = [ wheel setuptools packaging ];
   checkInputs = [ 
     cmake ninja cython codecov coverage six pathpy
diff --git a/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch b/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch
deleted file mode 100644
index e8e19f84a5d48..0000000000000
--- a/pkgs/development/python-modules/scikit-build/fix_pytestrunner_req.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index dd348fa..4de89c6 100755
---- a/setup.py
-+++ b/setup.py
-@@ -22,7 +22,7 @@ with open('requirements-dev.txt', 'r') as fp:
-     dev_requirements = list(filter(bool, (line.strip() for line in fp)))
- 
- # Require pytest-runner only when running tests
--pytest_runner = (['pytest-runner>=2.0,<3dev']
-+pytest_runner = (['pytest-runner>=2.0']
-                  if any(arg in sys.argv for arg in ('pytest', 'test'))
-                  else [])
- 
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch b/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
new file mode 100644
index 0000000000000..847a6e076918b
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/binary-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/sphinxcontrib/tikz.py b/sphinxcontrib/tikz.py
+index ee21113..a4f4589 100644
+--- a/sphinxcontrib/tikz.py
++++ b/sphinxcontrib/tikz.py
+@@ -242,7 +242,7 @@ def render_tikz(self, node, libs='', stringsubst=False):
+         tf.write(latex)
+         tf.close()
+ 
+-        system([self.builder.config.latex_engine, '--interaction=nonstopmode',
++        system(['@texLive@/bin/pdflatex', '--interaction=nonstopmode',
+                 'tikz-%s.tex' % shasum],
+                self.builder)
+ 
+@@ -281,7 +281,7 @@ def render_tikz(self, node, libs='', stringsubst=False):
+                     '-sOutputFile=%s' % outfn, '-r' + resolution + 'x' + resolution,
+                     '-f', 'tikz-%s.pdf' % shasum], self.builder)
+         elif self.builder.config.tikz_proc_suite == "pdf2svg":
+-            system(['pdf2svg', 'tikz-%s.pdf' % shasum, outfn], self.builder)
++            system(['@pdf2svg@/bin/pdf2svg', 'tikz-%s.pdf' % shasum, outfn], self.builder)
+         else:
+             self.builder._tikz_warned = True
+             raise TikzExtError('Error (tikz extension): Invalid configuration '
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
new file mode 100644
index 0000000000000..15585679a2939
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, substituteAll
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, pdf2svg
+, texLive
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-tikz";
+  version = "0.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4f362b11e3c2bd17d5f0f07fec03917c16fc5bbcda6fe31ee137c547ed6b03a3";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./binary-paths.patch;
+      inherit texLive pdf2svg;
+    })
+  ];
+
+  propagatedBuildInputs = [ sphinx ];
+
+  # no tests in package
+  doCheck = false;
+
+  meta = with lib; {
+    description = "TikZ extension for Sphinx";
+    homepage = https://bitbucket.org/philexander/tikz;
+    maintainers = with maintainers; [ costrouc ];
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/twofish/default.nix b/pkgs/development/python-modules/twofish/default.nix
new file mode 100644
index 0000000000000..1fe541b072907
--- /dev/null
+++ b/pkgs/development/python-modules/twofish/default.nix
@@ -0,0 +1,33 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+
+# pythonPackages
+, javaobj-py3
+}:
+
+buildPythonPackage rec {
+  pname = "twofish";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yihp2n42amrxw0wk9f66llpb3w5kwhgkcdg9krkzcik1nsqp7dh";
+  };
+
+  propagatedBuildInputs = [
+    javaobj-py3
+  ];
+
+  # No tests implemented
+  doCheck = false;
+
+  meta = {
+    description = "Bindings for the Twofish implementation by Niels Ferguson";
+    homepage = "https://github.com/keybase/python-twofish";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/unicorn/default.nix b/pkgs/development/python-modules/unicorn/default.nix
index 725c73960f5d9..86542439439e1 100644
--- a/pkgs/development/python-modules/unicorn/default.nix
+++ b/pkgs/development/python-modules/unicorn/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, buildPackages, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, setuptools, unicorn-emu }:
 
 buildPythonPackage rec {
   pname = "unicorn";
-  version = "1.0.1";
+  version = stdenv.lib.getVersion unicorn-emu;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0a5b4vh734b3wfkgapzzf8x18rimpmzvwwkly56da84n27wfw9bg";
-  };
+  src = unicorn-emu.src;
+  sourceRoot = "unicorn-${version}/bindings/python";
 
-  # needs python2 at build time
-  PYTHON=buildPackages.python2.interpreter;
+  prePatch = ''
+    ln -s ${unicorn-emu}/lib/libunicorn${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
+    ln -s ${unicorn-emu}/lib/libunicorn.a prebuilt/
+  '';
 
-  setupPyBuildFlags = [ "--plat-name" "linux" ];
+  propagatedBuildInputs = [ setuptools ];
 
   meta = with stdenv.lib; {
-    description = "Unicorn CPU emulator engine";
+    description = "Python bindings for Unicorn CPU emulator engine";
     homepage = "http://www.unicorn-engine.org/";
     license = [ licenses.gpl2 ];
-    maintainers = [ maintainers.bennofs ];
+    maintainers = with maintainers; [ bennofs ris ];
   };
 }
diff --git a/pkgs/development/python-modules/viewstate/default.nix b/pkgs/development/python-modules/viewstate/default.nix
new file mode 100644
index 0000000000000..cd64dcc756434
--- /dev/null
+++ b/pkgs/development/python-modules/viewstate/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "viewstate";
+  version = "0.4.3";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "yuvadm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = {
+    description = ".NET viewstate decoder";
+    homepage = "https://github.com/yuvadm/viewstate";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/qbs/default.nix b/pkgs/development/tools/build-managers/qbs/default.nix
index cd08ae973eba1..0649cd7c59572 100644
--- a/pkgs/development/tools/build-managers/qbs/default.nix
+++ b/pkgs/development/tools/build-managers/qbs/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "qbs";
 
-  version = "1.14.1";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "qbs";
     repo = "qbs";
     rev = "v${version}";
-    sha256 = "0rqfnclhzln6v4gm68fn4vn6ncf5qpi90295fwm4fx6dq4l94b3v";
+    sha256 = "0hq2lx5w5lsiy9c69bcps4wyn2sa9s88hj0bq95p93sfiwq6mxlr";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/development/tools/diesel-cli/default.nix b/pkgs/development/tools/diesel-cli/default.nix
index e5f7a50476e6e..0fdd026d875f6 100644
--- a/pkgs/development/tools/diesel-cli/default.nix
+++ b/pkgs/development/tools/diesel-cli/default.nix
@@ -72,6 +72,6 @@ rustPlatform.buildRustPackage rec {
     homepage = https://github.com/diesel-rs/diesel/tree/master/diesel_cli;
     license = with licenses; [ mit asl20 ];
     platforms = platforms.all;
-    maintainers = with maintainers; [ ivan ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
new file mode 100644
index 0000000000000..415479edc84d3
--- /dev/null
+++ b/pkgs/development/tools/metals/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, coursier, jdk, jre, makeWrapper }:
+
+let
+  baseName = "metals";
+  version = "0.7.6";
+  deps = stdenv.mkDerivation {
+    name = "${baseName}-deps-${version}";
+    buildCommand = ''
+      export COURSIER_CACHE=$(pwd)
+      ${coursier}/bin/coursier fetch org.scalameta:metals_2.12:${version} \
+        -r bintray:scalacenter/releases \
+        -r sonatype:snapshots > deps
+      mkdir -p $out/share/java
+      cp -n $(< deps) $out/share/java/
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash     = "03vx8n77mndpqbvq14cy3k9r4jwgjacrv56v5n87da8rqiclx37j";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "${baseName}-${version}";
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk deps ];
+
+  phases = [ "installPhase" ];
+
+  extraJavaOpts = "-XX:+UseG1GC -XX:+UseStringDeduplication -Xss4m -Xms100m";
+
+  installPhase = ''
+    mkdir -p $out/bin
+
+    makeWrapper ${jre}/bin/java $out/bin/metals-emacs \
+      --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+      --add-flags "${extraJavaOpts} -Dmetals.client=emacs -cp $CLASSPATH scala.meta.metals.Main"
+
+    makeWrapper ${jre}/bin/java $out/bin/metals-vim \
+      --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+      --add-flags "${extraJavaOpts} -Dmetals.client=coc.nvim -cp $CLASSPATH scala.meta.metals.Main"
+
+    makeWrapper ${jre}/bin/java $out/bin/metals-vim-lsc \
+      --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+      --add-flags "${extraJavaOpts} -Dmetals.client=vim-lsc -cp $CLASSPATH scala.meta.metals.Main"
+
+    makeWrapper ${jre}/bin/java $out/bin/metals-sublime \
+      --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+      --add-flags "${extraJavaOpts} -Dmetals.client=sublime -cp $CLASSPATH scala.meta.metals.Main"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://scalameta.org/metals/;
+    license = licenses.asl20;
+    description = "Work-in-progress language server for Scala";
+    maintainers = with maintainers; [ ceedubs tomahna ];
+  };
+}
diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix
index fc5f2e4a688ba..d6327010e30e4 100644
--- a/pkgs/development/tools/ocaml/cppo/default.nix
+++ b/pkgs/development/tools/ocaml/cppo/default.nix
@@ -7,8 +7,8 @@ assert stdenv.lib.versionAtLeast ocaml.version "3.12";
 
 let param =
   if stdenv.lib.versionAtLeast ocaml.version "4.02" then {
-    version = "1.6.6";
-    sha256 = "1smcc0l6fh2n0y6bp96c69j5nw755jja99w0b206wx3yb2m4w2hs";
+    version = "1.6.5";
+    sha256 = "03c0amszy28shinvz61hm340jz446zz5763a1pdqlza36kwcj0p0";
     buildInputs = [ dune ];
     extra = {
       inherit (dune) installPhase;
@@ -31,7 +31,7 @@ stdenv.mkDerivation ({
   name = "${pname}-${param.version}";
 
   src = fetchFromGitHub {
-    owner = "ocaml-community";
+    owner = "mjambon";
     repo = pname;
     rev = "v${param.version}";
     inherit (param) sha256;
diff --git a/pkgs/development/tools/parsing/byacc/default.nix b/pkgs/development/tools/parsing/byacc/default.nix
index 8542d41519649..79e171d5fd73f 100644
--- a/pkgs/development/tools/parsing/byacc/default.nix
+++ b/pkgs/development/tools/parsing/byacc/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "byacc";
-  version = "20191119";
+  version = "20191125";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/byacc/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/byacc/${pname}-${version}.tgz"
     ];
-    sha256 = "0ch8y9g7b3lnw1r76p65gvdnbpwd60d4pghgadid122fcq7566p2";
+    sha256 = "1phw8410ly3msv03dmjfi8xkmrl1lrrk928fp1489amg6sz2w707";
   };
 
   configureFlags = [
diff --git a/pkgs/development/tools/poetry/default.nix b/pkgs/development/tools/poetry/default.nix
index 7843b1665f1c1..6a4ca2a3057d2 100644
--- a/pkgs/development/tools/poetry/default.nix
+++ b/pkgs/development/tools/poetry/default.nix
@@ -33,9 +33,13 @@ poetry2nix.mkPoetryApplication {
 
     mkdir -p $out/bin
     cat > $out/bin/poetry <<EOF
-    #!${runtimeShell}
-    export PYTHONPATH=$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH
-    exec ${python.interpreter} -m poetry "\$@"
+    #!${python.interpreter}
+    import sys
+
+    if __name__ == '__main__':
+        sys.path.append("$out/lib/${python.libPrefix}/site-packages")
+        from poetry.console import main
+        main()
     EOF
     chmod +x $out/bin/poetry
 
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index 65d3006a3b86d..de31057af14d5 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.27";
+  version = "2.1.28";
 
   src = fetchFromGitHub {
     owner = "racer-rust";
     repo = "racer";
     rev = "v${version}";
-    sha256 = "1ajj515ck5n0mzig77xnq1qgb2s4gf6ahgd5mab91406jvij9qf3";
+    sha256 = "1zifbcqy9hmcdbz7sl046l2631f5a3j65kyin38l7wm7vrqx9s3h";
   };
 
-  cargoSha256 = "0ki5j5gh59c92a0w43kzljpiamv2jvyk4m2w8qldfyl5kaa40dxb";
+  cargoSha256 = "1ys1yb939y144lhjr451cpqrayqn66r0zp71xm90fkqxsbv7wkqv";
 
   buildInputs = [ makeWrapper ]
                 ++ stdenv.lib.optional stdenv.isDarwin Security;
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     description = "A utility intended to provide Rust code completion for editors and IDEs";
     homepage = https://github.com/racer-rust/racer;
     license = licenses.mit;
-    maintainers = with maintainers; [ jagajaga ];
+    maintainers = with maintainers; [ jagajaga ma27 ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/gweled/default.nix b/pkgs/games/gweled/default.nix
new file mode 100644
index 0000000000000..d5d4f5c40153d
--- /dev/null
+++ b/pkgs/games/gweled/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchbzr, intltool
+, gtk2, wrapGAppsHook, autoreconfHook, pkgconfig
+, libmikmod, librsvg, libcanberra-gtk2, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "gweled";
+  version = "unstable-2018-02-15";
+
+  src = fetchbzr {
+    url = "lp:gweled";
+    rev = "94";
+    sha256 = "01c38y4df5a06wqbsmsn8ysxx7hav9yvw6zdwbc9m5m55z7vmdb8";
+  };
+
+  doCheck = false;
+
+  nativeBuildInputs = [ wrapGAppsHook intltool autoreconfHook pkgconfig ];
+
+  buildInputs = [ gtk2 libmikmod librsvg hicolor-icon-theme libcanberra-gtk2 ];
+
+  configureFlags = [ "--disable-setgid" ];
+
+  meta = with stdenv.lib; {
+    description = "Bejeweled clone game";
+    homepage = "https://gweled.org";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.genesis ];
+  };
+}
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index b83cc81451134..f8c1604d2a4fd 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -422,6 +422,17 @@ let
     };
   };
 
+  coc-metals = buildVimPluginFrom2Nix {
+    pname = "coc-metals";
+    version = "2019-12-21";
+    src = fetchFromGitHub {
+      owner = "ckipp01";
+      repo = "coc-metals";
+      rev = "d2c9395ac1456765a8979ed9e4e55cd1a1d55e16";
+      sha256 = "0yg9rk0374ijm87sd47grw74930dkqgkp4zmcg24qxigik8h9nha";
+    };
+  };
+
   coc-neco = buildVimPluginFrom2Nix {
     pname = "coc-neco";
     version = "2019-09-23";
@@ -911,12 +922,12 @@ let
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2019-12-13";
+    version = "2019-12-22";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "7990447a308c6c5839ada856f31a7dd3e34f20a4";
-      sha256 = "1570k79ihz6kif85ichdgdnbipbdkqb5ks8izhqppb68lajyjvd2";
+      rev = "63beb118c8d215bad4f8759b84608fd463abebc5";
+      sha256 = "1rilqprq6fq01qj1idgvy38p827gjq2bsx93xfbim6yc4hkj10d9";
       fetchSubmodules = true;
     };
   };
@@ -1653,12 +1664,12 @@ let
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2019-12-20";
+    version = "2019-12-23";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "6fb3ddd293cbd0614f6ed5e637a059c72de643f7";
-      sha256 = "1c0dsxqj5f3i2i3k6q7m1b2xlxz9mizmchydw1mz7s3rd0vs06sq";
+      rev = "6daec38c1da2cbfae43d4d0d67f6a4fa7680c2b5";
+      sha256 = "192adkzqqcvwz9jzh9klqkrldbnjmc2gbk5rvhgz2f0bq9hkkchg";
     };
   };
 
@@ -1917,12 +1928,12 @@ let
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2019-12-12";
+    version = "2019-12-22";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "84057dd1dd28e1198d0b2777301ef6cafd8f2cef";
-      sha256 = "164077vmqf4kcj0kn5c027faa4fjzfdbl1cz4j45dxpbak36hy6w";
+      rev = "e559f3060e512efe8d7795afce74119552dcd838";
+      sha256 = "1gchpdvg19lv96j5cryvlbfmavmybrnjps1a4c7hz9ias34w12ji";
     };
   };
 
@@ -2930,12 +2941,12 @@ let
 
   vim = buildVimPluginFrom2Nix {
     pname = "vim";
-    version = "2019-12-19";
+    version = "2019-12-23";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "a6f90e5691d8b80db024d8298b3fb461752e0248";
-      sha256 = "1g19lgjlqcyvs5x120sv5iwnggjyfzyl1k9w4b39yhhfmqi1vvf9";
+      rev = "df624b570ff296b551e9c0125ffa7db2ae5844e2";
+      sha256 = "1mqw8ybcq7cca1kaah8pbxzdra8l4qyf59v2rk4a8qj9nvkzbvgb";
     };
   };
 
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index a885dc163a18a..4985f02bfb2b8 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -17,12 +17,15 @@
 # deoplete-khard dependency
 , khard
 
-# vim-go denpencies
+# vim-go dependencies
 , asmfmt, delve, errcheck, godef, golint
 , gomodifytags, gotags, gotools, go-motion
 , gnused, reftools, gogetdoc, gometalinter
 , impl, iferr, gocode, gocode-gomod, go-tools
 
+# direnv-vim dependencies
+, direnv
+
 # vCoolor dependency
 , gnome3
 }:
@@ -100,6 +103,14 @@ self: super: {
     '';
   });
 
+  direnv-vim = super.direnv-vim.overrideAttrs(oa: {
+    preFixup = oa.preFixup or "" + ''
+      substituteInPlace $out/share/vim-plugins/direnv-vim/autoload/direnv.vim \
+        --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
+          "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
+    '';
+  });
+
   clighter8 = super.clighter8.overrideAttrs(old: {
     preFixup = ''
       sed "/^let g:clighter8_libclang_path/s|')$|${llvmPackages.clang.cc.lib}/lib/libclang.so')|" \
@@ -402,6 +413,9 @@ self: super: {
     dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
   });
 
+  vim-terraform = super.vim-terraform.overrideAttrs(oa: {
+    patches = (oa.patches or []) ++ lib.singleton ./vim-terraform-fix-event.patch;
+  });
 
   vim-wakatime = super.vim-wakatime.overrideAttrs(old: {
     buildInputs = [ python ];
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index c0768f0285114..93e8f50e3d514 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -47,6 +47,7 @@ chriskempson/base16-vim
 christoomey/vim-sort-motion
 christoomey/vim-tmux-navigator
 ckarnell/antonys-macro-repeater
+ckipp01/coc-metals
 cloudhead/neovim-fuzzy
 CoatiSoftware/vim-sourcetrail
 cocopon/iceberg.vim
diff --git a/pkgs/misc/vim-plugins/vim-terraform-fix-event.patch b/pkgs/misc/vim-plugins/vim-terraform-fix-event.patch
new file mode 100644
index 0000000000000..b36c4992c13f1
--- /dev/null
+++ b/pkgs/misc/vim-plugins/vim-terraform-fix-event.patch
@@ -0,0 +1,23 @@
+From cad4661952ad7983ece6d6486f0f68d437037015 Mon Sep 17 00:00:00 2001
+From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com>
+Date: Thu, 2 Jan 2020 13:31:13 -0800
+Subject: [PATCH] Put the autocmd filetypedetect in an augroup
+
+---
+ ftdetect/terraform.vim | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/ftdetect/terraform.vim b/ftdetect/terraform.vim
+index 5919422..24bc731 100644
+--- a/ftdetect/terraform.vim
++++ b/ftdetect/terraform.vim
+@@ -1,5 +1,8 @@
+ " By default, Vim associates .tf files with TinyFugue - tell it not to.
+-autocmd! filetypedetect BufRead,BufNewFile *.tf
++augroup filetypedetect
++  au BufRead,BufNewFile *.tf set filetype=terraform
++augroup END
++
+ autocmd BufRead,BufNewFile *.tf set filetype=terraform
+ autocmd BufRead,BufNewFile *.tfvars set filetype=terraform
+ autocmd BufRead,BufNewFile *.tfstate set filetype=json
diff --git a/pkgs/os-specific/linux/ddcci/default.nix b/pkgs/os-specific/linux/ddcci/default.nix
new file mode 100644
index 0000000000000..6c3bc558fa846
--- /dev/null
+++ b/pkgs/os-specific/linux/ddcci/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitLab, kernel }:
+
+stdenv.mkDerivation rec {
+  pname = "ddcci-driver";
+  version = "0.3.2";
+  name = "${pname}-${kernel.version}-${version}";
+
+  src = fetchFromGitLab {
+    owner = "${pname}-linux";
+    repo = "${pname}-linux";
+    rev = "v${version}";
+    sha256 = "0jl4l3vvxn85cbqr80p6bgyhf2vx9kbadrwx086wkj9ni8k6x5m6";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  prePatch = ''
+    substituteInPlace ./ddcci/Makefile \
+      --replace 'SUBDIRS="$(src)"' 'M=$(PWD)' \
+      --replace depmod \#
+    substituteInPlace ./ddcci-backlight/Makefile \
+      --replace 'SUBDIRS="$(src)"' 'M=$(PWD)' \
+      --replace depmod \#
+  '';
+
+  makeFlags = [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "KVER=${kernel.modDirVersion}"
+    "KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
+    "INCLUDEDIR=$(out)/include"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Kernel module driver for DDC/CI monitors";
+    homepage = "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ bricewge ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 57b3aeaa82f63..bcb2f0f8e7d78 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.161";
+  version = "4.14.162";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1jc1izlvgymp9x61r4yz2xhplwmp6x8laxqj9wy33iz6a2gn48wx";
+    sha256 = "0jwbr7q17khv0174hl0kp78bsyhjv0mljfvrnbl9qdfl9hi70lgn";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index b43da123e2469..0256476218ab9 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.92";
+  version = "4.19.93";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18l3k0hgyanh6axgmmaaff139vpw6lf3fcf9iglpqwgspgw7rhr9";
+    sha256 = "0d2qgwnmvnwbsijc8k85sgmywyrv55wpah6qwjk6kgx8h8zx5x9a";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index e63f96d6876f5..2ee7241396fb1 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.207";
+  version = "4.4.208";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "024flajnl3l4yk8sgqdrfrl21js4vsjcv4ivmjblj4l9fl3hdjb6";
+    sha256 = "03jj91z5dc0ybpjy9w6aanb3k53gcj7gsjc32h3ldf72hlmgz6aq";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 27e802f610709..e95a0d98139c1 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.207";
+  version = "4.9.208";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "090181vij95py22jhx7baaxabb78w0j5hsfsnzp6bv2vgdz671na";
+    sha256 = "0njjw1i8dilihn1hz62zra4b9y05fb3r2k2sqlkd0wfn86c1rbdp";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 0eb57180644aa..89cbf776ac06b 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.7";
+  version = "5.4.8";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1jgwg5qb7lb30m5ywvpfagzrl6d0i524qpy3v99mina6j4fv5jdb";
+    sha256 = "0llss8hbzkwqxx92y419vj2jvq0d8k52iivh3f59wgqr0b4i9i22";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 04da4a6afc2a0..cb6768a348ba7 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "17161";
+    rev = "17165";
     sha256 = "0hyd7wp73w4555d42xcvk4x4nxrfckbzah2ckb4d2aqzxab87789";
   }
 , ...
diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix
index 66185de03a16b..e1acda120253e 100644
--- a/pkgs/os-specific/linux/odp-dpdk/default.nix
+++ b/pkgs/os-specific/linux/odp-dpdk/default.nix
@@ -34,6 +34,8 @@ in stdenv.mkDerivation rec {
     jansson
   ];
 
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
+
   # for some reason, /build/odp-dpdk-1.22.0.0_DPDK_18.11/lib/.libs ends up in all binaries,
   # while it should be $out/lib instead.
   # prepend rpath with the proper location, the /build will get removed during rpath shrinking
diff --git a/pkgs/os-specific/linux/smemstat/default.nix b/pkgs/os-specific/linux/smemstat/default.nix
index f2fa48b9efbed..dbaf6f413251f 100644
--- a/pkgs/os-specific/linux/smemstat/default.nix
+++ b/pkgs/os-specific/linux/smemstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "smemstat";
-  version = "0.02.05";
+  version = "0.02.06";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/smemstat/smemstat-${version}.tar.xz";
-    sha256 = "00586w6f1cq7rayv6galh9qxk7wrz62zbha9qhrb1cf85axchvbw";
+    sha256 = "1069gwmc29vbw7zszqa5v5yxfvgaq7c41r0g456zdpm6msy5kb0w";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 5e21e8734bf15..78ad5c5582d81 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -258,6 +258,15 @@ in
     inputs = [ pkgs.pam ];
   };
 
+  pinba = {
+    src = fetchFromGitHub {
+      owner = "tony2001";
+      repo = "ngx_http_pinba_module";
+      rev = "28131255d4797a7e2f82a6a35cf9fc03c4678fe6";
+      sha256 = "00fii8bjvyipq6q47xhjhm3ylj4rhzmlk3qwxmfpdn37j7bc8p8c";
+    };
+  };
+
   push-stream ={
     src = fetchFromGitHub {
       owner = "wandenberg";
diff --git a/pkgs/servers/monitoring/nagios/plugins/pynagsystemd.nix b/pkgs/servers/monitoring/nagios/plugins/pynagsystemd.nix
new file mode 100644
index 0000000000000..62f6bc96a523f
--- /dev/null
+++ b/pkgs/servers/monitoring/nagios/plugins/pynagsystemd.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, python3Packages, lib }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "pynagsystemd";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "kbytesys";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1xjhkhdpmqa7ngcpcfhrkmj4cid2wla3fzgr04wvw672ysffv2vz";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ nagiosplugin ];
+
+  meta = with lib; {
+    description = "Simple and easy nagios check for systemd status";
+    homepage = "https://github.com/kbytesys/pynagsystemd";
+    maintainers = with maintainers; [ symphorien ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index d73b21b194861..27ff5b409f799 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "0jml16djrap0602agwm3hvq53c4lw5bg2qklxbfk79qs3v926134";
+    sha256 = "0s8gkfnyid1r4xv07vjrbl6558xv6dyn4aapvx8snqdm79n78fn8";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index 0cf16f177912a..00ea34829aa15 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.2.4";
+  version = "5.3.2";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "1vf5220rw37sxvzy6yxn636ip2lx4bkc84z7q8rdwcs2wkv6md1p";
+    sha256 = "0rq1j431x0fvcpry721hxglszql4c80qr26fglcdlm51h9z6i1p1";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index ac4594be05ab4..e53ee1394edfb 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2020-01-01";
+  version = "2020-01-04";
   pname = "oh-my-zsh";
-  rev = "ca627655dbd1d110dbea34ec4a8c1964a1da83d2";
+  rev = "78b07e92fd4a3a5e1f92ee4e3d680c39b72c2245";
 
   src = fetchgit { inherit rev;
     url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "1hr7qaad8mr8bvx54ql5q97da6fhppdgk087mc5flygky6vf4yp6";
+    sha256 = "1s5vr89dxgm1g3jcqybx4an80x0gmda4lh8y36r2dafxwmb09qmk";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/tools/filesystems/moosefs/default.nix b/pkgs/tools/filesystems/moosefs/default.nix
index e9dc2c1f37cd3..5d3c2d15fb2d6 100644
--- a/pkgs/tools/filesystems/moosefs/default.nix
+++ b/pkgs/tools/filesystems/moosefs/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moosefs";
-  version = "3.0.107";
+  version = "3.0.109";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "18mw7a1by8l09fb2pan6zak29bcrgbf5zgfzrlw3c203yawqbx3k";
+    sha256 = "1pwackc511fzx28w3an5qk738ykhpspvc1063w2hv901f213xjzw";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index af7ef8b8215b8..018dfe7858e35 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,25 +1,21 @@
-{ stdenv, fetchFromGitHub, fetchpatch, meson, pkgconfig, ninja, docutils, makeWrapper
+{ stdenv, fetchFromGitHub
+, meson, pkgconfig, ninja, docutils, makeWrapper
 , fuse3, glib
 , which, python3Packages
 , openssh
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.6.0";
+  version = "3.7.0";
   pname = "sshfs-fuse";
 
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
-    sha256 = "0l4a6azsp920fhl4safxjam6821b77zxhw8mjgm33f60pksslww0";
+    sha256 = "119qvjaai3nqs2psqk2kv4gxjchrnrcfnmlwk7yxnj3v59pgyxhv";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/libfuse/sshfs/commit/a548abd1f33a8423bec72724a5f48eb96fa55dd2.patch";
-    sha256 = "19p94aw7nvydd7p2bd1f5cqhlhhamjhda31k22sg06xaqyl893jm";
-  }) ];
-
   nativeBuildInputs = [ meson pkgconfig ninja docutils makeWrapper ];
   buildInputs = [ fuse3 glib ];
   checkInputs = [ which python3Packages.pytest ];
diff --git a/pkgs/tools/misc/ckb-next/default.nix b/pkgs/tools/misc/ckb-next/default.nix
index 575cb686f9d46..738430f561bd3 100644
--- a/pkgs/tools/misc/ckb-next/default.nix
+++ b/pkgs/tools/misc/ckb-next/default.nix
@@ -2,14 +2,14 @@
 , pkgconfig, qtbase, cmake, zlib, kmod }:
 
 mkDerivation rec {
-  version = "0.3.2";
+  version = "0.4.2";
   pname = "ckb-next";
 
   src = fetchFromGitHub {
     owner = "ckb-next";
     repo = "ckb-next";
     rev = "v${version}";
-    sha256 = "0ri5n7r1vhsgk6s64abvqcdrs5fmlwprw0rxiwfy0j8a9qcic1dr";
+    sha256 = "1mkx1psw5xnpscdfik1kpzsnfhhkn3571i7acr9gxyjr27sckplc";
   };
 
   buildInputs = [
@@ -25,11 +25,12 @@ mkDerivation rec {
 
   cmakeFlags = [
     "-DINSTALL_DIR_ANIMATIONS=libexec"
+    "-DUDEV_RULE_DIRECTORY=lib/udev/rules.d"
+    "-DFORCE_INIT_SYSTEM=systemd"
   ];
 
   patches = [
     ./install-dirs.patch
-    ./systemd-service.patch
     (substituteAll {
       name = "ckb-next-modprobe.patch";
       src = ./modprobe.patch;
diff --git a/pkgs/tools/misc/ckb-next/install-dirs.patch b/pkgs/tools/misc/ckb-next/install-dirs.patch
index 5545292a65ee4..0f113d71aa3fa 100644
--- a/pkgs/tools/misc/ckb-next/install-dirs.patch
+++ b/pkgs/tools/misc/ckb-next/install-dirs.patch
@@ -1,32 +1,13 @@
 diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
-index 09056a7..1bb4595 100644
+index 2fc10a8..22dbd14 100644
 --- a/src/daemon/CMakeLists.txt
 +++ b/src/daemon/CMakeLists.txt
-@@ -456,7 +456,7 @@ endif ()
- if (LINUX)
-   install(
-     FILES "${CMAKE_SOURCE_DIR}/linux/udev/99-ckb-daemon.rules"
--    DESTINATION "/etc/udev/rules.d"
-+    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d"
-     PERMISSIONS
-     OWNER_READ OWNER_WRITE
-     GROUP_READ
-diff --git a/src/libs/ckb-next/CMakeLists.txt b/src/libs/ckb-next/CMakeLists.txt
-index ecc591c..35de563 100644
---- a/src/libs/ckb-next/CMakeLists.txt
-+++ b/src/libs/ckb-next/CMakeLists.txt
-@@ -75,12 +75,12 @@ if(NOT MACOS)
-         NAMESPACE
-           ${CMAKE_PROJECT_NAME}::
-         DESTINATION
--          "/usr/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
-+          "${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
- 
+@@ -421,7 +421,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
+ elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "systemd")
      install(
-         FILES
-           "cmake/${PROJECT_NAME}Config.cmake"
-           "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
-         DESTINATION
--          "/usr/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
-+          "${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
- endif()
+         FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.service"
+-        DESTINATION "/usr/lib/systemd/system"
++        DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
+         PERMISSIONS
+         OWNER_READ OWNER_WRITE
+         GROUP_READ
diff --git a/pkgs/tools/misc/ckb-next/modprobe.patch b/pkgs/tools/misc/ckb-next/modprobe.patch
index f2156fc3b23bb..a2cbe262e89fb 100644
--- a/pkgs/tools/misc/ckb-next/modprobe.patch
+++ b/pkgs/tools/misc/ckb-next/modprobe.patch
@@ -1,26 +1,26 @@
 diff --git a/src/daemon/input_linux.c b/src/daemon/input_linux.c
-index 1cedb07..8e0b24b 100644
+index 8489f5b..b851419 100644
 --- a/src/daemon/input_linux.c
 +++ b/src/daemon/input_linux.c
-@@ -58,7 +58,7 @@ int os_inputopen(usbdevice* kb){
-     /// First check whether the uinput module is loaded by the kernel.
-     ///
-     // Load the uinput module (if it's not loaded already)
--    if(system("modprobe uinput") != 0) {
-+    if(system("@kmod@/bin/modprobe uinput") != 0) {
-         ckb_fatal("Failed to load uinput module\n");
-         return 1;
-     }
+@@ -63,7 +63,7 @@ int os_inputopen(usbdevice* kb){
+ 
+     // If not available, load the module
+     if(fd < 0){
+-        if(system("modprobe uinput") != 0) {
++        if(system("@kmod@/bin/modprobe uinput") != 0) {
+             ckb_fatal("Failed to load uinput module\n");
+             return 1;
+         }
 diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
-index 3601146..3f2f78f 100644
+index 1eb95bd..f7d38ba 100644
 --- a/src/gui/mainwindow.cpp
 +++ b/src/gui/mainwindow.cpp
-@@ -251,7 +251,7 @@ void MainWindow::updateVersion(){
-             daemonWarning.append(tr("<br /><b>Warning:</b> System Extension by \"Fumihiko Takayama\" is not allowed in Security & Privacy. Please allow it and then unplug and replug your devices."));
+@@ -284,7 +284,7 @@ void MainWindow::updateVersion(){
  #elif defined(Q_OS_LINUX)
-             QProcess modprobe;
--            modprobe.start("modprobe", QStringList("uinput"));
-+            modprobe.start("@kmod@/bin/modprobe", QStringList("uinput"));
+             if(!(QFileInfo("/dev/uinput").exists() || QFileInfo("/dev/input/uinput").exists())){
+                 QProcess modprobe;
+-                modprobe.start("modprobe", QStringList("uinput"));
++                modprobe.start("@kmod@/bin/modprobe", QStringList("uinput"));
  
-             if(!modprobe.waitForFinished())
-                 qDebug() << "Modprobe error";
+                 if(!modprobe.waitForFinished())
+                     qDebug() << "Modprobe error";
diff --git a/pkgs/tools/misc/ckb-next/systemd-service.patch b/pkgs/tools/misc/ckb-next/systemd-service.patch
deleted file mode 100644
index 917bc09627f76..0000000000000
--- a/pkgs/tools/misc/ckb-next/systemd-service.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
-index 09056a7..72a7249 100644
---- a/src/daemon/CMakeLists.txt
-+++ b/src/daemon/CMakeLists.txt
-@@ -249,12 +249,7 @@ elseif (LINUX)
-     # but it is not enabled by default and systemd is used instead. (Ubuntu 15.04+)
- 
-     # A way to check for upstart
--    execute_process(
--        COMMAND initctl --version
--        OUTPUT_VARIABLE initctl_output
--        OUTPUT_STRIP_TRAILING_WHITESPACE)
--
--    if ("${initctl_output}" MATCHES "upstart")
-+    if (FALSE)
-         message(STATUS "upstart detected")
-         set(CKB_NEXT_INIT_SYSTEM "upstart" CACHE INTERNAL "")
-         set(DISALLOW_SYSVINIT TRUE)
-@@ -292,7 +287,7 @@ elseif (LINUX)
-     endif ()
- 
-     # A way to check for systemd
--    if (EXISTS "/run/systemd/system")
-+    if (TRUE)
-         message(STATUS "systemd detected")
-         set(CKB_NEXT_INIT_SYSTEM "systemd" CACHE INTERNAL "")
-         set(DISALLOW_SYSVINIT TRUE)
-@@ -328,7 +323,7 @@ elseif (LINUX)
-     endif ()
- 
-     # A way to check for OpenRC
--    if (EXISTS "/run/openrc/softlevel")
-+    if (FALSE)
-         message(STATUS "OpenRC detected")
-         set(CKB_NEXT_INIT_SYSTEM "OpenRC" CACHE INTERNAL "")
-         set(DISALLOW_SYSVINIT TRUE)
-@@ -419,7 +414,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
- elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "systemd")
-     install(
-         FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.service"
--        DESTINATION "/usr/lib/systemd/system"
-+        DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
-         PERMISSIONS
-         OWNER_READ OWNER_WRITE
-         GROUP_READ
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index 9de5ca0df7829..960373e7e5fc0 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -36,15 +36,13 @@ buildGoModule rec {
   '';
 
   postInstall = ''
-    name="${pname}-${version}"
-
     cp $src/bin/fzf-tmux $out/bin
 
     mkdir -p $man/share/man
     cp -r $src/man/man1 $man/share/man
 
-    mkdir -p $out/share/vim-plugins/$name
-    cp -r $src/plugin $out/share/vim-plugins/$name
+    mkdir -p $out/share/vim-plugins/${pname}
+    cp -r $src/plugin $out/share/vim-plugins/${pname}
 
     cp -R $src/shell $out/share/fzf
     cat <<SCRIPT > $out/bin/fzf-share
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index a8100e455f0b8..26396fee507e7 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -21,11 +21,14 @@ mkDerivation {
 
   cmakeFlags = [
     "-DDISABLE_FRONTEND=${if enableGUI then "OFF" else "ON"}"
+    "-DLIBUSB_LIBRARY=${libusb1}"
   ];
 
   preConfigure = ''
     # Give ownership of the Galaxy S USB device to the logged in user.
     substituteInPlace heimdall/60-heimdall.rules --replace 'MODE="0666"' 'TAG+="uaccess"'
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace libpit/CMakeLists.txt --replace "-std=gnu++11" ""
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/misc/onefetch/default.nix b/pkgs/tools/misc/onefetch/default.nix
index be8c4fb9c0646..e51a00dc7bd0b 100644
--- a/pkgs/tools/misc/onefetch/default.nix
+++ b/pkgs/tools/misc/onefetch/default.nix
@@ -1,15 +1,15 @@
-{ fetchFromGitHub, rustPlatform, stdenv
+{ fetchFromGitHub, rustPlatform, stdenv, fetchpatch
 , CoreFoundation, libiconv, libresolv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "onefetch";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "o2sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02mdzpzfcxp9na86b4jcqqjd3id5jslgmnq1jc0vykg58xha51jg";
+    sha256 = "1sgpai3gx3w7w3ilmbnmzgdxdim6klkfiqaqxmffpyap6qgksfqs";
   };
 
   cargoSha256 = "1phv06zf47bv5cmhypivljfiynrblha0kj13c5al9l0hd1xx749h";
@@ -17,6 +17,14 @@ rustPlatform.buildRustPackage rec {
   buildInputs = with stdenv;
     lib.optionals isDarwin [ CoreFoundation libiconv libresolv Security ];
 
+  cargoPatches = [
+    # fix wrong version in Cargo.lock
+    (fetchpatch {
+      url = "https://github.com/o2sh/onefetch/commit/b69fe660d72b65d7efac99ac5db3b03a82d8667f.patch";
+      sha256 = "14przkdyd4yd11xpdgyscs70w9gpnh02j3xdzxf6h895w3mn84lx";
+    })
+  ];
+
   meta = with stdenv.lib; {
     description = "Git repository summary on your terminal";
     homepage = "https://github.com/o2sh/onefetch";
diff --git a/pkgs/tools/misc/tmux-xpanes/default.nix b/pkgs/tools/misc/tmux-xpanes/default.nix
new file mode 100644
index 0000000000000..3ea5f758050df
--- /dev/null
+++ b/pkgs/tools/misc/tmux-xpanes/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, openssl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "tmux-xpanes";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    owner = "greymd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a";
+  };
+
+  buildInputs = [ openssl perl ];
+
+  installPhase = ''
+    # Create directories.
+    install -m 755 -d $out/bin/
+    install -m 755 -d $out/share/man/man1/
+
+    # Perform installation.
+    install -m 755 bin/* $out/bin/
+    install -m 644 man/*.1 $out/share/man/man1/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "tmux-based terminal divider";
+    homepage = "https://github.com/greymd/tmux-xpanes";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ monsieurp ];
+  };
+}
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 2a1122029c12c..90ecba0891d6c 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -12,10 +12,8 @@ let
   # **please** update this patch when you update to a new openssh release.
   gssapiPatch = fetchpatch {
     name = "openssh-gssapi.patch";
-    url = "https://salsa.debian.org/ssh-team/openssh/raw/"
-      + "e50a98bda787a3b9f53ed67bdccbbac0bde1f9ae"
-      + "/debian/patches/gssapi.patch";
-    sha256 = "14j9cabb3gkhkjc641zbiv29mbvsmgsvis3fbj8ywsd21zc7m2hv";
+    url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%258.1p1-2/debian/patches/gssapi.patch";
+    sha256 = "0zfxx46a5lpjp317z354yyswa2wvmb1pp5p0nxsbhsrzw94jvxsj";
   };
 
 in
@@ -61,11 +59,9 @@ stdenv.mkDerivation rec {
       substituteInPlace Makefile.in --replace '$(INSTALL) -m 4711' '$(INSTALL) -m 0711'
     '';
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ] ++ optional (hpnSupport || withGssapiPatches) autoreconfHook;
   buildInputs = [ zlib openssl libedit pam ]
-    ++ optional withKerberos kerberos
-    ++ optional hpnSupport autoreconfHook
-    ;
+    ++ optional withKerberos kerberos;
 
   preConfigure = ''
     # Setting LD causes `configure' and `make' to disagree about which linker
diff --git a/pkgs/tools/networking/wireguard-go/0001-Fix-darwin-build.patch b/pkgs/tools/networking/wireguard-go/0001-Fix-darwin-build.patch
new file mode 100644
index 0000000000000..d79d9e3531f3f
--- /dev/null
+++ b/pkgs/tools/networking/wireguard-go/0001-Fix-darwin-build.patch
@@ -0,0 +1,26 @@
+From 63360467da4ae6d7fc8c0e05619bdf8813c7e417 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Sun, 5 Jan 2020 15:35:15 +0100
+Subject: [PATCH] Fix darwin build
+
+---
+ rwcancel/select_default.go | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/rwcancel/select_default.go b/rwcancel/select_default.go
+index dd23cda..03f3452 100644
+--- a/rwcancel/select_default.go
++++ b/rwcancel/select_default.go
+@@ -9,6 +9,7 @@ package rwcancel
+ 
+ import "golang.org/x/sys/unix"
+ 
+-func unixSelect(nfd int, r *unix.FdSet, w *unix.FdSet, e *unix.FdSet, timeout *unix.Timeval) error {
+-	return unix.Select(nfd, r, w, e, timeout)
++func unixSelect(nfd int, r *unix.FdSet, w *unix.FdSet, e *unix.FdSet, timeout *unix.Timeval) (err error) {
++	_, err = unix.Select(nfd, r, w, e, timeout)
++	return
+ }
+-- 
+2.23.1
+
diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix
index 08ef1d3499c64..8832560b3b103 100644
--- a/pkgs/tools/networking/wireguard-go/default.nix
+++ b/pkgs/tools/networking/wireguard-go/default.nix
@@ -11,6 +11,8 @@ buildGoPackage rec {
     sha256 = "0s3hvqpz13n630yvi0476hfzrp3xcj8x61zc2hl5z70f8kvbay4i";
   };
 
+  patches = [ ./0001-Fix-darwin-build.patch ];
+
   goDeps = ./deps.nix;
 
   passthru.updateScript = ./update.sh;
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 58f2e81600864..da5b8837523d3 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, openssl, lzo, zlib, iproute, which, ronn }:
+{ stdenv, buildPackages, fetchFromGitHub, openssl, lzo, zlib, iproute, ronn }:
 
 stdenv.mkDerivation rec {
   pname = "zerotierone";
@@ -20,11 +20,14 @@ stdenv.mkDerivation rec {
 
       patchShebangs ./doc/build.sh
       substituteInPlace ./doc/build.sh \
-        --replace '/usr/bin/ronn' '${ronn}/bin/ronn' \
-        --replace 'ronn -r' '${ronn}/bin/ronn -r'
+        --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
   '';
 
-  buildInputs = [ openssl lzo zlib iproute which ronn ];
+
+  nativeBuildInputs = [ ronn ];
+  buildInputs = [ openssl lzo zlib iproute ];
+
+  enableParallelBuilding = true;
 
   installPhase = ''
     install -Dt "$out/bin/" zerotier-one
@@ -43,7 +46,7 @@ stdenv.mkDerivation rec {
     description = "Create flat virtual Ethernet networks of almost unlimited size";
     homepage = https://www.zerotier.com;
     license = licenses.bsl11;
-    maintainers = with maintainers; [ sjmackenzie zimbatm ehmry obadz ];
-    platforms = platforms.x86_64 ++ platforms.aarch64;
+    maintainers = with maintainers; [ sjmackenzie zimbatm ehmry obadz danielfullmer ];
+    platforms = with platforms; x86_64 ++ aarch64 ++ arm;
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 5cd8bf22cac94..28413971c004d 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -2,7 +2,7 @@
 , storeDir ? "/nix/store"
 , stateDir ? "/nix/var"
 , confDir ? "/etc"
-, aws-sdk-cpp, boehmgc, boost
+, boehmgc
 , stdenv, llvmPackages_6
 }:
 
@@ -170,17 +170,17 @@ in rec {
     # Nix1 has the perl bindings by default, so no need to build the manually.
     includesPerl = true;
 
-    inherit storeDir stateDir confDir stdenv aws-sdk-cpp boehmgc boost;
+    inherit storeDir stateDir confDir boehmgc;
   };
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.1";
+    name = "nix-2.3.2";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "bb6578e9f20eebab6d78469ecc59c450ac54f276e5a86a882015d98fecb1bc7b";
+      sha256 = "9fea4b52db0b296dcf05d36f7ecad9f48396af3a682bb21e31f8d04c469beef8";
     };
 
-    inherit storeDir stateDir confDir stdenv aws-sdk-cpp boehmgc boost;
+    inherit storeDir stateDir confDir boehmgc;
   } // stdenv.lib.optionalAttrs stdenv.cc.isClang {
     stdenv = llvmPackages_6.stdenv;
   });
@@ -196,7 +196,7 @@ in rec {
     };
     fromGit = true;
 
-    inherit storeDir stateDir confDir stdenv aws-sdk-cpp boehmgc boost;
+    inherit storeDir stateDir confDir boehmgc;
   });
 
   nixFlakes = lib.lowPrio (callPackage common rec {
@@ -210,7 +210,7 @@ in rec {
     };
     fromGit = true;
 
-    inherit storeDir stateDir confDir stdenv aws-sdk-cpp boehmgc boost;
+    inherit storeDir stateDir confDir boehmgc;
   });
 
 }
diff --git a/pkgs/tools/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix
index 4aadc4b7af028..13a3a85f082d1 100644
--- a/pkgs/tools/package-management/reuse/default.nix
+++ b/pkgs/tools/package-management/reuse/default.nix
@@ -4,13 +4,13 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "reuse";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "v${version}";
-    sha256 = "17bslyvjndhqryrisba9y7y0ijyzi3gmyl9rddkcvdqi3lg9668y";
+    sha256 = "04i8zd66cs152h28k9085nqg937wp31pz2yqywaldx1gywijyd8h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/security/aws-okta/default.nix b/pkgs/tools/security/aws-okta/default.nix
index 66a9f61eefb29..71732f26934b4 100644
--- a/pkgs/tools/security/aws-okta/default.nix
+++ b/pkgs/tools/security/aws-okta/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-okta";
-  version = "0.20.1";
+  version = "0.26.3";
 
   goPackagePath = "github.com/segmentio/aws-okta";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "segmentio";
     repo = "aws-okta";
     rev = "v${version}";
-    sha256 = "084lb9rp04vbpzmvsb2l92a4gp7c8g28x4xsagzwkqqpwi3fd15d";
+    sha256 = "0n6xm3yv0lxfapchzfrqi05hk918n4lh1hcp7gq7hybam93rld96";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/system/uefitool/common.nix b/pkgs/tools/system/uefitool/common.nix
new file mode 100644
index 0000000000000..7d5ee82dcf984
--- /dev/null
+++ b/pkgs/tools/system/uefitool/common.nix
@@ -0,0 +1,39 @@
+{ version, sha256, installFiles }:
+{ lib, mkDerivation, fetchFromGitHub, qtbase, qmake, cmake, zip }:
+
+mkDerivation rec {
+  passthru = {
+    inherit version;
+    inherit sha256;
+    inherit installFiles;
+  };
+  pname = "uefitool";
+  inherit version;
+
+  src = fetchFromGitHub {
+    inherit sha256;
+    owner = "LongSoft";
+    repo = pname;
+    rev = version;
+  };
+
+  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ qmake cmake zip ];
+
+  configurePhase = ":";
+  buildPhase = "bash unixbuild.sh";
+
+  installPhase = ''
+    mkdir -p "$out"/bin
+    cp ${lib.concatStringsSep " " installFiles} "$out"/bin
+  '';
+
+  meta = with lib; {
+    description = "UEFI firmware image viewer and editor";
+    homepage = "https://github.com/LongSoft/uefitool";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ajs124 ];
+    # uefitool supposedly works on other platforms, but their build script only works on linux in nixpkgs
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/system/uefitool/variants.nix b/pkgs/tools/system/uefitool/variants.nix
new file mode 100644
index 0000000000000..cced17e6ddd43
--- /dev/null
+++ b/pkgs/tools/system/uefitool/variants.nix
@@ -0,0 +1,15 @@
+{ libsForQt5 }:
+let
+  common = opts: libsForQt5.callPackage (import ./common.nix opts) {};
+in rec {
+  new-engine = common rec {
+    version = "A56";
+    sha256 = "0sxmjkrwcchxg2qmcjsw2vr42s7cdcg2fxkwb8axq2r2z23465gp";
+    installFiles = [ "UEFITool/UEFITool" "UEFIFind/UEFIFind" "UEFIExtract/UEFIExtract" ];
+  };
+  old-engine = common rec {
+    version = "0.27.0";
+    sha256 = "1i1p823qld927p4f1wcphqcnivb9mq7fi5xmzibxc3g9zzgnyc2h";
+    installFiles = [ "UEFITool" "UEFIReplace/UEFIReplace" "UEFIPatch/UEFIPatch" ];
+  };
+}
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index 1b0fa9f551b80..b57fa540837e3 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -1,8 +1,8 @@
-{ rustPlatform, fetchFromGitHub, fetchurl, stdenv, lib, unzip, nasm }:
+{ rustPlatform, fetchFromGitHub, fetchurl, stdenv, lib, nasm }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = stdenv.mkDerivation rec {
     name = "${pname}-${version}-source";
@@ -11,24 +11,21 @@ rustPlatform.buildRustPackage rec {
       owner = "xiph";
       repo = "rav1e";
       rev = "v${version}";
-      sha256 = "0sij9hwnar27gcwvfcjbhgyrhw99zjv8gr9s9gshqi766p5dy51a";
+      sha256 = "1lv8g1vw11lanyx6lqr34hb6m4x1fvwb60kgg5nk8s8hgdr18i0y";
     };
     cargoLock = fetchurl {
-      url = "https://github.com/xiph/rav1e/releases/download/v${version}/rav1e-${version}.zip";
-      sha256 = "1i48c7mvc9q20d76p2rpxva551249m3p52q2z1g9sj4xzpyyk41m";
+      url = "https://github.com/xiph/rav1e/releases/download/v${version}/Cargo.lock";
+      sha256 = "1d51wcm537pzfmq48vsv87dwf035yl03qkfc0372gchpv079561w";
     };
 
-    nativeBuildInputs = [ unzip ];
-
     installPhase = ''
       mkdir -p $out
       cp -R ./* $out/
-      unzip ${cargoLock}
-      cp ./Cargo.lock $out/Cargo.lock
+      cp ${cargoLock} $out/Cargo.lock
     '';
   };
 
-  cargoSha256 = "1z0xrcq4mx6gpjyqh1csa424sxmx54z3x7ij3w2063h6s2fv9jy3";
+  cargoSha256 = "0frr4sx05pwvj9gmlvmis6lrnbwk3x579fv3kw38374jy33nrr6z";
 
   nativeBuildInputs = [ nasm ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0bdb858161e5b..07b82aed4c44c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6752,6 +6752,8 @@ in
 
   tmuxinator = callPackage ../tools/misc/tmuxinator { };
 
+  tmux-xpanes = callPackage ../tools/misc/tmux-xpanes { };
+
   tmuxPlugins = recurseIntoAttrs (callPackage ../misc/tmux-plugins { });
 
   tmsu = callPackage ../tools/filesystems/tmsu { };
@@ -8779,6 +8781,7 @@ in
   scala_2_13 = callPackage ../development/compilers/scala/2.13.nix { jre = jre8; };
   scala = scala_2_13;
 
+  metals = callPackage ../development/tools/metals { };
   scalafix = callPackage ../development/tools/scalafix { };
   scalafmt = callPackage ../development/tools/scalafmt { };
 
@@ -14111,12 +14114,11 @@ in
 
   soapyhackrf = callPackage ../applications/radio/soapyhackrf { };
 
-  soapysdr = callPackage ../applications/radio/soapysdr { inherit (python3Packages) python numpy; };
+  soapysdr = callPackage ../applications/radio/soapysdr { };
 
   soapyremote = callPackage ../applications/radio/soapyremote { };
 
   soapysdr-with-plugins = callPackage ../applications/radio/soapysdr {
-    inherit (python3Packages) python numpy;
     extraPackages = [
       limesuite
       soapyairspy
@@ -15469,6 +15471,8 @@ in
 
   checkSSLCert = callPackage ../servers/monitoring/nagios/plugins/check_ssl_cert.nix { };
 
+  pynagsystemd = callPackage ../servers/monitoring/nagios/plugins/pynagsystemd.nix { };
+
   neo4j = callPackage ../servers/nosql/neo4j { };
 
   check-esxi-hardware = callPackage ../servers/monitoring/plugins/esxi.nix {};
@@ -16375,6 +16379,8 @@ in
 
     cpupower = callPackage ../os-specific/linux/cpupower { };
 
+    ddcci-driver = callPackage ../os-specific/linux/ddcci { };
+
     deepin-anything = callPackage ../os-specific/linux/deepin-anything { };
 
     digimend = callPackage ../os-specific/linux/digimend { };
@@ -20812,7 +20818,7 @@ in
 
   ps2client = callPackage ../applications/networking/ps2client { };
 
-  psi = callPackage ../applications/networking/instant-messengers/psi { };
+  psi = libsForQt5.callPackage ../applications/networking/instant-messengers/psi { };
 
   psi-plus = libsForQt5.callPackage ../applications/networking/instant-messengers/psi-plus { };
 
@@ -21698,6 +21704,9 @@ in
 
   udocker = pythonPackages.callPackage ../tools/virtualization/udocker { };
 
+  uefitoolPackages = recurseIntoAttrs (callPackage ../tools/system/uefitool/variants.nix {});
+  uefitool = uefitoolPackages.new-engine;
+
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
   inherit (ocaml-ng.ocamlPackages_4_05) unison;
@@ -22896,6 +22905,8 @@ in
 
   gtypist = callPackage ../games/gtypist { };
 
+  gweled = callPackage ../games/gweled {};
+
   gzdoom = callPackage ../games/gzdoom { };
 
   harmonist = callPackage ../games/harmonist { };
@@ -23877,6 +23888,7 @@ in
   lie = callPackage ../applications/science/math/LiE { };
 
   magma = callPackage ../development/libraries/science/math/magma { };
+  clmagma = callPackage ../development/libraries/science/math/clmagma { };
 
   mathematica = callPackage ../applications/science/math/mathematica { };
   mathematica9 = callPackage ../applications/science/math/mathematica/9.nix { };
@@ -24757,18 +24769,6 @@ in
       storeDir = config.nix.storeDir or "/nix/store";
       stateDir = config.nix.stateDir or "/nix/var";
       boehmgc = boehmgc.override { enableLargeConfig = true; };
-      # Tarball evaluation fails with a gcc9 based nix-env.
-      # $ nix-build pkgs/top-level/release.nix -A tarball
-      stdenv = if stdenv.cc.isGNU then gcc8Stdenv else stdenv;
-      aws-sdk-cpp = aws-sdk-cpp.override {
-        stdenv = if stdenv.cc.isGNU then gcc8Stdenv else stdenv;
-      };
-      boost = boost.override {
-        buildPackages = buildPackages // {
-          stdenv = if stdenv.cc.isGNU then gcc8Stdenv else stdenv;
-        };
-        stdenv = if stdenv.cc.isGNU then gcc8Stdenv else stdenv;
-      };
       })
     nix
     nix1
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index fa26248c68fc1..e9a896d7de933 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -282,10 +282,14 @@ in {
 
   azure-graphrbac = callPackage ../development/python-modules/azure-graphrbac { };
 
+  azure-identity = callPackage ../development/python-modules/azure-identity { };
+
   azure-keyvault = callPackage ../development/python-modules/azure-keyvault { };
 
   azure-keyvault-keys = callPackage ../development/python-modules/azure-keyvault-keys { };
 
+  azure-keyvault-nspkg = callPackage ../development/python-modules/azure-keyvault-nspkg { };
+
   azure-keyvault-secrets = callPackage ../development/python-modules/azure-keyvault-secrets { };
 
   azure-loganalytics = callPackage ../development/python-modules/azure-loganalytics { };
@@ -833,15 +837,22 @@ in {
     mpi = pkgs.openmpi;
   };
 
-  msrestazure = callPackage ../development/python-modules/msrestazure { };
+  msal = callPackage ../development/python-modules/msal { };
+
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+
   msrest = callPackage ../development/python-modules/msrest { };
 
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
+
   multiset = callPackage ../development/python-modules/multiset { };
 
   mwclient = callPackage ../development/python-modules/mwclient { };
 
   mwoauth = callPackage ../development/python-modules/mwoauth { };
 
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+
   nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
   nbsmoke = callPackage ../development/python-modules/nbsmoke { };
@@ -1155,6 +1166,8 @@ in {
     slurm = pkgs.slurm;
   };
 
+  pysmb = callPackage ../development/python-modules/pysmb { };
+
   pysmf = callPackage ../development/python-modules/pysmf { };
 
   pyspinel = callPackage ../development/python-modules/pyspinel {};
@@ -1337,6 +1350,16 @@ in {
 
   snapcast = callPackage ../development/python-modules/snapcast { };
 
+  soapysdr = toPythonModule (pkgs.soapysdr.override {
+    python = self.python;
+    usePython = true;
+  });
+
+  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
+    python = self.python;
+    usePython = true;
+  });
+
   sparse = callPackage ../development/python-modules/sparse { };
 
   spglib = callPackage ../development/python-modules/spglib { };
@@ -1659,6 +1682,8 @@ in {
 
   babelfish = callPackage ../development/python-modules/babelfish {};
 
+  bandit = callPackage ../development/python-modules/bandit {};
+
   basiciw = callPackage ../development/python-modules/basiciw {
     inherit (pkgs) gcc wirelesstools;
   };
@@ -1965,7 +1990,7 @@ in {
   certifi = callPackage ../development/python-modules/certifi { };
 
   certipy = callPackage ../development/python-modules/certipy {};
- 
+
   characteristic = callPackage ../development/python-modules/characteristic { };
 
   chart-studio = callPackage ../development/python-modules/chart-studio { };
@@ -2177,6 +2202,8 @@ in {
 
   pyjet = callPackage ../development/python-modules/pyjet {};
 
+  pyjks = callPackage ../development/python-modules/pyjks {};
+
   PyLD = callPackage ../development/python-modules/PyLD { };
 
   python-jose = callPackage ../development/python-modules/python-jose {};
@@ -2835,6 +2862,8 @@ in {
 
   oset = callPackage ../development/python-modules/oset { };
 
+  oyaml = callPackage ../development/python-modules/oyaml { };
+
   pamela = callPackage ../development/python-modules/pamela { };
 
   paperspace = callPackage ../development/python-modules/paperspace { };
@@ -3174,18 +3203,22 @@ in {
 
   django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
 
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+
   django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
 
   django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
-  django-storages = callPackage ../development/python-modules/django-storages { };
-
-  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
 
   django-sites = callPackage ../development/python-modules/django-sites { };
 
   django-sr = callPackage ../development/python-modules/django-sr { };
 
+  django-storages = callPackage ../development/python-modules/django-storages { };
+
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+
   django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
   django_tagging = callPackage ../development/python-modules/django_tagging { };
@@ -3397,6 +3430,8 @@ in {
 
   flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+
   flask_testing = callPackage ../development/python-modules/flask-testing { };
 
   flask_wtf = callPackage ../development/python-modules/flask-wtf { };
@@ -3406,7 +3441,7 @@ in {
   wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
   graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix {
-    inherit (pkgs) pkgconfig;
+    inherit (pkgs) pkg-config;
   };
 
   grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
@@ -4190,6 +4225,8 @@ in {
 
   nameparser = callPackage ../development/python-modules/nameparser { };
 
+  names = callPackage ../development/python-modules/names { };
+
   nbconvert = callPackage ../development/python-modules/nbconvert { };
 
   nbformat = callPackage ../development/python-modules/nbformat { };
@@ -4263,6 +4300,8 @@ in {
   notebook = if isPy3k then callPackage ../development/python-modules/notebook { }
   else callPackage ../development/python-modules/notebook/2.nix { };
 
+  notedown = callPackage ../development/python-modules/notedown { };
+
   notify = callPackage ../development/python-modules/notify { };
 
   notify2 = callPackage ../development/python-modules/notify2 {};
@@ -4361,7 +4400,17 @@ in {
 
   rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
-  cachetools = callPackage ../development/python-modules/cachetools {};
+  cachetools = let
+    cachetools' = callPackage ../development/python-modules/cachetools {};
+    cachetools_2 = cachetools'.overridePythonAttrs(oldAttrs: rec {
+      version = "3.1.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "16m69l6n6y1r1y7cklm92rr7v69ldig2n3lbl3j323w5jz7d78lf";
+      };
+
+    });
+  in if isPy3k then cachetools' else cachetools_2;
 
   cma = callPackage ../development/python-modules/cma { };
 
@@ -4954,7 +5003,16 @@ in {
 
   pywinrm = callPackage ../development/python-modules/pywinrm { };
 
-  pyxattr = callPackage ../development/python-modules/pyxattr { };
+  pyxattr = let
+    pyxattr' = callPackage ../development/python-modules/pyxattr { };
+    pyxattr_2 = pyxattr'.overridePythonAttrs(oldAttrs: rec {
+      version = "0.6.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
+      };
+    });
+  in if isPy3k then pyxattr' else pyxattr_2;
 
   pyamg = callPackage ../development/python-modules/pyamg { };
 
@@ -5099,6 +5157,8 @@ in {
 
   requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
 
+  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
+
   resampy = callPackage ../development/python-modules/resampy { };
 
   restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
@@ -5740,6 +5800,10 @@ in {
 
   sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
 
+  sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz {
+    texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
+  };
+
   sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
   Pweave = callPackage ../development/python-modules/pweave { };
@@ -6282,6 +6346,8 @@ in {
 
   pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
+
   htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
   repeated_test = callPackage ../development/python-modules/repeated_test { };
@@ -6387,6 +6453,8 @@ in {
 
   jaraco_stream = callPackage ../development/python-modules/jaraco_stream { };
 
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
+
   javaproperties = callPackage ../development/python-modules/javaproperties { };
 
   tempora= callPackage ../development/python-modules/tempora { };
@@ -6458,12 +6526,16 @@ in {
 
   twilio = callPackage ../development/python-modules/twilio { };
 
+  twofish = callPackage ../development/python-modules/twofish { };
+
   uranium = callPackage ../development/python-modules/uranium { };
 
   uuid = callPackage ../development/python-modules/uuid { };
 
   versioneer = callPackage ../development/python-modules/versioneer { };
 
+  viewstate = callPackage ../development/python-modules/viewstate { };
+
   vine = callPackage ../development/python-modules/vine { };
 
   visitor = callPackage ../development/python-modules/visitor { };
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index 687086b6ed3b2..7736a265b9470 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -55,7 +55,7 @@ self: super: let
   removeUnknownConfigureFlags = f: with self.lib;
     remove "--disable-shared"
     (remove "--enable-static" f);
-  
+
   ocamlFixPackage = b:
     b.overrideAttrs (o: {
       configurePlatforms = [ ];
@@ -63,7 +63,7 @@ self: super: let
       buildInputs = o.buildInputs ++ o.nativeBuildInputs or [ ];
       propagatedNativeBuildInputs = o.propagatedBuildInputs or [ ];
     });
-  
+
   ocamlStaticAdapter = _: super:
     self.lib.mapAttrs
       (_: p: if p ? overrideAttrs then ocamlFixPackage p else p)
@@ -153,6 +153,7 @@ in {
     static = true;
   };
   openblas = super.openblas.override { enableStatic = true; };
+  mkl = super.mkl.override { enableStatic = true; };
   nix = super.nix.override { withAWS = false; };
   # openssl 1.1 doesn't compile
   openssl = super.openssl_1_0_2.override {
@@ -209,7 +210,7 @@ in {
   kmod = super.kmod.override {
     withStatic = true;
   };
-  
+
   curl = super.curl.override {
     # a very sad story: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039
     gssSupport = false;
@@ -241,6 +242,6 @@ in {
   ocaml-ng = self.lib.mapAttrs (_: set:
     if set ? overrideScope' then set.overrideScope' ocamlStaticAdapter else set
   ) super.ocaml-ng;
-  
+
   python27 = super.python27.override { static = true; };
 }