about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/qemu-common.nix2
-rw-r--r--nixos/modules/hardware/all-firmware.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix4
-rw-r--r--nixos/modules/profiles/all-hardware.nix2
-rw-r--r--nixos/modules/services/home-automation/home-assistant.nix2
-rw-r--r--nixos/modules/services/networking/headscale.nix6
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix2
-rw-r--r--nixos/tests/nginx-etag.nix4
-rw-r--r--pkgs/applications/audio/sonic-pi/default.nix245
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/default.nix155
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json94
-rwxr-xr-xpkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/update-bin-srcs21
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/levant/default.nix6
-rw-r--r--pkgs/applications/networking/ftp/gftp/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/daemon.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/astroid/default.nix11
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/lefthook/default.nix20
-rw-r--r--pkgs/applications/video/handbrake/default.nix2
-rw-r--r--pkgs/applications/video/vlc/default.nix5
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix14
-rw-r--r--pkgs/applications/virtualization/virtualbox/extpack.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/ffreestanding.patch20
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix4
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix1
-rw-r--r--pkgs/data/fonts/openmoji/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-arm.nix6
-rw-r--r--pkgs/development/haskell-modules/default.nix3
-rw-r--r--pkgs/development/interpreters/j/default.nix2
-rw-r--r--pkgs/development/libraries/crossguid/default.nix24
-rw-r--r--pkgs/development/libraries/exiv2/default.nix2
-rw-r--r--pkgs/development/libraries/gl3w/default.nix37
-rw-r--r--pkgs/development/libraries/gperftools/default.nix4
-rw-r--r--pkgs/development/libraries/libdrm/default.nix2
-rw-r--r--pkgs/development/libraries/platform-folders/default.nix27
-rw-r--r--pkgs/development/libraries/rapidfuzz-cpp/default.nix4
-rw-r--r--pkgs/development/libraries/redis-plus-plus/default.nix6
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix4
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix28
-rw-r--r--pkgs/development/libraries/usbredir/default.nix2
-rw-r--r--pkgs/development/libraries/x264/default.nix2
-rw-r--r--pkgs/development/python-modules/afdko/default.nix2
-rw-r--r--pkgs/development/python-modules/fastnumbers/default.nix2
-rw-r--r--pkgs/development/python-modules/packet-python/default.nix4
-rw-r--r--pkgs/development/python-modules/rx/default.nix32
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/statmake/default.nix7
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix2
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/games/gemrb/default.nix2
-rw-r--r--pkgs/misc/logging/pacemaker/default.nix4
-rw-r--r--pkgs/misc/screensavers/xscreensaver/default.nix2
-rw-r--r--pkgs/os-specific/linux/nmon/default.nix4
-rw-r--r--pkgs/os-specific/linux/rtl8189es/default.nix2
-rw-r--r--pkgs/os-specific/linux/rtl8812au/default.nix2
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/quic.nix6
-rw-r--r--pkgs/servers/rtsp-simple-server/default.nix6
-rw-r--r--pkgs/shells/bash/bash-completion/default.nix2
-rw-r--r--pkgs/shells/zsh/spaceship-prompt/default.nix4
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--pkgs/tools/X11/caffeine-ng/default.nix86
-rw-r--r--pkgs/tools/admin/pgadmin/default.nix12
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/sfz/default.nix25
-rw-r--r--pkgs/tools/networking/lychee/default.nix6
-rw-r--r--pkgs/tools/networking/pathvector/default.nix6
-rw-r--r--pkgs/tools/networking/phodav/default.nix31
-rw-r--r--pkgs/tools/networking/stunnel/default.nix6
-rw-r--r--pkgs/tools/networking/wget/default.nix15
-rw-r--r--pkgs/tools/package-management/wapm/cli/default.nix35
-rw-r--r--pkgs/tools/security/ssh-to-age/default.nix6
-rw-r--r--pkgs/tools/system/proot/default.nix7
-rw-r--r--pkgs/top-level/all-packages.nix26
-rw-r--r--pkgs/top-level/haskell-packages.nix6
79 files changed, 665 insertions, 522 deletions
diff --git a/nixos/lib/qemu-common.nix b/nixos/lib/qemu-common.nix
index 250f714be0a7a..fc3dcb24ab9c1 100644
--- a/nixos/lib/qemu-common.nix
+++ b/nixos/lib/qemu-common.nix
@@ -18,7 +18,7 @@ rec {
     ];
 
   qemuSerialDevice = if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
-        else if (with pkgs.stdenv.hostPlatform; isAarch32 || isAarch64 || isPower) then "ttyAMA0"
+        else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
 
   qemuBinary = qemuPkg: {
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix
index 89a1217dfb313..bd5540646b086 100644
--- a/nixos/modules/hardware/all-firmware.nix
+++ b/nixos/modules/hardware/all-firmware.nix
@@ -62,7 +62,7 @@ in {
         alsa-firmware
         sof-firmware
         libreelec-dvb-firmware
-      ] ++ optional (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) raspberrypiWirelessFirmware
+      ] ++ optional pkgs.stdenv.hostPlatform.isAarch raspberrypiWirelessFirmware
         ++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
         rtl8723bs-firmware
       ] ++ optionals (versionOlder config.boot.kernelPackages.kernel.version "5.16") [
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index d1ccc6c2072f7..9309fe70a8618 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -476,9 +476,9 @@ in
 
     isoImage.squashfsCompression = mkOption {
       default = with pkgs.stdenv.targetPlatform; "xz -Xdict-size 100% "
-                + lib.optionalString (isx86_32 || isx86_64) "-Xbcj x86"
+                + lib.optionalString isx86 "-Xbcj x86"
                 # Untested but should also reduce size for these platforms
-                + lib.optionalString (isAarch32 || isAarch64) "-Xbcj arm"
+                + lib.optionalString isAarch "-Xbcj arm"
                 + lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
                 + lib.optionalString (isSparc) "-Xbcj sparc";
       description = ''
diff --git a/nixos/modules/profiles/all-hardware.nix b/nixos/modules/profiles/all-hardware.nix
index 8347453d403b4..af1e3d32a0a29 100644
--- a/nixos/modules/profiles/all-hardware.nix
+++ b/nixos/modules/profiles/all-hardware.nix
@@ -57,7 +57,7 @@ in
 
       # Hyper-V support.
       "hv_storvsc"
-    ] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
+    ] ++ lib.optionals pkgs.stdenv.hostPlatform.isAarch [
       # Most of the following falls into two categories:
       #  - early KMS / early display
       #  - early storage (e.g. USB) support
diff --git a/nixos/modules/services/home-automation/home-assistant.nix b/nixos/modules/services/home-automation/home-assistant.nix
index 2cff5051c757f..1d76d2fd39c68 100644
--- a/nixos/modules/services/home-automation/home-assistant.nix
+++ b/nixos/modules/services/home-automation/home-assistant.nix
@@ -92,7 +92,7 @@ in {
         "default_config"
         "met"
         "esphome"
-      ] ++ optionals (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) [
+      ] ++ optionals pkgs.stdenv.hostPlatform.isAarch [
         # Use the platform as an indicator that we might be running on a RaspberryPi and include
         # relevant components
         "rpi_power"
diff --git a/nixos/modules/services/networking/headscale.nix b/nixos/modules/services/networking/headscale.nix
index 5b07beadb45f8..a9958c884da8d 100644
--- a/nixos/modules/services/networking/headscale.nix
+++ b/nixos/modules/services/networking/headscale.nix
@@ -429,12 +429,16 @@ in
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ configFile ];
 
+      environment.GIN_MODE = "release";
+
       script = ''
         ${optionalString (cfg.database.passwordFile != null) ''
           export HEADSCALE_DB_PASS="$(head -n1 ${escapeShellArg cfg.database.passwordFile})"
         ''}
 
-        export HEADSCALE_OIDC_CLIENT_SECRET="$(head -n1 ${escapeShellArg cfg.openIdConnect.clientSecretFile})"
+        ${optionalString (cfg.openIdConnect.clientSecretFile != null) ''
+          export HEADSCALE_OIDC_CLIENT_SECRET="$(head -n1 ${escapeShellArg cfg.openIdConnect.clientSecretFile})"
+        ''}
         exec ${cfg.package}/bin/headscale serve
       '';
 
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index e87f540fd57cb..5b2d81eeb68fc 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -870,7 +870,7 @@ in
       (mkIf pkgs.stdenv.hostPlatform.isx86 [
         "-usb" "-device usb-tablet,bus=usb-bus.0"
       ])
-      (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
+      (mkIf pkgs.stdenv.hostPlatform.isAarch [
         "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet"
       ])
       (let
diff --git a/nixos/tests/nginx-etag.nix b/nixos/tests/nginx-etag.nix
index b69511d081d4b..6f45eacf8b41a 100644
--- a/nixos/tests/nginx-etag.nix
+++ b/nixos/tests/nginx-etag.nix
@@ -53,14 +53,14 @@ import ./make-test-python.nix {
 
           driver.implicitly_wait(20)
           driver.get('http://server/')
-          driver.find_element_by_xpath('//div[@foo="bar"]')
+          driver.find_element('xpath', '//div[@foo="bar"]')
           open('/tmp/passed_stage1', 'w')
 
           while not os.path.exists('/tmp/proceed'):
               time.sleep(0.5)
 
           driver.get('http://server/')
-          driver.find_element_by_xpath('//div[@foo="yay"]')
+          driver.find_element('xpath', '//div[@foo="yay"]')
           open('/tmp/passed', 'w')
         '';
       in [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix
index 26825f2dcc70c..051a326c607df 100644
--- a/pkgs/applications/audio/sonic-pi/default.nix
+++ b/pkgs/applications/audio/sonic-pi/default.nix
@@ -1,115 +1,185 @@
-{ mkDerivation
+{ stdenv
 , lib
-, qtbase
 , fetchFromGitHub
+, wrapQtAppsHook
+, makeDesktopItem
+, copyDesktopItems
+, cmake
+, pkg-config
+, catch2_3
+, qtbase
+, qtsvg
+, qttools
+, qwt
+, qscintilla
+, kissfftFloat
+, crossguid
+, reproc
+, platform-folders
 , ruby
 , erlang
-, aubio
+, elixir
+, beamPackages
 , alsa-lib
 , rtmidi
-, libsndfile
-, cmake
-, pkg-config
 , boost
-, bash
+, aubio
 , jack2
 , supercollider-with-sc3-plugins
-, qwt
+, parallel
+
+, withTauWidget ? false
+, qtwebengine
+
+, withImGui ? false
+, gl3w
+, SDL2
+, fmt
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "sonic-pi";
-  version = "3.3.1";
+  version = "4.0.3";
+
   src = fetchFromGitHub {
     owner = "sonic-pi-net";
-    repo = "sonic-pi";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AE7iuSNnW1SAtBMplReGzXKcqD4GG23i10MIAWnlcPo=";
+    hash = "sha256-kTuW+i/kdPhyG3L6SkgQTE9UvADY49KahJcw3+5Uz4k=";
   };
 
-  # sonic pi uses it's own aubioonset with hardcoded parameters but will compile a whole aubio for it
-  # let's just build the aubioonset instead and link against aubio from nixpkgs
-  aubioonset = mkDerivation {
-    name = "aubioonset";
-    src = src;
-    sourceRoot = "source/app/external/aubio/examples";
-    buildInputs = [jack2 aubio libsndfile];
-    patchPhase = ''
-      sed -i "s@<aubio.h>@<aubio/aubio.h>@" jackio.c utils.h
-    '';
-    buildPhase = ''
-      gcc -o aubioonset -laubio jackio.c utils.c aubioonset.c
-    '';
-    installPhase = ''
-      install -D aubioonset $out/aubioonset
-    '';
+  mixFodDeps = beamPackages.fetchMixDeps {
+    inherit version;
+    pname = "mix-deps-${pname}";
+    mixEnv = "test";
+    src = "${src}/app/server/beam/tau";
+    sha256 = "sha256-MvwUyVTS23vQKLpGxz46tEVCs/OyYk5dDaBlv+kYg1M=";
   };
 
-in
+  strictDeps = true;
 
-mkDerivation rec {
-  inherit pname version src;
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    copyDesktopItems
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [
-    bash
+    cmake
     pkg-config
+
+    erlang
+    elixir
+    beamPackages.hex
+  ];
+
+  buildInputs = [
     qtbase
+    qtsvg
+    qttools
     qwt
+    qscintilla
+    kissfftFloat
+    catch2_3
+    crossguid
+    reproc
+    platform-folders
     ruby
-    aubio
-    supercollider-with-sc3-plugins
-    boost
-    erlang
     alsa-lib
     rtmidi
+    boost
+    aubio
+  ] ++ lib.optionals withTauWidget [
+    qtwebengine
+  ] ++ lib.optionals withImGui [
+    gl3w
+    SDL2
+    fmt
   ];
 
-  dontUseCmakeConfigure = true;
+  checkInputs = [
+    parallel
+    ruby
+    supercollider-with-sc3-plugins
+    jack2
+  ];
 
-  prePatch = ''
-    sed -i '/aubio/d' app/external/linux_build_externals.sh
-    sed -i '/aubio/d' app/linux-prebuild.sh
-    patchShebangs app
+  cmakeFlags = [
+    "-DUSE_SYSTEM_LIBS=ON"
+    "-DBUILD_IMGUI_INTERFACE=${if withImGui then "ON" else "OFF"}"
+    "-DWITH_QT_GUI_WEBENGINE=${if withTauWidget then "ON" else "OFF"}"
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    # Fix shebangs on files in app and bin scripts
+    patchShebangs app bin
   '';
 
-  configurePhase = ''
-    runHook preConfigure
+  preConfigure = ''
+    # Set build environment
+    export SONIC_PI_HOME="$TMPDIR/spi"
+
+    export HEX_HOME="$TEMPDIR/hex"
+    export HEX_OFFLINE=1
+    export MIX_REBAR3='${beamPackages.rebar3}/bin/rebar3'
+    export REBAR_GLOBAL_CONFIG_DIR="$TEMPDIR/rebar3"
+    export REBAR_CACHE_DIR="$TEMPDIR/rebar3.cache"
+    export MIX_HOME="$TEMPDIR/mix"
+    export MIX_DEPS_PATH="$TEMPDIR/deps"
+    export MIX_ENV=prod
+
+    # Copy Mix dependency sources
+    echo 'Copying ${mixFodDeps} to Mix deps'
+    cp --no-preserve=mode -R '${mixFodDeps}' "$MIX_DEPS_PATH"
+
+    # Change to project base directory
+    cd app
 
-    ./app/linux-prebuild.sh
-    ./app/linux-config.sh
+    # Prebuild Ruby vendored dependencies and Qt docs
+    ./linux-prebuild.sh -o
 
-    runHook postConfigure
+    # Append CMake flag depending on the value of $out
+    cmakeFlags+=" -DAPP_INSTALL_ROOT=$out/app"
   '';
 
-  buildPhase = ''
-    runHook preBuild
+  postBuild = ''
+    # Build BEAM server
+    ../linux-post-tau-prod-release.sh -o
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    # BEAM tests
+    pushd ../server/beam/tau
+      MIX_ENV=test TAU_ENV=test mix test
+    popd
+
+    # Ruby tests
+    pushd ../server/ruby
+      rake test
+    popd
 
-    pushd app/build
-    cmake --build . --config Release
+    # API tests
+    pushd api-tests
+      # run JACK parallel to tests and quit both when one exits
+      SONIC_PI_ENV=test parallel --no-notice -j2 --halt now,done=1 ::: 'jackd -rd dummy' 'ctest --verbose'
     popd
 
-    runHook postBuild
+    runHook postCheck
   '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir $out
-    cp -r {bin,etc} $out/
-
-    # Copy server whole.
-    mkdir -p $out/app
-    cp -r app/server $out/app/
+    # Run Linux release script
+    ../linux-release.sh
 
-    # We didn't build this during linux-prebuild.sh so copy from the separate derivation
-    cp ${aubioonset}/aubioonset $out/app/server/native/
+    # Copy dist directory to output
+    mkdir $out
+    cp -r linux_dist/* $out/
 
-    # Copy only necessary files for the gui app.
-    mkdir -p $out/app/gui/qt
-    cp -r app/gui/qt/{book,fonts,help,html,images,image_source,info,lang,theme} $out/app/gui/qt/
-    mkdir -p $out/app/build/gui/qt
-    cp app/build/gui/qt/sonic-pi $out/app/build/gui/qt/sonic-pi
+    # Copy icon
+    install -Dm644 ../gui/qt/images/icon-smaller.png $out/share/icons/hicolor/256x256/apps/sonic-pi.png
 
     runHook postInstall
   '';
@@ -117,19 +187,42 @@ mkDerivation rec {
   # $out/bin/sonic-pi is a shell script, and wrapQtAppsHook doesn't wrap them.
   dontWrapQtApps = true;
   preFixup = ''
-    wrapQtApp "$out/bin/sonic-pi" \
-      --prefix PATH : ${lib.makeBinPath [ bash jack2 ruby supercollider-with-sc3-plugins erlang] }
-    makeWrapper \
-      $out/app/server/ruby/bin/sonic-pi-server.rb \
-      $out/bin/sonic-pi-server \
-      --prefix PATH : ${lib.makeBinPath [ bash jack2 ruby supercollider-with-sc3-plugins erlang ] }
+    # Wrap Qt GUI (distributed binary)
+    wrapQtApp $out/bin/sonic-pi \
+      --prefix PATH : ${lib.makeBinPath [ ruby supercollider-with-sc3-plugins jack2 ]}
+
+    # If ImGui was built
+    if [ -e $out/app/build/gui/imgui/sonic-pi-imgui ]; then
+      # Wrap ImGui into bin
+      makeWrapper $out/app/build/gui/imgui/sonic-pi-imgui $out/bin/sonic-pi-imgui \
+        --inherit-argv0 \
+        --prefix PATH : ${lib.makeBinPath [ ruby supercollider-with-sc3-plugins jack2 ]}
+    fi
+
+    # Remove runtime Erlang references
+    for file in $(grep -FrIl '${erlang}/lib/erlang' $out/app/server/beam/tau); do
+      substituteInPlace "$file" --replace '${erlang}/lib/erlang' $out/app/server/beam/tau/_build/prod/rel/tau
+    done
   '';
 
-  meta = {
+  stripDebugList = [ "app" "bin" ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "sonic-pi";
+      exec = "sonic-pi";
+      icon = "sonic-pi";
+      desktopName = "Sonic Pi";
+      comment = meta.description;
+      categories = [ "Audio" "AudioVideo" "Education" ];
+    })
+  ];
+
+  meta = with lib; {
     homepage = "https://sonic-pi.net/";
     description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ Phlogistique kamilchm c0deaddict sohalt lilyinstarlight ];
-    platforms = lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ Phlogistique kamilchm c0deaddict sohalt lilyinstarlight ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/default.nix b/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/default.nix
index b1a3917417d94..909dc69c02ed7 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/default.nix
@@ -1,65 +1,76 @@
 { lib
 , fetchurl
 , vscode-utils
-, unzip
 , patchelf
-, makeWrapper
 , icu
 , stdenv
 , openssl
-, mono
 }:
-
 let
-  # Get as close as possible as the `package.json` required version.
-  # This is what drives omnisharp.
-  rtDepsSrcsFromJson = lib.importJSON ./rt-deps-bin-srcs.json;
-
-  rtDepsBinSrcs = builtins.mapAttrs (k: v:
-      let
-        # E.g: "OmniSharp-x86_64-linux"
-        kSplit = builtins.split "(__)" k;
-        name = builtins.elemAt kSplit 0;
-        system = builtins.elemAt kSplit 2;
-      in
+  inherit (stdenv.hostPlatform) system;
+
+  version = "1.25.0";
+
+
+  vsixInfo =
+    let
+      linuxDebuggerBins = [
+        ".debugger/vsdbg-ui"
+        ".debugger/vsdbg"
+      ];
+      darwinX86DebuggerBins = [
+        ".debugger/x86_64/vsdbg-ui"
+        ".debugger/x86_64/vsdbg"
+      ];
+      darwinAarch64DebuggerBins = [
+        ".debugger/arm64/vsdbg-ui"
+        ".debugger/arm64/vsdbg"
+      ];
+      omniSharpBins = [
+        ".omnisharp/1.39.0-net6.0/OmniSharp"
+      ];
+      razorBins = [
+        ".razor/createdump"
+        ".razor/rzls"
+      ];
+    in
       {
-        inherit name system;
-        installPath = v.installPath;
-        binaries = v.binaries;
-        bin-src = fetchurl {
-          urls = v.urls;
-          inherit (v) sha256;
+        x86_64-linux = {
+          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-linux-x64.vsix";
+          sha256 = "1cqqjg8q6v56b19aabs9w1kxly457mpm0akbn5mis9nd1mrdmydl";
+          binaries = linuxDebuggerBins ++ omniSharpBins ++ razorBins;
         };
-      }
-    )
-    rtDepsSrcsFromJson;
-
-  rtDepBinSrcByName = bSrcName:
-    rtDepsBinSrcs."${bSrcName}__${stdenv.targetPlatform.system}";
-
-  omnisharp = rtDepBinSrcByName "OmniSharp";
-  vsdbgs = [
-    (rtDepBinSrcByName "Debugger")
-  ] ++ lib.optionals (stdenv.isDarwin) [
-  # Include the aarch64-darwin debugger binaries on x86_64-darwin.  Even though OmniSharp will be
-  # running under Rosetta 2, debugging will fail to start if both sets of binaries are not present.
-    (rtDepsBinSrcs."Debugger__aarch64-darwin")
-  ];
-  razor = rtDepBinSrcByName "Razor";
+        aarch64-linux = {
+          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-linux-arm64.vsix";
+          sha256 = "0nsjgrb7y4w71w1gnrf50ifwbmjidi4vrw2fyfmch7lgjl8ilnhd";
+          binaries = linuxDebuggerBins ++ omniSharpBins; # Linux aarch64 version has no Razor Language Server
+        };
+        x86_64-darwin = {
+          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-darwin-x64.vsix";
+          sha256 = "01qn398vmjfi9imzlmzm0qi7y2h214wx6a8la088lfkhyj3gfjh8";
+          binaries = darwinX86DebuggerBins ++ omniSharpBins ++ razorBins;
+        };
+        aarch64-darwin = {
+          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-darwin-arm64.vsix";
+          sha256 = "020j451innh7jzarbv1ij57rfmqnlngdxaw6wdgp8sjkgbylr634";
+          binaries = darwinAarch64DebuggerBins ++ darwinX86DebuggerBins ++ omniSharpBins ++ razorBins;
+        };
+      }.${system} or (throw "Unsupported system: ${system}");
 in
-
-vscode-utils.buildVscodeMarketplaceExtension {
+vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "csharp";
     publisher = "ms-dotnettools";
-    version = "1.23.16";
-    sha256 = "sha256-fM4vcSMi2tEjIox9Twh2sRiFhXgAeRwAM9to3vtcSqI=";
+    inherit version;
+  };
+
+  vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
+    inherit (vsixInfo) url sha256;
   };
 
   nativeBuildInputs = [
-    unzip
     patchelf
-    makeWrapper
   ];
 
   postPatch = ''
@@ -78,23 +89,11 @@ vscode-utils.buildVscodeMarketplaceExtension {
       -E -e 's/(this\._pipePath=[a-zA-Z0-9_]+\.join\()([a-zA-Z0-9_]+\.getExtensionPath\(\)[^,]*,)/\1require("os").tmpdir(), "'"$ext_unique_id"'"\+/g' \
       "$PWD/dist/extension.js"
 
-    unzip_to() {
-      declare src_zip="''${1?}"
-      declare target_dir="''${2?}"
-      mkdir -p "$target_dir"
-      if unzip "$src_zip" -d "$target_dir"; then
-        true
-      elif [[ "1" -eq "$?" ]]; then
-        1>&2 echo "WARNING: unzip('$?' -> skipped files)."
-      else
-        1>&2 echo "ERROR: unzip('$?')."
-      fi
-    }
-
     patchelf_add_icu_as_needed() {
       declare elf="''${1?}"
       declare icu_major_v="${
-        with builtins; head (splitVersion (parseDrvName icu.name).version)}"
+      lib.head (lib.splitVersion (lib.getVersion icu.name))
+    }"
 
       for icu_lib in icui18n icuuc icudata; do
         patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
@@ -111,42 +110,22 @@ vscode-utils.buildVscodeMarketplaceExtension {
         "$elf"
     }
 
-    declare omnisharp_dir="$PWD/${omnisharp.installPath}"
-    unzip_to "${omnisharp.bin-src}" "$omnisharp_dir"
-    rm "$omnisharp_dir/bin/mono"
-    ln -s -T "${mono}/bin/mono" "$omnisharp_dir/bin/mono"
-    chmod a+x "$omnisharp_dir/run"
-    touch "$omnisharp_dir/install.Lock"
-
-  '' + builtins.concatStringsSep "\n" (map (vsdbg: ''
-    declare vsdbg_dir="$PWD/${vsdbg.installPath}"
-    unzip_to "${vsdbg.bin-src}" "$vsdbg_dir"
-    chmod a+x "$vsdbg_dir/vsdbg-ui"
-    chmod a+x "$vsdbg_dir/vsdbg"
-    touch "$vsdbg_dir/install.complete"
-    touch "$vsdbg_dir/install.Lock"
-
-  '') vsdbgs) + ''
-    declare razor_dir="$PWD/${razor.installPath}"
-    unzip_to "${razor.bin-src}" "$razor_dir"
-    chmod a+x "$razor_dir/rzls"
-    touch "$razor_dir/install.Lock"
-
-  '' + lib.optionalString stdenv.isLinux ''
-    patchelf_common "$vsdbg_dir/vsdbg"
-    patchelf_common "$vsdbg_dir/vsdbg-ui"
-    patchelf_common "$razor_dir/rzls"
-
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace $omnisharp_dir/etc/config \
-      --replace "libmono-native-compat.dylib" "libmono-native.dylib"
-  '';
+  '' + (lib.concatStringsSep "\n" (map
+    (bin: ''
+      chmod +x "${bin}"
+    '')
+    vsixInfo.binaries))
+  + lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map
+    (bin: ''
+      patchelf_common "${bin}"
+    '')
+    vsixInfo.binaries));
 
   meta = with lib; {
     description = "C# for Visual Studio Code (powered by OmniSharp)";
     homepage = "https://github.com/OmniSharp/omnisharp-vscode";
     license = licenses.mit;
     maintainers = [ maintainers.jraygauthier ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json b/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
deleted file mode 100644
index 13678d1097e0b..0000000000000
--- a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
-  "OmniSharp__x86_64-darwin": {
-    "installPath": ".omnisharp/1.37.16",
-    "binaries": [
-      "./mono.osx",
-      "./run"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/03c32aa6-7c7a-4936-82a0-fd8f816d112f/0ea1ea1eae48552a1992ed6df782353a/omnisharp-osx-1.37.16.zip",
-      "https://roslynomnisharp.blob.core.windows.net/releases/1.37.16/omnisharp-osx-1.37.16.zip"
-    ],
-    "sha256": "0hhgfx7zs1rljhn3n9c7lci7j15yp2448z3f1d3c47a95l1hmlip"
-  },
-  "OmniSharp__x86_64-linux": {
-    "installPath": ".omnisharp/1.37.16",
-    "binaries": [
-      "./mono.linux-x86_64",
-      "./run"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/03c32aa6-7c7a-4936-82a0-fd8f816d112f/9ae3ed99fc0c41c7139751dde6f2bc78/omnisharp-linux-x64-1.37.16.zip",
-      "https://roslynomnisharp.blob.core.windows.net/releases/1.37.16/omnisharp-linux-x64-1.37.16.zip"
-    ],
-    "sha256": "0a2basc6dw42fnjv9zz93ff0bsw2i3446gvcjx5mn5d8dasi483i"
-  },
-  "Debugger__x86_64-darwin": {
-    "installPath": ".debugger/x86_64",
-    "binaries": [
-      "./vsdbg-ui",
-      "./vsdbg"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/c1122f7141735472d9583c1124024c55/coreclr-debug-osx-x64.zip",
-      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-x64.zip"
-    ],
-    "sha256": "08z3k0h25gdsbmlxwayd94672hp2z7zmwdmd0nyr9j82izj3ci2m"
-  },
-  "Debugger__aarch64-darwin": {
-    "installPath": ".debugger/arm64",
-    "binaries": [
-      "./vsdbg-ui",
-      "./vsdbg"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/96a88189c7904a517f3bb59b2dba8bd1/coreclr-debug-osx-arm64.zip",
-      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-arm64.zip"
-    ],
-    "sha256": "113kz02ihvb4y5fj01wamqz2jsql2q7n7f55s9kzs9dsrmq5ffa0"
-  },
-  "Debugger__aarch64-linux": {
-    "installPath": ".debugger",
-    "binaries": [
-      "./vsdbg-ui",
-      "./vsdbg"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/7a723bfbda6d196c52084226b6835b36/coreclr-debug-linux-arm64.zip",
-      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-arm64.zip"
-    ],
-    "sha256": "1d4a5q3f7qfk3jq2i4f6g50i9i4z8z7g8ss083y9n5c1yj3629kw"
-  },
-  "Debugger__x86_64-linux": {
-    "installPath": ".debugger",
-    "binaries": [
-      "./vsdbg-ui",
-      "./vsdbg"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/dd019b4c839f458596e26bfcfe6a3e7f/coreclr-debug-linux-x64.zip",
-      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-x64.zip"
-    ],
-    "sha256": "0c5y0035sa07bl3m3iiqccqd92xjwpcfjrqhmi5xligk40q2i2gk"
-  },
-  "Razor__x86_64-linux": {
-    "installPath": ".razor",
-    "binaries": [
-      "./rzls"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip"
-    ],
-    "sha256": "0gb36nlb7fgcv03a0awna1qyrsky6ys5gkpsmvxc5j35f1yq337b"
-  },
-  "Razor__x86_64-darwin": {
-    "installPath": ".razor",
-    "binaries": [
-      "./rzls"
-    ],
-    "urls": [
-      "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip"
-    ],
-    "sha256": "0iqinpwwlqwajdq4i1qbb9hfpfmgy17av95bpw02ad2f9fnyh572"
-  }
-}
diff --git a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/update-bin-srcs b/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/update-bin-srcs
deleted file mode 100755
index 8c43231b1a7f0..0000000000000
--- a/pkgs/applications/editors/vscode/extensions/ms-dotnettools-csharp/update-bin-srcs
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../.. -i bash -p curl jq unzip
-set -euf -o pipefail
-
-declare scriptDir
-scriptDir=$(cd "$(dirname "$0")"; pwd)
-1>&2 echo "scriptDir='$scriptDir'"
-
-. "$scriptDir/../_maintainers/update-bin-srcs-lib.sh"
-
-declare extPublisher="ms-dotnettools"
-declare extName="csharp"
-declare defaultExtVersion="1.23.16"
-declare extVersion="${1:-$defaultExtVersion}"
-
-formatExtRuntimeDeps \
-  "$extPublisher" "$extName" "$extVersion" \
-  | computeAndAttachExtRtDepsChecksums \
-  | jqStreamToJson \
-  | tee "$scriptDir/rt-deps-bin-srcs.json" \
-  | jq '.'
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index c97d28de8d3d2..87c4592268313 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.4.4";
+  version = "2.4.8";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-rmgXsA9rOCUy1HDm09Aq5s8EfkM71We76gffPElnUAU=";
+    sha256 = "sha256-7eL6PQPB9xI5vmYuIaLHQLx6Dj/bRuv+Qw0MzJXUk4g=";
   };
 
-  vendorSha256 = "sha256-32cuYIySHtV+PfN2wrqf+p01+F6uBZJN3w2MeDQ8hbI=";
+  vendorSha256 = "sha256-dM7ahmBaXrLjOF8XAPdIkoyhfSTbgturrf1F8xSUvjk=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
@@ -26,9 +26,9 @@ buildGoModule rec {
       "-X ${package_url}.gitCommit=${src.rev}"
       "-X ${package_url}.gitTag=${src.rev}"
       "-X ${package_url}.gitTreeState=clean"
-      "-X ${package_url}.kubectlVersion=v0.23.3"
+      "-X ${package_url}.kubectlVersion=v0.23.1"
       # NOTE: Update kubectlVersion when upgrading this package with
-      # https://github.com/argoproj/argo-cd/blob/master/go.mod#L95
+      # https://github.com/argoproj/argo-cd/blob/v${version}/go.mod#L95
       # Per https://github.com/argoproj/argo-cd/blob/master/Makefile#L18
       # Will need a way to automate it :P
     ];
diff --git a/pkgs/applications/networking/cluster/levant/default.nix b/pkgs/applications/networking/cluster/levant/default.nix
index 7e9ca9a84a2b0..afee16bf8f8fe 100644
--- a/pkgs/applications/networking/cluster/levant/default.nix
+++ b/pkgs/applications/networking/cluster/levant/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "levant";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "levant";
     rev = "v${version}";
-    sha256 = "9M7a4i+DPKb1H9jOEVAvhvYxGwtj3dK/40n4GSy4Rqo=";
+    sha256 = "sha256-ujybD4nSHC/w2Pfu43eSO6rNJjXFAvc81T05icWFvbs=";
   };
 
-  vendorSha256 = "sha256-m3WSk5RvCmeIgX6SwHpWHvokgs71cY6XCKtHJ4jnonc=";
+  vendorSha256 = "sha256-pKxj0qz7adSuPpiXu4+2KBO3JZu8zZ8ycPF5LosF4T8=";
 
   # The tests try to connect to a Nomad cluster.
   doCheck = false;
diff --git a/pkgs/applications/networking/ftp/gftp/default.nix b/pkgs/applications/networking/ftp/gftp/default.nix
index 37338d31e0dcc..3007fdd67183e 100644
--- a/pkgs/applications/networking/ftp/gftp/default.nix
+++ b/pkgs/applications/networking/ftp/gftp/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gftp";
-  version = "2.8.0b";
+  version = "2.9.1b";
 
   src = fetchFromGitHub {
     owner = "masneyb";
     repo = pname;
     rev = version;
-    hash = "sha256-syeRFpqbd1VhKhhs/fIByDSVpcY+SAlmikDo3J1ZHlo=";
+    hash = "sha256-0zdv2oYl24BXh61IGCWby/2CCkzNjLpDrAFc0J89Pw4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
index 635cc569e86fb..f23b22022ebbd 100644
--- a/pkgs/applications/networking/instant-messengers/jami/daemon.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -48,7 +48,7 @@ let
       configureFlags = old.configureFlags
         ++ (readLinesToList ./config/ffmpeg_args_common)
         ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
-        ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
+        ++ lib.optionals stdenv.hostPlatform.isx86 (readLinesToList ./config/ffmpeg_args_x86);
       outputs = [ "out" "doc" ];
       meta = old.meta // {
         # undefined reference to `ff_nlmeans_init_aarch64'
diff --git a/pkgs/applications/networking/mailreaders/astroid/default.nix b/pkgs/applications/networking/mailreaders/astroid/default.nix
index 47e295de29d35..739f45fd4ee9a 100644
--- a/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn
 , libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf
 , gtkmm3, libpeas, gsettings-desktop-schemas, gobject-introspection, python3
 
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-6xQniOLNUk8tDkooDN3Tp6sb43GqoynO6+fN9yhNqZ4=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "symbolic-icons.patch";
+      url =
+        "https://github.com/astroidmail/astroid/commit/7c2022f06a4146ad62e858bcaacdb4ee817851b9.patch";
+      hash = "sha256-hZHOg1wUR8Kpd6017fWzhMmG+/WQxSOCnsiyIvUcpbU=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake ronn pkg-config wrapGAppsHook gobject-introspection
     python3 python3.pkgs.wrapPython
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index e9dc1eb492bcf..1dab78a8fca83 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
-    maintainers = with maintainers; [ cmacrae raboof ];
+    maintainers = with maintainers; [ cmacrae ];
     mainProgram = "weed";
     license = licenses.asl20;
   };
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index 75bf008d1ec7d..a697093e1f802 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -1,23 +1,35 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "lefthook";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "evilmartians";
     repo = "lefthook";
-    sha256 = "sha256-uaIZrxfzV2WPvnAPm6Q67yKx1EVmSMcChSxZG/Huw48=";
+    sha256 = "sha256-/y9UUVwJ/u1F9+hMxWqGENscTuf8GP4VZl7hTk3zyrM=";
   };
 
   vendorSha256 = "sha256-LCBQyVSkUywceIlioYRNuRc6FrbPKuhgfw5OocR3NvI=";
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [ "-s" "-w" ];
+
   doCheck = false;
 
+  postInstall = ''
+    installShellCompletion --cmd lefthook \
+      --bash <($out/bin/lefthook completion bash) \
+      --fish <($out/bin/lefthook completion fish) \
+      --zsh <($out/bin/lefthook completion zsh)
+  '';
+
   meta = with lib; {
     description = "Fast and powerful Git hooks manager for any type of projects";
-    homepage = "https://github.com/Arkweid/lefthook";
+    homepage = "https://github.com/evilmartians/lefthook";
+    changelog = "https://github.com/evilmartians/lefthook/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ rencire ];
   };
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 3c73e7f59944b..d20c6125beb2c 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -206,7 +206,7 @@ let self = stdenv.mkDerivation rec {
   ++ optional (!useGtk) "--disable-gtk"
   ++ optional useFdk "--enable-fdk-aac"
   ++ optional stdenv.isDarwin "--disable-xcode"
-  ++ optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
+  ++ optional stdenv.hostPlatform.isx86 "--harden";
 
   # NOTE: 2018-12-27: Check NixOS HandBrake test if changing
   NIX_LDFLAGS = [ "-lx265" ];
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 7fcf5f7a6b4ae..e870b8572d8de 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -80,7 +80,6 @@
 
 let
   inherit (lib) optionalString optional optionals;
-  hostIsAarch = stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64;
 in
 stdenv.mkDerivation rec {
   pname = "${optionalString onlyLibVLC "lib"}vlc";
@@ -159,7 +158,7 @@ stdenv.mkDerivation rec {
     xcbutilkeysyms
     xlibsWrapper
   ])
-  ++ optional (!hostIsAarch && !onlyLibVLC) live555
+  ++ optional (!stdenv.hostPlatform.isAarch && !onlyLibVLC) live555
   ++ optional jackSupport libjack2
   ++ optionals chromecastSupport [ libmicrodns protobuf ]
   ++ optionals skins2Support (with xorg; [
@@ -184,7 +183,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  LIVE555_PREFIX = if hostIsAarch then null else live555;
+  LIVE555_PREFIX = if stdenv.hostPlatform.isAarch then null else live555;
 
   # vlc depends on a c11-gcc wrapper script which we don't have so we need to
   # set the path to the compiler
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index f95568f918f18..6858b8bb6dc9d 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-cx2Qn5NHQgs2iJ1SDyTdptHSyPUhx4SpCTfvjUwldfI=";
+    sha256 = "sha256-EayVmFBlUrBr9xJKebJ+lBdiylub/upzd34ecBPkO8Q=";
   };
 
-  vendorSha256 = "sha256-8CvtqnXSKoK/SA0tc/0Duv3pmYT69/3a/HFvAr4KNJo=";
+  vendorSha256 = "sha256-7sJIzY1fXwMe8cowv7bThOOUd/7cLYPed6RFal2XKHk=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index af2c4a0070adc..83c48536b3077 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -3,7 +3,6 @@
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
 , alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib
-, fetchpatch
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin
@@ -24,14 +23,14 @@ let
   buildType = "release";
   # Use maintainers/scripts/update.nix to update the version and all related hashes or
   # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-  version = "6.1.34";
+  version = "6.1.36";
 in stdenv.mkDerivation {
   pname = "virtualbox";
   inherit version;
 
   src = fetchurl {
     url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "9c3ce1829432e5b8374f950698587038f45fb0492147dc200e59edb9bb75eb49";
+    sha256 = "e47942e42892c13c621869865e2b7b320340154f0fa74ecbdaf18fdaf70ef047";
   };
 
   outputs = [ "out" "modsrc" ];
@@ -98,15 +97,6 @@ in stdenv.mkDerivation {
     ./qtx11extras.patch
     # https://github.com/NixOS/nixpkgs/issues/123851
     ./fix-audio-driver-loading.patch
-    # NOTE: both patches below should be removed when updating to 6.1.35
-    # https://www.virtualbox.org/ticket/20914#comment:15
-    (fetchpatch {
-      url = "https://www.virtualbox.org/raw-attachment/ticket/20914/vbox-linux-5.19.patch";
-      hash = "sha512-NNiMf8kUuM/PimrQCOacYLkrf7UFPh6ZdPsXKyLlsqWfWQXkG92Fv3qZXvg8weE1Z/SBsFTuHICEI4b4l1wZFw==";
-      extraPrefix = "/";
-    })
-    # https://www.virtualbox.org/ticket/20904#comment:22
-    ./ffreestanding.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix
index 24e66ef7c7531..83861e648ceaa 100644
--- a/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -1,4 +1,4 @@
-{fetchurl, lib, virtualbox}:
+{ fetchurl, lib, virtualbox }:
 
 with lib;
 
@@ -12,7 +12,7 @@ fetchurl rec {
     # Manually sha256sum the extensionPack file, must be hex!
     # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
     # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
-    let value = "d7856f0688b6d2ed1e8bff0b367efa952068b03fa5a3a29b46db08cfd5d9a810";
+    let value = "3c84f0177a47a1969aff7c98e01ddceedd50348f56cc52d63f4c2dd38ad2ca75";
     in assert (builtins.stringLength value) == 64; value;
 
   meta = {
diff --git a/pkgs/applications/virtualization/virtualbox/ffreestanding.patch b/pkgs/applications/virtualization/virtualbox/ffreestanding.patch
deleted file mode 100644
index 0e22aa60cde4f..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/ffreestanding.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/Config.kmk b/Config.kmk
-index 3df197404..4c6bd76bb 100644
---- a/Config.kmk
-+++ b/Config.kmk
-@@ -4503,11 +4504,14 @@ ifeq ($(VBOX_LDR_FMT),elf)
- TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
- TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
- 	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
--	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
-+	$(VBOX_GCC_fno-stack-protector) -fno-common -ffreestanding $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
- TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
- 	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
- 	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
- 	-fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
-+ if $(VBOX_GCC_VERSION_CC) >= 40500 # 4.1.2 complains, 4.5.2 is okay, didn't check which version inbetween made it okay with g++.
-+TEMPLATE_VBoxR0_CXXFLAGS           += -ffreestanding
-+ endif
- TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
- TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
- TEMPLATE_VBoxR0_CXXFLAGS.freebsd    = -ffreestanding
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 538ebfa78cf8e..75684cb3b99c7 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "88f86fa0e6970b6a7c80d714b7a91a8c425ff8ef53a3e73fc80781191a87257b";
+    sha256 = "c987cdc8c08c579f56d921c85269aeeac3faf636babd01d9461ce579c9362cdd";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
@@ -148,6 +148,6 @@ in stdenv.mkDerivation rec {
     license = "GPL";
     maintainers = [ lib.maintainers.sander ];
     platforms = [ "i686-linux" "x86_64-linux" ];
-    broken = kernel.kernelAtLeast (if stdenv.hostPlatform.is32bit then "5.10" else "5.17");
+    broken = stdenv.hostPlatform.is32bit && (kernel.kernelAtLeast "5.10");
   };
 }
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 2a26c24ccb369..cdd07d6b2efee 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -70,6 +70,7 @@ let
   dynamicLinker =
     /**/ if sharedLibraryLoader == null then null
     else if targetPlatform.libc == "musl"             then "${sharedLibraryLoader}/lib/ld-musl-*"
+    else if targetPlatform.libc == "uclibc"           then "${sharedLibraryLoader}/lib/ld*-uClibc.so.1"
     else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker"
     else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64"
     else if targetPlatform.libc == "nblibc"           then "${sharedLibraryLoader}/libexec/ld.elf_so"
diff --git a/pkgs/data/fonts/openmoji/default.nix b/pkgs/data/fonts/openmoji/default.nix
index baf49c80e1c7d..3a9b91deb28ff 100644
--- a/pkgs/data/fonts/openmoji/default.nix
+++ b/pkgs/data/fonts/openmoji/default.nix
@@ -47,13 +47,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "openmoji";
-  version = "13.1.0";
+  version = "14.0.0";
 
   src = fetchFromGitHub {
     owner = "hfg-gmuend";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7G6a+LFq79njyPhnDhhSJ98Smw5fWlfcsFj6nWBPsSk=";
+    sha256 = "sha256-XnSRSlWXOMeSaO6dKaOloRg3+sWS4BSaro4bPqOyKmE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix
index 2da11c87f81a6..9b7811417d9f6 100644
--- a/pkgs/development/haskell-modules/configuration-arm.nix
+++ b/pkgs/development/haskell-modules/configuration-arm.nix
@@ -1,8 +1,8 @@
 # ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
 #
-# This extension is applied to all haskell package sets in nixpkgs
-# if `stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64`
-# to apply arm specific workarounds or fixes.
+# This extension is applied to all haskell package sets in nixpkgs if
+# `stdenv.hostPlatform.isAarch` to apply arm specific workarounds or
+# fixes.
 #
 # The file is split into three parts:
 #
diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix
index 8392e751da2d6..7bc1fa0f7e832 100644
--- a/pkgs/development/haskell-modules/default.nix
+++ b/pkgs/development/haskell-modules/default.nix
@@ -21,8 +21,7 @@ let
     inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes;
   };
 
-  isArm = with stdenv.hostPlatform; isAarch64 || isAarch32;
-  platformConfigurations = lib.optionals isArm [
+  platformConfigurations = lib.optionals stdenv.hostPlatform.isAarch [
     (configurationArm { inherit pkgs haskellLib; })
   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     (configurationDarwin { inherit pkgs haskellLib; })
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index 7f35dcfc63597..5e67986ac105e 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   # emulating build_all.sh configuration variables
   jplatform =
     if stdenv.isDarwin then "darwin"
-    else if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry"
+    else if stdenv.hostPlatform.isAarch then "raspberry"
     else if stdenv.isLinux then "linux"
     else "unsupported";
 
diff --git a/pkgs/development/libraries/crossguid/default.nix b/pkgs/development/libraries/crossguid/default.nix
new file mode 100644
index 0000000000000..09d07064527ac
--- /dev/null
+++ b/pkgs/development/libraries/crossguid/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, cmake, libuuid }:
+
+stdenv.mkDerivation rec {
+  pname = "crossguid";
+  version = "unstable-2019-05-29";
+
+  src = fetchFromGitHub {
+    owner = "graeme-hill";
+    repo = pname;
+    rev = "ca1bf4b810e2d188d04cb6286f957008ee1b7681";
+    hash = "sha256-37tKPDo4lukl/aaDWWSQYfsBNEnDjE7t6OnEZjBhcvQ=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional stdenv.isLinux libuuid;
+
+  meta = with lib; {
+    description = "Lightweight cross platform C++ GUID/UUID library";
+    license = licenses.mit;
+    homepage = "https://github.com/graeme-hill/crossguid";
+    maintainers = with maintainers; [ lilyinstarlight ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 7a79e597beb5b..54f42ae8db7b8 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     patchShebangs ../test/
     mkdir ../test/tmp
 
-    ${lib.optionalString (stdenv.isAarch64 || stdenv.isAarch32) ''
+    ${lib.optionalString stdenv.hostPlatform.isAarch ''
       # Fix tests on arm
       # https://github.com/Exiv2/exiv2/issues/933
       rm -f ../tests/bugfixes/github/test_CVE_2018_12265.py
diff --git a/pkgs/development/libraries/gl3w/default.nix b/pkgs/development/libraries/gl3w/default.nix
new file mode 100644
index 0000000000000..b79c83cbf1556
--- /dev/null
+++ b/pkgs/development/libraries/gl3w/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, python3, cmake, libglvnd, libGLU }:
+
+stdenv.mkDerivation rec {
+  pname = "gl3w";
+  version = "unstable-2022-03-24";
+
+  src = fetchFromGitHub {
+    owner = "skaslev";
+    repo = pname;
+    rev = "5f8d7fd191ba22ff2b60c1106d7135bb9a335533";
+    hash = "sha256-qV/PZmaP5iCHhIzTA2bE4d1RMB6LzRbTsB5gWVvi9bU=";
+  };
+
+  nativeBuildInputs = [ python3 cmake ];
+  # gl3w installs a CMake config that when included expects to be able to
+  # build and link against both of these libraries
+  # (the gl3w generated C file gets compiled into the downstream target)
+  propagatedBuildInputs = [ libglvnd libGLU ];
+
+  dontUseCmakeBuildDir = true;
+
+  # These files must be copied rather than linked since they are considered
+  # outputs for the custom command, and CMake expects to be able to touch them
+  preConfigure = ''
+    mkdir -p include/{GL,KHR}
+    cp ${libglvnd.dev}/include/GL/glcorearb.h include/GL/glcorearb.h
+    cp ${libglvnd.dev}/include/KHR/khrplatform.h include/KHR/khrplatform.h
+  '';
+
+  meta = with lib; {
+    description = "Simple OpenGL core profile loading";
+    homepage = "https://github.com/skaslev/gl3w";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ lilyinstarlight ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index 0ed2dea0c4c0e..c1dd608f80529 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -29,11 +29,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   # tcmalloc uses libunwind in a way that works correctly only on non-ARM linux
-  buildInputs = lib.optional (stdenv.isLinux && !(stdenv.isAarch64 || stdenv.isAarch32)) libunwind;
+  buildInputs = lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isAarch) libunwind;
 
   # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
   # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
-  configureFlags = lib.optional (stdenv.isAarch32 || stdenv.isAarch64)
+  configureFlags = lib.optional stdenv.hostPlatform.isAarch
     "--disable-general-dynamic-tls";
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 9f7f5fcb1d8fd..ec12f1031cf56 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     "-Dnm-path=${stdenv.cc.targetPrefix}nm"
     "-Dinstall-test-programs=true"
     "-Domap=true"
-  ] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [
+  ] ++ lib.optionals stdenv.hostPlatform.isAarch [
     "-Dtegra=true"
     "-Detnaviv=true"
   ];
diff --git a/pkgs/development/libraries/platform-folders/default.nix b/pkgs/development/libraries/platform-folders/default.nix
new file mode 100644
index 0000000000000..8ed0c7a744be2
--- /dev/null
+++ b/pkgs/development/libraries/platform-folders/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "platform-folders";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    owner = "sago007";
+    repo = "PlatformFolders";
+    rev = version;
+    hash = "sha256-ruhAP9kjwm6pIFJ5a6oy6VE5W39bWQO3qSrT5IUtiwA=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
+
+  meta = with lib; {
+    description = "A C++ library to look for standard platform directories so that you do not need to write platform-specific code";
+    homepage = "https://github.com/sago007/PlatformFolders";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lilyinstarlight ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/rapidfuzz-cpp/default.nix b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
index 36b6c5b9bae43..e21ff01018db6 100644
--- a/pkgs/development/libraries/rapidfuzz-cpp/default.nix
+++ b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rapidfuzz-cpp";
-  version = "1.0.4";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "rapidfuzz-cpp";
     rev = "v${version}";
-    hash = "sha256-ocR88dgRo7dF7scATv8kPYmcK3R6a8DcoJfNHq1hZnM=";
+    hash = "sha256-ltxOn8thAiYgi5rG6xYFSnPl20Uyf4mWs1Rcv3lP++E=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/redis-plus-plus/default.nix b/pkgs/development/libraries/redis-plus-plus/default.nix
index a39a9b185dca4..7d3d7d486714e 100644
--- a/pkgs/development/libraries/redis-plus-plus/default.nix
+++ b/pkgs/development/libraries/redis-plus-plus/default.nix
@@ -8,13 +8,13 @@ assert enableShared || enableStatic;
 
 stdenv.mkDerivation rec {
   pname = "redis-plus-plus";
-  version = "1.3.3";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     owner = "sewenew";
     repo = "redis-plus-plus";
     rev = version;
-    sha256 = "sha256-k4q5YbbbKKHXcL0nndzJPshzXS20ARz4Tdy5cBg7kMc=";
+    sha256 = "sha256-5tjadh3Ku7lrJn4tbi8TjTH6N0+QB2ER9xuO51cK/LU=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/sewenew/redis-plus-plus";
     description = "Redis client written in C++";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ wheelsandmetal ];
   };
 }
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index 19f755ca0533b..0de5fdf1b7afc 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocksdb";
-  version = "7.3.1";
+  version = "7.4.4";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5fh8hH6f0Mv9XQAoHYIiY019qkC5PuLS2qlE+ladWWM=";
+    sha256 = "sha256-34pAAqUhHQiH0YuRl6a0zdn8p6hSAIJnZXIErm3SYFE=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index db5db61c6e991..7a647084f9cd3 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , acl
 , cyrus_sasl
@@ -33,7 +34,7 @@
 , vala
 , wayland-protocols
 , zlib
-, withPolkit ? true
+, withPolkit ? stdenv.isLinux
 }:
 
 # If this package is built with polkit support (withPolkit=true),
@@ -59,13 +60,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spice-gtk";
-  version = "0.40";
+  version = "0.41";
 
   outputs = [ "out" "dev" "devdoc" "man" ];
 
   src = fetchurl {
     url = "https://www.spice-space.org/download/gtk/${pname}-${version}.tar.xz";
-    sha256 = "sha256-I/X/f6gLdWR85zzaXq+LMi80Mtu7f286g5Y0YYrbztM=";
+    sha256 = "sha256-2Pi1y+qRhHAu64zCdqZ9cqzbbjbnxzNJ+4RF5byglp8=";
   };
 
   postPatch = ''
@@ -95,7 +96,8 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
   ];
 
   buildInputs = [
@@ -104,8 +106,6 @@ stdenv.mkDerivation rec {
     gtk3
     json-glib
     libcacard
-    libcap_ng
-    libdrm
     libjpeg_turbo
     libopus
     libusb1
@@ -115,9 +115,15 @@ stdenv.mkDerivation rec {
     pixman
     spice-protocol
     usbredir
-    wayland-protocols
     zlib
-  ] ++ lib.optionals withPolkit [ polkit acl ] ;
+  ] ++ lib.optionals withPolkit [
+    polkit
+    acl
+  ] ++ lib.optionals stdenv.isLinux [
+    libcap_ng
+    libdrm
+    wayland-protocols
+  ];
 
   PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
 
@@ -126,6 +132,8 @@ stdenv.mkDerivation rec {
     "-Dusb-ids-path=${hwdata}/share/hwdata/usb.ids"
   ] ++ lib.optionals (!withPolkit) [
     "-Dpolkit=disabled"
+  ] ++ lib.optionals (!stdenv.isLinux) [
+    "-Dlibcap-ng=disabled"
   ];
 
   meta = with lib; {
@@ -140,6 +148,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.spice-space.org/";
     license = licenses.lgpl21;
     maintainers = [ maintainers.xeji ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/usbredir/default.nix b/pkgs/development/libraries/usbredir/default.nix
index 60f532b9779a1..797c32cb6d2d9 100644
--- a/pkgs/development/libraries/usbredir/default.nix
+++ b/pkgs/development/libraries/usbredir/default.nix
@@ -48,6 +48,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.spice-space.org/usbredir.html";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ offline ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix
index dc2b1c40c6cbf..df248f6b4d433 100644
--- a/pkgs/development/libraries/x264/default.nix
+++ b/pkgs/development/libraries/x264/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   preConfigure = lib.optionalString (stdenv.buildPlatform.isx86_64 || stdenv.hostPlatform.isi686) ''
     # `AS' is set to the binutils assembler, but we need nasm
     unset AS
-  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) ''
+  '' + lib.optionalString stdenv.hostPlatform.isAarch ''
     export AS=$CC
   '';
 
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
index 2ca94a2085a48..29593503252ad 100644
--- a/pkgs/development/python-modules/afdko/default.nix
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
     "test_filename_without_dir"
     "test_overwrite"
     "test_options"
-  ] ++ lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isRiscV) [
     # unknown reason so far
     # https://github.com/adobe-type-tools/afdko/issues/1425
     "test_spec"
diff --git a/pkgs/development/python-modules/fastnumbers/default.nix b/pkgs/development/python-modules/fastnumbers/default.nix
index 779949b38fd7d..5fd8115152f5a 100644
--- a/pkgs/development/python-modules/fastnumbers/default.nix
+++ b/pkgs/development/python-modules/fastnumbers/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   # Tests fail due to numeric precision differences on ARM
   # See https://github.com/SethMMorton/fastnumbers/issues/28
-  doCheck = !(stdenv.isAarch64 || stdenv.isAarch32);
+  doCheck = !stdenv.hostPlatform.isAarch;
 
   checkInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/packet-python/default.nix b/pkgs/development/python-modules/packet-python/default.nix
index b63baa80b3977..f27b0130a700d 100644
--- a/pkgs/development/python-modules/packet-python/default.nix
+++ b/pkgs/development/python-modules/packet-python/default.nix
@@ -12,10 +12,10 @@
 
 buildPythonPackage rec {
   pname = "packet-python";
-  version = "1.44.2";
+  version = "1.44.3";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ce0827bc41d5bf5558284c18048344343f7c4c6e280b64bbe53fb51ab454892";
+    sha256 = "sha256-WVfMELOoml7Hx78jy6TAwlFRLuSQu9dtsb6Khs6/cgI=";
   };
   nativeBuildInputs = [ pytest-runner ];
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/rx/default.nix b/pkgs/development/python-modules/rx/default.nix
index fc9cc3f172d90..8d7277823a7be 100644
--- a/pkgs/development/python-modules/rx/default.nix
+++ b/pkgs/development/python-modules/rx/default.nix
@@ -1,32 +1,18 @@
-{ lib, fetchFromGitHub, buildPythonPackage
-, pythonOlder
-, poetry-core
-, nose
-, typing-extensions
-}:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, nose }:
 
 buildPythonPackage rec {
   pname = "rx";
-  version = "4.0.4";
+  version = "3.2.0";
   disabled = pythonOlder "3.6";
-  format = "pyproject";
 
-  # There are no tests on the pypi source
-  src = fetchFromGitHub {
-    owner = "ReactiveX";
-    repo = "rxpy";
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-W1qYNbYV6Roz1GJtP/vpoPD6KigWaaQOWe1R5DZHlUw=";
+  # Use fetchPypi to avoid the updater script to migrate it to `reactivex` which
+  # is being developed in the same repository
+  src = fetchPypi {
+    inherit version;
+    pname = "Rx";
+    sha256 = "b657ca2b45aa485da2f7dcfd09fac2e554f7ac51ff3c2f8f2ff962ecd963d91c";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
-
   checkInputs = [ nose ];
 
   # Some tests are nondeterministic. (`grep sleep -r tests`)
@@ -34,6 +20,8 @@ buildPythonPackage rec {
   # test_new_thread_scheduler_timeout: https://hydra.nixos.org/build/74949851
   doCheck = false;
 
+  pythonImportsCheck = [ "rx" ];
+
   meta = {
     homepage = "https://github.com/ReactiveX/RxPY";
     description = "Reactive Extensions for Python";
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 477dc540cf8d9..91b0fb6b72a95 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.8.0";
+  version = "1.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    hash = "sha256-PtGQJUZ6/u2exmg6P5VV2RoBKyuV3G2YuAWgA06oQKo=";
+    hash = "sha256-sZpM9wgybyt/5Rw3X05whLvQNMC55o+s7eYA4QJdj6c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/statmake/default.nix b/pkgs/development/python-modules/statmake/default.nix
index ac21b4c62ed70..50e93eeac9b6e 100644
--- a/pkgs/development/python-modules/statmake/default.nix
+++ b/pkgs/development/python-modules/statmake/default.nix
@@ -58,13 +58,6 @@ buildPythonPackage rec {
       --replace 'cattrs = "^1.1"' 'cattrs = ">= 1.1"'
   '';
 
-  disabledTests = [
-    # cattrs.errors.IterableValidationError: While structuring typing.List[statmake.classes.Axis]
-    # https://github.com/daltonmaag/statmake/issues/42
-    "test_load_stylespace_broken_range"
-    "test_load_stylespace_broken_multilingual_no_en"
-  ];
-
   pythonImportsCheck = [
     "statmake"
   ];
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index c3b637da0670e..3e877ea1a8e02 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     # Depend on pyopenssl
     "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_flush_before_shutdown"
     "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_renegotiation"
-  ] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [
+  ] ++ lib.optionals stdenv.hostPlatform.isAarch [
     # test gets stuck in epoll_pwait on hydras aarch64 builders
     # https://github.com/MagicStack/uvloop/issues/412
     "--deselect tests/test_tcp.py::Test_AIO_TCPSSL::test_remote_shutdown_receives_trailing_data"
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 37241a953403d..2a59d95ab6364 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.176.3";
+  version = "0.183.1";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "sha256-ZjWIaZ4XT7v66ozjQu+ld0Tz2gVjQFUD6JoL1nW/DmE=";
+    sha256 = "sha256-RaME+vbmF/hDjwB/ZdvL+/ZgLtWeETMpi/xBlK1EvA0=";
   };
 
   makeFlags = [ "FLOW_RELEASE=1" ];
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index ba822cdd6c590..88acc5e1c1546 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.362";
+  version = "0.0.363";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-MpMMsA7fY5apKh7+9H3ZItzPIRJ08Mw6E26h+0DDoj4=";
+    sha256 = "sha256-Cyc5Kah62a7HJo55lgsplbnG87ttXkkWj/qo9EdSads=";
   };
 
-  vendorSha256 = "sha256-SbbBXkb/+N6uF3HHbGSi/tIA6s6YYkKhZfuNWWvuqHA=";
+  vendorSha256 = "sha256-NVLZEv5ySV3xwgTL8w3I4CZvrriADKKugt3q3IJKRf4=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix
index 947957bc3af61..b29eed160cde6 100644
--- a/pkgs/games/gemrb/default.nix
+++ b/pkgs/games/gemrb/default.nix
@@ -18,7 +18,7 @@
 let
   # the GLES backend on rpi is untested as I don't have the hardware
   backend =
-    if (stdenv.isx86_32 || stdenv.isx86_64) then "OpenGL" else "GLES";
+    if stdenv.hostPlatform.isx86 then "OpenGL" else "GLES";
 
   withVLC = stdenv.isDarwin;
 
diff --git a/pkgs/misc/logging/pacemaker/default.nix b/pkgs/misc/logging/pacemaker/default.nix
index 07194380d4a7b..5da634203dc6c 100644
--- a/pkgs/misc/logging/pacemaker/default.nix
+++ b/pkgs/misc/logging/pacemaker/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pacemaker";
-  version = "2.1.2";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "ClusterLabs";
     repo = pname;
     rev = "Pacemaker-${version}";
-    sha256 = "1w7vq3lmgcz38pfww9vccm142vjsjqz3qc9nnk09ynkx4agqhxdg";
+    sha256 = "sha256-b3ljxAuawhqTnURBJMqy4Zzzfi8PCFwie/zC1yeErhQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix
index fcec51506a518..836714fb919a1 100644
--- a/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   # "marbling" has NEON code that mixes signed and unsigned vector types
-  NIX_CFLAGS_COMPILE = lib.optional (with stdenv.hostPlatform; isAarch64 || isAarch32) "-flax-vector-conversions";
+  NIX_CFLAGS_COMPILE = lib.optional stdenv.hostPlatform.isAarch "-flax-vector-conversions";
 
   postInstall = ''
     for bin in $out/bin/*; do
diff --git a/pkgs/os-specific/linux/nmon/default.nix b/pkgs/os-specific/linux/nmon/default.nix
index 9372018f5b708..41c16f9f394c0 100644
--- a/pkgs/os-specific/linux/nmon/default.nix
+++ b/pkgs/os-specific/linux/nmon/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   dontUnpack = true;
   buildPhase = "${stdenv.cc.targetPrefix}cc -o nmon ${src} -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -lm -g -D ${
     with stdenv.targetPlatform;
-    if isx86_32 || isx86_64 then "X86"
-    else if isAarch32 || isAarch64 then "ARM"
+    if isx86 then "X86"
+    else if isAarch then "ARM"
     else if isPower then "POWER"
     else "UNKNOWN"
   }";
diff --git a/pkgs/os-specific/linux/rtl8189es/default.nix b/pkgs/os-specific/linux/rtl8189es/default.nix
index c1032473db10e..a755404e6e5d9 100644
--- a/pkgs/os-specific/linux/rtl8189es/default.nix
+++ b/pkgs/os-specific/linux/rtl8189es/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   makeFlags = kernel.makeFlags ++ [
     "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     ("CONFIG_PLATFORM_I386_PC=" + (if (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) then "y" else "n"))
-    ("CONFIG_PLATFORM_ARM_RPI=" + (if (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) then "y" else "n"))
+    ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n"))
   ];
 
   preInstall = ''
diff --git a/pkgs/os-specific/linux/rtl8812au/default.nix b/pkgs/os-specific/linux/rtl8812au/default.nix
index b385b9a27da09..30f04c1eb8b3e 100644
--- a/pkgs/os-specific/linux/rtl8812au/default.nix
+++ b/pkgs/os-specific/linux/rtl8812au/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     "ARCH=${stdenv.hostPlatform.linuxArch}"
     "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     ("CONFIG_PLATFORM_I386_PC=" + (if stdenv.hostPlatform.isx86 then "y" else "n"))
-    ("CONFIG_PLATFORM_ARM_RPI=" + (if (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) then "y" else "n"))
+    ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n"))
   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
     "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ];
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 227b4212e0ab6..ba84963a763c7 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.23.0";
-  sha256 = "sha256-ggrKo1uScr6ennL23vpKXykhgkcJ+KpHcseKsx7ZTNE=";
+  version = "1.23.1";
+  sha256 = "sha256-Xu4b0cI+O5R3pFUy8fNq5heLQ9VxqWB+aVPO8m1d8eI=";
 }
diff --git a/pkgs/servers/http/nginx/quic.nix b/pkgs/servers/http/nginx/quic.nix
index ec7982adf7040..3d151a9f35009 100644
--- a/pkgs/servers/http/nginx/quic.nix
+++ b/pkgs/servers/http/nginx/quic.nix
@@ -6,8 +6,8 @@
 callPackage ./generic.nix args {
   src = fetchhg {
     url = "https://hg.nginx.org/nginx-quic";
-    rev = "8d0753760546"; # branch=quic
-    sha256 = "sha256-HcYkjbm3qfTU34ahseHCZhHYWNm1phfVph6oJBARMI8=";
+    rev = "3550b00d9dc8"; # branch=quic
+    sha256 = "sha256-JtE5FO4FHlDuqXd4UTXXPIFAdyyhQbOSMTT0NXh2iH4=";
   };
 
   preConfigure = ''
@@ -19,5 +19,5 @@ callPackage ./generic.nix args {
     "--with-stream_quic_module"
   ];
 
-  version = "1.23.0-quic";
+  version = "1.23.1-quic";
 }
diff --git a/pkgs/servers/rtsp-simple-server/default.nix b/pkgs/servers/rtsp-simple-server/default.nix
index b9ad0a3b51885..80cdf08ab9061 100644
--- a/pkgs/servers/rtsp-simple-server/default.nix
+++ b/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rtsp-simple-server";
-  version = "0.17.17";
+  version = "0.19.3";
 
   src = fetchFromGitHub {
     owner = "aler9";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-JHqD9/meOOqR5Uds03/YbhfTVm3QApM64oydB0VqTxM=";
+    hash = "sha256-nIxh6mbpkM5vX0S2ze8ylfEP1B07/DaqjoF8jDirJb8=";
   };
 
-  vendorSha256 = "sha256-8ULyCg36yVSM2En82ZiB+CLak1vQPykgs/i2mNhgebg=";
+  vendorSha256 = "sha256-zz2RLmljfOw5DtQuFkfS47yHq/bWMJzmmJf+PBlPJJQ=";
 
   # Tests need docker
   doCheck = false;
diff --git a/pkgs/shells/bash/bash-completion/default.nix b/pkgs/shells/bash/bash-completion/default.nix
index 75ded461ea63a..d73afa7e2a972 100644
--- a/pkgs/shells/bash/bash-completion/default.nix
+++ b/pkgs/shells/bash/bash-completion/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   # - ignore test_screen because it assumes vt terminals exist
   checkPhase = ''
     pytest . \
-      ${lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) "--ignore=test/t/test_gcc.py"} \
+      ${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \
       --ignore=test/t/test_chsh.py \
       --ignore=test/t/test_ether_wake.py \
       --ignore=test/t/test_ifdown.py \
diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix
index 7dfbb14eec65a..e5187658eeb9d 100644
--- a/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spaceship-prompt";
-  version = "3.16.4";
+  version = "3.16.7";
 
   src = fetchFromGitHub {
     owner = "denysdovhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4G1+K6ENLwChtivR7Ura0vl6Ph9Wae3SOXCW1pNbgHI=";
+    sha256 = "sha256-dMP7mDzb0xLCP2l9j4SOP47bcpuBNSoXsDecVOvZaL8=";
   };
 
   strictDeps = true;
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 871aed59e35e5..73030e7d941e8 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -178,7 +178,7 @@ let
                             # Except when:
                             #    - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries.
                             #    - static armv7l, where compilation fails.
-                            !((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic)
+                            !(stdenv.hostPlatform.isAarch && stdenv.hostPlatform.isStatic)
                           then supportedHardeningFlags
                           else lib.remove "pie" supportedHardeningFlags;
   enabledHardeningOptions =
diff --git a/pkgs/tools/X11/caffeine-ng/default.nix b/pkgs/tools/X11/caffeine-ng/default.nix
index 85f196b460eae..ea8e5b389e482 100644
--- a/pkgs/tools/X11/caffeine-ng/default.nix
+++ b/pkgs/tools/X11/caffeine-ng/default.nix
@@ -1,53 +1,85 @@
-{ gdk-pixbuf, glib, gobject-introspection, gtk3, lib, libnotify,
-  procps, xset, xautolock, xscreensaver, python3Packages, wrapGAppsHook
+{ buildPythonApplication
+, fetchPypi
+, gobject-introspection
+, gtk3
+, lib
+, libappindicator-gtk3
+, libnotify
+, click
+, dbus-python
+, ewmh
+, pulsectl
+, pygobject3
+, pyxdg
+, setproctitle
+, python3
+, procps
+, xset
+, xautolock
+, xscreensaver
+, xfce
+, glib
+, setuptools-scm
+, wrapGAppsHook
 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  click_7 = click.overridePythonAttrs (old: rec {
+    version = "7.1.2";
+    src = old.src.override {
+      inherit version;
+      sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
+    };
+  });
+in buildPythonApplication rec {
   pname = "caffeine-ng";
-  version = "3.5.1";
+  version = "4.0.2";
 
-  src = python3Packages.fetchPypi{
+  src = fetchPypi {
     inherit pname version;
-    sha256="0akzldqvxnqngpj1s6y2phgj7ch8wfm02j6z2drqvsbvaadw0jbm";
+    sha256 = "sha256-umIjXJ0et6Pi5Ejj96Q+ZhiKS+yj7bsgb4uQW6Ym6rU=";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook glib ];
+  nativeBuildInputs = [ wrapGAppsHook glib setuptools-scm ];
+
   buildInputs = [
-    gdk-pixbuf gobject-introspection libnotify gtk3
-    python3Packages.setuptools-scm
+    libappindicator-gtk3
+    libnotify
+    gobject-introspection
+    gtk3
   ];
-  pythonPath = with python3Packages; [
-    dbus-python docopt ewmh pygobject3 pyxdg
-    setproctitle pulsectl
+
+  pythonPath = [
+    click_7
+    dbus-python
+    ewmh
+    pulsectl
+    pygobject3
+    pyxdg
+    setproctitle
   ];
 
   doCheck = false; # There are no tests.
 
-  postPatch = ''
-    substituteInPlace caffeine/inhibitors.py \
-      --replace 'os.system("xset' 'os.system("${xset}/bin/xset' \
-      --replace 'os.system("xautolock' 'os.system("${xautolock}/bin/xautolock' \
-      --replace 'os.system("pgrep' 'os.system("${procps}/bin/pgrep' \
-      --replace 'os.system("xscreensaver-command' 'os.system("${xscreensaver}/bin/xscreensaver-command'
-  '';
-
   postInstall = ''
-    mkdir -p $out/share
     cp -r share $out/
-    cp -r caffeine/assets/icons $out/share/icons
+    cp -r caffeine/assets/icons $out/share/
+
     # autostart file
-    cp -r $out/lib/python*/site-packages/etc $out/etc/
+    ln -s $out/${python3.sitePackages}/etc $out/etc
+
     glib-compile-schemas --strict $out/share/glib-2.0/schemas
-    for i in $(find $out -name "*.desktop"); do
-      substituteInPlace $i --replace /usr $out
-    done
+
+    gappsWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ procps xautolock xscreensaver xfce.xfconf xset ]}
+    )
   '';
 
   meta = with lib; {
     mainProgram = "caffeine";
     maintainers = with maintainers; [ marzipankaiser ];
     description = "Status bar application to temporarily inhibit screensaver and sleep mode";
-    homepage = "https://github.com/caffeine-ng/caffeine-ng";
+    homepage = "https://codeberg.org/WhyNotHugo/caffeine-ng";
     license = licenses.gpl3;
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/admin/pgadmin/default.nix b/pkgs/tools/admin/pgadmin/default.nix
index 4813cd843647f..9d7fa718a4f30 100644
--- a/pkgs/tools/admin/pgadmin/default.nix
+++ b/pkgs/tools/admin/pgadmin/default.nix
@@ -110,17 +110,7 @@ pythonPackages.buildPythonApplication rec {
     patchShebangs .
 
     # relax dependencies
-    substituteInPlace requirements.txt \
-      --replace "eventlet==0.33.0" "eventlet>=0.33.0" \
-      --replace "psycopg2==2.9.*" "psycopg2>=2.9" \
-      --replace "cryptography==3.*" "cryptography>=3.0" \
-      --replace "requests==2.25.*" "requests>=2.25.0" \
-      --replace "boto3==1.20.*" "boto3>=1.20" \
-      --replace "botocore==1.23.*" "botocore>=1.23" \
-      --replace "pytz==2021.*" "pytz" \
-      --replace "Werkzeug==2.0.3" "werkzeug>=2.*" \
-      --replace "azure-identity==1.9.0" "azure-identity==1.*" \
-      --replace "azure-mgmt-resource==21.0.0" "azure-mgmt-resource==21.*"
+    sed 's|==|>=|g' -i requirements.txt
     # don't use Server Mode (can be overridden later)
     substituteInPlace pkg/pip/setup_pip.py \
       --replace "req = req.replace('psycopg2', 'psycopg2-binary')" "req = req" \
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index e9476b3d84a0f..fef8750085efd 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.19.0";
+  version = "2.20.0";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-0MZw0sETo8wMqSNInyy1NE+M06Wo9o1NZJGEBZZN9Jk=";
+    sha256 = "sha256-02YPLWuwMBvjIrkkZWlOmoASJ0El0YcQhVnt8wfpMaY=";
   };
 
-  vendorSha256 = "sha256-J10C8YbTeQMF815k+IbpdX8BEsCwNB/4VwQWliHQQto=";
+  vendorSha256 = "sha256-CJZiItzpk5vQBeKvarfHFsW2ek2yn7z6+CAlDPXdNyI=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index d12b6ecf6606c..72a72b34373cf 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, python3Packages, docutils, help2man, installShellFiles
-, abootimg, acl, apksigner, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
+, abootimg, acl, apksigner, apktool, binutils-unwrapped-all-targets, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
 , e2fsprogs, enjarify, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
 , gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, ocaml, oggvideotools, openssh, openssl, pdftk, pgpdump, poppler_utils, procyon, qemu, R
 , radare2, sng, sqlite, squashfsTools, tcpdump, ubootTools, odt2txt, unzip, wabt, xmlbeans, xxd, xz, zip, zstd
@@ -44,7 +44,7 @@ python3Packages.buildPythonApplication rec {
   #
   # Still missing these tools: docx2txt lipo otool r2pipe
   pythonPath = [
-      binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
+      binutils-unwrapped-all-targets bzip2 colordiff coreutils cpio db diffutils
       e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
       libarchive lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
       xz zip zstd
diff --git a/pkgs/tools/misc/sfz/default.nix b/pkgs/tools/misc/sfz/default.nix
new file mode 100644
index 0000000000000..11b209a7cdabe
--- /dev/null
+++ b/pkgs/tools/misc/sfz/default.nix
@@ -0,0 +1,25 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sfz";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "weihanglo";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-XY1xsQgXzmX8jmDDLIivXeW9MsNA/pVtYapcBkBhldE=";
+  };
+
+  cargoSha256 = "sha256-w3HKnCAPSVgx4mqNB7Q0sMCDC4U+4fdIUUwJFz19XdI=";
+
+  # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple static file serving command-line tool written in Rust";
+    homepage = "https://github.com/weihanglo/sfz";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ dit7ya ];
+  };
+}
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 5e788638e6e99..085cde3e75eb8 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -1,8 +1,10 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
 , openssl
+, Security
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -20,7 +22,8 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security ];
 
   # Disabled because they currently fail
   doCheck = false;
@@ -30,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lycheeverse/lychee";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ tuxinaut ];
-    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/pathvector/default.nix b/pkgs/tools/networking/pathvector/default.nix
index 91cb5489f0295..62b3cc2aac934 100644
--- a/pkgs/tools/networking/pathvector/default.nix
+++ b/pkgs/tools/networking/pathvector/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pathvector";
-  version = "5.12.0";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "natesales";
     repo = "pathvector";
     rev = "v${version}";
-    sha256 = "sha256-RdUZkkALEdyq+YKtgGE/P8eTX2v3fdYHF1wpZEyfkgY=";
+    sha256 = "sha256-2fCkQVpIcZjKA7URvZyt0DdMyUndLFv1BhsANThghKs=";
   };
 
-  vendorSha256 = "sha256-oxLMfmHLaOQwpRYwnHRQY0mIV5/fZ65RDgKVs0Kzd2Q=";
+  vendorSha256 = "sha256-bqfYILEGgbnla7EUrzjIO2mMAuL6e4WI2OHUwOr6i+g=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/tools/networking/phodav/default.nix b/pkgs/tools/networking/phodav/default.nix
index 9b1c3d005b975..284159dfc9abf 100644
--- a/pkgs/tools/networking/phodav/default.nix
+++ b/pkgs/tools/networking/phodav/default.nix
@@ -1,9 +1,17 @@
-{ lib, stdenv, fetchurl
-, pkg-config, libsoup, meson, ninja }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, pkg-config
+, libsoup
+, meson
+, ninja
+}:
 
 let
   version = "2.5";
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "phodav";
   inherit version;
 
@@ -12,6 +20,17 @@ in stdenv.mkDerivation rec {
     sha256 = "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/phodav/-/commit/ae9ac98c1b3db26070111661aba02594c62d2cef.patch";
+      sha256 = "sha256-jIHG6aRqG00Q6aIQsn4tyQdy/b6juW6QiUPXLmIc3TE=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/phodav/-/commit/560ab5ca4f836d82bddbbe66ea0f7c6b4cab6b3b.patch";
+      sha256 = "sha256-2gP579qhEkp7fQ8DBGYbZcjb2Tr+WpJs30Z7lsQaz2g=";
+    })
+  ];
+
   mesonFlags = [
     "-Davahi=disabled"
     "-Dsystemd=disabled"
@@ -19,6 +38,8 @@ in stdenv.mkDerivation rec {
     "-Dudev=disabled"
   ];
 
+  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lintl";
+
   nativeBuildInputs = [ libsoup pkg-config meson ninja ];
 
   outputs = [ "out" "dev" "lib" ];
@@ -27,7 +48,7 @@ in stdenv.mkDerivation rec {
     description = "WebDav server implementation and library using libsoup";
     homepage = "https://wiki.gnome.org/phodav";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ wegank ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index 52fa43340b632..f9c33298fc316 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "stunnel";
-  version = "5.64";
+  version = "5.65";
 
   src = fetchurl {
     url    = "https://www.stunnel.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-7r5T7RFrpDsueGdisMK5FRHnt0hXrUdlgk5xmeb6+IM=";
-    # please use the contents of "https://www.stunnel.org/downloads/${name}.tar.gz.sha256",
+    sha256 = "60c500063bd1feff2877f5726e38278c086f96c178f03f09d264a2012d6bf7fc";
+    # please use the contents of "https://www.stunnel.org/downloads/stunnel-${version}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
 
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index e0fdbdff0b3af..99fc6565b1ceb 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -1,8 +1,9 @@
 { lib, stdenv, fetchurl, gettext, pkg-config, perlPackages
 , libidn2, zlib, pcre, libuuid, libiconv, libintl
 , python3, lzip
-, libpsl ? null
-, openssl ? null }:
+, withLibpsl ? false, libpsl
+, withOpenssl ? true, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "wget";
@@ -31,12 +32,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gettext pkg-config perlPackages.perl lzip libiconv libintl ];
   buildInputs = [ libidn2 zlib pcre libuuid ]
     ++ lib.optionals doCheck [ perlPackages.IOSocketSSL perlPackages.LWP python3 ]
-    ++ lib.optional (openssl != null) openssl
-    ++ lib.optional (libpsl != null) libpsl
+    ++ lib.optional withOpenssl openssl
+    ++ lib.optional withLibpsl libpsl
     ++ lib.optional stdenv.isDarwin perlPackages.perl;
 
   configureFlags = [
-    (lib.withFeatureAs (openssl != null) "ssl" "openssl")
+    (lib.withFeatureAs withOpenssl "ssl" "openssl")
   ] ++ lib.optionals stdenv.isDarwin [
     # https://lists.gnu.org/archive/html/bug-wget/2021-01/msg00076.html
     "--without-included-regex"
@@ -46,18 +47,14 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for retrieving files using HTTP, HTTPS, and FTP";
-
     longDescription =
       '' GNU Wget is a free software package for retrieving files using HTTP,
          HTTPS and FTP, the most widely-used Internet protocols.  It is a
          non-interactive commandline tool, so it may easily be called from
          scripts, cron jobs, terminals without X-Windows support, etc.
       '';
-
     license = licenses.gpl3Plus;
-
     homepage = "https://www.gnu.org/software/wget/";
-
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/package-management/wapm/cli/default.nix b/pkgs/tools/package-management/wapm/cli/default.nix
new file mode 100644
index 0000000000000..b71bb166ea8b6
--- /dev/null
+++ b/pkgs/tools/package-management/wapm/cli/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, libiconv
+, openssl
+, rustPlatform
+, Security
+, stdenv
+, SystemConfiguration
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wapm-cli";
+  version = "0.5.5";
+
+  src = fetchFromGitHub {
+    owner = "wasmerio";
+    repo = "wapm-cli";
+    rev = "v${version}";
+    sha256 = "sha256-BKBd1tJwV4VOjRnAx/spQy3LIXzujrO2SS5eA1uybNA=";
+  };
+
+  cargoSha256 = "sha256-dv04AXOnzizjq/qx3qy524ylQHgE4gIBgeYI+2IRTug=";
+
+  buildInputs = [ libiconv openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A package manager for WebAssembly modules";
+    homepage = "https://docs.wasmer.io/ecosystem/wapm";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.lucperkins ];
+  };
+}
diff --git a/pkgs/tools/security/ssh-to-age/default.nix b/pkgs/tools/security/ssh-to-age/default.nix
index 7342c34ee3679..d6a26dc957f5e 100644
--- a/pkgs/tools/security/ssh-to-age/default.nix
+++ b/pkgs/tools/security/ssh-to-age/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-age";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-age";
     rev = version;
-    sha256 = "sha256-ccwCHu6RlWqMnt5nBy54bVEzfE9/3PEL4C5LnYTtnwU=";
+    sha256 = "sha256-sjiOmIoFyl1Kr4RKg1TqXJNIq2/HF91oxDLtRDa+eWw=";
   };
 
-  vendorSha256 = "sha256-jiFPcdWnAk54RJv4mHB3A+5tqKzqitfsiRXYZLa3Gu0=";
+  vendorSha256 = "sha256-Xi5aJAYgbtrDq7KBAfZR1LT5/jbslwEa70qaFqW4vcQ=";
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/tools/system/proot/default.nix b/pkgs/tools/system/proot/default.nix
index d11cd8382c9ea..1d5e950e4e61b 100644
--- a/pkgs/tools/system/proot/default.nix
+++ b/pkgs/tools/system/proot/default.nix
@@ -1,20 +1,19 @@
 { lib, stdenv, fetchFromGitHub
 , talloc
 , pkg-config
-, libarchive
 , git
 , ncurses
 , docutils, swig, python3, coreutils, enablePython ? true }:
 
 stdenv.mkDerivation rec {
   pname = "proot";
-  version = "5.3.0";
+  version = "5.3.1";
 
   src = fetchFromGitHub {
     repo = "proot";
     owner = "proot-me";
     rev = "v${version}";
-    sha256 = "sha256-89d1a5QBusra0vd3Ph0lQalXrblBwogi6bNgvvpQL+Q=";
+    sha256 = "sha256-uN31wDJjuQmDWeHaZHHQpmXQeQ/TYeS9HNYWEC0shaA=";
   };
 
   postPatch = ''
@@ -24,7 +23,7 @@ stdenv.mkDerivation rec {
     sed -i /CROSS_COMPILE/d src/GNUmakefile
   '';
 
-  buildInputs = [ ncurses libarchive talloc ] ++ lib.optional enablePython python3;
+  buildInputs = [ ncurses talloc ] ++ lib.optional enablePython python3;
   nativeBuildInputs = [ pkg-config docutils ] ++ lib.optional enablePython swig;
 
   enableParallelBuilding = true;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d0b63d2f70ab..556224f175aa6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4443,6 +4443,8 @@ with pkgs;
 
   s2png = callPackage ../tools/graphics/s2png { };
 
+  sfz = callPackage ../tools/misc/sfz { };
+
   shab = callPackage ../tools/text/shab { };
 
   sheldon = callPackage ../tools/misc/sheldon { };
@@ -5679,7 +5681,9 @@ with pkgs;
 
   kramdown-asciidoc = callPackage ../tools/typesetting/kramdown-asciidoc { };
 
-  lychee = callPackage ../tools/networking/lychee { };
+  lychee = callPackage ../tools/networking/lychee {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   magic-vlsi = callPackage ../applications/science/electronics/magic-vlsi { };
 
@@ -12046,9 +12050,7 @@ with pkgs;
 
   webalizer = callPackage ../tools/networking/webalizer { };
 
-  wget = callPackage ../tools/networking/wget {
-    libpsl = null;
-  };
+  wget = callPackage ../tools/networking/wget { };
 
   wget2 = callPackage ../tools/networking/wget2 {
     # update breaks grub2
@@ -15078,6 +15080,10 @@ with pkgs;
 
   trealla = callPackage ../development/interpreters/trealla { };
 
+  wapm-cli = callPackage ../tools/package-management/wapm/cli {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
   wasm = ocamlPackages.wasm;
 
   wasm3 = callPackage ../development/interpreters/wasm3 { };
@@ -15913,7 +15919,6 @@ with pkgs;
 
   flow = callPackage ../development/tools/analysis/flow {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
-    ocamlPackages = ocaml-ng.ocamlPackages_4_12;
   };
 
   fly = callPackage ../development/tools/continuous-integration/fly { };
@@ -17378,6 +17383,8 @@ with pkgs;
 
   croaring = callPackage ../development/libraries/croaring { };
 
+  crossguid = callPackage ../development/libraries/crossguid { };
+
   cryptopp = callPackage ../development/libraries/crypto++ { };
 
   cryptominisat = callPackage ../applications/science/logic/cryptominisat { };
@@ -18009,6 +18016,8 @@ with pkgs;
   # A GMP fork
   mpir = callPackage ../development/libraries/mpir {};
 
+  gl3w = callPackage ../development/libraries/gl3w { };
+
   gnatcoll-core = callPackage ../development/libraries/ada/gnatcoll/core.nix { };
 
   # gnatcoll-bindings repository
@@ -20551,6 +20560,8 @@ with pkgs;
 
   place-cursor-at = haskell.lib.compose.justStaticExecutables haskellPackages.place-cursor-at;
 
+  platform-folders = callPackage ../development/libraries/platform-folders { };
+
   plib = callPackage ../development/libraries/plib { };
 
   poco = callPackage ../development/libraries/poco { };
@@ -20830,6 +20841,9 @@ with pkgs;
   rtrlib = callPackage ../development/libraries/rtrlib { };
 
   kissfft = callPackage ../development/libraries/kissfft { };
+  kissfftFloat = kissfft.override {
+    datatype = "float";
+  };
 
   lambdabot = callPackage ../development/tools/haskell/lambdabot {
     haskellLib = haskell.lib.compose;
@@ -34320,7 +34334,7 @@ with pkgs;
 
   caffeWithCuda = caffe.override { cudaSupport = true; };
 
-  caffeine-ng = callPackage ../tools/X11/caffeine-ng {};
+  caffeine-ng = python3Packages.callPackage ../tools/X11/caffeine-ng {};
 
   cntk = callPackage ../applications/science/math/cntk {
     stdenv = gcc7Stdenv;
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 8856d41232100..c6b36677875eb 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -108,7 +108,7 @@ in {
         # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
         # the oldest ghc with aarch64-darwin support is 8.10.5
         # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
-        if stdenv.isAarch64 || stdenv.isAarch32 then
+        if stdenv.hostPlatform.isAarch then
           packages.ghc8107BinaryMinimal
         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
           # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
@@ -127,7 +127,7 @@ in {
       bootPkgs =
         # aarch64 ghc8107Binary exceeds max output size on hydra
         # the oldest ghc with aarch64-darwin support is 8.10.5
-        if stdenv.isAarch64 || stdenv.isAarch32 then
+        if stdenv.hostPlatform.isAarch then
           packages.ghc8107BinaryMinimal
         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
           packages.ghc8107
@@ -141,7 +141,7 @@ in {
     ghc923 = callPackage ../development/compilers/ghc/9.2.3.nix {
       bootPkgs =
         # aarch64 ghc8107Binary exceeds max output size on hydra
-        if stdenv.isAarch64 || stdenv.isAarch32 then
+        if stdenv.hostPlatform.isAarch then
           packages.ghc8107BinaryMinimal
         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
           packages.ghc8107