Commit | Line | Data |
---|---|---|
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> |
c261aa20 | 5 | ;;; Copyright © 2018–2021 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") | |
b1704008 | 33 | (version "2.10.0.3") |
4e2bd414 CW |
34 | (source |
35 | (origin | |
36 | (method url-fetch) | |
c9cd6d2f | 37 | (uri (string-append "https://skarnet.org/software/skalibs/skalibs-" |
4e2bd414 CW |
38 | version ".tar.gz")) |
39 | (sha256 | |
b1704008 | 40 | (base32 "0ka6n5rnxd5sn5lycarf596d5wlak5s535zqqlz0rnhdcnpb105p")))) |
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 | |
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))) | |
e662d644 CW |
61 | |
62 | (define-public execline | |
63 | (package | |
64 | (name "execline") | |
70199ff4 | 65 | (version "2.8.0.1") |
e662d644 CW |
66 | (source |
67 | (origin | |
68 | (method url-fetch) | |
c9cd6d2f | 69 | (uri (string-append "https://skarnet.org/software/execline/execline-" |
e662d644 CW |
70 | version ".tar.gz")) |
71 | (sha256 | |
70199ff4 | 72 | (base32 "1v9swmhw2rcrr9fmkmd7qh8qq0kslhmvxwz2a3bhan9ksabz8wx3")))) |
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 | |
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."))) | |
918cee46 ELB |
103 | |
104 | (define-public s6 | |
105 | (package | |
106 | (name "s6") | |
54c24467 | 107 | (version "2.10.0.3") |
918cee46 ELB |
108 | (source |
109 | (origin | |
110 | (method url-fetch) | |
c9cd6d2f | 111 | (uri (string-append "https://skarnet.org/software/s6/s6-" |
918cee46 ELB |
112 | version ".tar.gz")) |
113 | (sha256 | |
54c24467 | 114 | (base32 "0mw7blp8dwr09z58m9mrxwmmvvpnjzq9klcf1vgm0hbha4qkf88x")))) |
918cee46 ELB |
115 | (build-system gnu-build-system) |
116 | (inputs `(("skalibs" ,skalibs) | |
117 | ("execline" ,execline))) | |
118 | (arguments | |
47ea2ad1 | 119 | `(#:configure-flags (list |
918cee46 ELB |
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")) | |
47ea2ad1 SB |
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)))))) | |
d1e8408f | 138 | (home-page "https://skarnet.org/software/s6") |
918cee46 ELB |
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 | ||
798b776d ELB |
150 | (define-public s6-dns |
151 | (package | |
152 | (name "s6-dns") | |
26e80a82 | 153 | (version "2.3.5.1") |
798b776d ELB |
154 | (source |
155 | (origin | |
156 | (method url-fetch) | |
c9cd6d2f | 157 | (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-" |
798b776d ELB |
158 | version ".tar.gz")) |
159 | (sha256 | |
26e80a82 | 160 | (base32 "0qsgqwdr5ms337fc9f2b4aa5cr7myvbzndvgkgswnrdwszjm078c")))) |
798b776d ELB |
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")) | |
0241dc18 | 171 | #:tests? #f)) ; no tests exist |
d1e8408f | 172 | (home-page "https://skarnet.org/software/s6-dns") |
798b776d ELB |
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 | ||
7c6bdeec ELB |
179 | (define-public s6-networking |
180 | (package | |
181 | (name "s6-networking") | |
c2335a24 | 182 | (version "2.4.1.1") |
7c6bdeec ELB |
183 | (source |
184 | (origin | |
185 | (method url-fetch) | |
eafce719 TGR |
186 | (uri (string-append "https://skarnet.org/software/s6-networking/" |
187 | "s6-networking-" version ".tar.gz")) | |
7c6bdeec | 188 | (sha256 |
c2335a24 | 189 | (base32 "0m55ibx7k2wgrqbpci1n667ij0h925ajzggxalq2pj65kmwcmyx3")))) |
7c6bdeec ELB |
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")) | |
33cd88ac | 212 | #:tests? #f)) ; no tests exist |
d1e8408f | 213 | (home-page "https://skarnet.org/software/s6-networking") |
7c6bdeec ELB |
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."))) | |
35977a88 ELB |
221 | |
222 | (define-public s6-rc | |
223 | (package | |
224 | (name "s6-rc") | |
42da9908 | 225 | (version "0.5.2.2") |
35977a88 ELB |
226 | (source |
227 | (origin | |
228 | (method url-fetch) | |
c9cd6d2f | 229 | (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-" |
35977a88 ELB |
230 | version ".tar.gz")) |
231 | (sha256 | |
42da9908 | 232 | (base32 "12bzc483jpd16xmhfsfrib84daj1k3kwy5s5nc18ap60apa1r39a")))) |
35977a88 ELB |
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")) | |
510a83fb | 251 | #:tests? #f)) ; no tests exist |
d1e8408f | 252 | (home-page "https://skarnet.org/software/s6-rc") |
35977a88 ELB |
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."))) | |
915db95f ELB |
262 | |
263 | (define-public s6-portable-utils | |
264 | (package | |
265 | (name "s6-portable-utils") | |
c0656dfe | 266 | (version "2.2.3.2") |
915db95f ELB |
267 | (source |
268 | (origin | |
269 | (method url-fetch) | |
270 | (uri (string-append | |
c9cd6d2f | 271 | "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-" |
915db95f ELB |
272 | version ".tar.gz")) |
273 | (sha256 | |
c0656dfe | 274 | (base32 "173nmygkp7ky3093dg4rx3ahvyl7ll86z8qj6pl3jd96xb9s49v6")))) |
915db95f ELB |
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")) | |
5350d0cd | 285 | #:tests? #f)) ; no tests exist |
d1e8408f | 286 | (home-page "https://skarnet.org/software/s6-portable-utils") |
915db95f ELB |
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."))) | |
cf04df07 | 294 | |
c14dcc0c TGR |
295 | (define-public s6-linux-init |
296 | (package | |
297 | (name "s6-linux-init") | |
9809e726 | 298 | (version "1.0.6.2") |
c14dcc0c TGR |
299 | (source |
300 | (origin | |
301 | (method url-fetch) | |
302 | (uri (string-append | |
c9cd6d2f | 303 | "https://skarnet.org/software/s6-linux-init/s6-linux-init-" |
c14dcc0c TGR |
304 | version ".tar.gz")) |
305 | (sha256 | |
9809e726 | 306 | (base32 "06xcmn2a89fvng056lcnnyrl2ak0y7cblkc90lj9a2liyhawy9dr")))) |
c14dcc0c TGR |
307 | (build-system gnu-build-system) |
308 | (inputs | |
c1eab4a2 | 309 | `(("execline" ,execline) |
1628d57b | 310 | ("s6" ,s6) |
c1eab4a2 | 311 | ("skalibs" ,skalibs))) |
c14dcc0c TGR |
312 | (arguments |
313 | '(#:configure-flags | |
314 | (list | |
eddf3db5 | 315 | "--disable-static" |
c14dcc0c TGR |
316 | (string-append "--with-lib=" |
317 | (assoc-ref %build-inputs "skalibs") | |
318 | "/lib/skalibs") | |
c1eab4a2 OP |
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") | |
c14dcc0c TGR |
325 | (string-append "--with-sysdeps=" |
326 | (assoc-ref %build-inputs "skalibs") | |
327 | "/lib/skalibs/sysdeps")) | |
c43f5b80 | 328 | #:tests? #f)) ; no tests exist |
c14dcc0c TGR |
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 | |
6a7c1c43 | 333 | "s6-linux-init is a set of minimalistic tools to create a s6-based init |
c14dcc0c TGR |
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 | |
6a7c1c43 | 339 | all the details."))) |
c14dcc0c | 340 | |
cf04df07 ELB |
341 | (define-public s6-linux-utils |
342 | (package | |
343 | (name "s6-linux-utils") | |
3782c874 | 344 | (version "2.5.1.5") |
cf04df07 ELB |
345 | (source |
346 | (origin | |
347 | (method url-fetch) | |
348 | (uri (string-append | |
c9cd6d2f | 349 | "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-" |
cf04df07 ELB |
350 | version ".tar.gz")) |
351 | (sha256 | |
3782c874 | 352 | (base32 "1fj5ldlrc6bx40pphg29rp3byd6fal6869v85kw86c2kdgrxn063")))) |
cf04df07 ELB |
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")) | |
ed6c3dad | 363 | #:tests? #f)) ; no tests exist |
d1e8408f | 364 | (home-page "https://skarnet.org/software/s6-linux-utils") |
cf04df07 ELB |
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."))) |