gnu: hunspell-dictionary: Update to 7.1.4.2.
[jackhill/guix/guix.git] / gnu / packages / c.scm
CommitLineData
a5e2c9a9 1;;; GNU Guix --- Functional package management for GNU
350f50cb 2;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
011ec1e5 3;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
48dafe7d 4;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
07592c77 5;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
40e95456 6;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
f170603e 7;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
4c16ffd3 8;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
7adb5299 9;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
8eea80d8 10;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
6c273ee4 11;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
5bc13b8e 12;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
9d541e97 13;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
a5e2c9a9
LC
14;;;
15;;; This file is part of GNU Guix.
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages c)
31 #:use-module ((guix licenses) #:prefix license:)
40e95456 32 #:use-module (guix utils)
a5e2c9a9
LC
33 #:use-module (guix packages)
34 #:use-module (guix download)
c229fb3d 35 #:use-module (guix git-download)
5f998a5c 36 #:use-module (guix build-system cmake)
a5e2c9a9 37 #:use-module (guix build-system gnu)
9f088725 38 #:use-module (guix build-system trivial)
4c66a8de 39 #:use-module (gnu packages)
8eea80d8 40 #:use-module (gnu packages bash)
a5e2c9a9 41 #:use-module (gnu packages bootstrap)
f0316832 42 #:use-module (gnu packages bison)
07592c77 43 #:use-module (gnu packages check)
f0316832 44 #:use-module (gnu packages flex)
a5e2c9a9 45 #:use-module (gnu packages perl)
9f088725 46 #:use-module (gnu packages texinfo)
97b7201f 47 #:use-module (gnu packages guile)
9acf79b2 48 #:use-module (gnu packages lua)
c229fb3d
PN
49 #:use-module (gnu packages multiprecision)
50 #:use-module (gnu packages pcre)
51 #:use-module (gnu packages python)
7def5056 52 #:use-module (gnu packages python-xyz)
c229fb3d
PN
53 #:use-module (gnu packages autotools)
54 #:use-module (gnu packages gettext)
011ec1e5 55 #:use-module (gnu packages pkg-config)
748e2ec0 56 #:use-module (gnu packages tls)
011ec1e5 57 #:use-module (gnu packages xml))
a5e2c9a9
LC
58
59(define-public tcc
60 (package
61 (name "tcc") ;aka. "tinycc"
5d0bd1fb 62 (version "0.9.27")
a5e2c9a9
LC
63 (source (origin
64 (method url-fetch)
65 (uri (string-append "mirror://savannah/tinycc/tcc-"
66 version ".tar.bz2"))
67 (sha256
68 (base32
5d0bd1fb 69 "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy"))))
a5e2c9a9
LC
70 (build-system gnu-build-system)
71 (native-inputs `(("perl" ,perl)
72 ("texinfo" ,texinfo)))
73 (arguments
74 `(#:configure-flags (list (string-append "--elfinterp="
75 (assoc-ref %build-inputs "libc")
76 ,(glibc-dynamic-linker))
77 (string-append "--crtprefix="
78 (assoc-ref %build-inputs "libc")
79 "/lib")
80 (string-append "--sysincludepaths="
81 (assoc-ref %build-inputs "libc")
82 "/include:"
83 (assoc-ref %build-inputs
ce430bd6 84 "kernel-headers")
a5e2c9a9
LC
85 "/include:{B}/include")
86 (string-append "--libpaths="
87 (assoc-ref %build-inputs "libc")
9117d6df
EF
88 "/lib")
89 ,@(if (string-prefix? "armhf-linux"
90 (or (%current-target-system)
91 (%current-system)))
92 `("--triplet=arm-linux-gnueabihf")
93 '()))
a5e2c9a9 94 #:test-target "test"))
4c16ffd3
AE
95 (native-search-paths
96 (list (search-path-specification
97 (variable "CPATH")
98 (files '("include")))
99 (search-path-specification
100 (variable "LIBRARY_PATH")
101 (files '("lib" "lib64")))))
57a31efb 102 ;; Fails to build on MIPS: "Unsupported CPU"
0270b24b 103 (supported-systems (delete "mips64el-linux" %supported-systems))
a5e2c9a9
LC
104 (synopsis "Tiny and fast C compiler")
105 (description
106 "TCC, also referred to as \"TinyCC\", is a small and fast C compiler
107written in C. It supports ANSI C with GNU and extensions and most of the C99
108standard.")
109 (home-page "http://www.tinycc.org/")
5d0bd1fb
TGR
110 ;; An attempt to re-licence tcc under the Expat licence is underway but not
111 ;; (if ever) complete. See the RELICENSING file for more information.
a5e2c9a9 112 (license license:lgpl2.1+)))
9f088725 113
f0316832
RW
114(define-public pcc
115 (package
116 (name "pcc")
117 (version "20170109")
118 (source (origin
119 (method url-fetch)
120 (uri (string-append "http://pcc.ludd.ltu.se/ftp/pub/pcc/pcc-"
121 version ".tgz"))
122 (sha256
123 (base32
124 "1p34w496095mi0473f815w6wbi57zxil106mg7pj6sg6gzpjcgww"))))
125 (build-system gnu-build-system)
126 (arguments
127 `(#:phases
128 (modify-phases %standard-phases
129 (replace 'check
9c30cba4 130 (lambda _ (invoke "make" "-C" "cc/cpp" "test") #t)))))
f0316832
RW
131 (native-inputs
132 `(("bison" ,bison)
133 ("flex" ,flex)))
134 (synopsis "Portable C compiler")
135 (description
136 "PCC is a portable C compiler. The project goal is to write a C99
137compiler while still keeping it small, simple, fast and understandable.")
138 (home-page "http://pcc.ludd.ltu.se")
6a052473 139 (supported-systems (delete "aarch64-linux" %supported-systems))
f0316832
RW
140 ;; PCC incorporates code under various BSD licenses; for new code bsd-2 is
141 ;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details.
142 (license (list license:bsd-2 license:bsd-3))))
c229fb3d
PN
143
144(define-public libbytesize
145 (package
146 (name "libbytesize")
e48390cb 147 (version "2.2")
c229fb3d
PN
148 (source (origin
149 (method url-fetch)
150 (uri (string-append
94617bdd
TGR
151 "https://github.com/storaged-project/libbytesize/releases/"
152 "download/" version "/libbytesize-" version ".tar.gz"))
c229fb3d
PN
153 (sha256
154 (base32
e48390cb 155 "1aivwypmnqcaj2230pifvf3jcgl5chja8rspkxf0j3480asm8g5r"))))
c229fb3d 156 (build-system gnu-build-system)
bf6859e4 157 (arguments
2414997a 158 `(#:tests? #f))
c229fb3d
PN
159 (native-inputs
160 `(("gettext" ,gettext-minimal)
161 ("pkg-config" ,pkg-config)
162 ("python" ,python)))
163 (inputs
164 `(("mpfr" ,mpfr)
2414997a 165 ("pcre2" ,pcre2)))
c229fb3d
PN
166 (home-page "https://github.com/storaged-project/libbytesize")
167 (synopsis "Tiny C library for working with arbitrary big sizes in bytes")
168 (description
169 "The goal of this project is to provide a tiny library that would
170facilitate the common operations with sizes in bytes. Many projects need to
171work with sizes in bytes (be it sizes of storage space, memory...) and all of
172them need to deal with the same issues like:
173
174@itemize
175@item How to get a human-readable string for the given size?
176@item How to store the given size so that no significant information is lost?
177@item If we store the size in bytes, what if the given size gets over the
178MAXUINT64 value?
179@item How to interpret sizes entered by users according to their locale and
180typing conventions?
181@item How to deal with the decimal/binary units (MB versus MiB) ambiguity?
182@end itemize
183
184@code{libbytesize} offers a generally usable solution that could be used by
185every project that needs to deal with sizes in bytes. It is written in the C
186language with thin bindings for other languages.")
187 (license license:lgpl2.1+)))
011ec1e5
RW
188
189(define-public udunits
190 (package
191 (name "udunits")
0dca2e63
TGR
192 ;; Four-part version numbers are development snapshots, not releases. See
193 ;; <https://github.com/Unidata/UDUNITS-2/issues/99#issuecomment-732323472>.
48dafe7d 194 (version "2.2.28")
011ec1e5
RW
195 (source (origin
196 (method url-fetch)
197 (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/udunits/"
198 "udunits-" version ".tar.gz"))
199 (sha256
200 (base32
48dafe7d 201 "17jpbp6f0rr132jn2gqy8ry8mv1w27v6dyhfq1igv8v1674aw2sr"))))
011ec1e5 202 (build-system gnu-build-system)
2a7dce4f
TGR
203 (arguments
204 `(#:configure-flags
205 (list "--disable-static")))
011ec1e5
RW
206 (inputs
207 `(("expat" ,expat)))
208 (home-page "https://www.unidata.ucar.edu/software/udunits/")
209 (synopsis "C library for units of physical quantities and value-conversion utils")
210 (description
211 "The UDUNITS-2 package provides support for units of physical quantities.
212Its three main components are:
213
214@enumerate
215@item @code{udunits2lib}, a C library for units of physical quantities;
216@item @code{udunits2prog}, a utility for obtaining the definition of a unit
217 and for converting numeric values between compatible units; and
218@item an extensive database of units.
219@end enumerate\n")
220 ;; Like the BSD-3 license but with an extra anti patent clause.
221 (license (license:non-copyleft "file://COPYRIGHT"))))
07592c77
PN
222
223(define-public libfixposix
224 (package
225 (name "libfixposix")
226 (version "0.4.3")
227 (home-page "https://github.com/sionescu/libfixposix")
228 (source
229 (origin
230 (method git-fetch)
231 (uri (git-reference
232 (url home-page)
233 (commit (string-append "v" version))))
234 (file-name (git-file-name name version))
235 (sha256
236 (base32
237 "1x4q6yspi5g2s98vq4qszw4z3zjgk9l5zs8471w4d4cs6l97w08j"))))
238 (build-system gnu-build-system)
239 (native-inputs
240 `(("autoconf" ,autoconf)
241 ("automake" ,automake)
242 ("libtool" ,libtool)
243 ("pkg-config" ,pkg-config)
244 ("check" ,check)))
245 (synopsis "Thin wrapper over POSIX syscalls")
246 (description
247 "The purpose of libfixposix is to offer replacements for parts of POSIX
248whose behaviour is inconsistent across *NIX flavours.")
249 (license license:boost1.0)))
f170603e
GLV
250
251(define-public libhx
252 (package
253 (name "libhx")
d9a7102c 254 (version "3.25")
f170603e
GLV
255 (source
256 (origin
257 (method url-fetch)
258 (uri (string-append "mirror://sourceforge/libhx/libHX/"
259 "libHX-" version ".tar.xz"))
260 (sha256
d9a7102c 261 (base32 "12avn16f8aqb0cq6jplz0sv7rh6f07m85dwc8dasnnwsvijwbpbj"))))
f170603e
GLV
262 (build-system gnu-build-system)
263 (home-page "http://libhx.sourceforge.net")
264 (synopsis "C library with common data structures and functions")
265 (description
266 "This is a C library (with some C++ bindings available) that provides data
267structures and functions commonly needed, such as maps, deques, linked lists,
268string formatting and autoresizing, option and config file parsing, type
269checking casts and more.")
270 (license license:lgpl2.1+)))
7adb5299 271
9acf79b2
MC
272(define-public libwuya
273 ;; This commit is the one before "wuy_pool.h" was removed from libwuya,
274 ;; which libleak currently requires.
275 (let ((revision "1")
276 (commit "883502041044f4616cfbf75c8f2bb60059f704a9"))
277 (package
278 (name "libwuya")
279 (version (git-version "0.0" revision commit))
280 (source (origin
281 (method git-fetch)
282 (uri (git-reference
283 (url "https://github.com/WuBingzheng/libwuya")
284 (commit commit)))
285 (file-name (git-file-name name version))
286 (sha256
287 (base32
288 "1xrsqbgr13g2v0ag165ryp7xrwzv41xfygzk2a3445ca98c1qpdc"))))
289 (build-system gnu-build-system)
290 (arguments
291 `(#:tests? #f ;no test suite
292 #:phases (modify-phases %standard-phases
293 (add-after 'unpack 'patch-lua-includes
294 (lambda _
295 (substitute* '("wuy_cflua.h" "wuy_cflua.c")
296 (("<lua5\\.1/") "<"))
297 #t))
298 (add-after 'unpack 'add--fPIC-to-CFLAGS
299 (lambda _
300 (substitute* "Makefile"
301 (("CFLAGS[^\n]*" all)
302 (string-append all " -fPIC")))
303 #t))
304 (add-before 'build 'set-CC
305 (lambda _
306 (setenv "CC" "gcc")
307 #t))
308 (delete 'configure) ;no configure script
309 (replace 'install
310 (lambda* (#:key outputs #:allow-other-keys)
311 (let* ((out (assoc-ref outputs "out"))
312 (include-dir (string-append out "/include"))
313 (headers (find-files "." "\\.h$")))
314 (for-each (lambda (h)
315 (install-file h include-dir))
316 headers)
317 (install-file "libwuya.a" (string-append out "/lib"))
318 #t))))))
319 (inputs `(("lua" ,lua)))
320 (home-page "https://github.com/WuBingzheng/libwuya/")
321 (synopsis "C library implementing various data structures")
322 (description "The @code{libwuya} library implements data structures such
323as dictionaries, skip lists, and memory pools.")
324 ;; There is no clear information as to what license this is distributed
325 ;; under, but it is included (bundled) with libleak from the same author
326 ;; under the GNU GPL v2 or later license, so use this here until it is
327 ;; clarified (see: https://github.com/WuBingzheng/libwuya/issues/2).
328 (license license:gpl2+))))
329
d1c6b097
MB
330(define-public packcc
331 (package
332 (name "packcc")
8eea80d8
MB
333 (version "1.5.0")
334 (home-page "https://github.com/arithy/packcc")
d1c6b097
MB
335 (source (origin
336 (method git-fetch)
337 (uri (git-reference
338 (url home-page)
339 (commit (string-append "v" version))))
340 (file-name (git-file-name name version))
341 (sha256
342 (base32
8eea80d8 343 "1n9ivsa6b9ps2jbh34bycjqjpbwbk85l4jjg46pfhqxzz96793wy"))))
d1c6b097
MB
344 (build-system gnu-build-system)
345 (arguments
8eea80d8 346 '(#:phases (modify-phases %standard-phases
d1c6b097 347 (delete 'configure)
8eea80d8
MB
348 (add-before 'build 'chdir
349 (lambda _
350 (chdir "build/gcc")))
351 (add-before 'check 'pre-check
352 (lambda _
353 (setenv "CC" "gcc")
354 ;; The style tests are supposed to be skipped when
355 ;; uncrustify is unavailable, but a stray version
356 ;; check prevents it from working. This can be
357 ;; removed for future versions of PackCC.
358 (substitute* "../../tests/style.d/style.bats"
359 (("^[[:blank:]]+check_uncrustify_version")
360 ""))))
d1c6b097
MB
361 (replace 'install
362 (lambda* (#:key outputs #:allow-other-keys)
363 (let ((out (assoc-ref outputs "out")))
8eea80d8
MB
364 (install-file "release/bin/packcc"
365 (string-append out "/bin"))
366 (install-file "../../README.md"
d1c6b097
MB
367 (string-append out "/share/doc/packcc"))
368 #t))))))
8eea80d8
MB
369 (native-inputs
370 `(("bats" ,bats)))
d1c6b097
MB
371 (synopsis "Packrat parser generator for C")
372 (description
373 "PackCC is a packrat parser generator for the C programming language.
374Its main features are:
375@itemize
376@item Generates a parser in C from a grammar described in a PEG.
377@item Gives your parser great efficiency by packrat parsing.
378@item Supports direct and indirect left-recursive grammar rules.
379@end itemize
380The grammar of your parser can be described in a @acronym{PEG, Parsing
381Expression Grammar}. The PEG is a top-down parsing language, and is similar
382to the regular-expression grammar. The PEG does not require tokenization to
383be a separate step, and tokenization rules can be written in the same way as
384any other grammar rules.")
385 (license license:expat)))
386
7adb5299
JN
387(define-public sparse
388 (package
389 (name "sparse")
24f3dffd 390 (version "0.6.3")
7adb5299
JN
391 (source (origin
392 (method url-fetch)
393 (uri
394 (string-append "mirror://kernel.org/software/devel/sparse/dist/"
395 "sparse-" version ".tar.xz"))
396 (sha256
397 (base32
24f3dffd 398 "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl"))))
7adb5299
JN
399 (build-system gnu-build-system)
400 (inputs `(("perl" ,perl)))
401 (arguments
402 '(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
403 #:phases (modify-phases %standard-phases
404 (delete 'configure)
405 (add-after 'unpack 'patch-cgcc
406 (lambda _
407 (substitute* "cgcc"
408 (("'cc'") (string-append "'" (which "gcc") "'")))
409 #t)))))
410 (synopsis "Semantic C parser for Linux development")
411 (description
412 "Sparse is a semantic parser for C and is required for Linux development.
413It provides a compiler frontend capable of parsing most of ANSI C as well as
414many GCC extensions, and a collection of sample compiler backends, including a
415static analyzer also called @file{sparse}. Sparse provides a set of
416annotations designed to convey semantic information about types, such as what
417address space pointers point to, or what locks a function acquires or
418releases.")
419 (home-page "https://sparse.wiki.kernel.org/index.php/Main_Page")
420 (license license:expat)))
70a49ef7
KCB
421
422(define-public libestr
423 (package
424 (name "libestr")
425 (version "0.1.11")
426 (source
427 (origin
428 (method git-fetch)
429 (uri (git-reference
b0e7b699 430 (url "https://github.com/rsyslog/libestr")
70a49ef7
KCB
431 (commit (string-append "v" version))))
432 (file-name (git-file-name name version))
433 (sha256
434 (base32
435 "1ca4rj90c0dn7kqpbcchkflxjw88a7rxcnwbr0gply4a28i01nd8"))))
436 (build-system gnu-build-system)
437 (arguments
438 `(#:phases
439 (modify-phases %standard-phases
440 ;; autogen.sh calls configure at the end of the script.
441 (replace 'bootstrap
442 (lambda _ (invoke "autoreconf" "-vfi"))))))
443 (native-inputs
444 `(("autoconf" ,autoconf)
445 ("automake" ,automake)
446 ("pkg-config" ,pkg-config)
447 ("libtool" ,libtool)))
448 (home-page "https://github.com/rsyslog/libestr")
449 (synopsis "Helper functions for handling strings")
450 (description
451 "This C library contains some essential string manipulation functions and
452more, like escaping special characters.")
453 (license license:lgpl2.1+)))
0aee6e51
KCB
454
455(define-public libfastjson
456 (package
457 (name "libfastjson")
362d4787 458 (version "0.99.9")
0aee6e51
KCB
459 (source
460 (origin
461 (method git-fetch)
462 (uri (git-reference
b0e7b699 463 (url "https://github.com/rsyslog/libfastjson")
0aee6e51
KCB
464 (commit (string-append "v" version))))
465 (file-name (git-file-name name version))
466 (sha256
362d4787 467 (base32 "12rqcdqxazw8czzxbivdapdgj19pcswpw1jp2915sxbljis83g6q"))))
0aee6e51
KCB
468 (build-system gnu-build-system)
469 (native-inputs
470 `(("autoconf" ,autoconf)
471 ("automake" ,automake)
472 ("libtool" ,libtool)))
473 (home-page "https://github.com/rsyslog/libfastjson")
474 (synopsis "Fast JSON library for C")
475 (description
476 "libfastjson is a fork from json-c aiming to provide: a small library
477with essential JSON handling functions, sufficiently good JSON support (not
478100% standards compliant), and very fast processing.")
479 (license license:expat)))
7def5056
KCB
480
481(define-public liblogging
482 (package
483 (name "liblogging")
484 (version "1.0.6")
485 (source
486 (origin
487 (method git-fetch)
488 (uri (git-reference
b0e7b699 489 (url "https://github.com/rsyslog/liblogging")
7def5056
KCB
490 (commit (string-append "v" version))))
491 (file-name (git-file-name name version))
492 (sha256
493 (base32
494 "1l32m0y65svf5vxsgw935jnqs6842rcqr56dmzwqvr00yfrjhjkp"))))
495 (build-system gnu-build-system)
496 (arguments
497 `(#:phases
498 (modify-phases %standard-phases
499 ;; autogen.sh calls configure at the end of the script.
500 (replace 'bootstrap
501 (lambda _ (invoke "autoreconf" "-vfi"))))))
502 (native-inputs
503 `(("autoconf" ,autoconf)
504 ("automake" ,automake)
505 ("pkg-config" ,pkg-config)
506 ("libtool" ,libtool)
507 ;; For rst2man.py
508 ("python-docutils" ,python-docutils)))
509 (home-page "https://github.com/rsyslog/liblogging")
510 (synopsis "Easy to use and lightweight signal-safe logging library")
511 (description
512 "Liblogging is an easy to use library for logging. It offers an enhanced
513replacement for the syslog() call, but retains its ease of use.")
514 (license license:bsd-2)))
5bc13b8e
MC
515
516(define-public unifdef
517 (package
518 (name "unifdef")
519 (version "2.12")
520 (source (origin
521 (method url-fetch)
522 ;; https://dotat.at/prog/unifdef/unifdef-2.12.tar.xz
523 (uri (string-append "https://dotat.at/prog/" name "/"
524 name "-" version ".tar.xz"))
525 (sha256
526 (base32
527 "00647bp3m9n01ck6ilw6r24fk4mivmimamvm4hxp5p6wxh10zkj3"))
528 (modules '((guix build utils)))
529 (snippet
530 '(begin (delete-file-recursively "FreeBSD")
531 (delete-file-recursively "win32")
532 #t))))
533 (build-system gnu-build-system)
534 (arguments
535 `(#:phases (modify-phases %standard-phases
536 (delete 'configure))
40e95456
EF
537 #:make-flags (list (string-append "CC=" ,(cc-for-target))
538 (string-append "prefix=" %output))
5bc13b8e
MC
539 #:tests? #f)) ;no test suite
540 (native-inputs
541 `(("perl" ,perl)))
542 (home-page "https://dotat.at/prog/unifdef/")
543 (synopsis "Utility to selectively processes conditional C preprocessor")
544 (description "The @command{unifdef} utility selectively processes
545conditional C preprocessor @code{#if} and @code{#ifdef} directives. It
546removes from a file both the directives and the additional text that they
547delimit, while otherwise leaving the file alone. It can be useful for
548avoiding distractions when studying code that uses @code{#ifdef} heavily for
549portability.")
550 (license (list license:bsd-2 ;all files except...
551 license:bsd-3)))) ;...the unidef.1 manual page
5f998a5c
GH
552
553(define-public aws-c-common
554 (package
555 (name "aws-c-common")
abe686b9 556 (version "0.5.3")
5f998a5c
GH
557 (source (origin
558 (method git-fetch)
559 (uri (git-reference
560 (url (string-append "https://github.com/awslabs/" name))
561 (commit (string-append "v" version))))
562 (file-name (git-file-name name version))
563 (sha256
564 (base32
abe686b9 565 "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72"))))
5f998a5c 566 (build-system cmake-build-system)
9d541e97
GH
567 (arguments
568 '(#:configure-flags
569 '("-DBUILD_SHARED_LIBS=ON")))
5f998a5c
GH
570 (synopsis "Amazon Web Services core C library")
571 (description
572 "This library provides common C99 primitives, configuration, data
573 structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.")
574 (home-page "https://github.com/awslabs/aws-c-common")
575 (license license:asl2.0)))
4c66a8de
GH
576
577(define-public aws-checksums
578 (package
579 (name "aws-checksums")
8ae79a2d 580 (version "0.1.11")
4c66a8de
GH
581 (source (origin
582 (method git-fetch)
583 (uri (git-reference
584 (url (string-append "https://github.com/awslabs/" name))
585 (commit (string-append "v" version))))
586 (file-name (git-file-name name version))
587 (sha256
588 (base32
8ae79a2d 589 "1pjs31x3cq9wyw511y00kksz660m8im9zxk30hid8iwlilcbnyvx"))
4c66a8de
GH
590 (patches (search-patches "aws-checksums-cmake-prefix.patch"))))
591 (build-system cmake-build-system)
cc95d03e
GH
592 (arguments
593 '(#:configure-flags
594 '("-DBUILD_SHARED_LIBS=ON")))
4c66a8de
GH
595 (inputs
596 `(("aws-c-common" ,aws-c-common)))
597 (synopsis "Amazon Web Services checksum library")
598 (description
599 "This library provides cross-Platform hardware accelerated CRC32c and CRC32
600with fallback to efficient C99 software implementations.")
601 (home-page "https://github.com/awslabs/aws-checksums")
602 (license license:asl2.0)))
ddab5244
GH
603
604(define-public aws-c-event-stream
605 (package
606 (name "aws-c-event-stream")
97190845 607 (version "0.2.7")
ddab5244
GH
608 (source (origin
609 (method git-fetch)
610 (uri (git-reference
611 (url (string-append "https://github.com/awslabs/" name))
612 (commit (string-append "v" version))))
613 (file-name (git-file-name name version))
614 (sha256
615 (base32
97190845 616 "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh"))
ddab5244
GH
617 (patches (search-patches "aws-c-event-stream-cmake-prefix.patch"))))
618 (build-system cmake-build-system)
97190845
GH
619 (arguments
620 '(#:configure-flags
621 '("-DBUILD_SHARED_LIBS=ON")))
ddab5244 622 (propagated-inputs
97190845
GH
623 `(("aws-c-common" ,aws-c-common)
624 ("aws-c-io" ,aws-c-io)
625 ("aws-checksums" ,aws-checksums)))
ddab5244 626 (inputs
97190845
GH
627 `(("aws-c-cal" ,aws-c-cal)
628 ("s2n" ,s2n)))
ddab5244
GH
629 (synopsis "Amazon Web Services client-server message format library")
630 (description
631 "This library is a C99 implementation for @acronym{AWS,Amazon Web Services}
632event stream encoding, a binary format for bidirectional client-server
633communication.")
634 (home-page "https://github.com/awslabs/aws-c-event-stream")
635 (license license:asl2.0)))
748e2ec0 636
8ea7b6f9
GH
637(define-public aws-c-io
638 (package
639 (name "aws-c-io")
640 (version "0.9.2")
641 (source (origin
642 (method git-fetch)
643 (uri (git-reference
644 (url (string-append "https://github.com/awslabs/" name))
645 (commit (string-append "v" version))))
646 (file-name (git-file-name name version))
647 (sha256
648 (base32
649 "1vwyf1pm0hhcypyjc9xh9x7y50ic79xlbck1yf9d9wz0bnh43p7v"))
650 (patches
651 (search-patches
652 "aws-c-io-cmake-prefix.patch"
653 "aws-c-io-disable-networking-tests.patch"))))
654 (build-system cmake-build-system)
655 (arguments
656 '(#:configure-flags
657 '("-DBUILD_SHARED_LIBS=ON")))
658 (propagated-inputs
659 `(("aws-c-cal" ,aws-c-cal)
660 ("aws-c-common" ,aws-c-common)
661 ("s2n" ,s2n)))
662 (synopsis "Event driven framework for implementing application protocols")
663 (description "This library provides a C99 framework for constructing
664event-driven, asynchronous network application protocols.")
665 (home-page "https://github.com/awslabs/aws-c-io")
666 (license license:asl2.0)))
667
748e2ec0
GH
668(define-public aws-c-cal
669 (package
670 (name "aws-c-cal")
671 (version "0.4.5")
672 (source (origin
673 (method git-fetch)
674 (uri (git-reference
675 (url (string-append "https://github.com/awslabs/" name))
676 (commit (string-append "v" version))))
677 (file-name (git-file-name name version))
678 (sha256
679 (base32
680 "04acra1mnzw9q7jycs5966akfbgnx96hkrq90nq0dhw8pvarlyv6"))
681 (patches (search-patches "aws-c-cal-cmake-prefix.patch"))))
682 (build-system cmake-build-system)
683 (arguments
684 '(#:configure-flags
685 '("-DBUILD_SHARED_LIBS=ON")))
686 (propagated-inputs
687 `(("aws-c-common" ,aws-c-common)))
688 (inputs
689 `(("openssl" ,openssl)
690 ("openssl:static" ,openssl "static")))
691 (synopsis "Amazon Web Services Crypto Abstraction Layer")
692 (description "This library provides a C99 wrapper for hash, HMAC, and ECC
693cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
694 (home-page "https://github.com/awslabs/aws-c-cal")
695 (license license:asl2.0)))