gnu: Add amule.
[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 ;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
4 ;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
5 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
6 ;;;
7 ;;; This file is part of GNU Guix.
8 ;;;
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
13 ;;;
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22 (define-module (gnu packages skarnet)
23 #:use-module (gnu packages)
24 #:use-module (guix licenses)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix build-system gnu))
28
29 (define-public skalibs
30 (package
31 (name "skalibs")
32 (version "2.6.3.1")
33 (source
34 (origin
35 (method url-fetch)
36 (uri (string-append "http://skarnet.org/software/skalibs/skalibs-"
37 version ".tar.gz"))
38 (sha256
39 (base32
40 "108c4vslsfy57892ybbksscrjd4bx444hzzcq2g5wdg2sh0cl245"))))
41 (build-system gnu-build-system)
42 (arguments
43 '(#:tests? #f ; no tests exist
44 #:phases (modify-phases %standard-phases
45 (add-after 'unpack 'reproducible
46 (lambda _
47 ;; Sort source files deterministically so that the *.a
48 ;; and *.so files are reproducible.
49 (substitute* "Makefile"
50 (("\\$\\(wildcard src/lib\\*/\\*.c\\)")
51 "$(sort $(wildcard src/lib*/*.c))"))
52 #t)))))
53 (home-page "https://skarnet.org/software/skalibs/")
54 (synopsis "Platform abstraction libraries for skarnet.org software")
55 (description
56 "This package provides lightweight C libraries isolating the developer
57 from portability issues, providing a unified systems API on all platforms,
58 including primitive data types, cryptography, and POSIX concepts like sockets
59 and file system operations. It is used by all skarnet.org software.")
60 (license isc)))
61
62 (define-public execline
63 (package
64 (name "execline")
65 (version "2.3.0.4")
66 (source
67 (origin
68 (method url-fetch)
69 (uri (string-append "http://skarnet.org/software/execline/execline-"
70 version ".tar.gz"))
71 (sha256
72 (base32
73 "0jx60wjz3yj3r1wircbvd15in275pi7ggw69pbs9djhcyb48zfz4"))))
74 (build-system gnu-build-system)
75 (inputs `(("skalibs" ,skalibs)))
76 (arguments
77 '(#:configure-flags (list
78 (string-append "--with-lib="
79 (assoc-ref %build-inputs "skalibs")
80 "/lib/skalibs")
81 (string-append "--with-sysdeps="
82 (assoc-ref %build-inputs "skalibs")
83 "/lib/skalibs/sysdeps"))
84 #:phases (modify-phases %standard-phases
85 (add-after
86 'install 'post-install
87 (lambda* (#:key inputs outputs #:allow-other-keys)
88 (let* ((out (assoc-ref outputs "out"))
89 (bin (string-append out "/bin")))
90 (wrap-program (string-append bin "/execlineb")
91 `("PATH" ":" prefix (,bin)))))))
92 #:tests? #f)) ; No tests exist.
93 (home-page "https://skarnet.org/software/execline/")
94 (license isc)
95 (synopsis "Non-interactive shell-like language with minimal overhead")
96 (description
97 "Execline is a (non-interactive) scripting language, separated into a
98 parser (execlineb) and a set of commands meant to execute one another in a
99 chain-execution fashion, storing the whole script in the argument array.
100 It features conditional loops, getopt-style option handling, file name
101 globbing, redirection and other shell concepts, expressed as discrete commands
102 rather than in special syntax, minimizing runtime footprint and
103 complexity.")))
104
105 (define-public s6
106 (package
107 (name "s6")
108 (version "2.7.0.0")
109 (source
110 (origin
111 (method url-fetch)
112 (uri (string-append "http://skarnet.org/software/s6/s6-"
113 version ".tar.gz"))
114 (sha256
115 (base32
116 "04vfviw00zvvb1mdpl78zdgzd7j491f1lahhqrkkq9vk5kwcn5v6"))))
117 (build-system gnu-build-system)
118 (inputs `(("skalibs" ,skalibs)
119 ("execline" ,execline)))
120 (arguments
121 '(#:configure-flags (list
122 (string-append "--with-lib="
123 (assoc-ref %build-inputs "skalibs")
124 "/lib/skalibs")
125 (string-append "--with-lib="
126 (assoc-ref %build-inputs "execline")
127 "/lib/execline")
128 (string-append "--with-sysdeps="
129 (assoc-ref %build-inputs "skalibs")
130 "/lib/skalibs/sysdeps"))
131 #:tests? #f))
132 (home-page "https://skarnet.org/software/s6")
133 (license isc)
134 (synopsis "Small suite of programs for process supervision")
135 (description
136 "s6 is a small suite of programs for UNIX, designed to allow process
137 supervision (a.k.a. service supervision), in the line of daemontools and
138 runit, as well as various operations on processes and daemons. It is meant to
139 be a toolbox for low-level process and service administration, providing
140 different sets of independent tools that can be used within or without the
141 framework, and that can be assembled together to achieve powerful
142 functionality with a very small amount of code.")))
143
144 (define-public s6-dns
145 (package
146 (name "s6-dns")
147 (version "2.3.0.0")
148 (source
149 (origin
150 (method url-fetch)
151 (uri (string-append "http://skarnet.org/software/s6-dns/s6-dns-"
152 version ".tar.gz"))
153 (sha256
154 (base32
155 "0h47ldxvh9cny91r0pjxq7zr5iqpqf1j50p3ip42f6bl90z5ha58"))))
156 (build-system gnu-build-system)
157 (inputs `(("skalibs" ,skalibs)))
158 (arguments
159 '(#:configure-flags (list
160 (string-append "--with-lib="
161 (assoc-ref %build-inputs "skalibs")
162 "/lib/skalibs")
163 (string-append "--with-sysdeps="
164 (assoc-ref %build-inputs "skalibs")
165 "/lib/skalibs/sysdeps"))
166 #:tests? #f))
167 (home-page "https://skarnet.org/software/s6-dns")
168 (license isc)
169 (synopsis "Suite of DNS client programs")
170 (description
171 "s6-dns is a suite of DNS client programs and libraries for Unix systems,
172 as an alternative to the BIND, djbdns or other DNS clients.")))
173
174 (define-public s6-networking
175 (package
176 (name "s6-networking")
177 (version "2.3.0.2")
178 (source
179 (origin
180 (method url-fetch)
181 (uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
182 version ".tar.gz"))
183 (sha256
184 (base32
185 "06j8fpldn187cmbjqp191hd65ka3ys19vj3jm3kcvkmvd9snh6fq"))))
186 (build-system gnu-build-system)
187 (inputs `(("skalibs" ,skalibs)
188 ("execline" ,execline)
189 ("s6" ,s6)
190 ("s6-dns" ,s6-dns)))
191 (arguments
192 '(#:configure-flags (list
193 (string-append "--with-lib="
194 (assoc-ref %build-inputs "skalibs")
195 "/lib/skalibs")
196 (string-append "--with-lib="
197 (assoc-ref %build-inputs "execline")
198 "/lib/execline")
199 (string-append "--with-lib="
200 (assoc-ref %build-inputs "s6")
201 "/lib/s6")
202 (string-append "--with-lib="
203 (assoc-ref %build-inputs "s6-dns")
204 "/lib/s6-dns")
205 (string-append "--with-sysdeps="
206 (assoc-ref %build-inputs "skalibs")
207 "/lib/skalibs/sysdeps"))
208 #:tests? #f))
209 (home-page "https://skarnet.org/software/s6-networking")
210 (license isc)
211 (synopsis "Suite of network utilities for Unix systems")
212 (description
213 "s6-networking is a suite of small networking utilities for Unix systems.
214 It includes command-line client and server management, TCP access control,
215 privilege escalation across UNIX domain sockets, IDENT protocol management and
216 clock synchronization.")))
217
218 (define-public s6-rc
219 (package
220 (name "s6-rc")
221 (version "0.4.0.0")
222 (source
223 (origin
224 (method url-fetch)
225 (uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
226 version ".tar.gz"))
227 (sha256
228 (base32
229 "1fkg9635cvrf6gw055y346a3n634dy2xiwbypawi68flfprfgf4n"))))
230 (build-system gnu-build-system)
231 (inputs `(("skalibs" ,skalibs)
232 ("execline" ,execline)
233 ("s6" ,s6)))
234 (arguments
235 '(#:configure-flags (list
236 (string-append "--with-lib="
237 (assoc-ref %build-inputs "skalibs")
238 "/lib/skalibs")
239 (string-append "--with-lib="
240 (assoc-ref %build-inputs "execline")
241 "/lib/execline")
242 (string-append "--with-lib="
243 (assoc-ref %build-inputs "s6")
244 "/lib/s6")
245 (string-append "--with-sysdeps="
246 (assoc-ref %build-inputs "skalibs")
247 "/lib/skalibs/sysdeps"))
248 #:tests? #f))
249 (home-page "https://skarnet.org/software/s6-rc")
250 (license isc)
251 (synopsis "Service manager for s6-based systems")
252 (description
253 "s6-rc is a service manager for s6-based systems, i.e. a suite of
254 programs that can start and stop services, both long-running daemons and
255 one-time initialization scripts, in the proper order according to a dependency
256 tree. It ensures that long-running daemons are supervised by the s6
257 infrastructure, and that one-time scripts are also run in a controlled
258 environment.")))
259
260 (define-public s6-portable-utils
261 (package
262 (name "s6-portable-utils")
263 (version "2.2.1.1")
264 (source
265 (origin
266 (method url-fetch)
267 (uri (string-append
268 "http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
269 version ".tar.gz"))
270 (sha256
271 (base32
272 "0ca5iiq3n6isj64jb81xpwjzjx1q8jg145nnnn91ra2qqk93kqka"))))
273 (build-system gnu-build-system)
274 (inputs `(("skalibs" ,skalibs)))
275 (arguments
276 '(#:configure-flags (list
277 (string-append "--with-lib="
278 (assoc-ref %build-inputs "skalibs")
279 "/lib/skalibs")
280 (string-append "--with-sysdeps="
281 (assoc-ref %build-inputs "skalibs")
282 "/lib/skalibs/sysdeps"))
283 #:tests? #f))
284 (home-page "https://skarnet.org/software/s6-portable-utils")
285 (license isc)
286 (synopsis "Tiny command-line Unix utilities")
287 (description
288 "s6-portable-utils is a set of tiny general Unix utilities, often
289 performing well-known tasks such as @command{cut} and @command{grep}, but
290 optimized for simplicity and small size. They were designed for embedded
291 systems and other constrained environments, but they work everywhere.")))
292
293 (define-public s6-linux-init
294 (package
295 (name "s6-linux-init")
296 (version "0.3.1.1")
297 (source
298 (origin
299 (method url-fetch)
300 (uri (string-append
301 "http://skarnet.org/software/s6-linux-init/s6-linux-init-"
302 version ".tar.gz"))
303 (sha256
304 (base32
305 "0yfxrjqlbb6kac4gcn78phxbwp5sj9jmc1vxpsrbql62mfjyiqly"))))
306 (build-system gnu-build-system)
307 (inputs
308 `(("skalibs" ,skalibs)))
309 (arguments
310 '(#:configure-flags
311 (list
312 (string-append "--with-lib="
313 (assoc-ref %build-inputs "skalibs")
314 "/lib/skalibs")
315 (string-append "--with-sysdeps="
316 (assoc-ref %build-inputs "skalibs")
317 "/lib/skalibs/sysdeps"))
318 #:tests? #f))
319 (home-page "https://skarnet.org/software/s6-linux-init")
320 (license isc)
321 (synopsis "Minimalistic tools to create an s6-based init system on Linux")
322 (description
323 " s6-linux-init is a set of minimalistic tools to create a s6-based init
324 system, including an @command{/sbin/init} binary, on a Linux kernel.
325
326 It is meant to automate creation of scripts revolving around the use of other
327 skarnet.org tools, especially s6, in order to provide a complete booting
328 environment with integrated supervision and logging without having to hand-craft
329 all the details. ")))
330
331 (define-public s6-linux-utils
332 (package
333 (name "s6-linux-utils")
334 (version "2.4.0.2")
335 (source
336 (origin
337 (method url-fetch)
338 (uri (string-append
339 "http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
340 version ".tar.gz"))
341 (sha256
342 (base32
343 "0245rmk7wfyyfsi4g7f0niprwlvqlwkbyjxflb8kkbvhwfdavqip"))))
344 (build-system gnu-build-system)
345 (inputs `(("skalibs" ,skalibs)))
346 (arguments
347 '(#:configure-flags (list
348 (string-append "--with-lib="
349 (assoc-ref %build-inputs "skalibs")
350 "/lib/skalibs")
351 (string-append "--with-sysdeps="
352 (assoc-ref %build-inputs "skalibs")
353 "/lib/skalibs/sysdeps"))
354 #:tests? #f))
355 (home-page "https://skarnet.org/software/s6-linux-utils")
356 (license isc)
357 (synopsis "Set of minimalistic Linux-specific system utilities")
358 (description
359 "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
360 such as @command{mount}, @command{umount}, and @command{chroot} commands,
361 Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))