%global forgeurl https://github.com/atuinsh/atuin # Rust release builds carry no debug info by default, so an empty debuginfo # subpackage would fail the build. Skip it. %global debug_package %{nil} Name: atuin Version: 18.20.1 Release: 1%{?dist} Summary: Magical shell history with search, sync and stats License: MIT URL: https://atuin.sh Source0: %{forgeurl}/archive/v%{version}/%{name}-%{version}.tar.gz # atuin declares MSRV 1.98.0, but Fedora stable currently ships older Rust. # The declared MSRV is a floor the upstream authors chose, not necessarily # what the code needs, so the build below passes --ignore-rust-version. BuildRequires: rust BuildRequires: cargo # tree-sitter and libsqlite3-sys compile bundled C BuildRequires: gcc # reqwest is configured with native-tls, so OpenSSL is linked against BuildRequires: openssl-devel BuildRequires: pkgconf-pkg-config # build.rs shells out to git for the commit hash; it degrades gracefully, # but this keeps the version string sensible BuildRequires: git-core # The daemon's protobufs are compiled by protox at build time, so protoc is # deliberately NOT required. ExclusiveArch: x86_64 aarch64 %description Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands: exit code, working directory, hostname, session, and duration. It provides a full-screen fuzzy search interface bound to Ctrl-R and the up arrow, plus optional end-to-end encrypted sync across machines. This package builds the client with the default feature set (sync, clipboard, update check, daemon, AI and PTY proxy). It does not include the sync server. %prep %autosetup -n %{name}-%{version} %build # Fedora's %%cargo_build macro expects a rust2rpm-style vendored registry. # This package fetches crates from the network during the build instead, # which COPR's buildroots permit. export CARGO_HOME="%{_builddir}/.cargo" # Only set if the macro exists, so an older buildroot doesn't end up with a # literal "%%{build_rustflags}" in RUSTFLAGS. %{?build_rustflags:export RUSTFLAGS="%{build_rustflags}"} # --ignore-rust-version overrides the rust-version floor declared in # Cargo.toml. Edition 2024 still needs Rust >= 1.85, which Fedora has. cargo build --release --locked --ignore-rust-version --package atuin %install install -Dpm0755 target/release/%{name} %{buildroot}%{_bindir}/%{name} # Shell completions, generated by the binary we just built. BIN=target/release/%{name} install -d %{buildroot}%{_datadir}/bash-completion/completions $BIN gen-completions --shell bash > %{buildroot}%{_datadir}/bash-completion/completions/%{name} install -d %{buildroot}%{_datadir}/zsh/site-functions $BIN gen-completions --shell zsh > %{buildroot}%{_datadir}/zsh/site-functions/_%{name} install -d %{buildroot}%{_datadir}/fish/vendor_completions.d $BIN gen-completions --shell fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/%{name}.fish %check target/release/%{name} --version %files %license LICENSE %doc README.md CHANGELOG.md %{_bindir}/%{name} %{_datadir}/bash-completion/completions/%{name} %{_datadir}/zsh/site-functions/_%{name} %{_datadir}/fish/vendor_completions.d/%{name}.fish %changelog * Fri Aug 28 2026 Dexxiez - 18.20.1-1 - Initial package