%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 and uses edition 2024. If your chroot's Rust is # older the build fails here with a clear message instead of a wall of # compiler errors. BuildRequires: rust >= 1.98.0 BuildRequires: cargo >= 1.98.0 # 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}"} cargo build --release --locked --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