about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2021-02-26 10:25:13 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2021-02-26 10:25:13 +0100
commitc456a2512f7a7558cbe25328a423762033822cc0 (patch)
treed64f521751037012a1c4d05fedeb485eeee39b05 /pkgs/development
parentbabf9d6100c3e5dcdbbbe8850de99d3fe2b3cf86 (diff)
parent6d7128414cf2763ab14f31365c21c6cec3547dac (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix5
-rw-r--r--pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix4
-rw-r--r--pkgs/development/compilers/bluespec/default.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.12.nix7
-rw-r--r--pkgs/development/compilers/openjdk/darwin/11.nix4
-rw-r--r--pkgs/development/compilers/sbcl/common.nix18
-rw-r--r--pkgs/development/compilers/scala/2.x.nix24
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/go-packages/generic/default.nix6
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix5
-rw-r--r--pkgs/development/interpreters/guile/CVE-2016-8605.patch59
-rw-r--r--pkgs/development/interpreters/io/default.nix28
-rw-r--r--pkgs/development/interpreters/octave/build-env.nix83
-rw-r--r--pkgs/development/interpreters/octave/build-octave-package.nix113
-rw-r--r--pkgs/development/interpreters/octave/default.nix231
-rw-r--r--pkgs/development/interpreters/octave/hooks/default.nix13
-rw-r--r--pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh17
-rw-r--r--pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh17
-rw-r--r--pkgs/development/interpreters/octave/with-packages.nix6
-rw-r--r--pkgs/development/interpreters/octave/wrap-octave.nix16
-rw-r--r--pkgs/development/interpreters/octave/wrap.sh132
-rw-r--r--pkgs/development/interpreters/scheme48/default.nix27
-rw-r--r--pkgs/development/java-modules/junit/default.nix9
-rw-r--r--pkgs/development/java-modules/maven-hello/default.nix16
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix2
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch36
-rw-r--r--pkgs/development/libraries/civetweb/default.nix11
-rw-r--r--pkgs/development/libraries/dlib/default.nix2
-rw-r--r--pkgs/development/libraries/eclib/default.nix4
-rw-r--r--pkgs/development/libraries/entt/default.nix4
-rw-r--r--pkgs/development/libraries/gexiv2/default.nix4
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix15
-rw-r--r--pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--pkgs/development/libraries/libavif/default.nix4
-rw-r--r--pkgs/development/libraries/libbap/default.nix6
-rw-r--r--pkgs/development/libraries/libfaketime/default.nix4
-rw-r--r--pkgs/development/libraries/libfprint/default.nix26
-rw-r--r--pkgs/development/libraries/libhandy/default.nix1
-rw-r--r--pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--pkgs/development/libraries/libofx/default.nix4
-rw-r--r--pkgs/development/libraries/libosmpbf/default.nix8
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libquotient/default.nix4
-rw-r--r--pkgs/development/libraries/libsigsegv/default.nix4
-rw-r--r--pkgs/development/libraries/libwnck/default.nix3
-rw-r--r--pkgs/development/libraries/lime/default.nix4
-rw-r--r--pkgs/development/libraries/log4cplus/default.nix4
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix4
-rw-r--r--pkgs/development/libraries/notcurses/default.nix8
-rw-r--r--pkgs/development/libraries/olm/default.nix19
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix4
-rw-r--r--pkgs/development/libraries/ortp/default.nix4
-rw-r--r--pkgs/development/libraries/protolock/default.nix4
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix2
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix2
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix24
-rw-r--r--pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch39
-rw-r--r--pkgs/development/libraries/vtk/generic.nix2
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/atd/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/atdgen/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/linenoise/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_bap/default.nix51
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/psmt2-frontend/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix4
-rw-r--r--pkgs/development/octave-modules/arduino/default.nix33
-rw-r--r--pkgs/development/octave-modules/audio/default.nix36
-rw-r--r--pkgs/development/octave-modules/bim/default.nix28
-rw-r--r--pkgs/development/octave-modules/bsltl/default.nix21
-rw-r--r--pkgs/development/octave-modules/cgi/default.nix21
-rw-r--r--pkgs/development/octave-modules/communications/default.nix31
-rw-r--r--pkgs/development/octave-modules/control/default.nix31
-rw-r--r--pkgs/development/octave-modules/data-smoothing/default.nix26
-rw-r--r--pkgs/development/octave-modules/database/default.nix31
-rw-r--r--pkgs/development/octave-modules/dataframe/default.nix21
-rw-r--r--pkgs/development/octave-modules/dicom/default.nix33
-rw-r--r--pkgs/development/octave-modules/divand/default.nix21
-rw-r--r--pkgs/development/octave-modules/doctest/default.nix28
-rw-r--r--pkgs/development/octave-modules/econometrics/default.nix26
-rw-r--r--pkgs/development/octave-modules/fem-fenics/default.nix35
-rw-r--r--pkgs/development/octave-modules/financial/default.nix23
-rw-r--r--pkgs/development/octave-modules/fits/default.nix41
-rw-r--r--pkgs/development/octave-modules/fpl/default.nix21
-rw-r--r--pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix21
-rw-r--r--pkgs/development/octave-modules/ga/default.nix21
-rw-r--r--pkgs/development/octave-modules/general/default.nix31
-rw-r--r--pkgs/development/octave-modules/generate_html/default.nix27
-rw-r--r--pkgs/development/octave-modules/geometry/default.nix26
-rw-r--r--pkgs/development/octave-modules/gsl/default.nix26
-rw-r--r--pkgs/development/octave-modules/image-acquisition/default.nix32
-rw-r--r--pkgs/development/octave-modules/image/default.nix27
-rw-r--r--pkgs/development/octave-modules/instrument-control/default.nix21
-rw-r--r--pkgs/development/octave-modules/interval/default.nix39
-rw-r--r--pkgs/development/octave-modules/io/default.nix32
-rw-r--r--pkgs/development/octave-modules/level-set/default.nix54
-rw-r--r--pkgs/development/octave-modules/linear-algebra/default.nix22
-rw-r--r--pkgs/development/octave-modules/lssa/default.nix27
-rw-r--r--pkgs/development/octave-modules/ltfat/default.nix54
-rw-r--r--pkgs/development/octave-modules/ltfat/syntax-error.patch15
-rw-r--r--pkgs/development/octave-modules/mapping/default.nix28
-rw-r--r--pkgs/development/octave-modules/matgeom/default.nix21
-rw-r--r--pkgs/development/octave-modules/miscellaneous/default.nix34
-rw-r--r--pkgs/development/octave-modules/msh/default.nix56
-rw-r--r--pkgs/development/octave-modules/mvn/default.nix21
-rw-r--r--pkgs/development/octave-modules/nan/default.nix26
-rw-r--r--pkgs/development/octave-modules/ncarray/default.nix31
-rw-r--r--pkgs/development/octave-modules/netcdf/default.nix26
-rw-r--r--pkgs/development/octave-modules/nurbs/default.nix30
-rw-r--r--pkgs/development/octave-modules/ocl/default.nix26
-rw-r--r--pkgs/development/octave-modules/octclip/default.nix29
-rw-r--r--pkgs/development/octave-modules/octproj/default.nix32
-rw-r--r--pkgs/development/octave-modules/optics/default.nix21
-rw-r--r--pkgs/development/octave-modules/optim/default.nix36
-rw-r--r--pkgs/development/octave-modules/optiminterp/default.nix31
-rw-r--r--pkgs/development/octave-modules/parallel/default.nix36
-rw-r--r--pkgs/development/octave-modules/quaternion/default.nix29
-rw-r--r--pkgs/development/octave-modules/queueing/default.nix32
-rw-r--r--pkgs/development/octave-modules/signal/default.nix26
-rw-r--r--pkgs/development/octave-modules/sockets/default.nix21
-rw-r--r--pkgs/development/octave-modules/sparsersb/default.nix28
-rw-r--r--pkgs/development/octave-modules/splines/default.nix21
-rw-r--r--pkgs/development/octave-modules/statistics/default.nix26
-rw-r--r--pkgs/development/octave-modules/stk/default.nix32
-rw-r--r--pkgs/development/octave-modules/strings/default.nix37
-rw-r--r--pkgs/development/octave-modules/struct/default.nix21
-rw-r--r--pkgs/development/octave-modules/symbolic/default.nix46
-rw-r--r--pkgs/development/octave-modules/tisean/default.nix33
-rw-r--r--pkgs/development/octave-modules/tsa/default.nix26
-rw-r--r--pkgs/development/octave-modules/vibes/default.nix39
-rw-r--r--pkgs/development/octave-modules/video/default.nix31
-rw-r--r--pkgs/development/octave-modules/vrml/default.nix41
-rw-r--r--pkgs/development/octave-modules/windows/default.nix21
-rw-r--r--pkgs/development/octave-modules/zeromq/default.nix26
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix4
-rw-r--r--pkgs/development/python-modules/PyRMVtransport/default.nix4
-rw-r--r--pkgs/development/python-modules/adblock/default.nix3
-rw-r--r--pkgs/development/python-modules/addic7ed-cli/default.nix8
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix3
-rw-r--r--pkgs/development/python-modules/aioguardian/default.nix1
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix6
-rw-r--r--pkgs/development/python-modules/androidtv/default.nix4
-rw-r--r--pkgs/development/python-modules/apprise/default.nix10
-rw-r--r--pkgs/development/python-modules/argon2_cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncio_mqtt/default.nix4
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix13
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix8
-rw-r--r--pkgs/development/python-modules/canopen/default.nix4
-rw-r--r--pkgs/development/python-modules/chalice/default.nix3
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix14
-rw-r--r--pkgs/development/python-modules/desktop-notifier/default.nix4
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix7
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/dlib/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/fuzzyfinder/default.nix28
-rw-r--r--pkgs/development/python-modules/github3_py/default.nix4
-rw-r--r--pkgs/development/python-modules/gmusicapi/default.nix3
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix4
-rw-r--r--pkgs/development/python-modules/gpsoauth/default.nix5
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix6
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/json-rpc/default.nix24
-rw-r--r--pkgs/development/python-modules/jsonpath-ng/default.nix42
-rw-r--r--pkgs/development/python-modules/keep/default.nix4
-rw-r--r--pkgs/development/python-modules/kombu/default.nix2
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--pkgs/development/python-modules/lsassy/default.nix1
-rw-r--r--pkgs/development/python-modules/pecan/default.nix1
-rw-r--r--pkgs/development/python-modules/pivy/default.nix2
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix1
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix24
-rw-r--r--pkgs/development/python-modules/pynmea2/default.nix9
-rw-r--r--pkgs/development/python-modules/pyowm/default.nix44
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix17
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix42
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix19
-rw-r--r--pkgs/development/python-modules/python-olm/default.nix13
-rw-r--r--pkgs/development/python-modules/pyvizio/default.nix42
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix19
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/serverlessrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/shapely/default.nix25
-rw-r--r--pkgs/development/python-modules/sharkiqpy/default.nix32
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix5
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix6
-rw-r--r--pkgs/development/python-modules/termplotlib/default.nix36
-rw-r--r--pkgs/development/python-modules/tiros/default.nix20
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix41
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix43
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix34
-rw-r--r--pkgs/development/python-modules/venstarcolortouch/default.nix30
-rw-r--r--pkgs/development/python-modules/wxPython/4.0.nix3
-rw-r--r--pkgs/development/python-modules/wxPython/4.1.nix1
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix26
-rw-r--r--pkgs/development/python-modules/xmpppy/ssl.patch25
-rw-r--r--pkgs/development/tools/air/default.nix24
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix87
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix45
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/checkmake/default.nix49
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/dockle/default.nix16
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/dt-schema/default.nix4
-rw-r--r--pkgs/development/tools/eclipse-mat/default.nix3
-rw-r--r--pkgs/development/tools/electron/default.nix28
-rw-r--r--pkgs/development/tools/errcheck/default.nix4
-rw-r--r--pkgs/development/tools/flyway/default.nix4
-rw-r--r--pkgs/development/tools/github/github-release/default.nix47
-rw-r--r--pkgs/development/tools/gllvm/default.nix4
-rw-r--r--pkgs/development/tools/go-tools/default.nix4
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix14
-rw-r--r--pkgs/development/tools/gops/default.nix24
-rw-r--r--pkgs/development/tools/gotestsum/default.nix6
-rw-r--r--pkgs/development/tools/jq/default.nix3
-rw-r--r--pkgs/development/tools/kubectx/default.nix6
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/metals/default.nix4
-rw-r--r--pkgs/development/tools/misc/ccls/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix3
-rw-r--r--pkgs/development/tools/misc/gpuvis/default.nix42
-rw-r--r--pkgs/development/tools/misc/k2tf/default.nix24
-rw-r--r--pkgs/development/tools/misc/msitools/default.nix9
-rw-r--r--pkgs/development/tools/misc/scc/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/misc/terraformer/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/crunch/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocsigen-i18n/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/generic.nix2
-rw-r--r--pkgs/development/tools/sd-local/default.nix4
-rw-r--r--pkgs/development/tools/yq-go/default.nix4
-rw-r--r--pkgs/development/web/cog/default.nix2
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v14.nix4
-rw-r--r--pkgs/development/web/nodejs/v15.nix4
261 files changed, 3948 insertions, 787 deletions
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 4c440ab97dbb6..2eff5e553ea75 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -23,6 +23,7 @@
 , glib
 , pango
 , gdk-pixbuf
+, gtk2
 , libpng12
 , expat
 , freetype
@@ -56,7 +57,7 @@ let
     gcc.cc.lib
     gdk-pixbuf
     glib
-    gtk3
+    gtk2
     libpng12
     libusb-compat-0_1
     pango
@@ -240,7 +241,7 @@ stdenv.mkDerivation rec {
       patchelf --debug \
           --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
           --set-rpath "${teensy_libpath}" \
-          $out/share/arduino/hardware/tools/teensy
+          $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon}
     ''}
   '';
 
diff --git a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index e20983380a43a..efc94e4baf487 100644
--- a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "adoptopenjdk-icedtea-web";
 
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "AdoptOpenJDK";
     repo = "IcedTea-Web";
     rev = "icedtea-web-${version}";
-    sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
+    sha256 = "sha256-AC6D6n8jLdATXIXrDTHhs2QFnIZNaaZvJyFEqfxCxYQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config bc ];
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index defe78d7c318e..cfbec681e8a1c 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -27,13 +27,13 @@ let
   ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "unstable-2020.11.04";
+  version = "unstable-2021.02.14";
 
   src = fetchFromGitHub {
       owner  = "B-Lang-org";
       repo   = "bsc";
-      rev    = "103357f32cf63f2ca2b16ebc8e2c675ec5562464";
-      sha256 = "0iikzx0fxky0fmc31lyxfldy1wixr2mayzcn24b8d76wd4ix1vk3";
+      rev    = "c085ecd807d85f31d102d8bec71f5c28dc96b31d";
+      sha256 = "0c86gwhrarw78cr9c9slb9vij6kcwx3x281kbqji96qqzs0dfb32";
     };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ocaml/4.12.nix b/pkgs/development/compilers/ocaml/4.12.nix
index c422d2a15a3f3..0662e66e0b6ab 100644
--- a/pkgs/development/compilers/ocaml/4.12.nix
+++ b/pkgs/development/compilers/ocaml/4.12.nix
@@ -1,9 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "12";
-  patch_version = "0-beta1";
-  src = fetchTarball {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~beta1.tar.xz";
-    sha256 = "1rny74mi0knl8byqg2naw1mgvn22c2zihlwvzbkd56j97flqsxsm";
-  };
+  patch_version = "0";
+  sha256 = "1hxy349jfa2vkfgmxf6pvd9w4z5bmcgsg0fxfdabcghyvjw9vvir";
 }
diff --git a/pkgs/development/compilers/openjdk/darwin/11.nix b/pkgs/development/compilers/openjdk/darwin/11.nix
index 64654351886f5..069380802ac5f 100644
--- a/pkgs/development/compilers/openjdk/darwin/11.nix
+++ b/pkgs/development/compilers/openjdk/darwin/11.nix
@@ -7,11 +7,11 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu11.2.3-jdk11.0.1";
+    name = "zulu11.43.21-ca-jdk11.0.9";
 
     src = fetchurl {
       url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
-      sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy";
+      sha256 = "1j19fb5mwdkfn6y8wfsnvxsz6wfpcab4xv439fqssxy520n6q4zs";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
     };
 
diff --git a/pkgs/development/compilers/sbcl/common.nix b/pkgs/development/compilers/sbcl/common.nix
index 2e162ed5a2ef2..11ae960a53171 100644
--- a/pkgs/development/compilers/sbcl/common.nix
+++ b/pkgs/development/compilers/sbcl/common.nix
@@ -22,11 +22,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [texinfo];
 
-  patchPhase = ''
+  postPatch = ''
     echo '"${version}.nixos"' > version.lisp-expr
 
-    pwd
-
     # SBCL checks whether files are up-to-date in many places..
     # Unfortunately, same timestamp is not good enough
     sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
@@ -43,12 +41,6 @@ stdenv.mkDerivation rec {
     # Fix the tests
     sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
     sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
   ''
   + (if purgeNixReferences
     then
@@ -81,16 +73,24 @@ stdenv.mkDerivation rec {
     optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
 
   buildPhase = ''
+    runHook preBuild
+
     sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
                   lib.concatStringsSep " "
                     (builtins.map (x: "--with-${x}") enableFeatures ++
                      builtins.map (x: "--without-${x}") disableFeatures)
                 }
     (cd doc/manual ; make info)
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     INSTALL_ROOT=$out sh install.sh
+
+    runHook postInstall
   ''
   + lib.optionalString (!purgeNixReferences) ''
     cp -r src $out/lib/sbcl
diff --git a/pkgs/development/compilers/scala/2.x.nix b/pkgs/development/compilers/scala/2.x.nix
index a91e0dbe1c726..a0a5f1a2b22c5 100644
--- a/pkgs/development/compilers/scala/2.x.nix
+++ b/pkgs/development/compilers/scala/2.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, nixosTests
+{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils
 , writeScript, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }:
 
 with lib;
@@ -26,8 +26,8 @@ let
     };
 
     "2.13" = {
-      version = "2.13.4";
-      sha256 = "1alcnzmxga00nsvgy8yky91zw5b4q0xg2697vrrdgjlglpxiqwdw";
+      version = "2.13.5";
+      sha256 = "1ah5rw6xqksiayi5i95r3pcff961q71ilishzn2kmg673z0j2b7d";
       pname = "scala_2_13";
     };
   };
@@ -49,20 +49,22 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-      mkdir -p $out
-      rm bin/*.bat
-      mv * $out
-      # put docs in correct subdirectory
-      mkdir -p $out/share/doc
-      mv $out/doc $out/share/doc/${name}
-      mv $out/man $out/share/man
+    runHook preInstall
+    mkdir -p $out
+    rm bin/*.bat
+    mv * $out
+    # put docs in correct subdirectory
+    mkdir -p $out/share/doc
+    mv $out/doc $out/share/doc/${name}
+    mv $out/man $out/share/man
     for p in $(ls $out/bin/) ; do
         wrapProgram $out/bin/$p \
           --prefix PATH ":" ${coreutils}/bin \
           --prefix PATH ":" ${gnugrep}/bin \
           --prefix PATH ":" ${jre}/bin \
           --set JAVA_HOME ${jre}
-      done
+    done
+    runHook postInstall
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 5d891a6d19f37..2356f3cea6501 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -33,13 +33,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.9+3905";
+  version = "0.9+3962";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "4e741adda976260f620e5787d6db3cb28e0e35e7";
-    sha256 = "0ml4c7vfzmivcc289d12m6ki82qdsg5wj00f2aamcvq1y7l4062x";
+    rev    = "5d0cc54f5c36dea1d989438426a321b4554257c8";
+    sha256 = "1c85kga95lin6rcpr7cf80wr9f1a6irdrld9g23zmqdrxhick8y7";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 0a1b3a9a29481..8a093a03d1c1d 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -35,6 +35,8 @@
 # IE: programs coupled with the compiler
 , allowGoReference ? false
 
+, CGO_ENABLED ? go.CGO_ENABLED
+
 , meta ? {}, ... } @ args:
 
 
@@ -75,11 +77,13 @@ let
       ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs;
     buildInputs = buildInputs;
 
-    inherit (go) GOOS GOARCH GO386 CGO_ENABLED;
+    inherit (go) GOOS GOARCH GO386;
 
     GOHOSTARCH = go.GOHOSTARCH or null;
     GOHOSTOS = go.GOHOSTOS or null;
 
+    inherit CGO_ENABLED;
+
     GO111MODULE = "off";
     GOFLAGS = lib.optionals (!allowGoReference) [ "-trimpath" ];
 
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index 93eca9a73f1f4..6277312acc856 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -37,7 +37,10 @@ stdenv.mkDerivation rec {
     libtool
   ];
 
-  patches = [ ./cpp-4.5.patch ];
+  patches = [
+    ./cpp-4.5.patch
+    ./CVE-2016-8605.patch
+  ];
 
   preBuild = ''
     sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
diff --git a/pkgs/development/interpreters/guile/CVE-2016-8605.patch b/pkgs/development/interpreters/guile/CVE-2016-8605.patch
new file mode 100644
index 0000000000000..2fc281357ca86
--- /dev/null
+++ b/pkgs/development/interpreters/guile/CVE-2016-8605.patch
@@ -0,0 +1,59 @@
+commit d514e3fc42eb14a1bc5846b27ef89f50ba3a5d48
+Author: Ludovic Courtès <ludo@gnu.org>
+Date:   Tue Oct 11 10:14:26 2016 +0200
+
+    Remove 'umask' calls from 'mkdir'.
+    
+    Fixes <http://bugs.gnu.org/24659>.
+    
+    * libguile/filesys.c (SCM_DEFINE): Remove calls to 'umask' when MODE is
+    unbound; instead, use 0777 as the mode.  Update docstring to clarify
+    this.
+
+diff --git a/libguile/filesys.c b/libguile/filesys.c
+index c8acb13ef..921f765f1 100644
+--- a/libguile/filesys.c
++++ b/libguile/filesys.c
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2002, 2004, 2006, 2008 Free Software Foundation, Inc.
++/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006,
++ *   2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc.
+  * 
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -791,26 +792,21 @@ SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0,
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+             (SCM path, SCM mode),
+ 	    "Create a new directory named by @var{path}.  If @var{mode} is omitted\n"
+-	    "then the permissions of the directory file are set using the current\n"
+-	    "umask.  Otherwise they are set to the decimal value specified with\n"
+-	    "@var{mode}.  The return value is unspecified.")
++	    "then the permissions of the directory are set to @code{#o777}\n"
++	    "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++	    "Otherwise they are set to the value specified with @var{mode}.\n"
++	    "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+   int rv;
+-  mode_t mask;
++  mode_t c_mode;
+ 
+-  if (SCM_UNBNDP (mode))
+-    {
+-      mask = umask (0);
+-      umask (mask);
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+-    }
+-  else
+-    {
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+-    }
++  c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++  STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+   if (rv != 0)
+     SCM_SYSERROR;
++
+   return SCM_UNSPECIFIED;
+ }
+ #undef FUNC_NAME
diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix
index d0a3b20e5038c..48462a333bcb3 100644
--- a/pkgs/development/interpreters/io/default.nix
+++ b/pkgs/development/interpreters/io/default.nix
@@ -1,18 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, sqlite, gmp, libffi, cairo,
   ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile,
   libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
   python3, openssl, glfw, pkg-config, libpthreadstubs, libXdmcp, libmemcached
 }:
 
 stdenv.mkDerivation {
-  name = "io-2015.11.11";
+  pname = "io";
+  version = "2017.09.06";
   src = fetchFromGitHub {
     owner = "stevedekorte";
     repo = "io";
-    rev = "1fc725e0a8635e2679cbb20521f4334c25273caa";
-    sha256 = "0ll2kd72zy8vf29sy0nnx3awk7nywpwpv21rvninjjaqkygrc0qw";
+    rev = "b8a18fc199758ed09cd2f199a9bc821f6821072a";
+    sha256 = "07rg1zrz6i6ghp11cm14w7bbaaa1s8sb0y5i7gr2sds0ijlpq223";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "check-for-sysctl-h.patch";
+      url = "https://github.com/IoLanguage/io/pull/446/commits/9f3e4d87b6d4c1bf583134d55d1cf92d3464c49f.patch";
+      sha256 = "9f06073ac17f26c2ef6298143bdd1babe7783c228f9667622aa6c91bb7ec7fa0";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -32,6 +41,17 @@ stdenv.mkDerivation {
     sed -ie \
           "s/add_subdirectory(addons)/#add_subdirectory(addons)/g" \
           CMakeLists.txt
+    # Bind Libs STATIC to avoid a segfault when relinking
+    sed -i 's/basekit SHARED/basekit STATIC/' libs/basekit/CMakeLists.txt
+    sed -i 's/garbagecollector SHARED/garbagecollector STATIC/' libs/garbagecollector/CMakeLists.txt
+    sed -i 's/coroutine SHARED/coroutine STATIC/' libs/coroutine/CMakeLists.txt
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/io
+    $out/bin/io_static
   '';
 
   # for gcc5; c11 inline semantics breaks the build
diff --git a/pkgs/development/interpreters/octave/build-env.nix b/pkgs/development/interpreters/octave/build-env.nix
new file mode 100644
index 0000000000000..fee53b716daef
--- /dev/null
+++ b/pkgs/development/interpreters/octave/build-env.nix
@@ -0,0 +1,83 @@
+{ lib, stdenv, octave, buildEnv
+, makeWrapper, texinfo
+, octavePackages
+, wrapOctave
+, computeRequiredOctavePackages
+, extraLibs ? []
+, extraOutputsToInstall ? []
+, postBuild ? ""
+, ignoreCollisions ? false
+}:
+
+# Create an octave executable that knows about additional packages
+let
+  packages = computeRequiredOctavePackages extraLibs;
+
+in buildEnv {
+  name = "${octave.name}-env";
+  paths = extraLibs ++ [ octave ];
+
+  inherit ignoreCollisions;
+  extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
+
+  buildInputs = [ makeWrapper texinfo wrapOctave ];
+
+  # During "build" we must first unlink the /share symlink to octave's /share
+  # Then, we can re-symlink the all of octave/share, except for /share/octave
+  # in env/share/octave, re-symlink everything from octave/share/octave and then
+  # perform the pkg install.
+  postBuild = ''
+      . "${makeWrapper}/nix-support/setup-hook"
+      # The `makeWrapper` used here is the one defined in
+      # ${makeWrapper}/nix-support/setup-hook
+
+      if [ -L "$out/bin" ]; then
+         unlink $out/bin
+         mkdir -p "$out/bin"
+         cd "${octave}/bin"
+         for prg in *; do
+             if [ -x $prg ]; then
+                makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc"
+             fi
+         done
+         cd $out
+      fi
+
+      # Remove symlinks to the input tarballs, they aren't needed.
+      rm $out/*.tar.gz
+
+      createOctavePackagesPath $out ${octave}
+
+      for path in ${lib.concatStringsSep " " packages}; do
+          if [ -e $path/*.tar.gz ]; then
+             $out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \
+                                         pkg prefix $out/${octave.octPkgsPath} $out/${octave.octPkgsPath}; \
+                                         pfx = pkg (\"prefix\"); \
+                                         pkg install -nodeps -local $path/*.tar.gz"
+          fi
+      done
+
+      # Re-write the octave-wide startup file (share/octave/site/m/startup/octaverc)
+      # To point to the new local_list in $out
+      addPkgLocalList $out ${octave}
+
+      wrapOctavePrograms "${lib.concatStringsSep " " packages}"
+     '' + postBuild;
+
+  inherit (octave) meta;
+
+  passthru = octave.passthru // {
+    interpreter = "$out/bin/octave";
+    inherit octave;
+    env = stdenv.mkDerivation {
+      name = "interactive-${octave.name}-environment";
+
+      buildCommand = ''
+        echo >&2 ""
+        echo >&2 "*** octave 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+        echo >&2 ""
+        exit 1
+      '';
+    };
+  };
+}
diff --git a/pkgs/development/interpreters/octave/build-octave-package.nix b/pkgs/development/interpreters/octave/build-octave-package.nix
new file mode 100644
index 0000000000000..73a67769d6a6e
--- /dev/null
+++ b/pkgs/development/interpreters/octave/build-octave-package.nix
@@ -0,0 +1,113 @@
+# Generic builder for GNU Octave libraries.
+# This is a file that contains nested functions. The first, outer, function
+# is the library- and package-wide details, such as the nixpkgs library, any
+# additional configuration provided, and the namePrefix to use (based on the
+# pname and version of Octave), the octave package, etc.
+
+{ lib
+, stdenv
+, config
+, octave
+, texinfo
+, computeRequiredOctavePackages
+, writeRequiredOctavePackagesHook
+}:
+
+# The inner function contains information required to build the individual
+# libraries.
+{ fullLibName ? "${attrs.pname}-${attrs.version}"
+
+, src
+
+, dontPatch ? false
+, patches ? []
+, patchPhase ? ""
+
+, enableParallelBuilding ? true
+# Build-time dependencies for the package, which were compiled for the system compiling this.
+, nativeBuildInputs ? []
+
+# Build-time dependencies for the package, which may not have been compiled for the system compiling this.
+, buildInputs ? []
+
+# Propagate build dependencies so in case we have A -> B -> C,
+# C can import package A propagated by B
+# Run-time dependencies for the package.
+, propagatedBuildInputs ? []
+
+# Octave packages that are required at runtime for this one.
+# These behave similarly to propagatedBuildInputs, where if
+# package A is needed by B, and C needs B, then C also requires A.
+# The main difference between these and propagatedBuildInputs is
+# during the package's installation into octave, where all
+# requiredOctavePackages are ALSO installed into octave.
+, requiredOctavePackages ? []
+
+, preBuild ? ""
+
+, meta ? {}
+
+, passthru ? {}
+
+, ... } @ attrs:
+
+let
+  requiredOctavePackages' = computeRequiredOctavePackages requiredOctavePackages;
+
+in stdenv.mkDerivation {
+  packageName = "${fullLibName}";
+  # The name of the octave package ends up being
+  # "octave-version-package-version"
+  name = "${octave.pname}-${octave.version}-${fullLibName}";
+
+  # This states that any package built with the function that this returns
+  # will be an octave package. This is used for ensuring other octave
+  # packages are installed into octave during the environment building phase.
+  isOctavePackage = true;
+
+  OCTAVE_HISTFILE = "/dev/null";
+
+  inherit src;
+
+  inherit dontPatch patches patchPhase;
+
+  dontConfigure = true;
+
+  enableParallelBuilding = enableParallelBuilding;
+
+  requiredOctavePackages = requiredOctavePackages';
+
+  nativeBuildInputs = [
+    octave
+    writeRequiredOctavePackagesHook
+  ]
+  ++ nativeBuildInputs;
+
+  buildInputs = buildInputs ++ requiredOctavePackages';
+
+  propagatedBuildInputs = propagatedBuildInputs ++ [ texinfo ];
+
+  preBuild = if preBuild == "" then
+    ''
+      # This trickery is needed because Octave expects a single directory inside
+      # at the top-most level of the tarball.
+      tar --transform 's,^,${fullLibName}/,' -cz * -f ${fullLibName}.tar.gz
+    ''
+             else
+               preBuild;
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir -p $out
+    octave-cli --eval "pkg build $out ${fullLibName}.tar.gz"
+
+    runHook postBuild
+  '';
+
+  # We don't install here, because that's handled when we build the environment
+  # together with Octave.
+  dontInstall = true;
+
+  inherit meta;
+}
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 6ad25d24eae67..0a87c1ddcf07f 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, pkgs
 , lib
 # Note: either stdenv.mkDerivation or, for octaveFull, the qt-5 mkDerivation
 # with wrapQtAppsHook (comes from libsForQt5.callPackage)
@@ -45,6 +46,11 @@
 , python ? null
 , overridePlatforms ? null
 , sundials ? null
+# - Packages required for building extra packages.
+, newScope
+, callPackage
+, makeSetupHook
+, makeWrapper
 # - Build Octave Qt GUI:
 , enableQt ? false
 , qtbase ? null
@@ -60,6 +66,7 @@
 }:
 
 let
+
   # Not always evaluated
   blas' = if use64BitIdx then
     blas.override {
@@ -94,118 +101,144 @@ let
   else
     null
   ;
-in mkDerivation rec {
-  version = "6.1.0";
-  pname = "octave";
 
-  src = fetchurl {
-    url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
-    sha256 = "0mqa1g3fq0q45mqc0didr8vl6bk7jzj6gjsf1522qqjq2r04xwvg";
+  octavePackages = import ../../../top-level/octave-packages.nix {
+    inherit pkgs;
+    inherit lib stdenv fetchurl newScope;
+    octave = self;
   };
 
-  buildInputs = [
-    readline
-    ncurses
-    perl
-    flex
-    qhull
-    graphicsmagick
-    pcre
-    fltk
-    zlib
-    curl
-    blas'
-    lapack'
-    libsndfile
-    fftw
-    fftwSinglePrec
-    portaudio
-    qrupdate'
-    arpack'
-    libwebp
-    gl2ps
-  ]
-  ++ lib.optionals enableQt [
-    qtbase
-    qtsvg
-    qscintilla
-  ]
-  ++ lib.optionals (ghostscript != null) [ ghostscript ]
-  ++ lib.optionals (hdf5 != null) [ hdf5 ]
-  ++ lib.optionals (glpk != null) [ glpk ]
-  ++ lib.optionals (suitesparse != null) [ suitesparse' ]
-  ++ lib.optionals (enableJava) [ jdk ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals (gnuplot != null) [ gnuplot ]
-  ++ lib.optionals (python != null) [ python ]
-  ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
-  ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    darwin.apple_sdk.frameworks.Accelerate
-    darwin.apple_sdk.frameworks.Cocoa
-  ]
-  ;
-  nativeBuildInputs = [
-    pkg-config
-    gfortran
-    # Listed here as well because it's outputs are split
-    fftw
-    fftwSinglePrec
-    texinfo
-  ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals enableJIT [ llvm ]
-  ++ lib.optionals enableQt [
-    qtscript
-    qttools
-  ]
-  ;
+  wrapOctave = callPackage ./wrap-octave.nix {
+    octave = self;
+    inherit (pkgs) makeSetupHook makeWrapper;
+  };
+
+  self = mkDerivation rec {
+    version = "6.2.0";
+    pname = "octave";
+
+    src = fetchurl {
+      url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
+      sha256 = "sha256-RX0f2oY0qDni/Xz8VbmL1W82tq5z0xu530Pd4wEsqnw=";
+    };
+
+    buildInputs = [
+      readline
+      ncurses
+      perl
+      flex
+      qhull
+      graphicsmagick
+      pcre
+      fltk
+      zlib
+      curl
+      blas'
+      lapack'
+      libsndfile
+      fftw
+      fftwSinglePrec
+      portaudio
+      qrupdate'
+      arpack'
+      libwebp
+      gl2ps
+    ]
+    ++ lib.optionals enableQt [
+      qtbase
+      qtsvg
+      qscintilla
+    ]
+    ++ lib.optionals (ghostscript != null) [ ghostscript ]
+    ++ lib.optionals (hdf5 != null) [ hdf5 ]
+    ++ lib.optionals (glpk != null) [ glpk ]
+    ++ lib.optionals (suitesparse != null) [ suitesparse' ]
+    ++ lib.optionals (enableJava) [ jdk ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals (gnuplot != null) [ gnuplot ]
+    ++ lib.optionals (python != null) [ python ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Accelerate
+      darwin.apple_sdk.frameworks.Cocoa
+    ]
+    ;
+    nativeBuildInputs = [
+      pkg-config
+      gfortran
+      # Listed here as well because it's outputs are split
+      fftw
+      fftwSinglePrec
+      texinfo
+    ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals enableJIT [ llvm ]
+    ++ lib.optionals enableQt [
+      qtscript
+      qttools
+    ]
+    ;
 
-  doCheck = !stdenv.isDarwin;
+    doCheck = !stdenv.isDarwin;
 
-  enableParallelBuilding = true;
+    enableParallelBuilding = true;
 
-  # See https://savannah.gnu.org/bugs/?50339
-  F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
+    # See https://savannah.gnu.org/bugs/?50339
+    F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
-  configureFlags = [
-    "--with-blas=blas"
-    "--with-lapack=lapack"
-    (if use64BitIdx then "--enable-64" else "--disable-64")
-  ]
+    configureFlags = [
+      "--with-blas=blas"
+      "--with-lapack=lapack"
+      (if use64BitIdx then "--enable-64" else "--disable-64")
+    ]
     ++ lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ]
     ++ lib.optionals enableReadline [ "--enable-readline" ]
     ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ]
     ++ lib.optionals enableQt [ "--with-qt=5" ]
     ++ lib.optionals enableJIT [ "--enable-jit" ]
-  ;
+    ;
 
-  # Keep a copy of the octave tests detailed results in the output
-  # derivation, because someone may care
-  postInstall = ''
-    cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
-  '';
+    # Keep a copy of the octave tests detailed results in the output
+    # derivation, because someone may care
+    postInstall = ''
+      cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
+    '';
 
-  passthru = {
-    sitePath = "share/octave/${version}/site";
-    blas = blas';
-    lapack = lapack';
-    qrupdate = qrupdate';
-    arpack = arpack';
-    suitesparse = suitesparse';
-    inherit python;
-    inherit enableQt enableJIT enableReadline enableJava;
-  };
+    passthru = rec {
+      sitePath = "share/octave/${version}/site";
+      octPkgsPath = "share/octave/octave_packages";
+      blas = blas';
+      lapack = lapack';
+      qrupdate = qrupdate';
+      arpack = arpack';
+      suitesparse = suitesparse';
+      inherit fftw fftwSinglePrec;
+      inherit portaudio;
+      inherit jdk;
+      inherit python;
+      inherit enableQt enableJIT enableReadline enableJava;
+      buildEnv = callPackage ./build-env.nix {
+        octave = self;
+        inherit octavePackages wrapOctave;
+        inherit (octavePackages) computeRequiredOctavePackages;
+      };
+      withPackages = import ./with-packages.nix { inherit buildEnv octavePackages; };
+      pkgs = octavePackages;
+      interpreter = "${self}/bin/octave";
+    };
 
-  meta = {
-    homepage = "https://www.gnu.org/software/octave/";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ raskin doronbehar ];
-    description = "Scientific Pragramming Language";
-    # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
-    broken = enableJIT;
-    platforms = if overridePlatforms == null then
-      (lib.platforms.linux ++ lib.platforms.darwin)
-    else overridePlatforms;
+    meta = {
+      homepage = "https://www.gnu.org/software/octave/";
+      license = lib.licenses.gpl3Plus;
+      maintainers = with lib.maintainers; [ raskin doronbehar ];
+      description = "Scientific Pragramming Language";
+      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
+      broken = enableJIT;
+      platforms = if overridePlatforms == null then
+        (lib.platforms.linux ++ lib.platforms.darwin)
+      else overridePlatforms;
+    };
   };
-}
+
+in self
diff --git a/pkgs/development/interpreters/octave/hooks/default.nix b/pkgs/development/interpreters/octave/hooks/default.nix
new file mode 100644
index 0000000000000..f47560921af3c
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/default.nix
@@ -0,0 +1,13 @@
+# Hooks for building Octave packages.
+{ octave
+, lib
+, callPackage
+, makeSetupHook
+}:
+
+rec {
+  writeRequiredOctavePackagesHook = callPackage ({ }:
+    makeSetupHook {
+      name = "write-required-octave-packages-hook";
+    } ./write-required-octave-packages-hook.sh) {};
+}
diff --git a/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
new file mode 100644
index 0000000000000..64e87d68246f1
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing octave-write-required-octave-packages-hook.sh"
+
+octaveWriteRequiredOctavePackagesPhase() {
+    echo "Executing octaveWriteRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using octaveWriteRequiredOctavePackagesPhase"
+    preDistPhases+=" octaveWriteRequiredOctavePackagesPhase"
+fi
diff --git a/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
new file mode 100644
index 0000000000000..032ea398ac568
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing write-required-octave-packages-hook.sh"
+
+writeRequiredOctavePackagesPhase() {
+    echo "Executing writeRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using writeRequiredOctavePackagesPhase"
+    preDistPhases+=" writeRequiredOctavePackagesPhase"
+fi
diff --git a/pkgs/development/interpreters/octave/with-packages.nix b/pkgs/development/interpreters/octave/with-packages.nix
new file mode 100644
index 0000000000000..f00befbb00d45
--- /dev/null
+++ b/pkgs/development/interpreters/octave/with-packages.nix
@@ -0,0 +1,6 @@
+{ buildEnv, octavePackages }:
+
+# Takes the buildEnv defined for Octave and the set of octavePackages, and returns
+# a function, which when given a function whose return value is a list of extra
+# packages to install, builds and returns that environment.
+f: let packages = f octavePackages; in buildEnv.override { extraLibs = packages; }
diff --git a/pkgs/development/interpreters/octave/wrap-octave.nix b/pkgs/development/interpreters/octave/wrap-octave.nix
new file mode 100644
index 0000000000000..1e4616136a1b9
--- /dev/null
+++ b/pkgs/development/interpreters/octave/wrap-octave.nix
@@ -0,0 +1,16 @@
+{ lib
+, octave
+, makeSetupHook
+, makeWrapper
+}:
+
+# Defined in trivial-builders.nix
+# Imported as wrapOctave in octave/default.nix and passed to octave's buildEnv
+# as nativeBuildInput
+# Each of the substitutions is available in the wrap.sh script as @thingSubstituted@
+makeSetupHook {
+  name = "${octave.name}-pkgs-setup-hook";
+  deps = makeWrapper;
+  substitutions.executable = octave.interpreter;
+  substitutions.octave = octave;
+} ./wrap.sh
diff --git a/pkgs/development/interpreters/octave/wrap.sh b/pkgs/development/interpreters/octave/wrap.sh
new file mode 100644
index 0000000000000..a5969fca2a96e
--- /dev/null
+++ b/pkgs/development/interpreters/octave/wrap.sh
@@ -0,0 +1,132 @@
+# Unlinks a directory (given as the first argument), and re-creates that
+# directory as an actual directory. Then descends into the directory of
+# the same name in the origin (arg_2/arg_3) and symlinks the contents of
+# that directory into the passed end-location.
+unlinkDirReSymlinkContents() {
+    local dirToUnlink="$1"
+    local origin="$2"
+    local contentsLocation="$3"
+
+    unlink $dirToUnlink/$contentsLocation
+    mkdir -p $dirToUnlink/$contentsLocation
+    for f in $origin/$contentsLocation/*; do
+        ln -s -t "$dirToUnlink/$contentsLocation" "$f"
+    done
+}
+
+# Using unlinkDirReSymlinkContents, un-symlinks directories down to
+# $out/share/octave, and then creates the octave_packages directory.
+createOctavePackagesPath() {
+    local desiredOut=$1
+    local origin=$2
+
+    if [ -L "$out/share" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share"
+    fi
+
+    if [ -L "$out/share/octave" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share/octave"
+    fi
+
+    # Now that octave_packages has a path rather than symlinks, create the
+    # octave_packages directory for installed packages.
+    mkdir -p "$desiredOut/share/octave/octave_packages"
+}
+
+# First, descends down to $out/share/octave/site/m/startup/octaverc, and
+# copies that start-up file. Once done, it performs a `chmod` to allow
+# writing. Lastly, it `echo`s the location of the locally installed packages
+# to the startup file, allowing octave to discover installed packages.
+addPkgLocalList() {
+    local desiredOut=$1
+    local origin=$2
+    local octaveSite="share/octave/site"
+    local octaveSiteM="$octaveSite/m"
+    local octaveSiteStartup="$octaveSiteM/startup"
+    local siteOctavercStartup="$octaveSiteStartup/octaverc"
+
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSite"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteM"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteStartup"
+
+    unlink "$out/$siteOctavercStartup"
+    cp "$origin/$siteOctavercStartup" "$desiredOut/$siteOctavercStartup"
+    chmod u+w "$desiredOut/$siteOctavercStartup"
+    echo "pkg local_list $out/.octave_packages" >> "$desiredOut/$siteOctavercStartup"
+}
+
+# Wrapper function for wrapOctaveProgramsIn. Takes one argument, a
+# space-delimited string of packages' paths that will be installed.
+wrapOctavePrograms() {
+    wrapOctaveProgramsIn "$out/bin" "$out" "$@"
+}
+
+# Wraps all octave programs in $out/bin with all the propagated inputs that
+# a particular package requires. $1 is the directory to look for binaries in
+# to wrap. $2 is the path to the octave ENVIRONMENT. $3 is the space-delimited
+# string of packages.
+wrapOctaveProgramsIn() {
+    local dir="$1"
+    local octavePath="$2"
+    local pkgs="$3"
+    local f
+
+    buildOctavePath "$octavePath" "$pkgs"
+
+    # Find all regular files in the output directory that are executable.
+    if [ -d "$dir" ]; then
+        find "$dir" -type f -perm -0100 -print0 | while read -d "" f; do
+            echo "wrapping \`$f'..."
+            local -a wrap_args=("$f"
+                --prefix PATH ':' "$program_PATH"
+                   )
+            local -a wrapProgramArgs=("${wrap_args[@]}")
+            wrapProgram "${wrapProgramArgs[@]}"
+    done
+    fi
+}
+
+# Build the PATH environment variable by walking through the closure of
+# dependencies. Starts by constructing the `program_PATH` variable with the
+# environment's path, then adding the original octave's location, and marking
+# them in `octavePathsSeen`.
+buildOctavePath() {
+    local octavePath="$1"
+    local packages="$2"
+
+    local pathsToSearch="$octavePath $packages"
+
+    # Create an empty table of Octave paths.
+    declare -A octavePathsSeen=()
+    program_PATH=
+    octavePathsSeen["$out"]=1
+    octavePathsSeen["@octave@"]=1
+    addToSearchPath program_PATH "$out/bin"
+    addToSearchPath program_PATH "@octave@/bin"
+    echo "program_PATH to change to is: $program_PATH"
+    for path in $pathsToSearch; do
+    echo "Recurse to propagated-build-input: $path"
+    _addToOctavePath $path
+    done
+}
+
+# Adds the bin directories to the program_PATH variable.
+# Recurses on any paths declared in `propagated-build-inputs`, while avoiding
+# duplicating paths by flagging the directires it has seen in `octavePathsSeen`.
+_addToOctavePath() {
+    local dir="$1"
+    # Stop if we've already visited this path.
+    if [ -n "${octavePathsSeen[$dir]}" ]; then return; fi
+    octavePathsSeen[$dir]=1
+    # addToSearchPath is defined in stdenv/generic/setup.sh. It has the effect
+    # of calling `export X=$dir/...:$X`.
+    addToSearchPath program_PATH $dir/bin
+
+    # Inspect the propagated inputs (if they exist) and recur on them.
+    local prop="$dir/nix-support/propagated-build-inputs"
+    if [ -e $prop ]; then
+    for new_path in $(cat $prop); do
+        _addToOctavePath $new_path
+    done
+    fi
+}
diff --git a/pkgs/development/interpreters/scheme48/default.nix b/pkgs/development/interpreters/scheme48/default.nix
index ca34d5055c561..883b0b2f39aae 100644
--- a/pkgs/development/interpreters/scheme48/default.nix
+++ b/pkgs/development/interpreters/scheme48/default.nix
@@ -1,17 +1,24 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "scheme48-1.9.2";
-
-  meta = {
-    homepage = "http://s48.org/";
-    description = "Scheme 48";
-    platforms = with lib.platforms; unix;
-    license = lib.licenses.bsd3;
-  };
+stdenv.mkDerivation rec {
+  pname = "scheme48";
+  version = "1.9.2";
 
   src = fetchurl {
-    url = "http://s48.org/1.9.2/scheme48-1.9.2.tgz";
+    url = "http://s48.org/${version}/scheme48-${version}.tgz";
     sha256 = "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw";
   };
+
+  # Make more reproducible by removing build user and date.
+  postPatch = ''
+    substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
+  '';
+
+  meta = with lib; {
+    homepage = "http://s48.org/";
+    description = "Scheme 48 interpreter for R5RS";
+    platforms = platforms.unix;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.siraben ];
+  };
 }
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 2cb9ab001c29b..79f73879e6b91 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -1,12 +1,17 @@
-{ lib, pkgs, mavenbuild, fetchMaven }:
+{ lib, pkgs, mavenbuild, fetchMaven, maven, jdk8 }:
 
 with pkgs.javaPackages;
 
 let
   poms = import (../poms.nix) { inherit fetchMaven; };
   collections = import (../collections.nix) { inherit pkgs; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  junitGen = { mavenDeps, sha512, version }: mavenbuild {
+  junitGen = { mavenDeps, sha512, version }: mavenbuild-jdk8 {
     inherit mavenDeps sha512 version;
 
     name = "junit-${version}";
diff --git a/pkgs/development/java-modules/maven-hello/default.nix b/pkgs/development/java-modules/maven-hello/default.nix
index eac127b6dccc7..96d0031270b8e 100644
--- a/pkgs/development/java-modules/maven-hello/default.nix
+++ b/pkgs/development/java-modules/maven-hello/default.nix
@@ -1,11 +1,21 @@
-{ lib, pkgs, mavenbuild }:
+{ lib
+, pkgs
+, mavenbuild
+, maven
+, jdk8
+}:
 
 with pkgs.javaPackages;
 
 let
   poms = import ../poms.nix { inherit fetchMaven; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  mavenHelloRec = { mavenDeps, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
+  mavenHelloRec = { mavenDeps, mavenbuild, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
     inherit mavenDeps sha512 version skipTests quiet;
 
     name = "maven-hello-${version}";
@@ -31,6 +41,7 @@ in rec {
     mavenDeps = [];
     sha512 = "3kv5z1i02wfb0l5x3phbsk3qb3wky05sqn4v3y4cx56slqfp9z8j76vnh8v45ydgskwl2vs9xjx6ai8991mzb5ikvl3vdgmrj1j17p2";
     version = "1.0";
+    mavenbuild = mavenbuild-jdk8;
   };
 
   mavenHello_1_1 = mavenHelloRec {
@@ -39,5 +50,6 @@ in rec {
     version = "1.1";
     skipTests = false;
     quiet = false;
+    mavenbuild = mavenbuild-jdk8;
   };
 }
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 208c74981dcb4..8a8ab23d495eb 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -21,13 +21,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q1.3";
+  version = "2021.Q1.4";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "x9VzPALIlgE3eIKY4/qbFg5w+zd2W/jbqFXgJfpvLP4=";
+    sha256 = "mA7YalgcfjfYdmKPk8L4mfDJWn0rimPDoDB9/S3pyNM=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index 23d7f9d8629ad..937eef2d0d99b 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -26,5 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej eelco ];
+    # https://github.com/awslabs/aws-c-common/issues/754
+    broken = stdenv.hostPlatform.isMusl;
   };
 }
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index dd72b7eb41dfe..700fe4f468604 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.4.21";
+  version = "4.4.24";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25";
+    sha256 = "sha256-RfjD+E8FLFNBkwpOohNAKDINHAhSNEkeVArqtjfn2i0=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch b/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
index 47f4197274590..8a14fb3a5fabe 100644
--- a/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
+++ b/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
@@ -1,18 +1,7 @@
-From 06b2c6dd6439c01bfb5a4c7b0ec6909c349a66b1 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <freddyrietdijk@fridh.nl>
-Date: Thu, 28 Feb 2019 16:25:49 +0100
-Subject: [PATCH] allow setting paths in makefile
-
-and install headers and libs
----
- Makefile | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b507e2b0..d21e5c56 100644
---- a/Makefile
-+++ b/Makefile
-@@ -19,13 +19,13 @@ BUILD_DIR = out
+diff -u a/Makefile b/Makefile
+--- a/Makefile	2020-12-27 18:48:53.934098765 +0100
++++ b/Makefile	2020-12-27 18:50:44.022674117 +0100
+@@ -19,13 +19,13 @@
  # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
  PREFIX ?= /usr/local
  EXEC_PREFIX = $(PREFIX)
@@ -20,24 +9,16 @@ index b507e2b0..d21e5c56 100644
 +BINDIR ?= $(EXEC_PREFIX)/bin
  DATAROOTDIR = $(PREFIX)/share
  DOCDIR = $(DATAROOTDIR)/doc/$(CPROG)
- SYSCONFDIR = $(PREFIX)/etc
+ SYSCONFDIR ?= $(PREFIX)/etc
  HTMLDIR = $(DOCDIR)
 -INCLUDEDIR = $(DESTDIR)$(PREFIX)/include
 -LIBDIR = $(DESTDIR)$(EXEC_PREFIX)/lib
 +INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include
 +LIBDIR ?= $(DESTDIR)$(EXEC_PREFIX)/lib
+ PID_FILE ?= /var/run/$(CPROG).pid
  
  # build tools
- MKDIR = mkdir -p
-@@ -270,17 +270,17 @@ build: $(CPROG) $(CXXPROG)
- unit_test: $(UNIT_TEST_PROG)
- 
- ifeq ($(CAN_INSTALL),1)
--install: $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
-+install: install-headers install-slib $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
- 	install -d -m 755  "$(DOCDIR)"
- 	install -m 644 *.md "$(DOCDIR)"
- 	install -d -m 755 "$(BINDIR)"
+@@ -337,10 +337,10 @@
  	install -m 755 $(CPROG) "$(BINDIR)/"
  
  install-headers:
@@ -50,6 +31,3 @@ index b507e2b0..d21e5c56 100644
  
  install-slib: lib$(CPROG).so
  	$(eval version=$(shell grep -w "define CIVETWEB_VERSION" include/civetweb.h | sed 's|.*VERSION "\(.*\)"|\1|g'))
--- 
-2.19.2
-
diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix
index 8a3474a491f3d..fbbfb6ba73803 100644
--- a/pkgs/development/libraries/civetweb/default.nix
+++ b/pkgs/development/libraries/civetweb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "civetweb";
-  version = "1.11";
+  version = "1.13";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1drnid6gs97cp9zpvsxz42yfj8djmgx98fg9p2993x9mpi547vzv";
+    sha256 = "/q7Q1lavIR3i126uI4NsKByHJ6Tp+DSN60R4YxR506U=";
   };
 
   makeFlags = [
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  installTargets = [
+    "install-headers"
+    "install-lib"
+    "install-slib"
+    "install"
+  ];
+
   preInstall = ''
     mkdir -p $dev/include
     mkdir -p $out/lib
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index fa7d70d521318..096910b238bb0 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -2,6 +2,7 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? true
 }:
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
+    "-DUSE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/eclib/default.nix b/pkgs/development/libraries/eclib/default.nix
index 4709441a1011e..a8697207ed1ae 100644
--- a/pkgs/development/libraries/eclib/default.nix
+++ b/pkgs/development/libraries/eclib/default.nix
@@ -14,7 +14,7 @@ assert withFlint -> flint != null;
 
 stdenv.mkDerivation rec {
   pname = "eclib";
-  version = "20190909"; # upgrade might break the sage interface
+  version = "20210223"; # upgrade might break the sage interface
   # sage tests to run:
   # src/sage/interfaces/mwrank.py
   # src/sage/libs/eclib
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "JohnCremona";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y1vdi4120gdw56gg2dn3wh625yr9wpyk3wpbsd25w4lv83qq5da";
+    sha256 = "sha256-xnSw5cdg4PLa0GT/blCYDz/IG5aj+HG2NHSlyCiH9g0=";
   };
   buildInputs = [
     pari
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 955dd2eeb369c..7f98a9f1122ce 100644
--- a/pkgs/development/libraries/entt/default.nix
+++ b/pkgs/development/libraries/entt/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "entt";
-  version = "3.5.2";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "1p09p1wn8cbj17z83iyyy2498wy1gzyi2mmqi5i2cxglslbm6hy0";
+    sha256 = "sha256-XaQQOt3UekjE4QUUW6+W5M4tkTqeGjZDExJB1U1/gJ8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gexiv2/default.nix b/pkgs/development/libraries/gexiv2/default.nix
index 220b68fa18bc5..071e749b40028 100644
--- a/pkgs/development/libraries/gexiv2/default.nix
+++ b/pkgs/development/libraries/gexiv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gexiv2";
-  version = "0.12.1";
+  version = "0.12.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla";
+    sha256 = "IyK1UqyjMO73lySmmcUaMCNF1eB0c4V4s5i38v+XlEw=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_43 ];
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index e2e0ba3bccf47..38ef25770aa93 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.2";
+  version = "3.3.3";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "0b5lsxz1xkzip7fvbicjkxvg5ig8gbhx1zrlhandqc0rpk56bvyw";
+    sha256 = "sha256-NfEPXjpVnFvh3Y70RZm8nDG0QwJbefF9wYNUq0BZTN4=";
   };
 
   propagatedBuildInputs = [ libGL ];
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 313a063cae898..178bf64f5c296 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,10 +1,8 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gettext
-, config
 , pkg-config
 , python3
 , gst-plugins-base
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index a032f5f5b5a49..3ab25863a8086 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -30,6 +30,7 @@
 , mpg123
 , twolame
 , gtkSupport ? false, gtk3 ? null
+, qt5Support ? false, qt5 ? null
 , raspiCameraSupport ? false, libraspberrypi ? null
 , enableJack ? true, libjack2
 , libXdamage
@@ -102,7 +103,12 @@ stdenv.mkDerivation rec {
   ] ++ optionals gtkSupport [
     # for gtksink
     gtk3
-  ] ++ optionals stdenv.isDarwin [
+  ] ++ optionals qt5Support (with qt5; [
+    qtbase
+    qtdeclarative
+    qtwayland
+    qtx11extras
+  ]) ++ optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Cocoa
   ] ++ optionals stdenv.isLinux [
     libv4l
@@ -118,7 +124,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
     "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
-    "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
+  ] ++ optionals (!qt5Support) [
+    "-Dqt5=disabled"
   ] ++ optionals (!gtkSupport) [
     "-Dgtk3=disabled"
   ] ++ optionals (!enableJack) [
@@ -131,7 +138,6 @@ stdenv.mkDerivation rec {
     "-Dv4l2-gudev=disabled" # Linux-only
     "-Dv4l2=disabled" # Linux-only
     "-Dximagesrc=disabled" # Linux-only
-    "-Dpulse=disabled" # TODO check if we can keep this enabled
   ] ++ optionals (!raspiCameraSupport) [
     "-Drpicamsrc=disabled"
   ];
@@ -150,6 +156,9 @@ stdenv.mkDerivation rec {
   # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
   doCheck = false;
 
+  # must be explicitely set since 5590e365
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "GStreamer Good Plugins";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 8a9c80a61754b..61d87211e0a5c 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
-    sha256 = "1mhj29n40z7bvn1ns61wf8812ikm2mpc0d5ip0ha920z0anzqhwr";
+    sha256 = "sha256-7e9D9Q3CAm+2+0vl81djSZwKrQRXc5UxcbJVMt91/vU=";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/libavif/default.nix b/pkgs/development/libraries/libavif/default.nix
index 8c33e6f1b6dd5..173422fa71e0b 100644
--- a/pkgs/development/libraries/libavif/default.nix
+++ b/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qvjd3xi9r89pcblxdgz4c6hqp67ss53b1x9zkg7lrik7g3lwq8d";
+    sha256 = "sha256-7p0w94Od33vjTI5wGLxmDC5P2hebAl7OwJPl1lANhKs=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix
index 7c458bae19ce1..b8e71c2dfd3f3 100644
--- a/pkgs/development/libraries/libbap/default.nix
+++ b/pkgs/development/libraries/libbap/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation {
   pname = "libbap";
-  version = "master-2019-11-15";
+  version = "master-2020-11-25";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap-bindings";
-    rev = "1a30dd3e1df18c432a83a7038b555662d6982ae3";
-    sha256 = "140gmak2kymh3r0fagb6ms66lmvwhhqj8pcd3qxc1p4ar330fwrh";
+    rev = "3193cb31e1b1f2455406ea0c819dad9dfa2ba10d";
+    sha256 = "0m4spva3z6fgbwlg4zq53l5p227dic893q2qq65pvzxyf7k7nmil";
   };
 
   nativeBuildInputs = [ autoreconfHook which ];
diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix
index 170bb116a8a88..27487c6a31594 100644
--- a/pkgs/development/libraries/libfaketime/default.nix
+++ b/pkgs/development/libraries/libfaketime/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libfaketime";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "https://github.com/wolfcw/libfaketime/archive/v${version}.tar.gz";
-    sha256 = "18s2hjm4sbrlg6sby944z87yslnq9s85p7j892hyr42qrlvq4a06";
+    sha256 = "sha256-V9AYEVA2HAqbXI7vBbETkvYTStosLZmOkuY9rtY5ZHw=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index f3f7313accbbe..979ba7eea539f 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitLab
 , pkg-config
 , meson
+, python3
 , ninja
 , gusb
 , pixman
@@ -10,13 +11,13 @@
 , gobject-introspection
 , coreutils
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfprint";
-  version = "1.90.5";
+  version = "1.90.7";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "libfprint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wfwka2ik4hbb5wk5dp533040sqygwswg91c3v5fvpmmixh5qx9j";
+    sha256 = "sha256-g/yczzCZEzUKV2uFl1MAPL1H/R2QJSwxgppI2ftt9QI=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
     gobject-introspection
   ];
@@ -44,16 +45,29 @@ stdenv.mkDerivation rec {
     nss
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds";
+  checkInputs = [
+    python3
+  ];
 
   mesonFlags = [
     "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d"
+    # Include virtual drivers for fprintd tests
+    "-Ddrivers=all"
   ];
 
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs \
+      tests/test-runner.sh \
+      tests/unittest_inspector.py \
+      tests/virtual-image.py
+  '';
+
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "A library designed to make it easy to add support for consumer fingerprint readers";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 5ab6dde09d785..43092f71c571a 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -9,7 +9,6 @@
 , docbook_xsl
 , docbook_xml_dtd_43
 , gtk3
-, gnome3
 , glade
 , dbus
 , xvfb_run
diff --git a/pkgs/development/libraries/libmaxminddb/default.nix b/pkgs/development/libraries/libmaxminddb/default.nix
index 078865198a453..05ae1af2e2576 100644
--- a/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-fFbnkf8qZVIV5+04ZLH/3X00o4g1d57+1WpC8Fa9WKo=";
+    sha256 = "sha256-UjcHbSUKX3wpfjMcNaQz7qrw3CBeBw5Ns1PJuhDzQKI=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix
index 10197bd8db093..f46a20394646f 100644
--- a/pkgs/development/libraries/libofx/default.nix
+++ b/pkgs/development/libraries/libofx/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libofx";
-  version = "0.9.15";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "LibOFX";
     repo = pname;
     rev = version;
-    sha256 = "1jx56ma351p8af8dvavygjwf6ipa7qbgq7bpdsymwj27apdnixfy";
+    sha256 = "sha256-gdLh5ZUciN4FCJwTCaJSKJ5RjXgNDXnDOUWkyTZwf2c=";
   };
 
   preConfigure = "./autogen.sh";
diff --git a/pkgs/development/libraries/libosmpbf/default.nix b/pkgs/development/libraries/libosmpbf/default.nix
index 1cbfe44ef4e50..572b5710fa9a3 100644
--- a/pkgs/development/libraries/libosmpbf/default.nix
+++ b/pkgs/development/libraries/libosmpbf/default.nix
@@ -1,16 +1,16 @@
 {lib, stdenv, fetchurl, protobuf}:
 
 stdenv.mkDerivation {
-  name = "libosmpbf-1.3.3";
+  name = "libosmpbf-1.5.0";
 
   src = fetchurl {
-    url = "https://github.com/scrosby/OSM-binary/archive/v1.3.3.tar.gz";
-    sha256 = "a109f338ce6a8438a8faae4627cd08599d0403b8977c185499de5c17b92d0798";
+    url = "https://github.com/scrosby/OSM-binary/archive/v1.5.0.tar.gz";
+    sha256 = "sha256-Kr8xJnKXk3MsM4B2OZnMNl5Rv/2jaaAIITh5o82QR2w=";
   };
 
   buildInputs = [ protobuf ];
 
-  sourceRoot = "OSM-binary-1.3.3/src";
+  sourceRoot = "OSM-binary-1.5.0/src";
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index a5b6e3b117ea1..8bd187b5300c1 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.16.1";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "sha256-mTxxiyN4t84BD4bBysvsrvP7L+DNbP6sMlcNFg4eMF8=";
+    sha256 = "sha256-VlKJrGZOMmnWFmdwV3SchBfyRsHM78eNV+uWONLZbJI=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index 10b2451e7c850..24cd29dcb10b4 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "libquotient";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "quotient-im";
     repo = "libQuotient";
     rev = version;
-    sha256 = "sha256-bWqZiRv/mJzw+WY+7dLIzYBu8jhglBqgTjiXyQ1y6IQ=";
+    sha256 = "sha256-TAfo4BkNHE8r32FPT2iDjddq2lk1yC9DrRGZurSO48c=";
   };
 
   buildInputs = [ qtbase qtmultimedia ];
diff --git a/pkgs/development/libraries/libsigsegv/default.nix b/pkgs/development/libraries/libsigsegv/default.nix
index 20cb80b1ff852..4189ba9c6fae4 100644
--- a/pkgs/development/libraries/libsigsegv/default.nix
+++ b/pkgs/development/libraries/libsigsegv/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libsigsegv-2.12";
+  name = "libsigsegv-2.13";
 
   src = fetchurl {
     url = "mirror://gnu/libsigsegv/${name}.tar.gz";
-    sha256 = "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s";
+    sha256 = "sha256-vnjuQXawX3x1/wMpjYSHTbkPS2ydVQPw2hIms6PEgRk=";
   };
 
   patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null;
diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix
index c0019ee268afb..fd7d80574a7d5 100644
--- a/pkgs/development/libraries/libwnck/default.nix
+++ b/pkgs/development/libraries/libwnck/default.nix
@@ -23,5 +23,8 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/libwnck";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    # ./xutils.h:31:10: fatal error: 'gdk/gdkx.h' file not found
+    # #include <gdk/gdkx.h>
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/lime/default.nix b/pkgs/development/libraries/lime/default.nix
index 3a16b5202c47f..e6996a53c8327 100644
--- a/pkgs/development/libraries/lime/default.nix
+++ b/pkgs/development/libraries/lime/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.4.0";
+  version = "4.4.21";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z";
+    sha256 = "sha256-3whr2KSAULRe3McgOtJlA3NEPF8NO6YHp+4vqeMPT5I=";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
diff --git a/pkgs/development/libraries/log4cplus/default.nix b/pkgs/development/libraries/log4cplus/default.nix
index 1e16ee96ae7f9..e9ef841b65d76 100644
--- a/pkgs/development/libraries/log4cplus/default.nix
+++ b/pkgs/development/libraries/log4cplus/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 let
-  name = "log4cplus-2.0.5";
+  name = "log4cplus-2.0.6";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/log4cplus/${name}.tar.bz2";
-    sha256 = "05gb0crf440da3vcaxavglzvsldw8hsvxq3xvvj73mzniv3bz3dk";
+    sha256 = "sha256-GpY6/Q+IPWLelGsYkn0jgFH9R5NuQV6r7/4rE5fxbso=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 3cda9ff3006dc..6cdc24770d4b8 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -33,7 +33,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mediastreamer2";
-  version = "4.4.13";
+  version = "4.4.24";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0w84v1ajhyysr41qaj7x4njwdak84cc10lq33hl8lq68a52fc2vw";
+    sha256 = "sha256-wAWcSvsLRzscpx9YAnBcsoYuy+77yJrU3+cNbRu0i7U=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/notcurses/default.nix b/pkgs/development/libraries/notcurses/default.nix
index 7b9bffb9bc95a..09169019a1284 100644
--- a/pkgs/development/libraries/notcurses/default.nix
+++ b/pkgs/development/libraries/notcurses/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg,
+{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg, readline,
   fetchFromGitHub, lib,
   multimediaSupport ? true
 }:
 let
-  version = "2.1.0";
+  version = "2.1.5";
 in
 stdenv.mkDerivation {
   pname = "notcurses";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake pkg-config pandoc ];
 
-  buildInputs = [ libunistring ncurses ]
+  buildInputs = [ libunistring ncurses readline ]
     ++ lib.optional multimediaSupport ffmpeg;
 
   cmakeFlags =
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     owner  = "dankamongmen";
     repo   = "notcurses";
     rev    = "v${version}";
-    sha256 = "0jvngg40c1sqf85kqy6ya0vflpxsj7j4g6cw609992rifaghxiny";
+    sha256 = "02x9a0z7mbgry2wsfai1l3jwb2zpcg4gq6a2w5d920ap2fixzy8b";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index 4fbc34bcce63d..ca3a081aee00b 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -1,22 +1,25 @@
-{ lib, stdenv, fetchurl, cmake }:
+{ lib, stdenv, fetchFromGitLab, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.1";
+  version = "3.2.2";
 
-  src = fetchurl {
-    url = "https://matrix.org/git/olm/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0iacbi9iibhzifh1bk6bi5xin557lvqmbf4ccsb8drj50dbxjiyr";
+  src = fetchFromGitLab {
+    domain = "gitlab.matrix.org";
+    owner = "matrix-org";
+    repo = pname;
+    rev = version;
+    sha256 = "0qji25wiwmkxyfpraxj96c54hyayqmjkvwh0gsy5gb5pz5bp4mcy";
   };
 
   nativeBuildInputs = [ cmake ];
 
   doCheck = true;
 
-  meta = {
+  meta = with lib; {
     description = "Implements double cryptographic ratchet and Megolm ratchet";
-    license = lib.licenses.asl20;
     homepage = "https://gitlab.matrix.org/matrix-org/olm";
-    platforms = with lib.platforms; darwin ++ linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tilpner oxzi ];
   };
 }
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 8eeff3de94352..da7e9c755a03e 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openscenegraph";
-  version = "3.6.4";
+  version = "3.6.5";
 
   src = fetchFromGitHub {
     owner = "openscenegraph";
     repo = "OpenSceneGraph";
     rev = "OpenSceneGraph-${version}";
-    sha256 = "0x8hdbzw0b71j91fzp9cwmy9a7ava8v8wwyj8nxijq942vdx1785";
+    sha256 = "00i14h82qg3xzcyd8p02wrarnmby3aiwmz0z43l50byc9f8i05n1";
   };
 
   nativeBuildInputs = [ pkg-config cmake doxygen ];
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 9228424797e2c..83eb77b603c52 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opensubdiv";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenSubdiv";
     rev = "v${lib.replaceChars ["."] ["_"] version}";
-    sha256 = "0zpnpg2zzyavv9r3jakv3j2gn603b62rbczrflc6qmg6qvpgz0kr";
+    sha256 = "sha256-ejxQ5mGIIrEa/rAfkTrRbIRerrAvEPoWn7e0lIqS1JQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index 196cac4bcafca..d9d26d0b53789 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ortp";
-  version = "4.4.9";
+  version = "4.4.24";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0igiw863gnf9f626v0igg1pj3fv4anvlvlk6xx3bk2zdi52a9kcc";
+    sha256 = "sha256-jM2kRInti7lG72bSTbdVZLshb3gvgm2EccnZNwzi8UU=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/protolock/default.nix b/pkgs/development/libraries/protolock/default.nix
index ef1fa6efec7bd..7d423ac03470b 100644
--- a/pkgs/development/libraries/protolock/default.nix
+++ b/pkgs/development/libraries/protolock/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protolock";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "nilslice";
     repo = "protolock";
     rev = "v${version}";
-    sha256 = "sha256-rnsHVJHFE/8JIOfMWqGBfIbIuOFyHtT54Vu/DaRY9js=";
+    sha256 = "sha256-cKrG8f8cabuGDN1gmBYleXcBqeJksdREiEy63UK/6J0=";
   };
 
   vendorSha256 = "sha256-3kRGLZgYcbUQb6S+NrleMNNX0dXrE9Yer3vvqxiP4So=";
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index a42941cbb6897..7a9818bce97d3 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-VCGR0Q8FcoDLr+CFTk/OLMI4zs87K/IdZS1ANmkeb4s=";
+    sha256 = "sha256-EoNzxwuLiYi6sMhyqD/x+ku6BKA+i5og4XsUy2JBN0U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/science/math/openlibm/default.nix b/pkgs/development/libraries/science/math/openlibm/default.nix
index 5bfef9e8ba3b8..34ebc36ebb92f 100644
--- a/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.4";
+  version = "0.7.5";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "sha256-61hSBNbJlWkeVUXqT/y4h8FZvwXMXuG7+Spvzd4vzK4=";
+    sha256 = "sha256-vpg7nh5A5pbou7frj2N208oK5nWubYKTZUA4Ww7uwVs=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index 448270183a5fe..37ea3b65728f1 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "1x5f8b5s67kf9sjx04rp81q0f3dlnqfngn3h0lrfnphipald5fji";
+    sha256 = "sha256-azRuLB03NvW+brw7A/kbgkjoDUlk1p7Ch4zZD55QiMQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index b423e557a56e5..7e43fc7f5c321 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -8,7 +8,7 @@ let
 
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
-      sha256 = "0giklai05shqalj1wwadi9hg5dx6vff8nrblqh9xxljnrq701h00";
+      sha256 = "0jgzaawf6vn15qyi15b6dlq80sk2gaiwfikingldx5mhjrwj7pfx";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index f61811428ce6f..dbbaca7e11a7a 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3Packages, dbus-glib, dbus
-, telepathy-farstream, telepathy-glib, fetchpatch }:
+, telepathy-farstream, telepathy-glib }:
 
 let
   inherit (python3Packages) python dbus-python;
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index fa506733c16e9..42e6e920be4e7 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -27,7 +27,21 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  postPatch = "patchShebangs script";
+  patches = [
+    # Do not rely on dynamic loader path
+    # TCTI loader relies on dlopen(), this patch prefixes all calls with the output directory
+    ./no-dynamic-loader-path.patch
+  ];
+
+  postPatch = ''
+    patchShebangs script
+    substituteInPlace src/tss2-tcti/tctildr-dl.c \
+      --replace '@PREFIX@' $out/lib/
+    substituteInPlace ./test/unit/tctildr-dl.c \
+      --replace ', "libtss2' ", \"$out/lib/libtss2" \
+      --replace ', "foo' ", \"$out/lib/foo" \
+      --replace ', TEST_TCTI_NAME' ", \"$out/lib/\"TEST_TCTI_NAME"
+  '';
 
   configureFlags = [
     "--enable-unit"
@@ -35,6 +49,14 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = true;
+  preCheck = ''
+    # Since we rewrote the load path in the dynamic loader for the TCTI
+    # The various tcti implementation should be placed in their target directory
+    # before we could run tests
+    installPhase
+    # install already done, dont need another one
+    dontInstall=1
+  '';
 
   postInstall = ''
     # Do not install the upstream udev rules, they rely on specific
diff --git a/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
new file mode 100644
index 0000000000000..86cdcd1541e69
--- /dev/null
+++ b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
@@ -0,0 +1,39 @@
+diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c
+index b364695c..b13be3ef 100644
+--- a/src/tss2-tcti/tctildr-dl.c
++++ b/src/tss2-tcti/tctildr-dl.c
+@@ -85,7 +85,15 @@ handle_from_name(const char *file,
+     if (handle == NULL) {
+         return TSS2_TCTI_RC_BAD_REFERENCE;
+     }
+-    *handle = dlopen(file, RTLD_NOW);
++    size = snprintf(file_xfrm,
++                    sizeof (file_xfrm),
++                    "@PREFIX@%s",
++                    file);
++    if (size >= sizeof (file_xfrm)) {
++        LOG_ERROR("TCTI name truncated in transform.");
++        return TSS2_TCTI_RC_BAD_VALUE;
++    }
++    *handle = dlopen(file_xfrm, RTLD_NOW);
+     if (*handle != NULL) {
+         return TSS2_RC_SUCCESS;
+     } else {
+@@ -94,7 +102,7 @@ handle_from_name(const char *file,
+     /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE_0,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE_0,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
+@@ -109,7 +117,7 @@ handle_from_name(const char *file,
+     /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix
index 85eaa1ae80e7d..f4d1f3c407721 100644
--- a/pkgs/development/libraries/vtk/generic.nix
+++ b/pkgs/development/libraries/vtk/generic.nix
@@ -93,5 +93,7 @@ in stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp tfmoraes lheckemann ];
     platforms = with platforms; unix;
+    # /nix/store/xxxxxxx-apple-framework-Security/Library/Frameworks/Security.framework/Headers/Authorization.h:192:7: error: variably modified 'bytes' at file scope
+    broken = if stdenv.isDarwin && (majorVersion == 7 || majorVersion == 8) then true else false;
   };
 }
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 48178e7740935..4635a80152de6 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,33 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.6.0";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "0hk3bnzznxj047gwxdxw2v3w6jqq47996m7g72iwj6c2ai9g6h4m";
+    sha256 = "1aa51j0xnhi49izc8djya68l70jkjv25559pgybfb9sa4fa4gz97";
   };
 
-  # almost same as Debian but for now using --enable-all instead of --enable-distro to ensure options.h gets installed
-  configureFlags = [ "--enable-all --enable-pkcs11 --enable-tls13 --enable-base64encode" ];
+  # almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed
+  configureFlags = [ "--enable-all" "--enable-reproducible-build" "--enable-pkcs11" "--enable-tls13" "--enable-base64encode" ];
 
   outputs = [ "out" "dev" "doc" "lib" ];
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  postPatch = ''
-     # fix recursive cycle:
-     # build flags (including location of header files) are exposed in the
-     # public API of wolfssl, causing lib to depend on dev
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_CONFIGURE_ARGS \"$ac_configure_args\"' ' '
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_GLOBAL_CFLAGS \"$CPPFLAGS $AM_CPPFLAGS $CFLAGS $AM_CFLAGS\"' ' '
-  '';
-
-
   postInstall = ''
      # fix recursive cycle:
      # wolfssl-config points to dev, dev propagates bin
@@ -41,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
     homepage    = "https://www.wolfssl.com/";
     platforms   = platforms.all;
-    license = lib.licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ mcmtroffaes ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/atd/default.nix b/pkgs/development/ocaml-modules/atd/default.nix
index e4edac5fdc10c..2f85221e539c6 100644
--- a/pkgs/development/ocaml-modules/atd/default.nix
+++ b/pkgs/development/ocaml-modules/atd/default.nix
@@ -1,22 +1,22 @@
-{ lib, menhir, easy-format, fetchFromGitHub, buildDunePackage, which, biniou, yojson }:
+{ lib, menhir, easy-format, fetchurl, buildDunePackage, which, re }:
 
 buildDunePackage rec {
   pname = "atd";
-  version = "2.0.0";
+  version = "2.2.1";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.02";
 
-  src = fetchFromGitHub {
-    owner = "mjambon";
-    repo = pname;
-    rev = version;
-    sha256 = "0alzmk97rxg7s6irs9lvf89dy9n3r769my5n4j9p9qyigcdgjaia";
+  src = fetchurl {
+    url = "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz";
+    sha256 = "17jm79np69ixp53a4njxnlb1pg8sd1g47nm3nyki9clkc8d4qsyv";
   };
 
-  createFindlibDestdir = true;
-
   buildInputs = [ which menhir ];
-  propagatedBuildInputs = [ easy-format biniou yojson ];
+  propagatedBuildInputs = [ easy-format re ];
+
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mjambon/atd";
diff --git a/pkgs/development/ocaml-modules/atdgen/default.nix b/pkgs/development/ocaml-modules/atdgen/default.nix
index d8ef2fec99900..2537c92d97a55 100644
--- a/pkgs/development/ocaml-modules/atdgen/default.nix
+++ b/pkgs/development/ocaml-modules/atdgen/default.nix
@@ -3,7 +3,7 @@
 let runtime =
   buildDunePackage {
     pname = "atdgen-runtime";
-    inherit (atd) version src;
+    inherit (atd) version useDune2 src;
 
     propagatedBuildInputs = [ biniou yojson ];
 
@@ -13,7 +13,7 @@ let runtime =
 
 buildDunePackage {
   pname = "atdgen";
-  inherit (atd) version src;
+  inherit (atd) version useDune2 src;
 
   buildInputs = [ atd ];
 
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 9284bbaf9c628..94f254a2edfb6 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -2,28 +2,26 @@
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
+, linenoise
+, ppx_bap
 , ppx_bitstring
-, ppx_tools_versioned
+, yojson
 , which, makeWrapper, writeText
 , z3
 }:
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if !lib.versionAtLeast ocaml.version "4.08"
 then throw "BAP is not available for OCaml ${ocaml.version}"
 else
 
-if lib.versionAtLeast core_kernel.version "0.13"
-then throw "BAP needs core_kernel-0.12 (hence OCaml 4.07)"
-else
-
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-bap-${version}";
-  version = "2.1.0";
+  version = "2.2.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "10fkr6p798ad18j4h9bvp9dg4pmjdpv3hmj7k389i0vhqniwi5xq";
+    sha256 = "0c53sps6ba9n5cjdmapi8ylzlpcc11pksijp9swzlwgxyz5d276f";
   };
 
   sigs = fetchurl {
@@ -41,12 +39,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which makeWrapper ];
 
   buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis
-                  llvm ppx_bitstring ppx_tools_versioned
+                  linenoise
+                  ounit
+                  ppx_bitstring
                   z3
                   utop libxml2 ncurses ];
 
-  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_jane core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
-                            piqi-ocaml uuidm frontc ounit ];
+  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_bap core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
+                            piqi-ocaml uuidm frontc yojson ];
 
   installPhase = ''
     export OCAMLPATH=$OCAMLPATH:$OCAMLFIND_DESTDIR;
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   patches = [ ./curses_is_ncurses.patch ];
 
   preConfigure = ''
-    substituteInPlace oasis/elf --replace bitstring.ppx ppx_bitstring
+    substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
   '';
 
   configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
diff --git a/pkgs/development/ocaml-modules/linenoise/default.nix b/pkgs/development/ocaml-modules/linenoise/default.nix
index dd5504dda5ca3..eaeb053239e8f 100644
--- a/pkgs/development/ocaml-modules/linenoise/default.nix
+++ b/pkgs/development/ocaml-modules/linenoise/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "linenoise";
   version = "1.3.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/ocaml-modules/ppx_bap/default.nix b/pkgs/development/ocaml-modules/ppx_bap/default.nix
new file mode 100644
index 0000000000000..f0a223c3db758
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ppx_bap/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildDunePackage
+, fetchFromGitHub
+, ppx_assert
+, ppx_bench
+, ppx_bin_prot
+, ppx_compare
+, ppx_enumerate
+, ppx_hash
+, ppx_here
+, ppx_optcomp
+, ppx_sexp_conv
+, ppx_sexp_value
+}:
+
+buildDunePackage rec {
+  pname = "ppx_bap";
+  version = "0.14";
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchFromGitHub {
+    owner = "BinaryAnalysisPlatform";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c6rcdp8bicdiwqc2mb59cl9l2vxlp3y8hmnr9x924fq7acly248";
+  };
+
+  buildInputs = [
+    ppx_optcomp
+    ppx_sexp_value
+  ];
+
+  propagatedBuildInputs = [
+    ppx_assert
+    ppx_bench
+    ppx_bin_prot
+    ppx_compare
+    ppx_enumerate
+    ppx_hash
+    ppx_here
+    ppx_sexp_conv
+  ];
+
+  meta = {
+    description = "The set of ppx rewriters for BAP";
+    license = lib.licenses.mit;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
index 442a4126a897b..07d817d229381 100644
--- a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "ppx_yojson_conv_lib";
   version = "0.14.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02.3";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
index 30fb5de7cb8e4..dbdf3970f6367 100644
--- a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
+++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
@@ -1,35 +1,27 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, ocaml, findlib, menhir }:
+{ lib, fetchFromGitHub, buildDunePackage, menhir }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
-then throw "psmt2-frontend is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation rec {
-  version = "0.2";
-  name = "ocaml${ocaml.version}-psmt2-frontend-${version}";
+buildDunePackage rec {
+  version = "0.3.1";
+  pname = "psmt2-frontend";
 
   src = fetchFromGitHub {
-    owner = "Coquera";
-    repo = "psmt2-frontend";
+    owner = "ACoquereau";
+    repo = pname;
     rev = version;
-    sha256 = "097zmbrx4gp2gnrxdmsm9lkkp5450gwi0blpxqy3833m6k5brx3n";
+    sha256 = "038jrfsq09nhnzpjiishg4adk09w3aw1bpczgbj66lqqilkd6gci";
   };
 
-  prefixKey = "-prefix ";
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ ocaml findlib menhir ];
+  useDune2 = true;
 
-  createFindlibDestdir = true;
+  minimumOCamlVersion = "4.03";
 
-  installFlags = [ "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
+  buildInputs = [ menhir ];
 
   meta = {
     description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
-    inherit (ocaml.meta) platforms;
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index c9bf285b7bdaa..07025be296ce2 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, dune, cppo, easy-format, biniou }:
+{ lib, stdenv, fetchzip, ocaml, findlib, dune_2, cppo, easy-format, biniou }:
 let
   pname = "yojson";
   param =
@@ -6,7 +6,7 @@ let
     version = "1.7.0";
     url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz";
     sha256 = "08llz96if8bcgnaishf18si76cv11zbkni0aldb54k3cn7ipiqvd";
-    nativeBuildInputs = [ dune ];
+    nativeBuildInputs = [ dune_2 ];
     extra = {
       installPhase = ''
         dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname}
diff --git a/pkgs/development/octave-modules/arduino/default.nix b/pkgs/development/octave-modules/arduino/default.nix
new file mode 100644
index 0000000000000..f6536108e6cc3
--- /dev/null
+++ b/pkgs/development/octave-modules/arduino/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, instrument-control
+, arduino
+}:
+
+buildOctavePackage rec {
+  pname = "arduino";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0fnfk206n31s7diijaylmqhxnr88z6l3l3vsxq4z8gcp9ylm9nkj";
+  };
+
+  requiredOctavePackages = [
+    instrument-control
+  ];
+
+  # Might be able to use pkgs.arduino-core
+  propagatedBuildInputs = [
+    arduino
+  ];
+
+  meta = with lib; {
+    name = "Octave Arduino Toolkit";
+    homepage = "https://octave.sourceforge.io/arduino/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Basic Octave implementation of the matlab arduino extension, allowing communication to a programmed arduino board to control its hardware";
+  };
+}
diff --git a/pkgs/development/octave-modules/audio/default.nix b/pkgs/development/octave-modules/audio/default.nix
new file mode 100644
index 0000000000000..4fafefd6f75de
--- /dev/null
+++ b/pkgs/development/octave-modules/audio/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, jack2
+, alsaLib
+, rtmidi
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "audio";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18lyvwmdy4b9pcv5sm7g17n3is32q23daw8fcsalkf4rj6cc6qdk";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    jack2
+    alsaLib
+    rtmidi
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/audio/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Audio and MIDI Toolbox for GNU Octave";
+    platforms = platforms.linux; # Because of run-time dependency on jack2 and alsaLib
+  };
+}
diff --git a/pkgs/development/octave-modules/bim/default.nix b/pkgs/development/octave-modules/bim/default.nix
new file mode 100644
index 0000000000000..5dc8ca88710d6
--- /dev/null
+++ b/pkgs/development/octave-modules/bim/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fpl
+, msh
+}:
+
+buildOctavePackage rec {
+  pname = "bim";
+  version = "1.1.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0y70w8mj80c5yns1j7nwngwwrxp1pa87kyz2n2yvmc3zdigcd6g8";
+  };
+
+  requiredOctavePackages = [
+    fpl
+    msh
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bim/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for solving Diffusion Advection Reaction (DAR) Partial Differential Equations";
+  };
+}
diff --git a/pkgs/development/octave-modules/bsltl/default.nix b/pkgs/development/octave-modules/bsltl/default.nix
new file mode 100644
index 0000000000000..aefe543b097d2
--- /dev/null
+++ b/pkgs/development/octave-modules/bsltl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "bsltl";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0i8ry347y5f5db3702nhpsmfys9v18ks2fsmpdqpy3fcvrwaxdsb";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bsltl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Free collection of OCTAVE/MATLAB routines for working with the biospeckle laser technique";
+  };
+}
diff --git a/pkgs/development/octave-modules/cgi/default.nix b/pkgs/development/octave-modules/cgi/default.nix
new file mode 100644
index 0000000000000..4686881251afa
--- /dev/null
+++ b/pkgs/development/octave-modules/cgi/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "cgi";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hygj7cpwrs2w9bfb7qrvv7gq410bfiddqvza8smg766pqmfp1s1";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/cgi/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Common Gateway Interface for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/communications/default.nix b/pkgs/development/octave-modules/communications/default.nix
new file mode 100644
index 0000000000000..492c837255f78
--- /dev/null
+++ b/pkgs/development/octave-modules/communications/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, signal
+, hdf5
+}:
+
+buildOctavePackage rec {
+  pname = "communications";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xay2vjyadv3ja8dmqqzm2his8s0rvidz23nq1c2yl3xh1gavyck";
+  };
+
+  buildInputs = [
+    hdf5
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/communications/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = " Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields";
+  };
+}
diff --git a/pkgs/development/octave-modules/control/default.nix b/pkgs/development/octave-modules/control/default.nix
new file mode 100644
index 0000000000000..2d61e30cc60cd
--- /dev/null
+++ b/pkgs/development/octave-modules/control/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+, lapack, blas
+}:
+
+buildOctavePackage rec {
+  pname = "control";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gjyjsxs01x0nyc4cgn3d5af17l3lzs8h4hsm57nxd3as48dbwgs";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  buildInputs = [
+    lapack blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library";
+  };
+}
diff --git a/pkgs/development/octave-modules/data-smoothing/default.nix b/pkgs/development/octave-modules/data-smoothing/default.nix
new file mode 100644
index 0000000000000..551582a77703e
--- /dev/null
+++ b/pkgs/development/octave-modules/data-smoothing/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "data-smoothing";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0q0vqdmp8ygyfhk296xbxcpsh5wvpa2kfgv4v0rys68nd2lxfaq1";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/data-smoothing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Algorithms for smoothing noisy data";
+  };
+}
diff --git a/pkgs/development/octave-modules/database/default.nix b/pkgs/development/octave-modules/database/default.nix
new file mode 100644
index 0000000000000..3e1fe863276cd
--- /dev/null
+++ b/pkgs/development/octave-modules/database/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, postgresql
+}:
+
+buildOctavePackage rec {
+  pname = "database";
+  version = "2.4.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1c0n76adi0jw6bx62s04vjyda6kb6ca8lzz2vam43vdy10prcq9p";
+  };
+
+  propagatedBuildInputs = [
+    postgresql
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/database/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to SQL databases, currently only postgresql using libpq";
+  };
+}
diff --git a/pkgs/development/octave-modules/dataframe/default.nix b/pkgs/development/octave-modules/dataframe/default.nix
new file mode 100644
index 0000000000000..8f145f0d510c2
--- /dev/null
+++ b/pkgs/development/octave-modules/dataframe/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "dataframe";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10ara084gkb7d5vxv9qv7zpj8b4mm5y06nccrdy3skw5nfbb4djx";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dataframe/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Data manipulation toolbox similar to R data.frame";
+  };
+}
diff --git a/pkgs/development/octave-modules/dicom/default.nix b/pkgs/development/octave-modules/dicom/default.nix
new file mode 100644
index 0000000000000..e16b6447805ea
--- /dev/null
+++ b/pkgs/development/octave-modules/dicom/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gdcm
+, cmake
+}:
+
+buildOctavePackage rec {
+  pname = "dicom";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "131wn6mrv20np10plirvqia8dlpz3g0aqi3mmn2wyl7r95p3dnza";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [
+    gdcm
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dicom/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Digital communications in medicine (DICOM) file io";
+  };
+}
diff --git a/pkgs/development/octave-modules/divand/default.nix b/pkgs/development/octave-modules/divand/default.nix
new file mode 100644
index 0000000000000..ac8de9060680a
--- /dev/null
+++ b/pkgs/development/octave-modules/divand/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "divand";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nmaz5j37dflz7p4a4lmwzkh7g1gghdh7ccvkbyy0fpgv9lr1amg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/divand/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Performs an n-dimensional variational analysis (interpolation) of arbitrarily located observations";
+  };
+}
diff --git a/pkgs/development/octave-modules/doctest/default.nix b/pkgs/development/octave-modules/doctest/default.nix
new file mode 100644
index 0000000000000..3c02a20cdad15
--- /dev/null
+++ b/pkgs/development/octave-modules/doctest/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "doctest";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hh9izj9ds69bmrvmmj16fd1c4z7733h50c7isl8f714srw26kf4";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/doctest/index.html";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Find and run example code within documentation";
+    longDescription = ''
+      Find and run example code within documentation. Formatted blocks
+      of example code are extracted from documentation files and executed
+      to confirm their output is correct. This can be part of a testing
+      framework or simply to ensure that documentation stays up-to-date
+      during software development.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/econometrics/default.nix b/pkgs/development/octave-modules/econometrics/default.nix
new file mode 100644
index 0000000000000..0aa795959ab6b
--- /dev/null
+++ b/pkgs/development/octave-modules/econometrics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "econometrics";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1srx78k90ycla7yisa9h593n9l8br31lsdxlspra8sxiyq0sbk72";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/econometrics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Econometrics functions including MLE and GMM based techniques";
+  };
+}
diff --git a/pkgs/development/octave-modules/fem-fenics/default.nix b/pkgs/development/octave-modules/fem-fenics/default.nix
new file mode 100644
index 0000000000000..300dfd758774e
--- /dev/null
+++ b/pkgs/development/octave-modules/fem-fenics/default.nix
@@ -0,0 +1,35 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, dolfin
+, ffc
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fem-fenics";
+  version = "0.0.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xd80nnkschldvrqx0wvrg3fzbf8sck8bvq24phr5x49xs7b8x78";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    dolfin
+    ffc
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fem-fenics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for the resolution of partial differential equations based on fenics";
+    # Lots of compilation errors for newer octave versions and syntax errors
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/financial/default.nix b/pkgs/development/octave-modules/financial/default.nix
new file mode 100644
index 0000000000000..5fb6a00df78b0
--- /dev/null
+++ b/pkgs/development/octave-modules/financial/default.nix
@@ -0,0 +1,23 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "financial";
+  version = "0.5.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0f963yg6pwvrdk5fg7b71ny47gzy48nqxdzj2ngcfrvmb5az4vmf";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/financial/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Monte Carlo simulation, options pricing routines, financial manipulation, plotting functions and additional date manipulation tools";
+  };
+}
diff --git a/pkgs/development/octave-modules/fits/default.nix b/pkgs/development/octave-modules/fits/default.nix
new file mode 100644
index 0000000000000..9d236cb9f1fa5
--- /dev/null
+++ b/pkgs/development/octave-modules/fits/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, cfitsio
+, hdf5
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fits";
+  version = "1.0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jab5wmrpifqphmrfkqcyrlpc0h4y4m735yc3avqqjajz1rl24lm";
+  };
+
+  # Found here: https://build.opensuse.org/package/view_file/science/octave-forge-fits/octave-forge-fits.spec?expand=1
+  patchPhase = ''
+    sed -i -s -e 's/D_NINT/octave::math::x_nint/g' src/*.cc
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    hdf5
+  ];
+
+  propagatedBuildInputs = [
+    cfitsio
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fits/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for reading, and writing FITS (Flexible Image Transport System) files using cfitsio";
+  };
+}
diff --git a/pkgs/development/octave-modules/fpl/default.nix b/pkgs/development/octave-modules/fpl/default.nix
new file mode 100644
index 0000000000000..e5b276c0c20de
--- /dev/null
+++ b/pkgs/development/octave-modules/fpl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fpl";
+  version = "1.3.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cbpahn9flrv9ppp5xakhwh8vyyy7wzlsz22i3s93yqg9q2bh4ys";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fpl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines to export data produced by Finite Elements or Finite Volume Simulations in formats used by some visualization programs";
+  };
+}
diff --git a/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
new file mode 100644
index 0000000000000..5cb567b2bb85d
--- /dev/null
+++ b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fuzzy-logic-toolkit";
+  version = "0.4.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cs1xh594h1psdinicxrsvm27gzax5jja7bjk4sl3kk2hv24mhml";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fuzzy-logic-toolkit/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A mostly MATLAB-compatible fuzzy logic toolkit for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/ga/default.nix b/pkgs/development/octave-modules/ga/default.nix
new file mode 100644
index 0000000000000..a5265a4ce4505
--- /dev/null
+++ b/pkgs/development/octave-modules/ga/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ga";
+  version = "0.10.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s5azn4n174avlmh5gw21zfqfkyxkzn4v09q4l9swv7ldmg3mirv";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ga/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Genetic optimization code";
+  };
+}
diff --git a/pkgs/development/octave-modules/general/default.nix b/pkgs/development/octave-modules/general/default.nix
new file mode 100644
index 0000000000000..52ad9af93b0f4
--- /dev/null
+++ b/pkgs/development/octave-modules/general/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, nettle
+}:
+
+buildOctavePackage rec {
+  pname = "general";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jmvczssqz1aa665v9h8k9cchb7mg3n9af6b5kh9b2qcjl4r9l7v";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    nettle
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/general/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "General tools for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/generate_html/default.nix b/pkgs/development/octave-modules/generate_html/default.nix
new file mode 100644
index 0000000000000..83f3a65bedc23
--- /dev/null
+++ b/pkgs/development/octave-modules/generate_html/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "generate_html";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1ai4h7jf9fqi7w565iprzylsh94pg4rhyf51hfj9kfdgdpb1abfs";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/generate_html/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for generating HTML pages that contain the help texts for a set of functions";
+    longDescription = ''
+      This package provides functions for generating HTML pages that contain
+      the help texts for a set of functions. The package is designed to be as
+      general as possible, but also contains convenience functions for generating
+      a set of pages for entire packages.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/geometry/default.nix b/pkgs/development/octave-modules/geometry/default.nix
new file mode 100644
index 0000000000000..b4bf57262faec
--- /dev/null
+++ b/pkgs/development/octave-modules/geometry/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, matgeom
+}:
+
+buildOctavePackage rec {
+  pname = "geometry";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zmd97xir62fr5v57xifh2cvna5fg67h9yb7bp2vm3ll04y41lhs";
+  };
+
+  requiredOctavePackages = [
+    matgeom
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/geometry/index.html";
+    license = with licenses; [ gpl3Plus boost ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Library for extending MatGeom functionality";
+  };
+}
diff --git a/pkgs/development/octave-modules/gsl/default.nix b/pkgs/development/octave-modules/gsl/default.nix
new file mode 100644
index 0000000000000..5922c015dbdf0
--- /dev/null
+++ b/pkgs/development/octave-modules/gsl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gsl
+}:
+
+buildOctavePackage rec {
+  pname = "gsl";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1lvfxbqmw8h1nlrxmvrl6j4xffmbzxfhdpxz3vrc6lg2g4jwaa6h";
+  };
+
+  buildInputs = [
+    gsl
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/gsl/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Octave bindings to the GNU Scientific Library";
+  };
+}
diff --git a/pkgs/development/octave-modules/image-acquisition/default.nix b/pkgs/development/octave-modules/image-acquisition/default.nix
new file mode 100644
index 0000000000000..08c4305999b36
--- /dev/null
+++ b/pkgs/development/octave-modules/image-acquisition/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, libv4l
+, fltk
+}:
+
+buildOctavePackage rec {
+  pname = "image-acquisition";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amp6npkddnnz2i5rm6gvn65qrbn0nxzl2cja3dvc2xqg396wrhh";
+  };
+
+  buildInputs = [
+    libv4l
+    fltk
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image-acquisition/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions to capture images from connected devices";
+    longDescription = ''
+      The Octave-forge Image Aquisition package provides functions to
+      capture images from connected devices. Currently only v4l2 is supported.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/image/default.nix b/pkgs/development/octave-modules/image/default.nix
new file mode 100644
index 0000000000000..8bff55fadc64f
--- /dev/null
+++ b/pkgs/development/octave-modules/image/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "image";
+  version = "2.12.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d3kqhbkq9acc29k42fcilfmykk9a0r321mvk46l5iibc7nqrmg7";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for processing images";
+    longDescription = ''
+       The Octave-forge Image package provides functions for processing
+       images. The package also provides functions for feature extraction,
+       image statistics, spatial and geometric transformations, morphological
+       operations, linear filtering, and much more.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/instrument-control/default.nix b/pkgs/development/octave-modules/instrument-control/default.nix
new file mode 100644
index 0000000000000..51c8f300cc592
--- /dev/null
+++ b/pkgs/development/octave-modules/instrument-control/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "instrument-control";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0vckax6rx5v3fq5j6kb6n39a5zas9i24x4wvmjlhc8xbykkg5nkk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/instrument-control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Low level I/O functions for serial, i2c, spi, parallel, tcp, gpib, vxi11, udp and usbtmc interfaces";
+  };
+}
diff --git a/pkgs/development/octave-modules/interval/default.nix b/pkgs/development/octave-modules/interval/default.nix
new file mode 100644
index 0000000000000..0891a6143852d
--- /dev/null
+++ b/pkgs/development/octave-modules/interval/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, mpfr
+}:
+
+buildOctavePackage rec {
+  pname = "interval";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0a0sz7b4y53qgk1xr4pannn4w7xiin2pf74x7r54hrr1wf4abp20";
+  };
+
+  propagatedBuildInputs = [
+    mpfr
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/interval/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interval arithmetic to evaluate functions over subsets of their domain";
+    longDescription = ''
+       The interval package for real-valued interval arithmetic allows one to
+       evaluate functions over subsets of their domain. All results are verified,
+       because interval computations automatically keep track of any errors.
+
+       These concepts can be used to handle uncertainties, estimate arithmetic
+       errors and produce reliable results. Also it can be applied to
+       computer-assisted proofs, constraint programming, and verified computing.
+
+       The implementation is based on interval boundaries represented by
+       binary64 numbers and is conforming to IEEE Std 1788-2015, IEEE standard
+       for interval arithmetic.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/io/default.nix b/pkgs/development/octave-modules/io/default.nix
new file mode 100644
index 0000000000000..57058c5f95de5
--- /dev/null
+++ b/pkgs/development/octave-modules/io/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, enableJava
+, jdk
+, unzip
+}:
+
+buildOctavePackage rec {
+  pname = "io";
+  version = "2.6.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "044y8lfp93fx0592mv6x2ss0nvjkjgvlci3c3ahav76pk1j3rikb";
+  };
+
+  buildInputs = [
+    (lib.optional enableJava jdk)
+  ];
+
+  propagatedBuildInputs = [
+    unzip
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/io/index.html";
+    license = with licenses; [ gpl3Plus bsd2 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Input/Output in external formats";
+  };
+}
diff --git a/pkgs/development/octave-modules/level-set/default.nix b/pkgs/development/octave-modules/level-set/default.nix
new file mode 100644
index 0000000000000..d1f882904d598
--- /dev/null
+++ b/pkgs/development/octave-modules/level-set/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchgit
+, automake
+, autoconf
+, autoconf-archive
+, parallel
+}:
+
+buildOctavePackage rec {
+  pname = "level-set";
+  version = "2019-04-13";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/octave/${pname}";
+    rev = "dbf46228a7582eef4fe5470fd00bc5b421dd33a5";
+    sha256 = "14qwa4j24m2j7njw8gbagkgmp040h6k0h7kyrrzgb9y0jm087qkl";
+    fetchSubmodules = false;
+  };
+
+  # The monstrosity of a regex below is to ensure that only error() calls are
+  # corrected to have a %s format specifier. However, logic_error() also
+  # exists, (a simple regex also matches that), but logic_error() doesn't
+  # require a format specifier. So, this regex was born to handle that...
+  patchPhase = ''
+    substituteInPlace build.sh --replace "level-set-0.3.1" "${pname}-${version}" \
+                               --replace "\`pwd\`" '/build'
+    sed -i -E 's#[^[:graph:]]error \(# error \(\"%s\", #g' src/*.cpp
+  '';
+
+  nativeBuildInputs = [
+    automake
+    autoconf
+    autoconf-archive
+  ];
+
+  requiredOctavePackages = [
+    parallel
+  ];
+
+  preBuild = ''
+    mkdir -p $out
+    source ./build.sh
+    cd -
+  '';
+
+  meta = with lib; {
+    name = "Level Set";
+    homepage = "https://octave.sourceforge.io/level-set/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function";
+  };
+}
diff --git a/pkgs/development/octave-modules/linear-algebra/default.nix b/pkgs/development/octave-modules/linear-algebra/default.nix
new file mode 100644
index 0000000000000..18818c1db6064
--- /dev/null
+++ b/pkgs/development/octave-modules/linear-algebra/default.nix
@@ -0,0 +1,22 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "linear-algebra";
+  version = "2.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wwjpxp9vjc6lszh0z3kgy4hyzpib8rvvh6b74ijh9qk9r9nmvjk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/linear-algebra/index.html";
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    # They claim to have a FreeBSD license, but none of their code seems to have it.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional linear algebra code, including matrix functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/lssa/default.nix b/pkgs/development/octave-modules/lssa/default.nix
new file mode 100644
index 0000000000000..f737c104f3021
--- /dev/null
+++ b/pkgs/development/octave-modules/lssa/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "lssa";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10h9lzsi7pqh93i7y50b618g05fnbw9n0i505bz5kz4avfa990zh";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/lssa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Tools to compute spectral decompositions of irregularly-spaced time series";
+    longDescription = ''
+       A package implementing tools to compute spectral decompositions of
+       irregularly-spaced time series. Currently includes functions based off
+       the Lomb-Scargle periodogram and Adolf Mathias' implementation for R
+       and C.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/ltfat/default.nix b/pkgs/development/octave-modules/ltfat/default.nix
new file mode 100644
index 0000000000000..505670f6298b1
--- /dev/null
+++ b/pkgs/development/octave-modules/ltfat/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fftw
+, fftwSinglePrec
+, fftwFloat
+, fftwLongDouble
+, lapack
+, blas
+, portaudio
+, jdk
+}:
+
+buildOctavePackage rec {
+  pname = "ltfat";
+  version = "2.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gghh5a4w649ff776wvidfvqas87m0n7rqs960pid1d11bnyqqrh";
+  };
+
+  patches = [
+    # Fixes a syntax error with performing multiplication.
+    ./syntax-error.patch
+  ];
+
+  buildInputs = [
+    fftw
+    fftwSinglePrec
+    fftwFloat
+    fftwLongDouble
+    lapack
+    blas
+    portaudio
+    jdk
+  ];
+
+  meta = with lib; {
+    name = "The Large Time-Frequency Analysis Toolbox";
+    homepage = "https://octave.sourceforge.io/ltfat/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Toolbox for working with time-frequency analysis, wavelets and signal processing";
+    longDescription = ''
+      The Large Time/Frequency Analysis Toolbox (LTFAT) is a Matlab/Octave
+      toolbox for working with time-frequency analysis, wavelets and signal
+      processing. It is intended both as an educational and a computational
+      tool. The toolbox provides a large number of linear transforms including
+      Gabor and wavelet transforms along with routines for constructing windows
+      (filter prototypes) and routines for manipulating coefficients.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/ltfat/syntax-error.patch b/pkgs/development/octave-modules/ltfat/syntax-error.patch
new file mode 100644
index 0000000000000..732030b704342
--- /dev/null
+++ b/pkgs/development/octave-modules/ltfat/syntax-error.patch
@@ -0,0 +1,15 @@
+diff --git a/inst/nonstatgab/nsdgt.m b/inst/nonstatgab/nsdgt.m
+index ac53963..81656cb 100644
+--- a/inst/nonstatgab/nsdgt.m
++++ b/inst/nonstatgab/nsdgt.m
+@@ -149,8 +149,8 @@ for ii = 1:N
+         col = ceil(Lg/M(ii));
+         
+         temp = zeros(col*M(ii),W,assert_classname(f,g{1}));
+-        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@ ...
+-                                                          times,f(win_range,:),g{ii}(idx));
++        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@times, ...
++                                                          f(win_range,:),g{ii}(idx));
+         
+         temp = reshape(temp,M(ii),col,W);
+         X = squeeze(fft(sum(temp,2)));
diff --git a/pkgs/development/octave-modules/mapping/default.nix b/pkgs/development/octave-modules/mapping/default.nix
new file mode 100644
index 0000000000000..26cea27a7253d
--- /dev/null
+++ b/pkgs/development/octave-modules/mapping/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io # >= 2.2.7
+, geometry # >= 4.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "mapping";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wj0q1rkrqs4qgpjh4vn9kcpdh94pzr6v4jc1vcrjwkp87yjv8c0";
+  };
+
+  requiredOctavePackages = [
+    io
+    geometry
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mapping/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Simple mapping and GIS .shp .dxf and raster file functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/matgeom/default.nix b/pkgs/development/octave-modules/matgeom/default.nix
new file mode 100644
index 0000000000000..b8607cf5dff93
--- /dev/null
+++ b/pkgs/development/octave-modules/matgeom/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "matgeom";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05xfmlh1k3mhq8yag7gr8q1ysl1s43vm46fr1i3gcg9b1kkwi8by";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/matgeom/index.html";
+    license = with licenses; [ bsd2 gpl3Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Geometry toolbox for 2D/3D geometric computing";
+  };
+}
diff --git a/pkgs/development/octave-modules/miscellaneous/default.nix b/pkgs/development/octave-modules/miscellaneous/default.nix
new file mode 100644
index 0000000000000..74c3879aa9efa
--- /dev/null
+++ b/pkgs/development/octave-modules/miscellaneous/default.nix
@@ -0,0 +1,34 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Build-time dependencies
+, mlterm
+, ncurses # >= 5
+, units
+}:
+
+buildOctavePackage rec {
+  pname = "miscellaneous";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10n107njz24ln7v9a1l3dkh7s7vd6qwgbinrj1nl4wflxsir4l9k";
+  };
+
+  buildInputs = [
+    mlterm
+    ncurses
+  ];
+
+  propagatedBuildInputs = [
+    units
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/miscellaneous/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Miscellaneous tools that don't fit somewhere else";
+  };
+}
diff --git a/pkgs/development/octave-modules/msh/default.nix b/pkgs/development/octave-modules/msh/default.nix
new file mode 100644
index 0000000000000..a4e876c8128f8
--- /dev/null
+++ b/pkgs/development/octave-modules/msh/default.nix
@@ -0,0 +1,56 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave Dependencies
+, splines
+# Other Dependencies
+, gmsh
+, gawk
+, pkg-config
+, dolfin
+, autoconf, automake
+}:
+
+buildOctavePackage rec {
+  pname = "msh";
+  version = "1.0.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb5qrp9y1w1cbzrd9v84430ldy57ca843yspnrgbcqpxyyxbgfz";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoconf automake
+    dolfin
+  ];
+
+  buildInputs = [
+    dolfin
+  ];
+
+  propagatedBuildInputs = [
+    gmsh
+    gawk
+    dolfin
+  ];
+
+  requiredOctavePackages = [
+    splines
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/msh/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Create and manage triangular and tetrahedral meshes for Finite Element or Finite Volume PDE solvers";
+    longDescription = ''
+      Create and manage triangular and tetrahedral meshes for Finite Element or
+      Finite Volume PDE solvers. Use a mesh data structure compatible with
+      PDEtool. Rely on gmsh for unstructured mesh generation.
+    '';
+    # Not technically broken, but missing some functionality.
+    # dolfin needs to be its own stand-alone library for the last tests to pass.
+  };
+}
diff --git a/pkgs/development/octave-modules/mvn/default.nix b/pkgs/development/octave-modules/mvn/default.nix
new file mode 100644
index 0000000000000..06fd1905604dd
--- /dev/null
+++ b/pkgs/development/octave-modules/mvn/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "mvn";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "00w69hxqnqdm3744z6p7gvzci44a3gy228x6bgq3xf5n3jwicnmg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mvn/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Multivariate normal distribution clustering and utility functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/nan/default.nix b/pkgs/development/octave-modules/nan/default.nix
new file mode 100644
index 0000000000000..a0517db714bda
--- /dev/null
+++ b/pkgs/development/octave-modules/nan/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "nan";
+  version = "3.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0bp8zl50f8qj5sivl88kjdswm035v4li33fiq3v1gmh0pvgbcw7a";
+  };
+
+  buildInputs = [
+    blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nan/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A statistics and machine learning toolbox for data with and w/o missing values";
+  };
+}
diff --git a/pkgs/development/octave-modules/ncarray/default.nix b/pkgs/development/octave-modules/ncarray/default.nix
new file mode 100644
index 0000000000000..10db554c87fcd
--- /dev/null
+++ b/pkgs/development/octave-modules/ncarray/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "ncarray";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0v96iziikvq2v7hczhbfs9zmk49v99kn6z3lgibqqpwam175yqgd";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  requiredOctavePackages = [
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ncarray/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Access a single or a collection of NetCDF files as a multi-dimensional array";
+  };
+}
diff --git a/pkgs/development/octave-modules/netcdf/default.nix b/pkgs/development/octave-modules/netcdf/default.nix
new file mode 100644
index 0000000000000..9292da6918cd5
--- /dev/null
+++ b/pkgs/development/octave-modules/netcdf/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+}:
+
+buildOctavePackage rec {
+  pname = "netcdf";
+  version = "1.0.14";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wdwl76zgcg7kkdxjfjgf23ylzb0x4dyfliffylyl40g6cjym9lf";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/netcdf/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A NetCDF interface for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/nurbs/default.nix b/pkgs/development/octave-modules/nurbs/default.nix
new file mode 100644
index 0000000000000..e5e26d7bb952f
--- /dev/null
+++ b/pkgs/development/octave-modules/nurbs/default.nix
@@ -0,0 +1,30 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "nurbs";
+  version = "1.3.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0zkyldm63pc3pcal3yvj6af24cvpjvv9qfhf0ihhwcsh4w3yggyv";
+  };
+
+  # Has been fixed in more recent commits, but has not been pushed out as a
+  # new version yet.
+  # The sed changes allow nurbs to compile.
+  patchPhase = ''
+    sed -i s/feval/octave::feval/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_cell/iscell/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nurbs/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS), based on the NURBS toolbox by Mark Spink";
+  };
+}
diff --git a/pkgs/development/octave-modules/ocl/default.nix b/pkgs/development/octave-modules/ocl/default.nix
new file mode 100644
index 0000000000000..0e47160ad0ea4
--- /dev/null
+++ b/pkgs/development/octave-modules/ocl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ocl";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0ayi5x9zk9p4zm0qsr3i94lyp5468c9d1a7mqrqjqpdvkhrw0xnm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ocl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Use OpenCL for parallelization";
+    longDescription = ''
+       Package using OpenCL for parallelization, mostly suitable to
+       Single-Instruction-Multiple-Data (SIMD) computations, selectively
+       using available OpenCL hardware and drivers.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/octclip/default.nix b/pkgs/development/octave-modules/octclip/default.nix
new file mode 100644
index 0000000000000..43bcfcd7d849b
--- /dev/null
+++ b/pkgs/development/octave-modules/octclip/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "octclip";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05ijh3izgfaan84n6zp690nap9vnz0zicjd0cgvd1c6askm7vxql";
+  };
+
+  # The only compilation problem is that no formatting specifier was provided
+  # for the error function. Because errorText is a string, I provide such a
+  # formatting specifier.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  meta = with lib; {
+    name = "GNU Octave Clipping Polygons Tool";
+    homepage = "https://octave.sourceforge.io/octclip/index.html";
+    license = with licenses; [ gpl3Plus ]; # modified BSD?
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Perform boolean operations with polygons using the Greiner-Hormann algorithm";
+  };
+}
diff --git a/pkgs/development/octave-modules/octproj/default.nix b/pkgs/development/octave-modules/octproj/default.nix
new file mode 100644
index 0000000000000..74596c015f856
--- /dev/null
+++ b/pkgs/development/octave-modules/octproj/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, proj # >= 6.3.0
+}:
+
+buildOctavePackage rec {
+  pname = "octproj";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb8gb0r8kky47ap85h9qqdvs40mjp3ya0nkh45gqhy67ml06paq";
+  };
+
+  # The sed changes below allow for the package to be compiled.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+    sed -i s/"warning(errorText)"/"warning(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  propagatedBuildInputs = [
+    proj
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/octproj/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "GNU Octave bindings to PROJ library for cartographic projections and CRS transformations";
+  };
+}
diff --git a/pkgs/development/octave-modules/optics/default.nix b/pkgs/development/octave-modules/optics/default.nix
new file mode 100644
index 0000000000000..1324c6cd4ba33
--- /dev/null
+++ b/pkgs/development/octave-modules/optics/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "optics";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d9z82241a1zmr8m1vgw10pyk81vn0q4dcyx7d05pigfn5gykrgc";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions covering various aspects of optics";
+  };
+}
diff --git a/pkgs/development/octave-modules/optim/default.nix b/pkgs/development/octave-modules/optim/default.nix
new file mode 100644
index 0000000000000..b9561faafb127
--- /dev/null
+++ b/pkgs/development/octave-modules/optim/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, statistics
+, lapack
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "optim";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1z2h8gy99glxh5qi3r22am2vdirlbklkq0lx4r8jrx1ak7awh47r";
+  };
+
+  buildInputs = [
+    lapack
+    blas
+  ];
+
+  requiredOctavePackages = [
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optim/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    # Modified BSD code seems removed
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Non-linear optimization toolkit";
+  };
+}
diff --git a/pkgs/development/octave-modules/optiminterp/default.nix b/pkgs/development/octave-modules/optiminterp/default.nix
new file mode 100644
index 0000000000000..8409a10104e6a
--- /dev/null
+++ b/pkgs/development/octave-modules/optiminterp/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "optiminterp";
+  version = "0.3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05nzj2jmrczbnsr64w2a7kww19s6yialdqnsbg797v11ii7aiylc";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optiminterp/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "An optimal interpolation toolbox for octave";
+    longDescription = ''
+       An optimal interpolation toolbox for octave. This package provides
+       functions to perform a n-dimensional optimal interpolations of
+       arbitrarily distributed data points.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/parallel/default.nix b/pkgs/development/octave-modules/parallel/default.nix
new file mode 100644
index 0000000000000..0ea1d4d9df234
--- /dev/null
+++ b/pkgs/development/octave-modules/parallel/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, gnutls
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "parallel";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wmpak01rsccrnb8is7fsjdlxw15157sqyf9s2fabr16yykfmvi8";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnutls
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/parallel/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Parallel execution package";
+  };
+}
diff --git a/pkgs/development/octave-modules/quaternion/default.nix b/pkgs/development/octave-modules/quaternion/default.nix
new file mode 100644
index 0000000000000..4681b699684c4
--- /dev/null
+++ b/pkgs/development/octave-modules/quaternion/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "quaternion";
+  version = "2.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "040ncksf0xz32qmi4484xs3q01nappxrsvwwa60g04yjy7c4sbac";
+  };
+
+  # Octave replaced many of the is_thing_type check function with isthing.
+  # The patch changes the occurrences of the old functions.
+  patchPhase = ''
+    sed -i s/is_numeric_type/isnumeric/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_bool_type/islogical/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/quaternion/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Quaternion package for GNU Octave, includes a quaternion class with overloaded operators";
+  };
+}
diff --git a/pkgs/development/octave-modules/queueing/default.nix b/pkgs/development/octave-modules/queueing/default.nix
new file mode 100644
index 0000000000000..75b3e67e35369
--- /dev/null
+++ b/pkgs/development/octave-modules/queueing/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "queueing";
+  version = "1.2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1yhw277i1qgmddf6wbfb6a4zrfhvplkmfr20q1l15z4xi8afnm6d";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/queueing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for queueing networks and Markov chains analysis";
+    longDescription = ''
+      The queueing package provides functions for queueing networks and Markov
+      chains analysis. This package can be used to compute steady-state
+      performance measures for open, closed and mixed networks with single or
+      multiple job classes. Mean Value Analysis (MVA), convolution, and various
+      bounding techniques are implemented. Furthermore, several transient and
+      steady-state performance measures for Markov chains can be computed, such
+      as state occupancy probabilities, mean time to absorption, time-averaged
+      sojourn times and so forth. Discrete- and continuous-time Markov chains
+      are supported.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/signal/default.nix b/pkgs/development/octave-modules/signal/default.nix
new file mode 100644
index 0000000000000..ae1339ca274a4
--- /dev/null
+++ b/pkgs/development/octave-modules/signal/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, control
+}:
+
+buildOctavePackage rec {
+  pname = "signal";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amfh7ifjqxz2kr34hgq2mq8ygmd5j3cjdk1k2dk6qcgic7n0y6r";
+  };
+
+  requiredOctavePackages = [
+    control
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/signal/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Signal processing tools, including filtering, windowing and display functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/sockets/default.nix b/pkgs/development/octave-modules/sockets/default.nix
new file mode 100644
index 0000000000000..688bd6a0e9291
--- /dev/null
+++ b/pkgs/development/octave-modules/sockets/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "sockets";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18f1zpqcf6h9b4fb0x2c5nvc3mvgj1141f1s8d9gnlhlrjlq8vqg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sockets/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Socket functions for networking from within octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/sparsersb/default.nix b/pkgs/development/octave-modules/sparsersb/default.nix
new file mode 100644
index 0000000000000..b8147f8d2815d
--- /dev/null
+++ b/pkgs/development/octave-modules/sparsersb/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, librsb
+}:
+
+buildOctavePackage rec {
+  pname = "sparsersb";
+  version = "1.0.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nl7qppa1cm51188hqhbfswlih9hmy1yz7v0f5i07z0g0kbd62xw";
+  };
+
+  buildInputs = [
+    librsb
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sparsersb/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to the librsb package implementing the RSB sparse matrix format for fast shared-memory sparse matrix computations";
+    # Mark this way until KarlJoad builds librsb specifically for this package.
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/splines/default.nix b/pkgs/development/octave-modules/splines/default.nix
new file mode 100644
index 0000000000000..69d5e46147d6c
--- /dev/null
+++ b/pkgs/development/octave-modules/splines/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "splines";
+  version = "1.3.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "16wisph8axc5xci0h51zj0y0x2wj6c9zybi2sjpb9v8z9dagjjqa";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/splines/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional spline functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/statistics/default.nix b/pkgs/development/octave-modules/statistics/default.nix
new file mode 100644
index 0000000000000..61133ec49e540
--- /dev/null
+++ b/pkgs/development/octave-modules/statistics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+}:
+
+buildOctavePackage rec {
+  pname = "statistics";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0iv2hw3zp7h69n8ncfjfgm29xaihdl5gp2slcw1yf23mhd7q2xkr";
+  };
+
+  requiredOctavePackages = [
+    io
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/statistics/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional statistics functions for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/stk/default.nix b/pkgs/development/octave-modules/stk/default.nix
new file mode 100644
index 0000000000000..16ac7b7d03dcb
--- /dev/null
+++ b/pkgs/development/octave-modules/stk/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "stk";
+  version = "2.6.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1rqndfankwlwm4igw3xqpnrrl749zz1d5pjzh1qbfns7ixwrm19a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/stk/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "STK is a (not so) Small Toolbox for Kriging";
+    longDescription = ''
+      The STK is a (not so) Small Toolbox for Kriging. Its primary focus is on
+      the interpolation/regression technique known as kriging, which is very
+      closely related to Splines and Radial Basis Functions, and can be
+      interpreted as a non-parametric Bayesian method using a Gaussian Process
+      (GP) prior. The STK also provides tools for the sequential and non-sequential
+      design of experiments. Even though it is, currently, mostly geared towards
+      the Design and Analysis of Computer Experiments (DACE), the STK can be
+      useful for other applications areas (such as Geostatistics, Machine
+      Learning, Non-parametric Regression, etc.).
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/strings/default.nix b/pkgs/development/octave-modules/strings/default.nix
new file mode 100644
index 0000000000000..7b556272f5da5
--- /dev/null
+++ b/pkgs/development/octave-modules/strings/default.nix
@@ -0,0 +1,37 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pcre
+}:
+
+buildOctavePackage rec {
+  pname = "strings";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1b0ravfvq3bxd0w3axjfsx13mmmkifmqz6pfdgyf2s8vkqnp1qng";
+  };
+
+  buildInputs = [
+    pcre
+  ];
+
+  # The gripes library no longer exists.
+  # https://build.opensuse.org/package/view_file/openSUSE:Backports:SLE-15-SP3/octave-forge-strings/octave-forge-strings.spec
+  # toascii is a deprecated function. Has been fixed in recent commits, but has
+  # not been released yet.
+  # https://sourceforge.net/p/octave/strings/ci/2db1dbb75557eef94605cb4ac682783ab78ac8d8/
+  patchPhase = ''
+    sed -i -s -e 's/gripes.h/errwarn.h/' -e 's/gripe_/err_/g' src/*.cc
+    sed -i s/toascii/double/g inst/*.m
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/strings/index.html";
+    license = licenses.gpl3Plus;
+    # Claims to have a freebsd license, but I found none.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional functions for manipulation and analysis of strings";
+  };
+}
diff --git a/pkgs/development/octave-modules/struct/default.nix b/pkgs/development/octave-modules/struct/default.nix
new file mode 100644
index 0000000000000..a69a8e4b6e227
--- /dev/null
+++ b/pkgs/development/octave-modules/struct/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "struct";
+  version = "1.0.16";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gx20r126f0ccl4yflp823xi77p8fh4acx1fv0mmcsglmx4c4vgm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/struct/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional structure manipulation functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/symbolic/default.nix b/pkgs/development/octave-modules/symbolic/default.nix
new file mode 100644
index 0000000000000..e40d27e7c3857
--- /dev/null
+++ b/pkgs/development/octave-modules/symbolic/default.nix
@@ -0,0 +1,46 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave's Python (Python 3)
+, python
+# Needed only to get the correct version of sympy needed
+, python2Packages
+}:
+
+let
+  # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023
+  # It has been addressed, but not merged yet.
+  # In the meantime, we create a Python environment with Python 3, its mpmath
+  # version and sympy 1.5 from python2Packages.
+  pythonEnv = (let
+      overridenPython = let
+        packageOverrides = self: super: {
+          sympy = super.sympy.overridePythonAttrs (old: rec {
+            version = python2Packages.sympy.version;
+            src = python2Packages.sympy.src;
+          });
+        };
+      in python.override {inherit packageOverrides; self = overridenPython; };
+    in overridenPython.withPackages (ps: [
+      ps.sympy
+      ps.mpmath
+    ]));
+
+in buildOctavePackage rec {
+  pname = "symbolic";
+  version = "2.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1jr3kg9q6r4r4h3hiwq9fli6wsns73rqfzkrg25plha9195c97h8";
+  };
+
+  propagatedBuildInputs = [ pythonEnv ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/symbolic/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Adds symbolic calculation features to GNU Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/tisean/default.nix b/pkgs/development/octave-modules/tisean/default.nix
new file mode 100644
index 0000000000000..b21ef0a5f56ac
--- /dev/null
+++ b/pkgs/development/octave-modules/tisean/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, signal # >= 1.3.0
+# Build dependencies
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "tisean";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nc2d9h91glxzmpizxdrc2dablw4bqhqhzs37a394c36myk4xjdv";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tisean/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Port of TISEAN 3.0.1";
+  };
+}
diff --git a/pkgs/development/octave-modules/tsa/default.nix b/pkgs/development/octave-modules/tsa/default.nix
new file mode 100644
index 0000000000000..a6320f0fc01c2
--- /dev/null
+++ b/pkgs/development/octave-modules/tsa/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, nan # > 3.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "tsa";
+  version = "4.6.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0p2cjszzjwhp4ih3q3r67qnikgxc0fwxc12p3727jbdvzq2h10mn";
+  };
+
+  requiredOctavePackages = [
+    nan
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tsa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Stochastic concepts and maximum entropy methods for time series analysis";
+  };
+}
diff --git a/pkgs/development/octave-modules/vibes/default.nix b/pkgs/development/octave-modules/vibes/default.nix
new file mode 100644
index 0000000000000..f60a5d7339a08
--- /dev/null
+++ b/pkgs/development/octave-modules/vibes/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, vibes
+}:
+
+buildOctavePackage rec {
+  pname = "vibes";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zn86rcsjkqg67hphz5inxc5xkgr18sby8za68zhppc2z7pd91ng";
+  };
+
+  buildInputs = [
+    vibes
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vibes/index.html";
+    license = with licenses; [ gpl3Plus mit ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Easily display results (boxes, pavings) from interval methods";
+    longDescription = ''
+      The VIBes API allows one to easily display results (boxes, pavings) from
+      interval methods. VIBes consists in two parts: (1) the VIBes application
+      that features viewing, annotating and exporting figures, and (2) the
+      VIBes API that enables your program to communicate with the viewer in order
+      to draw figures. This package integrates the VIBes API into Octave. The
+      VIBes application is required for operation and must be installed
+      seperately. Data types from third-party interval arithmetic libraries for
+      Octave are also supported.
+    '';
+    # Marked this way until KarlJoad gets around to packaging the vibes program.
+    # https://github.com/ENSTABretagneRobotics/VIBES
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/video/default.nix b/pkgs/development/octave-modules/video/default.nix
new file mode 100644
index 0000000000000..8467da98be99e
--- /dev/null
+++ b/pkgs/development/octave-modules/video/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, ffmpeg
+}:
+
+buildOctavePackage rec {
+  pname = "video";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s6j3c4dh5nsbh84s7vnd2ajcayy1gn07b4fcyrcynch3wl28mrv";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    ffmpeg
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/video/index.html";
+    license = with licenses; [ gpl3Plus bsd3 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Wrapper for OpenCV's CvCapture_FFMPEG and CvVideoWriter_FFMPEG";
+  };
+}
diff --git a/pkgs/development/octave-modules/vrml/default.nix b/pkgs/development/octave-modules/vrml/default.nix
new file mode 100644
index 0000000000000..e46e621b80d9a
--- /dev/null
+++ b/pkgs/development/octave-modules/vrml/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, linear-algebra
+, miscellaneous
+, struct
+, statistics
+# Runtime dependencies
+, freewrl
+}:
+
+buildOctavePackage rec {
+  pname = "vrml";
+  version = "1.0.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mx93k150agd27mbzvds13v9z0x36j68hwpdvlvjmcl2fga5fly4";
+  };
+
+  propagatedBuildInputs = [
+    freewrl
+  ];
+
+  requiredOctavePackages = [
+    linear-algebra
+    miscellaneous
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vrml/index.html";
+    license = with licenses; [ gpl3Plus fdl12Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "3D graphics using VRML";
+    # Marked this way until KarlJoad gets freewrl as a runtime dependency.
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/windows/default.nix b/pkgs/development/octave-modules/windows/default.nix
new file mode 100644
index 0000000000000..274ba1e3b7dd6
--- /dev/null
+++ b/pkgs/development/octave-modules/windows/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "windows";
+  version = "1.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05bsf3q816b9vwgmjdm761ybhmk8raq6dzxqvd11brma0granx3a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/windows/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides COM interface and additional functionality on Windows";
+  };
+}
diff --git a/pkgs/development/octave-modules/zeromq/default.nix b/pkgs/development/octave-modules/zeromq/default.nix
new file mode 100644
index 0000000000000..7a8f7f6d16a15
--- /dev/null
+++ b/pkgs/development/octave-modules/zeromq/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, zeromq
+}:
+
+buildOctavePackage rec {
+  pname = "zeromq";
+  version = "1.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18h1039ri7dr37jv20cvj5vhw7b57frrda0hhbvlgixinbqmn9j7";
+  };
+
+  propagatedBuildInputs = [
+    zeromq
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/zeromq/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "ZeroMQ bindings for GNU Octave";
+  };
+}
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index 648cd9c203fba..d8c49c99eba31 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -36,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.1.2";
+  version = "8.1.3";
 
   # Nix contains only Python 3 supported version of doit, which is a dependency
   # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
@@ -55,7 +55,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26f4fb1a2b0105cf0f71187c6c1eb54283767a883d1c8f4ca8c8039033217d27";
+    sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/PyRMVtransport/default.nix b/pkgs/development/python-modules/PyRMVtransport/default.nix
index ca44e5a80f92f..cfbf3be1c40c5 100644
--- a/pkgs/development/python-modules/PyRMVtransport/default.nix
+++ b/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "PyRMVtransport";
-  version = "0.3.0";
+  version = "0.3.1";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "cgtobi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1y412xmdskf13673igzsqsglpdc3d5r6pbm8j85csax0blv7rn1m";
+    sha256 = "1savzndg8l7rrc5dgzgsrdz9hnnjfv6qs5drznqmdw4f2rq84ypa";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index c608f48fdf929..8fc697828f0ad 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -46,11 +46,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "adblock" ];
 
-  passthru.meta = with lib; {
+  meta = with lib; {
     description = "Python wrapper for Brave's adblocking library, which is written in Rust";
     homepage = "https://github.com/ArniDagur/python-adblock/";
     maintainers = with maintainers; [ petabyteboy ];
     license = with licenses; [ asl20 mit ];
-    platforms = with platforms; [ all ];
   };
 }
diff --git a/pkgs/development/python-modules/addic7ed-cli/default.nix b/pkgs/development/python-modules/addic7ed-cli/default.nix
index bdf6aab3dbfc5..3ee3a897a906a 100644
--- a/pkgs/development/python-modules/addic7ed-cli/default.nix
+++ b/pkgs/development/python-modules/addic7ed-cli/default.nix
@@ -1,4 +1,6 @@
-{ lib, python3Packages, }:
+{ lib
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "addic7ed-cli";
@@ -14,6 +16,10 @@ python3Packages.buildPythonApplication rec {
     pyquery
   ];
 
+  # Tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "addic7ed_cli" ];
+
   meta = with lib; {
     description = "A commandline access to addic7ed subtitles";
     homepage = "https://github.com/BenoitZugmeyer/addic7ed-cli";
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 2e7c9c2401c35..5d9c3fe166956 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -1,10 +1,7 @@
 { lib
-
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, pytestrunner
-, typing-extensions
 , wrapt
 , aioitertools
 , aiohttp
diff --git a/pkgs/development/python-modules/aioguardian/default.nix b/pkgs/development/python-modules/aioguardian/default.nix
index f6822ede08cd6..8d3de12cd9930 100644
--- a/pkgs/development/python-modules/aioguardian/default.nix
+++ b/pkgs/development/python-modules/aioguardian/default.nix
@@ -4,7 +4,6 @@
 , asyncio-dgram
 , asynctest
 , buildPythonPackage
-, cryptography
 , fetchFromGitHub
 , poetry
 , pytest-aiohttp
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
index 44cae12cba522..022e34e23c1be 100644
--- a/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "aiosqlite";
-  version = "0.16.0";
+  version = "0.17.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a0fjmlvadyzsml10g5p1qif7192k0swy5zwjp8v48y5zc3yy56h";
+    sha256 = "sha256-8OaswkvEhkFJJnrIL7Rt+zvkRV+Z/iHfgmCcxua67lE=";
   };
 
   checkInputs = [
@@ -26,6 +26,8 @@ buildPythonPackage rec {
   # tests are not pick-up automatically by the hook
   pytestFlagsArray = [ "aiosqlite/tests/*.py" ];
 
+  pythonImportsCheck = [ "aiosqlite" ];
+
   meta = with lib; {
     description = "Asyncio bridge to the standard sqlite3 module";
     homepage = "https://github.com/jreese/aiosqlite";
diff --git a/pkgs/development/python-modules/androidtv/default.nix b/pkgs/development/python-modules/androidtv/default.nix
index aae46e4e3225c..98ab09fd8e6bf 100644
--- a/pkgs/development/python-modules/androidtv/default.nix
+++ b/pkgs/development/python-modules/androidtv/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "androidtv";
-  version = "0.0.57";
+  version = "0.0.58";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "JeffLIrion";
     repo = "python-androidtv";
     rev = "v${version}";
-    sha256 = "sha256-xOLMUf72VHeBzbMnhJGOnUIKkflnY4rV9NS/P1aYLJc=";
+    sha256 = "sha256-/5sYiYRFa8XJJ4QSxLzJBHaKfAKsGETiVDHerNQ79U8=";
   };
 
   propagatedBuildInputs = [ adb-shell pure-python-adb ]
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index c3f3185038843..fad9e7d03fa86 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -1,21 +1,21 @@
 { lib, buildPythonPackage, fetchPypi, installShellFiles
-, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml
+, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml, cryptography
 , pytestrunner, coverage, flake8, mock, pytestCheckHook, pytestcov, tox, gntp, sleekxmpp
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bab3563bc1e0c64938c4c7700112797bd99f20eb5d4a3e6038338bc8f060e153";
+    sha256 = "sha256-FW5gt35yoXVr2+hiGBDJ/5jFFfIpn2Z9sDN8acoO4FI=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
 
   propagatedBuildInputs = [
-    requests requests_oauthlib six click markdown pyyaml
+    cryptography requests requests_oauthlib six click markdown pyyaml
   ];
 
   checkInputs = [
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     installManPage packaging/man/apprise.1
   '';
 
+  pythonImportsCheck = [ "apprise" ];
+
   meta = with lib; {
     homepage = "https://github.com/caronc/apprise";
     description = "Push Notifications that work with just about every platform!";
diff --git a/pkgs/development/python-modules/argon2_cffi/default.nix b/pkgs/development/python-modules/argon2_cffi/default.nix
index 85c6c4b638a58..eec01adfebcac 100644
--- a/pkgs/development/python-modules/argon2_cffi/default.nix
+++ b/pkgs/development/python-modules/argon2_cffi/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "argon2_cffi";
-  version = "19.2.0";
+  version = "20.1.0";
 
   src = fetchPypi {
     pname = "argon2-cffi";
     inherit version;
-    sha256 = "ffaa623eea77b497ffbdd1a51e941b33d3bf552c60f14dbee274c4070677bda3";
+    sha256 = "0zgr4mnnm0p4i99023safb0qb8cgvl202nly1rvylk2b7qnrn0nq";
   };
 
   propagatedBuildInputs = [ cffi six ] ++ lib.optional (!isPy3k) enum34;
diff --git a/pkgs/development/python-modules/asyncio_mqtt/default.nix b/pkgs/development/python-modules/asyncio_mqtt/default.nix
index 088681a198952..bb2ead70d7160 100644
--- a/pkgs/development/python-modules/asyncio_mqtt/default.nix
+++ b/pkgs/development/python-modules/asyncio_mqtt/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "asyncio_mqtt";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hwfgww1ywhjvkpnvafbk2hxlqkrngfdz0sx5amzw68srzazvl6g";
+    sha256 = "c1b3bea68a35c83d290a89903079ffb311106195cd56867e201633a1ee1cad0c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index 2a532beca4731..b3b794eb3a1b8 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.2.2";
+  version = "21.2.3";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "1yl09csypa64nhsw7dc6kj8iybm1wkhfzylyfyq8b7jpwdx7ql31";
+    sha256 = "sha256-UQ77ot1JXZZAKD/ijw+FBYJnDLJyD7jLrKANksBIM2Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/batchgenerators/default.nix b/pkgs/development/python-modules/batchgenerators/default.nix
index 16b8f317a2236..8706a31d57119 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , isPy27
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , unittest2
 , future
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "batchgenerators";
-  version = "0.20.1";
+  version = "0.21";
 
   disabled = isPy27;
 
@@ -24,18 +23,10 @@ buildPythonPackage rec {
     owner = "MIC-DKFZ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f91yflv9rschyl5bnfn735hp1rxrzcxkx18aajmlzb067h0ip8m";
+    sha256 = "16bk4r0q3m2c9fawpmj4l7kz0x3fyv1spb92grf44gmyricq3jdb";
 
   };
 
-  patches = [
-    # lift Pillow bound; should be merged in next release
-    (fetchpatch {
-      url = "https://github.com/MIC-DKFZ/batchgenerators/pull/59.patch";
-      sha256 = "171b3dm40yn0wi91m9s2nq3j565s1w39jpdf1mvc03rn75i8vdp0";
-    })
-  ];
-
   propagatedBuildInputs = [
     future numpy pillow scipy scikitlearn scikitimage threadpoolctl
   ];
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index cfc222d2d2a12..2b256b07f85e5 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.5"; # N.B: if you change this, change botocore too
+  version = "1.17.12"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1qr7gE/KK2fGXdp4rYtK/tkB4AQHEgi4TIBNNFrZ67o=";
+    sha256 = "sha256-YvBs0eenjYqqTlJ8MnZT6abBr0FbWYNgSKkMKKJ+Xwk=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 05c333d93979a..635203f94c2ba 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.5"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.12"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BKHfdZaB9fFxrMs1TYY7/tB3TWSk6O41/0mDV1VmCk4=";
+    sha256 = "sha256-OakjFaF6b4vBkU27Ag9S6SnxjluZpPocXYeF+RNCftg=";
   };
 
   propagatedBuildInputs = [
@@ -28,10 +28,6 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
-  '';
-
   checkInputs = [ mock nose ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/canopen/default.nix b/pkgs/development/python-modules/canopen/default.nix
index 8925c1cc8a41f..51a6d0d11c0fc 100644
--- a/pkgs/development/python-modules/canopen/default.nix
+++ b/pkgs/development/python-modules/canopen/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "canopen";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15d49f1f71e9989dde6e3b75fb8445c76bd223064dfc0ac629fe9ecb0e21fba9";
+    sha256 = "18d01d56ff0023795cb336cafd4810a76cf402b98b42139b201fa8c5d4ba8c06";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 5445157b85303..9115b1d57c3fd 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -52,8 +52,7 @@ buildPythonPackage rec {
   postPatch = ''
     sed -i setup.py -e "/pip>=/c\'pip',"
     substituteInPlace setup.py \
-      --replace 'typing==3.6.4' 'typing' \
-      --replace 'attrs>=19.3.0,<20.3.0' 'attrs'
+      --replace 'typing==3.6.4' 'typing'
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/ckcc-protocol/default.nix b/pkgs/development/python-modules/ckcc-protocol/default.nix
index eaf89948e8f29..859fb091ec990 100644
--- a/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -11,24 +11,24 @@
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.0.2";
+  version = "1.0.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zpn3miyapskw6s71v614pmga5zfain9j085axm9v50b8r71xh1i";
+    sha256 = "d83a77d94e9563c3fb0e982d847ec88ba6ac45e3e008e5e53729c0b9800097fc";
   };
 
-  checkInputs = [
-    pytest
-  ];
-
   propagatedBuildInputs = [ click ecdsa hidapi pyaes ];
 
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ckcc" ];
+
   meta = with lib; {
     description = "Communicate with your Coldcard using Python";
     homepage = "https://github.com/Coldcard/ckcc-protocol";
-    license = licenses.gpl3;
+    license = licenses.mit;
     maintainers = [ maintainers.hkjn ];
   };
 }
diff --git a/pkgs/development/python-modules/desktop-notifier/default.nix b/pkgs/development/python-modules/desktop-notifier/default.nix
index 83deaed67a083..22289195651f4 100644
--- a/pkgs/development/python-modules/desktop-notifier/default.nix
+++ b/pkgs/development/python-modules/desktop-notifier/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "desktop-notifier";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-D8/amC6SwXkm8Ao8G2Vn9FNpbqyFJFBUVcngkW5g8k0=";
+    sha256 = "0b333594af6e54677f9620480226dbc88ec6dd7c004352de9268d01aa49467f4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index abc07346efd32..a9c2e4e823733 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -8,11 +8,12 @@
 , numpy
 , pydicom
 , scipy
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.2.8";
+  version = "2.2.12";
   disabled = isPy27;
 
   # no tests in PyPI dist
@@ -20,10 +21,10 @@ buildPythonPackage rec {
     owner = "icometrix";
     repo = pname;
     rev = version;
-    sha256 = "1qi2map6f4pa1l8wsif7ff7rhja6ynrjlm7w306dzvi9l25mia34";
+    sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4";
   };
 
-  propagatedBuildInputs = [ gdcm nibabel numpy pydicom scipy ];
+  propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];
 
   checkInputs = [ nose gdcm ];
   checkPhase = "nosetests tests";
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index 7b447eb8d7879..7f2db712f00af 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.1.6";
+  version = "3.1.7";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6c0462b8b361f8691171af1fb87eceb4442da28477e12200c40420176206ba7";
+    sha256 = "32ce792ee9b6a0cbbec340123e229ac9f765dff8c2a4ae9247a14b2ba3a365a7";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
index 204c1a985425f..58ceb16870a8b 100644
--- a/pkgs/development/python-modules/dlib/default.nix
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,5 @@
 { buildPythonPackage, stdenv, lib, dlib, python, pytest, more-itertools
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
@@ -12,7 +13,10 @@ buildPythonPackage {
     ${python.interpreter} nix_run_setup test --no USE_AVX_INSTRUCTIONS
   '';
 
-  setupPyBuildFlags = lib.optional avxSupport "--no USE_AVX_INSTRUCTIONS";
+  setupPyBuildFlags = [
+    "--set USE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
+    "--set USE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}"
+  ];
 
   patches = [ ./build-cores.patch ];
 
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
index dfa1a0fbd01b2..5297c83d64b70 100644
--- a/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8626af845e6071ef80c70b0dc16d373f761c981f0ad61bb143a529cab649e725";
+    sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
   };
 
   checkInputs = [ flask_script ] ++ lib.optional isPy3k glibcLocales;
diff --git a/pkgs/development/python-modules/fuzzyfinder/default.nix b/pkgs/development/python-modules/fuzzyfinder/default.nix
new file mode 100644
index 0000000000000..a422e5606b0b0
--- /dev/null
+++ b/pkgs/development/python-modules/fuzzyfinder/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fuzzyfinder";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c56d86f110866becad6690c7518f7036c20831c0f82fc87eba8fdb943132f04b";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fuzzyfinder" ];
+
+  meta = with lib; {
+    description = "Fuzzy Finder implemented in Python";
+    homepage = "https://github.com/amjith/fuzzyfinder";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/github3_py/default.nix b/pkgs/development/python-modules/github3_py/default.nix
index 6b1ea305d4a60..8a1eea40c6825 100644
--- a/pkgs/development/python-modules/github3_py/default.nix
+++ b/pkgs/development/python-modules/github3_py/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "github3.py";
-  version = "1.3.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15a115c18f7bfcf934dfef7ab103844eb9f620c586bad65967708926da47cbda";
+    sha256 = "8dd4ac612fd60cb277eaf6e2ce02f68dda54aba06870ca6fa2b28369bf39aa14";
   };
 
   checkInputs = [ betamax pytest betamax-matchers ]
diff --git a/pkgs/development/python-modules/gmusicapi/default.nix b/pkgs/development/python-modules/gmusicapi/default.nix
index 1797f1d4264d1..c9fc464f06941 100644
--- a/pkgs/development/python-modules/gmusicapi/default.nix
+++ b/pkgs/development/python-modules/gmusicapi/default.nix
@@ -29,6 +29,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ validictory decorator mutagen protobuf setuptools requests dateutil proboscis mock appdirs oauth2client pyopenssl gpsoauth MechanicalSoup future ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "gmusicapi" ];
+
   meta = with lib; {
     description = "An unofficial API for Google Play Music";
     homepage = "https://pypi.python.org/pypi/gmusicapi/";
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 3bc5f185e4944..cec1672b76133 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b19f0556c252b805a52c976e3317c53d91e36f56dc8d28192eea190627faf343";
+    sha256 = "ff9933573dadb02176dc514662354949d0ea784cc4588d22226c2bf7eb90e797";
   };
 
   propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index 5911bfe615629..c01c294ec334c 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jsf7y88lvln9r08pmx673ibmgw397qmir5drrcfvlmgqvszp7qx";
+    sha256 = "6be2f2bca14b4eb1c1bdb0f4ba1dadf791e79a2a3e1fae762e5631a3d9fe094e";
   };
 
   propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 libcst proto-plus ];
diff --git a/pkgs/development/python-modules/gpsoauth/default.nix b/pkgs/development/python-modules/gpsoauth/default.nix
index 1ad50642e2b9b..3caa89d06f787 100644
--- a/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/pkgs/development/python-modules/gpsoauth/default.nix
@@ -26,6 +26,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cffi cryptography enum34 idna ipaddress ndg-httpsclient pyopenssl pyasn1 pycparser pycryptodomex requests six ];
 
+  # no tests executed
+  doCheck = false;
+
+  pythonImportsCheck = [ "gpsoauth" ];
+
   meta = with lib; {
     description = "A python client library for Google Play Services OAuth";
     homepage = "https://github.com/simon-weber/gpsoauth";
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index d01fd389762af..9d6e4795959cc 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2021.2.1";
+  version = "2021.2.15";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-R6tqGxGd6JymFgQX+deDPOtlKlwUjL7uf+zGdNxUW/s=";
+    sha256 = "sha256-vHq4DjDh7hBNAK/h/KdzqaEgrG5bg7VQ8fVWuxV7vOg=";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index f3b8393a2759b..110c28ee2f406 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -2,13 +2,15 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.5.13";
+  version = "1.5.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66";
+    sha256 = "de7129142a5c86d75a52b96f394d94d96d497881d2aaf8eafe320cdbe8ac4bcc";
   };
 
+  pythonImportsCheck = [ "identify" ];
+
   # Tests not included in PyPI tarball
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 107febe4041bb..2f87f24639a6e 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.37.0";
+  version = "0.38.1";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "1501lk3fjxqmzxffahbj33y795gwl96yqvk3fs86cchm6vz2gnkk";
+    sha256 = "0b2gnym7p6cwgviwdq8pg2dy28pm5535f8kkc8rzc50knqdifl7g";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/json-rpc/default.nix b/pkgs/development/python-modules/json-rpc/default.nix
new file mode 100644
index 0000000000000..e475c3117df30
--- /dev/null
+++ b/pkgs/development/python-modules/json-rpc/default.nix
@@ -0,0 +1,24 @@
+{ lib, isPy27, buildPythonPackage, fetchPypi, pytestCheckHook, mock }:
+
+let
+  pythonEnv = lib.optional isPy27 mock;
+in buildPythonPackage rec {
+  pname = "json-rpc";
+  version = "1.13.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12bmblnznk174hqg2irggx4hd3cq1nczbwkpsqqzr13hbg7xpw6y";
+  };
+
+  checkInputs = pythonEnv ++ [ pytestCheckHook ];
+
+  nativeBuildInputs = pythonEnv;
+
+  meta = with lib; {
+    description = "JSON-RPC 1/2 transport implementation";
+    homepage = "https://github.com/pavlov99/json-rpc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/development/python-modules/jsonpath-ng/default.nix b/pkgs/development/python-modules/jsonpath-ng/default.nix
new file mode 100644
index 0000000000000..a623c859e168d
--- /dev/null
+++ b/pkgs/development/python-modules/jsonpath-ng/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, decorator
+, fetchFromGitHub
+, ply
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "jsonpath-ng";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "h2non";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1cxjwhx0nj85a3awnl7j6afnk07awzv45qfwxl5jqbbc9cxh5bd6";
+  };
+
+  propagatedBuildInputs = [
+    decorator
+    ply
+    six
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTestFiles = [
+    # Exclude tests that require oslotest
+    "tests/test_jsonpath_rw_ext.py"
+  ];
+
+  pythonImportsCheck = [ "jsonpath_ng" ];
+
+  meta = with lib; {
+    description = "JSONPath implementation for Python";
+    homepage = "https://github.com/h2non/jsonpath-ng";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
index 5a70dcb4676d4..8b9823b6f031d 100644
--- a/pkgs/development/python-modules/keep/default.nix
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "keep";
-  version = "2.10";
+  version = "2.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce71d14110df197ab5afdbd26a14c0bd266b79671118ae1351835fa192e61d9b";
+    sha256 = "3abbe445347711cecd9cbb80dab4a0777418972fc14a14e9387d0d2ae4b6adb7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 1aa22a62e19f6..a5ca1a7ab2a4e 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -22,8 +22,6 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements/test.txt \
       --replace "pytest-sugar" ""
-    substituteInPlace requirements/default.txt \
-      --replace "amqp==2.5.1" "amqp~=2.5"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index 0446299fd1bdc..cc0ba39e64efb 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14ljk7rywy3fiv23dpayvk14y1ywma729r3b1x2cxf68919g2gnh";
+    sha256 = "17hqck808m59jv6m2g4hasnay44pycy3y0im01fq9jpr3ymcdbi7";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lsassy/default.nix b/pkgs/development/python-modules/lsassy/default.nix
index 6b1d5ec2bb4c1..ad9d09b326629 100644
--- a/pkgs/development/python-modules/lsassy/default.nix
+++ b/pkgs/development/python-modules/lsassy/default.nix
@@ -4,7 +4,6 @@
 , impacket
 , netaddr
 , pypykatz
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pecan/default.nix b/pkgs/development/python-modules/pecan/default.nix
index a66c4077c3c9a..50b62503ff875 100644
--- a/pkgs/development/python-modules/pecan/default.nix
+++ b/pkgs/development/python-modules/pecan/default.nix
@@ -16,7 +16,6 @@
 , Kajiki
 , mock
 , sqlalchemy
-, uwsgi
 , virtualenv
 }:
 
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index c51f8cb54e005..7645fdaec8aa0 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -11,6 +11,8 @@ buildPythonPackage rec {
     sha256 = "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx";
   };
 
+  dontUseCmakeConfigure = true;
+
   nativeBuildInputs = with pkgs; [
     swig qmake cmake
   ];
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index 4e9f07e2ccb8e..cfed6dd74cf65 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.2.0";
+  version = "2.3.0";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0gsgfr190xy2rnjf1gf7688xrh13ihgq10s19s4rv5hp6pmg9iaa";
+    sha256 = "1y7mqc2myn1gfzg4h018f8xza0q535shnqg6snnaqynz20i8jcfh";
     fetchSubmodules = true; # data dir for tests
   };
 
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index e4bab25fd9c12..8c9c0ea004ca4 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -5,7 +5,6 @@
 , fetchFromGitHub
 , pycryptodomex
 , pytestCheckHook
-, pyyaml
 , pytest-vcr
 , pytest-asyncio
 , requests
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 9eefaa5f364fb..742ea3d08c680 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dlxgh57j25cvk2pqr2dj4lv6yn0pix2rcl2kzqsg2405rdjks91";
+    sha256 = "sha256-3wKV9lPO51LeOM+O8J8TrZeCxTkk37qhkcpivV4dzhQ=";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index d58821569e62f..fae49e7be0a77 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.9.9";
-
-  meta = {
-    description = "A self-contained cryptographic library for Python";
-    homepage = "https://www.pycryptodome.org";
-    license = lib.licenses.bsd2;
-  };
+  version = "3.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b5b7c5896f8172ea0beb283f7f9428e0ab88ec248ce0a5b8c98d73e26267d51";
+    sha256 = "sha256-VBzT4+JS+xmntI9CC3mLU0gzArf+TZlUyUdgXQomPWI=";
+  };
+
+  pythonImportsCheck = [ "Cryptodome" ];
+
+  meta = with lib; {
+    description = "A self-contained cryptographic library for Python";
+    homepage = "https://www.pycryptodome.org";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix
index de208c7a9dbbb..bf9a9eecfb87f 100644
--- a/pkgs/development/python-modules/pynmea2/default.nix
+++ b/pkgs/development/python-modules/pynmea2/default.nix
@@ -1,16 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pynmea2";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b83fa7e3e668af5e182ef1c2fd4a535433ecadf60d7b627280172d695a1646b";
+    sha256 = "0w9g5qh573276404f04b46684ydlakv30ds0x0r4kcl370ljmfsg";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = "pytest";
+  checkInputs = [ pytestCheckHook ];
 
   meta = {
     homepage = "https://github.com/Knio/pynmea2";
diff --git a/pkgs/development/python-modules/pyowm/default.nix b/pkgs/development/python-modules/pyowm/default.nix
index 423d38ab25d8c..3cfb70e7b8750 100644
--- a/pkgs/development/python-modules/pyowm/default.nix
+++ b/pkgs/development/python-modules/pyowm/default.nix
@@ -1,30 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, requests, geojson }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, geojson
+, pysocks
+, pythonOlder
+, requests
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pyowm";
-  version = "3.1.1";
+  version = "3.2.0";
+  disabled = pythonOlder "3.7";
 
-  disabled = pythonOlder "3.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a7b18297a9189dbe5f6b454b12d61a407e35c7eb9ca75bcabfe5e1c83245290d";
+  src = fetchFromGitHub {
+    owner = "csparpa";
+    repo = pname;
+    rev = version;
+    sha256 = "0sq8rxcgdiayl5gy4qhkvvsdq1d93sbzn0nfg8f1vr8qxh8qkfq4";
   };
 
-  propagatedBuildInputs = [ requests geojson ];
+  propagatedBuildInputs = [
+    geojson
+    pysocks
+    requests
+  ];
+
+  checkInputs = [ pytestCheckHook ];
 
-  # This may actually break the package.
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "requests>=2.18.2,<2.19" "requests"
-  '';
+  # Run only tests which don't require network access
+  pytestFlagsArray = [ "tests/unit" ];
 
-  # No tests in archive
-  doCheck = false;
+  pythonImportsCheck = [ "pyowm" ];
 
   meta = with lib; {
-    description = "A Python wrapper around the OpenWeatherMap web API";
+    description = "Python wrapper around the OpenWeatherMap web API";
     homepage = "https://pyowm.readthedocs.io/";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
index 2bb2eb1c6fccc..40139c795677e 100644
--- a/pkgs/development/python-modules/pyquery/default.nix
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -1,14 +1,15 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , cssselect
+, fetchPypi
 , lxml
-, webob
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyquery";
-  version = "1.2.9";
+  version = "1.4.3";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -16,15 +17,19 @@ buildPythonPackage rec {
     sha256 = "00p6f1dfma65192hc72dxd506491lsq3g5wgxqafi1xpg2w1xia6";
   };
 
-  propagatedBuildInputs = [ cssselect lxml webob ];
+  propagatedBuildInputs = [
+    cssselect
+    lxml
+  ];
 
   # circular dependency on webtest
   doCheck = false;
+  pythonImportsCheck = [ "pyquery" ];
 
   meta = with lib; {
+    description = "A jquery-like library for Python";
     homepage = "https://github.com/gawel/pyquery";
-    description = "A jquery-like library for python";
+    changelog = "https://github.com/gawel/pyquery/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
new file mode 100644
index 0000000000000..ceba7489e8b5e
--- /dev/null
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cachetools
+, paho-mqtt
+, pytz
+, requests
+, requests_oauthlib
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysmappee";
+  version = "0.2.17";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "smappee";
+    repo = pname;
+    rev = version;
+    sha256 = "00274fbclj5kmwxi2bfx4913r4l0y8qvkfcc9d7ryalvf8jq24k6";
+  };
+
+  propagatedBuildInputs = [
+    cachetools
+    paho-mqtt
+    pytz
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pysmappee" ];
+
+  meta = with lib; {
+    description = "Python Library for the Smappee dev API";
+    homepage = "https://github.com/smappee/pysmappee";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index 3be2adc11a42f..c07832c0b0590 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -1,22 +1,31 @@
-{ lib, buildPythonPackage, isPy27, fetchPypi, setuptools_scm, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.3.2";
-  disabled = isPy27;
+  version = "0.4.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mxg91mrn8672f8hwg0f31xkyarnq7q0hr4fvb9hcb09jshq2wk7";
+    sha256 = "sha256-jZ4sHR3OEfe30snQkgLr/HdXt/8MrJtyrTKO3+fuA3s=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "pytest_subtests" ];
+
   meta = with lib; {
     description = "pytest plugin for unittest subTest() support and subtests fixture";
     homepage = "https://github.com/pytest-dev/pytest-subtests";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/python-olm/default.nix b/pkgs/development/python-modules/python-olm/default.nix
index b1e01f7f4abfa..2a8295a65bf7a 100644
--- a/pkgs/development/python-modules/python-olm/default.nix
+++ b/pkgs/development/python-modules/python-olm/default.nix
@@ -1,11 +1,11 @@
-{ lib, buildPythonPackage, olm,
-  cffi, future, isPy3k, typing }:
+{ lib, buildPythonPackage, isPy3k, olm
+, cffi, future, typing }:
 
 buildPythonPackage {
   pname = "python-olm";
   inherit (olm) src version;
 
-  sourceRoot = "${olm.name}/python";
+  sourceRoot = "source/python";
   buildInputs = [ olm ];
 
   preBuild = ''
@@ -17,12 +17,13 @@ buildPythonPackage {
     future
   ] ++ lib.optionals (!isPy3k) [ typing ];
 
+  # Some required libraries for testing are not packaged yet.
   doCheck = false;
+  pythonImportsCheck = [ "olm" ];
 
-  meta = with lib; {
+  meta = {
+    inherit (olm.meta) license maintainers;
     description = "Python bindings for Olm";
     homepage = "https://gitlab.matrix.org/matrix-org/olm/tree/master/python";
-    license = olm.meta.license;
-    maintainers = [ maintainers.tilpner ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvizio/default.nix b/pkgs/development/python-modules/pyvizio/default.nix
new file mode 100644
index 0000000000000..807278d967d59
--- /dev/null
+++ b/pkgs/development/python-modules/pyvizio/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, click
+, fetchPypi
+, jsonpickle
+, requests
+, tabulate
+, xmltodict
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "pyvizio";
+  version = "0.1.59";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j2zbziklx4az55m3997y7yp4xflk7i0gsbdfh7fp9k0qngb2053";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    jsonpickle
+    requests
+    tabulate
+    xmltodict
+    zeroconf
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyvizio" ];
+
+  meta = with lib; {
+    description = "Python client for Vizio SmartCast";
+    homepage = "https://github.com/vkorn/pyvizio";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 6b73642aea65f..6d0414577bc34 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -9,20 +9,22 @@
 , protobuf
 , protobuf3-to-dict
 , smdebug-rulesconfig
+, pandas
 }:
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.25.1";
+  version = "2.25.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-xQ1nt8FcjuoilzM5PbU8KHgirPyj9us+ykyjfgEqZhg=";
+    sha256 = "sha256-oacqDLgt11fplc6e3ruCrwDV/iRhoTgx1mu3Pm/5kmw=";
   };
 
-  doCheck = false;
-
-  pythonImportsCheck = [ "sagemaker" ];
+  pythonImportsCheck = [
+    "sagemaker"
+    "sagemaker.lineage.visualizer"
+  ];
 
   propagatedBuildInputs = [
     attrs
@@ -33,8 +35,15 @@ buildPythonPackage rec {
     protobuf
     protobuf3-to-dict
     smdebug-rulesconfig
+    pandas
   ];
 
+  doCheck = false;
+
+  postFixup = ''
+    [ "$($out/bin/sagemaker-upgrade-v2 --help 2>&1 | grep -cim1 'pandas failed to import')" -eq "0" ]
+  '';
+
   meta = with lib; {
     description = "Library for training and deploying machine learning models on Amazon SageMaker";
     homepage = "https://github.com/aws/sagemaker-python-sdk/";
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index 77cd35938635d..704549e987d7b 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.5.0";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "14kqjdv49486ksc1s0m0hc4k5nf9vn1v1g489mpib01hiiqxjp1b";
+    sha256 = "sha256-R9ASHDIGuPRh4yf0FAlpjUZ6QAakYs35EFSqAPc02Q8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/serverlessrepo/default.nix b/pkgs/development/python-modules/serverlessrepo/default.nix
index 1e6f8307fbcab..2a8267710a090 100644
--- a/pkgs/development/python-modules/serverlessrepo/default.nix
+++ b/pkgs/development/python-modules/serverlessrepo/default.nix
@@ -29,10 +29,6 @@ buildPythonPackage rec {
     pytest tests/unit
   '';
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "pyyaml~=3.12" "pyyaml~=5.1"
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
     description = "Helpers for working with the AWS Serverless Application Repository";
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 519d9bd34151b..1e18027c4be41 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -5,7 +5,7 @@
 , substituteAll
 , pythonOlder
 , geos
-, pytest
+, pytestCheckHook
 , cython
 , numpy
 , fetchpatch
@@ -26,9 +26,13 @@ buildPythonPackage rec {
     cython
   ];
 
-  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    numpy
+  ];
 
-  propagatedBuildInputs = [ numpy ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   # environment variable used in shapely/_buildcfg.py
   GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
@@ -51,14 +55,21 @@ buildPythonPackage rec {
       libgeos_c = GEOS_LIBRARY_PATH;
       libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
     })
-  ];
+   # included in next release.
+   (fetchpatch {
+     url = "https://github.com/Toblerity/Shapely/commit/ea5b05a0c87235d3d8f09930ad47c396a76c8b0c.patch";
+     sha256 = "sha256-egdydlV+tpXosSQwQFHaXaeBhXEHAs+mn7vLUDpvybA=";
+   })
+ ];
 
-  # Disable the tests that improperly try to use the built extensions
-  checkPhase = ''
+  preCheck = ''
     rm -r shapely # prevent import of local shapely
-    py.test tests
   '';
 
+  disabledTests = [
+    "test_collection"
+  ];
+
   meta = with lib; {
     description = "Geometric objects, predicates, and operations";
     maintainers = with maintainers; [ knedlsepp ];
diff --git a/pkgs/development/python-modules/sharkiqpy/default.nix b/pkgs/development/python-modules/sharkiqpy/default.nix
new file mode 100644
index 0000000000000..9d696bf0a21a6
--- /dev/null
+++ b/pkgs/development/python-modules/sharkiqpy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "sharkiqpy";
+  version = "0.1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nk1nbplyk28qadxc7rydjvdgbz3za0xjg6c95l95mhiz453q5sw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "sharkiqpy" ];
+
+  meta = with lib; {
+    description = "Python API for Shark IQ robot";
+    homepage = "https://github.com/ajmarks/sharkiq";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index 3a1c890f04811..389feef2b42ca 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -21,11 +21,6 @@ buildPythonPackage rec {
     sha256 = "26af5c1a3f2b76aab8c3200310f0fc783790ec5a231ffeec102e620acdd6262e";
   };
 
-  # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
-  postPatch = ''
-    substituteInPlace ./setup.py --replace "moto==0.4.31" "moto"
-  '';
-
   # moto>=1.0.0 is backwards-incompatible and some tests fail with it,
   # so disable tests for now
   doCheck = false;
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 96f489ec6ed90..a2f6a7aae92b8 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -57,11 +57,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'boto3>=1.4.4,<1.16'," "'boto3~=1.16'," \
-      --replace "'cryptography>=2.5.0,<3.0.0'," "'cryptography'," \
-      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
-      --replace "'idna<2.10'," "'idna'," \
-      --replace "'requests<2.24.0'," "'requests',"
+      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL',"
   '';
 
   # tests require encrypted secrets, see
diff --git a/pkgs/development/python-modules/termplotlib/default.nix b/pkgs/development/python-modules/termplotlib/default.nix
new file mode 100644
index 0000000000000..adccc99ac2feb
--- /dev/null
+++ b/pkgs/development/python-modules/termplotlib/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, exdown
+, numpy
+, gnuplot
+}:
+
+buildPythonPackage rec {
+  pname = "termplotlib";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "nschloe";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17d2727bz6kqhxczixx6nxzz4hzyi2cssylzazjimk07syvycd6n";
+  };
+
+  format = "pyproject";
+  checkInputs = [ pytestCheckHook numpy exdown gnuplot ];
+  pythonImportsCheck = [ "termplotlib" ];
+
+  # there seems to be a newline in the very front of the output
+  # which causes the test to fail, since it apparently doesn't
+  # strip whitespace. might be a gnuplot choice? sigh...
+  disabledTests = [ "test_plot_lim" ];
+
+  meta = with lib; {
+    description = "matplotlib for your terminal";
+    homepage = "https://github.com/nschloe/termplotlib";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/python-modules/tiros/default.nix b/pkgs/development/python-modules/tiros/default.nix
deleted file mode 100644
index edc4bbdebb133..0000000000000
--- a/pkgs/development/python-modules/tiros/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ fetchPypi, buildPythonPackage
-, semantic-version, boto3, flask, docutils, requests
-}:
-
-buildPythonPackage rec {
-  pname = "tiros";
-  version = "1.0.44";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d6bf7410967554ec283f9d4eabc0ce6821d6e6d36001afbdb7fe0826423d4f37";
-  };
-
-  patchPhase = ''
-    sed -E -i "s/'([[:alnum:].-_]+)[=><]{2}[[:digit:].]*'/'\\1'/g" setup.py
-    sed -i "s/'datetime',//" setup.py
-  '';
-
-  propagatedBuildInputs = [ semantic-version boto3 flask docutils requests ];
-}
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
new file mode 100644
index 0000000000000..544c1a3084a6e
--- /dev/null
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, pkg-config, swig
+, tpm2-tss
+, cryptography, ibm-sw-tpm2
+}:
+
+buildPythonPackage rec {
+  pname = "tpm2-pytss";
+
+  # Last version on github is 0.2.4, but it looks
+  # like a mistake (it's missing commits from 0.1.9)
+  version = "0.1.9";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-v5Xth0A3tFnLFg54nvWYL2TD201e/GWv+2y5Qc60CmU=";
+  };
+  postPatch = ''
+    substituteInPlace tpm2_pytss/config.py --replace \
+      'SYSCONFDIR = CONFIG.get("sysconfdir", "/etc")' \
+      'SYSCONFDIR = "${tpm2-tss}/etc"'
+  '';
+
+  nativeBuildInputs = [ pkg-config swig ];
+  # The TCTI is dynamically loaded from tpm2-tss, we have to provide the library to the end-user
+  propagatedBuildInputs = [ tpm2-tss ];
+
+  checkInputs = [
+    cryptography
+    # provide tpm_server used as simulator for the tests
+    ibm-sw-tpm2
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tpm2-software/tpm2-pytss";
+    description = "TPM2 TSS Python bindings for Enhanced System API (ESYS)";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
new file mode 100644
index 0000000000000..fb5617321747b
--- /dev/null
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, aiohttp
+, yarl
+, aresponses
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "twentemilieu";
+  version = "0.3.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-twentemilieu";
+    rev = "v${version}";
+    sha256 = "1ff35sh73m2s7fh4d8p2pjwdbfljswr8b8lpcjybz8nsh0286xph";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "twentemilieu" ];
+
+  meta = with lib; {
+    description = "Python client for Twente Milieu";
+    homepage = "https://github.com/frenck/python-twentemilieu";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
new file mode 100644
index 0000000000000..b244167f88edf
--- /dev/null
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "twitterapi";
+  version = "2.6.8";
+
+  src = fetchFromGitHub {
+    owner = "geduldig";
+    repo = "TwitterAPI";
+    rev = "v${version}";
+    sha256 = "sha256-X/j+3bWLQ9b4q0k/JTE984o1VZS0KTQnC0AdZpNsksY=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+  ];
+
+  # Tests are interacting with the Twitter API
+  doCheck = false;
+  pythonImportsCheck = [ "TwitterAPI" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Twitter's REST and Streaming APIs";
+    homepage = "https://github.com/geduldig/TwitterAPI";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/venstarcolortouch/default.nix b/pkgs/development/python-modules/venstarcolortouch/default.nix
new file mode 100644
index 0000000000000..713059ad90834
--- /dev/null
+++ b/pkgs/development/python-modules/venstarcolortouch/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "venstarcolortouch";
+  version = "0.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04y9gmxb0vsmc5c930x9ziis5v83b29kfzsgjlww3pssj69lmw1s";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "venstarcolortouch" ];
+
+  meta = with lib; {
+    description = "Python interface for Venstar ColorTouch thermostats Resources";
+    homepage = "https://github.com/hpeyerl/venstar_colortouch";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/wxPython/4.0.nix b/pkgs/development/python-modules/wxPython/4.0.nix
index d72d4aa35d4d9..2fc9a98a26f9e 100644
--- a/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/pkgs/development/python-modules/wxPython/4.0.nix
@@ -10,9 +10,6 @@
 , doxygen
 , ncurses
 , libintl
-, numpy
-, pillow
-, six
 , wxGTK
 , wxmac
 , IOKit
diff --git a/pkgs/development/python-modules/wxPython/4.1.nix b/pkgs/development/python-modules/wxPython/4.1.nix
index e4cb6ec79e014..a86e07729d971 100644
--- a/pkgs/development/python-modules/wxPython/4.1.nix
+++ b/pkgs/development/python-modules/wxPython/4.1.nix
@@ -6,7 +6,6 @@
 , pkg-config
 , python
 , isPy27
-, pyopengl
 , doxygen
 , cairo
 , ncurses
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
deleted file mode 100644
index 65e2b3711fa04..0000000000000
--- a/pkgs/development/python-modules/xmpppy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildPythonPackage, fetchurl, isPy3k }:
-buildPythonPackage rec {
-  pname = "xmpp.py";
-  version = "0.5.0rc1";
-
-  patches = [ ./ssl.patch ];
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xmpppy/xmpppy-${version}.tar.gz";
-    sha256 = "16hbh8kwc5n4qw2rz1mrs8q17rh1zq9cdl05b1nc404n7idh56si";
-  };
-
-  preInstall = ''
-    mkdir -p $out/bin $out/lib $out/share $(toPythonPath $out)
-    export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out)
-  '';
-
-  disabled = isPy3k;
-
-  meta = with lib; {
-    description = "XMPP python library";
-    homepage = "http://xmpppy.sourceforge.net/";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.mic92 ];
-  };
-}
diff --git a/pkgs/development/python-modules/xmpppy/ssl.patch b/pkgs/development/python-modules/xmpppy/ssl.patch
deleted file mode 100644
index 915602dc23e5c..0000000000000
--- a/pkgs/development/python-modules/xmpppy/ssl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -wbBur xmpppy-0.5.0rc1/xmpp/transports.py xmpppy-0.5.0rc1.q/xmpp/transports.py
---- xmpppy-0.5.0rc1/xmpp/transports.py	2009-04-07 12:34:09.000000000 +0400
-+++ xmpppy-0.5.0rc1.q/xmpp/transports.py	2015-05-08 13:06:03.049252065 +0300
-@@ -27,7 +27,7 @@
- Also exception 'error' is defined to allow capture of this module specific exceptions.
- """
- 
--import socket,select,base64,dispatcher,sys
-+import socket,ssl,select,base64,dispatcher,sys
- from simplexml import ustr
- from client import PlugIn
- from protocol import *
-@@ -312,9 +312,9 @@
-         """ Immidiatedly switch socket to TLS mode. Used internally."""
-         """ Here we should switch pending_data to hint mode."""
-         tcpsock=self._owner.Connection
--        tcpsock._sslObj    = socket.ssl(tcpsock._sock, None, None)
--        tcpsock._sslIssuer = tcpsock._sslObj.issuer()
--        tcpsock._sslServer = tcpsock._sslObj.server()
-+        tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
-+        tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
-+        tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
-         tcpsock._recv = tcpsock._sslObj.read
-         tcpsock._send = tcpsock._sslObj.write
- 
diff --git a/pkgs/development/tools/air/default.nix b/pkgs/development/tools/air/default.nix
new file mode 100644
index 0000000000000..912328ead2672
--- /dev/null
+++ b/pkgs/development/tools/air/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "air";
+  version = "1.15.1";
+
+  src = fetchFromGitHub {
+    owner = "cosmtrek";
+    repo = "air";
+    rev = "v${version}";
+    sha256 = "0d34k8hyag84j24bhax4gvg8mkzqyhdqd16rfirpfjiqvqh0vdkz";
+  };
+
+  vendorSha256 = "0k28rxnd0vyb6ljbi83bm1gl7j4r660a3ckjxnzc2qzwvfj69g53";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Live reload for Go apps";
+    homepage = "https://github.com/cosmtrek/air";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ Gonzih ];
+  };
+}
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index 13e9c56be9ffb..48182760dcae3 100644
--- a/pkgs/development/tools/ameba/default.nix
+++ b/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.13.4";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "sha256-+ZsefwH1hag2syWaEXkdxgmxk6JsxP7MvV+ILlo+Hy8=";
+    sha256 = "sha256-9oLVv0fCJzYyBApR4yzQKc25Uz9X5Rrvj638yD0JDMU=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 5578e03dc96e5..5c6fd8e3b90d7 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.144.0";
+  version = "0.145.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-Qr/fizCV+t6SbETEqns72Xv24ucLcqi1JRXF8SAtQRU=";
+    sha256 = "sha256-6fRKXKh+hB/d2CcmZYYSlMzP1IGCl7fLdXCQ1M0wuY4=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 8401e4b7ee11a..1c26f64b21a16 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.38.3";
+  version = "0.38.4";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vw62cagggqpv3q68ypz3wykhyghz6dzl59hxsahy8lr9b1npy8a";
+    sha256 = "sha256-BWWW54AXj/aV+Yar0EVZPl9fN2l29SgzpRDin1Y76BA=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 12fd01e5e4ed6..1b4f74f91d43a 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.4.6";
+  version = "1.4.8";
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "1fx80yrf03llhxcd8az5vzralz01wdfk7000q8l04rj1ax3daqia";
+    sha256 = "1hfd5gc98bp4p4m85jva2mlkh10q10n9s5136z8620mmjq93rx70";
   };
 
   bloop-bash = fetchurl {
@@ -54,9 +54,9 @@ stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "1hg02a3ildgqv8864zg08hvk4y0kmsxsg7ncbsl933rclhk2lybd"
-                     else if stdenv.isDarwin && stdenv.isx86_64 then "1i9kh4h5w3gr4w6rf5m7xpfqwps91mfddl1zk25v7f6vsraayam0"
-                     else throw "unsupported platform";
+    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "1cs3ng6bj9s7xf6c4xaiqgg5qr34abnipfgc44sy2ljklr7x0jwa"
+      else if stdenv.isDarwin && stdenv.isx86_64 then "0l9vqvzcmxya1s04cps96skw4dslh3i3ks73dl53ing50zb0ga9r"
+      else throw "unsupported platform";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 4735a7559cfdc..4c5d9a5df809e 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -55,12 +55,12 @@ rec {
   gradle_latest = gradle_6_8;
 
   gradle_6_8 = gradleGen rec {
-    name = "gradle-6.8.1";
+    name = "gradle-6.8.3";
     nativeVersion = "0.22-milestone-9";
 
     src = fetchurl {
       url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1zfn7400k39qbiidd5zxay6v5f5xz8x4g7rrf04p71bkmws1lngx";
+      sha256 = "01fjrk5nfdp6mldyblfmnkq2gv1rz1818kzgr0k2i1wzfsc73akz";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index cb977191eafe2..46f7e8cfa88d7 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,6 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
-, common-updater-scripts, cacert, git, nixfmt, nix, jq, coreutils, gnused
-, nixosTests }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, curl
+, makeWrapper
+, jdk
+, writeScript
+, common-updater-scripts
+, cacert
+, git
+, nixfmt
+, nix
+, jq
+, coreutils
+, gnused
+}:
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
@@ -28,41 +42,40 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/sbt --prefix PATH : ${lib.makeBinPath [ which curl ]}
   '';
 
-  passthru = {
-    tests = { inherit (nixosTests) sbt-extras; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -xo errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          curl
-          cacert
-          git
-          nixfmt
-          nix
-          jq
-          coreutils
-          gnused
-        ]
-      }
-
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
-      latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/sbt -h >/dev/null
+  '';
 
-      if [ ! "null" = "$latestSha" ]; then
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
-        latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
-        update-source-version ${pname} "$latestSha" --version-key=rev
-        update-source-version ${pname} "$latestDate" --ignore-same-hash
-        nixfmt "$default_nix"
-      else
-        echo "${pname} is already up-to-date"
-      fi
-    '';
-  };
+  passthru.updateScript = writeScript "update.sh" ''
+     #!${stdenv.shell}
+     set -xo errexit
+     PATH=${
+       lib.makeBinPath [
+         common-updater-scripts
+         curl
+         cacert
+         git
+         nixfmt
+         nix
+         jq
+         coreutils
+         gnused
+       ]
+     }
+    oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+     latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+    if [ ! "null" = "$latestSha" ]; then
+       nixpkgs="$(git rev-parse --show-toplevel)"
+       default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
+       latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
+       update-source-version ${pname} "$latestSha" --version-key=rev
+       update-source-version ${pname} "$latestDate" --ignore-same-hash
+       nixfmt "$default_nix"
+     else
+       echo "${pname} is already up-to-date"
+     fi
+  '';
 
   meta = {
     description =
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 9e45c3e8b9022..c9518d685b513 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -1,5 +1,10 @@
-{ lib, stdenv, fetchurl, jre, autoPatchelfHook, zlib, writeScript
-, common-updater-scripts, git, nixfmt, nix, coreutils, gnused, nixosTests }:
+{ lib
+, stdenv
+, fetchurl
+, jre
+, autoPatchelfHook
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "sbt";
@@ -28,6 +33,11 @@ stdenv.mkDerivation rec {
     } $out/bin/sbtn
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    ($out/bin/sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${version}  (this may take some time)'
+  '';
+
   meta = with lib; {
     homepage = "https://www.scala-sbt.org/";
     license = licenses.bsd3;
@@ -35,35 +45,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nequissimus ];
     platforms = platforms.unix;
   };
-
-  passthru = {
-    tests = { inherit (nixosTests) sbt; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -o errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          git
-          nixfmt
-          nix
-          coreutils
-          gnused
-        ]
-      }
-
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion sbt" | tr -d '"')"
-      latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:sbt/sbt.git '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
-
-      if [ ! "$oldVersion" = "$latestTag" ]; then
-        update-source-version sbt "$latestTag" --version-key=version --print-changes
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix"
-        nixfmt "$default_nix"
-      else
-        echo "sbt is already up-to-date"
-      fi
-    '';
-  };
 }
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index 558940587949d..806eb7c5b0edc 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.8.1";
+  version = "0.8.2";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "0lqfz097nyb6q6bn5mmfg6vl1nmgb6k4lmwxc8anza6zp8qh7wif";
+    sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo=";
   };
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
diff --git a/pkgs/development/tools/checkmake/default.nix b/pkgs/development/tools/checkmake/default.nix
new file mode 100644
index 0000000000000..c48dbe680238d
--- /dev/null
+++ b/pkgs/development/tools/checkmake/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, git, pandoc, lib }:
+
+buildGoPackage rec {
+  pname = "checkmake";
+  version = "0.1.0-2020.11.30";
+
+  goPackagePath = "github.com/mrtazz/checkmake";
+
+  src = fetchFromGitHub {
+    owner = "mrtazz";
+    repo = pname;
+    rev = "575315c9924da41534a9d0ce91c3f0d19bb53ffc";
+    sha256 = "121rsl9mh3wwadgf8ggi2xnb050pak6ma68b2sw5j8clmxbrqli3";
+  };
+
+  nativeBuildInputs = [ pandoc ];
+
+  preBuild =
+    let
+      buildVars = {
+        version = version;
+        buildTime = "N/A";
+        builder = "nix";
+        goversion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+      };
+      buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X main.${k}=${v}") buildVars);
+    in
+    ''
+      buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+    '';
+
+  postInstall = ''
+    pandoc -s -t man -o checkmake.1 go/src/${goPackagePath}/man/man1/checkmake.1.md
+    mkdir -p $out/share/man/man1
+    mv checkmake.1 $out/share/man/man1/checkmake.1
+  '';
+
+  meta = with lib; {
+    description = "Experimental tool for linting and checking Makefiles";
+    homepage = https://github.com/mrtazz/checkmake;
+    license = licenses.mit;
+    maintainers = with maintainers; [ vidbina ];
+    platforms = platforms.linux;
+    longDescription = ''
+      checkmake is an experimental tool for linting and checking
+      Makefiles. It may not do what you want it to.
+    '';
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 20cb953edea05..ad886e0c3c6ec 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.8.0";
+  version = "13.9.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "15pf6mxma8gkzyxkzm1rjwa514p7gzabn3c474lcvsjpmp76wv68";
+    sha256 = "0zgnp6l0p1i7x6lppd24nfb6kqa8mw7rnr2p5gmwbmjv9i9zkycs";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1c4lpy7nc62rqk8bfwiy5pcgvcwx70qkz3lv9w512fr3n5hjd4c0";
+    sha256 = "06b5p9ygcnrjrisp6bcgw9s3j2zlycp8jsri259bjf7rrfbwpkma";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0v0iqpllzaabkahlc5pidzzw0bjlli984pdna3f3bbg67lm5a421";
+    sha256 = "0wzqrfjg43wnf9lr34jn3ydlxi7vsnqs55pm5igba592q8ykfbxk";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 92249282267cf..0be77237f4289 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Zwh8baMD8jt+yfsK0jpsTEU32rT+IAQGwavVT3rpRsU=";
+    sha256 = "sha256-hOemDLfkjjPXQErKKCIMl8c5EPZe40B1HlNfvg7IZKU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/dockle/default.nix b/pkgs/development/tools/dockle/default.nix
index c20e2866dc7ec..d78b54b33e4fa 100644
--- a/pkgs/development/tools/dockle/default.nix
+++ b/pkgs/development/tools/dockle/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dockle";
-  version = "0.3.1";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Zc2ZlyeWdRvyuJLDDTONfh0/q+HKR4lNtSFMjgJWrRY=";
+    sha256 = "sha256-oS3ZGQkDSRdVLluLNg56VGp6MCrRDlgjk1va1+xocas=";
   };
 
-  vendorSha256 = "sha256-4IJKXcnMXBqoEjsV4Xg2QYvKwxDDUjcZtrj9IRuT6i4=";
+  vendorSha256 = "sha256-npbUE3ch8TamW0aikdKuFElE4YDRKwNVUscuvmlQxl4=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
@@ -25,7 +25,15 @@ buildGoModule rec {
 
   preCheck = ''
     # Remove tests that use networking
-    rm pkg/scanner/scan_test.go pkg/utils/fetch_test.go
+    rm pkg/scanner/scan_test.go
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/dockle --help
+    $out/bin/dockle --version | grep "dockle version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 4d05bd3ed1147..a1759df945861 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.55.0";
+  version = "1.56.0";
 
   vendorSha256 = null;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-vhg5X8H4VegSDORtj1rgNKlWQo1H1e/vvO01LJkVK+A=";
+    sha256 = "sha256-rBUao5j4Bofn6uSB20TTN7G1JgKu3mQpISJp+hX28mw=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/dt-schema/default.nix b/pkgs/development/tools/dt-schema/default.nix
index 3d420bf190188..7f439d9b59e81 100644
--- a/pkgs/development/tools/dt-schema/default.nix
+++ b/pkgs/development/tools/dt-schema/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "dtschema";
-  version = "2020.12";
+  version = "2021.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01de2598075909f2afb2d45277d0358645066f5bbb1770fca5f1d6f399846924";
+    sha256 = "d9f88f069068dc5dc7e895785d7172d260cbbc34cab3b52704b20e89b80c6de8";
   };
 
   nativeBuildInputs = [ setuptools_scm git ];
diff --git a/pkgs/development/tools/eclipse-mat/default.nix b/pkgs/development/tools/eclipse-mat/default.nix
index 633e13d25f772..4f475440b0480 100644
--- a/pkgs/development/tools/eclipse-mat/default.nix
+++ b/pkgs/development/tools/eclipse-mat/default.nix
@@ -1,5 +1,4 @@
-{ buildEnv
-, fetchurl
+{ fetchurl
 , fontconfig
 , freetype
 , glib
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index e906936d2e724..6ea866eb8f5c9 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -85,21 +85,21 @@ rec {
     headers = "0712160j1yvl9fmj2vm9lznkwnmji1hjzyicb4vis52lbrwx820l";
   };
 
-  electron_10 = mkElectron "10.3.2" {
-    x86_64-linux = "e28748c813ddc69c611a47961d68ae2dc3761f547c509d9ce2c56c2c6eadc9a2";
-    x86_64-darwin = "3120ae3eab94d9102003f6fa2dc833a0629295c7ec0e154b35f61116d55a4954";
-    i686-linux = "13f42ad6ea0fa41553b8f50323d0baaa29272220a2e81ca5293ad4439cda1d79";
-    armv7l-linux = "0e571f63697b8985782175af07bdd7069886195d9ccd7fc5c04578b4144ea922";
-    aarch64-linux = "173551fa6cd3ca1fb52fab3bd3e7f0ffd3e4758e78a5174e6d636a45a282ab8f";
-    headers = "00x71b18prc55pv3sykbzpmkxf8yjzf2cdnlqif993jab8fbwmqn";
+  electron_10 = mkElectron "10.4.0" {
+    x86_64-linux = "6246481577bc0bfa719e0efb3144e8d7ca53e3f20defce7b5e1be4d9feb0becb";
+    x86_64-darwin = "bc9e201643db3dae803db934fa4e180d13b707de6be1c3348ca5ed2c21d30bf4";
+    i686-linux = "aa6a9042097b964230b519c158e369a249a668cc6c7654b30ddd02ced4bad9d1";
+    armv7l-linux = "7e99a9c6aeedd7cc0b25260ac4630730629f363a09b72bd024b42837ab9777bd";
+    aarch64-linux = "ef671fe3cbb7c84e277d885ed157552602bc88d326dc95b322953c6b193f59a1";
+    headers = "1vsvna2zr7qxnk2qsdjzgkv5v2svrllbsjj08qrilly7nbksk9fg";
   };
 
-  electron_11 = mkElectron "11.2.3" {
-    x86_64-linux = "9249901fd7b85a7f952abe0df2ce83a566df612ef3ee15cce488cb1d751bc94d";
-    x86_64-darwin = "e0b2784b25fd4a5ee4041d508d59bbb8386039c7ea7e9cea3e547c672f052b60";
-    i686-linux = "78b2dd2d7b5e891e695cd31c28ac5fa1e99967ff538b944aa9d1ec224e82a964";
-    armv7l-linux = "06178cd44792c7dceb72286460948cb7f575acba4e46cf72c154f243e93eaf65";
-    aarch64-linux = "e23f2572a6a66779aff5d7cf25149fd343b0eef420fbfa3e8c3742284ce6e613";
-    headers = "1yjc7zl7l5n3l2s2x3lbic2lc527alcd4mnwih7pjl5dhvdgmbm9";
+  electron_11 = mkElectron "11.3.0" {
+    x86_64-linux = "136794f9ecc1c6ea38fe9b85682e8fcc8c4afd559f5cd6b4059339b017279917";
+    x86_64-darwin = "7569db1d2e470b0db512735f27f99498f631da3cd86374345139f18df88789fe";
+    i686-linux = "48ab133cab380c564529ea605d4521404b9bd07d80dad6346e1756a0952081cd";
+    armv7l-linux = "5774c2995c6dcf911ece00a94ace0f37d55132da91b1fd242c69e047872ef137";
+    aarch64-linux = "fad31c6fba7aba54db19a2aaedb03b514c51dd58bf301afab5265126833feb15";
+    headers = "123g3dgsb4vp8w1bm4apbp973ppzx4i4y35lhhmqjbp51jhrm9f0";
   };
 }
diff --git a/pkgs/development/tools/errcheck/default.nix b/pkgs/development/tools/errcheck/default.nix
index eb9589f723da4..a387c14c0a5c9 100644
--- a/pkgs/development/tools/errcheck/default.nix
+++ b/pkgs/development/tools/errcheck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "errcheck";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kisielk";
     repo = "errcheck";
     rev = "v${version}";
-    sha256 = "sha256-ZmocFXtg+Thdup+RqDYC/Td3+m1nS0FydZecfsWXIzI=";
+    sha256 = "sha256-Przf2c2jFNdkUq7IOUD7ChXHiSayAz4xTsNzajycYZ0=";
   };
 
   vendorSha256 = "sha256-rluaBdW+w2zPThELlBwX/6LXDgc2aIk/ucbrsrABpVc=";
diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix
index 4f2bd805260cc..0fd9cf1f06ddf 100644
--- a/pkgs/development/tools/flyway/default.nix
+++ b/pkgs/development/tools/flyway/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, jre_headless, makeWrapper }:
   let
-    version = "7.5.2";
+    version = "7.5.3";
   in
     stdenv.mkDerivation {
       pname = "flyway";
       inherit version;
       src = fetchurl {
         url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-        sha256 = "sha256-oO7k6JOKUm11OYNN+tH/zqF9ucgrsnF4PcphT8+xnS8=";
+        sha256 = "sha256-XDfY/OnXSmgF2u8DMr+WgzNJD3VYw/hQ8v3cr4/jhVY=";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/pkgs/development/tools/github/github-release/default.nix b/pkgs/development/tools/github/github-release/default.nix
index 81b125ac05858..4326d4bf71ca1 100644
--- a/pkgs/development/tools/github/github-release/default.nix
+++ b/pkgs/development/tools/github/github-release/default.nix
@@ -1,40 +1,17 @@
-{ lib, stdenv, system, fetchurl }:
+{ buildGoPackage, fetchFromGitHub, lib }:
 
-let
-  linuxPredicate = system == "x86_64-linux";
-  bsdPredicate = system == "x86_64-freebsd";
-  darwinPredicate = system == "x86_64-darwin";
-  metadata = assert linuxPredicate || bsdPredicate || darwinPredicate;
-    if linuxPredicate then
-      { arch = "linux-amd64";
-        sha256 = "0p0qj911nmmdj0r7wx3363gid8g4bm3my6mj3d6s4mwgh9lfisiz";
-        archiveBinaryPath = "linux/amd64"; }
-    else if bsdPredicate then
-      { arch = "freebsd-amd64";
-        sha256 = "0g618y9n39j11l1cbhyhwlbl2gv5a2a122c1dps3m2wmv7yzq5hk";
-        archiveBinaryPath = "freebsd/amd64"; }
-    else
-      { arch = "darwin-amd64";
-        sha256 = "0l623fgnsix0y3f960bwx3dgnrqaxs21w5652kvaaal7dhnlgmwj";
-        archiveBinaryPath = "darwin/amd64"; };
-in stdenv.mkDerivation rec {
-  shortname = "github-release";
-  name = "${shortname}-${version}";
-  version = "0.7.2";
+buildGoPackage rec {
+  pname = "github-release";
+  version = "0.10.0";
 
-  src = fetchurl {
-    url = "https://github.com/aktau/github-release/releases/download/v${version}/${metadata.arch}-${shortname}.tar.bz2";
-    sha256 = metadata.sha256;
+  src = fetchFromGitHub {
+    owner = "github-release";
+    repo = "github-release";
+    rev = "v${version}";
+    sha256 = "sha256-J5Y0Kvon7DstTueCsoYvw6x4cOH/C1IaVArE0bXtZts=";
   };
 
-  buildInputs = [ ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    cp "${metadata.archiveBinaryPath}/github-release" "$out/bin/"
-  '';
+  goPackagePath = "github.com/github-release/github-release";
 
   meta = with lib; {
     description = "Commandline app to create and edit releases on Github (and upload artifacts)";
@@ -45,8 +22,8 @@ in stdenv.mkDerivation rec {
     '';
 
     license = licenses.mit;
-    homepage = "https://github.com/aktau/github-release";
-    maintainers = with maintainers; [ ardumont ];
+    homepage = "https://github.com/github-release/github-release";
+    maintainers = with maintainers; [ ardumont j03 ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/gllvm/default.nix b/pkgs/development/tools/gllvm/default.nix
index 78038440a96da..460f59dc3d0e9 100644
--- a/pkgs/development/tools/gllvm/default.nix
+++ b/pkgs/development/tools/gllvm/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gllvm";
-  version = "1.2.9";
+  version = "1.3.0";
 
   goPackagePath = "github.com/SRI-CSL/gllvm";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "SRI-CSL";
     repo = "gllvm";
     rev = "v${version}";
-    sha256 = "15cgngvd9mg057iz32fk5kcprcvvavahbvfvl5ds8x7shbm60g7s";
+    sha256 = "sha256-nu6PRFk+GoN1gT1RTbX6mTPZByAGf0bSsj2C5YriGp8=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 57e836d8f4ed3..8e58a81130561 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.2.1";
+  version = "2020.2.2";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "0a1a4dhz33grwg892436bjhgp8sygrg8yhdhy8dh6i3l6n9dalfh";
+    sha256 = "1vk9c4hsv8i3zhkyrsd0cb5mscxl35ws5bykpp5h6g366rpl0dy1";
   };
 
   vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak";
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 2e973e9a0b062..49928b1a08b52 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.36.0";
+  version = "1.37.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "sha256-AObZI104q+kOvV3/6aAusl5PMro1nbNUasvmJ4mRGz8=";
+    sha256 = "sha256-x0VLNQeTVN9aPO06Yi1DTb8bTjq+9VemJaX1R+8s/Bg=";
   };
 
-  vendorSha256 = "sha256-jr8sYfonggAHqtq3A8YVuTqJu3/iIu0OgBEUWj6bq+A=";
+  vendorSha256 = "sha256-uduT4RL6p6/jdT8JeTx+FY9bz0P2eUSaFNDIzi7jcqg=";
 
   doCheck = false;
 
@@ -19,7 +19,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags=-s -w -X main.version=${version} -X main.commit=v${version} -X main.date=19700101-00:00:00")
+  '';
 
   postInstall = ''
     for shell in bash zsh; do
@@ -31,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Fast linters Runner for Go";
     homepage = "https://golangci-lint.run/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ anpryl manveru ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ anpryl manveru mic92 ];
   };
 }
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
new file mode 100644
index 0000000000000..35d7cf50a7ede
--- /dev/null
+++ b/pkgs/development/tools/gops/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gops";
+  version = "0.3.15";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "gops";
+    rev = "v${version}";
+    sha256 = "091idnsgbwabmm5s9zhm474fbxvjvpkvwg68snbypfll7wdr3phy";
+  };
+
+  vendorSha256 = null;
+
+  preCheck = "export HOME=$(mktemp -d)";
+
+  meta = with lib; {
+    description = "A tool to list and diagnose Go processes currently running on your system";
+    homepage = "https://github.com/google/gops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pborzenkov ];
+  };
+}
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 435edd61623bf..d75dae12bcb3e 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "sha256-eJxrdR3JYqF+GexcwnyHV4xO75stEDNFzxDtky7PVc8=";
+    sha256 = "sha256-/DpsB3MS0iPYFSug3RTWOprB8tclVP6v3dbS3mC3S+g=";
   };
 
-  vendorSha256 = "sha256-VQ3/VkxoYtY71xJQj6/XAoIEH4jr4Rq4hFqFnwxzkSU=";
+  vendorSha256 = "sha256-AOdWv0PkDi8o5V71DVzAd/sRibbMf3CkqmJGmuxHtuc=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/jq/default.nix b/pkgs/development/tools/jq/default.nix
index e8fe27aae099f..ad4304fc6e1f7 100644
--- a/pkgs/development/tools/jq/default.nix
+++ b/pkgs/development/tools/jq/default.nix
@@ -28,10 +28,9 @@ stdenv.mkDerivation rec {
 
   postInstallCheck = ''
     $bin/bin/jq --help >/dev/null
+    $bin/bin/jq -r '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null
   '';
 
-  passthru.tests = { inherit (nixosTests) jq; };
-
   meta = with lib; {
     description = "A lightweight and flexible command-line JSON processor";
     license = licenses.mit;
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index 4695585533237..fbb08ee2269c5 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectx";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
+    sha256 = "sha256-a2w4SXF6oOo4ZLYwF8I3mkqW9ktSbHiV/tym8b8Ng4U=";
   };
 
-  vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
+  vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index a2707eb72e99e..10e701d1e9300 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.24.2";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hy13l1v2kcsn99dswlq1hl0ly18cal387zhnzjfqv51qng2q5kq";
+    sha256 = "sha256-A4Nim1jnyMHd5hxyLu8oZkQ9nDWxTmaX/25WX714ry4=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 729ab88c680bd..100190b089459 100644
--- a/pkgs/development/tools/metals/default.nix
+++ b/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.9.10";
+  version = "0.10.0";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "1i91jq1p27kkzxk57mm438sablnrx8j5pfyl0yg64wzrashba1xa";
+    outputHash     = "1v9br6nad6yhq9y1z4b9z6xdsjrgqh7wlxww7vp7ws28cg85mqyg";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/ccls/default.nix b/pkgs/development/tools/misc/ccls/default.nix
index 40b53ca6934a5..218a396490f1e 100644
--- a/pkgs/development/tools/misc/ccls/default.nix
+++ b/pkgs/development/tools/misc/ccls/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ccls";
-  version = "0.20201025";
+  version = "0.20201219";
 
   src = fetchFromGitHub {
     owner = "MaskRay";
     repo = "ccls";
     rev = version;
-    sha256 = "13v00q1bz8g0ckw1sv0zyicbc44irc00vhwxdv3vvwlvylm7s21p";
+    sha256 = "sha256-qCZYSzUh5WBQxMX6LtWRBz0VWnZVNR4v06aH9bJIb1o=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 2ce779be5680d..6f9237789750f 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -82,7 +82,8 @@ stdenv.mkDerivation rec {
     "--with-mpfr=${mpfr.dev}"
     "--with-expat" "--with-libexpat-prefix=${expat.dev}"
     "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}"
-  ] ++ lib.optional (!pythonSupport) "--without-python";
+  ] ++ lib.optional (!pythonSupport) "--without-python"
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-nls";
 
   postInstall =
     '' # Remove Info files already provided by Binutils and other packages.
diff --git a/pkgs/development/tools/misc/gpuvis/default.nix b/pkgs/development/tools/misc/gpuvis/default.nix
new file mode 100644
index 0000000000000..5e0f54b2feef2
--- /dev/null
+++ b/pkgs/development/tools/misc/gpuvis/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub
+, freetype
+, gtk3
+, lib
+, meson
+, ninja
+, pkg-config
+, SDL2
+, stdenv
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gpuvis";
+  version = "20210220";
+
+  src = fetchFromGitHub {
+    owner = "mikesart";
+    repo = pname;
+    rev = "216f7d810e182a89fd96ab9fad2a5c2b1e425ea9";
+    sha256 = "15pj7gy0irlp849a85z68n184jksjri0xhihgh56rs15kq333mwz";
+  };
+
+  # patch dlopen path for gtk3
+  # python2 is wrongly added in the meson file, upstream PR: https://github.com/mikesart/gpuvis/pull/62
+  postPatch = ''
+    substituteInPlace src/hook_gtk3.h \
+      --replace "libgtk-3.so" "${lib.getLib gtk3}/lib/libgtk-3.so"
+  '';
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+
+  buildInputs = [ SDL2 gtk3 freetype ];
+
+  meta = with lib; {
+    description = "GPU Trace Visualizer";
+    homepage = "https://github.com/mikesart/gpuvis";
+    license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/k2tf/default.nix b/pkgs/development/tools/misc/k2tf/default.nix
new file mode 100644
index 0000000000000..904256ee66a99
--- /dev/null
+++ b/pkgs/development/tools/misc/k2tf/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "k2tf";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "sl1pm4t";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0i1bhn0sccvnqbd4kv2xgng5r68adhcc61im2mn8hxmds5nf6in2";
+  };
+
+  vendorSha256 = "1c2mwhrj0xapc661z1nb6am4qq3rd1pvbvjaxikjyx95n0gs8gjk";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=v${version}" ];
+
+  meta = with lib; {
+    description = "Kubernetes YAML to Terraform HCL converter";
+    homepage = "https://github.com/sl1pm4t/k2tf";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.flokli ];
+  };
+}
diff --git a/pkgs/development/tools/misc/msitools/default.nix b/pkgs/development/tools/misc/msitools/default.nix
index f444f86dbfbe6..2db336a4991e5 100644
--- a/pkgs/development/tools/misc/msitools/default.nix
+++ b/pkgs/development/tools/misc/msitools/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, intltool, glib, pkg-config, libgsf, libuuid, gcab, bzip2, gnome3 }:
+{ lib, stdenv, fetchurl, bison, intltool, glib, pkg-config, libgsf, libuuid, gcab, bzip2, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "msitools";
-  version = "0.98";
+  version = "0.99";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac";
+    sha256 = "sha256-1HWTml4zayBesxN7rHM96Ambx0gpBA4GWwGxX2yLNjU=";
   };
 
-  nativeBuildInputs = [ intltool pkg-config ];
+  nativeBuildInputs = [ bison intltool pkg-config ];
   buildInputs = [ glib libgsf libuuid gcab bzip2 ];
 
   passthru = {
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     description = "Set of programs to inspect and build Windows Installer (.MSI) files";
     homepage = "https://wiki.gnome.org/msitools";
     license = [ licenses.gpl2 licenses.lgpl21 ];
+    maintainers = with maintainers; [ PlushBeaver ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/scc/default.nix b/pkgs/development/tools/misc/scc/default.nix
index 8a5cbbcfdfae4..9dfa5955f5c98 100644
--- a/pkgs/development/tools/misc/scc/default.nix
+++ b/pkgs/development/tools/misc/scc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scc";
-  version = "2.13.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
+    sha256 = "sha256-G5LYOtAUnu82cgDdtYzcfVx/WFg9/HvFQAlQtd6GaDE=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 9695c75a3c161..eb823904eed20 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0WbUJYNRBKixRFl+YM1uSEltQneB6FYPFHNVVhmdseA=";
+    sha256 = "sha256-p9q+cSnMN6Na+XZoYSHfE4SCNYOEavXE+eWIaxcD73k=";
   };
-  vendorSha256 = "sha256-WYTn2QoI1Z3L4Wxjrq0YT++X9vMA1Wm3zgl08CYiU1Y=";
+  vendorSha256 = "sha256-XOIs5Ng0FYz7OfwbrNiVN3GTIABqxlO8ITKGfnC+kWo=";
 
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
diff --git a/pkgs/development/tools/misc/terraformer/default.nix b/pkgs/development/tools/misc/terraformer/default.nix
index 47c9c15a0cc7b..60124ef44c93a 100644
--- a/pkgs/development/tools/misc/terraformer/default.nix
+++ b/pkgs/development/tools/misc/terraformer/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraformer";
-  version = "0.8.10";
+  version = "0.8.11";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = pname;
     rev = version;
-    sha256 = "005i66d2gkyixqh9sk452la7z86d5x9q3njngjf4z9slcbpgk7bl";
+    sha256 = "sha256-y6cgBYiqy+M8dfcNS6iDohqyip6xAs222MJHJFhloiI=";
   };
 
-  vendorSha256 = "02i1q11nivdlkhf9chpi03p8jpa0fx9wbf79j834qv4fqy7jqf6l";
+  vendorSha256 = "sha256-PQj3+qcmN/raDrAbufAcVT+vSumGuOY47i7ZYfvx3yk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/ocaml/crunch/default.nix b/pkgs/development/tools/ocaml/crunch/default.nix
index e48707dcb9af6..07082b7f5d22d 100644
--- a/pkgs/development/tools/ocaml/crunch/default.nix
+++ b/pkgs/development/tools/ocaml/crunch/default.nix
@@ -1,10 +1,12 @@
-{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, opaline, ptime }:
+{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, ptime }:
 
 buildDunePackage rec {
 
   pname = "crunch";
   version = "3.1.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-crunch/releases/download/v${version}/crunch-v${version}.tbz";
     sha256 = "0d26715a4h9r1wibnc12xy690m1kan7hrcgbb5qk8x78zsr67lnf";
@@ -15,7 +17,7 @@ buildDunePackage rec {
   outputs = [ "lib" "bin" "out" ];
 
   installPhase = ''
-    ${opaline}/bin/opaline -prefix $bin -libdir $lib/lib/ocaml/${ocaml.version}/site-lib/
+    dune install --prefix=$bin --libdir=$lib/lib/ocaml/${ocaml.version}/site-lib/
   '';
 
   meta = {
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index c03dbf7562373..c14cd7ddc041a 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2.1";
+  version = "1.2.2";
 
   useDune2 = true;
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
-    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
+    sha256 = "0k4i0aabyn750f4wqbnk0yv10kdjd6nhjw2pbmpc4cz639qcsm40";
   };
 
   buildInputs = [ cppo cmdliner re ];
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ocp-indent ];
 
   meta = {
-    homepage = "http://typerex.ocamlpro.com/ocp-index.html";
+    homepage = "https://www.typerex.org/ocp-index.html";
     description = "A simple and light-weight documentation extractor for OCaml";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index b12aa2e6d6deb..c3da3bc2327aa 100644
--- a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec
 {
   pname = "ocsigen-i18n";
-  version = "3.5.0";
+  version = "3.7.0";
 
   buildInputs = with ocamlPackages; [ ocaml findlib ppx_tools ];
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec
 
   src = fetchzip {
     url = "https://github.com/besport/${pname}/archive/${version}.tar.gz";
-    sha256 = "1qsgwfl64b53w235wm7nnchqinzgsvd2gb52xm0kra2wlwp69rfq";
+    sha256 = "sha256-PmdDyn+MUcNFrZpP/KLGQzdXUFRr+dYRAZjTZxHSeaw=";
   };
 
   meta = {
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index e3c16b09ef34d..8638bb5844bd6 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.18.1";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-qoN9pTpmXfwaJ37MqAggiPsH4cPr+nsT6NhAUOVclSw=";
+    sha256 = "sha256-+CqWPgdPuTE9TRwQJYibRCtdyAr25sJ2sXCUEoI0VtM=";
   };
 
-  cargoSha256 = "sha256-mmd9Ds37ST+OuCt506/YbdpOOJBp7WIVZBq+bQ2SR3U=";
+  cargoSha256 = "sha256-cBuAVU/fS2HQohjDyzrhDEsgWD5CxTrTCsQeZll90IQ=";
 
   nativeBuildInputs = [ perl pkg-config ];
 
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index 4d6603d31d994..addcab582f6ea 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -2,10 +2,10 @@
 
 {
   rust-analyzer-unwrapped = callPackage ./generic.nix rec {
-    rev = "2021-02-15";
+    rev = "2021-02-22";
     version = "unstable-${rev}";
-    sha256 = "sha256-4Dgj2RQDe2FoOSXjL7oaHg8WlYX1vnc66LzzbXvTmjM=";
-    cargoSha256 = "sha256-c6kr2PWSG3Sns6/O1zOVUFdkLWHAXcQ8LMeensCEuSk=";
+    sha256 = "sha256-QiVSwpTTOqR2WEm0nXyLLavlF2DnY9GY93HtpgHt2uI=";
+    cargoSha256 = "sha256-934ApOv/PJzkLc/LChckb/ZXKrh4kU556Bo/Zck+q8g=";
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/pkgs/development/tools/rust/rust-analyzer/generic.nix b/pkgs/development/tools/rust/rust-analyzer/generic.nix
index 10f0c6b26ad75..0ce33f0f23361 100644
--- a/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -41,6 +41,8 @@ rustPlatform.buildRustPackage {
     runHook postInstallCheck
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "An experimental modular compiler frontend for the Rust language";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
diff --git a/pkgs/development/tools/sd-local/default.nix b/pkgs/development/tools/sd-local/default.nix
index 0fbd3362b49ba..0f4f1740fac5f 100644
--- a/pkgs/development/tools/sd-local/default.nix
+++ b/pkgs/development/tools/sd-local/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sd-local";
-  version = "1.0.23";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     owner = "screwdriver-cd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oOLNLyQjuLhSfIaiIavuJ1qWWLI0RWp7L9c0m6m5owY=";
+    sha256 = "sha256-dqjZQyh7SWkD2dBcB32pR3PgWPMGQYPo7AkOQURt0hs=";
   };
 
   vendorSha256 = "sha256-3KNYG6RBnfFRgIoIyAe7QwAB56ZMF8bHdgt9Ghtod20=";
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 955bc35c5ab54..b2d0581c0541c 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     rev = "v${version}";
     repo = "yq";
-    sha256 = "sha256-9D00I34pfoiI5cqXjsVLTT6XbFUYxgGit0ZuYeWSEyE=";
+    sha256 = "sha256-pP00y9auYeuz0NSA+QrnGybW5T7TfGFFw/FMPu/JXjM=";
   };
 
   vendorSha256 = "sha256-66ccHSKpl6yB/NVhZ1X0dv4wnGCJAMvZhpKu2vF+QT4=";
diff --git a/pkgs/development/web/cog/default.nix b/pkgs/development/web/cog/default.nix
index a3639e559f1c4..5344c1b833ca0 100644
--- a/pkgs/development/web/cog/default.nix
+++ b/pkgs/development/web/cog/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchFromGitHub
 , cmake
 , pkg-config
@@ -8,7 +7,6 @@
 , wayland-protocols
 , libwpe
 , libwpe-fdo
-, glib
 , glib-networking
 , webkitgtk
 , makeWrapper
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index 495ac311b88d2..abb10aa44479e 100644
--- a/pkgs/development/web/nodejs/v10.nix
+++ b/pkgs/development/web/nodejs/v10.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.23.3";
-    sha256 = "13za06bz17k71gcxyrx41l2j8al1kr3j627b8m7kqrf3l7rdfnsi";
+    version = "10.24.0";
+    sha256 = "1k1srdis23782hnd1ymgczs78x9gqhv77v0am7yb54gqcspp70hm";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 9c5975a6e4907..08b8025f9bc11 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.20.2";
-    sha256 = "0g3dxip7b5j7fzkw4b82ln93fphxn1zpdizbj1ikjv3hy00dc6ln";
+    version = "12.21.0";
+    sha256 = "17cp3sv6smpig5xq0z3xgnqdii6k8lm4n5d1nl9vasgmwsn3fbq5";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix
index ee8ea72c05eab..9a40bf8654d74 100644
--- a/pkgs/development/web/nodejs/v14.nix
+++ b/pkgs/development/web/nodejs/v14.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.15.5";
-    sha256 = "0nv576mlmnf8pfs6yn7vsvwyg0a0xvs7m9pm4k131zjqx501v6z1";
+    version = "14.16.0";
+    sha256 = "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v15.nix b/pkgs/development/web/nodejs/v15.nix
index 2c2634959bdf0..050e752ed007e 100644
--- a/pkgs/development/web/nodejs/v15.nix
+++ b/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.8.0";
-    sha256 = "1a9h88zdzk98k618jascfrivq3v51viw60sfyxn0ci0l33vf4fp2";
+    version = "15.10.0";
+    sha256 = "1i7fdlkkyh5ssncbvxmiz894a12mww4cmj7y4qzm9ddbbvqxhj3p";
   }