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> |
5cecf3f4 | 5 | ;;; Copyright © 2018, 2019, 2020 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") | |
b486bf78 | 33 | (version "2.9.2.0") |
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 | |
b486bf78 | 40 | (base32 "1i9d7w031kh338aq6xdsf8vl5amxbwxbny8lnrxlzydqvn8nxhz4")))) |
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") | |
1fc2a81e | 65 | (version "2.6.0.0") |
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 | |
1fc2a81e | 72 | (base32 "1m6pvawxqaqjr49456vyjyl8dnqwvr19v77sjj7dnglfijwza5al")))) |
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") | |
32df41be | 107 | (version "2.9.1.0") |
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 | |
32df41be | 114 | (base32 "1xqzl2wnvcmcyhppk7mc10h1ac7fkik3i6gpyliwpf3d5i9mkqh5")))) |
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") | |
92a4f18f | 153 | (version "2.3.2.0") |
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 | |
92a4f18f | 160 | (base32 "09hyb1xv9glqq0yy7wy8hiwvlr78kwv552pags8ancgamag15di7")))) |
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") | |
82853fbf | 182 | (version "2.3.1.2") |
7c6bdeec ELB |
183 | (source |
184 | (origin | |
185 | (method url-fetch) | |
c9cd6d2f | 186 | (uri (string-append "https://skarnet.org/software/s6-networking/s6-networking-" |
7c6bdeec ELB |
187 | version ".tar.gz")) |
188 | (sha256 | |
82853fbf | 189 | (base32 "1029bgwfmv903y5ji93j75m7p2jgchdxya1khxzb42q2z7yxnlyr")))) |
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") | |
322ea25c | 225 | (version "0.5.1.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 | |
322ea25c | 232 | (base32 "18m8jsx3bkj566p6xwwnsvdckk10n8wqnhp0na2k88i295h4rnjp")))) |
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") | |
072102f6 | 266 | (version "2.2.2.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 | |
072102f6 | 274 | (base32 "1k3la37q46n93vjwk9wm9ym4w87z6lqzv43f03qd0vqj9k94mpv3")))) |
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") | |
bead5065 | 298 | (version "1.0.4.0") |
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 | |
bead5065 | 306 | (base32 "176mgkqxlp6gb6my66dv73xsp7adfxbjp5hjyh35sykqkr4kfyfy")))) |
c14dcc0c TGR |
307 | (build-system gnu-build-system) |
308 | (inputs | |
c1eab4a2 OP |
309 | `(("execline" ,execline) |
310 | ("s6", s6) | |
311 | ("skalibs" ,skalibs))) | |
c14dcc0c TGR |
312 | (arguments |
313 | '(#:configure-flags | |
314 | (list | |
315 | (string-append "--with-lib=" | |
316 | (assoc-ref %build-inputs "skalibs") | |
317 | "/lib/skalibs") | |
c1eab4a2 OP |
318 | (string-append "--with-lib=" |
319 | (assoc-ref %build-inputs "execline") | |
320 | "/lib/execline") | |
321 | (string-append "--with-lib=" | |
322 | (assoc-ref %build-inputs "s6") | |
323 | "/lib/s6") | |
c14dcc0c TGR |
324 | (string-append "--with-sysdeps=" |
325 | (assoc-ref %build-inputs "skalibs") | |
326 | "/lib/skalibs/sysdeps")) | |
c43f5b80 | 327 | #:tests? #f)) ; no tests exist |
c14dcc0c TGR |
328 | (home-page "https://skarnet.org/software/s6-linux-init") |
329 | (license isc) | |
330 | (synopsis "Minimalistic tools to create an s6-based init system on Linux") | |
331 | (description | |
6a7c1c43 | 332 | "s6-linux-init is a set of minimalistic tools to create a s6-based init |
c14dcc0c TGR |
333 | system, including an @command{/sbin/init} binary, on a Linux kernel. |
334 | ||
335 | It is meant to automate creation of scripts revolving around the use of other | |
336 | skarnet.org tools, especially s6, in order to provide a complete booting | |
337 | environment with integrated supervision and logging without having to hand-craft | |
6a7c1c43 | 338 | all the details."))) |
c14dcc0c | 339 | |
cf04df07 ELB |
340 | (define-public s6-linux-utils |
341 | (package | |
342 | (name "s6-linux-utils") | |
5cecf3f4 | 343 | (version "2.5.1.2") |
cf04df07 ELB |
344 | (source |
345 | (origin | |
346 | (method url-fetch) | |
347 | (uri (string-append | |
c9cd6d2f | 348 | "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-" |
cf04df07 ELB |
349 | version ".tar.gz")) |
350 | (sha256 | |
5cecf3f4 | 351 | (base32 "0w4jms9qyb5kx9zcyd3gzri60rrii2rbmh08s59ckg4awy27py86")))) |
cf04df07 ELB |
352 | (build-system gnu-build-system) |
353 | (inputs `(("skalibs" ,skalibs))) | |
354 | (arguments | |
355 | '(#:configure-flags (list | |
356 | (string-append "--with-lib=" | |
357 | (assoc-ref %build-inputs "skalibs") | |
358 | "/lib/skalibs") | |
359 | (string-append "--with-sysdeps=" | |
360 | (assoc-ref %build-inputs "skalibs") | |
361 | "/lib/skalibs/sysdeps")) | |
ed6c3dad | 362 | #:tests? #f)) ; no tests exist |
d1e8408f | 363 | (home-page "https://skarnet.org/software/s6-linux-utils") |
cf04df07 ELB |
364 | (license isc) |
365 | (synopsis "Set of minimalistic Linux-specific system utilities") | |
366 | (description | |
367 | "s6-linux-utils is a set of minimalistic Linux-specific system utilities, | |
368 | such as @command{mount}, @command{umount}, and @command{chroot} commands, | |
369 | Linux uevent listeners, a @command{devd} device hotplug daemon, and more."))) |