File Ringboard.spec of Package Ringboard
Name: ringboard
Version: 0.5.4~0
Release: 0
Summary: Ringboard is a fast, efficient, and composable clipboard manager for Linux.
License: Apache-2.0
Url: https://github.com/SUPERCILEX/clipboard-history
Source0: clipboard-history-%{version}.tar.zst
Source1: vendor.tar.zst
BuildRequires: cargo-packaging
Requires: ringboard-server = %{version}
%description
Ringboard is a fast, efficient, and composable clipboard manager for Linux.
Basic features:
- Ringboard remembers what you've copied across reboots.
- Ringboard can save anything, including images or arbitrary bytes.
- Your clipboard history is searchable with either Regex or raw queries.
- Ringboard can be installed anywhere (on Linux) and has no ties to a specific desktop environment or framework.
%package server
Summary: This binary is the heart of Ringboard and is the only piece of code capable of writing data to the database
%description server
The server waits for client commands over a Unix socket, processing and responding to requests serially.
%package egui
Summary: Ringboard client that provides a GUI built with egui
Requires: ringboard-server = %{version}
%description egui
Ringboard client that provides a GUI built with egui
%package tui
Summary: Ringboard client that provides a TUI build with ratatui
Requires: ringboard-server = %{version}
%description tui
Ringboard client that provides a TUI build with ratatui. Press ? to show the help bar with usage instructions.
%package x11
Summary: This binary provides an X11 clipboard watching service for the Ringboard database
Requires: ringboard-server = %{version}
%description x11
This binary provides an X11 clipboard watching service for the Ringboard database. It connects to the X11 and Ringboard servers and uses the X11 XFixes extension to monitor the clipboard for new clipboard selections to send to the Ringboard server.
Additionally, it offers a paste server capable of becoming the X11 selection owner for clients to call.
%prep
%autosetup -p1 -a1 -n clipboard-history-%{version}
%build
# Upstream uses nightly-features, so we have to do this very, very discouraged hack :-(
export RUSTC_BOOTSTRAP=1
%{cargo_build} --workspace
%install
install -D -d -m 0755 %{buildroot}%{_bindir}
install -m 0755 %{_builddir}/clipboard-history-%{version}/target/release/%{name} %{buildroot}%{_bindir}/%{name}
install -m 0755 %{_builddir}/clipboard-history-%{version}/target/release/%{name}-tui %{buildroot}%{_bindir}/%{name}-tui
install -m 0755 %{_builddir}/clipboard-history-%{version}/target/release/%{name}-egui %{buildroot}%{_bindir}/%{name}-egui
install -m 0755 %{_builddir}/clipboard-history-%{version}/target/release/%{name}-server %{buildroot}%{_bindir}/%{name}-server
install -D -m 644 %{_builddir}/clipboard-history-%{version}/server/%{name}-server.service %{buildroot}%{_prefix}/lib/systemd/user/%{name}-server.service
install -m 0755 %{_builddir}/clipboard-history-%{version}/target/release/%{name}-x11 %{buildroot}%{_bindir}/%{name}-x11
install -D -m 644 %{_builddir}/clipboard-history-%{version}/x11/%{name}-x11.service %{buildroot}%{_prefix}/lib/systemd/user/%{name}-x11.service
# Upstream tests don't work at the moment
#%%check
#export RUSTC_BOOTSTRAP=1
#%%{cargo_test} --workspace
%files
%license LICENSE-APACHE
%{_bindir}/%{name}
%files server
%{_bindir}/%{name}-server
%{_prefix}/lib/systemd/user/%{name}-server.service
%files egui
%{_bindir}/%{name}-egui
%files tui
%{_bindir}/%{name}-tui
%files x11
%{_bindir}/%{name}-x11
%{_prefix}/lib/systemd/user/%{name}-x11.service
%changelog