gnu: aws-c-io: Update to 0.10.9.
[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>
c1ea1a94 7;;; Copyright © 2019, 2021 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>
1be97fa9 14;;; Copyright © 2021 David Dashyan <mail@davie.li>
a5e2c9a9
LC
15;;;
16;;; This file is part of GNU Guix.
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31(define-module (gnu packages c)
32 #:use-module ((guix licenses) #:prefix license:)
40e95456 33 #:use-module (guix utils)
a5e2c9a9
LC
34 #:use-module (guix packages)
35 #:use-module (guix download)
c229fb3d 36 #:use-module (guix git-download)
5f998a5c 37 #:use-module (guix build-system cmake)
a5e2c9a9 38 #:use-module (guix build-system gnu)
9f088725 39 #:use-module (guix build-system trivial)
4c66a8de 40 #:use-module (gnu packages)
8eea80d8 41 #:use-module (gnu packages bash)
a5e2c9a9 42 #:use-module (gnu packages bootstrap)
f0316832 43 #:use-module (gnu packages bison)
07592c77 44 #:use-module (gnu packages check)
f0316832 45 #:use-module (gnu packages flex)
a5e2c9a9 46 #:use-module (gnu packages perl)
9f088725 47 #:use-module (gnu packages texinfo)
97b7201f 48 #:use-module (gnu packages guile)
9acf79b2 49 #:use-module (gnu packages lua)
c229fb3d
PN
50 #:use-module (gnu packages multiprecision)
51 #:use-module (gnu packages pcre)
52 #:use-module (gnu packages python)
7def5056 53 #:use-module (gnu packages python-xyz)
c229fb3d
PN
54 #:use-module (gnu packages autotools)
55 #:use-module (gnu packages gettext)
011ec1e5 56 #:use-module (gnu packages pkg-config)
748e2ec0 57 #:use-module (gnu packages tls)
011ec1e5 58 #:use-module (gnu packages xml))
a5e2c9a9
LC
59
60(define-public tcc
61 (package
62 (name "tcc") ;aka. "tinycc"
5d0bd1fb 63 (version "0.9.27")
a5e2c9a9
LC
64 (source (origin
65 (method url-fetch)
66 (uri (string-append "mirror://savannah/tinycc/tcc-"
67 version ".tar.bz2"))
68 (sha256
69 (base32
5d0bd1fb 70 "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy"))))
a5e2c9a9
LC
71 (build-system gnu-build-system)
72 (native-inputs `(("perl" ,perl)
73 ("texinfo" ,texinfo)))
74 (arguments
75 `(#:configure-flags (list (string-append "--elfinterp="
76 (assoc-ref %build-inputs "libc")
77 ,(glibc-dynamic-linker))
78 (string-append "--crtprefix="
79 (assoc-ref %build-inputs "libc")
80 "/lib")
81 (string-append "--sysincludepaths="
82 (assoc-ref %build-inputs "libc")
83 "/include:"
84 (assoc-ref %build-inputs
ce430bd6 85 "kernel-headers")
a5e2c9a9
LC
86 "/include:{B}/include")
87 (string-append "--libpaths="
88 (assoc-ref %build-inputs "libc")
9117d6df
EF
89 "/lib")
90 ,@(if (string-prefix? "armhf-linux"
91 (or (%current-target-system)
92 (%current-system)))
93 `("--triplet=arm-linux-gnueabihf")
94 '()))
a5e2c9a9 95 #:test-target "test"))
4c16ffd3
AE
96 (native-search-paths
97 (list (search-path-specification
98 (variable "CPATH")
99 (files '("include")))
100 (search-path-specification
101 (variable "LIBRARY_PATH")
102 (files '("lib" "lib64")))))
57a31efb 103 ;; Fails to build on MIPS: "Unsupported CPU"
0270b24b 104 (supported-systems (delete "mips64el-linux" %supported-systems))
a5e2c9a9
LC
105 (synopsis "Tiny and fast C compiler")
106 (description
107 "TCC, also referred to as \"TinyCC\", is a small and fast C compiler
108written in C. It supports ANSI C with GNU and extensions and most of the C99
109standard.")
110 (home-page "http://www.tinycc.org/")
5d0bd1fb
TGR
111 ;; An attempt to re-licence tcc under the Expat licence is underway but not
112 ;; (if ever) complete. See the RELICENSING file for more information.
a5e2c9a9 113 (license license:lgpl2.1+)))
9f088725 114
f0316832
RW
115(define-public pcc
116 (package
117 (name "pcc")
118 (version "20170109")
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "http://pcc.ludd.ltu.se/ftp/pub/pcc/pcc-"
122 version ".tgz"))
123 (sha256
124 (base32
125 "1p34w496095mi0473f815w6wbi57zxil106mg7pj6sg6gzpjcgww"))))
126 (build-system gnu-build-system)
127 (arguments
128 `(#:phases
129 (modify-phases %standard-phases
130 (replace 'check
9c30cba4 131 (lambda _ (invoke "make" "-C" "cc/cpp" "test") #t)))))
f0316832
RW
132 (native-inputs
133 `(("bison" ,bison)
134 ("flex" ,flex)))
135 (synopsis "Portable C compiler")
136 (description
137 "PCC is a portable C compiler. The project goal is to write a C99
138compiler while still keeping it small, simple, fast and understandable.")
139 (home-page "http://pcc.ludd.ltu.se")
6a052473 140 (supported-systems (delete "aarch64-linux" %supported-systems))
f0316832
RW
141 ;; PCC incorporates code under various BSD licenses; for new code bsd-2 is
142 ;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details.
143 (license (list license:bsd-2 license:bsd-3))))
c229fb3d
PN
144
145(define-public libbytesize
146 (package
147 (name "libbytesize")
e48390cb 148 (version "2.2")
c229fb3d
PN
149 (source (origin
150 (method url-fetch)
151 (uri (string-append
94617bdd
TGR
152 "https://github.com/storaged-project/libbytesize/releases/"
153 "download/" version "/libbytesize-" version ".tar.gz"))
c229fb3d
PN
154 (sha256
155 (base32
e48390cb 156 "1aivwypmnqcaj2230pifvf3jcgl5chja8rspkxf0j3480asm8g5r"))))
c229fb3d 157 (build-system gnu-build-system)
bf6859e4 158 (arguments
2414997a 159 `(#:tests? #f))
c229fb3d
PN
160 (native-inputs
161 `(("gettext" ,gettext-minimal)
162 ("pkg-config" ,pkg-config)
163 ("python" ,python)))
164 (inputs
165 `(("mpfr" ,mpfr)
2414997a 166 ("pcre2" ,pcre2)))
c229fb3d
PN
167 (home-page "https://github.com/storaged-project/libbytesize")
168 (synopsis "Tiny C library for working with arbitrary big sizes in bytes")
169 (description
170 "The goal of this project is to provide a tiny library that would
171facilitate the common operations with sizes in bytes. Many projects need to
172work with sizes in bytes (be it sizes of storage space, memory...) and all of
173them need to deal with the same issues like:
174
175@itemize
176@item How to get a human-readable string for the given size?
177@item How to store the given size so that no significant information is lost?
178@item If we store the size in bytes, what if the given size gets over the
179MAXUINT64 value?
180@item How to interpret sizes entered by users according to their locale and
181typing conventions?
182@item How to deal with the decimal/binary units (MB versus MiB) ambiguity?
183@end itemize
184
185@code{libbytesize} offers a generally usable solution that could be used by
186every project that needs to deal with sizes in bytes. It is written in the C
187language with thin bindings for other languages.")
188 (license license:lgpl2.1+)))
011ec1e5
RW
189
190(define-public udunits
191 (package
192 (name "udunits")
0dca2e63
TGR
193 ;; Four-part version numbers are development snapshots, not releases. See
194 ;; <https://github.com/Unidata/UDUNITS-2/issues/99#issuecomment-732323472>.
48dafe7d 195 (version "2.2.28")
011ec1e5
RW
196 (source (origin
197 (method url-fetch)
198 (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/udunits/"
199 "udunits-" version ".tar.gz"))
200 (sha256
201 (base32
48dafe7d 202 "17jpbp6f0rr132jn2gqy8ry8mv1w27v6dyhfq1igv8v1674aw2sr"))))
011ec1e5 203 (build-system gnu-build-system)
2a7dce4f
TGR
204 (arguments
205 `(#:configure-flags
206 (list "--disable-static")))
011ec1e5
RW
207 (inputs
208 `(("expat" ,expat)))
209 (home-page "https://www.unidata.ucar.edu/software/udunits/")
210 (synopsis "C library for units of physical quantities and value-conversion utils")
211 (description
212 "The UDUNITS-2 package provides support for units of physical quantities.
213Its three main components are:
214
215@enumerate
216@item @code{udunits2lib}, a C library for units of physical quantities;
217@item @code{udunits2prog}, a utility for obtaining the definition of a unit
218 and for converting numeric values between compatible units; and
219@item an extensive database of units.
220@end enumerate\n")
221 ;; Like the BSD-3 license but with an extra anti patent clause.
222 (license (license:non-copyleft "file://COPYRIGHT"))))
07592c77
PN
223
224(define-public libfixposix
225 (package
226 (name "libfixposix")
227 (version "0.4.3")
228 (home-page "https://github.com/sionescu/libfixposix")
229 (source
230 (origin
231 (method git-fetch)
232 (uri (git-reference
233 (url home-page)
234 (commit (string-append "v" version))))
235 (file-name (git-file-name name version))
236 (sha256
237 (base32
238 "1x4q6yspi5g2s98vq4qszw4z3zjgk9l5zs8471w4d4cs6l97w08j"))))
239 (build-system gnu-build-system)
240 (native-inputs
241 `(("autoconf" ,autoconf)
242 ("automake" ,automake)
243 ("libtool" ,libtool)
244 ("pkg-config" ,pkg-config)
245 ("check" ,check)))
246 (synopsis "Thin wrapper over POSIX syscalls")
247 (description
248 "The purpose of libfixposix is to offer replacements for parts of POSIX
249whose behaviour is inconsistent across *NIX flavours.")
250 (license license:boost1.0)))
f170603e
GLV
251
252(define-public libhx
253 (package
254 (name "libhx")
a7e73852 255 (version "4.2")
f170603e
GLV
256 (source
257 (origin
258 (method url-fetch)
29b9c2e6 259 (uri (string-append "https://inai.de/files/libhx/"
f170603e
GLV
260 "libHX-" version ".tar.xz"))
261 (sha256
a7e73852 262 (base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj"))))
f170603e 263 (build-system gnu-build-system)
29b9c2e6 264 (home-page "https://inai.de/projects/libhx/")
f170603e
GLV
265 (synopsis "C library with common data structures and functions")
266 (description
267 "This is a C library (with some C++ bindings available) that provides data
268structures and functions commonly needed, such as maps, deques, linked lists,
269string formatting and autoresizing, option and config file parsing, type
270checking casts and more.")
271 (license license:lgpl2.1+)))
7adb5299 272
9acf79b2
MC
273(define-public libwuya
274 ;; This commit is the one before "wuy_pool.h" was removed from libwuya,
275 ;; which libleak currently requires.
276 (let ((revision "1")
277 (commit "883502041044f4616cfbf75c8f2bb60059f704a9"))
278 (package
279 (name "libwuya")
280 (version (git-version "0.0" revision commit))
281 (source (origin
282 (method git-fetch)
283 (uri (git-reference
284 (url "https://github.com/WuBingzheng/libwuya")
285 (commit commit)))
286 (file-name (git-file-name name version))
287 (sha256
288 (base32
289 "1xrsqbgr13g2v0ag165ryp7xrwzv41xfygzk2a3445ca98c1qpdc"))))
290 (build-system gnu-build-system)
291 (arguments
292 `(#:tests? #f ;no test suite
293 #:phases (modify-phases %standard-phases
294 (add-after 'unpack 'patch-lua-includes
295 (lambda _
296 (substitute* '("wuy_cflua.h" "wuy_cflua.c")
297 (("<lua5\\.1/") "<"))
298 #t))
299 (add-after 'unpack 'add--fPIC-to-CFLAGS
300 (lambda _
301 (substitute* "Makefile"
302 (("CFLAGS[^\n]*" all)
303 (string-append all " -fPIC")))
304 #t))
305 (add-before 'build 'set-CC
306 (lambda _
307 (setenv "CC" "gcc")
308 #t))
309 (delete 'configure) ;no configure script
310 (replace 'install
311 (lambda* (#:key outputs #:allow-other-keys)
312 (let* ((out (assoc-ref outputs "out"))
313 (include-dir (string-append out "/include"))
314 (headers (find-files "." "\\.h$")))
315 (for-each (lambda (h)
316 (install-file h include-dir))
317 headers)
318 (install-file "libwuya.a" (string-append out "/lib"))
319 #t))))))
320 (inputs `(("lua" ,lua)))
321 (home-page "https://github.com/WuBingzheng/libwuya/")
322 (synopsis "C library implementing various data structures")
323 (description "The @code{libwuya} library implements data structures such
324as dictionaries, skip lists, and memory pools.")
325 ;; There is no clear information as to what license this is distributed
326 ;; under, but it is included (bundled) with libleak from the same author
327 ;; under the GNU GPL v2 or later license, so use this here until it is
328 ;; clarified (see: https://github.com/WuBingzheng/libwuya/issues/2).
329 (license license:gpl2+))))
330
d1c6b097
MB
331(define-public packcc
332 (package
333 (name "packcc")
8eea80d8
MB
334 (version "1.5.0")
335 (home-page "https://github.com/arithy/packcc")
d1c6b097
MB
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
8eea80d8 344 "1n9ivsa6b9ps2jbh34bycjqjpbwbk85l4jjg46pfhqxzz96793wy"))))
d1c6b097
MB
345 (build-system gnu-build-system)
346 (arguments
8eea80d8 347 '(#:phases (modify-phases %standard-phases
d1c6b097 348 (delete 'configure)
8eea80d8
MB
349 (add-before 'build 'chdir
350 (lambda _
351 (chdir "build/gcc")))
352 (add-before 'check 'pre-check
353 (lambda _
354 (setenv "CC" "gcc")
355 ;; The style tests are supposed to be skipped when
356 ;; uncrustify is unavailable, but a stray version
357 ;; check prevents it from working. This can be
358 ;; removed for future versions of PackCC.
359 (substitute* "../../tests/style.d/style.bats"
360 (("^[[:blank:]]+check_uncrustify_version")
361 ""))))
d1c6b097
MB
362 (replace 'install
363 (lambda* (#:key outputs #:allow-other-keys)
364 (let ((out (assoc-ref outputs "out")))
8eea80d8
MB
365 (install-file "release/bin/packcc"
366 (string-append out "/bin"))
367 (install-file "../../README.md"
d1c6b097
MB
368 (string-append out "/share/doc/packcc"))
369 #t))))))
8eea80d8
MB
370 (native-inputs
371 `(("bats" ,bats)))
d1c6b097
MB
372 (synopsis "Packrat parser generator for C")
373 (description
374 "PackCC is a packrat parser generator for the C programming language.
375Its main features are:
376@itemize
377@item Generates a parser in C from a grammar described in a PEG.
378@item Gives your parser great efficiency by packrat parsing.
379@item Supports direct and indirect left-recursive grammar rules.
380@end itemize
381The grammar of your parser can be described in a @acronym{PEG, Parsing
382Expression Grammar}. The PEG is a top-down parsing language, and is similar
383to the regular-expression grammar. The PEG does not require tokenization to
384be a separate step, and tokenization rules can be written in the same way as
385any other grammar rules.")
386 (license license:expat)))
387
7adb5299
JN
388(define-public sparse
389 (package
390 (name "sparse")
08e32249 391 (version "0.6.4")
7adb5299
JN
392 (source (origin
393 (method url-fetch)
394 (uri
395 (string-append "mirror://kernel.org/software/devel/sparse/dist/"
396 "sparse-" version ".tar.xz"))
397 (sha256
398 (base32
08e32249 399 "0z1qds52144nvsdnl82r3zs3vax618v920jmffyyssmwj54qpcka"))))
7adb5299
JN
400 (build-system gnu-build-system)
401 (inputs `(("perl" ,perl)))
402 (arguments
403 '(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
404 #:phases (modify-phases %standard-phases
405 (delete 'configure)
406 (add-after 'unpack 'patch-cgcc
407 (lambda _
408 (substitute* "cgcc"
08e32249 409 (("'cc'") (string-append "'" (which "gcc") "'"))))))))
7adb5299
JN
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")
5715a07a
GH
556 ; Update only when updating aws-crt-cpp.
557 (version "0.6.11")
5f998a5c
GH
558 (source (origin
559 (method git-fetch)
560 (uri (git-reference
561 (url (string-append "https://github.com/awslabs/" name))
562 (commit (string-append "v" version))))
563 (file-name (git-file-name name version))
564 (sha256
565 (base32
5715a07a 566 "1v4dhygiynl75y3702lbp9j8kph88j4f2sq39s4lkhn6lmbz5f0f"))))
5f998a5c 567 (build-system cmake-build-system)
9d541e97
GH
568 (arguments
569 '(#:configure-flags
570 '("-DBUILD_SHARED_LIBS=ON")))
5f998a5c
GH
571 (synopsis "Amazon Web Services core C library")
572 (description
573 "This library provides common C99 primitives, configuration, data
574 structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.")
575 (home-page "https://github.com/awslabs/aws-c-common")
576 (license license:asl2.0)))
4c66a8de
GH
577
578(define-public aws-checksums
579 (package
580 (name "aws-checksums")
1ea17412 581 (version "0.1.12")
4c66a8de
GH
582 (source (origin
583 (method git-fetch)
584 (uri (git-reference
585 (url (string-append "https://github.com/awslabs/" name))
586 (commit (string-append "v" version))))
587 (file-name (git-file-name name version))
588 (sha256
589 (base32
1ea17412 590 "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k"))
4c66a8de
GH
591 (patches (search-patches "aws-checksums-cmake-prefix.patch"))))
592 (build-system cmake-build-system)
cc95d03e
GH
593 (arguments
594 '(#:configure-flags
595 '("-DBUILD_SHARED_LIBS=ON")))
4c66a8de
GH
596 (inputs
597 `(("aws-c-common" ,aws-c-common)))
598 (synopsis "Amazon Web Services checksum library")
599 (description
600 "This library provides cross-Platform hardware accelerated CRC32c and CRC32
601with fallback to efficient C99 software implementations.")
602 (home-page "https://github.com/awslabs/aws-checksums")
603 (license license:asl2.0)))
ddab5244
GH
604
605(define-public aws-c-event-stream
606 (package
607 (name "aws-c-event-stream")
97190845 608 (version "0.2.7")
ddab5244
GH
609 (source (origin
610 (method git-fetch)
611 (uri (git-reference
612 (url (string-append "https://github.com/awslabs/" name))
613 (commit (string-append "v" version))))
614 (file-name (git-file-name name version))
615 (sha256
616 (base32
97190845 617 "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh"))
ddab5244
GH
618 (patches (search-patches "aws-c-event-stream-cmake-prefix.patch"))))
619 (build-system cmake-build-system)
97190845
GH
620 (arguments
621 '(#:configure-flags
622 '("-DBUILD_SHARED_LIBS=ON")))
ddab5244 623 (propagated-inputs
97190845
GH
624 `(("aws-c-common" ,aws-c-common)
625 ("aws-c-io" ,aws-c-io)
626 ("aws-checksums" ,aws-checksums)))
ddab5244 627 (inputs
97190845
GH
628 `(("aws-c-cal" ,aws-c-cal)
629 ("s2n" ,s2n)))
ddab5244
GH
630 (synopsis "Amazon Web Services client-server message format library")
631 (description
632 "This library is a C99 implementation for @acronym{AWS,Amazon Web Services}
633event stream encoding, a binary format for bidirectional client-server
634communication.")
635 (home-page "https://github.com/awslabs/aws-c-event-stream")
636 (license license:asl2.0)))
748e2ec0 637
8ea7b6f9
GH
638(define-public aws-c-io
639 (package
640 (name "aws-c-io")
2a32dedf
GH
641 ; Update only when updating aws-crt-cpp.
642 (version "0.10.9")
8ea7b6f9
GH
643 (source (origin
644 (method git-fetch)
645 (uri (git-reference
646 (url (string-append "https://github.com/awslabs/" name))
647 (commit (string-append "v" version))))
648 (file-name (git-file-name name version))
649 (sha256
650 (base32
2a32dedf 651 "14rxa3k842fgk43702nz7z9y3clfhvax8j0k93i0c5vg14wj38yp"))))
8ea7b6f9
GH
652 (build-system cmake-build-system)
653 (arguments
654 '(#:configure-flags
2a32dedf
GH
655 (list "-DBUILD_SHARED_LIBS=ON"
656 (string-append "-DCMAKE_PREFIX_PATH="
657 (assoc-ref %build-inputs "aws-c-common"))
658 "-DENABLE_NET_TESTS=OFF")))
8ea7b6f9
GH
659 (propagated-inputs
660 `(("aws-c-cal" ,aws-c-cal)
661 ("aws-c-common" ,aws-c-common)
662 ("s2n" ,s2n)))
663 (synopsis "Event driven framework for implementing application protocols")
664 (description "This library provides a C99 framework for constructing
665event-driven, asynchronous network application protocols.")
666 (home-page "https://github.com/awslabs/aws-c-io")
667 (license license:asl2.0)))
668
748e2ec0
GH
669(define-public aws-c-cal
670 (package
671 (name "aws-c-cal")
d061193e 672 (version "0.5.11")
748e2ec0
GH
673 (source (origin
674 (method git-fetch)
675 (uri (git-reference
676 (url (string-append "https://github.com/awslabs/" name))
677 (commit (string-append "v" version))))
678 (file-name (git-file-name name version))
679 (sha256
680 (base32
d061193e 681 "0rqqk4n56h8sf4q070rhgjwas04j8h0vq4wl1alq5l1rqq72qqdf"))
748e2ec0
GH
682 (patches (search-patches "aws-c-cal-cmake-prefix.patch"))))
683 (build-system cmake-build-system)
684 (arguments
685 '(#:configure-flags
686 '("-DBUILD_SHARED_LIBS=ON")))
687 (propagated-inputs
688 `(("aws-c-common" ,aws-c-common)))
689 (inputs
690 `(("openssl" ,openssl)
691 ("openssl:static" ,openssl "static")))
692 (synopsis "Amazon Web Services Crypto Abstraction Layer")
693 (description "This library provides a C99 wrapper for hash, HMAC, and ECC
694cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
695 (home-page "https://github.com/awslabs/aws-c-cal")
696 (license license:asl2.0)))
1be97fa9
DD
697
698(define-public pcl
699 (package
700 (name "pcl")
701 (version "1.12")
702 (source
703 (origin
704 (method url-fetch)
705 (uri (string-append
706 "http://www.xmailserver.org/pcl-" version ".tar.gz"))
707 (sha256
708 (base32
709 "06ly65rq4iyj2p4704i215c8y4rgspwl8sxfaifmf4ahfr30bcz7"))))
710 (build-system gnu-build-system)
711 (home-page "http://www.xmailserver.org/libpcl.html")
712 (synopsis "Portable Coroutine Library")
713 (description "The @acronym{PCL, Portable Coroutine Library} implements the
714low level functionality for coroutines.")
715 (license license:gpl2+)))
d9b8cfd6
GH
716
717(define-public aws-c-http
718 (package
719 (name "aws-c-http")
720 (version "0.6.4")
721 (source (origin
722 (method git-fetch)
723 (uri (git-reference
724 (url (string-append "https://github.com/awslabs/" name))
725 (commit (string-append "v" version))))
726 (file-name (git-file-name name version))
727 (sha256
728 (base32
729 "18xlgz68zizkcp784bs6hkyx0gvp0f1p076i46z653bcd3qa87b4"))
730 (patches
731 (search-patches
732 "aws-c-http-cmake-prefix.patch"
733 "aws-c-http-disable-networking-tests.patch"))))
734 (build-system cmake-build-system)
735 (arguments
736 '(#:configure-flags
737 '("-DBUILD_SHARED_LIBS=ON")))
738 (propagated-inputs
739 `(("aws-c-compression" ,aws-c-compression)
740 ("aws-c-io" ,aws-c-io)))
741 (synopsis "Amazon Web Services HTTP library")
742 (description
743 "This library provides a C99 implementation of the HTTP/1.1 and HTTP/2
744specifications.")
745 (home-page "https://github.com/awslabs/aws-c-http")
746 (license license:asl2.0)))
2069238c
GH
747
748(define-public aws-c-compression
749 (package
750 (name "aws-c-compression")
751 (version "0.2.13")
752 (source (origin
753 (method git-fetch)
754 (uri (git-reference
755 (url (string-append "https://github.com/awslabs/" name))
756 (commit (string-append "v" version))))
757 (file-name (git-file-name name version))
758 (sha256
759 (base32
760 "0zqfxi0fdgapfsfgvsindv63pq7vyl1s376qkpv4jgflyb1v6gp5"))
761 (patches (search-patches "aws-c-compression-cmake-prefix.patch"))))
762 (build-system cmake-build-system)
763 (arguments
764 '(#:configure-flags
765 '("-DBUILD_SHARED_LIBS=ON")))
766 (propagated-inputs
767 `(("aws-c-common" ,aws-c-common)))
768 (synopsis "Amazon Web Services compression library")
769 (description
770 "This library provides a C99 implementation of compression algorithms,
771currently limited to Huffman encoding and decoding.")
772 (home-page "https://github.com/awslabs/aws-c-compression")
773 (license license:asl2.0)))
1f1bb634
GH
774
775(define-public aws-c-auth
776 (package
777 (name "aws-c-auth")
778 (version "0.6.0")
779 (source (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url (string-append "https://github.com/awslabs/" name))
783 (commit (string-append "v" version))))
784 (file-name (git-file-name name version))
785 (sha256
786 (base32
787 "0yh9s6q3ahq39xgvihp2a5cn9h39qlq8wfjc32m0ayi9x739rbqg"))
788 (patches
789 (search-patches
790 "aws-c-auth-cmake-prefix.patch"
791 "aws-c-auth-disable-networking-tests.patch"))))
792 (build-system cmake-build-system)
793 (arguments
794 '(#:configure-flags
795 '("-DBUILD_SHARED_LIBS=ON")))
796 (propagated-inputs
797 `(("aws-c-cal" ,aws-c-cal)
798 ("aws-c-common" ,aws-c-common)
799 ("aws-c-http" ,aws-c-http)
800 ("aws-c-io" ,aws-c-io)))
801 (synopsis "Amazon Web Services client-side authentication library")
802 (description
803 "This library provides a C99 implementation for AWS client-side
804authentication.")
805 (home-page "https://github.com/awslabs/aws-c-auth")
806 (license license:asl2.0)))
b3c1c37d
GH
807
808(define-public aws-c-s3
809 (package
810 (name "aws-c-s3")
811 (version "0.1.19")
812 (source (origin
813 (method git-fetch)
814 (uri (git-reference
815 (url (string-append "https://github.com/awslabs/" name))
816 (commit (string-append "v" version))))
817 (file-name (git-file-name name version))
818 (sha256
819 (base32
820 "1vkjd8dh99d8qsl7irnbkcdf9vjmcznx0jz186la0472z4h48wjj"))
821 (patches
822 (search-patches
823 "aws-c-s3-cmake-prefix.patch"
824 "aws-c-s3-disable-networking-tests.patch"))))
825 (build-system cmake-build-system)
826 (arguments
827 '(#:configure-flags
828 '("-DBUILD_SHARED_LIBS=ON")))
829 (propagated-inputs
830 `(("aws-c-auth" ,aws-c-auth)
831 ("aws-c-http" ,aws-c-http)))
832 (synopsis "Amazon Web Services client library for Amazon S3")
833 (description
834 "This library provides a C99 client implementation of the Simple Storage
835Service (S3) protocol for object storage.")
836 (home-page "https://github.com/awslabs/aws-c-s3")
837 (license license:asl2.0)))
2a0fcc31
GH
838
839(define-public aws-c-mqtt
840 (package
841 (name "aws-c-mqtt")
1632cad6 842 (version "0.7.8")
2a0fcc31
GH
843 (source (origin
844 (method git-fetch)
845 (uri (git-reference
846 (url (string-append "https://github.com/awslabs/" name))
847 (commit (string-append "v" version))))
848 (file-name (git-file-name name version))
849 (sha256
850 (base32
1632cad6 851 "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c"))
2a0fcc31
GH
852 (patches (search-patches "aws-c-mqtt-cmake-prefix.patch"))))
853 (build-system cmake-build-system)
854 (arguments
855 '(#:configure-flags
856 '("-DBUILD_SHARED_LIBS=ON")))
857 (propagated-inputs
858 `(("aws-c-http" ,aws-c-http)
859 ("aws-c-io" ,aws-c-io)))
860 (synopsis "Amazon Web Services MQTT library")
861 (description
862 "This library provides a C99 implementation of the Message Queuing
863Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
864 (home-page "https://github.com/awslabs/aws-c-mqtt")
865 (license license:asl2.0)))