gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / logging.scm
index 665b384..6a4975e 100644 (file)
@@ -3,7 +3,10 @@
 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +29,7 @@
   #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
@@ -33,6 +37,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages autotools))
 
 (define-public log4cpp
                (base32
                 "07gmr3jyaf2239n9sp6h7hwdz1pv7b7aka8n06gmr2fnlmaymfrc"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'do-not-call-stime
+           (lambda _
+             ;; Patch out use of 'stime' which was removed from glibc 2.31.
+             ;; The test would not work in the build container anyway.
+             (substitute* "tests/testDailyRollingFileAppender.cpp"
+               (("if \\(stime\\(&now\\) == -1\\)")
+                "if (1)"))
+             #t)))))
     (synopsis "Log library for C++")
     (description
      "Log4cpp is library of C++ classes for flexible logging to files, syslog,
@@ -60,40 +76,32 @@ staying as close to their API as is reasonable.")
 (define-public glog
   (package
     (name "glog")
-    (version "0.3.5")
+    (version "0.4.0")
     (home-page "https://github.com/google/glog")
     (source (origin
-              (method url-fetch)
-              (uri (string-append home-page "/archive/v" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
               (sha256
                (base32
-                "1q6ihk2asbx95a56kmyqwysq1x3grrw9jwqllafaidf0l84f903m"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (patches (search-patches "glog-gcc-5-demangling.patch"))))
+                "1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b"))
+              (file-name (git-file-name name version))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("perl" ,perl)                             ;for tests
-       ("autoconf" ,autoconf-wrapper)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'add-automake-files
-                    (lambda _
-                      ;; The 'test-driver' file is a dangling symlink to
-                      ;; /usr/share/automake; replace it.  We can't just run
-                      ;; 'automake -ac' because it complains about version
-                      ;; mismatch, so run the whole thing.
-                      (delete-file "test-driver")
-                      (delete-file "configure")   ;it's read-only
-                      (invoke "autoreconf" "-vfi")))
+     `(#:phases (modify-phases %standard-phases
                   (add-before 'check 'disable-signal-tests
                     (lambda _
-                      ;; See e.g. https://github.com/google/glog/issues/219
-                      ;; and https://github.com/google/glog/issues/256
+                      ;; 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)))))
+    (native-inputs
+     `(("perl" ,perl)                             ;for tests
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (synopsis "C++ logging library")
     (description
      "Google glog is a library that implements application-level logging.
@@ -146,21 +154,19 @@ commands, displaying the results via a web interface.")
 (define-public multitail
   (package
     (name "multitail")
-    (version "6.4.2")
+    (version "6.5.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://vanheusden.com/multitail/multitail-"
                           version ".tgz"))
       (sha256
-       (base32
-        "1zd1r89xkxngl1pdrvsc877838nwkfqkbcgfqm3vglwalxc587dg"))))
+       (base32 "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
-             "PREFIX="
-             (string-append "DESTDIR="
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX="
                             (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
@@ -171,12 +177,40 @@ commands, displaying the results via a web interface.")
                  (("ncursesw\\/panel.h") "panel.h")
                  (("ncursesw\\/ncurses.h") "ncurses.h")))
              #t))
-         (delete 'configure))
+         (delete 'configure))           ; no configure script
        #:tests? #f)) ; no test suite (make check just runs cppcheck)
     (inputs `(("ncurses" ,ncurses)))
     (home-page "https://vanheusden.com/multitail/")
-    (synopsis "Monitor multiple logfiles")
+    (synopsis "Monitor multiple log files")
     (description
-     "MultiTail allows you to monitor logfiles and command output in multiple
-windows in a terminal, colorize, filter and merge.")
+     "MultiTail can monitor, color, filter, and merge log files and command
+output in multiple windows in a terminal.")
     (license license:gpl2+)))
+
+(define-public spdlog
+  (package
+    (name "spdlog")
+    (version "1.8.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gabime/spdlog")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "179krvg5sad6dviqpcjwg6czzknnilqszrg1d0fgp12h6sy66vqg"))))
+    (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_TESTS=ON")))
+    (home-page "https://github.com/gabime/spdlog")
+    (synopsis "Fast C++ logging library")
+    (description "Spdlog is a very fast header-only/compiled C++ logging
+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))))