From dabfcf6bf0df33da69c8ccc639de1f36d1a0170d Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Thu, 13 Nov 2025 15:59:00 +1100 Subject: [PATCH 1/3] kanata: 1.9.0 -> 1.10.0 Co-authored-by: LIN, Jian --- doc/release-notes/rl-2605.section.md | 3 +++ pkgs/by-name/ka/kanata/package.nix | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index 9e1eea6eeab8..75cadf6dfb35 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -11,6 +11,9 @@ - `spoof` has been removed, as there are many issues upstream with it working on modern OS versions, and it appears to be unmaintained. +- `kanata` now requires `karabiner-dk` version 6.0+ or later. + The package has been updated to use the new `karabiner-dk` package and the `darwinDriver` output stays at the version defined in the package. + - All Log4Shell vulnerability scanners were removed, as they were all unmaintained upstream and are no longer relevant given that the vulnerability has been fixed upstream for several years. - `python3packages.pillow-avif-plugin` has been removed as the functionality is included in `python3packages.pillow` directly since version 11.3. diff --git a/pkgs/by-name/ka/kanata/package.nix b/pkgs/by-name/ka/kanata/package.nix index 6ffb65922076..ce313daaddf3 100644 --- a/pkgs/by-name/ka/kanata/package.nix +++ b/pkgs/by-name/ka/kanata/package.nix @@ -16,16 +16,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "kanata"; - version = "1.9.0"; + version = "1.10.0"; src = fetchFromGitHub { owner = "jtroo"; repo = "kanata"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-xxAIwiwCQugDXpWga9bQ9ZGfem46rwDlmf64dX/tw7g="; + sha256 = "sha256-IicVuJZBHzBv9SNGQuWIIaLq2qpWfn/jMFh9KPvAThs="; }; - cargoHash = "sha256-LfjuQHR3vVUr2e0efVymnfCnyYkFRx7ZiNdSIjBZc5s="; + cargoHash = "sha256-2DTL1u17jUFiRoVe7973L5/352GtKte/vakk01SSRwY="; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ (writeShellScriptBin "sw_vers" '' @@ -45,7 +45,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; passthru = { - darwinDriverVersion = "5.0.0"; # needs to be updated if karabiner-driverkit changes + darwinDriverVersion = "6.2.0"; # needs to be updated if karabiner-driverkit changes updateScript = lib.getExe (writeShellApplication { name = "update-script-kanata"; runtimeInputs = [ From cea002bec97926ae8bd68b38056e690869e7217f Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 2 Dec 2025 20:11:59 +0800 Subject: [PATCH 2/3] kanata: let updateScript be able to change cargoHash again This functionality was broken by #445407. This patch restores it. --- pkgs/by-name/ka/kanata/package.nix | 4 ++-- pkgs/by-name/ka/kanata/update.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ka/kanata/package.nix b/pkgs/by-name/ka/kanata/package.nix index ce313daaddf3..e7fbd0b14f55 100644 --- a/pkgs/by-name/ka/kanata/package.nix +++ b/pkgs/by-name/ka/kanata/package.nix @@ -6,7 +6,7 @@ karabiner-dk, fetchFromGitHub, versionCheckHook, - common-updater-scripts, + nix-update, yq, curl, jq, @@ -53,7 +53,7 @@ rustPlatform.buildRustPackage (finalAttrs: { gnused yq jq - common-updater-scripts + nix-update ]; text = builtins.readFile ./update.sh; }); diff --git a/pkgs/by-name/ka/kanata/update.sh b/pkgs/by-name/ka/kanata/update.sh index bc78070bb66b..c8d67c54ffff 100644 --- a/pkgs/by-name/ka/kanata/update.sh +++ b/pkgs/by-name/ka/kanata/update.sh @@ -1,5 +1,5 @@ NEW_VERSION="$(curl --silent https://api.github.com/repos/jtroo/kanata/releases/latest ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} | jq '.tag_name | ltrimstr("v")' --raw-output)" -update-source-version "kanata" "$NEW_VERSION" --ignore-same-version +nix-update --version="$NEW_VERSION" karabinerDriverCrateVersion="$(curl -L "https://raw.githubusercontent.com/jtroo/kanata/refs/tags/v$NEW_VERSION/Cargo.lock" | tomlq | jq --raw-output '.package[] | select(.name | test("karabiner-driverkit")) |.version')" newKarabinerDkVersion="$(curl -L "https://crates.io/api/v1/crates/karabiner-driverkit/$karabinerDriverCrateVersion/download" | tar xzvf - --strip-components=1 -O "karabiner-driverkit-$karabinerDriverCrateVersion/c_src/Karabiner-DriverKit-VirtualHIDDevice/version.json" | jq --raw-output0 .package_version)" importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)" From 5451f231c1130381e197758a0feea63118482824 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 2 Dec 2025 20:15:50 +0800 Subject: [PATCH 3/3] kanata: filter versions in updateScript kanata has pre-release versions like v1.10.0-prerelease-3[1]. updateScript used to be able to filter out those versions but this functionality was broken by #445407. This patch restores that functionality. [1]: https://github.com/jtroo/kanata/releases/tag/v1.10.0-prerelease-3 --- pkgs/by-name/ka/kanata/update.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ka/kanata/update.sh b/pkgs/by-name/ka/kanata/update.sh index c8d67c54ffff..b8aaab495676 100644 --- a/pkgs/by-name/ka/kanata/update.sh +++ b/pkgs/by-name/ka/kanata/update.sh @@ -1,8 +1,9 @@ -NEW_VERSION="$(curl --silent https://api.github.com/repos/jtroo/kanata/releases/latest ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} | jq '.tag_name | ltrimstr("v")' --raw-output)" -nix-update --version="$NEW_VERSION" +nix-update + +importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)" +NEW_VERSION=$(nix-instantiate --eval -E "with $importTree; kanata.version" | tr -d '"') karabinerDriverCrateVersion="$(curl -L "https://raw.githubusercontent.com/jtroo/kanata/refs/tags/v$NEW_VERSION/Cargo.lock" | tomlq | jq --raw-output '.package[] | select(.name | test("karabiner-driverkit")) |.version')" newKarabinerDkVersion="$(curl -L "https://crates.io/api/v1/crates/karabiner-driverkit/$karabinerDriverCrateVersion/download" | tar xzvf - --strip-components=1 -O "karabiner-driverkit-$karabinerDriverCrateVersion/c_src/Karabiner-DriverKit-VirtualHIDDevice/version.json" | jq --raw-output0 .package_version)" -importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)" oldDarwinVersion=$(nix-instantiate --eval -E "with $importTree; kanata.passthru.darwinDriverVersion" | tr -d '"') nixFile=$(nix-instantiate --eval --strict -A "kanata.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/') sed -i "$nixFile" -re "s|\"$oldDarwinVersion\"|\"$newKarabinerDkVersion\"|"