# https://github.com/bootc-dev/bootc/issues/1640 %if 0%{?fedora} || 0%{?rhel} >= 10 || 0%{?rust_minor} >= 89 %global new_cargo_macros 1 %else %global new_cargo_macros 0 %endif %define vendor_url https://github.com/rhel-lightspeed/goose Name: goose Version: 1.13.1 Release: %autorelease Summary: an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM URL: https://github.com/block/goose Source0: %{vendor_url}/releases/download/v%{version}/%{name}-%{version}-patched.tar.zstd Source1: %{vendor_url}/releases/download/v%{version}/%{name}-%{version}-vendor.tar.zstd License: %{shrink: (Apache-2.0 OR MIT) AND BSD-3-Clause (MIT OR Apache-2.0) AND NCSA (MIT OR Apache-2.0) AND Unicode-3.0 0BSD OR MIT OR Apache-2.0 Apache-2.0 Apache-2.0 OR BSL-1.0 Apache-2.0 OR ISC OR MIT Apache-2.0 OR MIT Apache-2.0 WITH LLVM-exception Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT BSD-2-Clause BSD-2-Clause OR Apache-2.0 OR MIT BSD-3-Clause BSD-3-Clause AND MIT BSD-3-Clause OR MIT BSL-1.0 CC0-1.0 CC0-1.0 OR Apache-2.0 CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception CC0-1.0 OR MIT-0 OR Apache-2.0 ISC ISC AND (Apache-2.0 OR ISC) ISC AND (Apache-2.0 OR ISC) AND OpenSSL LGPL-3.0-or-later MIT MIT AND BSD-3-Clause MIT OR Apache-2.0 MIT OR Apache-2.0 OR Zlib MIT OR Zlib OR Apache-2.0 MIT-0 MPL-2.0 Unicode-3.0 Unlicense OR MIT Zlib Zlib OR Apache-2.0 OR MIT } %if 0%{?rhel} BuildRequires: rust-toolset %else BuildRequires: cargo-rpm-macros >= 25 %endif BuildRequires: systemd BuildRequires: openssl-devel BuildRequires: cmake BuildRequires: clang-libs BuildRequires: clang BuildRequires: libxcb-devel # Rust dependencies BuildRequires: rust-ahash-devel BuildRequires: rust-anstream-devel BuildRequires: rust-anyhow-devel BuildRequires: rust-async-stream-devel BuildRequires: rust-async-trait-devel BuildRequires: rust-axum-devel BuildRequires: rust-base64-devel BuildRequires: rust-bat-devel BuildRequires: rust-blake3-devel BuildRequires: rust-bytes-devel BuildRequires: rust-chrono-devel BuildRequires: rust-clap-devel BuildRequires: rust-colored-devel BuildRequires: rust-config-devel BuildRequires: rust-console-devel BuildRequires: rust-ctor-devel BuildRequires: rust-dashmap-devel BuildRequires: rust-dirs-devel BuildRequires: rust-dotenvy-devel BuildRequires: rust-etcetera-devel BuildRequires: rust-fs2-devel BuildRequires: rust-futures-devel BuildRequires: rust-glob-devel BuildRequires: rust-http-devel BuildRequires: rust-http-body-util-devel BuildRequires: rust-hyper-devel BuildRequires: rust-ignore-devel BuildRequires: rust-image-devel BuildRequires: rust-include_dir-devel BuildRequires: rust-indexmap-devel BuildRequires: rust-indicatif-devel BuildRequires: rust-indoc-devel BuildRequires: rust-insta-devel BuildRequires: rust-is-terminal-devel BuildRequires: rust-jsonwebtoken-devel BuildRequires: rust-lazy_static-devel BuildRequires: rust-libc-devel BuildRequires: rust-lopdf-devel BuildRequires: rust-lru-devel BuildRequires: rust-minijinja-devel BuildRequires: rust-mockall-devel BuildRequires: rust-nanoid-devel BuildRequires: rust-nix-devel BuildRequires: rust-once_cell-devel BuildRequires: rust-open-devel BuildRequires: rust-paste-devel BuildRequires: rust-rand-devel BuildRequires: rust-rayon-devel BuildRequires: rust-regex-devel BuildRequires: rust-reqwest-devel BuildRequires: rust-rustyline-devel BuildRequires: rust-schemars-devel BuildRequires: rust-serde-devel BuildRequires: rust-serde_json-devel BuildRequires: rust-serde_path_to_error-devel BuildRequires: rust-serde_urlencoded-devel BuildRequires: rust-serde_with-devel BuildRequires: rust-serde_yaml-devel BuildRequires: rust-serial_test-devel BuildRequires: rust-sha2-devel BuildRequires: rust-shellexpand-devel BuildRequires: rust-shlex-devel BuildRequires: rust-sqlx-devel BuildRequires: rust-streaming-iterator-devel BuildRequires: rust-sys-info-devel BuildRequires: rust-sysinfo-devel BuildRequires: rust-tar-devel BuildRequires: rust-temp-env-devel BuildRequires: rust-tempfile-devel BuildRequires: rust-test-case-devel BuildRequires: rust-thiserror-devel BuildRequires: rust-tokio-devel BuildRequires: rust-tokio-stream-devel BuildRequires: rust-tokio-util-devel BuildRequires: rust-tonic-devel BuildRequires: rust-tower-devel BuildRequires: rust-tower-http-devel BuildRequires: rust-tracing-devel BuildRequires: rust-tracing-appender-devel BuildRequires: rust-tracing-subscriber-devel BuildRequires: rust-tree-sitter-devel BuildRequires: rust-tree-sitter-go-devel BuildRequires: rust-tree-sitter-java-devel BuildRequires: rust-tree-sitter-javascript-devel BuildRequires: rust-tree-sitter-python-devel BuildRequires: rust-tree-sitter-ruby-devel BuildRequires: rust-tree-sitter-rust-devel BuildRequires: rust-unicode-normalization-devel BuildRequires: rust-url-devel BuildRequires: rust-urlencoding-devel BuildRequires: rust-uuid-devel BuildRequires: rust-webbrowser-devel BuildRequires: rust-which-devel BuildRequires: rust-wiremock-devel BuildRequires: rust-zip-devel # End rust dependencies # Bundled dependencies Provides: bundled(crate(agent-client-protocol)) = 0.4.0 Provides: bundled(crate(aws-config)) = 1.5.18 Provides: bundled(crate(aws-sdk-bedrockruntime)) = 1.106.0 Provides: bundled(crate(aws-sdk-sagemakerruntime)) = 1.63.0 Provides: bundled(crate(aws-smithy-types)) = 1.3.2 Provides: bundled(crate(cliclack)) = 0.3.5 Provides: bundled(crate(criterion)) = 0.5.1 Provides: bundled(crate(devgen-tree-sitter-swift)) = 0.21.0 Provides: bundled(crate(docx-rs)) = 0.4.17 Provides: bundled(crate(jsonschema)) = 0.30.0 Provides: bundled(crate(keyring)) = 3.6.2 Provides: bundled(crate(mpatch)) = 0.2.0 Provides: bundled(crate(oauth2)) = 5.0.0 Provides: bundled(crate(opentelemetry)) = 0.27.1 Provides: bundled(crate(opentelemetry-appender-tracing)) = 0.27.0 Provides: bundled(crate(opentelemetry-otlp)) = 0.27.0 Provides: bundled(crate(opentelemetry_sdk)) = 0.27.1 Provides: bundled(crate(rmcp)) = 0.8.3 Provides: bundled(crate(tiktoken-rs)) = 0.6.0 Provides: bundled(crate(tokio-cron-scheduler)) = 0.14.0 Provides: bundled(crate(tracing-opentelemetry)) = 0.28.0 Provides: bundled(crate(tree-sitter-kotlin)) = 0.3.8 Provides: bundled(crate(umya-spreadsheet)) = 2.2.3 Provides: bundled(crate(utoipa)) = 4.2.3 Provides: bundled(crate(winapi)) = 0.3.9 Provides: bundled(crate(xcap)) = 0.0.14 # End bundled dependencies %description an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM %prep %autosetup -a1 -n %{name}-%{version} # Taken from https://src.fedoraproject.org/rpms/bpfman/blob/f43/f/bpfman.spec#_88 find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+' # Default -v vendor config doesn't support non-crates.io deps (i.e. git) cp .cargo/vendor-config.toml . %cargo_prep -N cat vendor-config.toml >> .cargo/config.toml rm vendor-config.toml %build %cargo_build %cargo_vendor_manifest # https://pagure.io/fedora-rust/rust-packaging/issue/33 sed -i -e '/https:\/\//d' cargo-vendor.txt %cargo_license_summary %{cargo_license} > LICENSE.dependencies %install # Install binaries install -D -m 0755 target/release/goose %{buildroot}%{_bindir}/goose install -D -m 0755 target/release/goosed %{buildroot}%{_bindir}/goosed %files %license LICENSE %license LICENSE.dependencies %license cargo-vendor.txt %{_bindir}/goose %{_bindir}/goosed %changelog * Tue Nov 11 2025 Rodolfo Olivieri - 1.13.1-1 - Initial goose package release