diff options
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r-- | gnu/packages/c.scm | 320 |
1 files changed, 251 insertions, 69 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 1b9003ce09..459d996fa2 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -1,10 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> @@ -30,6 +30,7 @@ (define-module (gnu packages c) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) @@ -55,6 +56,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) + #:use-module (gnu packages web) #:use-module (gnu packages xml)) (define-public tcc @@ -69,8 +71,7 @@ (base32 "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy")))) (build-system gnu-build-system) - (native-inputs `(("perl" ,perl) - ("texinfo" ,texinfo))) + (native-inputs (list perl texinfo)) (arguments `(#:configure-flags (list (string-append "--elfinterp=" (assoc-ref %build-inputs "libc") @@ -130,8 +131,7 @@ standard.") (replace 'check (lambda _ (invoke "make" "-C" "cc/cpp" "test") #t))))) (native-inputs - `(("bison" ,bison) - ("flex" ,flex))) + (list bison flex)) (synopsis "Portable C compiler") (description "PCC is a portable C compiler. The project goal is to write a C99 @@ -162,8 +162,7 @@ compiler while still keeping it small, simple, fast and understandable.") ("pkg-config" ,pkg-config) ("python" ,python))) (inputs - `(("mpfr" ,mpfr) - ("pcre2" ,pcre2))) + (list mpfr pcre2)) (home-page "https://github.com/storaged-project/libbytesize") (synopsis "Tiny C library for working with arbitrary big sizes in bytes") (description @@ -205,7 +204,7 @@ language with thin bindings for other languages.") `(#:configure-flags (list "--disable-static"))) (inputs - `(("expat" ,expat))) + (list expat)) (home-page "https://www.unidata.ucar.edu/software/udunits/") (synopsis "C library for units of physical quantities and value-conversion utils") (description @@ -238,11 +237,7 @@ Its three main components are: "1x4q6yspi5g2s98vq4qszw4z3zjgk9l5zs8471w4d4cs6l97w08j")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("check" ,check))) + (list autoconf automake libtool pkg-config check)) (synopsis "Thin wrapper over POSIX syscalls") (description "The purpose of libfixposix is to offer replacements for parts of POSIX @@ -252,16 +247,16 @@ whose behaviour is inconsistent across *NIX flavours.") (define-public libhx (package (name "libhx") - (version "3.25") + (version "4.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libhx/libHX/" + (uri (string-append "https://inai.de/files/libhx/" "libHX-" version ".tar.xz")) (sha256 - (base32 "12avn16f8aqb0cq6jplz0sv7rh6f07m85dwc8dasnnwsvijwbpbj")))) + (base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj")))) (build-system gnu-build-system) - (home-page "http://libhx.sourceforge.net") + (home-page "https://inai.de/projects/libhx/") (synopsis "C library with common data structures and functions") (description "This is a C library (with some C++ bindings available) that provides data @@ -317,7 +312,7 @@ checking casts and more.") headers) (install-file "libwuya.a" (string-append out "/lib")) #t)))))) - (inputs `(("lua" ,lua))) + (inputs (list lua)) (home-page "https://github.com/WuBingzheng/libwuya/") (synopsis "C library implementing various data structures") (description "The @code{libwuya} library implements data structures such @@ -368,7 +363,7 @@ as dictionaries, skip lists, and memory pools.") (string-append out "/share/doc/packcc")) #t)))))) (native-inputs - `(("bats" ,bats))) + (list bats)) (synopsis "Packrat parser generator for C") (description "PackCC is a packrat parser generator for the C programming language. @@ -388,7 +383,7 @@ any other grammar rules.") (define-public sparse (package (name "sparse") - (version "0.6.3") + (version "0.6.4") (source (origin (method url-fetch) (uri @@ -396,9 +391,9 @@ any other grammar rules.") "sparse-" version ".tar.xz")) (sha256 (base32 - "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl")))) + "0z1qds52144nvsdnl82r3zs3vax618v920jmffyyssmwj54qpcka")))) (build-system gnu-build-system) - (inputs `(("perl" ,perl))) + (inputs (list perl)) (arguments '(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases @@ -406,8 +401,7 @@ any other grammar rules.") (add-after 'unpack 'patch-cgcc (lambda _ (substitute* "cgcc" - (("'cc'") (string-append "'" (which "gcc") "'"))) - #t))))) + (("'cc'") (string-append "'" (which "gcc") "'")))))))) (synopsis "Semantic C parser for Linux development") (description "Sparse is a semantic parser for C and is required for Linux development. @@ -442,10 +436,7 @@ releases.") (replace 'bootstrap (lambda _ (invoke "autoreconf" "-vfi")))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("libtool" ,libtool))) + (list autoconf automake pkg-config libtool)) (home-page "https://github.com/rsyslog/libestr") (synopsis "Helper functions for handling strings") (description @@ -468,9 +459,7 @@ more, like escaping special characters.") (base32 "12rqcdqxazw8czzxbivdapdgj19pcswpw1jp2915sxbljis83g6q")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) + (list autoconf automake libtool)) (home-page "https://github.com/rsyslog/libfastjson") (synopsis "Fast JSON library for C") (description @@ -501,12 +490,12 @@ with essential JSON handling functions, sufficiently good JSON support (not (replace 'bootstrap (lambda _ (invoke "autoreconf" "-vfi")))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("libtool" ,libtool) - ;; For rst2man.py - ("python-docutils" ,python-docutils))) + (list autoconf + automake + pkg-config + libtool + ;; For rst2man.py + python-docutils)) (home-page "https://github.com/rsyslog/liblogging") (synopsis "Easy to use and lightweight signal-safe logging library") (description @@ -514,6 +503,46 @@ with essential JSON handling functions, sufficiently good JSON support (not replacement for the syslog() call, but retains its ease of use.") (license license:bsd-2))) +(define-public liblognorm + (package + (name "liblognorm") + (version "2.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rsyslog/liblognorm.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pyy1swvq6jj12aqma42jimv71z8m66zy6ydd5v19cp2azm4krml")))) + (build-system gnu-build-system) + (arguments + (list + #:parallel-tests? #false ;not supported + #:phases + '(modify-phases %standard-phases + ;; These tests fail because tmp.rulebase is never created. This + ;; looks rather harmless. + (add-after 'unpack 'delete-failing-tests + (lambda _ + (substitute* "tests/Makefile.am" + (("string_rb_simple.sh ") "") + (("string_rb_simple_2_lines.sh ") ""))))))) + (inputs + (list json-c libestr libfastjson)) + (native-inputs + (list autoconf automake libtool pkg-config)) + (home-page "https://www.liblognorm.com") + (synopsis "Fast samples-based log normalization library") + (description + "Liblognorm normalizes event data into well-defined name-value pairs and +a set of tags describing the message.") + ;; liblognorm is very slowly transitioning to ASL2.0 + ;; See https://github.com/rsyslog/liblognorm/issues/329 + (license license:lgpl2.1+))) + (define-public unifdef (package (name "unifdef") @@ -539,7 +568,7 @@ replacement for the syslog() call, but retains its ease of use.") (string-append "prefix=" %output)) #:tests? #f)) ;no test suite (native-inputs - `(("perl" ,perl))) + (list perl)) (home-page "https://dotat.at/prog/unifdef/") (synopsis "Utility to selectively processes conditional C preprocessor") (description "The @command{unifdef} utility selectively processes @@ -554,7 +583,8 @@ portability.") (define-public aws-c-common (package (name "aws-c-common") - (version "0.5.3") + ; Update only when updating aws-crt-cpp. + (version "0.6.11") (source (origin (method git-fetch) (uri (git-reference @@ -563,7 +593,7 @@ portability.") (file-name (git-file-name name version)) (sha256 (base32 - "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72")))) + "1v4dhygiynl75y3702lbp9j8kph88j4f2sq39s4lkhn6lmbz5f0f")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -578,7 +608,8 @@ portability.") (define-public aws-checksums (package (name "aws-checksums") - (version "0.1.11") + ; Update only when updating aws-crt-cpp. + (version "0.1.12") (source (origin (method git-fetch) (uri (git-reference @@ -587,14 +618,15 @@ portability.") (file-name (git-file-name name version)) (sha256 (base32 - "1pjs31x3cq9wyw511y00kksz660m8im9zxk30hid8iwlilcbnyvx")) - (patches (search-patches "aws-checksums-cmake-prefix.patch")))) + "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k")))) (build-system cmake-build-system) (arguments '(#:configure-flags - '("-DBUILD_SHARED_LIBS=ON"))) + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common"))))) (inputs - `(("aws-c-common" ,aws-c-common))) + (list aws-c-common)) (synopsis "Amazon Web Services checksum library") (description "This library provides cross-Platform hardware accelerated CRC32c and CRC32 @@ -605,6 +637,7 @@ with fallback to efficient C99 software implementations.") (define-public aws-c-event-stream (package (name "aws-c-event-stream") + ; Update only when updating aws-crt-cpp. (version "0.2.7") (source (origin (method git-fetch) @@ -614,19 +647,17 @@ with fallback to efficient C99 software implementations.") (file-name (git-file-name name version)) (sha256 (base32 - "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh")) - (patches (search-patches "aws-c-event-stream-cmake-prefix.patch")))) + "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh")))) (build-system cmake-build-system) (arguments '(#:configure-flags - '("-DBUILD_SHARED_LIBS=ON"))) + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common"))))) (propagated-inputs - `(("aws-c-common" ,aws-c-common) - ("aws-c-io" ,aws-c-io) - ("aws-checksums" ,aws-checksums))) + (list aws-c-common aws-c-io aws-checksums)) (inputs - `(("aws-c-cal" ,aws-c-cal) - ("s2n" ,s2n))) + (list aws-c-cal s2n)) (synopsis "Amazon Web Services client-server message format library") (description "This library is a C99 implementation for @acronym{AWS,Amazon Web Services} @@ -638,7 +669,8 @@ communication.") (define-public aws-c-io (package (name "aws-c-io") - (version "0.9.2") + ; Update only when updating aws-crt-cpp. + (version "0.10.9") (source (origin (method git-fetch) (uri (git-reference @@ -647,19 +679,16 @@ communication.") (file-name (git-file-name name version)) (sha256 (base32 - "1vwyf1pm0hhcypyjc9xh9x7y50ic79xlbck1yf9d9wz0bnh43p7v")) - (patches - (search-patches - "aws-c-io-cmake-prefix.patch" - "aws-c-io-disable-networking-tests.patch")))) + "14rxa3k842fgk43702nz7z9y3clfhvax8j0k93i0c5vg14wj38yp")))) (build-system cmake-build-system) (arguments '(#:configure-flags - '("-DBUILD_SHARED_LIBS=ON"))) + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common")) + "-DENABLE_NET_TESTS=OFF"))) (propagated-inputs - `(("aws-c-cal" ,aws-c-cal) - ("aws-c-common" ,aws-c-common) - ("s2n" ,s2n))) + (list aws-c-cal aws-c-common s2n)) (synopsis "Event driven framework for implementing application protocols") (description "This library provides a C99 framework for constructing event-driven, asynchronous network application protocols.") @@ -669,7 +698,8 @@ event-driven, asynchronous network application protocols.") (define-public aws-c-cal (package (name "aws-c-cal") - (version "0.4.5") + ; Update only when updating aws-crt-cpp. + (version "0.5.12") (source (origin (method git-fetch) (uri (git-reference @@ -678,14 +708,15 @@ event-driven, asynchronous network application protocols.") (file-name (git-file-name name version)) (sha256 (base32 - "04acra1mnzw9q7jycs5966akfbgnx96hkrq90nq0dhw8pvarlyv6")) - (patches (search-patches "aws-c-cal-cmake-prefix.patch")))) + "09zqf610x4g2mcjcaf9nh88k6dkw14pi721yr8hxb5rmsx7rlfrb")))) (build-system cmake-build-system) (arguments '(#:configure-flags - '("-DBUILD_SHARED_LIBS=ON"))) + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common"))))) (propagated-inputs - `(("aws-c-common" ,aws-c-common))) + (list aws-c-common)) (inputs `(("openssl" ,openssl) ("openssl:static" ,openssl "static"))) @@ -713,3 +744,154 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.") (description "The @acronym{PCL, Portable Coroutine Library} implements the low level functionality for coroutines.") (license license:gpl2+))) + +(define-public aws-c-http + (package + (name "aws-c-http") + ; Update only when updating aws-crt-cpp. + (version "0.6.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/awslabs/" name)) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1s06bz6w7355ldyhwjidcpbff7591ch4lwwjcj47a6k2kczdmiz4")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common")) + "-DENABLE_NET_TESTS=OFF"))) + (propagated-inputs + (list aws-c-compression aws-c-io)) + (synopsis "Amazon Web Services HTTP library") + (description + "This library provides a C99 implementation of the HTTP/1.1 and HTTP/2 +specifications.") + (home-page "https://github.com/awslabs/aws-c-http") + (license license:asl2.0))) + +(define-public aws-c-compression + (package + (name "aws-c-compression") + ; Update only when updating aws-crt-cpp. + (version "0.2.14") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/awslabs/" name)) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fs3zhhzxsb9nfcjpvfbcq79hal7si2ia1c09scab9a8m264f4vd")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common"))))) + (propagated-inputs + (list aws-c-common)) + (synopsis "Amazon Web Services compression library") + (description + "This library provides a C99 implementation of compression algorithms, +currently limited to Huffman encoding and decoding.") + (home-page "https://github.com/awslabs/aws-c-compression") + (license license:asl2.0))) + +(define-public aws-c-auth + (package + (name "aws-c-auth") + ; Update only when updating aws-crt-cpp. + (version "0.6.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/awslabs/" name)) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "120p69lj279yq3d2b81f45kgfrvf32j6m7s03m8hh27w8yd4vbfp")) + (patches + (search-patches + "aws-c-auth-install-private-headers.patch")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common")) + "-DENABLE_NET_TESTS=OFF"))) + (propagated-inputs + (list aws-c-cal aws-c-common aws-c-http aws-c-io)) + (synopsis "Amazon Web Services client-side authentication library") + (description + "This library provides a C99 implementation for AWS client-side +authentication.") + (home-page "https://github.com/awslabs/aws-c-auth") + (license license:asl2.0))) + +(define-public aws-c-s3 + (package + (name "aws-c-s3") + ; Update only when updating aws-crt-cpp. + (version "0.1.26") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/awslabs/" name)) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gaxnwwk0jbvkgjnxcgchq13xmn7jk5vjvjsps6b0vaz6bf12wv8")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common")) + "-DENABLE_NET_TESTS=OFF"))) + (propagated-inputs + (list aws-c-auth aws-c-http)) + (synopsis "Amazon Web Services client library for Amazon S3") + (description + "This library provides a C99 client implementation of the Simple Storage +Service (S3) protocol for object storage.") + (home-page "https://github.com/awslabs/aws-c-s3") + (license license:asl2.0))) + +(define-public aws-c-mqtt + (package + (name "aws-c-mqtt") + ; Update only when updating aws-crt-cpp. + (version "0.7.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/awslabs/" name)) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DBUILD_SHARED_LIBS=ON" + (string-append "-DCMAKE_PREFIX_PATH=" + (assoc-ref %build-inputs "aws-c-common"))))) + (propagated-inputs + (list aws-c-http aws-c-io)) + (synopsis "Amazon Web Services MQTT library") + (description + "This library provides a C99 implementation of the Message Queuing +Telemetry Transport (MQTT) publish-subscribe messaging protocol.") + (home-page "https://github.com/awslabs/aws-c-mqtt") + (license license:asl2.0))) |