From e6e897d3cc40c96874b7dc7a0911d49e3913893a Mon Sep 17 00:00:00 2001 From: Harinn Date: Fri, 20 Mar 2026 23:55:51 +0700 Subject: [PATCH 1/5] goose-cli: 1.23.2 -> 1.28.0 --- pkgs/by-name/go/goose-cli/fetchers.nix | 21 +++++++++++++++++++ pkgs/by-name/go/goose-cli/librusty_v8.nix | 12 +++++++++++ pkgs/by-name/go/goose-cli/package.nix | 25 ++++++++++++++++++----- 3 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 pkgs/by-name/go/goose-cli/fetchers.nix create mode 100644 pkgs/by-name/go/goose-cli/librusty_v8.nix diff --git a/pkgs/by-name/go/goose-cli/fetchers.nix b/pkgs/by-name/go/goose-cli/fetchers.nix new file mode 100644 index 000000000000..5fa6745ed073 --- /dev/null +++ b/pkgs/by-name/go/goose-cli/fetchers.nix @@ -0,0 +1,21 @@ +# not a stable interface, do not reference outside the goose-cli package but make a +# copy if you need +{ + lib, + stdenv, + fetchurl, +}: + +{ + fetchLibrustyV8 = + args: + fetchurl { + name = "librusty_v8-${args.version}"; + url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz"; + sha256 = args.shas.${stdenv.hostPlatform.system}; + meta = { + inherit (args) version; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; + }; +} diff --git a/pkgs/by-name/go/goose-cli/librusty_v8.nix b/pkgs/by-name/go/goose-cli/librusty_v8.nix new file mode 100644 index 000000000000..3ace8f706ca8 --- /dev/null +++ b/pkgs/by-name/go/goose-cli/librusty_v8.nix @@ -0,0 +1,12 @@ +# auto-generated file -- DO NOT EDIT! +{ fetchLibrustyV8 }: + +fetchLibrustyV8 { + version = "145.0.0"; # From source's Cargo.lock + shas = { + x86_64-linux = "sha256-chV1PAx40UH3Ute5k3lLrgfhih39Rm3KqE+mTna6ysE="; + aarch64-linux = "sha256-4IivYskhUSsMLZY97+g23UtUYh4p5jk7CzhMbMyqXyY="; + x86_64-darwin = "sha256-1jUuC+z7saQfPYILNyRJanD4+zOOhXU2ac/LFoytwho="; + aarch64-darwin = "sha256-yHa1eydVCrfYGgrZANbzgmmf25p7ui1VMas2A7BhG6k="; + }; +} diff --git a/pkgs/by-name/go/goose-cli/package.nix b/pkgs/by-name/go/goose-cli/package.nix index acc6820fa763..e96740633413 100644 --- a/pkgs/by-name/go/goose-cli/package.nix +++ b/pkgs/by-name/go/goose-cli/package.nix @@ -1,17 +1,23 @@ { lib, stdenv, + callPackage, fetchFromGitHub, fetchurl, rustPlatform, + cmake, dbus, libxcb, pkg-config, protobuf, openssl, + cacert, writableTmpDirAsHomeHook, nix-update-script, llvmPackages, + librusty_v8 ? callPackage ./librusty_v8.nix { + inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8; + }, }: let @@ -28,16 +34,16 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "goose-cli"; - version = "1.23.2"; + version = "1.28.0"; src = fetchFromGitHub { owner = "block"; repo = "goose"; tag = "v${finalAttrs.version}"; - hash = "sha256-Zwb3y9XhtmKxJG6XOIHl49YVZMBsYtOPePM7heJfEvE="; + hash = "sha256-/1TtsnNiLoTkvyeFR282qSpo+Jt3pvFxduJ7lyzsTXI="; }; - cargoHash = "sha256-G6Jok2OfSlOVlkF62gxivrKM0VlGqWFNdR0pQh79A0Q="; + cargoHash = "sha256-bhnbSjGqyWbQd5PjZ116JH91vjVy6R/+iBlNKL6debg="; cargoBuildFlags = [ "--bin" @@ -47,8 +53,10 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; nativeBuildInputs = [ + cmake pkg-config protobuf + rustPlatform.bindgenHook ]; buildInputs = [ @@ -57,7 +65,10 @@ rustPlatform.buildRustPackage (finalAttrs: { ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libxcb ]; - env.LIBCLANG_PATH = "${lib.getLib llvmPackages.libclang}/lib"; + env = { + LIBCLANG_PATH = "${lib.getLib llvmPackages.libclang}/lib"; + RUSTY_V8_ARCHIVE = librusty_v8; + }; preBuild = '' mkdir -p tokenizer_files/Xenova--gpt-4o tokenizer_files/Xenova--claude-tokenizer @@ -65,7 +76,10 @@ rustPlatform.buildRustPackage (finalAttrs: { ln -s ${claude-tokenizer} tokenizer_files/Xenova--claude-tokenizer/tokenizer.json ''; - nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + nativeCheckInputs = [ + writableTmpDirAsHomeHook + cacert + ]; __darwinAllowLocalNetworking = true; @@ -128,6 +142,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cloudripper thardin brittonr + miniharinn ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; From 6ec1e96e19af8e918b0a875a16685faec994c404 Mon Sep 17 00:00:00 2001 From: Harinn Date: Sat, 21 Mar 2026 00:02:46 +0700 Subject: [PATCH 2/5] goose-cli: add versionCheckHook --- pkgs/by-name/go/goose-cli/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/go/goose-cli/package.nix b/pkgs/by-name/go/goose-cli/package.nix index e96740633413..66362484deb1 100644 --- a/pkgs/by-name/go/goose-cli/package.nix +++ b/pkgs/by-name/go/goose-cli/package.nix @@ -13,6 +13,7 @@ openssl, cacert, writableTmpDirAsHomeHook, + versionCheckHook, nix-update-script, llvmPackages, librusty_v8 ? callPackage ./librusty_v8.nix { @@ -131,6 +132,10 @@ rustPlatform.buildRustPackage (finalAttrs: { "--skip=test_session_id_propagation_to_llm" ]; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + passthru.updateScript = nix-update-script { }; meta = { From ae580b011f4abeab1c4ddb3af988393aba126ea2 Mon Sep 17 00:00:00 2001 From: Harinn Date: Sat, 21 Mar 2026 12:53:35 +0700 Subject: [PATCH 3/5] goose-cli: skip broken tests on aarch64-linux --- pkgs/by-name/go/goose-cli/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/go/goose-cli/package.nix b/pkgs/by-name/go/goose-cli/package.nix index 66362484deb1..382b40566fb6 100644 --- a/pkgs/by-name/go/goose-cli/package.nix +++ b/pkgs/by-name/go/goose-cli/package.nix @@ -123,6 +123,11 @@ rustPlatform.buildRustPackage (finalAttrs: { "--skip=context_mgmt::auto_compact::tests::test_auto_compact_respects_config" "--skip=scheduler::tests::test_scheduled_session_has_schedule_id" ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ + # Broken on aarch64-linux: request capture races across session_id_propagation_test cases + "--skip=test_session_id_matches_across_calls" + "--skip=test_session_id_propagation_to_llm" + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "--skip=logging::tests::test_log_file_name_no_session" "--skip=recipes::extract_from_cli::tests::test_extract_recipe_info_from_cli_basic" From ee3125aae27ea38b04744ecc710549f1f8067f0b Mon Sep 17 00:00:00 2001 From: Harinn Date: Thu, 26 Mar 2026 22:39:26 +0700 Subject: [PATCH 4/5] goose-cli: fix missing extension dependencies --- pkgs/by-name/go/goose-cli/package.nix | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkgs/by-name/go/goose-cli/package.nix b/pkgs/by-name/go/goose-cli/package.nix index 382b40566fb6..85f5526c094b 100644 --- a/pkgs/by-name/go/goose-cli/package.nix +++ b/pkgs/by-name/go/goose-cli/package.nix @@ -16,9 +16,22 @@ versionCheckHook, nix-update-script, llvmPackages, + makeWrapper, librusty_v8 ? callPackage ./librusty_v8.nix { inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8; }, + + # Extension(s) Dependencies + python3, + bash, + # X11 + xdotool, + wmctrl, + xclip, + xwininfo, + # Wayland + wtype, + wl-clipboard, }: let @@ -58,6 +71,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pkg-config protobuf rustPlatform.bindgenHook + makeWrapper ]; buildInputs = [ @@ -77,6 +91,28 @@ rustPlatform.buildRustPackage (finalAttrs: { ln -s ${claude-tokenizer} tokenizer_files/Xenova--claude-tokenizer/tokenizer.json ''; + postFixup = '' + wrapProgram $out/bin/goose \ + --prefix PATH : ${ + lib.makeBinPath ( + [ + bash + python3 + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + # X11 + xdotool + wmctrl + xclip + xwininfo + # Wayland + wtype + wl-clipboard + ] + ) + } + ''; + nativeCheckInputs = [ writableTmpDirAsHomeHook cacert From d9b7c69c3d23087786213146d01996a54f7c24d7 Mon Sep 17 00:00:00 2001 From: Harinn Date: Thu, 26 Mar 2026 22:41:00 +0700 Subject: [PATCH 5/5] goose-cli: add caniko as a maintainer --- pkgs/by-name/go/goose-cli/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/go/goose-cli/package.nix b/pkgs/by-name/go/goose-cli/package.nix index 85f5526c094b..d0ca81708564 100644 --- a/pkgs/by-name/go/goose-cli/package.nix +++ b/pkgs/by-name/go/goose-cli/package.nix @@ -189,6 +189,7 @@ rustPlatform.buildRustPackage (finalAttrs: { thardin brittonr miniharinn + caniko ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; };