diff --git a/pkgs/by-name/qw/qwen-code/add-missing-resolved-integrity-fields.patch b/pkgs/by-name/qw/qwen-code/add-missing-resolved-integrity-fields.patch deleted file mode 100644 index 9dade6622787..000000000000 --- a/pkgs/by-name/qw/qwen-code/add-missing-resolved-integrity-fields.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 0735b59eba183574e080d2912347d58e6e3d158e Mon Sep 17 00:00:00 2001 -From: Sergey Volkov -Date: Fri, 12 Sep 2025 20:06:24 +0200 -Subject: [PATCH] Add missing resolved and integrity fields to several packages - ---- - package-lock.json | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/package-lock.json b/package-lock.json -index 146686dc..9ad9009f 100644 ---- a/package-lock.json -+++ b/package-lock.json -@@ -12574,6 +12574,8 @@ - }, - "packages/cli/node_modules/@testing-library/dom": { - "version": "10.4.0", -+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", -+ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "dev": true, - "license": "MIT", - "peer": true, -@@ -12609,6 +12611,8 @@ - }, - "packages/cli/node_modules/@testing-library/react": { - "version": "16.3.0", -+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", -+ "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", - "dev": true, - "license": "MIT", - "dependencies": { -@@ -12660,6 +12664,8 @@ - }, - "packages/cli/node_modules/aria-query": { - "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", -+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "peer": true, -@@ -12669,6 +12675,8 @@ - }, - "packages/cli/node_modules/emoji-regex": { - "version": "10.4.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", -+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "packages/cli/node_modules/react-is": { -@@ -12681,6 +12689,8 @@ - }, - "packages/cli/node_modules/string-width": { - "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", -+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", -@@ -12815,6 +12825,8 @@ - }, - "packages/core/node_modules/ignore": { - "version": "7.0.5", -+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", -+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "license": "MIT", - "engines": { - "node": ">= 4" --- -2.51.0 - diff --git a/pkgs/by-name/qw/qwen-code/package.nix b/pkgs/by-name/qw/qwen-code/package.nix index 3c087d4a58a7..cf265c7999b5 100644 --- a/pkgs/by-name/qw/qwen-code/package.nix +++ b/pkgs/by-name/qw/qwen-code/package.nix @@ -6,46 +6,40 @@ jq, git, ripgrep, + pkg-config, + glib, + libsecret, }: buildNpmPackage (finalAttrs: { pname = "qwen-code"; - version = "0.0.14"; + version = "0.1.0"; src = fetchFromGitHub { owner = "QwenLM"; repo = "qwen-code"; tag = "v${finalAttrs.version}"; - hash = "sha256-Rld6k0MPfOOncK240zOJbcvheV4UKU2yF7luBrTrnFs="; + hash = "sha256-5XC4Pwf+vuK1T3/bPptUejg8v9wj3izF80Mt+iqVr9Y="; }; - patches = [ - # similar to upstream gemini-cli some node deps are missing resolved and integrity fields - # upstream the problem is solved in master and in v0.4+, eventually the fix should arrive to qwen - ./add-missing-resolved-integrity-fields.patch - ]; - - npmDepsHash = "sha256-43s13HncNKv4uOKVwNvqIF+Ih3rJBWrpVJnE3hCKD2w="; + npmDepsHash = "sha256-Psj/5SDWBnsRJVJnJwXGUgVbqUnjoH6HpAqqFruHkYw="; nativeBuildInputs = [ jq + pkg-config + git ]; buildInputs = [ - git ripgrep + glib + libsecret ]; postPatch = '' - # Remove @lvce-editor/ripgrep dependency (no network on buildPhase - substituteInPlace package.json --replace-fail '"@lvce-editor/ripgrep": "^1.6.0",' "" - substituteInPlace packages/core/package.json --replace-fail '"@lvce-editor/ripgrep": "^1.6.0",' "" - substituteInPlace packages/core/src/tools/ripGrep.ts \ - --replace-fail "const { rgPath } = await import('@lvce-editor/ripgrep');" "const rgPath = 'rg';" - - # patches below remove node-pty dependency which causes build fail on Darwin + # patches below remove node-pty and keytar dependencies which cause build fail on Darwin # should be conditional on platform but since package-lock.json is patched it changes its hash - # though seems like this dependency is not really required by the package + # though seems like these dependencies are not really required by the package ${jq}/bin/jq ' del(.packages."node_modules/node-pty") | del(.packages."node_modules/@lydell/node-pty") | @@ -55,11 +49,18 @@ buildNpmPackage (finalAttrs: { del(.packages."node_modules/@lydell/node-pty-linux-x64") | del(.packages."node_modules/@lydell/node-pty-win32-arm64") | del(.packages."node_modules/@lydell/node-pty-win32-x64") | + del(.packages."node_modules/keytar") | walk( if type == "object" and has("dependencies") then - .dependencies |= with_entries(select(.key | contains("node-pty") | not)) + .dependencies |= with_entries(select(.key | (contains("node-pty") | not) and (contains("keytar") | not))) elif type == "object" and has("optionalDependencies") then - .optionalDependencies |= with_entries(select(.key | contains("node-pty") | not)) + .optionalDependencies |= with_entries(select(.key | (contains("node-pty") | not) and (contains("keytar") | not))) + else . + end + ) | + walk( + if type == "object" and has("peerDependencies") then + .peerDependencies |= with_entries(select(.key | (contains("node-pty") | not) and (contains("keytar") | not))) else . end ) @@ -79,10 +80,14 @@ buildNpmPackage (finalAttrs: { runHook preInstall mkdir -p $out/bin $out/share/qwen-code - cp -r bundle/* $out/share/qwen-code/ - cp node_modules/tiktoken/tiktoken_bg.wasm $out/share/qwen-code/ + cp -r dist/* $out/share/qwen-code/ + # Install production dependencies only + npm prune --production + cp -r node_modules $out/share/qwen-code/ + # Remove broken symlinks that cause issues in Nix environment + find $out/share/qwen-code/node_modules -type l -delete || true patchShebangs $out/share/qwen-code - ln -s $out/share/qwen-code/gemini.js $out/bin/qwen + ln -s $out/share/qwen-code/cli.js $out/bin/qwen runHook postInstall '';