projects/guix·blob java-team · refs

516 lines · 20.4 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2024 Artyom V. Poptsov <[email protected]>
3;;; Copyright © 2024-2025 Sharlatan Hellseher <[email protected]>
4;;; Copyright © 2025 Vasilii Smirnov <[email protected]>
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages specifications)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix gexp)
24 #:use-module (guix utils)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix packages)
28 #:use-module (guix build-system copy))
29
30(define-public specification-astropy-data
31 (package
32 (name "specification-astropy-data")
33 ;; XXX: There are no release or tags, total size is about 403MiB, where we
34 ;; need some portion of it e.g. coordinates/sites.json.
35 (properties '((commit . "7db2a3fef77343cc3007d25c79fcc905b48dc96d")
36 (revision . "3")))
37 (version (git-version "0.0.0"
38 (assoc-ref properties 'revision)
39 (assoc-ref properties 'commit)))
40 (source
41 (origin
42 (method git-fetch)
43 (uri (git-reference
44 (url "https://github.com/astropy/astropy-data")
45 (commit (assoc-ref properties 'commit))))
46 (file-name (git-file-name name version))
47 (sha256
48 (base32 "0wl2mxyv974q7si33irl6jvfd432ymnbrsxyrz9xvczlvn87f67b"))
49 (modules '((guix build utils)
50 (ice-9 ftw)
51 (srfi srfi-26)))
52 (snippet
53 ;; XXX: Keep just some portion with valulable data and no license
54 ;; issues.
55 #~(begin
56 (define (delete-all-but directory . preserve)
57 (with-directory-excursion directory
58 (let* ((pred (negate (cut member <>
59 (cons* "." ".." preserve))))
60 (items (scandir "." pred)))
61 (for-each (cut delete-file-recursively <>) items))))
62 (delete-all-but "."
63 "allsky"
64 "coordinates"
65 "galactic_center"
66 "l1448")))))
67 (build-system copy-build-system)
68 (arguments
69 (list
70 #:install-plan
71 #~'(("allsky" "share/allsky")
72 ("coordinates" "share/coordinates")
73 ("galactic_center" "share/galactic_center")
74 ("l1448" "share/l1448"))))
75 (home-page "https://github.com/astropy/astropy-data")
76 (synopsis "Astropy Data Source")
77 (description
78 "This package provides the source for the @url{http://data.astropy.org/,
79Astropy Data Server}.
80
81@itemize
82@item coordinates/sietes.json - stores the online site registry used by
83@code{astropy.coordinates.EarthLocation}
84
85@item allsky/allsky_rosat.fits -
86@url{http://heasarc.gsfc.nasa.gov/docs/rosat/rass.html, ROSAT} Soft X-ray
87Diffuse Background in the 3/4 keV band, in an Aitoff projection
88
89@item allsky/ligo_simulated.fits.gz -
90@url{http://www.ligo.org/scientists/first2years/, All-sky posterior map} in
91HEALPIX format for a simulated event observed by the Advanced Laser
92Interferometer Gravitational-wave Observatory (aLIGO).
93
94@item galactic_center/gc_2mass_k.fits -
95@url{http://irsa.ipac.caltech.edu/Missions/2mass.html, 2MASS} K-band image
96towards the Galactic Center
97
98@item galactic_center/gc_msx_e.fits -
99@url{http://irsa.ipac.caltech.edu/Missions/msx.html, MSX} E-band (21.34
100microns) image towards the Galactic Center
101
102@item galactic_center/gc_bolocam_gps.fits -
103@url{http://milkyway.colorado.edu/bgps/, Bolocam} 1.1mm image towards the
104Galactic Center
105
106@item l1448/l1448_13co.fits - 13CO spectral cube of the L1448 star-formation
107region
108@end itemize")
109 ;; XXX: No licenses are provided, use the same as Astropy.
110 (license license:bsd-3)))
111
112(define-public specification-ip2asn-v6
113 (package
114 (name "specification-ip2asn-v6")
115 (version "20240820024646")
116 (source
117 (origin
118 (method url-fetch)
119 ;; Upstream updates the file too often without any versioning provided,
120 ;; use archived variant.
121 (uri (string-append "https://web.archive.org/web/" version
122 "/https://iptoasn.com/data/ip2asn-v6.tsv.gz"))
123 (sha256
124 (base32 "1n2l0s6vg7v0nxprhi0gkrbqrjq5q91gra15bp2lr7p5kwki52xf"))))
125 (build-system copy-build-system)
126 (arguments
127 '(#:install-plan '(("ip2asn-v6.tsv" "share/data/"))))
128 (home-page "https://iptoasn.com")
129 (synopsis "Free IP address to ASN database")
130 (description
131 "This package provides a collection of IPv6 addresses to
132@acronym{Autonomous system, ASN}, a self-hosted API is available from
133@url{https://github.com/jedisct1/iptoasn-webservice}.")
134 ;; It's a TSV plain text file, distributed under Public Domain
135 ;; Dedication license
136 ;; <https://opendatacommons.org/licenses/pddl/1.0/>.
137 (license license:public-domain)))
138
139(define-public specification-ipld
140 (let ((commit "84a5cc6c168314a26be0d447c26fe76e46ce2a42")
141 (revision "0"))
142 (package
143 (name "specification-ipld")
144 (version (git-version "0.0.0" revision commit))
145 (source
146 (origin
147 (method git-fetch)
148 (uri (git-reference
149 (url "https://github.com/ipld/ipld")
150 (commit commit)))
151 (file-name (git-file-name name version))
152 (sha256
153 (base32 "0avgjp4hjkh4jmsxx09vnwi74rax6409k28h29jwfl95v42h6yyl"))))
154 (build-system copy-build-system)
155 (arguments
156 '(#:install-plan '(("./specs/schemas" "share/ipld/specs/"))
157 #:phases (modify-phases %standard-phases
158 (delete 'strip))))
159 (home-page "https://ipld.io/")
160 (synopsis "InterPlanetary Linked Data")
161 (description
162 "This package provides specification schemas of
163@acronym{InterPlanetary Linked Data, IPLD} which may be used for the test
164suites of application implementing the standard.")
165 ;; This library is dual-licensed under either of Apache 2.0 or MIT
166 ;; terms.
167 (license (list license:expat license:asl2.0)))))
168
169(define-public specification-json-schema-test-suite
170 (package
171 (name "specification-json-schema-test-suite")
172 ;; XXX: Upstream did not place any fresh tags since 2023, use the commit
173 ;; which is compatible with go-github-com-santhosh-tekuri-jsonschema-v6.
174 (properties '((commit . "83e866b46c9f9e7082fd51e83a61c5f2145a1ab7")
175 (revision . "0")))
176 (version (git-version "23.1.0"
177 (assoc-ref properties 'revision)
178 (assoc-ref properties 'commit)))
179 (source
180 (origin
181 (method git-fetch)
182 (uri (git-reference
183 (url "https://github.com/json-schema-org/JSON-Schema-Test-Suite")
184 (commit (assoc-ref properties 'commit))))
185 (file-name (git-file-name name version))
186 (sha256
187 (base32 "0fgp1rfxh8rp39i3sn8gbps3v1s892j4x37xggsqn1rva2rnh9kx"))))
188 (build-system copy-build-system)
189 (arguments
190 '(#:install-plan '(("./tests" "share/tests")
191 ("./remotes" "share/remotes"))))
192 (home-page "https://github.com/json-schema-org/JSON-Schema-Test-Suite")
193 (synopsis "Language agnostic test suite for the JSON Schema specifications")
194 (description
195 "This package provides a set of JSON objects that implementers of JSON
196Schema validation libraries can use to test their validators.
197
198It is meant to be language agnostic and should require only a JSON parser.
199The conversion of the JSON objects into tests within a specific language and
200test framework of choice is left to be done by the validator implementer.")
201 (license license:expat)))
202
203(define-public specification-iris-test-data
204 (package
205 (name "specification-iris-test-data")
206 (version "2.28")
207 (source
208 (origin
209 (method git-fetch)
210 (uri (git-reference
211 (url "https://github.com/SciTools/iris-test-data")
212 (commit (string-append "v" version))))
213 (file-name (git-file-name name version))
214 (sha256
215 (base32 "11pfd7jrmznvgcwwr4nfyd9w1rfx377svzlfzalbdcv7rhg2pcfx"))))
216 (build-system copy-build-system)
217 (arguments
218 '(#:install-plan '(("INDEX.md" "share/iris/")
219 ("test_data" "share/iris/")
220 ("version.txt" "share/iris/"))))
221 (home-page "https://scitools.org.uk/iris/docs/latest/")
222 (synopsis "Data and specs for Iris' tests")
223 (description
224 "This package provides a full Iris test data, it's artificially created
225data.")
226 (license license:ogl-psi1.0)))
227
228(define-public specification-multibase
229 (let ((commit "4c8344e37852773de155f587dcf5897771b3fc19")
230 (revision "1"))
231 (package
232 (name "specification-multibase")
233 (version (git-version "0.0.0" revision commit))
234 (source
235 (origin
236 (method git-fetch)
237 (uri (git-reference
238 (url "https://github.com/multiformats/multibase")
239 (commit commit)))
240 (file-name (git-file-name name version))
241 (sha256
242 (base32 "0lz4kdysa6nx7wf1i59647w7dgm344xpvfnsac3pfk2qdky2kq8b"))))
243 (build-system copy-build-system)
244 (arguments
245 '(#:install-plan
246 '(("." "share/multibase/"))))
247 (home-page "https://github.com/multiformats/multibase")
248 (synopsis "Self identifying base encodings")
249 (description
250 "Multibase is a protocol for disambiguating the encoding of
251base-encoded (e.g., @code{base32}, @code{base36}, @code{base64}, @code{base58}, etc.)
252binary appearing in text.")
253 (license (list license:expat license:cc-by-sa3.0)))))
254
255(define-public specification-multicodec
256 (let ((commit "36789e0856be22fa02f4dc55582ec670b2b4318b")
257 (revision "0"))
258 (package
259 (name "specification-multicodec")
260 (version (git-version "0.0.0" revision commit))
261 (source
262 (origin
263 (method git-fetch)
264 (uri (git-reference
265 (url "https://github.com/multiformats/multicodec")
266 (commit commit)))
267 (file-name (git-file-name name version))
268 (sha256
269 (base32 "0dyawicg8q4f8g6xj5bsj5l3c8rb8mrafjkrabc6a3p65845wp2r"))))
270 (build-system copy-build-system)
271 (arguments
272 '(#:install-plan '(("." "share/multicodec/"))
273 #:phases (modify-phases %standard-phases
274 (delete 'strip))))
275 (home-page "https://github.com/multiformats/multicodec")
276 (synopsis "Compact self-describing codecs")
277 (description
278 "Multicodec is an agreed-upon codec table. It is designed for use in binary
279representations, such as keys or identifiers (i.e @url{https://github.com/ipld/cid,
280CID}).")
281 (license (list license:expat license:cc-by-sa3.0)))))
282
283(define-public specification-multihash
284 (let ((commit "931febb97565395b1b6cd39ac677799df265a9e7")
285 (revision "0"))
286 (package
287 (name "specification-multihash")
288 (version (git-version "0.0.0" revision commit))
289 (source
290 (origin
291 (method git-fetch)
292 (uri (git-reference
293 (url "https://github.com/multiformats/multihash")
294 (commit commit)))
295 (file-name (git-file-name name version))
296 (sha256
297 (base32 "1axr35z3iz061fng0170bh873vy20rj2mspznycxm1qkrkrh7p5j"))))
298 (build-system copy-build-system)
299 (arguments
300 '(#:install-plan '(("." "share/multihash/"))
301 #:phases (modify-phases %standard-phases
302 (delete 'strip))))
303 (home-page "https://github.com/multiformats/multihash")
304 (synopsis "Self-describing hashes")
305 (description
306 "Multihash is a protocol for differentiating outputs from various
307well-established cryptographic hash functions, addressing size + encoding
308considerations.")
309 (license (list license:expat license:cc-by-sa3.0)))))
310
311(define-public specification-qifs
312 (let ((commit "da52cd936b3e34dac7ac12aa8066fc57676af106")
313 (revision "0"))
314 (package
315 (name "specification-qifs")
316 (version (git-version "0.0.0" revision commit))
317 (source
318 (origin
319 (method git-fetch)
320 (uri (git-reference
321 (url "https://github.com/qpackers/qifs")
322 (commit commit)))
323 (file-name (git-file-name name version))
324 (sha256
325 (base32 "08vb4j2id12hhkksn2q9b7v91jxhkhl84i947inflqmlmpzday8h"))))
326 (build-system copy-build-system)
327 (arguments
328 (list
329 #:install-plan
330 #~'(("./encoded" "share/encoded")
331 ("./qifs" "share/qifs"))))
332 (home-page "https://opencontainers.org/")
333 (synopsis "QIF corpus for QPACK encoder and decoder development")
334 (description
335 "This this package provides
336@url{https://en.wikipedia.org/wiki/Quicken_Interchange_Format, QIF}s
337specifications used in QPACK development and interop experiments. A QPACK
338encoder uses a QIF file as input. QIF files are stored in @code{qifs/}
339directory. A QPACK encoder produces a file whose format is described in
340@url{https://github.com/quicwg/base-drafts/wiki/QPACK-Offline-Interop, QPACK
341Offline Interop}. Outputs produced by various encoders are stored in
342@code{encoded/} directory.")
343 (license license:expat))))
344
345(define-public specification-referencing-suite
346 (package
347 (name "specification-referencing-suite")
348 (version "2025.1.1")
349 (source
350 (origin
351 (method git-fetch)
352 (uri (git-reference
353 (url "https://github.com/python-jsonschema/referencing-suite")
354 (commit (string-append "v" version))))
355 (file-name (git-file-name name version))
356 (sha256
357 (base32 "128ffd1waks07i9qhv6qqhdrhjj2lgwykfca8jm78szkh7kmblwq"))))
358 (build-system copy-build-system)
359 (arguments
360 (list
361 #:install-plan
362 #~'(("./tests" "share/tests"))))
363 (home-page "https://github.com/python-jsonschema/referencing-suite")
364 (synopsis "Language agnostic test suite for the referencing specifications")
365 (description
366 "This package contains a set of JSON objects that implementers of JSON
367referencing specifications can use to test their implementations.
368
369It is meant to be language agnostic and should require only a JSON parser.
370The conversion of the JSON objects into tests within a specific language and
371test framework of choice is left to be done by the implementer.")
372 (license license:expat)))
373
374(define-public specification-runtime-spec
375 (package
376 (name "specification-runtime-spec")
377 (version "1.3.0")
378 (source
379 (origin
380 (method git-fetch)
381 (uri (git-reference
382 (url "https://github.com/opencontainers/runtime-spec")
383 (commit (string-append "v" version))))
384 (file-name (git-file-name name version))
385 (sha256
386 (base32 "0vih1hp1jlmp1m476cgj3afaqrpd8gid6h73yp5r0qalb7n0ar07"))))
387 (build-system copy-build-system)
388 (outputs '("out" "golang-src"))
389 (arguments
390 (list
391 #:install-plan
392 #~'(("./schema" "share/runtime-spec/schema")
393 ("." "share/doc/" #:include-regexp ("\\.md$")))
394 #:phases
395 #~(modify-phases %standard-phases
396 (add-after 'install 'copy-src
397 (lambda _
398 (copy-recursively "specs-go"
399 (string-append #$output:golang-src
400 "/src/github.com"
401 "/opencontainers/runtime-spec/specs-go")))))))
402 (home-page "https://opencontainers.org/")
403 (synopsis "OCI Runtime Specification")
404 (description
405 "The Open Container Initiative develops specifications for standards on
406Operating System process and application containers. This package provides
407documentation, schemas and source of Golang module.")
408 (license license:asl2.0)))
409
410(define-public specification-specreduce-data
411 (let ((commit "dcba1c601348ee3a5797ae2d84a068d83393058e")
412 (revision "0"))
413 (package
414 (name "specification-specreduce-data")
415 (version (git-version "0.0.0" revision commit))
416 (source
417 (origin
418 (method git-fetch)
419 (uri (git-reference
420 (url "https://github.com/astropy/specreduce-data")
421 (commit commit)))
422 (file-name (git-file-name name version))
423 (sha256
424 (base32 "1c6mrjfykkfbbyg489h7czr65nz6bcb3gszz5xa2cg2ccs00m8ii"))))
425 (build-system copy-build-system)
426 (arguments
427 '(#:install-plan '(("specreduce_data/" "share/specreduce_data//"))
428 #:phases (modify-phases %standard-phases
429 (delete 'strip))))
430 (home-page "https://specreduce.readthedocs.io/")
431 (synopsis "Reference and calibration data for the reducing optical/IR spectra")
432 (description
433 "This package provides a general reference and calibration data for
434spectroscopic data reduction (e.g. standard star spectra, atmospheric
435extinction curves, line lists for calibration lamps).")
436 (license license:bsd-3))))
437
438(define-public specification-ybsc
439 (package
440 (name "specification-ybsc")
441 (version "5")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (string-append "http://tdc-www.harvard.edu/catalogs/ybsc" version
446 ".gz"))
447 (sha256
448 (base32 "1vbvxhw1i3h2r61zgqy7hpwpa4pmc0jh6mknridvx3xyj0g4pi1x"))))
449 (build-system copy-build-system)
450 (arguments
451 (list
452 #:install-plan #~'(("ybsc5" "share/ybsc5"))
453 #:phases
454 #~(modify-phases %standard-phases
455 (add-after 'install 'install-documentation
456 (lambda _
457 (let ((doc (string-append #$output "/share/doc")))
458 (mkdir-p doc)
459 (with-directory-excursion doc
460 (copy-file
461 #+(origin
462 (method url-fetch)
463 (uri (string-append
464 "http://tdc-www.harvard.edu/catalogs/ybsc"
465 (package-version this-package) ".readme"))
466 (sha256
467 (base32
468 "0vki8cjwgwdfck43sbmm5d8qlk7sag6s2vqq8gp5z29nrpa0j93d")))
469 "README")
470 (copy-file
471 #+(origin
472 (method url-fetch)
473 (uri (string-append
474 "http://tdc-www.harvard.edu/catalogs/ybsc"
475 (package-version this-package) ".notes.gz"))
476 (sha256
477 (base32
478 "018lvy24pzf3ifq7dkryjnz2ny46311g4dnfifpv0rddmv7di2fl")))
479 "notes.gz")
480 (system* "gunzip" "notes.gz"))))))))
481 (home-page "http://tdc-www.harvard.edu/catalogs/bsc5.html")
482 (synopsis "Yale Bright Star Catalogue")
483 (description
484 "This package provides an ASCII version of @acronym{Yale Bright Star
485Catalogue, @url{https://en.wikipedia.org/wiki/Bright_Star_Catalogue, YBSC}}
486catalog which is a widely used source of basic astronomical and astrophysical
487data for stars brighter than magnitude 6.5. It provides 9110 stars including
488B1950 positions, proper motions, magnitudes, and, usually, spectral types.")
489 (license license:public-domain)))
490
491(define-public specification-yaml-test-suite
492 (package
493 (name "specification-yaml-test-suite")
494 (version "2022-01-17")
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/yaml/yaml-test-suite")
500 (commit (string-append "data-" version))))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32 "00xcny67bp56xkvz4iq6d2prvj9p48z7r705xrw49invvgyp4wnd"))))
504 (build-system copy-build-system)
505 (arguments
506 (list
507 ;; TODO: Test data files are pure YAML files and generated from the main
508 ;; branch, see Makefile. Try to re-generate them during the packaging.
509 #:install-plan
510 #~'(("./" "share/testdata"))))
511 (home-page "https://github.com/yaml/yaml-test-suite")
512 (synopsis "Comprehensive, language independent Test Suite for YAML")
513 (description
514 "This package provides data for testing the correctness of YAML processors
515developed by @url{https://yaml.org/}.")
516 (license license:expat)))