gnu: Add aws-c-auth.
[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")
2f0986b0 255 (version "4.1")
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
2f0986b0 262 (base32 "1mifpzxr5kma7gawhv1vbga8j5qi8jgka0axr48v08bdpb83pya2"))))
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")
14a282aa 556 (version "0.6.2")
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
14a282aa 565 "17iknzqs6dl0ixajplc47ylkyynwpi3x2dxh56wa8ylhgy53d09x"))))
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")
1ea17412 580 (version "0.1.12")
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
1ea17412 589 "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k"))
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")
64aaf617 640 (version "0.10.5")
8ea7b6f9
GH
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
64aaf617 649 "1jrnzs803jqprnvbw6rqr834qld5sd7flaqzgssp3099m189szpq"))
8ea7b6f9
GH
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")
d061193e 671 (version "0.5.11")
748e2ec0
GH
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
d061193e 680 "0rqqk4n56h8sf4q070rhgjwas04j8h0vq4wl1alq5l1rqq72qqdf"))
748e2ec0
GH
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)))
1be97fa9
DD
696
697(define-public pcl
698 (package
699 (name "pcl")
700 (version "1.12")
701 (source
702 (origin
703 (method url-fetch)
704 (uri (string-append
705 "http://www.xmailserver.org/pcl-" version ".tar.gz"))
706 (sha256
707 (base32
708 "06ly65rq4iyj2p4704i215c8y4rgspwl8sxfaifmf4ahfr30bcz7"))))
709 (build-system gnu-build-system)
710 (home-page "http://www.xmailserver.org/libpcl.html")
711 (synopsis "Portable Coroutine Library")
712 (description "The @acronym{PCL, Portable Coroutine Library} implements the
713low level functionality for coroutines.")
714 (license license:gpl2+)))
d9b8cfd6
GH
715
716(define-public aws-c-http
717 (package
718 (name "aws-c-http")
719 (version "0.6.4")
720 (source (origin
721 (method git-fetch)
722 (uri (git-reference
723 (url (string-append "https://github.com/awslabs/" name))
724 (commit (string-append "v" version))))
725 (file-name (git-file-name name version))
726 (sha256
727 (base32
728 "18xlgz68zizkcp784bs6hkyx0gvp0f1p076i46z653bcd3qa87b4"))
729 (patches
730 (search-patches
731 "aws-c-http-cmake-prefix.patch"
732 "aws-c-http-disable-networking-tests.patch"))))
733 (build-system cmake-build-system)
734 (arguments
735 '(#:configure-flags
736 '("-DBUILD_SHARED_LIBS=ON")))
737 (propagated-inputs
738 `(("aws-c-compression" ,aws-c-compression)
739 ("aws-c-io" ,aws-c-io)))
740 (synopsis "Amazon Web Services HTTP library")
741 (description
742 "This library provides a C99 implementation of the HTTP/1.1 and HTTP/2
743specifications.")
744 (home-page "https://github.com/awslabs/aws-c-http")
745 (license license:asl2.0)))
2069238c
GH
746
747(define-public aws-c-compression
748 (package
749 (name "aws-c-compression")
750 (version "0.2.13")
751 (source (origin
752 (method git-fetch)
753 (uri (git-reference
754 (url (string-append "https://github.com/awslabs/" name))
755 (commit (string-append "v" version))))
756 (file-name (git-file-name name version))
757 (sha256
758 (base32
759 "0zqfxi0fdgapfsfgvsindv63pq7vyl1s376qkpv4jgflyb1v6gp5"))
760 (patches (search-patches "aws-c-compression-cmake-prefix.patch"))))
761 (build-system cmake-build-system)
762 (arguments
763 '(#:configure-flags
764 '("-DBUILD_SHARED_LIBS=ON")))
765 (propagated-inputs
766 `(("aws-c-common" ,aws-c-common)))
767 (synopsis "Amazon Web Services compression library")
768 (description
769 "This library provides a C99 implementation of compression algorithms,
770currently limited to Huffman encoding and decoding.")
771 (home-page "https://github.com/awslabs/aws-c-compression")
772 (license license:asl2.0)))
1f1bb634
GH
773
774(define-public aws-c-auth
775 (package
776 (name "aws-c-auth")
777 (version "0.6.0")
778 (source (origin
779 (method git-fetch)
780 (uri (git-reference
781 (url (string-append "https://github.com/awslabs/" name))
782 (commit (string-append "v" version))))
783 (file-name (git-file-name name version))
784 (sha256
785 (base32
786 "0yh9s6q3ahq39xgvihp2a5cn9h39qlq8wfjc32m0ayi9x739rbqg"))
787 (patches
788 (search-patches
789 "aws-c-auth-cmake-prefix.patch"
790 "aws-c-auth-disable-networking-tests.patch"))))
791 (build-system cmake-build-system)
792 (arguments
793 '(#:configure-flags
794 '("-DBUILD_SHARED_LIBS=ON")))
795 (propagated-inputs
796 `(("aws-c-cal" ,aws-c-cal)
797 ("aws-c-common" ,aws-c-common)
798 ("aws-c-http" ,aws-c-http)
799 ("aws-c-io" ,aws-c-io)))
800 (synopsis "Amazon Web Services client-side authentication library")
801 (description
802 "This library provides a C99 implementation for AWS client-side
803authentication.")
804 (home-page "https://github.com/awslabs/aws-c-auth")
805 (license license:asl2.0)))