projects/guix·blob javascript-team · refs

1144 lines · 39.0 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Ekaitz Zarraga <[email protected]>
3;;; Copyright © 2020 Evan Hanson <[email protected]>
4;;; Copyright © 2020 raingloom <[email protected]>
5;;; Copyright © 2026 Malte Frank Ferdes <[email protected]>
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages chicken)
23 #:use-module (gnu packages)
24 #:use-module (gnu packages bash)
25 #:use-module (gnu packages curl)
26 #:use-module (guix gexp)
27 #:use-module (guix packages)
28 #:use-module (guix utils)
29 #:use-module (guix build-system chicken)
30 #:use-module (guix build-system gnu)
31 #:use-module (guix download)
32 #:use-module (guix git-download)
33 #:use-module (guix svn-download)
34 #:use-module ((guix licenses)
35 #:prefix license:)
36 #:use-module (srfi srfi-1))
37
38;; This package is build from pre-built C source code, provided in the CHICKEN
39;; release tarball. Based on this bootstrap compiler, we build CHICKEN from
40;; the Scheme source, thus enabling us to (at least) patch it.
41;;
42;; See <https://issues.guix.gnu.org/22366>.
43(define-public chicken-bootstrap
44 (hidden-package
45 (package
46 (name "chicken-bootstrap")
47 (version "6.0.0")
48 (source (origin
49 (method url-fetch)
50 (uri (string-append "https://code.call-cc.org/releases/"
51 version "/chicken-" version ".tar.gz"))
52 (sha256
53 (base32
54 "0hzl875whdnkyv06x0gq57s0nl9np9d9nhkyfckav1xnn595b0wj"))))
55 (build-system gnu-build-system)
56 (arguments
57 (list
58 #:modules '((guix build gnu-build-system)
59 (guix build utils)
60 (srfi srfi-1))
61
62 ;; No `configure' script; run "make check" after "make install" as
63 ;; prescribed by README.
64 #:phases
65 #~(modify-phases %standard-phases
66 (delete 'configure)
67 (delete 'check)
68 (add-after 'install 'check
69 (assoc-ref %standard-phases 'check)))
70
71 #:make-flags
72 #~(list
73 "PLATFORM=linux"
74 (string-append "PREFIX=" #$output)
75 (string-append "VARDIR=" #$output "/var/lib"))
76
77 ;; Parallel builds are not supported, as noted in README.
78 #:parallel-build? #f))
79 (native-search-paths
80 (list (search-path-specification
81 (variable "CHICKEN_REPOSITORY_PATH")
82 ;; TODO extract binary version into a module level definition.
83 (files (list "var/lib/chicken/12")))))
84 ;; Reference gcc-toolchain lazily to avoid circular module dependency
85 ;; problems.
86 (propagated-inputs (list (module-ref (resolve-interface
87 '(gnu packages commencement))
88 'gcc-toolchain)))
89 (home-page "https://www.call-cc.org/")
90 (synopsis "Practical and portable scheme system")
91 (description
92 "CHICKEN is a compiler for the Scheme programming language. It produces
93portable and efficient C and supports the R5RS and R7RS standards, and many
94extensions.")
95 (license license:bsd-3))))
96
97;; The CHICKEN compiler is itself written in CHICKEN, the CHICKEN release
98;; tarballs includes auto-generated C code to mitigate the compiler
99;; bootstrapping problem. To be able to patch the original Scheme source,
100;; we compile from this Scheme source here using the chicken-bootstrap
101;; compiler obtained from the autogenerated C code.
102;;
103;; See <https://issues.guix.gnu.org/22366>.
104(define-public chicken
105 (package
106 (inherit chicken-bootstrap)
107 (name "chicken")
108 (arguments
109 (substitute-keyword-arguments (package-arguments chicken-bootstrap)
110 ((#:phases phases)
111 #~(modify-phases #$phases
112 ;; CHICKEN contains auto-generated C code, remove it and
113 ;; compile from the Scheme source using chicken-bootstrap.
114 (add-after 'unpack 'remove-auto-generated-code
115 (lambda _
116 (invoke "make" "PLATFORM=linux" "spotless")))
117 ;; Invoke commands by name, not by path.
118 ;;
119 ;; See <https://codeberg.org/guix/guix/issues/8471>.
120 (add-after 'unpack 'fix-paths
121 (lambda* (#:key inputs #:allow-other-keys)
122 (let ((sh (search-input-file inputs "/bin/sh"))
123 (cp (search-input-file inputs "/bin/cp")))
124 (substitute* "egg-compile.scm"
125 (("/bin/sh")
126 sh)
127 (("\"cp ")
128 (string-append "\"" cp " "))
129 (("\"cp\"")
130 (string-append "\"" cp "\"")))
131 (substitute* "posixunix.scm"
132 (("/bin/sh")
133 sh))
134 (substitute* "chicken-install.scm"
135 (("\"sh \"")
136 (string-append "\"" sh " \""))))))))))
137 (inputs (list chicken-bootstrap))
138 (properties (alist-delete 'hidden?
139 (package-properties chicken-bootstrap)))))
140
141(define-public chicken-agrep
142 (package
143 (name "chicken-agrep")
144 (version "1.7")
145 (source
146 (origin
147 (method git-fetch)
148 (uri (git-reference
149 (url "https://github.com/iraikov/chicken-agrep")
150 (commit version)))
151 (file-name (string-append "chicken-agrep-" version "-checkout"))
152 (sha256
153 (base32
154 "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s"))))
155 (native-inputs
156 (list chicken-test))
157 (propagated-inputs
158 (list
159 chicken-blob
160 chicken-datatype
161 chicken-srfi-1
162 chicken-srfi-14))
163 (build-system chicken-build-system)
164 (arguments
165 (list #:egg-name "agrep"))
166 (synopsis "Approximate string matching library")
167 (home-page "https://wiki.call-cc.org/eggref/5/agrep")
168 (description
169 "This library implements the Wu-Manber algorithm for approximate string
170searching with errors, popularized by the agrep Unix command and the glimpse
171file indexing tool.")
172 (license license:gpl3+)))
173
174(define-public chicken-apropos
175 (package
176 (name "chicken-apropos")
177 (version "4.0.2")
178 (source
179 (origin
180 (method url-fetch)
181 (uri (egg-uri "apropos" version))
182 (sha256
183 (base32 "05x659abn65mrplvk7lyvy44s4p2w8kwrz1bv2isi1qsnmfnnfgy"))))
184 (build-system chicken-build-system)
185 (arguments
186 (list #:egg-name "apropos"))
187 (native-inputs
188 (list
189 chicken-test
190 chicken-test-utils))
191 (propagated-inputs
192 (list
193 chicken-check-errors
194 chicken-srfi-1
195 chicken-srfi-13
196 chicken-symbol-utils))
197 (home-page "https://wiki.call-cc.org/egg/apropos")
198 (synopsis "CHICKEN apropos")
199 (description "An apropos facility for chicken scheme allowing to display
200information about symbols in the toplevel environment.")
201 (license license:expat)))
202
203(define-public chicken-autocompile
204 (package
205 (name "chicken-autocompile")
206 (version "1.1.1")
207 (source
208 (origin
209 (method url-fetch)
210 (uri (egg-uri "autocompile" version))
211 (sha256
212 (base32 "1yh8gzpyyflfmnv243ky0vzrpbnlxykq6s69v6f92lnk2qgb9nx6"))))
213 (build-system chicken-build-system)
214 (arguments
215 (list #:egg-name "autocompile"))
216 (propagated-inputs (list chicken-matchable))
217 (home-page "https://wiki.call-cc.org/egg/autocompile")
218 (synopsis "Automatically compile Scheme scripts on demand")
219 (description
220 "A program named chicken-scheme takes a Scheme file and a
221number of arguments and if the script has not been compiled before or has
222changed as compared to the last compiled version, compiles it, storing the
223result in a cache in the user's $HOME directory.")
224 (license license:public-domain)))
225
226(define-public chicken-base64
227 (package
228 (name "chicken-base64")
229 (version "1.1")
230 (source
231 (origin
232 (method url-fetch)
233 (uri (egg-uri "base64" version))
234 (sha256
235 (base32 "1fdnxmwb336sx8kx1l5yjpryhivr8wsrvljsxywnx9439038gq02"))))
236 (build-system chicken-build-system)
237 (arguments
238 (list #:egg-name "base64"))
239 (native-inputs (list chicken-test))
240 (propagated-inputs (list chicken-srfi-13))
241 (home-page "https://wiki.call-cc.org/egg/base64")
242 (synopsis "Encoding and decoding of base64 strings")
243 (description
244 "This egg provides base64 encoding and decoding compliant with
245RFC4648.")
246 (license license:expat)))
247
248(define-public chicken-blob
249 (package
250 (name "chicken-blob")
251 (version "0.2")
252 (source
253 (origin
254 (method url-fetch)
255 (uri (egg-uri "chicken-blob" version))
256 (sha256
257 (base32 "0ng6zz7y8xz0w0gplsrd2rlrrjbcd5jgvj7jidr66c5pqwnq2ih2"))))
258 (build-system chicken-build-system)
259 (arguments
260 (list #:egg-name "chicken-blob"))
261 (home-page "https://wiki.call-cc.org/man/5/Module%20%28chicken%20blob%29")
262 (synopsis "Replacement for CHICKEN 5's 'blob' module")
263 (description "This module provides a shim around the bytevector procedures
264to let old code work after blobs have been renamed to bytevectors in CHICKEN 6.")
265 (license license:expat)))
266
267(define-public chicken-bytevector-utils
268 (package
269 (name "chicken-bytevector-utils")
270 (version "1.0.1")
271 (source
272 (origin
273 (method url-fetch)
274 (uri (egg-uri "bytevector-utils" version))
275 (sha256
276 (base32 "1z9ybzbr6vp7w79ric5f8jfdy28s9pvm87h9pfgy2mq3jcsqpm0k"))))
277 (build-system chicken-build-system)
278 (arguments
279 (list #:egg-name "bytevector-utils"))
280 (native-inputs (list chicken-test chicken-test-utils))
281 (propagated-inputs (list chicken-string-utils chicken-check-errors))
282 (home-page "https://wiki.call-cc.org/egg/bytevector-utils")
283 (synopsis "Bytevector Utilities")
284 (description #f)
285 (license license:expat)))
286
287(define-public chicken-check-errors
288 (package
289 (name "chicken-check-errors")
290 (version "4.0.1")
291 (source
292 (origin
293 (method url-fetch)
294 (uri (egg-uri "check-errors" version))
295 (sha256
296 (base32 "08hn6vw631q5k4adarq8fr146arbbxvxy36j77df3xvr0dqx7pjp"))))
297 (build-system chicken-build-system)
298 (arguments
299 (list #:egg-name "check-errors"))
300 (native-inputs (list chicken-test chicken-test-utils))
301 (home-page "https://wiki.call-cc.org/egg/check-errors")
302 (synopsis "Argument checks & errors")
303 (description
304 "This egg provides functions and error types to check
305arguments. If the unsafe feature is specified these checks are no-ops.")
306 (license license:expat)))
307
308(define-public chicken-chibi-term
309 (package
310 (name "chicken-chibi-term")
311 (version "0.1.0")
312 (source
313 (origin
314 (method url-fetch)
315 (uri (egg-uri "chibi-term" version))
316 (sha256
317 (base32 "1i6zs998jamdr4kfpchigx7jq7jpybnb5i893n2qlv23lyc2g869"))))
318 (build-system chicken-build-system)
319 (arguments
320 (list #:egg-name "chibi-term"))
321 (native-inputs (list chicken-test))
322 (home-page "https://wiki.call-cc.org/egg/chibi-term")
323 (synopsis "Chibi Scheme's term library")
324 (description "A library to use ANSI escape codes to format text and
325background color, font weight, and underlining.")
326 (license license:bsd-3)))
327
328(define-public chicken-compile-file
329 (package
330 (name "chicken-compile-file")
331 (version "1.4")
332 (source
333 (origin
334 (method url-fetch)
335 (uri (egg-uri "compile-file" version))
336 (sha256
337 (base32 "0zjbk2s9nb35qhpf8wd2m3by7ykvicihb1zxk71v2j2zjr3za82k"))))
338 (build-system chicken-build-system)
339 (arguments
340 (list #:egg-name "compile-file"))
341 (home-page "https://wiki.call-cc.org/egg/compile-file")
342 (synopsis "Programmatic compiler invocation")
343 (description "This egg provides a way to do on-the-fly compilation of
344source code and load it into the running process.")
345 (license license:bsd-3)))
346
347(define-public chicken-crunch
348 (package
349 (name "chicken-crunch")
350 (version "0.998")
351 (source
352 (origin
353 (method url-fetch)
354 (uri (egg-uri "crunch" version))
355 (sha256
356 (base32 "1lfvnzxnvkry74jj4lx2bcib9dr82hm7332mjsyk34ncf6162sj2"))))
357 (build-system chicken-build-system)
358 (arguments
359 (list #:egg-name "crunch"))
360 (native-inputs
361 (list
362 chicken-compile-file
363 chicken-miscmacros))
364 (propagated-inputs
365 (list
366 chicken-srfi-1
367 chicken-srfi-13
368 chicken-matchable))
369 (home-page "https://wiki.call-cc.org/egg/crunch")
370 (synopsis "Embedded compiler for a statically typed subset of R7RS Scheme")
371 (description
372 "CRUNCH is an embedded compiler for a statically typed subset
373of R7RS Scheme, generating C code. The compiler uses type inference to decorate
374the code with type information without requiring declarations. CRUNCH can be
375used to translate embedded Scheme code sections, whole programs or multiple
376source modules into standalone executables or compiled code that can be invoked
377from Scheme.")
378 (license license:bsd-3)))
379
380(define-public chicken-crypto-tools
381 (package
382 (name "chicken-crypto-tools")
383 (version "1.4")
384 (source
385 (origin
386 (method url-fetch)
387 (uri (egg-uri "crypto-tools" version))
388 (sha256
389 (base32
390 "0ajf0qfnhp99f4x1dll2fhlxrsxamgrrwyksc7rrym77xmv8f1pd"))))
391 (build-system chicken-build-system)
392 (arguments '(#:egg-name "crypto-tools"))
393 (propagated-inputs
394 (list chicken-blob))
395 (home-page "https://wiki.call-cc.org/eggref/5/crypto-tools")
396 (synopsis "Useful cryptographic primitives")
397 (description "The crypto-tools egg implements useful cryptographic
398primitives. More specifically, provided are:
399
400@itemize
401@item binary blobs
402@itemize
403@item marshallers to and from hex strings
404@item blob xor
405@item blob padding using either PKCS#5 or ISO7816-4
406@end itemize
407@item Block cipher modes of operation
408@itemize
409@item CBC with or without incorporated encrypted IV in the ciphertext
410@item CTR with or without incorporated IV in the ciphertext
411@end itemize
412@end itemize")
413 (license license:bsd-3)))
414
415(define-public chicken-datatype
416 (package
417 (name "chicken-datatype")
418 (version "1.7")
419 (source
420 (origin
421 (method url-fetch)
422 (uri (egg-uri "datatype" version))
423 (sha256
424 (base32 "03pcif0f0srrbnay8r7p0jrgjnqs637wcd8iw3vzcsc76fn36p3r"))))
425 (build-system chicken-build-system)
426 (arguments
427 (list #:egg-name "datatype"))
428 (native-inputs (list chicken-test))
429 (propagated-inputs (list chicken-srfi-1))
430 (home-page "https://wiki.call-cc.org/egg/datatype")
431 (synopsis "Facility for creating and using variant records")
432 (description
433 "This CHICKEN Scheme library provides a facility for creating and using
434variant records, as described in the book @i{Essentials of Programming
435Languages} by Friedman, Wand, and Haynes.")
436 (license license:bsd-3)))
437
438(define-public chicken-defstruct
439 (package
440 (name "chicken-defstruct")
441 (version "2.1")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (egg-uri "defstruct" version))
446 (sha256
447 (base32 "0sm5d7cbdgpb70qy7jc0yxri2wazcxj2q5ii6gcsbpkzjmfd2fka"))))
448 (build-system chicken-build-system)
449 (arguments
450 (list #:egg-name "defstruct"))
451 (native-inputs (list chicken-test))
452 (propagated-inputs (list chicken-srfi-1))
453 (home-page "https://wiki.call-cc.org/egg/defstruct")
454 (synopsis "More convenient form of define-record")
455 (description "This module provides an alternative way to define records.
456While trying to improve the way records can be defined, this implementation
457is not hygienic.")
458 (license license:bsd-3)))
459
460;; The chicken-doc-admin package uses chicken-doc and chicken-doc contains an
461;; index built by chicken-doc-admin, so we first build chicken-doc without said
462;; database.
463(define chicken-doc-bare
464 (package
465 (name "chicken-doc-bare")
466 (version "0.7.1")
467 (source
468 (origin
469 (method url-fetch)
470 (uri (egg-uri "chicken-doc" version))
471 (sha256
472 (base32 "1iklziczpzb6rljjjc7ar7ba6lbdzfn7f5wx2pv3jrj7w3vdy4f5"))))
473 (build-system chicken-build-system)
474 (arguments
475 (list #:egg-name "chicken-doc"))
476 (propagated-inputs
477 (list chicken-matchable
478 chicken-fmt
479 chicken-sxml-transforms
480 chicken-srfi-1
481 chicken-srfi-13
482 chicken-srfi-69))
483 (home-page "https://wiki.call-cc.org/egg/chicken-doc")
484 (synopsis "Explore Chicken documentation locally")
485 (description "This package provides facilities to explore CHICKEN
486documentation from the command-line and from the REPL. It also provides an API
487to access this documentation from your own programs.")
488 (license license:bsd-3)))
489
490(define-public chicken-doc
491 (let ((doc-repo-path "share/doc-db"))
492 (package
493 (inherit chicken-doc-bare)
494 (name "chicken-doc")
495 (arguments
496 (list #:egg-name "chicken-doc"
497 #:phases
498 #~(modify-phases %standard-phases
499 (add-after 'build 'build-documentation-index
500 (lambda* (#:key inputs #:allow-other-keys)
501 (let ((eggref (search-input-directory inputs "eggref/6"))
502 (man (search-input-directory inputs "man/6")))
503 (setenv "CHICKEN_DOC_REPOSITORY" #$doc-repo-path)
504 (mkdir-p #$doc-repo-path)
505 (invoke "chicken-doc-admin" "-i")
506 (invoke "chicken-doc-admin" "-e" eggref)
507 (invoke "chicken-doc-admin" "-m" man))))
508 (add-after 'install 'install-documentation-index
509 (lambda _
510 (copy-recursively
511 "share" (string-append #$output "/share")))))))
512 (native-inputs
513 (list chicken-doc-admin
514 (origin
515 (method svn-fetch)
516 (uri (svn-reference
517 (url "https://code.call-cc.org/svn/chicken-eggs/wiki")
518 (revision 46347)
519 (user-name "anonymous")
520 (password "")))
521 (sha256
522 (base32
523 "06nma438n5yabhp1cv4swz3sa800y21bn9xafw5jq2jmcw2mg85p")))))
524 (native-search-paths
525 (list (search-path-specification
526 (variable "CHICKEN_DOC_REPOSITORY")
527 (files (list doc-repo-path))))))))
528
529(define-public chicken-doc-admin
530 (package
531 (name "chicken-doc-admin")
532 (version "0.5.0")
533 (source
534 (origin
535 (method git-fetch)
536 (uri (git-reference
537 (url "https://github.com/ursetto/chicken-doc-admin")
538 (commit version)))
539 (file-name (git-file-name name version))
540 (sha256
541 (base32 "1xc648qn5v6qww4vz0q27rqvqzkrc8d7hrb580bglhnhj0w4r0pb"))
542 (patches (search-patches "chicken-doc-admin-port-to-chicken-6.patch"))))
543 (build-system chicken-build-system)
544 (arguments
545 (list #:egg-name "chicken-doc-admin"))
546 (propagated-inputs
547 (list chicken-doc-bare
548 chicken-matchable
549 chicken-html-parser
550 chicken-sxml-transforms
551 chicken-svnwiki-sxml
552 chicken-srfi-1
553 chicken-srfi-13
554 chicken-srfi-69))
555 (home-page "https://wiki.call-cc.org/egg/chicken-doc-admin")
556 (synopsis "Administer Chicken documentation locally")
557 (description "This package provides facilities to create and modify a
558CHICKEN documentation repository for chicken-doc. It includes a
559command-line tool to convert egg documentation and manual pages from the
560CHICKEN wiki for use with chicken-doc. It also provides an API for
561repository manipulation.")
562 (license license:bsd-3)))
563
564(define-public chicken-fmt
565 (package
566 (name "chicken-fmt")
567 (version "0.8.14")
568 (source
569 (origin
570 (method url-fetch)
571 (uri (egg-uri "fmt" version))
572 (sha256
573 (base32 "1fbsg33hjkkf4kb98358brjaykcahq48jg359mbn2v6260azwj7p"))))
574 (build-system chicken-build-system)
575 (arguments
576 (list #:egg-name "fmt"))
577 (native-inputs
578 (list chicken-test))
579 (propagated-inputs
580 (list
581 chicken-srfi-1
582 chicken-srfi-13
583 chicken-srfi-69))
584 (home-page "https://wiki.call-cc.org/egg/fmt")
585 (synopsis "Combinator formatting library")
586 (description "A library of procedures for formatting Scheme objects to
587text in various ways, and for easily concatenating, composing and extending
588these formatters efficiently without resorting to capturing and manipulating
589intermediate strings.")
590 (license license:bsd-3)))
591
592(define-public chicken-getopt-long
593 (package
594 (name "chicken-getopt-long")
595 (version "4.0")
596 (source
597 (origin
598 (method url-fetch)
599 (uri (egg-uri "getopt-long" version))
600 (sha256
601 (base32 "054xnz9fsdk30plzw9rp944s03g2azrmnwcdji6d5wwx10v773hd"))))
602 (build-system chicken-build-system)
603 (arguments
604 (list #:egg-name "getopt-long"))
605 (native-inputs
606 (list chicken-matchable
607 chicken-test))
608 (propagated-inputs
609 (list chicken-matchable
610 chicken-srfi-1
611 chicken-srfi-13
612 chicken-srfi-14))
613 (home-page "https://wiki.call-cc.org/egg/getopt-long")
614 (synopsis "Parse command line options")
615 (description "The getopt-long library implements command line option
616parsing, in the spirit of the GNU C library function getopt_long. Both
617long and short options are supported.
618
619The theory is that people should be able to constrain the set of options
620they want to process using a grammar, rather than some arbitrary
621structure. The grammar makes the option descriptions easy to read.")
622 (license license:lgpl3)))
623
624(define-public chicken-html-parser
625 (package
626 (name "chicken-html-parser")
627 (version "0.4.1")
628 (source
629 (origin
630 (method url-fetch)
631 (uri (egg-uri "html-parser" version))
632 (sha256
633 (base32 "1arabikig0g16izcnqpycdmcw5ffw12yfk4rkcgzfpzf4g25ppya"))))
634 (build-system chicken-build-system)
635 (arguments
636 (list #:egg-name "html-parser"))
637 (native-inputs (list chicken-test))
638 (propagated-inputs (list chicken-srfi-13))
639 (home-page "https://wiki.call-cc.org/egg/html-parser")
640 (synopsis "Permissive, scalable HTML parser")
641 (description "This library is intended as a permissive HTML parser for
642people who prefer the scalable interface described in Oleg Kiselyov's SSAX
643parser, as well as providing simple convenience utilities. It correctly
644handles all invalid HTML, inserting virtual starting and closing tags as
645needed to maintain the proper tree structure needed for the foldts down/up
646logic. A major goal of this parser is bug-for-bug compatibility with the
647way common web browsers parse HTML.")
648 (license license:bsd-3)))
649
650(define-public chicken-http-curl
651 (package
652 (name "chicken-http-curl")
653 (version "0.1.3")
654 (source
655 (origin
656 (method url-fetch)
657 (uri (string-append
658 "https://forgejo.rolando.cl/cpm/http-curl/archive/v" version
659 ".tar.gz"))
660 (file-name (string-append name "-" version ".tar.gz"))
661 (sha256
662 (base32 "0zzy44kf7argrg6jy4mp4rf4msqj54qnb79kmykjp5lsv5mqni2k"))))
663 (build-system chicken-build-system)
664 (arguments
665 (list
666 #:egg-name "http-curl"))
667 (inputs (list curl))
668 (native-inputs (list chicken-test))
669 (propagated-inputs
670 (list
671 chicken-intarweb
672 chicken-srfi-18))
673 (synopsis "HTTP client egg for CHICKEN Scheme based on libcurl")
674 (home-page "https://forgejo.rolando.cl/cpm/http-curl")
675 (description "Provides robust HTTPS/TLS support out of the box with an API
676compatible with http-client.")
677 (license license:bsd-3)))
678
679(define-public chicken-intarweb
680 (package
681 (name "chicken-intarweb")
682 (version "3.0.1")
683 (source
684 (origin
685 (method url-fetch)
686 (uri (string-append
687 "https://code.more-magic.net/intarweb/snapshot/intarweb-" version
688 ".tar.gz"))
689 (sha256
690 (base32 "1sq7hkqcl0xly7i6d8f6vfvp6vhyd5jzq2gd1w9hzk2ha6mpibn3"))))
691 (build-system chicken-build-system)
692 (arguments
693 (list
694 #:egg-name "intarweb"))
695 (native-inputs (list chicken-test))
696 (propagated-inputs
697 (list chicken-srfi-1
698 chicken-srfi-13
699 chicken-srfi-14
700 chicken-defstruct
701 chicken-uri-common
702 chicken-base64))
703 (synopsis "Intarweb is an advanced http library")
704 (home-page "https://code.more-magic.net/intarweb")
705 (description "Intarweb parses all headers into more useful Scheme values. It
706serves as a low-level basis for http servers or clients.")
707 (license license:bsd-3)))
708
709(define-public chicken-iset
710 (package
711 (name "chicken-iset")
712 (version "2.3.1")
713 (source
714 (origin
715 (method url-fetch)
716 (uri (egg-uri "iset" version))
717 (sha256
718 (base32 "1v797b31369b625pd27dbqc6r988z9cgiipp187y8kgfa5dm69xn"))))
719 (native-inputs (list chicken-test))
720 (build-system chicken-build-system)
721 (arguments
722 (list #:egg-name "iset"))
723 (synopsis "Integer set library")
724 (home-page "https://wiki.call-cc.org/egg/iset")
725 (description
726 "This ``integer set'' CHICKEN Scheme library implements bit vectors.
727Bit-vectors provide an abstract interface to bitwise operations typically done
728with integers.")
729 (license license:bsd-3)))
730
731(define-public chicken-matchable
732 (package
733 (name "chicken-matchable")
734 (version "1.2")
735 (source
736 (origin
737 (method url-fetch)
738 (uri (egg-uri "matchable" version))
739 (sha256
740 (base32 "0h2awlx5y00i5mvqna1wj5ydxg86hc5lvd2fxdl3ypd7gcgz0y92"))))
741 (build-system chicken-build-system)
742 (arguments
743 (list #:egg-name "matchable"))
744 (native-inputs (list chicken-test))
745 (home-page "https://wiki.call-cc.org/egg/matchable")
746 (synopsis "Hygienic MATCH replacement")
747 (description "This extension implements Andrew Wright's pattern matching
748macros.")
749 (license license:public-domain)))
750
751(define-public chicken-miscmacros
752 (package
753 (name "chicken-miscmacros")
754 (version "1.3")
755 (source
756 (origin
757 (method url-fetch)
758 (uri (egg-uri "miscmacros" version))
759 (sha256
760 (base32 "0cqmmahr4fj5ws0grzvqrzk097rbnzdk1f56qymrzgigiblfkglh"))))
761 (build-system chicken-build-system)
762 (arguments
763 (list #:egg-name "miscmacros"))
764 (home-page "https://wiki.call-cc.org/egg/miscmacros")
765 (synopsis "Various helper macros")
766 (description #f)
767 (license license:bsd-3)))
768
769(define-public chicken-regex
770 (package
771 (name "chicken-regex")
772 (version "2.1")
773 (source
774 (origin
775 (method url-fetch)
776 (uri (egg-uri "regex" version))
777 (sha256
778 (base32 "1v6xpkd6s5y6svg106v721an27js7cz5cl2h9y88pmchhvl066mm"))))
779 (build-system chicken-build-system)
780 (arguments
781 (list #:egg-name "regex"))
782 (home-page "https://wiki.call-cc.org/egg/regex")
783 (synopsis "Compatibility library for old regular expression API")
784 (description "This extension provides the regular expression API that used
785to be available in CHICKEN releases before version 4.6.2. It is a thin wrapper
786around the functionality provided by irregex and is mostly intended to keep old
787code working.")
788 (license license:bsd-3)))
789
790(define-public chicken-silex
791 (package
792 (name "chicken-silex")
793 (version "1.1")
794 (source
795 (origin
796 (method url-fetch)
797 (uri (egg-uri "silex" version))
798 (sha256
799 (base32 "0hchm3mg18klkhi24dbrqq4v65awislf5d7hchg33i32acjnxir0"))))
800 (build-system chicken-build-system)
801 (arguments
802 (list #:egg-name "silex"))
803 (native-inputs (list chicken-test))
804 (propagated-inputs (list chicken-srfi-13))
805 (home-page "https://wiki.call-cc.org/egg/silex")
806 (synopsis "Efficient and powerful lexer generator")
807 (description
808 "SILex is a lexical analyser generator similar to the Lex
809and Flex programs, but for Scheme. SILex stands for Scheme Implementation
810of Lex.")
811 (license license:bsd-3)))
812
813(define-public chicken-srfi-1
814 (package
815 (name "chicken-srfi-1")
816 (version "0.5.1")
817 (source
818 (origin
819 (method url-fetch)
820 (uri (egg-uri "srfi-1" version))
821 (sha256
822 (base32 "1s0m7ajjyif3r6nvsjphhykgd2wlsa6j7jsmfhy7s6sc47cddznj"))))
823 (build-system chicken-build-system)
824 (arguments
825 (list #:egg-name "srfi-1"))
826 (native-inputs (list chicken-test))
827 (home-page "https://wiki.call-cc.org/egg/srfi-1")
828 (synopsis "SRFI-1 list library")
829 (description
830 "The list library defined in
831@uref{https://srfi.schemers.org/srfi-1/srfi-1.html, SRFI-1} contains a lot of
832useful list processing procedures for construction, examining, destructuring
833and manipulating lists and pairs.")
834 (license (license:non-copyleft
835 "https://srfi.schemers.org/srfi-1/srfi-1.html"
836 "Olin Shivers' license; see the header of srfi-1.scm"))))
837
838(define-public chicken-srfi-13
839 (package
840 (name "chicken-srfi-13")
841 (version "0.3.8")
842 (source
843 (origin
844 (method url-fetch)
845 (uri (egg-uri "srfi-13" version))
846 (sha256
847 (base32 "02qwwja2s5800ylgkj5fz72qz079z3kjffvn2qj1vh2b5jchzcvg"))))
848 (build-system chicken-build-system)
849 (arguments
850 (list #:egg-name "srfi-13"))
851 (native-inputs (list chicken-test))
852 (propagated-inputs (list chicken-srfi-1 chicken-srfi-14))
853 (home-page "https://wiki.call-cc.org/egg/srfi-13")
854 (synopsis "SRFI-13 string library for Chicken scheme")
855 (description "This package provides the SRFI-13 string library for Chicken
856scheme.")
857 (license license:bsd-3)))
858
859(define-public chicken-srfi-14
860 (package
861 (name "chicken-srfi-14")
862 (version "0.2.3")
863 (source
864 (origin
865 (method url-fetch)
866 (uri (egg-uri "srfi-14" version))
867 (sha256
868 (base32 "03yajfyh1d58kk9hq5vhw69pf6x17wms7zpx8w7s59vzkn99l8a8"))))
869 (build-system chicken-build-system)
870 (arguments
871 (list #:egg-name "srfi-14"))
872 (propagated-inputs (list chicken-srfi-1))
873 (home-page "https://wiki.call-cc.org/egg/srfi-14")
874 (synopsis "SRFI-14 character-sets library")
875 (description
876 "Character sets can be created, extended, tested for the membership of
877a characters and be compared to other character sets.")
878 (license (license:non-copyleft
879 "http://wiki.call-cc.org/egg/srfi-14#license"))))
880
881(define-public chicken-srfi-18
882 (package
883 (name "chicken-srfi-18")
884 (version "0.2.2")
885 (source
886 (origin
887 (method url-fetch)
888 (uri (egg-uri "srfi-18" version))
889 (sha256
890 (base32 "1qrrcss2izy182akx1vpzv66r0mmrnk879kqlgd0hf5wsj1567j9"))))
891 (build-system chicken-build-system)
892 (arguments
893 (list #:egg-name "srfi-18"))
894 (native-inputs (list chicken-compile-file))
895 (home-page "https://wiki.call-cc.org/egg/srfi-18")
896 (synopsis "Multithreading package, largely following SRFI-18")
897 (description
898 "The threads implemented in CHICKEN are so called \"green\"
899threads, based on first-class continuations. Native threads that map directly
900to the threads provided by the operating system are not supported. The
901advantage of this is that threads are very lightweight and somewhat larger
902degree of determinism. The disadvantage is that execution of Scheme code on
903multiple processor cores is not available.")
904 (license license:bsd-3)))
905
906(define-public chicken-srfi-69
907 (package
908 (name "chicken-srfi-69")
909 (version "0.5.3")
910 (source
911 (origin
912 (method url-fetch)
913 (uri (egg-uri "srfi-69" version))
914 (sha256
915 (base32 "0bypnghy5izifbxnrf61pm7bzih9fr5glzs3fmn00fmb58bhj4lf"))))
916 (arguments
917 (list #:egg-name "srfi-69"))
918 (build-system chicken-build-system)
919 (home-page "https://wiki.call-cc.org/egg/srfi-69")
920 (synopsis "Implementation of SRFI 69 with SRFI 90 extensions")
921 (description
922 "This package provides an implementation of
923@uref{https://srfi.schemers.org/srfi-69/srfi-69.html, SRFI-69 hash tables} for
924CHICKEN Scheme, along with
925@uref{https://srfi.schemers.org/srfi-90/srfi-90.html, SRFI-90} extensions.")
926 (license license:bsd-3)))
927
928(define-public chicken-string-utils
929 (package
930 (name "chicken-string-utils")
931 (version "3.6.1")
932 (source
933 (origin
934 (method url-fetch)
935 (uri (egg-uri "string-utils" version))
936 (sha256
937 (base32 "0hfab6sa11jsdjnsq9nlvs8yxy8hjbgizjwxkrpwlwbk91i2x6qx"))))
938 (build-system chicken-build-system)
939 (arguments
940 (list #:egg-name "string-utils"))
941 (native-inputs
942 (list
943 chicken-test
944 chicken-test-utils))
945 (propagated-inputs
946 (list chicken-srfi-1
947 chicken-srfi-13
948 chicken-srfi-14
949 chicken-srfi-69
950 chicken-miscmacros
951 chicken-check-errors))
952 (home-page "https://wiki.call-cc.org/egg/string-utils")
953 (synopsis "String Utilities")
954 (description #f)
955 (license license:bsd-3)))
956
957(define-public chicken-svnwiki-sxml
958 (package
959 (name "chicken-svnwiki-sxml")
960 (version "0.3.1")
961 (source
962 (origin
963 (method url-fetch)
964 (uri (egg-uri "svnwiki-sxml" version))
965 (sha256
966 (base32 "10nm8lpbdnjj41r3cmvlf4izk309f9aysp4d9f3sj52i7pq1v80z"))))
967 (build-system chicken-build-system)
968 (arguments
969 (list #:egg-name "svnwiki-sxml"))
970 (native-inputs
971 (list chicken-test))
972 (propagated-inputs
973 (list chicken-matchable
974 chicken-html-parser
975 chicken-sxml-transforms
976 chicken-srfi-13
977 chicken-srfi-1
978 chicken-regex))
979 (home-page "https://wiki.call-cc.org/egg/svnwiki-sxml")
980 (synopsis "Parse svnwiki to sxml")
981 (description "This extension provides a parser which reads in text in
982svnwiki format and converts it into an abstract SXML representation.")
983 (license license:expat)))
984
985(define-public chicken-sxml-transforms
986 (package
987 (name "chicken-sxml-transforms")
988 (version "1.5.0")
989 (source
990 (origin
991 (method url-fetch)
992 (uri (egg-uri "sxml-transforms" version))
993 (sha256
994 (base32 "00wcgr6yyqvp2l1f7a4axg9vscpc6qb1iskcvwc2p8mkfp3159ja"))))
995 (build-system chicken-build-system)
996 (arguments
997 (list #:egg-name "sxml-transforms"))
998 (propagated-inputs
999 (list chicken-srfi-13))
1000 (home-page "https://wiki.call-cc.org/egg/sxml-transforms")
1001 (synopsis
1002 "SXML transformations (to XML, SXML, and HTML) from the SSAX project")
1003 (description "This egg provides the SXML transforms available in the
1004SSAX/SXML Sourceforge project.")
1005 (license license:public-domain)))
1006
1007(define-public chicken-symbol-utils
1008 (package
1009 (name "chicken-symbol-utils")
1010 (version "3.0.0")
1011 (source
1012 (origin
1013 (method url-fetch)
1014 (uri (egg-uri "symbol-utils" version))
1015 (sha256
1016 (base32 "01jpn15fbdzwjslq594iywv0zny4x72828qdyr6znrszpkg8rcjn"))))
1017 (build-system chicken-build-system)
1018 (arguments
1019 (list #:egg-name "symbol-utils"))
1020 (native-inputs
1021 (list
1022 chicken-test
1023 chicken-test-utils))
1024 (propagated-inputs
1025 (list
1026 chicken-srfi-1
1027 chicken-srfi-13))
1028 (home-page "https://wiki.call-cc.org/egg/symbol-utils")
1029 (synopsis "Symbol Utilities")
1030 (description #f)
1031 (license license:expat)))
1032
1033(define-public chicken-test
1034 (package
1035 (name "chicken-test")
1036 (version "1.3")
1037 (source
1038 (origin
1039 (method url-fetch)
1040 (uri (egg-uri "test" version))
1041 (sha256
1042 (base32 "0wifl5lwijfx555agwrxa4l3pc8hyh79n4knlq9mrbrrq2ydyxf6"))))
1043 (build-system chicken-build-system)
1044 (arguments
1045 (list #:egg-name "test"))
1046 (home-page "https://wiki.call-cc.org/egg/test")
1047 (synopsis "Yet another testing utility")
1048 (description
1049 "This package provides a simple testing utility for CHICKEN Scheme.")
1050 (license license:bsd-3)))
1051
1052(define-public chicken-test-utils
1053 (package
1054 (name "chicken-test-utils")
1055 (version "1.8.2")
1056 (source
1057 (origin
1058 (method url-fetch)
1059 (uri (egg-uri "test-utils" version))
1060 (sha256
1061 (base32 "0ripy8x4sjc8ga2iwcjwsfsf6vp5rq459pywj4c0bq22gffgrma3"))))
1062 (build-system chicken-build-system)
1063 (arguments
1064 (list #:egg-name "test-utils"))
1065 (native-inputs
1066 (list chicken-test))
1067 (propagated-inputs
1068 (list chicken-test))
1069 (home-page "https://wiki.call-cc.org/egg/test-utils")
1070 (synopsis "Gloss & Runner for test egg")
1071 (description "This egg provides a glossary and a runner for the test egg.")
1072 (license license:expat)))
1073
1074(define-public chicken-uri-common
1075 (package
1076 (name "chicken-uri-common")
1077 (version "3.0")
1078 (source
1079 (origin
1080 (method url-fetch)
1081 (uri (egg-uri "uri-common" version))
1082 (sha256
1083 (base32 "1vxqdzr49zm68ny9yx70yxacpzjym9n15w8kyqxnwgcrjgidndpy"))))
1084 (build-system chicken-build-system)
1085 (arguments
1086 (list
1087 #:egg-name "uri-common"))
1088 (native-inputs (list chicken-test))
1089 (propagated-inputs
1090 (list chicken-uri-generic
1091 chicken-defstruct
1092 chicken-matchable
1093 chicken-srfi-1
1094 chicken-srfi-13
1095 chicken-srfi-14))
1096 (home-page "https://wiki.call-cc.org/egg/uri-common")
1097 (synopsis "Parser for common URI schemes")
1098 (description "The uri-common library provides simple and easy-to-use
1099parsing and manipulation procedures for URIs using common schemes. These
1100common schemes all have the following rules:
1101@itemize
1102@item An empty path after the hostname is considered to be identical to the
1103root path.
1104@item All components are to be fully URI-decoded (so no percent-encoded
1105characters in it).
1106@item The query argument will be in application/x-www-form-urlencoded form.
1107@item The port is automatically determined if it is omitted and the URI scheme
1108is known.
1109@end itemize")
1110 (license license:bsd-3)))
1111
1112(define-public chicken-uri-generic
1113 (package
1114 (name "chicken-uri-generic")
1115 (version "4.0")
1116 (source
1117 (origin
1118 (method url-fetch)
1119 (uri (egg-uri "uri-generic" version))
1120 (sha256
1121 (base32 "0npnmr0v32k0zpr87jswhwipm973bsvz67rsq96n7bh9a6ixylxm"))))
1122 (build-system chicken-build-system)
1123 (arguments
1124 (list
1125 #:egg-name "uri-generic"))
1126 (native-inputs (list chicken-test))
1127 (propagated-inputs
1128 (list
1129 chicken-matchable
1130 chicken-srfi-1
1131 chicken-srfi-14))
1132 (home-page "https://wiki.call-cc.org/egg/uri-generic")
1133 (synopsis "URI generic syntax (RFC 3986) parsing and manipulation")
1134 (description "The uri-generic library contains procedures for parsing and
1135manipulation of Uniform Resource Identifiers (RFC 3986). It is intended to
1136conform more closely to the RFC, and uses combinator parsing and character
1137classes rather than regular expressions.
1138
1139This library should be considered to be a basis for creating scheme-specific
1140URI parser libraries. This library only parses the generic components from a
1141URI. Any specific library can further parse subcomponents. For this reason,
1142encoding and decoding of percent-encoded characters is not done automatically.
1143This should be handled by specific URI scheme implementations.")
1144 (license license:bsd-3)))