diff options
Diffstat (limited to 'gnu/packages/suckless.scm')
-rw-r--r-- | gnu/packages/suckless.scm | 463 |
1 files changed, 448 insertions, 15 deletions
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index a00420312d..e30a0883a3 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2015 Dmitry Bogatov <KAction@gnu.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> @@ -27,6 +27,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) @@ -36,7 +37,15 @@ #:use-module (gnu packages fonts) #:use-module (gnu packages pkg-config) #:use-module (gnu packages webkit) - #:use-module (gnu packages fontutils)) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages mpd) + #:use-module (gnu packages linux) + #:use-module (gnu packages compression) + #:use-module (gnu packages cups) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages gawk) + #:use-module (gnu packages base) + #:use-module (gnu packages libbsd)) (define-public dwm (package @@ -55,19 +64,36 @@ (assoc-ref %build-inputs "freetype") "/include/freetype2")) #:phases - (alist-replace - 'configure - (lambda _ - (substitute* "Makefile" (("\\$\\{CC\\}") "gcc")) - #t) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "make" "install" - (string-append "DESTDIR=" out) "PREFIX=")))) - %standard-phases)))) + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "Makefile" (("\\$\\{CC\\}") "gcc")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? + (system* "make" "install" + (string-append "DESTDIR=" out) "PREFIX="))))) + (add-after 'build 'install-xsession + (lambda* (#:key outputs #:allow-other-keys) + ;; Add a .desktop file to xsessions. + (let* ((output (assoc-ref outputs "out")) + (xsessions (string-append output "/share/xsessions"))) + (mkdir-p xsessions) + (with-output-to-file + (string-append xsessions "/dwm.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=dwm~@ + Comment=Dynamic Window Manager~@ + Exec=~a/bin/dwm~@ + TryExec=~@*~a/bin/dwm~@ + Icon=~@ + Type=Application~%" + output))) + #t)))))) (inputs `(("freetype" ,freetype) ("libx11" ,libx11) @@ -114,6 +140,34 @@ optimising the environment for the application in use and the task performed.") numbers of user-defined menu items efficiently.") (license license:x11))) +(define-public spoon + (package + (name "spoon") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "10c5i7ykpy7inzzfiw1dh0srpkljycr3blxhvd8160wsvplbws48")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)))) + (inputs + `(("libx11" ,libx11) + ("libxkbfile" ,libxkbfile) + ("alsa-lib" ,alsa-lib) + ("libmpdclient" ,libmpdclient))) + (home-page "http://git.2f30.org/spoon/") + (synopsis "Set dwm status") + (description + "Spoon can be used to set the dwm status.") + (license license:isc))) + (define-public slock (package (name "slock") @@ -257,3 +311,382 @@ allows you to write down the presentation for a quick lightning talk within a few minutes.") (home-page "http://tools.suckless.org/sent") (license license:x11))) + +(define-public xbattmon + (package + (name "xbattmon") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0n2rrjq03pgqrdkl7cz5snsfdanf4s58w9h6dbvnl7p8bbd3j2kn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)))) + (inputs + `(("libx11" ,libx11))) + (home-page "http://git.2f30.org/xbattmon/") + (synopsis "Simple battery monitor for X") + (description + "Xbattmon is a simple battery monitor for X.") + (license license:isc))) + +(define-public wificurse + (package + (name "wificurse") + (version "0.3.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "067ghr1xly5ca41kc83xila1p5hpq0bxfcmc8jvxi2ggm6wrhavn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/wificurse/") + (synopsis "Wifi DoS attack tool") + (description + "Wificurses listens for beacons sent from wireless access points +in the range of your wireless station. Once received the program +extracts the BSSID of the AP and transmits deauthentication packets +using the broadcast MAC address. This results to the disconnection +of all clients connected to the AP at the time of the attack. This +is essencially a WiFi DoS attack tool created for educational +purposes only. It works only in Linux and requires wireless card +drivers capable of injecting packets in wireless networks.") + (license license:gpl3+))) + +(define-public skroll + (package + (name "skroll") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0km6bjfz4ssb1z0xwld6iiixnn7d255ax8yjs3zkdm42z8q9yl0f")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://2f30.org") + (synopsis "Commandline utility which scrolls text") + (description + "Skroll is a small utility that you can use to make a text scroll. +Pipe text to it, and it will scroll a given number of letters from right to +left.") + (license license:wtfpl2))) + +(define-public sbm + (package + (name "sbm") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1nks5mkh5wn30kyjzlkjlgi31bv1wq52kbp0r6nzbyfnvfdlywik")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/sbm/") + (synopsis "Simple bandwidth monitor") + (description + "Sbm is a simple bandwidth monitor.") + (license license:isc))) + +(define-public prout + (package + (name "prout") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1s6c3ygg1h1fyxkh8gd7nzjk6qhnwsb4535d2k780kxnwns5fzas")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("cups-minimal" ,cups-minimal) + ("zlib" ,zlib))) + (home-page "http://git.2f30.org/prout/") + (synopsis "Smaller lp command") + (description + "Prout (PRint OUT) is a small utility one can use to send +documents to a printer. +It has no feature, and does nothing else. Just set your default +printer in client.conf(5) and start printing. No need for a local +cups server to be installed.") + (license license:wtfpl2))) + +(define-public noice + (package + (name "noice") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0ldkbb71z6k4yzj4kpg3s94ijj1c1kx9dfcjz393py09scfyg5hr")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script + (add-before 'build 'curses + (lambda _ + (substitute* "Makefile" + (("lcurses") "lncurses"))))))) + (inputs + `(("ncurses" ,ncurses))) + (home-page "http://git.2f30.org/noice/") + (synopsis "Small file browser") + (description + "Noice is a small curses-based file browser.") + (license license:bsd-2))) + +;;; We want some commits that are more recent than the latest release, 0.2 +(define-public human + (let ((commit "50c80e6ba12823184b6866e06b955dbd2ccdc5d7") + (revision "1")) + (package + (name "human") + (version (string-append "0.2-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.2f30.org/human.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "18xngm4h9vsyip52zwd79rrp1irzg6rs462lpbp61amf7hj955gn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/human/") + (synopsis "Convert bytes to human readable formats") + (description + "Human is a small program which translate numbers into a +human readable format. By default, it tries to detect the best +factorisation, but you can force its output. +You can adjust the number of decimals with the @code{SCALE} +environment variable.") + (license license:wtfpl2)))) + +(define-public fortify-headers + (package + (name "fortify-headers") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1cacdczpjb49c4i1168g541wnl3i3gbpv2m2wbnmw5wddlyhgkdg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (home-page "http://git.2f30.org/fortify-headers/") + (synopsis "Standalone fortify-source implementation") + (description + "This is a standalone implementation of fortify source. It provides +compile time buffer checks. It is libc-agnostic and simply overlays the +system headers by using the @code{#include_next} extension found in GCC. It was +initially intended to be used on musl based Linux distributions. + +@itemize +@item It is portable, works on *BSD, Linux, Solaris and possibly others. +@item It will only trap non-conformant programs. This means that fortify + level 2 is treated in the same way as level 1. +@item Avoids making function calls when undefined behaviour has already been + invoked. This is handled by using __builtin_trap(). +@item Support for out-of-bounds read interfaces, such as send(), write(), + fwrite() etc. +@item No ABI is enforced. All of the fortify check functions are inlined + into the resulting binary. +@end itemize\n") + (license license:isc))) + +(define-public colors + (package + (name "colors") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.2f30.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1lckmqpgj89841splng0sszbls2ag71ggkgr1wsv9y3v6y87589z")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("libpng" ,libpng))) + (home-page "http://git.2f30.org/colors/") + (synopsis "Extract colors from pictures") + (description + "Extract colors from PNG files. It is similar to +strings(1) but for pictures. For a given input file it outputs a +colormap to stdout.") + (license license:isc))) + +;; No new releases were made at github, this repository is more active than +;; the one at http://git.suckless.org/libutf/ and it is +;; done by the same developer. +(define-public libutf + (let ((revision "1") + (commit "ff4c60635e1f455b0a0b4200f8183fbd5a88225b")) + (package + (name "libutf") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cls/libutf") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ih5vjavilzggyr1j1z6w1z12c2fs5fg77cfnv7ami5ivsy3kg3d")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script + (inputs + `(("gawk" ,gawk))) + (home-page "https://github.com/cls/libutf") + (synopsis "Plan 9 compatible UTF-8 library") + (description + "This is a C89 UTF-8 library, with an API compatible with that of +Plan 9's libutf, but with a number of improvements: + +@itemize +@item Support for runes beyond the Basic Multilingual Plane. +@item utflen and utfnlen cannot overflow on 32- or 64-bit machines. +@item chartorune treats all invalid codepoints as though Runeerror. +@item fullrune, utfecpy, and utfnlen do not overestimate the length +of malformed runes. +@item An extra function, charntorune(p,s,n), equivalent to +fullrune(s,n) ? chartorune(p,s): 0. +@item Runeerror may be set to an alternative replacement value, such +as -1, to be used instead of U+FFFD. +@end itemize\n") + (license license:expat)))) + +;; No release tarballs so far. +(define-public lchat + (let ((revision "1") + (commit "bbde23732f8c7769b982f0c1bda9b99fbf93f932")) + (package + (name "lchat") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/younix/lchat") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00q3rc0aa5416jvjvrj71x1wnr0331kxhvjjs7pyxgnq4xf36k63")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script + (add-before 'build 'libbsd + (lambda _ + (substitute* "Makefile" + (("-lutf") "-lutf -lbsd")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "lchat" bin) + #t)))))) + (inputs + `(("grep" ,grep) + ("ncurses" ,ncurses) + ("libutf" ,libutf) + ("libbsd" ,libbsd))) + (home-page "https://github.com/younix/lchat") + (synopsis "Line chat is a frontend for the irc client ii from suckless") + (description + "Lchat (line chat) is the little and small brother of cii. +It is a front end for ii-like chat programs. It uses tail(1) -f to get the +chat output in background.") + (license license:isc)))) |