gnu: kdenlive: Add missing dependencies.
[jackhill/guix/guix.git] / gnu / packages / logging.scm
index d28094c..bac9e18 100644 (file)
@@ -1,6 +1,12 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; 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, 2019 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.
 ;;;
   #: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)
+  #:use-module (gnu packages ncurses)
   #: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
   (package
     (name "log4cpp")
-    (version "1.1.1")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/log4cpp/log4cpp-"
                                   "/log4cpp-" version ".tar.gz"))
               (sha256
                (base32
-                "1l5yz5rfzzv6g3ynrj14mxfsk08cp5h1ssr7d74hjs0accrg7arm"))))
+                "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,
@@ -53,35 +76,32 @@ staying as close to their API as is reasonable.")
 (define-public glog
   (package
     (name "glog")
-    (version "0.3.4")
+    (version "0.4.0")
     (home-page "https://github.com/google/glog")
     (source (origin
               (method git-fetch)
-              (uri (git-reference
-                    (url home-page)
-                    (commit (string-append "v" version))))
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
               (sha256
                (base32
-                "0ym5g15m7c8kjfr2c3zq6bz08ghin2d1r1nb6v2vnkfh1vn945x1"))
-              (file-name (string-append name "-" version "-checkout"))
-              (patches (search-patches "glog-gcc-5-demangling.patch"))))
+                "1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b"))
+              (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)))))
     (native-inputs
      `(("perl" ,perl)                             ;for tests
-       ("autoconf" ,(autoconf-wrapper))
+       ("autoconf" ,autoconf-wrapper)
        ("automake" ,automake)
        ("libtool" ,libtool)))
-    (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-before 'configure '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
-                      (zero? (system* "autoreconf" "-vfi")))))))
     (synopsis "C++ logging library")
     (description
      "Google glog is a library that implements application-level logging.
@@ -90,3 +110,109 @@ helper macros.  You can log a message by simply streaming things to log at a
 particular severity level.  It allows logging to be controlled from the
 command line.")
     (license license:bsd-3)))
+
+(define-public tailon
+  (package
+    (name "tailon")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri name version))
+       (sha256
+        (base32
+         "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)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-commands.py
+                     (lambda args
+                       (substitute* "tailon/commands.py"
+                         (("self\\.first_in_path\\('grep'\\)")
+                          (string-append"'" (which "grep") "'"))
+                         (("self\\.first_in_path\\('gawk', 'awk'\\)")
+                          (string-append"'" (which "gawk") "'"))
+                         (("self\\.first_in_path\\('gsed', 'sed'\\)")
+                          (string-append"'" (which "sed") "'"))
+                         (("self\\.first_in_path\\('gtail', 'tail'\\)")
+                          (string-append"'" (which "tail") "'")))
+                       #t)))))
+    (home-page "https://tailon.readthedocs.io/")
+    (synopsis
+     "Webapp for looking at and searching through log files")
+    (description
+     "Tailon provides a web interface around the tail, grep, awk and sed
+commands, displaying the results via a web interface.")
+    (license license:bsd-3)))
+
+(define-public multitail
+  (package
+    (name "multitail")
+    (version "6.5.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://vanheusden.com/multitail/multitail-"
+                          version ".tgz"))
+      (sha256
+       (base32 "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             "PREFIX="
+             (string-append "DESTDIR="
+                            (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-curses-lib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "mt.h"
+                 (("ncursesw\\/panel.h") "panel.h")
+                 (("ncursesw\\/ncurses.h") "ncurses.h")))
+             #t))
+         (delete 'configure))
+       #:tests? #f)) ; no test suite (make check just runs cppcheck)
+    (inputs `(("ncurses" ,ncurses)))
+    (home-page "https://vanheusden.com/multitail/")
+    (synopsis "Monitor multiple logfiles")
+    (description
+     "MultiTail allows you to monitor logfiles and command output in multiple
+windows in a terminal, colorize, filter and merge.")
+    (license license:gpl2+)))
+
+(define-public spdlog
+  (package
+    (name "spdlog")
+    (version "1.7.0")
+    (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
+         "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j"))))
+    (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))))