gnu: python-tempora: Switch to pyproject-build-system.
[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.11.0.0")
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 "1n9l7mb54dlb0iijjaf446jba6nmq1ql9n39s095ngrk5ahcipwq"))))
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 (home-page "https://skarnet.org/software/skalibs/")
53 (synopsis "Platform abstraction libraries for skarnet.org software")
54 (description
55 "This package provides lightweight C libraries isolating the developer
56 from portability issues, providing a unified systems API on all platforms,
57 including primitive data types, cryptography, and POSIX concepts like sockets
58 and file system operations. It is used by all skarnet.org software.")
59 (license isc)))
60
61 (define-public execline
62 (package
63 (name "execline")
64 (version "2.8.1.0")
65 (source
66 (origin
67 (method url-fetch)
68 (uri (string-append "https://skarnet.org/software/execline/execline-"
69 version ".tar.gz"))
70 (sha256
71 (base32 "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav"))))
72 (build-system gnu-build-system)
73 (inputs (list skalibs))
74 (arguments
75 '(#:configure-flags (list
76 (string-append "--with-lib="
77 (assoc-ref %build-inputs "skalibs")
78 "/lib/skalibs")
79 (string-append "--with-sysdeps="
80 (assoc-ref %build-inputs "skalibs")
81 "/lib/skalibs/sysdeps"))
82 #:phases (modify-phases %standard-phases
83 (add-after
84 'install 'post-install
85 (lambda* (#:key inputs outputs #:allow-other-keys)
86 (let* ((out (assoc-ref outputs "out"))
87 (bin (string-append out "/bin")))
88 (wrap-program (string-append bin "/execlineb")
89 `("PATH" ":" prefix (,bin)))))))
90 #:tests? #f)) ; no tests exist
91 (home-page "https://skarnet.org/software/execline/")
92 (license isc)
93 (synopsis "Non-interactive shell-like language with minimal overhead")
94 (description
95 "Execline is a (non-interactive) scripting language, separated into a
96 parser (execlineb) and a set of commands meant to execute one another in a
97 chain-execution fashion, storing the whole script in the argument array.
98 It features conditional loops, getopt-style option handling, file name
99 globbing, redirection and other shell concepts, expressed as discrete commands
100 rather than in special syntax, minimizing runtime footprint and
101 complexity.")))
102
103 (define-public s6
104 (package
105 (name "s6")
106 (version "2.11.0.0")
107 (source
108 (origin
109 (method url-fetch)
110 (uri (string-append "https://skarnet.org/software/s6/s6-"
111 version ".tar.gz"))
112 (sha256
113 (base32 "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5"))))
114 (build-system gnu-build-system)
115 (inputs (list skalibs execline))
116 (arguments
117 `(#:configure-flags (list
118 (string-append "--with-lib="
119 (assoc-ref %build-inputs "skalibs")
120 "/lib/skalibs")
121 (string-append "--with-lib="
122 (assoc-ref %build-inputs "execline")
123 "/lib/execline")
124 (string-append "--with-sysdeps="
125 (assoc-ref %build-inputs "skalibs")
126 "/lib/skalibs/sysdeps"))
127 #:tests? #f ; no tests exist
128 #:phases
129 (modify-phases %standard-phases
130 (add-after 'install 'install-doc
131 (lambda* (#:key outputs #:allow-other-keys)
132 (let* ((out (assoc-ref outputs "out"))
133 (doc (string-append out "/share/doc/s6-" ,version)))
134 (copy-recursively "doc" doc)))))))
135 (home-page "https://skarnet.org/software/s6")
136 (license isc)
137 (synopsis "Small suite of programs for process supervision")
138 (description
139 "s6 is a small suite of programs for UNIX, designed to allow process
140 supervision (a.k.a. service supervision), in the line of daemontools and
141 runit, as well as various operations on processes and daemons. It is meant to
142 be a toolbox for low-level process and service administration, providing
143 different sets of independent tools that can be used within or without the
144 framework, and that can be assembled together to achieve powerful
145 functionality with a very small amount of code.")))
146
147 (define-public s6-dns
148 (package
149 (name "s6-dns")
150 (version "2.3.5.2")
151 (source
152 (origin
153 (method url-fetch)
154 (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-"
155 version ".tar.gz"))
156 (sha256
157 (base32 "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw"))))
158 (build-system gnu-build-system)
159 (inputs (list skalibs))
160 (arguments
161 '(#:configure-flags (list
162 (string-append "--with-lib="
163 (assoc-ref %build-inputs "skalibs")
164 "/lib/skalibs")
165 (string-append "--with-sysdeps="
166 (assoc-ref %build-inputs "skalibs")
167 "/lib/skalibs/sysdeps"))
168 #:tests? #f)) ; no tests exist
169 (home-page "https://skarnet.org/software/s6-dns")
170 (license isc)
171 (synopsis "Suite of DNS client programs")
172 (description
173 "s6-dns is a suite of DNS client programs and libraries for Unix systems,
174 as an alternative to the BIND, djbdns or other DNS clients.")))
175
176 (define-public s6-networking
177 (package
178 (name "s6-networking")
179 (version "2.5.0.0")
180 (source
181 (origin
182 (method url-fetch)
183 (uri (string-append "https://skarnet.org/software/s6-networking/"
184 "s6-networking-" version ".tar.gz"))
185 (sha256
186 (base32 "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh"))))
187 (build-system gnu-build-system)
188 (inputs (list skalibs execline s6 s6-dns))
189 (arguments
190 '(#:configure-flags (list
191 (string-append "--with-lib="
192 (assoc-ref %build-inputs "skalibs")
193 "/lib/skalibs")
194 (string-append "--with-lib="
195 (assoc-ref %build-inputs "execline")
196 "/lib/execline")
197 (string-append "--with-lib="
198 (assoc-ref %build-inputs "s6")
199 "/lib/s6")
200 (string-append "--with-lib="
201 (assoc-ref %build-inputs "s6-dns")
202 "/lib/s6-dns")
203 (string-append "--with-sysdeps="
204 (assoc-ref %build-inputs "skalibs")
205 "/lib/skalibs/sysdeps"))
206 #:tests? #f)) ; no tests exist
207 (home-page "https://skarnet.org/software/s6-networking")
208 (license isc)
209 (synopsis "Suite of network utilities for Unix systems")
210 (description
211 "s6-networking is a suite of small networking utilities for Unix systems.
212 It includes command-line client and server management, TCP access control,
213 privilege escalation across UNIX domain sockets, IDENT protocol management and
214 clock synchronization.")))
215
216 (define-public s6-rc
217 (package
218 (name "s6-rc")
219 (version "0.5.2.3")
220 (source
221 (origin
222 (method url-fetch)
223 (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-"
224 version ".tar.gz"))
225 (sha256
226 (base32 "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j"))))
227 (build-system gnu-build-system)
228 (inputs (list skalibs execline 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"))
243 #:tests? #f)) ; no tests exist
244 (home-page "https://skarnet.org/software/s6-rc")
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
249 programs that can start and stop services, both long-running daemons and
250 one-time initialization scripts, in the proper order according to a dependency
251 tree. It ensures that long-running daemons are supervised by the s6
252 infrastructure, and that one-time scripts are also run in a controlled
253 environment.")))
254
255 (define-public s6-portable-utils
256 (package
257 (name "s6-portable-utils")
258 (version "2.2.3.3")
259 (source
260 (origin
261 (method url-fetch)
262 (uri (string-append
263 "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
264 version ".tar.gz"))
265 (sha256
266 (base32 "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84"))))
267 (build-system gnu-build-system)
268 (inputs (list 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"))
277 #:tests? #f)) ; no tests exist
278 (home-page "https://skarnet.org/software/s6-portable-utils")
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
283 performing well-known tasks such as @command{cut} and @command{grep}, but
284 optimized for simplicity and small size. They were designed for embedded
285 systems and other constrained environments, but they work everywhere.")))
286
287 (define-public s6-linux-init
288 (package
289 (name "s6-linux-init")
290 (version "1.0.6.4")
291 (source
292 (origin
293 (method url-fetch)
294 (uri (string-append
295 "https://skarnet.org/software/s6-linux-init/s6-linux-init-"
296 version ".tar.gz"))
297 (sha256
298 (base32 "0grqk111d6aqym1c4l9j26fdqcgra1hvwb9vdgylrfbvn1c3hlpb"))))
299 (build-system gnu-build-system)
300 (inputs
301 (list execline s6 skalibs))
302 (arguments
303 '(#:configure-flags
304 (list
305 "--disable-static"
306 (string-append "--with-lib="
307 (assoc-ref %build-inputs "skalibs")
308 "/lib/skalibs")
309 (string-append "--with-lib="
310 (assoc-ref %build-inputs "execline")
311 "/lib/execline")
312 (string-append "--with-lib="
313 (assoc-ref %build-inputs "s6")
314 "/lib/s6")
315 (string-append "--with-sysdeps="
316 (assoc-ref %build-inputs "skalibs")
317 "/lib/skalibs/sysdeps"))
318 #:tests? #f)) ; no tests exist
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.5.1.6")
335 (source
336 (origin
337 (method url-fetch)
338 (uri (string-append
339 "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
340 version ".tar.gz"))
341 (sha256
342 (base32 "0hr49nl0d7a6i5w8cfg43xzvzayb8kpqij9xg7bmw2fyvc2z338z"))))
343 (build-system gnu-build-system)
344 (inputs (list skalibs))
345 (arguments
346 '(#:configure-flags (list
347 (string-append "--with-lib="
348 (assoc-ref %build-inputs "skalibs")
349 "/lib/skalibs")
350 (string-append "--with-sysdeps="
351 (assoc-ref %build-inputs "skalibs")
352 "/lib/skalibs/sysdeps"))
353 #:tests? #f)) ; no tests exist
354 (home-page "https://skarnet.org/software/s6-linux-utils")
355 (license isc)
356 (synopsis "Set of minimalistic Linux-specific system utilities")
357 (description
358 "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
359 such as @command{mount}, @command{umount}, and @command{chroot} commands,
360 Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))