summary refs log tree commit diff
path: root/gnu/packages/logging.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/logging.scm')
-rw-r--r--gnu/packages/logging.scm194
1 files changed, 169 insertions, 25 deletions
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 6a4975e435..8c518de07d 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,12 +34,27 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages c)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages geo)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages autotools))
+  #:use-module (gnu packages tcl)
+  #:use-module (gnu packages tls))
 
 (define-public log4cpp
   (package
@@ -76,7 +92,7 @@ staying as close to their API as is reasonable.")
 (define-public glog
   (package
     (name "glog")
-    (version "0.4.0")
+    (version "0.5.0")
     (home-page "https://github.com/google/glog")
     (source (origin
               (method git-fetch)
@@ -84,24 +100,12 @@ staying as close to their API as is reasonable.")
                                   (commit (string-append "v" version))))
               (sha256
                (base32
-                "1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b"))
+                "17014q25c99qyis6l3fwxidw6222bb269fdlr74gn7pzmzg4lvg3"))
               (file-name (git-file-name name version))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-before 'check 'disable-signal-tests
-                    (lambda _
-                      ;; XXX: This test fails on non x86_64.  See e.g.
-                      ;; https://github.com/google/glog/issues/219 and
-                      ;; https://github.com/google/glog/issues/256.
-                      (substitute* "Makefile"
-                        (("\tsignalhandler_unittest_sh") "\t$(EMPTY)"))
-                      #t)))))
+    (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)                             ;for tests
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list perl ;for tests
+           autoconf automake libtool))
     (synopsis "C++ logging library")
     (description
      "Google glog is a library that implements application-level logging.
@@ -124,10 +128,8 @@ command line.")
          "0wl2wm6p3pc0vkk33s7rzgcfvs9cwxfmlz997pdfhlw72r00l7s5"))))
     (build-system python-build-system)
     (inputs
-     `(("python-pyyaml" ,python-pyyaml)
-       ("python-sockjs-tornado" ,python-sockjs-tornado)
-       ("python-tornado-http-auth" ,python-tornado-http-auth)
-       ("python-tornado" ,python-tornado)))
+     (list python-pyyaml python-sockjs-tornado python-tornado-http-auth
+           python-tornado))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -179,7 +181,7 @@ commands, displaying the results via a web interface.")
              #t))
          (delete 'configure))           ; no configure script
        #:tests? #f)) ; no test suite (make check just runs cppcheck)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://vanheusden.com/multitail/")
     (synopsis "Monitor multiple log files")
     (description
@@ -190,7 +192,7 @@ output in multiple windows in a terminal.")
 (define-public spdlog
   (package
     (name "spdlog")
-    (version "1.8.5")
+    (version "1.9.2")
     (source
      (origin
        (method git-fetch)
@@ -199,13 +201,14 @@ output in multiple windows in a terminal.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "179krvg5sad6dviqpcjwg6czzknnilqszrg1d0fgp12h6sy66vqg"))))
+        (base32 "1img03ka63hf3sb62v5f02ax5jc9mlpz5cijr38xxzymvcg1s98r"))))
     (build-system cmake-build-system)
     ;; TODO run benchmark. Currently not possible, as adding
     ;; (gnu packages benchmark) forms a dependency cycle
     (arguments
      '(#:configure-flags
        (list "-DSPDLOG_BUILD_BENCH=OFF"
+             "-DSPDLOG_BUILD_SHARED=ON"
              "-DSPDLOG_BUILD_TESTS=ON")))
     (home-page "https://github.com/gabime/spdlog")
     (synopsis "Fast C++ logging library")
@@ -214,3 +217,144 @@ library.")
     ;; spdlog is under Expat license, but the bundled fmt library in
     ;; "include/spdlog/fmt/bundled" is under BSD 2 clause license.
     (license (list license:expat license:bsd-2))))
+
+(define-public rsyslog
+  (package
+    (name "rsyslog")
+    (version "8.2112.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rsyslog/rsyslog.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0bp124w2qv8hix5i0p04d8yvsipy18dhqm7zw8i6cwdgnhdadq96"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:phases
+      '(modify-phases %standard-phases
+         ;; autogen.sh calls configure at the end of the script.
+         (replace 'bootstrap
+           (lambda _ (invoke "autoreconf" "-vfi"))))
+      #:configure-flags
+      ;; Rsyslog comes with a plethora of optional modules.  We enable most of
+      ;; them for a full-featured build.
+      '(list "--enable-kmsg"
+             "--enable-liblogging_stdlog"
+             "--enable-mmanon"
+             "--enable-mmcount"
+             "--enable-unlimited_select"
+         
+             ;; Input plugins
+             "--enable-imbatchreport"
+             "--enable-imczmq"
+             "--enable-imdiag"          ;for full tests
+             "--enable-imdocker"
+             "--enable-imfile"
+             "--enable-imkafka"
+             "--enable-improg"
+             "--enable-impstats"
+             "--enable-imptcp"
+             "--enable-imtuxedoulog"
+       
+             ;; Output plugins
+             "--enable-clickhouse"
+             "--enable-elasticsearch"
+             "--enable-mail"
+             "--enable-omczmq"
+             "--enable-omfile_hardened"
+             "--enable-omhttp"
+             "--enable-omhttpfs"
+             "--enable-omkafka"
+             "--enable-omprog"
+             "--enable-omruleset"
+             "--enable-omstdout"
+             "--enable-omtcl"
+             "--enable-omudpspoof"
+             "--enable-omuxsock"
+
+             ;; Parser Modules
+             "--enable-pmaixforwardedfrom"
+             "--enable-pmciscoios"
+             "--enable-pmcisconames"
+             "--enable-pmdb2diag"
+             "--enable-pmlastmsg"
+             "--enable-pmnormalize"
+             "--enable-pmnull"
+             "--enable-pmpanngfw"
+             "--enable-pmsnare"
+
+             ;; Message Modification Modules
+             "--enable-mmaudit"
+             "--enable-mmdarwin"
+             "--enable-mmdblookup"
+             "--enable-mmfields"
+             "--enable-mmjsonparse"
+             "--enable-mmkubernetes"
+             "--enable-mmnormalize"
+             "--enable-mmpstrucdata"
+             "--enable-mmrfc5424addhmac"
+             "--enable-mmrm1stspace"
+             "--enable-mmsequence"
+             "--enable-mmsnmptrapd"
+             "--enable-mmtaghostname"
+             "--enable-mmutf8fix"
+
+             ;; Database Support
+             "--enable-libdbi"
+             "--enable-mysql"
+             "--enable-pgsql"
+
+             ;; Protocol Support
+             "--enable-openssl"
+             "--enable-gnutls"
+             "--enable-gssapi-krb5"
+             "--enable-snmp"
+
+             ;; Function modules
+             "--enable-fmhash_xxhash")))
+    (native-inputs
+     (list autoconf automake bison flex libtool pkg-config))
+    (inputs
+     (list curl
+           cyrus-sasl
+           czmq
+           gnutls
+           libdbi
+           libestr
+           libfastjson
+           libgcrypt
+           liblogging
+           liblognorm
+           libmaxminddb
+           libnet
+           librdkafka
+           lz4
+           (list mariadb "dev")
+           (list mariadb "lib")
+           mit-krb5
+           net-snmp
+           openssl
+           postgresql
+           tcl
+           (list util-linux "lib")
+           zeromq
+           zlib))
+    (home-page "https://www.rsyslog.com/")
+    (synopsis "RSYSLOG is a flexible and fast system for log processing")
+    (description
+     "Rsyslog offers high-performance, great security features and a modular
+design.  While it started as a regular syslogd, rsyslog has evolved into a
+kind of swiss army knife of logging, being able to accept inputs from a wide
+variety of sources, transform them, and output the results to diverse
+destinations.")
+    ;; Most of the source code is licensed under the LGPL3+ with many source
+    ;; files licensed under the terms of the ASL2.0.  Some modules are
+    ;; licensed under GPL3+.
+    (license (list license:lgpl3+
+                   license:gpl3+
+                   license:asl2.0))))