summary refs log tree commit diff
path: root/gnu/packages/c.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r--gnu/packages/c.scm320
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)))