From eeb8939277fb5ddf92bf7253b960a32993ed8e4c Mon Sep 17 00:00:00 2001 From: Yiyu Zhou Date: Tue, 24 Mar 2026 22:38:50 -0700 Subject: [PATCH] opencode-desktop: cleanup --- pkgs/by-name/op/opencode-desktop/package.nix | 78 ++++++++++---------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/pkgs/by-name/op/opencode-desktop/package.nix b/pkgs/by-name/op/opencode-desktop/package.nix index b79591c986de..65894a1ae268 100644 --- a/pkgs/by-name/op/opencode-desktop/package.nix +++ b/pkgs/by-name/op/opencode-desktop/package.nix @@ -1,28 +1,35 @@ { - lib, - stdenv, - rustPlatform, - pkg-config, - cargo-tauri, bun, - nodejs, cargo, - rustc, - jq, - wrapGAppsHook4, - makeWrapper, + cargo-tauri, dbus, glib, - gtk3, - gst_all_1, - libsoup_3, - librsvg, - libappindicator-gtk3, glib-networking, - openssl, - webkitgtk_4_1, + gst_all_1, + gtk3, + jq, + lib, + libappindicator-gtk3, + librsvg, + libsoup_3, + makeBinaryWrapper, + nodejs, opencode, + openssl, + pkg-config, + rustPlatform, + rustc, + stdenvNoCC, + webkitgtk_4_1, + wrapGAppsHook4, }: + +let + gtk = gtk3; + libappindicator-gtk = libappindicator-gtk3; + libsoup = libsoup_3; + webkitgtk = webkitgtk_4_1; +in rustPlatform.buildRustPackage (finalAttrs: { pname = "opencode-desktop"; inherit (opencode) @@ -44,21 +51,21 @@ rustPlatform.buildRustPackage (finalAttrs: { cargo rustc jq - makeWrapper + makeBinaryWrapper ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ]; + ++ lib.optionals stdenvNoCC.hostPlatform.isLinux [ wrapGAppsHook4 ]; buildInputs = ( - lib.optionals stdenv.isLinux [ + lib.optionals stdenvNoCC.isLinux [ dbus glib - gtk3 - libsoup_3 - librsvg - libappindicator-gtk3 glib-networking + gtk + libappindicator-gtk + librsvg + libsoup openssl - webkitgtk_4_1 + webkitgtk ] ++ (with gst_all_1; [ gst-plugins-bad # fakevideosink @@ -67,8 +74,6 @@ rustPlatform.buildRustPackage (finalAttrs: { ]) ); - strictDeps = true; - tauriBuildFlags = [ "--config" "tauri.conf.json" @@ -80,26 +85,17 @@ rustPlatform.buildRustPackage (finalAttrs: { preBuild = '' cp -a ${finalAttrs.node_modules}/{node_modules,packages} . chmod -R u+w node_modules packages - patchShebangs node_modules - patchShebangs packages/desktop/node_modules - - mkdir -p packages/desktop/src-tauri/sidecars - cp ${opencode}/bin/opencode packages/desktop/src-tauri/sidecars/opencode-cli-${stdenv.hostPlatform.rust.rustcTarget} + patchShebangs node_modules packages/desktop/node_modules + install -D ${lib.getExe opencode} \ + packages/desktop/src-tauri/sidecars/opencode-cli-${stdenvNoCC.hostPlatform.rust.rustcTarget} ''; meta = { description = "AI coding agent desktop client"; homepage = "https://opencode.ai"; + inherit (opencode.meta) platforms; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ - xiaoxiangmoe - ]; mainProgram = "OpenCode"; - platforms = [ - "aarch64-linux" - "x86_64-linux" - "aarch64-darwin" - "x86_64-darwin" - ]; + maintainers = with lib.maintainers; [ xiaoxiangmoe ]; }; })