diff mbox series

[bug#40925] Add collectd

Message ID 20200428092938.GB3395@zpidnp36
State Accepted
Headers show
Series [bug#40925] Add collectd | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Lars-Dominik Braun April 28, 2020, 9:29 a.m. UTC
Hi,

totally forgot to attach the patch. Here it is.

Lars

Comments

Ludovic Courtès April 30, 2020, 11:08 p.m. UTC | #1
Hi,

Lars-Dominik Braun <ldb@leibniz-psychology.org> skribis:

> From 05110cd7f0af5f870daa48a1e32bff56efb2676a Mon Sep 17 00:00:00 2001
> From: Lars-Dominik Braun <ldb@leibniz-psychology.org>
> Date: Tue, 28 Apr 2020 10:50:10 +0200
> Subject: [PATCH] gnu: Add collectd
>
> * gnu/packages/monitoring.scm (collectd): New variable
> * gnu/local.mk (dist_patch_DATA): Add new patch
> * gnu/packages/patches/collectd-5.11.0-noinstallvar.patch: New file

[...]

> +    (arguments
> +     `(#:configure-flags (list "--localstatedir=/var" "--sysconfdir=/etc")
> +                         #:phases
> +                         (modify-phases %standard-phases
> +                           ;; Required because of patched sources.
> +                           (add-before 'configure 'autoreconf
> +                             (lambda _ (invoke "autoreconf" "-vfi") #t)))))

Another option is to patch Makefile.in to avoid the dependency on
Autoconf/Automake/Libool + this phase.

> +    (license '(licenses:expat licenses:gpl2))))

This is incorrect (see patch below, which also includes indentation
fixes and minor changes to the description to placate ‘guix lint’.)

Also, could you add a comment stating whether it’s dual-licensing or
just that there’s code in both licenses?

> 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..a8ca142147
> --- /dev/null
> +++ b/gnu/packages/patches/collectd-5.11.0-noinstallvar.patch

A one-line comment at the top explaining what it does would be great.

Otherwise LGTM.  Could you send an updated patch?

Thanks in advance!

Ludo’.
diff mbox series

Patch

From 05110cd7f0af5f870daa48a1e32bff56efb2676a Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <ldb@leibniz-psychology.org>
Date: Tue, 28 Apr 2020 10:50:10 +0200
Subject: [PATCH] gnu: Add collectd

* gnu/packages/monitoring.scm (collectd): New variable
* gnu/local.mk (dist_patch_DATA): Add new patch
* gnu/packages/patches/collectd-5.11.0-noinstallvar.patch: New file
---
 gnu/local.mk                                  |  1 +
 gnu/packages/monitoring.scm                   | 45 +++++++++++++++++++
 .../collectd-5.11.0-noinstallvar.patch        | 19 ++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 gnu/packages/patches/collectd-5.11.0-noinstallvar.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 9f212434a9..dea50618b0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -816,6 +816,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..5a37b14328 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -6,6 +6,7 @@ 
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
+;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@ 
   #: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,9 +50,11 @@ 
   #: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))
 
@@ -445,3 +449,44 @@  written in Go with pluggable metric collectors.")
     (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
+                           ;; Required because of patched sources.
+                           (add-before 'configure 'autoreconf
+                             (lambda _ (invoke "autoreconf" "-vfi") #t)))))
+    (inputs
+     `(("rrdtool" ,rrdtool)
+       ("curl" ,curl)))
+    (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, e.g. the operating system,
+applications, logfiles 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 '(licenses:expat licenses: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..a8ca142147
--- /dev/null
+++ b/gnu/packages/patches/collectd-5.11.0-noinstallvar.patch
@@ -0,0 +1,19 @@ 
+--- 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 \
-- 
2.20.1