Recently Written · git

sbm

dmenu bookmarks. Instantly fuzzy search thousands of bookmarks and plumb them. LOOKING FOR SUCKLESS SOFTWARE EDITION? GO TO sbm-suckless INSTEAD

git clone https://github.com/equwal/sbm

Log | Files | Refs


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.