# bothy — RPM packaging for Copr. # # This builds from the GitHub source tag rather than repackaging the release # binary, because a distro package that ships someone else's prebuilt binary is # a distro package in name only. Copr build roots have no network, so the one # dependency is vendored in the repository and the build runs with -mod=vendor # and GOPROXY=off — if either were wrong the build would fail here rather than # silently reach out. # # Note this installs the bothy *binary* system-wide. The workspace it manages # stays per-user in ~/.local/share/bothy, exactly as it does for any other # install method; nothing here changes what bothy does at runtime. %global goipath github.com/bspeelm/bothy %global debug_package %{nil} Name: bothy Version: 0.14.0 Release: 1%{?dist} Summary: A terminal workspace assembled from tools you already have License: MIT URL: https://github.com/bspeelm/bothy Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: golang >= 1.24 BuildRequires: git-core # Deliberately no Requires. bothy supplies whatever tool is missing into its own # directory at first run, checksum-verified, and never asks a package manager # for anything — declaring dependencies here would be a second, contradictory # opinion about how the workspace gets its tools. See PLAN.md §4. %description bothy opens a persistent terminal layout — a file browser, an agent and a shell — and reports what is wrong and how to fix it. It installs any missing tool into its own directory, writes its own configuration there, and leaves your dotfiles untouched: its own files live under ~/.local/share/bothy and your settings under ~/.config/bothy. `bothy uninstall` removes the tree and the binary, naming what it leaves. %prep %autosetup -n %{name}-%{version} %build export CGO_ENABLED=0 export GOFLAGS="-mod=vendor" export GOPROXY=off go build -trimpath -ldflags "-s -w -X main.Version=%{version}" -o %{name} ./cmd/%{name} %install install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} # Shell completion. dnf writes these, not bothy: ADR-002 forbids bothy touching # a root path, and says nothing about a package manager doing its own job. install -Dpm 0644 completions/bothy.bash %{buildroot}%{_datadir}/bash-completion/completions/%{name} install -Dpm 0644 completions/_bothy %{buildroot}%{_datadir}/zsh/site-functions/_%{name} %check export GOFLAGS="-mod=vendor" export GOPROXY=off # The bootstrap tests start a local HTTP server, which the build root allows; # nothing here reaches the network. go test ./... %files %license LICENSE %doc README.md NOTICE %{_bindir}/%{name} # The directories are owned here as well as by bash-completion and zsh. Owning # a directory jointly is normal; the alternative is requiring those packages, # and bothy declares no Requires on purpose. %dir %{_datadir}/bash-completion/completions %dir %{_datadir}/zsh/site-functions %{_datadir}/bash-completion/completions/%{name} %{_datadir}/zsh/site-functions/_%{name} %changelog * Fri Oct 23 2026 Bryan Speelman - 0.14.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.14.0 * Tue Oct 13 2026 Bryan Speelman - 0.13.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.13.1 * Tue Sep 22 2026 Bryan Speelman - 0.13.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.13.0 * Mon Sep 14 2026 Bryan Speelman - 0.12.2-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.12.2 * Tue Sep 08 2026 Bryan Speelman - 0.12.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.12.1 * Tue Sep 08 2026 Bryan Speelman - 0.12.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.12.0 * Mon Sep 07 2026 Bryan Speelman - 0.11.2-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.11.2 * Mon Sep 07 2026 Bryan Speelman - 0.11.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.11.1 * Mon Sep 07 2026 Bryan Speelman - 0.11.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.11.0 * Fri Sep 04 2026 Bryan Speelman - 0.10.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.10.1 * Fri Sep 04 2026 Bryan Speelman - 0.10.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.10.0 * Fri Sep 04 2026 Bryan Speelman - 0.9.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.9.1 * Fri Sep 04 2026 Bryan Speelman - 0.9.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.9.0 * Wed Sep 02 2026 Bryan Speelman - 0.8.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.8.1 * Wed Sep 02 2026 Bryan Speelman - 0.8.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.8.0 * Wed Sep 02 2026 Bryan Speelman - 0.7.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.7.0 * Wed Sep 02 2026 Bryan Speelman - 0.6.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.6.0 * Wed Sep 02 2026 Bryan Speelman - 0.5.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.5.0 * Wed Sep 02 2026 Bryan Speelman - 0.4.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.4.0 * Wed Sep 02 2026 Bryan Speelman - 0.3.2-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.3.2 * Tue Sep 01 2026 Bryan Speelman - 0.3.1-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.3.1 * Tue Sep 01 2026 Bryan Speelman - 0.3.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.3.0 * Tue Sep 01 2026 Bryan Speelman - 0.2.0-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.2.0 * Mon Aug 31 2026 Bryan Speelman - 0.1.5-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.1.5 * Mon Aug 31 2026 Bryan Speelman - 0.1.4-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.1.4 * Mon Aug 31 2026 Bryan Speelman - 0.1.3-1 - See https://github.com/bspeelm/bothy/releases/tag/v0.1.3 * Mon Aug 31 2026 Bryan Speelman - 0.1.2-1 - Initial Copr package. - Reports its real version when built without the release ldflags.