gnu: s6-linux-init: Update to 1.0.6.2.
[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–2021 Tobias Geerinckx-Rice <me@tobias.gr>
6 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
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")
33 (version "2.10.0.3")
34 (source
35 (origin
36 (method url-fetch)
37 (uri (string-append "https://skarnet.org/software/skalibs/skalibs-"
38 version ".tar.gz"))
39 (sha256
40 (base32 "0ka6n5rnxd5sn5lycarf596d5wlak5s535zqqlz0rnhdcnpb105p"))))
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.8.0.1")
66 (source
67 (origin
68 (method url-fetch)
69 (uri (string-append "https://skarnet.org/software/execline/execline-"
70 version ".tar.gz"))
71 (sha256
72 (base32 "1v9swmhw2rcrr9fmkmd7qh8qq0kslhmvxwz2a3bhan9ksabz8wx3"))))
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)))))))
91 #:tests? #f)) ; no tests exist
92 (home-page "https://skarnet.org/software/execline/")
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
97 parser (execlineb) and a set of commands meant to execute one another in a
98 chain-execution fashion, storing the whole script in the argument array.
99 It features conditional loops, getopt-style option handling, file name
100 globbing, redirection and other shell concepts, expressed as discrete commands
101 rather than in special syntax, minimizing runtime footprint and
102 complexity.")))
103
104 (define-public s6
105 (package
106 (name "s6")
107 (version "2.10.0.3")
108 (source
109 (origin
110 (method url-fetch)
111 (uri (string-append "https://skarnet.org/software/s6/s6-"
112 version ".tar.gz"))
113 (sha256
114 (base32 "0mw7blp8dwr09z58m9mrxwmmvvpnjzq9klcf1vgm0hbha4qkf88x"))))
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"))
129 #:tests? #f ; no tests exist
130 #:phases
131 (modify-phases %standard-phases
132 (add-after 'install 'install-doc
133 (lambda* (#:key outputs #:allow-other-keys)
134 (let* ((out (assoc-ref outputs "out"))
135 (doc (string-append out "/share/doc/s6-" ,version)))
136 (copy-recursively "doc" doc)
137 #t))))))
138 (home-page "https://skarnet.org/software/s6")
139 (license isc)
140 (synopsis "Small suite of programs for process supervision")
141 (description
142 "s6 is a small suite of programs for UNIX, designed to allow process
143 supervision (a.k.a. service supervision), in the line of daemontools and
144 runit, as well as various operations on processes and daemons. It is meant to
145 be a toolbox for low-level process and service administration, providing
146 different sets of independent tools that can be used within or without the
147 framework, and that can be assembled together to achieve powerful
148 functionality with a very small amount of code.")))
149
150 (define-public s6-dns
151 (package
152 (name "s6-dns")
153 (version "2.3.5.1")
154 (source
155 (origin
156 (method url-fetch)
157 (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-"
158 version ".tar.gz"))
159 (sha256
160 (base32 "0qsgqwdr5ms337fc9f2b4aa5cr7myvbzndvgkgswnrdwszjm078c"))))
161 (build-system gnu-build-system)
162 (inputs `(("skalibs" ,skalibs)))
163 (arguments
164 '(#:configure-flags (list
165 (string-append "--with-lib="
166 (assoc-ref %build-inputs "skalibs")
167 "/lib/skalibs")
168 (string-append "--with-sysdeps="
169 (assoc-ref %build-inputs "skalibs")
170 "/lib/skalibs/sysdeps"))
171 #:tests? #f)) ; no tests exist
172 (home-page "https://skarnet.org/software/s6-dns")
173 (license isc)
174 (synopsis "Suite of DNS client programs")
175 (description
176 "s6-dns is a suite of DNS client programs and libraries for Unix systems,
177 as an alternative to the BIND, djbdns or other DNS clients.")))
178
179 (define-public s6-networking
180 (package
181 (name "s6-networking")
182 (version "2.4.1.1")
183 (source
184 (origin
185 (method url-fetch)
186 (uri (string-append "https://skarnet.org/software/s6-networking/"
187 "s6-networking-" version ".tar.gz"))
188 (sha256
189 (base32 "0m55ibx7k2wgrqbpci1n667ij0h925ajzggxalq2pj65kmwcmyx3"))))
190 (build-system gnu-build-system)
191 (inputs `(("skalibs" ,skalibs)
192 ("execline" ,execline)
193 ("s6" ,s6)
194 ("s6-dns" ,s6-dns)))
195 (arguments
196 '(#:configure-flags (list
197 (string-append "--with-lib="
198 (assoc-ref %build-inputs "skalibs")
199 "/lib/skalibs")
200 (string-append "--with-lib="
201 (assoc-ref %build-inputs "execline")
202 "/lib/execline")
203 (string-append "--with-lib="
204 (assoc-ref %build-inputs "s6")
205 "/lib/s6")
206 (string-append "--with-lib="
207 (assoc-ref %build-inputs "s6-dns")
208 "/lib/s6-dns")
209 (string-append "--with-sysdeps="
210 (assoc-ref %build-inputs "skalibs")
211 "/lib/skalibs/sysdeps"))
212 #:tests? #f)) ; no tests exist
213 (home-page "https://skarnet.org/software/s6-networking")
214 (license isc)
215 (synopsis "Suite of network utilities for Unix systems")
216 (description
217 "s6-networking is a suite of small networking utilities for Unix systems.
218 It includes command-line client and server management, TCP access control,
219 privilege escalation across UNIX domain sockets, IDENT protocol management and
220 clock synchronization.")))
221
222 (define-public s6-rc
223 (package
224 (name "s6-rc")
225 (version "0.5.2.2")
226 (source
227 (origin
228 (method url-fetch)
229 (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-"
230 version ".tar.gz"))
231 (sha256
232 (base32 "12bzc483jpd16xmhfsfrib84daj1k3kwy5s5nc18ap60apa1r39a"))))
233 (build-system gnu-build-system)
234 (inputs `(("skalibs" ,skalibs)
235 ("execline" ,execline)
236 ("s6" ,s6)))
237 (arguments
238 '(#:configure-flags (list
239 (string-append "--with-lib="
240 (assoc-ref %build-inputs "skalibs")
241 "/lib/skalibs")
242 (string-append "--with-lib="
243 (assoc-ref %build-inputs "execline")
244 "/lib/execline")
245 (string-append "--with-lib="
246 (assoc-ref %build-inputs "s6")
247 "/lib/s6")
248 (string-append "--with-sysdeps="
249 (assoc-ref %build-inputs "skalibs")
250 "/lib/skalibs/sysdeps"))
251 #:tests? #f)) ; no tests exist
252 (home-page "https://skarnet.org/software/s6-rc")
253 (license isc)
254 (synopsis "Service manager for s6-based systems")
255 (description
256 "s6-rc is a service manager for s6-based systems, i.e. a suite of
257 programs that can start and stop services, both long-running daemons and
258 one-time initialization scripts, in the proper order according to a dependency
259 tree. It ensures that long-running daemons are supervised by the s6
260 infrastructure, and that one-time scripts are also run in a controlled
261 environment.")))
262
263 (define-public s6-portable-utils
264 (package
265 (name "s6-portable-utils")
266 (version "2.2.3.2")
267 (source
268 (origin
269 (method url-fetch)
270 (uri (string-append
271 "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
272 version ".tar.gz"))
273 (sha256
274 (base32 "173nmygkp7ky3093dg4rx3ahvyl7ll86z8qj6pl3jd96xb9s49v6"))))
275 (build-system gnu-build-system)
276 (inputs `(("skalibs" ,skalibs)))
277 (arguments
278 '(#:configure-flags (list
279 (string-append "--with-lib="
280 (assoc-ref %build-inputs "skalibs")
281 "/lib/skalibs")
282 (string-append "--with-sysdeps="
283 (assoc-ref %build-inputs "skalibs")
284 "/lib/skalibs/sysdeps"))
285 #:tests? #f)) ; no tests exist
286 (home-page "https://skarnet.org/software/s6-portable-utils")
287 (license isc)
288 (synopsis "Tiny command-line Unix utilities")
289 (description
290 "s6-portable-utils is a set of tiny general Unix utilities, often
291 performing well-known tasks such as @command{cut} and @command{grep}, but
292 optimized for simplicity and small size. They were designed for embedded
293 systems and other constrained environments, but they work everywhere.")))
294
295 (define-public s6-linux-init
296 (package
297 (name "s6-linux-init")
298 (version "1.0.6.2")
299 (source
300 (origin
301 (method url-fetch)
302 (uri (string-append
303 "https://skarnet.org/software/s6-linux-init/s6-linux-init-"
304 version ".tar.gz"))
305 (sha256
306 (base32 "06xcmn2a89fvng056lcnnyrl2ak0y7cblkc90lj9a2liyhawy9dr"))))
307 (build-system gnu-build-system)
308 (inputs
309 `(("execline" ,execline)
310 ("s6" ,s6)
311 ("skalibs" ,skalibs)))
312 (arguments
313 '(#:configure-flags
314 (list
315 "--disable-static"
316 (string-append "--with-lib="
317 (assoc-ref %build-inputs "skalibs")
318 "/lib/skalibs")
319 (string-append "--with-lib="
320 (assoc-ref %build-inputs "execline")
321 "/lib/execline")
322 (string-append "--with-lib="
323 (assoc-ref %build-inputs "s6")
324 "/lib/s6")
325 (string-append "--with-sysdeps="
326 (assoc-ref %build-inputs "skalibs")
327 "/lib/skalibs/sysdeps"))
328 #:tests? #f)) ; no tests exist
329 (home-page "https://skarnet.org/software/s6-linux-init")
330 (license isc)
331 (synopsis "Minimalistic tools to create an s6-based init system on Linux")
332 (description
333 "s6-linux-init is a set of minimalistic tools to create a s6-based init
334 system, including an @command{/sbin/init} binary, on a Linux kernel.
335
336 It is meant to automate creation of scripts revolving around the use of other
337 skarnet.org tools, especially s6, in order to provide a complete booting
338 environment with integrated supervision and logging without having to hand-craft
339 all the details.")))
340
341 (define-public s6-linux-utils
342 (package
343 (name "s6-linux-utils")
344 (version "2.5.1.4")
345 (source
346 (origin
347 (method url-fetch)
348 (uri (string-append
349 "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
350 version ".tar.gz"))
351 (sha256
352 (base32 "02gxzc9igid2kf2rvm3v6kc9806mpjmdq7cpanv4cml0ip68vbfq"))))
353 (build-system gnu-build-system)
354 (inputs `(("skalibs" ,skalibs)))
355 (arguments
356 '(#:configure-flags (list
357 (string-append "--with-lib="
358 (assoc-ref %build-inputs "skalibs")
359 "/lib/skalibs")
360 (string-append "--with-sysdeps="
361 (assoc-ref %build-inputs "skalibs")
362 "/lib/skalibs/sysdeps"))
363 #:tests? #f)) ; no tests exist
364 (home-page "https://skarnet.org/software/s6-linux-utils")
365 (license isc)
366 (synopsis "Set of minimalistic Linux-specific system utilities")
367 (description
368 "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
369 such as @command{mount}, @command{umount}, and @command{chroot} commands,
370 Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))