Name: potty Version: 0.3.9 Release: 1%{?dist} Summary: GPU-accelerated terminal emulator with visual tabs and panes License: MIT URL: https://github.com/decaychain/potty Source0: %{name}-%{version}.tar.gz # COPR mock chroots must have network access enabled in the project settings, # otherwise cargo cannot fetch crate dependencies while building. BuildRequires: rust BuildRequires: cargo BuildRequires: gcc # Used via RUSTFLAGS=-fuse-ld=lld below. BuildRequires: lld # Everything graphical is dlopen'd at runtime (wayland, xkbcommon, vulkan) — the # binary only links libc/libm/libgcc — so rpm's automatic dependency generator # can't see these. Declare them by hand. Requires: libwayland-client Requires: libwayland-cursor Requires: libwayland-egl Requires: libxkbcommon Requires: vulkan-loader # A monospace font for the default family (fontdb scans the system font dirs). Requires: dejavu-sans-mono-fonts # The CLI helpers ship in a subpackage so a remote host can install just those # (no GUI/Wayland deps); on a desktop they come along by default. Recommends: %{name}-tools = %{version}-%{release} %description potty is a GPU-accelerated terminal emulator in Rust with a deliberately visual, pointer-driven take on tabs and panes: click to focus, drag the dividers to resize, right-click for the menu. Wayland-native, with a custom per-cell GPU renderer and real multiplexing (a PTY per pane). %package tools Summary: Remote-session and notification helpers for potty # Plain CLI tools: rpm's automatic dependency generator captures their (libc-only) # needs, and they link none of potty's GUI/Wayland stack — so this installs cleanly # on a headless remote host. %description tools Helper programs for potty that carry none of its GUI dependencies, so they can be installed on remote hosts: * potty-session — the multiplexer potty drives over SSH for persistent remote sessions (detach/reattach, with splits and tabs that survive disconnects). * potty-notify — the attention-feed helper that agentic CLIs invoke from a hook. %prep %setup -q %build # Link with LLD to match the binary produced by the project's GitHub-Actions / # upstream builds. (Defensive: the upstream Fedora package this mirrors hit a # DT_NEEDED ordering crash on NVIDIA + Wayland with the default BFD linker.) export RUSTFLAGS="${RUSTFLAGS:-} -Clink-arg=-fuse-ld=lld" cargo build --release %install install -Dm755 target/release/%{name} %{buildroot}%{_bindir}/%{name} # Helpers (-tools subpackage). potty-session is the remote multiplexer; potty-notify # is the attention-feed helper agentic CLIs invoke from a hook (docs/attention-feed.md) # — both must be on PATH. install -Dm755 target/release/%{name}-session %{buildroot}%{_bindir}/%{name}-session install -Dm755 target/release/%{name}-notify %{buildroot}%{_bindir}/%{name}-notify install -Dm644 packaging/fedora/io.github.decaychain.potty.desktop \ %{buildroot}%{_datadir}/applications/io.github.decaychain.potty.desktop # Scalable source plus a few raster sizes for the hicolor icon theme. install -Dm644 assets/icon.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/io.github.decaychain.potty.svg for s in 48 64 128 256; do install -Dm644 assets/icon-${s}.png \ %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/io.github.decaychain.potty.png done %files %license LICENSE %{_bindir}/%{name} %{_datadir}/applications/io.github.decaychain.potty.desktop %{_datadir}/icons/hicolor/scalable/apps/io.github.decaychain.potty.svg %{_datadir}/icons/hicolor/*/apps/io.github.decaychain.potty.png %files tools %license LICENSE %{_bindir}/%{name}-session %{_bindir}/%{name}-notify %changelog * Sat Jun 20 2026 Decay Chain - 0.3.9-1 - Automated COPR build