summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2022-10-08 12:01:37 +0000
committerGitHub <noreply@github.com>2022-10-08 12:01:37 +0000
commit1b60238acd96038c0a52ee73c012194d506eb432 (patch)
tree8d1bb3d0fa72f6cad063e7de94032f0cc4845097
parent0d24f164c934cf7328b9e26c2da1836716d7e3c5 (diff)
parent5f41d9525a9e6c6d665e8e7d172d5ebac6a60df1 (diff)
downloadnixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar.gz
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar.bz2
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar.lz
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar.xz
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.tar.zst
nixpkgs-1b60238acd96038c0a52ee73c012194d506eb432.zip
Merge master into staging-next
-rw-r--r--maintainers/maintainer-list.nix15
-rw-r--r--maintainers/team-list.nix1
-rw-r--r--pkgs/applications/audio/exact-audio-copy/default.nix86
-rw-r--r--pkgs/applications/audio/musikcube/default.nix2
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/editors/kakoune/default.nix2
-rw-r--r--pkgs/applications/graphics/yacreader/default.nix5
-rw-r--r--pkgs/applications/misc/keepassx/community.nix2
-rw-r--r--pkgs/applications/networking/cluster/gatekeeper/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix2
-rw-r--r--pkgs/applications/radio/flex-ncat/default.nix6
-rw-r--r--pkgs/applications/radio/flex-ndax/default.nix6
-rw-r--r--pkgs/applications/radio/sigdigger/default.nix59
-rw-r--r--pkgs/applications/radio/sigutils/default.nix40
-rw-r--r--pkgs/applications/radio/suscan/default.nix50
-rw-r--r--pkgs/applications/radio/suwidgets/default.nix51
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix2
-rw-r--r--pkgs/development/embedded/tytools/default.nix4
-rw-r--r--pkgs/development/interpreters/cg3/default.nix4
-rw-r--r--pkgs/development/python-modules/acquire/default.nix70
-rw-r--r--pkgs/development/python-modules/cairo-lang/default.nix69
-rw-r--r--pkgs/development/python-modules/deltachat/default.nix2
-rw-r--r--pkgs/development/python-modules/dissect-cim/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-clfs/default.nix50
-rw-r--r--pkgs/development/python-modules/dissect-cstruct/default.nix45
-rw-r--r--pkgs/development/python-modules/dissect-esedb/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-etl/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-eventlog/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-evidence/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-extfs/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-fat/default.nix50
-rw-r--r--pkgs/development/python-modules/dissect-ffs/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-hypervisor/default.nix61
-rw-r--r--pkgs/development/python-modules/dissect-ntfs/default.nix57
-rw-r--r--pkgs/development/python-modules/dissect-ole/default.nix50
-rw-r--r--pkgs/development/python-modules/dissect-regf/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-shellitem/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-sql/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-target/default.nix110
-rw-r--r--pkgs/development/python-modules/dissect-util/default.nix45
-rw-r--r--pkgs/development/python-modules/dissect-vmfs/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-volume/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect-xfs/default.nix52
-rw-r--r--pkgs/development/python-modules/dissect/default.nix88
-rw-r--r--pkgs/development/python-modules/flow-record/default.nix68
-rw-r--r--pkgs/development/python-modules/funcparserlib/default.nix14
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/hy/default.nix35
-rw-r--r--pkgs/development/python-modules/json-stream/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/lektor/default.nix16
-rw-r--r--pkgs/development/python-modules/marshmallow-dataclass/default.nix4
-rw-r--r--pkgs/development/python-modules/msal/default.nix4
-rw-r--r--pkgs/development/python-modules/openai/default.nix57
-rw-r--r--pkgs/development/python-modules/pandas-stubs/default.nix105
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix10
-rw-r--r--pkgs/development/python-modules/pyreadstat/default.nix41
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/sensor-state-data/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/types-python-dateutil/default.nix29
-rw-r--r--pkgs/development/python-modules/types-retry/default.nix29
-rw-r--r--pkgs/development/python-modules/web3/default.nix32
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/servers/imgproxy/default.nix6
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/components.nix6
-rw-r--r--pkgs/tools/graphics/pngquant/default.nix2
-rw-r--r--pkgs/tools/misc/rlwrap/default.nix2
-rw-r--r--pkgs/tools/misc/tmux/default.nix2
-rw-r--r--pkgs/tools/networking/bwm-ng/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix14
-rw-r--r--pkgs/top-level/python-packages.nix56
75 files changed, 2118 insertions, 176 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 697cb475dc1..0ddf2fa033d 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1922,6 +1922,12 @@
     githubId = 2506621;
     name = "Brayden Willenborg";
   };
+  brendanreis = {
+    email = "brendanreis@gmail.com";
+    name = "Brendan Reis";
+    github = "brendanreis";
+    githubId = 10686906;
+  };
   brian-dawn = {
     email = "brian.t.dawn@gmail.com";
     github = "brian-dawn";
@@ -10181,6 +10187,15 @@
       fingerprint = "F90F FD6D 585C 2BA1 F13D  E8A9 7571 654C F88E 31C2";
     }];
   };
+  oxapentane = {
+    email = "blame@oxapentane.com";
+    github = "oxapentane";
+    githubId = 1297357;
+    name = "Grigory Shipunov";
+    keys = [{
+      fingerprint = "DD09 98E6 CDF2 9453 7FC6  04F9 91FA 5E5B F9AA 901C";
+    }];
+  };
   oxij = {
     email = "oxij@oxij.org";
     github = "oxij";
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index a8e66897a68..35e184b4399 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -110,6 +110,7 @@ with lib.maintainers; {
       astro
       SuperSandro2000
       revol-xut
+      oxapentane
     ];
     scope = "Maintain packages used in the C3D2 hackspace";
     shortName = "c3d2";
diff --git a/pkgs/applications/audio/exact-audio-copy/default.nix b/pkgs/applications/audio/exact-audio-copy/default.nix
new file mode 100644
index 00000000000..bd5e55bc210
--- /dev/null
+++ b/pkgs/applications/audio/exact-audio-copy/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchurl
+, makeDesktopItem
+, imagemagick
+, p7zip
+, wine
+, writeShellScriptBin
+, symlinkJoin
+, use64 ? false
+}:
+
+let
+  pname = "exact-audio-copy";
+  version = "1.6.0";
+
+  eac_exe = fetchurl {
+    url = "http://www.exactaudiocopy.de/eac-${lib.versions.majorMinor version}.exe";
+    sha256 = "8291d33104ebab2619ba8d85744083e241330a286f5bd7d54c7b0eb08f2b84c1";
+  };
+
+  cygwin_dll = fetchurl {
+    url = "https://cygwin.com/snapshots/x86/cygwin1-20220301.dll.xz";
+    sha256 = "0zxn0r5q69fhciy0mrplhxj1hxwy3sq4k1wdy6n6kyassm4zyz1x";
+  };
+
+  patched_eac = stdenv.mkDerivation {
+    pname = "patched_eac";
+    inherit version;
+
+    nativeBuildInputs = [
+      imagemagick
+      p7zip
+    ];
+
+    buildCommand = ''
+      mkdir -p $out
+      _tmp=$(mktemp -d)
+      cd $_tmp
+      7z x -aoa ${eac_exe}
+      chmod -R 755 .
+      cp ${cygwin_dll} cygwin1.dll.xz
+      xz --decompress cygwin1.dll.xz
+      mv cygwin1.dll CDRDAO/
+      cp -r * $out
+      7z x EAC.exe
+      convert .rsrc/1033/ICON/29.ico -thumbnail 128x128 -alpha on -background none -flatten "$out/eac.ico.128.png"
+    '';
+  };
+
+  wrapper = writeShellScriptBin pname ''
+    export WINEPREFIX="''${EXACT_AUDIO_COPY_HOME:-"''${XDG_DATA_HOME:-"''${HOME}/.local/share"}/exact-audio-copy"}/wine"
+    export WINEARCH=${if use64 then "win64" else "win32"}
+    export WINEDLLOVERRIDES="mscoree=" # disable mono
+    export WINEDEBUG=-all
+    if [ ! -d "$WINEPREFIX" ] ; then
+      mkdir -p "$WINEPREFIX"
+      ${wine}/bin/wineboot -u
+    fi
+
+    exec ${wine}/bin/wine ${patched_eac}/EAC.exe "$@"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = pname;
+    comment = "Audio Grabber for CDs";
+    desktopName = "Exact Audio Copy";
+    categories = [ "Audio" "AudioVideo" ];
+    icon = "${patched_eac}/eac.ico.128.png";
+  };
+in
+symlinkJoin {
+  name = "${pname}-${version}";
+
+  paths = [ wrapper desktopItem ];
+
+  meta = with lib; {
+    description = "A precise CD audio grabber for creating perfect quality rips using CD and DVD drives";
+    homepage = "https://www.exactaudiocopy.de/";
+    changelog = "https://www.exactaudiocopy.de/en/index.php/resources/whats-new/whats-new/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.brendanreis ];
+    platforms = wine.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
index b19e22eeeba..6b47d1f3c84 100644
--- a/pkgs/applications/audio/musikcube/default.nix
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A fully functional terminal-based music player, library, and streaming audio server";
     homepage = "https://musikcube.com/";
-    maintainers = [ maintainers.aanderse ];
+    maintainers = with maintainers; [ aanderse srapenne ];
     license = licenses.bsd3;
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 3f1e7e8b99b..3c54844863f 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "4.0.103";
+  version = "4.0.104";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "sha256-9vGPHNq76BSdqN1z0KzDOzeMOHAUKnA3Jpx+I5+FOFM=";
+    sha256 = "sha256-h6OVeDifYIKyIkwbN/pmJWge4/YGL6cnQQ/sI14LsHQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index 9beab9fa4be..26788ddb067 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     description = "A vim inspired text editor";
     license = licenses.publicDomain;
     mainProgram = "kak";
-    maintainers = with maintainers; [ vrthra ];
+    maintainers = with maintainers; [ vrthra srapenne ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/graphics/yacreader/default.nix b/pkgs/applications/graphics/yacreader/default.nix
index 990e279c590..44733d8bead 100644
--- a/pkgs/applications/graphics/yacreader/default.nix
+++ b/pkgs/applications/graphics/yacreader/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "yacreader";
-  version = "9.9.1";
+  version = "9.9.2";
 
   src = fetchFromGitHub {
     owner = "YACReader";
     repo = pname;
     rev = version;
-    sha256 = "sha256-D+ZmFMg9ZixZNUAMjPHwz7gcwKjG49lm5hTEqftbIrY=";
+    sha256 = "sha256-rurJkCIuHTWxIGb+TTHp8sQS26/5W/sdtWFxyeqVx54=";
   };
 
   nativeBuildInputs = [ qmake pkg-config ];
@@ -22,5 +22,6 @@ mkDerivation rec {
     description = "A comic reader for cross-platform reading and managing your digital comic collection";
     homepage = "http://www.yacreader.com";
     license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ srapenne ];
   };
 }
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index fdac7cede17..c7040e1c96c 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -124,7 +124,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://keepassxc.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ jonafato turion ];
+    maintainers = with maintainers; [ jonafato turion srapenne ];
     platforms = platforms.linux ++ platforms.darwin;
     broken = stdenv.isDarwin;  # see to https://github.com/NixOS/nixpkgs/issues/172165
   };
diff --git a/pkgs/applications/networking/cluster/gatekeeper/default.nix b/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 8dbe5f4659f..192f37228a7 100644
--- a/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gatekeeper";
-  version = "3.9.0";
+  version = "3.9.1";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "gatekeeper";
     rev = "v${version}";
-    sha256 = "sha256-hZ8PBJ+6G0A5tVrJfxy2rODxOxQarQg6mxG3sQCqjfY=";
+    sha256 = "sha256-XZASej26Mn4tq9c4nvjQNhQZWtu3L6jIgMNhyYyh5IE=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index 2a9046d94a0..e30a1214c3a 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -74,8 +74,8 @@ in
 {
   spark_3_2 = spark rec {
     pname = "spark";
-    version = "3.2.1";
-    sha256 = "0kxdqczwmj6pray0h8h1qhygni9m82jzznw5fbv9hrxrkq1v182d";
+    version = "3.2.2";
+    sha256 = "sha256-yKoTyD/IqvsJQs0jB67h1zqwYaLuikdoa5fYIXtvhz0=";
   };
   spark_3_1 = spark rec {
     pname = "spark";
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 5a580cf0f70..a40e998618a 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -163,6 +163,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://www.claws-mail.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin orivej oxzi ajs124 ];
+    maintainers = with maintainers; [ fpletz globin orivej oxzi ajs124 srapenne ];
   };
 }
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
index 24c2e08f552..e06b241905d 100644
--- a/pkgs/applications/radio/flex-ncat/default.nix
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flex-ncat";
-  version = "0.1-20220505.0";
+  version = "0.1-20221007.1";
 
   src = fetchFromGitHub {
     owner = "kc2g-flex-tools";
     repo = "nCAT";
     rev = "v${version}";
-    hash = "sha256-Jqoqy+W5sKfg7U/F2OpK1jAVM8rm1Tbr4RHG/mMVE0g=";
+    hash = "sha256-9rxI3wsqjhaH7DD1Go/8s0r6jXaE15Z9PPtbsnsfrM0=";
   };
 
-  vendorSha256 = "sha256-mWZRaPbmSPBUhTCWSkU33zOOq79ylEbnjPG3gLkWeQY=";
+  vendorSha256 = "sha256-lnJtFixgv4ke4Knavb+XKFPzHCiAPhNtfZS3SRVvY2g=";
 
   meta = with lib; {
     homepage = "https://github.com/kc2g-flex-tools/nCAT";
diff --git a/pkgs/applications/radio/flex-ndax/default.nix b/pkgs/applications/radio/flex-ndax/default.nix
index 6900e1eb4ed..477953ab26f 100644
--- a/pkgs/applications/radio/flex-ndax/default.nix
+++ b/pkgs/applications/radio/flex-ndax/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "flex-ndax";
-  version = "0.2-20220427";
+  version = "0.2-20221007.1";
 
   src = fetchFromGitHub {
     owner = "kc2g-flex-tools";
     repo = "nDAX";
     rev = "v${version}";
-    hash = "sha256-KmvTLfGC6xzXcWYAzmBYiYSF65lqMdsdMQjUEk3siqc=";
+    hash = "sha256-QldbiJnCjWrlXEPvyAqV5Xwz9YvsnVobVy/E/OB0A1k=";
   };
 
   buildInputs = [ libpulseaudio ];
 
-  vendorSha256 = "sha256-u/5LiVo/ZOefprEKr/L1+3+OfYb0a4wq+CWoUjYNvzg=";
+  vendorSha256 = "sha256-eHy8oFYicVONQr31LQQ9b5auzeBoIzbszw2buKaBQbQ=";
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/applications/radio/sigdigger/default.nix b/pkgs/applications/radio/sigdigger/default.nix
new file mode 100644
index 00000000000..4273d148ce2
--- /dev/null
+++ b/pkgs/applications/radio/sigdigger/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, pkg-config
+, sigutils
+, fftwSinglePrec
+, suwidgets
+, wrapQtAppsHook
+, suscan
+, libsndfile
+, soapysdr-with-plugins
+, libxml2
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sigdigger";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "SigDigger";
+    rev = "v${version}";
+    sha256 = "sha256-dS+Fc0iQz7GIlGaR556Ur/EQh3Uzhqm9uBW42IuEqoE=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    sigutils
+    fftwSinglePrec
+    suwidgets
+    suscan
+    libsndfile
+    libxml2
+    volk
+    soapysdr-with-plugins
+  ];
+
+  qmakeFlags = [
+    "SUWIDGETS_PREFIX=${suwidgets}"
+    "SigDigger.pro"
+  ];
+
+  meta = with lib; {
+    description = "Qt-based digital signal analyzer, using Suscan core and Sigutils DSP library";
+    homepage = "https://github.com/BatchDrake/SigDigger";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/sigutils/default.nix b/pkgs/applications/radio/sigutils/default.nix
new file mode 100644
index 00000000000..8b384af0227
--- /dev/null
+++ b/pkgs/applications/radio/sigutils/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftwSinglePrec
+, libsndfile
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sigutils";
+  version = "unstable-2022-07-05";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "sigutils";
+    rev = "1d7559d427aadd253dd825eef26bf15e54860c5f";
+    sha256 = "sha256-wvd6sixwGmR9R4x+swLVqXre4Dqnj10jZIXUfaJcmBw=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    fftwSinglePrec
+    libsndfile
+    volk
+  ];
+
+  meta = with lib; {
+    description = "Small signal processing utility library";
+    homepage = "https://github.com/BatchDrake/sigutils";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/suscan/default.nix b/pkgs/applications/radio/suscan/default.nix
new file mode 100644
index 00000000000..d2b13784a72
--- /dev/null
+++ b/pkgs/applications/radio/suscan/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftwSinglePrec
+, libsndfile
+, sigutils
+, soapysdr-with-plugins
+, libxml2
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "suscan";
+  version = "unstable-2022-07-05";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "suscan";
+    rev = "37dad542b97aff24654f0bb80fb8e85af7cb84ab";
+    sha256 = "sha256-h1ogtYjkqiHb1/NAJfJ0HQIvGnZM2K/PSP5nqLXUf9M=";
+  };
+
+  postPatch = ''
+    sed -i 's/fftw3 >= 3.0/fftw3f >= 3.0/' suscan.pc.in
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    fftwSinglePrec
+    libsndfile
+    sigutils
+    soapysdr-with-plugins
+    libxml2
+    volk
+  ];
+
+  meta = with lib; {
+    description = "Channel scanner based on sigutils library";
+    homepage = "https://github.com/BatchDrake/suscan";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/suwidgets/default.nix b/pkgs/applications/radio/suwidgets/default.nix
new file mode 100644
index 00000000000..05f6cf12d6c
--- /dev/null
+++ b/pkgs/applications/radio/suwidgets/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, pkg-config
+, sigutils
+, fftwSinglePrec
+}:
+
+stdenv.mkDerivation rec {
+  pname = "suwidgets";
+  version = "unstable-2022-04-03";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "SuWidgets";
+    rev = "826b3eeae5b682dc063f53b427caa9c7c48131ea";
+    sha256 = "sha256-cyFLsP+8GbALdlgEnVX4201Qq/KAxb/Vv+sJqbFpvUk=";
+  };
+
+  dontWrapQtApps = true;
+
+  postPatch = ''
+    substituteInPlace SuWidgets.pri \
+      --replace "PKGCONFIG += sigutils fftw3" "PKGCONFIG += sigutils fftw3f"
+  '';
+
+  nativeBuildInputs = [
+    qmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    qtbase
+    sigutils
+    fftwSinglePrec
+  ];
+
+  qmakeFlags = [
+    "SuWidgetsLib.pro"
+  ];
+
+  meta = with lib; {
+    description = "Sigutils-related widgets";
+    homepage = "https://github.com/BatchDrake/SuWidgets";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index f4416dcc134..344a10cf2ec 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jonas.github.io/tig/";
     description = "Text-mode interface for git";
-    maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 ];
+    maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 srapenne ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/embedded/tytools/default.nix b/pkgs/development/embedded/tytools/default.nix
index 23bab058c59..1669ec239ac 100644
--- a/pkgs/development/embedded/tytools/default.nix
+++ b/pkgs/development/embedded/tytools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tytools";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "Koromix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iF2XyWSBBCO23iY/ni+QlpgtOuWKN2JTMTz+9OLEadk=";
+    sha256 = "sha256-MKhh0ooDZI1Ks8vVuPRiHhpOqStetGaAhE2ulvBstxA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/development/interpreters/cg3/default.nix b/pkgs/development/interpreters/cg3/default.nix
index 7f7a38185f9..8aa0d412c1c 100644
--- a/pkgs/development/interpreters/cg3/default.nix
+++ b/pkgs/development/interpreters/cg3/default.nix
@@ -10,13 +10,13 @@
 
 let cg3 = stdenv.mkDerivation rec {
   pname = "cg3";
-  version = "1.3.7";
+  version = "1.3.9";
 
   src = fetchFromGitHub {
     owner = "GrammarSoft";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "Ena3dGoZsXOIY6mbvnfI0H7QqRifoxWIBKQrK3yQSmY=";
+    sha256 = "sha256-TiEhhk90w5GibGZ4yalIf+4qLA8NoU6+GIPN6QNTz2A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/acquire/default.nix b/pkgs/development/python-modules/acquire/default.nix
new file mode 100644
index 00000000000..0b69bc68b04
--- /dev/null
+++ b/pkgs/development/python-modules/acquire/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, defusedxml
+, dissect-cstruct
+, dissect-target
+, fetchFromGitHub
+, minio
+, pycryptodome
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-toolbelt
+, rich
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "acquire";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "acquire";
+    rev = version;
+    hash = "sha256-YwmrdqWG5qD621+jQMVyTM0Uy0yXCVPv9zfVhZ+ohg0=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    defusedxml
+    dissect-cstruct
+    dissect-target
+  ];
+
+  passthru.optional-dependencies = {
+    full = [
+      dissect-target
+      minio
+      pycryptodome
+      requests
+      requests-toolbelt
+      rich
+    ] ++ dissect-target.optional-dependencies.full;
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.full;
+
+  pythonImportsCheck = [
+    "acquire"
+  ];
+
+  meta = with lib; {
+    description = "Tool to quickly gather forensic artifacts from disk images or a live system";
+    homepage = "https://github.com/fox-it/acquire";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cairo-lang/default.nix b/pkgs/development/python-modules/cairo-lang/default.nix
index 00a9361c27f..ec11772fb50 100644
--- a/pkgs/development/python-modules/cairo-lang/default.nix
+++ b/pkgs/development/python-modules/cairo-lang/default.nix
@@ -1,35 +1,40 @@
 { lib
-, fetchzip
+, aiohttp
 , buildPythonPackage
-, setuptools
+, cachetools
 , ecdsa
+, eth-hash
 , fastecdsa
-, sympy
+, fetchzip
 , frozendict
+, gmp
+, lark
 , marshmallow
-, marshmallow-enum
 , marshmallow-dataclass
+, marshmallow-enum
 , marshmallow-oneofschema
-, pipdeptree
-, eth-hash
-, web3
-, aiohttp
-, cachetools
 , mpmath
 , numpy
+, pipdeptree
 , prometheus-client
-, typeguard
-, lark
-, pyyaml
-, pytest-asyncio
 , pytest
+, pytest-asyncio
 , pytestCheckHook
-, gmp
+, pythonOlder
+, pythonRelaxDepsHook
+, pyyaml
+, setuptools
+, sympy
+, typeguard
+, web3
 }:
 
 buildPythonPackage rec {
   pname = "cairo-lang";
   version = "0.10.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchzip {
     url = "https://github.com/starkware-libs/cairo-lang/releases/download/v${version}/cairo-lang-${version}.zip";
@@ -37,13 +42,9 @@ buildPythonPackage rec {
   };
 
   # TODO: remove a substantial part when https://github.com/starkware-libs/cairo-lang/pull/88/files is merged.
-  # TODO: pytest and pytest-asyncio must be removed as they are check inputs in fact.
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace 'frozendict==1.2' 'frozendict>=1.2' \
-      --replace 'lark-parser' 'lark' \
-      --replace 'pytest-asyncio' ''' \
-      --replace "pytest" '''
+      --replace "lark-parser" "lark"
 
     substituteInPlace starkware/cairo/lang/compiler/parser_transformer.py \
       --replace 'value, meta' 'meta, value' \
@@ -52,7 +53,13 @@ buildPythonPackage rec {
       --replace 'standard' 'basic'
   '';
 
-  buildInputs = [ gmp ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  buildInputs = [
+    gmp
+  ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -74,23 +81,33 @@ buildPythonPackage rec {
     lark
     web3
     eth-hash
-    eth-hash.optional-dependencies.pycryptodome
     pyyaml
-  ];
+  ] ++ eth-hash.optional-dependencies.pycryptodome;
 
   checkInputs = [
+    pytest-asyncio
     pytestCheckHook
   ];
 
+  pythonRelaxDeps = [
+    "frozendict"
+  ];
+
+  pythonRemoveDeps = [
+    # TODO: pytest and pytest-asyncio must be removed as they are check inputs
+    "pytest"
+    "pytest-asyncio"
+  ];
+
   # There seems to be no test included in the ZIP release…
   # Cloning from GitHub is harder because they use a custom CMake setup
   # TODO(raitobezarius): upstream was pinged out of band about it.
   doCheck = false;
 
-  meta = {
-    homepage = "https://github.com/starkware/cairo-lang";
+  meta = with lib; {
     description = "Tooling for Cairo language";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ raitobezarius ];
+    homepage = "https://github.com/starkware/cairo-lang";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raitobezarius ];
   };
 }
diff --git a/pkgs/development/python-modules/deltachat/default.nix b/pkgs/development/python-modules/deltachat/default.nix
index a342538d4ac..9a4d924b71f 100644
--- a/pkgs/development/python-modules/deltachat/default.nix
+++ b/pkgs/development/python-modules/deltachat/default.nix
@@ -57,6 +57,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/deltachat/deltachat-core-rust/tree/master/python";
     changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/python/CHANGELOG";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = with maintainers; [ dotlambda srapenne ];
   };
 }
diff --git a/pkgs/development/python-modules/dissect-cim/default.nix b/pkgs/development/python-modules/dissect-cim/default.nix
new file mode 100644
index 00000000000..a7b81524227
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-cim/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-cim";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.cim";
+    rev = version;
+    hash = "sha256-rWlAYndqqZ6l/iwk1u2gG0mtQHvAMYUUEWo23hLykXI=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.cim"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the Windows Common Information Model (CIM) database";
+    homepage = "https://github.com/fox-it/dissect.cim";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-clfs/default.nix b/pkgs/development/python-modules/dissect-clfs/default.nix
new file mode 100644
index 00000000000..2265792f880
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-clfs/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-clfs";
+  version = "1.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.clfs";
+    rev = version;
+    hash = "sha256-5rG8YiVBU4ETLgQoFnMaeXHttIB26+OhIdYjKDKmPBc=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.clfs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the CLFS (Common Log File System) file system";
+    homepage = "https://github.com/fox-it/dissect.clfs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-cstruct/default.nix b/pkgs/development/python-modules/dissect-cstruct/default.nix
new file mode 100644
index 00000000000..5cf571e0200
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-cstruct/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-cstruct";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.cstruct";
+    rev = version;
+    hash = "sha256-iP00EcEkUWoYi+SCo/gY9LSVtCSQZ3g2wMs4Z8m+X2M=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.cstruct"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for C-like structures";
+    homepage = "https://github.com/fox-it/dissect.cstruct";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-esedb/default.nix b/pkgs/development/python-modules/dissect-esedb/default.nix
new file mode 100644
index 00000000000..a2d1cad5d4e
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-esedb/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-esedb";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.esedb";
+    rev = version;
+    hash = "sha256-DLu6FCWqeESFlsIB21jN/IKCwSKlBoibildv07/hPcw=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.esedb"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for Microsofts Extensible Storage Engine Database (ESEDB)";
+    homepage = "https://github.com/fox-it/dissect.esedb";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-etl/default.nix b/pkgs/development/python-modules/dissect-etl/default.nix
new file mode 100644
index 00000000000..fba8a126d1a
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-etl/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-etl";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.etl";
+    rev = version;
+    hash = "sha256-EqEYw2MpNjdw8nXkxe76R5y99Y+rsK42qfTpT/kxtZ0=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.etl"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for Event Trace Log (ETL) files";
+    homepage = "https://github.com/fox-it/dissect.etl";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-eventlog/default.nix b/pkgs/development/python-modules/dissect-eventlog/default.nix
new file mode 100644
index 00000000000..d5b8b87a227
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-eventlog/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-eventlog";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.eventlog";
+    rev = version;
+    hash = "sha256-cLIsK2/pL9nNOitoTZprqAio1BOo3/Uqfbl8uL/1tG4=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.eventlog"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing parsers for the Windows EVT, EVTX and WEVT log file formats";
+    homepage = "https://github.com/fox-it/dissect.eventlog";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-evidence/default.nix b/pkgs/development/python-modules/dissect-evidence/default.nix
new file mode 100644
index 00000000000..4548ecd6d90
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-evidence/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-evidence";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.evidence";
+    rev = version;
+    hash = "sha256-X0WMv96Wo3vDZ6HYGdWfn7OKhFuT5Qjzkyj4HzMqCiM=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.evidence"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parsers for various forensic evidence file containers";
+    homepage = "https://github.com/fox-it/dissect.evidence";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-extfs/default.nix b/pkgs/development/python-modules/dissect-extfs/default.nix
new file mode 100644
index 00000000000..54ac3280bf5
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-extfs/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-extfs";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.extfs";
+    rev = version;
+    hash = "sha256-i52hlTh0uJJcprA6oVlFQ3v6BpOtSnQAQ0p6BHt56Ac=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.extfs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the ExtFS file system";
+    homepage = "https://github.com/fox-it/dissect.extfs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-fat/default.nix b/pkgs/development/python-modules/dissect-fat/default.nix
new file mode 100644
index 00000000000..91958b8c71c
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-fat/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-fat";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.fat";
+    rev = version;
+    hash = "sha256-GBeacQtNA1onh67Svqo5R43gap/Lzpm+20TXcUMmU5k=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  # dissect.fat.exceptions.InvalidBPB: Invalid BS_jmpBoot
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dissect.fat"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the FAT file system";
+    homepage = "https://github.com/fox-it/dissect.fat";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-ffs/default.nix b/pkgs/development/python-modules/dissect-ffs/default.nix
new file mode 100644
index 00000000000..a4898bfce98
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-ffs/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-ffs";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.ffs";
+    rev = version;
+    hash = "sha256-JI0i0pvOOChWCDB8rynDuf0txvPQT7z2JJ1EsE4VNLw=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.ffs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the FFS file system";
+    homepage = "https://github.com/fox-it/dissect.ffs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-hypervisor/default.nix b/pkgs/development/python-modules/dissect-hypervisor/default.nix
new file mode 100644
index 00000000000..2106cf780c1
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-hypervisor/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, pycryptodome
+, pytestCheckHook
+, pythonOlder
+, rich
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-hypervisor";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.hypervisor";
+    rev = version;
+    hash = "sha256-yc9QfzvWX8jsRVZYglZZuMfxsYUoPr5gf407DABjQcU=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  passthru.optional-dependencies = {
+    full = [
+      pycryptodome
+      rich
+    ];
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.hypervisor"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing parsers for various hypervisor disk, backup and configuration files";
+    homepage = "https://github.com/fox-it/dissect.hypervisor";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-ntfs/default.nix b/pkgs/development/python-modules/dissect-ntfs/default.nix
new file mode 100644
index 00000000000..b8abeb1313a
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-ntfs/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-ntfs";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.ntfs";
+    rev = version;
+    hash = "sha256-hZz/v6qLZnbsZkS/cBU/to4XmZNgUJQwCaPkY2ebl4Q=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.ntfs"
+  ];
+
+  disabledTestPaths = [
+    # Test is very time consuming
+    "tests/test_index.py"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the NTFS file system";
+    homepage = "https://github.com/fox-it/dissect.ntfs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-ole/default.nix b/pkgs/development/python-modules/dissect-ole/default.nix
new file mode 100644
index 00000000000..60f39dde8bd
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-ole/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-ole";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.ole";
+    rev = version;
+    hash = "sha256-qnrbS+gdzBV/mQ08fQzpvevkDtrJ1qXpteW0lxJ+ZUI=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dissect.ole"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the Object Linking & Embedding (OLE) format";
+    homepage = "https://github.com/fox-it/dissect.ole";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-regf/default.nix b/pkgs/development/python-modules/dissect-regf/default.nix
new file mode 100644
index 00000000000..8c5ecc583da
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-regf/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-regf";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.regf";
+    rev = version;
+    hash = "sha256-88qG90jza0EVP5dgz09ZA8Z+zFwqanOODlUgsvkMxGo=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.regf"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for Windows registry file format";
+    homepage = "https://github.com/fox-it/dissect.regf";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-shellitem/default.nix b/pkgs/development/python-modules/dissect-shellitem/default.nix
new file mode 100644
index 00000000000..3fd88649ae2
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-shellitem/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-shellitem";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.shellitem";
+    rev = version;
+    hash = "sha256-HVnfHsD1V+4kWt9qOClsKuIZMpX4VKrr/5eD7KRq5ww=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.shellitem"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the Shellitem structures";
+    homepage = "https://github.com/fox-it/dissect.shellitem";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-sql/default.nix b/pkgs/development/python-modules/dissect-sql/default.nix
new file mode 100644
index 00000000000..816fe7e612f
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-sql/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-sql";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.sql";
+    rev = version;
+    hash = "sha256-uKCCwTFLQSos+L0qc1pFlF3O4FV13up0qFqDYdTZJBk=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.sql"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parsers for the SQLite database file format";
+    homepage = "https://github.com/fox-it/dissect.sql";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-target/default.nix b/pkgs/development/python-modules/dissect-target/default.nix
new file mode 100644
index 00000000000..04fc69f5125
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-target/default.nix
@@ -0,0 +1,110 @@
+{ lib
+, asn1crypto
+, buildPythonPackage
+, defusedxml
+, dissect-cim
+, dissect-clfs
+, dissect-cstruct
+, dissect-esedb
+, dissect-etl
+, dissect-eventlog
+, dissect-evidence
+, dissect-extfs
+, dissect-fat
+, dissect-ffs
+, dissect-hypervisor
+, dissect-ntfs
+, dissect-regf
+, dissect-sql
+, dissect-util
+, dissect-volume
+, dissect-xfs
+, fetchFromGitHub
+, flow-record
+, fusepy
+, ipython
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, setuptools
+, setuptools-scm
+, structlog
+, yara-python
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-target";
+  version = "3.3";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.target";
+    rev = version;
+    hash = "sha256-EWUYN2OsYeDo3C+QgjAVq9NXiVk1KWGILwtT0cI0tB0=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-eventlog
+    dissect-evidence
+    dissect-hypervisor
+    dissect-ntfs
+    dissect-regf
+    dissect-util
+    dissect-volume
+    flow-record
+    structlog
+  ];
+
+  passthru.optional-dependencies = {
+    full = [
+      asn1crypto
+      defusedxml
+      dissect-cim
+      dissect-clfs
+      dissect-esedb
+      dissect-etl
+      dissect-extfs
+      dissect-fat
+      dissect-ffs
+      dissect-sql
+      dissect-xfs
+      fusepy
+      ipython
+      pyyaml
+      yara-python
+      zstandard
+    ];
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.full;
+
+  pythonImportsCheck = [
+    "dissect.target"
+  ];
+
+  disabledTests = [
+    # Test requires rdump
+    "test_exec_target_command"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module that provides a programming API and command line tools";
+    homepage = "https://github.com/fox-it/dissect.target";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-util/default.nix b/pkgs/development/python-modules/dissect-util/default.nix
new file mode 100644
index 00000000000..f6021d9ae98
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-util/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-util";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.util";
+    rev = version;
+    hash = "sha256-vit+SQ368limLvdVP/0eVINiEAY/dzD/simHFw489Ck=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.util"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing various utility functions for the other Dissect modules";
+    homepage = "https://github.com/fox-it/dissect.util";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-vmfs/default.nix b/pkgs/development/python-modules/dissect-vmfs/default.nix
new file mode 100644
index 00000000000..9789f264de3
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-vmfs/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-vmfs";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.vmfs";
+    rev = version;
+    hash = "sha256-JVJvuH+ZTlGOnmTSB/nnBuMrc/VtkKVrLDRYnukDXBA=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.vmfs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the VMFS file system";
+    homepage = "https://github.com/fox-it/dissect.vmfs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-volume/default.nix b/pkgs/development/python-modules/dissect-volume/default.nix
new file mode 100644
index 00000000000..8e409a846cc
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-volume/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-volume";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.volume";
+    rev = version;
+    hash = "sha256-9SbluaB2wV4gOCry5c7ZLABMwhGfnYg7dTPdKMXYSZM=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.volume"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing various utility functions for the other Dissect modules";
+    homepage = "https://github.com/fox-it/dissect.volume";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-xfs/default.nix b/pkgs/development/python-modules/dissect-xfs/default.nix
new file mode 100644
index 00000000000..97eb2ed157a
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-xfs/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-xfs";
+  version = "3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.xfs";
+    rev = version;
+    hash = "sha256-Tg4su78Na6IAQhi7aOY8QNs3tnYOYvdnNQV6rn8QpSE=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dissect.xfs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the XFS file system";
+    homepage = "https://github.com/fox-it/dissect.xfs";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect/default.nix b/pkgs/development/python-modules/dissect/default.nix
new file mode 100644
index 00000000000..ab6921f6934
--- /dev/null
+++ b/pkgs/development/python-modules/dissect/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, buildPythonPackage
+, dissect-cim
+, dissect-clfs
+, dissect-cstruct
+, dissect-esedb
+, dissect-etl
+, dissect-eventlog
+, dissect-evidence
+, dissect-extfs
+, dissect-fat
+, dissect-ffs
+, dissect-hypervisor
+, dissect-ntfs
+, dissect-ole
+, dissect-regf
+, dissect-shellitem
+, dissect-sql
+, dissect-target
+, dissect-util
+, dissect-vmfs
+, dissect-volume
+, dissect-xfs
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dissect";
+  version = "3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect";
+    rev = version;
+    hash = "sha256-DtiaBKQtz6CgU1csfGhCw0LJLoiKwyH6N6b7/elpJkU=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cim
+    dissect-clfs
+    dissect-cstruct
+    dissect-esedb
+    dissect-etl
+    dissect-eventlog
+    dissect-evidence
+    dissect-extfs
+    dissect-fat
+    dissect-ffs
+    dissect-hypervisor
+    dissect-ntfs
+    dissect-ole
+    dissect-regf
+    dissect-shellitem
+    dissect-sql
+    dissect-target
+    dissect-util
+    dissect-vmfs
+    dissect-volume
+    dissect-xfs
+  ] ++ dissect-target.optional-dependencies.full;
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dissect"
+  ];
+
+  meta = with lib; {
+    description = "Dissect meta module";
+    homepage = "https://github.com/fox-it/dissect";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/flow-record/default.nix b/pkgs/development/python-modules/flow-record/default.nix
new file mode 100644
index 00000000000..cf75588e20b
--- /dev/null
+++ b/pkgs/development/python-modules/flow-record/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, elasticsearch
+, fetchFromGitHub
+, lz4
+, msgpack
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "flow-record";
+  version = "3.5";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "flow.record";
+    rev = version;
+    hash = "sha256-hULz5pIqCKujVH3SpzFgzNM9R7WTtqAmuNOxG7VlUd0=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    msgpack
+  ];
+
+  passthru.optional-dependencies = {
+    compression = [
+      lz4
+      zstandard
+    ];
+    elastic = [
+      elasticsearch
+    ];
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "flow.record"
+  ];
+
+  disabledTestPaths = [
+    # Test requires rdump
+    "tests/test_rdump.py"
+  ];
+
+  meta = with lib; {
+    description = "Library for defining and creating structured data";
+    homepage = "https://github.com/fox-it/flow.record";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/funcparserlib/default.nix b/pkgs/development/python-modules/funcparserlib/default.nix
index ba535146cf2..0eab273848e 100644
--- a/pkgs/development/python-modules/funcparserlib/default.nix
+++ b/pkgs/development/python-modules/funcparserlib/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , poetry-core
 , python
 , pytestCheckHook
@@ -11,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "funcparserlib";
-  version = "1.0.0a0";
+  version = "1.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +19,7 @@ buildPythonPackage rec {
     owner = "vlasovskikh";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YfcboKjyc5ASzrp0duu2R6psf51MGZIeZ0owo5QNSnU=";
+    sha256 = "sha256-moWaOzyF/yhDQCLEp7bc0j8wNv7FM7cvvpCwon3j+gI=";
   };
 
   nativeBuildInputs = [
@@ -32,15 +31,6 @@ buildPythonPackage rec {
     six
   ];
 
-  patches = [
-    # Support for poetry-core, https://github.com/vlasovskikh/funcparserlib/pull/73
-    (fetchpatch {
-      name = "support-poetry-core.patch";
-      url = "https://github.com/vlasovskikh/funcparserlib/commit/61ed558fc146b7a30879919325dfa8aae77be556.patch";
-      sha256 = "sha256-tqdR3r4/t7RWBYZeAabaN7oYf6VxkVVz006XICX9rYI=";
-    })
-  ];
-
   pythonImportsCheck = [
     "funcparserlib"
   ];
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 775a3543293..593b9004b82 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2022.10.1";
+  version = "2022.10.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-wqAms2jG19midKz7yZUT3kFEVMSBUvNujBjzwKN5BsU=";
+    sha256 = "sha256-WQbTs29cbCm8i7cAlCkyBaBjwOKFawY9Xyj0fPhZQUk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hy/default.nix b/pkgs/development/python-modules/hy/default.nix
index a962f86854f..c40ba37cec6 100644
--- a/pkgs/development/python-modules/hy/default.nix
+++ b/pkgs/development/python-modules/hy/default.nix
@@ -10,13 +10,11 @@
 , pythonOlder
 , rply
 , testers
-, toPythonApplication
-, hyDefinedPythonPackages ? python-packages: [ ] /* Packages like with python.withPackages */
 }:
 
 buildPythonPackage rec {
   pname = "hy";
-  version = "1.0a4";
+  version = "0.24.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +23,7 @@ buildPythonPackage rec {
     owner = "hylang";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MBzp3jqBg/kH233wcgYYHc+Yg9GuOaBsXIfjFDihD1E=";
+    sha256 = "sha256-PmnYOniYqNHGTxpWuAc+zBhOsgRgMMbERHq81KpHheg=";
   };
 
   # https://github.com/hylang/hy/blob/1.0a4/get_version.py#L9-L10
@@ -34,24 +32,23 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     colorama
     funcparserlib
-    rply # TODO: remove on the next release
-  ]
-  ++ lib.optionals (pythonOlder "3.9") [
+  ] ++
+  lib.optionals (pythonOlder "3.9") [
     astor
-  ]
-  # for backwards compatibility with removed pkgs/development/interpreters/hy
-  # See: https://github.com/NixOS/nixpkgs/issues/171428
-  ++ (hyDefinedPythonPackages python.pkgs);
+  ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  preCheck = ''
+    # For test_bin_hy
+    export PATH="$out/bin:$PATH"
+  '';
+
   disabledTests = [
-    # Don't test the binary
-    "test_bin_hy"
-    "test_hystartup"
-    "est_hy2py_import"
+    "test_circular_macro_require"
+    "test_macro_require"
   ];
 
   pythonImportsCheck = [ "hy" ];
@@ -61,10 +58,10 @@ buildPythonPackage rec {
       package = hy;
       command = "hy -v";
     };
-    # also for backwards compatibility with removed pkgs/development/interpreters/hy
-    withPackages = python-packages: (toPythonApplication hy).override {
-      hyDefinedPythonPackages = python-packages;
-    };
+    # For backwards compatibility with removed pkgs/development/interpreters/hy
+    # Example usage:
+    #   hy.withPackages (ps: with ps; [ hyrule requests ])
+    withPackages = python-packages: python.withPackages (ps: (python-packages ps) ++ [ ps.hy ]);
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/json-stream/default.nix b/pkgs/development/python-modules/json-stream/default.nix
index 022b25d9db5..bcfbe82ac94 100644
--- a/pkgs/development/python-modules/json-stream/default.nix
+++ b/pkgs/development/python-modules/json-stream/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "json-stream";
-  version = "1.4.3";
+  version = "1.5.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6VWAaTjzVDss01aFI53Lg0oNuus5u4TRF/co9DHOhLU=";
+    hash = "sha256-htajifmbXtivUwsORzBzJA68nJCACcL75kiBysVYCxY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index b52a8e5b4c8..7480045f700 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.42";
+  version = "0.1.43";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UNquetZ1sCLO9T5p5b3jTSu+52xuc5XdyHNKsvvPdck=";
+    hash = "sha256-t0mdw8cBGUZ33BWOSeEHyFAGga/Tf1F/gATFSfCpAJQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lektor/default.nix b/pkgs/development/python-modules/lektor/default.nix
index 0749a547064..74fecc7f0e5 100644
--- a/pkgs/development/python-modules/lektor/default.nix
+++ b/pkgs/development/python-modules/lektor/default.nix
@@ -2,10 +2,12 @@
 , babel
 , buildPythonPackage
 , click
+, deprecated
 , exifread
 , fetchFromGitHub
 , filetype
 , flask
+, importlib-metadata
 , inifile
 , jinja2
 , marshmallow
@@ -21,13 +23,14 @@
 , python-slugify
 , requests
 , setuptools
+, typing-inspect
 , watchdog
 , werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "lektor";
-  version = "3.3.5";
+  version = "3.4.0b2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -36,12 +39,13 @@ buildPythonPackage rec {
     owner = "lektor";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-i3SuvRREuq0EENDtXjQegdmz30RmH1HVqBwdjq/mkTM=";
+    hash = "sha256-5w3tT0celHgjmLlsM3sdBdYlXx57z3kMePVGSQkOP7M=";
   };
 
   propagatedBuildInputs = [
     babel
     click
+    deprecated
     exifread
     filetype
     flask
@@ -55,8 +59,11 @@ buildPythonPackage rec {
     python-slugify
     requests
     setuptools
+    typing-inspect
     watchdog
     werkzeug
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   checkInputs = [
@@ -65,6 +72,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "typing.inspect < 0.8.0" "typing.inspect"
+  '';
+
   pythonImportsCheck = [
     "lektor"
   ];
diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
index 32a490822d2..9ebb16b8330 100644
--- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix
+++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-dataclass";
-  version = "8.5.8";
+  version = "8.5.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "lovasoa";
     repo = "marshmallow_dataclass";
     rev = "v${version}";
-    sha256 = "sha256-3kd/V3U3+/HfUmzwkp3/ChwSjknQ8rIYnTUsRH3WoP4=";
+    sha256 = "sha256-gA5GxE2as/P5yT3ymvXmLQfG2GyZE7Fj+zBaT88O4vY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index 55db1388428..b00a7703cf0 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.19.0";
+  version = "1.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZeMp1py/5Iuz3TI2se+OTMkfhpY3YGwYTiJ+htKwYp0=";
+    hash = "sha256-eDRM1MkdYTSlk7Xj5FVB5mbje3R/+KYxbDZo3R5qtrI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index 15d3b79e0bb..b6c539150cc 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -1,36 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
-
-# Python dependencies
+, matplotlib
 , numpy
 , openpyxl
 , pandas
 , pandas-stubs
+, plotly
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
 , requests
 , scikit-learn
 , tenacity
 , tqdm
+, typing-extensions
 , wandb
-
-# Check dependencies
-, pytest-mock
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.23.0";
+  version = "0.23.1";
+  format = "setuptools";
 
   disabled = pythonOlder "3.7.1";
 
-  # Use GitHub source since PyPi source does not include tests
   src = fetchFromGitHub {
     owner = "openai";
     repo = "openai-python";
     rev = "v${version}";
-    sha256 = "sha256-VH1XR2FocRX5AYpCruAKwQUXjXqvdJsVwKdtot5Bo+Y=";
+    hash = "sha256-4RdER6ecvHGXTLZ1GnBNI1hIETI8O/t+kuOXiQhMigs=";
   };
 
   propagatedBuildInputs = [
@@ -39,18 +38,40 @@ buildPythonPackage rec {
     pandas
     pandas-stubs
     requests
-    scikit-learn
-    tenacity
     tqdm
-    wandb
+    typing-extensions
+  ];
+
+  passthru.optional-dependencies = {
+    wandb = [
+      wandb
+    ];
+    embeddings = [
+      matplotlib
+      plotly
+      scikit-learn
+      tenacity
+    ];
+  };
+
+  pythonImportsCheck = [
+    "openai"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
+
+  pytestFlagsArray = [
+    "openai/tests"
   ];
 
-  pythonImportsCheck = [ "openai" ];
-  checkInputs = [ pytestCheckHook pytest-mock ];
-  pytestFlagsArray = [ "openai/tests" ];
   OPENAI_API_KEY = "sk-foo";
+
   disabledTestPaths = [
-    "openai/tests/test_endpoints.py" # requires a real API key
+    # Requires a real API key
+    "openai/tests/test_endpoints.py"
     "openai/tests/test_file_cli.py"
   ];
 
@@ -58,6 +79,6 @@ buildPythonPackage rec {
     description = "Python client library for the OpenAI API";
     homepage = "https://github.com/openai/openai-python";
     license = licenses.mit;
-    maintainers = [ maintainers.malo ];
+    maintainers = with maintainers; [ malo ];
   };
 }
diff --git a/pkgs/development/python-modules/pandas-stubs/default.nix b/pkgs/development/python-modules/pandas-stubs/default.nix
index c5684769776..a719f98e9d1 100644
--- a/pkgs/development/python-modules/pandas-stubs/default.nix
+++ b/pkgs/development/python-modules/pandas-stubs/default.nix
@@ -1,39 +1,116 @@
 { lib
 , buildPythonPackage
-, isPy27
 , fetchFromGitHub
+, jinja2
+, matplotlib
+, openpyxl
+, pandas
+, poetry-core
+, scipy
+, sqlalchemy
+, tabulate
+, pyarrow
+, pyreadstat
+, tables
+, pytestCheckHook
+, pythonOlder
+, types-pytz
 , typing-extensions
-, mypy
+, xarray
 }:
 
 buildPythonPackage rec {
   pname = "pandas-stubs";
-  version = "1.2.0.39";
+  version = "1.5.0.221003";
+  format = "pyproject";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.8";
 
-  # Use GitHub source since PyPi source does not include tests
   src = fetchFromGitHub {
-    owner = "VirtusLab";
+    owner = "pandas-dev";
     repo = pname;
-    rev = "2bd932777d1050ea8f86c527266a4cd205aa15b1";
-    sha256 = "m2McU53NNvRwnWKN9GL8dW1eCGKbTi0471szRQwZu1Q=";
+    rev = "v${version}";
+    sha256 = "sha256-RV0pOTPtlwBmYs3nu8+lNwVpl/VC/VzcXKOQMg9C3qk=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
+    pandas
+    types-pytz
+  ];
+
+  checkInputs = [
+    jinja2
+    matplotlib
+    openpyxl
+    scipy
+    sqlalchemy
+    tabulate
+    pyarrow
+    tables
+    pyreadstat
+    pytestCheckHook
     typing-extensions
+    xarray
   ];
 
-  pythonImportsCheck = [ "pandas" ];
-  checkInputs = [ mypy ];
-  checkPhase = ''
-    mypy --config-file mypy.ini third_party/3/pandas tests/snippets
-  '';
+  disabledTests = [
+    # AttributeErrors, missing dependencies, error and warning checks
+    "test_data_error"
+    "test_specification_error"
+    "test_setting_with_copy_error"
+    "test_setting_with_copy_warning"
+    "test_numexpr_clobbering_error"
+    "test_undefined_variable_error"
+    "test_indexing_error"
+    "test_pyperclip_exception"
+    "test_css_warning"
+    "test_possible_data_loss_error"
+    "test_closed_file_error"
+    "test_incompatibility_warning"
+    "test_attribute_conflict_warning"
+    "test_database_error"
+    "test_possible_precision_loss"
+    "test_value_label_type_mismatch"
+    "test_invalid_column_name"
+    "test_categorical_conversion_warning"
+    "test_join"
+    "test_isetframe"
+    "test_reset_index_150_changes"
+    "test_compare_150_changes"
+    "test_quantile_150_changes"
+    "test_resample_150_changes"
+    "test_index_astype"
+    "test_orc"
+    "test_orc_path"
+    "test_orc_buffer"
+    "test_orc_columns"
+    "test_orc_bytes"
+    "test_clipboard"
+    "test_clipboard_iterator"
+    "test_arrow_dtype"
+    "test_aggregate_series_combinations"
+    "test_aggregate_frame_combinations"
+    "test_types_rank"
+    "test_reset_index"
+    "test_types_assert_series_equal"
+    "test_show_version"
+    "test_dummies"
+    "test_from_dummies_args"
+    "test_rolling_step_method"
+  ];
+
+  pythonImportsCheck = [
+    "pandas"
+  ];
 
   meta = with lib; {
     description = "Type annotations for Pandas";
     homepage = "https://github.com/VirtusLab/pandas-stubs";
     license = licenses.mit;
-    maintainers = [ maintainers.malo ];
+    maintainers = with maintainers; [ malo ];
   };
 }
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index b9a522a9cb6..d65f3d1f7dc 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.24.0";
+  version = "0.24.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-WoXBUUe/2XX+CgoZB1o2sj2FIoWS6ECikJWrUSreJUY=";
+    sha256 = "sha256-LUvhSk1iZSw1K6oMaIj5bSH0/f0vfQbprwAPe6vdf08=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index 71d73e9a29f..7fa842230f4 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -14,15 +14,17 @@
 , pytestCheckHook
 , pythonOlder
 , qcs-api-client
-, retry
 , respx
+, retry
 , rpcq
 , scipy
+, types-python-dateutil
+, types-retry
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "3.3.1";
+  version = "3.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +33,7 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eBEv0rpM0IOaMHWjXDgF0yFK+NNr49cI8fxVi0sfbXs=";
+    hash = "sha256-Ur7dRxmnaAWXHk7c6NC3lBw59RRgh9vwAHFW00fViD4=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +48,8 @@ buildPythonPackage rec {
     retry
     rpcq
     scipy
+    types-python-dateutil
+    types-retry
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/pyreadstat/default.nix b/pkgs/development/python-modules/pyreadstat/default.nix
index 499aa97db8c..4992d260471 100644
--- a/pkgs/development/python-modules/pyreadstat/default.nix
+++ b/pkgs/development/python-modules/pyreadstat/default.nix
@@ -1,14 +1,26 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cython, zlib, pandas, readstat }:
+{ lib
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, pandas
+, python
+, pythonOlder
+, readstat
+, zlib
+}:
 
 buildPythonPackage rec {
   pname = "pyreadstat";
   version = "1.1.9";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Roche";
     repo = "pyreadstat";
     rev = "v${version}";
-    sha256 = "16aa16ybh3ikmlxsg8zm19x9k6r4gpd0sxqagv318w76jjyw1nrs";
+    hash = "sha256-OtvAvZTmcBTGfgp3Ddp9JJuZegr1o6c7rTMOuLwJSpk=";
   };
 
   nativeBuildInputs = [
@@ -24,11 +36,26 @@ buildPythonPackage rec {
     pandas
   ];
 
-  meta = {
-    homepage = "https://github.com/Roche/pyreadstat";
+  pythonImportsCheck = [
+    "pyreadstat"
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    ${python.interpreter} tests/test_basic.py
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
     description = "Python package to read SAS, SPSS and Stata files into pandas data frames using the readstat C library";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ swflint ];
+    homepage = "https://github.com/Roche/pyreadstat";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ swflint ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 9bb458151a8..634bb0a6a50 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.38.1";
+  version = "3.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OWV8SdxvAYxkBj/3pPXgnEZ5RS3R+wBWJVMkqcQirEU=";
+    sha256 = "sha256-x85bu0dnhYwQU1l7mPH6lr9p6aO7AHG0wLvI/6MYe88=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/sensor-state-data/default.nix b/pkgs/development/python-modules/sensor-state-data/default.nix
index fe6b2be16ea..ea26d5b86f2 100644
--- a/pkgs/development/python-modules/sensor-state-data/default.nix
+++ b/pkgs/development/python-modules/sensor-state-data/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "sensor-state-data";
-  version = "2.9.0";
+  version = "2.9.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5h+ZBQyosnt+hlbJF1DaX0HKTJoEtJ/JSGpto5ZXLs=";
+    hash = "sha256-bBLBDdwVUCh8VA/6w/5DmJNvayaWHNIe1kRhnOQ2Llc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 70635de5e4f..cd052afdacb 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -46,7 +46,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.9.9";
+  version = "1.9.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    hash = "sha256-DIiShIiTHmJdOtf1WYi4ofJdZnsg13VczVvGW+ngE+I=";
+    hash = "sha256-ZrteALD+HsqUwkFDPih8adxNP5TO5JqdPFI8oMBphY4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-python-dateutil/default.nix b/pkgs/development/python-modules/types-python-dateutil/default.nix
new file mode 100644
index 00000000000..d177013f7f5
--- /dev/null
+++ b/pkgs/development/python-modules/types-python-dateutil/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "types-python-dateutil";
+  version = "2.8.19";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-v9PrOcclOupLojsQ9psBfTCwE2YrtL5KtIsgu9dj8wk=";
+  };
+
+  # Modules doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dateutil-stubs"
+  ];
+
+  meta = with lib; {
+    description = "Typing stubs for python-dateutil";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/types-retry/default.nix b/pkgs/development/python-modules/types-retry/default.nix
new file mode 100644
index 00000000000..53323d950cb
--- /dev/null
+++ b/pkgs/development/python-modules/types-retry/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "types-retry";
+  version = "0.9.9";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-sQh7J0aAtULHllSehIiJjQsizYmYjvEBbvVtQ2f/T0E=";
+  };
+
+  # Modules doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "retry-stubs"
+  ];
+
+  meta = with lib; {
+    description = "Typing stubs for retry";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/web3/default.nix b/pkgs/development/python-modules/web3/default.nix
index a8b5f077b9e..b07bc9cee9d 100644
--- a/pkgs/development/python-modules/web3/default.nix
+++ b/pkgs/development/python-modules/web3/default.nix
@@ -20,36 +20,32 @@
 # , py-geth
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
   pname = "web3";
-  version = "5.30.0";
-  disabled = pythonOlder "3.6";
+  version = "5.31.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = "web3.py";
     rev = "v${version}";
-    sha256 = "sha256-HajumvOG18r7TslkmCfI0iiLsEddevGrRZQFWICGeYE=";
+    hash = "sha256-YsAbPI9Y6z+snKZ9NsA0YSpB38n+ra4+Ei6COYFe8v4=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "eth-account>=0.5.7,<0.6.0" "eth-account>=0.5.7,<0.7" \
-      --replace "eth-utils>=1.9.5,<2.0.0" "eth-utils>=1.9.5,<3" \
-      --replace "eth-rlp<0.3" "eth-rlp<0.4" \
-      --replace "websockets>=9.1,<10" "websockets>=9.1,<11" \
-      --replace "eth-abi>=2.0.0b6,<3.0.0" "eth-abi>=2.0.0b6,<4" \
-      --replace "eth-typing>=2.0.0,<3.0.0" "eth-typing>=2.0.0,<4"
-  '';
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
 
   propagatedBuildInputs = [
     aiohttp
     eth-abi
     eth-account
     eth-hash
-    eth-hash.optional-dependencies.pycryptodome
     eth-rlp
     eth-typing
     eth-utils
@@ -60,7 +56,11 @@ buildPythonPackage rec {
     protobuf
     requests
     websockets
-  ] ++ lib.optional (pythonOlder "3.8") [ typing-extensions ];
+  ] ++ lib.optional (pythonOlder "3.8") [
+    typing-extensions
+  ] ++ eth-hash.optional-dependencies.pycryptodome;
+
+  pythonRelaxDeps = true;
 
   # TODO: package eth-tester
   #checkInputs = [
@@ -72,7 +72,9 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [ "web3" ];
+  pythonImportsCheck = [
+    "web3"
+  ];
 
   meta = with lib; {
     description = "Web3 library for interactions";
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index f9def6885e7..b7f94177c58 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -11,13 +11,13 @@ assert enableWasmEval && stdenv.isDarwin -> builtins.throw "building with wasm o
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.44.0";
+  version = "0.45.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-N5OVGffUJXbRN3eJ5LQHWpyYxuA1/JEsro/yi+qHF14=";
+    sha256 = "sha256-7w5HOZr1cei7AvMdHdVzjB3ZQGWCOgm/g9UhuO3vSJI=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/servers/imgproxy/default.nix b/pkgs/servers/imgproxy/default.nix
index 7ff6003e29d..14ab5e03c70 100644
--- a/pkgs/servers/imgproxy/default.nix
+++ b/pkgs/servers/imgproxy/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "3.7.2";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "sha256-ggQOVBYdTmrkThzJSYjxk6Y9znq4dHvSX6ATjyhoHsw=";
+    sha256 = "sha256-T82z6rqS4mCXo0844xe4VZzI5AScn0dPWvu9q8nO2uQ=";
     rev = "v${version}";
   };
 
-  vendorSha256 = "sha256-LrUdOkapPwR9vtecQM0vn/B5fppMUW3luxT7pPelvvU=";
+  vendorSha256 = "sha256-QwmrxG3DMXdw/MQKChlP/icc9s5x85vbrRKoael4Bc4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index d324920a3f3..f62f1c4c687 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.113.0";
+  version = "0.114.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-sHknZg34FHhYcf4l2oPQG6RGpybF0lC4n816YoVPeGk=";
+    sha256 = "sha256-m1R6g9KgbbdlBg7p1gVWpSu02azaqg7bQsFQ4gQB2hM=";
   };
 
-  vendorSha256 = "sha256-z/3aUSuAZSVsQ67JgUy6z3T91vKHlBjjQS4oSljl/nk=";
+  vendorSha256 = "sha256-glMu2GwMWsuIjLjCwskH90wn690tosLTCThd4LUZobo=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/google-cloud-sdk/components.nix b/pkgs/tools/admin/google-cloud-sdk/components.nix
index 99069fe4fd9..4a57b99e2ba 100644
--- a/pkgs/tools/admin/google-cloud-sdk/components.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/components.nix
@@ -11,7 +11,7 @@ let
   arches = {
     x86 = "i686";
     x86_64 = "x86_64";
-    # TODO arm
+    arm = "aarch64";
   };
 
   # Mapping from GCS component operating systems to Nix operating systems
@@ -30,8 +30,8 @@ let
     in
     "${arch'}-${os'}";
 
-  # All architectures that are supported
-  allArches = builtins.attrValues arches;
+  # All architectures that are supported by GCS
+  allArches = builtins.attrNames arches;
 
   # A description of all available google-cloud-sdk components.
   # It's a JSON file with a list of components, along with some metadata
diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix
index 5faab72d8fb..908ad26fa6a 100644
--- a/pkgs/tools/graphics/pngquant/default.nix
+++ b/pkgs/tools/graphics/pngquant/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG";
     platforms = platforms.unix;
     license = with licenses; [ gpl3Plus hpnd bsd2 ];
-    maintainers = [ ];
+    maintainers = [ maintainers.srapenne ];
   };
 }
diff --git a/pkgs/tools/misc/rlwrap/default.nix b/pkgs/tools/misc/rlwrap/default.nix
index 7766237753f..3a050cf781e 100644
--- a/pkgs/tools/misc/rlwrap/default.nix
+++ b/pkgs/tools/misc/rlwrap/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/hanslub42/rlwrap";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 srapenne ];
   };
 }
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 44cbe713f09..0602f9d19d8 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -77,6 +77,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/tmux/tmux/raw/${version}/CHANGES";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ thammers fpletz SuperSandro2000 ];
+    maintainers = with lib.maintainers; [ thammers fpletz SuperSandro2000 srapenne ];
   };
 }
diff --git a/pkgs/tools/networking/bwm-ng/default.nix b/pkgs/tools/networking/bwm-ng/default.nix
index cfe0d4176a6..397fb30490a 100644
--- a/pkgs/tools/networking/bwm-ng/default.nix
+++ b/pkgs/tools/networking/bwm-ng/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ srapenne ];
     longDescription = ''
       bwm-ng supports:
        - /proc/net/dev, netstat, getifaddr, sysctl, kstat, /proc/diskstats /proc/partitions, IOKit,
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f6fad9190f1..430814a65e7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1110,6 +1110,8 @@ with pkgs;
 
   acpica-tools = callPackage ../tools/system/acpica-tools { };
 
+  acquire = with python3Packages; toPythonApplication acquire;
+
   act = callPackage ../development/tools/misc/act { };
 
   actdiag = with python3.pkgs; toPythonApplication actdiag;
@@ -6298,6 +6300,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  exactaudiocopy = callPackage ../applications/audio/exact-audio-copy { };
+
   exempi = callPackage ../development/libraries/exempi {
     stdenv = if stdenv.isDarwin then stdenv
              else if stdenv.isi686 then gcc6Stdenv
@@ -21826,6 +21830,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit;
   };
 
+  sigdigger = libsForQt5.callPackage ../applications/radio/sigdigger { };
+
+  sigutils = callPackage ../applications/radio/sigutils { };
+
   sblim-sfcc = callPackage ../development/libraries/sblim-sfcc {};
 
   selinux-sandbox = callPackage ../os-specific/linux/selinux-sandbox { };
@@ -22058,6 +22066,10 @@ with pkgs;
 
   splat = callPackage ../applications/radio/splat { };
 
+  suscan = callPackage ../applications/radio/suscan { };
+
+  suwidgets = libsForQt5.callPackage ../applications/radio/suwidgets { };
+
   sratom = callPackage ../development/libraries/audio/sratom { };
 
   srm = callPackage ../tools/security/srm { };
@@ -37176,7 +37188,7 @@ with pkgs;
 
   simplenote = callPackage ../applications/misc/simplenote { };
 
-  hy = python3Packages.hy.withPackages (python-packages: [ ]);
+  hy = with python3Packages; toPythonApplication hy;
 
   wmic-bin = callPackage ../servers/monitoring/plugins/wmic-bin.nix { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 93ef7cf7da0..108130b460b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -171,6 +171,8 @@ in {
 
   acoustics = callPackage ../development/python-modules/acoustics { };
 
+  acquire = callPackage ../development/python-modules/acquire { };
+
   actdiag = callPackage ../development/python-modules/actdiag { };
 
   adafruit-io = callPackage ../development/python-modules/adafruit-io { };
@@ -2477,6 +2479,50 @@ in {
 
   diskcache = callPackage ../development/python-modules/diskcache { };
 
+  dissect = callPackage ../development/python-modules/dissect { };
+
+  dissect-cim = callPackage ../development/python-modules/dissect-cim { };
+
+  dissect-clfs = callPackage ../development/python-modules/dissect-clfs { };
+
+  dissect-cstruct = callPackage ../development/python-modules/dissect-cstruct { };
+
+  dissect-fat = callPackage ../development/python-modules/dissect-fat { };
+
+  dissect-ffs = callPackage ../development/python-modules/dissect-ffs { };
+
+  dissect-esedb = callPackage ../development/python-modules/dissect-esedb { };
+
+  dissect-etl = callPackage ../development/python-modules/dissect-etl { };
+
+  dissect-eventlog = callPackage ../development/python-modules/dissect-eventlog { };
+
+  dissect-evidence = callPackage ../development/python-modules/dissect-evidence { };
+
+  dissect-extfs = callPackage ../development/python-modules/dissect-extfs { };
+
+  dissect-hypervisor = callPackage ../development/python-modules/dissect-hypervisor { };
+
+  dissect-ntfs = callPackage ../development/python-modules/dissect-ntfs { };
+
+  dissect-ole = callPackage ../development/python-modules/dissect-ole { };
+
+  dissect-regf = callPackage ../development/python-modules/dissect-regf { };
+
+  dissect-shellitem = callPackage ../development/python-modules/dissect-shellitem { };
+
+  dissect-sql = callPackage ../development/python-modules/dissect-sql { };
+
+  dissect-target = callPackage ../development/python-modules/dissect-target { };
+
+  dissect-util = callPackage ../development/python-modules/dissect-util { };
+
+  dissect-vmfs = callPackage ../development/python-modules/dissect-vmfs { };
+
+  dissect-volume = callPackage ../development/python-modules/dissect-volume { };
+
+  dissect-xfs = callPackage ../development/python-modules/dissect-xfs { };
+
   dissononce = callPackage ../development/python-modules/dissononce { };
 
   distlib = callPackage ../development/python-modules/distlib { };
@@ -3470,6 +3516,8 @@ in {
 
   flit-core = callPackage ../development/python-modules/flit-core { };
 
+  flow-record = callPackage ../development/python-modules/flow-record { };
+
   flower = callPackage ../development/python-modules/flower { };
 
   flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
@@ -8413,6 +8461,8 @@ in {
 
   pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
 
+  pyreadstat = callPackage ../development/python-modules/pyreadstat { };
+
   pyrealsense2 = toPythonModule (pkgs.librealsense.override {
     enablePython = true;
     pythonPackages = self;
@@ -9564,8 +9614,6 @@ in {
 
   readme_renderer = callPackage ../development/python-modules/readme_renderer { };
 
-  readstats = callPackage ../development/python-modules/pyreadstat { };
-
   readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
 
   rebulk = callPackage ../development/python-modules/rebulk { };
@@ -11376,12 +11424,16 @@ in {
 
   types-protobuf = callPackage ../development/python-modules/types-protobuf { };
 
+  types-python-dateutil = callPackage ../development/python-modules/types-python-dateutil { };
+
   types-pytz = callPackage ../development/python-modules/types-pytz { };
 
   types-pyyaml = callPackage ../development/python-modules/types-pyyaml { };
 
   types-redis = callPackage ../development/python-modules/types-redis { };
 
+  types-retry = callPackage ../development/python-modules/types-retry { };
+
   types-requests = callPackage ../development/python-modules/types-requests { };
 
   types-setuptools = callPackage ../development/python-modules/types-setuptools { };