about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-07-19 18:01:04 +0000
committerGitHub <noreply@github.com>2023-07-19 18:01:04 +0000
commit2c5b83e75c8758ecb2950d0d38203ca3e959a8b6 (patch)
treee1960b08de6576d2933b42622a7f88547d8e4984 /pkgs/applications
parentb110c513b2892570129834112616856104dce540 (diff)
parentc58bd8261fde336b04fb69c57171d33c7342f8a5 (diff)
downloadnixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar.gz
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar.bz2
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar.lz
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar.xz
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.tar.zst
nixlib-2c5b83e75c8758ecb2950d0d38203ca3e959a8b6.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/applications')
-rwxr-xr-xpkgs/applications/audio/psst/update.sh7
-rwxr-xr-xpkgs/applications/audio/squeezelite/update.sh3
-rw-r--r--pkgs/applications/audio/tenacity/default.nix6
-rw-r--r--pkgs/applications/blockchains/solana-validator/default.nix8
-rw-r--r--pkgs/applications/blockchains/solana-validator/pin.json4
-rwxr-xr-x[-rw-r--r--]pkgs/applications/blockchains/solana-validator/update.sh18
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/src.json4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/update.py12
-rw-r--r--pkgs/applications/editors/jetbrains/JetbrainsRemoteDev.patch17
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix14
-rw-r--r--pkgs/applications/editors/jetbrains/linux.nix11
-rw-r--r--pkgs/applications/editors/jetbrains/plugins/plugins.json82
-rw-r--r--pkgs/applications/editors/jetbrains/versions.json72
-rwxr-xr-xpkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/update.sh8
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json170
-rw-r--r--pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix28
-rw-r--r--pkgs/applications/emulators/retroarch/wrapper.nix18
-rw-r--r--pkgs/applications/misc/collision/collision-shards.nix42
-rw-r--r--pkgs/applications/misc/collision/default.nix50
-rw-r--r--pkgs/applications/misc/collision/make.patch20
-rw-r--r--pkgs/applications/misc/tandoor-recipes/common.nix4
-rw-r--r--pkgs/applications/misc/tandoor-recipes/frontend.nix2
-rwxr-xr-xpkgs/applications/misc/tandoor-recipes/update.sh7
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/keytar/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/keytar/pin.json2
-rwxr-xr-xpkgs/applications/networking/instant-messengers/element/keytar/update.sh4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/seshat/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/element/seshat/pin.json2
-rwxr-xr-xpkgs/applications/networking/instant-messengers/element/seshat/update.sh4
-rwxr-xr-xpkgs/applications/networking/instant-messengers/element/update.sh4
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/default.nix9
-rw-r--r--pkgs/applications/networking/misc/zammad/source.json2
-rw-r--r--pkgs/applications/version-management/gitolite/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
38 files changed, 411 insertions, 249 deletions
diff --git a/pkgs/applications/audio/psst/update.sh b/pkgs/applications/audio/psst/update.sh
index 9671ccab0262..470068755df0 100755
--- a/pkgs/applications/audio/psst/update.sh
+++ b/pkgs/applications/audio/psst/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix wget nix-prefetch-github jq coreutils
+#!nix-shell -i bash -p wget nix-prefetch-github jq coreutils
 
 # shellcheck shell=bash
 
@@ -27,15 +27,12 @@ fi
 version="unstable-$(date +%F)"
 
 # Sources
-src_hash=$(nix-prefetch-github jpochyla psst --rev "$rev" | jq -r .sha256)
+src_hash=$(nix-prefetch-github jpochyla psst --rev "$rev" | jq -r .hash)
 
 # Cargo.lock
 src="https://raw.githubusercontent.com/jpochyla/psst/$rev"
 wget "${TOKEN_ARGS[@]}" "$src/Cargo.lock" -O Cargo.lock
 
-# Use friendlier hashes
-src_hash=$(nix hash to-sri --type sha256 "$src_hash")
-
 sed -i -E -e "s#version = \".*\"#version = \"$version\"#" default.nix
 sed -i -E -e "s#rev = \".*\"#rev = \"$rev\"#" default.nix
 sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" default.nix
diff --git a/pkgs/applications/audio/squeezelite/update.sh b/pkgs/applications/audio/squeezelite/update.sh
index d12213f83482..0a53ef988155 100755
--- a/pkgs/applications/audio/squeezelite/update.sh
+++ b/pkgs/applications/audio/squeezelite/update.sh
@@ -12,8 +12,7 @@ if [[ "$currentVersion" == "$latestVersion" ]]; then
   exit 0
 fi
 
-srcHash=$(nix-prefetch-github ralph-irving squeezelite --rev "$latestRev" | jq -r .sha256)
-srcHash=$(nix hash to-sri --type sha256 "$srcHash")
+srcHash=$(nix-prefetch-github ralph-irving squeezelite --rev "$latestRev" | jq -r .hash)
 
 
 update-source-version squeezelite "$latestVersion" "$srcHash" --rev="${latestRev}"
diff --git a/pkgs/applications/audio/tenacity/default.nix b/pkgs/applications/audio/tenacity/default.nix
index 8e6ab17fbdae..04dd28e0b5c9 100644
--- a/pkgs/applications/audio/tenacity/default.nix
+++ b/pkgs/applications/audio/tenacity/default.nix
@@ -49,14 +49,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tenacity";
-  version = "1.3-beta2";
+  version = "1.3.1";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "tenacityteam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9gWoqFa87neIvRnezWI3RyCAOU4wKEHPn/Hgj3/fol0=";
+    sha256 = "sha256-wesnay+UQiPSDaRuSo86MgHdElN4s0rPIvokZhKM7GI=";
   };
 
   postPatch = ''
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    rm $out/audacity
+    rm $out/tenacity
     wrapProgram "$out/bin/tenacity" \
       --suffix AUDACITY_PATH : "$out/share/tenacity" \
       --suffix AUDACITY_MODULES_PATH : "$out/lib/tenacity/modules" \
diff --git a/pkgs/applications/blockchains/solana-validator/default.nix b/pkgs/applications/blockchains/solana-validator/default.nix
index 897968e25063..d91da1db8fe2 100644
--- a/pkgs/applications/blockchains/solana-validator/default.nix
+++ b/pkgs/applications/blockchains/solana-validator/default.nix
@@ -42,8 +42,8 @@
 let
   pinData = lib.importJSON ./pin.json;
   version = pinData.version;
-  sha256 = pinData.sha256;
-  cargoSha256 = pinData.cargoSha256;
+  hash = pinData.hash;
+  cargoHash = pinData.cargoHash;
 in
 rustPlatform.buildRustPackage rec {
   pname = "solana-validator";
@@ -53,11 +53,11 @@ rustPlatform.buildRustPackage rec {
     owner = "solana-labs";
     repo = "solana";
     rev = "v${version}";
-    inherit sha256;
+    inherit hash;
   };
 
   # partly inspired by https://github.com/obsidiansystems/solana-bridges/blob/develop/default.nix#L29
-  inherit cargoSha256;
+  inherit cargoHash;
 
   cargoBuildFlags = builtins.map (n: "--bin=${n}") solanaPkgs;
 
diff --git a/pkgs/applications/blockchains/solana-validator/pin.json b/pkgs/applications/blockchains/solana-validator/pin.json
index 175cd79ad1bc..4747c3e93434 100644
--- a/pkgs/applications/blockchains/solana-validator/pin.json
+++ b/pkgs/applications/blockchains/solana-validator/pin.json
@@ -1,5 +1,5 @@
 {
   "version": "1.10.35",
-  "sha256": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
-  "cargoSha256": "sha256-idlu9qkh2mrF6MxstRcvemKrtTGNY/InBnIDqRvDQPs"
+  "hash": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
+  "cargoHash": "sha256-idlu9qkh2mrF6MxstRcvemKrtTGNY/InBnIDqRvDQPs"
 }
diff --git a/pkgs/applications/blockchains/solana-validator/update.sh b/pkgs/applications/blockchains/solana-validator/update.sh
index ffd8b0010cc2..cb8aa43ac61e 100644..100755
--- a/pkgs/applications/blockchains/solana-validator/update.sh
+++ b/pkgs/applications/blockchains/solana-validator/update.sh
@@ -1,9 +1,9 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
+#! nix-shell -i oil -p jq moreutils nix-prefetch-github gnused
 
 # TODO set to `verbose` or `extdebug` once implemented in oil
 shopt --set xtrace
-# we need failures inside of command subs to get the correct cargoSha256
+# we need failures inside of command subs to get the correct cargoHash
 shopt --unset inherit_errexit
 
 const directory = $(dirname $0 | xargs realpath)
@@ -11,23 +11,23 @@ const owner = "solana-labs"
 const repo = "solana"
 const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
   jq -r '.tag_name')
-const latest_version = $(echo $latest_rev | sd 'v' '')
+const latest_version = $(echo ${latest_rev#v})
 const current_version = $(jq -r '.version' $directory/pin.json)
 if ("$latest_version" === "$current_version") {
   echo "solana is already up-to-date"
   return 0
 } else {
   const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
-  const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
+  const tarball_hash = $(echo $tarball_meta | jq -r '.hash')
 
   jq ".version = \"$latest_version\" | \
-      .\"sha256\" = \"$tarball_hash\" | \
-      .\"cargoSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
+      .\"hash\" = \"$tarball_hash\" | \
+      .\"cargoHash\" = \"\"" $directory/pin.json | sponge $directory/pin.json
 
-  const new_cargo_sha256 = $(nix-build -A solana-testnet 2>&1 | \
+  const new_cargo_hash = $(nix-build -A solana-validator 2>&1 | \
     tail -n 2 | \
     head -n 1 | \
-    sd '\s+got:\s+' '')
+    sed 's/\s*got:\s*//')
 
-  jq ".cargoSha256 = \"$new_cargo_sha256\"" $directory/pin.json | sponge $directory/pin.json
+  jq ".cargoHash = \"$new_cargo_hash\"" $directory/pin.json | sponge $directory/pin.json
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
index 9825ed0834a2..3fa9f1b4f974 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
@@ -55,7 +55,7 @@ let
       rm -r $out/lib
     '';
 
-    inherit (srcMeta) cargoSha256;
+    inherit (srcMeta) cargoHash;
   };
 
 in symlinkJoin {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/src.json b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/src.json
index 6aa6fee1830a..b3ac6a030644 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/src.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/src.json
@@ -3,8 +3,8 @@
     "owner": "emacs-tree-sitter",
     "repo": "elisp-tree-sitter",
     "rev": "909717c685ff5a2327fa2ca8fb8a25216129361c",
-    "sha256": "LrakDpP3ZhRQqz47dPcyoQnu5lROdaNlxGaQfQT6u+k="
+    "hash": "sha256-LrakDpP3ZhRQqz47dPcyoQnu5lROdaNlxGaQfQT6u+k="
   },
   "version": "0.18.0",
-  "cargoSha256": "sha256-IRCZqszBkGF8anF/kpcPOzHdOP4lAtJBAp6FS5tAOx8="
+  "cargoHash": "sha256-IRCZqszBkGF8anF/kpcPOzHdOP4lAtJBAp6FS5tAOx8="
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/update.py b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/update.py
index 082602fcc4fd..a144cb77be92 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/update.py
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/update.py
@@ -51,12 +51,12 @@ def get_src(tag_name: str) -> Dict[str, str]:
     )
     src = json.loads(p.stdout)
 
-    fields = ["owner", "repo", "rev", "sha256"]
+    fields = ["owner", "repo", "rev", "hash"]
 
     return {f: src[f] for f in fields}
 
 
-def get_cargo_sha256(drv_path: str):
+def get_cargo_hash(drv_path: str):
     # Note: No check=True since we expect this command to fail
     p = subprocess.run(["nix-store", "-r", drv_path], stderr=subprocess.PIPE)
 
@@ -74,7 +74,7 @@ def get_cargo_sha256(drv_path: str):
         if m:
             return m.group(1)
 
-    raise ValueError("Could not extract actual sha256 hash: ", stderr)
+    raise ValueError("Could not extract actual hash: ", stderr)
 
 
 if __name__ == "__main__":
@@ -102,20 +102,20 @@ if __name__ == "__main__":
           nativeBuildInputs = [ clang ];
           src = fetchFromGitHub (lib.importJSON %s);
           sourceRoot = "source/core";
-          cargoSha256 = lib.fakeSha256;
+          cargoHash = lib.fakeHash;
         }
         """
             % (tag_name, f.name),
         )
 
-    cargo_sha256 = get_cargo_sha256(drv_path)
+    cargo_hash = get_cargo_hash(drv_path)
 
     with open(join(cwd, "src.json"), mode="w") as f:
         json.dump(
             {
                 "src": src,
                 "version": tag_name,
-                "cargoSha256": cargo_sha256,
+                "cargoHash": cargo_hash,
             },
             f,
             indent=2,
diff --git a/pkgs/applications/editors/jetbrains/JetbrainsRemoteDev.patch b/pkgs/applications/editors/jetbrains/JetbrainsRemoteDev.patch
new file mode 100644
index 000000000000..e525512fe495
--- /dev/null
+++ b/pkgs/applications/editors/jetbrains/JetbrainsRemoteDev.patch
@@ -0,0 +1,17 @@
+--- a/plugins/remote-dev-server/bin/launcher.sh
++++ b/plugins/remote-dev-server/bin/launcher.sh
+@@ -327,6 +327,8 @@
+   REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=1
+ fi
+ 
++REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=0
++
+ if [ $REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS -eq 1 ]; then
+   SELFCONTAINED_LIBS="$REMOTE_DEV_SERVER_DIR/selfcontained/lib"
+   if [ ! -d "$SELFCONTAINED_LIBS" ]; then
+@@ -568,3 +570,5 @@
+     "$LAUNCHER" "$STARTER_COMMAND" "$PROJECT_PATH" "$@"
+     ;;
+ esac
++
++unset REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index b78da5da3f1d..c3ab04c85011 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -46,7 +46,7 @@ let
           Enhancing productivity for every C and C++
           developer on Linux, macOS and Windows.
         '';
-        maintainers = with maintainers; [ edwtjo mic92 ];
+        maintainers = with maintainers; [ edwtjo mic92 tymscar ];
       };
     }).overrideAttrs (attrs: {
       nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ lib.optionals (stdenv.isLinux) [
@@ -141,7 +141,7 @@ let
           The new IDE extends the IntelliJ platform with the coding assistance
           and tool integrations specific for the Go language
         '';
-        maintainers = [ ];
+        maintainers = with maintainers; [ tymscar ];
       };
     }).overrideAttrs (attrs: {
       postFixup = (attrs.postFixup or "") + lib.optionalString stdenv.isLinux ''
@@ -172,7 +172,7 @@ let
           with JUnit, TestNG, popular SCMs, Ant & Maven. Also known
           as IntelliJ.
         '';
-        maintainers = with maintainers; [ edwtjo gytis-ivaskevicius steinybot AnatolyPopov ];
+        maintainers = with maintainers; [ edwtjo gytis-ivaskevicius steinybot AnatolyPopov tymscar ];
         platforms = ideaPlatforms;
       };
     });
@@ -207,7 +207,7 @@ let
           with on-the-fly code analysis, error prevention and
           automated refactorings for PHP and JavaScript code.
         '';
-        maintainers = with maintainers; [ dritter ];
+        maintainers = with maintainers; [ dritter tymscar ];
       };
     });
 
@@ -232,7 +232,7 @@ let
           providing you almost everything you need for your comfortable
           and productive development!
         '';
-        maintainers = with maintainers; [ genericnerdyusername ];
+        maintainers = with maintainers; [ genericnerdyusername tymscar ];
       };
     }).overrideAttrs (finalAttrs: previousAttrs: lib.optionalAttrs cythonSpeedup {
       buildInputs = with python3.pkgs; [ python3 setuptools ];
@@ -286,7 +286,7 @@ let
         homepage = "https://www.jetbrains.com/ruby/";
         inherit description license platforms;
         longDescription = description;
-        maintainers = with maintainers; [ edwtjo ];
+        maintainers = with maintainers; [ edwtjo tymscar ];
       };
     });
 
@@ -302,7 +302,7 @@ let
           and CSS with on-the-fly code analysis, error prevention and
           automated refactorings for JavaScript code.
         '';
-        maintainers = with maintainers; [ abaldeau ];
+        maintainers = with maintainers; [ abaldeau tymscar ];
       };
     });
 
diff --git a/pkgs/applications/editors/jetbrains/linux.nix b/pkgs/applications/editors/jetbrains/linux.nix
index 1c00e408aeac..efc939d0324f 100644
--- a/pkgs/applications/editors/jetbrains/linux.nix
+++ b/pkgs/applications/editors/jetbrains/linux.nix
@@ -84,6 +84,10 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
       patchelf --set-interpreter "$interpreter" bin/fsnotifier
       munge_size_hack bin/fsnotifier $target_size
     fi
+
+    if [ -d "plugins/remote-dev-server" ]; then
+      patch -p1 < ${./JetbrainsRemoteDev.patch}
+    fi
   '';
 
   installPhase = ''
@@ -99,7 +103,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
     jdk=${jdk.home}
     item=${desktopItem}
 
-    makeWrapper "$out/$pname/bin/${loName}.sh" "$out/bin/${pname}" \
+    wrapProgram  "$out/$pname/bin/${loName}.sh" \
       --prefix PATH : "$out/libexec/${pname}:${lib.makeBinPath [ jdk coreutils gnugrep which git python3 ]}" \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([
         # Some internals want libstdc++.so.6
@@ -114,11 +118,14 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
       --set ${hiName}_JDK "$jdk" \
       --set ${hiName}_VM_OPTIONS ${vmoptsFile}
 
+    ln -s "$out/$pname/bin/${loName}.sh" $out/bin/$pname
+    echo -e '#!/usr/bin/env bash\n'"$out/$pname/bin/remote-dev-server.sh"' "$@"' > $out/$pname/bin/remote-dev-server-wrapped.sh
+    chmod +x $out/$pname/bin/remote-dev-server-wrapped.sh
+    ln -s "$out/$pname/bin/remote-dev-server-wrapped.sh" $out/bin/$pname-remote-dev-server
     ln -s "$item/share/applications" $out/share
 
     runHook postInstall
   '';
-
 } // lib.optionalAttrs (!(meta.license.free or true)) {
   preferLocalBuild = true;
 })
diff --git a/pkgs/applications/editors/jetbrains/plugins/plugins.json b/pkgs/applications/editors/jetbrains/plugins/plugins.json
index c480edde4162..3e4da5b02e4b 100644
--- a/pkgs/applications/editors/jetbrains/plugins/plugins.json
+++ b/pkgs/applications/editors/jetbrains/plugins/plugins.json
@@ -18,12 +18,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/164/275091/IdeaVim-2.1.0.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip"
       },
       "name": "ideavim"
@@ -65,12 +64,11 @@
       "builds": {
         "223.8836.1185": null,
         "231.9011.35": null,
-        "231.9161.29": "https://plugins.jetbrains.com/files/6981/351503/ini-231.9161.47.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/6981/351503/ini-231.9161.47.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/6981/351503/ini-231.9161.47.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip"
       },
       "name": "ini"
@@ -81,8 +79,8 @@
         "phpstorm"
       ],
       "builds": {
-        "231.9161.47": "https://plugins.jetbrains.com/files/7219/355564/Symfony_Plugin-2022.1.253.zip",
-        "231.9225.16": "https://plugins.jetbrains.com/files/7219/355564/Symfony_Plugin-2022.1.253.zip"
+        "231.9225.16": "https://plugins.jetbrains.com/files/7219/355564/Symfony_Plugin-2022.1.253.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/7219/355564/Symfony_Plugin-2022.1.253.zip"
       },
       "name": "symfony-support"
     },
@@ -92,8 +90,8 @@
         "phpstorm"
       ],
       "builds": {
-        "231.9161.47": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
-        "231.9225.16": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
+        "231.9225.16": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
       },
       "name": "php-annotations"
     },
@@ -129,12 +127,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/8182/329558/intellij-rust-0.4.194.5382-223.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/8182/359429/intellij-rust-0.4.198.5409-231.zip"
       },
       "name": "rust"
@@ -157,12 +154,11 @@
       "builds": {
         "223.8836.1185": null,
         "231.9011.35": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/8182/363621/intellij-rust-0.4.199.5413-231-beta.zip"
       },
       "name": "rust-beta"
@@ -178,10 +174,10 @@
         "webstorm"
       ],
       "builds": {
-        "231.9161.29": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip",
-        "231.9225.16": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip"
+        "231.9225.16": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/8554/326468/featuresTrainer-231.8770.66.zip"
       },
       "name": "ide-features-trainer"
     },
@@ -203,12 +199,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/8607/318851/NixIDEA-0.4.0.9.zip"
       },
       "name": "nixidea"
@@ -240,12 +235,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/10037/358812/CSVEditor-3.2.1-223.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/10037/358810/CSVEditor-3.2.1-231.zip"
       },
       "name": "csv-editor"
@@ -268,12 +262,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/12559/257029/keymap-eclipse-223.7571.125.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/12559/307825/keymap-eclipse-231.8109.91.zip"
       },
       "name": "eclipse-keymap"
@@ -296,12 +289,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/13017/257030/keymap-visualStudio-223.7571.125.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/13017/307831/keymap-visualStudio-231.8109.91.zip"
       },
       "name": "visual-studio-keymap"
@@ -324,12 +316,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "231.9011.35": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "231.9161.29": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "231.9161.40": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "231.9161.47": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "231.9225.12": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "231.9225.15": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "231.9225.16": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "231.9225.18": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "231.9225.21": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "231.9225.23": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
       },
       "name": "darcula-pitch-black"
@@ -350,15 +341,14 @@
         "webstorm"
       ],
       "builds": {
-        "223.8836.1185": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9011.35": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9225.12": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9225.15": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9225.16": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip",
-        "231.9225.23": "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip"
+        "223.8836.1185": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9011.35": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.12": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.15": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.16": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip",
+        "231.9225.23": "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip"
       },
       "name": "github-copilot"
     },
@@ -380,12 +370,11 @@
       "builds": {
         "223.8836.1185": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "231.9011.35": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "231.9161.29": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "231.9161.40": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "231.9161.47": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "231.9225.12": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "231.9225.15": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "231.9225.16": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "231.9225.18": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "231.9225.21": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "231.9225.23": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
       },
       "name": "netbeans-6-5-keymap"
@@ -401,11 +390,10 @@
     "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar": "sha256-eXInfAqY3yEZRXCAuv3KGldM1pNKEioNwPB0rIGgJFw=",
     "https://plugins.jetbrains.com/files/164/275091/IdeaVim-2.1.0.zip": "sha256-2dM/r79XT+1MHDeRAUnZw6WO3dmw7MZfx9alHmBqMk0=",
     "https://plugins.jetbrains.com/files/164/364022/IdeaVim-2.4.0-signed.zip": "sha256-aetarXrmK7EdYqLqAY0QNmi/djxDJnEyNTV1E0pay7Q=",
-    "https://plugins.jetbrains.com/files/17718/360520/github-copilot-intellij-1.2.13.2776.zip": "sha256-9KTWE7rudLZwxCEv5QNu/9rxA0o0GdQK4+oqkzeOtyA=",
+    "https://plugins.jetbrains.com/files/17718/364783/github-copilot-intellij-1.2.15.2816.zip": "sha256-ONmt+9mZN+/SyesZw6JV8S2U2SH5rggvojCXT0whI/E=",
     "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip": "sha256-KrzZTKZMQqoEMw+vDUv2jjs0EX0leaPBkU8H/ecq/oI=",
     "https://plugins.jetbrains.com/files/631/360005/python-231.9225.16.zip": "sha256-vin0+O9f4rY3FYqztzdIlyal5bvrvrt8Q8neDrXRmsU=",
     "https://plugins.jetbrains.com/files/6954/357005/kotlin-plugin-231-1.9.0-release-358-IJ8770.65.zip": "sha256-v2EB05au8mkC5VnoEILLJ3tesEeCWCYSNJ9RzfJZA1o=",
-    "https://plugins.jetbrains.com/files/6981/351503/ini-231.9161.47.zip": "sha256-oAgTPyTnfqEKjaGcK50k9O16hDY+A4lfL2l9IpGKyCY=",
     "https://plugins.jetbrains.com/files/6981/363869/ini-231.9225.21.zip": "sha256-/HljUhlum/bmgw0sfhK+33AgxCJsT32uU/UjQIzIbKs=",
     "https://plugins.jetbrains.com/files/7219/355564/Symfony_Plugin-2022.1.253.zip": "sha256-vE+fobPbtWlaSHGTLlbDcC6NkaJiA4Qp50h8flXHaJc=",
     "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip": "sha256-hT5K4w4lhvNwDzDMDSvsIDGj9lyaRqglfOhlbNdqpWs=",
diff --git a/pkgs/applications/editors/jetbrains/versions.json b/pkgs/applications/editors/jetbrains/versions.json
index 425e8309d8a0..e0ddf477be82 100644
--- a/pkgs/applications/editors/jetbrains/versions.json
+++ b/pkgs/applications/editors/jetbrains/versions.json
@@ -3,10 +3,10 @@
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz",
-      "version": "2023.1.4",
-      "sha256": "03830bd8c32eca51d2cb54aafbb74ce46003eaab9601465876c84107c0a19a23",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.4.tar.gz",
-      "build_number": "231.9161.40"
+      "version": "2023.1.5",
+      "sha256": "69a274098fe35ca53edbed460f1044691cedf595d080e291644a013905591bf3",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.5.tar.gz",
+      "build_number": "231.9225.21"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -67,10 +67,10 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
-      "version": "2023.1.3",
-      "sha256": "c12c99b39615bd2d37eec93ed29faee2387294624eaed7fabd5c7cc8de9faf9f",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.3.tar.gz",
-      "build_number": "231.9161.47",
+      "version": "2023.1.4",
+      "sha256": "7b44d704641c6015ce49e12e82c8866e9fdd8e8d421590235e536b3b1312b180",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.4.tar.gz",
+      "build_number": "231.9225.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
@@ -108,20 +108,20 @@
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
-      "version": "2023.1.3",
-      "sha256": "1cef18a6d80e063b520dd8e9a0cf5b27a9cb05bbfa5b680e97c54a7cb435c9c6",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.3.tar.gz",
-      "build_number": "231.9161.29"
+      "version": "2023.1.4",
+      "sha256": "d522583e234aaf66d3da760908d2fa1254990a2497bb7c6eb84ee9d0bb3c5ffe",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.4.tar.gz",
+      "build_number": "231.9225.18"
     }
   },
   "x86_64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg",
-      "version": "2023.1.4",
-      "sha256": "fdb801c7c42e87fa0db94b68192e09319583118461385e4133ce9cd01125cb41",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.4.dmg",
-      "build_number": "231.9161.40"
+      "version": "2023.1.5",
+      "sha256": "d372abe2e1598e9ae3ca121a85d7d89211e65d99b4ca2183ef05dd3172212c44",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.5.dmg",
+      "build_number": "231.9225.21"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -182,10 +182,10 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
-      "version": "2023.1.3",
-      "sha256": "d181a8c9ff92f183f1ce68c1867de61b17e5a82f5b16ec472baa99f5a5f9ce83",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.3.dmg",
-      "build_number": "231.9161.47",
+      "version": "2023.1.4",
+      "sha256": "4d3d9005772d2136e44f7774377fae053b690501800ea5e650d0f35882690fdd",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.4.dmg",
+      "build_number": "231.9225.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
@@ -223,20 +223,20 @@
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
-      "version": "2023.1.3",
-      "sha256": "ac8a4edbc2d846e2ac205ebf62ad0d883df5eac812b226b1b99c4f19764df005",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.3.dmg",
-      "build_number": "231.9161.29"
+      "version": "2023.1.4",
+      "sha256": "9e80e3047396b99f82d541813a1177e058f3acb0fc81d27a625e3f62cc1ddadb",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.4.dmg",
+      "build_number": "231.9225.18"
     }
   },
   "aarch64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg",
-      "version": "2023.1.4",
-      "sha256": "f3aa638dbf08df9763d557c02c5408be864442af25c7e4b0dce7889a800f3a49",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.4-aarch64.dmg",
-      "build_number": "231.9161.40"
+      "version": "2023.1.5",
+      "sha256": "432955fc7926a5387c1fa9b30433b0e68f49ab88ea40d0bddef711692b28e8b1",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.1.5-aarch64.dmg",
+      "build_number": "231.9225.21"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -297,10 +297,10 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
-      "version": "2023.1.3",
-      "sha256": "49ca043ee6119ae31c5f3fd12aa085f22dc0117c95bf70fca8afe29960c1a546",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.3-aarch64.dmg",
-      "build_number": "231.9161.47",
+      "version": "2023.1.4",
+      "sha256": "3285135fc4c529640ecfc5b451fa9b51d9df2a323915509cc6cbb3f25717c9e2",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.1.4-aarch64.dmg",
+      "build_number": "231.9225.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
@@ -338,10 +338,10 @@
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg",
-      "version": "2023.1.3",
-      "sha256": "c5cc29db9a12515892beed79e1970e628a816f78c629045795ea16c6e5629a2b",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.3-aarch64.dmg",
-      "build_number": "231.9161.29"
+      "version": "2023.1.4",
+      "sha256": "15d1a6a65c6cb073479f82394d2691fd84c54bc7eb2c5f55a6db77bdb6e500bd",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.1.4-aarch64.dmg",
+      "build_number": "231.9225.18"
     }
   }
 }
diff --git a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/update.sh b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/update.sh
index 03a71b557dad..c6cce01e6d3a 100755
--- a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/update.sh
+++ b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/update.sh
@@ -24,7 +24,7 @@ if [[ $# -ne 1 ]]; then
     )
 fi
 old_version=$(sed -nE 's/.*\bversion = "(.*)".*/\1/p' ./default.nix)
-if grep -q 'cargoSha256 = ""' ./default.nix; then
+if grep -q 'cargoHash = ""' ./default.nix; then
     old_version='broken'
 fi
 if [[ "$version" == "$old_version" ]]; then
@@ -34,10 +34,10 @@ echo "$old_version -> $version"
 
 # update hashes
 sed -E 's/\bversion = ".*?"/version = "'$version'"/' --in-place "$nixFile"
-srcHash=$(nix-prefetch-github vadimcn vscode-lldb --rev "v$version" | jq --raw-output .sha256)
-sed -E 's#\bsha256 = ".*?"#sha256 = "'$srcHash'"#' --in-place "$nixFile"
+srcHash=$(nix-prefetch-github vadimcn vscode-lldb --rev "v$version" | jq --raw-output .hash)
+sed -E 's#\bhash = ".*?"#hash = "'$srcHash'"#' --in-place "$nixFile"
 cargoHash=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).vscode-extensions.vadimcn.vscode-lldb.adapter.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
-sed -E 's#\bcargoSha256 = ".*?"#cargoSha256 = "'$cargoHash'"#' --in-place "$nixFile"
+sed -E 's#\bcargoHash = ".*?"#cargoHash = "'$cargoHash'"#' --in-place "$nixFile"
 
 pushd $TMPDIR
 curl -LO https://raw.githubusercontent.com/$owner/$repo/v${version}/package-lock.json
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 903708aabd69..1b52cda5c1e3 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -3,516 +3,516 @@
       "owner": "libretro",
       "repo": "libretro-2048",
       "rev": "331c1de588ed8f8c370dcbc488e5434a3c09f0f2",
-      "sha256": "gPrAmoBnfuTnW6t699pqS43vE6t0ca3jZcqTNRaJipA="
+      "hash": "sha256-gPrAmoBnfuTnW6t699pqS43vE6t0ca3jZcqTNRaJipA="
     },
     "atari800": {
         "owner": "libretro",
         "repo": "libretro-atari800",
         "rev": "94033288b026fe699bc50703609807aa8075f4dd",
-        "sha256": "fTKFELELt1g7t3uPgnXIgeMkkSbl9GHr0/k2FHcpDFI="
+        "hash": "sha256-fTKFELELt1g7t3uPgnXIgeMkkSbl9GHr0/k2FHcpDFI="
     },
     "beetle-gba": {
         "owner": "libretro",
         "repo": "beetle-gba-libretro",
         "rev": "38182572571a48cb58057cde64b915237c4e2d58",
-        "sha256": "4xnXWswozlcXBNI1lbGSNW/gAdIeLLO9Bf1SxOFLhSo="
+        "hash": "sha256-4xnXWswozlcXBNI1lbGSNW/gAdIeLLO9Bf1SxOFLhSo="
     },
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
         "rev": "3ca44fda26f27418c92ada1b0f38b948af2151ae",
-        "sha256": "f0A8gA3UT40UDaAkWQcPoDd6vAcM37tNtZ2hCOIyBJA="
+        "hash": "sha256-f0A8gA3UT40UDaAkWQcPoDd6vAcM37tNtZ2hCOIyBJA="
     },
     "beetle-ngp": {
         "owner": "libretro",
         "repo": "beetle-ngp-libretro",
         "rev": "65460e3a9ad529f6901caf669abbda11f437ab55",
-        "sha256": "+xfD1ZMKtbv5Lp12+5RM7Vl3eEF38kykKW8wj/2EN5w="
+        "hash": "sha256-+xfD1ZMKtbv5Lp12+5RM7Vl3eEF38kykKW8wj/2EN5w="
     },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
         "rev": "e480f6388375f59fd3e7aeef8ef8531c20e5c73e",
-        "sha256": "uURt6rB0IngWzEpl0DjbckdaTIjNwVCm3auvy7AwUdA="
+        "hash": "sha256-uURt6rB0IngWzEpl0DjbckdaTIjNwVCm3auvy7AwUdA="
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
         "rev": "724bd21b4524f8cf376dbc29c3e5a12cb674c758",
-        "sha256": "xeIVZ8FWGbETWYRIBNs3Yum7FDit5fb77hhH+RU45BY="
+        "hash": "sha256-xeIVZ8FWGbETWYRIBNs3Yum7FDit5fb77hhH+RU45BY="
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
         "rev": "fd812d4cf8f65644faef1ea8597f826ddc37c0a0",
-        "sha256": "yvMgnY2dGUk8TvvfDklN3f6b1ol7vDu6AJcYzdwy9pI="
+        "hash": "sha256-yvMgnY2dGUk8TvvfDklN3f6b1ol7vDu6AJcYzdwy9pI="
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
         "rev": "9bd31a4a42d06ca0f6d30ee38a569e57c150c414",
-        "sha256": "RHvH9Jp6c4cgEMTo+p+dU7qgJqjPbRqJLURadjAysrM="
+        "hash": "sha256-RHvH9Jp6c4cgEMTo+p+dU7qgJqjPbRqJLURadjAysrM="
     },
     "beetle-snes": {
         "owner": "libretro",
         "repo": "beetle-bsnes-libretro",
         "rev": "d770563fc3c4bd9abb522952cefb4aa923ba0b91",
-        "sha256": "zHPtfgp9hc8Q4gXJ5VgfJLWLeYjCsQhkfU1T5RM7AL0="
+        "hash": "sha256-zHPtfgp9hc8Q4gXJ5VgfJLWLeYjCsQhkfU1T5RM7AL0="
     },
     "beetle-supafaust": {
         "owner": "libretro",
         "repo": "supafaust",
         "rev": "75c658cce454e58ae04ea252f53a31c60d61548e",
-        "sha256": "2fXarVfb5/SYXF8t25/fGNFvODpGas5Bi0hLIbXgB+0="
+        "hash": "sha256-2fXarVfb5/SYXF8t25/fGNFvODpGas5Bi0hLIbXgB+0="
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
         "rev": "1ff2daa9377114d5394142f75f1c388b706567ed",
-        "sha256": "0FCm9kURtUQpyPb8cSmRAxttnUJnhE3EWV8DPvlj8HE="
+        "hash": "sha256-0FCm9kURtUQpyPb8cSmRAxttnUJnhE3EWV8DPvlj8HE="
     },
     "beetle-vb": {
         "owner": "libretro",
         "repo": "beetle-vb-libretro",
         "rev": "dd6393f76ff781df0f4e8c953f5b053b1e61b313",
-        "sha256": "C8OtTNdC7GNFsY2EH56in35IX8d6ou/1R04kMvM9674="
+        "hash": "sha256-C8OtTNdC7GNFsY2EH56in35IX8d6ou/1R04kMvM9674="
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
         "rev": "81e8b2afd31b7f0f939a3df6d70c8723bcc8a701",
-        "sha256": "xmDtMC5pId5X4vf9kHO55HmRpp/4ZruOM8QJSl//9R8="
+        "hash": "sha256-xmDtMC5pId5X4vf9kHO55HmRpp/4ZruOM8QJSl//9R8="
     },
     "blastem": {
         "owner": "libretro",
         "repo": "blastem",
         "rev": "277e4a62668597d4f59cadda1cbafb844f981d45",
-        "sha256": "EHvKElPw8V5Z6LnMaQXBCdM4niLIlF3aBm8dRbeYXHs="
+        "hash": "sha256-EHvKElPw8V5Z6LnMaQXBCdM4niLIlF3aBm8dRbeYXHs="
     },
     "bluemsx": {
         "owner": "libretro",
         "repo": "bluemsx-libretro",
         "rev": "acf358be18644a9df0ed9602d63c2f73d4fe605a",
-        "sha256": "K4mH+brakYZcVEeYMFUkFThqdZGt2+aP5DfpOgWSJxg="
+        "hash": "sha256-K4mH+brakYZcVEeYMFUkFThqdZGt2+aP5DfpOgWSJxg="
     },
     "bsnes": {
         "owner": "libretro",
         "repo": "bsnes-libretro",
         "rev": "4da970a334ba4644cef72e560985ea3f31fa40f7",
-        "sha256": "Bu5j1wrMNVMmxQULZwTdXyWi2i6F5C6m8wFDxvtjYdI="
+        "hash": "sha256-Bu5j1wrMNVMmxQULZwTdXyWi2i6F5C6m8wFDxvtjYdI="
     },
     "bsnes-hd": {
         "owner": "DerKoun",
         "repo": "bsnes-hd",
         "rev": "04821703aefdc909a4fd66d168433fcac06c2ba7",
-        "sha256": "QmNthbWb92vel5PFwJRXeEEVZHIxfvZ0ls+csodpGbU="
+        "hash": "sha256-QmNthbWb92vel5PFwJRXeEEVZHIxfvZ0ls+csodpGbU="
     },
     "bsnes-mercury": {
         "owner": "libretro",
         "repo": "bsnes-mercury",
         "rev": "fb9a41fe9bc230a07c4506cad3cbf21d3fa635b4",
-        "sha256": "gBOxKSv3j229IVdtffqFV/zSSacEs8UsBERnQgdFw4Y="
+        "hash": "sha256-gBOxKSv3j229IVdtffqFV/zSSacEs8UsBERnQgdFw4Y="
     },
     "citra": {
         "owner": "libretro",
         "repo": "citra",
         "rev": "d7e1612c17b1acb5d5eb68bb046820db49aeea5e",
-        "sha256": "u2XwAudFgI7j/k6Bq5fk874aI6KpZawlBoIs2+M+eZY=",
+        "hash": "sha256-u2XwAudFgI7j/k6Bq5fk874aI6KpZawlBoIs2+M+eZY=",
         "fetchSubmodules": true
     },
     "desmume": {
         "owner": "libretro",
         "repo": "desmume",
         "rev": "fbd368c8109f95650e1f81bca1facd6d4d8687d7",
-        "sha256": "7MFa5zd1jdOCqSI+VPl5nAHE7Kfm/lA0lbSPFskzqaQ="
+        "hash": "sha256-7MFa5zd1jdOCqSI+VPl5nAHE7Kfm/lA0lbSPFskzqaQ="
     },
     "desmume2015": {
         "owner": "libretro",
         "repo": "desmume2015",
         "rev": "af397ff3d1f208c27f3922cc8f2b8e08884ba893",
-        "sha256": "kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="
+        "hash": "sha256-kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="
     },
     "dolphin": {
         "owner": "libretro",
         "repo": "dolphin",
         "rev": "2f4b0f7902257d40a054f60b2c670d6e314f2a04",
-        "sha256": "9WYWbLehExYbPmGJpguhVFXqFJ9aR6VxzFVChd4QOEg="
+        "hash": "sha256-9WYWbLehExYbPmGJpguhVFXqFJ9aR6VxzFVChd4QOEg="
     },
     "dosbox": {
         "owner": "libretro",
         "repo": "dosbox-libretro",
         "rev": "b7b24262c282c0caef2368c87323ff8c381b3102",
-        "sha256": "PG2eElenlEpu0U/NIh53p0uLqewnEdaq6Aoak5E1P3I="
+        "hash": "sha256-PG2eElenlEpu0U/NIh53p0uLqewnEdaq6Aoak5E1P3I="
     },
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
         "rev": "340a51b250fb8fbf1a9e5d3ad3924044250064e0",
-        "sha256": "Cz3gPwbME8lDMKju3dn8hM8O2u9h9+8EUg7Nf6a7epA="
+        "hash": "sha256-Cz3gPwbME8lDMKju3dn8hM8O2u9h9+8EUg7Nf6a7epA="
     },
     "fbalpha2012": {
         "owner": "libretro",
         "repo": "fbalpha2012",
         "rev": "7f8860543a81ba79c0e1ce1aa219af44568c628a",
-        "sha256": "r1lH+CR+nVRCPkVo0XwLi35/ven/FEkNhWUTA6cUVxc="
+        "hash": "sha256-r1lH+CR+nVRCPkVo0XwLi35/ven/FEkNhWUTA6cUVxc="
     },
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
         "rev": "ffcd114b8ea3f3387b66997263ea5df358675aa5",
-        "sha256": "a4hXRluHQY5hC5jFU2mlqUAI5GmQk6Rbl1HNRA929CI="
+        "hash": "sha256-a4hXRluHQY5hC5jFU2mlqUAI5GmQk6Rbl1HNRA929CI="
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
         "rev": "1fa798b220a6df8417dcf7da0ab117533385d9c2",
-        "sha256": "B1iHZ7BVaM/GBgdD2jNZIEmXcRqKC6YaO9z1ByocMtE="
+        "hash": "sha256-B1iHZ7BVaM/GBgdD2jNZIEmXcRqKC6YaO9z1ByocMtE="
     },
     "flycast": {
         "owner": "libretro",
         "repo": "flycast",
         "rev": "4c293f306bc16a265c2d768af5d0cea138426054",
-        "sha256": "9IxpRBY1zifhOebLJSDMA/wiOfcZj+KOiPrgmjiFxvo="
+        "hash": "sha256-9IxpRBY1zifhOebLJSDMA/wiOfcZj+KOiPrgmjiFxvo="
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
         "rev": "1360c9ff32b390383567774d01fbe5d6dfcadaa3",
-        "sha256": "LLGD29HKpV34IOJ2ygjHZZT7XQqHHXccnpGNfWCuabg="
+        "hash": "sha256-LLGD29HKpV34IOJ2ygjHZZT7XQqHHXccnpGNfWCuabg="
     },
     "freeintv": {
         "owner": "libretro",
         "repo": "freeintv",
         "rev": "9a65ec6e31d48ad0dae1f381c1ec61c897f970cb",
-        "sha256": "ZeWw/K6i04XRympqZ6sQG/yjN8cJglVcIkxpyRHx424="
+        "hash": "sha256-ZeWw/K6i04XRympqZ6sQG/yjN8cJglVcIkxpyRHx424="
     },
     "fuse": {
         "owner": "libretro",
         "repo": "fuse-libretro",
         "rev": "847dbbd6f787823ac9a5dfacdd68ab181063374e",
-        "sha256": "jzS7SFALV/YjI77ST+IWHwUsuhT+Zr5w4t6C7O8yzFM="
+        "hash": "sha256-jzS7SFALV/YjI77ST+IWHwUsuhT+Zr5w4t6C7O8yzFM="
     },
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
         "rev": "ea563fac40e281b29d37f6b56657abef8f1aaf0d",
-        "sha256": "2jVbEsGkvdH1lA2//mb2Rm3xeh4EyFUcOUXdydSisvk="
+        "hash": "sha256-2jVbEsGkvdH1lA2//mb2Rm3xeh4EyFUcOUXdydSisvk="
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
         "rev": "f6a9bd72a56a11c2068be2d15fa52dda3e1e8027",
-        "sha256": "4siJGPRMpXHfP6mBPoDJArNaISTNjPKT69cvtGldadI="
+        "hash": "sha256-4siJGPRMpXHfP6mBPoDJArNaISTNjPKT69cvtGldadI="
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
         "rev": "541adc9e1c6c9328c07058659594d6300ae0fa19",
-        "sha256": "2iv/gMOgTZReDgVzEc3WyOdAlYgfANK08CtpZIyPxgA="
+        "hash": "sha256-2iv/gMOgTZReDgVzEc3WyOdAlYgfANK08CtpZIyPxgA="
     },
     "gw": {
         "owner": "libretro",
         "repo": "gw-libretro",
         "rev": "19a1cb3105ca4a82139fb4994e7995fd956f6f8d",
-        "sha256": "luhKXzxrXVNAHw8ArF1I78Zch7XEPwI3aqe0f6WRgD0="
+        "hash": "sha256-luhKXzxrXVNAHw8ArF1I78Zch7XEPwI3aqe0f6WRgD0="
     },
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
         "rev": "63db085af671bad2929078c55434623b7d4632a1",
-        "sha256": "N6M3KSU4NPJCqoG/UMrna9/6H5PsBBMUQLrvqiIdxpE="
+        "hash": "sha256-N6M3KSU4NPJCqoG/UMrna9/6H5PsBBMUQLrvqiIdxpE="
     },
     "hatari": {
         "owner": "libretro",
         "repo": "hatari",
         "rev": "1ebf0a0488580ef95c0b28f02223b31813c867c5",
-        "sha256": "i6dr+fFWPatRCIY+ajIZ1p3ERPV5ktv0nxHKxbGE5ao="
+        "hash": "sha256-i6dr+fFWPatRCIY+ajIZ1p3ERPV5ktv0nxHKxbGE5ao="
     },
     "mame": {
         "owner": "libretro",
         "repo": "mame",
         "rev": "f7761a9902d59030882c58d4482446196e748c50",
-        "sha256": "g37WAMt9iBbAYq4DfeTlHWmdW5/Vl7g90v6vCLmMQ3g="
+        "hash": "sha256-g37WAMt9iBbAYq4DfeTlHWmdW5/Vl7g90v6vCLmMQ3g="
     },
     "mame2000": {
         "owner": "libretro",
         "repo": "mame2000-libretro",
         "rev": "0208517404e841fce0c094f1a2776a0e1c6c101d",
-        "sha256": "WEJd7wSzY32sqMpMrjCD0hrOyAQq1WMBaGiY/2QQ4BQ="
+        "hash": "sha256-WEJd7wSzY32sqMpMrjCD0hrOyAQq1WMBaGiY/2QQ4BQ="
     },
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
         "rev": "b1cc49cf1d8bbef88b890e1c2a315a39d009171b",
-        "sha256": "bc4uER92gHf20JjR/Qcetvlu89ZmldJ1DiQphJZt/EA="
+        "hash": "sha256-bc4uER92gHf20JjR/Qcetvlu89ZmldJ1DiQphJZt/EA="
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
         "rev": "0b9309d9d86aea2457df74709e997bea37899475",
-        "sha256": "US0nkEH4EeKRejuN8UoDeLt5dhafuo7PEVx0FnpeUG0="
+        "hash": "sha256-US0nkEH4EeKRejuN8UoDeLt5dhafuo7PEVx0FnpeUG0="
     },
     "mame2010": {
         "owner": "libretro",
         "repo": "mame2010-libretro",
         "rev": "5f524dd5fca63ec1dcf5cca63885286109937587",
-        "sha256": "OmJgDdlan/niGQfajv0KNG8NJfEKn7Nfe6GRQD+TZ8M="
+        "hash": "sha256-OmJgDdlan/niGQfajv0KNG8NJfEKn7Nfe6GRQD+TZ8M="
     },
     "mame2015": {
         "owner": "libretro",
         "repo": "mame2015-libretro",
         "rev": "2599c8aeaf84f62fe16ea00daa460a19298c121c",
-        "sha256": "TURTX0XrvqwqKG3O3aCttDAdicBdge5F1thVvYgEHaw="
+        "hash": "sha256-TURTX0XrvqwqKG3O3aCttDAdicBdge5F1thVvYgEHaw="
     },
     "mame2016": {
         "owner": "libretro",
         "repo": "mame2016-libretro",
         "rev": "01058613a0109424c4e7211e49ed83ac950d3993",
-        "sha256": "IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak="
+        "hash": "sha256-IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak="
     },
     "melonds": {
         "owner": "libretro",
         "repo": "melonds",
         "rev": "0e1f06da626cbe67215c3f06f6bdf510dd4e4649",
-        "sha256": "ax9Vu8+1pNAHWPXrx5QA0n5EsmaJ2T7KJ5Otz8DSZwM="
+        "hash": "sha256-ax9Vu8+1pNAHWPXrx5QA0n5EsmaJ2T7KJ5Otz8DSZwM="
     },
     "mesen": {
         "owner": "libretro",
         "repo": "mesen",
         "rev": "caa4e6f14373c40bd2805c600d1b476e7616444a",
-        "sha256": "cnPNBWXbnCpjgW/wJIboiRBzv3zrHWxpNM1kg09ShLU="
+        "hash": "sha256-cnPNBWXbnCpjgW/wJIboiRBzv3zrHWxpNM1kg09ShLU="
     },
     "mesen-s": {
         "owner": "libretro",
         "repo": "mesen-s",
         "rev": "32a7adfb4edb029324253cb3632dfc6599ad1aa8",
-        "sha256": "/OOMH7kt9Pmkdmy5m+I8FMvog5mqZHyrZvfjHccz8oo="
+        "hash": "sha256-/OOMH7kt9Pmkdmy5m+I8FMvog5mqZHyrZvfjHccz8oo="
     },
     "meteor": {
         "owner": "libretro",
         "repo": "meteor-libretro",
         "rev": "e533d300d0561564451bde55a2b73119c768453c",
-        "sha256": "zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ="
+        "hash": "sha256-zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ="
     },
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
         "rev": "a69c3434afe8b26cb8f9463077794edfa7d5efad",
-        "sha256": "rmitsZzRWJ0VYzcNz/UtIK8OscQ4lkyuAwgfXOvSTzg="
+        "hash": "sha256-rmitsZzRWJ0VYzcNz/UtIK8OscQ4lkyuAwgfXOvSTzg="
     },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
         "rev": "5a63aadedc29655254d8fc7b4da3a325472e198b",
-        "sha256": "QNa8WGJFShO4vc4idUntCUaLik4xQXBA+X7z5sjZ2NE="
+        "hash": "sha256-QNa8WGJFShO4vc4idUntCUaLik4xQXBA+X7z5sjZ2NE="
     },
     "neocd": {
         "owner": "libretro",
         "repo": "neocd_libretro",
         "rev": "2070f5258c9d3feee15962f9db8c8ef20072ece8",
-        "sha256": "X+lS1zW5oTzp7wwurM5xjVqIBwEOCIdj/NX/+33K2qg="
+        "hash": "sha256-X+lS1zW5oTzp7wwurM5xjVqIBwEOCIdj/NX/+33K2qg="
     },
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
         "rev": "16b14865caf1effca030630e2fc73d2d4271fc53",
-        "sha256": "dU9X8sK/qDA/Qj0x1GicmSAzQyRqVmLiTcfCPe8+BjM="
+        "hash": "sha256-dU9X8sK/qDA/Qj0x1GicmSAzQyRqVmLiTcfCPe8+BjM="
     },
     "np2kai": {
         "owner": "AZO234",
         "repo": "NP2kai",
         "rev": "6089943a80a45b6c18d765765f7f31d7a5c0d9c6",
-        "sha256": "tdF0Qb+smWAVoPmI0dd5s51cnYxMmqM36rQNMiEjU9A=",
+        "hash": "sha256-tdF0Qb+smWAVoPmI0dd5s51cnYxMmqM36rQNMiEjU9A=",
         "fetchSubmodules": true
     },
     "nxengine": {
         "owner": "libretro",
         "repo": "nxengine-libretro",
         "rev": "1f371e51c7a19049e00f4364cbe9c68ca08b303a",
-        "sha256": "4XBNTzgN8pLyrK9KsVxTRR1I8CQaZCnVR4gMryYpWW0="
+        "hash": "sha256-4XBNTzgN8pLyrK9KsVxTRR1I8CQaZCnVR4gMryYpWW0="
     },
     "o2em": {
         "owner": "libretro",
         "repo": "libretro-o2em",
         "rev": "a2a12472fde910b6089ac3ca6de805bd58a9c999",
-        "sha256": "0cZYw3rrnaR+PfwReRXadLV8RVLblYqlZxJue6OZncg="
+        "hash": "sha256-0cZYw3rrnaR+PfwReRXadLV8RVLblYqlZxJue6OZncg="
     },
     "opera": {
         "owner": "libretro",
         "repo": "opera-libretro",
         "rev": "8a49bb8877611037438aeb857cb182f41ee0e3a1",
-        "sha256": "oH+sQi4D+xkqiJbq7fgGdHjgvyLt8UjlgXIo7K3wXZM="
+        "hash": "sha256-oH+sQi4D+xkqiJbq7fgGdHjgvyLt8UjlgXIo7K3wXZM="
     },
     "parallel-n64": {
         "owner": "libretro",
         "repo": "parallel-n64",
         "rev": "a03fdcba6b2e9993f050b50112f597ce2f44fa2c",
-        "sha256": "aJG+s+1OkHQHPvVzlJWU/VziQWj1itKkRwqcEBK+lgA="
+        "hash": "sha256-aJG+s+1OkHQHPvVzlJWU/VziQWj1itKkRwqcEBK+lgA="
     },
     "pcsx2": {
         "owner": "libretro",
         "repo": "pcsx2",
         "rev": "f3c8743d6a42fe429f703b476fecfdb5655a98a9",
-        "sha256": "0piCNWX7QbZ58KyTlWp4h1qLxXpi1z6ML8sBHMTvCY4="
+        "hash": "sha256-0piCNWX7QbZ58KyTlWp4h1qLxXpi1z6ML8sBHMTvCY4="
     },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
         "rev": "4373e29de72c917dbcd04ec2a5fb685e69d9def3",
-        "sha256": "727//NqBNEo6RHNQr1RY5cxMrEvfuJczCo+cUJZVv7U="
+        "hash": "sha256-727//NqBNEo6RHNQr1RY5cxMrEvfuJczCo+cUJZVv7U="
     },
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
         "rev": "7ab066aab84f15388a53433ea273420bcf917e00",
-        "sha256": "NK9ASiiIkGZmi2YfCqEzZallVfS7nprLRrBk4dlGyAI=",
+        "hash": "sha256-NK9ASiiIkGZmi2YfCqEzZallVfS7nprLRrBk4dlGyAI=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
         "rev": "b33834af08a4954f06be215eee80a72e7a378e91",
-        "sha256": "IxZk+kSdrkDAabbzdFM8QUrjaJUc1DHjSfAtDuwDJkw=",
+        "hash": "sha256-IxZk+kSdrkDAabbzdFM8QUrjaJUc1DHjSfAtDuwDJkw=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
         "rev": "7df51c3d060a780b7383c5c1380e346ad9304bb4",
-        "sha256": "GK3W0/yWaID3s0W0v6TcgJ0ZU984YspWMS6+XLyThjM=",
+        "hash": "sha256-GK3W0/yWaID3s0W0v6TcgJ0ZU984YspWMS6+XLyThjM=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
         "rev": "d9c3975669b4aab5a1397e0174838bcbbc3c1582",
-        "sha256": "klSJ7QIpNjlfyjhfeEQZ3j8Gnp4agd0qKVp0vr+KHVA="
+        "hash": "sha256-klSJ7QIpNjlfyjhfeEQZ3j8Gnp4agd0qKVp0vr+KHVA="
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
         "rev": "763ad22c7de51c8f06d6be0d49c554ce6a94a29b",
-        "sha256": "rE/hxP8hl9lLTNx/WympFDByjZs46ekyxLKRV4V8D9E="
+        "hash": "sha256-rE/hxP8hl9lLTNx/WympFDByjZs46ekyxLKRV4V8D9E="
     },
     "puae": {
         "owner": "libretro",
         "repo": "libretro-uae",
         "rev": "ae58c0f226b654d643b9f2dce58f64657f57cb76",
-        "sha256": "6oMTwCYGdVhh+R853gOQRzZfa7slDwe6aGVCvdm6NDU="
+        "hash": "sha256-6oMTwCYGdVhh+R853gOQRzZfa7slDwe6aGVCvdm6NDU="
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
         "rev": "75d501a87ec2074e8d2f7256fb0359513c263c29",
-        "sha256": "yAHVTgOt8SGyPXihp4YNKKAvxl9VBBAvHyzLW86zSCw="
+        "hash": "sha256-yAHVTgOt8SGyPXihp4YNKKAvxl9VBBAvHyzLW86zSCw="
     },
     "sameboy": {
         "owner": "libretro",
         "repo": "sameboy",
         "rev": "09138330990da32362246c7034cf4de2ea0a2a2b",
-        "sha256": "hQWIuNwCykkJR+6naNarR50kUvIFNny+bbZHR6/GA/4="
+        "hash": "sha256-hQWIuNwCykkJR+6naNarR50kUvIFNny+bbZHR6/GA/4="
     },
     "scummvm": {
         "owner": "libretro",
         "repo": "scummvm",
         "rev": "ab2e5d59cd25dfa5943d45c2567e8330d67fad8b",
-        "sha256": "9IaQR0prbCT70iWA99NMgGAKPobifdWBX17p4zL0fEM="
+        "hash": "sha256-9IaQR0prbCT70iWA99NMgGAKPobifdWBX17p4zL0fEM="
     },
     "smsplus-gx": {
         "owner": "libretro",
         "repo": "smsplus-gx",
         "rev": "60af17ddb2231ba98f4ed1203e2a2f58d08ea088",
-        "sha256": "2SZR9BOTYLmtjEF4Bdl49H2pFNEIaU68VqlA7ll5TqU="
+        "hash": "sha256-2SZR9BOTYLmtjEF4Bdl49H2pFNEIaU68VqlA7ll5TqU="
     },
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
         "rev": "cc0a87711a7a208cabefc9fd1dbb90e31fe51684",
-        "sha256": "1m6QvYl5Z0WM1XeXCYLvQaXH8A15P3x8ZzwdFeVPeWo="
+        "hash": "sha256-1m6QvYl5Z0WM1XeXCYLvQaXH8A15P3x8ZzwdFeVPeWo="
     },
     "snes9x2002": {
         "owner": "libretro",
         "repo": "snes9x2002",
         "rev": "540baad622d9833bba7e0696193cb06f5f02f564",
-        "sha256": "WJh8Qf1/uFaL9f9d28qXsbpeAZfYGPgjoty3G6XAKSs="
+        "hash": "sha256-WJh8Qf1/uFaL9f9d28qXsbpeAZfYGPgjoty3G6XAKSs="
     },
     "snes9x2005": {
         "owner": "libretro",
         "repo": "snes9x2005",
         "rev": "fd45b0e055bce6cff3acde77414558784e93e7d0",
-        "sha256": "zjA/G62V38/hj+WjJDGAs48AcTUIiMWL8feCqLsCRnI="
+        "hash": "sha256-zjA/G62V38/hj+WjJDGAs48AcTUIiMWL8feCqLsCRnI="
     },
     "snes9x2010": {
         "owner": "libretro",
         "repo": "snes9x2010",
         "rev": "d8b10c4cd7606ed58f9c562864c986bc960faaaf",
-        "sha256": "7FmteYrAYr+pGNXGg9CBC4NFlijGRf7GdtJfiNjmonU="
+        "hash": "sha256-7FmteYrAYr+pGNXGg9CBC4NFlijGRf7GdtJfiNjmonU="
     },
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
         "rev": "93ea39d6155f08c21707a85a0b04b33008a7ab15",
-        "sha256": "9dCBaLxb1CBbngBd3tJ0x5lT+dnzzhK2DO4Gk/S6WW4="
+        "hash": "sha256-9dCBaLxb1CBbngBd3tJ0x5lT+dnzzhK2DO4Gk/S6WW4="
     },
     "stella2014": {
         "owner": "libretro",
         "repo": "stella2014-libretro",
         "rev": "8ab051edd4816f33a5631d230d54059eeed52c5f",
-        "sha256": "wqssB8WXXF2Lu9heII8nWLLOvI38cIfHSMA7OOd6jx0="
+        "hash": "sha256-wqssB8WXXF2Lu9heII8nWLLOvI38cIfHSMA7OOd6jx0="
     },
     "swanstation": {
         "owner": "libretro",
         "repo": "swanstation",
         "rev": "e24f21196cdcd50321475c4366b51af245a6bbe6",
-        "sha256": "DjAB0Z0yY9IGESeNNkkbdoAO5ItJ/8cZ5ycRofHG978="
+        "hash": "sha256-DjAB0Z0yY9IGESeNNkkbdoAO5ItJ/8cZ5ycRofHG978="
     },
     "tgbdual": {
         "owner": "libretro",
         "repo": "tgbdual-libretro",
         "rev": "a6f3018e6a23030afc1873845ee54d4b2d8ec9d3",
-        "sha256": "MBUgYXX/Pc+TkwoS7OwbXSPssKUf6lwWx/bKhvwDkHs="
+        "hash": "sha256-MBUgYXX/Pc+TkwoS7OwbXSPssKUf6lwWx/bKhvwDkHs="
     },
     "thepowdertoy": {
         "owner": "libretro",
         "repo": "ThePowderToy",
         "rev": "f644498193c4c8be689d8a1d2a70e37e4eff4243",
-        "sha256": "aPUqrrrH2Ia56A3Kx6ClMcZO9nbHGJIcEQ6nFyIMamo="
+        "hash": "sha256-aPUqrrrH2Ia56A3Kx6ClMcZO9nbHGJIcEQ6nFyIMamo="
     },
     "tic80": {
         "owner": "libretro",
         "repo": "tic-80",
         "rev": "bd6ce86174fc7c9d7d3a86263acf3a7de1b62c11",
-        "sha256": "RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=",
+        "hash": "sha256-RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=",
         "fetchSubmodules": true
     },
     "vba-m": {
         "owner": "libretro",
         "repo": "vbam-libretro",
         "rev": "640ce45325694d1dc574e90c95c55bc464368d7e",
-        "sha256": "aiIeleZHt95Y/kigLEbRaCb3KM0ezMB7yzO16FbuBNM="
+        "hash": "sha256-aiIeleZHt95Y/kigLEbRaCb3KM0ezMB7yzO16FbuBNM="
     },
     "vba-next": {
         "owner": "libretro",
         "repo": "vba-next",
         "rev": "0c310082a6345790124e9348861b300bcccbeced",
-        "sha256": "RQx/WR83EtPcQkx0ft4Y0/5LaKIOST3L/fh4qoPxz78="
+        "hash": "sha256-RQx/WR83EtPcQkx0ft4Y0/5LaKIOST3L/fh4qoPxz78="
     },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
         "rev": "8e932c1d585ae9e467186dea9e73ce38fe1490f7",
-        "sha256": "2Vo30yiP6SfUt3XHCfQTKTKEtCywdRIoUe6d0Or21WM="
+        "hash": "sha256-2Vo30yiP6SfUt3XHCfQTKTKEtCywdRIoUe6d0Or21WM="
     },
     "virtualjaguar": {
         "owner": "libretro",
         "repo": "virtualjaguar-libretro",
         "rev": "2cc06899b839639397b8b30384a191424b6f529d",
-        "sha256": "7FiU5/n1hVePttkz7aVfXXx88+zX06/5SJk3EaRYvhQ="
+        "hash": "sha256-7FiU5/n1hVePttkz7aVfXXx88+zX06/5SJk3EaRYvhQ="
     },
     "yabause": {
         "owner": "libretro",
         "repo": "yabause",
         "rev": "4c96b96f7fbe07223627c469ff33376b2a634748",
-        "sha256": "7hEpGh2EcrlUoRiUNntaMZEQtStglYAY1MeCub5p8f8="
+        "hash": "sha256-7hEpGh2EcrlUoRiUNntaMZEQtStglYAY1MeCub5p8f8="
     }
 }
diff --git a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
new file mode 100644
index 000000000000..92ba7f20c8b3
--- /dev/null
+++ b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
@@ -0,0 +1,28 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "retroarch-joypad-autoconfig";
+  version = "1.15.0";
+
+  src = fetchFromGitHub {
+    owner = "libretro";
+    repo = "retroarch-joypad-autoconfig";
+    rev = "v${version}";
+    hash = "sha256-/F2Y08uDA/pIIeLiLfOQfGVjX2pkuOqPourlx2RbZ28=";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  meta = with lib; {
+    description = "Joypad autoconfig files";
+    homepage = "https://www.libretro.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; teams.libretro.members ++ [ ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix
index afef0bef8a48..4698bbe5bbed 100644
--- a/pkgs/applications/emulators/retroarch/wrapper.nix
+++ b/pkgs/applications/emulators/retroarch/wrapper.nix
@@ -3,16 +3,28 @@
 , makeWrapper
 , retroarch
 , symlinkJoin
+, runCommand
 , cores ? [ ]
+, settings ? { }
 }:
 
 let
+  settingsPath = runCommand "declarative-retroarch.cfg"
+    {
+      value = lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "${n} = \"${v}\"") settings);
+      passAsFile = [ "value" ];
+    }
+    ''
+      cp "$valuePath" "$out"
+    '';
+
   # All cores should be located in the same path after symlinkJoin,
   # but let's be safe here
   coresPath = lib.lists.unique (map (c: c.libretroCore) cores);
-  wrapperArgs = lib.strings.escapeShellArgs
-    (lib.lists.flatten
-      (map (p: [ "--add-flags" "-L ${placeholder "out" + p}" ]) coresPath));
+  wrapperArgs = lib.strings.escapeShellArgs (
+    (lib.lists.flatten (map (p: [ "--add-flags" "-L ${placeholder "out" + p}" ]) coresPath))
+    ++ [ "--add-flags" "--appendconfig=${settingsPath}" ]
+  );
 in
 symlinkJoin {
   name = "retroarch-with-cores-${lib.getVersion retroarch}";
diff --git a/pkgs/applications/misc/collision/collision-shards.nix b/pkgs/applications/misc/collision/collision-shards.nix
new file mode 100644
index 000000000000..0c2725504154
--- /dev/null
+++ b/pkgs/applications/misc/collision/collision-shards.nix
@@ -0,0 +1,42 @@
+{
+  gettext = {
+    url = "https://github.com/geopjr/gettext.cr.git";
+    rev = "v1.0.0";
+    sha256 = "1y27m4170rr4532j56grzhwbz8hj6z7j3zfkd0jnfwnsxclks1kc";
+  };
+  non-blocking-spawn = {
+    url = "https://github.com/geopjr/non-blocking-spawn.git";
+    rev = "v1.0.5";
+    sha256 = "139gr87zlw0k9kf6pf9k2d88aa9x3kcnfg34qpbqrwsrck7708za";
+  };
+  version_from_shard = {
+    url = "https://github.com/hugopl/version_from_shard.git";
+    rev = "v1.2.5";
+    sha256 = "0xizj0q4rd541rwjbx04cjifc2gfx4l5v6q2y7gmd0ndjmkgb8ik";
+  };
+  gio = {
+    url = "https://github.com/hugopl/gio.cr.git";
+    rev = "v0.1.0";
+    sha256 = "0vj35bi64d4hni18nrl8fmms306a0gl4zlxpf3aq08lh0sbwzhd8";
+  };
+  gtk4 = {
+    url = "https://github.com/hugopl/gtk4.cr.git";
+    rev = "v0.13.0";
+    sha256 = "0xsrcsh5qvwm9l7cywxpw49rfv94mkkqcliws4zkhxgr9isnirbm";
+  };
+  harfbuzz = {
+    url = "https://github.com/hugopl/harfbuzz.cr.git";
+    rev = "v0.1.0";
+    sha256 = "1lcb778b4k34sqxg979fpl425bbzf2gikjf2m5aj6x1fzxn46jg0";
+  };
+  pango = {
+    url = "https://github.com/hugopl/pango.cr.git";
+    rev = "v0.2.0";
+    sha256 = "0dl3qrhi2ybylmvzx1x5gsznp2pcdkc50waxrljxwnf5avn8ixsf";
+  };
+  libadwaita = {
+    url = "https://github.com/geopjr/libadwaita.cr.git";
+    rev = "203737fc96bb48e1a710cb68e896d2c5b9c1a6e5";
+    sha256 = "11c2knxncjnwg4cgppfllxwgli1hf6sjyyx4ii8rgmnbird6xcmh";
+  };
+}
diff --git a/pkgs/applications/misc/collision/default.nix b/pkgs/applications/misc/collision/default.nix
new file mode 100644
index 000000000000..a77d0b34a75e
--- /dev/null
+++ b/pkgs/applications/misc/collision/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, crystal
+, wrapGAppsHook4
+, desktopToDarwinBundle
+, gi-crystal
+, gobject-introspection
+, libadwaita
+, openssl
+, libxml2
+, pkg-config
+}:
+crystal.buildCrystalPackage rec {
+  pname = "Collision";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "GeopJr";
+    repo = "Collision";
+    rev = "v${version}";
+    hash = "sha256-YNMtiMSzDqBlJJTUntRtL6oXg+IuyAobQ4FYcwOdOas=";
+  };
+  patches = [ ./make.patch ];
+  shardsFile = ./collision-shards.nix;
+
+  # Crystal compiler has a strange issue with OpenSSL. The project will not compile due to
+  # main_module:(.text+0x6f0): undefined reference to `SSL_library_init'
+  # There is an explanation for this https://danilafe.com/blog/crystal_nix_revisited/
+  # Shortly, adding pkg-config to buildInputs along with openssl fixes the issue.
+
+  nativeBuildInputs = [ wrapGAppsHook4 pkg-config gobject-introspection gi-crystal ]
+    ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
+  buildInputs = [ libadwaita openssl libxml2 ];
+
+  buildTargets = ["bindings" "build"];
+
+  doCheck = false;
+  doInstallCheck = false;
+
+  installTargets = ["desktop" "install"];
+
+  meta = with lib; {
+    description = "Check hashes for your files";
+    homepage = "https://github.com/GeopJr/Collision";
+    license = licenses.bsd2;
+    mainProgram = "collision";
+    maintainers = with maintainers; [ sund3RRR ];
+  };
+}
diff --git a/pkgs/applications/misc/collision/make.patch b/pkgs/applications/misc/collision/make.patch
new file mode 100644
index 000000000000..73872a789278
--- /dev/null
+++ b/pkgs/applications/misc/collision/make.patch
@@ -0,0 +1,20 @@
+--- a/Makefile	2023-07-09 10:49:31.064190374 +0300
++++ b/Makefile	2023-07-19 11:19:37.415480179 +0300
+@@ -6,7 +6,7 @@
+ all: desktop bindings build
+ 
+ bindings: 
+-	./bin/gi-crystal || $(CRYSTAL_LOCATION)shards install && ./bin/gi-crystal
++	gi-crystal
+ 
+ build:
+ 	COLLISION_LOCALE_LOCATION="$(PREFIX)$(LOCALE_LOCATION)" $(CRYSTAL_LOCATION)shards build -Dpreview_mt --release --no-debug
+@@ -43,7 +43,7 @@
+ 	install -D -m 0644 data/dev.geopjr.Collision.desktop $(PREFIX)/share/applications/dev.geopjr.Collision.desktop
+ 	install -D -m 0644 data/icons/dev.geopjr.Collision.svg $(PREFIX)/share/icons/hicolor/scalable/apps/dev.geopjr.Collision.svg
+ 	install -D -m 0644 data/icons/dev.geopjr.Collision-symbolic.svg $(PREFIX)/share/icons/hicolor/symbolic/apps/dev.geopjr.Collision-symbolic.svg
+-	gtk-update-icon-cache $(PREFIX)/share/icons/hicolor
++	gtk4-update-icon-cache --ignore-theme-index $(PREFIX)/share/icons/hicolor
+ 	glib-compile-schemas $(PREFIX)/share/glib-2.0/schemas/
+ 
+ uninstall:
\ No newline at end of file
diff --git a/pkgs/applications/misc/tandoor-recipes/common.nix b/pkgs/applications/misc/tandoor-recipes/common.nix
index 6ae3ede11b1a..7a280285ac5d 100644
--- a/pkgs/applications/misc/tandoor-recipes/common.nix
+++ b/pkgs/applications/misc/tandoor-recipes/common.nix
@@ -6,10 +6,10 @@ rec {
     owner = "TandoorRecipes";
     repo = "recipes";
     rev = version;
-    sha256 = "sha256-cVrgmRDzuLzl2+4UcrLRdrP6ZFWMkavu9OEogNas2fA=";
+    hash = "sha256-cVrgmRDzuLzl2+4UcrLRdrP6ZFWMkavu9OEogNas2fA=";
   };
 
-  yarnSha256 = "sha256-0u9P/OsoThP8gonrzcnO5zhIboWMI1mTsXHlbt7l9oE=";
+  yarnHash = "sha256-0u9P/OsoThP8gonrzcnO5zhIboWMI1mTsXHlbt7l9oE=";
 
   meta = with lib; {
     homepage = "https://tandoor.dev/";
diff --git a/pkgs/applications/misc/tandoor-recipes/frontend.nix b/pkgs/applications/misc/tandoor-recipes/frontend.nix
index 98da59a1d299..dd6380449d95 100644
--- a/pkgs/applications/misc/tandoor-recipes/frontend.nix
+++ b/pkgs/applications/misc/tandoor-recipes/frontend.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${common.src}/vue/yarn.lock";
-    sha256 = common.yarnSha256;
+    hash = common.yarnHash;
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/tandoor-recipes/update.sh b/pkgs/applications/misc/tandoor-recipes/update.sh
index 49b6d5f98ae9..63021d76f6b7 100755
--- a/pkgs/applications/misc/tandoor-recipes/update.sh
+++ b/pkgs/applications/misc/tandoor-recipes/update.sh
@@ -23,7 +23,7 @@ fi
 
 package_src="https://raw.githubusercontent.com/TandoorRecipes/recipes/$version"
 
-src_hash=$(nix-prefetch-github TandoorRecipes recipes --rev "${version}" | jq -r .sha256)
+src_hash=$(nix-prefetch-github TandoorRecipes recipes --rev "${version}" | jq -r .hash)
 
 tmpdir=$(mktemp -d)
 trap 'rm -rf "$tmpdir"' EXIT
@@ -34,9 +34,8 @@ yarn_hash=$(prefetch-yarn-deps yarn.lock)
 popd
 
 # Use friendlier hashes
-src_hash=$(nix hash to-sri --type sha256 "$src_hash")
 yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
 
 sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
-sed -i -E -e "s#sha256 = \".*\"#sha256 = \"$src_hash\"#" common.nix
-sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix
+sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" common.nix
+sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$yarn_hash\"#" common.nix
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 67e21bcd1821..3f2d5a99fe67 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${finalAttrs.version}";
-    sha256 = desktopSrcHash;
+    hash = desktopSrcHash;
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index e6b73d2983a6..4e80744a4c0f 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
     owner = "vector-im";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    sha256 = webSrcHash;
+    hash = webSrcHash;
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
index 6e462ef24dbe..84196371be3a 100644
--- a/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
     owner = "atom";
     repo = "node-keytar";
     rev = "v${version}";
-    sha256 = pinData.srcHash;
+    hash = pinData.srcHash;
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/pin.json b/pkgs/applications/networking/instant-messengers/element/keytar/pin.json
index dc7420ab4543..626f5a62ea1d 100644
--- a/pkgs/applications/networking/instant-messengers/element/keytar/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/pin.json
@@ -1,5 +1,5 @@
 {
   "version": "7.9.0",
-  "srcHash": "Mnl0Im2hZJXJEtyXb5rgMntekkUAnOG2MN1bwfgh0eg=",
+  "srcHash": "sha256-Mnl0Im2hZJXJEtyXb5rgMntekkUAnOG2MN1bwfgh0eg=",
   "npmHash": "sha256-ldfRWV+HXBdBYO2ZiGbVFSHV4/bMG43U7w+sJ4kpVUY="
 }
diff --git a/pkgs/applications/networking/instant-messengers/element/keytar/update.sh b/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
index 0ddfa0247263..9b8d014f03c9 100755
--- a/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
+++ b/pkgs/applications/networking/instant-messengers/element/keytar/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-npm-deps
+#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-npm-deps nix-prefetch-github
 
 if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
   echo "Regenerates packaging data for the keytar package."
@@ -25,7 +25,7 @@ wget "$SRC/package.json"
 npm_hash=$(prefetch-npm-deps package-lock.json)
 rm -rf node_modules package.json package-lock.json
 
-src_hash=$(nix-prefetch-github atom node-keytar --rev v${version} | jq -r .sha256)
+src_hash=$(nix-prefetch-github atom node-keytar --rev v${version} | jq -r .hash)
 
 cat > pin.json << EOF
 {
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.nix b/pkgs/applications/networking/instant-messengers/element/pin.nix
index 6f3cfa832567..d32b72557181 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.nix
+++ b/pkgs/applications/networking/instant-messengers/element/pin.nix
@@ -1,9 +1,9 @@
 {
   "version" = "1.11.36";
   "hashes" = {
-    "desktopSrcHash" = "MMTuyyUXur5Fy24aXPWtZbQLAaXR2R7coEi8ZOJo1YI=";
+    "desktopSrcHash" = "sha256-MMTuyyUXur5Fy24aXPWtZbQLAaXR2R7coEi8ZOJo1YI=";
     "desktopYarnHash" = "03wmdqnxzjrvdypwrb5z564liiqamwn6qmw2fww1mja8dkdkx5ng";
-    "webSrcHash" = "u+Y/iLRlTd5RkczF6qIaer9HKFnm8LUGP8ZnB/WfiGI=";
+    "webSrcHash" = "sha256-u+Y/iLRlTd5RkczF6qIaer9HKFnm8LUGP8ZnB/WfiGI=";
     "webYarnHash" = "0s9ly1hr9jvb2asgjf6g5n5n5w6qh51wkwyl7ps891c0hv9m28zm";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
index 915e3faa3e40..5d7535c5289b 100644
--- a/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
@@ -5,13 +5,13 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "seshat-node";
-  inherit (pinData) version;
+  inherit (pinData) version cargoHash;
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "seshat";
     rev = version;
-    sha256 = pinData.srcHash;
+    hash = pinData.srcHash;
   };
 
   sourceRoot = "source/seshat-node/native";
@@ -53,6 +53,4 @@ in rustPlatform.buildRustPackage rec {
   '';
 
   disallowedReferences = [ stdenv.cc.cc ];
-
-  cargoSha256 = pinData.cargoHash;
 }
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/pin.json b/pkgs/applications/networking/instant-messengers/element/seshat/pin.json
index 78d5156f54a4..f0648d11f2e0 100644
--- a/pkgs/applications/networking/instant-messengers/element/seshat/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/pin.json
@@ -1,6 +1,6 @@
 {
   "version": "2.3.3",
-  "srcHash": "HmKHWFoO8TQ9S/RcJnJ3h85/2uSkqGrgLnX82hkux4Q=",
+  "srcHash": "sha256-HmKHWFoO8TQ9S/RcJnJ3h85/2uSkqGrgLnX82hkux4Q=",
   "yarnHash": "1cbkv8ap7f8vxl5brzqb86d2dyxg555sz67cldrp0vgnk8sq6ibp",
   "cargoHash": "sha256-WsgTbQ91aZZV5sIuFVjsccdiXivjtAUC1Zs/4uNk1zU="
 }
diff --git a/pkgs/applications/networking/instant-messengers/element/seshat/update.sh b/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
index 1315715ac049..6e7e75e66bce 100755
--- a/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
+++ b/pkgs/applications/networking/instant-messengers/element/seshat/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn nix-prefetch
+#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn nix-prefetch nix-prefetch-github
 
 if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
   echo "Regenerates packaging data for the seshat package."
@@ -25,7 +25,7 @@ wget "$SRC/seshat-node/yarn.lock"
 yarn_hash=$(prefetch-yarn-deps yarn.lock)
 popd
 
-src_hash=$(nix-prefetch-github matrix-org seshat --rev ${version} | jq -r .sha256)
+src_hash=$(nix-prefetch-github matrix-org seshat --rev ${version} | jq -r .hash)
 
 cat > pin.json << EOF
 {
diff --git a/pkgs/applications/networking/instant-messengers/element/update.sh b/pkgs/applications/networking/instant-messengers/element/update.sh
index ca9f39c306db..c68a347e68ae 100755
--- a/pkgs/applications/networking/instant-messengers/element/update.sh
+++ b/pkgs/applications/networking/instant-messengers/element/update.sh
@@ -20,7 +20,7 @@ version="${version#v}"
 
 # Element Web
 web_src="https://raw.githubusercontent.com/vector-im/element-web/v$version"
-web_src_hash=$(nix-prefetch-github vector-im element-web --rev v${version} | jq -r .sha256)
+web_src_hash=$(nix-prefetch-github vector-im element-web --rev v${version} | jq -r .hash)
 
 web_tmpdir=$(mktemp -d)
 trap 'rm -rf "$web_tmpdir"' EXIT
@@ -32,7 +32,7 @@ popd
 
 # Element Desktop
 desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version"
-desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .sha256)
+desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .hash)
 
 desktop_tmpdir=$(mktemp -d)
 trap 'rm -rf "$desktop_tmpdir"' EXIT
diff --git a/pkgs/applications/networking/instant-messengers/qq/default.nix b/pkgs/applications/networking/instant-messengers/qq/default.nix
index 63077827369d..5a72c1bd1e83 100644
--- a/pkgs/applications/networking/instant-messengers/qq/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qq/default.nix
@@ -19,6 +19,7 @@
 , at-spi2-core
 , autoPatchelfHook
 , wrapGAppsHook
+, makeWrapper
 }:
 
 let
@@ -42,7 +43,8 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [
     autoPatchelfHook
-    wrapGAppsHook
+    # makeBinaryWrapper not support shell wrapper specifically for `NIXOS_OZONE_WL`.
+    (wrapGAppsHook.override { inherit makeWrapper; })
     dpkg
   ];
 
@@ -87,7 +89,10 @@ stdenv.mkDerivation {
   '';
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ gjs ]}")
+    gappsWrapperArgs+=(
+      --prefix PATH : "${lib.makeBinPath [ gjs ]}"
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+    )
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/misc/zammad/source.json b/pkgs/applications/networking/misc/zammad/source.json
index fe202a7753df..f7b7280b468d 100644
--- a/pkgs/applications/networking/misc/zammad/source.json
+++ b/pkgs/applications/networking/misc/zammad/source.json
@@ -2,7 +2,7 @@
   "owner": "zammad",
   "repo": "zammad",
   "rev": "643aba6ba4ba66c6127038c8cc2cc7a20b912678",
-  "sha256": "vLLn989M5ZN+jTh60BopEKbuaxOBfDsk6PiM+gHFClo=",
+  "hash": "sha256-vLLn989M5ZN+jTh60BopEKbuaxOBfDsk6PiM+gHFClo=",
   "fetchSubmodules": true
 }
 
diff --git a/pkgs/applications/version-management/gitolite/default.nix b/pkgs/applications/version-management/gitolite/default.nix
index 4912dae3233a..6e7a627f9cba 100644
--- a/pkgs/applications/version-management/gitolite/default.nix
+++ b/pkgs/applications/version-management/gitolite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitolite";
-  version = "3.6.12";
+  version = "3.6.13";
 
   src = fetchFromGitHub {
     owner = "sitaramc";
     repo = "gitolite";
     rev = "v${version}";
-    sha256 = "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy";
+    hash = "sha256-/VBu+aepIrxWc2padPa/WoXbIdKfIwqmA/M8d1GE5FI=";
   };
 
   buildInputs = [ nettools perl ];
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index ff5fb35d42bb..033d6a55d48c 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    sha256 = "sha256-a33jGbafkmv55cKBCr8xlGTsD3bU/1CNyOfaXQIGMg0=";
+    hash = "sha256-FPqXfIxuqwsnvsuWN5baIIn6o7ucP/Zgn+OsHfI61zU=";
   };
 
   doCheck = false;