%define debug_package %{nil} %bcond_with vendored Name: gemini-cli Version: 0.40.1 Release: 4%{?dist} Summary: AI agent that brings Gemini into your terminal License: Apache-2.0 URL: https://github.com/google-gemini/gemini-cli Source0: https://github.com/google-gemini/gemini-cli/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz %if %{with vendored} Source1: %{name}-%{version}-vendor.tar.zst %endif BuildRequires: nodejs >= 20 BuildRequires: npm BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make Requires: nodejs >= 20 %description gemini-cli is an open-source AI agent that brings the power of Gemini directly into your terminal. It provides an interactive CLI for code generation, explanation, refactoring, and more. %prep %autosetup -n %{name}-%{version} %if %{with vendored} # Source1 contains pre-built node_modules/ (with workspace symlinks preserved) tar -xaf %{SOURCE1} test -d node_modules %endif %build %if %{with vendored} # node_modules from Source1 — no npm install needed %else npm ci %endif npm run generate || true # Build all workspaces explicitly by path (name collision: both root and # packages/cli/ use name @google/gemini-cli, confusing --workspaces) for ws in packages/core packages/devtools packages/sdk packages/test-utils packages/vscode-ide-companion packages/a2a-server packages/cli; do npm run build -w "$ws" done %install mkdir -p %{buildroot}%{_datadir}/gemini-cli cp -ar . %{buildroot}%{_datadir}/gemini-cli/ mkdir -p %{buildroot}%{_bindir} cat > %{buildroot}%{_bindir}/gemini << 'GEMINI_WRAPPER' #!/bin/bash exec /usr/bin/node /usr/share/gemini-cli/packages/cli/dist/index.js "$@" GEMINI_WRAPPER chmod +x %{buildroot}%{_bindir}/gemini %check ls -la packages/cli/dist/ 2>&1 %{buildroot}%{_bindir}/gemini --version %files %license LICENSE %doc README.md %{_bindir}/gemini %{_datadir}/gemini-cli/ %changelog * Tue May 05 2026 sachesi - 0.40.1-4 - Build workspaces by explicit path (name collision @google/gemini-cli confuses --workspaces) * Tue May 05 2026 sachesi - 0.40.1-3 - Fix non-vendored build: remove --ignore-scripts so esbuild binary installs * Tue May 05 2026 sachesi - 0.40.1-2 - Default to online build (--without vendored). Set enable_net=True in Copr. * Tue May 05 2026 sachesi - 0.40.1-1 - Initial import for COPR - Vendored node_modules for offline COPR builds (Source1) - npm ci + npm run build --workspaces for build