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