From 0c974c8c232302558c5e6786fb2e694b486d5a18 Mon Sep 17 00:00:00 2001 From: Yiyu Zhou Date: Tue, 24 Mar 2026 22:11:15 -0700 Subject: [PATCH 1/2] opencode-desktop: fix build --- pkgs/by-name/op/opencode-desktop/package.nix | 30 +++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/op/opencode-desktop/package.nix b/pkgs/by-name/op/opencode-desktop/package.nix index 01349c081c21..b79591c986de 100644 --- a/pkgs/by-name/op/opencode-desktop/package.nix +++ b/pkgs/by-name/op/opencode-desktop/package.nix @@ -14,6 +14,7 @@ dbus, glib, gtk3, + gst_all_1, libsoup_3, librsvg, libappindicator-gtk3, @@ -47,17 +48,24 @@ rustPlatform.buildRustPackage (finalAttrs: { ] ++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ]; - buildInputs = lib.optionals stdenv.isLinux [ - dbus - glib - gtk3 - libsoup_3 - librsvg - libappindicator-gtk3 - glib-networking - openssl - webkitgtk_4_1 - ]; + buildInputs = ( + lib.optionals stdenv.isLinux [ + dbus + glib + gtk3 + libsoup_3 + librsvg + libappindicator-gtk3 + glib-networking + openssl + webkitgtk_4_1 + ] + ++ (with gst_all_1; [ + gst-plugins-bad # fakevideosink + gst-plugins-base # appsink and autoaudiosink + gst-plugins-good # autoaudiosink + ]) + ); strictDeps = true; From eeb8939277fb5ddf92bf7253b960a32993ed8e4c Mon Sep 17 00:00:00 2001 From: Yiyu Zhou Date: Tue, 24 Mar 2026 22:38:50 -0700 Subject: [PATCH 2/2] 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 ]; }; })