gnu: Add Pfff.
[jackhill/guix/guix.git] / gnu / packages / skarnet.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (gnu packages skarnet)
20 #:use-module (gnu packages)
21 #:use-module (guix licenses)
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix build-system gnu))
25
26 (define-public skalibs
27 (package
28 (name "skalibs")
29 (version "2.3.5.1")
30 (source
31 (origin
32 (method url-fetch)
33 (uri (string-append "http://skarnet.org/software/skalibs/skalibs-"
34 version ".tar.gz"))
35 (sha256
36 (base32
37 "1m31wph4qr4mqgv51nzwd9nw0x5vmpkcxr48i216wn3dpy3mvxwy"))))
38 (build-system gnu-build-system)
39 (arguments
40 '(#:configure-flags '("--enable-force-devr") ; do not analyze /dev/random
41 #:tests? #f)) ; no tests exist
42 (home-page "http://skarnet.org/software/skalibs/")
43 (synopsis "Platform abstraction libraries for skarnet.org software")
44 (description
45 "This package provides lightweight C libraries isolating the developer
46 from portability issues, providing a unified systems API on all platforms,
47 including primitive data types, cryptography, and POSIX concepts like sockets
48 and file system operations. It is used by all skarnet.org software.")
49 (license isc)))
50
51 (define-public execline
52 (package
53 (name "execline")
54 (version "2.1.2.2")
55 (source
56 (origin
57 (method url-fetch)
58 (uri (string-append "http://skarnet.org/software/execline/execline-"
59 version ".tar.gz"))
60 (sha256
61 (base32
62 "01pckac5zijf6icrhwicbmq92yq68gfkf1yl03rr2v4q3cn8r85f"))))
63 (build-system gnu-build-system)
64 (inputs `(("skalibs" ,skalibs)))
65 (arguments
66 '(#:configure-flags (list
67 (string-append "--with-lib="
68 (assoc-ref %build-inputs "skalibs")
69 "/lib/skalibs")
70 (string-append "--with-sysdeps="
71 (assoc-ref %build-inputs "skalibs")
72 "/lib/skalibs/sysdeps"))
73 #:phases (modify-phases %standard-phases
74 (add-after
75 'install 'post-install
76 (lambda* (#:key inputs outputs #:allow-other-keys)
77 (let* ((out (assoc-ref outputs "out"))
78 (bin (string-append out "/bin")))
79 (wrap-program (string-append bin "/execlineb")
80 `("PATH" ":" prefix (,bin)))))))
81 #:tests? #f)) ; No tests exist.
82 (home-page "http://skarnet.org/software/execline/")
83 (license isc)
84 (synopsis "Non-interactive shell-like language with minimal overhead")
85 (description
86 "Execline is a (non-interactive) scripting language, separated into a
87 parser (execlineb) and a set of commands meant to execute one another in a
88 chain-execution fashion, storing the whole script in the argument array.
89 It features conditional loops, getopt-style option handling, file name
90 globbing, redirection and other shell concepts, expressed as discrete commands
91 rather than in special syntax, minimizing runtime footprint and
92 complexity.")))