projects/guix·blob java-team · refs

382 lines · 16.0 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Claes Wallin <[email protected]>
3;;; Copyright © 2016 Eric Le Bihan <[email protected]>
4;;; Copyright © 2017 Z. Ren <[email protected]>
5;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <[email protected]>
6;;; Copyright © 2020 Oleg Pykhalov <[email protected]>
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 (gnu packages bash)
26 #:use-module (guix gexp)
27 #:use-module (guix licenses)
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module ((guix build utils)
31 #:select (search-input-file search-input-directory))
32 #:use-module (guix build-system gnu))
33
34(define-public skalibs
35 (package
36 (name "skalibs")
37 (version "2.14.4.0")
38 (source
39 (origin
40 (method url-fetch)
41 (uri (string-append "https://skarnet.org/software/skalibs/skalibs-"
42 version ".tar.gz"))
43 (sha256
44 (base32 "1980mr5rydimhixxkzkd60q1xchl9ji51zcjixrj1jcchihn4qhf"))))
45 (build-system gnu-build-system)
46 (arguments
47 '(#:tests? #f ; no tests exist
48 #:phases (modify-phases %standard-phases
49 (add-after 'unpack 'patch
50 (lambda _
51 ;; This umask makes the symlinks in lib readable on
52 ;; i586-gnu
53 (substitute* "tools/install.sh"
54 (("umask 077") "umask 033"))
55 ;; Sort source files deterministically so that the *.a
56 ;; and *.so files are reproducible.
57 (substitute* "Makefile"
58 (("\\$\\(wildcard src/lib\\*/\\*.c\\)")
59 "$(sort $(wildcard src/lib*/*.c))")))))))
60 (home-page "https://skarnet.org/software/skalibs/")
61 (synopsis "Platform abstraction libraries for skarnet.org software")
62 (description
63 "This package provides lightweight C libraries isolating the developer
64from portability issues, providing a unified systems API on all platforms,
65including primitive data types, cryptography, and POSIX concepts like sockets
66and file system operations. It is used by all skarnet.org software.")
67 (license isc)))
68
69(define-public execline
70 (package
71 (name "execline")
72 (version "2.9.7.0")
73 (source
74 (origin
75 (method url-fetch)
76 (uri (string-append "https://skarnet.org/software/execline/execline-"
77 version ".tar.gz"))
78 (sha256
79 (base32 "01q2gm8rh65b0jvslzqznvq3q6zx3cbgk02lxbc7hh4rzh71djbk"))))
80 (build-system gnu-build-system)
81 (inputs (list bash-minimal skalibs))
82 (arguments
83 (list
84 #:configure-flags
85 #~(list (string-append "--with-sysdeps="
86 (search-input-directory %build-inputs
87 "/lib/skalibs/sysdeps"))
88 (string-append "--with-lib="
89 (dirname (search-input-file %build-inputs
90 "/lib/libskarnet.a"))))
91 #:phases
92 #~(modify-phases %standard-phases
93 (add-after 'unpack 'patch
94 (lambda _
95 ;; This umask makes the symlinks in lib readable on
96 ;; i586-gnu
97 (substitute* "tools/install.sh"
98 (("umask 077")
99 "umask 033"))))
100
101 (add-after 'install 'post-install
102 (lambda _
103 (let ((bin (string-append #$output "/bin")))
104 (wrap-program (string-append bin "/execlineb")
105 `("PATH" ":" prefix
106 (,bin)))))))
107 #:tests? #f)) ;no tests exist
108 (home-page "https://skarnet.org/software/execline/")
109 (license isc)
110 (synopsis "Non-interactive shell-like language with minimal overhead")
111 (description
112 "Execline is a (non-interactive) scripting language, separated into a
113parser (execlineb) and a set of commands meant to execute one another in a
114chain-execution fashion, storing the whole script in the argument array.
115It features conditional loops, getopt-style option handling, file name
116globbing, redirection and other shell concepts, expressed as discrete commands
117rather than in special syntax, minimizing runtime footprint and
118complexity.")))
119
120(define-public s6
121 (package
122 (name "s6")
123 (version "2.13.2.0")
124 (source
125 (origin
126 (method url-fetch)
127 (uri (string-append "https://skarnet.org/software/s6/s6-"
128 version ".tar.gz"))
129 (sha256
130 (base32 "0icsz417mkld0v4bbgqwnj1nsyg2n2n32sa0j43bfsvi8a04n4f5"))))
131 (build-system gnu-build-system)
132 (inputs (list skalibs execline))
133 (arguments
134 (list
135 #:configure-flags
136 #~(list (string-append "--with-sysdeps="
137 (search-input-directory %build-inputs
138 "/lib/skalibs/sysdeps"))
139 (string-append "--with-lib="
140 (dirname (search-input-file %build-inputs
141 "/lib/libskarnet.a")))
142 (string-append "--with-lib="
143 (dirname (search-input-file %build-inputs
144 "/lib/libexecline.a"))))
145 #:tests? #f ;no tests exist
146 #:phases
147 #~(modify-phases %standard-phases
148 (add-after 'install 'install-doc
149 (lambda _
150 (copy-recursively "doc"
151 (string-append #$output "/share/doc/s6-"
152 #$version)))))))
153 (home-page "https://skarnet.org/software/s6")
154 (license isc)
155 (synopsis "Small suite of programs for process supervision")
156 (description
157 "s6 is a small suite of programs for UNIX, designed to allow process
158supervision (a.k.a. service supervision), in the line of daemontools and
159runit, as well as various operations on processes and daemons. It is meant to
160be a toolbox for low-level process and service administration, providing
161different sets of independent tools that can be used within or without the
162framework, and that can be assembled together to achieve powerful
163functionality with a very small amount of code.")))
164
165(define-public s6-dns
166 (package
167 (name "s6-dns")
168 (version "2.4.1.0")
169 (source
170 (origin
171 (method url-fetch)
172 (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-"
173 version ".tar.gz"))
174 (sha256
175 (base32 "0aapjgk8fmc9iz1zz6573ybd16h03zgskbxaqilp99h9y4cqac5n"))))
176 (build-system gnu-build-system)
177 (inputs (list skalibs))
178 (arguments
179 (list
180 #:configure-flags
181 #~(list (string-append "--with-sysdeps="
182 (search-input-directory %build-inputs
183 "/lib/skalibs/sysdeps"))
184 (string-append "--with-lib="
185 (dirname (search-input-file %build-inputs
186 "/lib/libskarnet.a"))))
187 #:tests? #f)) ;no tests exist
188 (home-page "https://skarnet.org/software/s6-dns")
189 (license isc)
190 (synopsis "Suite of DNS client programs")
191 (description
192 "s6-dns is a suite of DNS client programs and libraries for Unix systems,
193as an alternative to the BIND, djbdns or other DNS clients.")))
194
195(define-public s6-networking
196 (package
197 (name "s6-networking")
198 (version "2.7.1.0")
199 (source
200 (origin
201 (method url-fetch)
202 (uri (string-append "https://skarnet.org/software/s6-networking/"
203 "s6-networking-" version ".tar.gz"))
204 (sha256
205 (base32 "14k5l3wkriqzkykz2nqh15g0dgblrkjprihz9jfsa899wybk9cx7"))))
206 (build-system gnu-build-system)
207 (inputs (list skalibs execline s6 s6-dns))
208 (arguments
209 (list
210 #:configure-flags
211 #~(list (string-append "--with-sysdeps="
212 (search-input-directory %build-inputs
213 "/lib/skalibs/sysdeps"))
214 (string-append "--with-lib="
215 (dirname (search-input-file %build-inputs
216 "/lib/libskarnet.a")))
217 (string-append "--with-lib="
218 (dirname (search-input-file %build-inputs
219 "/lib/libs6dns.a")))
220 (string-append "--with-lib="
221 (dirname (search-input-file %build-inputs
222 "/lib/libexecline.a")))
223 (string-append "--with-lib="
224 (dirname (search-input-file %build-inputs
225 "/lib/libs6.a"))))
226 #:tests? #f)) ;no tests exist
227 (home-page "https://skarnet.org/software/s6-networking")
228 (license isc)
229 (synopsis "Suite of network utilities for Unix systems")
230 (description
231 "s6-networking is a suite of small networking utilities for Unix systems.
232It includes command-line client and server management, TCP access control,
233privilege escalation across UNIX domain sockets, IDENT protocol management and
234clock synchronization.")))
235
236(define-public s6-rc
237 (package
238 (name "s6-rc")
239 (version "0.5.6.0")
240 (source
241 (origin
242 (method url-fetch)
243 (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-" version
244 ".tar.gz"))
245 (sha256
246 (base32 "0vjqfjjv317x9qyamdfgzy3vchwrj0519yav56nrkng80ml7y9w1"))))
247 (build-system gnu-build-system)
248 (inputs (list skalibs execline s6))
249 (arguments
250 (list
251 #:configure-flags
252 #~(list (string-append "--with-sysdeps="
253 (search-input-directory %build-inputs
254 "/lib/skalibs/sysdeps"))
255 (string-append "--with-lib="
256 (dirname (search-input-file %build-inputs
257 "/lib/libskarnet.a")))
258 (string-append "--with-lib="
259 (dirname (search-input-file %build-inputs
260 "/lib/libexecline.a")))
261 (string-append "--with-lib="
262 (dirname (search-input-file %build-inputs
263 "/lib/libs6.a"))))
264 #:tests? #f)) ;no tests exist
265 (home-page "https://skarnet.org/software/s6-rc")
266 (license isc)
267 (synopsis "Service manager for s6-based systems")
268 (description
269 "s6-rc is a service manager for s6-based systems, i.e. a suite of
270programs that can start and stop services, both long-running daemons and
271one-time initialization scripts, in the proper order according to a dependency
272tree. It ensures that long-running daemons are supervised by the s6
273infrastructure, and that one-time scripts are also run in a controlled
274environment.")))
275
276(define-public s6-portable-utils
277 (package
278 (name "s6-portable-utils")
279 (version "2.3.1.0")
280 (source
281 (origin
282 (method url-fetch)
283 (uri (string-append
284 "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
285 version ".tar.gz"))
286 (sha256
287 (base32 "1yc05azffdisbchsk2if1jxaya5l7kkvascpk7a15i72gal4l904"))))
288 (build-system gnu-build-system)
289 (inputs (list skalibs))
290 (arguments
291 (list
292 #:configure-flags
293 #~(list (string-append "--with-sysdeps="
294 (search-input-directory %build-inputs
295 "/lib/skalibs/sysdeps"))
296 (string-append "--with-lib="
297 (dirname (search-input-file %build-inputs
298 "/lib/libskarnet.a"))))
299 #:tests? #f)) ;no tests exist
300 (home-page "https://skarnet.org/software/s6-portable-utils")
301 (license isc)
302 (synopsis "Tiny command-line Unix utilities")
303 (description
304 "s6-portable-utils is a set of tiny general Unix utilities, often
305performing well-known tasks such as @command{cut} and @command{grep}, but
306optimized for simplicity and small size. They were designed for embedded
307systems and other constrained environments, but they work everywhere.")))
308
309(define-public s6-linux-init
310 (package
311 (name "s6-linux-init")
312 (version "1.1.3.0")
313 (source
314 (origin
315 (method url-fetch)
316 (uri (string-append
317 "https://skarnet.org/software/s6-linux-init/s6-linux-init-"
318 version ".tar.gz"))
319 (sha256
320 (base32 "1vdkhxafbns8yx7d8dnw995xirhzgn85155igvvk9hcsf5mmj6yi"))))
321 (build-system gnu-build-system)
322 (inputs
323 (list execline s6 skalibs))
324 (arguments
325 (list
326 #:configure-flags
327 #~(list (string-append "--with-sysdeps="
328 (search-input-directory %build-inputs
329 "/lib/skalibs/sysdeps"))
330 (string-append "--with-lib="
331 (dirname (search-input-file %build-inputs
332 "/lib/libskarnet.a")))
333 (string-append "--with-lib="
334 (dirname (search-input-file %build-inputs
335 "/lib/libexecline.a")))
336 (string-append "--with-lib="
337 (dirname (search-input-file %build-inputs
338 "/lib/libs6.a"))))
339 #:tests? #f)) ;no tests exist
340 (home-page "https://skarnet.org/software/s6-linux-init")
341 (license isc)
342 (synopsis "Minimalistic tools to create an s6-based init system on Linux")
343 (description
344 "s6-linux-init is a set of minimalistic tools to create a s6-based init
345system, including an @command{/sbin/init} binary, on a Linux kernel.
346
347It is meant to automate creation of scripts revolving around the use of other
348skarnet.org tools, especially s6, in order to provide a complete booting
349environment with integrated supervision and logging without having to hand-craft
350all the details.")))
351
352(define-public s6-linux-utils
353 (package
354 (name "s6-linux-utils")
355 (version "2.6.3.0")
356 (source
357 (origin
358 (method url-fetch)
359 (uri (string-append
360 "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
361 version ".tar.gz"))
362 (sha256
363 (base32 "0f8782mwyk06x4nrblskphg4csz7icqlr6ls3zyfp69vqwv9q93y"))))
364 (build-system gnu-build-system)
365 (inputs (list skalibs))
366 (arguments
367 (list
368 #:configure-flags
369 #~(list (string-append "--with-sysdeps="
370 (search-input-directory %build-inputs
371 "/lib/skalibs/sysdeps"))
372 (string-append "--with-lib="
373 (dirname (search-input-file %build-inputs
374 "/lib/libskarnet.a"))))
375 #:tests? #f)) ;no tests exist
376 (home-page "https://skarnet.org/software/s6-linux-utils")
377 (license isc)
378 (synopsis "Set of minimalistic Linux-specific system utilities")
379 (description
380 "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
381such as @command{mount}, @command{umount}, and @command{chroot} commands,
382Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))