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