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> |
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 | |
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") | |
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 | |
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") | |
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 | |
135 | supervision (a.k.a. service supervision), in the line of daemontools and | |
136 | runit, as well as various operations on processes and daemons. It is meant to | |
137 | be a toolbox for low-level process and service administration, providing | |
138 | different sets of independent tools that can be used within or without the | |
139 | framework, and that can be assembled together to achieve powerful | |
140 | functionality 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, | |
169 | as 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. | |
210 | It includes command-line client and server management, TCP access control, | |
211 | privilege escalation across UNIX domain sockets, IDENT protocol management and | |
212 | clock 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 | |
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."))) | |
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 | |
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."))) | |
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 |
325 | system, including an @command{/sbin/init} binary, on a Linux kernel. |
326 | ||
327 | It is meant to automate creation of scripts revolving around the use of other | |
328 | skarnet.org tools, especially s6, in order to provide a complete booting | |
329 | environment with integrated supervision and logging without having to hand-craft | |
6a7c1c43 | 330 | all 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, | |
360 | such as @command{mount}, @command{umount}, and @command{chroot} commands, | |
361 | Linux uevent listeners, a @command{devd} device hotplug daemon, and more."))) |