# Fedora COPR spec. Build with: copr-cli build carrel.spec # rust2rpm-shaped but hand-trimmed: carrel vendors nothing and needs no C toolchain. Name: carrel Version: 2026.9.1 Release: 1%{?dist} Summary: A quiet place to read your markdown — a terminal markdown reader License: MIT OR Apache-2.0 URL: https://github.com/VaHughes/carrel Source0: %{url}/archive/v%{version}/carrel-%{version}.tar.gz BuildRequires: cargo BuildRequires: rust >= 1.95 %description Carrel is a free and open-source terminal markdown reader: search that survives reflow and terminal resize, 17 themes, card view for wide tables, mermaid box art, wikilinks, and a home screen that lists the markdown around you. %prep %autosetup -n carrel-%{version} -p1 %build # --locked, because this build has NETWORK ACCESS: COPR needs `--enable-net on` # to fetch the dependency tree at all (see the packaging README), and without # --locked cargo happily re-resolves against crates.io and ignores the # Cargo.lock that ships in the source tarball. That is how a Fedora package # ends up built from a dependency set nobody tested — a semver-compatible # release of any transitive crate is enough. PKGBUILD-carrel uses --frozen for # the same reason; --locked is its half that does not also forbid the fetch. cargo build --release --locked -p carrel %install install -Dm755 target/release/carrel %{buildroot}%{_bindir}/carrel install -Dm644 contrib/carrel.desktop %{buildroot}%{_datadir}/applications/carrel.desktop install -Dm644 contrib/carrel.1 %{buildroot}%{_mandir}/man1/carrel.1 install -Dm644 contrib/completions/carrel.bash %{buildroot}%{_datadir}/bash-completion/completions/carrel install -Dm644 contrib/completions/carrel.zsh %{buildroot}%{_datadir}/zsh/site-functions/_carrel install -Dm644 contrib/completions/carrel.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/carrel.fish # The licences are NOT installed here. `%%license` in %%files below copies them # out of the build directory itself, to %%{_defaultlicensedir}/%%{name} — the # same /usr/share/licenses/carrel/ these two lines used to write by hand. Both # is not belt and braces: it is two writers to one path, and the only reason it # never broke is that the paths happened to agree. `%%license` is the one that # also marks the files as licence text for `rpm -qL`. %check cargo test --locked --workspace %files %{_bindir}/carrel %{_datadir}/applications/carrel.desktop %{_mandir}/man1/carrel.1* %{_datadir}/bash-completion/completions/carrel %{_datadir}/zsh/site-functions/_carrel %{_datadir}/fish/vendor_completions.d/carrel.fish %license LICENSE-MIT LICENSE-APACHE %doc README.md CHANGELOG.md %changelog * Tue Sep 01 2026 Joshua Hughes - 2026.9.1-1 - An adversarial audit of the whole tree: hostile documents, malformed input, signals and a real pty, with a regression test for every fix - A link resolving outside the library asks before it opens - carrel FILE PATTERN exits 1 when nothing matched, as grep does - An unknown or misplaced option, or a width that is not a number, is an error instead of being read as a filename - The directory picker opens on the directory carrel was run from - Minimum supported Rust is 1.95 * Mon Aug 31 2026 Joshua Hughes - 2026.8.31-1 - The home screen notices files written while it is up: a new document appears, a deleted one leaves, an edited one moves up the list - The directory picker opens holding the directory you are already in, instead of an empty input meaning the filesystem root * Thu Aug 27 2026 Joshua Hughes - 2026.8.27-1 - The logo, the demo and three links render on the crates.io page again; they had resolved against the crate's subdirectory, not the repo root - The AUR .SRCINFO no longer disagrees with its PKGBUILD about which tag to fetch; this spec's changelog regained two skipped releases * Wed Aug 26 2026 Joshua Hughes - 2026.8.26-1 -
blocks fold like sections; % jumps between a footnote and its definition; l lists what a note links out to, " lists your bookmarks - Fuzzy-matching pickers; document card (I); paragraph spotlight (S); read-aloud (A); navigable task lists; carrel --render styles a pipe * Sat Aug 22 2026 Joshua Hughes - 2026.8.22-1 - Continue reading on the home screen; bookmarks; the outline in the margin - Backlinks (L) and frontmatter titles in the file list - Scrolling fast no longer eats characters; every frame is one synchronized update; the man page documents every reader key again * Fri Aug 21 2026 Joshua Hughes - 2026.8.21-1 - Diffs read as documents; git pager support - Follow mode for growing documents; copy a code block with y - Attached superscripts (x^2^, H~2~O); home-screen scroll and picker fixes - Windows declined; no Windows binaries are planned * Thu Aug 20 2026 Joshua Hughes - 2026.8.20-1 - Pipe into carrel and it streams as the producer writes; a sticky heading breadcrumb; section folding with za/zM/zR and click-a-heading; and a Homebrew formula on every release. * Mon Aug 17 2026 Joshua Hughes - 2026.8.17-2 - Patch the picker round-trip test to pin the painter's clipping contract; it failed only under COPR's deep /builddir working tree. * Mon Aug 17 2026 Joshua Hughes - 2026.8.17-1 - A 90-column reading measure with full-bleed tables and code, clickable home list and directory picker, time remaining in the status bar, and Esc clears accepted-search highlights. * Sun Aug 16 2026 Joshua Hughes - 2026.8.16-1 - Frontmatter as a metadata card, LaTeX math, definition lists, --version, man page and shell completions, and the Q16 conformance suite. * Wed Aug 12 2026 Joshua Hughes - 2026.8.12-1 - Initial package.