From b962807d0c2ae00e0513b21dce3933e0263fc912 Mon Sep 17 00:00:00 2001 From: ZHAO Jin-Xiang Date: Mon, 12 Jan 2026 04:07:19 +0800 Subject: [PATCH] opencode-desktop: init at 1.1.30 --- pkgs/by-name/op/opencode-desktop/package.nix | 97 ++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 pkgs/by-name/op/opencode-desktop/package.nix diff --git a/pkgs/by-name/op/opencode-desktop/package.nix b/pkgs/by-name/op/opencode-desktop/package.nix new file mode 100644 index 000000000000..085ff3fb8567 --- /dev/null +++ b/pkgs/by-name/op/opencode-desktop/package.nix @@ -0,0 +1,97 @@ +{ + lib, + stdenv, + rustPlatform, + pkg-config, + cargo-tauri, + bun, + nodejs, + cargo, + rustc, + jq, + wrapGAppsHook4, + makeWrapper, + dbus, + glib, + gtk3, + libsoup_3, + librsvg, + libappindicator-gtk3, + glib-networking, + openssl, + webkitgtk_4_1, + opencode, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "opencode-desktop"; + inherit (opencode) + version + src + node_modules + patches + ; + + cargoRoot = "packages/desktop/src-tauri"; + cargoHash = "sha256-bLM/ZcUaaswFrg+WogY81HnTn5do/7tu+JA/+tJNmMw="; + buildAndTestSubdir = finalAttrs.cargoRoot; + + nativeBuildInputs = [ + pkg-config + cargo-tauri.hook + bun + nodejs # for patchShebangs node_modules + cargo + rustc + jq + makeWrapper + ] + ++ 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 + ]; + + strictDeps = true; + + tauriBuildFlags = [ + "--config" + "tauri.conf.json" + "--config" + "tauri.prod.conf.json" + "--no-sign" + ]; + + 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} + ''; + + meta = with lib; { + description = "AI coding agent desktop client"; + homepage = "https://opencode.ai"; + license = licenses.mit; + maintainers = with maintainers; [ + xiaoxiangmoe + ]; + mainProgram = "OpenCode"; + platforms = [ + "aarch64-linux" + "x86_64-linux" + "aarch64-darwin" + "x86_64-darwin" + ]; + }; +})