From 007419fc24810715a3485998c3af3c782dd9f788 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 1 Jan 2019 15:58:30 +0100 Subject: Moving architecture-independent plugins to interpreter specific netdata-plugins packages to installations with targeted/minimized depends. Signed-off-by: Daniel Baumann --- debian/control | 62 +++++++++++++++++++++++++++++---- debian/netdata-plugins-bash.install | 6 ++++ debian/netdata-plugins-nodejs.install | 4 +++ debian/netdata-plugins-python.install | 4 +++ debian/netdata.install | 23 ++++++------ debian/patches/0007-debian-use-sh.patch | 21 +++++++++++ debian/patches/series | 1 + debian/rules | 29 ++++++++++++--- 8 files changed, 129 insertions(+), 21 deletions(-) create mode 100644 debian/netdata-plugins-bash.install create mode 100644 debian/netdata-plugins-nodejs.install create mode 100644 debian/netdata-plugins-python.install create mode 100644 debian/patches/0007-debian-use-sh.patch diff --git a/debian/control b/debian/control index ca7ec846c..77c36f84d 100644 --- a/debian/control +++ b/debian/control @@ -25,17 +25,14 @@ Pre-Depends: Depends: libcap2-bin, lsb-base, + netdata-plugins-bash (=${source:Version}), + netdata-plugins-nodejs (=${source:Version}), + netdata-plugins-python (=${source:Version}), netdata-web (=${source:Version}), - python3, - python3-six, - python3-urllib3 (>= 1.22), - python3-yaml, ${misc:Depends}, ${shlibs:Depends}, Recommends: curl, - fping, - nodejs, Description: real-time performance monitoring Netdata is distributed, real-time, performance and health monitoring for systems and applications. It provides insights of everything happening on the @@ -45,6 +42,59 @@ Description: real-time performance monitoring integrated to existing monitoring tool chains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc). +Package: netdata-plugins-bash +Architecture: all +Multi-Arch: foreign +Depends: + bash, + netdata (=${source:Version}), + ${misc:Depends}, +Suggests: + fping, +Enhances: + netdata, +Description: real-time performance monitoring (bash plugins) + Netdata is distributed, real-time, performance and health monitoring for + systems and applications. It provides insights of everything happening on the + systems it runs using interactive web dashboards. + . + This package contains the plugins using bash. + +Package: netdata-plugins-nodejs +Architecture: all +Multi-Arch: foreign +Depends: + netdata (=${source:Version}), + nodejs, + ${misc:Depends}, +Enhances: + netdata, +Description: real-time performance monitoring (nodejs plugins) + Netdata is distributed, real-time, performance and health monitoring for + systems and applications. It provides insights of everything happening on the + systems it runs using interactive web dashboards. + . + This package contains the plugins using nodejs. + +Package: netdata-plugins-python +Architecture: all +Multi-Arch: foreign +Depends: + netdata (=${source:Version}), + python3, + python3-six, + python3-urllib3 (>= 1.22), + python3-yaml, + ${misc:Depends}, +Enhances: + netdata, +Description: real-time performance monitoring (python plugins) + Netdata is distributed, real-time, performance and health monitoring for + systems and applications. It provides insights of everything happening on the + systems it runs using interactive web dashboards. + . + This package contains the plugins using python. + Package: netdata-web Section: net Architecture: all diff --git a/debian/netdata-plugins-bash.install b/debian/netdata-plugins-bash.install new file mode 100644 index 000000000..bbb52ff87 --- /dev/null +++ b/debian/netdata-plugins-bash.install @@ -0,0 +1,6 @@ +/etc/netdata/charts.d +/usr/lib/netdata/charts.d/*.sh +/usr/lib/netdata/conf.d/charts.d +/usr/lib/netdata/conf.d/charts.d.conf +/usr/lib/netdata/conf.d/fping.conf +/usr/lib/netdata/plugins.d diff --git a/debian/netdata-plugins-nodejs.install b/debian/netdata-plugins-nodejs.install new file mode 100644 index 000000000..1b8a0d073 --- /dev/null +++ b/debian/netdata-plugins-nodejs.install @@ -0,0 +1,4 @@ +/etc/netdata/node.d +/usr/lib/netdata/conf.d/node.d +/usr/lib/netdata/conf.d/node.d.conf +/usr/lib/netdata/node.d diff --git a/debian/netdata-plugins-python.install b/debian/netdata-plugins-python.install new file mode 100644 index 000000000..e18f990aa --- /dev/null +++ b/debian/netdata-plugins-python.install @@ -0,0 +1,4 @@ +/etc/netdata/python.d +/usr/lib/netdata/conf.d/python.d +/usr/lib/netdata/conf.d/python.d.conf +/usr/lib/netdata/python.d diff --git a/debian/netdata.install b/debian/netdata.install index 9cc271cd5..9c682310d 100644 --- a/debian/netdata.install +++ b/debian/netdata.install @@ -1,11 +1,12 @@ -/etc/netdata -/usr/lib/netdata/charts.d/*.sh -/usr/lib/netdata/conf.d -/usr/lib/netdata/node.d/*.js -/usr/lib/netdata/node.d/node_modules -/usr/lib/netdata/plugins.d/*.plugin -/usr/lib/netdata/plugins.d/*.sh -/usr/lib/netdata/plugins.d/*.sh.inc -/usr/lib/netdata/plugins.d/cgroup-network -/usr/lib/netdata/python.d/*.py -/usr/lib/netdata/python.d/python_modules +/etc/netdata/edit-config +/etc/netdata/health.d +/etc/netdata/statsd.d +/usr/lib/netdata/conf.d/apps_groups.conf +/usr/lib/netdata/conf.d/health.d +/usr/lib/netdata/conf.d/health_alarm_notify.conf +/usr/lib/netdata/conf.d/health_email_recipients.conf +/usr/lib/netdata/conf.d/statsd.d +/usr/lib/netdata/conf.d/stream.conf +/usr/sbin + +debian/netdata.conf /etc/netdata diff --git a/debian/patches/0007-debian-use-sh.patch b/debian/patches/0007-debian-use-sh.patch new file mode 100644 index 000000000..2be92d2d3 --- /dev/null +++ b/debian/patches/0007-debian-use-sh.patch @@ -0,0 +1,21 @@ +Author: Daniel Baumann +Description: Fix shebang hack to not depend on bash. + +diff -Naurp netdata.orig/collectors/node.d.plugin/node.d.plugin netdata/collectors/node.d.plugin/node.d.plugin +--- netdata.orig/collectors/node.d.plugin/node.d.plugin ++++ netdata/collectors/node.d.plugin/node.d.plugin +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + ':' //; exec "$(command -v nodejs || command -v node || echo "ERROR node IS NOT AVAILABLE IN THIS SYSTEM")" "$0" "$@" + + // shebang hack from: +diff -Naurp netdata.orig/collectors/node.d.plugin/node.d.plugin.in netdata/collectors/node.d.plugin/node.d.plugin.in +--- netdata.orig/collectors/node.d.plugin/node.d.plugin.in ++++ netdata/collectors/node.d.plugin/node.d.plugin.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + ':' //; exec "$(command -v nodejs || command -v node || echo "ERROR node IS NOT AVAILABLE IN THIS SYSTEM")" "$0" "$@" + + // shebang hack from: diff --git a/debian/patches/series b/debian/patches/series index ea4dc7a6d..86855ad02 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,6 +4,7 @@ 0004-debian-use-python3.patch 0005-debian-remove-infographic.patch 0006-debian-remove-contrib-files.patch +0007-debian-use-sh.patch 0011-netdata-support-symlinks.patch 0021-gui-remove-update-button.patch 0022-gui-remove-social-media-buttons.patch diff --git a/debian/rules b/debian/rules index cf2f6bda3..44ae64bd2 100755 --- a/debian/rules +++ b/debian/rules @@ -47,6 +47,28 @@ override_dh_install: dh_install + # Move architecture dependent plugins + mkdir -p $(TOP)/usr/lib/netdata/plugins.d + for plugin in cgroup-network apps.plugin freeipmi.plugin; \ + do \ + mv $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/$${plugin} \ + $(TOP)/usr/lib/netdata/plugins.d; \ + done + + mkdir -p $(TOP)-plugins-nodejs/usr/lib/netdata/plugins.d + for plugin in node.d.plugin; \ + do \ + mv $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/$${plugin} \ + $(TOP)-plugins-nodejs/usr/lib/netdata/plugins.d; \ + done + + mkdir -p $(TOP)-plugins-python/usr/lib/netdata/plugins.d + for plugin in python.d.plugin; \ + do \ + mv $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/$${plugin} \ + $(TOP)-plugins-python/usr/lib/netdata/plugins.d; \ + done + override_dh_install-indep: dh_install # Setting package version (update check) @@ -60,9 +82,8 @@ override_dh_fixperms-arch: # apps.plugin should only be runnable by the netdata user. It will be # given extra capabilities in the postinst script. - # chmod 0754 $(TOP)/usr/lib/netdata/plugins.d/apps.plugin - chmod 0644 $(TOP)/usr/lib/netdata/plugins.d/loopsleepms.sh.inc chmod 4754 $(TOP)/usr/lib/netdata/plugins.d/freeipmi.plugin - chmod 0644 $(TOP)/usr/lib/netdata/charts.d/*.sh - chmod 0644 $(TOP)/usr/lib/netdata/python.d/*.py + chmod 0644 $(TOP)-plugins-bash/usr/lib/netdata/charts.d/*.sh + chmod 0644 $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/*.sh.inc + chmod 0644 $(TOP)-plugins-python/usr/lib/netdata/python.d/*.py -- cgit v1.2.3