diff --git a/pkgs/by-name/op/opencode/package.nix b/pkgs/by-name/op/opencode/package.nix index 90868aea81f1..deec46072b9a 100644 --- a/pkgs/by-name/op/opencode/package.nix +++ b/pkgs/by-name/op/opencode/package.nix @@ -1,9 +1,11 @@ { lib, + stdenv, stdenvNoCC, buildGoModule, bun, fetchFromGitHub, + makeBinaryWrapper, models-dev, nix-update-script, testers, @@ -12,10 +14,10 @@ let opencode-node-modules-hash = { - "aarch64-darwin" = "sha256-LNp9sLhNUUC4ujLYPvfPx423GlXuIS0Z2H512H5oY8s="; - "aarch64-linux" = "sha256-xeKZwNV4ScF9p1vAcVR+vk4BiEpUH+AOGb7DQ2vLl1I="; - "x86_64-darwin" = "sha256-4NaHXeWf57dGVV+KP3mBSIUkbIApT19BuADT0E4X+rg="; - "x86_64-linux" = "sha256-7Hc3FJcg2dA8AvGQlS082fO1ehGBMPXWPF8N+sAHh2I="; + "aarch64-darwin" = "sha256-/s6eAI1VJ0kXrxP5yTi+jwNqHBCRcoltJC86AT7nVdI="; + "aarch64-linux" = "sha256-aG5e5HMcxO9P7ciZ9cg8uY1rxDpTOKdR31z0L2d9dxY="; + "x86_64-darwin" = "sha256-jkAFmTb+cTO/B7a7MgaKqOzZI3QPkM3uW2RULnBcxSI="; + "x86_64-linux" = "sha256-ql4qcMtuaRwSVVma3OeKkc9tXhe21PWMMko3W3JgpB0="; }; bun-target = { "aarch64-darwin" = "bun-darwin-arm64"; @@ -26,12 +28,12 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "opencode"; - version = "0.4.1"; + version = "0.4.26"; src = fetchFromGitHub { owner = "sst"; repo = "opencode"; tag = "v${finalAttrs.version}"; - hash = "sha256-LEFmfsqhCuGcRK7CEPZb6EZfjOHAyYpUHptXu04fjpQ="; + hash = "sha256-sQ1le6/OJb22Kehjj4glUsavHE08u0e2I7h8lW9MO9E="; }; tui = buildGoModule { @@ -40,7 +42,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { modRoot = "packages/tui"; - vendorHash = "sha256-jGaTgKyAvBMt8Js5JrPFUayhVt3QhgyclFoNatoHac4="; + vendorHash = "sha256-jINbGug/SPGBjsXNsC9X2r5TwvrOl5PJDL+lrOQP69Q="; subPackages = [ "cmd/opencode" ]; @@ -109,6 +111,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nativeBuildInputs = [ bun + makeBinaryWrapper models-dev ]; @@ -152,6 +155,15 @@ stdenvNoCC.mkDerivation (finalAttrs: { runHook postInstall ''; + # Execution of commands using bash-tool fail on linux with + # Error [ERR_DLOPEN_FAILED]: libstdc++.so.6: cannot open shared object file: No such + # file or directory + # Thus, we add libstdc++.so.6 manually to LD_LIBRARY_PATH + postFixup = '' + wrapProgram $out/bin/opencode \ + --set LD_LIBRARY_PATH "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" + ''; + passthru = { tests.version = testers.testVersion { package = finalAttrs.finalPackage;