;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Stefan Reichör ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2019 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages logging) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #: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.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/log4cpp/log4cpp-" (version-major+minor version) ".x%20%28new%29" "/log4cpp-" (version-major+minor version) "/log4cpp-" version ".tar.gz")) (sha256 (base32 "07gmr3jyaf2239n9sp6h7hwdz1pv7b7aka8n06gmr2fnlmaymfrc")))) (build-system gnu-build-system) (synopsis "Log library for C++") (description "Log4cpp is library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. It is modeled after the Log4j Java library, staying as close to their API as is reasonable.") (home-page "http://log4cpp.sourceforge.net/") (license license:lgpl2.1+))) (define-public glog (package (name "glog") (version "0.3.5") (home-page "https://github.com/google/glog") (source (origin (method url-fetch) (uri (string-append home-page "/archive/v" version ".tar.gz")) (sha256 (base32 "1q6ihk2asbx95a56kmyqwysq1x3grrw9jwqllafaidf0l84f903m")) (file-name (string-append name "-" version ".tar.gz")) (patches (search-patches "glog-gcc-5-demangling.patch")))) (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"))) (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 (substitute* "Makefile" (("\tsignalhandler_unittest_sh") "\t$(EMPTY)")) #t))))) (synopsis "C++ logging library") (description "Google glog is a library that implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros. You can log a message by simply streaming things to log at a part2019-12-01system: vm: Support cross-compilation....* gnu/system.scm (system-linux-image-file-name): Add support for cross-built systems. Remove system argument that was ignored, (operating-system-kernel-file): adapt by removing ignored os argument. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add target argument and turn inputs into native-inputs. Pass target to qemu-command and gexp->derivation calls. (iso9660-image): Add target argument and pass it to expression->derivation-in-linux-vm. Remove qemu from inputs as it is not necessary. (qemu-image): Add target argument, also remove qemu from inputs. Pass target argument to expression->derivation-in-linux-vm call. Mathieu Othacehe 2019-11-22system: vm: Add arm64 support....* gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it to pass correct arguments to qemu. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new target-arm64? argument added above. Do not add ESP partition on all ARM targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets. Mathieu Othacehe e 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.4.2") (source (origin (method url-fetch) (uri (string-append "https://vanheusden.com/multitail/multitail-" version ".tgz")) (sha256 (base32 "1zd1r89xkxngl1pdrvsc877838nwkfqkbcgfqm3vglwalxc587dg")))) (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.3.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gabime/spdlog.git") (commit (string-append "v" version)))) (sha256 (base32 "1rd4zmrlkcdjx0m0wpmjm1g9srj7jak6ai08qkhbn2lsn0niifzd")))) (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"))) (home-page "https://github.com/gabime/spdlog") (synopsis "Fast C++ logging library") (description "Spdlog is a very fast header-only/compiled C++ logging library.") (license license:expat))) ; MIT license