Commit | Line | Data |
---|---|---|
1010e530 CR |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> | |
3a733420 | 3 | ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> |
4acbd206 | 4 | ;;; Copyright © 2016 Al McElrath <hello@yrns.org> |
3c986a7d | 5 | ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> |
f0f0a48b DB |
6 | ;;; Copyright © 2015 Dmitry Bogatov <KAction@gnu.org> |
7 | ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> | |
8 | ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> | |
f3a53f3c | 9 | ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> |
be55f234 | 10 | ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> |
1010e530 CR |
11 | ;;; |
12 | ;;; This file is part of GNU Guix. | |
13 | ;;; | |
14 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
15 | ;;; under the terms of the GNU General Public License as published by | |
16 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
17 | ;;; your option) any later version. | |
18 | ;;; | |
19 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
20 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 | ;;; GNU General Public License for more details. | |
23 | ;;; | |
24 | ;;; You should have received a copy of the GNU General Public License | |
25 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
26 | ||
975b8942 | 27 | (define-module (gnu packages suckless) |
1010e530 | 28 | #:use-module (gnu packages) |
b273158b TGR |
29 | #:use-module (gnu packages base) |
30 | #:use-module (gnu packages compression) | |
31 | #:use-module (gnu packages cups) | |
3a733420 | 32 | #:use-module (gnu packages fonts) |
c2b4c063 | 33 | #:use-module (gnu packages fontutils) |
b273158b TGR |
34 | #:use-module (gnu packages gawk) |
35 | #:use-module (gnu packages gnome) | |
36 | #:use-module (gnu packages image) | |
37 | #:use-module (gnu packages libbsd) | |
974ddc21 | 38 | #:use-module (gnu packages linux) |
b273158b | 39 | #:use-module (gnu packages mpd) |
37d5fc7b | 40 | #:use-module (gnu packages ncurses) |
b273158b TGR |
41 | #:use-module (gnu packages pkg-config) |
42 | #:use-module (gnu packages webkit) | |
43 | #:use-module (gnu packages xorg) | |
44 | #:use-module (guix build-system glib-or-gtk) | |
45 | #:use-module (guix build-system gnu) | |
46 | #:use-module (guix download) | |
47 | #:use-module (guix git-download) | |
48 | #:use-module ((guix licenses) #:prefix license:) | |
1ca44ae3 | 49 | #:use-module (guix utils) |
b273158b | 50 | #:use-module (guix packages)) |
1010e530 | 51 | |
c4027435 SB |
52 | (define-public blind |
53 | (package | |
54 | (name "blind") | |
62f709f3 | 55 | (version "1.1") |
c4027435 SB |
56 | (source (origin |
57 | (method url-fetch) | |
51cfdf90 | 58 | (uri (string-append "https://dl.suckless.org/tools/blind-" |
c4027435 SB |
59 | version ".tar.gz")) |
60 | (sha256 | |
61 | (base32 | |
62f709f3 | 62 | "0nncvzyipvkkd7zlgzwbjygp82frzs2hvbnk71gxf671np607y94")))) |
c4027435 SB |
63 | (build-system gnu-build-system) |
64 | (arguments | |
211dc8cd | 65 | `(#:tests? #f ; no check target |
1ca44ae3 MB |
66 | #:make-flags (list (string-append "CC=" ,(cc-for-target)) |
67 | (string-append "PREFIX=" %output)) | |
c4027435 SB |
68 | #:phases |
69 | (modify-phases %standard-phases | |
70 | (delete 'configure)))) ; no configure script | |
71 | (synopsis "Command line video editing utilities") | |
51cfdf90 | 72 | (home-page "https://tools.suckless.org/blind/") |
c4027435 SB |
73 | (description |
74 | "Blind is a collection of command line video editing utilities. It uses | |
75 | a custom raw video format with a simple container.") | |
76 | (license license:isc))) | |
77 | ||
1010e530 CR |
78 | (define-public dwm |
79 | (package | |
80 | (name "dwm") | |
d2c8a891 | 81 | (version "6.2") |
1010e530 CR |
82 | (source (origin |
83 | (method url-fetch) | |
51cfdf90 | 84 | (uri (string-append "https://dl.suckless.org/dwm/dwm-" |
1010e530 CR |
85 | version ".tar.gz")) |
86 | (sha256 | |
d2c8a891 | 87 | (base32 "03hirnj8saxnsfqiszwl2ds7p0avg20izv9vdqyambks00p2x44p")))) |
1010e530 CR |
88 | (build-system gnu-build-system) |
89 | (arguments | |
90 | `(#:tests? #f | |
648733dc AG |
91 | #:make-flags (list (string-append "FREETYPEINC=" |
92 | (assoc-ref %build-inputs "freetype") | |
93 | "/include/freetype2")) | |
1010e530 | 94 | #:phases |
0d2c8f34 | 95 | (modify-phases %standard-phases |
96 | (replace 'configure | |
97 | (lambda _ | |
98 | (substitute* "Makefile" (("\\$\\{CC\\}") "gcc")) | |
99 | #t)) | |
100 | (replace 'install | |
101 | (lambda* (#:key outputs #:allow-other-keys) | |
102 | (let ((out (assoc-ref outputs "out"))) | |
1e501ffe TGR |
103 | (invoke "make" "install" |
104 | (string-append "DESTDIR=" out) "PREFIX=")))) | |
ad1c349d | 105 | (add-after 'build 'install-xsession |
106 | (lambda* (#:key outputs #:allow-other-keys) | |
107 | ;; Add a .desktop file to xsessions. | |
108 | (let* ((output (assoc-ref outputs "out")) | |
109 | (xsessions (string-append output "/share/xsessions"))) | |
110 | (mkdir-p xsessions) | |
111 | (with-output-to-file | |
112 | (string-append xsessions "/dwm.desktop") | |
113 | (lambda _ | |
114 | (format #t | |
115 | "[Desktop Entry]~@ | |
116 | Name=dwm~@ | |
117 | Comment=Dynamic Window Manager~@ | |
118 | Exec=~a/bin/dwm~@ | |
119 | TryExec=~@*~a/bin/dwm~@ | |
120 | Icon=~@ | |
121 | Type=Application~%" | |
122 | output))) | |
123 | #t)))))) | |
1010e530 | 124 | (inputs |
648733dc AG |
125 | `(("freetype" ,freetype) |
126 | ("libx11" ,libx11) | |
127 | ("libxft" ,libxft) | |
1010e530 | 128 | ("libxinerama" ,libxinerama))) |
51cfdf90 | 129 | (home-page "https://dwm.suckless.org/") |
1010e530 CR |
130 | (synopsis "Dynamic window manager") |
131 | (description | |
35b9e423 EB |
132 | "dwm is a dynamic window manager for X. It manages windows in tiled, |
133 | monocle and floating layouts. All of the layouts can be applied dynamically, | |
dfde065f | 134 | optimising the environment for the application in use and the task performed.") |
3a733420 | 135 | (license license:x11))) |
65a05690 SB |
136 | |
137 | (define-public dmenu | |
138 | (package | |
139 | (name "dmenu") | |
f5c46fa0 | 140 | (version "4.9") |
65a05690 SB |
141 | (source (origin |
142 | (method url-fetch) | |
51cfdf90 | 143 | (uri (string-append "https://dl.suckless.org/tools/dmenu-" |
65a05690 SB |
144 | version ".tar.gz")) |
145 | (sha256 | |
146 | (base32 | |
f5c46fa0 | 147 | "0ia9nqr83bv6x247q30bal0v42chcj9qcjgv59xs6xj46m7iz5xk")))) |
65a05690 SB |
148 | (build-system gnu-build-system) |
149 | (arguments | |
211dc8cd TGR |
150 | `(#:tests? #f ; no tests |
151 | #:make-flags | |
1ca44ae3 MB |
152 | (list (string-append "CC=" ,(cc-for-target)) |
153 | (string-append "PREFIX=" %output) | |
154 | (string-append "FREETYPEINC=" | |
155 | (assoc-ref %build-inputs "freetype") | |
156 | "/include/freetype2")) | |
65a05690 | 157 | #:phases |
dc1d3cde | 158 | (modify-phases %standard-phases (delete 'configure)))) |
65a05690 | 159 | (inputs |
bc47382a AG |
160 | `(("freetype" ,freetype) |
161 | ("libxft" ,libxft) | |
162 | ("libx11" ,libx11) | |
65a05690 | 163 | ("libxinerama" ,libxinerama))) |
51cfdf90 | 164 | (home-page "https://tools.suckless.org/dmenu/") |
65a05690 SB |
165 | (synopsis "Dynamic menu") |
166 | (description | |
167 | "A dynamic menu for X, originally designed for dwm. It manages large | |
168 | numbers of user-defined menu items efficiently.") | |
3a733420 | 169 | (license license:x11))) |
15f5f686 | 170 | |
c2b4c063 | 171 | (define-public spoon |
172 | (package | |
173 | (name "spoon") | |
504d16dd | 174 | (version "0.6") |
c2b4c063 | 175 | (source |
176 | (origin | |
177 | (method url-fetch) | |
fea8b729 | 178 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 179 | "spoon-" version ".tar.gz")) |
c2b4c063 | 180 | (sha256 |
181 | (base32 | |
504d16dd | 182 | "1jpmg9k9f4f3lpz0k3cphqjswlyf8lz2sm8ccifiip93kd4rrdj0")))) |
c2b4c063 | 183 | (build-system gnu-build-system) |
184 | (arguments | |
504d16dd | 185 | `(#:tests? #f ; no tests |
211dc8cd | 186 | #:make-flags |
1ca44ae3 MB |
187 | (list (string-append "CC=" ,(cc-for-target)) |
188 | (string-append "PREFIX=" %output)))) | |
c2b4c063 | 189 | (inputs |
190 | `(("libx11" ,libx11) | |
191 | ("libxkbfile" ,libxkbfile) | |
504d16dd | 192 | ("alsa-lib" ,alsa-lib) ; tinyalsa (unpackaged) would suffice |
c2b4c063 | 193 | ("libmpdclient" ,libmpdclient))) |
fea8b729 | 194 | (home-page "https://git.2f30.org/spoon/") |
c2b4c063 | 195 | (synopsis "Set dwm status") |
196 | (description | |
197 | "Spoon can be used to set the dwm status.") | |
198 | (license license:isc))) | |
199 | ||
15f5f686 TČ |
200 | (define-public slock |
201 | (package | |
202 | (name "slock") | |
f3a53f3c | 203 | (version "1.4") |
15f5f686 TČ |
204 | (source (origin |
205 | (method url-fetch) | |
51cfdf90 | 206 | (uri (string-append "https://dl.suckless.org/tools/slock-" |
15f5f686 TČ |
207 | version ".tar.gz")) |
208 | (sha256 | |
209 | (base32 | |
f3a53f3c | 210 | "0sif752303dg33f14k6pgwq2jp1hjyhqv6x4sy3sj281qvdljf5m")))) |
15f5f686 TČ |
211 | (build-system gnu-build-system) |
212 | (arguments | |
211dc8cd TGR |
213 | `(#:tests? #f ; no tests |
214 | #:make-flags | |
1ca44ae3 MB |
215 | (list (string-append "CC=" ,(cc-for-target)) |
216 | (string-append "PREFIX=" %output)) | |
dc1d3cde | 217 | #:phases (modify-phases %standard-phases (delete 'configure)))) |
15f5f686 TČ |
218 | (inputs |
219 | `(("libx11" ,libx11) | |
220 | ("libxext" ,libxext) | |
fea1422e LF |
221 | ("libxinerama" ,libxinerama) |
222 | ("libxrandr" ,libxrandr))) | |
51cfdf90 | 223 | (home-page "https://tools.suckless.org/slock/") |
15f5f686 TČ |
224 | (synopsis "Simple X session lock") |
225 | (description | |
226 | "Simple X session lock with trivial feedback on password entry.") | |
3a733420 AB |
227 | (license license:x11))) |
228 | ||
229 | (define-public st | |
230 | (package | |
231 | (name "st") | |
10a8211e | 232 | (version "0.8.4") |
3a733420 AB |
233 | (source |
234 | (origin | |
235 | (method url-fetch) | |
51cfdf90 | 236 | (uri (string-append "https://dl.suckless.org/st/st-" |
3a733420 AB |
237 | version ".tar.gz")) |
238 | (sha256 | |
10a8211e | 239 | (base32 "19j66fhckihbg30ypngvqc9bcva47mp379ch5vinasjdxgn3qbfl")))) |
3a733420 AB |
240 | (build-system gnu-build-system) |
241 | (arguments | |
211dc8cd TGR |
242 | `(#:tests? #f ; no tests |
243 | #:make-flags | |
1ca44ae3 MB |
244 | (list (string-append "CC=" ,(cc-for-target)) |
245 | (string-append "PREFIX=" %output)) | |
3a733420 AB |
246 | #:phases |
247 | (modify-phases %standard-phases | |
248 | (delete 'configure) | |
249 | (add-after 'unpack 'inhibit-terminfo-install | |
362f5306 TGR |
250 | (lambda _ |
251 | (substitute* "Makefile" | |
252 | (("\ttic .*") "")) | |
253 | #t))))) | |
3a733420 AB |
254 | (inputs |
255 | `(("libx11" ,libx11) | |
256 | ("libxft" ,libxft) | |
3a733420 | 257 | ("fontconfig" ,fontconfig) |
939111ca | 258 | ("freetype" ,freetype))) |
fc1a7b58 TGR |
259 | (native-inputs |
260 | `(("pkg-config" ,pkg-config))) | |
51cfdf90 | 261 | (home-page "https://st.suckless.org/") |
3a733420 AB |
262 | (synopsis "Simple terminal emulator") |
263 | (description | |
264 | "St implements a simple and lightweight terminal emulator. It | |
265 | implements 256 colors, most VT10X escape sequences, utf8, X11 copy/paste, | |
266 | antialiased fonts (using fontconfig), fallback fonts, resizing, and line | |
267 | drawing.") | |
268 | (license license:x11))) | |
4acbd206 AM |
269 | |
270 | (define-public surf | |
271 | (package | |
272 | (name "surf") | |
0715c0e6 | 273 | (version "2.0") |
4acbd206 AM |
274 | (source |
275 | (origin | |
276 | (method url-fetch) | |
51cfdf90 | 277 | (uri (string-append "https://dl.suckless.org/surf/surf-" |
4acbd206 AM |
278 | version ".tar.gz")) |
279 | (sha256 | |
280 | (base32 | |
0715c0e6 | 281 | "07cmajyafljigy10d21kkyvv5jf3hxkx06pz3rwwk3y3c9x4rvps")))) |
4acbd206 AM |
282 | (build-system glib-or-gtk-build-system) |
283 | (arguments | |
211dc8cd TGR |
284 | `(#:tests? #f ; no tests |
285 | #:make-flags | |
1ca44ae3 MB |
286 | (list (string-append "CC=" ,(cc-for-target)) |
287 | (string-append "PREFIX=" %output)) | |
4acbd206 AM |
288 | #:phases |
289 | (modify-phases %standard-phases | |
45321beb MM |
290 | (delete 'configure) |
291 | ;; Use the right file name for dmenu and xprop. | |
292 | (add-before 'build 'set-dmenu-and-xprop-file-name | |
293 | (lambda* (#:key inputs #:allow-other-keys) | |
294 | (substitute* "config.def.h" | |
295 | (("dmenu") (string-append (assoc-ref inputs "dmenu") "/bin/dmenu")) | |
296 | (("xprop") (string-append (assoc-ref inputs "xprop") "/bin/xprop"))) | |
297 | #t))))) | |
4acbd206 | 298 | (inputs |
45321beb MM |
299 | `(("dmenu" ,dmenu) |
300 | ("glib-networking" ,glib-networking) | |
4acbd206 | 301 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) |
0715c0e6 | 302 | ("webkitgtk" ,webkitgtk) |
45321beb | 303 | ("xprop" ,xprop))) |
4acbd206 AM |
304 | (native-inputs |
305 | `(("pkg-config" ,pkg-config))) | |
51cfdf90 | 306 | (home-page "https://surf.suckless.org/") |
4acbd206 AM |
307 | (synopsis "Simple web browser") |
308 | (description | |
309 | "Surf is a simple web browser based on WebKit/GTK+. It is able to | |
310 | display websites and follow links. It supports the XEmbed protocol which | |
311 | makes it possible to embed it in another application. Furthermore, one can | |
312 | point surf to another URI by setting its XProperties.") | |
313 | (license license:x11))) | |
f0f0a48b DB |
314 | |
315 | (define-public sent | |
316 | (package | |
317 | (name "sent") | |
8f7c6a5f | 318 | (version "1") |
f0f0a48b | 319 | (source (origin |
8f7c6a5f | 320 | (method url-fetch/tarbomb) |
51cfdf90 | 321 | (uri (string-append "https://dl.suckless.org/tools/sent-" |
f0f0a48b DB |
322 | version ".tar.gz")) |
323 | (sha256 | |
324 | (base32 | |
8f7c6a5f | 325 | "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv")))) |
f0f0a48b DB |
326 | (build-system gnu-build-system) |
327 | (arguments | |
328 | `(#:phases (modify-phases %standard-phases | |
8f7c6a5f TGR |
329 | (delete 'configure)) ; no configuration |
330 | #:tests? #f ; no test suite | |
211dc8cd | 331 | #:make-flags |
1ca44ae3 | 332 | (let ((pkg-config (lambda (flag) |
211dc8cd TGR |
333 | (string-append |
334 | "$(shell pkg-config " flag " " | |
335 | "xft fontconfig x11 libpng)")))) | |
1ca44ae3 | 336 | (list (string-append "CC=" ,(cc-for-target)) |
211dc8cd TGR |
337 | (string-append "PREFIX=" %output) |
338 | (string-append "INCS=-I. " (pkg-config "--cflags")) | |
339 | (string-append "LIBS=" (pkg-config "--libs") " -lm"))))) | |
f0f0a48b DB |
340 | (native-inputs |
341 | `(("pkg-config" ,pkg-config))) | |
342 | (inputs | |
343 | `(("libpng" ,libpng) | |
344 | ("libx11" ,libx11) | |
345 | ("libxft" ,libxft) | |
346 | ("fontconfig" ,fontconfig))) | |
d017dfaa TGR |
347 | (synopsis "Plain-text presentation tool") |
348 | (description "Sent uses plain-text files and PNG images to create slideshow | |
f0f0a48b DB |
349 | presentations. Each paragraph represents a slide in the presentation. |
350 | Especially for presentations using the Takahashi method this is very nice and | |
351 | allows you to write down the presentation for a quick lightning talk within a | |
352 | few minutes.") | |
51cfdf90 | 353 | (home-page "https://tools.suckless.org/sent") |
f0f0a48b | 354 | (license license:x11))) |
4f5a0f32 | 355 | |
356 | (define-public xbattmon | |
357 | (package | |
358 | (name "xbattmon") | |
205f4f28 | 359 | (version "1.1") |
4f5a0f32 | 360 | (source |
361 | (origin | |
362 | (method url-fetch) | |
fea8b729 | 363 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 364 | "xbattmon-" version ".tar.gz")) |
4f5a0f32 | 365 | (sha256 |
366 | (base32 | |
205f4f28 | 367 | "1zr6y8lml9xkx0a3dbbsds2qz1bjxvskp7wsckkf8mlsqrbb3xsg")))) |
4f5a0f32 | 368 | (build-system gnu-build-system) |
369 | (arguments | |
211dc8cd TGR |
370 | `(#:tests? #f ; no tests |
371 | #:make-flags | |
1ca44ae3 MB |
372 | (list (string-append "CC=" ,(cc-for-target)) |
373 | (string-append "PREFIX=" %output)))) | |
4f5a0f32 | 374 | (inputs |
375 | `(("libx11" ,libx11))) | |
fea8b729 | 376 | (home-page "https://git.2f30.org/xbattmon/") |
4f5a0f32 | 377 | (synopsis "Simple battery monitor for X") |
378 | (description | |
379 | "Xbattmon is a simple battery monitor for X.") | |
380 | (license license:isc))) | |
f63abd0d | 381 | |
382 | (define-public wificurse | |
383 | (package | |
384 | (name "wificurse") | |
385 | (version "0.3.9") | |
386 | (source | |
387 | (origin | |
388 | (method url-fetch) | |
fea8b729 | 389 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 390 | "wificurse-" version ".tar.gz")) |
f63abd0d | 391 | (sha256 |
392 | (base32 | |
393 | "067ghr1xly5ca41kc83xila1p5hpq0bxfcmc8jvxi2ggm6wrhavn")))) | |
394 | (build-system gnu-build-system) | |
395 | (arguments | |
396 | `(#:tests? #f ; No tests | |
397 | #:make-flags (list | |
398 | (string-append "PREFIX=" %output)) | |
399 | #:phases | |
400 | (modify-phases %standard-phases | |
401 | (delete 'configure)))) ; No configure script | |
fea8b729 | 402 | (home-page "https://git.2f30.org/wificurse/") |
f63abd0d | 403 | (synopsis "Wifi DoS attack tool") |
404 | (description | |
405 | "Wificurses listens for beacons sent from wireless access points | |
406 | in the range of your wireless station. Once received the program | |
407 | extracts the BSSID of the AP and transmits deauthentication packets | |
408 | using the broadcast MAC address. This results to the disconnection | |
409 | of all clients connected to the AP at the time of the attack. This | |
410 | is essencially a WiFi DoS attack tool created for educational | |
411 | purposes only. It works only in Linux and requires wireless card | |
412 | drivers capable of injecting packets in wireless networks.") | |
413 | (license license:gpl3+))) | |
559115a6 | 414 | |
415 | (define-public skroll | |
416 | (package | |
417 | (name "skroll") | |
418 | (version "0.6") | |
419 | (source | |
420 | (origin | |
421 | (method url-fetch) | |
fea8b729 | 422 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 423 | "skroll-" version ".tar.gz")) |
559115a6 | 424 | (sha256 |
425 | (base32 | |
426 | "0km6bjfz4ssb1z0xwld6iiixnn7d255ax8yjs3zkdm42z8q9yl0f")))) | |
427 | (build-system gnu-build-system) | |
428 | (arguments | |
211dc8cd TGR |
429 | `(#:tests? #f ; no tests |
430 | #:make-flags | |
1ca44ae3 MB |
431 | (list (string-append "CC=" ,(cc-for-target)) |
432 | (string-append "PREFIX=" %output)) | |
559115a6 | 433 | #:phases |
434 | (modify-phases %standard-phases | |
211dc8cd | 435 | (delete 'configure)))) ; no configure script |
fea8b729 | 436 | (home-page "https://2f30.org/") |
559115a6 | 437 | (synopsis "Commandline utility which scrolls text") |
438 | (description | |
439 | "Skroll is a small utility that you can use to make a text scroll. | |
440 | Pipe text to it, and it will scroll a given number of letters from right to | |
441 | left.") | |
442 | (license license:wtfpl2))) | |
401f4f08 | 443 | |
444 | (define-public sbm | |
445 | (package | |
446 | (name "sbm") | |
447 | (version "0.9") | |
448 | (source | |
449 | (origin | |
450 | (method url-fetch) | |
fea8b729 | 451 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 452 | "sbm-" version ".tar.gz")) |
401f4f08 | 453 | (sha256 |
454 | (base32 | |
455 | "1nks5mkh5wn30kyjzlkjlgi31bv1wq52kbp0r6nzbyfnvfdlywik")))) | |
456 | (build-system gnu-build-system) | |
457 | (arguments | |
211dc8cd TGR |
458 | `(#:tests? #f ; no tests |
459 | #:make-flags | |
1ca44ae3 MB |
460 | (list (string-append "CC=" ,(cc-for-target)) |
461 | (string-append "PREFIX=" %output)) | |
401f4f08 | 462 | #:phases |
463 | (modify-phases %standard-phases | |
211dc8cd | 464 | (delete 'configure)))) ; no configure script |
fea8b729 | 465 | (home-page "https://git.2f30.org/sbm/") |
401f4f08 | 466 | (synopsis "Simple bandwidth monitor") |
467 | (description | |
468 | "Sbm is a simple bandwidth monitor.") | |
469 | (license license:isc))) | |
974ddc21 | 470 | |
471 | (define-public prout | |
472 | (package | |
473 | (name "prout") | |
474 | (version "0.2") | |
475 | (source | |
476 | (origin | |
477 | (method url-fetch) | |
fea8b729 | 478 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 479 | "prout-" version ".tar.gz")) |
974ddc21 | 480 | (sha256 |
481 | (base32 | |
482 | "1s6c3ygg1h1fyxkh8gd7nzjk6qhnwsb4535d2k780kxnwns5fzas")))) | |
483 | (build-system gnu-build-system) | |
484 | (arguments | |
211dc8cd TGR |
485 | `(#:tests? #f ; no tests |
486 | #:make-flags | |
1ca44ae3 MB |
487 | (list (string-append "CC=" ,(cc-for-target)) |
488 | (string-append "PREFIX=" %output)) | |
974ddc21 | 489 | #:phases |
490 | (modify-phases %standard-phases | |
211dc8cd | 491 | (delete 'configure)))) ; no configure script |
974ddc21 | 492 | (inputs |
493 | `(("cups-minimal" ,cups-minimal) | |
494 | ("zlib" ,zlib))) | |
fea8b729 | 495 | (home-page "https://git.2f30.org/prout/") |
974ddc21 | 496 | (synopsis "Smaller lp command") |
497 | (description | |
498 | "Prout (PRint OUT) is a small utility one can use to send | |
499 | documents to a printer. | |
500 | It has no feature, and does nothing else. Just set your default | |
501 | printer in client.conf(5) and start printing. No need for a local | |
502 | cups server to be installed.") | |
503 | (license license:wtfpl2))) | |
823d7f53 | 504 | |
505 | (define-public noice | |
506 | (package | |
507 | (name "noice") | |
30c9e096 | 508 | (version "0.8") |
823d7f53 | 509 | (source |
510 | (origin | |
511 | (method url-fetch) | |
fea8b729 | 512 | (uri (string-append "https://dl.2f30.org/releases/" |
afa4f888 | 513 | "noice-" version ".tar.gz")) |
823d7f53 | 514 | (sha256 |
30c9e096 | 515 | (base32 "0g01iwzscdv27c1idv93gd74kjzy3n9kazgm6qz08rygp96qx4xw")))) |
823d7f53 | 516 | (build-system gnu-build-system) |
517 | (arguments | |
cc2c5c22 | 518 | `(#:tests? #f ; no tests |
211dc8cd | 519 | #:make-flags |
1ca44ae3 MB |
520 | (list (string-append "CC=" ,(cc-for-target)) |
521 | (string-append "PREFIX=" %output)) | |
823d7f53 | 522 | #:phases |
523 | (modify-phases %standard-phases | |
cc2c5c22 | 524 | (delete 'configure) ; no configure script |
823d7f53 | 525 | (add-before 'build 'curses |
526 | (lambda _ | |
527 | (substitute* "Makefile" | |
528 | (("lcurses") "lncurses"))))))) | |
529 | (inputs | |
530 | `(("ncurses" ,ncurses))) | |
fea8b729 | 531 | (home-page "https://git.2f30.org/noice/") |
823d7f53 | 532 | (synopsis "Small file browser") |
533 | (description | |
534 | "Noice is a small curses-based file browser.") | |
535 | (license license:bsd-2))) | |
73aca00d | 536 | |
73aca00d | 537 | (define-public human |
aa945bf6 TGR |
538 | (package |
539 | (name "human") | |
540 | (version "0.3") | |
541 | (source | |
542 | (origin | |
543 | (method git-fetch) | |
544 | (uri (git-reference | |
545 | (url "git://git.2f30.org/human.git") | |
546 | (commit version))) | |
547 | (file-name (git-file-name name version)) | |
548 | (sha256 | |
549 | (base32 | |
550 | "0y0bsmvpwfwb2lwspi6a799y34h1faxc6yfanyw6hygxc8661mga")))) | |
73aca00d | 551 | (build-system gnu-build-system) |
552 | (arguments | |
aa945bf6 | 553 | `(#:tests? #f ; no tests |
211dc8cd | 554 | #:make-flags |
1ca44ae3 MB |
555 | (list (string-append "CC=" ,(cc-for-target)) |
556 | (string-append "PREFIX=" %output)) | |
73aca00d | 557 | #:phases |
558 | (modify-phases %standard-phases | |
aa945bf6 | 559 | (delete 'configure)))) ; no configure script |
fea8b729 | 560 | (home-page "https://git.2f30.org/human/") |
73aca00d | 561 | (synopsis "Convert bytes to human readable formats") |
562 | (description | |
563 | "Human is a small program which translate numbers into a | |
564 | human readable format. By default, it tries to detect the best | |
565 | factorisation, but you can force its output. | |
566 | You can adjust the number of decimals with the @code{SCALE} | |
567 | environment variable.") | |
aa945bf6 | 568 | (license license:wtfpl2))) |
e3c101eb | 569 | |
570 | (define-public fortify-headers | |
571 | (package | |
572 | (name "fortify-headers") | |
ca39ee94 | 573 | (version "1.1") |
e3c101eb | 574 | (source |
575 | (origin | |
576 | (method url-fetch) | |
fea8b729 | 577 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 578 | "fortify-headers-" version ".tar.gz")) |
e3c101eb | 579 | (sha256 |
ca39ee94 | 580 | (base32 "1dhz41jq1azcf7rbvga8w6pnx19l1j9r6jwj8qrlrfnjl9hdi9bb")))) |
e3c101eb | 581 | (build-system gnu-build-system) |
582 | (arguments | |
37a2ea11 | 583 | `(#:tests? #f ; no tests |
211dc8cd | 584 | #:make-flags |
1ca44ae3 MB |
585 | (list (string-append "CC=" ,(cc-for-target)) |
586 | (string-append "PREFIX=" %output)) | |
e3c101eb | 587 | #:phases |
588 | (modify-phases %standard-phases | |
37a2ea11 | 589 | (delete 'configure)))) ; no configure script |
fea8b729 | 590 | (home-page "https://git.2f30.org/fortify-headers/") |
e3c101eb | 591 | (synopsis "Standalone fortify-source implementation") |
592 | (description | |
593 | "This is a standalone implementation of fortify source. It provides | |
594 | compile time buffer checks. It is libc-agnostic and simply overlays the | |
595 | system headers by using the @code{#include_next} extension found in GCC. It was | |
ef27b434 | 596 | initially intended to be used on musl-based Linux distributions. |
e3c101eb | 597 | |
598 | @itemize | |
599 | @item It is portable, works on *BSD, Linux, Solaris and possibly others. | |
600 | @item It will only trap non-conformant programs. This means that fortify | |
601 | level 2 is treated in the same way as level 1. | |
602 | @item Avoids making function calls when undefined behaviour has already been | |
ef27b434 TGR |
603 | invoked. This is handled by using @code{__builtin_trap()}. |
604 | @item Support for out-of-bounds read interfaces, such as @code{send()}, | |
605 | @code{write()}, @code{fwrite()}, etc. | |
e3c101eb | 606 | @item No ABI is enforced. All of the fortify check functions are inlined |
607 | into the resulting binary. | |
608 | @end itemize\n") | |
609 | (license license:isc))) | |
021bdbd2 | 610 | |
611 | (define-public colors | |
612 | (package | |
613 | (name "colors") | |
614 | (version "0.3") | |
615 | (source | |
616 | (origin | |
617 | (method url-fetch) | |
fea8b729 | 618 | (uri (string-append "https://dl.2f30.org/releases/" |
5e1cc668 | 619 | "colors-" version ".tar.gz")) |
021bdbd2 | 620 | (sha256 |
621 | (base32 | |
622 | "1lckmqpgj89841splng0sszbls2ag71ggkgr1wsv9y3v6y87589z")))) | |
623 | (build-system gnu-build-system) | |
624 | (arguments | |
211dc8cd TGR |
625 | `(#:tests? #f ; no tests |
626 | #:make-flags | |
1ca44ae3 MB |
627 | (list (string-append "CC=" ,(cc-for-target)) |
628 | (string-append "PREFIX=" %output)) | |
021bdbd2 | 629 | #:phases |
630 | (modify-phases %standard-phases | |
211dc8cd | 631 | (delete 'configure)))) ; no configure script |
021bdbd2 | 632 | (inputs |
633 | `(("libpng" ,libpng))) | |
fea8b729 | 634 | (home-page "https://git.2f30.org/colors/") |
021bdbd2 | 635 | (synopsis "Extract colors from pictures") |
636 | (description | |
637 | "Extract colors from PNG files. It is similar to | |
638 | strings(1) but for pictures. For a given input file it outputs a | |
639 | colormap to stdout.") | |
640 | (license license:isc))) | |
37d5fc7b | 641 | |
642 | ;; No new releases were made at github, this repository is more active than | |
643 | ;; the one at http://git.suckless.org/libutf/ and it is | |
644 | ;; done by the same developer. | |
645 | (define-public libutf | |
646 | (let ((revision "1") | |
647 | (commit "ff4c60635e1f455b0a0b4200f8183fbd5a88225b")) | |
648 | (package | |
649 | (name "libutf") | |
259da514 | 650 | (version (git-version "0.0.0" revision commit)) |
37d5fc7b | 651 | (source |
652 | (origin | |
653 | (method git-fetch) | |
654 | (uri (git-reference | |
655 | (url "https://github.com/cls/libutf") | |
656 | (commit commit))) | |
259da514 | 657 | (file-name (git-file-name name version)) |
37d5fc7b | 658 | (sha256 |
659 | (base32 | |
660 | "1ih5vjavilzggyr1j1z6w1z12c2fs5fg77cfnv7ami5ivsy3kg3d")))) | |
661 | (build-system gnu-build-system) | |
662 | (arguments | |
211dc8cd TGR |
663 | `(#:tests? #f ; no tests |
664 | #:make-flags | |
1ca44ae3 MB |
665 | (list (string-append "CC=" ,(cc-for-target)) |
666 | (string-append "PREFIX=" %output)) | |
37d5fc7b | 667 | #:phases |
668 | (modify-phases %standard-phases | |
211dc8cd | 669 | (delete 'configure)))) ; no configure script |
37d5fc7b | 670 | (inputs |
671 | `(("gawk" ,gawk))) | |
672 | (home-page "https://github.com/cls/libutf") | |
673 | (synopsis "Plan 9 compatible UTF-8 library") | |
674 | (description | |
675 | "This is a C89 UTF-8 library, with an API compatible with that of | |
676 | Plan 9's libutf, but with a number of improvements: | |
677 | ||
678 | @itemize | |
679 | @item Support for runes beyond the Basic Multilingual Plane. | |
680 | @item utflen and utfnlen cannot overflow on 32- or 64-bit machines. | |
681 | @item chartorune treats all invalid codepoints as though Runeerror. | |
682 | @item fullrune, utfecpy, and utfnlen do not overestimate the length | |
683 | of malformed runes. | |
684 | @item An extra function, charntorune(p,s,n), equivalent to | |
685 | fullrune(s,n) ? chartorune(p,s): 0. | |
686 | @item Runeerror may be set to an alternative replacement value, such | |
687 | as -1, to be used instead of U+FFFD. | |
688 | @end itemize\n") | |
689 | (license license:expat)))) | |
0318305c | 690 | |
691 | ;; No release tarballs so far. | |
692 | (define-public lchat | |
be55f234 TGR |
693 | (let ((revision "4") |
694 | (commit "e3b64e67b9b9d832462382246474ce1e7d92217c")) | |
0318305c | 695 | (package |
696 | (name "lchat") | |
be55f234 | 697 | (version (git-version "0.0.0" revision commit)) |
0318305c | 698 | (source |
699 | (origin | |
700 | (method git-fetch) | |
701 | (uri (git-reference | |
702 | (url "https://github.com/younix/lchat") | |
703 | (commit commit))) | |
be55f234 | 704 | (file-name (git-file-name name version)) |
0318305c | 705 | (sha256 |
be55f234 | 706 | (base32 "1qcjqbgmsskc04j2r6xl3amkwj05n520sq1wv2mqyqncz42qrxm0")))) |
0318305c | 707 | (build-system gnu-build-system) |
708 | (arguments | |
82f22fac | 709 | `(#:test-target "test" |
211dc8cd | 710 | #:make-flags |
1ca44ae3 MB |
711 | (list (string-append "CC=" ,(cc-for-target)) |
712 | (string-append "PREFIX=" %output)) | |
0318305c | 713 | #:phases |
714 | (modify-phases %standard-phases | |
82f22fac | 715 | (delete 'configure) ; no configure script |
0318305c | 716 | (add-before 'build 'libbsd |
717 | (lambda _ | |
718 | (substitute* "Makefile" | |
719 | (("-lutf") "-lutf -lbsd")))) | |
720 | (replace 'install | |
721 | (lambda* (#:key outputs #:allow-other-keys) | |
82f22fac TGR |
722 | (let* ((out (assoc-ref outputs "out")) |
723 | (bin (string-append out "/bin")) | |
724 | (man1 (string-append out "/share/man/man1"))) | |
0318305c | 725 | (install-file "lchat" bin) |
82f22fac | 726 | (install-file "lchat.1" man1) |
0318305c | 727 | #t)))))) |
728 | (inputs | |
729 | `(("grep" ,grep) | |
730 | ("ncurses" ,ncurses) | |
731 | ("libutf" ,libutf) | |
732 | ("libbsd" ,libbsd))) | |
733 | (home-page "https://github.com/younix/lchat") | |
734 | (synopsis "Line chat is a frontend for the irc client ii from suckless") | |
735 | (description | |
736 | "Lchat (line chat) is the little and small brother of cii. | |
2c65c085 TGR |
737 | It is a front end for ii-like chat programs. It uses @code{tail -f} to get the |
738 | chat output in the background.") | |
0318305c | 739 | (license license:isc)))) |
d9e3a213 RV |
740 | |
741 | (define-public scron | |
742 | (package | |
743 | (name "scron") | |
744 | (version "0.4") | |
745 | (source | |
746 | (origin | |
747 | (method url-fetch) | |
748 | (uri (string-append "https://dl.2f30.org/releases/" | |
5e1cc668 | 749 | "scron-" version ".tar.gz")) |
d9e3a213 RV |
750 | (sha256 |
751 | (base32 | |
752 | "066fwa55kqcgfrsqgxh94sqbkxfsr691360xg4ljxr4i75d25s2a")))) | |
753 | (build-system gnu-build-system) | |
754 | (arguments | |
211dc8cd TGR |
755 | `(#:tests? #f ; no tests |
756 | #:make-flags | |
1ca44ae3 MB |
757 | (list (string-append "CC=" ,(cc-for-target)) |
758 | (string-append "PREFIX=" %output)) | |
d9e3a213 RV |
759 | #:phases |
760 | (modify-phases %standard-phases | |
211dc8cd | 761 | (delete 'configure)))) ; no configure script |
d9e3a213 RV |
762 | (home-page "https://git.2f30.org/scron/") |
763 | (synopsis "Simple cron daemon") | |
764 | (description | |
765 | "Schedule commands to be run at specified dates and times. | |
766 | Single daemon and configuration file. Log to stdout or syslog. No mail | |
767 | support.") | |
768 | (license license:expat))) |