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