diff --git a/gnu/local.mk b/gnu/local.mk index 827e186501..daacb1992a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -819,6 +819,7 @@ dist_patch_DATA = \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/cmake-curl-certificates.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ %D%/packages/patches/containerd-test-with-go1.13.patch \ diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 8da31d6a84..d88bbc3aa3 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Gábor Boskovits ;;; Copyright © 2018, 2019 Oleg Pykhalov ;;; Copyright © 2020 Alex ter Weele +;;; Copyright © 2020 Lars-Dominik Braun ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ (define-module (gnu packages monitoring) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -48,11 +50,14 @@ (define-module (gnu packages monitoring) #:use-module (gnu packages libevent) #:use-module (gnu packages pcre) #: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 rrdtool) #:use-module (gnu packages time) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages web)) (define-public nagios (package @@ -445,3 +450,47 @@ (define-public fswatch (description "This package provides a file system monitor.") (home-page "https://github.com/emcrisostomo/fswatch") (license license:gpl3+))) + +(define-public collectd + (package + (name "collectd") + (version "5.11.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://storage.googleapis.com/collectd-tarballs/collectd-" + version + ".tar.bz2")) + (sha256 + (base32 + "1cjxksxdqcqdccz1nbnc2fp6yy84qq361ynaq5q8bailds00mc9p")) + (patches (search-patches "collectd-5.11.0-noinstallvar.patch")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--localstatedir=/var" "--sysconfdir=/etc") + #:phases (modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ + ;; Required because of patched sources. + (invoke "autoreconf" "-vfi")))))) + (inputs + `(("rrdtool" ,rrdtool) + ("curl" ,curl) + ("libyajl" ,libyajl))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://collectd.org/") + (synopsis "Collect system and application performance metrics periodically") + (description + "collectd gathers metrics from various sources such as the operating system, +applications, log files and external devices, and stores this information or +makes it available over the network. Those statistics can be used to monitor +systems, find performance bottlenecks (i.e., performance analysis) and predict +future system load (i.e., capacity planning).") + ;; license:expat for the daemon in src/daemon/ and some plugins, + ;; license:gpl2 for other plugins + (license (list license:expat license:gpl2)))) + diff --git a/gnu/packages/patches/collectd-5.11.0-noinstallvar.patch b/gnu/packages/patches/collectd-5.11.0-noinstallvar.patch new file mode 100644 index 0000000000..39cd9c763e --- /dev/null +++ b/gnu/packages/patches/collectd-5.11.0-noinstallvar.patch @@ -0,0 +1,21 @@ +Disable creation of /var and /etc + +--- a/Makefile.am 2020-03-08 16:57:09.511535600 +0100 ++++ b/Makefile.am 2020-04-21 11:36:49.827182272 +0200 +@@ -2376,16 +2376,6 @@ + endif + + install-exec-hook: +- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run +- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/lib/$(PACKAGE_NAME) +- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/log +- $(mkinstalldirs) $(DESTDIR)$(sysconfdir) +- if test -e $(DESTDIR)$(sysconfdir)/collectd.conf; \ +- then \ +- $(INSTALL) -m 0640 $(builddir)/src/collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.pkg-orig; \ +- else \ +- $(INSTALL) -m 0640 $(builddir)/src/collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf; \ +- fi; \ + $(mkinstalldirs) $(DESTDIR)$(cpkgdatadir) + $(INSTALL) -m 0644 $(srcdir)/src/types.db $(DESTDIR)$(cpkgdatadir)/types.db; + $(INSTALL) -m 0644 $(srcdir)/src/postgresql_default.conf \