gnu: sbcl-cl-cffi-gtk: Update to 20200417.
[jackhill/guix/guix.git] / gnu / packages / logging.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
3 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
5 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
7 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
8 ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
9 ;;;
10 ;;; This file is part of GNU Guix.
11 ;;;
12 ;;; GNU Guix is free software; you can redistribute it and/or modify it
13 ;;; under the terms of the GNU General Public License as published by
14 ;;; the Free Software Foundation; either version 3 of the License, or (at
15 ;;; your option) any later version.
16 ;;;
17 ;;; GNU Guix is distributed in the hope that it will be useful, but
18 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;;; GNU General Public License for more details.
21 ;;;
22 ;;; You should have received a copy of the GNU General Public License
23 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25 (define-module (gnu packages logging)
26 #:use-module ((guix licenses) #:prefix license:)
27 #:use-module (guix packages)
28 #:use-module (guix utils)
29 #:use-module (guix download)
30 #:use-module (guix git-download)
31 #:use-module (guix build-system cmake)
32 #:use-module (guix build-system gnu)
33 #:use-module (guix build-system python)
34 #:use-module (gnu packages)
35 #:use-module (gnu packages ncurses)
36 #:use-module (gnu packages perl)
37 #:use-module (gnu packages python)
38 #:use-module (gnu packages python-web)
39 #:use-module (gnu packages python-xyz)
40 #:use-module (gnu packages autotools))
41
42 (define-public log4cpp
43 (package
44 (name "log4cpp")
45 (version "1.1.3")
46 (source (origin
47 (method url-fetch)
48 (uri (string-append "mirror://sourceforge/log4cpp/log4cpp-"
49 (version-major+minor version) ".x%20%28new%29"
50 "/log4cpp-" (version-major+minor version)
51 "/log4cpp-" version ".tar.gz"))
52 (sha256
53 (base32
54 "07gmr3jyaf2239n9sp6h7hwdz1pv7b7aka8n06gmr2fnlmaymfrc"))))
55 (build-system gnu-build-system)
56 (synopsis "Log library for C++")
57 (description
58 "Log4cpp is library of C++ classes for flexible logging to files, syslog,
59 IDSA and other destinations. It is modeled after the Log4j Java library,
60 staying as close to their API as is reasonable.")
61 (home-page "http://log4cpp.sourceforge.net/")
62 (license license:lgpl2.1+)))
63
64 (define-public glog
65 (package
66 (name "glog")
67 (version "0.4.0")
68 (home-page "https://github.com/google/glog")
69 (source (origin
70 (method git-fetch)
71 (uri (git-reference (url home-page)
72 (commit (string-append "v" version))))
73 (sha256
74 (base32
75 "1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b"))
76 (file-name (git-file-name name version))))
77 (build-system gnu-build-system)
78 (arguments
79 `(#:phases (modify-phases %standard-phases
80 (add-before 'check 'disable-signal-tests
81 (lambda _
82 ;; XXX: This test fails on non x86_64. See e.g.
83 ;; https://github.com/google/glog/issues/219 and
84 ;; https://github.com/google/glog/issues/256.
85 (substitute* "Makefile"
86 (("\tsignalhandler_unittest_sh") "\t$(EMPTY)"))
87 #t)))))
88 (native-inputs
89 `(("perl" ,perl) ;for tests
90 ("autoconf" ,autoconf-wrapper)
91 ("automake" ,automake)
92 ("libtool" ,libtool)))
93 (synopsis "C++ logging library")
94 (description
95 "Google glog is a library that implements application-level logging.
96 This library provides logging APIs based on C++-style streams and various
97 helper macros. You can log a message by simply streaming things to log at a
98 particular severity level. It allows logging to be controlled from the
99 command line.")
100 (license license:bsd-3)))
101
102 (define-public tailon
103 (package
104 (name "tailon")
105 (version "1.3.0")
106 (source
107 (origin
108 (method url-fetch)
109 (uri (pypi-uri name version))
110 (sha256
111 (base32
112 "0wl2wm6p3pc0vkk33s7rzgcfvs9cwxfmlz997pdfhlw72r00l7s5"))))
113 (build-system python-build-system)
114 (inputs
115 `(("python-pyyaml" ,python-pyyaml)
116 ("python-sockjs-tornado" ,python-sockjs-tornado)
117 ("python-tornado-http-auth" ,python-tornado-http-auth)
118 ("python-tornado" ,python-tornado)))
119 (arguments
120 `(#:phases
121 (modify-phases %standard-phases
122 (add-after 'unpack 'patch-commands.py
123 (lambda args
124 (substitute* "tailon/commands.py"
125 (("self\\.first_in_path\\('grep'\\)")
126 (string-append"'" (which "grep") "'"))
127 (("self\\.first_in_path\\('gawk', 'awk'\\)")
128 (string-append"'" (which "gawk") "'"))
129 (("self\\.first_in_path\\('gsed', 'sed'\\)")
130 (string-append"'" (which "sed") "'"))
131 (("self\\.first_in_path\\('gtail', 'tail'\\)")
132 (string-append"'" (which "tail") "'")))
133 #t)))))
134 (home-page "https://tailon.readthedocs.io/")
135 (synopsis
136 "Webapp for looking at and searching through log files")
137 (description
138 "Tailon provides a web interface around the tail, grep, awk and sed
139 commands, displaying the results via a web interface.")
140 (license license:bsd-3)))
141
142 (define-public multitail
143 (package
144 (name "multitail")
145 (version "6.5.0")
146 (source
147 (origin
148 (method url-fetch)
149 (uri (string-append "https://vanheusden.com/multitail/multitail-"
150 version ".tgz"))
151 (sha256
152 (base32 "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj"))))
153 (build-system gnu-build-system)
154 (arguments
155 `(#:make-flags
156 (list "CC=gcc"
157 "PREFIX="
158 (string-append "DESTDIR="
159 (assoc-ref %outputs "out")))
160 #:phases
161 (modify-phases %standard-phases
162 (add-after 'unpack 'patch-curses-lib
163 (lambda* (#:key outputs #:allow-other-keys)
164 (let ((out (assoc-ref outputs "out")))
165 (substitute* "mt.h"
166 (("ncursesw\\/panel.h") "panel.h")
167 (("ncursesw\\/ncurses.h") "ncurses.h")))
168 #t))
169 (delete 'configure))
170 #:tests? #f)) ; no test suite (make check just runs cppcheck)
171 (inputs `(("ncurses" ,ncurses)))
172 (home-page "https://vanheusden.com/multitail/")
173 (synopsis "Monitor multiple logfiles")
174 (description
175 "MultiTail allows you to monitor logfiles and command output in multiple
176 windows in a terminal, colorize, filter and merge.")
177 (license license:gpl2+)))
178
179 (define-public spdlog
180 (package
181 (name "spdlog")
182 (version "1.5.0")
183 (source
184 (origin
185 (method git-fetch)
186 (uri (git-reference
187 (url "https://github.com/gabime/spdlog.git")
188 (commit (string-append "v" version))))
189 (file-name (git-file-name name version))
190 (sha256
191 (base32
192 "0dn44r3xbw1w0bk9yflnxkh3rzdq2bpxkks44skfmqig0rsj1f1x"))))
193 (build-system cmake-build-system)
194 ;; TODO run benchmark. Currently not possible, as adding
195 ;; (gnu packages benchmark) forms a dependency cycle
196 (arguments
197 '(#:configure-flags
198 (list "-DSPDLOG_BUILD_BENCH=OFF")))
199 (home-page "https://github.com/gabime/spdlog")
200 (synopsis "Fast C++ logging library")
201 (description "Spdlog is a very fast header-only/compiled C++ logging
202 library.")
203 ;; spdlog is under Expat license, but the bundled fmt library in
204 ;; "include/spdlog/fmt/bundled" is under BSD 2 clause license.
205 (license (list license:expat license:bsd-2))))