diff options
Diffstat (limited to 'gnu/packages/logging.scm')
-rw-r--r-- | gnu/packages/logging.scm | 194 |
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)))) |