packaging/rpm/sbm.spec (2770 bytes)
1 Name: sbm 2 Version: 0.3 3 Release: 1%{?dist} 4 Summary: Bookmark manager made of POSIX sh scripts, driven by dmenu or fzf 5 6 # Upstream has not chosen a licence yet and ships no LICENSE file. Replace 7 # SBM_LICENSE_TBD with the SPDX identifier, and add the LICENSE file to the 8 # %%files section with %%license once upstream ships one. rpmlint reports 9 # the token as an invalid licence, which is intended. 10 License: SBM_LICENSE_TBD 11 URL: https://github.com/equwal/sbm 12 # No release tag exists yet. Once v0.3 is tagged, fetch with: 13 # spectool -g sbm.spec 14 Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz 15 16 BuildArch: noarch 17 18 BuildRequires: make 19 # make check runs shellcheck -s sh over every script before the test suite. 20 # Both Fedora and openSUSE call the package ShellCheck. 21 BuildRequires: ShellCheck 22 23 # Rich dependencies need rpm >= 4.13: Fedora, and openSUSE Leap 15 and later. 24 # They are the only honest way to say "dmenu or fzf". 25 Requires: (dmenu or fzf) 26 Requires: /bin/sh 27 Requires: awk 28 29 Recommends: (xclip or xsel or wl-clipboard) 30 Recommends: xdg-utils 31 32 # bm-title and bm-check 33 Suggests: curl 34 # bm-import, for Chromium JSON bookmark files only 35 Suggests: jq 36 # bm-commit 37 Suggests: git-core 38 39 %description 40 sbm keeps bookmarks in one tab separated file: URL, description, tags. Lines 41 starting with # are ignored, so cut, grep, awk and an editor work on it as 42 well as the tools do. 43 44 bm picks a bookmark with dmenu, or with fzf on a bare terminal, and then 45 opens it, copies it, edits it or deletes it. Text that is no bookmark is 46 opened as an address or searched for on the web. 47 48 The rest are small filters that read and write bookmark lines: bm-import 49 turns a browser's bookmarks into bookmark lines, bm-check reports dead links, 50 bm-html writes a searchable web page, bm-migrate converts the old file 51 format, bm-title prints a page's title and bm-commit keeps the bookmark 52 file's history in git. 53 54 Everything is POSIX sh and POSIX utilities. Nothing is compiled. 55 56 %prep 57 %autosetup 58 59 %build 60 # Nothing is compiled; the package is a set of sh scripts. 61 62 %install 63 %make_install PREFIX=%{_prefix} 64 65 # Shipped as documentation, not as configuration: the user copies what they 66 # want to ~/.local/share/sbm/. 67 mkdir -p examples 68 cp -p usertags engines examples/ 69 70 %check 71 # The suite scripts the menu, the clipboard and curl, so it needs no display 72 # and no network. 73 make check 74 75 %files 76 %doc README TODO examples 77 %{_bindir}/bm 78 %{_bindir}/bm-check 79 %{_bindir}/bm-commit 80 %{_bindir}/bm-html 81 %{_bindir}/bm-import 82 %{_bindir}/bm-migrate 83 %{_bindir}/bm-title 84 %{_bindir}/bm-watch 85 86 %changelog 87 * Sun Sep 20 2026 Spenser Truex <truex@equwal.com> - 0.3-1 88 - Initial package.